summaryrefslogtreecommitdiff
path: root/examples/functions/term
diff options
context:
space:
mode:
Diffstat (limited to 'examples/functions/term')
-rw-r--r--examples/functions/term35
1 files changed, 35 insertions, 0 deletions
diff --git a/examples/functions/term b/examples/functions/term
new file mode 100644
index 0000000..fbe99f1
--- /dev/null
+++ b/examples/functions/term
@@ -0,0 +1,35 @@
+#
+# term -- a shell function to set the terminal type interactively or not.
+#
+
+term()
+{
+ local t
+
+ if [ $# != 0 ] ; then
+ eval $(tset -sQ $1)
+ else # interactive
+ if [ -z "$TERM" ] ; then
+ TERM="unknown"
+ fi
+
+ case "$TERM" in
+ network|dialup|unknown|lat)
+ TERM=unknown
+ ;;
+ *)
+ eval $(tset -sQ)
+ ;;
+ esac
+
+ while [ "$TERM" = "unknown" ] ; do
+ echo -n "Terminal type: "
+ read t
+ if [ -n "$t" ] ; then
+ eval $(tset -sQ $t)
+ fi
+ done
+ fi
+}
+
+