changeset 90761:2951f3d44eba

(multibyte_char_to_unibyte_safe): New function.
author Kenichi Handa <handa@m17n.org>
date Thu, 15 Feb 2007 11:27:15 +0000
parents 656ca684d326
children c54ff468cc4f
files src/character.c
diffstat 1 files changed, 16 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/character.c	Thu Feb 15 11:26:52 2007 +0000
+++ b/src/character.c	Thu Feb 15 11:27:15 2007 +0000
@@ -275,6 +275,22 @@
   return ((c1 != CHARSET_INVALID_CODE (charset)) ? c1 : c & 0xFF);
 }
 
+/* Like multibyte_char_to_unibyte, but return -1 if C is not supported
+   by charset_unibyte.  */
+
+int
+multibyte_char_to_unibyte_safe (c)
+     int c;
+{
+  struct charset *charset;
+  unsigned c1;
+
+  if (CHAR_BYTE8_P (c))
+    return CHAR_TO_BYTE8 (c);
+  charset = CHARSET_FROM_ID (charset_unibyte);
+  c1 = ENCODE_CHAR (charset, c);
+  return ((c1 != CHARSET_INVALID_CODE (charset)) ? c1 : -1);
+}
 
 DEFUN ("characterp", Fcharacterp, Scharacterp, 1, 2, 0,
        doc: /* Return non-nil if OBJECT is a character.  */)