Mercurial > hg > xemacs-beta
comparison src/event-stream.c @ 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 |
---|---|
309 /* Command-builder object */ | 309 /* Command-builder object */ |
310 /**********************************************************************/ | 310 /**********************************************************************/ |
311 | 311 |
312 #define XCOMMAND_BUILDER(x) \ | 312 #define XCOMMAND_BUILDER(x) \ |
313 XRECORD (x, command_builder, struct command_builder) | 313 XRECORD (x, command_builder, struct command_builder) |
314 #define XSETCOMMAND_BUILDER(x, p) XSETRECORD (x, p, command_builder) | |
315 #define wrap_command_builder(p) wrap_record (p, command_builder) | 314 #define wrap_command_builder(p) wrap_record (p, command_builder) |
316 #define COMMAND_BUILDERP(x) RECORDP (x, command_builder) | 315 #define COMMAND_BUILDERP(x) RECORDP (x, command_builder) |
317 #define CHECK_COMMAND_BUILDER(x) CHECK_RECORD (x, command_builder) | 316 #define CHECK_COMMAND_BUILDER(x) CHECK_RECORD (x, command_builder) |
318 #define CONCHECK_COMMAND_BUILDER(x) CONCHECK_RECORD (x, command_builder) | 317 #define CONCHECK_COMMAND_BUILDER(x) CONCHECK_RECORD (x, command_builder) |
319 | 318 |
547 { | 546 { |
548 Lisp_Object event_obj; | 547 Lisp_Object event_obj; |
549 | 548 |
550 check_event_stream_ok (EVENT_STREAM_READ); | 549 check_event_stream_ok (EVENT_STREAM_READ); |
551 | 550 |
552 XSETEVENT (event_obj, event); | 551 event_obj = wrap_event (event); |
553 zero_event (event); | 552 zero_event (event); |
554 /* If C-g was pressed, treat it as a character to be read. | 553 /* If C-g was pressed, treat it as a character to be read. |
555 Note that if C-g was pressed while we were blocking, | 554 Note that if C-g was pressed while we were blocking, |
556 the SIGINT signal handler will be called. It will | 555 the SIGINT signal handler will be called. It will |
557 set Vquit_flag and write a byte on our "fake pipe", | 556 set Vquit_flag and write a byte on our "fake pipe", |
704 static void | 703 static void |
705 echo_key_event (struct command_builder *command_builder, | 704 echo_key_event (struct command_builder *command_builder, |
706 Lisp_Object event) | 705 Lisp_Object event) |
707 { | 706 { |
708 /* This function can GC */ | 707 /* This function can GC */ |
709 char buf[255]; | 708 DECLARE_EISTRING_MALLOC (buf); |
710 Bytecount buf_index = command_builder->echo_buf_index; | 709 Bytecount buf_index = command_builder->echo_buf_index; |
711 Intbyte *e; | 710 Intbyte *e; |
712 Bytecount len; | 711 Bytecount len; |
713 | 712 |
714 if (buf_index < 0) | 713 if (buf_index < 0) |
716 buf_index = 0; /* We're echoing now */ | 715 buf_index = 0; /* We're echoing now */ |
717 clear_echo_area (selected_frame (), Qnil, 0); | 716 clear_echo_area (selected_frame (), Qnil, 0); |
718 } | 717 } |
719 | 718 |
720 format_event_object (buf, XEVENT (event), 1); | 719 format_event_object (buf, XEVENT (event), 1); |
721 len = strlen (buf); | 720 len = eilen (buf); |
722 | 721 |
723 if (len + buf_index + 4 > command_builder->echo_buf_length) | 722 if (len + buf_index + 4 > command_builder->echo_buf_length) |
724 return; | 723 { |
724 eifree (buf); | |
725 return; | |
726 } | |
725 e = command_builder->echo_buf + buf_index; | 727 e = command_builder->echo_buf + buf_index; |
726 memcpy (e, buf, len); | 728 memcpy (e, eidata (buf), len); |
727 e += len; | 729 e += len; |
730 eifree (buf); | |
728 | 731 |
729 e[0] = ' '; | 732 e[0] = ' '; |
730 e[1] = '-'; | 733 e[1] = '-'; |
731 e[2] = ' '; | 734 e[2] = ' '; |
732 e[3] = 0; | 735 e[3] = 0; |
3233 command_builder_replace_suffix (builder, suffix, new_chain); | 3236 command_builder_replace_suffix (builder, suffix, new_chain); |
3234 builder->munge_me[munge].first_mungeable_event = Qnil; | 3237 builder->munge_me[munge].first_mungeable_event = Qnil; |
3235 | 3238 |
3236 *did_munge = 1; | 3239 *did_munge = 1; |
3237 | 3240 |
3238 result = command_builder_find_leaf_1 (builder); | 3241 return command_builder_find_leaf_1 (builder); |
3239 return result; | |
3240 } | 3242 } |
3241 | 3243 |
3242 signal_error (Qinvalid_key_binding, | 3244 signal_error (Qinvalid_key_binding, |
3243 (munge == MUNGE_ME_FUNCTION_KEY ? | 3245 (munge == MUNGE_ME_FUNCTION_KEY ? |
3244 "Invalid binding in function-key-map" : | 3246 "Invalid binding in function-key-map" : |
4123 | 4125 |
4124 static void | 4126 static void |
4125 pre_command_hook (void) | 4127 pre_command_hook (void) |
4126 { | 4128 { |
4127 last_point_position = BUF_PT (current_buffer); | 4129 last_point_position = BUF_PT (current_buffer); |
4128 XSETBUFFER (last_point_position_buffer, current_buffer); | 4130 last_point_position_buffer = wrap_buffer (current_buffer); |
4129 /* This function can GC */ | 4131 /* This function can GC */ |
4130 safe_run_hook_trapping_errors | 4132 safe_run_hook_trapping_errors |
4131 ("Error in `pre-command-hook' (setting hook to nil)", | 4133 ("Error in `pre-command-hook' (setting hook to nil)", |
4132 Qpre_command_hook, 1); | 4134 Qpre_command_hook, 1); |
4133 | 4135 |
4571 Emchar ch = XCHAR (keysym); | 4573 Emchar ch = XCHAR (keysym); |
4572 Intbyte str[MAX_EMCHAR_LEN]; | 4574 Intbyte str[MAX_EMCHAR_LEN]; |
4573 Bytecount len = set_charptr_emchar (str, ch); | 4575 Bytecount len = set_charptr_emchar (str, ch); |
4574 Lstream_write (XLSTREAM (Vdribble_file), str, len); | 4576 Lstream_write (XLSTREAM (Vdribble_file), str, len); |
4575 } | 4577 } |
4576 else if (string_char_length (XSYMBOL (keysym)->name) == 1) | 4578 else if (XSTRING_CHAR_LENGTH (XSYMBOL (keysym)->name) == 1) |
4577 /* one-char key events are printed with just the key name */ | 4579 /* one-char key events are printed with just the key name */ |
4578 Fprinc (keysym, Vdribble_file); | 4580 Fprinc (keysym, Vdribble_file); |
4579 else if (EQ (keysym, Qreturn)) | 4581 else if (EQ (keysym, Qreturn)) |
4580 Lstream_putc (XLSTREAM (Vdribble_file), '\n'); | 4582 Lstream_putc (XLSTREAM (Vdribble_file), '\n'); |
4581 else if (EQ (keysym, Qspace)) | 4583 else if (EQ (keysym, Qspace)) |