Mercurial > hg > xemacs-beta
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); |