###--------------------------------------------------------------------------
### Prompt machinery.
-__mdw_set_prompt_hacks () { host=$(hostname); dir=""; }
+__mdw_host=$(hostname)
+__mdw_hqual=
+__mdw_hqual=$__mdw_hqual${SCHROOT_CHROOT_NAME+/$SCHROOT_CHROOT_NAME}
+__mdw_hqual=$__mdw_hqual${CROSS_BUILDENV+/$CROSS_BUILDENV}
+__mdw_set_prompt_hacks () { host=$__mdw_host; dir=""; }
+
+__mdw_system=$(uname -s)
+: ${USER-${LOGNAME-$(id -un)}}
+__mdw_user=$USER
+
+case $(id -u) in
+ 0)
+ __mdw_rootp=t
+ ;;
+ *)
+ case $__mdw_system in
+ CYGWIN_*)
+ case " $(id -G) " in
+ *" 544 "*) __mdw_rootp=t __mdw_user="$__mdw_user%admin" ;;
+ *) __mdw_rootp=nil ;;
+ esac
+ ;;
+ *)
+ __mdw_rootp=nil
+ ;;
+ esac
+esac
__mdw_set_prompt_pieces () {
- local hqual
- hqual=""
## Fancy highlighting in some terminals.
local bold unbold nl gitcolour rccolour uncolour
## Choose the right delimiters. Highlight root prompts specially;
## highlight when I'm running as some other user. Highlight when this
## isn't the outermost shell on the terminal.
- local left right user u tty
- user=${USER-${LOGNAME-$(id -un)}}
- case $(id -u) in
- 0)
+ local left right u tty
+ case $__mdw_rootp in
+ t)
left=$(echo « | iconv -f UTF-8 -t //translit)
right=$(echo » | iconv -f UTF-8 -t //translit)
;;
- *)
- case $user in
+ nil)
+ case $USER in
mdw | mwooding | nemo) u="" left="[" right="]" ;;
- *) u="$user@" left="{" right="}" ;;
+ *) u="$__mdw_user@" left="{" right="}" ;;
esac
tty=$(tty)
case "$__mdw_tty" in
## If this is an schroot environment or some other interesting augmented
## environment then point this out.
- hqual="$hqual${SCHROOT_CHROOT_NAME+/$SCHROOT_CHROOT_NAME}"
- hqual="$hqual${MDW_BUILDENV+/$MDW_BUILDENV}"
## Put together the main pieces.
- __mdw_prompt_left="$nl$bold$left$sec_l$u$host$hqual$sec_r$dir"
+ __mdw_prompt_left="$nl$bold$left$sec_l$u$host$__mdw_hqual$sec_r$dir"
__mdw_prompt_git_left="$unbold$gitcolour"
__mdw_prompt_git_right="$uncolour$bold"
__mdw_prompt_rc_left="$unbold$rccolour"
esac
}
-__mdw_screen_precmd () { printf "\ek%s\e\\" "$__mdw_shell"; }
-__mdw_screen_preexec () { printf "\ek%s\e\\" "$1"; }
+__mdw_xterm_settitle () {
+ printf >/dev/tty \
+ "\e]2;%s@%s:%s – %s\e\\" \
+ "$__mdw_user" "$__mdw_host$__mdw_hqual" "$PWD" \
+ "$1"
+}
+__mdw_xterm_precmd () { __mdw_xterm_settitle "$__mdw_shell"; }
+__mdw_xterm_preexec () { __mdw_xterm_settitle "$1"; }
+
+__mdw_screen_settitle () {
+ printf >/dev/tty \
+ "\ek%s\e\\" \
+ "$1"
+}
+__mdw_screen_precmd () { __mdw_screen_settitle "$__mdw_shell"; }
+__mdw_screen_preexec () { __mdw_screen_settitle "$1"; }
if [ -t 0 ]; then
- case ${STY+t},${__mdw_precmd_hook+t},${__mdw_preexec_hook+t} in
- t,t,t)
+ case ${STY+t},${__mdw_precmd_hook+t},${__mdw_preexec_hook+t},${TERM} in
+ ,t,t,xterm*)
+ __mdw_addhook __mdw_precmd_hook __mdw_xterm_precmd
+ __mdw_addhook __mdw_preexec_hook __mdw_xterm_preexec
+ ;;
+ t,t,t,*)
__mdw_addhook __mdw_precmd_hook __mdw_screen_precmd
__mdw_addhook __mdw_preexec_hook __mdw_screen_preexec
;;
alias svn="svnwrap svn"
alias @="ssh"
alias make="nice make"
+alias cross-run="nice cross-run"
alias gdb="gdb -q"
+## Shut up Lisp interpreters.
+alias clisp="clisp -q -q"
+alias cmucl="rlwrap cmucl -quiet"
+alias ecl="rlwrap ecl"
+alias sbcl="rlwrap sbcl --noinform"
+
###--------------------------------------------------------------------------
### Colour output.