]> code.delx.au - gnu-emacs/blobdiff - src/charset.c
(Fchar_bytes): Remove obsolescence info from docstring.
[gnu-emacs] / src / charset.c
index 66c239d1bc2bb15a0beb4953a542eb60791b8db8..493c50545ac003211ab5443a0ba077f451e3006f 100644 (file)
@@ -49,10 +49,10 @@ Lisp_Object Qcharset, Qascii, Qeight_bit_control, Qeight_bit_graphic;
 Lisp_Object Qunknown;
 
 /* Declaration of special leading-codes.  */
-EMACS_INT leading_code_private_11;     /* for private DIMENSION1 of 1-column */
-EMACS_INT leading_code_private_12;     /* for private DIMENSION1 of 2-column */
-EMACS_INT leading_code_private_21;     /* for private DIMENSION2 of 1-column */
-EMACS_INT leading_code_private_22;     /* for private DIMENSION2 of 2-column */
+EMACS_INT leading_code_private_11; /* for private DIMENSION1 of 1-column */
+EMACS_INT leading_code_private_12; /* for private DIMENSION1 of 2-column */
+EMACS_INT leading_code_private_21; /* for private DIMENSION2 of 1-column */
+EMACS_INT leading_code_private_22; /* for private DIMENSION2 of 2-column */
 
 /* Declaration of special charsets.  The values are set by
    Fsetup_special_charsets.  */
@@ -143,7 +143,10 @@ invalid_character (c)
       (charset) = (str)[1], (c1) = (str)[2] & 0x7F, (c2) = (str)[3] & 0x7F;  \
   } while (0)
 
-/* 1 if CHARSET, C1, and C2 compose a valid character, else 0.  */
+/* 1 if CHARSET, C1, and C2 compose a valid character, else 0.
+   Note that this intentionally allows invalid components, such
+   as 0xA0 0xA0, because there exist many files that contain
+   such invalid byte sequences, especially in EUC-GB. */
 #define CHAR_COMPONENTS_VALID_P(charset, c1, c2)       \
   ((charset) == CHARSET_ASCII                          \
    ? ((c1) >= 0 && (c1) <= 0x7F)                       \
@@ -697,14 +700,14 @@ DESCRIPTION (string) is the description string of the charset.  */)
       || !STRINGP (vec[7])
       || !STRINGP (vec[8]))
     error ("Invalid info-vector argument for defining charset %s",
-          XSYMBOL (charset_symbol)->name->data);
+          XSTRING (SYMBOL_NAME (charset_symbol))->data);
 
   if (NILP (charset_id))
     {
       charset_id = get_new_private_charset_id (XINT (vec[0]), XINT (vec[2]));
       if (XINT (charset_id) == 0)
        error ("There's no room for a new private charset %s",
-              XSYMBOL (charset_symbol)->name->data);
+              XSTRING (SYMBOL_NAME (charset_symbol))->data);
     }
 
   update_charset_table (charset_id, vec[0], vec[1], vec[2], vec[3],
@@ -776,7 +779,7 @@ CHARSET should be defined by `defined-charset' in advance.  */)
   if (XINT (final_char) < '0' || XFASTINT (final_char) > '~')
     error ("Invalid FINAL-CHAR %c, it should be `0'..`~'", XINT (chars));
   if ((charset = get_charset_id (charset_symbol)) < 0)
-    error ("Invalid charset %s", XSYMBOL (charset_symbol)->name->data);
+    error ("Invalid charset %s", XSTRING (SYMBOL_NAME (charset_symbol))->data);
 
   ISO_CHARSET_TABLE (dimension, chars, final_char) = charset;
   return Qnil;
@@ -1173,8 +1176,7 @@ The conversion is done based on `nonascii-translation-table' (which see)
 }
 
 DEFUN ("char-bytes", Fchar_bytes, Schar_bytes, 1, 1, 0,
-       doc: /* Return 1 regardless of the argument CHAR.
-This is now an obsolete function.  We keep it just for backward compatibility.  */)
+       doc: /* Return 1 regardless of the argument CHAR.  */)
      (ch)
      Lisp_Object ch;
 {
@@ -1633,7 +1635,7 @@ str_as_unibyte (str, bytes)
 }
 
 \f
-DEFUN ("string", Fstring, Sstring, 1, MANY, 0,
+DEFUN ("string", Fstring, Sstring, 0, MANY, 0,
   doc: /* Concatenate all the argument characters and make the result a string.
 usage: (string &rest CHARACTERS)  */)
      (n, args)