* PATCH: _urls and _rpm
@ 2000-06-05 22:09 Oliver Kiddle
2000-06-06 3:48 ` Bart Schaefer
2000-06-06 4:08 ` zparseopts (Re: PATCH: _urls and _rpm) Bart Schaefer
0 siblings, 2 replies; 5+ messages in thread
From: Oliver Kiddle @ 2000-06-05 22:09 UTC (permalink / raw)
To: Zsh workers
I've changed _urls so that it now takes any -g option it is passed and
passes it on to _files.
It would be useful if zparseopts returned 0 only if it found the option
specified so I didn't need to use (( $#glob )) but we'd have to decide
how it would act with more than one option specified. I'm not convinced
by what Bart said earlier about _urls not handling IPREFIX properly
(isn't it supposed to be ignored) but I haven't got easy access to his
e-mail here to check what he said again.
I've also changed _rpm to now use _urls in that one place.
Why does [[ -prefix (f|ht)tp:// ]] give me an error message about the
first bracket? Is that a bug. I got around it by putting a 1 before the
pattern.
Oliver Kiddle
Index: Completion/Linux/_rpm
===================================================================
RCS file: /cvsroot/zsh/zsh/Completion/Linux/_rpm,v
retrieving revision 1.13
diff -u -u -r1.13 _rpm
--- Completion/Linux/_rpm 2000/06/05 02:23:53 1.13
+++ Completion/Linux/_rpm 2000/06/05 23:08:24
@@ -211,12 +211,14 @@
_files -g \*.spec && ret=0
;;
package_file)
- if compset -P '(f|ht)tp://'; then
- _hosts -S/ && ret=0
+ _wanted files expl 'RPM package file' \
+ _files -g '*.(#i)rpm' && ret=0
+ if [[ -prefix 1 (f|ht)tp:// ]]; then
+ _wanted urls expl 'URL of RPM package file' \
+ _urls -f -g '*.(#i)rpm' "${expl[@]}" && ret=0
else
- _alternative \
- 'files:RPM package file:_files -g \*.\(\#i\)rpm' \
- 'prefixes:URL prefix:compadd ftp:// http://' && ret=0
+ _wanted urls expl 'URL of RPM package file' \
+ compadd -S '' "${expl[@]}" ftp:// http:// && ret=0
fi
;;
package_src)
Index: Completion/User/_urls
===================================================================
RCS file: /cvsroot/zsh/zsh/Completion/User/_urls,v
retrieving revision 1.10
diff -u -u -r1.10 _urls
--- Completion/User/_urls 2000/05/31 09:38:26 1.10
+++ Completion/User/_urls 2000/06/05 23:08:24
@@ -38,7 +38,7 @@
# E.g.:
# zstyle ':completion:*:urls' local www /usr/local/apache/htdocs public_html
-local ipre scheme host user uhosts ret=1 expl match
+local ipre scheme host user uhosts ret=1 expl match glob
local urls_path localhttp
zstyle -s ":completion:${curcontext}:urls" path urls_path ||
urls_path="${ZDOTDIR:-$HOME}/.zsh/urls"
@@ -52,6 +52,9 @@
_wanted -C -f files expl file _files "$@" && return 0
fi
+zparseopts -D -E 'g:=glob'
+(( $#glob )) || glob=( -g '*(^/)' )
+
ipre="$IPREFIX"
if ! compset -P '(#b)([-+.a-z0-9]#):'; then
@@ -82,7 +85,7 @@
while _tags; do
while _next_label files expl 'local file'; do
if [[ -prefix / ]]; then
- _path_files "$expl[@]" -S '' -g '*(^/)' && ret=0
+ _path_files "$expl[@]" -S '' "${glob[@]}" && ret=0
_path_files "$expl[@]" -S/ -r '/' -/ && ret=0
elif [[ -z "$PREFIX" ]]; then
compadd -S '/' -r '/' "$expl[@]" "$@" - "${PWD%/}" && ret=0
@@ -103,7 +106,7 @@
_tags -C bookmark files
while _tags; do
while _next_label files expl 'bookmark'; do
- _path_files -W "$urls_path/$scheme" "$expl[@]" -S '' -g '*(^/)' &&
+ _path_files -W "$urls_path/$scheme" "$expl[@]" -S '' "${glob[@]}" &&
ret=0
_path_files -W "$urls_path/$scheme" -S/ -r '/' "$expl[@]" -/ && ret=0
done
@@ -145,7 +148,7 @@
user="$match[1]"
while _tags; do
while _next_label files expl 'local file'; do
- _path_files "$expl[@]" "$@" -W ~$user/$localhttp_userdir -g '*(^/)' && ret=0
+ _path_files "$expl[@]" "$@" -W ~$user/$localhttp_userdir "${glob[@]}" && ret=0
_path_files -S/ -r '/' "$expl[@]" -W ~$user/$localhttp_userdir-/ && ret=0
done
(( ret )) || return 0
@@ -153,7 +156,7 @@
else
while _tags; do
while _next_label files expl 'local file'; do
- _path_files "$expl[@]" "$@" -W $localhttp_documentroot -g '*(^/)' && ret=0
+ _path_files "$expl[@]" "$@" -W $localhttp_documentroot "${glob[@]}" && ret=0
_path_files -S/ -r '/' "$expl[@]" -W $localhttp_documentroot -/ && ret=0
done
(( ret )) || return 0
@@ -162,7 +165,7 @@
else
while _tags; do
while _next_label files expl 'local file'; do
- _path_files "$expl[@]" "$@" -W $urls_path/$scheme/$host -g '*(^/)' && ret=0
+ _path_files "$expl[@]" "$@" -W $urls_path/$scheme/$host "${glob[@]}" && ret=0
_path_files -S/ -r '/' "$expl[@]" -W $urls_path/$scheme/$host -/ && ret=0
done
(( ret )) || return 0
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: PATCH: _urls and _rpm
2000-06-05 22:09 PATCH: _urls and _rpm Oliver Kiddle
@ 2000-06-06 3:48 ` Bart Schaefer
2000-06-06 4:08 ` zparseopts (Re: PATCH: _urls and _rpm) Bart Schaefer
1 sibling, 0 replies; 5+ messages in thread
From: Bart Schaefer @ 2000-06-06 3:48 UTC (permalink / raw)
To: Zsh workers
On Jun 5, 11:09pm, Oliver Kiddle wrote:
} Subject: PATCH: _urls and _rpm
}
} I'm not convinced by what Bart said earlier about _urls not handling
} IPREFIX properly (isn't it supposed to be ignored)
You're right; I was thinking of PREFIX, but of course "compset -P" moves
PREFIX into IPREFIX. [[ -prefix ... ]] is the right solution.
} Why does [[ -prefix (f|ht)tp:// ]] give me an error message
Because module-defined condition tests are a hack?
The parser wants there to be a plain string after any condition test that
begins with a hyphen, and chokes when it gets an opening paren instead.
It never gets near the code that actually implements the -prefix test.
You'd get the same error from `[[ -f (x|y)z ]]'.
--
Bart Schaefer Brass Lantern Enterprises
http://www.well.com/user/barts http://www.brasslantern.com
Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net
^ permalink raw reply [flat|nested] 5+ messages in thread
* zparseopts (Re: PATCH: _urls and _rpm)
2000-06-05 22:09 PATCH: _urls and _rpm Oliver Kiddle
2000-06-06 3:48 ` Bart Schaefer
@ 2000-06-06 4:08 ` Bart Schaefer
2000-06-06 9:58 ` Oliver Kiddle
1 sibling, 1 reply; 5+ messages in thread
From: Bart Schaefer @ 2000-06-06 4:08 UTC (permalink / raw)
To: Zsh workers
On Jun 5, 11:09pm, Oliver Kiddle wrote:
} Subject: PATCH: _urls and _rpm
}
} It would be useful if zparseopts returned 0 only if it found the option
} specified so I didn't need to use (( $#glob )) but we'd have to decide
} how it would act with more than one option specified.
No, that's no good. The whole point of calling it zparseOPTS is that the
things it is parsing are *optional*. It returns nonzero only for things
that are real mistakes.
} +zparseopts -D -E 'g:=glob'
^ ^ Why the quotes?
} +(( $#glob )) || glob=( -g '*(^/)' )
You could use
: ${(A)=glob:=-g '*(^/)'}
instead.
What I can't decide is whether I like the behavior of emptying the array
when no matching option is found. E.g. sometimes I think I'd like to be
able to say
glob=(-g '*(^/)')
zparseopts -D -E g:=glob
and have $glob be unchanged unless a -g really was given. Then I think
about it some more and decide maybe not. Then I think about it some more
and ...
--
Bart Schaefer Brass Lantern Enterprises
http://www.well.com/user/barts http://www.brasslantern.com
Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: zparseopts (Re: PATCH: _urls and _rpm)
2000-06-06 4:08 ` zparseopts (Re: PATCH: _urls and _rpm) Bart Schaefer
@ 2000-06-06 9:58 ` Oliver Kiddle
2000-06-07 5:55 ` Bart Schaefer
0 siblings, 1 reply; 5+ messages in thread
From: Oliver Kiddle @ 2000-06-06 9:58 UTC (permalink / raw)
To: Zsh workers
On the subject of my IRIX 5.3 compilation warnings, Bart Schaefer wrote:
> What does line 111 of sys/types.h look like?
typedef unsigned long ino_t; /* <inode> type */
If you look back it my previous message (11755), you'll see that I had
stuck a section of types.h in at the end. The line is after a
preprocessor check for _MIPS_SZLONG == 32.
I'll try your sed suggestion out this evening, thanks.
Bart Schaefer wrote:
>
> No, that's no good. The whole point of calling it zparseOPTS is that the
> things it is parsing are *optional*.
Fair enough.
> } +zparseopts -D -E 'g:=glob'
> ^ ^ Why the quotes?
Because I cut and paste the line from the example in 11532 without
thinking much about it.
> } +(( $#glob )) || glob=( -g '' )
> You could use
> : ${(A)=glob:=-g '*(^/)'}
Very true, I forgot about that, I'll commit those changes sometime
later.
> What I can't decide is whether I like the behavior of emptying the array
> when no matching option is found.
Actually, this is how I initially assumed it would work and I tried it
out as you suggested.
and Sven wrote:
> Should we add an option for this?
An option seems slightly over-kill but I really can't decide which
behaviour I prefer either so maybe. You could also allow
g:=glob:-'*(^/)' but I'm not sure that wouldn't only be unnecessary
bloat to zparseopts.
Oliver
Index: Completion/User/_urls
===================================================================
RCS file: /cvsroot/zsh/zsh/Completion/User/_urls,v
retrieving revision 1.11
diff -u -r1.11 _urls
--- Completion/User/_urls 2000/06/05 23:20:48 1.11
+++ Completion/User/_urls 2000/06/06 09:55:41
@@ -52,8 +52,8 @@
_wanted -C -f files expl file _files "$@" && return 0
fi
-zparseopts -D -E 'g:=glob'
-(( $#glob )) || glob=( -g '*(^/)' )
+zparseopts -D -E g:=glob
+: ${(A)=glob:=-g '*(^/)'}
ipre="$IPREFIX"
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: zparseopts (Re: PATCH: _urls and _rpm)
2000-06-06 9:58 ` Oliver Kiddle
@ 2000-06-07 5:55 ` Bart Schaefer
0 siblings, 0 replies; 5+ messages in thread
From: Bart Schaefer @ 2000-06-07 5:55 UTC (permalink / raw)
To: Oliver Kiddle, Zsh workers
On Jun 6, 10:58am, Oliver Kiddle wrote:
} Subject: Re: zparseopts (Re: PATCH: _urls and _rpm)
}
} On the subject of my IRIX 5.3 compilation warnings, Bart Schaefer wrote:
} > What does line 111 of sys/types.h look like?
}
} typedef unsigned long ino_t; /* <inode> type */
}
} If you look back it my previous message (11755), you'll see that I had
} stuck a section of types.h in at the end.
Oops, I thought that was part of the diff and never even looked at it.
} after a preprocessor check for _MIPS_SZLONG == 32.
Where does _MIPS_SZLONG come from?
The test for ino_t passes this:
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
#include <stdlib.h>
#include <stddef.h>
#endif
through the preprocessor and then egreps to find ino_t. From the snippet
you sent, the egrep should fail only if _MIPS_SZLONG is neither 32 nor 64.
Unless IRIX's egrep is broken, which is not impossible ...
--
Bart Schaefer Brass Lantern Enterprises
http://www.well.com/user/barts http://www.brasslantern.com
Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2000-06-07 5:56 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2000-06-05 22:09 PATCH: _urls and _rpm Oliver Kiddle
2000-06-06 3:48 ` Bart Schaefer
2000-06-06 4:08 ` zparseopts (Re: PATCH: _urls and _rpm) Bart Schaefer
2000-06-06 9:58 ` Oliver Kiddle
2000-06-07 5:55 ` Bart Schaefer
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).