From 70b4969d0c56fb8c749f13785d72d9998d600e28 Mon Sep 17 00:00:00 2001 From: Kenichi Handa Date: Mon, 14 May 2007 11:55:50 +0000 Subject: [PATCH] (Funibyte_string): New function. (syms_of_character): Defsubr it. --- src/character.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) 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: /* -- 2.39.5