1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-11-01 06:47:52 +01:00
git/Documentation/technical
Pranit Bauva e0070e8bd5 parse-options.c: make OPTION_COUNTUP respect "unspecified" values
OPT_COUNTUP() merely increments the counter upon --option, and resets it
to 0 upon --no-option, which means that there is no "unspecified" value
with which a client can initialize the counter to determine whether or
not --[no]-option was seen at all.

Make OPT_COUNTUP() treat any negative number as an "unspecified" value
to address this shortcoming. In particular, if a client initializes the
counter to -1, then if it is still -1 after parse_options(), then
neither --option nor --no-option was seen; if it is 0, then --no-option
was seen last, and if it is 1 or greater, than --option was seen last.

This change does not affect the behavior of existing clients because
they all use the initial value of 0 (or more).

Note that builtin/clean.c initializes the variable used with
OPT__FORCE (which uses OPT_COUNTUP()) to a negative value, but it is set
to either 0 or 1 by reading the configuration before the code calls
parse_options(), i.e. as far as parse_options() is concerned, the
initial value of the variable is not negative.

To test this behavior, in test-parse-options.c, "verbose" is set to
"unspecified" while quiet is set to 0 which will test the new behavior
with all sets of values.

Helped-by: Jeff King <peff@peff.net>
Helped-by: Eric Sunshine <sunshine@sunshineco.com>
Helped-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Pranit Bauva <pranit.bauva@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2016-05-05 11:52:45 -07:00
..
.gitignore
api-allocation-growing.txt
api-argv-array.txt argv-array: add detach function 2016-02-22 14:50:32 -08:00
api-builtin.txt
api-config.txt
api-credentials.txt credential: let helpers tell us to quit 2014-12-04 10:11:12 -08:00
api-decorate.txt
api-diff.txt
api-directory-listing.txt
api-error-handling.txt api-error-handling doc: typofix 2015-03-28 09:24:55 -07:00
api-gitattributes.txt
api-grep.txt
api-hashmap.txt
api-history-graph.txt
api-in-core-index.txt
api-index-skel.txt
api-index.sh
api-merge.txt
api-object-access.txt
api-parse-options.txt parse-options.c: make OPTION_COUNTUP respect "unspecified" values 2016-05-05 11:52:45 -07:00
api-quote.txt
api-ref-iteration.txt each_ref_fn: change to take an object_id parameter 2015-05-25 12:19:27 -07:00
api-remote.txt http: allow selection of proxy authentication method 2016-01-26 10:53:09 -08:00
api-revision-walking.txt
api-run-command.txt run-command: factor out child_process_clear() 2015-11-02 15:01:00 -08:00
api-setup.txt
api-sha1-array.txt
api-sigchain.txt
api-string-list.txt sort_string_list(): rename to string_list_sort() 2014-11-25 10:11:34 -08:00
api-submodule-config.txt submodule: use new config API for worktree configurations 2015-08-19 11:43:10 -07:00
api-trace.txt Documentation: talk about pager in api-trace.txt 2016-03-07 12:23:45 -08:00
api-tree-walking.txt
api-xdiff-interface.txt
bitmap-format.txt
http-protocol.txt upload-pack: optionally allow fetching reachable sha1 2015-05-22 18:25:36 -07:00
index-format.txt Merge branch 'jc/em-dash-in-doc' into maint 2015-11-04 14:20:45 -08:00
pack-format.txt
pack-heuristics.txt
pack-protocol.txt pack-protocol: clarify LF-handling in PKT-LINE() 2015-09-03 15:18:12 -07:00
protocol-capabilities.txt upload-pack: optionally allow fetching reachable sha1 2015-05-22 18:25:36 -07:00
protocol-common.txt pack-protocol: clarify LF-handling in PKT-LINE() 2015-09-03 15:18:12 -07:00
racy-git.txt Makefile / racy-git.txt: clarify USE_NSEC prerequisites 2015-07-01 14:54:42 -07:00
repository-version.txt introduce "preciousObjects" repository extension 2015-06-24 17:09:35 -07:00
send-pack-pipeline.txt
shallow.txt
trivial-merge.txt