From: Ken Hornstein Date: Wed, 21 Mar 2012 01:36:37 +0000 (-0400) Subject: It turns out that as part of POSIXification we got rid of checks for X-Git-Url: http://git.marmaro.de/?a=commitdiff_plain;h=bd4fca3a8a15b35a04bdc333503c901d677c12eb;p=mmh It turns out that as part of POSIXification we got rid of checks for wcwidth and mbtowc (because they're part of POSIX) but we didn't turn on MULTIBYTE_SUPPORT because configure was testing to see if those functions were supported ... and because the tests never ran, it always came back as not being supported. Time to bite the bullet and turn MULTIBYTE_SUPPORT on by default. --- diff --git a/configure.ac b/configure.ac index fd9b98e..7957fdd 100644 --- a/configure.ac +++ b/configure.ac @@ -415,13 +415,6 @@ dnl CHECK FUNCTIONS dnl --------------- AC_CHECK_FUNCS([writev lstat nl_langinfo]) -dnl Check for multibyte character set support -if test "x$ac_cv_header_wchar_h" = "xyes" -a "x$ac_cv_header_wctype_h" = "xyes" \ - -a "x$ac_cv_func_wcwidth" = "xyes" -a "x$ac_cv_func_mbtowc" = "xyes"; then - AC_DEFINE(MULTIBYTE_SUPPORT, 1, - [Define to enable support for multibyte character sets.]) -fi - dnl ------------------- dnl CHECK FOR LIBRARIES dnl ------------------- diff --git a/sbr/fmt_scan.c b/sbr/fmt_scan.c index 29b87d0..0f5aeb0 100644 --- a/sbr/fmt_scan.c +++ b/sbr/fmt_scan.c @@ -20,10 +20,8 @@ # include #endif #include -#ifdef MULTIBYTE_SUPPORT -# include -# include -#endif +#include +#include #ifdef LBL struct msgs *fmt_current_folder; /* current folder (set by main program) */ @@ -122,11 +120,9 @@ cptrimmed(char **dest, char *str, unsigned int wid, char fill, size_t n) { int remaining; /* remaining output width available */ int c, ljust; int end; /* number of input bytes remaining in str */ -#ifdef MULTIBYTE_SUPPORT int char_len; /* bytes in current character */ int w; wchar_t wide_char; -#endif char *sp; /* current position in source string */ char *cp = *dest; /* current position in destination string */ char *ep = cp + n; /* end of destination buffer */ @@ -142,7 +138,6 @@ cptrimmed(char **dest, char *str, unsigned int wid, char fill, size_t n) { mbtowc(NULL, NULL, 0); /* reset shift state */ end = strlen(str); while (*sp && remaining > 0 && end > 0) { -#ifdef MULTIBYTE_SUPPORT char_len = mbtowc(&wide_char, sp, end); if (char_len <= 0 || (cp + char_len > ep)) break; @@ -151,14 +146,6 @@ cptrimmed(char **dest, char *str, unsigned int wid, char fill, size_t n) { if (iswcntrl(wide_char) || iswspace(wide_char)) { sp += char_len; -#else - end--; - /* isnctrl(), etc., take an int argument. Cygwin's ctype.h - intentionally warns if they are passed a char. */ - int c = *sp; - if (iscntrl(c) || isspace(c)) { - sp++; -#endif if (!prevCtrl) { *cp++ = ' '; remaining--; @@ -169,7 +156,6 @@ cptrimmed(char **dest, char *str, unsigned int wid, char fill, size_t n) { } prevCtrl = 0; -#ifdef MULTIBYTE_SUPPORT w = wcwidth(wide_char); if (w >= 0 && remaining >= w) { strncpy(cp, sp, char_len); @@ -177,10 +163,6 @@ cptrimmed(char **dest, char *str, unsigned int wid, char fill, size_t n) { remaining -= w; } sp += char_len; -#else - *cp++ = *sp++; - remaining--; -#endif } } diff --git a/uip/scansbr.c b/uip/scansbr.c index 1f2785a..7eef85f 100644 --- a/uip/scansbr.c +++ b/uip/scansbr.c @@ -58,11 +58,7 @@ char *scanl = 0; /* text of most recent scanline */ */ static int mh_fputs(char *, FILE *); -#ifdef MULTIBYTE_SUPPORT #define SCAN_CHARWIDTH MB_CUR_MAX -#else -#define SCAN_CHARWIDTH 1 -#endif int scan (FILE *inb, int innum, int outnum, char *nfs, int width, int curflg,