nice promot from dot.mkshrc converted back for ksh93 and pdksh
authorThorsten Glaser <tg@mirbsd.org>
Wed, 9 Mar 2011 13:45:11 +0000 (14:45 +0100)
committerThorsten Glaser <tg@mirbsd.org>
Wed, 9 Mar 2011 13:45:11 +0000 (14:45 +0100)
ksh/prompt-tg [new file with mode: 0644]

diff --git a/ksh/prompt-tg b/ksh/prompt-tg
new file mode 100644 (file)
index 0000000..18c780d
--- /dev/null
@@ -0,0 +1,34 @@
+# $MirOS: src/bin/mksh/dot.mkshrc,v 1.59 2011/02/09 19:32:35 tg Exp $
+#-
+# Copyright (c) 2002, 2003, 2004, 2006, 2007, 2008, 2009, 2010, 2011
+#      Thorsten Glaser <tg@mirbsd.org>
+#
+# Provided that these terms and disclaimer and all copyright notices
+# are retained or reproduced in an accompanying document, permission
+# is granted to deal in this work without restriction, including un-
+# limited rights to use, publicly perform, distribute, sell, modify,
+# merge, give away, or sublicence.
+#
+# This work is provided "AS IS" and WITHOUT WARRANTY of any kind, to
+# the utmost extent permitted by applicable law, neither express nor
+# implied; without malicious intent or gross negligence. In no event
+# may a licensor, author or contributor be held liable for indirect,
+# direct, other damage, loss, or other issues arising in any way out
+# of dealing in the work, even if advised of the possibility of such
+# damage or existence of a defect, except proven that it results out
+# of said person's immediate fault when using the work as intended.
+
+: ${USER_ID:=$(ulimit -c 0;id -u)} ${HOSTNAME:=$(ulimit -c 0;hostname -s 2>&-)}
+[[ $HOSTNAME = @(localhost|*([  ])) ]] && HOSTNAME=$(ulimit -c 0;hostname 2>&-)
+: ${HOSTNAME:=nil}; if (( USER_ID )); then PS1='$'; else PS1='#'; fi
+function precmd {
+       typeset e=$?
+
+       (( e )) && print -n "$e|"
+}
+PS1='\ 1\r$(precmd)${USER:=$(ulimit -c 0;id -un 2>&-||print \?)}@${HOSTNAME%%.*}:$(
+       typeset d=${PWD:-?} n p=~; [[ $p = ?(*/) ]] || {
+               [[ $d = "$p"* ]] && d=\~${d#$p}
+       }; (( ${#d} > (n = (COLUMNS / 3 < 7 ? 7 : COLUMNS / 3)) )) && {
+               while (( n >= 5 )); do d=${d#?????}; let n-=5; done; p=...
+       } || p=; print -nr -- "$p$d") '"$PS1 "