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 -------------------
# 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) */
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 */
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;
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--;
}
prevCtrl = 0;
-#ifdef MULTIBYTE_SUPPORT
w = wcwidth(wide_char);
if (w >= 0 && remaining >= w) {
strncpy(cp, sp, char_len);
remaining -= w;
}
sp += char_len;
-#else
- *cp++ = *sp++;
- remaining--;
-#endif
}
}
*/
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,