]> git.madduck.net Git - etc/zsh.git/commitdiff

madduck's git repository

Every one of the projects in this repository is available at the canonical URL git://git.madduck.net/madduck/pub/<projectpath> — see each project's metadata for the exact URL.

All patches and comments are welcome. Please squash your changes to logical commits before using git-format-patch and git-send-email to patches@git.madduck.net. If you'd read over the Git project's submission guidelines and adhered to them, I'd be especially grateful.

SSH access, as well as push access can be individually arranged.

If you use my repositories frequently, consider adding the following snippet to ~/.gitconfig and using the third clone URL listed for each project:

[url "git://git.madduck.net/madduck/"]
  insteadOf = madduck:

integrate local changes
authormartin f. krafft <madduck@madduck.net>
Sun, 18 May 2008 13:40:45 +0000 (15:40 +0200)
committermartin f. krafft <madduck@madduck.net>
Sun, 18 May 2008 13:40:45 +0000 (15:40 +0200)
.zsh/func/TS
.zsh/func/vcsh [new file with mode: 0755]
.zsh/zshrc/00_varsetup
.zsh/zshrc/30_aliases
.zsh/zshrc/60_vcsprompt
.zsh/zshrc/80_history
.zsh/zshrc/80_prompt
.zsh/zshrc/99_TODO

index 0a51ab100216849cc0ff2e0081130606aaeeb8a3..63eb5fbe96eb91a01f01873680001a84b82426b2 100755 (executable)
@@ -14,7 +14,7 @@ local topic filename ret
 topic="${(j:_:)@}"
 filename="${TMPDIR:-/tmp}/script.${topic:-$LOGNAME}.$$.$(date +%Y%m%d.%H%M)"
 echo "I: writing typescript to $filename ..." >&2
-PS1="%# " script -c "zsh -f" -f -q "$filename"
+PS1="%# " PS2= script -c "zsh -f" -f -q "$filename"
 ret=$?
 echo "I: typescript is in $filename ."
 return $ret
diff --git a/.zsh/func/vcsh b/.zsh/func/vcsh
new file mode 100755 (executable)
index 0000000..cd6d205
--- /dev/null
@@ -0,0 +1,39 @@
+#!/bin/sh
+#
+# func/vcsh
+#
+# set the context for vcs-home operations
+#
+# Copyright © 1994–2008 martin f. krafft <madduck@madduck.net>
+# Released under the terms of the Artistic Licence 2.0
+#
+# Source repository: http://git.madduck.net/v/etc/zsh.git
+#
+
+local FGIT_BASE="$HOME/.fgits"
+
+if [ "${1:---help}" = '--help' ] || [ $# -gt 1 ]; then
+  echo "usage: ${0##*/} reponame" >&2
+  echo "usage: ${0##*/} -l" >&2
+  [ "$1" = '--help' ]
+  return $?
+
+elif [ "$1" = '-l' ]; then
+  for i in $FGIT_BASE/*.git; do
+    i="${i#$FGIT_BASE/}"
+    echo "${i%.git}"
+  done
+  return 0
+fi
+
+if [ ! -d "$FGIT_BASE/${1}.git" ]; then
+  echo E: no repository found for "$1" >&2
+  return 2
+fi
+
+export GIT_DIR="$FGIT_BASE/${1}.git"
+export GIT_WORK_TREE="$GIT_DIR/$(git config --get core.worktree)"
+
+git status
+
+PS1="%S{${0##*/}:$1}%s$PS1" $SHELL -i
index 68ec3862bdf5962d919a341d0aa435591a0d0178..29be5d1eef0c9c4cb928063f452c420dede17018 100644 (file)
@@ -16,4 +16,9 @@ typeset -ga preexec_functions
 typeset -ga precmd_functions
 typeset -ga chpwd_functions
 
+# warn on accidental creation of global variables
+# unset for now until we work out the corner cases, like warning about $reply
+# and $HISTFILE or $REPORTTIME.
+#setopt warn_create_global
+
 # vim:ft=zsh
index 9df703a248bf7c8ae8a2f92addca62f8e24f1797..562f4b9e42d77bfe4363289839356590909513d0 100644 (file)
@@ -23,12 +23,11 @@ alias curl='noglob curl'
 alias apt-cache='noglob apt-cache'
 alias locate='noglob locate'
 
-_ls_opts=(-bC --color=auto)
-ls --group-directories-first >/dev/null 2>&1 \
+typeset -a _ls_opts; _ls_opts=(-bC --color=auto)
+command ls --group-directories-first >/dev/null 2>&1 \
   && _ls_opts+=--group-directories-first
 # I prefer POSIX collation for ls
 alias ls="LC_COLLATE=POSIX ls $_ls_opts"
-unset _ls_opts
 
 alias ll='ls -l'
 alias l=ll
@@ -117,4 +116,8 @@ for l in ${(k)_LANGUAGES}; do
 done
 unset _LANGUAGES
 
+alias dpkg-buildpackage="dpkg-buildpackage -k$DEBKEYID"
+
+uc() { unicode --max=0 --colour=off "$@" | sensible-pager }
+
 # vim:ft=zsh
index 4cc18a3fd6feb72d174044579ad73d6999c7ccf7..9fa0f44e4a458852e7d636f316562eaa0d898e5c 100644 (file)
@@ -144,9 +144,8 @@ __vcs_set_prompt_variables()
       if [ -d "$GIT_DIR" ]; then
         # poor man's replace until I find out how to do named dirs properly
         # here:
-        _D="${GIT_DIR/$HOME/~}"
+        local _D="${GIT_DIR/$HOME/~}"
         set -- "$_D" "$2" "${${1#$_D}%/}"
-        unset _D
       fi
       ;;
     hg)
index 4a80f0604d8d0785f52f65d413413b6843c7b79d..af0f93b44a784146583027ff341db795fc42c1e8 100644 (file)
@@ -8,7 +8,8 @@
 # Source repository: http://git.madduck.net/v/etc/zsh.git
 #
 
-HISTFILE=$ZVARDIR/history
+# typeset -g on this one to make warn_create_global happy
+typeset -g HISTFILE=$ZVARDIR/history
 HISTSIZE=10000
 SAVEHIST=$HISTSIZE
 LISTMAX=1000
index 95ea67d64dfc7378a45ec6227929a70537e47532..54d0e4d25b67e4dbd7166a364e69347bf2605451 100644 (file)
@@ -8,19 +8,19 @@
 # Source repository: http://git.madduck.net/v/etc/zsh.git
 #
 
-local _MIDDLE="%1v%(2v.|%B%2v%b|.)%(3v.%3v.)"
-local _PS1_HL
-if is_root; then
-  _MIDDLE="%25<..<%~%<<"
-  _PS1_HL=U
-fi
+if [ "${PS1:-}" = '%m%# ' ]; then
+  local _MIDDLE="%1v%(2v.|%B%2v%b|.)%(3v.%3v.)"
+  if is_root; then
+    _MIDDLE="%25<..<%~%<<"
+    local _PS1_HL=U
+  fi
 
-_MACHINE_NAME="${_PS1_HL:=B}%m%${(L)_PS1_HL}"
-_MACHINE_NAME="$_MACHINE_NAME${debian_chroot:+/$debian_chroot}"
+  local _MACHINE_NAME="${_PS1_HL:=B}%m%${(L)_PS1_HL}"
+  _MACHINE_NAME="$_MACHINE_NAME${debian_chroot:+/%S$debian_chroot%s}"
 
-PS1="%(2L.+.)%${_MACHINE_NAME}:${_MIDDLE}%# "
-RPS1="#%(0?..%?,)%!"
+  PS1="%(2L.+.)%${_MACHINE_NAME}:${_MIDDLE}%# "
+fi
 
-unset _MACHINE_NAME
+: ${RPS1:="#%(0?..%?,)%!"}
 
 # vim:ft=zsh
index 4fbaa92f133f1a19cd7b81b9b2854d56705547a4..7d6536b7fe5ba815fb61fd79f754b44fa0cc255b 100644 (file)
@@ -56,7 +56,8 @@ setopt c_bases
 WORDCHARS="${WORDCHARS//\/}"
 
 # report time stats when command takes longer than 5 seconds
-REPORTTIME=5
+# typeset -g to make warn_create_global happy
+typeset -g REPORTTIME=5
 
 MAILCHECK=0