source: vendor/bash/3.1-p17/examples/functions/fstty

Last change on this file was 3228, checked in by bird, 18 years ago

bash 3.1

File size: 1.0 KB
Line 
1#
2# A function that works as a front end for both stty and the `bind'
3# builtin, so the tty driver and readline see the same changes
4#
5
6#
7# Convert between the stty ^H control character form and the readline \C-H
8# form
9#
10cvt()
11{
12 echo "$@" | cat -v | sed 's/\^/\\C-/'
13}
14
15#
16# stty front-end. Parses the argument list and creates two command strings,
17# one for stty, another for bind.
18#
19fstty()
20{
21 local cmd="" bargs=""
22 local e
23
24 while [ $# -gt 0 ]
25 do
26 case "$1" in
27 -a) cmd="$cmd everything"
28 ;;
29 erase) shift;
30 e=$(cvt "$1")
31 cmd="$cmd erase $1"
32 bargs="$bargs '\"$e\": backward-delete-char'"
33 ;;
34 kill) shift
35 e=$(cvt "$1")
36 cmd="$cmd kill $1"
37 bargs="$bargs '\"$e\": unix-line-discard'"
38 ;;
39 werase) shift;
40 e=$(cvt "$1")
41 cmd="$cmd erase $1"
42 bargs="$bargs '\"$e\": backward-kill-word'"
43 ;;
44 lnext) shift;
45 e=$(cvt "$1")
46 cmd="$cmd erase $1"
47 bargs="$bargs '\"$e\": quoted-insert'"
48 ;;
49 *) cmd="$cmd $1"
50 ;;
51 esac
52 shift
53 done
54
55 command stty $cmd
56 if [ -n "$bargs" ]; then
57 builtin bind $bargs
58 fi
59}
Note: See TracBrowser for help on using the repository browser.