6c374008b1
The diff_opt infrastructure sets flags based on defaults and command line options. It is impossible to tell whether a flag has been set as a default or on explicit request. Update the structure so that this detection is possible: * Add an extra "opt->touched_flags" that keeps track of all the fields that have been touched by DIFF_OPT_SET and DIFF_OPT_CLR. * You may continue setting the default values to the flags, like commands in the "log" family do in cmd_log_init_defaults(), but after you finished setting the defaults, you clear the touched_flags field; * And then you let the usual callchain call diff_opt_parse(), allowing the opt->flags be set or unset, while keeping track of which bits the user touched; * There is an optional callback "opt->set_default" that is called at the very beginning to let you inspect touched_flags and update opt->flags appropriately, before the remainder of the diffcore machinery is set up, taking the opt->flags value into account. Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> |
||
---|---|---|
.. | ||
.gitignore | ||
api-allocation-growing.txt | ||
api-argv-array.txt | ||
api-builtin.txt | ||
api-config.txt | ||
api-credentials.txt | ||
api-decorate.txt | ||
api-diff.txt | ||
api-directory-listing.txt | ||
api-gitattributes.txt | ||
api-grep.txt | ||
api-hash.txt | ||
api-history-graph.txt | ||
api-in-core-index.txt | ||
api-index-skel.txt | ||
api-index.sh | ||
api-lockfile.txt | ||
api-merge.txt | ||
api-object-access.txt | ||
api-parse-options.txt | ||
api-quote.txt | ||
api-ref-iteration.txt | ||
api-remote.txt | ||
api-revision-walking.txt | ||
api-run-command.txt | ||
api-setup.txt | ||
api-sha1-array.txt | ||
api-sigchain.txt | ||
api-strbuf.txt | ||
api-string-list.txt | ||
api-tree-walking.txt | ||
api-xdiff-interface.txt | ||
index-format.txt | ||
pack-format.txt | ||
pack-heuristics.txt | ||
pack-protocol.txt | ||
protocol-capabilities.txt | ||
protocol-common.txt | ||
racy-git.txt | ||
send-pack-pipeline.txt | ||
shallow.txt | ||
trivial-merge.txt |