* pws-12
@ 1999-03-13 15:00 Peter Stephenson
1999-03-14 5:04 ` BUG: 3.1.5-pws-11 completion coredumps Geoff Wing
` (4 more replies)
0 siblings, 5 replies; 9+ messages in thread
From: Peter Stephenson @ 1999-03-13 15:00 UTC (permalink / raw)
To: Zsh hackers list
This week's version is brought to you by the letters p, w and s and the
number 12.
http://www.ifh.de/~pws/computing/
-rw-r--r-- 1 pws quadrics 307861 Mar 13 15:32 zsh-3.1.5-pws-12.doc.tar.bz2
-rw-r--r-- 1 pws quadrics 467481 Mar 13 15:32 zsh-3.1.5-pws-12.doc.tar.gz
-rw-r--r-- 1 pws quadrics 716644 Mar 13 15:32 zsh-3.1.5-pws-12.tar.bz2
-rw-r--r-- 1 pws quadrics 887161 Mar 13 15:32 zsh-3.1.5-pws-12.tar.gz
I have discovered some problems when the build directory is in a different
place from the source directory: notably, some files such as modules-bltin,
signames.c and sigcount.h are created in the source directory instead of
the build directory, so the first cannot be found and all of them conflict
with any other build going on in any other directory. (And I didn't even
know build was a noun.)
The most noticeably change this week was that some of the old new
completion variables have turned into bits of the associative array
compconfig. In particular, $COMPDUMP has gone. You can now specify it as
an argument to compinit: source ~/..../compinit -d mydumpfile
There is a patch which is supposed to help with systems that clobber
typeahead when the typeahead extends onto lines read with $PS2 (the PS2
wasn't the problem, it just happened that when reading lines after the
first the terminal mode was altered too often). I don't know if this
works, and I'd like to hear. There may be some other unnecessary terminal
handling which is still making life difficult.
Here is the list of changees included.
Sven: 5670: parameter completion fix
Sven: 5671: another small parameter fix for multiple braces
Sven: 5675: tidying up for zle_tricky.c
pws: from autoconf 2.13: new config.guess, too.
Sven: 5676: all Completion example functions return a status
Sven: 5677, 5679: Completion/User/_long_options and consequent upgrades for
Completion/User files which use long GNU-style options.
Sven: 5682: bindkey fix
Sven: 5692: remove compstate[matcher] test from _long_options
Sven: 5696, 5697: "${${path}[1]}" indexes on characters again
Sven: 5698: array indexing in _long_options and _multi_parts
Sven: 5699: matching prefixes of various sorts
Sven: 5701: _main_complete, _multi_parts, _path_files, a few cosmetic
changes.
Sven: 5704: _long_options
Sven: 5707: tokenization changes
Sven: 5708: completion manual, -M anchors must be matched explicitly
Sven: 5710: zle_tricky.c, completion inside words
Sven: 5712: _path_files, noglobcomplete fix
Sven: 5713: zle_tricky.c, interesting code specimen made extinct
Sven: 5714: _path_files: failed completions get left alone more often
Sven: 5716: zle.h, zle_misc.c, zle_tricky.c: iremovesuffix() can be told
whether to keep a list of matches
Andrej: 5719: _bindkey can use - as anchor for wildcard matching
Will Day: 5724 (+postprocessing, 5741): signames2.awk: match extra spaces
if produced by CPP.
Sven: 5726: zle_tricky.c: ctokenize() fix and parameter completion
pws: 5729: _bindkey doc
Sven: 5732: _a2ps, _long_options
Sven: 5736: completion before = in assignment
pws: 5737: ${foo#* } is more efficient in ordinary cases
Sven: zsh-users/2211 (+ p -> s): setopt -m handles underscores and case
sensitivity
Lehti Rami: 5754: --disable-restricted-r stops the shell becoming
restricted when its name starts with r
Sven: 5756: compstate[force_list]
Sven: 5757: compconfig
Sven: 5758: _path_files accepts -q, -r and -R options
pws: www archive: updated Etc/FAQ finally, keep forgetting
Sven: 5759: math environment fixes
Sven: 5761: remove unnecessary compiler warnings in compctl.c
Sven: 5766: _path_files closer to compctl/compgen behaviour
Sven: 5770: _path_files again
Sven: 5775: correcting completion will not ignore everything the user has
typed; prefix quote fix
pws: 5776: untested patch for typeahead problems when reading multiple
lines of input
pws: unposted archive changes: .distfiles in Completion hierarchy, dunno
what these do but it looks better; _comp_parts is now _sep_parts; moved
_long_options into Base and mentioned it in Completion/README.
Geoff: 5779: correct mistakes some bozo (guess who) made testing rlim_t for
long long.
--
Peter Stephenson <pws@ibmth.df.unipi.it> Tel: +39 050 844536
WWW: http://www.ifh.de/~pws/
Dipartimento di Fisica, Via Buonarroti 2, 56127 Pisa, Italy
^ permalink raw reply [flat|nested] 9+ messages in thread
* BUG: 3.1.5-pws-11 completion coredumps
1999-03-13 15:00 pws-12 Peter Stephenson
@ 1999-03-14 5:04 ` Geoff Wing
1999-03-14 6:14 ` Bart Schaefer
1999-03-15 7:39 ` pws-12 Andrej Borsenkow
` (3 subsequent siblings)
4 siblings, 1 reply; 9+ messages in thread
From: Geoff Wing @ 1999-03-14 5:04 UTC (permalink / raw)
To: zsh-workers
Heyla,
may be fixed in pws-12 but nothing in pws's list seemed to indicate so.
Couple of core dumps with completion. pws-11 with all completion stuff
installed.
Doing ``~/src/she<TAB>'' (AUTO_CD obviously) at the prompt gave me:
~/src/she BUG: attempt to free storage at invalid address
BUG: size wrong in freenode()
BUG: attempt to free storage at invalid address
and I think I just overwrote it with another coredump (doing the same
sort of thing) so this trace might not match the above note - but I've
kept this dump in case further information is required.
This is totally unmeaningful to me but someone who knows the structures
might be able to ask for the appropriate information.
#0 simplifyright (l=0x87320) at utils.c:2363
2362 c = l->left->left->left;
2363 if (c->type != SIMPLE || nonempty(c->args) || nonempty(c->redir)
(gdb) bt
#0 simplifyright (l=0x87320) at utils.c:2363
#1 0x354ff in gettext2 (n=0x87320) at text.c:173
#2 0x358f2 in gettext2 (n=0x871a0) at text.c:321
#3 0x35864 in gettext2 (n=0x87180) at text.c:293
#4 0x353af in getjobtext (n=0x87180) at text.c:135
#5 0xaf75 in execpline2 (pline=0x87170, how=2, input=0, output=0, last1=0)
at exec.c:924
#6 0xaa7f in execpline (l=0x8715c, how=2, last1=0) at exec.c:771
#7 0xa758 in execlist (list=0x8714c, dont_change_job=1, exiting=0)
at exec.c:650
#8 0x211ce in execwhile (cmd=0x6d4b8) at loop.c:301
..............
(gdb) p *(l->left)
$6 = {ntype = 1073746177, type = 0, flags = 0, left = 0x87344, right = 0x0}
(gdb) p *(l->left->left)
$7 = {ntype = 1073746178, type = 0, left = 0x0, right = 0x0}
--
Geoff Wing <gcw@pobox.com> Mobile : (Australia) 0412 162 441
Work URL: http://www.primenet.com.au/ Ego URL: http://pobox.com/~gcw/
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: BUG: 3.1.5-pws-11 completion coredumps
1999-03-14 5:04 ` BUG: 3.1.5-pws-11 completion coredumps Geoff Wing
@ 1999-03-14 6:14 ` Bart Schaefer
1999-03-14 7:15 ` Geoff Wing
0 siblings, 1 reply; 9+ messages in thread
From: Bart Schaefer @ 1999-03-14 6:14 UTC (permalink / raw)
To: mason, zsh-workers
On Mar 14, 5:04am, Geoff Wing wrote:
} Subject: BUG: 3.1.5-pws-11 completion coredumps
}
} may be fixed in pws-12 but nothing in pws's list seemed to indicate so.
}
} Couple of core dumps with completion. pws-11 with all completion stuff
} installed.
} Doing ``~/src/she<TAB>'' (AUTO_CD obviously) at the prompt
I can't duplicate this in the pws-12 that I just built, at least with
only
Src/zsh -f
fpath=($PWD/Completion/*(/))
source Completion/Core/compinit
setopt autocd
You haven't said how many possible completions of ~/src/she* there are,
or whether there are any symlinks involved, so I can't be sure I'm
trying the right things ...
However, I can get this minor odd behavior:
zsh% ~/zc<TAB>
zsh% ~//zc
There is no possible match for "zc", though there are three directories
with names starting with "z". The slash gets doubled only when there's
no possible match.
--
Bart Schaefer Brass Lantern Enterprises
http://www.well.com/user/barts http://www.brasslantern.com
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: BUG: 3.1.5-pws-11 completion coredumps
1999-03-14 6:14 ` Bart Schaefer
@ 1999-03-14 7:15 ` Geoff Wing
0 siblings, 0 replies; 9+ messages in thread
From: Geoff Wing @ 1999-03-14 7:15 UTC (permalink / raw)
To: zsh-workers
Bart Schaefer <schaefer@brasslantern.com> typed:
:On Mar 14, 5:04am, Geoff Wing wrote:
:} Subject: BUG: 3.1.5-pws-11 completion coredumps
:} may be fixed in pws-12 but nothing in pws's list seemed to indicate so.
:} Couple of core dumps with completion. pws-11 with all completion stuff
:} installed.
:} Doing ``~/src/she<TAB>'' (AUTO_CD obviously) at the prompt
:I can't duplicate this in the pws-12 that I just built, at least with
:only
: Src/zsh -f
: fpath=($PWD/Completion/*(/))
: source Completion/Core/compinit
: setopt autocd
:You haven't said how many possible completions of ~/src/she* there are,
:or whether there are any symlinks involved, so I can't be sure I'm
:trying the right things ...
~/src/she* has 1 match - a directory ``~/src/shells''. Also, ~/src is
the only thing starting with s in ~ if that's relevant.
I just got a dump at the same line - during startup - when it's going
through the init files /etc/z* + ~/.z* - but it's not occuring every time
which makes it somewhat more troublesome. It may be a memory allocation
problem from elsewhere manifesting there, but I don't know anything about
that code so ....
--
Geoff Wing <gcw@pobox.com> Mobile : (Australia) 0412 162 441
Work URL: http://www.primenet.com.au/ Ego URL: http://pobox.com/~gcw/
^ permalink raw reply [flat|nested] 9+ messages in thread
* RE: pws-12
1999-03-13 15:00 pws-12 Peter Stephenson
1999-03-14 5:04 ` BUG: 3.1.5-pws-11 completion coredumps Geoff Wing
@ 1999-03-15 7:39 ` Andrej Borsenkow
1999-03-15 10:52 ` _pdf needs updating Bruce Stephens
` (2 subsequent siblings)
4 siblings, 0 replies; 9+ messages in thread
From: Andrej Borsenkow @ 1999-03-15 7:39 UTC (permalink / raw)
To: Peter Stephenson, Zsh hackers list
>
> pws: from autoconf 2.13: new config.guess, too.
>
config.guess from 2.13 does not recognize Reliant UNIX. It is in CVS and
should be in the next release. Peter, could you reapply my old patch or get
the latest config.guess (+config.sub) from CVS?
TIA
/andrej
^ permalink raw reply [flat|nested] 9+ messages in thread
* _pdf needs updating
1999-03-13 15:00 pws-12 Peter Stephenson
1999-03-14 5:04 ` BUG: 3.1.5-pws-11 completion coredumps Geoff Wing
1999-03-15 7:39 ` pws-12 Andrej Borsenkow
@ 1999-03-15 10:52 ` Bruce Stephens
1999-03-15 11:24 ` pws-12 Peter Stephenson
1999-03-15 11:42 ` _tar uses _multi_parts Bruce Stephens
4 siblings, 0 replies; 9+ messages in thread
From: Bruce Stephens @ 1999-03-15 10:52 UTC (permalink / raw)
To: Zsh hackers list
Just copy Completion/User/_ps, say, and modify it in the obvious way.
Otherwise the _pdf completion doesn't work.
(Of course, this *would* have to be the first one I tried...)
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: pws-12
1999-03-13 15:00 pws-12 Peter Stephenson
` (2 preceding siblings ...)
1999-03-15 10:52 ` _pdf needs updating Bruce Stephens
@ 1999-03-15 11:24 ` Peter Stephenson
1999-03-15 11:42 ` _tar uses _multi_parts Bruce Stephens
4 siblings, 0 replies; 9+ messages in thread
From: Peter Stephenson @ 1999-03-15 11:24 UTC (permalink / raw)
To: Zsh hackers list
Peter Stephenson wrote:
> I have discovered some problems when the build directory is in a different
> place from the source directory: notably, some files such as modules-bltin,
> signames.c and sigcount.h are created in the source directory instead of
> the build directory, so the first cannot be found and all of them conflict
> with any other build going on in any other directory. (And I didn't even
> know build was a noun.)
It looks like this was a VPATH feature I've noticed before. If you've
produce the files signames.c, modules-bltin etc. in the main Src directory,
and VPATH is set to that, it will insist on overwriting those files.
Anyway, I've tried again with a clean source hierarchy and it built
flawlessly in another directory.
--
Peter Stephenson <pws@ibmth.df.unipi.it> Tel: +39 050 844536
WWW: http://www.ifh.de/~pws/
Dipartimento di Fisica, Via Buonarroti 2, 56127 Pisa, Italy
^ permalink raw reply [flat|nested] 9+ messages in thread
* _tar uses _multi_parts
1999-03-13 15:00 pws-12 Peter Stephenson
` (3 preceding siblings ...)
1999-03-15 11:24 ` pws-12 Peter Stephenson
@ 1999-03-15 11:42 ` Bruce Stephens
4 siblings, 0 replies; 9+ messages in thread
From: Bruce Stephens @ 1999-03-15 11:42 UTC (permalink / raw)
To: Zsh hackers list
Presumably the fix is:
*** Completion/User/_tar.old Mon Mar 15 11:40:09 1999
--- Completion/User/_tar Mon Mar 15 11:40:17 1999
***************
*** 109,115 ****
_tar_cache_name=$tf
fi
! _multi_parts / _tar_cache_list
else
# See if we should use a path prefix. We have to use eval as the dir can
--- 109,115 ----
_tar_cache_name=$tf
fi
! _sep_parts / _tar_cache_list
else
# See if we should use a path prefix. We have to use eval as the dir can
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: _tar uses _multi_parts
@ 1999-03-15 11:51 Sven Wischnowsky
0 siblings, 0 replies; 9+ messages in thread
From: Sven Wischnowsky @ 1999-03-15 11:51 UTC (permalink / raw)
To: zsh-workers
Bruce Stephens wrote:
> Presumably the fix is:
> ! _multi_parts / _tar_cache_list
> ! _sep_parts / _tar_cache_list
Nay! It was just that `_multi_parts' somehow got omitted from the
distribution.
Bye
Sven
diff -u Completion/Core/_multi_parts Completion/Core/_multi_parts
--- Completion/Core/_multi_parts Mon Mar 15 12:49:22 1999
+++ Completion/Core/_multi_parts Mon Mar 15 12:49:41 1999
@@ -0,0 +1,226 @@
+#autoload
+
+# This gets two arguments, a separator (which should be only one
+# character) and an array. As usual, the array may be given by it's
+# name or literal as in `(foo bar baz)' (words separated by spaces in
+# parentheses).
+# The parts of words from the array that are separated by the
+# separator character are then completed independently.
+
+local sep matches patstr orig matchflags pref i tmp1 tmp2 nm
+local group expl menu origflags mflags
+
+_match_test _multi_parts || return 1
+
+# Save the current number of matches to be able to return if we added
+# matches or not.
+
+nm=$compstate[nmatches]
+
+# Get the options.
+
+group=()
+expl=()
+while getopts "J:V:X:" opt; do
+ case "$opt" in
+ [JV]) group=("-$opt" "$OPTARG");;
+ X) expl=(-X "$OPTARG");;
+ esac
+done
+shift OPTIND-1
+
+# Get the arguments, first the separator, then the array. The array is
+# stored in `matches'. Further on this array will always contain those
+# words from the original array that still match everything we have
+# tried to match while we walk through the string from the line.
+
+sep="$1"
+if [[ "${2[1]}" = '(' ]]; then
+ matches=( ${2[2,-2]} )
+else
+ matches=( "${(@P)2}" )
+fi
+
+# Now build the pattern from what we have on the line. We also save
+# the original string in `orig'.
+
+if [[ $#compstate[pattern_match] -ne 0 ]]; then
+ patstr="${PREFIX}*${SUFFIX}*"
+else
+ patstr="${PREFIX:q}*${SUFFIX:q}*"
+fi
+orig="${PREFIX}${SUFFIX}"
+
+[[ $compstate[insert] = *menu || -n "$_comp_correct" ||
+ ( $#compstate[pattern_match] -ne 0 &&
+ "$orig" != "${orig:q}" ) ]] && menu=yes
+
+matchflags=""
+_match_pattern _path_files patstr matchflags
+origflags="$matchflags"
+[[ -n "$_comp_correct" ]] && matchflags="$matchflags(#a$_comp_correct)"
+
+patstr="${${patstr//$sep/*$sep}//\*##/*}"
+
+# First we will skip over those parts of the matches for which we have
+# exact substrings on the line. In `pref' we will build the
+# unambiguous prefix string.
+
+pref=''
+while [[ "$orig" = *${sep}* ]] do
+
+ # First build the pattern to use, then collect all strings from
+ # `matches' that match the prefix we have and the exact substring in
+ # the array `tmp1'.
+
+ if [[ -n "$_comp_correct" && "${#orig%%${sep}*}" -le _comp_correct ]]; then
+ mflags="$origflags"
+ else
+ mflags="$matchflags"
+ fi
+
+ pat="${${${patstr#*${sep}}%${sep}*}//\*/[^${sep}]#}"
+ tmp1=( "${(@M)matches:#${~mflags}${orig%%${sep}*}${sep}${~pat}}" )
+
+ # If there are no words matching the exact substring, stop.
+
+ (( $#tmp1 )) || break
+
+ # Otherwise add the part to the prefix, remove it from the matches
+ # (and also remove all words not matching the string at all), and
+ # set `patstr' and `orig' to the next component.
+
+ tmp1="${orig%%${sep}*}${sep}"
+ pref="$pref$tmp1"
+ matches=("${(@)${(@)${(@M)matches:#${tmp1}*}#$tmp1}:#}")
+ orig="${orig#*${sep}}"
+ patstr="${patstr#*${sep}}"
+done
+
+# Now we get all the words that still match in `tmp1'.
+
+if [[ "$patstr" = *${sep}* ]]; then
+ tmp1="${patstr%${sep}*}${sep}"
+ pat="${tmp1//\*/[^${sep}]#}${patstr##*${sep}}"
+else
+ pat="$patstr"
+fi
+if [[ -n "$_comp_correct" && "${#orig%%${sep}*}" -le _comp_correct ]]; then
+ mflags="$origflags"
+else
+ mflags="$matchflags"
+fi
+tmp1=( "${(@M)matches:#${~mflags}${~pat}}" )
+
+if (( $#tmp1 )); then
+
+ # There are words that are matched, put them into `matches' and then
+ # move all unambiguous components from the beginning into `pref'.
+
+ matches=( "$tmp1[@]" )
+ while [[ "$matches[1]" = *${sep}* ]]; do
+
+ # We just take the first component of the first match and see if
+ # there are other matches with a different prefix (these are
+ # collected in `tmp2'). If there are any, we give up.
+
+ tmp1="${matches[1]%%${sep}*}${sep}"
+ tmp2=( "${(@)matches:#${tmp1}*}" )
+ (( $#tmp2 )) && break
+
+ # All matches have the same prefix, put it into `pref' and remove
+ # it from the matches.
+
+ pref="$pref$tmp1"
+ matches=( "${(@)${(@)matches#$tmp1}:#}" )
+
+ if [[ "$orig" = *${sep}* ]]; then
+ orig="${orig#*${sep}}"
+ else
+ orig=''
+ fi
+ done
+
+ # Now we can tell the completion code about the things we
+ # found. Strings that have a separator will be added with a suffix.
+
+ if [[ -z "$orig" && "$PREFIX$SUFFIX" != "$pref$orig" ]]; then
+ compadd -QU "$group[@]" "$expl[@]" -i "$IPREFIX" -S '' - "${pref}${orig}"
+ elif [[ -n "$menu" ]]; then
+ if [[ "$orig" = *${sep}* ]]; then
+ orig="${sep}${orig#*${sep}}"
+ else
+ orig=''
+ fi
+ for i in "$matches[@]" ; do
+ if [[ "$i" = *${sep}* ]]; then
+ compadd -U "$group[@]" "$expl[@]" -i "$IPREFIX" \
+ -p "$pref" -s "$orig" - "${i%%${sep}*}${sep}"
+ else
+ compadd -U "$group[@]" "$expl[@]" -i "$IPREFIX" \
+ -p "$pref" -s "$orig" - "${i%%${sep}*}"
+ fi
+ done
+ else
+ for i in "$matches[@]" ; do
+ if [[ "$i" = *${sep}* ]]; then
+ compadd -U -i "$IPREFIX" -p "$pref" -s "${i#*${sep}}" \
+ "$group[@]" "$expl[@]" -M "r:|${sep:q}=*" - "${i%%${sep}*}${sep}"
+ else
+ compadd -U "$group[@]" "$expl[@]" -i "$IPREFIX" -p "$pref" - "$i"
+ fi
+ done
+ fi
+elif [[ "$patstr" = *${sep}* ]]; then
+
+ # We had no words matching the string from the line. But we want to
+ # be friendly and at least expand the prefix as far as we can. So we
+ # will loop through the rest of the string from the line and test
+ # the components one by one.
+
+ while [[ "$patstr" = *${sep}* ]]; do
+
+ # First we get all words matching at least this component in
+ # `tmp1'. If there are none, we give up.
+
+ if [[ -n "$_comp_correct" && "${#orig%%${sep}*}" -le _comp_correct ]]; then
+ mflags="$origflags"
+ else
+ mflags="$matchflags"
+ fi
+ tmp1=( "${(@M)matches:#${~mflags}${~patstr%%${sep}*}${sep}*}" )
+ (( $#tmp1 )) || break
+
+ # Then we check if there are words that have a different prefix.
+
+ tmp2=( "${(@)tmp1:#${tmp1[1]%%${sep}*}${sep}*}" )
+ if (( $#tmp2 )); then
+
+ # There are words with another prefix, so we have found an
+ # ambiguous component. So we just give all possible prefixes to
+ # the completion code together with our prefix and the rest of
+ # the string from the line as the suffix.
+
+ compadd -U "$group[@]" "$expl[@]" -S '' -i "$IPREFIX" -p "$pref" \
+ -s "${sep}${orig#*${sep}}" - "${(@)matches%%${sep}*}"
+ return 0
+ fi
+
+ # All words have the same prefix, so add it to `pref' again and
+ # try the next component.
+
+ pref="$pref${tmp1[1]%%${sep}*}${sep}"
+ matches=( "${(@)matches#${tmp1[1]%%${sep}*}${sep}}" )
+ orig="${orig#*${sep}}"
+ patstr="${patstr#*${sep}}"
+ done
+
+ # Finally, add the unambiguous prefix and the rest of the string
+ # from the line.
+
+ compadd -U "$group[@]" "$expl[@]" -S '' -i "$IPREFIX" -p "$pref" - "$orig"
+fi
+
+# This sets the return value to indicate that we added matches (or not).
+
+[[ nm -ne compstate[nmatches] ]]
--
Sven Wischnowsky wischnow@informatik.hu-berlin.de
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~1999-03-15 11:51 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1999-03-13 15:00 pws-12 Peter Stephenson
1999-03-14 5:04 ` BUG: 3.1.5-pws-11 completion coredumps Geoff Wing
1999-03-14 6:14 ` Bart Schaefer
1999-03-14 7:15 ` Geoff Wing
1999-03-15 7:39 ` pws-12 Andrej Borsenkow
1999-03-15 10:52 ` _pdf needs updating Bruce Stephens
1999-03-15 11:24 ` pws-12 Peter Stephenson
1999-03-15 11:42 ` _tar uses _multi_parts Bruce Stephens
1999-03-15 11:51 Sven Wischnowsky
Code repositories for project(s) associated with this public inbox
https://git.vuxu.org/mirror/zsh/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).