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))