comparison src/lisp.h @ 800:a5954632b187

[xemacs-hg @ 2002-03-31 08:27:14 by ben] more fixes, first crack at finishing behavior implementation TODO.ben-mule-21-5: Update. configure.in: Fix for new error-checking types. make-mswin-unicode.pl: Don't be fucked up by CRLF. Output code to force errors when nonintercepted Windows calls issued. behavior.el, dumped-lisp.el, menubar-items.el: Add support for saving using custom. Load into a dumped XEmacs. Correct :title to :short-doc in accordance with behavior-defs.el. Add a submenu under Options for turning on/off behaviors. cl-macs.el: Properly document `loop'. Fix a minor bug in keymap iteration and add support for bit-vector iteration. lisp-mode.el: Rearrange and add items for macro expanding. menubar-items.el: Document connection between these two functions. window.el: Port stuff from GNU 21.1. config.inc.samp, xemacs.mak: Separate out and add new variable for controlling error-checking. s/windowsnt.h: Use new ERROR_CHECK_ALL; not related to DEBUG_XEMACS. alloc.c, backtrace.h, buffer.c, buffer.h, bytecode.c, callproc.c, casetab.c, charset.h, chartab.c, cmdloop.c, config.h.in, console-msw.c, console-stream.c, console-tty.c, console.c, console.h, data.c, device-msw.c, device.c, device.h, dired-msw.c, dired.c, dumper.c, editfns.c, eldap.c, elhash.c, emacs.c, eval.c, event-Xt.c, event-gtk.c, event-msw.c, event-stream.c, events.c, extents.c, faces.c, file-coding.c, file-coding.h, fileio.c, frame-msw.c, frame.c, frame.h, glyphs-gtk.c, glyphs-msw.c, glyphs-shared.c, glyphs-widget.c, glyphs-x.c, glyphs.c, glyphs.h, insdel.c, intl-auto-encap-win32.c, intl-auto-encap-win32.h, intl-encap-win32.c, intl-win32.c, keymap.c, lisp-union.h, lisp.h, lread.c, lrecord.h, lstream.c, lstream.h, macros.c, marker.c, md5.c, menubar-x.c, menubar.c, mule-coding.c, ntproc.c, objects-gtk.c, objects-msw.c, objects-x.c, objects.c, opaque.c, print.c, process-nt.c, process-unix.c, process.c, rangetab.c, redisplay-msw.c, redisplay-output.c, redisplay.c, regex.c, scrollbar-msw.c, select-msw.c, signal.c, specifier.c, specifier.h, symbols.c, sysdep.c, syswindows.h, text.c, text.h, toolbar-msw.c, tooltalk.c, ui-gtk.c, unicode.c, window.c: Redo error-checking macros: ERROR_CHECK_TYPECHECK -> ERROR_CHECK_TYPES, ERROR_CHECK_CHARBPOS -> ERROR_CHECK_TEXT, add ERROR_CHECK_DISPLAY, ERROR_CHECK_STRUCTURES. Document these in config.h.in. Fix code to follow docs. Fix *_checking_assert() in accordance with new names. Attempt to fix periodic redisplay crash freeing display line structures. Add first implementation of sledgehammer redisplay check. Redo print_*() to use write_fmt_string(), write_fmt_string_lisp(). Fix bug in md5 handling. Rename character-to-unicode to char-to-unicode; same for unicode-to-char{acter}. Move chartab documentation to `make-char-table'. Some header cleanup. Clean up remaining places where nonintercepted Windows calls are being used. automated/mule-tests.el: Fix for new Unicode support.
author ben
date Sun, 31 Mar 2002 08:30:17 +0000
parents e38acbeb1cae
children 2b676dc88c66
comparison
equal deleted inserted replaced
799:03d9f9084848 800:a5954632b187
143 the typedefs in preference to 'EMACS_INT' to make it clearer what 143 the typedefs in preference to 'EMACS_INT' to make it clearer what
144 sort of position is being used. See extents.c for a description 144 sort of position is being used. See extents.c for a description
145 of the different positions. We put them here instead of in 145 of the different positions. We put them here instead of in
146 buffer.h (where they rightfully belong) to avoid syntax errors 146 buffer.h (where they rightfully belong) to avoid syntax errors
147 in function prototypes. */ 147 in function prototypes. */
148
148 149
149 typedef EMACS_INT Charbpos; 150 typedef EMACS_INT Charbpos;
150 typedef EMACS_INT Bytebpos; 151 typedef EMACS_INT Bytebpos;
151 typedef EMACS_INT Membpos; 152 typedef EMACS_INT Membpos;
152 153
431 #define Dynarr_atp(d, pos) (&Dynarr_at (d, pos)) 432 #define Dynarr_atp(d, pos) (&Dynarr_at (d, pos))
432 #define Dynarr_begin(d) Dynarr_atp (d, 0) 433 #define Dynarr_begin(d) Dynarr_atp (d, 0)
433 #define Dynarr_end(d) Dynarr_atp (d, Dynarr_length (d)) 434 #define Dynarr_end(d) Dynarr_atp (d, Dynarr_length (d))
434 #define Dynarr_sizeof(d) ((d)->cur * (d)->elsize) 435 #define Dynarr_sizeof(d) ((d)->cur * (d)->elsize)
435 436
436 #ifdef ERROR_CHECK_TYPECHECK 437 #ifdef ERROR_CHECK_STRUCTURES
437 DECLARE_INLINE_HEADER ( 438 DECLARE_INLINE_HEADER (
438 Dynarr * 439 Dynarr *
439 Dynarr_verify_1 (void *d, const char *file, int line) 440 Dynarr_verify_1 (void *d, const char *file, int line)
440 ) 441 )
441 { 442 {
446 } 447 }
447 448
448 #define Dynarr_verify(d) Dynarr_verify_1 (d, __FILE__, __LINE__) 449 #define Dynarr_verify(d) Dynarr_verify_1 (d, __FILE__, __LINE__)
449 #else 450 #else
450 #define Dynarr_verify(d) (d) 451 #define Dynarr_verify(d) (d)
451 #endif /* ERROR_CHECK_TYPECHECK */ 452 #endif /* ERROR_CHECK_STRUCTURES */
452 453
453 #define Dynarr_length(d) (Dynarr_verify (d)->cur) 454 #define Dynarr_length(d) (Dynarr_verify (d)->cur)
454 #define Dynarr_largest(d) (Dynarr_verify (d)->largest) 455 #define Dynarr_largest(d) (Dynarr_verify (d)->largest)
455 #define Dynarr_reset(d) (Dynarr_verify (d)->cur = 0) 456 #define Dynarr_reset(d) (Dynarr_verify (d)->cur = 0)
456 #define Dynarr_add_many(d, el, len) Dynarr_insert_many (d, el, len, (d)->cur) 457 #define Dynarr_add_many(d, el, len) Dynarr_insert_many (d, el, len, (d)->cur)
506 507
507 /* ------------------------------- */ 508 /* ------------------------------- */
508 /* Error_Behavior typedefs */ 509 /* Error_Behavior typedefs */
509 /* ------------------------------- */ 510 /* ------------------------------- */
510 511
511 #ifndef ERROR_CHECK_TYPECHECK 512 #ifndef ERROR_CHECK_TYPES
512 513
513 typedef enum error_behavior 514 typedef enum error_behavior
514 { 515 {
515 ERROR_ME, 516 ERROR_ME,
516 ERROR_ME_NOT, 517 ERROR_ME_NOT,
1397 /* WARNING: If you modify an existing string, you must call 1398 /* WARNING: If you modify an existing string, you must call
1398 bump_string_modiff() afterwards. */ 1399 bump_string_modiff() afterwards. */
1399 #define XSET_STRING_ASCII_BEGIN(s, val) \ 1400 #define XSET_STRING_ASCII_BEGIN(s, val) \
1400 ((void) (XSTRING (s)->u.v.ascii_begin = (val))) 1401 ((void) (XSTRING (s)->u.v.ascii_begin = (val)))
1401 1402
1402 #ifdef ERROR_CHECK_CHARBPOS 1403 #ifdef ERROR_CHECK_TEXT
1403 #define SLEDGEHAMMER_CHECK_ASCII_BEGIN 1404 #define SLEDGEHAMMER_CHECK_ASCII_BEGIN
1404 #endif 1405 #endif
1405 1406
1406 #ifdef SLEDGEHAMMER_CHECK_ASCII_BEGIN 1407 #ifdef SLEDGEHAMMER_CHECK_ASCII_BEGIN
1407 void sledgehammer_check_ascii_begin (Lisp_Object str); 1408 void sledgehammer_check_ascii_begin (Lisp_Object str);
1760 1761
1761 /*------------------------------- char ---------------------------------*/ 1762 /*------------------------------- char ---------------------------------*/
1762 1763
1763 #define CHARP(x) (XTYPE (x) == Lisp_Type_Char) 1764 #define CHARP(x) (XTYPE (x) == Lisp_Type_Char)
1764 1765
1765 #ifdef ERROR_CHECK_TYPECHECK 1766 #ifdef ERROR_CHECK_TYPES
1766 1767
1767 INLINE_HEADER Emchar XCHAR_1 (Lisp_Object obj, const char *file, int line); 1768 INLINE_HEADER Emchar XCHAR_1 (Lisp_Object obj, const char *file, int line);
1768 INLINE_HEADER Emchar 1769 INLINE_HEADER Emchar
1769 XCHAR_1 (Lisp_Object obj, const char *file, int line) 1770 XCHAR_1 (Lisp_Object obj, const char *file, int line)
1770 { 1771 {
1840 1841
1841 /*-------------------------------- int ---------------------------------*/ 1842 /*-------------------------------- int ---------------------------------*/
1842 1843
1843 #define ZEROP(x) EQ (x, Qzero) 1844 #define ZEROP(x) EQ (x, Qzero)
1844 1845
1845 #ifdef ERROR_CHECK_TYPECHECK 1846 #ifdef ERROR_CHECK_TYPES
1846 1847
1847 #define XCHAR_OR_INT(x) XCHAR_OR_INT_1 (x, __FILE__, __LINE__) 1848 #define XCHAR_OR_INT(x) XCHAR_OR_INT_1 (x, __FILE__, __LINE__)
1848 #define XINT(x) XINT_1 (x, __FILE__, __LINE__) 1849 #define XINT(x) XINT_1 (x, __FILE__, __LINE__)
1849 1850
1850 INLINE_HEADER EMACS_INT XINT_1 (Lisp_Object obj, const char *file, int line); 1851 INLINE_HEADER EMACS_INT XINT_1 (Lisp_Object obj, const char *file, int line);