]> git.marmaro.de Git - mmh/commitdiff
It turns out that as part of POSIXification we got rid of checks for
authorKen Hornstein <kenh@pobox.com>
Wed, 21 Mar 2012 01:36:37 +0000 (21:36 -0400)
committerKen Hornstein <kenh@pobox.com>
Wed, 21 Mar 2012 01:36:37 +0000 (21:36 -0400)
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.

configure.ac
sbr/fmt_scan.c
uip/scansbr.c

index fd9b98e3b56bcebe6bd2d6e101be1e2b200fa447..7957fddc1d18b295ee4300393338e98f1b656e3e 100644 (file)
@@ -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 -------------------
index 29b87d02713d18cf26b2f0c0250150429210adee..0f5aeb033f80e3fd0e2614da8f0c4b22c69c2d06 100644 (file)
 # include <sys/time.h>
 #endif
 #include <time.h>
-#ifdef MULTIBYTE_SUPPORT
-#  include <wctype.h>
-#  include <wchar.h>
-#endif
+#include <wctype.h>
+#include <wchar.h>
 
 #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
        }
     }
 
index 1f2785a06cdc424dae2ee427749fdba17ff2cef6..7eef85f97ecfa378b116cd27df52834cd2ca905c 100644 (file)
@@ -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,