* Re: Bug#355430: zsh: acroread completion prints debugging information [not found] ` <20060325095217.2524443157.qww314159@soup.q.ql.org> @ 2006-03-25 15:11 ` Clint Adams 2006-03-25 18:15 ` Bart Schaefer 0 siblings, 1 reply; 5+ messages in thread From: Clint Adams @ 2006-03-25 15:11 UTC (permalink / raw) To: zsh-workers; +Cc: 355430-forwarded, Jay Berkenbilt > Sorry to have taken so long to do this. The output contains a my > entire environment among other things, so I was reluctant to just > blindly paste it into a bug report without further study. Upon > looking into the problem, it turns out that the problem is caused by > the fact that my /usr/bin/acroread is this shell script: > > #!/bin/sh > exec /usr/lib/Acrobat7.0/bin/acroread ${1+"$@"} > > In the olden days, it used to not work to make /usr/bin/acroread a > link to the actual acroread binary, but this does appear to work now. > The way I found this was to do setopt -x before acroread TAB and to > see that the loads of extra output I got started after evaluating line > 7 of _acroread which shown here including the preceding comment: > > # Try extracting the version number directly from the executable. > # (This will fail if the executable is a wrapper script for acroread.) > local ver=${${${(f)"$(<$commands[$words[1]])"}:#^ver=*}##ver=} > > I'm afraid my zsh isn't good enough to figure out what's happening > there without consulting the manual. Anyway, it seems this more than > just fails if acroread is a wrapper, it actually causes this problem. > > If you are able to reproduce the problem by putting the above script > in your path as acroread, then hopefully I have provided sufficient > information. Otherwise, I will sanitize the output that I get so that > it is suitable for public dissemination. Anyway, here's the beginning > of the output: > > integer 10 readonly '!'=0 > integer 10 readonly '#'=0 > integer 10 readonly '$'=25511 [...] What's happening is that that line is being run as "local" without the argument. Why? ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Bug#355430: zsh: acroread completion prints debugging information 2006-03-25 15:11 ` Bug#355430: zsh: acroread completion prints debugging information Clint Adams @ 2006-03-25 18:15 ` Bart Schaefer 2006-03-25 18:34 ` Clint Adams 0 siblings, 1 reply; 5+ messages in thread From: Bart Schaefer @ 2006-03-25 18:15 UTC (permalink / raw) To: Clint Adams, zsh-workers; +Cc: 355430-forwarded, Jay Berkenbilt On Mar 25, 10:11am, Clint Adams wrote: } Subject: Re: Bug#355430: zsh: acroread completion prints debugging informa } } > The way I found this was to do setopt -x before acroread TAB and to } > see that the loads of extra output I got started after evaluating line } > 7 of _acroread which shown here including the preceding comment: } > } > # Try extracting the version number directly from the executable. } > # (This will fail if the executable is a wrapper script for acroread.) } > local ver=${${${(f)"$(<$commands[$words[1]])"}:#^ver=*}##ver=} The comment is misleading. The test above fails UNLESS the executable is a shell script, not IF the executable is a shell script. I'm not sure if the comment author meant to imply an extra script around the Adobe-supplied default script, or if he got his semantics backwards. } What's happening is that that line is being run as "local" without the } argument. Why? My only guess is that it has something to do with NULLGLOB and the junk that would get spewed out by $(<$command[$words[1]]) in the event that it really was reading directly from a binary executable. ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Bug#355430: zsh: acroread completion prints debugging information 2006-03-25 18:15 ` Bart Schaefer @ 2006-03-25 18:34 ` Clint Adams 2006-03-26 7:01 ` Bart Schaefer 0 siblings, 1 reply; 5+ messages in thread From: Clint Adams @ 2006-03-25 18:34 UTC (permalink / raw) To: Bart Schaefer; +Cc: zsh-workers, 355430, Jay Berkenbilt > My only guess is that it has something to do with NULLGLOB and the junk > that would get spewed out by $(<$command[$words[1]]) in the event that > it really was reading directly from a binary executable. No, it happens for me too, and I don't have acroread installed. Somehow the caret is Plan9-ing away the "ver=" outside the ${} or something. Index: Completion/X/Command/_acroread =================================================================== RCS file: /cvsroot/zsh/zsh/Completion/X/Command/_acroread,v retrieving revision 1.5 diff -u -r1.5 _acroread --- Completion/X/Command/_acroread 10 May 2005 12:26:24 -0000 1.5 +++ Completion/X/Command/_acroread 25 Mar 2006 18:31:38 -0000 @@ -4,12 +4,12 @@ # Try extracting the version number directly from the executable. # (This will fail if the executable is a wrapper script for acroread.) -local ver=${${${(f)"$(<$commands[$words[1]])"}:#^ver=*}##ver=} +local ver=${${${(f)"$(<$commands[$words[1]])"}:#(#s)ver=*}##ver=} [[ -n $ver ]] && _acroread_version=$ver if (( ! $+_acroread_version )); then local acropath=${${(s. .)${${(f)"$($words[1] -help 2>&1)"}[1]}}[2]} - _acroread_version=${${${(f)"$(<$acropath)"}:#^ver=*}##ver=} + _acroread_version=${${${(f)"$(<$acropath)"}:#(#s)ver=*}##ver=} fi if [[ $_acroread_version == 7.* ]]; then ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Bug#355430: zsh: acroread completion prints debugging information 2006-03-25 18:34 ` Clint Adams @ 2006-03-26 7:01 ` Bart Schaefer 2006-03-26 15:12 ` Clint Adams 0 siblings, 1 reply; 5+ messages in thread From: Bart Schaefer @ 2006-03-26 7:01 UTC (permalink / raw) To: Clint Adams; +Cc: zsh-workers, 355430, Jay Berkenbilt On Mar 25, 1:34pm, Clint Adams wrote: } } No, it happens for me too, and I don't have acroread installed. } Somehow the caret is Plan9-ing away the "ver=" outside the ${} } or something. That doesn't seem to be it either. E.g.: schaefer<502> print -R ver=${${${(f)"$(</dev/null)"}:#^ver=*}##ver=} ver= Furthermore, this ... } +local ver=${${${(f)"$(<$commands[$words[1]])"}:#(#s)ver=*}##ver=} ... does not work for me at all. The "^" does not mean "anchor at beginning", it means "do NOT match the following pattern". What's really wanted is: local ver=${${${(Mf)"$(<$commands[$words[1]])"}:#ver=*}##ver=} ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Bug#355430: zsh: acroread completion prints debugging information 2006-03-26 7:01 ` Bart Schaefer @ 2006-03-26 15:12 ` Clint Adams 0 siblings, 0 replies; 5+ messages in thread From: Clint Adams @ 2006-03-26 15:12 UTC (permalink / raw) To: Bart Schaefer; +Cc: zsh-workers, 355430, Jay Berkenbilt > That doesn't seem to be it either. E.g.: > > schaefer<502> print -R ver=${${${(f)"$(</dev/null)"}:#^ver=*}##ver=} > ver= % emulate -R zsh % print -R paco ver=${${${(f)"$(</home/clint/bin/acroread)"}:#^ver=*}##ver=} paco ver=#!/bin/sh exec /usr/local/bin/acroread "$@" % setopt extendedglob % print -R paco ver=${${${(f)"$(</home/clint/bin/acroread)"}:#^ver=*}##ver=} paco ver= % setopt rcexpandparam % print -R paco ver=${${${(f)"$(</home/clint/bin/acroread)"}:#^ver=*}##ver=} paco > } +local ver=${${${(f)"$(<$commands[$words[1]])"}:#(#s)ver=*}##ver=} > > ... does not work for me at all. The "^" does not mean "anchor at > beginning", it means "do NOT match the following pattern". What's > really wanted is: > > local ver=${${${(Mf)"$(<$commands[$words[1]])"}:#ver=*}##ver=} Aha. Index: Completion/X/Command/_acroread =================================================================== RCS file: /cvsroot/zsh/zsh/Completion/X/Command/_acroread,v retrieving revision 1.5 diff -u -r1.5 _acroread --- Completion/X/Command/_acroread 10 May 2005 12:26:24 -0000 1.5 +++ Completion/X/Command/_acroread 26 Mar 2006 15:04:18 -0000 @@ -4,12 +4,12 @@ # Try extracting the version number directly from the executable. # (This will fail if the executable is a wrapper script for acroread.) -local ver=${${${(f)"$(<$commands[$words[1]])"}:#^ver=*}##ver=} +local ver=${${${(Mf)"$(<$commands[$words[1]])"}:#ver=*}##ver=} [[ -n $ver ]] && _acroread_version=$ver if (( ! $+_acroread_version )); then local acropath=${${(s. .)${${(f)"$($words[1] -help 2>&1)"}[1]}}[2]} - _acroread_version=${${${(f)"$(<$acropath)"}:#^ver=*}##ver=} + _acroread_version=${${${(Mf)"$(<$acropath)"}:#ver=*}##ver=} fi if [[ $_acroread_version == 7.* ]]; then ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2006-03-26 15:12 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- [not found] <20060305163923.12356.23913.reportbug@soup.q.ql.org> [not found] ` <20060306020302.GA6489@scowler.net> [not found] ` <20060325095217.2524443157.qww314159@soup.q.ql.org> 2006-03-25 15:11 ` Bug#355430: zsh: acroread completion prints debugging information Clint Adams 2006-03-25 18:15 ` Bart Schaefer 2006-03-25 18:34 ` Clint Adams 2006-03-26 7:01 ` Bart Schaefer 2006-03-26 15:12 ` Clint Adams
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).