Thanks, this all looks good, except some quibble about the details.
* lib/quotearg.c (quotearg_slot_n_mem): Renamed from quotearg_n_options.
Why rename? The "slot_n_" part doesn't fit with the existing naming scheme,
which just uses "n_".
quotearg: Allow static init of 'struct quoting_options' variables.
* lib/quotearg.h: Include <limits.h>.
(struct quoting_options): Move to here from lib/quotearg.c. Use
INT_WIDTH instead of INT_BITS.
(QUOTING_OPTIONS_INIT): New macro.
I don't see the need for the macro 'QUOTING_OPTIONS_INIT (a, b)'. We're assuming
C99 now, so users can simply write '{ .style = a, .flags = b }' which is clearer
anyway and avoids macros.