Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: Rewrite of compsys.yo

Oliver Kiddle wrote:
> For _arguments, there seems to now be no documentation for the option
> descriptions that appear in square brackets.

Do you mean something other than this chunk?

An explanation string may be appended to any of the preceding forms of
var(optspec) by enclosing it in brackets, as in `tt(-q[query operation])'.

The tt(verbose) style is used to decide whether the explanation strings
are displayed with the option in a completion listing.

If no bracketed explanation string is given but the tt(auto-description)
style is set and only one argument is described for this var(optspec), the
value of the style is displayed, with any appearance of the sequence
`tt(%d)' in it replaced by the var(message) of the first var(optarg)
that follows the var(optspec); see below.
> The old documentation also seemed to be implying that setting $context,
> $line and $opt_args was dependant on using -R.

It did indeed, I just copied that.

> Also,
> someone has recently posted about a bug with pwd and metafy() to the
> sourceforge tracker which probably needs looking at.

The fix looks all right and I've just committed it to both branches:

*Submitted By:* IKEGAMI, Tsutomu (ikegami)
*Date Submitted:* 2003-04-16 09:18

I'm using zsh on Mac OS X, where filenames are encoded with UTF-8.
There, pwd builtin command gives a wrong answer if:
1) used inside of a shell-script,
2) there's no preceding cd command,
3) chase_links option is off,
4) and the script is launched from a 'Kanji' directory.
The 'Kanji' directory means that some characters outside of ASCII set
(0x20-0x7f) are contained in the path.

Pwd command uses internal variable char *pwd for its answer. *Pwd
is initialized in init.c, where PWD environment variable is refered.
PWD environment variable may contain META characters under UTF-8
encoding, but it is used without metafy().

--- Src/init.c.org Wed Apr 16 17:26:33 2003
+++ Src/init.c Wed Apr 16 17:51:29 2003
@@ -753,7 +753,8 @@
* initialize `PWD' from `HOME' */
if (ispwd(home))
pwd = ztrdup(home);
- else if ((ptr = zgetenv("PWD")) && ispwd(ptr))
+ else if ( (ptr = zgetenv("PWD")) && (strlen(ptr) < PATH_MAX) &&
+ (ptr = metafy(ptr, -1, META_STATIC), ispwd(ptr)) )
pwd = ztrdup(ptr);
pwd = metafy(zgetcwd(), -1, META_DUP);

Peter Stephenson <pws@xxxxxxxxxxxxxxxxxxxxxxxx>
Work: pws@xxxxxxx
Web: http://www.pwstephenson.fsnet.co.uk

Messages sorted by: Reverse Date, Date, Thread, Author