diff options
author | Tanaka Akira <akr@users.sourceforge.net> | 2000-01-05 13:30:16 +0000 |
---|---|---|
committer | Tanaka Akira <akr@users.sourceforge.net> | 2000-01-05 13:30:16 +0000 |
commit | 4a7b67c55a0f3a30866dafa6e26faf14ab53941b (patch) | |
tree | 82d5255f58950746cdecad23a98e1a72c446cec8 | |
parent | 870350b116523e9d8d2dbbccc6c6bbc5ae433456 (diff) | |
download | zsh-4a7b67c55a0f3a30866dafa6e26faf14ab53941b.tar.gz zsh-4a7b67c55a0f3a30866dafa6e26faf14ab53941b.tar.xz zsh-4a7b67c55a0f3a30866dafa6e26faf14ab53941b.zip |
zsh-workers/9216
-rw-r--r-- | Completion/User/.distfiles | 2 | ||||
-rw-r--r-- | Completion/User/_prcs | 203 | ||||
-rw-r--r-- | Src/Zle/computil.c | 4 |
3 files changed, 206 insertions, 3 deletions
diff --git a/Completion/User/.distfiles b/Completion/User/.distfiles index 1235db937..c3f78d24d 100644 --- a/Completion/User/.distfiles +++ b/Completion/User/.distfiles @@ -5,7 +5,7 @@ DISTFILES_SRC=' _gunzip _gv _gzip _hosts _ispell _killall _lynx _mailboxes _make _man _mh _mount _mutt _my_accounts _netscape _nslookup _other_accounts _pack _patch _pbm _pdf _perl_basepods _perl_builtin_funcs - _perl_modules _perldoc _ports _prompt _ps _pspdf _rcs _rlogin _sh + _perl_modules _perldoc _ports _prcs _prompt _ps _pspdf _rcs _rlogin _sh _socket _ssh _strip _stty _su _sudo _tar _tar_archive _telnet _tex _tiff _uncompress _unpack _urls _use_lo _user_at_host _users _users_on _webbrowser _wget _whereis _whois _xargs _yodl _yp _zdump diff --git a/Completion/User/_prcs b/Completion/User/_prcs new file mode 100644 index 000000000..30c76e791 --- /dev/null +++ b/Completion/User/_prcs @@ -0,0 +1,203 @@ +#compdef prcs + +# lookup project names in the repository +# (this does not handle subprojects) + +(( $+functions[_prcs_projects] )) || +_prcs_projects() { + compadd $@ - ${opt_args[-R]:-${opt_args[--repository]:-${PRCS_REPOSITORY:-$HOME/PRCS}}}/*(/:t) +} + +# standard options for all subcommands + +(( $+functions[_prcs_arguments] )) || +_prcs_arguments() { + _arguments -s \ + '(-f)--force[resolve interactive queries in some fixed way]' \ + '(--force)-f[resolve interactive queries in some fixed way]' \ + '(-h -H)--help[print out help]' \ + '(--help -H)-h[print out help]' \ + '(--help -h)-H[print out help]' \ + '(-j)--jobs=[spawn many child processes at once]:number:' \ + '(--jobs)-j[spawn many child processes at once]:number:' \ + '(-l)--long-format[long format]' \ + '(--long-format)-l[long format]' \ + '(-L)--long-long-format[long format]' \ + '(--long-long-format)-L[longer format]' \ + '(-n)--no-action[no action]' \ + '(--no-action)-n[no action]' \ + '(-q)--quiet[suppress normal informational messages]' \ + '(--quiet)-q[suppress normal informational messages]' \ + "--plain-format[don't break lines at screen width]" \ + '(-R)--repository=[set the repository directory]:directory:_files -/' \ + '(--repository)-R[set the repository directory]:directory:_files -/' \ + '(-v)--version[print PRCS version and exits]' \ + '(--version)-v[print PRCS version and exits]' \ + $@ +} + +if (( CURRENT == 2 )); then + _arguments \ + ':prcs command:(( + admin\:"admin subcommand" + checkin\:"checkin project revision" + checkout\:"checkout project revision" + config\:"verify configuration" + delete\:"delete named revision of project" + depopulate\:"remove named files from project descriptor" + diff\:"show differences between two revisions" + execute\:"execute a command for each file in a project" + info\:"print information about versions of project" + merge\:"reconcile differences between working files and another revision" + package\:"package the project and all its revisions into packagefile" + populate\:"add named files to project descriptor" + rekey\:"set keywords in selected files" + unpackage\:"unpackage project in packagefile"))' +else + shift words + (( --CURRENT )) + case "$words[1]" in + admin) + if (( CURRENT == 2 )); then + _arguments \ + ':admin subcommand:(( + access\:"set the access permissions on the repository" + compress\:"instruct PRCS to save disk space for project" + init\:"create a repository entry" + pdelete\:"delete a repository entry" + prename\:"rename a repository entry" + rebuild\:"reconstruct PRCS data files in the repository" + uncompress\:"instruct PRCS to save time in processing project"))' + else + shift words + (( --CURRENT )) + case "$words[1]" in + access|compress|init|pdelete|prename|rebuild) + _prcs_arguments ':project name:_prcs_projects' + ;; + uncompress) + _prcs_arguments \ + '-i[expand the entire project immediately]' \ + ':project name:_prcs_projects' + ;; + esac + fi + ;; + checkin) + _prcs_arguments \ + '(-r)--revison=[version of the project]:revision:' \ + '(--revison)-r[version of the project]:revision:' \ + '(-s)--skilled-merge[turn off most of the safety features of merge]' \ + '(--skilled-merge)-s[turn off most of the safety features of merge]' \ + ':project name:_prcs_projects' \ + '*:file or directory:_files' + ;; + checkout) + _prcs_arguments \ + '(-r)--revison=[version of the project]:revision:' \ + '(--revison)-r[version of the project]:revision:' \ + '(-p)--preserve[preserve permissions on files that are checked out]' \ + '(--preserve)-p[preserve permissions on files that are checked out]' \ + "(-u)--unlink[don't overwrite symbolic link references]" \ + "(--unlink)-u[don't overwrite symbolic link references]" \ + "(-P)--exclude-project-file[don't checkout the project file]" \ + "(--exclude-project-file)-P[don't checkout the project file]" \ + ':project name:_prcs_projects' \ + '*:file or directory:_files' + ;; + config) + _prcs_arguments + ;; + delete) + _prcs_arguments \ + '(-r)--revison=[version of the project]:reversion:' \ + '(--revison)-r[version of the project]:reversion:' \ + ':project name:_prcs_projects' + ;; + depopulate) + _prcs_arguments \ + ':project name:_prcs_projects' \ + '*:file or directory:_files' + ;; + diff) +# +# FIXME: when there will be a _diff completion function, +# we should complete with diff options after `--' : +# prcs diff [OPTION ...] [PROJECT [FILE-OR-DIR ...]] [-- [DIFF-OPTION ...]] +# + _prcs_arguments \ + '*--revison=[version of the project]:revision:' \ + '*-r[version of the project]:revision:' \ + '(-k)--keywords[compare keywords too]' \ + '(--keywords)-k[compare keywords too]' \ + '(-N)--new[compare new files against empty files]' \ + '(--new)-N[compare new files against empty files]' \ + "(-P)--exclude-project-file[don't diff the project file]" \ + "(--exclude-project-file)-P[don't diff the project file]" \ + ':project name:_prcs_projects' \ + '*:file or directory:_files' + ;; + execute) + _prcs_arguments \ + '(-r)--revison=[version of the project]:reversion:' \ + '(--revison)-r[version of the project]:reversion:' \ + '--pre[list directories first]' \ + '(--pipe)--all[execute command once, with all files as arguments]' \ + '(--all)--pipe[supply file contents as the standard input]' \ + '--match[execute command on files matching a pattern]:pattern:' \ + '--not[execute command on files not matching a pattern]:pattern:' \ + '--:command: _command_names -e:*::arguments: _normal' \ + ':project name:_prcs_projects' \ + '*:file or directory:_files' + ;; + info) + _prcs_arguments \ + '(-r)--revison=[version of the project]:revision:' \ + '(--revison)-r[version of the project]:revision:' \ + '--sort=[set sorting type]:sorting type:(version date)' \ + ':project name:_prcs_projects' \ + '*:file or directory:_files' + ;; + merge) + _prcs_arguments \ + '(-r)--revison=[version of the project]:revision:' \ + '(--revison)-r[version of the project]:revision:' \ + '(-s)--skilled-merge[turn off most of the safety features of merge]' \ + '(--skilled-merge)-s[turn off most of the safety features of merge]' \ + "(-u)--unlink[don't overwrite symbolic link references]" \ + "(--unlink)-u[don't overwrite symbolic link references]" \ + ':project name:_prcs_projects' \ + '*:file or directory:_files' + ;; + package) + _prcs_arguments \ + '(-r)--revison=[version of the project]:revision:' \ + '(--revison)-r[version of the project]:revision:' \ + '(-z)--compress=[compress the output]' \ + '(--compress)-z[compress the output]' \ + ':project name:_prcs_projects' \ + ':file:_files' + ;; + populate) + _prcs_arguments \ + '(-d)--delete=[perform optional deletions]' \ + '(--delete)-d[perform optional deletions]' \ + ':project name:_prcs_projects' \ + '*:file or directory:_files' + ;; + rekey) + _prcs_arguments \ + "(-u)--unlink[don't overwrite symbolic link references]" \ + "(--unlink)-u[don't overwrite symbolic link references]" \ + ':project name:_prcs_projects' + ;; + unpackage) + _prcs_arguments \ + ':file:_files' \ + ':project name:_prcs_projects' + ;; + *) + _message "unknown prcs command: $words[2]" + ;; + esac +fi diff --git a/Src/Zle/computil.c b/Src/Zle/computil.c index bfcaa4b22..021dff6bf 100644 --- a/Src/Zle/computil.c +++ b/Src/Zle/computil.c @@ -640,9 +640,9 @@ parse_cadef(char *nam, char **args) zerrnam(nam, "invalid argument: %s", *args, 0); return NULL; } - /* Skip over the name. */ - for (p += 2; *p && *p != ':' && *p != '[' && + /* Skip over the name. */ + for (p++; *p && *p != ':' && *p != '[' && ((*p != '-' && *p != '+' && *p != '=') || (p[1] != ':' && p[1] != '[')); p++) if (*p == '\\' && p[1]) |