parse-options: detect attempt to add a duplicate short option name
commitaf465af8deda8ad685f7704a2dc787845eb317ed
authorJunio C Hamano <gitster@pobox.com>
Wed, 3 Sep 2014 19:42:37 +0000 (3 12:42 -0700)
committerJunio C Hamano <gitster@pobox.com>
Thu, 4 Sep 2014 18:00:28 +0000 (4 11:00 -0700)
tree198dbc1cf316f415b5e2dd7e7b09f3c228f6f750
parent32f56600bb6ac6fc57183e79d2c1515dfa56672f
parse-options: detect attempt to add a duplicate short option name

It is easy to overlook an already assigned single-letter option name
and try to use it for a new one.  Help the developer to catch it
before such a mistake escapes the lab.

This retroactively forbids any short option name (which is defined
to be of type "int") outside the ASCII printable range.  We might
want to do one of two things:

 - tighten the type of short_name member to 'char', and further
   update optbug() to protect it against doing "'%c'" on a funny
   value, e.g. negative or above 127.

 - drop the check (even the "duplicate" check) for an option whose
   short_name is either negative or above 255, to allow clever folks
   to take advantage of the fact that such a short_name cannot be
   parsed from the command line and the member can be used to store
   some extra information.

Helped-by: René Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
parse-options.c
t/t1502-rev-parse-parseopt.sh