From 3e103cf8a519ef0ec2319f6419ee91378ef2d373 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C5=82awomir=20Nizio?= Date: Sun, 26 Jun 2011 00:52:24 +0200 Subject: [PATCH 1/2] Use actual return status, not 'local' builtin's. --- z.sh | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/z.sh b/z.sh index 9d4dc2b..60b156b 100755 --- a/z.sh +++ b/z.sh @@ -37,7 +37,8 @@ _z() { [ "$*" = "$HOME" ] && return # maintain the file - local tempfile="$(mktemp $datafile.XXXXXX)" || return + local tempfile + tempfile="$(mktemp $datafile.XXXXXX)" || return awk -v path="$*" -v now="$(date +%s)" -F"|" ' BEGIN { rank[path] = 1 @@ -98,8 +99,10 @@ _z() { # no file yet [ -f "$datafile" ] || return - local tempfile="$(mktemp $datafile.XXXXXX)" || return - local cd="$(awk -v t="$(date +%s)" -v list="$list" -v typ="$typ" -v q="$fnd" -v tmpfl="$tempfile" -F"|" ' + local tempfile + tempfile="$(mktemp $datafile.XXXXXX)" || return + local cd + cd="$(awk -v t="$(date +%s)" -v list="$list" -v typ="$typ" -v q="$fnd" -v tmpfl="$tempfile" -F"|" ' function frecent(rank, time) { dx = t-time if( dx < 3600 ) return rank*4 From 3f22f53d7d21cb66b6b8fb4f09067ed055d0d7f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C5=82awomir=20Nizio?= Date: Sun, 26 Jun 2011 01:01:40 +0200 Subject: [PATCH 2/2] Check return status of awk when adding an entry. This will avoid truncating data file to zero length when disk is full. --- z.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/z.sh b/z.sh index 60b156b..c940a78 100755 --- a/z.sh +++ b/z.sh @@ -60,7 +60,9 @@ _z() { } else for( i in rank ) print i "|" rank[i] "|" time[i] } ' "$datafile" 2>/dev/null >| "$tempfile" - env mv -f "$tempfile" "$datafile" + if [ $? -eq 0 ]; then + env mv -f "$tempfile" "$datafile" + fi # tab completion elif [ "$1" = "--complete" ]; then