From: Kenichi Handa Date: Mon, 14 May 2007 11:55:50 +0000 (+0000) Subject: (Funibyte_string): New function. X-Git-Tag: emacs-pretest-23.0.90~8295^2~512 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=70b4969d0c56fb8c749f13785d72d9998d600e28;p=emacs.git (Funibyte_string): New function. (syms_of_character): Defsubr it. --- diff --git a/src/character.c b/src/character.c index dd3771fc280..630eac9fc3b 100644 --- a/src/character.c +++ b/src/character.c @@ -931,6 +931,29 @@ usage: (string &rest CHARACTERS) */) return make_string_from_bytes ((char *) buf, n, p - buf); } +DEFUN ("unibyte-string", Funibyte_string, Sunibyte_string, 0, MANY, 0, + doc: /* Concatenate all the argument bytes and make the result a unibyte string. */) + (n, args) + int n; + Lisp_Object *args; +{ + int i; + unsigned char *buf = (unsigned char *) alloca (n); + unsigned char *p = buf; + unsigned c; + + for (i = 0; i < n; i++) + { + CHECK_NATNUM (args[i]); + c = XFASTINT (args[i]); + if (c >= 256) + args_out_of_range_3 (args[i], make_number (0), make_number (255)); + *p++ = c; + } + + return make_string_from_bytes ((char *) buf, n, p - buf); +} + void init_character_once () { @@ -956,6 +979,7 @@ syms_of_character () defsubr (&Sstring_width); defsubr (&Schar_direction); defsubr (&Sstring); + defsubr (&Sunibyte_string); DEFVAR_LISP ("translation-table-vector", &Vtranslation_table_vector, doc: /*