This affects the post-quilt hook. Before this patch, if no patches have
been applied and get-unapplied hasn't been set, the second argument to
that hook would undergo null elision.
The generation of patch subjects for the gen-applied-string,
gen-unapplied-string, and set-patch-format hooks was unaffected since
it was guarded by [[ -n $patches ]].
* _svn_deletedfiles: Remove.
The last version of svn(1) under which that function could possibly
complete anything, svn 1.6.x, was EOLed in 2013. Newer versions
don't have a "text-base" directory, so $controlled is set to an
empty array, so this function returned false for all files, so
in 'svn rm' (up to the previous commit) all files were completed
(because that's what '_files -g "*(e:false:)"' does).
* _svn_status: Remove.
Versions of svn newer than the aforementioned 1.6.x have an
entries file but never modify it, so the "mtime has changed" check
would false negative. Therefore, sequences such as:
.
svn <TAB>
echo >> some/versioned/file
svn ci <TAB>
.
wouldn't offer some/versioned/file.
.
Furthermore, completion would offer directories with no changed
files in them, and even unversioned directories. Now only changed
files/directories are offered.
* _cache_svn_status, _cache_svn_mtime: Remove.
If these hadn't been removed, I would have moved their declarations
to file scope so _svn_status could be used from outside this file,
too.
The replacement function, _svn_modified, doesn't have cache support, but
does honour the 'verbose' style to inhibit recursion to subdirectories.
A test when acquiring the replacement pattern match in the globbing
code erroneously allowed the use of a NULL pointer. This appears to
be an unnecessary test case added alongside other surgery back in 2008.
The latter two didn't have their own texinode()s. Various places, both
those sections' subsections and elsewhere in the manual, linked to the
first section rather than to the third. For instance, zshcontrib(1)
pointed to "noderef(Miscellaneous) in noderef(Zle Widgets)", even though
the former (currently §18.6.6) is not under the latter (currently §18.4).
Add texinode()s and fix those pointers.