summaryrefslogtreecommitdiff
path: root/pith
diff options
context:
space:
mode:
authorEduardo Chappa <chappa@washington.edu>2021-04-18 09:54:53 -0600
committerEduardo Chappa <chappa@washington.edu>2021-04-18 09:54:53 -0600
commit43f4dca2ead9fb8f65778c2772228dff554e1c75 (patch)
treec70773789fcac9fb86baf4451a57ec75548a75cb /pith
parent2807fa1f8a4125bc4fd1992f3e2d6c0a12005c62 (diff)
downloadalpine-43f4dca2ead9fb8f65778c2772228dff554e1c75.tar.xz
* Addition of testing for wctomb(), which will be used in systems that
do not have wcrtomb(). Work in collaboration with professor Martin Trusler.
Diffstat (limited to 'pith')
-rw-r--r--pith/charconv/utf8.c10
-rw-r--r--pith/pine.hlp7
2 files changed, 16 insertions, 1 deletions
diff --git a/pith/charconv/utf8.c b/pith/charconv/utf8.c
index 1651252..42a364b 100644
--- a/pith/charconv/utf8.c
+++ b/pith/charconv/utf8.c
@@ -125,6 +125,7 @@ pith_ucs4width(UCS ucs)
int
wtomb(char *dest, UCS ucs)
{
+ int rv;
/*
* We believe that on modern unix systems wchar_t is a UCS-4 character.
* That's the assumption here.
@@ -150,7 +151,14 @@ wtomb(char *dest, UCS ucs)
return(ret);
}
else
- return(wcrtomb(dest, (wchar_t) ucs, NULL));
+#if defined(HAVE_WCRTOMB)
+ rv = wcrtomb(dest, (wchar_t) ucs, NULL);
+#elif defined(HAVE_WCTOMB)
+ rv = wctomb(dest, (wchar_t) ucs);
+#else
+ rv = -1;
+#endif
+ return rv;
}
diff --git a/pith/pine.hlp b/pith/pine.hlp
index 2605ae0..a226e99 100644
--- a/pith/pine.hlp
+++ b/pith/pine.hlp
@@ -35312,7 +35312,14 @@ To convert from Unicode to multi-byte the routine
<CENTER><SAMP>wcrtomb</SAMP></CENTER>
<P>
+is used, if available, otherwise
+
+<P>
+<CENTER><SAMP>wctomb</SAMP></CENTER>
+<P>
+
is used.
+
And to find the screen width a particular Unicode character will
occupy the routine used is