Mercurial > hg > xemacs-beta
comparison src/chartab.c @ 563:183866b06e0b
[xemacs-hg @ 2001-05-24 07:50:48 by ben]
Makefile.in.in, abbrev.c, alloc.c, buffer.c, bytecode.c, callint.c, callproc.c, casetab.c, chartab.c, cmdloop.c, cmds.c, console-msw.c, console-msw.h, console-stream.c, console-tty.c, console-x.c, console.c, data.c, database.c, debug.c, device-gtk.c, device-msw.c, device-tty.c, device-x.c, device.c, dialog-gtk.c, dialog-msw.c, dialog-x.c, dialog.c, dired-msw.c, dired.c, doc.c, doprnt.c, dragdrop.c, editfns.c, eldap.c, eldap.h, elhash.c, emacs-widget-accessors.c, emacs.c, emodules.c, esd.c, eval.c, event-Xt.c, event-gtk.c, event-msw.c, event-stream.c, events.c, extents.c, faces.c, file-coding.c, fileio.c, filelock.c, floatfns.c, fns.c, font-lock.c, frame-gtk.c, frame-x.c, frame.c, general-slots.h, glade.c, glyphs-gtk.c, glyphs-msw.c, glyphs-widget.c, glyphs-x.c, glyphs.c, glyphs.h, gpmevent.c, gui-gtk.c, gui-x.c, gui.c, gutter.c, hpplay.c, indent.c, input-method-xlib.c, insdel.c, intl.c, keymap.c, libsst.c, libsst.h, linuxplay.c, lisp.h, lread.c, lstream.c, lstream.h, macros.c, marker.c, md5.c, menubar-gtk.c, menubar-msw.c, menubar-x.c, menubar.c, minibuf.c, miscplay.c, miscplay.h, mule-ccl.c, mule-charset.c, mule-wnnfns.c, mule.c, nas.c, ntplay.c, ntproc.c, objects-gtk.c, objects-msw.c, objects-x.c, objects.c, postgresql.c, print.c, process-nt.c, process-unix.c, process.c, ralloc.c, rangetab.c, redisplay.c, scrollbar.c, search.c, select-gtk.c, select-x.c, select.c, sgiplay.c, sheap.c, sound.c, specifier.c, sunplay.c, symbols.c, symeval.h, symsinit.h, syntax.c, sysdep.c, toolbar-msw.c, toolbar.c, tooltalk.c, ui-byhand.c, ui-gtk.c, undo.c, unexaix.c, unexapollo.c, unexconvex.c, unexec.c, widget.c, win32.c, window.c:
-- defsymbol -> DEFSYMBOL.
-- add an error type to all errors.
-- eliminate the error functions in eval.c that let you just
use Qerror as the type.
-- redo the error API to be more consistent, sensibly named,
and easier to use.
-- redo the error hierarchy somewhat. create new errors:
structure-formation-error, gui-error, invalid-constant,
stack-overflow, out-of-memory, process-error, network-error,
sound-error, printing-unreadable-object, base64-conversion-
error; coding-system-error renamed to text-conversion error;
some others.
-- fix Mule problems in error strings in emodules.c, tooltalk.c.
-- fix error handling in mswin open-network-stream.
-- Mule-ize all sound files and clean up the headers.
-- nativesound.h -> sound.h and used for all sound files.
-- move some shared stuff into glyphs-shared.c: first attempt
at eliminating some of the massive GTK code duplication.
xemacs.mak: add glyphs-shared.c.
xemacs-faq.texi: document how to debug X errors
subr.el: fix doc string to reflect reality
author | ben |
---|---|
date | Thu, 24 May 2001 07:51:33 +0000 |
parents | c33ae14dd6d0 |
children | 190b164ddcac |
comparison
equal
deleted
inserted
replaced
562:c775bd016b32 | 563:183866b06e0b |
---|---|
209 if (EQ (symbol, Qchar)) return CHAR_TABLE_TYPE_CHAR; | 209 if (EQ (symbol, Qchar)) return CHAR_TABLE_TYPE_CHAR; |
210 #ifdef MULE | 210 #ifdef MULE |
211 if (EQ (symbol, Qcategory)) return CHAR_TABLE_TYPE_CATEGORY; | 211 if (EQ (symbol, Qcategory)) return CHAR_TABLE_TYPE_CATEGORY; |
212 #endif | 212 #endif |
213 | 213 |
214 signal_simple_error ("Unrecognized char table type", symbol); | 214 invalid_constant ("Unrecognized char table type", symbol); |
215 return CHAR_TABLE_TYPE_GENERIC; /* not reached */ | 215 return CHAR_TABLE_TYPE_GENERIC; /* not reached */ |
216 } | 216 } |
217 | 217 |
218 static void | 218 static void |
219 print_chartab_range (Emchar first, Emchar last, Lisp_Object val, | 219 print_chartab_range (Emchar first, Emchar last, Lisp_Object val, |
727 outrange->type = CHARTAB_RANGE_CHAR; | 727 outrange->type = CHARTAB_RANGE_CHAR; |
728 outrange->ch = XCHAR_OR_CHAR_INT (range); | 728 outrange->ch = XCHAR_OR_CHAR_INT (range); |
729 } | 729 } |
730 #ifndef MULE | 730 #ifndef MULE |
731 else | 731 else |
732 signal_simple_error ("Range must be t or a character", range); | 732 sferror ("Range must be t or a character", range); |
733 #else /* MULE */ | 733 #else /* MULE */ |
734 else if (VECTORP (range)) | 734 else if (VECTORP (range)) |
735 { | 735 { |
736 Lisp_Vector *vec = XVECTOR (range); | 736 Lisp_Vector *vec = XVECTOR (range); |
737 Lisp_Object *elts = vector_data (vec); | 737 Lisp_Object *elts = vector_data (vec); |
738 if (vector_length (vec) != 2) | 738 if (vector_length (vec) != 2) |
739 signal_simple_error ("Length of charset row vector must be 2", | 739 sferror ("Length of charset row vector must be 2", |
740 range); | 740 range); |
741 outrange->type = CHARTAB_RANGE_ROW; | 741 outrange->type = CHARTAB_RANGE_ROW; |
742 outrange->charset = Fget_charset (elts[0]); | 742 outrange->charset = Fget_charset (elts[0]); |
743 CHECK_INT (elts[1]); | 743 CHECK_INT (elts[1]); |
744 outrange->row = XINT (elts[1]); | 744 outrange->row = XINT (elts[1]); |
745 switch (XCHARSET_TYPE (outrange->charset)) | 745 switch (XCHARSET_TYPE (outrange->charset)) |
746 { | 746 { |
747 case CHARSET_TYPE_94: | 747 case CHARSET_TYPE_94: |
748 case CHARSET_TYPE_96: | 748 case CHARSET_TYPE_96: |
749 signal_simple_error ("Charset in row vector must be multi-byte", | 749 sferror ("Charset in row vector must be multi-byte", |
750 outrange->charset); | 750 outrange->charset); |
751 case CHARSET_TYPE_94X94: | 751 case CHARSET_TYPE_94X94: |
752 check_int_range (outrange->row, 33, 126); | 752 check_int_range (outrange->row, 33, 126); |
753 break; | 753 break; |
754 case CHARSET_TYPE_96X96: | 754 case CHARSET_TYPE_96X96: |
759 } | 759 } |
760 } | 760 } |
761 else | 761 else |
762 { | 762 { |
763 if (!CHARSETP (range) && !SYMBOLP (range)) | 763 if (!CHARSETP (range) && !SYMBOLP (range)) |
764 signal_simple_error | 764 sferror |
765 ("Char table range must be t, charset, char, or vector", range); | 765 ("Char table range must be t, charset, char, or vector", range); |
766 outrange->type = CHARTAB_RANGE_CHARSET; | 766 outrange->type = CHARTAB_RANGE_CHARSET; |
767 outrange->charset = Fget_charset (range); | 767 outrange->charset = Fget_charset (range); |
768 } | 768 } |
769 #endif /* MULE */ | 769 #endif /* MULE */ |
977 case CHAR_TABLE_TYPE_GENERIC: | 977 case CHAR_TABLE_TYPE_GENERIC: |
978 return 1; | 978 return 1; |
979 | 979 |
980 case CHAR_TABLE_TYPE_DISPLAY: | 980 case CHAR_TABLE_TYPE_DISPLAY: |
981 /* #### fix this */ | 981 /* #### fix this */ |
982 maybe_signal_simple_error ("Display char tables not yet implemented", | 982 maybe_signal_error (Qunimplemented, |
983 value, Qchar_table, errb); | 983 "Display char tables not yet implemented", |
984 value, Qchar_table, errb); | |
984 return 0; | 985 return 0; |
985 | 986 |
986 case CHAR_TABLE_TYPE_CHAR: | 987 case CHAR_TABLE_TYPE_CHAR: |
987 if (!ERRB_EQ (errb, ERROR_ME)) | 988 if (!ERRB_EQ (errb, ERROR_ME)) |
988 return CHAR_OR_CHAR_INTP (value); | 989 return CHAR_OR_CHAR_INTP (value); |
1492 Lisp_Object range = XCAR (rest); | 1493 Lisp_Object range = XCAR (rest); |
1493 struct chartab_range dummy; | 1494 struct chartab_range dummy; |
1494 | 1495 |
1495 rest = XCDR (rest); | 1496 rest = XCDR (rest); |
1496 if (!CONSP (rest)) | 1497 if (!CONSP (rest)) |
1497 signal_simple_error ("Invalid list format", value); | 1498 signal_error (Qlist_formation_error, "Invalid list format", value); |
1498 if (CONSP (range)) | 1499 if (CONSP (range)) |
1499 { | 1500 { |
1500 if (!CONSP (XCDR (range)) | 1501 if (!CONSP (XCDR (range)) |
1501 || !NILP (XCDR (XCDR (range)))) | 1502 || !NILP (XCDR (XCDR (range)))) |
1502 signal_simple_error ("Invalid range format", range); | 1503 sferror ("Invalid range format", range); |
1503 decode_char_table_range (XCAR (range), &dummy); | 1504 decode_char_table_range (XCAR (range), &dummy); |
1504 decode_char_table_range (XCAR (XCDR (range)), &dummy); | 1505 decode_char_table_range (XCAR (XCDR (range)), &dummy); |
1505 } | 1506 } |
1506 else | 1507 else |
1507 decode_char_table_range (range, &dummy); | 1508 decode_char_table_range (range, &dummy); |
1615 { | 1616 { |
1616 REGISTER Lisp_Object temp; | 1617 REGISTER Lisp_Object temp; |
1617 Lisp_Char_Table *ctbl; | 1618 Lisp_Char_Table *ctbl; |
1618 #ifdef ERROR_CHECK_TYPECHECK | 1619 #ifdef ERROR_CHECK_TYPECHECK |
1619 if (NILP (Fcategory_table_p (table))) | 1620 if (NILP (Fcategory_table_p (table))) |
1620 signal_simple_error ("Expected category table", table); | 1621 wtaerror ("Expected category table", table); |
1621 #endif | 1622 #endif |
1622 ctbl = XCHAR_TABLE (table); | 1623 ctbl = XCHAR_TABLE (table); |
1623 temp = get_char_table (ch, ctbl); | 1624 temp = get_char_table (ch, ctbl); |
1624 if (NILP (temp)) | 1625 if (NILP (temp)) |
1625 return not_p; | 1626 return not_p; |
1804 INIT_LRECORD_IMPLEMENTATION (char_table); | 1805 INIT_LRECORD_IMPLEMENTATION (char_table); |
1805 | 1806 |
1806 #ifdef MULE | 1807 #ifdef MULE |
1807 INIT_LRECORD_IMPLEMENTATION (char_table_entry); | 1808 INIT_LRECORD_IMPLEMENTATION (char_table_entry); |
1808 | 1809 |
1809 defsymbol (&Qcategory_table_p, "category-table-p"); | 1810 DEFSYMBOL (Qcategory_table_p); |
1810 defsymbol (&Qcategory_designator_p, "category-designator-p"); | 1811 DEFSYMBOL (Qcategory_designator_p); |
1811 defsymbol (&Qcategory_table_value_p, "category-table-value-p"); | 1812 DEFSYMBOL (Qcategory_table_value_p); |
1812 #endif /* MULE */ | 1813 #endif /* MULE */ |
1813 | 1814 |
1814 defsymbol (&Qchar_table, "char-table"); | 1815 DEFSYMBOL (Qchar_table); |
1815 defsymbol (&Qchar_tablep, "char-table-p"); | 1816 DEFSYMBOL_MULTIWORD_PREDICATE (Qchar_tablep); |
1816 | 1817 |
1817 DEFSUBR (Fchar_table_p); | 1818 DEFSUBR (Fchar_table_p); |
1818 DEFSUBR (Fchar_table_type_list); | 1819 DEFSUBR (Fchar_table_type_list); |
1819 DEFSUBR (Fvalid_char_table_type_p); | 1820 DEFSUBR (Fvalid_char_table_type_p); |
1820 DEFSUBR (Fchar_table_type); | 1821 DEFSUBR (Fchar_table_type); |