]> code.delx.au - gnu-emacs/commitdiff
(Fmultibyte_char_to_unibyte): New function.
authorRichard M. Stallman <rms@gnu.org>
Tue, 18 Aug 1998 11:02:54 +0000 (11:02 +0000)
committerRichard M. Stallman <rms@gnu.org>
Tue, 18 Aug 1998 11:02:54 +0000 (11:02 +0000)
(syms_of_charset): defsubr it.

src/charset.c

index e43492a67aed03d5b2078542a5dc4d3b6227350c..819045842b55aaf76f8fa881f6e223ecf2e60824 100644 (file)
@@ -994,6 +994,26 @@ The conversion is done based on `nonascii-translation-table' (which see)\n\
   return make_number (c);
 }
 
+DEFUN ("multibyte-char-to-unibyte", Fmultibyte_char_to_unibyte,
+       Smultibyte_char_to_unibyte, 1, 1, 0,
+  "Convert the multibyte character CH to unibyte character.\n\
+The conversion is done based on `nonascii-translation-table' (which see)\n\
+ or `nonascii-insert-offset' (which see).")
+  (ch)
+     Lisp_Object ch;
+{
+  int c;
+
+  CHECK_NUMBER (ch, 0);
+  c = XINT (ch);
+  if (c < 0)
+    error ("Invalid multibyte character: %d", c);
+  c = multibyte_char_to_unibyte (c, Qnil);
+  if (c < 0)
+    error ("Can't convert to unibyte character: %d", XINT (ch));
+  return make_number (c);
+}
+
 DEFUN ("char-bytes", Fchar_bytes, Schar_bytes, 1, 1, 0,
   "Return byte length of multi-byte form of CHAR.")
   (ch)
@@ -1819,6 +1839,7 @@ syms_of_charset ()
   defsubr (&Siso_charset);
   defsubr (&Schar_valid_p);
   defsubr (&Sunibyte_char_to_multibyte);
+  defsubr (&Smultibyte_char_to_unibyte);
   defsubr (&Schar_bytes);
   defsubr (&Schar_width);
   defsubr (&Sstring_width);