about summary refs log tree commit diff
diff options
context:
space:
mode:
authorDaniel Shahaf <d.s@daniel.shahaf.name>2015-08-17 22:03:56 +0000
committerDaniel Shahaf <d.s@daniel.shahaf.name>2015-08-19 01:56:53 +0000
commit0c5f6e911b6e8e1e2a5be5103a8c2da72bfc8937 (patch)
tree7838b53083866e1f2f358e093d649e44196ce1b4
parent9982edbc400814cdd252388546c47768a6aa3168 (diff)
downloadzsh-0c5f6e911b6e8e1e2a5be5103a8c2da72bfc8937.tar.gz
zsh-0c5f6e911b6e8e1e2a5be5103a8c2da72bfc8937.tar.xz
zsh-0c5f6e911b6e8e1e2a5be5103a8c2da72bfc8937.zip
36208: _subversion: Complete a few more option switches
The while (( idx )) form should guarantee that these switches are only
added if the 'svn' binary supports them.  (One of these switches isn't
present in svn 1.8 or earlier.)
-rw-r--r--ChangeLog5
-rw-r--r--Completion/Unix/Command/_subversion18
2 files changed, 23 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index aef8e9520..64e2f6d22 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2015-08-19  Daniel Shahaf  <d.s@daniel.shahaf.name>
+
+	* 36208: Completion/Unix/Command/_subversion: _subversion:
+	Complete a few more option switches
+
 2015-08-18  Peter Stephenson  <p.stephenson@samsung.com>
 
 	* 36232: Src/compat.c: Unmeta an additional chdir().
diff --git a/Completion/Unix/Command/_subversion b/Completion/Unix/Command/_subversion
index 8c3d8746f..1cffc3c04 100644
--- a/Completion/Unix/Command/_subversion
+++ b/Completion/Unix/Command/_subversion
@@ -50,9 +50,27 @@ _svn () {
 	  args=(
 	    ${=${${${(M)${(f)"$(_comp_locale; _call_program options svn help $cmd)"#(*Valid options:|(#e))}:#* :*}%% #:*}/ (arg|ARG)/:arg:}/(#b)(-##)([[:alpha:]]##) \[--([a-z-]##)\](:arg:)#/(--$match[3])$match[1]$match[2]$match[4] ($match[1]$match[2])--$match[3]$match[4]}
 	  )
+          while (( idx=$args[(I)*--accept:arg:] )); do
+            args[(I)*--accept:arg:]=( --accept':automatic conflict resolution action:((working\:working base\:base '"`for i j in p postpone mc mine-conflict tc theirs-conflict mf mine-full tf theirs-full e edit l launch; print -rn $i\\\\:$j $j\\\\:$j "" `"'))' )
+          done
           while (( idx=$args[(I)*--c(l|hangelist):arg:] )); do
             args[(I)*--c(l|hangelist):arg:]=( \*{--cl,--changelist}':change list:_svn_changelists' )
           done
+          while (( idx=$args[(I)*--config-dir:arg:] )); do
+            args[(I)*--config-dir:arg:]=( --config-dir':config dir:_directories' )
+          done
+          while (( idx=$args[(I)*--depth:arg:] )); do
+            args[(I)*--depth:arg:]=( --depth':operation depth (how far to recurse):(empty files immediates infinity)' )
+          done
+          while (( idx=$args[(I)*(-F|--file):arg:] )); do
+            args[(I)*(-F|--file):arg:]=( '(-F --file)'{-F,--file}':log message file:_files' )
+          done
+          while (( idx=$args[(I)*--set-depth:arg:] )); do
+            args[(I)*--set-depth:arg:]=( --set-depth'[make working copy deeper or shallower]:new depth:(exclude empty files immediates infinity)' )
+          done
+          while (( idx=$args[(I)*--trust-server-cert-failures:arg:] )); do
+            args[(I)*--trust-server-cert-failures:arg:]=( --trust-server-cert-failures':failures:_values -s , "certificate failures to ignore" "unknown-ca[unknown authority]" "cn-mismatch[hostname mismatch]" "expired[certificate expired]" "not-yet-valid[certificate not yet valid]" "other[all other failures]"' )
+          done
 	  _store_cache svn-${cmd}-args args
 	fi