summaryrefslogtreecommitdiff
path: root/Completion/Unix/Command/_sccs
diff options
context:
space:
mode:
authorOliver Kiddle <opk@users.sourceforge.net>2002-03-11 13:08:25 +0000
committerOliver Kiddle <opk@users.sourceforge.net>2002-03-11 13:08:25 +0000
commit799b34d817a77244e9e371f6d5f1b01aa171214c (patch)
treed545686f5cb68544279ce04e7365beb074045019 /Completion/Unix/Command/_sccs
parent5ae306d7a1acd60ae2bb43abd94ae635b3d05461 (diff)
downloadzsh-799b34d817a77244e9e371f6d5f1b01aa171214c.tar.gz
zsh-799b34d817a77244e9e371f6d5f1b01aa171214c.zip
16804: completion for sccs
Diffstat (limited to 'Completion/Unix/Command/_sccs')
-rw-r--r--Completion/Unix/Command/_sccs132
1 files changed, 132 insertions, 0 deletions
diff --git a/Completion/Unix/Command/_sccs b/Completion/Unix/Command/_sccs
new file mode 100644
index 000000000..e4af91a97
--- /dev/null
+++ b/Completion/Unix/Command/_sccs
@@ -0,0 +1,132 @@
+#compdef sccs admin cdc comb delta get help prs prt rmdel sact sccsdiff unget val what
+
+(( $+functions[_sccs_files] )) ||
+_sccs_files() {
+ local dir=${PROJECTDIR:-~+}/${PREFIX##*/}/$finalpath
+
+ compset -P '*/'
+ _files -W $dir -g \*\(:s/s.//\) "$@"
+}
+
+local curcontext="$curcontext" state line
+typeset -A opt_args
+local subcmds ropt copt sfiles finalpath
+
+subcmds=(
+ admin cdc check clean comb create deledit delget delta diffs edit
+ enter fix get help info print prs ptr rmdel sact sccsdiff tell
+ unedit unget val what
+)
+
+ropt='-r+[specify sccs delta id]:sccs delta id'
+copt='-c+[specify date]:date-stamp'
+sfiles=':file:_sccs_files'
+
+if [[ $service = sccs ]]; then
+ _arguments -C -A "-*" \
+ '-r[run with real and not effective user ID]' \
+ '-d+[specify root prefix]:root prefix:_directories' \
+ '-p+[specify subdirectory of history file]:path to history file:_directories' \
+ '*::command:->subcmd' && return 0
+
+ if (( CURRENT == 1 )); then
+ _wanted commands expl 'sccs command' compadd -a subcmds
+ return
+ fi
+ service="$words[1]"
+ curcontext="${curcontext%:*}-$service:"
+fi
+finalpath="${opt_args[-p]:-SCCS}"
+
+case $service in
+ admin)
+ _arguments "$ropt" "$sfiles" \
+ '-b[force encoding of binary data]' \
+ '-h[check structure of s.file]' \
+ '-n[create a new history file]' \
+ '-z[recompute file checksum]' \
+ '-a+[add access for a user or group]:user or group:_users' \
+ '-e+[erase access for a user or group]:user or group:_users' \
+ '-d+[delete flag from file]:flag' \
+ '-f+[set specified flag]:flag' \
+ '-i+[initialise history from specified file]:file:_files' \
+ '-m+[insert specified MR numbers into commentary]' \
+ '-t+[insert descriptive text from specified file]:file:_files' \
+ '-y+[specify comment for initial delta]'
+ ;;
+ cdc)
+ _arguments "$ropt" "$sfiles" \
+ '-m+[specify MR numbers to add/delete in delta comment]' \
+ '-y+[specify the comment]:comment' \
+ ;;
+ check|info|tell)
+ _arguments "$sfiles" \
+ '-b[ignore branches]' \
+ '(-U)-u+[restrict to files being modified by specified user]::user:_users' \
+ '(-u)-U[restrict to files being modified by current user]'
+ ;;
+ clean)
+ _arguments '-b[ignore branches]'
+ ;;
+ comb)
+ _arguments "$sfiles" \
+ '-o[access reconstructed file at delta to be created]' \
+ '-s[generate script that will produce a report]' \
+ '-p+[specify SID of oldest delta to preserve]:sccs delta id'
+ '-c+[specify list of deltas to preserve]:sccs delta list'
+ ;;
+ sact|print) _sccs_files;;
+ create|enter) _files;;
+ deledit|delget|delta)
+ _arguments '-s[silent]' '-y+[specify delta commentary]:comment'
+ ;;
+ diffs)
+ _diff_options diff "$sfiles" "$ropt" "$copt" \
+ '-C[output a context diff]'
+ ;;
+ edit|get)
+ _arguments "$sfiles" "$ropt" "$copt" \
+ '-e[retrieve for editing]' \
+ '-k[retrieve writable copy without checking out]' \
+ '-m[precede each line with the delta in which it was added]' \
+ '-p[produce retrieved version on standard output]' \
+ '-s[silent]'
+ ;;
+ fix) _arguments "$ropt" "$sfiles";;
+ help)
+ _alternative \
+ "commands:sccs command:(${(j: :)subcmds})" \
+ 'message-codes:sccs message code:'
+ ;;
+ prs)
+ _arguments "$sfiles" "$ropt" "$copt" \
+ '-a[include all deltas including those marked removed]' \
+ '-e[display delta info for all deltas earlier than that specified]' \
+ '-l[display delta info for all deltas later than that specified]' \
+ '-d+[specify format of report]:data spec'
+ ;;
+ prt)
+ _arguments "$sfiles" "$copt" \
+ '-a[include all deltas including those marked removed]' \
+ '-b[print the body of the s.file]' \
+ '-d[print delta table entries]' \
+ '(-d -i -u -f -t)-e[everything - imply other options]' \
+ '-i[print serial numbers of included, excluded and ignored deltas]' \
+ '-s[print first line only of delta table entries]' \
+ '-t[print descriptive text held in s.file]' \
+ '-u[print usernames of users allowed to make deltas]' \
+ '-r+[exclude delta entries newer than date]:date-time' \
+ '-y+[exclude delta entries prior to sid]'
+ ;;
+ rmdel) _arguments "$ropt" "$sfiles";;
+ sccsdiff) _diff_options diff "$ropt" "$sfiles";;
+ val)
+ _arguments "$sfiles" "$ropt" \
+ '-s[silent]' \
+ '-m+[compare specified name with the ID keyword in the s.file]:name' \
+ '-y+[compare specified type with the ID keyword]:type'
+ ;;
+ what) _arguments '-s[stop after first occurrence]' '*:file:_files';;
+
+ *) _message "unknown sccs command: $service";;
+esac