[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Nmh-commits] [SCM] The nmh Mail Handling System branch, master, updated
From: |
Ken Hornstein |
Subject: |
[Nmh-commits] [SCM] The nmh Mail Handling System branch, master, updated. 24ba06b111dbadb912fa97f74ec8595f71b04393 |
Date: |
Wed, 21 Mar 2012 18:20:11 +0000 |
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "The nmh Mail Handling System".
The branch, master has been updated
via 24ba06b111dbadb912fa97f74ec8595f71b04393 (commit)
from c2a2ca7d8d72c5a8bdadcd6f2c4dcf3c314a1066 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://git.savannah.gnu.org/cgit/nmh.git/commit/?id=24ba06b111dbadb912fa97f74ec8595f71b04393
commit 24ba06b111dbadb912fa97f74ec8595f71b04393
Author: Ken Hornstein <address@hidden>
Date: Wed Mar 21 12:22:16 2012 -0400
Revert previous change to get rid of MULTIBYTE_SUPPORT ifdef. It turns out
this breaks the Plan 9 build. But include a check for the multibyte
functions
so we get MULTIBYTE_SUPPORT on systems that have it.
This reverts commit bd4fca3a8a15b35a04bdc333503c901d677c12eb.
diff --git a/configure.ac b/configure.ac
index 7957fdd..0b512b3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -413,7 +413,14 @@ AC_CHECK_HEADER([sys/ptem.h], AC_DEFINE(WINSIZE_IN_PTEM,1,
dnl ---------------
dnl CHECK FUNCTIONS
dnl ---------------
-AC_CHECK_FUNCS([writev lstat nl_langinfo])
+AC_CHECK_FUNCS([wcwidth mbtowc 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
diff --git a/sbr/fmt_scan.c b/sbr/fmt_scan.c
index 0f5aeb0..29b87d0 100644
--- a/sbr/fmt_scan.c
+++ b/sbr/fmt_scan.c
@@ -20,8 +20,10 @@
# include <sys/time.h>
#endif
#include <time.h>
-#include <wctype.h>
-#include <wchar.h>
+#ifdef MULTIBYTE_SUPPORT
+# include <wctype.h>
+# include <wchar.h>
+#endif
#ifdef LBL
struct msgs *fmt_current_folder; /* current folder (set by main program) */
@@ -120,9 +122,11 @@ 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 */
@@ -138,6 +142,7 @@ 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;
@@ -146,6 +151,14 @@ 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--;
@@ -156,6 +169,7 @@ 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);
@@ -163,6 +177,10 @@ 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 7eef85f..1f2785a 100644
--- a/uip/scansbr.c
+++ b/uip/scansbr.c
@@ -58,7 +58,11 @@ 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,
-----------------------------------------------------------------------
Summary of changes:
configure.ac | 9 ++++++++-
sbr/fmt_scan.c | 22 ++++++++++++++++++++--
uip/scansbr.c | 4 ++++
3 files changed, 32 insertions(+), 3 deletions(-)
hooks/post-receive
--
The nmh Mail Handling System
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Nmh-commits] [SCM] The nmh Mail Handling System branch, master, updated. 24ba06b111dbadb912fa97f74ec8595f71b04393,
Ken Hornstein <=