Mercurial > hg > xemacs-beta
comparison src/lrecord.h @ 793:e38acbeb1cae
[xemacs-hg @ 2002-03-29 04:46:17 by ben]
lots o' fixes
etc/ChangeLog: New file.
Separated out all entries for etc/ into their own ChangeLog.
Includes entries for the following files:
etc/BABYL, etc/BETA, etc/CHARSETS, etc/DISTRIB, etc/Emacs.ad,
etc/FTP, etc/GNUS-NEWS, etc/GOATS, etc/HELLO, etc/INSTALL,
etc/MACHINES, etc/MAILINGLISTS, etc/MSDOS, etc/MYTHOLOGY, etc/NEWS,
etc/OXYMORONS, etc/PACKAGES, etc/README, etc/TUTORIAL,
etc/TUTORIAL.de, etc/TUTORIAL.ja, etc/TUTORIAL.ko, etc/TUTORIAL.se,
etc/aliases.ksh, etc/altrasoft-logo.xpm, etc/check_cygwin_setup.sh,
etc/custom/example-themes/europe-theme.el,
etc/custom/example-themes/ex-custom-file,
etc/custom/example-themes/example-theme.el, etc/e/eterm.ti,
etc/edt-user.doc, etc/enriched.doc, etc/etags.1, etc/gnuserv.1,
etc/gnuserv.README, etc/package-index.LATEST.gpg,
etc/package-index.LATEST.pgp, etc/photos/jan.png, etc/recycle.xpm,
etc/refcard.tex, etc/sample.Xdefaults, etc/sample.emacs,
etc/sgml/CATALOG, etc/sgml/HTML32.dtd, etc/skk/SKK.tut.E,
etc/smilies/Face_ase.xbm, etc/smilies/Face_ase2.xbm,
etc/smilies/Face_ase3.xbm, etc/smilies/Face_smile.xbm,
etc/smilies/Face_weep.xbm, etc/sounds, etc/toolbar,
etc/toolbar/workshop-cap-up.xpm, etc/xemacs-ja.1, etc/xemacs.1,
etc/yow.lines, etc\BETA, etc\NEWS, etc\README, etc\TUTORIAL,
etc\TUTORIAL.de, etc\check_cygwin_setup.sh, etc\sample.init.el,
etc\unicode\README, etc\unicode\mule-ucs\*, etc\unicode\other\*
unicode/unicode-consortium/8859-16.TXT: New file.
mule/english.el: Define this charset now, since a bug was fixed that formerly
prevented it.
mule/ethio-util.el: Fix compile errors involving Unicode `characters', which should be
integers.
Makefile.in.in: Always include gui.c, to fix compile error when TTY-only.
EmacsFrame.c, abbrev.c, alloc.c, buffer.c, buffer.h, bytecode.c, bytecode.h, callint.c, callproc.c, casetab.c, casetab.h, charset.h, chartab.c, chartab.h, cmds.c, console-msw.c, console-msw.h, console-tty.c, console-x.c, console-x.h, console.c, console.h, data.c, database.c, device-gtk.c, device-msw.c, device-x.c, device.c, device.h, dialog-msw.c, doc.c, doprnt.c, dumper.c, dynarr.c, editfns.c, eldap.c, eldap.h, elhash.c, elhash.h, emacs.c, eval.c, event-Xt.c, event-gtk.c, event-msw.c, event-stream.c, event-tty.c, event-unixoid.c, events.c, events.h, extents.c, extents.h, faces.c, faces.h, file-coding.c, file-coding.h, fileio.c, filelock.c, fns.c, frame-gtk.c, frame-msw.c, frame-tty.c, frame-x.c, frame.c, frame.h, free-hook.c, general-slots.h, glyphs-eimage.c, glyphs-gtk.c, glyphs-msw.c, glyphs-widget.c, glyphs-x.c, glyphs.c, glyphs.h, gpmevent.c, gtk-xemacs.c, gui-msw.c, gui-x.c, gui-x.h, gui.c, gui.h, gutter.c, gutter.h, indent.c, input-method-xlib.c, insdel.c, keymap.c, keymap.h, lisp-disunion.h, lisp-union.h, lisp.h, lread.c, lrecord.h, lstream.c, lstream.h, marker.c, menubar-gtk.c, menubar-msw.c, menubar-x.c, menubar.c, minibuf.c, mule-canna.c, mule-ccl.c, mule-charset.c, mule-wnnfns.c, native-gtk-toolbar.c, objects-msw.c, objects-tty.c, objects-x.c, objects.c, objects.h, opaque.c, opaque.h, postgresql.c, postgresql.h, print.c, process-unix.c, process.c, process.h, rangetab.c, rangetab.h, redisplay-gtk.c, redisplay-msw.c, redisplay-output.c, redisplay-tty.c, redisplay-x.c, redisplay.c, scrollbar-gtk.c, scrollbar-msw.c, scrollbar-x.c, scrollbar.c, scrollbar.h, search.c, select-gtk.c, select-x.c, sound.c, specifier.c, specifier.h, strftime.c, symbols.c, symeval.h, syntax.h, text.c, text.h, toolbar-common.c, toolbar-msw.c, toolbar.c, toolbar.h, tooltalk.c, tooltalk.h, ui-gtk.c, ui-gtk.h, undo.c, vm-limit.c, window.c, window.h: Eliminate XSETFOO. Replace all usages with wrap_foo().
Make symbol->name a Lisp_Object, not Lisp_String *. Eliminate
nearly all uses of Lisp_String * in favor of Lisp_Object, and
correct macros so most of them favor Lisp_Object.
Create new error-behavior ERROR_ME_DEBUG_WARN -- output warnings,
but at level `debug' (usually ignored). Use it when instantiating
specifiers, so problems can be debugged. Move
log-warning-minimum-level into C so that we can optimize
ERROR_ME_DEBUG_WARN.
Fix warning levels consistent with new definitions.
Add default_ and parent fields to char table; not yet implemented.
New fun Dynarr_verify(); use for further error checking on Dynarrs.
Rearrange code at top of lisp.h in conjunction with dynarr changes.
Fix eifree(). Use Eistrings in various places
(format_event_object(), where_is_to_char(), and callers thereof)
to avoid fixed-size strings buffers. New fun write_eistring().
Reindent and fix GPM code to follow standards.
Set default MS Windows font to Lucida Console (same size as
Courier New but less interline spacing, so more lines fit).
Increase default frame size on Windows to 50 lines. (If that's too
big for the workspace, the frame will be shrunk as necessary.)
Fix problem with text files with no newlines (). (Change
`convert-eol' coding system to use `nil' for autodetect,
consistent with make-coding-system.)
Correct compile warnings in vm-limit.c.
Fix handling of reverse-direction charsets to avoid errors when
opening (e.g.) mule-ucs/lisp/reldata/uiso8859-6.el.
Recode some object printing methods to use write_fmt_string()
instead of a fixed buffer and sprintf.
Turn on display of png comments as warnings (level `info'), now
that they're unobtrusive.
Revamped the sound documentation.
Fixed bug in redisplay w.r.t. hscroll/truncation/continuation
glyphs causing jumping up and down of the lines, since they're
bigger than the line size. (It was seen most obviously when
there's a horizontal scroll bar, e.g. do C-h a glyph or something
like that.) The problem was that the glyph-contrib-p setting on
glyphs was ignored even if it was set properly, which it wasn't
until now.
author | ben |
---|---|
date | Fri, 29 Mar 2002 04:49:13 +0000 |
parents | 026c5bf9c134 |
children | a5954632b187 |
comparison
equal
deleted
inserted
replaced
792:4e83fdb13eb9 | 793:e38acbeb1cae |
---|---|
615 1. Declare the struct for your object in a header file somewhere. | 615 1. Declare the struct for your object in a header file somewhere. |
616 Remember that it must begin with | 616 Remember that it must begin with |
617 | 617 |
618 struct lcrecord_header header; | 618 struct lcrecord_header header; |
619 | 619 |
620 2. Put the "standard junk" (DECLARE_RECORD()/XFOO/XSETFOO/etc.) below the | 620 2. Put the "standard junk" (DECLARE_RECORD()/XFOO/etc.) below the |
621 struct definition -- see below. | 621 struct definition -- see below. |
622 | 622 |
623 3. Add this header file to inline.c. | 623 3. Add this header file to inline.c. |
624 | 624 |
625 4. Create the methods for your object. Note that technically you don't | 625 4. Create the methods for your object. Note that technically you don't |
673 | 673 |
674 [[ the standard junk: ]] | 674 [[ the standard junk: ]] |
675 | 675 |
676 DECLARE_LRECORD (toolbar_button, struct toolbar_button); | 676 DECLARE_LRECORD (toolbar_button, struct toolbar_button); |
677 #define XTOOLBAR_BUTTON(x) XRECORD (x, toolbar_button, struct toolbar_button) | 677 #define XTOOLBAR_BUTTON(x) XRECORD (x, toolbar_button, struct toolbar_button) |
678 #define XSETTOOLBAR_BUTTON(x, p) XSETRECORD (x, p, toolbar_button) | |
679 #define wrap_toolbar_button(p) wrap_record (p, toolbar_button) | 678 #define wrap_toolbar_button(p) wrap_record (p, toolbar_button) |
680 #define TOOLBAR_BUTTONP(x) RECORDP (x, toolbar_button) | 679 #define TOOLBAR_BUTTONP(x) RECORDP (x, toolbar_button) |
681 #define CHECK_TOOLBAR_BUTTON(x) CHECK_RECORD (x, toolbar_button) | 680 #define CHECK_TOOLBAR_BUTTON(x) CHECK_RECORD (x, toolbar_button) |
682 #define CONCHECK_TOOLBAR_BUTTON(x) CONCHECK_RECORD (x, toolbar_button) | 681 #define CONCHECK_TOOLBAR_BUTTON(x) CONCHECK_RECORD (x, toolbar_button) |
683 | 682 |
789 # define XRECORD(x, c_name, structtype) \ | 788 # define XRECORD(x, c_name, structtype) \ |
790 error_check_##c_name (x, __FILE__, __LINE__) | 789 error_check_##c_name (x, __FILE__, __LINE__) |
791 # define XNONRECORD(x, c_name, type_enum, structtype) \ | 790 # define XNONRECORD(x, c_name, type_enum, structtype) \ |
792 error_check_##c_name (x, __FILE__, __LINE__) | 791 error_check_##c_name (x, __FILE__, __LINE__) |
793 | 792 |
794 # define XSETRECORD(var, p, c_name) do \ | |
795 { \ | |
796 XSETOBJ (var, p); \ | |
797 assert (RECORD_TYPEP (var, lrecord_type_##c_name)); \ | |
798 } while (0) | |
799 | |
800 INLINE_HEADER Lisp_Object wrap_record_1 (void *ptr, enum lrecord_type ty, | 793 INLINE_HEADER Lisp_Object wrap_record_1 (void *ptr, enum lrecord_type ty, |
801 const char *file, int line); | 794 const char *file, int line); |
802 INLINE_HEADER Lisp_Object | 795 INLINE_HEADER Lisp_Object |
803 wrap_record_1 (void *ptr, enum lrecord_type ty, const char *file, int line) | 796 wrap_record_1 (void *ptr, enum lrecord_type ty, const char *file, int line) |
804 { | 797 { |
805 Lisp_Object obj; | 798 Lisp_Object obj = wrap_pointer_1 (ptr); |
806 XSETOBJ (obj, ptr); | 799 |
807 assert_at_line (RECORD_TYPEP (obj, ty), file, line); | 800 assert_at_line (RECORD_TYPEP (obj, ty), file, line); |
808 return obj; | 801 return obj; |
809 } | 802 } |
810 | 803 |
811 #define wrap_record(ptr, ty) \ | 804 #define wrap_record(ptr, ty) \ |
823 # define DECLARE_NONRECORD(c_name, type_enum, structtype) \ | 816 # define DECLARE_NONRECORD(c_name, type_enum, structtype) \ |
824 extern Lisp_Object Q##c_name##p | 817 extern Lisp_Object Q##c_name##p |
825 # define XRECORD(x, c_name, structtype) ((structtype *) XPNTR (x)) | 818 # define XRECORD(x, c_name, structtype) ((structtype *) XPNTR (x)) |
826 # define XNONRECORD(x, c_name, type_enum, structtype) \ | 819 # define XNONRECORD(x, c_name, type_enum, structtype) \ |
827 ((structtype *) XPNTR (x)) | 820 ((structtype *) XPNTR (x)) |
828 # define XSETRECORD(var, p, c_name) XSETOBJ (var, p) | |
829 /* wrap_pointer_1 is so named as a suggestion not to use it unless you | 821 /* wrap_pointer_1 is so named as a suggestion not to use it unless you |
830 know what you're doing. */ | 822 know what you're doing. */ |
831 #define wrap_record(ptr, ty) wrap_pointer_1 (ptr) | 823 #define wrap_record(ptr, ty) wrap_pointer_1 (ptr) |
832 | 824 |
833 #endif /* not ERROR_CHECK_TYPECHECK */ | 825 #endif /* not ERROR_CHECK_TYPECHECK */ |