zsh_completion: declare appropriate local parameters for ->string form
When ->string form is used for _arguments, the function that calls it must
declare appropriate local parameters.
Managing local return value is needed to tell the completion system if our
function succeeded in suggesting something or not, plus without that `hg diff
-<TAB>` doesn't look right.
While at it, fix a copypaste error (s/diff_files/revert_files/).
Docs: http://zsh.sourceforge.net/Doc/Release/Completion-System.html
Differential Revision: https://phab.mercurial-scm.org/D4264
$ for i in aaa zzz; do
> hg init t
> cd t
>
> echo
> echo "-- With $i"
>
> touch file
> hg add file
> hg ci -m "Add"
>
> hg cp file $i
> hg ci -m "a -> $i"
>
> hg cp $i other-file
> echo "different" >> $i
> hg ci -m "$i -> other-file"
>
> hg cp other-file somename
>
> echo "Status":
> hg st -C
> echo
> echo "Diff:"
> hg diff -g
>
> cd ..
> rm -rf t
> done
-- With aaa
Status:
A somename
other-file
Diff:
diff --git a/other-file b/somename
copy from other-file
copy to somename
-- With zzz
Status:
A somename
other-file
Diff:
diff --git a/other-file b/somename
copy from other-file
copy to somename