From: Bruno Haible Date: Wed, 12 Jan 2005 13:02:19 +0000 (+0000) Subject: Update 'quotearg' module from gnulib. X-Git-Tag: v0.14.2~165 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d4b5debc160a83e1c52bc6831019351a6061b68e;p=thirdparty%2Fgettext.git Update 'quotearg' module from gnulib. --- diff --git a/gettext-tools/lib/ChangeLog b/gettext-tools/lib/ChangeLog index b48431d82..8e991c822 100644 --- a/gettext-tools/lib/ChangeLog +++ b/gettext-tools/lib/ChangeLog @@ -69,6 +69,12 @@ SIG_IGN. Reported by Paul Eggert. +2004-11-10 Paul Eggert + + * quotearg.c (struct quoting_options): Use unsigned int for + quote_these_too, so that right shifts are well defined. All uses + changed. + 2004-11-05 Bruno Haible * readlink.c: Include stddef.h, needed for size_t on Woe32. @@ -84,6 +90,10 @@ * unlocked-io.h: Don't worry about USE_UNLOCKED_IO; that's now the includer's responsibility. +2004-08-06 Paul Eggert + + * quotearg.c, quotearg.h: Import changes from coreutils. + 2004-08-06 Paul Eggert * setenv.c: Import changes from coreutils. diff --git a/gettext-tools/lib/quotearg.c b/gettext-tools/lib/quotearg.c index fe747fb0b..8c95b7ae5 100644 --- a/gettext-tools/lib/quotearg.c +++ b/gettext-tools/lib/quotearg.c @@ -30,6 +30,7 @@ #include #include #include +#include #include #include @@ -83,7 +84,7 @@ struct quoting_options /* Quote the characters indicated by this bit vector even if the quoting style would not normally require them to be quoted. */ - int quote_these_too[(UCHAR_MAX / INT_BITS) + 1]; + unsigned int quote_these_too[(UCHAR_MAX / INT_BITS) + 1]; }; /* Names of quoting styles. */ @@ -151,7 +152,8 @@ int set_char_quoting (struct quoting_options *o, char c, int i) { unsigned char uc = c; - int *p = (o ? o : &default_quoting_options)->quote_these_too + uc / INT_BITS; + unsigned int *p = + (o ? o : &default_quoting_options)->quote_these_too + uc / INT_BITS; int shift = uc % INT_BITS; int r = (*p >> shift) & 1; *p ^= ((i & 1) ^ r) << shift; @@ -192,8 +194,8 @@ quotearg_buffer_restyled (char *buffer, size_t buffersize, size_t len = 0; char const *quote_string = 0; size_t quote_string_len = 0; - int backslash_escapes = 0; - int unibyte_locale = MB_CUR_MAX == 1; + bool backslash_escapes = false; + bool unibyte_locale = MB_CUR_MAX == 1; #define STORE(c) \ do \ @@ -208,13 +210,13 @@ quotearg_buffer_restyled (char *buffer, size_t buffersize, { case c_quoting_style: STORE ('"'); - backslash_escapes = 1; + backslash_escapes = true; quote_string = "\""; quote_string_len = 1; break; case escape_quoting_style: - backslash_escapes = 1; + backslash_escapes = true; break; case locale_quoting_style: @@ -239,7 +241,7 @@ quotearg_buffer_restyled (char *buffer, size_t buffersize, char const *right = gettext_quote (N_("'"), quoting_style); for (quote_string = left; *quote_string; quote_string++) STORE (*quote_string); - backslash_escapes = 1; + backslash_escapes = true; quote_string = right; quote_string_len = strlen (quote_string); } @@ -396,12 +398,12 @@ quotearg_buffer_restyled (char *buffer, size_t buffersize, /* Length of multibyte sequence found so far. */ size_t m; - int printable; + bool printable; if (unibyte_locale) { m = 1; - printable = isprint (c); + printable = isprint (c) != 0; } else { @@ -409,7 +411,7 @@ quotearg_buffer_restyled (char *buffer, size_t buffersize, memset (&mbstate, 0, sizeof mbstate); m = 0; - printable = 1; + printable = true; if (argsize == SIZE_MAX) argsize = strlen (arg); @@ -422,12 +424,12 @@ quotearg_buffer_restyled (char *buffer, size_t buffersize, break; else if (bytes == (size_t) -1) { - printable = 0; + printable = false; break; } else if (bytes == (size_t) -2) { - printable = 0; + printable = false; while (i + m < argsize && arg[i + m]) m++; break; @@ -449,9 +451,9 @@ quotearg_buffer_restyled (char *buffer, size_t buffersize, goto use_shell_always_quoting_style; } } - + if (! iswprint (w)) - printable = 0; + printable = false; m += bytes; } } diff --git a/gettext-tools/lib/quotearg.h b/gettext-tools/lib/quotearg.h index 2bbf38d92..14dc316d7 100644 --- a/gettext-tools/lib/quotearg.h +++ b/gettext-tools/lib/quotearg.h @@ -29,7 +29,7 @@ enum quoting_style { /* Output names as-is (ls --quoting-style=literal). */ literal_quoting_style, - + /* Quote names for the shell if they contain shell metacharacters or would cause ambiguous output (ls --quoting-style=shell). */ shell_quoting_style,