id: add -z, --zero option
commit2a0d241f69f7f3f5b826656a97f9bafb20bd8711
authorBernhard Voelker <mail@bernhard-voelker.de>
Sat, 21 Sep 2013 12:15:45 +0000 (21 14:15 +0200)
committerBernhard Voelker <mail@bernhard-voelker.de>
Sat, 21 Sep 2013 12:15:45 +0000 (21 14:15 +0200)
tree3e23194ad9215ceee6f4f6cb2158b4f925318ea3
parentb3578fc9ffe70b9466687f9f6470a85f1a0ab14f
id: add -z, --zero option

* src/group-list.h (print_group_list): Add a parameter for the
delimiter of type char.
* src/group-list.c (print_group_list): Likewise, and use it instead
of a white space character to delimit the group entries.
* src/groups.c (main): Pass white space character to print_group_list().
* src/id.c (longopts):  Add array element for the new long option.
(usage): Document the new option.  While at it, fix the alignment
of the descriptions to match that of HELP_OPTION_DESCRIPTION.
(main): Define the bool flag opt_zero indicating the use of the
new option.  In the getopt_long loop, handle it.
Output an error diagnostic in the case the --zero option has been
specified together with the default format.
In the case of -gG, pass either a NUL or a white space character to
print_group_list() - depending on the above new flag.
Likewise change the printing of the final newline character: output
a NUL instead if the --zero option has been specified.
* doc/coreutils.texi (id invocation): Document the new option.
While at it, move the @exitstatus macro down after the macro
@primaryAndSupplementaryGroups in order to be consistent with
other texinfo documents.
(groups invocation): Move @exitstatus down after the macro
@primaryAndSupplementaryGroups here, too.
* tests/misc/id-zero.sh: Add new test exercising the new option.
* tests/local.mk (all_tests): Reference it.
* NEWS (New features): Mention the new option.
Fixes http://bugs.gnu.org/9987
NEWS
doc/coreutils.texi
src/group-list.c
src/group-list.h
src/groups.c
src/id.c
tests/local.mk
tests/misc/id-zero.sh [new file with mode: 0755]