Use 'make -nqp' to ensure nothing is actually built by completion.
Also include some performance improvements, but it can be still
rather slow in a large project's source tree.
* -exec and -execdir can take ; or + as an ending marker. Previously only ; was
supported. This is part of POSIX for -exec (support for + for -ok is optional
and none of the implementations I looked at seem to support that).
* Missing completion for -files0-from (GNU find 4.9.0 and later). This flag
needs to go with the global flags at the beginning and load the paths from
the given file instead of from the command line.
* Missing completion for the -newerXY family of flags (GNU find 4.3.3, also
available in FreeBSD and MacOS at least).
* Adjust the pattern for matching tasks. The old one was too strict,
causing it to filter out perfectly valid tasks.
* Add completion of subproject names.
* Prevent subproject tasks from overwriting the main task description.
* Require `:` prefix for showing subprojects.
* Require a subproject prefix before showing subproject tasks.
* Standardize the use of completion tags.
* Rebuild the cache if it can't be read or doesn't contain the required
arrays.
This had been broken all along for the actual util-linux getopt; i think the
'enhanced' text comes from the original author's version, which Homebrew was
still using when the function was written
* _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.