Cleanup of spaces at end of lines, Add missing l:=o_log to first code example 0.6-4
authorMichael Prokop <mika@grml.org>
Mon, 30 Apr 2007 17:48:14 +0000 (19:48 +0200)
committerMichael Prokop <mika@grml.org>
Mon, 30 Apr 2007 17:48:14 +0000 (19:48 +0200)
debian/changelog
zsh-lovers.1.txt

index 3348f86..2c3cada 100644 (file)
@@ -1,3 +1,11 @@
+zsh-lovers (0.6-4) unstable; urgency=low
+
+  * Cleanup of spaces at end of lines.
+  * Add missing 'l:=o_log' to first code example. Thanks to
+    Mike Leary!
+
+ -- Michael Prokop <mika@grml.org>  Mon, 30 Apr 2007 19:47:23 +0200
+
 zsh-lovers (0.6-3) unstable; urgency=low
 
   * Applied patch by Christian Schneider which updates some URLs,
index f3830f8..4512dc3 100644 (file)
@@ -37,7 +37,7 @@ parse_options()
     o_root=(-r WWW)
     o_log=(-d ZWS.log)
 
-    zparseopts -K -- p:=o_port r:=o_root h=o_help
+    zparseopts -K -- p:=o_port r:=o_root l:=o_log h=o_help
     if [[ $? != 0 || "$o_help" != "" ]]; then
         echo Usage: $(basename "$0") "[-p PORT] [-r DIRECTORY]"
         exit 1
@@ -151,7 +151,7 @@ zstyle ':completion:*:approximate:*' max-errors 1 numeric
 And  if  you  want  the  number  of  errors  allowed by _approximate to
 increase with the length of what you have typed so far:
 ---------------------------------------------------------------------------------------------------
-zstyle -e ':completion:*:approximate:*' \ 
+zstyle -e ':completion:*:approximate:*' \
        max-errors 'reply=($((($#PREFIX+$#SUFFIX)/3))numeric)'
 ---------------------------------------------------------------------------------------------------
 
@@ -223,54 +223,54 @@ See ``man 1 zshexpn | less -p'' Qualifiers for details.
 
 # Fetch the newest file containing the string 'fgractg*.log' in the
 # filename and contains the string 'ORA-' in it
-  $ file=(fgractg*.log(Nm0om[1])) 
+  $ file=(fgractg*.log(Nm0om[1]))
   $ (($#file)) && grep -l ORA- $file
   # without Zsh
   $ files=$( find . -name . -o -prune -name 'fgractg*>log' -mtime 0 -print )
-  > if [ -n "$files" ]; then 
-  >    IFS=' 
+  > if [ -n "$files" ]; then
+  >    IFS='
   > '
-  > set -f 
-  > file=$(ls -td $files | head -1) 
-  > grep -l ORA- "$file" 
+  > set -f
+  > file=$(ls -td $files | head -1)
+  > grep -l ORA- "$file"
   > fi
 
 # keep specified number of child processes running until entire task finished
   $ zsh -c 'sleep 1 & sleep 3 & sleep 2& print -rl -- $jobtexts'
-  
+
 # Remove zero length and .bak files in a directory
   $ rm -i *(.L0) *.bak(.)
 
 # print out files that dont have extensions
   $ printf '%s\n' ^?*.*
   $ printf '%s\n' ^?*.[^.]*(D)
-  $ ls -d -- ^?*.*(D) 
+  $ ls -d -- ^?*.*(D)
 
 # Finding files which does not contain a specific string
   $ print -rl file* | comm -2 -3 - <(grep -l string file*)'
   $ for f (file*(N)) grep -q string $f || print -r $f'
 
-# Show/Check whether a option is set or not. It works both with $options as 
+# Show/Check whether a option is set or not. It works both with $options as
 # with $builtins
   $ echo $options[correct]
   off
   $ $options[zle]
   on
-  
+
 # Count the number of directories on the stack
   $ print $((${${(z)${(f)"$(dirs -v)"}[-1]}[1]} + 1)) # or
   $ dirs -v | awk '{n=$1}END{print n+1}'
 
 # Matching all files which do not have a dot in filename
   $ ls *~*.*(.)
-  
+
 # Show only the ip-address from ``ifconfig device''
   # ifconfig from net-tools (Linux)
-  $ print ${${$(LC_ALL=C /sbin/ifconfig eth0)[7]}:gs/addr://} 
+  $ print ${${$(LC_ALL=C /sbin/ifconfig eth0)[7]}:gs/addr://}
   # ifconfig from 4.2BSD {Free,Net,Open}BSD
-  $ print ${$(/sbin/ifconfig tun0)[6]} 
+  $ print ${$(/sbin/ifconfig tun0)[6]}
 
-# Ping all the IP addresses in a couple of class C's or all hosts 
+# Ping all the IP addresses in a couple of class C's or all hosts
 # into /etc/hosts
   $ for i in {1..254}; do ping -c 1 192.168.13.$i; done
   or
@@ -283,21 +283,21 @@ See ``man 1 zshexpn | less -p'' Qualifiers for details.
   :    ping -c 1 $i ;
   :    echo '============================='
   : done
-  
+
 # load all available modules at startup
   $ typeset -U m
   $ m=()
   $ for md ($module_path) m=($m $md/**/*(*e:'REPLY=${REPLY#$md/}'::r))
   $ zmodload -i $m
 
-# Rename all files within a directory such that their names get a numeral 
+# Rename all files within a directory such that their names get a numeral
 # prefix in the default sort order.
   $ i=1; for j in *; do mv $j $i.$j; ((i++)); done
   $ i=1; for f in *; do mv $f $(echo $i | \
     awk '{ printf("%03d", $0)}').$f; ((i++)); done
   $ integer i=0; for f in *; do mv $f $[i+=1].$f; done
 
-# Find (and print) all symbolic links without a target within the current 
+# Find (and print) all symbolic links without a target within the current
 # dirtree.
   $ $ file **/*(D@) | fgrep broken
   $ for i in **/*(D@); [[ -f $i || -d $i ]] || echo $i
@@ -321,7 +321,7 @@ See ``man 1 zshexpn | less -p'' Qualifiers for details.
 # Synonymic to ``ps ax | awk '{print $1}'''
   $ print -l /proc/*/cwd(:h:t:s/self//)
 
-# Get the PID of a process (without ``ps'', ``sed'', ``pgrep'', .. 
+# Get the PID of a process (without ``ps'', ``sed'', ``pgrep'', ..
 # (under Linux)
   $ pid2 () {
   >   local i
@@ -348,14 +348,14 @@ See ``man 1 zshexpn | less -p'' Qualifiers for details.
   $ cd -- $dest_root
   $ mkdir -p -- $dirs
 # or without zsh
-  $ find . -type d -exec env d="$dest_root" \ 
+  $ find . -type d -exec env d="$dest_root" \
     sh -c ' exec mkdir -p -- "$d/$1"' '{}' '{}' \;
 
 # If `foo=23'', then print with 10 digit with leading '0'.
   $ foo=23
   $ print ${(r:10::0:)foo}
 
-# find the name of all the files in their home directory that have 
+# find the name of all the files in their home directory that have
 # more than 20 characters in their file names
   print -rl $HOME/${(l:20::?:)~:-}*
 
@@ -364,8 +364,8 @@ See ``man 1 zshexpn | less -p'' Qualifiers for details.
   $ eval "m=($(cat -- $nameoffile)"            # or use
   $ m=("${(@Q)${(z)"$(cat -- $nameoffile)"}}") # to restore it
 
-# get a "ls -l" on all the files in the tree that are younger than a 
-# specified age (e.g "ls -l" all the files in the tree that where 
+# get a "ls -l" on all the files in the tree that are younger than a
+# specified age (e.g "ls -l" all the files in the tree that where
 # modified in the last 2 days)
   $ ls -tld **/*(m-2)
 # This will give you a listing 1 file perl line (not à la ls -R).
@@ -430,16 +430,16 @@ See ``man 1 zshexpn | less -p'' Qualifiers for details.
 # Convert images (foo.gif => foo.png):
   $ for i in **/*.gif; convert $i $i:r.png
 
-# convert a collection of mp3 files to wave or cdr, 
+# convert a collection of mp3 files to wave or cdr,
 # e.g. file.wav -> file.mp3)
   $ for i (./*.mp3){mpg321 --w - $i > ${i:r}.wav}
-  
+
 # Download with LaTeX2HTML  created Files (for example the ZSH-Guide):
   $ for f in http://zsh.sunsite.dk/Guide/zshguide{,{01..08}}.html; do
   >     lynx -source $f >${f:t}
   > done
 
-# Move all files in dir1 and dir2 that have line counts greater than 10 to 
+# Move all files in dir1 and dir2 that have line counts greater than 10 to
 # another directory say "/more10"
   $ mv dir[12]/**/*.cr(-.e{'((`wc -l < $REPLY` > 10))'}) /more10
 
@@ -454,7 +454,7 @@ See ``man 1 zshexpn | less -p'' Qualifiers for details.
   $ char=N ; print $((#char))
 
 # Filename "Erweiterung"
-# Note: The (N) says to use the nullglob option for this particular 
+# Note: The (N) says to use the nullglob option for this particular
 # glob pattern.
   $ for i in *.o(N); do
   >     rm $i
@@ -474,9 +474,9 @@ See ``man 1 zshexpn | less -p'' Qualifiers for details.
 # gzip files when containing a certain string
   $ gzip ${(ps:\0:)"$(grep -lZ foobar ./*.txt(.))"}
 
-# A small  one-liner, that reads from stdin and prints to stdout the first 
-# unique line i. e. does not print lines that have been printed before 
-# (this is similar to the unique command, but unique can only handle 
+# A small  one-liner, that reads from stdin and prints to stdout the first
+# unique line i. e. does not print lines that have been printed before
+# (this is similar to the unique command, but unique can only handle
 # adjacent lines).
   $ IFS=$'\n\n'; print -rl -- ${(Oau)${(Oa)$(cat file;echo .)[1,-2]}}
 
@@ -500,7 +500,7 @@ See ``man 1 zshexpn | less -p'' Qualifiers for details.
 (Recursive) Globbing - Examples
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 A list of valid glob Qualifiers can be found in zshexpn(1). *Note:*
-\*\*/ is equivalent to (*/)#! For example: 
+\*\*/ is equivalent to (*/)#! For example:
 -------------------------------------------------------------------------------
 $ print (*/)#zsh_us.ps
 zsh-4.2.3/Doc/zsh_us.ps
@@ -512,7 +512,7 @@ zsh-4.2.3/Doc/zsh_us.ps
 # Search for `README' in all Subdirectories
   $ ls -l **/README
 
-# find directories that contain both "index.php" and "index.html", or in 
+# find directories that contain both "index.php" and "index.html", or in
 # general, directories that contain more than one file matching "index.*"
   $ ls **/*(D/e:'[[ -e $REPLY/index.php && -e $REPLY/index.html ]]':)
   # or
@@ -524,12 +524,12 @@ zsh-4.2.3/Doc/zsh_us.ps
   $ find / | grep -e /path/ -e '/path$'
 
 # Print he path of the directories holding the ten biggest C regular files
-# in the current directory and subdirectories. 
-  $ print -rl -- **/*.c(D.OL[1,10]:h) | sort -u 
+# in the current directory and subdirectories.
+  $ print -rl -- **/*.c(D.OL[1,10]:h) | sort -u
 
 # Find files with size == 0 and send a mail
-  $ files=(**/*(ND.L0m+0m-2)) 
-  > (( $#files > 0 )) && print -rl -- $files | \ 
+  $ files=(**/*(ND.L0m+0m-2))
+  > (( $#files > 0 )) && print -rl -- $files | \
     mailx -s "empty files" foo@bar.tdl
 
 # recursive chmod
@@ -543,8 +543,8 @@ zsh-4.2.3/Doc/zsh_us.ps
   $ list=(${1:[...]}/*(ND:t))
   $ (($#list)) && print -rC2 -- ${(V)list}
 
-# Search all files in /home/*/*-mail/ with a setting ``chmod -s'' flag 
-# (recursive, include  dotfiles) remove the setgid/setuid flag and print 
+# Search all files in /home/*/*-mail/ with a setting ``chmod -s'' flag
+# (recursive, include  dotfiles) remove the setgid/setuid flag and print
 # a message
   $ chmod -s /home/*/*-mail(DNs,S) /home/*/*-mail/**/*(DNs,S))
 # or with a small script
@@ -552,14 +552,14 @@ zsh-4.2.3/Doc/zsh_us.ps
   >    print -r -- $file
   >    chmod -s $file && print -r fixed $file
   > }
-# or use ``zargs'' (require autoload zargs) prevent the arg list too 
+# or use ``zargs'' (require autoload zargs) prevent the arg list too
 # long error
   $ zargs /home/*/*-mail(DNs,S) /home/*/*-mail/**/*(DNs,S)) -- chmod -s
 
 # List files beginning at `foo23' upwards (foo23, foo24, foo25, ..)
   $ ls -l foo<23->
 
-# get all files that begin with the date strings from June 4 through 
+# get all files that begin with the date strings from June 4 through
 # June 9 of 2004
   $ ls -l 200406{04..10}*(N)
 # or if they are of the form 200406XX (require ``setopt extended_glob''
@@ -584,7 +584,7 @@ zsh-4.2.3/Doc/zsh_us.ps
 # List files in the current directory are not writable by the owner
   $ print -l ~/*(ND.^w)
 
-# find and delete the files which are older than a given parameter 
+# find and delete the files which are older than a given parameter
 # (seconds/minutes/hours)
   # deletes all regular file in /Dir that are older than 3 hours
    $ rm -f /Dir/**/*(.mh+3)
@@ -596,23 +596,23 @@ zsh-4.2.3/Doc/zsh_us.ps
    $ rm ./**/*(.Dmh+1,.DL0)
   # deletes all files more than 6 hours old
    $ rm -f **/*(mh+6)
-  # removes all files but the ten newer ones (delete all but last 10 
+  # removes all files but the ten newer ones (delete all but last 10
   # files in a directory)
    $ rm ./*(Om[1,-11])
- Note: If you get a arg list too long, you use the builtin rm. For 
+ Note: If you get a arg list too long, you use the builtin rm. For
        example:
    $ zmodload zsh/files ; rm -f **/*(mh+6)
   or use the zargs function:
    $ autoload zargs ; zargs **/*(mh+6) -- rm -f
 
-# A User's Guide to the Z-Shell /5.9: Filename Generation and Pattern 
-# Matching find all files in all subdirectories, searching recursively, 
-# which have a given name, case insensitive, are at least 50 KB large, 
-# no more than a week old and owned by the root user, and allowing up 
-# to a single error in the spelling of the name. In fact, the required 
+# A User's Guide to the Z-Shell /5.9: Filename Generation and Pattern
+# Matching find all files in all subdirectories, searching recursively,
+# which have a given name, case insensitive, are at least 50 KB large,
+# no more than a week old and owned by the root user, and allowing up
+# to a single error in the spelling of the name. In fact, the required
 # expression looks like this:
   $ ls **/(#ia1)name(LK+50mw-1u0)
-  
+
 # Change the UID from 102 to 666
   $ chown 666 **/*(u102)
 
@@ -631,7 +631,7 @@ zsh-4.2.3/Doc/zsh_us.ps
 # Show only empty files which nor `group' or `world writable'
   $ ls *(L0f.go-w.)
 
-# find - and list - the ten newest files in directories and subdirs 
+# find - and list - the ten newest files in directories and subdirs
 # (recursive)
   $ print -rl -- **/*(Dom[1,10])
 
@@ -640,14 +640,14 @@ zsh-4.2.3/Doc/zsh_us.ps
 
 # display the 5-10 last modified files
   $ print -rl -- /path/to/dir/**/*(D.om[5,10])
-  
+
 # find all files without a valid owner
   $ chmod someuser /**/*(D^u:${(j.:u:.)${(f)"$(</etc/passwd)"}%%:*}:)
 
 # find all the empty directories in a tree
   $ for f in ***/*(/l2); do foo=($f/*(N)); [[ -z $foo ]] && print $f; done
 # Note:Since Zsh 4.2.1 the glob qualifier F indicates a non-empty directory.
-# Hence *(F) indicates all subdirectories with entries, *(/^F) means all 
+# Hence *(F) indicates all subdirectories with entries, *(/^F) means all
 # subdirectories with no entries.
   $ ls -ld *(/^F)
 
@@ -665,12 +665,12 @@ Modifiers are a powerful mechanism that let you modify the results
 returned by parameter, filename and history expansion. See zshexpn(1)
 for details.
 -------------------------------------------------------------------------------
-# Remove a trailing pathname component, leaving the head. This works like 
+# Remove a trailing pathname component, leaving the head. This works like
 # `dirname'.
   $ echo =ls(:h)
   /bin
 
-# Remove all leading pathname components, leaving the tail. This works 
+# Remove all leading pathname components, leaving the tail. This works
 # like `basename'.
   $ echo =ls(:t)
   ls
@@ -679,7 +679,7 @@ for details.
    $f:e is $f file extension
    :h --> head (dirname)
    :t --> tail (basename)
-   :r --> rest (extension removed) 
+   :r --> rest (extension removed)
   $ for f (*.sh) mv $f $f:r
 
 # Remove a filename extension of the form `.xxx', leaving the root name.
@@ -695,7 +695,7 @@ for details.
   $ echo $foo:e
   42
 
-# Print the new command but do not execute it. Only works with history 
+# Print the new command but do not execute it. Only works with history
 # expansion.
   $ echo =ls(:h)
   /bin
@@ -743,7 +743,7 @@ See zshmisc(1) for more informations (or less ${^fpath}/zmv(N))
 
 # Redirect output to a file AND display on screen
   $ foobar >&1 > file1 > file2 > ..
-  
+
 # pipe single output to multiple inputs
   $ zcat foobar.Z >> (gzip -9 > file1.gz) \
       >> (bzip2 -9 > file1.bz2) \
@@ -760,9 +760,9 @@ See zshmisc(1) for more informations (or less ${^fpath}/zmv(N))
   $ setopt multios
   $ process1 > >(process1) > >(process2)
 
-# initializing a variable and simultaneously keeping terminal output 
+# initializing a variable and simultaneously keeping terminal output
   $ setopt multios
-  $ { a=$(command >&1 >& 3 3 > &- 2>&1);} 3>&1 
+  $ { a=$(command >&1 >& 3 3 > &- 2>&1);} 3>&1
 
 # redirect stderr two times
   $ setopt multios ; program 2> file2 > file1 2>&1
@@ -774,7 +774,7 @@ See zshmisc(1) for more informations (or less ${^fpath}/zmv(N))
   $ command 2>&2 2>stderr
 # redirect stderr and stdout to separate files and both to orig. stdout:
   $ command 2>&1 1>&1 2>stderr 1>stdout
-# redirect stderr and stdout to separate files and stdout to orig. stdout 
+# redirect stderr and stdout to separate files and stdout to orig. stdout
 # AND stderr to orig. stderr:
   $ command 2>&2 1>&1 2>stderr 1>stdout
 
@@ -795,7 +795,7 @@ ZMV-Examples (require autoload zmv)
   $ ls *
   1.c  1.foo  2.foo  3.foo  4.foo  foo.fnord
 
-# Rename "file.with.many.dots.txt" by substituting dots (exept for the last 
+# Rename "file.with.many.dots.txt" by substituting dots (exept for the last
 # one!) with a space
   $ touch {1..20}-file.with.many.dots.txt
   $ zmv '(*.*)(.*)' '${1//./ }$2'
@@ -803,9 +803,9 @@ ZMV-Examples (require autoload zmv)
 # Remove the first 4 chars from a filename
   $ zmv -n '*' '$f[5,-1]' # NOTE: The "5" is NOT a mistake in writing!
 
-# Rename names of all files under the current Dir to lower case, but keep 
-# dirnames as-is. 
-  $ zmv -Qv '(**/)(*)(.D)' '$1${(L)2}' 
+# Rename names of all files under the current Dir to lower case, but keep
+# dirnames as-is.
+  $ zmv -Qv '(**/)(*)(.D)' '$1${(L)2}'
 
 # replace all 4th character, which is "1",  with "2" and so on
   $ autoload -U zmv
@@ -815,30 +815,30 @@ ZMV-Examples (require autoload zmv)
   $ touch 111111111111111{a-z}
   $ autoload zmv
   $ zmv '*' '$f[16,-1]'
-  
+
 # Replace spaces (any number of them) with a single dash in file names
   $ autload zmv
-  $ zmv -n '(**/)(* *)' '$1${2//( #-## #| ##)/-}' 
+  $ zmv -n '(**/)(* *)' '$1${2//( #-## #| ##)/-}'
   # or - with Bash
-  $ find . -depth -name '* *' -exec bash -c ' 
-  > shopt -s extglob 
+  $ find . -depth -name '* *' -exec bash -c '
+  > shopt -s extglob
   > file=$1
-  > dir=${file%/*} 
+  > dir=${file%/*}
   > name=${file##*/}
   > newname=${name//*([ -]) *([ -])/-}
-  > mv -i -- "$file" "$Dir/$newname"' {} {} \; 
+  > mv -i -- "$file" "$Dir/$newname"' {} {} \;
 
 # Clean up file names and remove special characters
-  $ autoload zmv 
-  $ zmv -n '(**/)(*)' '$1${2//[^A-Za-z0-9._]/_}' 
+  $ autoload zmv
+  $ zmv -n '(**/)(*)' '$1${2//[^A-Za-z0-9._]/_}'
 
-# Add *.py to a bunch of python scripts in a directory (some of them end 
+# Add *.py to a bunch of python scripts in a directory (some of them end
 # in *.py and give them all a proper extension
-  $ autoload zmv 
+  $ autoload zmv
   $ zmv -n '(**/)(con*)(#qe,file $REPLY | grep "python script",)' '$1$2.py'
 
 # lowercase all extensions (i. e. *.JPG) incl. subfolders
-  $ autoload zmv 
+  $ autoload zmv
   $ zmv '(**/)(*).(#i)jpg' '$1$2.jpg'
   # Or - without Zsh
   $ find Dir -name '*.[jJ][pP][gG]' -print | while read f
@@ -850,7 +850,7 @@ ZMV-Examples (require autoload zmv)
   > done
 
 # remove leading zeros from file extension
-  $ autoload zmv 
+  $ autoload zmv
   $ ls
   filename.001  filename.003  filename.005  filename.007  filename.009
   filename.002  filename.004  filename.006  filename.008  filename.010
@@ -858,76 +858,76 @@ ZMV-Examples (require autoload zmv)
   $ ls
   filename.1  filename.10  filename.2  filename.3  filename.4  filename.5 ..
 
-# renumber files. 
-  $ autoload zmv 
+# renumber files.
+  $ autoload zmv
   $ ls *
   foo_10.jpg  foo_2.jpg  foo_3.jpg  foo_4.jpg  foo_5.jpg  foo_6.jpg ..
   $ zmv -fQ 'foo_(<0->).jpg(.nOn)' 'foo_$(($1 + 1)).jpg'
   $ ls *
   foo_10.jpg  foo_11.jpg  foo_3.jpg  foo_4.jpg  foo_5.jpg  ...
 
-# adding leading zeros to a filename (1.jpg -> 001.jpg, ..  
-  $ autoload zmv 
+# adding leading zeros to a filename (1.jpg -> 001.jpg, ..
+  $ autoload zmv
   $ zmv '(<1->).jpg' '${(l:3::0:)1}.jpg'
 
 # See above, but now only files with a filename >= 30 chars
-  $ autoload zmv 
+  $ autoload zmv
   $ c=1 zmv "${(l:30-4::?:)}*.foo" '$((c++)).foo'
 
 # Replace spaces in filenames with a underline
-  $ autoload zmv 
+  $ autoload zmv
   $ zmv '* *' '$f:gs/ /_'
 
 # Change the suffix from *.sh to *.pl
-  $ autoload zmv 
+  $ autoload zmv
   $ zmv -W '*.sh' '*.pl'
 
 # Add a "".txt" extension to all the files within ${HOME}
   # ``-.'' is to only rename regular files or symlinks to regular files,
   # ``D'' is to also rename hidden files (dotfiles))
-  $ autoload zmv 
+  $ autoload zmv
   $ zmv -Q '/home/**/*(D-.)' '$f.txt'
   # Or to only rename files that don't have an extension:
   $ zmv -Q '/home/**/^?*.*(D-.)' '$f.txt'
 
 # Recursively change filenames with characters ? [ ] / = + < > ; : " , - *
-  $ autoload zmv 
+  $ autoload zmv
   $ chars='[][?=+<>;",*-]'
   $ zmv '(**/)(*)' '$1${2//$~chars/%}'
 
 # Removing single quote from filenames (recursively)
-  $ autoload zmv 
+  $ autoload zmv
   $ zmv -Q "(**/)(*'*)(D)" "\$1\${2//'/}"
 
-# When a new file arrives (named file.txt) rename all files in order to 
-# get (e. g. file119.txt becomes file120.txt, file118.txt becomes 
+# When a new file arrives (named file.txt) rename all files in order to
+# get (e. g. file119.txt becomes file120.txt, file118.txt becomes
 # file119.txt and so on ending with file.txt becoming file1.txt
-  $ autoload zmv 
+  $ autoload zmv
   $ zmv -fQ 'file([0-9]##).txt(On)' 'file$(($1 + 1)).txt'
 
 # lowercase/uppercase all files/directories
-  $ autoload zmv 
+  $ autoload zmv
   $ zmv '(*)' '${(L)1}' # lowercase
   $ zmv '(*)' '${(U)1}' # uppercase
 
 # Remove the suffix *.c from all C-Files
-  $ autoload zmv 
+  $ autoload zmv
   $ zmv '(*).c' '$1'
 
 # Uppercase only the first letter of all *.mp3 - files
-  $ autoload zmv 
+  $ autoload zmv
   $ zmv '([a-z])(*).mp3' '${(C)1}$2.mp3'
 
 # Copy the target `README' in same directory as each `Makefile'
-  $ autoload zmv 
+  $ autoload zmv
   $ zmv -C '(**/)Makefile' '${1}README'
 
 # Removing single quote from filenames (recursively)
-  $ autoload zmv 
+  $ autoload zmv
   $ zmv -Q "(**/)(*'*)(D)" "\$1\${2//'/}"
 
 # Rename pic1.jpg, pic2.jpg, .. to pic0001.jpg, pic0002.jpg, ..
-  $ autoload zmv 
+  $ autoload zmv
   $ zmv 'pic(*).jpg' 'pic${(l:4::0:)1}.jpg'
   $ zmv '(**/)pic(*).jpg' '$1/pic${(l:4::0:)2}.jpg' # recursively
 -------------------------------------------------------------------------------
@@ -941,8 +941,8 @@ zsh/pcre (require zmodload zsh/pcre)
 
 -------------------------------------------------------------------------------
 # Copy files of a certain period (date indicated in the filenames)
-  $ zmodload zsh/pcre 
-  $ ls -d -- *(e:'[[ $REPLY -pcre-match pcre-regexp ]]':) 
+  $ zmodload zsh/pcre
+  $ ls -d -- *(e:'[[ $REPLY -pcre-match pcre-regexp ]]':)
   # or
   $ m() { [[ $1 -pcre-match pcre-regexp ]] }
   $ ls -d -- *(+m)
@@ -951,7 +951,7 @@ zsh/pcre (require zmodload zsh/pcre)
 zsh/clone (require zmodload zsh/clone)
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 -------------------------------------------------------------------------------
-# Creates a forked instance of the current shell ($! is set to zero) and 
+# Creates a forked instance of the current shell ($! is set to zero) and
 # execute ``command'' on /dev/tty8 (for this example).
   $ zmodload zsh/clone
   $ clone /dev/tty8 && (($! == 0)) && exec command
@@ -969,20 +969,20 @@ zsh/datetime (require zmodload zsh/datetime)
   $ $ zmodload zsh/datetime
   $ setopt extendedglob
   $ touch aaa_bbb_20041212_c.dat eee_fff_20051019_g.dat
-  $ strftime -s pattern \ 
+  $ strftime -s pattern \
     '???_???_<0-%Y%m%d>_?.dat' $((EPOCHSECONDS - 365 * 24 * 60 * 60 / 2))
   $ print -rl -- $~pattern
   aaa_bbb_20041212_c.dat
-  $ print -rl -- $pattern 
+  $ print -rl -- $pattern
   ???_???_<0-20050815>_?.dat
 
-# Search files size == 0, to be based on the file name containing a date 
+# Search files size == 0, to be based on the file name containing a date
 # rather than the "last modified" date of the file
-  $ zmodload -i zsh/datetime 
-  $ strftime -s file "abc_de_%m%d%Y.dat" $((EPOCHSECONDS - 24 * 60 * 60 )) 
-  $ files=(**/$file(N.L0)) 
-  $ (( $#files > 0 )) && print -rl -- $files | \ 
-    mailx -s "empty files"  foo@bar.tdl  
+  $ zmodload -i zsh/datetime
+  $ strftime -s file "abc_de_%m%d%Y.dat" $((EPOCHSECONDS - 24 * 60 * 60 ))
+  $ files=(**/$file(N.L0))
+  $ (( $#files > 0 )) && print -rl -- $files | \
+    mailx -s "empty files"  foo@bar.tdl
 -------------------------------------------------------------------------------
 
 zsh/stat (require zmodload zsh/stat)
@@ -993,7 +993,7 @@ zsh/stat (require zmodload zsh/stat)
   $ file1=foo
   $ file2=bar
   $ touch bar & sleep 5 & touch foo
-  $ echo $file1 is $(($(stat +mtime $file2) - \ 
+  $ echo $file1 is $(($(stat +mtime $file2) - \
     $(stat +mtime $file1))) seconds older than $file2.
   bar is 5 seconds older than foo
 
@@ -1006,7 +1006,7 @@ zsh/stat (require zmodload zsh/stat)
   $ zmodload zsh/stat
   $ ls -fld ./**/*(d`stat +device .`OL[1,100])
 
-# Get only the user name and the file names from (like 
+# Get only the user name and the file names from (like
 # ls -l * | awk '{print $3" " $8}')
   $ zmodload zsh/stat
   $ for file; do
@@ -1025,21 +1025,21 @@ zsh/stat (require zmodload zsh/stat)
 # ``[1]'': return only first one
   $ zmodload zsh/stat
   $ stat +size ./*(DOL[1])
-  
+
 # file size in bytes
   $ zmodload zsh/stat
   $ stat -L +size ~/.zshrc
   4707
 
 # Delete files in a directory that hasn't been accessed in the last ten days
-# and send ONE mail to the owner of the files informing him/her of the files' 
+# and send ONE mail to the owner of the files informing him/her of the files'
 # deletion.
   $ zmodload zsh/stat zsh/files
   $ typeset -A f; f=()
   $ rm -f /path/**/*(.a+10e{'stat -sA u +uidr $REPLY; f[$u]="$f[$u]$REPLY"'})
   $ for user (${(k)f}) {print -rn $f[$user]|mailx -s "..." $user}
 
-# Get a "ls -l" on all the files in the tree that are younger than a 
+# Get a "ls -l" on all the files in the tree that are younger than a
 # specified age
   $ zmodload zsh/stat
   $ for d (. ./**/*(N/m-2))
@@ -1056,13 +1056,13 @@ zsh/stat (require zmodload zsh/stat)
   $ stat -F '%d %m %Y' +mtime ~/.zshrc
   30 06 2004
   $ stat -F '%D' +mtime ~/.zshrc
-  06/30/04 
+  06/30/04
 -------------------------------------------------------------------------------
 
 zsh/files (require zmodload zsh/files)
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 -------------------------------------------------------------------------------
-# search a directory for files containing a certain string then copy those 
+# search a directory for files containing a certain string then copy those
 # files to another directory.
   $ zmodload zsh/files
   $ IFS=$'\0'
@@ -1076,7 +1076,7 @@ zsh/mapfile (require zmodload zsh/mapfile)
   $ zmodload zsh/mapfile
   $ pattern1="foo"
   $ pattern2="bar foo"
-  $ print -l ./**/*(DN.e{'z=$mapfile[$REPLY] && [[ $z = *$pattern1* && \ 
+  $ print -l ./**/*(DN.e{'z=$mapfile[$REPLY] && [[ $z = *$pattern1* && \
     $z = *$pattern2* ]]'})
 # or a solution in combination with zsh/pcre
   $ zmodload -i zsh/mapfile zsh/pcre
@@ -1093,10 +1093,10 @@ zsh/mapfile (require zmodload zsh/mapfile)
 # or - for case insensitive
   $ setopt extendedglob
   $ print -rl -- ${${=mapfile[/etc/passwd]}:#*(#i)root*}
-  
-# If a XML-file contains stuff like ``<TAGA/>'' and ``<TAGB/>'', number 
-# this empty tags (ones ending in '/>') so if encountered in the same 
-# order, the preceeding tags would become ``<TAGA/>1</TAGA>'' and 
+
+# If a XML-file contains stuff like ``<TAGA/>'' and ``<TAGB/>'', number
+# this empty tags (ones ending in '/>') so if encountered in the same
+# order, the preceeding tags would become ``<TAGA/>1</TAGA>'' and
 # ``<TAGB/>2</TAGB>''
   $ zmodload zsh/mapfile
   $ cnt=0
@@ -1105,10 +1105,10 @@ zsh/mapfile (require zmodload zsh/mapfile)
 
 # removing all files in users Maildir/new that contain ``filename="gone.src''
   $ zmodload zsh/{files,mapfile}
-  $ rm -f /u1/??/*/Maildir/new/100*(.e{'[[ $mapfile[$REPLY] == \ 
+  $ rm -f /u1/??/*/Maildir/new/100*(.e{'[[ $mapfile[$REPLY] == \
     *filename=\"gone.scr\"* ]]'})
 
-# Grep out the Title from a postscript file and append that value to the 
+# Grep out the Title from a postscript file and append that value to the
 # end of the filename
   $ autoload -U zmv
   $ zmodload zsh/mapfile
@@ -1121,7 +1121,7 @@ zsh/mathfunc (require zmodload zsh/mathfunc)
 $ zmodload zsh/mathfunc
 $ echo $(( sin(1/4.0)**2 + cos(1/4.0)**2 - 1 ))
   -1.1102230246251565e-16
-$ echo $(( pi = 4.0 * atan(1.0) )) 
+$ echo $(( pi = 4.0 * atan(1.0) ))
   3.1415926535897931
 $ echo $(( f = sin(0.3) ))
   0.29552020666133955
@@ -1184,9 +1184,9 @@ zsh/zftp (require zmodload zsh/zftp)
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 -------------------------------------------------------------------------------
  $ autoload -U zfinit
- $ zfinit  
+ $ zfinit
  $ zfparams www.example.invalid myuserid mypassword
- $ zfopen 
+ $ zfopen
  $ zfcd tips
  $ zfls -l zshtips.html
  $ zfput zshtips.html
@@ -1212,15 +1212,15 @@ zsh/zftp (require zmodload zsh/zftp)
   >     zfget $file
   $ done
   $ zfclose
-  
-# Upload all regular files in $HOME/foobar (recursive) that are newer than 
+
+# Upload all regular files in $HOME/foobar (recursive) that are newer than
 # two hours to ftp.foobar.invalid/path/to/upload
   $ autoload -U zfinit ; zfinit
   $ zfopen ftp.foobar.invalid/path/to/upload
   $ cd $HOME/foobar
   $ zfput -r **/*(.mh-2)
   $ zfclose
-  
+
 # long list of files on a ftp
   $ autoload -U zfinit ; zfinit
   $ zfopen some-host
@@ -1349,7 +1349,7 @@ caption always "%3n %t%? (%u)%?%?: %h%?"
 
 Special variables which are assigned:
 ------------------------------------------------------
-$LINENO $RANDOM $SECONDS $COLUMNS $HISTCHARS $UID 
+$LINENO $RANDOM $SECONDS $COLUMNS $HISTCHARS $UID
 $EUID $GID $EGID $USERNAME $fignore $mailpath $cdpath
 ------------------------------------------------------
 
@@ -1437,7 +1437,7 @@ SEE ALSO
 --------
 Manpages of zsh:
 ------------------------------------------------------------------
-       zsh          Zsh overview 
+       zsh          Zsh overview
        zshall       Tthe Z shell meta-man page
        zshbuiltins  Zsh built-in commands
        zshcompctl   Zsh completion control