X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fquotearg.c;h=902192e701edc8bd0d5c92ccb7d3acceada6e184;hb=603d2944945d084c2b46af808808bcc2f2e73abe;hp=47e4c142544d6798616656d0c1ae5e1e6c4c0fdb;hpb=017cf285c1cd32280266df64449c0003458c122b;p=gnulib.git diff --git a/lib/quotearg.c b/lib/quotearg.c index 47e4c1425..902192e70 100644 --- a/lib/quotearg.c +++ b/lib/quotearg.c @@ -44,6 +44,12 @@ # define UCHAR_MAX ((unsigned char) -1) #endif +#if HAVE_C_BACKSLASH_A +# define ALERT_CHAR '\a' +#else +# define ALERT_CHAR '\7' +#endif + #if HAVE_STDLIB_H # include #endif @@ -52,17 +58,24 @@ # include #endif -#if HAVE_WCTYPE_H -# include -#endif - #if HAVE_MBRTOWC && HAVE_WCHAR_H # include +# if !HAVE_MBSTATE_T_OBJECT +# define mbrtowc(pwc, s, n, ps) (mbrtowc) (pwc, s, n, 0) +# endif #else -# define iswprint(wc) 1 -# define mbrtowc(pwc, s, n, ps) 1 +# define mbrtowc(pwc, s, n, ps) ((*(pwc) = *(s)) != 0) # define mbsinit(ps) 1 -# define mbstate_t int +# define iswprint(wc) ISPRINT ((unsigned char) (wc)) +#endif + +#ifndef iswprint +# if HAVE_WCTYPE_H +# include +# endif +# if !defined iswprint && !HAVE_ISWPRINT +# define iswprint(wc) 1 +# endif #endif #define INT_BITS (sizeof (int) * CHAR_BIT) @@ -75,7 +88,7 @@ # define ISASCII(c) isascii (c) #endif /* Undefine to protect against the definition in wctype.h of solaris2.6. */ -#undef ISASCII +#undef ISPRINT #define ISPRINT(c) (ISASCII (c) && isprint (c)) struct quoting_options @@ -266,9 +279,7 @@ quotearg_buffer_restyled (char *buffer, size_t buffersize, } break; -#if HAVE_C_BACKSLASH_A - case '\a': esc = 'a'; goto c_escape; -#endif + case ALERT_CHAR: esc = 'a'; goto c_escape; case '\b': esc = 'b'; goto c_escape; case '\f': esc = 'f'; goto c_escape; case '\n': esc = 'n'; goto c_and_shell_escape;