Mercurial > hg > xemacs-beta
diff src/casetab.c @ 272:c5d627a313b1 r21-0b34
Import from CVS: tag r21-0b34
author | cvs |
---|---|
date | Mon, 13 Aug 2007 10:28:48 +0200 |
parents | 677f6a0ee643 |
children | 6330739388db |
line wrap: on
line diff
--- a/src/casetab.c Mon Aug 13 10:27:41 2007 +0200 +++ b/src/casetab.c Mon Aug 13 10:28:48 2007 +0200 @@ -53,20 +53,19 @@ static void compute_trt_inverse (Lisp_Object trt, Lisp_Object inverse); -#define STRING256_P(obj) \ - (STRINGP (obj) && string_char_length (XSTRING (obj)) == 256) +#define STRING256_P(obj) (STRINGP (obj) && XSTRING_CHAR_LENGTH (obj) == 256) DEFUN ("case-table-p", Fcase_table_p, 1, 1, 0, /* -Return t iff ARG is a case table. +Return t if ARG is a case table. See `set-case-table' for more information on these data structures. */ (table)) { Lisp_Object down, up, canon, eqv; - down = Fcar_safe (table); - up = Fcar_safe (Fcdr_safe (table)); - canon = Fcar_safe (Fcdr_safe (Fcdr_safe (table))); - eqv = Fcar_safe (Fcdr_safe (Fcdr_safe (Fcdr_safe (table)))); + if (!CONSP (table)) return Qnil; down = XCAR (table); table = XCDR (table); + if (!CONSP (table)) return Qnil; up = XCAR (table); table = XCDR (table); + if (!CONSP (table)) return Qnil; canon = XCAR (table); table = XCDR (table); + if (!CONSP (table)) return Qnil; eqv = XCAR (table); return (STRING256_P (down) && (NILP (up) || STRING256_P (up)) @@ -91,15 +90,12 @@ */ (buffer)) { - Lisp_Object down, up, canon, eqv; struct buffer *buf = decode_buffer (buffer, 0); - down = buf->downcase_table; - up = buf->upcase_table; - canon = buf->case_canon_table; - eqv = buf->case_eqv_table; - - return Fcons (down, Fcons (up, Fcons (canon, Fcons (eqv, Qnil)))); + return list4 (buf->downcase_table, + buf->upcase_table, + buf->case_canon_table, + buf->case_eqv_table); } DEFUN ("standard-case-table", Fstandard_case_table, 0, 0, 0, /* @@ -108,11 +104,10 @@ */ ()) { - return Fcons (Vascii_downcase_table, - Fcons (Vascii_upcase_table, - Fcons (Vascii_canon_table, - Fcons (Vascii_eqv_table, - Qnil)))); + return list4 (Vascii_downcase_table, + Vascii_upcase_table, + Vascii_canon_table, + Vascii_eqv_table); } static Lisp_Object set_case_table (Lisp_Object table, int standard); @@ -194,15 +189,15 @@ static Lisp_Object set_case_table (Lisp_Object table, int standard) { - Lisp_Object down, up, canon, eqv; + Lisp_Object down, up, canon, eqv, tail = table; struct buffer *buf = current_buffer; check_case_table (table); - down = Fcar_safe (table); - up = Fcar_safe (Fcdr_safe (table)); - canon = Fcar_safe (Fcdr_safe (Fcdr_safe (table))); - eqv = Fcar_safe (Fcdr_safe (Fcdr_safe (Fcdr_safe (table)))); + down = XCAR (tail); tail = XCDR (tail); + up = XCAR (tail); tail = XCDR (tail); + canon = XCAR (tail); tail = XCDR (tail); + eqv = XCAR (tail); if (NILP (up)) {