Mercurial > emacs
diff src/ChangeLog.3 @ 25830:8f14d08e19f7
#
author | Dave Love <fx@gnu.org> |
---|---|
date | Wed, 29 Sep 1999 16:37:29 +0000 |
parents | |
children | 0b84ec0dc628 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/ChangeLog.3 Wed Sep 29 16:37:29 1999 +0000 @@ -0,0 +1,16533 @@ +1993-05-30 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * Version 19.10 released. + +1993-05-29 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * keyboard.c (read_key_sequence): If we changed buffers during + read_char, go to replay_sequence. + + * frame.c (Ficonify_frame, Fmake_frame_invisible): + Select some other frame. Move minibuffer off this frame. + + * frame.c (Fhandle_switch_frame): Don't call Ffocus_frame. + (Fredirect_frame_focus): Call Ffocus_frame here. + + * xterm.c (x_bitmap_icon): Don't free icon_bitmap; + create it if it hasn't been created before. + + * xterm.c (XTread_socket): For UnmapNotify, if frame was visible, + mark it now as iconified. + (x_make_frame_invisible): If async_iconic, work does need to be done. + Don't let this frame stay highlighted. + (x_iconify_frame): Don't let this frame stay highlighted. + + * s/usg5-4-2.h (sigsetmask): #undef this. + + * sysdep.c (sys_signal): Use 0, not NULL, to set sa_flags. + +1993-05-29 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * linux.h (C_OPTIMIZE_SWITCH): Set this to the empty string; + configure guesses just fine. + + * tekXD88.h: New file, from Kaveh Ghazi. + + * systty.h (CDISABLE): #undef it before re-#defining it. + + * sysdep.c (sys_siglist): Comment out #endif trailer. + * xmenu.c (TRUE, FALSE): Same. + * xterm.c (dumprectangle): Same. + + * emacs.c: Don't include termios.h directly--let systty.h do it. + +1993-05-29 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * xfaces.c [HPUX]: Include time.h and define __TIMEVAL__. + + * emacs.c (shut_down_emacs): Maybe close X connection. New arg NO_X. + (Fkill_emacs): Don't close it here. Pass new arg. + (fatal_error_signal): Pass new arg. + * xterm.c (x_connection_closed): Pass new arg. + + * xdisp.c (syms_of_xdisp): Make highlight-nonselected-windows Lisp var. + (display_text_line): Obey it. + (display_text_line): Really check for just the selected window. + + * s/usg5-4-2.h: New file. + + * keyboard.c (menu_bar_items): Save Vinhibit_quit by hand + instead of using specbind. + (menu_bar_items): Call Fnreverse before restoring Vinhibit_quit. + + * s/hpux8.h (OLDXMENU_OPTIONS): Add quotations. + + * m/ibmrt.h (C_SWITCH_MACHINE): Define only if not __GNUC__. + (HAVE_FTIME): Defined. + (EMACS_BITMAP_FILES): Defined. + + * xfns.c (Fx_close_current_connection): Clear x_current_display. + * xterm.c (XTring_bell): Do nothing if x_current_connection is 0. + + * buffer.c (reset_buffer): Clear mark_active field here. + (reset_buffer_local_variables): Not here. + (Fswitch_to_buffer, Fpop_to_buffer): Return the buffer. + (Fmove_overlay): Fix data types in last change. + + * sysdep.c (gettimeofday): Don't store in *tzp if tzp is 0. + + * process.c (MAXDESC): Get it from FD_SETSIZE if that exists. + + * s/sco4.h (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF): + Redefined. + (SIGNALS_VIA_CHARACTERS): Defined. + [HAVE_SOCKETS] (HAVE_GETTIMEOFDAY): Defined. + (MAIL_PROGRAM_NAME): Defined (two alternate definitions). + + * xfns.c (Fx_list_fonts): Use CHECK_LIVE_FRAME on the frame arg. + +1993-05-28 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * s/hpux8.h (LIBX11_SYSTEM): Defined. + + * ymakefile: Replace config.h as dep with $(config_h). + (really-oldXMenu): Use two make vars to pass values + of C_SWITCH_... within doublequotes. + + * xfns.c (x_figure_window_size): Never set PPosition or PSize. + + * keymap.c (syms_of_keymap): Create global_map 256 slots long. + * cmds.c (keys_of_cmds): Predefined 0240-0376 as self-insert. + + * xterm.c (XTread_socket, case KeyPress) [HPUX]: + Recognize the extended function keys. + + * buffer.c (Fgenerate_new_buffer_name): New arg IGNORE. + (Frename_buffer): Pass new arg. + +1993-05-28 Jim Blandy (jimb@geech.gnu.ai.mit.edu) + + * keyboard.c (menu_bar_items): Bind Qinhibit_quit to Qt while we + call the keymap accessors; this gets called during redisplay. + + * ymakefile (alloca.o): Call $(CC), not cc. + + * s/linux.h (SIGNALS_VIA_CHARACTERS): Try this out for a bit. + + * buffer.c (Fmove_overlay): If the overlay is changing buffers, + do a thorough redisplay. + + * xfns.c (x_set_frame_parameters): Use the first + position/size parameter we find, not the last. + + * s/hpux8.h: Don't define HAVE_RANDOM. + + * config.h.in (UNEXEC_SRC): New macro, set by the configure + script. + * ymakefile (UNEXEC_SRC): Give it a default value here, and make + UNEXEC depend on it. + + * ymakefile (lispdir): Set this in terms of ${srcdir}. + +1993-05-27 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * dispnew.c (Fsleep_for): Don't return without waiting when SEC is 0. + + * emacs.c (syms_of_emacs) [CANNOT_DUMP]: Don't defsubr Sdump_emacs*. + + * alloc.c (mark_object): Add debugging code to check for ptr clobbered. + +1993-05-27 Jim Blandy (jimb@geech.gnu.ai.mit.edu) + + * Version 19.9 released. + +1993-05-27 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * keyboard.c (read_char): Correct previous change. + +1993-05-27 Jim Blandy (jimb@geech.gnu.ai.mit.edu) + + * systty.h: Always terminate comments, to avoid confusion. + + * xfns.c: Make resource manager work correctly even when + Vinvocation_name has periods and asterisks in it. + (Vxrdb_name): New variable. + (Fx_get_resource): Use it instead of Vinvocation_name. + (Fx_open_connection): Initialize it to a copy of Vinvocation_name, + with the dots and stars replaced by hyphens. + (syms_of_xfns): staticpro it here. + + * xfns.c (Fx_get_resource): Use the proper format string when the + attribute has been specified. + +1993-05-27 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * xfns.c (x_get_resource_string): New function. + + * ymakefile (ALL_CFLAGS): Put CFLAGS last. + +1993-05-26 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * s/sol2.h: (SOLARIS_BROKEN_ACCESS): Don't define this. + + * s/aix3-2.h (C_SWITCH_SYSTEM): Don't define this to be "-ma" if + we're using GCC - that's an XLC switch. + + * s/aix3-2.h (LIBS_SYSTEM): Put -LIM -Liconv here. + + * systty.h (HAVE_LTCHARS, HAVE_TCHARS): New macros; define them if + we have those structures, but *don't* define them if we have + TERMIOS, whose functions take care of those parameters; that + screws up AIX. + (struct emacs_tty): Test those symbols, instead of the ioctl + commands. + * sysdep.c (emacs_get_tty, emacs_set_tty, new_ltchars, new_tchars, + init_sys_modes): Same. + + * config.h.in (HAVE_RENAME): Include an #undef for this, so + configure will have something to edit. + +1993-05-26 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * window.c (window_loop, case GET_LRU_WINDOW): + Get frame's width properly. + + * xselect.c (x_get_local_selection): If no conversion function + exists for the requested type, just return nil. + + * s/linux.h (HAVE_TCATTR): Defined. + + * sysdep.c [HAVE_SOCKETS]: Include socket.h, netdb.h. + (get_system_name) [HAVE_SOCKETS]: Use gethostbyname. + +1993-05-26 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * s/hpux8.h (LIB_X11_LIB, C_SWITCH_SYSTEM, LD_SWITCH_SYSTEM, + LD_SWITCH_SYSTEM, OLDXMENU_OPTIONS): Add X11R5 directories to the + search paths in these lists; they shouldn't do any harm if they + don't have X11R5. + + * s/aix3-2.h (C_SWITCH_SYSTEM): Don't #define this if we're using + GCC. + +1993-05-26 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * xrdb.c (magic_searchpath_decoder): Fix typos. + + * xdisp.c (display_text_line): Don't call compute_char_face + for a non-X frame. + + * xfns.c (Fx_rebind_key, Fx_rebind_keys): X10 definitions deleted. + (syms_of_xfns): Install them only if X11. + + * ralloc.c (r_alloc_sbrk): Declare already_available as long, not SIZE. + + * xfns.c (x_set_cursor_type): If arg not recognized, use box cursor. + + * s/hpux8.h (LD_SWITCH_SYSTEM) [__GNUC__]: Pass -a archive to ld. + (HAVE_RANDOM): Defined. + + * s/hpux.h (rand, srand): Definitions deleted. + + * keyboard.c (Fcurrent_input_mode): Fix the call to Flist. + (make_lispy_event): Fix off-by-1 error with hpos in menu bar. + + * s/sunos4-1-3.h: New file. + + * ymakefile (XOBJ) [!HAVE_X_MENU]: Add xfaces.o. + + * s/irix4-0.h (SIGNALS_VIA_CHARACTERS): Defined. + + * xterm.c (x_wm_set_size_hint): Don't set hints for max size. + +1993-05-25 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * m/ibmrs6000.h (LIBS_MACHINE): Add -lIM and -liconv. + (HAVE_GETTIMEOFDAY): Deleted. + + * sysdep.c (wait_for_termination): Don't use the BSD alternative + for LINUX. Use the UNIPLUS alternative. + + * keyboard.c (read_char): If kbd_buffer_get_event returns nil, + redisplay and retry. + (kbd_buffer_get_event): If event is handled here, return nil. + (swallow_events): New function. + * process.c (wait_reading_process_input): Call that. + + * ralloc.c (POINTER): Always use char *. + + * s/sol2.h (C_SWITCH_X_SYSTEM): Deleted. + (LD_SWITCH_SYSTEM): Delete the -L option, leave just -R. + + * m/symmetry.h (PTY_TTY_NAME_SPRINTF, PTY_NAME_SPRINTF): + Use pty_name, not ptyname. + + * syntax.c (Fforward_comment): Arg is a Lisp_Object. + Convert it to an int. + + * ymakefile (alloca.o): Get alloca.c and alloca.s from ${srcdir}. + + * floatfns.c (logb): Don't declare if hpux. + + * syntax.c (Fforward_comment): Always set point. + + * s/dgux.h, s/hpux.h, s/esix.h (HAVE_GETTIMEOFDAY): Deleted. + + * s/irix4-0.h (C_ALLOCA, alloca): Definitions deleted. + [!NOT_C_CODE]: Include alloca.h. + (NEED_SIOCTL): #undef this. + + * xterm.h (PIXEL_TO_CHAR_COL, PIXEL_TO_CHAR_ROW): + Fix mismatch in arg names. + + * xfns.c (Fx_open_connection): Set xrm_option correctly. + +1993-05-25 David J. MacKenzie (djm@wiki.eng.umd.edu) + + * xfns.c (x_figure_window_size): Make the default frame coords (0,0). + +1993-05-25 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * Version 19.8 released. + +1993-05-25 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * xfns.c: Clear out the old face stuff. + (x_face_table, n_faces, x_set_face, x_set_glyph, Fx_set_face_font, + Fx_set_face, Fx_get_face): Removed. + (syms_of_xfns): Remove defsubr for Fx_set_face. + + Arrange for font names to get fully resolved - no wildcards. + * xfns.c (x_set_frame_parameters): Store the value in the frame + parameter alist before we call the setter function, so the setter + function can touch up the value if it chooses. + (x_set_foreground_color, x_set_background_color): Call + recompute_basic_faces, so their GC's will reflect the changes. + (x_new_font): Add extern declaration - this returns a Lisp_Object + now, the fully resolved font name. + (x_set_font): Accept the fully resolved name from x_new_font, and + put it in the frame's parameter alist. Call recompute_basic_faces. + * xterm.c (x_new_font): Return the fully resolved font name, Qnil + (if no match), or Qt (match, but unacceptable metrics). + * xterm.c (x_new_font): Don't call init_frame_faces. + + * xterm.h: New section for declarations for xfaces.c. + (init_frame_faces, free_frame_faces, intern_face, + face_name_id_number, same_size_fonts, recompute_basic_faces, + compute_char_face, compute_glyph_face): Declare these here. + * xfaces.c (same_size_fonts): We can now remove this extern + declaration. + * xfns.c (face_name_id_number): Likewise. + * xterm.c (intern_face): Likewise. + + * xterm.c (dumpglyphs): Remember that the default faces can have + null fonts, too. + + * xfns.c (Fx_list_fonts): Remember that FACE may not have a font + specified. Don't specify 30000 as the maximum limit on the number + of fontns returned - 2000 is more reasonable. + + * xfaces.c (build_face, unload_font, free_frame_faces): Don't + forget to block input while making X calls. + + Treat faces as structures specifying modifications to the frame's + parameters, rather than things which need to specify a complete + set of parameters by themselves. + * xfaces.c (init_frame_faces): Don't set up the two frame display + faces by querying the GC - just leave all their fields blank, and + call recompute_basic_faces, letting build_face do the work of + consulting the frame when necessary. + (recompute_basic_faces): New function. + (compute_base_faces): New function for obtaining the "identity" + for compute_char_face and compute_glyph_face. + (compute_char_face, compute_glyph_face): Call it, instead of copying + FRAME_DEFAULT_FACE. + * xfns.c (x_make_gc): No need to call init_frame_faces here. + + * xfaces.c (intern_frame_face): This can be static. + + * dispextern.h (struct face): New field - `copy', to help us with + resource allocation. + * xfaces.c (free_frame_faces): Do free the first two faces; don't + free anything from a face that's a copy. + (intern_frame_face): Mark every face we intern as a copy; its + resources are actually a combination of the real faces. + (Fset_face_attribute_internal): No need to check if we're trying + to free one of the frame's GC's; they never enter into the + picture. + + * casetab.c: Fix formatting, so as not to confuse etags. + + * xfns.c (Fx_list_fonts): New function. + (face_name_id_number): Add extern declaration for this. + * xfaces.c (face_name_id_number): Make this externally visible, + and make the FRAME argument a FRAME_PTR, not a Lisp_Object. + (compute_char_face): Call face_name_id_number properly. + + * xfaces.c (unload_color): Don't free the pixel for now. + + * xfaces.c (merge_faces): You can't tell if a font is a + character-cell font or not by testing whether or not it has a + per_char table. They all do. + * xterm.c (x_new_font): Same deal. + * xfns.c (Fx_list_fonts): Same deal. + + * m/iris4d.h: Dyke out the section which specifies how to get the + load average. + + * paths.h (PATH_INFO): New path, to edited by the configuration + process. + * callproc.c (Vconfigure_info_directory): New variable, used + internally by build process. + (syms_of_callproc): DEFVAR it and initialize it. + + * keyboard.c (Fcurrent_input_mode): Use XFASTINT to build the last + element of the return value, not XSETINT. + +1993-05-24 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + Changes for OSF/1: + * mem-limits.h [__osf__ && (__mips || mips)]: #include + <sys/time.h> and <sys/resource.h>. + (get_lim_data): OSF wants a definition like BSD4_2's. + * s/osf1.h: #include "bsd4-3.h", not "s-bsd4-3.h". + + * ymakefile (LIBX): Put LD_SWITCH_X_SITE before the libraries, so + it actually has an effect. + + Some makes can't handle form feed characters in their makefiles. + * s/usg5-3.h: Remove form feed. + * s/template.h, m/template.h: Remove form feeds. + + * xfns.c (select_visual): Include the screen number in the + template of things XGetVisualInfo must match. + +1993-05-24 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * s/dgux.h (NO_GET_LOAD_AVG): Test _M88KBCS_TARGET, not __GNUC__. + + * xterm.c (XTread_socket, ConfigureNotify case): + Convert from parent window, not Emacs window. + (XTread_socket): Handle ReparentNotify events. + + * m/i860.h: New file. + + * keyboard.c (lispy_function_keys): Add kp-numlock. Fix kp-backspace. + +1993-05-24 Thorsten Ohl (ohl@chico.harvard.edu) + + * m/next.h (C_SWITCH_MACHINE): Definition deleted. + + * lread.c: Don't #undef NULL. + +1993-05-24 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * buffer.c (Fmake_overlay): Put beg and end in the + right order. + (Fmove_overlay): If beg and end are markers, make sure they're in + the right buffer. + +1993-05-24 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * keyboard.c (modify_event_symbol): If a name_table elt is null, + generate a name to use. Don't crash. + + * fileio.c (Fread_file_name): If input is empty, do return the default + even if !insert_default_directory. + + * xterm.c (XTread_socket): For ConfigureNotify event, + translate coordinates if send_event field is false + provided the x-coord value is not large. + +1993-05-24 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * s/irix4-0.h (NO_MATHERR): Defined. + * floatfns.c [NO_MATHERR]: Undef HAVE_MATHERR. + +1993-05-24 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * fileio.c (Ffile_writable_p): Pass XSTRING (foo)->data to + ro_fsys, not XSTRING (foo). + + * xterm.c (x_new_font): Reject fonts with varying spacing. We + don't support them yet. + * xfns.c (x_set_font): Report the error message properly. + + * xfns.c (Fx_parse_geometry): No need to call check_x here; it + doesn't interact with the server at all, and we need it in order + to create our first frame. + +1993-05-24 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * s/linux.h (HAVE_SETSID): Defined. + (HAVE_SOCKETS): Defined. + + * process.c (create_process): Ignore retval from TIOCSTTY. + (sys_siglist) [LINUX]: Don't even declare it. + +1993-05-24 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * syssignal.h (sys_signal): Declare the second argument to have + type signal_handler_t. We're told this is necessary for Linux. + +1993-05-24 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * s/dgux.h (NO_GET_LOAD_AVG): Define, if __GNUC__. + +1993-05-23 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * s/hpux8.h (NO_SIOCTL_H): Defined. + +1993-05-23 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * s/linux.h (HAVE_DUP2, HAVE_ALLOCA_H): Deleted. + +1993-05-23 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * syssignal.h: Don't #include <signal.h> + * alloc.c: #include <signal.h>, but before "config.h". + +1993-05-23 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * xfaces.c (Fset_face_attribute_internal): Don't call unload_font + for the frame's own font. + + * xfns.c (check_x): New function. + Call it in almost every Lisp function in this file. + (x_set_menu_bar_lines_1): Pass both args in recursive call. + +1993-05-23 Paul Eggert (eggert@twinsun.com) + + * editfns.c (Fcurrent_time_zone): Make `am' an int, not long. + +1993-05-23 Jim Blandy (jimb@geech.gnu.ai.mit.edu) + + Changes for SGI from Matthew J Brown <mjb@doc.ic.ac.uk>. + * m/iris4d.h, m/iris5d.h: Don't use the --cckr CC switch if we're + using GCC. + * m/iris4d.h (NEED_SIOCTL): Move this to... + * s/irix3-3.h (NEED_SIOCTL): ... here; apparently it's not + necessary in irix4-0.h. + * s/irix4-0.h: Remove declaration of getpty; apparently Irix 4.0 + already declares this elsewhere. + (PTY_TTY_NAME_SPRINTF): #undef this before re-#defining it. + * m/ibmps2-aix.h, m/pfa50.h, s/hpux.h, s/isc2-2.h, s/linux.h, + s/sco4.h, s/usg5-4.h: Remove HAVE_RENAME; configure guesses that now. + + * config.h.in (LD_SWITCH_X_SITE, C_SWITCH_X_SITE): Change the + #defines to #undef's, so ../configure knows it should tweak them. + + * xterm.c (x_scroll_bar_report_motion): Set *TIME whether or not + the mouse is over a scroll bar. + + * xfaces.c (Fset_face_attribute_internal): Don't free the frame's + normal_gc or reverse_gc. + + * keyboard.c (make_lispy_movement): Deal properly with mouse + motion outside of all windows. + + * lisp.h (GLYPH_FACE): Remember that the face portion of a glyph + can be 24 bits, not just eight. + +1993-05-23 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * xterm.c: Move signal.h and stdio.h before config.h. + + * editfns.c (Fcurrent_time_zone): Assign gmt, instead of init. + +1993-05-22 Jim Blandy (jimb@geech.gnu.ai.mit.edu) + + * Version 19.7 released. + + * Makefile.in (SUBMAKEFLAGS): Add CFLAGS to the list. + + * puresize.h [not HAVE_X_WINDOWS] (PURESIZE): Make this 185k, + not 196k. We're actually using ~180k. + + * editfns.c: #include <sys/types.h>, to get time_t for Eggert's + changes. + +1993-05-22 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * ymakefile (FRAME_SUPPORT): Add mouse.elc, select.elc, scroll-bar.elc. + + * xdisp.c (display_text_line): Highlight in any frame's sel window. + + * keyboard.c (modifier_names): Update to match *_modifier in termhooks. + +1993-05-22 Jim Blandy (jimb@geech.gnu.ai.mit.edu) + + * xterm.c (x_scroll_bar_handle_click): Never grab the scroll bar; + that feature requires more support to work correctly. + + * keyboard.c (make_ctrl_char): New function. + (read_char): Call it. + (kbd_buffer_store_event): Call it to see if the new character is + the quit or stop character. + (make_lispy_event): Call it. + +1993-05-21 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * xfns.c (x_window_to_frame): Use XGCTYPE. + +1993-05-21 Jim Blandy (jimb@geech.gnu.ai.mit.edu) + + * process.c (Fopen_network_stream): Deal with older systems, which + only have the h_addr field in their struct hostent. + + * systty.h [SYSV_PTYS]: #include <sys/types.h>. Francesco + Potorti` <pot@fly.CNUCE.CNR.IT> says it's necessary on his + machine, and it should be harmless. + +1993-05-21 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * sysdep.c (wait_for_termination): Copy code from 18.59 + (but sans BSD4_1 alternatives). + +1993-05-21 Jim Blandy (jimb@geech.gnu.ai.mit.edu) + + * ymakefile (alloca.o): #define malloc and free to be xmalloc and + xfree on the command line of this compilation. + + * s/sco4.h: (TIME_WITH_SYS_TIME): This is no longer needed. + + * s/linux.h: Remove copyright notices by Michael K. Johnson and + Rik Faith. They have both sent in papers now which make their + changes public domain. + + * sysdep.c (sys_suspend): Set synch_process_alive, so that + wait_for_termination has something to wait for. + +1993-05-21 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * xdisp.c (display_text_line): Highlight only in selected window. + + * xfns.c (syms_of_xfns): Don't make Lisp vars + x-mode-pointer-shape and x-nontext-pointer-shape. + +1993-05-20 Ian Lance Taylor (ian@cygnus.com) + + * s/sco4.h (SCO): Don't define (no longer needed). + (HAVE_SYS_TIME_H): Don't define (set by configure). + (TIME_WITH_SYS_TIME): Define. + +1993-05-20 Jim Blandy (jimb@geech.gnu.ai.mit.edu) + + * dispnew.c (preserve_other_columns): Remember to multiply the + size argument to bcopy by the size of a glyph. + +1993-05-20 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * keyboard.c (read_key_sequence): Reexamine this_command + after pre-command-hook runs. + + * xterm.c (x_find_modifier_meanings): If some keys are meta and alt, + make them just meta, not alt. + +1993-05-19 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + Some time-handling patches from Paul Eggert: + * editfns.c (Fcurrent_time_zone): Take an optional argument specifying + what (absolute) time should be used to determine the current time zone. + Yield just offset and name of time zone, including DST correction. + Yield time zone offset in seconds, not minutes. + (lisp_time_argument, difftm): New functions. + (Fcurrent_time_string): Use lisp_time_argument. + * systime.h (EMACS_CURRENT_TIME_ZONE, EMACS_GET_TZ_OFFSET, + EMACS_GET_TZ_NAMES): Remove. + * config.h.in: Add HAVE_TM_ZONE. + + Some more changes from Michael K. Johnson for Linux. + * s/template.h: Mention that you should #define HAVE_TERMIO or + HAVE_TERMIOS, but not both, and that HAVE_TERMIOS is preferred. + * systty.h (EMACS_SET_TTY_PGRP): Don't assign the return value of + tcsetpgrp to *pgid; it's just a status value. + * config.h.in (HAVE_RANDOM): This shouldn't be defined on Linux + systems using XFree386, and perhaps is inappropriate in general. + * m/intel386.h: #undefine the integer size macros, since the Linux + <values.h> file #defines them itself. + * mem-limits.h (get_lim_data): Linux has the ulimit call; if it + fails, fall back on ULIMIT_BREAK_VALUE. + * process.c: Linux needs the WAITTYPE, etc. definitions. + * unexec.c (hdr, ohdr): Linux has the ordinary `struct exec' type; + no need to use SYSV names. + * s/linux.h: New file. + + Some changes from Michael K. Johnson for Linux. + * sysdep.c (sys_siglist): Don't define this if HAVE_SYS_SIGLIST is + #defined. That lets the system provide it, if it has it. + * syssignal.h (sigmask): Only define this if <signal.h> hasn't + given us a definition already. + * syssignal.h (sys_sigpause): Fix argument in prototype. + * sysdep.c (init_signals): The masks are called empty_mask and + full_mask, not signal_empty_mask and signal_full_mask. + (signal_handler_t): Moved .... + * syssignal.h: ... to here. + * systty.h (EMACS_SET_TTY_PGRP): Call tcsetpgrp with the correct + arguments. + * emacs.c (main): Don't try to establish signal handlers for + SIGBUS and SIGSYS unless they're actually #defined. + + * systty.h [HAVE_TERMIO, __DGUX]: #include <sys/ioctl.h>. + + * xdisp.c (redisplay_window): Compute the scrollbar start and end + properly. + +1993-05-19 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * keyboard.c (Fcurrent_input_mode): Return META as 3-way flag. + +1993-05-19 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * fileio.c (Ffind_file_name_handler): Check that FILENAME is a + string. + + * process.c (wait_reading_process_input): Undo change of April + 29th, since that re-introduces the race condition the comments are + warning about. Call clear_waiting_for_input before calling + status_notify, though. + + * process.c (wait_reading_process_input): Don't forget to call + clear_waiting_for_input when we exit the loop because process + input has arrived. + + Changes for Silicon Graphics Iris 5D. + * unexelfsgi.c: New file; like unexelf.c, but tolerates program + segments above BSS. + * m/iris5d.h: New file. + * s/irix5-0.h: New file. + * process.c [__sgi] (allocate_pty): Give up immediately if pty is + inaccessible. + +1993-05-19 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * keyboard.c (follow_key): Check char in range before UPPERCASEP. + +1993-05-18 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * xfns.c (x_set_menu_bar_lines): Fix typo in last change. + + * keyboard.c (make_lispy_event): Controlify lower case letters too. + +1993-05-18 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * xdisp.c (display_text_line): If the newline (or C-m, in + selective-display) has a non-default face, apply that face to the + remainder of the line, so that the fill occupies the entire line. + + * xterm.c (x_new_font): Tell the frame display faces about the + newly chosen font. + + Make sure that all the display faces use fonts of the + same dimensions as the default face, so as not to confuse the rest + of the redisplay code. + * xfaces.c (same_size_fonts): New function. + (merge_faces): Only merge in a new font from the FROM face if it + is the same size as the font in the TO face. + + * xfns.c (x_set_menu_bar_lines): Minibuffer-only frames can't have + menu bars. + + * keyboard.c (read_key_sequence): Don't lay down an unwind_protect + to restore the original buffer until we actually get a mouse click. + + * window.c (window-dedicated-p): Doc fix. + +1993-05-18 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * xterm.c (XTread_socket): Turn off ControlMask for XLookupString. + * keyboard.c (make_lispy_event): Controlify here. + +1993-05-17 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * xdisp.c (redisplay_window): Make the scrollbar reflect the + extent of the visible region, not the whole buffer. + + * xfaces.c (free_frame_faces): Don't free the resources from the + first two faces. + + * lisp.h (malloc, realloc): Declare these to return void *, to + avoid conflicts with ANSI header files. + + * sysdep.c (reset_sys_modes): Test the return value of + EMACS_SET_TTY properly. + * systty.h (EMACS_GET_TTY, EMACS_SET_TTY): Document the return + values. + +1993-05-16 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * config.h.in (STDC_HEADERS, TIME_WITH_SYS_TIME, + CRAY_STACKSEG_END, STACK_DIRECTION): Add #undef clauses for these, + since otherwise the autoconf tests in configure.in won't do us + much good. + +1993-05-16 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * buffer.c (overlays_at): New arg EXTEND. + (Foverlays_at, Fnext_overlay_change): Pass 1. + * xfaces.c (compute_char_face): Pass 0. + Try first with small overlay_vec, then use a big enough one. + + * lread.c (syms_of_lread): Make Vcurrent_load_list ordinary Lisp var. + Set up Qcurrent_load_list. + (readevalloop): Specbind Qcurrent_load_list instead of ad-hoc saving. + (build_load_history): Do nothing when loading pure files. + + * xterm.c (dumpglyphs): Create a temporary merged gc + when cursor falls on char with non-default face. + + * xterm.h (x_display): New field cursor_foreground_pixel. + * xfns.c (x_set_cursor_color): Set cursor_foreground_pixel. + + * casefiddle.c (casify_region): Remove mistaken arg to record_change. + +1993-05-15 Jim Blandy (jimb@geech.gnu.ai.mit.edu) + + * xfaces.c (Fset_face_attribute_internal): Jolt redisplay, so it + knows something has changed. + + * xfaces.c (unload_color): Don't try to unload the standard black + or white pixel. + + More changes from David Mackenzie. + * ymakefile (emacs): No need to edit srcdir into a lisp file and + then load it; we can just take advantage of the PATH_DUMPLOADSEARCH. + (crt0.o): Remember that crt0.c is in ${srcdir}. + + Install David Mackenzie's patches to make ${srcdir} work. + * Makefile.in (srcdir, VPATH): Get this value from the top-level + Makefile. + (xmakefile): Use ${srcdir} to find the files from which we produce + xmakefile. Edit the values for srcdir and VPATH into xmakefile. + * ymakefile (srcdir, VPATH): New definitions for the Makefile + to edit. + (ALL_CFLAGS): Remove `-Is' and `-Im'; add `-I${srcdir}', and + `-I.'. + (emacs): Adjust dumping commands to deal with a separate source + directory. + (${etc}DOC): Pass `-d ${srcdir}' to make-docfile, to tell it where + to find the source files. + (prefix-args): Find the source code in ${srcdir}. + + * process.c (wait_reading_process_input): If we're running + Solaris, it's not necessary to check if we should redeliver SIGIO, + according to David Mackenzie. + * s/sol2.h: #include "usg5-4.h", and #define const. + + * systime.h: Borrow CPP sequence from getdate.y to include the + proper combination of <time.h> and <sys/time.h>. + +1993-05-15 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * window.h (struct window): New slot region_showing. + * xdisp.c (mark_window_display_accurate): Set region_showing fields. + (redisplay_window): Update region_showing field. + (display_text_line): Set region_showing to t if will show one. + + * xselect.c (Fx_selection_exists_p): Handle nil, t as SELECTION arg. + Don't die if SELECTION is not recognized. + + * dispnew.c (direct_output_forward_char): Just give up + if region is being highlighted. + + * xdisp.c (redisplay, redisplay_window): Don't use the cursor-motion + special-case code if the region is or was highlighted. + + * xfaces.c (compute_char_face): New args REGION_BEG, REGION_END. + Don't sort if noverlays is 0 or 1. + + * dispnew.c (direct_output_for_insert): Pass those args. + * xdisp.c (display_text_line): Pass those args, + describing the region if the mark is transient and active. + +1993-05-14 Jim Blandy (jimb@geech.gnu.ai.mit.edu) + + * buffer.c (Fmove_overlay): If the overlay is in no buffer and the + BUFFER argument has been omitted, put it in the current buffer, + for symmetry with move-marker. + + * buffer.c (Fdelete_overlay): Make the overlay's markers point + nowhere, not at 1. Do this after calling redisplay_region, so + that code knows what section has changed. + +1993-05-14 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * xdisp.c (display_menu_bar): Update FRAME_MENU_BAR_ITEMS here. + * keyboard.c (command_loop_1): Don't do it here. + + * keymap.c (access_keymap): Handle any length vector. + (store_in_keymap): Likewise. + (Fcopy_keymap): Likewise. + +1993-05-14 Jim Blandy (jimb@geech.gnu.ai.mit.edu) + + * buffer.c (Foverlay_start, Foverlay_end, Foverlay_buffer, + Foverlay_properties): Functions moved here from subr.el. + +1993-05-13 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * xfaces.c (compute_char_face): When merging the overlays, + traverse sortvec, not overlay_vec; the latter isn't the one we + sorted. + + * xterm.c (dumpglyphs): Give the cursor higher priority than the + face specified by the glyph under it. + + * xterm.c (dumpglyphs): Move the underline up a row. I dislike + the way X addresses pixels. Quickdraw is much nicer. + + * xfaces.c (intern_face): If the face has a GC, but it's not the + default or modeline face, abort. Nothing but those two faces + should have a GC *and* be passed to intern_face. + (compute_char_face, compute_glyph_face): After copying + the frame's default face into face, to use as a base case for + calculation, set the `gc' member to zero; that way we don't have + things lying around that look like display faces but aren't. + + * xfaces.c (intern_frame_face): When copying the new face into the + frame's face array, remember that the number of bytes to copy is + sizeof (*new_face), not sizeof (new_face). + + * xfaces.c (compute_char_face): Assume that W is displaying the + current buffer. Abort if it isn't. + + * lisp.h (Lisp_Overlay): New tag. + (OVERLAYP): New predicate. + (CHECK_OVERLAY): New type-checker. + (Qoverlayp): New extern declaration. + * buffer.c (Foverlayp): New function. + (Qoverlayp): New atom. + (overlays_at, recenter_overlay_lists): Abort if we encounter an + invalid overlay. + (syms_of_buffer): defsubr Soverlayp; initialize Qoverlayp. + (Fdelete_overlay): Set the overlay's markers to point nowhere. + Use CHECK_OVERLAY instead of signalling a special error. + (Fmove_overlay, Foverlay_put): Use CHECK_OVERLAY instead of + signalling a special error. + (Foverlay_get): Use CHECK_OVERLAY. + * fns.c (internal_equal): Define this for overlays. + * buffer.h (OVERLAY_VALID): Define in terms of OVERLAYP. + * print.c (print): Give overlays their own print syntax. + * alloc.c (mark_object): Treat overlays like conses. + + * lisp.h (FLOATP): Define this appropriately when LISP_FLOAT_TYPE + is not defined. + + * buffer.c (Foverlay_get): Return Qnil if the requested property + is missing from the property list. + + The text property routines can now modify buffers other + than the current one. + * insdel.c (modify_region): New argument BUFFER. Select that + buffer while we prepare for the modification, and switch back when + we're done. + * textprop.c (add_properties, remove_properties): Pass + the buffer being modified as the first argument to modify_region. + * editfns.c (Fsubst_char_in_region, Ftranslate_region): Pass the + current_buffer as the first argument to modify_region. + * casefiddle.c (casify_region): Same. + + * dispnew.c (direct_output_for_insert): Compute the face of the + character we're inserting properly. + + * xterm.c (dumpglyphs): Pass the proper arguments to intern_face. + + * xterm.c (dumpglyphs): Don't increment left twice. + + * intervals.c (set_point): Check for point out of bounds before + checking for an empty interval tree. + + * cmds.c (Fforward_char): Check proposed new position, and then + set point, instead of setting point to a potentially invalid + position. + + * lread.c, data.c: If STDC_HEADERS is #defined, include <stdlib.h> + to get the extern declarations for atof. That's where it is in + POSIX. + +1993-05-12 Jim Blandy (jimb@geech.gnu.ai.mit.edu) + + * ymakefile (xfaces.o): Add window.h to the dependencies. + + * xfaces.c (intern_frame_face): Exchange order of arguments, to + make callers correct. + + * xfaces.c (compute_char_face): Notice the next property change + location correctly. + + * xfaces.c (face_name_id_number): Return 0 (the default face) if + the name is undefined. + + * xfaces.c (Fset_face_attribute_internal): Do nothing unless FRAME + is an X frame. + + * xdisp.c (copy_rope, copy_part_of_rope): Add face argument. + (display_text_line): Initialize current_face to zero. Apply it + to characters as we write them to the display matrix. + (display_string): Pass the new argument to copy_rope. + + * xdisp.c (display_text_line): Handle the locations of face + changes properly. + + * textprop.c (Fnext_single_property_change, + Fprevious_single_property_change): Pass arguments to textget in + the right order. + + * ymakefile (xfns.o): Remove duplication of buffer.h in dependencies. + + * ymakefile ($(OLDXMENU)): Remove extraneous call to `rm'. + +1993-05-12 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * keymap.c (Faccessible_keymaps): Use whatever size the vector has. + (Fwhere_is_internal): Likewise. + (describe_vector): Likewise. + (current_minor_maps): Call Findirect_function, so symbols + can be used in place of actual maps. + + * xdisp.c (display_text_line): Use break; to exit loop at eol. + Duplicate the short MAKE_GLYPH loop after the main loop. + If no display table, do obey selective_display_ellipses. + (copy_part_of_rope): Arg FROM is now Lisp_Object *. + + * xfaces.c: Do include window.h. + (compute_char_face): Supply third arg of Fget_text_property. + + * keyboard.c (make_lispy_event): Don't set shift modifier for C-^. + + * callproc.c (child_setup): Omit duplicates from new env array. + +1993-05-10 Jim Blandy (jimb@geech.gnu.ai.mit.edu) + + * fileio.c (ro_fsys) [SOLARIS_BROKEN_ACCESS]: Check for the + filesystem being ro, since Solaris 2.1 doesn't. + (file-writable-p): Call ro_fsys. + * s/sol2.h (SOLARIS_BROKEN_ACCESS): Define this. + + * systime.h: Use the strategy from getdate.y to include the proper + combination of <time.h> and <sys/time.h>. + + * xfns.c (Fx_create_frame): Use an XLFD name for the default font, + instead of "9x15" or whatever it was. + + * xdisp.c (display_text_line): Make face-handling code conditional + on HAVE_X_WINDOWS macro. Perhaps this isn't the best approach, + but it'll do for now. + + * xdisp.c (display_text_line): We can't use the FRAME_DEFAULT_FACE + macro here; that's x-specific. Just don't pass the second + argument. + * xfaces.c (compute_glyph_face): Remove the BASIC_FACE argument; + use F's default face. + +1993-05-09 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * xfaces.c (Fmake_face_internal): Do nothing for non-X frames. + + * dispextern.h (struct face): Add cached_index member. + * xfaces.c (get_cached_face): Use it to avoid unnecessary + searches of face_vector. + + * xfaces.c (intern_face): Renamed from get_display_face. + + * xfns.c (x_make_gc): After building the GC's for the frame, call + init_frame_faces to set up the first two faces. + * xfaces.c (init_frame_faces): Don't just try to copy the default + and mode line faces from some other random frame; instead, consult + the normal_gc and reverse_gc members of the frame, and build the + faces based on their parameters. + + Adjust the face computation functions to return frame face ID's, + not pointers to display faces; since we call these functions + during display construction, we don't want the display faces yet. + * xfaces.c (intern_frame_face): New function. + (compute_char_face, compute_glyph_face): Apply intern_frame_face + to the computed face, and return the frame face's ID, instead of + calling intern_face and returning a pointer to a display frame. + + * xfaces.c: Describe the facial data structures. It took me a + while to figure them out; perhaps this will save someone else the + trouble. + + Arrange to tell redisplay about changes in overlays. + * xdisp.c (redisplay_region): New function. + * buffer.c (Fmove_overlay): Call redisplay_region on the areas the + overlay has enclosed or left. + (Fdelete_overlay): Call redisplay_region on the area the overlay + used to occupy. + (Foverlay_put): Call redisplay_region on the area the overlay now + occupies; we may have put a face property on it. + + * buffer.c (Fmove_overlay): Doc fix. + + * xdisp.c (redisplay): If we're doing a thorough redisplay (all + windows on all frames involved), go ahead and flush the GC cache - + call clear_face_vector. + + * xdisp.c (display_text_line): Apply faces to characters + according to overlays and text properties; use + compute_char_face and compute_glyph_face to figure out what + face to use, and where a new face starts. + * xterm.c (dumpglyphs): Use the upper bits of the glyphs to decide + which frame face to use. Call GLYPH_FOLLOW_ALIASES to make sure + we're implementing the glyph table properly. If we're not using + the default or mode line face, call intern_face to find a display + face for the frame face selected by the glyph code. Implement + underlining. Remove the `font' argument; we have to derive this + from the frame and face anyway. Change all callers. + * disptab.h (GLYPH_FOLLOW_ALIASES): New macro. + + * xterm.c (x_destroy_window): Call free_frame_faces. + + The GNU coding standards specify that CFLAGS should be left for + users to set. + * ymakefile (ALL_CFLAGS): Set this to the long string of + compilation switches, not CFLAGS. Changed all uses. + (CFLAGS): Make this default to just -g. + (.c.o): Define new default rule, to make sure that the right flags + get to the compilations. + +1993-05-09 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * keyboard.c (read_char): Exit kbd macro if Vexecuting_macro is t. + + * pwd.h: File deleted. + +1993-05-08 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * s/sunos4shr.h: Apply changes from David J. Mackenzie; this isn't + used by any configuration right now, but he's trying to make it + work. + #include "sunos4-1.h" instead of "bsd4-2.h". + (O_NDELAY): Don't define this. + (SYSTEM_MALLOC): Don't define this, either. + (LD_SWITCH_SYSTEM): Remove the definition for this. + + * Makefile.in (DEFS): Remove this; we have configure build a + config.h file directly, instead of having lots of -D flags. + + * Makefile.in (CFLAGS): Don't make this carry DEFS from the + configure script; the coding standards say that CFLAGS should be + left for the user to tweak. + +1993-05-08 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * keyboard.c (do_mouse_tracking): Now static. + + * xmenu.c (Fx_popup_menu): Add a vector of prefix keys for the panes. + (keymap_panes): Allocate that vector. + (single_keymap_panes): Fill in that vector. + (xmenu_show): Return a list of events, not just one event. + + * keyboard.c (read_char_menu_prompt): Expect Fx_popup_menu + to return a list of events. Don't lose any of them. + + * xfns.c (Fx_get_mouse_event, Fx_mouse_events): Code deleted. + * window.c (Vmouse_event): Var deleted. + (syms_of_window): Don't make it a Lisp var. + + * keyboard.c (read_avail_input, Fset_input_mode): Make + meta_key a three-value variable to support 8-bit input. + +1993-05-07 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * ymakefile [__GNUC__ && __GNUC__ > 1] (LIB_GCC): Set this even if + LINKER is #defined. + + * ymakefile ($(OLDXMENU)): Remove the link before we re-create it; + not all versions of ln have the `-f' flag. Use the LN_S variable, + inherited from src/Makefile. + + * Makefile.in (LN_S): New variable, edited by top Makefile. + (SUBMAKEFILE): New variable, containing all flags to pass to + recursive makes. + + * config.h.in: Adjust this for use by autoconf's AC_CONFIG_HEADER, + instead of AC_OUTPUT. + + * xfaces.c (get_display_face): Use face_eql instead of writing it out. + +1993-05-06 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * keymap.c (Fwhere_is_internal): If FIRSTONLY is non-nil, avoid + returning a non-ascii key sequence unless FIRSTONLY is the symbol + `non-ascii'. + + * config.h.in: Remove mention of GLYPH datatype; that shouldn't be + a user option. + * lisp.h (GLYPH, MAKE_GLYPH, GLYPH_CHAR, GLYPH_FACE): New macros. + +1993-05-06 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * xfns.c (x_get_arg): Call Fintern, not intern. + + * systime.h [SCO]: Include time.h. + * s/sco4.h: New file. + + * ymakefile (LIBXMENU): Delete -loldX. + + * emacs.c (main): Handle -display like -d. + +1993-05-05 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * s/template.h: Explain the relative significance of the SIGIO and + INTERRUPT_INPUT macros. + + * ymakefile (buffer.o, insdel.o): Note that these files also + depend on blockinput.h. + + * blockinput.h (UNBLOCK_INPUT): We cannot assume that SIGIO is + defined everywhere this file is #included; merge the two + definitions for defined (SIGIO) and ! defined (SIGIO) into one, + which calls reinvoke_input_signal if interrupt_input_pending is + set. + * keyboard.c (reinvoke_input_signal): New function. + +1993-05-04 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * window.c (Fdisplay_buffer): Add space to prompt. + +1993-05-04 Jim Blandy (jimb@geech.gnu.ai.mit.edu) + + * keyboard.c (syms_of_keyboard): Doc fix for + extra-keyboard-modifiers. + + * lisp.h (CHAR_ALT, CHAR_SUPER, CHAR_HYPER, CHAR_SHIFT, CHAR_CTL, + CHAR_META): Shift these all up one bit, back to where they were. + +1993-05-02 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * keymap.c (Fdefine_prefix_command): Doc fix. + + * ymakefile (C_DEBUG_SWITCH): Undo April 10 change. + +1993-05-01 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * keyboard.c (Fsuspend_emacs): Doc fix. + +1993-04-30 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * data.c (Ffset): Refuse to set the function value of t or nil. + +1993-04-29 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + Implement extra_keyboard_modifiers properly. + * keyboard.c (syms_of_keyboard): Doc fix for + extra-keyboard-modifiers; use the same modifier bits as we do for + characters. + (read_char): Apply all the modifiers in extra_keyboard_modifiers + to the input characters, so you can get hyper, super, and the rest + of the gang. + * xterm.c (x_emacs_to_x_modifiers): New function. + (x_convert_modifiers): Renamed to x_x_to_emacs_modifiers, for + consistency. Callers changed. + (XTread_socket): Apply x_emacs_to_x_modifiers to + extra_keyboard_modifiers before setting the state member of the + event; this will get all the modifiers on ASCII characters. + + * xterm.c (x_text_icon): Don't call XSetIconName; it should be + unnecessary, and perhaps it's killing the icon pixmap. + + * lisp.h (CHAR_ALT, CHAR_SUPER, CHAR_HYPER): New constants, in + case we need them. + * termhooks.h (alt_modifier, super_modifier, hyper_modifier, + shift_modifier, ctrl_modifier, meta_modifier): Define these in + terms of the CHAR_mumble macros, to avoid having the same thing + defined in two places. + + * keyboard.c (kbd_buffer_get_event): Don't generate switch-frame + events if they'd only switch to the frame already selected. This + avoids lots of extra switch-frame events when using a separate + minibuffer. + +1993-04-29 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * keyboard.c (Fthis_command_keys): Doc fix. + + * process.c (wait_reading_process_input): Move the status_notify + call before the set_waiting_for_input call. + + * fileio.c (Fexpand_file_name): Undo last change--too risky for now. + + * data.c (Fdefine_function): New function (same code as Fdefalias). + +1993-04-28 Eric S. Raymond (eric@mole.gnu.ai.mit.edu) + + * eval.c (do_autoload): Fixed the bug in the autoload-saving code. + +1993-04-28 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * keyboard.c (Fcurrent_input_mode): New function. + +1993-04-27 Eric S. Raymond (eric@mole.gnu.ai.mit.edu) + + * eval.c (un_autoload): Don't try to save old autoload forms when + we load something in. Something about the code now conditioned + out by UNLOAD was screwing up ordinary autoloads, notably of + picture.el. When I figure out what, I'll fix and re-enable this + code. + +1993-04-27 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * buffer.c (syms_of_buffer): Doc fix for buffer-display-table. + + * systime.h: Doc fix. + (EMACS_SET_USECS): Remember that a `usec' is a microsecond, not a + millisecond. What's three orders of magnitude between friends? + * dispnew.c (Fsit_for, Fsleep_for): Remember to multiply the + `milliseconds' argument by 1000 to get microseconds. + +1993-04-26 Roland McGrath (roland@geech.gnu.ai.mit.edu) + + * fileio.c (Fexpand_file_name): + Don't remove trailing / from NEWDIR if just "/". + +1993-04-26 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * m/ibmps2-aix.h, m/ibmrs6000.h, m/ibmrt-aix.h, m/mips.h, + m/sps7.h, s/hpux.h, s/usg5-4.h (HAVE_DUP2): Removed; derived by + configure script. + * s/hpux.h, s/irix3-3.h, s/aix3-1.h (HAVE_GETHOSTNAME): Removed; + derived by configure script. + + Arrange for Fy_or_n_p to put off switch-frame events. + * lread.c (read_filtered_char): New function, which contains the + code which used to be in Fread_char, Fread_event, and + Fread_char_exclusive; there was a lot of common code. + (Fread_char, Fread_event, Fread_char_exclusive): Rewrite in terms + of read_filtered_char. + * lisp.h (read_filtered_char): Declare this extern here. + * fns.c (Fy_or_n_p): Call read_filtered_char, arranging to delay + switch-frame events. + + * keyboard.c (read_key_sequence): Let the `modifiers' variable in + the code which deals with KEY being unbound be an int, not a + Lisp_Object. + + * config.h.in (getenv): Don't test THIS_IS_YMAKEFILE to see if we + should exclude the getenv declaration; instead, test NOT_C_CODE. + Per suggestion from Francesco Potorti`. + * ymakefile (NOT_C_CODE): Define this; it's true, and useful. + + * dispnew.c (Fsleep_for, Fsit_for): Allow SECONDS to be a + floating point value. + +1993-04-26 Eric S. Raymond (eric@mole.gnu.ai.mit.edu) + + * sysdep.c (read_pending_input): + Fix the garbaged-modifiers bug under System Vs previous + to r4. + +1993-04-25 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * systty.h (EMACS_GET_TTY, EMACS_SET_TTY): Move these into + functions in sysdep.c. + * sysdep.c (emacs_get_tty, emacs_set_tty): Here they are. + + * sysdep.c (emacs_set_tty): Call tcsetattr over and over again + until it does all of what we ask it to, or returns an error. + + * search.c (Freplace_match): Arrange for markers sitting at the + beginning or end of the original text to float to the + corresponding position in the replacement text. + +1993-04-25 Eric S. Raymond (eric@mole.gnu.ai.mit.edu) + + * window.c (Fset-window-buffer): + Set horizontal-scrolling on a window to zero when + we connect it to a new buffer. + + * buffer.c: Doc fix. + +1993-04-24 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + Make the modifier manipulation functions more robust. The old way + caused a bug once, and probably would again. + * termhooks.h (alt_modifier, super_modifier, hyper_modifier, + shift_modifier, ctrl_modifier, meta_modifier): Shift these all + down one bit in value, to avoid sign extension problems. + * lisp.h (CHAR_META, CHAR_CTL, CHAR_SHIFT): Fix these definitions too. + * keyboard.c (lispy_modifier_list): Ignore modifier bits beyond + what our table of modifier names can handle. + (apply_modifiers): Don't abort if you see extra modifier bits, + just remove them. + +1993-04-23 Eric S. Raymond (eric@mole.gnu.ai.mit.edu) + + * data.c (Fdefine_function): + Changed name back to Fdefalias, so we get things + in a known-good state. + + * buffer.h (BUF_NARROWED, NARROWED): + New macros to test whether a region + restriction has narrowed the buffer. + +1993-04-17 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * systime.h: Comment fixes. + + * data.c (Fdefine_function): New function. + + * lisp.h (LOADHIST_ATTACH): New macro. + (Vcurrent_load_list, Vload_history): Vars declared. + + * eval.c: (defun, defmacro, defvar, defconst): + Attach symbol argument to the list of globals for the input source. + (do_autoload): Save the old autoloads, in case we ever unload. + + * fns.c (provide, require): Put appropriately-marked + conses in the current-globals list. + + * lread.c (readevalloop): + New argument is the source file name (or nil if none). + All calls changed. Do the two-step + necessary to call build_load_history with the correct current-globals + list for the current recursion. + (build_load_history): New function. + (eval_region, eval_buffer): Call readevalloop with new arg. + (load_history): New variable. + +1993-04-16 Eric S. Raymond (eric@mole.gnu.ai.mit.edu) + + * lread.c (readevalloop): New argument is the source file name (or + nil if none). All calls changed. Do the two-step + necessary to call build_load_history with the correct current-globals + list for the current recursion. + (build_load_history): New function. + (Feval_region, Feval_buffer): Call readevalloop with new arg. + (Vload_history): New variable. + + * fns.c (Fprovide, Frequire): Put appropriately-marked + conses in the current-globals list. + + * eval.c (Fdefun, Fdefmacro, Fdefvar, Fdefconst): + Attach symbol argument to the list of globals for the input source. + (do_autoload): Save the old autoloads, in case we ever unload. + + * data.c (Fdefine_function): New function. + +1993-04-16 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * fileio.c (Fmake_symbolic_link): If a file already exists under + the link's filename, delete the file which the link + would replace, not the file the link would point at. + + * config.h.in (volatile): Don't define this to be the empty string + if some file has #defined HAVE_VOLATILE. + + * emacs.c (SEPCHAR): Instead of defining this to be ',' on VMS and + ':' elsewhere, just have it default to ':' if not #defined, and + #define it to be ',' in s/vms.h; OS/2 will need it to be ';'. + * s/vms.h (SEPCHAR): #define this to be ','. + * s/template.h (SEPCHAR): Mention this. + +1993-04-13 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * s/vms.h (xfree): #define this to emacs_xfree, to avoid case + conflict with XFree; on VMS, external symbols are case-insensitive. + + * s/usg5-4.h (HAVE_GETTIMEOFDAY): Deleted; ../configure figures + that out now. + + Changes for Emacs 19 from Thorsten Ohl <ohl@chico.harvard.edu>: + * s/mach2.h: copied from the Emacs 18.59 distribution. + Don't define NO_REMAP, define START_FILES as + `pre-crt0.o' instead. Define LIB_MATH as `-lm', to override the + default `-lm -lc' (there is no libc on the NeXT). + * ymakefile (STARTFILES): Allow config.h to set this value even if + ORDINARY_LINK is defined. + * unexnext.c: Fix subdirectories for the machine dependent include + files for NeXTStep 3.0; #include <mach/mach.h> and + <mach-o/loader.h> instead of <mach.h> and <sys/loader.h>. + (getsectbyname): Remove prototype for this; the system #include + files take care of that. + (malloc_cookie): New variable. + (unexec_doit): Set malloc_cookie to the result returned by + malloc_freezedry. + * emacs.c (main): Declare malloc_cookie to be extern, so that we can + get the value set when we dumped and pass it to malloc_jumpstart. + * systime.h: The NeXT has a timezone function. + +1993-04-12 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * ymakefile ($(OLDXMENU)): Remove $(OLDXMENU) before trying to + link in a new version. + + * lisp.h (Qrange_error, Qdomain_error, Qsingularity_error, + Qoverflow_error, Qunderflow_error): Add extern to these declarations. + +1993-04-12 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * xfaces.c: Don't include Xmu/Drawing.h. + +1993-04-10 Jim Blandy (jimb@geech.gnu.ai.mit.edu) + + * Makefile.in (xmakefile): Recognize the -O option with a numeric + optimization level. + + * ymakefile (C_DEBUG_SWITCH): If we're using version 2 of GCC or + higher, use -O99 instead of plain -O. + +1993-04-09 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * keyboard.c (command_loop_1): Rebuild menu bar if + update_mode_lines is set. + + long_to_cons and cons_to_long are generally useful things; they're + needed whether or not X is defined. + * xselect.c (long_to_cons, cons_to_long): Moved from here... + * data.c (long_to_cons, cons_to_long): ... to here. + * lisp.h (long_to_cons, cons_to_long): Add extern declaration. + + * xmenu.c (Qmenu_enable): Definition moved... + (syms_of_xmenu): ... along with initialization ... + * keyboard.c (Qmenu_enable): ... to here ... + (syms_of_keyboard): ... and here. + + * keyboard.c (kbd_buffer_get_event): If we get a selection clear + or selection request event, but we were compiled without the + window-system-specific code to handle it, abort. Don't try to + call a function which doesn't exist. + + * keyboard.c (make_lispy_event): In the code which processes mouse + clicks, declare f to be a FRAME_PTR, not a struct frame *; this + works when MULTI_FRAME is not #defined. + + * xfaces.c (sort_overlays): Define this to be static, as declared. + + * callproc.c (relocate_fd): Make messages string literals, not + initialized arrays. + + * alloc.c (__malloc_hook, __realloc_hook, __free_hook): Declare + these extern, not static. (!) + + * alloc.c (__malloc_hook, old_malloc_hook, __realloc_hook, + old_realloc_hook): Declare that the functions these point to return + void *, not void. + + Adjust for autoconf merger. + * config.h.in: Add extra line to top, in case autoconf gets fixed + and decides not to add Makefile-style comments to the top of the + files it generates which we are forced to lop off. + Indicate that the boolean macros here get their definitions via + the DEFS Makefile variable. + Adjust the operating system and machine #includes to use + autoload's @cookies@. + (RETSIGTYPE): Give this a default value. + (SIGTYPE): Set this from RETSIGTYPE. + (LD_SWITCH_X_SITE, C_SWITCH_X_SITE): Get values via @cookies@. + * Makefile.in (DEFS): Renamed from CONFIG_CFLAGS. + (xmakefile): Pass CFLAGS to ${CPP}. + + * buffer.c (Fmake_overlay, Fmove_overlay): New optional BUFFER + arguments. + (recenter_overlay_lists): New argument BUF, to use instead of the + current buffer. + (Foverlay_recenter): Pass the appropriate arguments to + recenter_overlay_lists. + + * buffer.c (Fdelete_overlay): Don't assume that overlay is in the + current buffer. Don't forget to declare the argument a Lisp_Object. + + * dispnew.c (getenv): Extern declaration deleted; this is done in + config.h. + + * Makefile.in (tagsfiles): Remove external-lisp from this list of + files; we're not distributing it, so the normal build process + shouldn't depend on it. + + * dispnew.c (init_display): Compare the return value of getenv to + zero before setting display_arg, instead of just using the pointer + as a truth value. + +1993-04-08 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * xdisp.c (message, message1): If noninteractive and + cursor_in_echo_area, don't print a newline at end of message. + + * fns.c (Fy_or_n_p): Echo the answer just once, at exit. + + * keyboard.c (echo_dash): Do nothing if echoptr is 0. + + * buffer.c (Fkill_all_local_variables): Store each var's current value + in the buffer's alist entry, before reverting to the default value. + +1993-04-07 Jim Blandy (jimb@geech.gnu.ai.mit.edu) + + * keyboard.c (apply_modifiers): Fix typo in sanity check. + + * keyboard.c (interrupt_input_blocked, interrupt_input_pending): + Remove `extern' keywords - these are the definitions. + +1993-04-07 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * blockinput.h (UNBLOCK_INPUT): Fix typo. + (interrupt_input_blocked): Make this signed int. + + * search.c (search_buffer): Fix typo in previous change. + + * insdel.c, buffer.c: Include blockinput.h. + + * xterm.c: Fix typo in comment delimiter. + +1993-04-07 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * m/imbrs6000.h: If we're using GCC, define ORDINARY_LINK instead + of defining LINKER to use cc. + * s/aix3-1.h (LINKER): Don't use cc for linking command if we're + using GCC. + * s/aix3-2.h (SYSTEM_MALLOC): Undefine this. + + * xterm.c (updating_frame): Declare this extern instead of static, + so it's the same variable as the updating_frame in term.c. + (XTupdate_begin, XTupdate_end): Don't bother to set + updating_frame; the term.c functions take care of that for us. + +1993-04-05 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * s/vms.h (EXEC_SUFFIXES): Add definition for this. + +1993-03-31 Jim Blandy (jimb@geech.gnu.ai.mit.edu) + + * xfaces.c: Doc fixes. + + Put interrupt input blocking in a separate file from xterm.h. + This isn't specific to X, and it allows us to avoid #including + xterm.h in files that don't really have anything to do with X. + * blockinput.h: New file. + * xterm.h (BLOCK_INPUT, UNBLOCK_INPUT, TOTALLY_UNBLOCK_INPUT, + UNBLOCK_INPUT_RESIGNAL): These are now in blockinput.h. + (x_input_blocked, x_pending_input): Deleted; there are analogs + in blockinput.h called interrupt_input_blocked and + interrupt_input_pending. + * keyboard.c (interrupt_input_blocked, interrupt_input_pending): + New variables, used by the macros in blockinput.h. + * xterm.c: #include blockinput.h. + (x_input_blocked, x_pending_input): Deleted. + (XTread_socket): Test and set interrupt_input_blocked and + interrupt_input_pending instead of the old variables. + * alloc.c, xfaces.c, xfns.c, xmenu.c, xselect.c, keymap.c: + #include blockinput.h. + * eval.c: #include blockinput.h instead of xterm.h. + * keyboard.c: #include blockinput.h. + (input_poll_signal): Just test + interrupt_input_blocked, instead of testing HAVE_X_WINDOWS and + x_input_blocked. + + Block the processing of interrupt input while we're manipulating the + malloc heap. + * alloc.c: (xfree): New function, to make it easy to free things + safely. + (xmalloc, xrealloc): Block X input while doing the deed. + (VALIDATE_LISP_STORAGE, gc_sweep, compact_strings): Use xfree + instead of free. + (uninterrupt_malloc): New function, to install input-blocking + hooks into the GNU malloc routines. + * emacs.c [not SYSTEM_MALLOC] (main): Call uninterrupt_malloc + on startup. + * alloc.c: (make_interval, make_float, Fcons, Fmake_vector, + Fmake_symbol, Fmake_marker, make_uninit_string, Fgarbage_collect): + Use xmalloc instead of malloc; don't bother to check if out of + memory here. + (Fgarbage_collect): Call xrealloc instead of realloc. + * buffer.c: Use xmalloc and xfree instead of malloc and free; + don't bother to check if out of memory here. + (Fget_buffer_create): Put BLOCK_INPUT/UNBLOCK_INPUT pair around + calls to ralloc routines. + * insdel.c: Same. + * lisp.h (xfree): New extern declaration. + * xfaces.c (xfree): Don't #define this to be free; use the + definition in alloc.c. + * dispnew.c, doc.c, doprnt.c, fileio.c, lread.c, term.c, xfns.c, + xmenu.c, xterm.c: Use xfree instead of free. + * hftctl.c: Use xfree and xmalloc instead of free and malloc. + * keymap.c (current_minor_maps): BLOCK_INPUT while calling realloc + and malloc. + * search.c: Since the regexp routines can malloc, BLOCK_INPUT + while runing them. #include blockinput.h. + * sysdep.c: #include blockinput.h. Call xfree and xmalloc instead + of free and malloc. BLOCK_INPUT around routines which we know + will call malloc. + + ymakefile (keyboard.o, keymap.o, search.o, sysdep.o, xfaces.o, + xfns.o, xmenu.o, xterm.o, xselect.o, alloc.o, eval.o): Note that + these depend on blockinput.h. + + * keyboard.c (parse_modifiers, apply_modifiers): Make sure we're + not trying to create modifier masks using integers which are + unrepresentable as lisp values. + +1993-03-30 Jim Blandy (jimb@geech.gnu.ai.mit.edu) + + New macros NULL_DEVICE and EXEC_SUFFIXES, to give the name of the + equivalent of /dev/null, and the suffixes used by executable + files. This is simple, and helps people porting Emacs to other + operating systems. + * process.h (NULL_DEVICE): Give this a default value. + * process.c (Fstart_process): Pass EXEC_SUFFIXES to openp. + (Fprocess_send_eof): Use NULL_DEVICE instead of "/dev/null". + * callproc.c (Fcall_process): Pass EXEC_SUFFIXES to openp. + Use NULL_DEVICE instead of "/dev/null". + * s/vms.h (NULL_DEVICE): #define this. + + Rename int-to-string to number-to-string, since it can handle + floating-point as well as integer arguments. subr.el defines the + former as an alias for the latter. + * data.c (Fnumber_to_string): Renamed from Fint_to_string. + (wrong_type_argument): Adjust caller. + (syms_of_data): Adjust defsubr. + * fns.c (concat): Adjust caller. + * lisp.h (Fnumber_to_string): Adjust extern declaration. + * mocklisp.c (Finsert_string): Adjust caller. + * process.c (status_message): Adjust caller. + +1993-03-28 Richard Stallman (rms@wookumz.gnu.ai.mit.edu) + + * systty.h [NO_PTY_H]: Don't include pty.h. + + * m/delta88k.h [USG5_4]: Alternate defining of LIBS_SYSTEM, + LIBX11_SYSTEM, HAVE_RANDOM, BSTRING. + (NO_PTY_H): Defined. + + * fileio.c (Fwrite_region): Don't fail to set visit_file. + + * keyboard.c (command_loop_1): Clear force_start of selected_window + after reading each key sequence. + (read_char): Clear Vquit_flag when we return C-g for it. + + * fileio.c (Fexpand_file_name): Default DEFALT at beginning, + before expanding it. But avoid unneeded or infinite recursive expand. + +1993-03-26 Richard Stallman (rms@wookumz.gnu.ai.mit.edu) + + * editfns.c (Fchar_equal): Don't ignore high bits of character. + + * fileio.c (Fwrite_region): Set visit_file after expanding file arg. + Also expand VISIT arg if specified. + + * frame.c (make_frame): Init face_alist field. + +1993-03-25 Jim Blandy (jimb@geech.gnu.ai.mit.edu) + + * xselect.c (SELECTION_QUANTUM): Don't use XMaxRequestSize on R3; + access the display structure directly. + +1993-03-25 Richard Stallman (rms@wookumz.gnu.ai.mit.edu) + + * ymakefile (xfns.o): Depend on buffer.h. + + * buffer.h (struct buffer): Field `fieldlist' deleted. + + * search.c (Freplace_match): Clean up criterion about converting case. + If old text has any capitalized words, capitalize new text. + + * xfaces.c: New file. + + * ymakefile (XOBJ): Add xfaces.o. + (xfaces.o): New target. + * emacs.c (main): Call syms_of_xfaces. + + * buffer.h (OVERLAY_START, OVERLAY_END, OVERLAY_VALID): New macros. + (OVERLAY_POSITION): Likewise. + (searchbuf): Decl deleted--doesn't belong here. + Delete include of regex.h for VMS. + * dired.c (searchbuf): Declare here. + + * frame.h (struct frame): New field face_alist. + * alloc.c (mark_object): Mark face_alist of a frame. + + * ymakefile (xselect.o): Depend on dispextern.h. + + * xterm.h (FRAME_FACES, FRAME_N_FACES, FRAME_DEFAULT_FACE) + (FRAME_MODE_LINE_FACE): New macros. + (struct x_display): New fields faces, n_faces. + + * dispextern.h (struct face): New fields pixmap_h, pixmap_w. + Field `font' is now a pointer. + + * fns.c (Fy_or_n_p): Ensure cursor_in_echo_area = 0 when quit. + +1993-03-24 Jim Blandy (jimb@geech.gnu.ai.mit.edu) + + * dispnew.c (getenv): Add extern declaration. + + * ymakefile (really-oldXMenu): Pass C_SWITCH_SITE and + C_SWITCH_SYSTEM to the inferior make as separate flags, instead of + passing just C_SWITCH_SITE as CFLAGS. + + * keymap.c (Fkeymapp): Doc fix. + + * xterm.h (x_focus_frame): Add extern keyword to declaration. + + * xterm.c [VMS]: Don't #include <sys/termio.h> and <string.h>. + * xfns.c [VMS]: Get the gray_bits from [.bitmaps]gray.xbm. + * process.c [VMS] (DCL_PROMPT): Remove hack. + (WIFSTOPPED, WIFSIGNALED, WIFEXITED, XRETCODE, WSTOPSIG, + WCOREDUMP, WTERMSIG): New dummy definitions. + (deactivate_process): Add missing semicolon. + * dispnew.c (init_display): Get display name from environment + properly on VMS as well as Unix. + +1993-03-24 Richard Stallman (rms@wookumz.gnu.ai.mit.edu) + + * buffer.c (init_buffer_once, reset_buffer): + Delete last vestige of fieldlist slot. + (Fregion_fields): Finally deleted. + + * keymap.c (push_key_description): Ignore bits above meta_modifier. + +1993-03-23 Richard Stallman (rms@wookumz.gnu.ai.mit.edu) + + * buffer.c (overlays_at, recenter_overlay_lists): New functions. + (Fmake_overlay, Fdelete_overlay, Foverlay_get, Foverlay_put): Likewise. + (Fmove_overlay, Foverlays_at, Fnext_overlay_change): Likewise. + (Foverlay_lists, Foverlay_recenter): Likewise. + + * buffer.h (struct buffer): New fields overlay_center, + overlays_before, overlays_after. + +1993-03-23 Jim Blandy (jimb@geech.gnu.ai.mit.edu) + + * config.h.in (HAVE_XFREE386): New flag, set by configure script. + If it's set, #define LIBX11_SYSTEM and HAVE_RANDOM as appropriate + for XFree386. + * sysdep.c (random, srandom): Don't define these if HAVE_RANDOM is + #defined. + + * config.h.in (C_SWITCH_X_SITE, LD_SWITCH_X_SITE): New flags. + * ymakefile (C_SWITCH_X_SITE, LD_SWITCH_X_SITE): Provide default + values. Include C_SWITCH_X_SITE in CFLAGS, include + LD_SWITCH_X_SITE in LIBX, and pass C_SWITCH_X_SITE to the make + which builds the X Menu library. + +1993-03-22 Jim Blandy (jimb@geech.gnu.ai.mit.edu) + + * xfns.c (Fx_parse_geometry): Renamed from Fx_geometry. + (Fx_color_defined_p): Renamed from Fx_defined_color. + (syms_of_xfns): Adjusted. + +1993-03-22 Richard Stallman (rms@wookumz.gnu.ai.mit.edu) + + * indent.c (current_column, Findent_to, position_indentation): + (Fmove_to_column, compute_motion): Allow tab_width up to 1000. + + * xdisp.c (display_string, display_text_line): + Allow tab_width up to 1000. + + * keyboard.c (Fsuspend_emacs): + Change suspend-hooks back to suspend-hook and make it a normal hook. + + * s/dgux.h: Decide automatically whether to use COFF or ELF. + +1993-03-21 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * fns.c (Fy_or_n_p): Handle `recenter' response type. + + * s/dgux.h (HAVE_TERMIO, SIGNALS_VIA_CHARACTERS): Defined. + +1993-03-21 Jim Blandy (jimb@geech.gnu.ai.mit.edu) + + * frame.c (Fhandle_switch_frame): Renamed from Fselect_frame. + Doc changed in anticipation of new purpose. + (Fselect_frame): Just call Fhandle_switch_frame for now. + +1993-03-21 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * xdisp.c (decode_mode_spec): Handle `%l'. + (display_count_lines): New function. + (redisplay_window): Update base_line_number and base_line_pos fields. + Always update mode line if it's an integer. + * window.h (struct window): + New fields base_line_number and base_line_pos. + + * window.c (Fselect_window): Use Fhandle_switch_frame. + (Fset_window_configuration): Likewise. + +1993-03-20 Jim Blandy (jimb@geech.gnu.ai.mit.edu) + + Use the `visiblity' parameter to determine the initial state of + the frame, instead of the `iconic-startup' and + `suppress-initial-map' parameters. + * xfns.c (x_icon): Test the Qvisibility parameter against Qicon, + instead of the Qiconic_startup against Qt. + (x_create_frame): Test Qvisibility against Qnil and + Qicon, instead of testing Qsuppress_initial_map and Qvisibility. + (Qicon): New symbol. + (Qiconic_startup, Qsuppress_initial_map): Removed. + (syms_of_xfns): Adjusted appropriately. + + * xfns.c (x_set_visibility): Instead of interpreting only Qt as + `make the frame visible' and everything else as `iconify the + frame', interpret Qicon as `iconify the frame' and everything else + as `make the frame visible.' + + * xfns.c (x_get_arg): When the type of the resource is `symbol', + return `true' and `on' as Qt, and `false' and `off' as Qnil. + +1993-03-20 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * emacs.c (init_cmdargs): Fix simple bug in previous change. + +1993-03-20 Jim Blandy (jimb@geech.gnu.ai.mit.edu) + + * dispnew.c (Fsleep_for): Make this take two arguments SECONDS and + MILLISECONDS, which add, rather than a second argument which says + "treat the first argument as milliseconds." + (Fsit_for): Same thing. + (Fsleep_for_milliseconds): Deleted; this can be done with Fsleep_for. + + * process.c (wait_reading_process_input): Doc fix. + + * systime.h (EMACS_HAS_USECS): #define this if HAVE_TIMEVAL is + #defined. + + * dispnew.c (sit_for): Doc fix. + + * sysdep.c (reset_sys_modes): Fix usage of EMACS_SET_TTY. + + * callproc.c (child_setup): Make sure that in, out, and err are + not less than three. + (relocate_fd): New function. + + * xterm.c (x_term_init): If the X connection is already in file + descriptor zero, don't dup it and close the old one. + + * s/hpux8.h, s/sunos4-1.h (OLDXMENU_OPTIONS): Define this, as in + Emacs 18. + + * xfns.c (Fx_open_connection): If we have X11R5, use + XrmSetDatabase to set the display's database. In older versions, + just store the value into x_current_display->db. + * xterm.h (HAVE_X11R5): Define this where appropriate. + + * frame.c (Fraise_frame, Flower_frame): Renamed from + Fframe_to_front and Fframe_to_back. + (syms_of_frame): Adjusted appropriately. + + * fileio.c (HAVE_FSYNC): Define, if appropriate. + (Fwrite_region): Use HAVE_FSYNC. + * s-aix3-2.h (HAVE_FSYNC): Define. + + * emacs.c (Finvocation_name): New function. + (Vinvocation_name): New variable. + (init_cmdargs): Set it. + (syms_of_emacs): defsubr Finvocation_name, staticpro and + initialize Vinvocation_name. + * lisp.h (Vinvocation_name): New extern declaration. + * xterm.c (invocation_name): Variable deleted; use + Vinvocation_name now. + (x_text_icon, x_term_init): Use Vinvocation_name now instead of + invocation_name. + (x_term_init): Don't initialize invocation_name. + (syms_of_xterm): Don't initialize or staticpro invocation_name. + * xfns.c (invocation_name): Remove extern declaration for this. + [HAVE_X11] (Fx_get_resource): Use Vinvocation_name now instead of + invocation_name. + [not HAVE_X11] (Fx_get_default): Same. + +1993-03-20 Richard Stallman (rms@wookumz.gnu.ai.mit.edu) + + * xfns.c (Fx_display_color_p): Renamed from Fx_color_display_p. + (syms_of_xfns): Use new name in defsubr. + +1993-03-19 Eric S. Raymond (eric@geech.gnu.ai.mit.edu) + + * Makefile.in (unlock, relock): New productions to assist with + version control. + +1993-03-19 Richard Stallman (rms@wookumz.gnu.ai.mit.edu) + + * fileio.c (Fvisited_file_modtime): New function. + (Fset_visited_file_modtime): Accept an argument specifying time value. + If arg is nil, really use the filename handler. + + * xselect.c (cons_to_long, long_to_cons): No longer static. + +1993-03-18 Jim Blandy (jimb@geech.gnu.ai.mit.edu) + + * frame.h (FOR_EACH_FRAME): Change the definition so that + FRAME_VAR is a lisp object. + * dispnew.c (WINDOW_CHANGE_SIGNAL, do_pending_window_change): + Adjusted appropriately. + * xdisp.c (redisplay): Adjusted appropriately. + + * dispnew.c (Fredraw_frame): Give this appropriate definitions for + MULTI_FRAME and non-MULTI_FRAME configurations. + (Fredraw_display): Give this a non-MULTI_FRAME-dependent definition. + +1993-03-18 Richard Stallman (rms@geech.gnu.ai.mit.edu) + + * lisp.h (CHECK_LIVE_WINDOW): Use Qlive_window_p. + + * xfns.c (x_screen): Make this var file scope. + (Fx_server_version): Use Fcons, not list3. + +1993-03-17 Eric S. Raymond (eric@mole.gnu.ai.mit.edu) + + * xterm.c (term_get_fkeys): Less klugey version of the last fix. + + * Makefile.in (versionclean): New production nukes binaries and + DOC files, forcing a re-load, re-dump and re-makedoc. + +1993-03-17 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * fileio.c: Doc fix. + +1993-03-17 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * xterm.c (x_display_box_cursor, x_display_bar_cursor): Don't + display the cursor on garbaged frames. + +1993-03-17 Eric S. Raymond (eric@mole.gnu.ai.mit.edu) + + * term.c (term_get_fkeys) Supply second args for all tgetstr calls. + +1993-03-17 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * process.c (Fprocess_send_eof): Make sure proc is running. + + * s/irix4-0.h (_getpty): Declare this, not _get_pty. + +1993-03-16 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * xfns.c (Fx_server_vendor, Fx_server_version, Fx_display_pixel_width) + (Fx_display_pixel_height, Fx_display_mm_width, Fx_display_mm_height) + (Fx_display_screens, Fx_display_planes, Fx_display_color_cells) + (Fx_display_visual_class, Fx_display_backing_store) + (Fx_display_save_under): New functions. + (x_screen_count, Vx_vendor, x_release, x_screen_height_mm) + (x_screen_width_mm, Vx_backing_store, x_save_under, Vx_screen_visual) + (x_visual_strings): Vars deleted. + (Fx_open_connection): Don't init those vars. + (syms_of_xfns): Set up new functions. + Don't set up those vars as Lisp vars. + Nor x-screen-width and x-screen-height. + +1993-03-16 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * cmds.c (overwrite_binary_mode): Deleted; this implements the + wrong feature. + (Qoverwrite_mode_binary): New variable. + (internal_self_insert): If current_buffer->overwrite_mode is + `overwrite-mode-binary', do as overwrite_binary_mode used to. + (syms_of_cmds): Remove defvar of overwrite_binary_mode; initialize + Qoverwrite_mode_binary. + * buffer.c (syms_of_buffer): Doc fix for overwrite_mode. + * buffer.h (struct buffer): Doc fix. + + Rename `live-window-p' to `window-live-p', for consistency with + `frame-live-p'. + * window.c (Fwindow_live_p): Renamed from Flive_window_p. + * lisp.h (CHECK_LIVE_WINDOW): Change to use Qwindow_live_p. + (Qwindow_live_p): Extern declaration renamed fom Qlive_window_p. + +1993-03-16 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * xmenu.c (xmenu_show): Do BLOCK_INPUT; unblock just before returning. + + * xterm.h [SIGIO] (UNBLOCK_INPUT): Resignal if x_pending_input. + +1993-03-15 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * frame.c (Fframe_height, Fframe_width): Fix doc strings to match + those of the multi-frame versions in frame.el. Accept an optional + argument FRAME, also for consistency. + + * floatfns.c (logb): Add extern declaration for this. + + * floatfns.c (Flogb): Under SYSV, implement this using frexp. + +1993-03-15 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * ymakefile (dispnew.o): Depend on termhooks.h. + + * xmenu.c (list_of_items): Allow strings among the alist items; + they make nonselectable lines. + +1993-03-14 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * dired.c (Fdirectory_files): Recompile MATCH (if specified) after + expanding the file name and all; those might compile regexp of + their own, and change searchbuf. + + * keyboard.h (internal_last_event_frame): This should be extern, + dummy. + + * fns.c (Fy_or_n_p): Display the answer. + + Some VMS changes from Richard Levitte <levitte@e.kth.se>: + * [VMS] systime.h: Include vmstime.h. VMS has the timezone + variable and the tzname array. + * s/vms.h: VMS does have select. + mth$dmod is the same as Unix's drem. + Use the time functions in vmstime.c. + No need to rename the malloc routines if we're using GNU malloc. + PURESIZE needs to be 330000. + * vmstime.c, vmstime.h: New files. + * systty.h: Don't try to initialize extern declarations under VAX C. + * vmspaths.h (PATH_LOADSEARCH): Include EMACS_LIBRARY:[LOCAL-LISP] + in PATH_LOADSEARCH. + (PATH_EXEC): Use EMACS_LIBRARY:[LIB-SRC] instead of [ETC]. + * sysdep.c [VMS] (init_sys_modes): Don't allocate process_ef. + [VMS] (queue_kbd_input): Build events structure correctly. + [VMS] (gethostname): New function. + [VMS] (getwd): Don't get the PATH environment variable; that's + dumb. Call getcwd. + +1993-03-14 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * xdisp.c (display_menu_bar): Assume FRAME_MENU_BAR_ITEMS already set. + Fill out line with spaces. + Put explicit spaces between items. + * keyboard.c (command_loop_1): Set FRAME_MENU_BAR_ITEMS here. + + * window.c (Fdelete_other_windows): Handle FRAME_MENU_BAR_LINES. + + * keyboard.c (menu_bar_items): Reverse the list when done. + + * xmenu.c (single_keymap_panes): When storing in ENABLES, + check def before enabled. + + * ymakefile (really-oldXMenu): Renamed from ${oldXMenudir}$(OLDXMENU). + Add @true. + ($(OLDXMENU)): Depend on really-oldXMenu. + The idea is to make sure libXMenu11.a is always updated if nec. + + * keyboard.c (command_loop_1): Typo calling Qrecompute_lucid_menubar. + (read_key_sequence): Likewise. Also fix call to Vrun_hooks. + +1993-03-13 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * ymakefile (YMF_PASS_LDFLAGS): Doc fix. + +1993-03-13 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * print.c (PRINTPREPARE): Handle marker that points nowhere. + + * apollo.h (NO_X_DESTROY_DATABASE): Defined. + + * undo.c (record_property_change, record_delete, record_insert): + Don't make boundary or touch last_undo_buffer if cur buf has no undo. + + * ymakefile [__GNUC__ > 1]: Delete the conditional for GCC 2.4. + [__GNUC__ > 1] (LIB_GCC): Use -print-libgcc-file-name to find libgcc.a. + (YMF_FIND_LIBGCC_A): Definitions and uses deleted. + +1993-03-13 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * s/usg5-4.h: Remove extraneous text after #undef LIB_X11_LIB. + +1993-03-13 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * xterm.c (Xatom_wm_change_state): Define here. + * xfns.c (Xatom_wm_change_state): Just declare. + (Xatom_emacs_selection, Xatom_clipboard, Xatom_clipboard_selection): + (Xatom_wm_change_state, Xatom_incremental, Xatom_multiple): + (Xatom_targets, Xatom_timestamp, Xatom_delete, Xatom_insert_selection): + (Xatom_pair, Xatom_insert_property, Xatom_text): Decls deleted. + (x_begin_selection_own): Decls deleted. + (Fx_open_connection): Set up only the wm atoms here. + Call Xatoms_of_xselect. + + * dispnew.c: Include termhooks.h. + + * frame.h (FRAMEP): Macro deleted. + + * xselect.c: Total rewrite, derived from Lucid's version. + + * keyboard.c (kbd_buffer_get_event): Handle selection_clear_event + and selection_request_event events. + + * xterm.c (XTread_socket): Handle NEW_SELECTIONS alternative: + queue events for SelectionRequest and SelectionClear; + call functions for SelectionNotify and PropertyNotify. + + * termhooks.h (selection_request_event, selection_clear_event): + New event kinds. + + * xterm.h (SELECTION_EVENT_DISPLAY): New macro. + (SELECTION_EVENT_REQUESTOR, SELECTION_EVENT_SELECTION) + (SELECTION_EVENT_TARGET, SELECTION_EVENT_PROPERTY) + (SELECTION_EVENT_TIME): New macros. + (struct selection_input_event): New structure. + + * process.c (wait_reading_process_input): New option to wait + till a given cons cell has a non-nil car. + Delete vipc conditionals. + +1993-03-12 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * ymakefile (YMF_FIND_LIBGCC_A): New macro, to help GCC find + libgcc.a even when -nostdlib is in effect. Define it to be the + empty string if nobody else establishes a value for it. + (temacs): Include it in the list of flags passed to the linker. + + * ymakefile (LINKER): If we have GCC 2.4 or later, use the + -nostartfiles option instead of -nostdlib. + (LIBGCC): Under GCC 2.4 or later, define this to be the empty string. + +1993-03-12 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * xmenu.c (xmenu_show): New arg enable_list. + (keymap_panes): New arg enables + (single_keymap_panes): New arg enables. Fill in its contents. + (list_of_panes, list_of_items): New arg enables. Fill in contents. + (Fx_popup_menu): Pass enable and enable_list args. + (single_keymap_panes): Set enable flag to -1 if cmd definition is nil. + + * lisp.h (INTEGERP, SYMBOLP, MARKERP, STRINGP, VECTORP): New macros. + (COMPILEDP, BUFFERP, SUBRP, PROCESSP, FRAMEP, WINDOWP): New macros. + (WINDOW_CONFIGURATIONP, FLOATP): New macros. + +1993-03-12 Paul Eggert (eggert@twinsun.com) + + * cmd.c (internal_self_insert): Check that tab_width does not + exceed 20, to be consistent with indent.c and xdisp.c. + +1993-03-12 Eric S. Raymond (eric@mole.gnu.ai.mit.edu) + + * term.c (CONDITIONAL_REASSIGN): fixed reference to tigetstr. + This should have been tgetstr, but I typoed and tigetstr happens + to link and even do the right thing if you're on a System V box. + +1993-03-12 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * keyboard.c (read_key_sequence): Support Vcurrent_menubar + and Qactivate_menubar_hook. Call Qrecompute_lucid_menubar. + (syms_of_keyboard): Set up Vcurrent_menubar, Vprevious_lucid_menubar, + Qactivate_menubar_hook, and Qrecompute_lucid_menubar. + + * xmenu.c (Fx_popup_menu): Allow a frame instead of a window, in arg. + Use Fcar, Fcdr when extracting from event, to check data types. + +1993-03-11 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * frame.h (FRAME_MENU_BAR_ITEMS): New macro (two versions). + (struct frame): New field menu_bar_items. + * alloc.c (mark_object): Mark the menu_bar_items field. + + * xdisp.c (display_menu_bar): New function. + (redisplay_window): Call display_menu_bar. + + * term.c (tigetstr): Add dummy definition to make Emacs link again. + + * keyboard.c (syms_of_keyboard): Set up Qmenu_bar. + (menu_bar_items): New function. + (menu_bar_one_keymap, menu_bar_item): New functions. + (make_lispy_event): Handle menu bar events. + (read_key_sequence): Make dummy prefix `menu-bar' for menu bar events. + +1993-03-11 Eric S. Raymond (eric@mole.gnu.ai.mit.edu) + + * term.c (fkey_table): Added many more keycap cookies to the + fkey_table; it now supports the full intersection of the set of X + keysyms and terminfo capabilities. See my lisp directory + ChangeLog entry for this date, and lisp/term/README, for details. + +1993-03-11 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * floatfns.c (Flogb): Fix use of IN_FLOAT. + Fix arg names. Don't confuse Lisp_Object with integer. + +1993-03-11 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * process.c (process_send_signal): In the TERMIOS code for sending + control characters to processes, don't try to return Qnil; just + return. + +1993-03-11 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * dispnew.c (change_frame_size): Handle FRAME_MENU_BAR_LINES. + + * frame.c (Fframe_parameters): Report menu-bar-lines parm. + (syms_of_frame): Set up Qmenu_bar_lines. + + * frame.h (FRAME_MENU_BAR_LINES): New macro. + (struct frame): New field menu_bar_lines. + + * xfns.c (x_frame_parms): Add elts for visibility and menu-bar-lines. + (enum x_frame_parm): Likewise. + (x_set_menu_bar_lines, x_set_menu_bar_lines_1): New functions. + (x_set_visibility): New function. + (Fx_create_frame): Handle menu-bar-lines parm. + (x_report_frame_params): Report Qvisibility. + (syms_of_xfns): Set up Qvisibility. + + * keyboard.c (command_loop_1): Typo in last change. + + * xmenu.c (syms_of_xmenu): Set up Qmenu_enable. + (single_keymap_panes): Test menu-enable property of symbol + to decide whether to include it in the menu. + +1993-03-10 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * keyboard.c (command_loop_1): Adjust to the fact that display + tables are now vectors of vectors, not vectors of strings. + +1993-03-10 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * floatfns.c (Flogb): Undo the change of Feb 22. + + * ymakefile (OLDXMENU): Don't assume that we have symbolic links + available; use `ln -f' instead of `ln -s'. + + * xterm.c (x_find_modifier_meanings): XDisplayKeycodes only + appeared in X11R4; for earlier versions, just access the members + of the Display directly. + + * xrdb.c (get_user_db): Since xrdb.c doesn't #include xterm.h, + we can't test HAVE_X11R4 to see how we should get the resource + manager string; cheat. + + * unexec.c (copy_text_and_data): Error message tweaked. + + * systime.h (timezone): Add an explicit declaration for this + variable under USG 5-4. + + * sysdep.c (read_input_waiting): Set e.frame_or_window, not + e.frame; the latter doesn't exist anymore. + + * sysdep.c (start_of_data): If ORDINARY_LINK is #defined, we don't + have the data_start symbol defined, so we'll just use the address + of environ. + + * s/usg5-4.h: Changes from Eric Raymond: + If we're doing ordinary linking, define LIB_STANDARD appropriately. + Give LIBS_DEBUG a null definition; usg5-4 has no -lg. + #define LIBS_STANDARD as "-lc"; usg5-4 has no -lPW. + #define NSIG, if it's not already defined. + #define HAVE_TERMIOS instead of HAVE_TCATTR. + Provide our own definition of LIB_X11_LIB. + + * s/usg5-3.h (LIBX11_SYSTEM): Eric Raymond says the libraries here + were slightly wrong. + + * m/intel386.h (LIB_STANDARD): If USG5_4 is #defined, there's no + need to include `-lPW'; that has been merged with `-lc'. + + * emacs.c (__do_global_ctors, __do_global_ctors_aux, + __do_global_dtors, __CTOR_LIST__, __DTOR_LIST__, __main): Don't + define these if ORDINARY_LINK is #defined; in that case, the + standard linking procedure will find definitions for these. + + * syssignal.h (sigunblock): Add definition which works under SYSVr4. + * emacs.c (fatal_error_signal): Unblock the signal which we're + handling using sigunblock. + +1993-03-09 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * xfns.c (x_make_gc): Don't forget to block X input around the + X calls in this function. + + * xfns.c [not HAVE_X11R4] (select_visual): It's v->visualid, not + x->visualid. x isn't defined. + + * m/template.h, s/template.h: Mention that `etc/MACHINES' and + `configure' should be updated whenever support for a configuration + is added or improved. + + * process.c [! subprocesses] (wait_reading_process_input): + Remember to re-enable polling for input. + + * keyboard.c [POLL_FOR_INPUT] (quit_throw_to_read_char): If + we're polling for input, abort; input polling should always be + suppressed while we're waiting for input. + + * keyboard.c (interrupt_signal): Remove extern declaration of + Vwindow_system; this is no longer used. + +1993-03-09 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * editfns.c (Fcurrent_time_string): Optional arg specifies time. + + * keymap.c (Fdefine_key): Use proper meta-bit to clear. + + * intervals.c (set_point): Check invisibility of following character, + not previous character. + + * floatfns.c (FLOAT_CHECK_ERRNO): Define unless NO_FLOAT_CHECK_ERRNO. + + * floatfns.c: Changes from Lucid. + (HAVE_MATHERR, FLOAT_CHECK_ERRNO, FLOAT_CATCH_SIGILL): New parm macros. + (FLOAT_CHECK_DOMAIN, HAVE_RINT): New parm macros. + (HAVE_INVERSE_HYPERBOLIC, HAVE_CBRT): New parm macros. + [!HAVE_RINT]: Define rint as macro. + (IN_FLOAT): Major rewrite; several alternate versions. + (IN_FLOAT2): New macro. + (arith_error, range_error, domain_error, domain_error2): New macros. + (Facos, Fasin, Fatan, Fcos, Fsin, Ftan, Fexp, Fexpt, Flog): Changed. + (Flog10, Fsqrt, Fabs, Ffloat, Flogb): Changed. + (Ffloor, Fceiling, Fround, Ftruncate): Changed. + (Fcube_root): Renamed from Fcbrt. + (matherr): New function. + (float_error): Only if FLOAT_CATCH_SIGILL. + + * fns.c (Fy_or_n_p): Use query-replace-map. + + * keymap.c (access_keymap): Handle ints beyond the ASCII range. + (store_in_keymap): Likewise. + (Faccessible_keymaps): Use meta_modifier. + Use vectors for the key sequences. + (Fwhere_is_internal): Use meta_modifier. + (append_key): Always return a vector. + + * lisp.h (Qrange_error, Qdomain_error, Qsingularity_error): + (Qoverflow_error, Qunderflow_error): New vars. + + * data.c (syms_of_data) [LISP_FLOAT_TYPE]: Define new error conditions: + Qarith_error, Qrange_error, Qdomain_error, + Qsingularity_error, Qoverflow_error, Qunderflow_error. + +1993-03-08 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * systty.h: Define HAVE_TCATTR based on HAVE_TERMIOS earlier. + (struct emacs_tty): Separate the struct decl + from the EMACS_..._TTY... macro definitions. + Use HAVE_TCATTR to decide whether to use `struct termios'. + + * xfns.c (Fx_pixel_width, Fx_pixel_height): Fns deleted. + (syms_of_xfns): Don't install them. + (x_user_set_name): Function deleted. + (x_char_height, x_char_width): New functions. + + * frame.c (Fframe_char_height, Fframe_char_width): + (Fframe_pixel_height, Fframe_pixel_width): + New functions, two versions of each. + [MULTI_FRAME] (syms_of_frame): Make them Lisp functions. + [!MULTI_FRAME] (syms_of_frame): Likewise. Also Fselected_frame. + + * xterm.c (XTread_socket): + Don't reverse the chars that XLookupString returns. Use all of them. + Save last 100 chars and keysyms in temp_buffer. + +1993-03-07 Roland McGrath (roland@churchy.gnu.ai.mit.edu) + + * buffer.c (syms_of_buffer): Make erase-buffer a disabled command. + +1993-03-07 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * ymakefile (keyboard.o): Depend on intervals.h. + (keymap.o): Depend on termhooks.h. + + * keyboard.c: Include intervals.h. + (read_key_sequence): Use get_local_map. + + * textprop.c (Fget_text_property): Use textget. + (Fnext_single_property_change): Likewise. + (Fprevious_single_property_change): Likewise. + + * intervals.c (textget): Handle categories. + (get_local_map): New function. + (verify_interval_modification): Call textget correctly. + + * textprop.c (syms_of_textprop): Set up Qcategory, Qlocal_map. + * intervals.h: Declare those vars. Declare textget, get_local_map. + + * keymap.c: Include termhooks.h. + (push_key_description): Handle all modifiers. + Handle large character codes. + (Fkey_description): Move the meta bit, if arg is string. + (Fsingle_key_description): Don't alter integer value. + Make tem long enough. + + * keyboard.c (read_key_sequence): + Use meta_modifier for meta keys when handling function_key_map. + + * lread.c (syms_of_lread): Set up Qascii_character. + (Fread_char, Fread_char_exclusive): Use that property + to convert symbols like tab, return, M-return,... to ASCII. + + * keyboard.c (follow_key): Downcase shift_modifier as well as ASCII. + (command_loop_1): Run pre-command-hook and post-command-hook. + Set this_command before running pre-command-hook. + (syms_of_keyboard): Set up vars for those hooks. + + * buffer.c (reset_buffer_local_variables): Reset mark_active. + (syms_of_buffer): New buffer-local var `mark-active'. + (init_buffer_once): Initialize mechanism for it. + +1993-03-06 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * dispnew.c (init_display): Initialize Vwindow_system. + + * ymakefile (SHELL): No need to set this twice; remove one. + + * emacs.c (main): SIGIOT isn't defined on all systems; don't set + its signal handler unless it is. + + * sysdep.c (init_baud_rate): Use input_fd, instead of fd; the + latter is undefined. + + * dired.c (NAMLEN): Never use d_nameln to get the length of the + directory entry's name; it is used inconsistently. Always call + strlen instead. + +1993-03-06 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * keyboard.c (syms_of_keyboard): Handle gaps in modifier_names. + (modifier_names): Reorder to match termhooks.h. + + * keyboard.c (parse_modifiers_uncached): Detect `s-', not `super-'. + (apply_modifiers_uncached): Make `s-', not `super-'. + + * lread.c: Include termhooks.h. + (read_escape): Handle \H, \A, \s. Use ..._modifier. + * ymakefile (lread.o): Depend on termhooks.h. + + * termhooks.h (alt_modifier, super_modifier, hyper_modifier): + (shift_modifier, ctrl_modifier, meta_modifier): + Renumber the bits. + * keyboard.c (make_lispy_event): For ASCII event, the ..._modifier + bits are the right bits to return. + + * keyboard.c (lispy_function_keys): Add codes starting at 0xff00 + and running through 0xffff. + + * xterm.c (x_alt_mod_mask, x_super_mod_mask, x_hyper_mod_mask): + New variables. + (x_find_modifier_meanings): Set them. + (x_convert_modifiers): Check for them. + (XTread_socket): Handle BackSpace, etc, function keys. + + * keyboard.c (read_char): Move metabit when fetching from string macro. + + * callint.c (check_mark): Error if mark is not active. + + * editfns.c (save_excursion_save): Save mark_active of buffer. + (save_excursion_restore): Restore mark_active of buffer. + Run activate-mark-hook if it's on, or deactivate-mark-hook + if it turns off. + (region_limit): Error if mark inactive, if transient-mark-mode. + + * insdel.c (prepare_to_modify_buffer): Set Vdeactivate_mark. + + * keyboard.c (command_loop_1): Clear Vdeactivate_mark before cmd. + Clear mark_active if command set Vdeactivate_mark. + Run deactivate-mark-hook at that time, or activate-mark-hook. + (syms_of_keyboard): Define variable deactivate-mark. + + * buffer.c (syms_of_buffer): New buffer-local var `mark-active'. + (init_buffer_once): Initialize mechanism for it. + + * buffer.h (struct buffer): New field mark_active. + + * intervals.c (verify_interval_modification): Handle insertions + specially. For non-insertions, check only the chars being changed. + `modification-hooks' property is now a list of functions. + (set_point): Ignore chars outside current restriction. + + * textprop.c (Qmodification_hooks): Renamed from Qmodification. + (syms_of_textprop): Changed accordingly. + + * keyboard.c (syms_of_keyboard): New lisp var unread-command-char. + (Finput_pending_p): Test unread_command_char. + (Fdiscard_input, quit_throw_to_read_char, init_keyboard): Set it. + (read_char): Fetch from it. + +1993-03-05 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * textprop.c (Fadd_text_properties): Initialize the modified flag. + Use a "for (;;)" loop at the end of the function, to indicate that + all exiting is taken care of inside the loop. + (Fremove_text_properties): Same. + +1993-03-05 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * ymakefile (LIB_MATH): Delete -lc, since duplicates LIB_STANDARD. + + * buffer.c (check_protected_fields): Variable deleted. + (syms_of_buffer): Delete vars buffer-field-list + and check-protected-fields. + * insdel.c (check_protected_fields): Delete decl. + + * disptab.h (DISP_INVIS_VECTOR): Renamed from DISP_INVIS_ROPE. + (DISP_CHAR_VECTOR): Renamed from DISP_CHAR_ROPE. + All callers changed. + + * xdisp.c (copy_rope): Expect FROM to be a vector. + (copy_part_of_rope): New function. + (display_string): Expect display table elts to be vectors. + * indent.c (current_column, Fmove_to_column, compute_motion): + Expect display table elts to be vectors. + + * alloc.c: (Fmake_rope, Frope_elt): Fns deleted. + + * lisp.h (CHAR_META, CHAR_SHIFT, CHAR_CTL): New macros. + + * lread.c (read_escape): Handle M-, C- and S- for new convention. + (read1): Move the meta bit to the right place for a string. + + * keyboard.c (Fthis_command_keys, Fread_key_sequence): + Fix calls to make_event_array. + + * macros.c (Fend_kbd_macro): Fix call to make_event_array. + + * alloc.c (make_event_array): Renamed from make_array. + Chars that fit in a string are 0...127 and their meta variants. + + * keyboard.c (make_lispy_event): Put meta and shift modifiers + into an integer. + (read_avail_input): Set the modifiers field in the events read. + (kbd_buffer_get_event): Pass thru integer event untruncated. + (read_char): Likewise. + (read_key_sequence, read_char): Only -1 means EOF. + (kbd_buffer_store_event): Don't ignore 0200 bit in quit char. + (follow_key): Use new meta bit flag. + + * xterm.c (XTread_socket): Set bufp->modifiers for all kinds of keys. + + * keymap.c (Flookup_key): Use 0x800000 as meta-bit if from vector. + (Fdefine_key): Likewise. + +1993-03-04 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * dgux.h (ELF): Handle this parameter. + [! COFF] (UNEXEC, USG_SHARED_LIBRARIES): New definitions. + (_BSD_TTY_FLAVOR): Don't define if already defined. + (C_COMPILER, LINKER, MAKE_COMMAND): New definitions. + +1993-03-04 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * keyboard.c (Fsuspend_emacs): Remember that `suspend-hooks' isn't + necessarily bound. + +1993-03-04 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * Makefile.in (xmakefile): Add missing quote. + +1992-03-03 Wilson H. Tien (wtien at urbana.mcd.mot.com) + + * unexelf.c (unexec): Move data2 section header up so all section + headers will be in ascending order. This will prevent the unexeced + emacs that being processed by other applications (such as strip) + to fail. + +1993-03-02 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * s/isc2-2.h (S_IFLNK): Add #undef. + (C_SWITCH_SYSTEM): Add conditional definition. + (NO_ASM, USE_UTIME, NO_X_DESTROY_DATABASE): Defined. + (LIB_STANDARD): Alternate definition if __GNUC__. + (SIGTSTP): #undef deleted. + (LIBS_SYSTEM): Define only if HAVE_X_WINDOWS. + * s/isc3-0.h: New file. + + * unexelf.c: Handle rounding of section boundaries. + (round_up): New function. + +1993-03-02 Karl Berry (karl@cs.umb.edu) + + * s/isc2-2.h (USG_SHARED_LIBRARIES, CLASH_DETECTION, NO_FCHMOD): + Define. + (HAVE_TIMEVAL): Do not define. + (NO_ASM): Only define once. + +1993-03-02 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * print.c (float_to_string): Define buf to be an unsigned char, to + match the data field of strings. + + * keyboard.c (kbd_buffer_get_event): Protect assignment to + Vlast_event_frame in a "#ifdef MULTI_FRAME" clause. + + * syntax.c (describe_syntax_1): Delete excess arg to describe_vector. + (check_syntax_table): Delete excess arg to wrong_type_argument. + +1993-03-01 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * buffer.c (buffer-undo-list): Doc fix. + + * xdisp.c (redisplay): Protect calls to request_sigio and + unrequest_sigio in "#ifdef SIGIO" clauses; these are not defined + + * cmds.c (Fnewline): Doc fix. + +1993-03-01 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * insdel.c (del_range): Update point before offset_intervals. + + * intervals.h: Don't include dispextern.h more than once. + (INTERVAL_VISIBLE_P): NILP test was backwards. + + * intervals.c (intervals_equal): Handle one arg null and other not. + (set_point): Considerable rewrite. Handle intervals both + before and after the old and new point values. + Redo handling of invisible intervals, and of motion hooks. + (textget): New function. + + * textprop.c (Fadd_text_properties, Fremove_text_properties): + Add len>0 as condition for main loop. + Abort if reach a null interval. + (Fset_text_properties): Abort if reach a null interval. + (Ftext_properties_at, Fget_text_property): + Return nil if POS is end of OBJECT. + (add_properties): Use NILP to test result of Fequal. + No longer inline. + (remove_properties): No longer inline. + (set_properties): Total rewrite as function. + (validate_interval_range): Don't alter *begin at end of buffer. + But do search for a position just before the end. + Return null for an empty string. + +1993-02-28 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * Makefile.in (emacs, temacs): Add @true to prevent Make confusion. + + * lread.c (read1--strings with properties case): + Detect end of list, and invalid syntax, using recursive read1 calls. + + * intervals.c (graft_intervals_into_buffer): + create_root_interval needs Lisp object arg. + Set tree to new root interval. + Don't test TREE_LENGTH if buffer has no intervals. + Rearrange code to copy properties so that it really + does merge the inserted ones into the inherited ones. + (traverse_intervals): Pass `arg' on recursive calls. + (split_interval_left): Use new_length as basis for length of new. + + * print.c (print--string case): + Any non-null interval means print intervals. + Get rid of var obj1; just use obj. + + * textprop.c (validate_interval_range): Allow 0 as position in string. + Add 1 to specified string positions. + (Fprevious_single_property_change): Subtract 1 if object is string. + (Fnext_single_property_change): Likewise. + (Fprevious_property_change, Fnext_property_change): Likewise. + + * xterm.c (x_do_pending_expose, XTframe_rehighlight): + (x_window_to_scrollbar): Use XGCTYPE. + +1993-02-28 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + Use the term `scroll bar', instead of `scrollbar'. + * alloc.c, frame.c, frame.h, indent.c, keyboard.c, keyboard.h, + lisp.h, term.c, termhooks.h, window.c, window.h, xdisp.c, xfns.c, + xterm.c, xterm.h: Terminology changed. + + Don't generate switch-frame events by checking Vlast_event_frame; + use a separate variable for that bookkeeping. In order to + generate them properly, we may need to fiddle with it. + * keyboard.c (internal_last_event_frame): New variable. + (command_loop_1): Check internal_last_event_frame, not + Vlast_event_frame. + (read_char, kbd_buffer_store_event): Set both Vlast_event_frame and + internal_last_event_frame. + (kbd_buffer_get_event): Check internal_last_event_frame to decide + whether to generate a switch-frame event. Set Vlast_event_frame + after each event. + (init_keyboard): Initialize both Vlast_event_frame and + internal_last_event_frame. + * keyboard.h (internal_last_event_frame): Add extern declaration + for this. + * frame.c (Vlast_event_frame): Remove external declaration for + this. + (Fselect_frame): Set internal_last_event_frame to Qnil to force a + switch-frame event, not Vlast_event_frame; the latter is supposed + to convey information to the user. + + * keyboard.c (syms_of_keyboard): Doc fix for unread_command_events. + +1993-02-26 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * keyboard.c (syms_of_keyboard): Doc fix. + +1993-02-26 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * ymakefile (LIBES): Exchange the order of LIB_MATH and + LIB_STANDARD, to avoid duplicated symbols under SunOS. + + * buffer.c (syms_of_buffer): Add the extra argument to the + commented-out DEFVAR_PER_BUFFER for `mode-line-format', so + make-docfile will find the docstring properly. + +1993-02-25 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * ymakefile (intervals.o): Dep on intervals.c, not textprop.c. + + * textprop.c (remove_properties): Call modify_buffer. + (add_properties): Likewise. + + * undo.c (record_property_change): Typo in last change. + + * cmds.c (syms_of_cmds): Typo in last change. + + * print.c (print): Never declare OBJ arg as `register'. + Special handling for strings with intervals. + (print_intervals): New function. + * lread.c (read1): Handle reading strings with properties. + + * intervals.c (traverse_intervals): New arg ARG. + * alloc.c (mark_interval): Add ignored arg. + (mark_interval_tree): Pass new arg to traverse_intervals. + +1993-02-24 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * xterm.c (x_window_to_scrollbar, x_scrollbar_expose, + x_scrollbar_handle_click, x_scrollbar_note_movement): Remember + that these can be called during GC; we have to ignore mark bits. + * lisp.h (GC_NILP, GC_EQ): New macros to help with that. + + * print.c (float_to_string): Define buf to be an unsigned char, to + match the data field of strings. + + * lisp.h (RETURN_UNGCPRO): Remove "do ... while (0)" wrapper + around macro. + + * data.c (Fstring_to_number): Declare p to be an unsigned char, to + match the data field of strings. + + * data.c (Fstring_to_number): Just skip tabs and spaces; don't use + the <ctype.h> macros. The <ctype.h> stuff apparently varies from + locale to locale more than we'd like. Don't include <ctype.h>. + +1993-02-24 Roland McGrath (roland@churchy.gnu.ai.mit.edu) + + * buffer.c (Ferase_buffer): Added interactive spec. + +1993-02-24 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * undo.c (Fprimitive_undo): Handle property-change undo entry. + (record_property_change): New function. + + * textprop.c (Fadd_text_properties): Pass new arg to add_properties. + (Fremove_text_properties): Likewise. + (add_properties, remove_properties): New arg OBJECT. Record undo info. + (Fput_text_property): New function. + + * buffer.c (syms_of_buffer): Doc fix. + + * cmds.c (syms_of_cmds): New var `overwrite-binary-mode'. + (internal_self_insert): Handle that var. + +1993-02-23 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * keyboard.c (read_avail_input): Args to `kill' were backwards. + +1993-02-23 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * alloc.c (make_pure_float): Assure that PUREBEG + pureptr is + aligned, not pureptr itself. + + * emacs.c (fatal_error_signal): Unblock the signal before we try + to deliver it to ourselves. #include "syssignal.h" to get the + right definitions. + + * abbrev.c (Fexpand_abbrev): Only copy the text we're going to + expand - from wordstart to wordend, not from wordstart to point - + into the buffer. There might be non-word text between wordend and + point. + +1993-02-23 Richard Stallman (rms@geech.gnu.ai.mit.edu) + + * unexec.c (adjust_lnnoptrs): Handle symentry.n_type == 0x2400. + (make_hdr) [USG_SHARED_LIBRARIES]: Set bias using bss_start. + +1993-02-22 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * process.c: Make sure we don't miss processes exiting, by having + the sigchld handler clear *input_available_clear_time. + (wait_reading_process_input): Check for process activity after + setting the timeout and calling set_waiting_for_input. + (sigchld_handler): If the process which has exited is one we care + about, clear *input_available_clear_time. + + * frame.c (Fselect_frame): Set Vlast_event_frame to Qnil after + switching frames, to make sure we'll get a switch-frame event. + (Vlast_event_frame): Add external declaration for this here. + + * alloc.c (make_pure_float): Align pureptr according to __alignof, + if it's available, or sizeof (struct Lisp_Float) if it's not. + + * .gdbinit (xprocess): New command. + + * floatfns.c (Flogb): Always implement this by calling Flog, even + on non-USG systems, which supposedly have a logb function. + (Fround): Always implement this by calling floor, even on systems + that have rint. + + * process.c (process_send_signal): Use TERMIOS functions in + preference to BSD ioctls. Some systems attempt to provide the BSD + functions for backward compatibility, and get it wrong. + + * data.c (Fstring_to_number): Skip initial spaces, to make Emacs + lisp parse consistently on different operating systems. + #include <ctype.h> to help with this. + + * data.c (Fstring_to_int): Rename this to Fstring_to_number, since + it parses floats as well as integers. Fix docstring. + (syms_of_data): Fix defsubr. + (wrong_type_argument): Change use. + (Fint_to_string): Doc fix. + * lisp.h (Fstring_to_int): Change extern declaration. + +1993-02-22 Charles Hannum (mycroft@hal.gnu.ai.mit.edu) + + * ibmrs6000.h (C_ALLOCA, STACK_DIRECTION): Only define if HAVE_ALLOCA + is not defined. + (X_DEFAULT_FONT): Change to `fixed', as `Rom14.500' only works on the + console. + + * aix3-1.h: Changes from 18.58. + (HAVE_TERMIOS): Changed from HAVE_TERMIO. + (unix): Define. + + * sysdep.c (child_setup_tty): Recognize HAVE_TERMIOS as well as + HAVE_TERMIO. + + * xrdb.c (getuid): Remove declaration. + + * systty.h [HAVE_TERMIOS]: Include fcntl.h. + + * systime.h [_AIX]: Move test outside of previous #if. + (EMACS_GET_TZ_OFFSET) [USG]: Don't declare twice. Prefer tzset. + + * keyboard.c (init_keyboard): Recognize HAVE_TERMIOS as well as + HAVE_TERMIO. + + * aix3-2.h: New file. Specifies difference between AIX 3.1 and 3.2. + +1993-02-20 Richard Stallman (rms@wookumz.gnu.ai.mit.edu) + + * keyboard.c (Fsuspend_emacs): Make tem not register. + + * syntax.c (Fforward_comment): New function. + + * search.c (Fskip_syntax_backward): New function. + (Fskip_syntax_forward): Likewise. + (skip_chars): New argument syntaxp. + + * alloc.c (Fmemory_limit): Doc fix. + +1993-02-19 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * keyboard.c (Fsuspend_emacs): Rename suspend-hook to suspend-hooks + and run it manually. + + * keymap.c (describe_map): Call Fkey_description before build_string. + +1993-02-18 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * keyboard.c (Fopen_dribble_file): Doc fix. + + * lread.c (syms_of_lread): Doc fix. + +1993-02-18 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * textprop.c (Fget_text_property): Fix typo in function's declaration. + + * floatfns.c (IN_FLOAT): Make this work properly when SIGTYPE is void. + + * alloc.c: Add description lines to the top of each page. + + * alloc.c (mark_interval_tree): Remove spurious & in front of + function name. + + * alloc.c (UNMARK_BALANCE_INTERVALS): Fix to accomodate compilers + other than GCC, which do not allow casts on the LHS of an + assignment. + + * config.h.in: #define USE_TEXT_PROPERTIES by default. + + * alloc.c (mark_object, mark_buffer): Remove some unused + variables. + + * buffer.c (Fswitch_to_buffer): Pass the correct number of + arguments to Fnext_window. + + * buffer.c (Fbury_buffer): Pass the correct number of arguments to + Fother_buffer. + + * bytecode.c (Fbyte_code): Pass the correct number of arguments to + temp_output_buffer_show. + + * callint.c (Fcall_interactively): Pass the correct number of + arguments to wrong_type_argument. + * casefiddle.c (caseify_object): Same. + * casetab.c (check_case_table): Same. + * search.c (Fstore_match_data): Same. + * syntax.c (check_syntax_table): Same. + + * callproc.c (delete_temp_file): Declare this to return + Lisp_Object, to smooth type-checking. + + * data.c (wrong_type_argument): Pass the correct number of + arguments to Fstring_to_int. + + * data.c (arithcompare): Add a default case which aborts, just to + make me happy. + + * dispnew.c (sit_for): Pass the correct number of arguments to + gobble_input. + + * editfns.c (Fmessage): Don't forget to return a value when + args[0] == Qnil. + + * fns.c (Fequal): Call internal_equal to recurse on elements of + lists and vectors, not Fequal. + + * frame.c (Fdelete_frame): If FRAME is a dead frame, return Qnil, + not nothing. + + * keyboard.c (echo_char): Apply XINT to c before passing it to + push_key_description. + + * keyboard.c (recursive_edit_1, command_loop_1): Pass the proper + number of arguments to unbind_to. + * lread.c (Feval_buffer): Same. + * window.c (Fscroll_other_window): Same. + + * keyboard.c (command_loop_1): Apply XINT to c before passing it + to internal_self_insert and direct_output_for_insert. + + * keyboard.c (make_lispy_movement): Rename the variable `part' + declared in the block handling scrollbar movement to `part_sym', + to avoid potential conflicts with the argument named `part'. + Apparently the semantics of expressions like this are unclear. + + * keyboard.c (Fread_key_sequence): Backslash the newlines in this + docstring. + * textprop.c (Fget_text_property): Same. + + * keymap.c (Fdescribe_vector): Pass the proper number of arguments + to describe_vector. + * syntax.c (describe_syntax_1): Same. + + * minibuf.c (Fdisplay_completion_list): Pass the proper number of + arguments to Flength. + * xmenu.c (list_of_items): Same. + + * window.c (Fset_window_configuration): Pass the proper number of + arguments to Fselect_frame. + + * xfns.c (x_set_icon_type): Pass the proper number of arguments to + x_bitmap_icon. + + * xterm.c (XTread_socket): Pass the proper number of arguments to + construct_mouse_click. + + * config.h.in (HAVE_CONST): New macro. If it's not #defined, #define + const to be the empty string. + + * config.h.in: If we're not __STDC__, define volatile to be the + empty string. + + * buffer.h: Remove code which #includes "undo.h" if lint is + defined. undo.h no longer exists. + + * buffer.c (buffer_slot_type_mismatch): Make symbol_name an + unsigned char *, to match the type of a string's data. + +1993-02-17 Michael I Bushnell (mib@geech.gnu.ai.mit.edu) + + * process.c (Fstart_process): Jimb's change of December 11 + had a misplaced paren. This only became apparent because of + jimb's change on February 8 to Fexpand_file_name. + * callproc.c (Fcall_process): Ditto. + +1993-02-17 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * callproc.c (init_callproc): Move the initialization of + Vprocess_environment to its own function. + (set_process_environment): This is that. + * emacs.c (main): Call set_process_environment earlier than + init_callproc. + +1993-02-14 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * buffer.c (Frename_buffer): Make prefix arg set UNIQUE. + +1993-02-14 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * xterm.c (x_set_window_size): Call change_frame_size instead of + just setting the `rows' and `cols' members of the frame, and + leaving the window tree in complete disarray. + + * dispnew.c (remake_frame_glyphs): When re-allocating the frame's + message buffer when echo_area_glyphs is pointing at it, relocate + echo_area_glyphs too. Same for previous_echo_glyphs. + * window.h (previous_echo_glyphs): Add extern declaration for this. + + * frame.c (Fframe_parameters): Report the `minibuffer' parameter of + minibufferless frames as nil, not `none'. + (Qnone): Remove declaration and initialization for this. It's not + needed anymore. + * xfns.c (Qnone): Add them here; we still accept "none" as a valid + value for the `minibuffer' parameter. + + * xfns.c (x_frame_params): Remember that the parameters are called + "auto-raise" and "auto-lower", not "autoraise" and "autolower". + + * xdisp.c (message): Set echo_frame to the frame whose message buf + we want to use, not to the message buf itself. + +1993-02-13 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * textprop.c (Fadd_text_properties): Put OBJECT arg last. + Make it optional. + (Fset_text_properties, Fremove_text_properties): Likewise. + (Fnext_single_property_change, Fprevious_single_property_change): + (Fnext_property_change, Fprevious_property_change): Likewise. + (Ferase_text_properties): #if 0. + (Fget_text_property): New function. + + * s/irix4-0.h (C_SWITCH_MACHINE): Don't define if GCC. + +1993-02-13 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * s/usg5-4.h: #include "usg5-3.h", not "s-usg5-3.h". + +1993-02-11 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * xterm.c (x_io_error_quitter): New function. + (x_error_quitter): Note that this is only used for protocol + errors now, not I/O errors. + (x_term_init): Set the I/O error handler to x_io_error_quitter. + +1993-02-11 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * editfns.c (Finsert_buffer_substring): Proper error for non-ex buffer. + (Fcompare_buffer_substrings): Likewise. + +1993-02-10 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * fileio.c (Fdo_auto_save): If NO_MESSAGE is non-nil, don't tell + users that buffers have shrunk a lot. This is called when Emacs + is crashing, so we don't want to run any code that isn't + absolutely necessary. Also, autosave buffers which don't have + specially handled autosave file names first. + +1993-02-10 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * editfns.c (Fcompare_buffer_substrings): Ignore case + if case-fold-search is non-nil. + +1993-02-08 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * keymap.c (Flookup_key, Fkey_binding, Flocal_key_binding, + Fglobal_key_binding, Fminor_mode_key_binding): Add a new optional + argument ACCEPT_DEFAULT, to control whether this function sees + bindings for t. + (Fwhere_is_internal, describe_map_tree, describe_map_2, + describe_vector): Pass the proper arguments to Flookup_key. + + * fileio.c (Fexpand_file_name): Pass DEFALT through + Fexpand_file_name before using it. + + * fileio.c (Fexpand_file_name): Doc fix. + +1993-02-07 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * xdisp.c (message): Use the message buffer of the frame we're + going to display the message on to format the message, not that of + the selected frame. + +1993-02-07 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * Makefile (emacs, temacs): Add no-op commands to these rules. + + * dispnew.c (char_ins_del_cost): Use FRAME_WIDTH, not FRAME_HEIGHT. + + * editfns.c (Fcompare_buffer_substrings): New function. + +1993-02-06 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * keyboard.c (extra_keyboard_modifiers): New Lisp var. + (read_char): Support ctl and meta bits in extra_keyboard_modifiers. + * xterm.c (XTread_socket): Support extra_keyboard_modifiers. + +1993-01-29 Jim Blandy (jimb@geech.gnu.ai.mit.edu) + + * window.c (Fscroll_left, Fscroll_right): Don't forget to apply + XWINDOW to selected_window before passing it to window_internal_width. + + * xmenu.c (Fx_popup_menu): Don't forget to turn the frame-relative + coordinates for the menu position into root-window-relative + coordinates. + + * lread.c (read1): Although digits followed by a '.' are an + integer, a single . by itself (like, say, \.) should be a symbol. + +1993-01-25 Jim Blandy (jimb@geech.gnu.ai.mit.edu) + + * fns.c (internal_equal): Protect the clause for comparing numbers + of different types with a "#ifdef LISP_FLOAT_TYPE". + +1993-01-25 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * s/hpux8.h [__GNUC__] (LD_SWITCH_SYSTEM): Remove -a. + [__GNUC__] (ORDINARY_LINK): Defined. + + * m/sparc.h [TERMINFO]: Don't define LIBS_TERMCAP. + +1993-01-25 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + `live-frame-p' has become `frame-live-p'. + * frame.c (Qlive_frame_p): Renamed to Qframe_live_p. + (Flive_frame_p): Renamed to Fframe_live_p. + (syms_of_frame): Defsubrs and initializations adjusted. + * frame.h (CHECK_LIVE_FRAME): Use Qframe_live_p, not Qlive_frame_p. + (Qlive_frame_p): Changed extern declaration to Qframe_live_p. + + * lread.c (read1): Treat a string of digits ending in a period as + an integer. + + Turn `first-change-function' into `first-change-hook'. + * buffer.c (Vfirst_change_function): Renamed to Vfirst_change_hook. + (Qfirst_change_hook): New symbol, for passing to Vrun_hooks. + (syms_of_buffer): Change DEFVAR; initialize Qfirst_change_hook. + * buffer.h (Vfirst_change_function): Renamed to Vfirst_change_hook. + (Qfirst_change_hook): Added declaration. + * insdel.c (signal_before_change): Change references to + Vfirst_change_function, and apply Vrun_hooks to + Qfirst_change_hook, instead of just calling Vfirst_change_function + directly. + + x-selection-value has been renamed to x-selection. + x-own-selection has been renamed to x-set-selection, and the order + of its arguments has been reversed, for consistency with other + lisp functions like put and aset. + * xselect.c (Fx_own_selection): Rename to Fx_set_selection, + reverse the order of the args, and therefore make the type + non-optional. Doc fix. + (Fx_selection_value): Rename to Fx_selection; make the type + argument non-optional, for symmetry with Fx_set_selection. Doc + fix. + (syms_of_xselect): Adjusted. + + * xselect.c (Fx_own_selection, Fx_selection_value): Remove "#if + 0"'ed code which made cut buffers look like a special selection + type. + + * xfns.c (Vx_selection_value): Removed extern declaration for + this; it's never used. + + * data.c (Fcompiled_function_p): Renamed to Fbyte_code_function_p. + (syms_of_data): Adjusted. + + * data.c (Fnumberp, Fnumber_or_marker_p): Use the NUMBERP macro, + instead of writing it out. + + * fns.c (internal_equal): If the operands are both numbers, + compare them numerically, so that (equal 1.0 1) => t. + Compare Lisp_Compiled objects like vectors. + + Add lisp functions to raise and lower frames. + * termhooks.h (frame_raise_lower_hook): New hook. + * term.c (frame_raise_lower_hook): Define it. + * frame.c (Fframe_to_front, Fframe_to_back): New functions. + (syms_of_frame): defsubr them. + * xterm.c (XTframe_raise_lower): New function. + (x_term_init): Set frame_raise_lower_hook to XTframe_raise_lower. + + * frame.c: Doc fixes. + +1993-01-24 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + Make the cursor style a frame parameter. + * xterm.h (struct x_display): Rename the `text_cursor_kind' member + to `current_cursor'; add new member `desired_cursor'. + (FRAME_DESIRED_CURSOR): New accessor for new member. + * xterm.c (x_display_bar_cursor): Rewritten so as not to damage + the characters the cursor is displayed over, and to handle + transitions between box and bar styles. + (x_display_bar_cursor, x_display_box_cursor): Use current_cursor + instead of text_cursor_kind. + (Vbar_cursor): Delete external declaration. + (x_display_cursor): Use the FRAME_DESIRED_CURSOR accessor instead + of Vbar_cursor to decide how to draw the cursor. + * xfns.c (Vbar_cursor): Remove definition. + (Qbar, Qbox, Qcursor_type): New symbols. + (syms_of_xfns): Init and staticpro them; remove DEFVAR for + Vbar_cursor. + (x_set_cursor_type): New setter. + (x_frame_parms): Add it to the list. + (Fx_create_frame): Get default values for the cursor type. + + * frame.c (Fmouse_position): Pass the appropriate arguments to + *mouse_position_hook; the protocol was changed, but this caller + wasn't fixed. + + * xterm.c (XTclear_frame): Call x_scrollbar_clear. + (x_scrollbar_clear): New function. + + * xterm.c (XTflash): Totally rewritten. Only defined if + HAVE_TIMEVAL and HAVE_SELECT are defined, since we use select for + our timing. + (timeval_subtract): New function, to help XTflash. + (x_invert_frame): Removed. This didn't work anyway. + (XTring_bell): Remove "#if 0" around call to XTflash, and remove + calls to x_invert_frame. If both HAVE_TIMEVAL and HAVE_SELECT + aren't defined, then just do the ordinary beep. + + * window.c (Fscroll_other_window): Prefer windows on the selected + frame, then look for windows on other visible frames. + + * keyboard.c (Fmouse_click_p): Removed; with the 'e' spec, this + isn't necessary anymore. + (syms_of_keyboard): Remove defsubr for it. + * keyboard.h (Fmouse_click_p): Remove extern declaration for it. + + * xfns.c (gray_bits): Remove this declaration; the same data is in + <X11/bitmaps/gray>. #include that instead. + [not HAVE_X11] (x_set_border_pixel): Use gray_width and + gray_height, instead of assuming that the bitmap is 16x16. + (x_make_gc): Instead of creating a pixmap and then calling + XPutImage to make it into a grey stipple, just call + XCreatePixmapFromBitmapData to do it all at once. + + * xterm.c (x_text_icon): Move the request for font information + into the "not HAVE_X11" part of the function; the X11 code doesn't + need this. + + * xterm.c (x_wm_set_icon_pixmap): Instead of setting the + icon_pixmap to None, just remove IconPixmapHint from the flags of + the XWMHints structure. + + * window.c (Fprevious_frame): Use prev_frame when we get to the + end of the current frame, not next_frame. Doc fix. + * frame.c (prev_frame): Remove "#if 0" from this function. It + turns out we do need it, to make prev_frame work right. + + * frame.c (next_frame): Check that FRAME is a live frame. + + * frame.c (Fselect_frame): Remove "#ifdef MULTI_FRAME" clause + around the code which calls Ffocus_frame; this code is already + inside an "#ifdef MULTI_FRAME" clause. + (next_frame, prev_frame, Fnext_frame): For the same reasons, + remove the "#ifdef MULTI_FRAME" clause around these functions. + + unread-command-event has been replaced by unread-command-events. + * commands.h (unread_command_event): Change extern declaration. + * keyboard.c (unread_command_event): Change the definition. + (syms_of_keyboard): Change DEFVAR, and adjust the docstring. + (command_loop_1, read_char, Finput_pending, Fdiscard_input, + quit_throw_to_read_char, init_keyboard): Change to use + unread_command_events, with the new semantics. + * lread.c (read_char): Same. + * minibuf.c (temp_echo_area_glyphs): Same. + * xterm.c (unread_command_event): Remove external declaration for + this; it is only used by obsolete code. + + * Makefile.in: Some makes can't handle comments in the middle of + commands; move them to before the whole rule. + +1993-01-21 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * keyboard.c (make_lispy_event): When handling a mouse click event + on a window, change x and y from screen coordinates to window + coordinates even when the click isn't in the text area. + + * xterm.c (x_scrollbar_create): Remove code which asks for + EastGravity for windows; Emacs can't correctly deal with them + moving around unexpectedly. + + * xterm.c (XTread_socket): Minor reformatting. + + * xterm.c (x_set_window_size): Always mark the frame garbaged. + + * window.c (Vmouse_window): Variable removed; it can't be handled + properly without race conditions, and the events give you all the + information you need anyway. + (syms_of_window): Remove DEFVAR. + * callint.c (Fcall_interactively): Change the `@' spec to select + the window of the first parameterized event in the key sequence + which invoked the command, instead of using Vmouse_window, which + isn't even updated anymore. Adjust the documentation + accordingly. + +1993-01-20 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * xterm.c (x_scrollbar_create): Set the scrollbars to use + EastGravity. + + * keyboard.c (make_lispy_event): Deal with button releases with no + stored down-going position. Make sure we always store a Qnil in + the right button_down_location element after using it. + +1993-01-19 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * frame.c (Fdelete_frame): Clear the frame's display after calling + the window-system-dependent frame destruction routine. We + no longer need to pass the display as a separate argument to + x_destroy_window. + * xterm.c (x_destroy_window): Put the code which clears out f's + display here, right after we free the storage it points to. Put + everything, including the code which clears x_focus_frame and + x_highlight_frame, inside the BLOCK/UNBLOCK_INPUT pair. + + * dispnew.c (Fredraw_display): Undo change of Jan 12; redraw only + frames whose garbaged flag is set. The change to + FRAME_SAMPLE_VISIBILITY on Jan 14 should address the problem better. + + keyboard.c (read_char_menu_prompt): Test HAVE_X_WINDOWS, not + HAVE_X_WINDOW. + + The CPP symbol indicating whether or not we have mouse menu + support under X Windows is HAVE_X_MENU, not not NO_X_MENU. + * emacs.c (main): Test HAVE_X_MENU, instead of NO_X_MENU. + * keyboard.c (read_char_menu_prompt): Same. + * ymakefile: Same. + + * keyboard.c (read_char, read_char_menu_prompt): Use the + EVENT_HAS_PARAMETERS macro from keyboard.h, instead of writing it + out. + + * keyboard.c (read_char_menu_prompt): Doc fix. + + * keyboard.c (read_char_menu_prompt): Fix test for no menus; + comparing name to Qnil doesn't work if we are called with no maps. + + * keymap.c (Fdefine_key): Call Fkey_description to make the string + to use in the error message. + +1993-01-18 Roland McGrath (roland@churchy.gnu.ai.mit.edu) + + * window.c (Fdisplay_buffer): Doc fix. + +1993-01-16 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * xterm.c (x_window_to_scrollbar): Search frames' + condemned_scrollbars list as well; input might arrive during + redisplay. + (x_scrollbar_report_motion): Don't forget to BLOCK_INPUT. + (XTjudge_scrollbars): Clear the condemned scrollbar list before + traversing it, so we don't try to process an event on a scrollbar + we've killed. + +1993-01-15 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * keyboard.c (Frecent_keys): Doc fix. + +1993-01-14 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * window.c (Fwindow_at): Doc fix. + +1993-01-14 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * xterm.c (x_scrollbar_create): Include PointerMotionHintMask in + the event mask for scrollbars. + + * dispnew.c (Fredraw_display): DEFUN was missing a closing paren. + + * term.c (set_vertical_scrollbar_hook, condemn_scrollbars_hook, + redeem_scrollbar_hook, judge_scrollbars_hook): Removed dumbo + "externs" from these. They're supposed to be real definitions. + + * .gdbinit: Add "-geometry +0+0" to default args. + (xscrollbar): New command. + + Make scrollbar structures into lisp objects, so that they can be + GC'd; this allows windows and scrollbars can refer to each other + without worrying about dangling pointers. + * xterm.h (struct x_display): vertical_scrollbars and + judge_timestamp members deleted. + (struct scrollbar): Redesigned to be a template for a Lisp_Vector. + (SCROLLBAR_VEC_SIZE, XSCROLLBAR, SCROLLBAR_PACK, SCROLLBAR_UNPACK, + SCROLLBAR_X_WINDOW, SET_SCROLLBAR_X_WINDOW, + VERTICAL_SCROLLBAR_INSIDE_WIDTH, VERTICAL_SCROLLBAR_TOP_RANGE, + VERTICAL_SCROLLBAR_INSIDE_HEIGHT, VERTICAL_SCROLLBAR_MIN_HANDLE): + New macros, to help deal with the lispy structures, and deal with + the graphics. + * frame.h (WINDOW_VERTICAL_SCROLLBAR): Macro deleted. + (struct frame): New fields `scrollbars' and + `condemned_scrollbars', for use by the scrollbar implementation. + [MULTI_FRAME and not MULTI_FRAME] (FRAME_SCROLLBARS, + FRAME_CONDEMNED_SCROLLBARS): Accessors for the new field. + * window.h (struct window): Doc fix for vertical_scrollbar field. + * frame.c (make_frame): Initialize the `scrollbars' and + `condemned_scrollbars' fields of the new frame. + * alloc.c (mark_object): Mark the `scrollbars' and + `condemned_scrollbars' slots of frames. + * xterm.c (x_window_to_scrollbar): Scrollbars are chained on + frames' scrollbar field, not their x.display->vertical_scrollbars + field. + (x_scrollbar_create, x_scrollbar_set_handle, x_scrollbar_move, + x_scrollbar_remove, XTset_vertical_scrollbar, + XTcondemn_scrollbars, XTredeem_scrollbar, XTjudge_scrollbars, + x_scrollbar_expose, x_scrollbar_handle_click, + x_scrollbar_handle_motion): Substantially rewritten to correct + typos and brainos, and to accomodate the lispy structures. + + * xterm.c (x_scrollbar_background_expose): Function deleted; we + don't want anything in the background there after all. + (XTread_socket): Don't call x_scrollbar_background_expose. We + don't care. + + * frame.h (FRAME_SAMPLE_VISIBILITY): Make sure frame is marked as + garbaged whenever it goes from invisible to visible. + * dispextern.h (frame_garbaged): Move extern declaration from here... + * frame.h (frame_garbaged): ... to here. The FRAME_SAMPLE_VISIBILITY + macro uses it now, and this seems to be just as modular. Make a + new page, just for this and message_buf_print. + (struct frame): Doc fix for the `visible' field. + * process.c: #include "frame.h" instead of "dispextern.h"; the + only thing we care about from it is the frame_garbaged + declaration. + * ymakefile: Note dependency change. + + * xfns.c (Fx_create_frame): After mapping the frame, call + SET_FRAME_GARBAGED, not just plain FRAME_GARBAGED. + + * window.c (window_internal_width): New function, which accounts + for scrollbars if present. + * lisp.h (window_internal_height, window_internal_width): Add + extern declarations for these. + * dispnew.c (direct_output_for_insert, direct_output_forward_char, + buffer_posn_from_coords): Use window_internal_width instead of + writing out its definition. + * indent.c (compute_motion): Doc fix; mention scrollbars and + window_internal_width. + (pos_tab_offset, Fvertical_motion): Use window_internal_width + instead of writing it out. + * window.c (Fpos_visible_in_window_p, Fwindow_width, Fscroll_left, + Fscroll_right): Same. + * xdisp.c (redisplay, try_window, try_window_id, + display_text_line): Same. + + * xdisp.c (display_string): Add new variable `f', to be W's + frame. Use it to set desired_glyphs, and to get the frame's width + to decide whether or not to draw vertical bars. + + * xdisp.c (display_text_line): If we're using vertical scrollbars, + don't draw the vertical bars separating side-by-side windows. + (display_string): Same thing. Draw spaces to fill in the part of + the mode line that is under the scrollbar in partial-width + windows. + + * xfns.c (Qvertical_scrollbars): New symbol. Use it as the name + of the parameter which decides whether or not the frame has + scrollbars, instead of Qvertical_scrollbar. + (Fx_create_frame): Adjusted accordingly. + (syms_of_xfns): Initialize and staticpro Qvertical_scrollbars. + (x_set_vertical_scrollbar): Renamed to x_set_vertical_scrollbars. + (x_frame_parms): Adjusted accordingly. + + * xterm.h (CHAR_TO_PIXEL_WIDTH, CHAR_TO_PIXEL_HEIGHT, + PIXEL_TO_CHAR_WIDTH, PIXEL_TO_CHAR_HEIGHT): Rewritten, using: + (CHAR_TO_PIXEL_ROW, CHAR_TO_PIXEL_COL, PIXEL_TO_CHAR_ROW, + PIXEL_TO_CHAR_COL): New macros. + * xfns.c [not HAVE_X11] (Fx_create_frame): Use the + PIXEL_TO_CHAR_{HEIGHT,WIDTH} macros to figure the frame's + character size, and the CHAR_TO_PIXEL* macros for vice versa. + * xterm.c (XTwrite_glyphs, XTclear_end_of_line, stufflines, + scraplines, dumprectangle, pixel_to_glyph_coords, x_draw_box, + clear_cursor, x_display_bar_cursor, x_draw_single_glyph, + x_set_mouse_position): Use the CHAR_TO_PIXEL_* macros. + + * xterm.c (x_wm_set_size_hint): The max_width and max_height + members of the size_hints are expressed in pixels, not columns. + + * xterm.c (x_set_window_size): Remove ibw var; it's not used. + Set FRAME_WIDTH (f) to cols instead of rows. Duh. + + * xterm.c (pixel_to_glyph_coords): Properly set *bounds to the + character cell bounding the position, even when the position is + off the frame. + + * xfns.c (x_set_name): To request that the modelines be redrawn, + execute the statement "update_mode_lines = 1;" instead of the + silly statement "update_mode_lines;". + + * xfns.c (x_set_vertical_scrollbars): Don't try to set the + X window's size if the frame's X window hasn't been created yet. + + * xfns.c (x_figure_window_size): Set the frame's + vertical_scrollbar_extra field before trying to calculate its + pixel dimensions. + + * xfns.c (x_window): When calling x_implicitly_set_name for the + sake of drawing the name for the first time, remember to clear and + set the frame's explicit_name member as well as its name member. + (Fx_create_frame): Set the frame's explicit_name member if the + user specified the name explicitly. + + * xdisp.c (display_text_line): Use the usable internal width of + the window, as calculated above, as the limit on the length of the + overlay arrow's image, rather than using the window's width field, + less one. + + * xdisp.c (redisplay): Call condemn_scrollbars_hook and + judge_scrollbars_hook whenever they are set, not just when the + frame has vertical scrollbars. + + * termhooks.h (mouse_position_hook): Doc fix. + (set_vertical_scrollbar_hook): This doesn't return anything any + more, and doesn't take a struct scrollbar * argument any more. + (condemn_scrollbars_hook, redeem_scrollbar_hook, + judge_scrollbars_hook): Doc fixes. + * term.c (mouse_position_hook): Doc fix. + (set_vertical_scrollbar_hook): This doesn't return + anything any more. Doc fixes. + * keyboard.c (kbd_buffer_get_event): Receive the scrollbar's + window from *mouse_position_hook and pass it to + make_lispy_movement, instead of working with a pointer to a struct + scrollbar. + (make_lispy_event): We don't need a window_from_scrollbar function + anymore; we are given the window directly in *EVENT. + Unify the code which generates + text-area mouse clicks and scrollbar clicks; use the same code to + distinguish clicks from drags on the scrollbar as in the text area. + Distinguish clicks from drags by storing a copy of the lispy + position list returned as part of the event. + (button_down_location): Make this a lisp vector, rather than an + array of random structures. + (struct mouse_position): Remove this; it's been replaced by a lisp + list. + (make_lispy_movement): Accept the scrollbar's window as a + parameter, rather than the scrollbar itself. + If FRAME is zero, assume that the other arguments are garbage. + (syms_of_keyboard): No need to staticpro each window of + button_down_location now; just initialize and staticpro it. + * window.c (window_from_scrollbar): Function deleted; no longer + needed. + * xdisp.c (redisplay_window): Just pass the window to + set_vertical_scrollbar hook; don't pass the scrollbar object too. + * xterm.c (XTmouse_position): Don't return a pointer to the + scrollbar for scrollbar motion; instead, return the scrollbar's + window. + + * xterm.c (XTmouse_position): Entirely rewritten, using + XTranslateCoordinates. Call x_scrollbar_report_motion to handle + scrollbar movement events. + (x_scrollbar_report_motion): New function, to help out + XTmouse_position. + + * keyboard.c (apply_modifiers): Don't assume that the Qevent_kind + property of BASE is set when we first create the new modified + symbol. Check that the Qevent_kind property is properly set each + time we return any symbol. + + * termhooks.h (struct input_event): Replace the frame member with + a Lisp_Object member by the name of frame_or_window. Doc fixes. + Remove the scrollbar member; instead, use frame_or_window to hold the + window whose scrollbar was clicked. + * keyboard.c (kbd_buffer_store_event, kbd_buffer_get_event, + make_lispy_event): Adjust references to frame member of struct + input_event to use frame_or_window now. + * xterm.c (construct_mouse_click, XTread_socket): Same. + + * xterm.c (last_mouse_bar, last_mouse_bar_frame, last_mouse_part, + last_mouse_scroll_range_start, last_mouse_scroll_range_end): + Replaced with... + (last_mouse_scrollbar): New variable. + (note_mouse_movement): Clear last_mouse_scrollbar when we have + receieved a new motion. + (syms_of_xterm): Staticpro last_mouse_scrollbar. + + * xterm.c (note_mouse_position): Renamed to note_mouse_movement, + because that's what it really does. + (x_scrollbar_handle_motion): Renamed to x_scrollbar_note_movement, + for consistency. + (XTread_socket): Adjusted. + + * xterm.c (XTset_scrollbar): Renamed to XTset_vertical_scrollbar. + (x_term_init): Adjusted. + + * keyboard.c (kbd_buffer_frames): Renamed to + kbd_buffer_frame_or_window, and made to exist even when + MULTI_FRAME isn't defined; single-frame systems might have + scrollbars. Use it to GCPRO the frame_or_window field in the + event queue. + (kbd_buffer_store_event, kbd_buffer_get_event, + stuff_buffered_input): Set and clear the + appropriate element of kbd_buffer_frame_or_window, whether or not + MULTI_FRAME is #defined. + (read_avail_input): When reading characters directly from stdin, + set the frame_or_window field of the event appropriately, + depending on whether or not MULTI_FRAME is #defined. + (Fdiscard_input, init_keyboard): Zap kbd_buffer_frame_or_window, + not kbd_buffer_frames. + (syms_of_keyboard): Initialize and staticpro + kbd_buffer_frame_or_window, whether or not MULTI_FRAME is + #defined. + + * keyboard.c (head_table): Make Qscrollbar_movement have a + Qevent_kind property of Qmouse_movement, not Qscrollbar_movement. + + * keyboard.c (read_key_sequence): If we decide to throw away a + mouse event which has prefix symbols (`mode-line', + `vertical-scrollbar', etcetera), remember that we may have to + unwind two characters, not just one. + + * keyboard.c (read_key_sequence): Doc fixes. + + * keyboard.c (kbd_buffer_store_event): Fix reversed sense of test + for focus redirection. + + * keyboard.c (read_char): Don't echo mouse movements. + + * emacs.c (shut_down_emacs): New function. + (fatal_error_signal, Fkill_emacs): Call it, instead of writing it out. + * xterm.c (x_connection_closed): Call shut_down_emacs instead of + Fkill_emacs; the latter will try to perform operations on the X + server and die a horrible death. + * lisp.h (shut_down_emacs): Add extern declaration for it. + + * xterm.c (x_error_quitter): Move the abort call to after we print + the error message. No harm in that. + + * xdisp.c (echo_area_display): Move the assignment of f and the + check for visibility out of the "#ifdef MULTI_FRAME" clause; they + should work under any circumstances. + + * xdisp.c (redisplay_window): If we're not going to redisplay this + window because it's a minibuffer whose contents have already been + updated, go ahead and jump to the scrollbar refreshing code + anyway; they still need to be updated. Initialize opoint, so it's + known to be valid when we jump. Calculate the scrollbar settings + properly for minibuffers, no matter what they are displaying at + the time. + + * xdisp.c (redisplay_windows): Don't restore the current buffer + and its point before refreshing the scrollbars; we need the buffer + accurate. + +1993-01-12 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * print.c (float_to_string): Add final 0 if text ends with decimal pt. + + * dispnew.c (Fredraw_display): Redraw all visible frames. + Make the non-multi-frame version interactive. + +1993-01-11 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * fileio.c (Fset_default_file_modes, Fdefault_file_modes): + Renamed from Fset_umask and Fumask; sense of arg is reversed. + (Fwrite_region): Doc fix. + +1993-01-10 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * print.c (float_to_string): Add `.0' at end if needed. + + * lread.c (Fload): If warn that .elc file is older, inhibit + the ordinary message that would follow. + +1993-01-09 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * fileio.c (Fdo_auto_save): Add CURRENT_ONLY argument, as + described in doc string. + +1993-01-08 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * fns.c (Frandom): Change arg name. + + * editfns.c: Doc fixes. + +1993-01-07 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * unexhp9k800.c (unexec): Don't call exit, just return. + +1993-01-07 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * config.h.in: protect against multiple #inclusions. + + * config.h.in: Add a declaration for getenv. + + * xfns.c (Fx_get_resource): Add CLASS argument, to give class of + ATTRIBUTE. + [not HAVE_X11]: Change definition of Fx_get_resource macro + accordingly. + (x_get_arg): Add CLASS argument, to give the class of ATTRIBUTE. + Pass it along to Fx_get_resource. + (x_figure_window_size, x_icon): Pass new argument to x_get_arg. + (x_default_parameter): Add XCLASS argument, to give the class of + XPROP. Pass it along to x_get_arg. + (Fx_create_frame): Pass new args to x_get_arg and + x_default_parameter. + + * xfns.c (Fx_create_frame): Use the same resource names and + classes as xterm and Emacs 18. + +1993-01-03 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * xfns.c (Fx_get_resource): Use EMACS_CLASS to make class_key + even if SUBCLASS is specified. I don't know whether that is + right, but that's what the doc says. + Cosmetic changes in arg names and doc string. + +1992-12-29 Roland McGrath (roland@geech.gnu.ai.mit.edu) + + * ralloc.c: [! emacs] [HAVE_CONFIG_H]: #include "config.h" + +1992-12-21 Roland McGrath (roland@geech.gnu.ai.mit.edu) + + * Makefile.in (tagsfiles): New variable. + (TAGS): Depend on $(tagsfiles); use that in cmds. + (tags): Separate phony rule; depends on TAGS. + +1992-12-21 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * keyboard.c: Protect all references to kbd_buffer_frames with + #ifdef MULTI_FRAME. + + * frame.h (struct frame): New fields `can_have_scrollbars' and + `has_vertical_scrollbars'. + (FRAME_CAN_HAVE_SCROLLBARS, FRAME_HAS_VERTICAL_SCROLLBARS): New + accessors, for both the MULTI_FRAME and non-MULTI_FRAME. + (VERTICAL_SCROLLBAR_WIDTH, WINDOW_VERTICAL_SCROLLBAR, + WINDOW_VERTICAL_SCROLLBAR_COLUMN, + WINDOW_VERTICAL_SCROLLBAR_HEIGHT): New macros. + * window.h (struct window): New field `vertical_scrollbar'. + * xterm.h (struct x_display): vertical_scrollbars, + judge_timestamp, vertical_scrollbar_extra: New fields. + (struct scrollbar): New struct. + (VERTICAL_SCROLLBAR_PIXEL_WIDTH, VERTICAL_SCROLLBAR_PIXEL_HEIGHT, + VERTICAL_SCROLLBAR_LEFT_BORDER, VERTICAL_SCROLLBAR_RIGHT_BORDER, + VERTICAL_SCROLLBAR_TOP_BORDER, VERTICAL_SCROLLBAR_BOTTOM_BORDER, + CHAR_TO_PIXEL_WIDTH, CHAR_TO_PIXEL_HEIGHT, PIXEL_TO_CHAR_WIDTH, + PIXEL_TO_CHAR_HEIGHT): New accessors and macros. + * frame.c (make_frame): Initialize the `can_have_scrollbars' and + `has_vertical_scrollbars' fields of the frame. + * term.c (term_init): Note that TERMCAP terminals don't support + scrollbars. + (mouse_position_hook): Document new args. + (set_vertical_scrollbar_hook, condemn_scrollbars_hook, + redeem_scrollbar_hook, judge_scrollbars_hook): New hooks. + * termhooks.h: Declare and document them. + (enum scrollbar_part): New type. + (struct input_event): Describe the new form of the scrollbar_click + event type. Change `part' from a Lisp_Object to an enum + scrollbar_part. Add a new field `scrollbar'. + * keyboard.c (kbd_buffer_get_event): Pass appropriate new + parameters to *mouse_position_hook, and make_lispy_movement. + * xfns.c (x_set_vertical_scrollbar): New function. + (x_figure_window_size): Use new macros to calculate frame size. + (Fx_create_frame): Note that X Windows frames do support scroll + bars. Default to "yes". + * xterm.c: #include <X11/cursorfont.h> and "window.h". + (x_vertical_scrollbar_cursor): New variable. + (x_term_init): Initialize it. + (last_mouse_bar, last_mouse_bar_frame, last_mouse_part, + last_mouse_scroll_range_start, last_mouse_scroll_range_end): New + variables. + (XTmouse_position): Use them to return scrollbar movement events. + Take new arguments, for that purpose. + (x_window_to_scrollbar, x_scrollbar_create, + x_scrollbar_set_handle, x_scrollbar_remove, x_scrollbar_move, + XTset_scrollbar, XTcondemn_scrollbars, XTredeem_scrollbar, + XTjudge_scrollbars, x_scrollbar_expose, + x_scrollbar_background_expose, x_scrollbar_handle_click, + x_scrollbar_handle_motion): New functions to implement scrollbars. + (x_term_init): Set the termhooks.h hooks to point to them. + (x_set_window_size): Use new macros to calculate frame size. Set + vertical_scrollbar_extra field. + (x_make_frame_visible): Use the frame accessor + FRAME_HAS_VERTICAL_SCROLLBARS to decide if we need to map the + frame's subwindows as well. + (XTread_socket): Use new size-calculation macros from xterm.h when + processing ConfigureNotify events. + (x_wm_set_size_hint): Use PIXEL_TO_CHAR_WIDTH and + PIXEL_TO_CHAR_HEIGHT macros. + * ymakefile (xdisp.o): This now depends on termhooks.h. + (xterm.o): This now depends on window.h. + + * xdisp.c: #include "termhooks.h". + (redisplay, redisplay_window): Use set_vertical_scrollbar_hook, + condemn_scrollbars_hook, redeem_scrollbar_hook, and + judge_scrollbars_hook to make scrollbars redisplay properly. + + * keyboard.c (Qscrollbar_movement, Qvertical_scrollbar, + Qabove_handle, Qhandle, Qbelow_handle): New symbols. + (make_lispy_event): New code to build scrollbar clicks. + (make_lispy_movement): New code to handle scrollbar movement. + (head_table): Include Qscrollbar_movement in the event heads. + (syms_of_keyboard): Init and staticpro Qvertical_scrollbar, + Qabove_handle, Qhandle, and Qbelow_handle. + * keyboard.h (Qscrollbar_movement): Declare this along with the + other event types. + * lisp.h (Qvertical_scrollbar): Declare this. + * window.c (window_from_scrollbar): New function. + + * xterm.h (struct x_display): Delete v_scrollbar, v_thumbup, + v_thumbdown, v_slider, h_scrollbar, h_thumbup, + h_thumbdown, h_slider, v_scrollbar_width, h_scrollbar_height + fields. + * keyboard.c (Qvscrollbar_part, Qvslider_part, Qvthumbup_part, + Qvthumbdown_part, Qhscrollbar_part, Qhslider_part, Qhthumbup_part, + Qhthumbdown_part, Qscrollbar_click): Deleted; part of an obsolete + interface. + (head_table): Removed from here as well. + (syms_of_keyboard): And here. + * keyboard.h: And here. + (POSN_SCROLLBAR_BUTTON): Removed. + * xscrollbar.h: File removed - no longer necessary. + * xfns.c: Don't #include it any more. + (Qhorizontal_scroll_bar, Qvertical_scroll_bar): Deleted. + (syms_of_xfns): Don't initialize or staticpro them. + (gray_bits): Salvaged from xscrollbar.h. + (x_window_to_scrollbar): Deleted. + (x_set_horizontal_scrollbar): Deleted. + (enum x_frame_parm, x_frame_parms): Remove references to + x_set_horizontal_scrollbar. + (x_set_foreground_color, x_set_background_color, + x_set_border_pixel): Remove special code to support scrollbars. + (Fx_create_frame): Remove old scrollbar setup code. + (install_vertical_scrollbar, install_horizontal_scrollbar, + adjust_scrollbars, x_resize_scrollbars): Deleted. + * xterm.c (construct_mouse_click): This doesn't need to take care of + scrollbar clicks anymore. + (XTread_socket): Remove old code to support scrollbars. Call new + functions instead for events which occur in scrollbar windows. + (XTupdate_end): Remove call to adjust_scrollbars; the main + redisplay code takes care of that now. + (enum window_type): Deleted. + * ymakefile: Note that xfns.o no longer depends on xscrollbar.h. + + * xterm.c (x_set_mouse_position): Clip mouse position to be within + frame. + + * xterm.c: Adjust the first line of each page to have a reasonable + description. This makes pages-directory more useful. + + * xterm.c (x_do_pending_expose): Declare this routine only if + HAVE_X11 is not #defined; X11 doesn't need it. + (XTread_socket): Protect call to x_do_pending_expose with `#ifdef + HAVE_X11'. + + * xfns.c (syms_of_xfns): Delete defvars for x_mouse_x and + x_mouse_y. That interface hasn't been live for years. + (x_mouse_x, x_mouse_y): Delete these variables. + + * xterm.c (notice_mouse_movement): Deleted; obsolete and unused. + + * keyboard.c (Fread_key_sequence): Doc fix. + + * keyboard.c (make_lispy_event): Buttons are numbered starting + with zero now. + + * keyboard.c (make_lispy_event): Use the proper accessors when + manipulating the `x' and `y' fields of struct input_event. + + * keyboard.c (parse_modifiers_uncached): Remember that strncmp + returns zero if the two substrings are equal. + + * keyboard.c (do_mouse_tracking, Ftrack_mouse): Doc fix. + + * keyboard.c (read_char): Don't put mouse movements in + this_command_keys. + + * xfns.c (Fx_create_frame): Don't initialize the wm_hints field here. + (x_window): Do it here, along with all the similar stuff. + +1992-12-21 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * callint.c (Fcall_interactively): For `s', use Fread_string. + +1992-12-20 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + Properly handle focus shift events, so the cursor is filled and + hollow at the appropriate times, even in titleless windows. + * xterm.c (x_focus_event_frame): New variable. + (XTread_socket): When we receive a FocusIn event that's not + NotifyPointer, record the frame in x_focus_event_frame. When we + receive a FocusOut event that's not NotifyPointer, clear it. When + we get a LeaveNotify event, don't take it seriously if we still + have focus. + + * xterm.c (XTread_socket): Remove special code in EnterNotify case + to handle scrollbars and fake mouse motion events. + +1992-12-19 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * floatfns.c (Flog): Fix unescaped newline in string. + * frame.c (Fnext_frame): Same. + * textprop.c (Fprevious_single_property_change): Same. + (syms_of_textprop): Same, for DEFVAR for + `interval_balance_threshold'. + + Change the meaning of focus redirection to make switching windows + work properly. Fredirect_frame_focus has the details. + * frame.h (focus_frame): Doc fix. + [not MULTI_FRAME] (FRAME_FOCUS_FRAME): Make this Qnil, which + indicates no focus redirection, instead of zero, which is + selected_frame. + * frame.c (make_frame): Initialize f->focus_frame to Qnil, rather + than making it point to frame itself. + (Fselect_frame): If changing the selected frame from FOO to BAR, + make all redirections to FOO shift to BAR as well. Doc fix. + (Fredirect_frame_focus): Doc fix. Accept nil as a valid + redirection, not just as a default for FRAME. + (Fframe_focus): Doc fix. + * keyboard.c (kbd_buffer_store_event, kbd_buffer_get_event): Deal + with focus redirections being nil. + * xterm.c (XTframe_rehighlight): Doc fix. Deal with focus + redirections being nil. + + * window.c (Fset_window_configuration): Don't restore the frame's + focus redirection if the target frame is now dead. + + * ymakefile (ralloc.o): This no longer depends on xterm.h. + + * ymakefile (all, xemacs): We build an executable called `emacs' now, + not `xemacs'. + * Makefile.in (distclean, xemacs, doxemacs): Same. + + * xterm.h (PIXEL_WIDTH, PIXEL_HEIGHT): Change name of parameter + from `s' to `f'; it's a frame pointer. + +1992-12-18 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * keyboard.c (kbd_buffer_frames): New vector, to GCPRO frames in + kbd_buffer. + (kbd_buffer_store_event): When we add an event to kbd_buffer, make + sure to store its frame in kbd_buffer_frames. + (kbd_buffer_get_event): When we remove an event from kbd_buffer, + make sure to set the corresponding element of kbd_buffer_frames to + Qnil, to allow the frame to get GC'd. + (Fdiscard_input, init_keyboard): Clear all elements of + kbd_buffer_frames to nil. + (syms_of_keyboard): Create and staticpro kbd_buffer_frames. + + * xterm.c (x_error_quitter): Just abort, so we can look at the + core to see what happened. + +1992-12-17 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * buffer.c (Frename_buffer): Set update_mode_lines. + +1992-12-14 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * scroll.c (do_scrolling): When bcopying the max_ascent field from + current_frame to temp_frame, remember that max_ascent is an array + of shorts, not ints. + + It's a pain to remember that you can't assign to FRAME->visible. + Let's change all references to the `visible' member of struct + frame to use the accessor macros, and then write a setter for the + `visible' field that does the right thing. + * frame.h (FRAME_VISIBLE_P): Make this not an l-value. + (FRAME_SET_VISIBLE): New macro. + * frame.c (make_terminal_frame, Fdelete_frame): Use FRAME_SET_VISIBLE. + (Fframe_visible_p, Fvisible_frame_list): Use FRAME_VISIBLE_P and + FRAME_ICONIFIED_P. + * dispnew.c (Fredraw_display): Use the FRAME_VISIBLE_P and + FRAME_GARBAGED_P accessors. + * xdisp.c (redisplay): Use the FRAME_VISIBLE_P accessor. + * xfns.c (x_set_foreground_color, x_set_background_color, + x_set_cursor_color, x_set_border_pixel, x_set_icon_type): Use the + FRAME_VISIBLE_P accessor. + (Fx_create_frame): Use FRAME_SET_VISIBILITY. + * xterm.c (clear_cursor, x_display_bar_cursor, + x_display_box_cursor): Use FRAME_SET_VISIBILITY. + +1992-12-12 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * ymakefile (CFLAGS): #define HAVE_CONFIG_H too. + + * Makefile.in (distclean): Don't delete machine.h or system.h; + they don't exist anymore. + + * Makefile.in (distclean): Don't delete autosave or backup files. + (extraclean): New target; like distclean, but delete autosave + and backup files too. + +1992-12-11 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * search.c (Fskip_chars_forward, Fskip_chars_backward): Return the + distance traveled. + (skip_chars): Return the distance traveled, as a Lisp_Object. + + * macros.c (Fend_kbd_macro): Don't use XFASTINT to check if arg is + negative; XFASTINT only works on values known to be positive. + (Fexecute_kbd_macro): Check QUIT in the repetition loop. If the + macro is null, no characters are actually being read, so this + matters. + + * Makefile.in (srcdir): New variable, not fully implemented. + (xmakefile): Turn -g and -O in CFLAGS into C_DEBUG_SWITCH and + C_OPTIMIZE_SWITCH in C_SWITCH_SITE's definition. Delete junk.cpp + when done. + * ymakefile (archlib): Variable definition deleted. Run programs + from ../lib-src directly, or use ${archlibdir}. + (${etc}DOC): Run make-docfile from ${libsrc}, not ${archlib}. + (${archlib}make-docfile, ${archlib}emacstool): Use ${libsrc}, not + ${archlib}. + + * ymakefile (lisp): Don't include version.el in this list. + + Give subprocess creation a way to find a valid current directory + for subprocesses when the buffer's default-directory is a handled + name. + * fileio.c (Funhandled_file_name_directory): New function. + (Qunhandled_file_name_directory): New file-name-handler operation. + (syms_of_fileio): Defsubr Sunhandled_file_name_directory, and + initialize and staticpro Qunhandled_file_name_directory. + * callproc.c (Fcall_process): Call Funhandled_file_name_directory + on the buffer's default directory. Do it earlier in the function + so there's less to GCPRO. + * process.c (create_process): Don't check the validity of the + buffer's default directory here... + (Fstart_process): Instead, do it here; if we call + Funhandled_file_name_directory here, there's less GCPROing to do. + + * callproc.c (Fcall_process_region): Return the value returned by + Fcall_process. + + * fileio.c (find_file_handler): Rename this to + Ffind_file_name_handler, and make it visible to lisp. Add a QUIT + to the loop which scans file-name-handler-alist. All uses + changed. + (syms_of_fileio): Mention this new function in the docstring for + Vfile_name_handler_alist. defsubr Sfind_file_name_handler. + * lisp.h (Ffind_file_name_handler): Added extern declaration. + * dired.c: All uses of find_file_handler changed here too. + + * fileio.c (syms_of_fileio): Add staticpros for Qexpand_file_name, + Qdirectory_file_name, Qfile_name_directory, + Qfile_name_nondirectory, Qfile_name_as_directory. + +1992-12-07 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * window.c (Fset_window_configuration): If we're restoring the + configuration of a dead frame, don't bother rebuilding its window + tree, restoring its focus redirection, or temporarily resizing it + to fit the saved window configuration. If the frame which was + selected when the configuration was captured is now dead, don't + try to select it. + + * frame.c (Fdelete_frame): Delete all the windows in the frame's + window tree, using delete_all_subwindows. + * window.c (delete_all_subwindows): Don't make this static + anymore. + +1992-12-03 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + Make sure that frames' visible flag only changes at acceptable + times. See FRAME_SAMPLE_VISIBILITY's comments for details. + * frame.h (struct frame): New fields called async_visible and + async_iconified. + (FRAME_SAMPLE_VISIBILITY): New macro, with MULTI_FRAME and + non-MULTI_FRAME definitions. + * xdisp.c (redisplay): Call FRAME_SAMPLE_VISIBILITY to set the + visible and iconified flags appropriately for each frame. + (message1): Call FRAME_SAMPLE_VISIBILITY to set the visible and + iconified flags for the minibuffer frame. + * frame.c (make_frame): Initialize async_visible and + async_iconified properly. + * xfns.c (Fx_create_frame): Initialize f->async_visible too. + * xterm.c (XTread_socket): When we get MapNotify, UnmapNotify, + Expose, ExposeWindow, or UnmapWindow, set f->async_visible, not + f->visible. + (x_do_pending_expose, x_raise_frame, x_lower_frame, + x_make_frame_invisible, x_make_frame_visible, x_iconify_frame): + Test and set f->async_visible and f->async_iconified, not + f->visible or f->async_iconified. + + * keyboard.c (kbd_store_ptr): Declare this to be volatile, if + __STDC__ is #defined. + (Fdiscard_input): Use cast to keep GCC from complaining about the + assignment of kbd_store_ptr to kbd_fetch_ptr. + + * xdisp.c (redisplay): Use FOR_EACH_FRAME to apply + redisplay_windows to the root window of each frame. This makes a + #ifdef MULTI_FRAME unneeded, but it also means we recompute + buffer_shared from scratch even on non-MULTI_FRAME configurations. + Don't skip elements of Vframe_list that aren't frames; go ahead + and crash here. + + * xdisp.c (redisplay): Remove #ifdef MULTI_FRAME around the code + which updates separate minibuffer frames specially; there's + nothing there that won't work on a single-frame configuration. + + * dispextern.h (struct frame_glyphs): Doc fix. + +1992-12-02 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * dispnew.c: Remove dyked-out copy of safe_bcopy. + + * environ.c: File removed; Changes on 1/13/1992 made it + unnecessary. + +1992-12-01 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * process.c (wait_reading_process_input): Doc fix. + +1992-11-26 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * next.h: Copy changes from 18.59: + (NeXT): Defined. + (BIG_ENDIAN): Define only if __BIG_ENDIAN__. + (m68000, COMPILER_REGISTER_BUG): Defs deleted. + (SIGN_EXTEND_CHAR, LIB_X11_LIB, NO_T_CHARS_DEFINES, UNEXEC): Defined. + (LIBS_DEBUG, LIB_GCC, C_SWITCH_MACHINE, ORDINARY_LINK): Defined. + (TEXT_START, TEXT_END, DATA_END, LD_SWITCH_MACHINE): Defined. + (KERNEL_FILE): #undef it. + (environ): Define as _environ. + +1992-11-25 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * doc.c (store_function_docstring): New function, made from part + of Fsnarf_documentation, which handles docstrings for macros + properly. + (Fsnarf_documentation): Call store_function_docstring. + + * data.c (indirect_function): Delete unused argument ERROR. + +1992-11-23 Jim Blandy (jimb@apple-gunkies.gnu.ai.mit.edu) + + * Makefile.in (clean): Remove prefix-args. + +1992-11-21 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * s/sol2.h (LD_SWITCH_SYSTEM): Make alternate version for GCC. + +1992-11-19 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * m/sparc.h: Don't include <sys/param.h> here; that screws up the + xmakefile. Instead, include it in getloadavg.c, which is the only + place that uses LOAD_AVE_CVT, which is the only reason + <sys/param.h> was here in the first place. + +1992-11-15 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * dispnew.c [not MULTI_FRAME] (Fredraw_display): Pass the correct + number of arguments to mark_window_display_accurate. + + * undo.c (Fprimitive_undo): Remove whitespace in front of #ifdef + and #endif. + + * systty.h: Doc fix. + + * systty.h, process.c, buffer.h, callproc.c, sysdep.c, dired.c: + Added VMS changes from Roland Roberts. + * vmspaths.h: New version from Roland Roberts. + + * xdisp.c (display_string): Use w's buffer's value of + tab-width to display the string, instead of the current buffer's, + which could be anything. + + * s/sol2.h (LD_SWITCH_SYSTEM): Add -R option. + + * process.c (read_process_output): Save, widen, insert the process + output, and then restore the restriction if inserting text outside + the visible region. + +1992-11-14 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * buffer.c (Ferase_buffer): Doc fix. + + * dispnew.c (safe_bcopy): Use the right terminating condition in + the loop which uses multiple bcopy calls to transfer a block to an + overlapping higher block. + +1992-11-13 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * process.c (Fstart_process): Establish an unwind-protect to + remove PROC from the process list if an error occurs while + starting it. + (start_process_unwind): New function to help with that. + (create_process): There's no need to explicitly call + remove_process if the fork fails; the record_unwind_protect in + Fstart_process will take care of it. + + * commands.h (unread_command_event): Doc fix. + + Don't ever throw away switch-frame events. + * lread.c: #include "keyboard.h". + (Fread_char, Fread_char_exclusive): Don't signal an + error for or throw away switch-frame events; instead, put them off + until after we've found a character we can respond to. + * commands.h (unread_switch_frame): Declare this extern. + * keyboard.c (unread_switch_frame): Don't declare this static. + * ymakefile (lread.o): Note that this depends on keyboard.h. + + * keyboard.c (Vlast_event_frame): Doc fix. + + * process.c (wait_reading_process_input): Test the C preprocessor + symbol "ultrix", not "__ultrix__" to see if we should ignore + ENOMEM errors from select. + + * fileio.c (Fexpand_file_name): Don't fiddle with "/." if it's the + entire string. + + * buffer.c (Fbury_buffer): Make this behave as in 18.59, although + that behavior is very odd - only remove the buffer from the + selected window if BUFFER was nil or omitted. + + * keyboard.c (read_char): Write composite events to the dribble + file properly. + + * keyboard.c (init_keyboard): Initialize Vlast_event_frame to + Qnil, rather than the selected frame. + + * mem-limits.h [DATA_SEG_BITS] (EXCEEDS_LISP_PTR): Remember to + remove DATA_SEG_BITS from the pointer before testing if the + pointer fits in VALBITS. + + * Makefile.in (doxemacs, dotemacs): Explicitly pass along the CC + variable in these rules, just as in the `doall' rule. + + * ralloc.c (relocate_some_blocs): Handle BLOC == NIL_BLOC. + (free_bloc): This can now be simplified. + + * ralloc.c (r_alloc_sbrk): When we allocate new space for the + malloc heap, zero it out even if we don't have any blocs in the + free list. + +1992-11-12 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * process.c (process_send_signal): On systems which have both + the TIOCGETC and TCGETA ioctls, just use the former. + + * xselect.c (Fx_get_cut_buffer): Correct check for buf_num in + range. + + * xselect.c (Fx_get_cut_buffer, Fx_set_cut_buffer): Fix error + message format; use NUM_CUT_BUFFERS instead of literal 7. + + * keyboard.c (lispy_modifier_list): Added sanity check before + indexing into modifier_symbols. + + * keyboard.c (add_command_key): When copying the contents of the + old this_command_keys to new_keys, remember to multiply size by + sizeof (Lisp_Object) to get the amount we really need to copy. + + Rename unread_command_char to unread_command_event; it has + subtly different semantics now, and we should use + `make-obsolete-variable' to warn people. + * command.h (unread_command_char): Change name in extern declaration. + * keyboard.c (unread_command_char): Rename. + (command_loop_1, read_char, Finput_pending, Fdiscard_input, + quit_throw_to_read_char, init_keyboard, syms_of_keyboard): Change + references. + * lread.c (Fread_char): Change reference. + * minibuf.c (temp_echo_area_glyphs): Change reference to + unread_command_char to unread_command_event. + * xfns.c (unread_command_char): Change name in extern declaration + to unread_command_event. + +1992-11-11 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * m/pmax.h: Don't define SYSTEM_MALLOC; this was only necessary + for Ultrix version 4.1, and the current version is 4.3. + + * s/bsd4-2.h, s/bsd4-3.h: #define SIGNALS_VIA_CHARACTERS. + * process.c (process_send_signal): Put all the code for sending + signals via characters in a #ifdef SIGNALS_VIA_CHARACTERS. Decide + whether to use the Berkeley-style or SYSV-style ioctls by seeing + which ioctl commands are #defined. + + * minibuf.c (read_minibuf): If get_minibuffer gives the + new minibuffer a nil default directory, find another buffer with a + better default directory and use that one's instead. + +1992-11-10 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * process.c (process_send_signal): Doc fix. + + * keyboard.c (read_key_sequence): Don't use + save_excursion_{save,restore} to protect the caller against buffer + switches; use Fset_buffer and Fcurrent_buffer; redisplay might + change point, and we don't want to undo that. + + * keyboard.c (kbd_buffer_get_event): When checking a mouse + movement for a frame switch, don't assume Vlast_event_frame + contains a Lisp_Frame object. + +1992-11-06 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * s/dgux.h (SYSTEM_TYPE): Use berkeley-unix. + +1992-11-04 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * alloc.c: #include "frame.h" unconditionally. frame.h does the + right thing when MULTI_FRAME isn't defined. + + * Makefile.in: Rearrange dependencies to make sure that xmakefile + is built before we try to use it, even using a parallel make. + + Changes for SYSV from Eric Raymond: + * process.c [SYSV]: Don't include <termios.h>, <termio.h>, or + <fcntl.h>. + (process_send_signal): Don't try to send SIGTSTP + unless SIGTSTP is defined. + * sysdep.c (init_baud_rate) [HAVE_TERMIO, not HAVE_TCATTR]: Use + TCGETA, not TIOCGETP. + * systime.h [USG] (EMACS_GET_TZ_OFFSET): Assign to *(offset), not + (offset). Don't forget the while corresponding to the do. + Include USG in the list of systems that have a tzname array. + + * keyboard.c (read_key_sequence): Removed the + replay_sequence_new_buffer label; replay_sequence should be here + instead. + + Arrange to get compile-time errors for uses of Lisp_Frame in a + non-MULTI_FRAME configuration. + * lisp.h [not MULTI_FRAME]: Don't declare the Lisp_Frame tag. + * minibuf.c (read_minibuf): Protect call to Fredirect_frame_focus + with a #ifdef MULTI_FRAME. + * window.c (Fset_window_configuration): Protect call to + Fselect_frame with a #ifdef MULTI_FRAME. + [not MULTI_FRAME] (Fcurrent_window_configuration): Don't bother + setting the window configuration's selected_frame member. + * keyboard.c (Vlast_event_frame): Arrange for this to exist iff + MULTI_FRAME is defined. + [not MULTI_FRAME] (syms_of_keyboard): Don't DEFVAR Vlast_event_frame. + [not MULTI_FRAME] (read_char): Don't try to set Vlast_event_frame. + [not MULTI_FRAME] (kbd_buffer_store_event): Don't try to set + Vlast_event_frame for quit characters. + [not MULTI_FRAME] (kbd_buffer_get_event): Don't try to generate + switch-frame events. + + * buffer.c (init_buffer): If PWD is accurate, use it instead of + calling getwd. + #include <sys/types.h> and <sys/stat.h>, for the call to stat. + + Indicate whether an autoload form stands for a keymap or not. + * eval.c (Fautoload): Renamed fifth argument TYPE. Document the + fact that (eq TYPE 'keymap) means FUNCTION will become a keymap + when loaded. + (Fmacroexpand): Instead of assuming that every autoload + form with a fifth element is a macro, actually check the fifth + element against t and `macro', which are the only values which + denote macroness. + * keymap.c (get_keymap_1): Don't try to autoload OBJECT's function + unless the autoload form indicates that it's a keymap. + +1992-11-03 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * .gdbinit (mips): New command. + +1992-10-31 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * fileio.c (Fmake_directory_internal): Renamed from Fmake_directory. + Pass nil as third arg to handler. + Lisp function `make-directory' is now in files.el. + +1992-10-30 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + Clean up errors due to treating Lisp_Objects like integers. + * abbrev.c (Funexpand_abbrev): Just assign the last abbrev's value + to val; don't use XSET. Make sure that the value of the + abbrev-symbol is a string. + * alloc.c (Frope_elt): Declare arguments to be Lisp_Objects. + * buffer.c (reset_buffer): Don't assign to b->save_length as if it + were an int; use XFASTINT. + * buffer.h (Fbuffer_name, Fget_file_buffer): Added external + declarations. + * bytecode.c (Fbyte_code): Use EQ to compare string_saved with + bytestr. + * casefiddle.c (operate_on_word): Declare end to be an int, not a + Lisp_Object. + * casetab.c (set_case_table): Declare this to be static, and + return a Lisp_Object. Add static declaration for this + before Fset_case_table and Fset_standard_case_table. + (Fset_case_table, Fset_standard_case_table): Return the return + value of set_case_table, instead of returning garbage. + * commands.h (unread_command_char): Declare this to be a + Lisp_Object, not an int. + * data.c (Fset): See if current_alist_element points to itself + using EQ, not ==. + (float_arith_driver): Declare this extern above arith_driver. + * dired.c (find_file_handler): Declare this extern. + (Ffile_attributes): Use NILP, not == Qnil. + * dispextern.h (sit_for): Declare this extern. + * doc.c: #include keyboard.h. + * floatfns.c (Flog): Don't forget to declare the BASE argument a + Lisp_Object. + * fns.c: #include keyboard.h. + (Fdelete): Check if Fequal returns Qnil, not zero. + * frame.c: #include buffer.h. + * keyboard.c: #include dispextern.h. + (recursive_edit_unwind, command_loop, Fthis_command_keys): Declare + these to return Lisp_Objects at the very top of the file, to avoid + having them implicitly declared as ints. + (echo_char): Use EQ to compare C to help_char. + (read_char): Remember to apply XFASTINT to the return value of + Flength before using it. Apply XINT to c when clearing its high + bits and meta bits, and when writing it to the dribble file. + (read_char_menu_prompt): Use EQ to compare obj with + menu_prompt_more_char and its control-character analog. + (read_key_sequence): Declare PROMPT to be char *, not a + Lisp_Object. Use the appropriate accessors on keybuf when looking + for ASCII function key sequences. + * keyboard.h (get_keymap_1, Fkeymapp, reorder_modifiers, + Fmouse_click_p, read_char): Add external declarations for these. + * keymap.c (Fdefine_key, Flookup_key, describe_map): Don't assume + that Flength returns an integer. + * lisp.h (Fdefault_boundp, make_float, Ffloat, Fnth, Fcopy_alist, + Fmake_byte_code, Fverify_visited_file_modtime, Ffile_exists_p, + Fdirectory_file_name, Ffile_name_directory, + expand_and_dir_to_file, Ffile_accessible_directory_p, Fbyte_code, + Fundo_boundary, truncate_undo_list): Add extern declarations for + these. + * lread.c (read_char): Add an extern declaration for this, + indicating that it returns a Lisp_Object. + * minibuf.c (read_minibuf): Use EQ to compare, not ==. + (temp_echo_area_glyphs): Use XFASTINT to assign to + unread_command_char. + * print.c (print): Cast the frame's address to an integer before + passing it to sprintf to form the frame's printed form. + * process.c: (status_convert): Declare this to return a + Lisp_Object at the top of the file. + (decode_status): Don't untag XCONS (tem)->cdr before storing it in + tem; tem is a Lisp_Object, too. + (process_send_signal): Declare this to be static void. Don't + return Qnil; nobody cares. + (sigchld_handler): Use XFASTINT to manipulate p->infd. + * search.c (Fstore_match_data): Don't assume Flength returns a + C integer. + * undo.c (record_insert): Use accessors on BEG and LENGTH. + (truncate_undo_list): Use NILP, not == Qnil. + * window.c (Fwindow_width, Fset_window_hscroll): Use accessors on + w->width, w->left, w->hscroll, and arguments. + (replace_window): Use EQ, not ==. + (Fdelete_window): p->top and p->left are not C integers. + (Fnext_window, Fprevious_window): Use EQ, not ==. + * window.h (make_window, window_from_coordinates, + Fwindow_dedicated_p): Add extern declarations for these. + * xdisp.c (redisplay): Use ! EQ to compare the old and new arrow + positions, not !=. + (mark_window_display_accurate): Barf if WINDOW isn't a window. + (display_string): Test buffer_defaults.ctl_arrow using NILP, + instead of comparing it with zero. + * xfns.c (x_decode_color, Fx_color_display_p): x_screen_planes is + an int, not a Lisp_Object. + (x_set_mouse_color): Give separate error messages for the + different cursors we try to set. + (Fx_geometry): Declare STRING to be a Lisp_Object. + (Fx_create_frame): No need to use XSET to assign NAME to f->name; + they're both Lisp_Objects. + (adjust_scrollbars): Use XINT to access w->hscroll. + (Fx_open_connection): x_screen_count, x_release, x_screen_height, + x_screen_height_mm, x_screen_width, x_screen_width_mm, + x_save_under, and x_screen_planes are integers, not Lisp_Objects. + (syms_of_xfns): x_mouse_x, x_mouse_y, and mouse_buffer_offset are + integers, not Lisp_Objects. + * xselect.c (own_selection): selection_type is an X Atom value, + not a Lisp_Object. + (x_selection_arrival): Declare this static, and add a forward + declaration at the top of the page. + * xterm.c (x_convert_modifiers): Declare this to return an + unsigned int, not a Lisp_Object. Remember that the quiescent + value for part is Qnil, not zero, that x_mouse_x and x_mouse_y + are ints, not Lisp_Objects, and that RESULT->x and RESULT->y are + Lisp_Objects, not ints. + (XTread_socket): Declare this to return int, not Lisp_Object. + When calling construct_mouse_click on a non-scrollbar click, pass + PART as Qnil, not zero. + (x_calc_absolute_position): Remember that x_screen_width and + x_screen_height are ints, not Lisp_Objects. + * xterm.h (x_screen_count, x_release, x_screen_height, + x_screen_height_mm, x_screen_width, x_screen_width_mm, + x_save_under, x_screen_planes): Declare this as ints, to match + their definitions in xterm.c. + * ymakefile: Note the new dependencies caused by the new + #inclusions above. + + * xdisp.c (last_arrow_position, last_arrow_string): Make these + static. + + * process.c (pty_process): Variable deleted; it's no longer used. + (syms_of_process): Don't initialize it. + + * buffer.h (struct buffer_local_types): This declaration needed an + extern qualifier. + + * floatfns.c (Fexpt): Don't return the value of the XSET function + call; that's not guaranteed to be the value assigned. + + * dired.c (Ffile_attributes): Doc fix. + + * lisp.h (DEFVARLISP, DEFVARBOOL, DEFVARINT, DEFVARPERBUFFER): + Removed these definitions; we should be using the versions whose + names use underscores. + + * keyboard.c (echobuf): Make this 300 characters, not 100. This + isn't a real fix, but it's quick. + +1992-10-30 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * callint.c (preserved_fns): New var. + (Fcall_interactively): Preserve all fns listed in preserved_fns. + (syms_of_callint): Set preserved_fns and staticpro it. + Don't set up Qregion_beginning or Qregion_end. + +1992-10-29 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * dispnew.c (count_blanks): Leave argument r constant, and increment p. + +1992-10-28 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * xdisp.c (message): Re-write this in terms of message1. + (message1): Move code to clear out echo_area_glyphs and + previous_echo_glyphs from message to here. + + * keyboard.c (read_char): When returning an unread switch-frame + event, jump to reread_first to return it, rather than reread; this + makes sure the event gets echoed (if appropriate) and goes into + this_command_keys. + + * keyboard.c (read_key_sequence): If the key sequence starts with + a mouse click, read the key sequence using the keymaps of the + buffer clicked on, not the current buffer. + + * keyboard.c (unread_switch_frame): Make this static, to indicate + that nobody outside of this file uses it. + + * keymap.c: Deal with autoloaded keymaps properly. + (get_keymap_1): Renamed to inner_get_keymap; made + static. New argument AUTOLOAD says to pursue autoloads if + non-zero. + (Fkeymapp, get_keymap, get_keyelt, Flookup_key): Ask get_keymap_1 + not to perform autoloads. + (Fdefine_key): Ask get_keymap_1 to perform autoloads. Since + autoloading may GC, remember that we have to GCPRO our local + variables now. + (Fminor_mode_key_binding): Call get_keymap instead of calling + get_keymap_1 with equivalent arguments. + * keyboard.c (follow_key): Ask get_keymap_1 to perform autoloads. + (read_key_sequence): When pursuing potential bindings in the + function key map, ask get_keymap_1 to perform autoloading. This + is hardly important, but it's consistent. + * doc.c (Fsubstitute_command_keys): Ask get_keymap_1 to + perform autoloads. Autoloading might GC; we need to GCPRO our + local variables now. + (Fdocumentation, Fdocumentation_property): Autoloading in + Fsubstitute_command_keys might GC; we need to GCPRO our + local variables now. + +1992-10-28 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * s/irix3-3.h (HAVE_SETSID, IRIX): Defined. + + * s/irix4-0.h: New file. + +1992-10-27 Noah Friedman (friedman@nutrimat.gnu.ai.mit.edu) + + * sysdep.c (get_system_name): Use gethostname for USG systems if + HAVE_GETHOSTNAME is defined. + * s/hpux7.h, s/irix3-3.h (HAVE_GETHOSTNAME): Define it. + +1992-10-27 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * callproc.c: Arrange for synchronous processes to get SIGINT the + first time the user quits, or SIGKILL if the user quits again. + #include "syssignal.h". + (call_process_kill): New function. + (call_process_cleanup): Send SIGINT to the subprocess, and then + arrange to call call_process_kill if the user quits while we wait + for it to terminate. + (Fcall_process, Fcall_process_region): Doc fix. + +1992-10-27 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * unexmips.c [sony, IRIS_4D]: Include getpagesize.h and fcntl.h. + (unexec): #if 0 the error check of hdr.fhdr.f_nscns. + Clear text_section->s_scnptr. + + * callint.c (Fcall_interactively): Preserve (region-beginning) + and (region-end) into the command history when they appear + in an interactive spec which is a call to `list'. + + * batcomp.com: New file. Waiting for papers from richard@ttt.kth.se. + +1992-10-23 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * emacs.c (main): Correct spelling of HAVE_X_WINDOW to + HAVE_X_WINDOWS in conditionals around the call to syms_of_xmenu. + +1992-10-23 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * ralloc.c (relinquish): + Adjust page_break_value by amount of memory actually given back. + (r_alloc_sbrk): Provide hysteresis in relocating the blocs. + +1992-10-22 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * ralloc.c (relinquish): Sign of arg to *real_morecore was backwards. + +1992-10-21 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * ralloc.c (relinquish): Never free less than extra_bytes; + keep extra_bytes of empty space. + (obtain): Always get extra_bytes additional space. + (r_alloc_init): Set extra_bytes and page_size. + (ALIGNED, ROUNDUP, ROUND_TO_PAGE): Use page_size. + +1992-10-20 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * keyboard.c (syms_of_keyboard): Properly staticpro this_command_keys. + + * mem-limits.h (get_lim_data): Make it static. + + * ymakefile (mallocobj): Use vm-limit.o along with ralloc.o. + + * ralloc.c [emacs]: Define POINTER and SIZE. + [!emacs]: Delete definition of EXCEEDS_LISP_PTR. + + * eval.c (grow_specpdl): Increase max_specpdl_size before Fsignal. + +1992-10-19 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * xfns.c (x_set_face): Dyked out this function; it has no callers, + and refers to an obsolete version of struct face. + + * xterm.c (compose_status): New variable. + (XTread_socket): Pass it by reference to XLookupString. + +1992-10-18 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * s/esix5r4.h (BROKEN_FIONREAD): Defined. + +1992-10-16 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * s/vms5-5.h: New file. + +1992-10-16 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * xdisp.c (message): If M is zero, clear echo_area_glyphs and + previous_echo_glyphs, so that the minibuffer shows through. +* * editfns.c (Fmessage): With no arguments, clear any active + message; let the minibuffer contents show through. + * minibuf.c (temp_echo_area_glyphs): Don't clear echo_area_glyphs + and previous_echo_glyphs; let message do that work. + + * keyboard.c (this_command_keys): Make this a vector, instead of + an array of Lisp_Objects. + (this_command_keys_size): Deleted. + (echo, add_command_key, Fthis_command_keys): Adjusted + appropriately. + (init_keyboard): Don't allocate it here. + (syms_of_keyboard): Allocate it here, and staticpro it. + * keyboard.h (this_command_keys): Extern declaration changed. Doc fix. + * callint.c (Fcall_interactively): Change handling of 'e' spec; + this_command_keys is now a vector. + + * keyboard.c (read_char): Call ourselves with the appropriate + number of arguments. + (read_char_menu_prompt): If USED_MOUSE_MENU is zero, don't try to + store things in it. + + * window.c: Try to deal coherently with deleted windows: +* (Flive_window_p): New function. + (Qlive_window_p): New variable, to name it in type errors. + (syms_of_window): Defsubr Slive_window_p, init and staticpro + Qlive_window_p. + * lisp.h (CHECK_LIVE_WINDOW): New predicate. + (Qlive_window_p): Extern declaration for this. + * window.c (decode_window): Use CHECK_LIVE_WINDOW instead of + CHECK_WINDOW; the only thing a user should be able to do to a dead + window is check its type. + (Fcoordinates_in_window_p, Fnext_window, Fprevious_window, + Fdelete_other_windows, Fselect_window, Fsplit_window, + Fscroll_other_window): Use CHECK_LIVE_WINDOW instead of + CHECK_WINDOW. + * frame.c (make_frame_without_minibuffer, Fwindow_frame): Same. + * sunfns.c (Fsun_menu_internal): Same. + * xmenu.c (Fx_popup_menu): Same. + * window.c (Fdelete_window): If WINDOW is a deleted window, do nothing; + there's no harm in allowing people to delete deleted windows. + Delete all of WINDOW's subwindows, too. + (delete_all_subwindows): Set the buffer, vchild, and hchild of the + windows we delete all to nil. + * window.h (struct window): Doc fix. + + * window.c (Fwindow_minibuffer_p): Make the WINDOW argument + optional, like all the other window-querying functions. + + * window.c (Fpos_visible_in_window_p): Use decode_window to handle + the WINDOW argument, instead of writing out that function's code. + + * window.c (check_frame_size): Don't define this extern; that + doesn't mean anything. + + * xterm.c: Clean up some of the caps lock handling: + (x_shift_lock_mask): New variable. + (x_find_modifier_mappings): Set it, based on the modifier mappings. + (x_convert_modifiers): Use x_shift_lock_mask, instead of assuming + that the lock bit always means to shift the character. + (XTread_socket): When handling KeyPress events, don't pass an + XComposeStatus structure along to XLookupString. When handling + MappingNotify events, call XRefreshKeyboardMapping for both + MappingModifier and MappingKeyboard events, not just the latter. + +1992-10-15 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * window.c (Fdelete_window): Choose an alternative when we delete + any frame's selected window, not just when we delete the selected + frame's selected window. + +1992-10-15 Roland McGrath (roland@geech.gnu.ai.mit.edu) + + * vm-limit.c (check_memory_limits): Declare __morecore. + Remove unused variable `result'. + +1992-10-15 Roland McGrath (roland@geech.gnu.ai.mit.edu) + + * vm-limit.c (morecore_with_warning): Removed. + (check_memory_limits): New fn; most code from + morecore_with_warning, but only checks limits, doesn't do any work. + (memory_warnings): Set __after_morecore_hook to check_memory_limits; + don't set __morecore. + +1992-10-14 Joseph Arceneaux (jla@churchy.gnu.ai.mit.edu) + + * intervals.c (traverse_intervals): New parameter `depth'. + Increment this when passing recursively. + + * alloc.c (mark_interval_tree): Pass 0 as initial depth argument + to traverse_intervals. + + * xterm.h: Declaration of struct face removed. + + * dispextern.h: New element of frame structure `max_ascent'. + Removed elements `nruns' and `face_list'. + LINE_HEIGHT and LINE_WIDTH macros removed. + New struct face with associated typedef FACE declared, along with + accessing macros. + + * scroll.c (do_scrolling): Don't bcopy non-existant `nruns' or + `face_list' elements. Do copy new `max_ascent' frame element. + + * dispnew.c (scroll_frame_lines): All references to frame elements + `nruns' and 'face_list' removed. Handle new element `max_ascent'. + (free_frame_glyphs): Don't free nonexistent elements `nruns' and + `face_list'; do free `max_ascent' element. + (make_frame_glyphs): Don't allocate nonexistent elements `nruns' + and `face_list'; do allocate `max_ascent' element. + (update_frame): Replaced use of macro LINE_HEIGHT with element + frame element `pix_height'. + +1992-10-14 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * keyboard.c (modify_event_symbol): Arrange to set the + click_modifier bit on otherwise unmodified mouse clicks. + + * keymap.c (store_in_keymap): Don't forget to QUIT in the + keymap-scanning loop. Don't treat vectors as binding tables if + they're the wrong length. + +1992-10-12 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * keyboard.c (kbd_buffer_get_event): Remember that + *mouse_position_hook may set *FRAME to 0; don't generate + switch-frame events in this case. Fix fencepost bug in fetching + events from keyboard buffer. + +1992-10-12 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * ymakefile (ralloc.o): Delete dep mem_limits.h + (vm-limit.o): Rename dep to mem-limits.h. + +1992-10-12 Roland McGrath (roland@geech.gnu.ai.mit.edu) + + * ralloc.c: Removed #include "mem-limits.h". + [emacs]: Moved #undef NULL and #include "getpagesize.h" here. + [! emacs]: #include <unistd.h>, <malloc.h>, <string.h>. + (r_alloc_init): Use NIL, not NULL. + +1992-10-12 Roland McGrath (roland@geech.gnu.ai.mit.edu) + + * ralloc.c (sbrk): Removed decl. + (real_morecore): New static variable. + (warnlevel, warn_function, check_memory_limits): Removed. + (obtain): Don't call check_memory_limits. + (obtain, relinquish, r_alloc_sbrk): Use (*real_morecore) in place + of sbrk; it returns 0 for errors, not -1. + (r_alloc_init): Set real_morecore to old value of __morecore. + Don't initialize lim_data or warnlevel, and don't call get_lim_data. + (memory_warnings): Function removed. + +1992-10-12 Roland McGrath (roland@geech.gnu.ai.mit.edu) + + * vm-limit.c (warnfunction): Renamed to warn_function (was used + inconsistently). + (morecore_with_warning, memory_warnings): Change callers (were + inconsistent). + +1992-10-12 Roland McGrath (roland@geech.gnu.ai.mit.edu) + + * mem-limits.h (start_of_data): Removed extra defn. + (get_lim_data): Define to return void. + +1992-10-12 Roland McGrath (roland@geech.gnu.ai.mit.edu) + + * mem_limits.h: File renamed to mem-limits.h. + * vm-limit.c, ralloc.c: Changed #includes. + +1992-10-11 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * syntax.c (find_defun_start): scan_buffer returns start of line; + no need to advance over newline. + + * vm-limit.c (morecore_with_warning): + Reduce warnlevel when usage drops far enough. + * ralloc.c (check_memory_limits): Likewise. + + * vm-limit.c (memory_warnings): Renamed from malloc_init. + Don't set lim_data or warnlevel. Use start_of_data if start is 0. + * ralloc.c (memory_warnings): New function; just set warning data. + Use start_of_data if start is 0. + * emacs.c (Fdump_emacs, main): Use memory_warnings. + + * mem_limits.h [!emacs]: Don't define POINTER, SIZE or NULL. + (start_of_data): Define as macro, if !emacs. + * ralloc.c [!emacs]: Don't include config.h or lisp.h; + instead, use stddef.h. Define POINTER, SIZE, EXCEEDS_LISP_PTR. + * vm-limit.c [!emacs]: Don't include config.h or lisp.h; + instead, use stddef.h. Define POINTER, SIZE, EXCEEDS_LISP_PTR. + + * ralloc.c [!emacs] (safe_bcopy): Define as macro using memmove. + (r_alloc_free): Clear *ptr. + (r_alloc_init): Renamed from malloc_init. Take no args. + Make it static; declare at top of file. + (r_alloc): Call r_alloc_init, if not initialized yet. + (r_alloc_initialized): Renamed from malloc_initialized; moved to top. + (ROUNDUP): Subtract 1, in case arg is already aligned. + + * mem_limits.h (EXCEEDS_LISP_PTR): Renamed from EXCEEDS_ELISP_PTR. + * vm-limit.c (morecore_with_warning): Use EXCEEDS_LISP_PTR. + * ralloc.c (check_memory_limits): Use EXCEEDS_LISP_PTR. + +1992-10-10 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * keyboard.c (Vlast_event_frame): Make this variable exist even + when MULTI_FRAME isn't #defined. People might find it + necessary for writing correct programs, even when the programs + don't explicitly use multiple frames. + (read_char, kbd_buffer_store_event, kbd_buffer_get_event): No need + to test MULTI_FRAME before setting Vlast_event_frame. + (syms_of_keyboard): DEFVAR Vlast_event_frame whether or not + MULTI_FRAME is defined. + + * keyboard.c: Add switch-frame events. + (Qswitch_frame): New event header symbol. + (head_table): Include Qswitch_frame in the table of event heads. + (kbd_buffer_get_event): Detect when a frame switch has occurred, + and return a frame switch event before the enqueued event. + (make_lispy_switch_frame): New function. + (unread_switch_frame): New variable. + (read_key_sequence): Don't throw away the key sequence if the user + switches frames in the middle of the sequence. Instead, when we + receive a switch-frame event in the middle of a key sequence, save + it, and stuff it into unread_switch_frame when the sequence + is complete. + (read_char): If unread_switch_frame is set, return that value. + (command_loop_1): No need to check Vlast_event_frame and select + new frames here; that's taken care of by switch-frame events now. + (syms_of_keyboard): Initialize and staticpro unread_switch_frame. + * keyboard.h (Qswitch_frame): Declare this extern. + + * frame.c: #include "commands.h" and "keyboard.h". + (Fselect_frame): Make this interactive, and accept + switch-frame events as arguments, so we can bind this function to + switch-frame events. + (keys_of_frame): New function; bind switch-frame to Fselect_frame. + * emacs.c (main): Call keys_of_frame. + * keymap.c (initial_define_lispy_key): New function, for defining + non-ascii keys. + * ymakefile: Note that frame.o depends on commands.h and keyboard.h. + + * callint.c (Fcall_interactively): Allow multiple 'e' specs. + (Finteractive): Doc fix. + * keyboard.h (this_command_keys, this_command_key_count): Added + external declarations. + + * keymap.c (access_keymap): Treat bindings for Qt as default + bindings, when new argument T_OK is non-zero. + (get_keyelt, Fdefine_key, Flookup_key): Call access_keymap with + T_OK false. + * keyboard.c (follow_key, read_key_sequence): Call access_keymap + with T_OK true. + + * keyboard.c (apply_modifiers): Copy the value of BASE's + Qevent_kind property to the new symbol. + + * keyboard.c (syms_of_keyboard): Qevent_kind should be initialized + to intern ("event-kind"), not intern ("event-type"). + +1992-10-10 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * fileio.c (Fwrite_region): If VISIT is a file name, + use that as file name to visit, and print it in the message. + Use it for file locking too. + + * m-ibmps2-aix.h [__GNUC__ >= 2] (LIB_STANDARD): Don't define. + +1992-10-09 Jim Blandy (jimb@totoro.cs.oberlin.edu) + + * ymakefile (FLOATSUP): Renamed to FLOAT_SUPPORT. + (FRAME_SUPPORT, VMS_SUPPORT): New macros. + (lisp): Rebuild this from loadup.el, using the _SUPPORT macros. + + * ymakefile [HAVE_X_WINDOWS, not NO_X_MENU, HAVE_X11] (LIBXMENU): + Link against -loldX, to get the association table functions. + + * xterm.c, xrdb.c: #include <stdio.h> before "xterm.h", to avoid + warnings about redefining NULL under GCC 2.2.2. + +1992-10-09 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * m/pyrmips.h: New file. + + * s/aix3-1.h (PTY_ITERATION, etc.): Defined. + (FIRST_PTY_LETTER): Deleted. + +1992-10-07 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * m/sparc.h: Include <sys/param.h>, to define the FSCALE constant. + + * ymakefile (YMF_PASS_LDFLAGS): Refer to the prefix-args program + using "./prefix-args", not just "prefix-args"; some people don't + have . in their paths. + +1992-10-06 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * link.com: Use gcclib if compiling with GCC. + + * fileio.c (directory_file_name): Don't clobber the envvar + when handling top-level rooted dir. + + * ymakefile (LIB_STANDARD): If ORDINARY_LINK, default this to empty. + + * m/ibmps2-aix.h [USG_SHARED_LIBRARIES]: Define ORDINARY_LINK. + Undef LIB_STANDARD. Modify LD_SWITCH_MACHINE. + + * unexnext.c: New file. + * emacs.c (main) [NeXT]: Call malloc_jumpstart. + +1992-10-05 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * window.c (window_loop): Pass 2nd arg to Fother_buffer. + * frame.c (make_frame): Likewise. + * callint.c (Fcall_interactively): Likewise. + * buffer.c (Fkill_buffer): Likewise. + (Fswitch_to_buffer, Fpop_to_buffer, Fbury_buffer): Likewise. + +1992-10-03 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * keyboard.c (read_key_sequence): Treat mouse clicks on non-text + areas as if they were prefixed with the symbol denoting the + area clicked on - `mode-line', etcetera. + When we throw away an unbound `down-' event, reset mock_input as + well. + + * keyboard.c (Qevent_symbol_element_mask, Qmodifier_cache): Two + new symbols, used to implement caches on event heads. These take + the place of some of the caching that modify_event_symbol used to do. + (parse_modifiers_uncached, apply_modifiers_uncached, + lispy_modifier_list, parse_modifiers, apply_modifiers): New + functions, which replace format_modifiers and reorder_modifiers; + they can be useful elsewhere too. + (reorder_modifiers, modify_event_symbol): Re-implement these in + terms of parse_modifiers and apply_modifiers. modify_event_symbol + now uses a much simpler cache, and takes advantage of the caches + maintained by parse_ and apply_modifiers. + (follow_key): Don't modify NEXT if KEY has no bindings. + (read_key_sequence): Drop unbound `down-' events, and turn unbound + `drag-' events into clicks if that would make them bound. This + benefits from the rewriting of the modifier key handling code. + (syms_of_keyboard): Initialize and intern + Qevent_symbol_element_mask and Qmodifier_cache. + + * keyboard.c (echo_prompt): Terminate the echo buffer properly + even when the string is too long to display in the minibuffer. + (echo_truncate): Just return echoptr - echobuf, rather than + calling strlen on echobuf. + + * alloc.c (Fmemory_limit): New function. + (syms_of_alloc): Defsubr it. + + * window.c (SAVE_WINDOW_DATA_SIZE): Define this using sizeof, + instead of just saying it's 7; that way, we won't get screwed if + we add members to struct save_window_data. + + * window.c (struct save_window_data): Save the currently selected + frame, too. + (Fset_window_configuration): Restore the frame's selected window + using Fselect_window, and then restore the selected frame using + Fselect_frame. + (Fcurrent_window_configuration): Record the currently selected + frame. Update docstring to describe the information now recorded. + +1992-10-02 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * process.c (wait_reading_process_input): Ultrix select seems to + return ENOMEM when interrupted. So, under Ultrix, treat ENOMEM + like EINTR. + + * keyboard.c (modifier_names): The modifier is named "control", + not "ctrl". + + * keyboard.c (modify_event_symbol): Make sure that the unmodified + event header gets the proper properties set on it, by recursing + and letting the same code build the properties for all event symbols. + + * keyboard.c (Qmouse_click): Fix typo which assigned `mouse-click' + symbol to Qmouse_movement. + +1992-10-02 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * undo.c (Fprimitive_undo): + When undoing an insert, move point and then delete. + +1992-10-02 Joseph Arceneaux (jla@churchy.gnu.ai.mit.edu) + + * intervals.c: `copy_intervals' no longer static. + + * intervals.h: Declare `copy_intervals'. + + * buffer.c: #include intervals.h. + + * ymakefile: New macro "INTERVALS", controlled by "USE_INTERVALS", + which defines the interval include file "intervals.h". + New entries for "intervals.c" and "textprop.c". + + * lisp.h: Declare Qbuffer_or_string_p. + +1992-10-02 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * xterm.c (x_find_modifier_meanings): If there are no + modifiers containing a Meta_ keysym, use the Alt keysyms to + denote meta. + (construct_mouse_click): Set the down_modifier bit on mouse + button press events. + (XTread_socket): When processing keypress events, use + x_meta_mod_mask when processing ordinary ASCII characters, not + just when processing function keys and other non-ASCII events. + (XTread_socket): If we receive a MappingNotify event with the + `request' member set to `MappingModifier', then call + x_find_modifier_meanings to refresh x_meta_mod_mask. + + * window.c (Fset_window_configuration): Clean up the way we save + and restore the frame's size. + + * termhooks.h (struct input_event): Doc fix. + (NUM_MOUSE_BUTTONS): New constant. + (click_modifier): New modifier. + (NUM_MODIFIER_COMBOS): Removed. + + * keyboard.h (EVENT_HAS_PARAMETERS): Definition changed - all events + are not 5 elements long. + (EVENT_HEAD): Work correctly on all sorts of events, not just + events with parameters. + (EVENT_WINDOW, EVENT_BUFFER_POSN, EVENT_SCROLLBAR_BUTTON, + EVENT_WINDOW_POSN, EVENT_TIMESTAMP): These aren't useful + anymore; this information may appear twice in an event. These + are replaced by the POSN_ accessors, which are meant to be + composed with the EVENT_START and EVENT_END accessors. + (EVENT_START, EVENT_END): Two new accessors, to get at the + starting and ending position of an event. + (POSN_WINDOW, POSN_BUFFER_POSN, PONS_SCROLLBAR_BUTTON, + POSN_WINDOW_POSN, POSN_TIMESTAMP): New macros, to futher + diasassemble the values returned by EVENT_START and EVENT_END. + * keyboard.c (echo_char, read_char): Apply EVENT_HEAD without first + testing for EVENT_HAS_PARAMETERS; EVENT_HEAD works properly on + all sorts of events now. + (read_key_sequence): Use the new accessors to decide in which window + an event occurred. + * keymap.c (access_keymap, store_in_keymap, + Fsingle_key_description): No need to check for + EVENT_HAS_PARAMETERS before using EVENT_HEAD; the latter now + works properly on all sorts of events. + + * keyboard.c (Qevent_unmodified): Replaced by... + (Qevent_symbol_elements): New property. + (syms_of_keyboard): initialize and staticpro the latter, not the + former. + * keyboard.h (Qevent_unmodified): Extern declaration replaced by... + (Qevent_symbol_elements): This. + (EVENT_HEAD_UNMODIFIED): Use the Qevent_symbol_elements + property, rather than the Qevent_unmodified property. + + * keyboard.c (readable_events): This doesn't need to scan and + discard mouse release events anymore; it just uses + EVENT_QUEUES_EMPTY. + (kbd_buffer_get_event): No need to skip past mouse release events. + + * keyboard.c (button_down_location): New variable, which + stores the location at which each button was pressed, so we + can build a complete drag event when the button is released. + (make_lispy_event): When a button is pressed, record its + location in button_down_location, and turn it into a `down' + event. When a button is released, compare its release + location with its press location, and decide whether to call + it a `click' or `drag' event. + Change mouse movement events to be arranged like click events. + (format_modifiers): Note that the click modifier has no + written representation. + (modifier_names, modifer_symbols): New variables, used to + create the Qevent_symbol_elements property. + (modify_event_symbol): Change the format of the modified + symbol cache; there are too many modifier bits now to use a + vector indexed by a modifier mask. Use an assoc-list instead. + Document the format of the cache. + Put the Qevent_symbol_elements property on each new symbol, + instead of a Qevent_unmodified property. + (symbols_of_keyboard): Put Qevent_symbol_elements properties on + the symbols specified in head_table, not Qevent_unmodifed properties. + Initialize and staticpro modifier_symbols, and staticpro the + window elements of button_down_location. + + * xmenu.c: #include "keyboard.h". + (Fx_popup_menu): Use the event accessors defined in keyboard.h, + instead of writing out cars and cdrs. + * ymakefile: Note that xmenu.o depends on keyboard.h. + +1992-10-02 Joseph Arceneaux (jla@wookumz.gnu.ai.mit.edu) + + * textprop.c: Conditionalize all functions on + "USE_TEXT_PROPERTIES". + * intervals.c: Conditionalize all functions on + "USE_TEXT_PROPERTIES". + Removed #include of "screen.h". + + * alloc.c: #include "intervals.h". + (init_intervals, make_interval, + mark_interval, mark_interval_tree): New functions conditionally + defined. + (make_uninit_string): Call INITIALIZE_INTERVAL. + (INIT_INTERVALS, UNMARK_BALANCE_INTERVALS, MARK_INTERVAL_TREE): + New macros, conditionally defined. + (mark_object): Call MARK_INTERVAL_TREE in case Lisp_String. + (gc_sweep): If text properties are in use, place all unmarked + intervals on the free list. Call UNMARK_BALANCE_INTERVALS on + `buffer->intervals' when unmarking `buffer'. + (compact_strings): Include INTERVAL_PTR_SIZE in calculation for + target of bcopy when relocating strings. + (init_alloc_once): Call INIT_INTERVALS. + (make_pure_string): Include INTERVAL_PTR_SIZE in calculation of + `size'. + Moved static declaration of `mark_object' and other functions up + in the file. + + * fileio.c (Finsert_file_contents): Call offset_intervals if + text was actually inserted. + #include "intervals.h". + +1992-09-30 Joseph Arceneaux (jla@churchy.gnu.ai.mit.edu) + + * data.c: Qbuffer_or_string_p added. + + * syntax.c (describe_syntax): Use insert_char to insert `match'. + + * buffer.c (reset_buffer): Do INITIALIZE_INTERVAL on the buffer's + interval component. + (Fkill_buffer): Likewise. + + * editfns.c (make_buffer_string): Call copy_intervals_to_string. + (Finsert_buffer_substring): Call graft_intervals_into_buffer. + #include "intervals.h". + + * insdel.c: #include "intervals.h" + (prepare_to_modify_buffer): Call verify_interval_modification. + (insert_from_string): Call offset_intervals and + graft_intervals_into_buffer. + (del_range): Call offset_intervals. + (insert): Call offset_intervals. + + * emacs.c: #include "intervals.h". + (main): Call syms_of_textprop. This is only really present if + Emacs is compiled with USE_TEXT_PROPERTIES defined. + + * buffer.h: New macro TEMP_SET_PT. If intervals are used, SET_PT + and TEMP_SET_PT are function calls. + Similarly for BUF_SET_PT and BUF_TEMP_SET_PT. + Added DECLARE_INTERVALS to buffer structure to conditionally + compile an interval tree into it. + + * intervals.h: Declare temp_set_point. + +1992-09-30 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * ymakefile (config.h): Doc fix. + +1992-09-30 Joseph Arceneaux (jla@churchy.gnu.ai.mit.edu) + + * config.h.in: Added a slot for definition of USE_TEXT_PROPERTIES, + controlling compilation of interval code. + If using GNUC, support inline functions. + + * lisp.h: Conditionally define interval structure and macros. + Add DECLARE_INTERVALS to struct Lisp_String. + +1992-09-30 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * buffer.c (Fother_buffer): Add back the VISIBLE_OK argument. It + got removed with no comment or ChangeLog entry, and + append-to-buffer uses it. + + * window.c (struct save_window_data): Add a member called + focus_frame, to save and restore the screen's focus frame. + (Fset_window_configuration): Redirect the frame's focus as + indicated in the window configuration. + (Fcurrent_window_configuration): Record the frame's current focus. + * minibuf.c (read_minibuf): Don't bother to save the current + frame's focus, and have read_minibuf_unwind restore it; saving and + restoring the window configurations will take care of that. + (read_minibuf_unwind): Don't worry about restoring the frame's focus. + + * window.c (Fset_window_configuration): Don't select the frame + just because we restored its configuration. + + * window.c (Fset_window_configuration): Don't forget to set the + frame's selected window when we can't call Fselect_window. + + * xterm.c (x_meta_mod_mask): New variable, indicating which X + modifier bits denote meta keys. + (x_find_modifier_meanings): New function, to set x_meta_mod_mask. + (x_convert_modifiers): Use that. + (x_term_init): Call x_find_modifier_meanings. + + * data.c (Fmake_local_variable): If SYM forwards to a C variable, + swap in the value for the current buffer immediately. + + * lisp.h: Doc elaboration for Lisp_Buffer_Local_Value. + +1992-09-29 Joseph Arceneaux (jla@churchy.gnu.ai.mit.edu) + + * textprop.c (Ferase_text_properties): Merge intervals when + possible. + +1992-09-29 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * xselect.c (Qcut_buffer0): Symbol removed; we're using a new + interface to the cut buffer now. + (NUM_CUT_BUFFERS, cut_buffer_atom, cut_buffer_value, + cut_buffer_cached, cut_buffer_just_set): New variables. + (Fx_own_selection, Fx_selection_value): Dike out the code to + handle CUT_BUFFER0 requests. + (Fx_get_cut_buffer, Fx_set_cut_buffer, x_watch_cut_buffer_cache, + x_invalidate_cut_buffer_cache): New functions. + (syms_of_xselect): Don't bother to initialize Qcut_buffer0. + Initialize and staticpro cut_buffer_value, and defsubr + Sx_get_cut_buffer and Sx_set_cut_buffer. + * xterm.c (XTread_socket): Pass PropertyNotify events from the + root window to x_invalidate_cut_buffer_cache. + (x_term_init): Call x_watch_cut_buffer_cache here. + + * keymap.c (access_keymap): Don't forget to QUIT while scanning + the keymap. + + * keyboard.c (recent_keys): This needs to be staticpro'ed. Change + it from a C array, which is a pain in the neck to staticpro, into + a lisp vector, which is easier. + (read_char, Frecent_keys): Access recent_keys as a lisp vector, + not a C array. + (syms_of_keyboard): Set recent_keys to be a vector, and staticpro it. + + * ymakefile (xfns.o): This doesn't depend on xselect.c. + + * xterm.h (ROOT_WINDOW): Use the DefaultScreen macro, not the + XDefaultScreen function. + + * frame.c (Fdelete_frame): Call Fselect_frame with the appropriate + number of arguments. + + * data.c (Frem): Use the `fmod' function under SunOS, Ultrix, and + HP/UX, not just under USG systems. + + * buffer.c (Fbury_buffer): This used to undisplay the buffer being + buried only if the BUFFER argument was nil. Instead, undisplay the + buffer whenever it's displayed in the selected window, no matter + how it was specified by BUFFER. This is how it behaves in 18.58, + and I can't find any ChangeLog entry in 18.58 or 19.0 saying why + they differ. Fix the doc string accordingly. + +1992-09-28 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * frame.c (Fselect_frame, Fframe_root_window, + Fframe_selected_window, Fnext_frame, Fmake_frame_visible, + Fmake_frame_invisible, Ficonify_frame): Doc fixes. + + * ralloc.c: Since the users of the relocating allocation code + handle memory exhaustion, it's better to return an error code to + them than to call abort. + (obtain): If we cannot allocate more memory, don't call + abort. Instead, return non-zero iff the allocation is successful. + (get_more_space): If obtain fails, return zero. + (get_bloc): Return zero if we can't allocate the new bloc. + (r_alloc_sbrk): Return zero if we can't allocate more memory. + (r_alloc): If we can't allocate more memory, set *PTR to zero and + return zero. + (r_re_alloc): If we can't allocate more memory, leave *PTR + unchanged, and return zero. + + * ralloc.c (warnfunction): Renamed to warn_function; users changed. + +1992-09-28 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * insdel.c (del_range): Call record_delete before updating point. + + * fileio.c (Finsert_file_contents): Do record_insert, then inc MODIFF. + + * undo.c (record_delete): Record pos before the deletion. + (Fprimitive_undo): Go back to recorded position. + +1992-09-28 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * window.c (delete_all_subwindows): Save the window's buffer in + its `height' field; we may need to know the window's old buffer + once we have restored it from a window configuration. + (Fset_window_configuration): When we restore a window, if its + `height' field is a buffer, restore its `buffer' field from that. + This allows us to leave the window's buffer unchanged if the + buffer recorded in the configuration is dead. + + * window.c (delete_all_subwindows): Removed unused variable named + "count". + +1992-09-27 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * keyboard.c (read_char): If we're returning an event from a + macro, set Vlast_event_frame to Qmacro, instead of leaving it set + to the frame of the previous real event. + (read_key_sequence): If Vlast_event_frame isn't a frame, don't + bother switching buffers. + (syms_of_keyboard): Doc fix for Vlast_event_frame. + (Vlast_event_frame): Doc fix. + + * termhooks.h (alt_modifier, hyper_modifier, super_modifier, + down_modifier, drag_modifier): New modifiers, to support the new + input system. Re-arranged modifiers so that their bits are in + canonical order; this makes reorder_modifiers slightly simpler. + * keyboard.c (format_modifiers, reorder_modifiers): Handle the new + modifier bits. + + * keymap.c (access_keymap): Remove code to notice bindings for + Qt. + +1992-09-25 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * xmenu.c (single_keymap_panes): Handle vectors properly. + +1992-09-25 Jim Blandy (jimb@geech.gnu.ai.mit.edu) + + * keymap.c (Fwhere_is_internal): Don't forget to advance map to + the next element when we find something that is neither a vector + nor a cons. Don't forget to QUIT in the appropriate places, + either. + +1992-09-23 Joseph Arceneaux (jla@geech.gnu.ai.mit.edu) + + * textprop.c (Fset_text_properties): Merge adjacent intervals with + the same properties. + (Fnext_single_property_change, Fprevious_single_property_change): + New subrs. + + * intervals.c (merge_interval_left, merge_interval_right): Abort + if caller tries to merge first (or last, respectively) interval. + Delete the interval node after merging. + (copy_intervals): Use `split_interval_right' rather than creating + new intervals with make_new_interval and attaching them + explicitly. + (verify_interval_modification): Changed error message. GCPRO + hooks before calling Fnreverse, and correctly Fcdr down the list. + Also, don't cons multiple copies of the same consecutive + modification hook. + (temp_set_point): New function. + (set_point): Call point-left and point-entered hooks if moving + between text with different properties. Use the old and new + positions as arguments to these calls. + + * intervals.c, intervals.h: (map_intervals, make_buffer_interval, + make_string_interval,run_hooks): Deleted. + +1992-09-23 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * keymap.c (DENSE_TABLE_SIZE): Doc fix. + (keymap_table): Function removed; this function exists only to + support an incorrect understanding of the format of keymaps. + (access_keymap, store_in_keymap, Fcopy_keymap, + Faccessible_keymaps): Correctly handle vectors at any point in the + keymap; don't assume it must be at the front. + (describe_map): Instead of calling describe_vector on the vector + in the cadr of the keymap (if present) and then calling + describe_alist to do the rest, just call describe_map_2. + (describe_alist): Renamed to describe_map_2; call describe_vector + when we encounter a vector in the list. + * xmenu.c (single_keymap_panes): Comment out the code which + tries to handle a dense keymap's table; it uses keymap_table, and + the rest of the code never uses the table contents anyway. + + * keymap.c (access_keymap, store_in_keymap): Clarify error message + for non-ASCII characters. + + * process.c [SIGCHLD && !BSD && !UNIPLUS && !HPUX] + (create_process): #if 0 out the code which sets the child's + handler for SIGCHLD to sigchld; the code which gives sigchld its + value has been diked out under these CPP symbols, so this should + be diked out too. + + * indent.c (Fmove_to_column): Pass the right number of arguments + to Findent_to. + +1992-09-22 Jim Blandy (jimb@kropotkin.gnu.ai.mit.edu) + + * emacs.c (emacs_priority): Doc fix. + (main): Use nice, not setpriority; we just need a + simple, portable call to nice here. + * callproc.c (child_setup): Use nice, not setpriority. + * sysdep.c (sys_suspend): Don't try to use "nice (- nice (0))" to + set the subshell's priority to normal; nice doesn't return a + defined value on all systems. Instead, since emacs_priority gives + the priority that Emacs was nastied to, we can use it to reset the + priority in a straightforward way. + [BSD4_1], [USG], [VMS] (setpriority): Remove dummy and + compatibility definitions of setpriority. + + * keymap.c (access_keymap): Return the binding of Qt as the + binding for all unbound characters. + + * fileio.c (syms_of_fileio): Don't try to defsubr Sunix_sync + unless it's actually been defined - that is, if unix is #defined. + + * xrdb.c (x_get_resource): Cast the value being assigned to + ret_value->addr, rather than ret_value->addr itself; only GCC + allows you to cast lvalues. + + * eval.c (unbind_catch): Do the long-jump here. Take a VALUE + argument, which specifies the value to return to the catch, or the + data to give to the condition handler. Renamed to + unwind_to_catch, to reflect new role. + (Fsignal, Fthrow): Removed code to set catch tag value and do the + long-jump; this is taken care of by unwind_to_catch. + +1992-09-21 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * alloc.c (mark_object): Avoid car recursion on cons with nil in cdr. + Avoid recursion on constants-vector of a compiled function. + + * oldXMenu: Symlink deleted; anything that uses it needs fixing + in any case to work properly on systems without symlinks. + +1992-09-20 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * s/sol2.h: New file. + + * fileio.c: Don't include sys/dir.h. + + * s/usg5-4.h (LIBS_SYSTEM): Move non-default libraries here. + (LIB_STANDARD, START_FILES): Deleted. + (ORDINARY_LINK): Defined. + + * ymakefile [ORDINARY_LINK]: Default LD to $(CC) + and make START_FILES and LIB_STANDARD empty. + (C_SWITCH_X_MACHINE, C_SWITCH_X_SYSTEM): New macros, default empty. + (CFLAGS): Use them. + +1992-09-19 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * ymakefile (${etc}DOC): Use OBJECTS_SYSTEM and OBJECTS_MACHINE. + + * dired.c [VMS]: Include string.h, rms.h, rmsdef.h. + [VMS] (Ffile_version_limit): New function. + + * sysdep.c (sys_suspend): Read EMACS_PARENT_PID envvar for parent. + + * syntax.c (scan_lists): When searching back for comment: + if comment-end is 2 chars, assume it does end a comment. + Otherwise, scan back to previous comment-end to see if there's + a comment starter between. Also record whether the string quotes + between the start and the end are paired and uniform. + If so, skip to comment starter. If not, scan from start of + defun to find comment starter if any. + (find_defun_start): New function. + + * alloc.c (mark_object): Save last 500 values of objptr. + Check for clobberage of ptr, when marking a vector. + +1992-09-18 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * keymap.c (get_keyelt): Skip menu help string after menu item name. + +1992-09-18 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * buffer.c (Fget_buffer_create): Doc fix. + + * lisp.h (struct handler): Remove the poll_suppress_count member + of this structure; it is always equal to the poll_suppress_count + of its catchtag structure. The non-local exit code in eval.c is + difficult enough to understand as it is; needless duplication + doesn't help. + * eval.c (Fcondition_case): Rearranged for clarity. Don't worry + about setting h.poll_suppress_count; it's guaranteed to be the + same as c.poll_suppress_count. + (internal_condition_case): Don't worry about + h.poll_suppress_count. + (Fsignal): Use h->tag->poll_suppress_count instead of + h->poll_suppress_count. + + * eval.c (Fsignal): It's okay for the debugger to return to the + caller if the caller was signalling a quit. + + * eval.c (unbind_catch): Restore the polling suppression count + here, instead of in Fsignal and Fthrow. + (Fthrow, Fsignal): Don't restore the polling suppression count here. + + * lisp.h (struct specbinding, struct handler): More documentation. + * eval.c (struct catchtag): More documentation. + +1992-09-17 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * ymakefile (LIBX): Don't use -loldX. + +1992-09-17 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * minibuf.c (get_minibuffer): Enable undo in minibuffers. + +1992-09-14 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * ymakefile (LIBXMENU): Check NO_X_MENU, not HAVE_X_MENU + * emacs.c (main): Use X menu code if HAVE_X_WINDOWS and not NO_X_MENU. + * keyboard.c (read_char_menu_prompt): Likewise. + + * config.h.in: Delete everything about config.h. + + * emacs.c: Eliminate HIGHPRI as compilation option. + (emacs_priority): New C variable, also Lisp variable. + (main): Set the priority iff emacs_priority is nonzero. + +1992-09-14 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * eval.c (entering_debugger): Variable renamed + when_entered_debugger, and is now a timestamp based on + num_nonmacro_input_chars. + (init_eval): Initialize when_entered_debugger, not + entering_debugger. + (call_debugger): Set when_entered_debugger to the current value of + num_nonmacro_input_chars. + (find_handler_clause): Don't call debugger unless + num_nonmacro_input_chars is greater than when_entered_debugger; + that way, we won't call the debugger unless the user has had a + chance to take control. + (Fbacktrace): Don't clear entering_debugger here. + * keyboard.h (num_nonmacro_input_chars): Added extern declaration + for this. + + * fns.c (Fy_or_n_p): After testing for a QUIT, clear Vquit_flag. + Otherwise, if Fy_or_n_p is called while Vinhibit_quit is true and + the user presses C-g, this function goes into an infinite loop. + + * dispnew.c (get_display_line): Don't abort if the frame is + invisible; since unmap events are handled at the interrupt level, + a screen may become invisible at any time. + +1992-09-13 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * fileio.c (Fverify_visited_file_modtime): + Pass buffer itself to handler, if have handler. + (Fwrite_region): GCPRO around Fexpand_file_name, Ffile_name_directory. + (Fread_file_name_internal): GCPRO around file name manip. + (Ffile_writable_p, Ffile_readable_p): Use abspath, not filename, + (Ffile_executable_p, Ffile_exists_p): to run the handler. + (Fset_file_modes, Ffile_directory_p, Ffile_modes): Likewise. + (Ffile_newer_than_file_p): GCPRO around expand_and_dir_to_file. + +1992-09-13 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * s/bsd4-3.h: Give the BSD4_3 and BSD symbols the same numeric + definitions they'll get in <sys/param.h>, to avoid warnings. + + * m/hp9000s300.h: Don't include <sys/wait.h>. This really + shouldn't be necessary. + (BIG_ENDIAN): Define this as "4321", to agree with + <machines/endian.h>, and avoid warnings. + + * systime.h: Re-arrange inclusion of <sys/time.h> and <time.h> so + that they don't both get included under BSD, and do both get + included under AIX. + + * xdisp.c (display_mode_line): If the only other frames are + minibuffer frames, don't name the frame after the in the selected + window. We can use Fnext_frame to do this test easily. + +1992-09-12 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * process.c (Faccept_process_output): Initialize useconds. + + * keyboard.c (num_nonmacro_input_chars): New variable. + (read_char): Use num_nonmacro_input_chars to decide on auto-save & gc. + Increment it when appropriate. + (record_auto_save): Use num_nonmacro_input_chars. + + * fileio.c (Ffile_name_directory, Ffile_name_nondirectory): + (Ffile_name_as_directory, Fdirectory_file_name, Fexpand_file_name): + Call find_file_handler. + (syms_of_fileio): Set up Qfile_name_directory, etc. + (Fcopy_file): Call find_file_handler for newname as well as for filename. + (syms_of_fileio): Initialize Vfile_name_handler_alist. + +1992-09-11 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * callint.c (Fcall_interactively): Remove the 'K' interactive + code, in favor of 'e'; that's a better name. + +1992-09-11 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * s/esix5r4.h: New file. + + * sysdep.c (init_sys_modes): Handle VDSUSP like V_DSUSP. + Use CDISABLE, not CDEL. + Turn off IEXTEN if it exists. + * systty.h (CDISABLE): New macro; may be defined from CDEL. + + * keyboard.c (command_loop_1): Bind inhibit-quit to t when in Fsit_for. + +1992-09-10 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * Makefile.in: Add comments starting with "# DIST: " explaining + that this gets munged by the configure script. + +1992-09-10 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * s-aix3-1.h (HAVE_GETHOSTNAME): Defined. + +1992-09-09 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * frame.c (choose_minibuf_frame): abort if the selected frame has + nil in its minibuffer_window slot; this shouldn't happen any more. + * window.c (minibuffer_window): Accept an optional FRAME argument; + if specified, return the minibuffer used by that frame. + + * keymap.c (describe_buffer_bindings): Adjust key_heading to match + the format used by describe_map_tree. Also, don't reprint the + "key binding" header above the global bindings if we've already + printed it for the local bindings; it's clear enough that the + columns mean the same thing as above. + +1992-09-08 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * ralloc.c (r_re_alloc): Instead of allocating a new bloc at the + end of the heap, copying the data to it, and then freeing the + original bloc, just expand the original block. This saves a copy + and a call to sbrk, and also removes the large spike in memory + allocation that would occur when resizing large buffers. And it's + less code. + + * keyboard.h (Vkeyboard_translate_table): Declare this extern + here, so describe_buffer_bindings can use it. + * keymap.c (describe_buffer_bindings): Declare buf and bufend... + +1992-09-05 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * systime.h: Always #include <time.h>, not just when NEED_TIME_H + is defined. It gets us struct tm. #include <sys/time.h> whenever + HAVE_TIMEVAL is defined and NEED_TIME_H isn't. + + * systime.h: Note that the tz_dsttime field of the struct timezone + returned by gettimeofday doesn't say whether daylight savings is + _currently- active; rather it specifies whether it is *ever* + active. + (EMACS_GET_TZ_OFFSET_AND_SAVINGS): Removed `savings_flag' + argument, and renamed to EMACS_GET_TZ_OFFSET. Don't try to + extract savings information. EMACS_CURRENT_TIME_ZONE should call + localtime to figure out whether DST is active. + + * m/hp9000s300.h: #include <sys/wait.h> before doing anything + else, to avoid conflicts between the system's and Emacs's + definitions of BIG_ENDIAN. + + * keymap.c (describe_buffer_bindings): Set the current buffer to + descbuf before calling current_minor_maps; that function's value + depends on the values of buffer-local variables. Don't set the + current buffer to Vstandard_output until afterwards. + + * keymap.c (describe_buffer_bindings): If + Vkeyboard_translate_table is in effect, describe its effects. + + * frame.c (Fnext_frame): Doc fix. + + * frame.c (prev_frame): #if 0'd out; nobody uses this. + + * frame.c (next_frame): The logic which determines whether a frame + is acceptable to return was misarranged; rewrote it. + (prev_frame): Same thing. + +1992-09-05 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * syntax.c (scan_lists): Improve smarts for backwards scan of comments. + Don't modify comstyle inside that loop. + If string quotes don't match up, don't take value from OFROM; + instead, parse forward using scan_sexps_forward. + (scan_sexps_forward): Return value via a pointer passed in. + New element in state contains char addr of last comment-starter seen. + (Fparse_partial_sexp): Change call to scan_sexps_forward. + +1992-09-04 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * xmenu.c (xmenu_show): If no panes, just return. + + * keyboard.c (last_nonmenu_event): New var. + (syms_of_keyboard): New Lisp var. + (read_key_sequence): Use that instead of prev_event. + * commands.h (last_nonmenu_event): Declared. + * callint.c (Fcall_interactively): For `K', use last_nonmenu_event. + Make `e' alias for `K'. + +1992-09-03 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * editfns.c (Fcurrent_time_string): Change docstring to + indicate that we will probably add the timezone to the end, + now that we have it available on many systems. + + * xrdb.c: Don't include <X11/Xos.h>. Under R4, it stupidly + insists on defining SIGCHLD, even if it already has a definition. + (file_p): Use the constant 4 instead of R_OK; empirically, the + number is more portable than the symbol if you count the #include + hair you have to go through to get R_OK defined. Ffile_readable_p + does this too. + + * xterm.c (x_wm_set_size_hint): Set the base_width and base_height + members of size_hints, if they're available (X11R4 and after); + otherwise, approximate the right thing, by using min_width and + min_height as the base size. + +1992-09-02 Barry A. Warsaw (warsaw@anthem.nlm.nih.gov) + + * Extended syntax.c in the following ways to support up to 2 + orthogonal comment styles per mode. This is needed for C++. + Bit 6 of syntax table entry for a character indicates + it is part of the `b' comment style. Otherwise it is + part of the `a' style. + * syntax.h (SYNTAX_COMMENT_STYLE): New macro. + * syntax.c (Fmodify_syntax_entry): Set that flag for `b'. + (describe_syntax): Print the `b' flag. + (scan_lists, scan_sexps_forward): Handle the new flag. + (Fparse_partial_sexp): Return new element in value. + +1992-09-02 Roland McGrath (roland@geech.gnu.ai.mit.edu) + + * fileio.c (syms_of_fileio): Doc fix for Vfile_name_handler_alist. + +1992-09-02 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * keyboard.c (kbd_buffer_get_event): When performing the + FRAME_FOCUS_FRAME redirection, don't modify the frame field of + the event; that fatally corrupts mouse click events. Instead, + just perform the redirection on the value assigned to + Vlast_event_frame. + + * callint.c (Fcall_interactively): Don't try to get the + `enable-recursive-minibuffers' property from FUNCTION unless + FUNCTION is actually a symbol; there are some cases where a key + sequence is bound directly to a lambda form, and there's no reason + to break these. + + * window.c (Fset_window_configuration): Don't signal an error + if the frame size saved in the window configuration doesn't + match the frame's current size; instead, temporarily resize + the frame while installing the window configuration. This is + important because using the minibuffer saves and restores the + current window configuration, and you don't want to signal an + error just because the user resized the frame while using the + minibuffer. + + * doc.c (Fsnarf_documentation): Signal an error if this is + called in a dumped Emacs. + + * alloc.c (mark_object): mark a symbol's name after marking its + value, function, and property list rather than before; this way, + symbols' names are readable, giving us a chance to detect some + kinds of heap corruption. + +1992-09-02 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * emacs.c (__main, __do_global_dtors): New dummy functions. + (__do_global_ctors_aux, __do_global_ctors): Fix typo in fn names. + +1992-09-01 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * prefix-args.c: New file. See comment at top of file. + * ymakefile (YMF_PASS_LDFLAGS): Use the prefix-args program to + affix the -Xlinker prefix to the linker arguments. + (prefix-args): New target. + (temacs): Depend on prefix-args. + + * xterm.c (x_catch_errors): Don't forget to initialize + x_caught_error_message to the null string, so x_check_errors can + tell when an error has occurred. + + * unexmips.c (mark_x): Declare this as static void at the top of + the file and at the function definition. + + * keyboard.c (input_available_signal): Declare this to return + SIGTYPE. + + * xrdb.c (getuid): Declare this to return short. + + * s/bsd4-3.h: Remove definition of SIGTYPE macro; Mt. Xinu says + it's int, but Ultrix says it's void. Since the SIGTYPE guessing + code in the `configure' script gives the correct answer for both + of these cases, there's no point in listing it here. + + * systime.h (EMACS_CURRENT_TIMEZONE): Change documentation to + indicate that *OFFSET should be set to the number of minutes EAST + of Greenwich, which is what Ed Reingold says real time gurus want. + Changed the definition of the EMACS_GET_TZ_OFFSET_AND_SAVINGS + macro to reflect this. Buggily, the Fcurrent_time_zone function + was already expecting minutes east of GMT. + + * Makefile.in (distclean): Remove backups from the `m' and `s' + directories, too. + + * m/mips.h: Merge changes from Emacs 18.58: + [NEWSOS5]: Changes so this file can be used with s/newsos5.h. + (SIGN_EXTEND_CHAR): Define this using a cast to signed char. I + guess the MIPS compiler and its derivatives all have this type. + (HAVE_ALLOCA, C_ALLOCA): Define the former if we're compiling with + GCC, and the latter otherwise. + (C_SWITCH_MACHINE): Defined, instead of C_SWITCH_SYSTEM. + (LINKER): Defined, if BSD. + (XUINT, XSET, XUNMARK): Add parentheses to eliminate warnings from + GCC. Reindent to fit in 80 columns. + INHIBIT_BSD_TIME prevents including bsd/sys/time.h. + * s/newsos5.h: New file for Sony NEWS-OS release 5, courtesy of + Chris Hanson <cph@klia.ai.mit.edu>. + + * m/mips.h: Don't undefine LOAD_AVE_TYPE; the comment says that + Emacs 19 has the crocks to handle it properly. + + * m/pmax.h: Merge changes from Emacs 18.58: + (LIB_STANDARD, COFF, TERMINFO): Cancel out definitions from + m/mips.h which are only appropriate for USG. + (MAIL_USE_FLOCK, HAVE_UNION_WAIT): Do define these. + (BROKEN_O_NONBLOCK): Defined. + (LINKER): Don't define this. + [OSF1]: Undef C_ALLOCA, define HAVE_ALLOCA. + + * s/osf1.h: New file. + + * s/bsd4-3.h: Merge changes from Emacs 18.58: + (BSD, BSD4_3): Just define these, don't fret about numerical + values or version numbers. + + * m/hp9000s300.h: Merge changes from Emacs 18.58, and hp300bsd.h: + Change configuration note to say it's okay to use this file for BSD. + Add comment saying that NOMULTIPLEJOBS must be defined for + versions of HP/UX before 6.5. + Don't define BIG_ENDIAN if it seems that <endian.h> has already + done so. + [BSD4_3] Define m68000, instead of hp9000s300; crt0.c uses these + to decide what sort of startup code to use. + [not BSD4_3] Under HP/UX, always define the BSD memory functions + (bcopy, bzero, and bcmp) in terms of the SYSV string functions + (memcpy, memset, and memcmp), not just under HP/UX 5; version 6's + BSD compatibility library has reported bugs in `signal'. + (NEED_BSDTTY): Move this symbol's definition inside the "not + BSD4_3" conditional, since it's only relevant to HP/UX. + * m/hp300bsd.h: File deleted, since m/hp9000s300.h now + works with both HP/UX and BSD; it includes m/hp300bsd.h's + specifications. + + * m/hp9000s300.h: Remove definition for SIGN_EXTEND_CHAR; this is + only used by the regexp code, which has its own portable + definition these days. + +1992-08-31 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * keymap.c (Fmake_sparse_keymap): New optional arg. Callers changed. + (Fmake_keymap): Likewise. + + * emacs.c (__do_global_ctors, __do_global_ctors_aux): New dummy fns. + (__CTOR_LIST__, __DTOR_LIST__): New dummy variables. + + * fileio.c (Fdo_auto_save): Always call record_auto_save. + + * keyboard.c (read_char): Call read_char_menu_prompt here. + Accept 4 new args to pass to it. Include them in recursive call. + Don't delay before starting echo if prev_event was a mouse event. + Test for eof in batch mode now understands C is a Lisp_Object. + (read_key_sequence): Don't call it here; always call read_char. + Don't change last_event_buffer after a mouse menu input. + (read_char_menu_prompt): Arg PROMPT deleted. + Return nil if nothing to do. + + * xmenu.c (Fx_popup_menu): Treat coords relative to spec'd window. + (single_keymap_panes): New function; contains guts of keymap_panes. + If a command binding for submenu has a prompt string starting with @, + make a separate pane for it at this level. + + * xfns.c (Fx_track_pointer): Pass new args to read_char. + (Fx_select_region, Fx_horizontal_line): Likewise. + * lread.c (Fread_char): Pass new args to read_char. + (Fread_event, Fread_char_exclusive): Likewise. + * fns.c (Fy_or_n_p): Pass new args to read_char. + +1992-08-30 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * keyboard.c (read_key_sequence): Keep track of prev_event. + Pass new proper args to read_char_menu_prompt. + (read_char_menu_prompt): New arg prev_event. Use Fx_popup_menu. + Handle any number of keymaps, not just LOCAL and GLOBAL. + Invert meaning of arg PROMPT. Test of menu_prompting was backwards. + + * keymap.c (keymap_table): No longer static. + + * xmenu.c (keymap_panes): New function. + (Fx_popup_menu): Accept keymap or list of keymaps as MENU argument. + Accept mouse button event as POSITION argument. + +1992-08-29 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * cmds.c (internal_self_insert): Assume Fexpand_abbrev expanded + something if it incremented MODIFF. + +1992-08-28 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * unexmips.c (unexec): Allow sections in any order. + Adjust addresses of rdata section as well as data section. + + * buffer.c (syms_of_buffer): Made buffer-display-table, + buffer-field-list and buffer-undo-list allow any type of value. + +1992-08-27 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * fns.c (Fappend): Doc fix. + +1992-08-24 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * s/usg5-4.h: Incorporate changes from 18.58: + (LIBX10_SYSTEM): Undefine this. + (GNULIB): Definition deleted -- done in ymakefile. + (LIB_STANDARD): Don't use GNULIB. + (HAVE_TCATTR): Defined. + + * xfns.c (x_icon): Don't call x_wm_set_icon_positions if the user + hasn't specified the icon position. Let the window manager put + the icon where it likes. + + * xterm.c (x_make_frame_invisible): Don't forget to check the + return value of XWithdrawWindow; it could indicate that the window + wasn't successfully redrawn. + + * sysdep.c (init_baud_rate): Re-arranged order of conditionals - + test TERMIOS before TERMIO; when two options might both be + defined, test the most recent first, so that the most recent + functions get used. + + * sysdep.c [HAVE_TERMIO] (init_baud_rate): Don't use tcgetattr + unless HAVE_TCATTR is defined. Only very rarely do termio systems + have the tc{get,set}attr macros. + + * window.c (coordinates_in_window): Do not assume that all + one-line windows are the minibuffer, or that all minibuffers are + one line high. Use MINI_WINDOW_P. + + * systerm.h: Renamed to systty.h, to be more consistent with + everything else in Unix. + * dispnew.c, emacs.c, keyboard.c, process.c, sysdep.c: #include + directive changed. + * ymakefile: References to systerm.h changed. + + * s/usg5-3.h: Merged changes from 18.58: + (HAVE_SYSV_SIGPAUSE): Defined. + (BROKEN_TIOCGETC): Defined. + +1992-08-21 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * process.c (WCOREDUMP): Define only if not defined. + (create_process) [HAVE_SETSID]: Use TIOCSCTTY if exists. + +1992-08-20 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * fileio.c (Fdo_auto_save): Call Fsleep_for with the appropriate + number of arguments. + * fns.c (Fyes_or_no_p): Same. + + * dispnew.c (update_frame): Change the way we handle + cursor_in_echo_area. Firstly, ignore this if the frame we're + updating doesn't have a minibuffer. Secondly, don't handle the + selected frame specially. Thirdly, don't assume that the + minibuffer is only one line high. If cursor_in_echo_area < 0, put + the cursor in the upper-left corner; if cursor_in_echo_area > 0, + put it on the lowest non-empty line in the minibuffer window, or + on the top line. + + * dispnew.c (direct_output_for_insert): Fail if + cursor_in_echo_area is set; we don't want to do the typing there. + (direct_output_for_insert): Same. + +1992-08-19 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * xterm.c (x_make_frame_invisible): Use XWithdrawWindow when + available [HAVE_X11R4]; send the UnmapNotify event when + appropriate [HAVE_X11]; just unmap the window if that's all that's + needed [not HAVE_X11]. + + * xterm.c (x_set_text_property): Removed; it's only called from + one place. Who wants *another* layer of indirection? + * xfns.c (x_set_name): Use XSetWM{Name,IconName} when available + [HAVE_X11R4], or XSetIconName and XStoreName otherwise. + + * xterm.h (FRAME_X_WINDOW): New macro, for readability. + * xterm.c, xfns.c, xselect.c: Use it. + + * emacs.c (Fkill_emacs): Doc fix. + (syms_of_emacs): Doc fix for Vkill_emacs_hook. + + * xterm.c (x_death_handler): Renamed to x_connection_closed. + (x_term_init): Use x_connection_closed as the SIGPIPE handler. + + * xterm.c (acceptable_x_error_p, x_handler_error_gracefully, + x_error_handler): Removed; you can't catch X errors this way, + since you can't perform X operations from within an X error + handler, and even though we call error, we're still within an X + error handler. + (x_error_quitter, x_error_catcher): New functions, for panicking + on and catching X protocol errors. + (x_caught_error_message): Buffer for caught X errors. + (x_catch_errors, x_check_errors, x_uncatch_errors): New functions + for catching errors. + (x_term_init): Set the error handler to x_error_quitter, rather + than x_error_handler. + * xfns.c (x_set_mouse_color): Use x_catch_errors, x_check_errors, + and x_uncatch errors to avoid crashing if the user selects an + odd cursor. + + * xterm.c (x_proto_requests): Removed; it's not important. + + * xterm.c (events): Array removed; it's not used. + + * xfns.c (select_visual): Use XVisualIDFromVisual when available + [HAVE_X11R4]. + + * xrdb.c (get_user_db): Use XResourceManagerString when available + [HAVE_X11R4]. + + * window.c (change_window_height): If the size of the window will + shrink below the minimum, this code would only try to delete it if + it had a parent. Well, even if the window doesn't have a parent, + you want Fdelete_window to signal an error, since you're trying to + resize one of the undeleteable windows into nothingness. So call + Fdelete_window even if the window doesn't have a parent. + + * window.c (MINSIZE): Add kludge so that the minibuffer is always + allowed to shrink to one line in height. + (MINSIZE, CURBEG, CURSIZE): Change these so that their argument + are always Lisp_Objects, not struct window *'s. + (change_window_height): Changed accordingly. + +1992-08-18 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * frame.h (struct frame): New member - explicit_name. + * frame.c (make_frame): Clear it. + * xfns.c (x_set_name): Take new argument EXPLICIT, instead of + OLDVAL. + (x_explicitly_set_name, x_implicitly_set_name): New functions. + (x_frame_parms): Use x_explicitly_set_name here. + (x_window): Use x_implicitly_set_name here. + * xdisp.c (display_mode_line): Use x_implicitly_set_name here. + + * xterm.c (x_wm_hints): Variable deleted. This has to be + per-screen. Duh. + * xterm.h (struct x_display): New member: wm_hints. + * xterm.c (x_wm_set_window_state, x_wm_set_icon_pixmap, + x_wm_set_icon_position): Use F->wm_hints, rather than x_wm_hints. + (x_term_init): Don't initialize x_wm_hints here. + * xfns.c (Fx_create_frame): Instead, initialize f->x_wm_hints + here. + + * xterm.c (x_set_text_property): Properly balance the BLOCK_INPUTs + and UNBLOCK_INPUTs. And remember that VALUE is the string we want + to set the name to, not PROPERTY. + +1992-08-17 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * frame.c (make_minibuffer_frame): Don't set this to auto-raise by + default. It's annoying. + + * frame.c (make_minibuffer_frame): Set the prev field of the + minibuffer window on a minibuffer-only frame to Qnil, rather than + having it point to itself. This confuses code (Fprevious_window + and change_window_height, for example), and is only an attempt to + support a convention that can't really be used in Emacs 19 anymore. + * window.h: Document the fact that we can no longer assume that + the minibuffer's previous window is the root window, since a + minibuffer window in a minibuffer-only frame has a prev field of + nil. + * frame.h [not MULTI_FRAME] (FRAME_ROOT_WINDOW): Define this by + reference to the_only_frame.root_window, rather than by assuming + that minibuf_window->prev is the root window. While this is true + in the non-multi-frame case, we want to discourage this assumption + in code. + * dispnew.c [not MULTI_FRAME] (Fredraw_display): Use + FRAME_ROOT_WINDOW instead of minibuf_window->prev. + * xdisp.c (redisplay, init_xdisp): Same. + * window.c (Fset_window_configuration): Removed #if 0'd code which + assumes that minibuf_window is on the same frame as the window + configuration. Removed special case for windows whose prevs + point to themselves. + + * window.c (Fset_window_configuration): Rename the argument from + ARG to CONFIGURATION, so it matches the docstring. The + make-docfile program cares. + + * window.c [MULTI_FRAME] (syms_of_window): Don't staticpro + minibuf_window; the frame list will take care of it. + + * xterm.h (HAVE_X11R4): Since we can autodetect this, and can + write code more likely to be future-compatible, define this when + appropriate. + * xterm.c (x_set_text_property): Define this appropriately for + X11R3 and X11R4. + + * xterm.c (x_set_text_property): Make this take a Lisp_Object + string as an argument, rather than a pointer and a length. + * xfns.c (x_set_name): Caller changed. + + * xfns.c (x_get_arg): Accept a new type - symbol. If we've + retrieved a string from the xrdb database and the user wants a + symbol, intern it. + (Fx_create_frame): Use the symbol type here. + + * xfns.c (x_figure_window_size, x_icon, Fx_create_frame): Use + values from enum resource_types for the last arg to x_get_arg, + instead of passing numbers. + + * xfns.c (Fx_create_frame): When setting up the scroll bars, use + the type parameter to x_default_parameter, rather than prefixing + the resource name with a question mark. + + * xfns.c [not HAVE_X11] (Fx_create_frame): The resource which + determines whether or not to use a bitmapped icon is called + "IconType", not "BitmapIcon". Update this. + +1992-08-15 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * xterm.c: Doc fixes. + + More SYSV portability changes from Eric Raymond: + + * xterm.c [USG5]: Don't include <sys/types.h>. + + * xterm.c (x_make_frame_invisible): Instead of calling XWithdraw + window, which isn't widely available, write out what it does, + since that's not much. + (x_iconify_frame): Explicitly perform both the X11R3 and X11R4 + methods for iconification; don't use XIconifyWindow, since that's + not present in R3. + + * xterm.c (x_wm_set_size_hint): Don't bother setting the + base_width and base_height members; their function is performed + just as well by the min_width and min_height members, and if we + use XSetNormalHints instead of XSetWMNormalHints, we can be + compatible with R3. + + * xterm.c (x_error_handler): There is no way to invoke the default + error handler which works on all versions of X11, so don't bother; + call XGetErrorText and print the message ourselves. + + * xterm.c (x_term_init): Don't use MAXHOSTNAMELEN; this isn't + defined on all systems. Since we only use that as an initial + guess anyway, it's not very important. + +1992-08-14 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * abbrev.c (Fexpand_abbrev): If pre-expand hook changes the buffer, + assume that means we "did an expansion". + + * cmds.c (internal_self_insert): Ignore value of Fexpand_abbrev; + instead, check whether buf is modified when it returns. + +1992-08-14 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + Applied SYSV portability changes from Eric Raymond: + + * xrdb.c [USG5]: Define SYSV, and then include <unistd.h>. + Apparently, Xlib.h include string.h if SYSV is defined, and + strings.h if not. + Don't include <sys/types.h>; just declare getuid to return an + int. Big deal. + (MAXPATHLEN): If this is not defined by the system's include + files, give it a value of 256. + (get_user_db): Fetch the defaults directly from the display + structure, rather than using XResourceManagerString; that + function doesn't exist in the older versions of X. + + * xterm.c (x_set_text_property): New function. + * xfns.c (x_set_name): Use it instead of XSetWMName and + XSetWMIconName. + + * xfns.c (select_visual): Fetch the visual id directly from v; + don't call XVisualIDFromVisual, since that function is not + available in earlier versions of X. + + * term.c (term_get_fkeys): Some systems define `static' to be the + empty string, which means that you can't have constant + initialized arrays inside a function. So move the `keys' array + outside of the function. + * xdisp.c (decode_mode_spec): Same deal, with lots_of_dashes. + * xfns.c (x_make_gc): Same deal, regarding cursor_bits. + + * term.c (keys): Include definitions for "K2" (the center key on + an IBM keypad), "F1" (F11), and "F2" (F12). Handle "k0" and "k;" + specially; see the code for details. + + * term.c (clear_end_of_line): Remember that on some systems, + "static" gets defined to be the null string, so we can't declare + an array to be static and then initialize it. Since the array in + question (buf) is only one element long, just make it a scalar + rather than an array; it can then be initialized, even if it's + not static. + + * systime.h [not HAVE_TIMEVAL] (EMACS_USECS, EMACS_SET_USECS): + Don't forget to define dummy versions of these. + + * systime.h [USE_UTIME]: time_t is a typedef, not a struct. + Don't prefix it with `struct'. + + * systerm.h (EMACS_SET_TTY_PGRP): When there doesn't seem to be + any way to do this, don't forget to give it a dummy definition. + + * sysdep.c (select): There's no need to cast the return value of + signal anymore, since we have the SIGTYPE macro defined. + + * sysdep.c (read_input_waiting): When scanning for quit + characters, use the value of quit_char, rather than assuming that + C-g is the quit character. And don't forget to declare i. + + * sysdep.c [USG5]: Don't include fcntl.h. + + * s/usg5-3.h: Eric Raymond writes: + Define HAVE_SELECT and BSTRINGS only if HAVE_X_WINDOWS is on, + because that means we'll be linking in the shared libraries + containing the BSD emulations. Teach the file about the shared + libraries necessary to link X programs, because AT&T doesn't + supply static libraries for X. Also, fix the incorrect assertion + that -lg cannot be used with SVr3. Finally, force USE_UTIMES and + BROKEN_TIOCGWINSZ. (Note for the future; there may be a + utimes(2)) emulation lurking in the X shared libraries.) + + * s/usg5-4.h (USE_UTIME): Remove this definition; the C library + still doesn't have utimes. + + * ralloc.c (get_bloc): When initializing new_bloc->variable, cast + NIL to (POINTER *). + (malloc_init): Give warning if sbrk returns zero. Wonder what + that's supposed to mean. + + * process.c (process_send_signal): Don't send SIGTSTP if the + system doesn't have that facility. + + * process.c: [USG5] Don't include <fcntl.h>. + [USG] Don't bother including <termios.h>, <termio.h>, or + <fcntl.h>; systerm.h takes care of all that. + Remove the "mis;tak-+;;" line from the code; apparently this + section of code does get used. + + * minibuf.c (Fread_from_minibuffer): Put this function's doc + string into a comment; it's too long for the PCC preprocessor. + Rah. + (Fcompleting_read): Same deal. + + * keyboard.c (init_keyboard): Changed "#endif SIGIO" to + "#endif /* SIGIO */" + * mocklisp.c (Fml_substr): Same sort of thing. + * process.c (wait_reading_process_input): Same. + + * floatfns.c (Fexpm1, Flog1p): Function removed; it's not widely + available, and hardly vital. + (syms_of_floatfns): Adjusted appropriately. + + * floatfns.c (Flog): Accept optional second arg, being the base + for the logarithm. + [USG] (Flogb): Define this in terms of Flog. + + * data.c [USG] (Frem): Call fmod, rather than drem. Rah. + + * emacs.c [USG5]: Don't #include <fcntl.h> for these systems. + + * alloc.c (Fmake_marker): Removed the test for being called from a + signal handler. The original bug is probably gone, the test + wasn't written portably, and it should probably go somewhere else + anyway - say, funcall or eval. + + End of changes from Eric Raymond. + + * xfns.c (Fx_create_frame): Make the default for the icon-type + parameter nil, not t. It seems to cause problems with some X + servers. + + * lisp.h (DEFVAR_PER_BUFFER): Add new argument, TYPE, to help + check the types of buffer-local variable slots. + * buffer.c (syms_of_buffer): Call DEFVAR_PER_BUFFER with the new + TYPE argument. + * abbrev.c (syms_of_abbrev): Same. + * buffer.c (buffer_local_types): New variable. + (buffer_slot_type_mismatch): New function. + * buffer.h (buffer_local_types): New extern declaration. + * data.c (store_symval_forwarding): When storing through a + Lisp_Buffer_Objfwd, check if the slot requires a particular type, + and report an error if the types clash. + * lread.c (defvar_per_buffer): Support new TYPE argument, by + setting the appropriate slot in buffer_local_types. + +1992-08-13 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * window.c (window_loop): This used to keep track of the first + window processed and wait until we came back around to it. Sadly, + this doesn't work if that window gets deleted. So instead, use + Fprevious_window to find the last window to process, and loop + until we've done that one. + + * window.c [not MULTI_FRAME] (init_window_once): Don't forget to + set the `mini_p' flag on the new minibuffer window to t. + + * window.c (Fwindow_at): Don't check the type of the frame + argument. + + * window.c [not MULTI_FRAME] (window_loop): Set frame to zero, + instead of trying to decode it. + + * frame.h [not MULTI_FRAME] (the_only_frame): Put a comment above + this indicating that it's not GCPRO'd. Put parens around some of + the FRAME_* macros' definitions. + [not MULTI_SCREEN] (Fselected_frame): New function. + + * frame.h [not MULTI_FRAME] (FRAME_ROOT_WINDOW): Define this in + terms of minibuf_window, rather than by reference to + the_only_frame. + * window.c (init_window_once): Initialize minibuf_window before + FRAME_ROOT_WINDOW, so the latter actually points to something. + + * keyboard.c (Fexecute_mouse_event): dyked-out function deleted. + We're not going to use this mouse interface. + (Vmouse_window, Vmouse_event, Vmouse_event_function, + Vmouse_left_hook, Vmap_frame_hook, Vunmap_frame_hook, + Vmouse_motion_handler): Variables deleted; they were to be used by + Fexecute_mouse_event. + (syms_of_keyboard): Same. + (command_loop_1): Remove dyked-out code to support + Fexecute_mouse_event. + (read_char): Same. + + * keyboard.c (Vlast_event_frame): Don't define this window if + MULTI_FRAME is not #defined. + (syms_of_keyboard): Same. + (kbd_buffer_store_event): Don't try to work with Vlast_event_frame + if MULTI_FRAME is not #defined. + (kbd_buffer_get_event): Same. + + * keyboard.c (Fdiscard_input): Removed dyked-out code from when + unread_command_char's quiescent value was -1, not nil. + + * frame.c (make_frame): Stop passing zero to make_window; it's not + expecting any arguments. + +1992-08-12 Jim Blandy (jimb@albert.gnu.ai.mit.edu) + + * unexsunos4.c: Deleted "$Log" header in comments at top of file; + this was beginning to grow RCS hair, which we don't want. + * xmenu.c: Same deal. + +1992-08-11 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * fileio.c (Fread_filename): Don't add one here. + * minibuf.c (Fcompleting_read): Instead, stop subtracting one + here, so this function lives up to its doc string, which I think + specifies an okay way to work. + + * doc.c (Vdata_directory): Removed; this is declared in callproc.c. + (syms_of_doc): Initialization removed. + + * xfns.c (x_get_arg): Return Qunbound for an unspecified + resource, not nil. That way, we can tell the difference between a + false resource and an unspecified resource. + (x_default_error): Use DEFLT if x_get_arg returns Qunbound, not Qnil. + (x_figure_window_size, x_icon, Fx_create_frame): Deal with + Qunbound and Qnil properly. + + * xfns.c (Fx_create_frame): Pass the correct number of arguments + to x_set_font. + + * xfns.c [not HAVE_X11] (Fx_create_frame): Delete section that's + only included if we *do* have X11. Blind patching. + + * xfns.c (x_icon): Rewritten to call x_wm_set_icon_position and + x_wm_set_window_state instead of calling XSetWMHints directly. + * xterm.c (x_wm_hints): New variable. + (x_wm_set_window_state, x_wm_set_icon_pixmap, + x_wm_set_icon_position): Use x_wm_hints. + (x_term_init): Set the `input' field of x_wm_hints, and its flag. + + * xterm.c (x_text_icon): Call x_wm_set_icon_pixmap with a pixmap + of zero, to clear the pixmap. + (x_wm_set_icon_pixmap): Accept this protocol; if pixmap is zero, + specify no pixmap for the icon. + + * xfns.c (x_default_parameter): Don't call store_frame_param here; + it's already taken care of by x_set_frame_parameters. + + * xfns.c (Fx_create_frame): Check for the `icon-type', + `auto-raise', and `auto-lower' parameters. Have `icon-type' + default to t, indicating that we want the nifty gnu in our icons. + (Qauto_lower): New symbol. + + * xfns.c (x_set_icon_type): UNBLOCK_INPUT before reporting the + error, not after. error doesn't return, sklitch-brain. + + * xterm.c (x_set_window_size): Call check_frame_size to make sure + that the requested dimensions are within acceptable limits. + Store the new size information in the frame structure. + + * xfns.c (x_set_frame_parameters): Properly recognize changes to + the height of the frame. Recognize changes of the frame's + position. + + * xfns.c (x_set_frame_parameters): Iterate over ALIST while the + current element is cons, not while it's non-nil. + (syms_of_xfns): Call init_x_parm_symbols after interning all the + other atoms; init_x_parm_symbols expects Qx_frame_parameter to be + initialized. + +1992-08-10 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * xfns.c (Qbackground_color, Qborder_color, Qborder_width, + Qcursor_color, Qfont, Qforeground_color, Qgeometry, + Qhorizontal_scroll_bar, Qicon_left, Qicon_top, Qiconic_startup, + Qinternal_border_width, Qleft, Qmouse_color, Qparent_id, + Qsuppress_icon, Qsuppress_initial_map, Qtop, Qundefined_color, + Qvertical_scroll_bar, Qwindow_id, Qx_frame_parameter): New + symbols, with lisp code to rebuild syms_of_xfns. + (syms_of_xfns): Initialize and staticpro them. + (Qheight, Qminibuffer, Qname, Qnone, Qonly, Qwidth, + Qunsplittable): Add extern declaration for these. + (x_init_parm_symbols): Don't initialize Qx_frame_parameter here; + it's done in syms_of_xfns. + (x_default_parameter): Change the argument char *PROPNAME into a + Lisp_Object PROP; let the caller take care of interning the atom. + (Fx_geometry, x_figure_window_size, x_icon, Fx_create_frame): Use + the new Q... variables, instead of interning things. + + * frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly, + Qunsplittable, Qwidth, Qx): New symbol, with lisp code to rebuild + syms_of_frame. + (syms_of_xfns): Initialize and staticpro them. + (Fframep, Fframe_visible_p, Fframe_parameters): Use + the new Q... variables, instead of interning things. + (store_in_alist): Change the argument char *PROPNAME into a + Lisp_Object PROP; let the caller take care of interning the atom. + + * frame.c (Fframe_visible_p): Doc fix. + + * frame.c (Fframe_parameters): When figuring the `minibuffer' + parameter, if FRAME doesn't have a minibuffer, return `none', not + nil. If it does have a minibuffer with other windows, return the + window. + + * frame.c (Fmodify_frame_parameters): Don't write out the loop for + processing X frame parameters here; do it in the x specific code. + Call the function which deals with this stuff + x_set_frame_parameters, not x_set_frame_parameter. + * xfns.c (x_set_frame_param): Replaced by x_set_frame_parameters. + (x_set_frame_parameters): Process the alist of parameters here. + Notice `width', `height', `top', and `left' parameters. + Hold off changing the frame size and position until the end, so we + can do both parameters at once when they are both specified. + (x_default_parameter): Call x_set_frame_parameters, not + x_set_frame_param. + + * frame.c (Fmake_frame_visible, Fmake_frame_invisible, + Ficonify_frame, Fframe_parameters, Fmodify_frame_parameters, + Fset_frame_height, Fset_frame_width, Fset_frame_size, + Fset_frame_position): Place clauses controlled by FRAME_X_P inside + `#ifdef HAVE_X_WINDOWS ... #endif' clauses. + + * frame.c (Fset_frame_position): Doc fix. + + * dispnew.c (Fredraw_frame): Call clear_frame_records before + calling update_end, so that x_display_box_cursor can rely on the + contents of f->current_glyphs. + + * xfns.c (x_figure_window_size): Indicate that this function + returns an int, rather than just leaving it unstated. + + * xterm.c (x_wm_set_size_hint): Don't try to set the base_height + and base_width elements of size_hints if PBaseSize is not + #defined. Set the minimum frame size according to the information + returned by check_frame_size. + + * window.h (MIN_SAFE_WINDOW_HEIGHT, MIN_SAFE_WINDOW_WIDTH): Macros + removed. + (check_frame_size): New extern declaration. + * window.c (MIN_SAFE_WINDOW_HEIGHT, MIN_SAFE_WINDOW_WIDTH): Macros + defined here now. + (check_frame_size): New function. + * dispnew.c (change_frame_size): Call check_frame_size here, + rather than writing out its code. Don't declare newheight and + newwidth to be register variables, since we take their address. + + * bytecode.c (Fbyte_code): When metering the Bcall opcodes, make + sure the count on the symbol's `byte-code-meter' property does not + overflow. + + * bytecode.c (syms_of_bytecode): Add a docstring for + byte-metering-on. + +1992-08-08 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * dispnew.c (in_display): Variable deleted; it's only ever used as + an unofficial parameter to change_frame_size. + (change_frame_size): New argument, DELAY, which when non-zero + indicates to delay the size change until later. This should be + passed as one from signal handlers. + (window_change_signal): Call change_frame_size with a DELAY of 1. + (do_pending_window_change): Call change_frame_size with DELAY of 0. + * frame.c [MULTI_SCREEN] (Fset_frame_height, Fset_frame_width, + Fset_frame_size): Same. + [not MULTI_SCREEN] (Fset_frame_height, Fset_frame_width, + Fset_frame_size, Fset_screen_height, Fset_screen_width): Same. + * keyboard.c (Fsuspend_emacs): Call change_frame_size with the + proper arguments - the height and width are the second and third + arguments, not the first and second. Pass 0 for DELAY. + * xfns.c (Fx_create_frame): Call change_frame_size with a DELAY of 0. + * xterm.c (XTread_socket, x_do_pending_expose): Call + change_frame_size with a DELAY of 1. + + * xterm.c (in_display): Deleted this; it's never used in xterm.c, + and there is another variable by the same name in dispnew.c. + + * frame.c [not MULTI_SCREEN] (Fset_frame_height, Fset_frame_width, + Fset_frame_size, Fframe_height, Fframe_width): New functions, for + use when Emacs is not compiled with multiple screens. + [not MULTI_SCREEN] (Fset_screen_height, Fset_screen_width): + Functions added for backward compatibility with Emacs 18. These + would be just aliases, except that the version 18 functions don't + take a FRAME argument. + [not MULTI_SCREEN] (syms_of_frame): New function, to defsubr the + above and add screen-height and screen-width as aliases for + Fframe_height and Fframe_width. + * emacs.c (main): Call syms_of_frame unconditionally. When + MULTI_FRAME is not defined, it still provides the Fframe_width, + Fframe_height, Fset_frame_width, and Fset_frame_height functions. + + * frame.c (Fset_frame_width): Change the size of FRAME, not of + selected_frame. + + * frame.c (Fset_frame_width, Fset_frame_height): Declare the + `frame' argument to be a Lisp_Object. It used to be undeclared. + +1992-08-07 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * dispnew.c, frame.c, frame.h, keyboard.c, scroll.c, term.c, + window.c, xdisp.c, xfns.c xterm.c (FRAME_IS_TERMCAP, FRAME_IS_X, + FRAME_HAS_MINIBUF): Renamed these to FRAME_TERMCAP_P, FRAME_X_P, + and FRAME_HAS_MINIBUF_P, for consistency with the rest of the + frame macros. + + * window.h (MIN_SAFE_WINDOW_WIDTH, MIN_SAFE_WINDOW_HEIGHT): New + macros. + * window.c (check_min_window_sizes): New function. + (set_window_height): Call it. + (Fsplit_window, change_window_height): Call it, instead of writing + out its code. + * dispnew.c (change_frame_size): If newlength or newwidth are too + small (according to the value of MIN_SAFE_WINDOW_{WIDTH,HEIGHT}), + force them larger. This isn't really right, but it's better than + crashing. + + * editfns.c (Fcurrent_time_zone): Doc fix. + +1992-08-06 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * editfns.c (Fcurrent_time_zone): Don't forget to include code to + signal an error when EMACS_CURRENT_TIME_ZONE is not defined. + +1992-08-06 Joseph Arceneaux (jla@gnu.ai.mit.edu) + + * doc.c (Vdata_directory): Declared. + (syms_of_doc): Initialized. + + * fileio.c (Fread_filename): Add 1 to the offset position for the + cursor when reading file names. + +1992-08-05 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * systime.h (EMACS_CURRENT_TIME_ZONE): New macro. + * editfns.c (Fcurrent_time_zone): New function. + (syms_of_editfns): defsubr it. + + * keyboard.c (read_key_sequence): Clear the eighth bit of the + character from the key sequence, NOT the index of the character IN + the key sequence. How many tries will it take to get it right? + +1992-08-04 Roland McGrath (roland@churchy.gnu.ai.mit.edu) + + * eval.c (syms_of_eval): Doc fix for debug-on-quit. + +1992-08-03 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * callproc.c (Fcall_process): Doc fix. Used to claim that + Fcall_process doesn't wait when BUFFER was nil. It does. + +1992-07-30 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * keyboard.c (read_key_sequence): Scan for function keys when t >= + mock_input, not when t > mock_input. We do want to scan for + function keys when t == mock_input. + + * keyboard.c (read_key_sequence): Don't increment fkey_end when + testing to see if keybuf[fkey_end] is a meta-character. + +1992-07-27 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * Makefile.in (TAGS): Generate tags for files in ../external-lisp + too. + +1992-07-26 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * eval.c (find_handler_clause): For quit, don't check Vdebug_on_error. + (wants_debugger): Rewrite so it cannot get an error. + + * callint.c (Fcall_interactively): Handle enable-recursive-minibuffers + property on the command, by enabling recursive minibuffers. + (syms_of_callint): Set Qenable_recursive_minibuffers. + +1992-07-24 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * frame.c (Fmake_frame_visible, Fmake_frame_invisible, + Ficonify_frame): Make the first argument optional, defaulting to + selected_frame. + (Ficonify_frame, Fmake_frame_invisible): Add interactive specs, so + we can bind these directly to C-z. + +1992-07-24 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * fileio.c (Fread_file_name): Use new calling convention for + Fcompleting_read, with history as Qfile_name_history. + (syms_of_fileio): Set Qfile_name_history; set the var to nil. + Do staticpro for the recently created Q* vars. + + * minibuf.c (read_minibuf): Two additional args histvar and histpos. + All calls changed. + (Fcompleting_read): Last arg is now HIST--(HISTVAR . HISTPOS). + Arg INIT can now be (INITIAL-STRING . INITIAL-POSITION). + Pass BACKUP_N arg to read_minibuf properly as Lisp object. + (Fread_from_minibuffer): Likewise. + (syms_of_minibuf): Set Qminibuffer_history and staticpro it. + + * eval.c (Ffuncall, Feval): Support subrs with 7 args. + + * fns.c (Fyes_or_no_p): Use Fread_string, not read_minibuf. + * callint.c (Fcall_interactively): For 'S', use Fread_no_blanks_input + rather than read_minibuf. + +1992-07-23 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * minibuf.c (Vminibuffer_history_variable): New variable. + (syms_of_minibuf): Define variable minibuffer-history-variable. + (read_minibuf): Push the string on specified history list. + +1992-07-23 Roland McGrath (roland@churchy.gnu.ai.mit.edu) + + * Makefile.in (doall, doxemacs, dotemacs): Put quotes around CC=${CC}. + Don't include $(MAKEOVERRIDES); that is always implicit. + +1992-07-22 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * keyboard.c (read_key_sequence): If we have read a + meta-character, prefix it with meta_prefix_char before looking it + up in the function key keymap. + + * lread.c (Fread_char_exclusive): Code this with a do-while loop, + not a while loop with its body repeated. + + * lread.c (Fread_event): Don't make this function's definition + conditional on X-windows. It ought to be there no matter how + Emacs was built. + (syms_of_lread): Don't make its defsubr conditional either. + + * lread.c (Fread_char): Doc fix. + + * fileio.c (find_file_handler): It's called + Vfile_name_handler_alist, not Vfile_handler_alist. + (Fwrite_region): Declare the variable named `handler'. + (Fverify_visited_file_modtime): Use `b->filename', not `filename'. + (Fset_visited_file_modtime): Declare the variable named `handler'. + * dired.c (Fdirectory_files, Ffile_name_completion): Use + `dirname', not `filename'. + (Qfile_attributes): New variable. + (syms_of_dired): Initialize it. + + * xselect.c (Fx_own_selection): If we're trying to set + cut-buffer0, and the value is too large for the X server (as + indicated by the max_request_size member of the X Display), just + set the buffer to the empty string, and return nil. + +1992-07-21 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * search.c (fast_string_match): New function. + * fileio.c (find_file_handler): New function. + (Fcopy_file, Fmake_directory, Fdelete_directory, Fdelete_file): + (Frename_file, Fadd_name_to_file, Fmake_symbolic_link): + (Ffile_exists_p, Ffile_executable_p, Ffile_readable_p, Ffile_symlink_p) + (Ffile_writable_p, Ffile_directory_p, Ffile_accessible_directory_p): + (Ffile_modes, Fset_file_modes, Ffile_newer_than_file_p): + (Fwrite_region, Fverify_visited_file_modtime): + Use find_file_handler; call the handler and return. + (Finsert_file_contents): Use find_file_handler; + cannot just return after the handler, but must handle VISIT. + (syms_of_fileio): Set up Qcopy_file, etc. + * dired.c (Fdirectory_files, Ffile_name_completion): + (Ffile_name_all_completions, Ffile_attributes): + Use find_file_handler; call the handler. + (syms_of_dired): Set Qfile_attributes, etc. + +1992-07-21 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * xselect.c (Fx_own_selection): Initialize val to nil, so that if + we don't get the selection, we don't return garbage. When setting + cut-buffer0, set val to the string pasted. + + * xfns.c (x_set_name): If ARG is nil, set the frame's name to the + current x_id_name. + * xdisp.c (display_mode_line): If we should set the frame's name, + but there is only one frame currently active, call x_set_name with + nil as the name; this will display samething generically + appropriate. + +1992-07-20 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * lread.c (isfloat_string): Recognize floats without a leading + integer part, noting that "e5" is a symbol, not a floating point + number. + + * xdisp.c (message, message1): When displaying a message, don't + make the minibuf frame visible unless the selected frame is also + visible. This means that frames won't pop up unless the user is + actually interacting with Emacs. + + * xdisp.c (display_mode_line): If Emacs is currently supporting + only one screen, don't change the title of the screen to the name + of the current buffer; this is only annoying in this case. We + should probably think more carefully about how screens should be + named. + +1992-07-19 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * process.c (allocate_pty): Handle PTY_OPEN. + Delete system-specific alternatives to PTY_NAME_SPRINTF + and PTY_TTY_NAME_SPRINTF. + +1992-07-18 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * callint.c (Fprefix_numeric_value): Fix typo: test raw, not val. + +1992-07-17 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * xfns.c (x_window): x_set_name normally ignores requests to set + the name if the requested name is the same as the current name. + This is the one place where that assumption isn't correct; f->name + is set, but the X server hasn't been told. So fake it out. + + * emacs.c [sun] (main): On suns, localtime caches the value of the + time zone rather than looking it up every time. This means that + the dumped Emacs doesn't check the value of the TZ environment + variable. Call tzset before entering the editing loop to check + the new TZ value. + +1992-07-16 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * dired.c (Fdirectory_files): Don't forget to pass the REGP + argument to compile_pattern. + * search.c (compile_pattern): If REGP is zero, don't call + re_set_registers; nobody cares. + + * fileio.c (auto_save_error): Pass the correct number of arguments + to Fsleep_for. + + * lread.c: Include <ctype.h> at the top of the file, instead of + just before isfloat_string; read0 wants to use it too. + + * process.c (Fdelete_process, Fprocess_status, Fprocess_send_region, + Fprocess_send_string, Fprocess_send_eof, Finterrupt_process): Doc + fixes. + + * process.c (Fprocess_status): Use get_process to find the process + denoted by the PROC argument, not Fget_process. + +1992-07-15 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * xdisp.c: Doc fix. + +1992-07-14 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * window.c (syms_of_window): Doc fix for pop-up-frames. + + * frame.c (Fframe_parameters): Note that if FRAME is omitted, it + defaults to the selected frame. + + * frame.c (Fframe_height, Fframe_width): Blocked out these + functions; they have no C callers, and can be written nicely in + lisp. + + * frame.c (Fframe_pixel_size): Function removed; there aren't + enough other functions available to make this useful. We need + functions describing the size of the characters of a font. + + * xterm.h, xterm.c, xselect.c, xmenu.c, xfns.c, xdisp.c, window.h, + window.c, termopts.h, termhooks.h, termchar.h, term.c sysdep.c, + scroll.c, screen.c, screen.h, process.c, print.c, minibuf.c, + lisp.h keyboard.c, indent.c, fns.c, emacs.c, dispnew.c, + dispextern.h, cm.h, alloc.c, config.h.in: Screens are now called + frames, to avoid even more confusion with X terminology than + Emacs's "windows" already cause. All macros, functions, and + variables renamed; all uses changed. + * screen.c, screen.h: Renamed to frame.c and frame.h. All + #includers changed. + * ymakefile: Adjusted appropriately. + * buffer.c: Doc fixes. + + * xfns.c (Fx_store_cut_buffer): Reversed sense of test for non-X + screen. + + * window.c (Frecenter): Doc fix; this function places point in the + middle of the current window, not the current screen. + + * window.c (temp_output_buffer_show): Use WINDOW_SCREEN macro + instead of accessing the member directly. + +1992-07-13 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * print.c (print): Changed code which prints screen objects to use + the SCREEN_LIVE_P macro instead of testing the screen structure + directly. + + * alloc.c (undo_threshold, undo_high_threshold): Variables renamed + to undo_limit and undo_strong_limit. + (Fgarbage_collect): Uses changed. + (syms_of_alloc): DEFVARs and docstrings changed. + * undo.c (truncate_undo_list): Comment adjusted. + + * lread.c (read0): Allow floating-point numbers to begin with a + period. `(0 .5)' denotes a list of two numbers, not a dotted pair. + +1992-07-11 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * fns.c, callproc.c: Doc fix. + +1992-07-10 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * bytecode.c (Bsymbol_function, Bfset): Removed comments saying + that these are no longer generated. Jamie Zawinski's byte + compiler does generate them, and he's actually collected + statistics on how often these functions are called. + +1992-07-09 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * screen.c (store_screen_param): Clarify error message. + + * xterm.c (x_make_screen_visible): Undo the change made on June + 30; that is not the right solution. Apparently there are three + states a window may be in: normal, iconified, and invisible. + +1992-07-08 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * eval.c (Fmacroexpand): Code cleaned up; there's no need to + handle forms like ((macro lambda ...) ...) specially. + + * fileio.c (Finsert_file_contents): Signal an error if we're asked + to read from a named pipe. + +1992-07-07 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * m/*.h (SIGN_EXTEND_CHAR): Removed these definitions. The only + place they were used is in regex.c, and nowadays that has its own + definition, which works for any machine. The definitions in the + machine description files usually didn't work if given an unsigned + character as an argument, anyway. + +1992-07-04 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * buffer.c: Doc fix. + +1992-07-02 Joseph Arceneaux (jla@churchy.gnu.ai.mit.edu) + + * minibuf.c (Fdisplay_completion_list): Declared new variables + used in rms' previous change. + +1992-07-02 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * minibuf.c (Fdisplay_completion_list): Handle non-buffer stream. + +1992-07-01 Roland McGrath (roland@churchy.gnu.ai.mit.edu) + + * window.c (Fdisplay_buffer): Add interactive spec. + +1992-06-30 Joseph Arceneaux (jla@churchy.gnu.ai.mit.edu) + + * mem_limits.h: EXCEEDS_ELISP_PTR declared here. + * ralloc.c: No longer declared here. + * vm-limit.c: Nor here. Also, include "lisp.h" before + "mem_limits.h" and additionally include "config.h". + +1992-06-30 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * xterm.c (x_make_screen_visible): Don't de-iconify the window; + iconification is orthogonal to visibility. + + * emacs.c (syms_of_emacs): Change docstring for `kill-emacs-hook' + to describe it as a hook, not as a single function. + +1992-06-29 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * minibuf.c (Fread_no_blanks_input): Corrected maximum number of + arguments from one to two. + + * emacs.c (Vkill_emacs_hook): Declare this here; it should have a + docstring, so we might as well DEFVAR it. + (syms_of_emacs): initialize it, and DEFVAR_LISP it with an + appropriate docstring. + +1992-06-28 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * lread.c (Feval_buffer): Make the DEFUN match the C argument + list; this takes two optional arguments, not just one. + + * lisp.h (Lisp_Buffer_Local_Value): Comments neatened. + + * data.c (Fset): Fixed conditional which tests whether the cache + is invalid. It used to be pretty munged, and would always declare + the cache invalid for Lisp_Buffer_Local_Value variables. Now it + declares the cache invalid if the buffer is wrong (obviously), of + +1992-06-27 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * data.c (Fset): Comments reformatted for readability. + + * xterm.c (last_mouse_movement_time): New variable. + (note_mouse_position): Set it. + (XTmouse_position): Return its current value as the position's + timestamp. + + * keyboard.c (Qvertical_split): Renamed to `vertical-line', + since the window arrangement is actually referred to as a + `horizontal split.' + (make_lispy_event, make_lispy_movement, syms_of_keyboard): Uses + renamed here. + keyboard.h (Qvertical_split): Extern declaration changed here. + window.c (Fcoordinates_in_window_p): Changed this to return + `vertical-line' at the appropriate times, rather than + `vertical-split'. + + * window.c (Fcoordinates_in_window_p): Put symbol names in + opposing single quotes - `vertical-split', for example. + + * fileio.c (Fexpand_file_name): Don't signal an error if USERNAME + in a "~USERNAME/..." filename isn't a real user; just leave the + "~USERNAME" unchanged. + + * fileio.c (Fmake_symbolic_link): Rename argument `NEWNAME' to + `LINKNAME', to conform with the docstring. + + * Makefile.in (CPP): Pass `-Is -Im' to CPP, to make sure that + machine- and system-dependend files can include each other + properly. + * ymakefile (CFLAGS): Add those directories to the #include path + here too. + + * Makefile.in (xmakefile): Build this via a temporary file, so + that if preprocessing fails we don't nuke the xmakefile. + + * fileio.c: There are two versions of Fexpand_file_name defined + here; the latter is inside a `#if 0' clause. Change its DEFUN to + a DEAFUN, so that its docstring doesn't make it into the DOC file + and supercede the real docstring. + + * callint.c (Fcall_interactively): For the 'K' interactive spec, + set varies[i] to -1, indicating that the mouse click should be + quoted if the function makes it into the command history, and that + this argument by itself does not qualify the command to be + recorded in the history. + +1992-06-26 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * data.c (Frem): The drem function will sometimes return a + negative number. If it does, add the divisor to it, to make it + positive. + + * screen.c: Put '#ifdef MULTI_SCREEN' after the inclusion of + config.h. + + * window.c (Fpos_visible_in_window_p): Remember to apply XSCREEN + to w->screen before applying SCREEN_WIDTH. + + * screen.h [not MULTI_SCREEN] (last_nonminibuf_screen): Removed + #definition of this; it's confusing when debugging. + * screen.c (last_nonminibuf_screen): Variable moved from here... + * dispnew.c (last_nonminibuf_screen): to here, beside + selected_screen. They should both exist, even if the multi-screen + support is not present. + + * dispnew.c [not MULTI_SCREEN] (the_only_screen): New variable. + Instead of having the non-multi-screen version of Emacs refer to + lots of different variables scattered hither and yon, we'll just + declare this new variable, of type `struct screen', and define the + single-screen versions of the `SCREEN_foo' macros to reference its + elements. This avoids conflicts between names of local variables + and names of global variables describing the screen, and simplifies + some of the differences between the multi-screen and single-screen + cases. + * screen.h (enum output_method, struct screen): Removed these from + the `#ifdef MULTI_SCREEN' conditional. + * screen.h [not MULTI_SCREEN] (the_only_screen): extern + declaration for it here. + [not MULTI_SCREEN] (SCREEN_CURRENT_GLYPHS, SCREEN_DESIRED_GLYPHS, + SCREEN_TEMP_GLYPHS, SCREEN_HEIGHT, SCREEN_WIDTH, + SCREEN_NEW_HEIGHT, SCREEN_NEW_WIDTH, SCREEN_CURSOR_X, + SCREEN_CURSOR_Y, SCREEN_ROOT_WINDOW, SCREEN_INSERT_COST, + SCREEN_DELETE_COST, SCREEN_INSERTN_COST, SCREEN_DELETEN_COST, + SCREEN_MESSAGE_BUF, SCREEN_SCROLL_BOTTOM_VPOS): Macros changed to + refer to the_only_screen. + * dispnew.c [not MULTI_SCREEN] (one_screen_cursX, + one_screen_cursY, one_screen_current_glyphs, + one_screen_desired_glyphs, one_screen_temp_glyphs, + delayed_screen_width, delayed_screen_height): Variables + deleted; they're all now kept in the_only_screen. + * xdisp.c [not MULTI_SCREEN] (message_buf): Variable deleted; same + fate. + * term.c [not MULTI_SCREEN] (one_screen_width, one_screen_height): + Variables deleted; same fate. + * screen.h [not MULTI_SCREEN]: extern declarations for the above + variables removed. + * window.c [not MULTI_SCREEN] (root_window): Variable deleted. + [not MULTI_SCREEN] (init_window_once): Use SCREEN_ROOT_WINDOW to + refer to the root window, instead of referring to it directly. + * window.h [not MULTI_SCREEN] (root_window): extern declaration + removed. + * scroll.c [not MULTI_SCREEN] (insert_line_cost, delete_line_cost, + insert_n_lines_cost, delete_n_lines_cost): Variables deleted; same + fate. + + * dispnew.c [not MULTI_SCREEN] (cursX, cursY): Renamed to + `one_screen_cursX' and `one_screen_cursY'. + * screen.h [not MULTI_SCREEN] (cursX, cursY, SCREEN_CURSOR_X, + SCREEN_CURSOR_Y): extern declarations and macros changed + accordingly. + + * term.c [not MULTI_SCREEN] (screen_width, screen_height): Renamed + to `one_screen_width' and `one_screen_height', so as not to + conflict with local variables when referenced by the `SCREEN_foo' + macros. + * screen.h [not MULTI_SCREEN] (screen_width, screen_height): + extern declarations changed accordingly. + * termchar.h (screen_width, screen_height): extern declarations + deleted. Everyone should go through the `SCREEN_foo' macros. + (SCREEN_WIDTH, SCREEN_HEIGHT): Changed accordingly. + +1992-06-25 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * callint.c (Fcall_interactively): When making a copy of the spec + string, cast the return value of `alloca' to `unsigned char *', + not `char *', to match the type of `string'. + + * xselect.c (Fx_own_selection): Cast XSTRING (string)->data to a + char *, so it can be comfortably passed to XStoreBytes. + + * filelock.c (strcpy): Declare this to return char *. + +1992-06-24 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * dispnew.c (current_glyphs, desired_glyphs, temp_glyphs): Renamed + to have the prefix `one_screen_', so that the screen macros can + refer to them without conflicting with local variables. + * screen.h [not MULTI_SCREEN] (SCREEN_CURRENT_GLYPHS, + SCREEN_DESIRED_GLYPHS, SCREEN_TEMP_GLYPHS): Changed accordingly. + + * keyboard.c (read_key_sequence): Put the code which restarts the + key sequence in a `#ifdef MULTI_SCREEN' conditional. + + * screen.h [not MULTI_SCREEN]: Added definitions for + CHECK_LIVE_SCREEN and SCREEN_FOCUS_SCREEN for the non-multi-screen + case. + + * screen.h [not MULTI_SCREEN]: The name is + `SCREEN_MINIBUF_ONLY_P', not `SCREEN_IS_MINIBUF_ONLY'. + + * xdisp [not MULTI_SCREEN] (Fredraw_display): Removed definition + here; the non-multi-screen version is already defined in + dispnew.c, alongside the multi-screen version. + (syms_of_xdisp): Don't try to defsubr Sredraw_display; it doesn't + exist. + + * lread.c (Fread_char_exclusive): Remove this from the `#ifdef + HAVE_X_WINDOWS' conditional; it is appropriate in any context. + + * eval.c (Fsignal): Put call to TOTALLY_UNBLOCK_INPUT under the + protection of a `#ifdef HAVE_X_WINDOWS' conditional. + + * keyboard.c (kbd_buffer_get_event): Expect *mouse_position_hook + to return the timestamp as an unsigned long, not a lisp_Object. + This matches the change made to `struct input_event'. + (make_lispy_movement): Change argument TIME to an unsigned long. + * xterm.c (XTmouse_position): Change TIME argument to a pointer to + an unsigned long. + * termhooks.h (mouse_position_hook): Doc fix. + * term.c (mouse_position_hook): Doc fix. + + * termhooks.h (struct input_event): If MULTI_SCREEN is defined, + declare the .screen element to be `struct screen *'; otherwise, + declare it to be `int'. See the comment in the file for why I've + done this obviously wrong thing. + + * print.c (printbufidx): Doc fix. + * xdisp.c (message_buf_print): Doc fix. + + * dispextern.h (message_buf_size): Variable deleted; it's no + longer used, since the message buffer is always the width of the + screen. + + * screen.h [not MULTI_SCREEN] (message_buf): Add extern + declaration for it here. + (message_buf_print): Added extern declarations here for both the + MULTI_SCREEN and non-MULTI_SCREEN cases. + * dispextern.h (message_buf, message_buf_print): Deleted extern + declaration for these here. It should never be used directly; it + should always be used through the SCREEN_MESSAGE_BUF macro. + + * dispnew.c (temp_glyphs): Added back this variable declaration; + screen.h and various other places referred to this; where did it + go? + * screen.h [not MULTI_SCREEN] (temp_glyphs, desired_glyphs, + current_glyphs): Add extern declarations for these. + + * dispnew.c (cancel_my_columns): Use SCREEN_DESIRED_GLYPHS macro, + instead of assuming that a SCREEN_PTR is actually a pointer to + something; it isn't if we're not using any of the screen support. + Remove the variable `screen', and find the value for + `desired_glyphs' directly. + * xdisp.c (echo_area_display): Use the SCREEN_DESIRED_GLYPHS macro + to find screen's desired cursor position, instead of assuming that + a SCREEN_PTR is a pointer to something. + (display_mode_line): Same. + * window.c (Fpos_visible_in_window_p): Use the SCREEN_WIDTH macro. + (replace_window): Use the SCREEN_ROOT_WINDOW macro. + (window_loop): Use the SCREEN_WIDTH macro. + + * dispnew.c (update_screen): Enclose the statement which + increments `downto' in a `#ifdef HAVE_X_WINDOWS' conditional. + + * screen.h [MULTI_SCREEN and not MULTI_SCREEN] (FOR_EACH_SCREEN): + New macro. + * dispnew.c (window_change_signal, do_pending_window_change): Use + FOR_EACH_SCREEN instead of assuming that Vscreen_list exists. + * window.h (root_window): Added extern declaration for this. + + * screen.c: Enclose the entire file in a #ifdef MULTI_SCREEN + conditional. + + +1992-06-23 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * window.c (Fset_window_dedicated_p): + Replaces Fset_window_buffer_dedicated. Second arg just t or nil. + +1992-06-22 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * syntax.h (SYNTAX, SYNTAX_MATCH, SYNTAX_COMSTART_FIRST, etc.) + Cast character to unsigned char before indexing. + +1992-06-19 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * xterm.c (x_wm_set_size_hint): Set size_hints.flags to indicate + that we are providing the base_width and base_height data. + + * xfns.c (Fx_create_screen): Default the internal border width to + 2; this matches XTerm. + + * syntax.c (Fparse_partial_sexp): Doc fix. + + * syntax.c (Fparse_partial_sexp): Added phony argument list to + comment containing the docstring for this function, so that + make-docfile.c will get the right arguments. + + * xfns.c (x_set_name): Don't go through the X11 brouhaha to set + the name unless we're actually setting it to something different + from the current name. + +1992-06-18 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * eval.c (syms_of_eval): Don't forget to escape the ends of the + lines in the docstring for `debug-on-quit'. + + * keyboard.c (Fread_key_sequence): Reversed sense of CONTINUE_ECHO + argument - set this_command_key_count to zero iff CONTINUE_ECHO is + Qnil, not iff it's non-Qnil. + +1992-06-17 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * search.c: Changed to remember the object in which the last + search was done, so that markers from match data are placed in + that buffer, instead of the current buffer. + (search_regs_from_string): Replaced with... + (last_thing_searched): This is either Qnil, meaning no searching + has been done, Qt, meaning that the last search was done in a + string, or a buffer object, meaning that the last search was done + in that buffer. + (syms_of_search): Initialize and staticpro last_thing_searched. + (Flooking_at, search_buffer): Set last_thing_searched to the + current buffer. + (Fstring_match): Set last_thing_searched to Qt. + (Fmatch_data): Test last_thing_searched to see if any searching + has been done, and construct integers or markers in the right + buffer. Abort if it's not Qt, Qnil, or a buffer. + (Fstore_match_data): Set last_thing_searched according to the + things we find in LIST. + +1992-06-16 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * fns.c (Fload_average): Document the fact that this sometimes + returns a list of fewer than three elements, on systems which + don't provide 5- and 15-minute load averages. + +1992-06-15 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * xterm.c (XTread_socket): If an event arrives to a screen S, + don't attribute them to SCREEN_FOCUS_SCREEN (S) here. Do that + synchronously, when the events are dequeued. This keeps events + from being accidentally routed to the wrong screen, if we + temporarily redirect a screen's focus. + * keyboard.c (kbd_buffer_store_event): If the character being + stuffed is a quit character, do the SCREEN_FOCUS_SCREEN + redirection to it here. + (kbd_buffer_get_event): And do it here, before returning the + event. + + * eval.c (Finteractive_p): This assumed that if the function in + the top frame of the lisp backtrace was not a Lisp_Compiled + object, then Finteractive_p must have an explicit frame on the top + of the stack, which we could skip. It didn't bother to follow the + symbol function chaining, and it would break if any C code called + from a non-compiled function tried to call Finteractive_p anyway. + Changed this to actually check if the top frame's effective + function is the Lisp_Subr for Finteractive_p. This also used to + skip any number of frames for special forms and/or Fbytecode + calls. Changed this to skip an Fbytecode frame (if present), + followed by any number of special form frames. + +1992-06-14 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * eval.c (struct backtrace): Doc fix. + +1992-06-12 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * m/hp300bsd.h (LOAD_AVE_TYPE): This is long, not double. + (LOAD_AVE_CVT): Adjusted as appropriate. + + * fns.c: Moved lots of system-dependent preprocessor cruft + dealing with getting the load average to `getloadavg.c'. + (Fload_average): Guts moved to `getloadavg.c'. + * getloadavg.c: New file, containing the necessary mess to get the + load average on many different systems. This file is supposed to + be Emacs-independent. + * ymakefile (obj): Add getloadavg.o to the list. + (getloadavg.o): Note that this depends on its source, and config.h. + + * screen.c (Fdelete_screen): Typo in loop looking for new + last_nonminibuf_screen - change `screen = XCONS (screens)->cdr` + to `screens = XCONS (screens)->cdr` + + * xdisp.c (echo_area_display): Don't neglect to draw all the lines + of the minibuffer window (or echo area) when a message is being + displayed. If the minibuffer is more than one line high, they + should all be blanked. + +1992-06-10 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * sysdep.c [POSIX_SIGNALS] (sys_signal): Fix typo - rather than + calling new_action as if it were a function, call sigaction. + +1992-06-09 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * lisp.h (Qnumberp, Qnumber_or_marker_p): Declared. + + * eval.c (wants_debugger): Changed NULL to NILP. + Who installed these calls to NULL? + +1992-06-09 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * dispnew.c (Fsit_for): Don't forget to actually set sec from ARG. + + * termhooks.h (struct input_event): Doc fix - for mouse clicks, .x + and .y give the position in characters, not in pixels. + + * keyboard.c (format_modifiers): Order the modifier letters + alphabetically - control, meta, shift, and up. + +1992-06-08 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * xfns.c: Move some extern decls out of #if 0, to top of file. + +1992-06-08 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * window.c (Fcoordinates_in_window_p): Docstring fix. + + * buffer.c (Fother_buffer): Put a comma between arguments BUFFER + and VISIBLE_OK in the argument list. Duh. + + * screen.c (Fdelete_screen): Remember that s is a SCREEN_PTR *, + not a Lisp_Object. + + * search.c (search_regs): Doc fix. + (compile_pattern): Take a new argument - the search register + structure - so we can reassure the regex routines that the + registers have been allocated. + (Flooking_at, Fstring_match, search_buffer): Changed to pass + &search_regs to compile_pattern. + (search_buffer): When we've searched for a literal string and + found it, make sure that the search registers are allocated before + stuffing the location of the search into them. + (Fstore_match_data): If we need to allocate more registers, + allocate them using re_set_registers, instead of just storing the + new registers and hoping that regex doesn't free them. + + * search.c (Freplace_match): Doc fix. + +1992-06-07 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * screen.c (Fdeiconify_screen): Function deleted. + It was the same as make-screen-visible. + +1992-06-06 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * keyboard.c: Doc fix. + + * floatfns.c (Fcbrt): Renamed from Fcube_root, and #if 0'd. + + * lisp.h (CHECK_NUMBER_OR_FLOAT*): Use Qnumberp or Qnumber_or_marker_p. + * data.c (syms_of_data): Staticpro those. + (Qinteger_or_float_p, Qinteger_or_float_or_marker_p): Deleted. + (Fnumberp, Fnumber_or_marker_p): Define these always, + but make them work even if not LISP_FLOAT_TYPE. + +1992-06-05 Joseph Arceneaux (jla@churchy.gnu.ai.mit.edu) + + * config.h.in: Undefine REL_ALLOC if a system specific file + defines SYSTEM_MALLOC. + + * sysdep.c (save_signal_handlers): Cast result of signal to + avoid compiler warning. + * process.c (send_process): Likewise. + +1992-06-05 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * keyboard.c (Fread_key_sequence): New 2nd arg CONTINUE_ECHO + added for the sake of universal-argument. + +1992-06-04 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * editfns.c (Fset_default_file_mode): Function deleted. + (Funix_sync): Moved. + * fileio.c (Funix_sync): Moved to here. + + * xfns.c (Fx_erase_rectangle, Fx_draw_rectangle, Fx_contour_region): + (Fx_uncontour_region): #if 0 these. + (x_rectangle, outline_region): Likewise. + (syms_of_xfns): #if 0 the defsubrs. + + * dispnew.c (Fsleep_for, Fsit_for): Clean up error messages. + + * eval.c, print.c, keyboard.c: Doc fix. + + * xfns.c (Fx_horizontal_line): Disabled, since not documented. + + * fileio.c (Fdelete_directory): Renamed from Fremove_directory. + + * unexencap.c: Deinstalled (renamed to =unexencap.c) + since awaited papers never arrived. + + * xfns.c: Doc fix. + +1992-06-04 Roland McGrath (roland@geech.gnu.ai.mit.edu) + + * eval.c (stack_trace_on_error, debug_on_error): Made Lisp_Objects V*. + (syms_of_eval): Changed DEFVAR_BOOLs to DEFVAR_LISPs. + (wants_debugger): New fn. + (find_handler_clause): Use it to look in debug-on-error and + stack-trace-on-error lists. + +1992-06-04 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * floatfns.c (Fbessel_*, Ferf, Ferfc, Flog_gamma): Turned off; + not clearly worth including. + (Fasinh, Facosh, Fatanh, Fsinh, Fcosh, Ftanh): Likewise. + +1992-06-03 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * minibuf.c, keyboard.c: Doc fix. + + * window.c (Fwindow_at): Fix number of args--minimum 2, max 3. + + * screen.c: Doc fix. + +1992-06-02 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * lread.c (Feval_buffer): Don't read any arguments, if interactive. + +1992-06-02 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * screen.c (make_screen_without_minibuffer): Apply XSCREEN to + Vdefault_minibuffer_screen before calling SCREEN_LIVE_P. The + argument to SCREEN_LIVE_P must be a SCREEN_PTR, not a Lisp_Object. + + * dispnew.c (Fsit_for): This used to compare arg with 0 and return + Qt immediately. It should actually call sit_for anyway, because + sit_for needs to test for input and do the redisplay. + (sit_for): Compare sec and usec with zero here, after we've + looked for input and done a redisplay. + + * lread.c (Feval_buffer): Use NILP, not NIL_P. + +1992-06-01 Joseph Arceneaux (jla@churchy.gnu.ai.mit.edu) + + * buffer.h: New macro, BUF_SET_PT. + + * lread.c: New subr `eval-buffer', replaces `eval-current-buffer', + which is now defined in simple.el. + +1992-05-30 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * screen.c (Fdelete_screen): If we're deleting the default + minibuffer screen, try to find another minibuffer screen. + +1992-05-29 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * buffer.c (Fother_buffer): New optional argument VISIBLE_OK, + indicating that buffers currently visible in windows should not be + discriminated against. + +1992-05-28 Ken Raeburn (raeburn@cygnus.com) + + * screen.c (Fdelete_screen): Fix bugs in walking screen list. + (make_screen_without_minibuffer): Signal an error if the default + minibuffer screen is dead. + + * xfns.c (x_set_name): Use ICCCM-conforming scheme for changing + window name in X11. + (Fx_create_screen): Likewise. + +1992-05-27 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * xselect.c: Support getting and setting the obsolete X cut + buffers. + (Qcut_buffer0): New atom, denoting the X cut buffer 0. + (syms_of_xselect): Initialize and staticpro it. + (Fx_own_selection): If TYPE is Qcut_buffer0, interpret this to + mean that we should set cut buffer 0 to STRING. + (Fx_selection_value): If TYPE is Qcut_buffer0, interpret this to + mean that we should retrieve the value of cut buffer 0. + +1992-05-21 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * xterm.c (construct_mouse_click): Removed extra assignment of + result->timestamp. + + * keyboard.c (last_event_timestamp): Doc fix. + * xselect.c (last_event_timestamp): Declare it extern here. + (mouse_timestamp): Variable deleted. last_event_timestamp is a + more accurate thing to use here. + (own_selection, get_selection_value): Use last_event_timestamp + instead of mouse_timestamp. + * keyboard.c (make_lispy_event): Pass the event's timestamp + through the make_number function, to assure that it is properly + tagged before incorporating it into the lispy event. + * xterm.c (construct_mouse_click): The timestamp element of a + struct input_event is no longer a Lisp_Object; it is now an + unsigned long. So don't use XSET to assign to it. + (XTread_socket): Same here, in processing KeyPress events. + + * keyboard.c (Fexecute_extended_command): Properly initialize + this_command_keys to the concatenation of the sequence that + invoked Fexecute_extended_command, the characters making up the + name of the command we're running, and a return character. + Previously, this code would set it to the last key typed while + reading the function name from the minibuffer, followed by the + name of the function being run. + +1992-05-20 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * xterm.c (x_display_box_cursor): Draw the cursor at curs_{x,y}, + rather than at s->cursor_{x,y}. If cursor_in_echo_area is set, + then s->cursor_{x,y} does not accurately describe the position of + the cursor. However, if we're not updating, then curs_{x,y} are + garbage; set them from s->cursor_{x,y}. + + * dispnew.c (update_screen): Check current_screen->enable and + current_screen_used to see if there is any text on the last line, + not desired_screen->{enable,used}. When the line isn't enabled, + move to line SCREEN_HEIGHT (s) - 1, not SCREEN_HEIGHT (s). + Rearranged conditionals. + + * dispnew.c (cursor_in_echo_area): Document the interpretations of + positive and negative values of this variable. + +1992-05-18 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * dispnew.c (Fding): If have arg, don't end a keyboard macro. + +1992-05-18 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * dispnew.c (sit_for): New function, which is a slight + generalization of Fsit_for; you can tell it that it's waiting for + input, so C-g gets handled properly. + (Fsit_for): Call it, instead of replicating all its guts. + * keyboard.c (read_char): Call sit_for instead of Fsit_for, and + indicate that we're awaiting keyboard input. + + * dispnew.c (Fsit_for): Rename arguments to match docstring. Use + NILP instead of EQ (foo, Qnil). If nodisp is non-nil, call + wait_reading_process_input with do_display 0, instead of 1; this + will inhibit spurious redisplays when process input arrives during + a sit-for. + + * process.c (Faccept_process_output): Pass zero as read_kbd + argument to wait_reading_process_input when PROC is nil, not when + PROC is non-nil. + + * process.c (wait_reading_process_input): Declare read_kbd to be a + Lisp_Object, and use the tagging to tell the difference between a + process object and an integer. + * dispnew.c (Fsleep_for, Fsit_for, Fsleep_for_millisecs): Pass + read_kbd argument to wait_reading_process_input as a Lisp_Object. + * keyboard.c (kbd_buffer_get_event): Same. + * process.c (Faccept_process_output, send_process): Same. + + * keyboard.c (read_char): Use save_getcjmp and restore_getcjmp + instead of doing the bcopy explicitly. + + * xterm.c (XTread_socket): When handling an EnterWindow event, + don't bother to check waiting_for_input. It's not necessary. + + * keyboard.c (read_char): Don't clear waiting_for_input and + input_available_clear_time here. + (quit_throw_to_read_char): It's already done here. + + * keyboard.c (quit_throw_to_read_char): Use + clear_waiting_for_input instead of clearing waiting_for_input + explicitly. + +1992-05-18 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * keyboard.c (read_char): Call clear_waiting_for_input instead of + clearing waiting_for_input and input_available_clear_time + explicitly. + +1992-05-15 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * ymakefile [defined (__GNUC__) and __GNUC__ > 1]: define + YMF_PASS_LDFLAGS so that it can deal with an empty flags argument. + + * callproc.c (Fcall_process): Under VMS, a nil INFILE argument + means to read from "NLA0:", not "/dev/null". + + * callproc.c (Fcall_process): Use nil as the value for display + (the fourth argument) when nargs >= 4, not when nargs >= 3. + +1992-05-14 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * termhooks.h: Change timestamp from a Lisp_Object to an unsigned + long. + * keyboard.c (kbd_buffer_store_event): We don't have to apply the + XINT macro to the timestamp member of the event anymore. + + * process.c (wait_reading_process_output): Don't turn off polling. + + * sysdep.c (setpgrp_of_tty): Pass the address of pid, not pid + itself. + + * process.c: Deleted cpp tangle for dealing with system-dependent + tty handling; #included "systerm.h". + * systerm.h: Add some of the things that were done in process.c: + If titan is #defined, then we should include <sys/ttyhw.h> and + <sys/stream.h> along with the other SYSV pty stuff. + If HPUX is #defined, then EMACS_HAVE_TTY_PGRP isn't true. + If XENIX is #defined, then we shouldn't try to use TIOCGETC. + * ymakefile: Note that process.o depends on systerm.h now. + +1992-05-13 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * callint.c (Fprefix_numeric_value): Value 1 for symbol other than `-'. + +1992-05-13 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * cmds.c (Fforward_line): If the buffer is empty, don't try to see + if it contains a newline, and moving nowhere at eob after + non-newline should return 1, not 0. + + * search.c (scan_buffer): Doc fix. + + * buffer.c (Fbuffer_disable_undo): Accept a buffer name as an + argument. + +1992-05-12 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * fileio.c: Include config.h first thing. + + * keyboard.c (clear_input_pending): New subroutine. + * process.c (wait_reading_process_input): Make C-g really quit in + sit-for case. + + * ymakefile (LD_SWITCH_SYSTEM): Don't use -X with GCC. + +1992-05-12 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * eval.c (Fapply): Use indirect_function, instead of doing a dumb + loop. + * keymap.c (get_keymap_1): Same. + * macros.c (Fexecute_kbd_macro): Same. + + * buffer.c (init_buffer_once): Don't disable undos for *scratch* + here. Do it in loadup.el. + + * buffer.c (init_buffer_once): Doc fix. + + * doc.c (Fdocumentation): After extracting the doc string from a + lambda or autoload expression, don't fall through to the default + case and signal an invalid function error; instead, do a `break'. + + * doc.c (Fdocumentation): Use EQ (x, y) instead of XSYMBOL (x) == + XSYMBOL (y). + + * doc.c (Fdocumentation): When decyphering a function made from + conses, use 'else if' for the chain of alternatives instead of + just 'if'. It used to be that each alternative returned, but + that's not true anymore. + + * alloc.c (Fgarbage_collect): Don't call truncate_undo_list on + buffers whose undo list is 't. + + * doc.c (Fdocumentation): Renamed argument `fun1' to `function', + so make-docstring will list argument consistently with the + docstring. + +1992-05-11 Joseph Arceneaux (jla@churchy.gnu.ai.mit.edu) + + * xterm.h: Removed definition of `RES_CLASS'. + + * xfns.c (x_get_arg): Eliminated `screen_name' parameter. No + longer uses screen name as X resource search component. + All calls to x_get_arg changed accordingly. + Global variable `screen_class' and #define `SCREEN_CLASS' removed. + + * xterm.c (XTread_socket): Added basic structure for handling + various ClientMessage events, using new global variables + `Xatom_wm_take_focus', `Xatom_wm_save_yourself', + `Xatom_wm_delete_window', `Xatom_wm_configure_denied', + `Xatom_wm_moved'. + * xfns.c: Declare these variables extern. + (syms_of_xfns): Initialize these variables. + + * xselect.c (Fx_own_selection, Fx_selection_value): New optional + parameter `type', to specify the selection type. + (syms_of_xselect): New symbols Qprimary, Qsecondary, Qclipboard + initialized. + +1992-05-11 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * data.c (Qcyclic_function_indirection): New error condition. + (indirect_function, Findirect_function): New functions. + (syms_of_data): Initialize Qcyclic_function_indirection, put the + error properties on it, and staticpro it. Defsubr + Findirect_function. + * lisp.h (indirect_function, Findirect_function): Declare them here. + * callint.c (Fcall_interactively): Get symbol's function by + calling indirect_function, instead of just looping. + * doc.c (Fdocumentation): Same. + * eval.c (Finteractive_p, Fcommandp, do_autoload, Feval, + Ffuncall): Same. + * keyboard.c (Fcommand_execute): Same. + + * data.c (Fsymbol_function): Name the argument `symbol' instead of + `sym', so make-docstring will list argument consistently with the + docstring. + + * process.c (wait_reading_process_input): Make sure the screen + isn't garbaged (and therefore not displayed) before we enter the + select and start waiting for input. + + * keyboard.c: #include <systime.h>. + * ymakefile (keyboard.o): This depends on systime.h. + * keyboard.c (input_available_clear_word): Replaced with + input_available_clear_time, which is a pointer to an EMACSTIME; + sometimes the time information is larger than a single word. + (read_char): Changed ..._word to ..._time. + (input_available_signal): Use the EMACS_SET_SECS_USECS macro to + clear *input_available_clear_time, instead of zapping a zero into + *input_available_clear_word. + (set_waiting_for_input, clear_waiting_for_input): Adjusted + appropriately. + +1992-05-10 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * editfns.c (make_buffer_string): New function. + * lisp.h (make_buffer_string): Declare it here. + * editfns.c (Fbuffer_substring): Call make_buffer_string instead + of writing it out. + (Fbuffer_string): Call make_buffer_string instead of make_string, + so we can deal with buffer relocations. + * minibuf.c (read_minibuf): Same here. + +1992-05-09 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * syssignal.h (sigunblock): New macro, taken from 18.58's + emacssignal.h file. + * sysdep.c (request_sigio): Use the sigunblock macro to enable + reciept of SIGWINCH, instead of the dysfunctional sigblockx. + +1992-05-08 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * search.c: Doc fix. + +1992-05-06 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * emacs.c (decode_env_path): If EVARNAME is zero, don't try to + call getenv on it. + * lread.c (init_lread): When we don't have an environment variable + to check, pass 0 instead of the empty string. + + * alloc.c (Fmake_marker): Use `SIGMASKTYPE' instead of `int'. + Instead of calling sigsetmask twice - once to get the mask, and + again to restore it - call sigblock, specifying no additional + signals. + +1992-05-05 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * alloc.c: #include <syssignal.h>, for the sake of the + bug-catching code in Fmake_marker. + ymakefile: Add dependency. + + * syssignal.h [not POSIX_SIGNALS] (SIGFULLMASK): New definition, + for symmetry with the "defined (POSIX_SIGNALS)" case. + + * callproc.c (child_setup): Since we always get the environment + from Vprocess_environment, don't bother to take the environment + the subprocess should inherit as an argument anymore. + * process.c (create_process): Don't pass environment as a + variable. Just preserve it across call to fork. + +1992-05-04 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * floatfns.c: #include <syssignal.h>. + (float_error): Use SIGEMPTYMASK instead of zero. + + * syssignal.h [POSIX_SIGNALS] (sigmask): Defined to expand to a + statement expression under GCC, or a function call otherwise. + (sigpause, sigblock, sigunblock, sigsetmask): These are now + K&R-compatible macros. + * systerm.h [POSIX_SIGNALS] (sys_sigmask): Here is the function + the POSIX version of sigmask calls when we're not compiling with + GCC. + * alloc.c (Fmake_marker): Undo changes of Apr 29. + * callproc.c (Fcall_process): Same. + * data.c (arith_error): Same. + * floatfns.c (float_error): Same. + * keyboard.c (gobble_input): Same. + + * sysdep.c (request_sigio, unrequest_sigio) + +1992-04-29 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * x11term.h (CLASS): Change this from "emacs" to "Emacs"; class + names should always start with an upper-case letter. + + * syssignal.h: Arranged cpp conditionals so that the specific + cases come first, generic cases last. + + * syssignal.h (sigpause, sigblock, sigunblock, sigsetmask): Macros + removed; they require GCC, and Emacs 19 should compile without GCC. + (EMACS_SIGPAUSE, EMACS_SIGBLOCK, EMACS_SIGUNBLOCK, + EMACS_SIGSETMASK, EMACS_SIGFREE, EMACS_SIGHOLDX, EMACS_SIGBLOCKX, + EMACS_SIGUNBLOCKX, EMACS_SIGPAUSEX): These are new macros that + don't require GCC, but expand to statements. + * callproc.c (Fcall_process): Use new EMACS_SIG* macros from + syssignal.h. + * keyboard.c (gobble_input): Same. + * sysdep.c (request_sigio, unrequest_sigio): Same. + * x11term.h (BLOCK_INPUT, UNBLOCK_INPUT): Same. + * alloc.c (Fmake_marker): Same. + * data.c (arith_error): Same. + * floatfns.c (float_error): Same. + +1992-04-28 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * ymakefile: If we're using GCC version 2.0 or later, use "$(CC) + -nostdlib" as the linker. This will allow us to find libgcc.a + even when GCC puts it in a really weird place. + (YMF_PASS_LDFLAGS): New macro. + (temacs): Use it. + + * s/hpux.h: Doc fix. + + * filelock.c (egetenv): Declare this. + (lock_path, SUPERLOCK_NAME, superlock_path): New variables and + macros. + (MAKE_LOCK_PATH, lock_file, unlock_file, lock_superlock): Use the + variables lock_path and superlock_path instead of the PATH_LOCK + and PATH_SUPERLOCK macros. + (init_filelock): New function. + * emacs.c (main): Call the init_filelock function. + * paths.h.in (PATH_SUPERLOCK): Removed. This is now calculated + from PATH_LOCK or from the EMACSLOCKDIR environment variable. + + * filelock.c (MAKE_LOCK_PATH): New macro. + (lock_file, unlock_file, Ffile_locked_p): Use it. + + * syntax.c (Fmodify_syntax_entry): Note that '-' is a synonym for + ' ' (both denote whitespace), that '\\' denotes the escape class, + and that '/' denotes the character-quote class. The description + used to claim that '\\' denoted the character-quote class, and + neglected to mention '-' and '/'. + + * filelock.c (lock_file): Doc fix. + +1992-04-27 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * callproc.c (init_callproc): Get the default Vexec_path from the + environment variable "EMACSPATH"; get Vdata_directory from + "EMACSDATA". + + * ymakefile: Fix #endif and #else comments. + +1992-04-27 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * ymakefile (xemacs): Link xemacs to temacs if HAVE_SHM. + + * ymakefile (paths.h, config.h): Never copy, always fail. + + * process.c (wait_reading_process_input): Redisplay if screen_garbaged. + Call do_pending_window_change first. + Include dispextern.h. + * ymakefile (process.o): Added dependency. + + * ymakefile (OLDXMENU_OPTIONS): New macro, used compiling oldxmenu. + +1992-04-25 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * ymakefile: Changed all references to LD_CMD to LINKER, for + compatibility with the 18.58 configuration files. + * s/aix3-1.h, s/sunos4shr.h: Same here. + + * ymakefile: Doc fixes. + + * ymakefile (CC, MAKE): Set these variables from optional macros. + Change all uses of `make' to ${MAKE}. + + * ymakefile: use HAVE_X11 as alias for X11. + + * ymakefile (LIB_GCC, GNULIB_VAR): Handle GCC 2. + + * process.c (allocate_pty): Re-arranged conditionals to put the + system-specific-case first, and the generic case in the #else + section, for consistency with the rest of Emacs. + + * process.c (allocate_pty): Wait until we fail to open three ptys + in a row before concluding that we've reached the end of the ptys. + +1992-04-22 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * ralloc.c: #include "getpagesize.h". + + * search.c (Flooking_at): Use search_regs.num_regs instead of + RE_NREGS. As of regex version 0.4, the compiler allocates the + registers, and may allocate more than RE_NREGS. + (search_buffer): Same. + (Freplace_match): Use search_regs.num_regs to tell how many + registers are valid. Also note that if none are valid, no search + has been performed. + (match_limit): Same. + (Fmatch_data): Same. + (Fstore_match_data): If we're trying to store more registers than + search_regs has allocated, re-allocate them to make room. + +1992-04-21 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + + * callproc.c (egetenv): Declare the type of VAR. + + * lisp.h: Don't undefine NULL. There is no longer any conflict. + + * lisp.h (NUMBERP): New macro. + * editfns.c (Fformat): Protect the sections that deal with + Lisp_Float objects with a "#ifdef LISP_FLOAT_TYPE". + * bytecode.c (Fbyte_code): Use the NUMBERP macro instead of + explicitly checking for the Lisp_Float tag. + * callint.c (Fcall_interactively): Same here. + + * xrdb.c (magic_searchpath_decoder): Re-allocate string as needed, + rather than making it a fixed-size array. + + * xfns.c (Fx_rebind_key): Don't declare modifier_list to be a + register variable. It's too big, and we need the address of its + first element when we pass it to XRebindKeysym anyway. + + * fileio.c (Fdo_auto_save): Doc fix. + +1992-04-20 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * search.c (search_buffer): Cast RE_EXACTN_VALUE to char, because + the regex-0.4 distribution says so. + + * ymakefile (dired.o): This depends on regex.h. + + * process.c (wait_reading_process_input): There is code here which + sends SIGIO to Emacs if we thought we had input available but + didn't get SIGIO. If the system doesn't have SIGIO, then + #ifdef it out. + + * print.c (Fexternal_debugging_output): Arguments were declared + ANSI-style - rewritten in K&R 1 fashion. + + * floatfns.c (IN_FLOAT): Cast the zero in the `else' clause of the + conditional expression to SIGTYPE, to match the type of the + float_error call in the `then' clause. + + * s/hpux8: #define HPUX8; this is supposed to be customary + procedure, and fileio.c was expecting it, but somehow it didn't + get defined. + + * sysdep.h: Move inclusions of [AIX] <sys/hft.h>, + <sys/devinfo.h>, <sys/pty.h>, <unistd.h> [NEED_BSDTTY] + <sys/bsdtty.h>, [HPUX and HAVE_PTYS] <sys/ptyio.h>, [SYSV_PTYS] + <sys/tty.h>, <sys/pty.h>, and [pfa] <sys/file.h> to systerm.h; + also move undefinition of LLITOUT under BSD4_1 to systerm.h. + * systerm.h: They're here. + + * xterm.c (XTcursor_to, XTclear_end_of_line): Declare to return + int in the function definitions as well as their declarations. + +1992-04-19 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * fileio.c (directory_file_name): When checking if the string ends + with '/', check that slen is a valid length *before* examining + dst[slen-1], not after. + +1992-04-18 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * xterm.c (x_death_handler): New function. + (x_error_handler): Call x_death_handler to shut down Emacs. + (x_term_init): Use x_death_handler to handle SIGPIPE, instead of + x_error_handler, which expects to be passed a display and an + event. + * process.c (send_process): This used to set a handler to + catch SIGPIPEs when writing to a subprocess, and then set the + handler to SIGDFL after writing, but this would stomp on the + SIGPIPE handler for for the X connection. So restore the prevous + handler instead of changing to SIGDFL. + +1992-04-18 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * indent.c (compute_motion): Fix skipping invis lines and + truncation at right margin. + +1992-04-17 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * s/hpux.h (PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF): Use pty_name, + not ptyname. + * s/rtu.h: Same. + + * process.c (pty_process): Add 'int' to the declaration 'static + pty_processes;'. This makes it a happy declaration even when + static has been #defined as the empty string. + * xterm.c (XTcursor_to, XTclear_end_of_line): Same. + + * unexec.c (sbrk): Declare this to return void * if __STDC__ is + defined, or char * otherwise. + + * lread.c init_lread): Re-cleaned logic. To determine whether the + load path was changed before dumping, cons up a dump path and + compare it. This method is more localized and accurate. + (initial_path): Variable removed. + (syms_of_lread): Don't staticpro. + + * floatfns.c (float_error): Declare and define this to return + SIGTYPE. + + * systime.h [HAVE_TIMEVAL] (EMACS_GET_TIME): Declare dummy to be a + real struct timezone, instead of an EMACS_TIME. Since + HAVE_TIMEVAL is defined, struct timezone ought to be declared, so + there's no harm in passing the genuine article. + + * sysdep.c [USG] (rename): Place under the protection of a new + preprocessor symbol, HAVE_RENAME. + * s/hpux.h (HAVE_RENAME): Defined. + + * sysdep.c [USG] (setpriority): Declare to return int, not void. + + * s/template.h: Add template section for HAVE_TERMIOS. + + * term.c (cursor_to, raw_cursor_to, fatal): Do declare the types + of the arguments. + +1992-04-15 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * callint.c (Fcall_interactively): When the interactive spec is + a string, it may be relocated while reading the arguments. To + avoid this, make a copy of the spec to refer to, instead of + using a pointer to the data of the spec string. + + * callint.c (Fcall_interactively): When following the function + chain of a symbol, check for quits. + +1992-04-13 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * lread.c (init_lread): Make the load path default to + PATH_LOADSEARCH when we're not dumping (null purify-flag), and + PATH_DUMPLOADSEARCH when we are (not (null (purify-flag))). + Change from April 7th incorrectly always used PATH_DUMPLOADSEARCH. + + * lread.c (init_lread): Cleaned up logic; to determine whether the + load path was changed before dumping, remember the initial value + and compare against it. + (initial_path): New variable to support this. + (syms_of_lread): staticpro initial_path. + + * ymakefile: Renamed filenames like "*-dist" to "*.in". + + * config.h.in: Doc fixes. + +1992-04-11 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * config.h-dist: Renamed to config.h.in, for consistency with + the installation conventions of other GNU programs. + * paths.h-dist: Renamed to paths.h.in. + +1992-04-11 David J. MacKenzie (djm@wookumz.gnu.ai.mit.edu) + + * termcap.c: Declare getenv. + +1992-04-08 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * Makefile: Renamed to Makefile.in; the configure script will edit + this to produce Makefile. + +1992-04-07 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * paths.h-dist (PATH_DUMPLOADSEARCH): New macro. + * lread.c (init_lread): If we're building an Emacs to be dumped, + use PATH_DUMPLOADSEARCH as the default load path, so we can + correctly find our lisp files. + + * config.h-dist, paths.h-dist: Added "-*- C -*-" to top lines, so + Emacs will know that these are really C source. + +1992-04-03 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * search.c (syms_of_search): When allocating memory + searchbuf.buffer, cast the return value of malloc to unsigned char + *, not char *; this changed in the most recent version of the + regex code. + +1992-03-31 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * doc.c (Fdocumentation): Don't forget to end each line of the + docstring with "\n\". + + * process.c (Fprocess_connection): Change "#ifdef 0" around this + function to "#if 0". + + * eval.c (Flet, FletX): Signal an error if one of the let's binding + clauses has more than one value form, as in (let ((a 1 2)) a). + + * eval.c (Ffuncall): Re-install change of March 10; I don't know + why it went away. + + * search.c (compile_pattern): Declare the variable which holds the + return value of re_compile_pattern to be const, if this is ANSI C. + + * alloc.c (xrealloc): Change "ese" to "else". + + * crt0.c (start1) [sun_soft]: Change 'jst' to 'jsr'. The Sun + assembly language manual doesn't list any 'jst' instruction, I + don't know of one personally, and all the analogous code + around it uses 'jsr'. + + * crt0.c [m68k]: Merged with GNU C Library's version: added + conditionals for sun_68881, sun_fpa, sun_soft. + + * config.h-dist: Adjusted for renaming of share-lib to etc. + * lread.c (read1): Same. + * doc.c (Fdocumentation_property, Fsnarf_documentation): Same. + * ymakefile: Same. + +1992-03-30 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * crt0.c: Merged changes from 18.58: + [hp9000s300]: Set flag_fpa. Define float_loc. + [new hp assembler]: Double flag_fpa and flag_68881 if %d2!=0. + (start1): Declare to be static at the top of the file. + (_start): Removed static declaration in this function; since + everyone wants it, we'll just put it here. + +1992-03-20 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * fileio.c (Finsert_file_contents): Allow quitting from I/O. + (Fcopy_file): Likewise. + +1992-03-20 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * m-intel386.h (HAVE_ALLOCA): Inhibit if C_ALLOCA. + (LIB_STANDARD): Alternate USG value if __GNUC__ or C_ALLOCA + + * alloc.c (xrealloc): If handed a NULL pointer for the block to + resize, malloc a new block and return that. Not all reallocs do + this. + + * m/elxsi.h: Doc fix. + +1992-03-18 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * dispnew.c (Fsleep_for): Call wait_reading_process_input, whether + or not we have process support; let the emulator do the work. + * emacs.c (fatal_error_signal, Fkill_emacs): Call + kill_buffer_processes even when subprocesses is not #defined; we + have a stub. + + * process.c [not defined (subprocesses)] (Fget_buffer_process, + init_process, syms_of_process): New stub versions of these functions. + * emacs.c (main): Call init_process and syms_of_process whether or + not subprocesses is #defined. + * xdisp.c (decode_mode_spec): Call Fget_buffer_process whether or + not subprocesses is #defined. + +1992-03-17 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * keyboard.c (kbd_buffer_get_event): Call + wait_reading_process_input, even when subprocesses is not + #defined, instead of doing a whole lot of hairy SIGIO-pausing + stuff. + * dispnew.c (Fsit_for): Call wait_reading_process_input, whether + or not subprocesses is #defined. + + * process.c (wait_reading_process_input): Since we're no longer + checking for exceptional conditions in the call to select, all of + the different ways to call select for different systems have + become the same; remove the #if conditionals around this. + + * keyboard.c (read_char): When returning quit_char because we got + an interrupt signal, claim that the character came from the + currently selected screen. + +1992-03-16 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * callproc.c (Fcall_process): Doc fix. + + * process.c [not defined (subprocesses)] (kill_buffer_processes): + New dummy version of this function. + * buffer.c (Fkill_buffer): Removed '#ifdef subprocesses' + protection from the call to kill_buffer_processes; this is safe + whether or not we actually have subprocesses. + +1992-03-14 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * m/pfa50.h: New file. + * process.c (create_process, process_send_signal): Added changes + for m/pfa50.h. + * sysdep.c: same. + * unexec.c: same. + +1992-03-14 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * callproc.c (child_setup): Always put the child in its own + process group. + +1992-03-13 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * mem_limits.h (POINTER): Doc fix. + + * ralloc.c: Don't #include lisp.h and xterm.h; we no longer need + to block input in critical sections. + (r_alloc, r_alloc_free, r_re_alloc): Don't use BLOCK_INPUT and + UNBLOCK_INPUT; these are no longer needed. + (struct bp): Doc fix. + +1992-03-11 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * ralloc.c (obtain): When deciding how many pages to request, take + into account the amount of spare bytes at the end of the current + page; let get be ROUNDUP (size - already_available), instead of + ROUNDUP (size). + (relinquish): Re-organized for clarity. + + * editfns.c (Fcurrent_time): Updated to return the current time's + seconds split into two 16-bit integers (similar to the system used + by file-attributes), and the milliseconds. + +1992-03-10 Jim Blandy (jimb@pogo.cs.oberlin.edu) + + * process.c (Faccept_process_output): Add new optional argument + TIMEOUT-MSECS, and return non-nil iff we actually got some input + from the process(es). + (wait_reading_process_input): Make return value indicate whether + we got some input from the specified process, when read_kbd is a + process, or from any process when read_kbd isn't particular. + + * indent.c (Fmove_to_column): Pass the correct number of arguments + to Findent_to. + + * eval.c (Ffuncall): If a subr is asking for too many arguments, + abort instead of printing an error message; this is an internal + flaw in Emacs, and the subr cannot be called. + +1992-03-06 Roland McGrath (roland@geech.gnu.ai.mit.edu) + + * doc.c (Fdocumentation, Fdocumentation_property): Take optional + new arg to not pass results thru substitute-command-keys. + +1992-03-05 Jim Blandy (jimb at pogo.cs.oberlin.edu) + + * unexmips.c (unexec): When setting up the data_section header, + calculate the size of the section as "brk - data_start," not "brk + - DATA_START". + +1992-02-23 Jim Blandy (jimb at pogo.cs.oberlin.edu) + + * fileio.c: #include "systime.h". + (Fcopy_file): Use the systime.h macros to copy the time to the new + file. + * ymakefile: Note that fileio.o depends on systime.h. + + * ymakefile (dispnew.o): Note that this depends on systerm.h and + systime.h. + (editfns.o, xterm.o, sysdep.o): Note that this depends on + systime.h. + (emacs.o, keyboard.o, process.o, sysdep.o): Note that these depend + on systerm.h. + + * systerm.h: Expanded to handle getting and setting terminal + parameters: + (struct emacs_tty): New structure, which consolidates all of the + old tty parameter structures. + (EMACS_GET_TTY, EMACS_SET_TTY, EMACS_TTY_TABS_OK): New macros. + * sysdep.c (TABS_OK): Definitions of this macro removed; + EMACS_TTY_TABS_OK replaces it. + (TERMINAL): Definitions removed; now we use struct emacs_tty. + [VMS] (input_chan): Renamed to... + (input_fd): and defined even when VMS isn't; in that case, we + leave it initialized to zero, which is the input tty. This allows + us to use the EMACS_GET_TTY and EMACS_SET_TTY for both VMS and + Unix. + (discard_tty_input): Use struct emacs_tty and its macros instead + of TERMINAL. Replace some of conditional with a call to + EMACS_GET_TTY. + (child_setup_tty): Use struct emacs_tty and its macros instead of + TERMINAL and conditionals. + (old_gtty, old_ltchars, old_tchars, old_lmode): Replaced by... + (old_tty): New variable. + (lmode): Made conditional on BSD4_1, since it's only used by the + BSD4_1 support code now. + (init_sys_modes): Define tty to be a struct emacs_tty, not a + TERMINAL. Use macros to get and set parameters for VMS and + Unices. Set lmode, tchars, and ltchars along with the rest of the + tty state. + (tabs_safe_p): Use EMACS_GET_TTY and EMACS_TTY_TABS_OK instead of + conditionals. + (reset_sys_modes): Use EMACS_SET_TTY to restore the settings from + old_tty, instead of using hairy conditionals. + + * sysdep.c (get_screen_size): Neatened; now each system of + reporting the screen size is separated from the rest. + + * systerm.h (EMACS_HAVE_TTY_PGRP, EMACS_GET_TTY_PGRP, + EMACS_GET_TTY_PGRP): New macros to handle setting a tty's current + process group. + * sysdep.c (setpgrp_of_tty): Use the above, instead of + conditionals. + + * sysdep.c: #include "systerm.h". + #ifs that choose #include files moved from here... + * systerm.h: to here. + + * sysdep.c [APOLLO]: We now undefine TIOCSTART not here but... + * systerm.h: here. + + * sysdep.c [BROKEN_TIOCGETC]: We now undefine TIOCGETC not here but... + * systerm.h: here. + + * sysdep.c [BROKEN_FIONREAD]: We now undefine FIONREAD and FASYNC + not here but... + * systerm.h: here. + + * process.c (process_send_signal): Steal 18.58's version of this, + but incorporate the support for VMS signals. + + * syssignal.h (EMACS_KILLPG): New macro. + * process.c (process_send_signal): Use it. + * sysdep.c (sys_suspend): Use it. + + * syssignal.h (SIGCHLD): If we have SIGCLD and not SIGCHLD, define + SIGCHLD as an alias for SIGCLD. + * sysdep.c: Remove code for above. + + * sysdep.c (init_baud_rate): Rather than trying to maintain the + illusion of an abstraction with the OSPEED and SETOSPEED macros, + just use conditionalized code for each terminal kind. This is the + only place we ever need this functionality. + (OSPEED, SETOSPEED): Definitions removed. + +1992-02-22 Jim Blandy (jimb at pogo.cs.oberlin.edu) + + * sysdep.c: Moved definition of sigunblock macro to ... + * syssignal.h: Here. + + * hftctl.c: #include <sys/uio.h> before #including <sys/tty.h>. + (hfqry, hfskbd): Declare these functions as static before all uses. + * unexaix.c (make_hdr, mark_x, copy_text_and_data, copy_sym): + Declare as static before all uses. + Remove extraneous semicolons from #ifdefs of COFF and XCOFF + (unrelocate_symbols): cast the initializers of t_start and d_start + to ulong. + + * s/template.h: Include a clause for the HAVE_TERMIO flag. + +1992-02-21 Jim Blandy (jimb at pogo.cs.oberlin.edu) + + * keyboard.c (read_char): Don't clear Vquit_flag when we catch an + interrupt and return a quit_char; this change (Mar 21 1991) is too + large a change in functionality for the cleanliness it gains. + + * pwd.h: Renamed to vms-pwd.h, so that we don't get it by accident + when we #include <pwd.h> with the `-I.' flag given to the + compiler. + * editfns.c [VMS]: Changed to include vms-pwd.h instead of pwd.h. + * fileio.c [VMS]: Same. + * filelock.c [VMS]: Same. + * sysdep.c [VMS]: Same. + + * xrdb.c: Changed to #include "vms-pwd.h" if VMS is defined, + instead of including <pwd.h> unconditionally. + + * window.c (Fset_window_display_table): Rearranged to make etags + happy. + + * xterm.c (XTread_socket): Clear the meta flag from the keypress + event before handing it to XLookupString. + +1992-02-20 Jim Blandy (jimb at pogo.cs.oberlin.edu) + + * sysdep.c: No need to test #ifdef TIOCGETP before #undefing it. + +1992-02-19 Jim Blandy (jimb at pogo.cs.oberlin.edu) + + * systime.h: New file. + * dispnew.c: #include "systime.h" to get <time.h> or <sys/time.h>, + whichever is appropriate, instead of using a conditional. + (Fsleep_for, Fsit_for, Fsleep_for_millisecs): Use the systime.h + macros instead of HAVE_TIMEVAL conditionals. + * editfns.c: #include "systime.h" to get <time.h> or <sys/time.h>, + whichever is appropriate, instead of using a conditional. + * fileio.c: Same. + * process.c: Same. + * xterm.c: Same. + (wait_reading_process_input): Use the systime.h macros. + * sysdep.c: #include "systime.h" to get <time.h> or <sys/time.h>, + whichever is appropriate, instead of using a conditional. + + * m/template.h: Add description of NO_SOCK_SIGIO. + + * sysdep.c (reset_sys_modes): Doc fix. + + * keyboard.c (sigfree, sigholdx, sigblockx, sigunblockx, + sigpausex): Definitions moved to syssignal.h. + + * dispnew.c: Doc fix. + + * systerm.h: New file, to consolidate the system-dependent + terminal-handling trash. + * emacs.c: #include systerm.h. + (main): Use systerm.h macros instead of conditionals. + * dispnew.c: #include systerm.h. + (update_screen): Use EMACS_OUTQSIZE instead of the direct ioctl. + * keyboard.c: #include systerm.h to get the proper FIONREAD header + files, instead of using conditional. + + * syssignal.h: Added copyright notice. + + * emacssignal.h: Renamed to syssignal.h, to be like sysdep.c. + * data.c, keyboard.c, process.c, sysdep.c, ymakefile: Changed + #include directives. + +1992-02-15 Jim Blandy (jimb at pogo.cs.oberlin.edu) + + * m/intel386.h: Don't bother casting the argument to the signal + function; the SIGTYPE code in config.emacs ought to take care of + this. + + * buffer.c (record_buffer): Doc fix. + +1992-02-13 Jim Blandy (jimb at pogo.cs.oberlin.edu) + + * s/iris3-6.h: #define HAVE_GETWD. + +1992-02-11 Jim Blandy (jimb at pogo.cs.oberlin.edu) + + * window.c (Fwindow_at): Accept position as two arguments, not a + cons of numbers. + + * window.c (scroll_command): Undo the Jan 31 change; do set the + current buffer to the selected window's buffer. A simple + set-buffer will make these two different. + +1992-02-10 Jim Blandy (jimb at pogo.cs.oberlin.edu) + + * callproc.c (Fcall_process): Clear synch_process_death and + synch_process_retcode to zero before forking the process. + + * process.c (synch_process_death, synch_process_retcode): Don't + declare them extern here. + * process.h (synch_process_death, synch_process_retcode): Declare + them extern here, along with synch_process_alive. + + * s/hpux.h: Define CLASH_DETECTION. + + * window.c (init_window_once): Don't pass any arguments to + make_window. + + * keyboard.c (command_loop_1): Move the label directly_done out of + the else block to just after the else block. This shouldn't + change the semantics of the code, but appears to avoid a compiler + bug on SCO Unix V.3.2v2. + + * fileio.c (Fset_umask, Fumask): New functions. + (syms_of_fileio): defsubr them. + + * undo.c (Fprimitive_undo): When undoing a deletion with the point + before the deleted text, use Finsert_before_markers so that the + mark will end up on the other side of the text, if it's in the + area at all. + + * xdisp.c (redisplay): Properly compute TAB_OFFSET for compute_motion. + + * keyboard.c (command_loop_1): Don't check whether cursor is at + edge of screen here. + * dispnew.c (direct_output_forward_char): Check here, and return + zero if it can't be done. And compare the cursor position to the + window boundaries, not the screen boundaries. + +1992-02-05 Jim Blandy (jimb at pogo.cs.oberlin.edu) + + * screen.c (Fscreen_parameters): If the screen has a minibuffer + window on another screen, return the window, instead of nil. + (store_screen_param): If the value of the minibuffer parameter is + a window, try to make it the surrogate minibuffer window. + (Qminibuffer): New variable, to support above change. + (syms_of_screen): initialize and staticpro it. + + * m/tad68k.h: New file. + + * fileio.c (Ffile_accessible_directory_p): New function. + (syms_of_fileio): defsubr it. + * callproc.c: #include <errno.h>. + (child_setup): Accept yet another argument, current_dir. + Don't try to report an error here if current_dir is inaccessible; + this function is called in a vforking process. Just have the + process exit with an error code. + (Fcall_process): Make sure that the current directory is okay + here, before we fork. Pass the current_dir argument. + * process.c (create_process): Same here. + + * callproc.c (Fcall_process): Don't assign into args[1] when nargs + < 2. Instead, use a new variable called infile. Re-arranged + logic which processes the BUFFER argument. + +1992-02-03 Jim Blandy (jimb at pogo.cs.oberlin.edu) + + * fileio.c (Fexpand_file_name): Doc fix. + + * scroll.c (line_ins_del): Since we're calculating the array from + end to beginning, make the indices go that way, and thus clearly + get the right boundary. This used to ignore the [0] element, and + write in the [screen_height] element, which doesn't exist. + +1992-02-03 Richard Stallman (rms at mole.ai.mit.edu) + + * xdisp.c (redisplay, try_window_id): Special case for change + at beginning of line, if using selective display. + +1992-01-31 Jim Blandy (jimb at pogo.cs.oberlin.edu) + + * m/delta88k.h: Added USUAL-OPSYS information, for the + config.emacs script to use. + + * window.c (scroll_command): Don't bother setting the current + buffer to the selected window's buffer; this should always already + be the case. Add check just in case. + + * indent.c (compute_motion): Don't pack vpos and hpos into one int; + use separate variables hpos/vpos and prev_hpos/prev_vpos. + (vmotion): Use largest int as tovpos arg to compute_motion. + +1992-01-30 Jim Blandy (jimb at pogo.cs.oberlin.edu) + + * window.c: #include "keyboard.h" to get the Qmode_line and + Qvertical_split declarations. + * ymakefile (window.o): Note that this depends on keyboard.h. + + * callproc.c (getenv_internal): Cast the pointer to the variable's + value to a char *; elisp strings are unsigned char *'s. And + valuelen is an int *, not an int **. + + * scroll.c (do_scrolling): Document meaning of enable flag in + temp_screen. + +1992-01-30 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * m-orion105.h (C_DEBUG_SWITCH, LIBS_DEBUG): Defs deleted. + +1992-01-29 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * m-iris4d.h (C_SWITCH_MACHINE): New definition. + +1992-01-28 Jim Blandy (jimb at pogo.cs.oberlin.edu) + + * term.c: #include "keyboard.h", for Vfunction_key_map. + * keyboard.h: Declare Vfunction_key_map. + + * keyboard.h: New file, for external declarations used in + processing keyboard input and events. + * lisp.h (Qmode_line, Qvertical_split, num_input_chars, + poll_suppress_count): Extern declarations moved to keyboard.h. + * keyboard.c: #include "keyboard.h". + (Qvscrollbar_par, Qvslider_part, Qvthumbup_part, + Qvthumbdown_part, Qhscrollbar_part, Qhslider_part, + Qhthumbleft_part, Qhthumbright_part): Moved declarations here from + xfns.c, so they're with the other event heading symbols. + * eval.c: #include "keyboard.h". + * ymakefile (callint.o, keyboard.o, keymap.o, xfns.o, eval.o): + Note that these depend on keyboard.h. + + * xfns.c: The above symbols aren't here any more. #include + "keyboard.h" to get them. + (syms_of_xfns): Don't initialize or staticpro them. + * keyboard.h: Added extern declarations for the above. + * callint.c: #include "keyboard.h". + + * xfns.c (Vmouse_screen_part): Variable removed, no longer used. + (syms_of_xfns): Changed accordingly. + + * xterm.c (Qmouse_moved): Variable removed, no longer used. + (Qmouse_click, Qscrollbar_click): Removed. These are now event + types, in keyboard.c and keyboard.h; they're no longer used in + this way. + (Vmouse_window, Vmouse_screen_part): Extern declarations removed. + (XTread_socket): Don't assign to Vmouse_window or + Vmouse_screen_part. + (syms_of_xterm): Changed accordingly. + + * keyboard.h (EVENT_HAS_PARAMETERS, EVENT_HEAD, EVENT_WINDOW, + EVENT_BUFFER_POSN, EVENT_SCROLLBAR_BUTTON, EVENT_WINDOW_POSN, + EVENT_TIMESTAMP, EVENT_HEAD_UNMODIFIED, EVENT_HEAD_KIND): New + macros to recognize and access events that have parameters, like + mouse events. + * keyboard.c (read_char, echo_char, Fmouse_click_p, + read_key_sequence): Use them. + * keymap.c: #include "keyboard.h". + (access_keymap, store_in_keymap, Fsingle_key_description): Use the + macros from keyboard.h. + + * keyboard.c (Qevent_kind): New symbol, naming the property of an event + header where we put the event's type. + (Qfunction_key, Qmouse_click, Qscrollbar_click): New symbols, used + to tag different kinds of events. + (Qevent_unmodified): New symbol, naming the property + of an event header where we put an unmodified version of the event + header. + (modify_event_symbol): Take a new argument, SYMBOL_KIND, whose + value should be put on the Qevent_kind property of each symbol we + make. Set the Qevent_unmodified property of each symbol we make. + (make_lispy_event): Pass the appropriate SYMBOL_KIND argument to + modify_event_symbol. + (struct event_head, head_table): New tables, to simplify the + initialization of some of the event heads. + (syms_of_keyboard): Initialize and staticpro the symbols given in + head_table, and put the Qevent_kind and Qevent_unmodified + properties on them. Initialize all of the new symbols listed + above. + + * keyboard.c (lispy_function_keys, lispy_mouse_names): Renamed + these from function_key_names and mouse_names, and moved them + outside of make_lispy_event, since static doesn't work on all + systems, and these can't be automatic. + +1992-01-28 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * fileio.c (Fwrite_region): Remove Alliant conditional. + * crt0.c: Conditionals for ALLIANT_2800. + * m/alliant-2800.h: New file. + * unexfx2800.c: New file. + + * m-mips4.h (C_DEBUG_SWITCH): Alternate defn for GCC. + + * sysdep.c [VMS] (sys_write): Special case for fixed-length + with carriage-control characters. + + * s/isc2-2.h (NOMULTIPLEJOBS): Undef this. + (LIB_STANDARD): Add -lPW. + (LIBS_SYSTEM): Defined. + * m/intel386.h (signal): Optionally don't define it. + +1992-01-27 Jim Blandy (jimb at pogo.cs.oberlin.edu) + + * s/template.h: Document the SIGTYPE macro. + * s/bsd4-3.h: Define the SIGTYPE macro. + + * data.c (Fsymbol_value): Extract all the innards of this function + into find_symbol_value, except the code which signals an error. + (find_symbol_value): New function. + * lisp.h (find_symbol_value): Declare it. + * keymap.c (current_minor_maps): Use it, instead of a call to + Fboundp and Fsymbol_value per every minor map, for every key + sequence read. + + * xterm.c (x_make_screen_visible): Don't raise the window. This + causes the window to pop to the front every time a message + appears, which isn't desirable. + + * screen.c (Fselect_screen, Fdelete_screen, Fset_mouse_position, + Fmake_screen_visible, Fmake_screen_invisible, Ficonify_screen, + Fdeiconify_screen, Fscreen_parameters, Fmodify_screen_parameters, + Fset_screen_height, Fset_screen_width, Fset_screen_size, + Fset_screen_position): Use SCREEN_IS_X macro instead of testing + for output_x_window. + * xfns.c (adjust_scrollbars, Fx_store_cut_buffer): Same. + +1992-01-25 Jim Blandy (jimb at pogo.cs.oberlin.edu) + + * term.c (term_get_fkeys): New function. + (term_init): Call term_get_fkeys. + +1992-01-21 Jim Blandy (jimb at pogo.cs.oberlin.edu) + + * editfns.c (Ffollchar, Fprevchar): Renamed to Ffollowing_char and + Fprevious_char, for consistency. Renamed Sfollchar and Sprevchar + too. + (syms_of_editfns): Fixed defsubrs. + * lisp.h (Ffollchar, Fprevchar): Renamed extern declarations as above. + + * editfns.c (Ffollowing_char): Return 0 at the end of the buffer, + as advertised. Doc fix. + (Fprevious_char): Doc fix. + + * config.h-dist: Rearranged to define user parameters before + including the machine and opsystem files, so the files can have + conditionals on the parameters. + +1992-01-15 Jim Blandy (jimb at pogo.cs.oberlin.edu) + + * keyboard.c (read_key_sequence): When expanding a function key + recognized with Vfunction_key_map, don't scan the expansion for + further function key sequences. + + * keyboard.c (Vfunction_key_map): Real declaration moved to + keymap.c; this declaration made extern. + (syms_of_keyboard): DEFVAR and initialization of Vfunction_key_map + moved to keymap.c, since it should be initialized to a keymap, but + we don't want to rely on Qkeymap being initialized now. + * keymap.c (Vfunction_key_map): Variable moved here. + (syms_of_keymap): DEFVAR and init here. + + * keymap.c (Fglobal_key_binding): Doc fix. + +1992-01-16 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * m-delta88.h: New file. + + * window.c (window_scroll): New arg `noerror'. + (scroll_command, Fscroll_other_window): Pass that arg. + +1992-01-15 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * process.c (sigchld_handler): + Set synch_process_death and synch_process_retcode. + +1992-01-14 Jim Blandy (jimb at pogo.cs.oberlin.edu) + + * config.h-dist (SIGTYPE): New macro to help give signal handlers + the correct type. + * s/usg5-3.h (SIGTYPE): Define this to be void. + * dispnew.c (window_change_signal): Declare this to return + SIGTYPE. + * emacs.c (fatal_error_signal): Same. + * data.c (arith_error): Same. + * process.c (create_process_1, send_process_trap, + create_process_sigchld, sigchld_handler): Same. + (create_process): Declare sigchld according to SIGTYPE. This + means we don't have to cast the return value of signal. + * keyboard.c (input_poll_signal, interrupt_signal): Declare these + to return SIGTYPE. + (kbd_buffer_store_event): Include a forward declaration for + interrupt_signal here. + * sysdep.c (struct save_signal): Say the handler returns SIGTYPE + instead of int. + (save_signal_handlers): So we don't have to cast the return value + from signal here. + (sys_suspend): Declare oldsig according to SIGTYPE. + (select): Declare old_trap using SIGTYPE. + (select_alarm, wait_for_termination_signal): Declare these to + return SIGTYPE. + + * emacs.c: #include <termios.h>, if we have it. + (fatal_error_signal): If we have termios, use tcgetpgrp to get the + terminal's process group. + * process.c: If we have termios, #include <termios.h> instead of + <termio.h>. + (process_send_signal): If we have termios, use tcgetpgrp to get + the terminal's process group. Have gid default to the child's + pid, to simplify the logic below. + * sysdep.c (flush_pending_output): If we are using termios, make + this function a no-op; since we're not in the tty's pgroup, we + would get a SIGTTIN. + +1992-01-13 Jim Blandy (jimb at pogo.cs.oberlin.edu) + + * config.h-dist: Removed MAINTAIN_ENVIRONMENT clause. + * callproc.c: Removed support for MAINTAIN_ENVIRONMENT. + (init_callproc): Use getenv instead of egetenv to initialize + Vshell_file_name. + * emacs.c (decode_env_path): Use getenv instead of egetenv + * lisp.h: Removed support for MAINTAIN_ENVIRONMENT. + * process.c: Same. + * ymakefile: Same. + * dispnew.c (init_display): Call getenv instead of egetenv. + + * editfns.c (Fgetenv): Function moved... + * callproc.c (Fgetenv): To here, and made to scan + Vprocess_environment instead of using the usual C getenv function. + (getenv_internal): New function. + (egetenv): New function. + * lisp.h: Added extern declaration for egetenv. + * editfns.c (syms_of_editfns): Adjusted. + * callproc.c (syms_of_callproc): Adjusted. + + * window.h (minibuf_prompt_width): Declare this extern here, after + minibuf_prompt. + minibuf.c: Don't extern declare it here. + indent.c: As above. + + * dispnew.c (buffer_posn_from_coords): If there is a prompt in the + minibuffer, account for its width when computing the buffer + position. + + * Makefile (doall): Explicitly export CC to the xmakefile. + + * ymakefile: Use /* */ around comments; # confuses cpp. + + * ymakefile: Note that ralloc.o depends on mem_limits.h, xterm.h, + and config.h. + Note that vm-limit.o depends on mem_limits.h. + + * lread.c (read_escape): Return \a as '\007', not '\a'; the latter + isn't portable, and this routine would have to be revised anyway + to deal with anything other than ASCII. + + * keymap.c (current_minor_maps): Rewritten not to use + function-local static variables, to accomodate DGUX. + + * xterm.h (UNBLOCK_INPUT): Replace "abort ()" with "(abort (), + 0)", to avoid type conflicts on odd systems like Ultrix. + + * xrdb.c: Include <sys/types.h>, and declare getuid to return uid_t. + + * xdisp.c (redisplay_window): Use SET_PT macro instead of + assigning to point. + insdel.c (insert_from_string): Same. + + * xterm.c (XTcursor_to): Declare it static at the function + definition, as well as at the top of the file. + (dumpglyphs): Removed declarations for buf and cp; these variables + are never used. + + * lisp.h (NULL): Renamed to NILP, so as not to conflict with + <stdio.h>, and <stddef.h>. All callers changed; all + #undefinitions of NULL removed. + +1992-01-12 Jim Blandy (jimb at pogo.cs.oberlin.edu) + + * xdisp.c (message): #ifdef NO_ARG_ARRAY, make a local block to + declare the explicit argument array. + + * config.h-dist: Instead of reaching the machine- and + system-dependent files through symlinks, replace the strings + +1992-01-09 Jim Blandy (jimb at pogo.cs.oberlin.edu) + + * keyboard.c (stuff_buffered_input): Don't forget to increment + kbd_fetch_ptr while looping through kbd_buffer. + +1992-01-08 Jim Blandy (jimb at occs.cs.oberlin.edu) + + * keyboard.c (read_avail_input): Don't forget to fill in the + screen field in events read from the terminal. + * sysdep.c (kbd_input_ast, read_input_waiting): Call + kbd_buffer_store_event with a `struct input_event *', not a + character or a Lisp_Object. + +1991-12-21 Jim Blandy (jimb at occs.cs.oberlin.edu) + + * bytecode.c (docall): Don't remove protection from the arguments + to Ffuncall. + +1991-12-20 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * keyboard.c (Vfunction_key_map): New variable. + (read_key_sequence): Changed to recognize and substitute bindings + in Vfunction_key_map at any point in the sequence, unless they + conflict with ordinary bindings. + (syms_of_keyboard): DEFVAR, document, and initialize + Vfunction_key_map. + +1991-12-19 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * keymap.c (Vminor_mode_map_alist): New variable, to support + keymaps for minor modes. + (current_minor_maps, Fminor_mode_key_binding, + Fcurrent_minor_mode_maps): New functions. + (Fkey_binding): Rewritten to scan for minor mode bindings too. + (syms_of_keymap): DEFVAR, document, and initialize + Vminor_mode_map_alist, and defsubr the new Ffunctions. + (describe_buffer_bindings): Describe the bindings established by + minor modes too. + * keyboard.c (follow_key): New function, to support... + (read_key_sequence): Completely rewritten to handle scanning an + arbitrary number of keymaps at a time. + + * keyboard.c (Fread_key_sequence): GCPRO keybuf, since it can hold + lisp expressions while waiting for input. Don't pass too many + arguments to read_key_sequence. + (command_loop_1): Don't pass too many arguments to read_key_sequence. + + * keyboard.c (add_command_key): New function; there are several + places that add keys to this_command_keys, so we make one function + to do the work. + (read_char, Fexecute_extended_command): Call add_command_key + instead of writing out its code again. + (init_keyboard): Allocate this_command_keys according to + this_command_keys_size. + + * lread.c (read1): Change comment to use `share-lib' instead of `etc'. + * doc.c (Fdocumentation_property, Fsnarf_documentation): Update + docstring similarly. + (Fsnarf_documentation): Use "../share-lib/" instead of "../etc/" + to find doc file while dumping. + * unexaix.c: Similar doc fix. + + * ymakefile (etcdir): Variable removed. + (libsrc, archlib, sharelib): New variables, to take the place of + etcdir. + +1991-12-18 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * ymakefile (CFLAGS): Don't automatically include C_DEBUG_SWITCH + in the value for CFLAGS; the configuration script will take care + of choosing the debugging and optimization switches. + + * config.h-dist: Copy the GLYPH definitions from config.h to here. + +1991-12-16 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * abbrev.c (Fexpand_abbrev): Run pre-abbrev-expand-hook. + (syms_of_abbrev): Define that variable. + +1991-12-13 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * m/m-*.h: Since the m- is now redundant, renamed all files to + remove it, and changed references within files. + * s/s-*.h: Same business. + +1991-12-11 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * config.h-dist (MULTI_SCREEN): Define this automatically when + we're using a window system. + +1991-12-09 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * m/m-*.h (i.e. all machine config files): Added USUAL-OPSYS + comments to tell the configuration script what sort of operating + system this machine typically runs. + + * config.h-dist (MScreenWidth, MScreenLength): Deleted; no longer + used. + +1991-12-08 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * editfns.c (Fcurrent_time): New function, to return the current + time as a number, like the Unix time(3) function. This might be + fun to port. + (syms_of_editfns): defsubr it. + +1991-12-05 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * keymap.c (Vminor_mode_map_alist): New variable. + (current_minor_maps): New function. + (Fcurrent_minor_mode_maps): New function. + (syms_of_keymap): DEFVAR, document, and initialize + Vminor_mode_map_alist, and defsubr Fcurrent_minor_mode_maps. + + * callproc.c (Vdata_directory): New lisp variable, for the + directory containing architecture-independent data files. + (init_callproc): Initialize Vdata_directory from PATH_DATA, and + make sure it exists. Renamed execdir to tempdir, because we use + it for both Vexec_directory and Vdata_directory. + (syms_of_callproc): Doc fix for Vexec_directory, new DEFVAR_LISP + for Vdata_directory. + * paths.h-dist (PATH_DATA): New path macro, to initialize + Vdata_directory. + * doc.c (get_doc_string): Use Vdata_directory to find the + docstrings, not Vexec_directory. + * lisp.h (Vdata_directory): New extern declaration, for above + users. + * config.h-dist: Changed references to ../etc to ../share-lib. + + * callint.c (Fcall_interactively): For the 'k' interactive code, + cast the type of the symbol name before passing it to error. + +1991-12-02 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * keyboard.c (make_lispy_movement): Move call to + mouse_position_hook from here... + (kbd_buffer_get_event): To here, for symmetry with non-movement + events. + + * keyboard.c (kbd_buffer_get_event): Set Vlast_event_screen for + mouse movements, too. + +1991-11-27 Jim Wilson (wilson at wookumz.gnu.ai.mit.edu) + + * alloca.c (alloca): Add parens to make precedence clearer. + +1991-11-26 Michael I Bushnell (mib at geech.gnu.ai.mit.edu) + + * search.c: need to include sys/types.h because of recent mod to + regex.h. + +1991-11-25 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * bytecode.c: BYTE_CODE_METER and BYTE_CODE_SAFE undefined by default. + (METER_CODE): Define same name whether metering or not. + (BinsertN): New byte code. + (Fbyte_code): Improve overflow/underflow error messages. + (docall): Put back previously lost code to remove protection + from funcall args. + +1991-11-25 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * lisp.h (make_array): New extern declaration. + + * alloc.c (make_sequence): Renamed to make_array; more accurate. + * keyboard.c (Fread_key_sequence, Fthis_command_keys): Callers fixed. + * macros.c (Fend_kbd_macro): Callers fixed. + +1991-11-15 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * keyboard.c (cmd_error): If an error occurs before somebody has + provided a screen to print it on, print it to stderr and exit + Emacs. Handle batch-mode errors with the same code. + * lisp.h (Qexternal_debugging_ouput): New extern declaration, for + use in cmd_error. + + * screen.c (Fscreen_pixel_size, Fset_screen_position): Doc fix. + + * window.c (Fwindow_at): Typecheck COORDINATES more thoroughly. + + * screen.c (read_mouse_position): Function deleted. + (Fread_mouse_position): Renamed to Fmouse_position, and changed to + use mouse_position_hook. + (syms_of_screen): Adjusted accordingly. + * xfns.c (x_read_mouse_position): Function deleted. + + * screen.h (SCREENP): The non-MULTI_SCREEN case used to say this + was false for all objects, but it should be true for the terminal + screen, so make its definition the same as in the MULTI_SCREEN + case. + + * screen.h (SCREEN_LIVE_P): New predicate. + (CHECK_LIVE_SCREEN): New type-checking macro. + (Qlive_screen_p): New error-reporting symbol. + * screen.c (Qlive_screen_p): Declare the new symbol. + (Flive_screen_p): New lisp predicate. + (syms_of_screen): Initialize, staticpro, and defsubr the lot. + * dispnew.c (Fredraw_screen): Use CHECK_LIVE_SCREEN. + * screen.c (Fscreen_root_window, Fscreen_selected_window, + Fnext_screen, Fset_mouse_position, Frestore_screen_configuration, + Fmake_screen_visible, Fmake_screen_invisible, Ficonify_screen, + Fdeiconify_screen, Fscreen_visible_p, Fredirect_screen_focus, + Fscreen_focus, Fmodify_screen_parameters, Fset_screen_height, + Fset_screen_width, Fset_screen_size, Fset_screen_position, + Fselect_screen): Use CHECK_LIVE_SCREEN. + * window.c (Fwindow_at, Fcurrent_window_configuration): Use + CHECK_LIVE_SCREEN. + * xfns.c (Ffocus_screen, Fx_pixel_width, Fx_pixel_height): Use + CHECK_LIVE_SCREEN. + + * screen.c (Fdelete_screen): Do nothing if SCREEN is already + deleted. + + * screen.c (Qscreenp): Staticpro this symbol. + + * xfns.c (Fx_create_screen): Doc fix. + + * xfns.c (Fx_create_screen): Give the screen a minibuffer if the + 'minibuffer parameter is t or nil; nil is the default value for + omitted parameters, and t is intuitive. + +1991-11-14 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * eval.c (specbind): Check that the thing being bound is a symbol. + (funcall_lambda): Signal an invalid-function error if the + arguments are not all symbols. + +1991-11-08 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * screen.c (Fselect_screen): Don't select dead screens. + * print.c (print): Print dead screen objects starting with + "#<dead screen". + + * keyboard.c (read_key_sequence): Make sure that the compound + events actually have valid window fields. + + * window.c (next_screen_window): Function deleted; Fnext_window + can now do its job properly. + (window_from_coordinates, window_loop): Call Fnext_window instead + of next_screen_window. + + * xdisp.c (redisplay): Don't clear out minibuffer windows in the + midst of the screen loop here. That's confusing. + (redisplay_window): Since this needs special code to detect + minibuffers anyway, put it here. And clear all the lines of a + multi-line minibuffer, not just the first one. + +1991-11-07 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * screen.c (Fdelete_screen): When searching Vscreen_list for a new + value for last_nonminibuf_screen, remember that the screens live + in the cars of the list, not the cdrs. + + * xterm.c (x_make_screen_visible): Rearranged for clarity. + + * xdisp.c (echo_area_display): Rearranged for clarity. + +1991-11-06 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * screen.c (next_screen, prev_screen): New meaning for MINI_SCREEN + argument helps implement the behavior of Fnext_window. + (Fnext_screen): Document the new behavior. + + * screen.c (make_minibuffer_screen): Do set has_minibuffer for + minibuffer-only screens. + (Fscreen_parameters): Correctly generate value of minibuffer + parameter using SCREEN_HAS_MINIBUF and SCREEN_MINIBUF_ONLY_P. + * screen.h (SCREEN_HAS_MINIBUF): New predicate. + * dispnew.c (change_screen_size): Use it. + * screen.c (Fdelete_screen): Use it. + + * screen.c (Vglobal_minibuffer_screen): Renamed + Vdefault_minibuffer_screen to better describe its significance. + (make_screen_without_minibuffer, syms_of_screen): Adjusted. + * xfns.c (Fx_create_screen): Doc string adjusted. + + * xdisp.c (display_mode_line): Make the code which names the + screen after the current buffer not depend on + Vglobal_minibuffer_screen. + * xterm.c (Vglobal_minibuffer_screen): Don't declare this extern + here; it's never used. + +1991-11-05 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * screen.c (Fdelete_screen): Document the fact that surrogate + minibuffer screens may not be deleted. + + * screen.h (SCREEN_MINIBUF_ONLY_P): New predicate, true iff the + screen's only window is a minibuffer, aka a "minibuffer screen" or + a "minibuffer-only" screen. + * dispnew.c (change_screen_size): Use it. + * screen.c (Fselect_screen, next_screen, prev_screen, + Fdelete_screen): Use it. + * window.c (Fdisplay_buffer): Use it. + + * screen.c (next_screen, prev_screen): Make MINIBUF a lisp + boolean, not a C boolean. + (Fnext_screen, Fdelete_screen): Changed to fit. + * window.c (Fnext_window, Fprevious_window): Changed to fit. + + * screen.c (make_screen_without_minibuffer): Error string improvement. + + * screen.c (syms_of_screen): Doc grammar fix for Vemacs_iconified. + + * screen.c (next_screen): Added some sanity checks, rewrote comments. + + * screen.h (Vglobal_minibuffer_screen): Don't declare this. It + shouldn't be used for anything but screen creation. + * window.c (Fminibuffer_window): Vglobal_minibuffer_screen is not + necessarily the screen containing the current minibuffer window. + Also, call choose_minibuf_window; it does much of the work here. + (Fnext_window): Used to insist on looping through all screens if + Vglobal_minibuffer_screen was non-nil. Now includes screen's + minibuffer window according to MINIBUF, no matter what screen it's + on, and ignores Vglobal_minibuffer_screen. Loop termination logic + cleaned up. Clarified doc string. + (Fprev_window): Same problems as Fnext_window, above. + * screen.c (Vglobal_minibuffer_screen): Documentation rewritten to + emphasize that it is only a parameter of the creation of + minibufferless screens, and not an indication of where the + minibuffer is. + (prev_screen): Used to assume that Vglobal_minibuffer_screen was + the only minibuffer-only screen, and would enter an infinite loop + if Vglobal_minibuffer_screen was the only screen in the list. + Rewritten to fix these problems. + * minibuf.c (Vglobal_minibuffer_screen): Don't declare it extern + here; it's not used. + + * editfns.c (Fmessage): Don't call Fmake_screen_visible here. + * xdisp.c (message, message1): Call it here, so that Emacs C + functions like Fy_or_n_p make the screen visible too. + +1991-11-04 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * keyboard.c (readable_events): If EVENT_QUEUES_EMPTY, we can + short-circuit and say no. Otherwise, if do_mouse_tracking, we can + short-circuit and say yes. These things let us scan the event + queue less often. + + * termhooks.h (mouse_tracking_enable_hook): Replaced by... + (mouse_moved, mouse_position_hook): It turns out that it is + possible and no less efficient simply to tell Emacs if the mouse + has moved since last noticed, and let it ask for the current mouse + position; X's pointer motion hints are a cool thing. + * term.c (mouse_tracking_enable_hook): Replaced by... + (mouse_position_hook): New, simpler interface. + * keyboard.c (struct movement, movement_buf, movement_ptr): + Replaced by... + (mouse_moved): This flag, to be used in conjuction with + mouse_position_hook. + (EVENT_QUEUES_EMPTY): Adjusted to use mouse_moved instead of + movement_buf and movement_ptr. + (tracking_off, Ftrack_mouse): Don't call mouse_tracking_enable + hook. + (note_mouse_position): Moved to xterm.c. + (get_mouse_position): Replaced by mouse_position_hook. + (make_lispy_event): Movement event generation code moved out to a + separate function... + (make_lispy_movement): Create a mouse movement event for the + current mouse position. Use mouse_position_hook instead of + get_mouse_position. Added static declaration for this above... + (kbd_buffer_get_event): Use mouse_moved instead of movement_buf + and movement_ptr. Call make_lispy_movement instead of + make_lispy_event. + (init_keyboard): Initialize do_mouse_tracking. Don't init + movement_ptr and movement_buf. + * xterm.h (STANDARD_EVENT_SET): Add PointerMotionMask and + PointerMotionHintMask to the set. + * xterm.c (pixel_to_glyph_translation): Renamed to + pixel_to_glyph_coords, made static, simplified to take advantage + of constant-size characters, and extended to return the bounding + rectangle of the glyph returned. + (construct_mouse_click): The 'button' field of a button event is + the button number, not a mask; convert it to a mask before + frobbing x_mouse_grabbed. Call pixel_to_glyph_coords properly. + (last_mouse_screen, last_mouse_glyph): New variables, to keep + track of when the pointer has moved to a different glyph. + (note_mouse_position): Moved here from keyboard.c and made static. + Check if the new mouse position is over a new glyph. If it is, + set mouse_moved flag; otherwise, call XQueryPointer to get the + next motion event. + (XTmouse_tracking_enable): No longer needed, since pointer motion + hints let us implement the simpler mouse position hook. + (XTmouse_position): New hook. Call XQueryPointer to get the + current mouse position and request notification about the next + mouse movement. Clear the mouse_moved flag. + (pixel_to_glyph_coords, construct_mouse_click, + note_mouse_position, XTmouse_position): Put these all on the same + page. + (XTread_socket): case MotionNotify, call note_mouse_position with + the right args; don't call pixel_to_glyph_translation. + (x_term_init): Set mouse_position_hook instead of + mouse_tracking_enable_hook. + +1991-10-31 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * xdisp.c (redisplay_window): When trying to avoid starting + display at the end of the buffer: check that startp < ZV, not + startp <= ZV. + +1991-10-29 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * xterm.c (x_do_pending_expose, XTmouse_tracking_enable): Use + SCREEN_IS_X instead of testing output_method directly. + +1991-10-26 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * xdisp.c (redisplay): In the single-screen optimization, always + update the minibuffer's screen as well as the selected screen, no + matter what the echo_area_glyphs are. This makes sure that + messages get cleared after a keystroke. + +1991-10-25 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * callint.c (Finteractive): Doc fix. + + * xterm.c (XTmouse_tracking_enable): Block input while changing + the screens' input selection masks. + + * window.c (change_window_height): If the window being resized is + the only window of the screen, no size change is possible; make + the delta be zero. Exit without "changing" the sizes of any + windows if the delta is zero. + + * alloc.c: Don't bother to include xterm.h. + (Fgarbage_collect): Don't bother to BLOCK_INPUT here, + since we don't cons in the input handler. + +1991-10-21 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * window.c (init_window_once): Set last_nonminibuf_screen to the + initial terminal screen, so that poor Fdisplay_buffer doesn't try + to create a new screen on a terminal. + +1991-10-19 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * m-intel386.h (signal): Optionally don't define it. + * s-isc2-2.h (DONT_DEFINE_SIGNAL): Define this. + +1991-10-18 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * scroll.c (line_ins_del): Don't calculate costs off the end of mf + and ov; use < in loop condition, not <=. + + * scroll.c (scroll_cost): Logic rearranged. + + * dispnew.c (change_screen_size): Change "SCREEN_IS_TERMCAP + (screen) == output_termap" to "SCREEN_IS_TERMCAP (screen)" + (window_change_signal): Use SCREEN_IS_TERMCAP predicate instead of + testing output_method_directly. + +1991-10-15 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * xterm.h (STANDARD_EVENT_SET): Include ButtonReleaseMask in + STANDARD_EVENT_SET. + * xterm.c (XTmouse_tracking_enable): Don't bother or'ing + ButtonReleaseMask with the STANDARD_EVENT_SET. + + * dispnew.c (buffer_posn_from_coords): If the coordinates are off + past the end of a line, return them as being *before* the newline, + not after. + + * keyboard.c (kbd_buffer_get_event): Set input_pending after + reading the event, no matter what sort of event it is - i.e., move + the assignment to input_pending outside of the event lispifying + conditional. + + * keyboard.c (note_mouse_position): Don't record a "new" mouse + position unless it really differs from the last one returned. + + * keyboard.c (kbd_buffer_read_char): Renamed to + kbd_buffer_get_event, for consistency with kbd_buffer_store_event. + + * window.c (Fwindow_at): modified to take the coordinates as a + pair, not a two-element list, for ease of use and compatibility + with events. Make SCREEN argument second and optional. + (Fcoordinates_in_window_p): Modified to take and return the + coordinates as above, and to distinguish the right border as well + as the mode line. + (window_from_coordinates): Modified to distinguish the right + border as well as the mode line. + * lisp.h (Qmode_line, Qvertical_split): Declare this extern, from + keyboard.c. + * keyboard.c (make_lispy_event): Distinguish a window's right + border from its text area. + + * window.c (coordinates_in_window): Make it static. + + * window.c (Flocate_window_from_coordinates): Renamed to + Fwindow_at. + (syms_of_window): Adjusted. + * lisp.h: Adjusted to say so. + + * screen.c (Fcoordinates_in_window_p, window_from_coordinates, + Flocate_window_from_coordinates): Functions moved to window.c. + (syms_of_screen): Adjusted. + * window.c (Fcoordinates_in_window_p, window_from_coordinates, + Flocate_window_from_coordinates): Here they are. + (syms_of_window): Adjusted. + * lisp.h: Adjusted to say so. + +1991-10-14 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * xterm.c (XTclear_end_of_line): This used to try to get the + cursor out of the way by comparing the line being cleared with + s->cursor_y, which is meaningless; it should have compared it with + s->phys_cursor_y. Changed to just mark the cursor as cleared if + it's in the area we're clearing. + +1991-10-13 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * m-intel386.h: Fix typo in #endif. + +1991-10-12 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * callint.c (Fcall_interactively): Added new interactive spec 'K', + for mouse clicks. Added explanation to doc string. Removed 'e' + spec, which didn't work with the new input model anyway. + * keyboard.c (Fmouse_click_p): New function. + (syms_of_keyboard): defsubr it. + + * keyboard.c (EVENT_QUEUES_EMPTY): Clarified comment. + (tracking_off): Change "if (!readable_events)" to + "if (!readable_events ())". + (Ftrack_mouse): Doc fix. + (kbd_buffer_read_char): Fix brainos in tossing of unwanted events. + Don't use EVENT_QUEUES_EMPTY to set input_pending; call + readable_events. + +1991-10-11 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * keyboard.c (Qmode_line): New quoted symbol. + (syms_of_keyboard): Initialize and staticpro it. + (make_lispy_event): Use it to indicate when a mouse position is in + a window's mode line. + + * xterm.c (XTread_socket): Consider the window to be resized if + either the character or pixel dimensions have changed; this will + catch font size changes. + +1991-10-08 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * process.c (wait_reading_process_input): Removed all the + exceptional condition stuff. Emacs lacks any way to respond to + such a state, and selecting for it without responding to it can make + Emacs loop indefinitely. + + * xterm.c (XTread_socket, construct_mouse_click): Make sure that + all enqueued events have their timestamp field set. + * termhooks.h (struct input_event): Doc fix. + * keyboard.c (last_event_timestamp): New variable. + (get_mouse_position, kbd_buffer_store_event, + kbd_buffer_read_char): Make sure to fill in Vlast_event_screen and + last_event_timestamp. + * xselect.c (mouse_timestamp): Don't use this anymore. + (last_event_timestamp): Use this instead. + (Fx_own_selection, Fx_own_clipboard, Fx_get_selection, + Fx_get_clipboard): Use last_event_timestamp instead of + mouse_timestamp. + + * xdisp.c (redisplay): Don't pass extra arguments to + update_screen. + + * keyboard.c (echo_truncate): Don't call echo here; this results + in extraneous echoing of characters. + (read_key_sequence): After calling echo_truncate, call echo_char + to put the character we just read into the minibuffer, if + appropriate. + + * keyboard.c (read_key_sequence): Removed unused argument + no_redisplay. + +1991-10-01 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * xfns.c (x_create_screen): Initialize phys_cursor_x to -1, to + indicate that the screen has no displayed cursor. + + * xfns.c (x_create_screen): Let InternalBorderWidth default to 1. + + * xterm.c (x_display_bar_cursor): Declare this to be static void. + + * xterm.c (XTupdate_begin): Don't turn off the cursor. This makes + ugly flickering. Instead, make it okay for XTins_del_lines to do + so: + * screen.h (struct screen): New field phys_cursor_glyph, keeping + track of the glyph under the currently displayed cursor. Since + current_glyphs is sometimes inaccurate when we want to undraw the + cursor (as when XTins_del_lines is called from do_scrolling), we + can't always get the GLYPH from there. + * xterm.c (x_draw_single_glyph): Take the glyph to draw as an + argument, instead of taking it from the screen matrix. + (x_display_box_cursor): Set and use s->phys_cursor_glyph. + + * ymakefile: Note that scroll.o and xmenu.o depend on screen.h. + +1991-09-29 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * keyboard.c (make_lispy_event): When building mouse movement + event, use `m', not `event', dummy. + +1991-09-26 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * screen.c (Fscreen_parameters): Return the proper value for the + 'minibuffer parameter for minibuffer-only screens. + + * xdisp.c (redisplay_window): When the start position is forced, + constrain it to be within the visible region anyway. + + * xterm.c (XTwrite_glyphs): Instead of turning off the cursor + before we write, just notice if we wrote over it. + + * xfns.c (x_decode_color): If a screen has two planes, then it is + considered a color screen, and we should look up the color value. + + * ymakefile: Include xselect.o and xrdb.o in XOBJ even when + HAVE_X_MENU is not defined. + + * fns.c (Fdelete): This used to be named Fdelq; Roland forgot to + change the function name in his August 17 change. + (syms_of_fns): defsubr Fdelete. + +1991-09-24 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * alloca.c: Do nothing if alloca is defined as a macro. + +1991-09-08 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * m-pfa50.h: New file. + +1991-09-06 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * unexec.c: Add conditionals for COFF_ENCAPSULATE. + +1991-08-17 Roland McGrath (roland@geech.gnu.ai.mit.edu) + + * fns.c (Fdelete): New fn. We have member now; we should have + delete too. + +1991-08-16 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * xfns.c (x_get_arg): Clean bad characters out of the screen name + before using it as a resource key. + + * abbrev.c (Fexpand_abbrev): Don't let capitalization go past point. + + * sysdep.c (sys_suspend): Don't use & before array name. + + * sysdep.c [BROKEN_FIONREAD]: Undefine FASYNC. + + * m-tandem-s2.h (START_FILES, LIB_STANDARD): Added. + + * s/s-aix3-1.h: Define HAVE_TCATTR. + + * xfns.c (Fx_grab_cursor, Fx_ungrab_cursor): Functions removed. + +1991-08-15 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * bytecode.c (Qbyte_code_meter): New. + (Bend_of_line, Bset_marker, Bmatch_beginning, Bmatch_end, Bupcase, + Bdowncase, BRgoto, BRgotoifnil, BRgotoifnonnil, + BRgotoifnilelsepop, BRgotoifnonnilelsepop, BlistN, BconcatN): New + byte codes. + (Fbyte_code): Implemented new codes listed above. Added code to + count how many times a function is called. + (syms_of_bytecode): Initialize and staticpro Qbyte_code_meter. + + * xfns.c (x_window): When setting the class hints, use the + screen's name as the res_name. + + * xfns.c (x_make_screen_name): New function. + (Fx_create_screen): Use x_get_arg to find screen name; if none has + been specified, use x_make_screen_name; don't set the name again + at the bottom. + (x_get_arg): If SCREEN_NAME is nil, don't pass any class to + Fx_get_resource. + + * xfns.c (x_get_arg, x_default_parameter): Take an extra argument + TYPE, instead of encoding the type in the first letter of the + property name. + +1991-08-15 Roland McGrath (roland@albert.gnu.ai.mit.edu) + + * buffer.c (Fkill_all_local_variables): Don't pass + Fmake_local_variable too many args. Use Fset instead. + +1991-08-14 Jim Blandy (jimb@pogo.gnu.ai.mit.edu) + + * xfns.c (emacs_class): Variable removed. + (EMACS_CLASS): New macro, specifying Emacs class for xrdb use. + Use a class of "Emacs", to be compatible with previous versions. + (Fx_get_resource, x_window, Fx_open_connection): Use macro here. + + * buffer.c (Fgenerate_new_buffer): Function moved to + lisp/files.el. + (Fgenerate_new_buffer_name): New function which does only the + name-choosing work Fgenerate_new_buffer used to do. + (Frename_buffer): Added second optional argument DISTINGUISH, + which lets rename_buffer use generate-new-buffer-name if non-nil. + Return the name the buffer was given. + Do nothing if new name is already buffer's name. + + * xfns.c (Fx_get_resource): Take third argument CLASS, and require + it to be specified whenever NAME is. + All callers changed. + [not HAVE_X11] (Fx_get_default): Only take the one arg. + [not HAVE_X11] (Fx_get_resource): Toss the second two args. + +1991-08-13 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * xfns.c (Fx_close_current_connection): Add \n to error message. + + * keyboard.c (make_lispy_event): Added HP keys into the + function_key_names array. + * xterm.c (XTread_socket): For KeyPressed events, strip the + keysym's vendor-specific bit, and take a shot at fitting it into + the Emacs key numbering. + + * screen.c (Vdefault_screen_alist): Definition moved from + screen.el to here. + (syms_of_screen): DEFVAR_LISP and initialize it here. + * screen.h: Declare it here. + * xfns.c (x_get_arg): Use it here. + + * screen.c (make_screen): When choosing a buffer for the screen's + root window, shy away from buffers whose names start with a space. + +1991-08-11 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * process.c (exec_sentinel, exec_sentinel_unwind): Move these + above status_notify. + + * eval.c (Qinhibit_quit): New variable, to support Aug 5 changes + to process.c. + (syms_of_eval): Initialize and staticpro above. + * lisp.h: added extern declaration for above. + +1991-08-10 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * regex.c (re_search_2): When searching with the fastmap, test for + a translate table outside of the loop, not inside the loop. + +1991-08-10 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * fns.c (Fequal): Don't crash on circular structure. + (internal_equal): New subroutine does the recursion. + + * print.c (print): Recognize circular car pointers. + +1991-08-10 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * process.c (wait_reading_process_input): Ignore exceptional + conditions on the keyboard input. + +1991-08-06 Jim Blandy (jimb at geech.gnu.ai.mit.edu) + + * lisp.h: Fiddled with formatting. + + * process.c (exec_sentinel_unwind): New function. + (exec_sentinel): Restore the process's sentinel, using an + unwind_protect. + +1991-08-05 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * keyboard.c: Doc fix. + +1991-08-05 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * dired.h: Don't include search.h; it doesn't exist. + + * process.c (read_process_output, exec_sentinel): Bind + Qinhibit_quit to true and call the filter directly instead of + through a condition-case. + (run_filter): Removed. + (this_filter, filter_process, filter_string): Variables now + unnecessary. + + * xfns.c (Fx_get_resource): Take the screen name as an optional + argument and look up resources using the name of the screen as + part of the key. + [not HAVE_X11] (Fx_get_default): Take optional 2nd arg NAME and + ignore it. + (x_get_arg): Take the screen name as an arg, and call + Fx_get_resource with that argument. + (x_default_parameter, x_figure_window_size, x_icon): Pass the + screen's name to x_get_arg. + (Fx_create_screen): Make sure the screen name is either nil or a + string, and pass it to x_get_arg. + + * xfns.c (Vx_screen_defaults): Variable removed; such settings + belong in the .Xdefaults file. + (syms_of_xfns): Don't defvar it here. + (Fx_create_screen): Don't use it here. + + * keyboard.c (classify_object): #if 0'd function finally removed. + * xterm.c (Qmapped_screen, Qunmapped_screen, Qexited_scrollbar, + Qexited_window, Qredraw_screen): Unused, so removed. + (syms_of_xterm): Don't bother to initialize above. + + * xterm.c (init_input_symbols): Renamed to syms_of_xterm, for + consistency. + (x_term_init): Don't call it here. + * xfns.c (syms_of_xfns): Don't call syms_of_xselect here. + * emacs.c (main): Call them here. + + * xterm.c (invocation_name): Made this a Lisp_Object, so that its + string value could be relocated properly. + (x_term_init, x_text_icon): Adjusted code appropriately. + (syms_of_xterm): staticpro invocation_name. + * xfns.c (invocation_name): Changed extern declaration, deleted + extra declaration. + (Fx_get_resource): Adjusted code appropriately. + +1991-08-04 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * lread.c (read1): Accept #[...] for bytecode object. + * print.c (print): Print them that way. + +1991-08-01 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * fileio.c (Fexpand_file_name): Avoid doing strlen (0). + + * editfns.c, filelock.c [VMS]: Use pwd.h from Emacs, not from system. + * fileio.c [VMS]: Likewise. Also include stddef.h, string.h. + Include perror.h only once. + [VMS] (file_name_as_directory, directory_file_name): Remove + assignments from if conditions. + (Fexpand_file_name): Remove excess slash from end of user's home dir. + +1991-08-01 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * emacs.c (main): Add SIGIO conditional within AIX conditional. + + * xdisp.c (try_window_id): Compute proper position for screen bottom + when all changes are below the screen. + When first computing bp, don't go more than HEIGHT + 1 lines. + +1991-07-31 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * xterm.c (x_destroy_window): If we're destroying the currently + highlighted screen, clear x_highlight_screen. + + * xdisp.c (display_text_line, display_string): + Don't go past endp for multi-column chars. + +1991-07-28 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * lread.c (init_lread): If Vload_path was set specially before + dumping, preserve it by default. + + * process.c (process_send_signal): Notice and deal if the + TIOCGPGRP ioctl says that the subprocess has no pgrp. + + * xdisp.c (try_window_id): Always update window_end_* if successful. + + * process.h (subtty): New slot. + * process.c (create_process): Set it. + (process_send_signal): Use it. + + * alloc.c (Fmake_rope): Doc fix. + * screen.c (Fselect_screen): Doc fix. + * vms-pp.c: Fix comment. + + * keymap.c (Fkeymapp, Fdefine_prefix_command): Doc fixes. + + * window.c (window_select_count): No longer static. + (init_window_once): Increment window_select_count, to give each + window a unique use_time. + * window.h (window_select_count): extern this here. + * screen.c (make_screen): Stamp a new screen's selected window + with the proper selection time. + + * ymakefile: xselect.o depends on screen.h, xterm.h, and config.h. + xrdb.o depends on config.h. + xterm.o depends on gnu.h. + * xfns.h: File removed - it only declared Vx_send_movement_events. + All includers changed. + +1991-07-27 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * keymap.c (Fcopy_keymap): Don't recursively copy maps inside symbols. + +1991-07-27 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * xdisp.c (redisplay): If echo_area_display puts text in a + surrogate minibuffer screen, don't neglect to update it. + + * keyboard.c (kbd_buffer_store_event): Make sure + Vlast_event_screen is set properly for quit characters. + +1991-07-26 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * keyboard.c (command_loop_1): pass both arguments to + Fselect_screen. + + * screen.c (make_screen): Divide the size by sizeof (Lisp_Object) + before passing it to Fmake_vector. + + * screen.h [not MULTI_SCREEN] (SCREEN_SCROLL_BOTTOM_VPOS): fixed + definition. + + * screen.c: #include termhooks.h and therefore stdio.h. + (make_screen): Initialize focus_screen member. + (Fdelete_screen): Refuse to delete SCREEN if it is a + surrogate minibuffer for some other screen, not just if it's the + global minibuffer screen. + (Fredirect_screen_focus, Fscreen_focus): New function. + (syms_of_screen): defsubr Sredirect_screen_focus. + * window.c: Don't include termhooks.h or stdio.h. + (Fselect_window): Removed grunge to support minibuffer hack. + * screen.h (struct screen): Added focus_screen member, and + accessor for it. + * alloc.c (mark_object): mark focus_screen member of Lisp_Screens. + * xterm.c (XTscreen_rehighlight): Use the focus_screen member to + decide which screen to highlight. + (XTread_socket): Use focus_screen when enqueuing keystrokes. + * minibuf.c (read_minibuf, read_minibuf_unwind): Shift the + selected screen's focus around appropriately. + * termhooks.h (screen_rehighlight_hook): Doc fix. + + * lisp.h (CHECK_IMPURE): Moved definition... + * puresize.h (CHECK_IMPURE): To here. + +1991-07-25 Jim Blandy (jimb@pogo.gnu.ai.mit.edu) + + * dispnew.c (buffer_posn_from_coords): Bufp is broken; don't use it. + + * xterm.c (XTscreen_rehighlight): Neatened sloppy logic. + + * keyboard.c (read_key_sequence): When truncating a key sequence, + don't forget to put the new keystroke back in this_command_keys. + Do this before calling echo_truncate, and don't call echo_char. + +1991-07-24 Jim Blandy (jimb@pogo.gnu.ai.mit.edu) + + * xterm.c (x_term_init): Initialize x_focus_screen and + x_highlight_screen. + + * xterm.c (XTscreen_rehighlight): Handle things correctly when + x_focus_screen is 0. + (XTread_socket): Process EnterNotify and LeaveNotify events with + .focus == 0 properly. For FocusOut events, pass the right + arguments to x_new_focus_screen. + + * fileio.c (Finsert_file_contents): Use RETURN_UNGCPRO macro. + + * buffer.c (Fbuffer_name): Fix typo in doc string. + (syms_of_buffer): Fix typo in before_change_function name. + +1991-07-23 Jim Blandy (jimb@pogo.gnu.ai.mit.edu) + + * screen.h (CHECK_SCREEN): Define a dummy version of this when + MULTI_SCREEN is not defined. + + * sysdep.c (init_signals, sys_signal, sys_sigpause): New functions. + (sys_sigblock, sys_sigunblock, sys_sigsetmask): New functions. + + * sysdep.c (_sobuf): Unsigned chars if DGUX. + + * sysdep.c [DGUX]: Include file.h. + [DGUX] (sys_siglist): New variable. + + * x11term.c (x_init_1) [SYSV_STREAMS]: Don't close the old + descriptor. + + * keyboard.c (read_key_sequence): Treat function keys like ascii + characters. + + * lread.c (init_lread, syms_of_lread): New names for init_read and + syms_of_read, for consistency. + + * emacssignal.h: New file. + * data.c, keyboard.c, process.c, sysdep.c: Include it. + * data.c (arith_error): Use SIGEMPTYMASK. + * keyboard.c (sigfree, sigunblockx): Use SIGEMPTYMASK. + (sigholdx, sigblockx): Use sigmask. + (gobble_input): Use sigblockx instead of sigholdx, so that any + other blocked signals stay blocked during and after the call to + read_avail_input. + * process.c (create_process): Use sigmask. + [FASYNC] (request_sigio): Use sigunblock. + * xterm.c (sigmask): Removed #definition here. + * ymakefile (keyboard.o, process.o, sysdep.o, data.o): Make these + depend on emacssignal.h. + + * window.c (Fselect_window): Modify surrogate minibuffer hack to + make the minibuffer the selected window of the selected screen, + AND select the minibuffer window's screen. + * minibuf.c (read_minibuf): If the minibuffer window is on a + different screen, save that screen's configuration too. + + * window.c (Fset_window_configuration): Use SCREEN_ accessor to + get at a screen's root window. Removed unused variable + screen_to_select. + (Fcurrent_window_configuration): Take an optional argument SCREEN. + All callers changed. + + * window.c (auto_new_screen, Vauto_new_screen_function): Renamed + to pop_up_screens and pop_up_screen_function, to be parallel with + pop_up_windows. + (display_buffer, syms_of_window): Changed appropriately. + + * fns.c (Fload_average) [DGUX]: Add code to support DGUX. + + * s-dgux.h, m-aviion.h: New files. + + * emacs.c (main) [POSIX_SIGNALS]: Call init_signals. + + * screen.c (Fdelete_screen): Update last_nonminibuf_screen if + the screen it's currently pointing to gets deleted. + +1991-07-22 Jim Blandy (jimb@pogo.gnu.ai.mit.edu) + + * screen.c (last_nonminibuf_screen): New variable. + (Fselect_screen): Set last_nonminibuf_screen if appropriate. + +1991-07-21 Jim Blandy (jimb@pogo.gnu.ai.mit.edu) + + * screen.h (last_nonminibuf_screen): Added declarations for new + variable. + * minibuf.c (active_screen): Variable removed. + (read_minibuf): Removed code to set and clear active_screen. + * window.c (Fdisplay_buffer): Rewritten to use + last_nonminibuf_screen. + + * screen.c (next_screen): Use SCREEN_ accessors instead of ->. + + * window.c (Fdisplay_buffer): Removed reference to + Fx_create_screen; we should rely on the auto-new-screen-function + being set to something appropriate. + +1991-07-21 Jim Blandy (jimb at wookumz.gnu.ai.mit.edu) + + * keyboard.c (read_key_sequence): Restore the state of + this_command_key_count along with the echoing state. + +1991-07-20 Jim Blandy (jimb at wookumz.gnu.ai.mit.edu) + + * xfns.c (Fx_synchronize): New function. + (syms_of_xfns): defsubr it. + + * xdisp.c (redisplay): Don't turn on all_windows whenever we're + using a separate minibuffer screen. Even if there is some tweak + necessary, this wasn't it. + + * process.c (status_notify): Do not forget to UNGCPRO. + + * screen.c (next_screen): Re-work logic to skip minibuffer-only + screens so that it doesn't loop indefinitely, even when the only + screen is a minibuffer-only screen. Skip all screens that are + only minibuffers, not just when they are the global minibuffer + screen. + + * xdisp.c (message, message1): If the screen's message buffer + is 0, toss the message; don't check the window system against + the screen output_method. + +1991-07-19 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * keyboard.c (read_key_sequence): When we truncate the echo + buffer because the user has switched screens, re-echo the + character that caused the truncation. + + * lread.c (Fload): Change "source newer than ..." message not to + refer to "libraries." What is a "library," anyway? + + * window.c: #include "termhooks.h", and therefore <stdio.h> too. + [MULTI_SCREEN] (Fselect_window): If the window being selected is + the selected screen's minibuffer, but it lives on another screen, + don't select that other screen - call the screen_rehighlight_hook + instead. + * termhooks.h (screen_rehighlight_hook): New hook, so that Emacs + can shift the screen highlighting when needed. + * term.c (screen_rehighlight_hook): Define it. + * xterm.c (x_highlight_screen): New variable. + (x_new_focus_screen): Move the rehighlighting code to... + (XTscreen_rehighlight): New function. + (x_display_bar_cursor, x_display_box_cursor): Use + x_highlighted_screen instead of x_focus_screen. + (x_term_init): Initialize screen_rehighlight_hook. + * ymakefile: Make window.o depend on termhooks.h. + + * xfns.c (Fx_create_screen): Add mention of + global-minibuffer-screen to docstring. + * screen.c (make_screen_without_minibuffer): Improve error message + displayed when Vglobal_minibuffer_screen is not a proper screen. + +1991-07-18 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * config.h (PURESIZE): Definition moved to... + * puresize.h: New file. + (PURESIZE): Define this here. This will allow people to change + their pure storage allocation without having to recompile most of + Emacs. + * data.c: #include puresize.h, since CHECK_IMPURE needs PURESIZE. + * alloc.c: #include puresize.h. + [HAVE_SHM] (pure_size): New variable, so that XPNTR doesn't depend + on PURESIZE. + [HAVE_SHM] (init_alloc_once): Initialize pure_size here. + * lisp.h [HAVE_SHM] (XPNTR): Defined in terms of pure_size, + instead of PURESIZE. + (pure_size): extern declaration added here. + * ymakefile: Added puresize.h to dependencies for alloc.c and + data.c's .o files. + + * emacs.c (main): Doc fix for kludge to scan for -d. + +1991-07-17 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * termhooks.h (struct input_event): #if 0'd out the definition for + the screen_selected event type, and added the stipulation that the + {non_,}ascii_keystroke events specify the screen they happen in. + * xterm.c (x_new_focus_screen): Don't enqueue a screen_selected + event. + (XTread_socket): Calls to x_new_focus_screen in the EnterNotify, + FocusIn, LeaveNotify, and FocusOut event code don't worry about + enqueued events any more. + * keyboard.c (new_selected_screen): Removed - see below. + (Vlast_event_screen): New variable, visible to lisp code. + (echo_length, echo_truncate): New functions. + (readable_events): Removed screen_selected events from the set of + things to skip. + (kbd_buffer_store_event): Don't bother collapsing consecutive + screen_selected events. + (kbd_buffer_read_char): Don't process screen_selected events. + (make_lispy_event): Re-arrange scrollbar events to put the window + whose scrollbar was diddled right after the identifying symbol, + for consistency. + (read_key_sequence): Let the selected screen and the location of + the event affect the keymap used to find its binding. + (Fread_key_sequence): Update docstring. + (syms_of_keyboard): Added DEFVAR_LISP for Vlast_event_screen. + +1991-07-15 Jim Blandy (jimb@pogo.gnu.ai.mit.edu) + + * screen.c (next_screen): If !mini_screen, only exclude the global + minibuffer screen when the minibuffer is its only window. + (Fnext_screen): Make the docstring clearer about what MINISCREEN + means. + + * window.c (Fother_window): Indicate that it takes both a required + and optional argument, instead of just one required. + +1991-07-15 Roland McGrath (roland@churchy.gnu.ai.mit.edu) + + * buffer.c (Fkill_buffer): Rehacked kill-buffer-hooks to use + standard name kill-buffer-hook, and to use set_buffer_internal + instead of Fset_buffer. Use static variable containing symbol + instead of intern. + (syms_of_buffer, init_buffer_once): Qkill_buffer_hook = + 'kill-buffer-hook. + +1991-07-15 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * keymap.c (Fsingle_key_description): When describing a listy + object, take the car to find the symbol that heads it, not the cdr. + + * dispnew.c (buffer_posn_from_coords): Pass col and line to + compute_motion in the correct order. + + * keyboard.c (make_lispy_event): When calculating rows and columns + for mouse clicks and movement events, don't forget to subtract the + position of the window's top left corner before passing them to + buffer_posn_from_coords. + + * screen.c (coordinates_in_window): Removed useless test for *y == + screen_height, and screen_height variable; this would be out of + range of all the windows anyway. + + * xdisp.c (message1): Removed code to ignore messages before X has + started up; this issue has hopefully been addressed by the + condition-case in startup.el. + + * editfns.c (init_editfns): Make user_name char * instead of + unsigned char *, since that's what most of the usages seem to + want. And when expanding ampersands in AMPERSAND_FULL_NAME mode, + don't try to use user_name as a string; use Vuser_name. + + * minibuf.c (assoc_for_completion): New function. + (do_completion): Use that to check for exact match. + + * minibuf.c (Ftry_completion): Fix handling of matches aside from + case. If ignoring case, and all else equal, try to preserve the + case of the characters in the input. + + * process.c (status_notify): GCPRO tail. + + * sysdep.c (creat_copy_attrs, rename_sans_version): Always set + protection to O:REWD when creating file. Added new function + rename_sans_version, which strips the version number from the target + filename, renames the temporary file to this filename, and then + sets the file protection of this new file to be the same as the file + being edited. + + * sysdep.c [VMS]: Include pwd.h from Emacs. Use sys/file.h if GCC. + (F_SETFL) [VMS]: Undefine this, to control conditionals. + (getpwnam): Make `full' unsigned. + (creat_copy_attrs): Add some casts. + (sys_access): Change prvmask and CHECKPRIV to use bitfields. + Add some casts, and make dummy an unsigned short int. + Don't use & on constants. + (vmserrstr): Add a cast. + (sys_creat): Define va_count before this function. + +1991-07-14 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * sysdep.c (sys_sleep, input_wait_timeout): Don't use & on constant. + [VMS]: Include pwd.h from Emacs. Use sys/file.h if GCC. + (bzero, bcopy) [VMS]: Don't take address of `length'. + + * sysdep.c (sys_suspend): Cast value of `signal' to insulate from + changed value type in sysV.3. + + * sysdep.c (child_setup_tty): Turn off erase & kill chars for BSD. + + * sysdep.c (discard_tty_input): Use TIOCFLUSH on Apollo. + (init_sys_modes): Avoid TIOCSTART on Apollo. + + * sysdep.c: If HAVE_TERMIOS is not defined, define tcgetattr in + terms of the TIOCGETP ioctl. + (init_sys_modes): Handle VSUSP, V_DSUSP if HAVE_TCATTR. + (discard_tty_input, init_baud_rate, child_setup_tty, + init_sys_modes, tabs_safe_p, reset_sys_modes): + Use tcgetattr, and if HAVE_TCATTR, use tcsetattr. + +1991-07-13 Jim Blandy (jimb at churchy.gnu.ai.mit.edu) + + * s-hpux8.h: New file. + * fileio.c [HPUX8]: Don't include errnet.h. + + * unexhp9k800.c (unexec): Local variable i to avoid compiler bug? + + * sysdep.c (insque) [WRONG_NAME_INSQUE]: New function. + * s-386ix.h (WRONG_NAME_INSQUE): Define it. + + * xdisp.c (message_buf_print): New variable. + (message): Clear it here. + * dispextern.h: Declare it here. + * print.c (printchar, strout): Set it and test it here. + + * keyboard.c (command_loop_1): Don't clear last_command when start + macro. + + * keyboard.c (read_command_char): Exit at eof if noninteractive. + + * indent.c (invalidate_current_column): New function. + * editfns.c (Fwiden, Fnarrow_to_region): Call it. + + * process.c (create_process): Use O_NOCTTY whenever defined, + unless USG. + + * process.c (Fprocess_send_eof): If using a pipe, close it. + (close_process_descs): Check IN and OUT for nonzeroness. + + * process.c (process_send_signal): Use interrupt chars + to send certain signals to the process group. + (TIOCGETC): Undefine this if it is not really usable. + + * sysdep.c (discard_tty_input): Do nothing if read_socket_hook. + + * xfns.c (x_set_mouse_color): Change the default pointer shapes to + be closer to xterm and emacs 18. + + * xterm.c (x_focus_on_screen, x_unfocus_screen): These no longer + call XSetInputFocus, because I think that the X-windows ICCCM + says that only the window manager can do this sort of thing. + + * keyboard.c (read_char): When there is an unread command + character, goto reread_first when this_command_key_count is zero, + not when it is >= 0. + (command_loop_1): Reset this_command_key_count only if there is no + prefix argument. This makes echoing of keystrokes work correctly. + +1991-07-11 Jim Blandy (jimb@geech.gnu.ai.mit.edu) + + * eval.c (Finteractive_p): Changed "! XTYPE (foo) == Lisp_Bar" to + "XTYPE (foo) != bar". + +1991-07-11 Jim Blandy (jimb at geech.gnu.ai.mit.edu) + + * eval.c (apply1): Don't forget to UNGCPRO before returning. + + * xterm.c (XTupdate_begin): Undisplay the cursor here; do_scrolling + will call XTins_del_lines when the screen matrix is inaccurate, so + we cannot undisplay the cursor then, but do_scrolling is always + called within an update. + +1991-07-10 David J. MacKenzie (djm at nutrimat) + + * termcap.c, tparam.c [!emacs, USG || STDC_HEADERS]: Define bcopy + in terms of memcpy. + +1991-07-09 Jim Blandy (jimb at geech.gnu.ai.mit.edu) + + * scroll.c (do_scrolling): Use correct termination condition for + loop that uses the glyph pointers for the deleted lines to fill in + the inserted lines. + +1991-07-08 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * editfns.c: Doc fix. + +1991-07-03 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * dispnew.c (line_hash_code): Test m->highlight[vpos], not + m->highlight. All lines were getting hash codes of -1, because + the highlight vector was never NULL. Golly. + + * process.c (list_processes_1): Handle status of network streams. + +1991-07-02 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * doc.c (Fdocumentation_property): + Pass only strings to Fsubstitute_command_keys. + +1991-07-02 Jim Blandy (jimb at geech.gnu.ai.mit.edu) + + * editfns.c (init_editfns): If neither of the environment + variables are set, DON'T set Vuser_name to Vuser_real_name; it's + supposed to reflect the EFFECTIVE uid. + Get the full name according to Vuser_name if it differs from + Vuser_real_name, not if they are equal. + And pass Vuser_name to getpwnam in that case instead of user_name, + which might be 0. + + * lisp.h (RETURN_UNGCPRO): New macro. + + * bytecode.c (Fbyte_code): Do not remove GC protection from the + stack when making a function call, because the caller is + responsible for protecting the arguments to a MANY-arg'ed + function. + * eval.c (Fapply): If we use funcall_args, GCPRO it. + And when we call Ffuncall with funcall_args, tell it the correct + length of funcall_args, no matter which branch allocated it. + (Ffuncall): Don't gcpro the arguments before calling + Fgarbage_collect. + (Feval): If we're calling a subr that takes MANY args, don't + UNGCPRO until after we call the subr. + (apply1, call0, call1, call2, call3): GCPRO the arg arrays passed + to Ffuncall and Fapply. + * callproc.c (Fcall_process, Fcall_process_region): Don't GCPRO + the argument array. + * editfns.c (Finsert, Finsert_before_markers): Don't GCPRO the + argument array. Added comment about when GCPROing is not needed. + * mocklisp.c (Finsert_string): Don't GCPRO the argument array. + + * keyboard.c (init_keyboard): Handle SIGQUIT with interrupt_signal + on any system that has HAVE_TERMIO, not just on USG systems. + +1991-07-01 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * editfns.c (init_editfns): Test that user_name isn't 0. + +1991-06-29 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * search.c: Doc fixes. + +1991-06-28 Jim Blandy (jimb at geech.gnu.ai.mit.edu) + + * keyboard.c (make_lispy_event): Let the posns of mouse clicks and + mouse movements be nil when window_from_coordinates returns a + NON-window, not when it returns a window. Since posn is a lisp + object, don't call make_number when consing up the event. + Don't call make_number on the code member of the event. + + * keyboard.c (struct movement): Make the x, y, and time members + Lisp_Objects, since it's easier to convert from a Lisp_Object than + to. + (note_mouse_position): Adjusted for the above. + (make_lispy_event): Removed code to make Lisp_Objects for those + members. + + * xterm.c (XTread_socket): When handling LeaveNotify events, + remember that the focus member of the event is true when the + receiving window now has the focus, not when it is losing it. + * xfns.c (Ffocus_screen): Don't signal an error if SCREEN is + already the focus screen. + +1991-06-26 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * alloc.c (Fmake_rope): Use sizeof (GLYPH) instead of 2 to + determine how large the string should be, and changed doc string + to describe ropes as strings of glyphs, not just as strings of + character pairs. + (Frope_elt): Use sizeof (GLYPH) as the element size, instead of + assuming that the elements are two bytes. + * lisp.h (typedef GLYPH): Moved the definition from here... + * config.h (typedef GLYPH): to here, so people can elect to get + better performance if they don't want to use huge fonts. + * xterm.c (dumpglyphs): Use XDrawImageString or + XDrawImageString16, Depending on sizeof (GLYPH). + + * data.c (Fsetq_default): Call Fset_default to do the assignments, + not plain Fset. + + The following changes were contributed by Jamie Zawinski + <jwz@lucid.com>: + + * bytecode.c (Fbyte_code): BYTE_CODE_SAFE and BYTE_CODE_METER + options added. + Added Bmark, Bscan_buffer, Bset_mark to support error-checking for + these obsolete bytecodes. + Added Bunbind_all to support tail-call optimization (not yet + implemented). + Did NOT add the relative branch opcodes that were in the version + of bytecode.c that Jamie sent. + The branching bytecodes now only QUIT if they take the branch. + Btemp_output_buffer_show, Bforward_char, Bforward_word, + Bskip_chars_forward, Bskip_chars_backward, and Bforward_line + passed the wrong number of arguments to their subrs. + Brem, Bbuffer_substring, Bdelete_region, Bnarrow_to_region, + Bstringeqlsign, Bstringlss, Bequal, Bnthcdr, Bmember, Bassq, + Bsetcar, and Bsetcdr passed arguments to the subr in the wrong + order. + +1991-06-25 Jim Blandy (jimb at churchy.gnu.ai.mit.edu) + + * doc.c (Fdocumentation): Added a QUIT test to the loop that finds + the symbol's function value. + +1991-06-24 Jim Blandy (jimb at geech.gnu.ai.mit.edu) + + * xterm.c (dumprectangle): Removed call to XFlushQueue here. + + * keyboard.c (command_loop_1): Call Fselect_screen to establish + the new selected screen after the key sequence has been read, not + at the top of the loop. This way, a key sequence will happen in + the screen it was typed at, or (to be more precise) the screen its + last character was typed at. + + * keyboard.c (fast_read_one_key): Function deleted, since it had + been #if 0'd out a long time ago. + (command_loop_1): Support for fast_read_one_key removed. + + * eval.c (Ffuncall): Do GCPRO the arguments, contrary to the May + 16 change. The convention appears to be that the MANY-arged + callee must protect its own arguments. + (Fapply): Don't protect funcall_args; they are the caller's + responsibility. + * bytecode.c (Fbyte_code): GCPRO the section of the stack *above* + the args to Ffuncall, since it will be protected again once + Ffuncall returns and therefore should stay valid. If it is not + protected, string relocation may make it invalid. + * mocklisp.c (Finsert_string): GCPRO the arguments, since insert + may cause a garbage collection. + * editfns.c (Finsert, Finsert_before_markers): GCPRO the + arguments, since insert may cause a garbage collection. + * callproc.c (Fcall_process, Fcall_process_region): GCPRO the + arguments, since insert may cause a garbage collection. + +1991-06-20 Jim Blandy (jimb at wookumz.gnu.ai.mit.edu) + + * buffer.h (struct buffer_text, struct buffer): small change to + comments. + + * search.c (Fmatch_beginning, Fmatch_end): Fixed doc strings to + indicate that non-regexp searches set these too. + + * window.c (Fset_window_start): If window is not the selected + window, set windows_or_buffers_changed, so that redisplay will + know that it should redisplay the window. + + * callint.c (Finteractive): Changed doc string to indicate that + the interactive prompts are passed through format. + +1991-06-20 Roland McGrath (roland@albert.gnu.ai.mit.edu) + + * buffer.c (syms_of_buffer): buffer-undo-list doc fix. + +1991-06-11 Roland McGrath (roland@albert.gnu.ai.mit.edu) + + * data.c (Fsetq_default): Take multiple SYM, VAL args; syntax now + parallel to setq. + +1991-05-25 Jim Blandy (jimb at wookumz.gnu.ai.mit.edu) + + * keyboard.c (kbd_buffer_read_char): Fix wait-for-input loop so + that we always process/toss events we don't want to return. + + * screen.c (Fselect_screen): Call Ffocus_screen instead of + x_new_selected_screen, which doesn't exist anymore. + + * xfns.c (Ffocus_screen): Declare the type of the SCREEN argument. + + * xfns.c (Fx_track_pointer): Function #if 0'd out - I don't think + that this is a feature that we want. + (syms_of_xfns): Elide the defsubr for the above. + + * xterm.c (x_mouse_screen, x_input_screen): Variable deleted, + since all we really need is x_focus_screen; all other issues are + the realm and responsibility of the window manager. + (x_new_selected_screen): Renamed to x_new_focus_screen, and + modified not to do thiogs inappropriate for signal handlers. + (XTread_socket): Change the handling of EnterNotify, LeaveNotify, + FocusOut and FocusIn events to use x_new_selected_screen, and + ditched code that deals with x_mouse_screen and x_input_screen, + since they don't exist anymore. + (x_display_bar_cursor, x_display_box_cursor): Compare s with + x_focus_screen to see what form the cursor should take. + (x_destroy_window): Don't bother with x_input_screen. + * xfns.c (x_mouse_screen): Removed extern declaration for this. + (Fx_grab_pointer): Confine the pointer to x_focus_screen, not + x_mouse_screen. This is wrong, but will make emacs compile until + this gets fixed. + +1991-05-23 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * keyboard.c (get_input_pending): Don't use trim_events; use + readable_events instead. + + * keyboard.c (make_lispy_event): Remove case for window_sys_event, + since that type of event doesn't exist anymore. + + * minibuf.c (Fcompleting_read): Document the backup-n argument. + + * dispnew.c (init_display): Don't declare alternate_display extern + here. I can't figure out what this feature is, and it's broken. + * emacs.c (main): Don't test alternate_display and put its value + in the environment. + +1991-05-22 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * keyboard.c (struct movement): Made .used an int instead of a + char, since that's more likely to be stored atomically on SPARCS + and similar machines. + + * termhooks.h (struct input_event): Removed the window_sys_event, + since it's not used anywhere. Added screen_selected event type. + The event handling code used to change the current buffer, + selected window, and selected screen out from under running lisp + code. Now we wait for a more convenient time by enqueuing an + event. + * xterm.c (XTread_socket): When handling FocusIn events and + EnterNotify events with the focus member set, enqueue a + selected_screen event instead of calling x_new_selected_screen. + * keyboard.c (trim_events): Function deleted; it is a bad idea to + delete events based on the current tracking state, since tracking + might be re-enabled later. + (readable_events): New function which searches the input queue for + readable events. + (tracking_off): Call readable_events to see if we should + redisplay. + (kbd_buffer_read_char): Toss events that we are not interested in. + This is a better place to do it than trim_events, since we know + that do_mouse_tracking will not change. Also, handle + screen_selected events. + (new_selected_screen): New variable, holding the screen which + should become selected the next time through command_loop_1. + (syms_of_keyboard): Initialize and staticpro new_selected_screen. + (command_loop_1): If there is a new screen to be selected, do so. + +1991-05-21 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * xdisp.c (message): Removed the if at the top that did not + display messages if the current screen was a termcap screen and a + window system will be used. The change to startup.el on May 18, + 1991 replaces this. + + * ralloc.c (check_memory_limits): If the address returned by the + allocator is not representable in a Lisp_Object, call memory_full + instead of printing a very silly "warning" message. + +1991-05-19 Jim Blandy (jimb at wookumz.gnu.ai.mit.edu) + + * xterm.c (XTread_socket): Don't overwrite the end of the buffer + with function keys. + + * keyboard.c (tracking_off): Update input_pending after reading + all the input. + * process.c: #include "screen.h". + (wait_reading_process_input): Check if any screens have been newly + mapped and need updating. + * xterm.c (XTread_socket): Don't SET_SCREEN_GARBAGED when the + screen is unmapped; do this when is mapped. + (dumprectangle): Don't dump any data for garbaged screens. + +1991-05-18 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * sysdep.c (init_sys_modes): Moved the clauses that set up + interrupt-driven input out of the "if running on a terminal" + clause, since these may need to be set up even when running on a + window system. + +1991-05-17 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * process.c (Fprocess_status): For network connections, return + Qopen and Qclosed instead of Qrun and Qexit, as documented. + + * lread.c (read1): Removed code that treated numbers starting with + a zero as octal. + +1991-05-16 Jim Blandy (jimb at geech.gnu.ai.mit.edu) + + * eval.c (Ffuncall): Don't gcpro the arguments; the caller + protects them. + (Fapply): Gcpro funcall_args, if we use them. + + * xterm.c (notice_mouse_movement): #if 0'd this function out. + (XTread_socket): #if 0 the code that fakes motion events for + moving in and out of windows. Also, rearrange the MotionNotify + case to give character rows and columns to note_mouse_position, + not pixel x and y positions. Don't deal with scrollbars here. + * termhooks.h (struct input_event): Removed the mouse_movement + event kind. + * keyboard.c (movement_buf): A new buffer for mouse-movement events. + This is hairier than you might think; see the comments for this + and the comments for note_mouse_position and get_mouse_position + for an explanation of why this is hairy. + (movement_ptr): Where the event handler should store new mouse + locations. + (EVENT_QUEUES_EMPTY): New macro, to be used in the places that + used to compare kbd_fetch_ptr to kbd_store_ptr to see if there + were any events available; this macro tests the mouse movement + buffer too. + (Qmouse_movement): New symbol to head mouse movement events with. + (trim_events): Mouse movement events are no longer in kbd_buffer, + so don't try to trim them. + (tracking_off, kbd_buffer_read_char, get_input_pending): Use + EVENT_QUEUES_EMPTY. + (get_mouse_position): New function to retrieve a mouse position + from the buffer properly, no matter when the event-handling signal + occurs. + (kbd_buffer_read_char): If there is something in kbd_buffer, make + an event for that; if there is a mouse movement, make an event for + that; otherwise, the while loop lied. + (make_lispy_event): Added code to produce mouse movement events. + (init_keyboard): Clear the mouse movement buffer. + (Qmouse_moved, Qredraw_screen, Qmapped_screen, Qunmapped_screen, + Qexited_window, Qexited_scrollbar): Removed extern declarations + for these, since they're no longer generated. + (syms_of_keyboard): Initialize and staticpro Qmouse_movement, + remove DEFVAR_LISP for Vignore_mouse_events. + +1991-05-14 Jim Blandy (jimb at geech.gnu.ai.mit.edu) + + * lread.c (read1): Correctly parenthesize the shift when parsing + octal numbers, and signal an error if we see a non-octal digit. + +1991-05-13 Jim Blandy (jimb at wookumz.gnu.ai.mit.edu) + + * keyboard.c (trim_events): New function, to remove uninteresting + events from the input queue. + (get_input_pending): Call trim_events before checking the queue, + so as not to advertise input we don't care about. + (Ftrack_mouse): A new function to enable mouse tracking for a + block of code. + (tracking_off): A function for unwind_protection; restore the + mouse tracking state to what it was outside of the track-mouse + (syms_of_keyboard): defsubr track-mouse. + (make_lispy_event): Find the window io which the click occurred + when processing mouse_click events, instead of trusting the window + tree in the signal-handling code. Include the buffer position in + the click event. + + * xterm.c (construct_mouse_click): Return the click's screen, not + its window, and don't bother updating Vmouse_window. Calculate + the row and column of text-area clicks using + pixel_to_glyph_translation, since we know that those data + structures are alive in signal handlers. + + * screen.c (window_from_coordinates, + Flocate_window_from_coordinates): Moved these to window.c, since I + need to be able to call them even if we don't have multi-screen + support. + (syms_of_screen): Removed defsubr for + Flocate_window_from_coordinates. + * window.c (window_from_coordinates, Flocate_window_from_coordinates): + Here they are. + (syms_of_window): Here is the defsubr. + + * keyboard.c (note_mouse_position): New function to enqueue + mouse movement events properly. + (current_movement_event): New variable, to support the above. See + its comment for more explanation. + + * termhooks.h (struct input_event): Change the .window member to + .screen, make it a struct screen *, and indicate that those events + which used to return windows now return screens. It is unsafe + for the event reader to traverse the window structure, because it + can be called by a signal handler. + +1991-05-10 Jim Blandy (jimb at geech.gnu.ai.mit.edu) + + * keyboard.c (Vignore_mouse_events): Variable deleted. + (make_lispy_event): For mouse and scrollbar clicks, return the + position as a pair of numbers, not a list of two numbers. + +1991-05-09 Jim Blandy (jimb at wookumz.gnu.ai.mit.edu) + + * keyboard.c (do_mouse_tracking): Define this variable, which + controls whether kbd_buffer_read_char will ignore button up and + mouse movement events. + * termhooks.h: Declare do_mouse_tracking here. + + * xterm.h (STANDARD_EVENT_SET): New constant, giving the event + mask all the windows use. + + * xfns.c (Vx_send_mouse_movement_events): Removed this variable; + XTmouse_tracking_enable and do_mouse_tracking do its job better. + (syms_of_xfns): Remove the DEFVAR_LISP for the above. + (x_window): Don't ask for any pointer motion events or button + release events by default; use the unmodified STANDARD_EVENT_MASK. + The user will ask for them explicitly if he or she wants them. + And don't ask for backing store. + + * xterm.c (XTmouse_tracking_enable): New function to + request/unrequest detailed mouse tracking information of the + server, and set the flag used by XTread_socket. + (x_term_init): Set mouse_tracking_enable_hook to + XTmouse_tracking_enable here. + (XTread_socket): Handle mouse movement events by calling + note_mouse_position. + + * xterm.c (XTread_socket): For MapNotify events, go ahead and set + the screen's visible flag, so Expose events will work. Clear the + iconified flag. + + * editfns.c (Finsert_char): Return immediately if n <= 0, not just + if n < 0, so that the `while' below does not become an infinite + loop. + + * term.c (mouse_tracking_enable_hook): Added this variable to + allow emacs to request that the window system start or stop + detailed mouse tracking. + * termhooks.h (mouse_tracking_enable_hook): Declare it here. + + * xfns.c: Declare the functions before initializing + x_screen_parm_table to point to them. + + * xterm.c (XTread_socket): Don't send Qmapped_screen, + Qunmapped_screen, Qexited_scrollbar, Qexited_window, + Qredraw_screen - these are not features that we want to support. + +1991-05-07 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * editfns.c (Finsert_char): Let strlen be the minimum of n and + 256, not the maximum, so we use an n-byte buffer when n < 256, and + a 256-byte buffer many times when n > 256. + +1991-05-05 Jim Blandy (jimb at geech.gnu.ai.mit.edu) + + * keymap.c (Fkeymapp): Fixed docstring to give the right + definition of a keymap. + +1991-05-03 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * data.c (Fcompiled_function_p): New function. + +1991-05-03 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * xfns.c (struct x_screen_parm_table): New type for recording + information about screen parameters. + (x_screen_parms): New table describing the existing parameters. + (init_x_parm_symbols, x_set_screen_param): Use x_screen_parms + instead of a large switch statement. + (x_figure_window_size): Make the default case of the switch call + abort instead of signalling an error, since window_prompting's + value is internally generated. + +1991-05-01 Jim Blandy (jimb at churchy.gnu.ai.mit.edu) + + * keymap.c (describe_map_tree): GCPRO the maps variable; + Fkey_description calls Fmapconcat, which eventually calls + Ffuncall, which can garbage-collect. + +1991-04-28 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * dispnew.c (buffer_posn_from_coords): Use the information in bufp + to reduce the distance compute_motion must scan, when possible. + +1991-04-27 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * keyboard.c (syms_of_keyboard): Qtop_level is initialized and + staticpro'd in syms_of_data too. Don't staticpro (or initialize) + it again here. + + * macros.c (syms_of_macros): Since executing-macro and + executing-kbd-macro are actually the same variable, use + DEFVAR_LISP_NOPRO for the second one so it doesn't get staticpro'd + twice. + + * process.c (syms_of_process): Don't staticpro or initialize Qexit + here, since syms_of_eval already does this and it's bad to + staticpro something twice. + (Qexit): Remove declaration here, so there will be a compilation + error if someone rearranges eval.c without fixing the Qexit stuff. + * eval.c (syms_of_eval): Add comment here to say that + syms_of_process cares about Qexit too. + + * lread.c (init_obarray): Don't staticpro Vobarray, since the + DEFVAR_LISP in syms_of_read takes care of that. + +1991-04-22 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * window.c (save_window_save): Always get the selected window's + value of point from its buffer, not just when it's also the + current buffer. + + * lisp.h (Qdisabled): Declare this here so that the keys_of_* + files can disable the commands they define. + * casefiddle.c (keys_of_casefiddle): Make upcase-region and + downcase-region disabled, by default. + +1991-04-16 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * bytecode.c (PUSH): Alliant can't be bothered to implement the + preincrement operator right, so use a comma. + + * print.c (syms_of_print): staticpro Qexternal_debugging_output. + + * editfns.c (clip_to_bounds): No longer static - used in window.c. + * window.c (unshow_buffer): Use clip_to_bounds to make sure we + change point to something legal. + +1991-04-14 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * sysdep.c: Changes in formatting and comments. + +1991-04-12 Jim Blandy (jimb at wookumz.gnu.ai.mit.edu) + + * editfns.c (Fbuffer_substring): Don't call make_string, because + it may cause a compaction and move the buffer, and then copy the + wrong data. + + * keyboard.c (read_char): Only GC if we've actually done enough + consing since the last gc to make it worthwhile. + +1991-04-11 Jim Blandy (jimb at geech.gnu.ai.mit.edu) + + * keymap.c (access_keymap): Canonicalize the order of the + modifiers when you look up a symbol in a keymap, too. + (where-is-internal): If the keymap in which we found the + definition was reached by meta-prefix-char, replace it with the + metized character. + + * eval.c (Fcondition_case): Initialize the `handler_list' member + of the catchtag. + + * keyboard.c (read_char): reset recent_keys_index when it is + greater than OR EQUAL to the number of elements in recent_keys, + stupid. + + * keymap.c (access_keymap): When fetching the car of listy events, + no need to call Fcar_safe - extract the car directly. + * keyboard.c (read_key_sequence): Don't extract the car from listy + events here since 1) it strips information that we need from the + events, and 2) access_keymap will take care of that for us. + + * macros.c (Qexecute_kbd_macro): New variable, used by + Fexecute_command. + (syms_of_macros): Initialize and staticpro Qexecute_kbd_macro. + * lisp.h: Add extern declaration for Qexecute_kbd_macro. + * keyboard.c (Fcommand_execute): Add an entry to the command + history for keyboard macros too. + + * xterm.c (XTread_socket): If we get a MappingNotify event whose + request == MappingKeyboard, someone has changed the keyboard + mapping, and we should get the new mapping with + XRefreshKeyboardMapping. + +1991-04-10 Jim Blandy (jimb at wookumz.gnu.ai.mit.edu) + + * commands.h: Declare last_command_char to be a Lisp_Object, not + an integer (ack). + + * cmds.c (Fself_insert_command): If last_command_char is not an + integer, beep. + * minibuf.c (Fself_insert_and_exit): Same thing. + + * keyboard.c (format_modifiers): New function, factoring out code + from modify_event_symbol and reorder_modifiers. + (modify_event_symbol): Call format_modifiers instead of doing the + work inline. + (reorder_modifiers): New function to put the modifiers on a + modified symbol in the canonical order. + + * keymap.c (modify_event_symbol): Prepend the modifiers so they + appear in the canonical order: `M-C-S-U-'. + (store_in_keymap): If IDX is a symbol, put the modifiers in the + canonical order before storing. + +1991-04-09 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * keymap.c (Flocal_set_key, Fglobal_set_key): When checking types + of arguments, allow KEYS to be a vector or string, not just a + string. + (keymap_table): New static function to replace duplicated code in + access_keymap and store_in_keymap. + (access_keymap): Use keymap_table. + (store_in_keymap): Use keymap_table, and put non-character + definitions in dense keymaps *after* the vector. + + * fileio.c (directory_file_name): Remove trailing slashes from + single-letter names like "a/" too. Let slen be the string length, + not one less than the string length. + + * keyboard.c (Fset_input_mode): Don't complain that QUIT isn't an + ASCII character if it is nil - it is an optional parameter. + + * keymap.c (Faccessible_keymaps): Use meta-characters in the key + sequences returned, carefully making sure that the sequences still + appear in order of increasing length. + +1991-04-04 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * vmsfns.c (vms_trnlog): Increased size of str to 256 elements. + (vms_symbol): Increased size of str to 1025 elements. + +1991-03-24 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * dispnew.c (pixel_to_glyph_translation): Moved this function to + xterm.c, since it is specific to X and only called by the X code. + * xterm.c (pixel_to_glyph_translation): Here it is. + +1991-03-22 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * s-usg5-4.h (DATA_SEG_BITS): Definition deleted. + * m-intel386.h (DATA_SEG_BITS): Define here if USG5_4. + +1991-03-22 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * keymap.c (Faccessible_keymaps): Produce meta-characters in the + key sequences instead of [meta-prefix-char CHAR] sequences. + +1991-03-21 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * keymap.c (Flookup_key): If KEY is a zero-length array, then + return KEYMAP; this is more algebraically satisfying. + + * dispnew.c (Fsit_for): If the time to sit is zero and there is no + input available, then return Qt, not Qnil. + + * keyboard.c (read_char): If a quit occurs and we return + quit_char, clear Vquit_flag, so we don't end up returning it again + and again... All lisp code does this manually if they call + read-char with quits inhibited, so it's the right thing to do. + +1991-03-20 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * keyboard.c (read_char): If there is still no input available + after an auto-save, do a garbage-collection. + + * undo.c (truncate_undo_list): Always leave at least one undo + record in the undo list. And use sizeof (struct Lisp_Cons), etc. + instead of 8, etc. + + * keyboard.c (read_char): When deciding whether to wrap + recent_keys_index back to 0, compare it against + sizeof (recent_keys)/sizeof(recent_keys[0]), + not sizeof (recent_keys). + (quit_char): This can't be anything but an ASCII character, so it + shouldn't be a Lisp_Object. The declaration's comment says why. + (read_char, init_keyboard): Treat quit_char as an int now. + (Fset_input_mode): As above, and signal an error if QUIT is not an + ASCII character. + + * callint.c (Fprefix_numeric_value): Use XFASTINT to initialize + val, not raw. + + * fileio.c (Fmake_symbolic_link): Don't expand FILENAME; this + would make it impossible to make a link to a relative name. + +1991-03-19 Jim Blandy (jimb at pogo.gnu.ai.mit.edu) + + * keyboard.c (syms_of_keyboard): Removed the DEFVAR_BOOL for + meta-flag. This cannot be a lisp variable because we need to + change the terminal settings whenever this flag changes. Change + this through set-input-mode instead. + +1991-03-19 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * keyboard.c (read_avail_input): Raise SIGHUP if no input on AIX. + +1991-03-19 Jim Blandy (jimb at churchy.ai.mit.edu) + + * keyboard.c (kbd_buffer_store_event, kbd_buffer_read_char, + read_key_sequence, Fexecute_extended_command, Fset_input_mode, + init_keyboard, syms_of_keyboard): Use XSET (var, Lisp_Int, exp) + instead of XSETINT (var, exp) in those cases where var is not + known to already be a Lisp_Int. + * search.c (skip_chars): Same. + * xterm.c (construct_mouse_click, XTread_socket): Same. + * callint.c (Fprefix_numeric_value): Make sure to return a + Lisp_Int even when RAW is a cons whose car is not a Lisp_Int. + * process.c (sigchld_handler): When searching for a process whose + pid is -1, make sure that the pid is an int first, since network + streams are in Vprocess_alist too. + + * keyboard.c (syms_of_keyboard): Added DEFVAR_BOOL for + meta-flag. Emacs 18 had this, and I see no entry in the ChangeLog + saying that it was purposefully removed. + +1991-03-17 Jim Blandy (jimb at geech.ai.mit.edu) + + * keymap.c (Fcopy_keymap, Faccessible_keymaps, describe_map, + append_key): Minor typos and brainos corrected. + + * keyboard.c (read_char): Removed code to find the vector in a + (kbd-macro . VECTOR) - style macro, since the macro is represented + by the vector itself. + (read_char_menu_prompt): Changed to correctly recognize the new + dense keymap structures. + (read_key_sequence): Changed code that checks for keymapness to + use get_keymap_1 instead of doing the indirection and keymapness + testing itself. + (Fcommand_execute): A keyboard macro is now a string or a vector. + (Fexecute_extended_command): When expanding this_command_keys, + remember that it is now an array of Lisp_Objects, not chars. + + * doc.c (Fdocumentation): Rearranged into a switch statement, and + made vectors macros, not keymaps. + + * eval.c (Fcommandp): Removed code to recognize + (kbd-macro . VECTOR) as a command, and added code to recognize + vectors as commands. + * macros.c (Qkbd_macro): Variable deleted. + (syms_of_macros): Initialization of Qkbd_macro removed. + +1991-03-14 Jim Blandy (jimb at pogo.ai.mit.edu) + + * minibuf.c (keys_of_minibuf): Changed all calls to + initial_define_lisp_key to calls to initial_define_key. + + * keymap.c (describe_map): Adjusted to handle the new style of + keymap. + +1991-03-14 Richard Stallman (rms at mole.ai.mit.edu) + + * fileio.c (Fwrite_region): On VMS, don't try rewriting old version. + +1991-03-14 Jim Blandy (jimb at pogo.ai.mit.edu) + + * keymap.c (Faccessible_keymaps): Adjusted to handle the new style + of keymap. + (Fwhere_is_internal): Handle the new-style of keymaps. + Additionally, only check to see if a match is shadowed by a + binding in the local keymap when LOCAL_KEYMAP is non-nil, instead + of comparing elt against DEFINITION yet again. + (describe_map_tree): Handle key sequences that are vectors, as + well as those that are strings. + +1991-03-13 Jim Blandy (jimb at churchy.ai.mit.edu) + + * commands.h, keymap.c (meta_map, control_x_map): Make these + Lisp_Objects, not Lisp_Vectors. + keymap.c (syms_of_keymap): Same. + + * keymap.c (Fuse_global_map): There is no longer any reason to + insist that KEYMAP must be a dense keymap; delete the code that + does so. + +1991-03-12 Jim Blandy (jimb at wookumz.ai.mit.edu) + + * commands.h, lisp.h: Changed global_map and current_global_map to + be Lisp_Objects, not Lisp_Vectors. + keyboard.c (read_key_sequence): Same. + keymap.c (Fkey_binding, Fglobal_key_binding, Fglobal_set_key, + Fuse_global_map, Fwhere_is_internal, describe_buffer_bindings, + syms_of_keymap): Same. + + * keymap.c (Fdefine_key): Braino: increment idx and clear metized + flag even when the element of the key sequence isn't a character. + (Flookup_key): Fix same braino. + +1991-03-10 Jim Blandy (jimb at wookumz.ai.mit.edu) + + * keymap.c (get_keyelt): Use access_keymap to resolve indirect + entries, instead of duplicating its code. + (Fcopy_keymap): Handle the new keymap structure. + +1991-03-09 Richard Stallman (rms at mole.ai.mit.edu) + + * eval.c (struct catchtag): New field handlerlist. + (internal_catch, internal_condition_case): Set that field. + (unbind_catch): Use it. + +1991-03-08 Richard Stallman (rms at mole.ai.mit.edu) + + * m-intel386.h (signal): Maybe define if USG. + + * keyboard.c (echo_char): Don't have space at end of echobuf. + +1991-03-07 Jim Blandy (jimb at albert.ai.mit.edu) + + * keyboard.c (syms_of_keyboard): Initialize mouse_syms, instead of + doing func_key_syms twice. Don't deal with scrollbar_syms, since + it doesn't exist. + +1991-03-06 Jim Blandy (jimb at pogo.ai.mit.edu) + + * keymap.c (access_keymap, store_in_keymap): Changed to handle the + new style of keymaps. + + * fns.c (Fassq, Fcopy_alist): Changed docstring to promise to + ignore elements of LIST that are not conses. See access_keymap + and copy_keymap for a cheap excuse. + +1991-03-06 Richard Stallman (rms at mole.ai.mit.edu) + + * s-vms.h (DATA_START): Remove `+ 512'. + +1991-03-05 Jim Blandy (jimb at spiff.ai.mit.edu) + + * keymap.c (Fmake_keymap): Rewritten to construct the + new dense keymap structure: (keymap VECTOR . ALIST). Docstring + adjusted accordingly. This means that the keyboard macro + stupidity (see Feb 27, keyboard.c) is no longer needed. + +1991-03-03 Richard Stallman (rms at mole.ai.mit.edu) + + * sysdep.c (MEMORY_IN_STRING_H): New compilation flag. + * s-isc2-2.h: New file. + +1991-02-27 Jim Blandy (jimb at churchy.ai.mit.edu) + + * macros.c (Qkbd_macro): New variable, to hold the symbol + `kbd-macro', which we use to tag vector-style keyboard macros. + (syms_of_macros): Initialize and staticpro Qkbd_macro. + + * eval.c (Fcommandp): Recognize the new keyboard macros. + + * keyboard.c (Fcommand_execute): A keyboard macro is now a string, + or a cons whose car is the symbol `kbd-macro' and whose + cdr is a vector of events; previously, macros were strings or + vectors, but that makes it difficult to tell the difference + between macros and dense keymaps. + (read_char): Handle the new macros correctly, and re-allocate + this_command_keys correctly. + +1991-02-26 Richard Stallman (rms at mole.ai.mit.edu) + + * s-vms.h (calloc): Define like malloc, etc. + +1991-02-26 Jim Blandy (jimb at spiff.ai.mit.edu) + + * xterm.c (XTread_socket): Move enter_timestamp outside of the + function; static variables inside functions don't always work in + Emacs. + + * editfns.c (in_accessible_range): Deleted - insufficently + general. + (clip_to_bounds): New function, much like in_accessible_range, + except that the upper and lower bounds are arguments. + (goto_char, save_restriction_restore): Rewritten to use + clip_to_bounds instead of in_accessible_range. + +1991-02-25 Jim Blandy (jimb at pogo.ai.mit.edu) + + * keymap.c (initial_define_lisp_key): Turn KEY into a Lisp_Int + before passing it to store_in_keymap. + + * buffer.c (reset_buffer_local_variables): Don't try to initialize + the buffer's mouse_map and function_key_map fields, since they + don't exist anymore. + + * macro.c (kbd_macro_buffer, kbd_macro_ptr, kbd_macro_end): These + are now all pointers to Lisp_Objects instead of chars. + (Fend_kbd_macro): Use make_sequence. + (store_kbd_macro_char): Argument c is now a Lisp_Object. Change + call to xrealloc to ask for Lisp_Objects instead of chars. Set + kbd_macro_end to the same place in the new buffer as it was in the + old one, not to the end of the buffer. + (Fexecute_kbd_macro): Allow MACRO to be a string or a vector. + (syms_of_macros): Allocate Lisp_Objects instead of chars for + kbd_macro_buffer. + + * alloc.c (make_sequence): New function, useful to keyboard.c and + macro.c. + * keyboard.c (Fread_key_sequence): Use make_sequence. + (Fthis_command_keys): Use make_sequence. + +1991-02-24 Jim Blandy (jimb at churchy.ai.mit.edu) + + * keymap.c (Fwhere_is): If the command can't be found, the message + is now "foobie is not on any key.", instead of "... any keys.". + + * keyboard.c (input_poll_signal): Pass 0 to read_avail_input, + instead of `&junk'. Removed variable `junk'. + (command_loop_1): Updated to handle the unified function key/mouse + event/keystroke arrangement. + (Finput_pending_p): Removed vestiges of code to handle + unread_input_char value of -1, since this doesn't happen anymore. + (read_char): Adapted to handle lispy events. + (read_char_menu_prompt): Allocate `menu' buffer using alloca, + instead of a variable-sized array, which is gcc-specific. + (Frecent_keys): Return the most recent "keystrokes" as a vector, + to accomodate lispy events. + (Fset_input_mode): Accomodate non-characters as quit keys. If + this is a bad thing, init_sys_modes will tell us. + (init_keyboard): this_command_keys is now an array of + Lisp_Objects; adjust the amount of storage we request to hold it. + Remember that quit_char can be any keystroke. + (syms_of_keyboard): last_command_char, last_input_char, help_char, + menu_prompt_more_char and meta_prefix_char are now DEFVAR_LISPs + instead of DEFVAR_INTs. + +1991-02-24 Richard Stallman (rms at mole.ai.mit.edu) + + * process.c (wait_reading_process_input): Use NETCONN_P. + +1991-02-23 Jim Blandy (jimb at pogo.ai.mit.edu) + + * keyboard.c: (recent_keys, this_command_keys, + menu_prompt_more_char, help_char, last_command_char, quit_char, + last_input_char): Changed to Lisp_Objects, so we can use function + keys for them. + (Vglobal_function_map): Variable deleted. + (echo_char): Echo function keys too. The argument C is now a + Lisp_Object instead of a char. + (Fread_key_sequence): Removed sludge to handle window events + specially, and added sludge to handle sequences with + non-characters in them. + (classify_object): Elided, since this should go away soon. + (read_key_sequence): Adapted to look up symbols in keymaps, + just like characters. + +1991-02-23 Richard Stallman (rms at mole.ai.mit.edu) + + * process.c (send_process): Handle EAGAIN like EWOULDBLOCK. + +1991-02-22 Jim Blandy (jimb at pogo.ai.mit.edu) + + * doc.c (substitute_command_keys): Call describe_map_tree with + only three arguments, since the CHARTAB arg has been disposed of. + + * keymap.c (Fcurrent_global_map, Fuse_local_mouse_map): Functions + deleted, since the mouse maps are no longer separate from the key + maps. + (append_key): New function, which handles tacking a single + keystroke on the end of a key sequence, promoting strings to + vectors when needed. + (Faccessible_keymaps): Adjusted to return vectors for key + sequences, when necessary. + (Fkey_description): Removed stuff to handle mouse buttons and + other things specially, since this work will go into + Fsingle_key_description. + (Fsingle_key_description): SIMPLIFIED to handle everything + correctly! Jeepers! + (Fwhere_is_internal): Scan the assoc-list at the end of dense + keymaps, and construct strings or vectors. + (where_is_string, describe_buffer_bindings): Simplified by + deleting code to handle mouse button bindings specially. + (describe_map_tree): Removed CHARTAB argument; this was + a kludge to print out mouse events nicely, and is no longer + necessary. Nobody was using it anyway. + (describe_map): Removed ugly hack to handle mouse buttons + specially, added code to describe alists on dense keymaps, and + removed CHARTAB argument. + (describe_alist): Made to handle bindings of symbols as well as + characters. Removed CHARTAB argument. + (describe_vector): Removed CHARTAB argument, allocated KLUDGE + outside of loop and GCPRO'd it. + (syms_of_keymap): Remove last vestiges of Vglobal_mouse_map, + Vmouse_button_names, Suse_local_mouse_map, + Scurrent_local_mouse_map. + + * buffer.h (struct buffer): Removed mouse_map and function_key_map + members, since they are now handled by the keymap element. + + * keyboard.c (syms_of_keyboard): Change initialization of + meta_prefix_char, since it's now a Lisp_Object. + + * keymap.c (Fkeymapp): Rewrote this to use get_keymap_1; now it's + a one-liner instead of a 13-liner. + (DENSE_TABLE_SIZE): Created new constant for the # of lookup-style + entries in a dense keymap, and the index of the map's assoc list. + Used it where appropriate. + (Fcopy_keymap): Notice that 129'th element in dense keymaps. + (Fdefine_key, Flookup_key): Reworked to deal with vectors of + symbols and characters as well as strings for key sequences. + (meta_prefix_char): Changed from an int to a Lisp_Object. + +1991-02-21 Richard Stallman (rms at mole.ai.mit.edu) + + * fileio.c (report_file_error): Don't downcase "I/O". + +1991-02-20 Jim Blandy (jimb at geech.ai.mit.edu) + + * keymap.c (access_keymap): Allow IDX to be any sort of bindable + event, and deal with the extended keymaps. IDX is now a + Lisp_Object instead of an int, obviously. + (store_in_keymap): Allow IDX to be any sort of bindable event, and + deal with the extended keymaps. IDX is now a Lisp_Object. + + * xterm.c (construct_mouse_click): Add code to set the up_modifier + bit for ButtonRelease events. + + * keyboard.c (kbd_buffer_store_event): Use XFASTINT and XSETINT to + access event->code, since it's a Lisp_Object. + (kbd_buffer_read_char): Golly, perhaps we should increment + kbd_fetch_ptr to remove the event we just read from the queue. + (modify_event_symbol): Stupid fixes: correctly look up unmodified + symbols when cache entry has a modified symbol vector. And, when + first adding the modified symbol vector, copy the old slot value + into it correctly. + +1991-02-19 Jim Blandy (jimb at pogo.ai.mit.edu) + + * keyboard.c (command_loop_1): #if 0 the block of code which + handles mouse events and other lispy events specially, since I + hope it will go away soon. + + * dispnew.c (Fsleep_for_millisecs): Pass all four arguments to + wait_reading_process_input, instead of just the first two. + + * process.c (wait_reading_process_input): Remove support for + only waiting for mouse input, since that has been superceded. + This removes X dependencies from process.c, and eliminates some + references to code that should only exist when using X10. + + * keyboard.c (mouse_moved_symbol, redraw_screen_symbol, + mapped_screen_symbol, unmapped_screen_symbol, + exited_window_symbol, exited_scrollbar_symbol): Renamed to + Qmouse_moved, Qredraw_screen, Qmapped_screen, Qunmapped_screen, + Qexited_window, Qexited_scrollbar, just as done in xterm.c. + (classify_object): Removed code to look up a function key in the + global and local function key keymaps, since this will be done + more generally. + (Fexecute_mouse_event): Elided this function with a #if 0; I + think it will go away once the more general keymap stuff is + implemented, but I'm not sure. + (syms_of_keyboard): Removed defsubr for Sexecute_mouse_event. + (where_is_string, describe_buffer_bindings, syms_of_keymap): + Elided code to handle mouse button bindings specially; I hope this + will go away. + + * lread.c (syms_of_lread): Change defsubr for eval-buffer to + defsubr for eval-current-buffer. + + * keymap.c (syms_of_keymap): defvar for Vglobal_function_map + removed, since that variable has disappeared. + + * xterm.c (x_func_key_to_sym): Removed entirely, since we no + longer convert X keycodes to symbols in this section of code. + (x_convert_modifiers): New function to turn the X modifier bits + into struct input_event modifier bits. + (encode_mouse_button): removed, since this work isn't done here + anymore. + (Vx_send_mouse_movement_events): Add an extern declaration for + this. + + * termhooks.h: Only define struct input_event if the module + has previously #included lisp.h; this avoids forcing simple modules + like cm.c to #include lisp.h. + + * term.c: #include "lisp.h" before #including "termhooks.h", since + the latter uses Lisp_Objects now. + + * xfns.c (syms_of_xfns): Delete the defsubr for Sx_window_id, + since Fx_window_id is gone. + + * xterm.c (construct_mouse_event): Construct a struct input_event + instead of a lispy event. + + * screen.c (coordinates_in_window): Added explanatory comment. + (window_from_coordinates): Change PART, whose returned values are + dependent on X-windows, to be called MODELINE_P, with appropriate + new return values. + * xterm.c (notice_mouse_movement): Handle the X-windows dependent + stuff that used to be in window_from_coordinates here instead. + (XTread_socket): Modified to produce struct input_events + instead of lispy events. + +1991-02-18 Jim Blandy (jimb at pogo.ai.mit.edu) + + * termhooks.h: Added up_modifier to the enum for modifier bits; + this bit will be applied to mouse events. + (struct input_event): Changed specification of non_ascii_keystroke + events to send the function key number instead of a symbol. + * keyboard.c (modify_event_symbol): Re-arranged to work well + with function key/mouse button numbers instead of symbols. + And if (MODIFIERS & up_modifer), prepend "U-" to the name of the + symbol being constructed. + (make_lispy_event): Use the new modify_event_symbol. + + * xterm.c (notice_mouse_movement): Adjusted this function to + work with a struct input_event instead of producing an + s-expression. + + * xterm.c, xfns.c: Made all references to x_mouse_queue, + x_expose_queue, and the functions which manipulate them + conditional on having X10, since only X10 code ever places + anything in these queues. + +1991-02-15 Jim Blandy (jimb at pogo.ai.mit.edu) + + * termhooks.h: Define struct input_event, to represent input + events while they sit in the keyboard input buffer. Using lisp + objects to represent input events is a bad idea because the + routines which enqueue them can be called from signal handlers, + and therefore should not cons. + + * keyboard.c: (kbd_buffer, kbd_fetch_ptr, kbd_store_ptr): Change + these to be of type `struct input_event *'. + (kbd_buffer_store_event): Manipulate struct input_events instead + of lisp objects. + (make_lispy_event): New function, to construct a lisp-style event + corresponding to a particular struct input_event. + (modify_event_symbol): New function, to add modifier prefixes to a + symbol, and look the new symbols up quickly if they've already + been created. + (kbd_buffer_read_char): Call make_lispy_event to turn the thing + in the keyboard buffer into the form that read_char is expecting. + (Qwith_modifier_keys): Define this new symbol variable. + (syms_of_keyboard): Initialize and protect Qwith_modifier_keys. + + * xterm.c (init_input_symbols): Rearranged the code that produces + the func_key_syms array. + (x_func_key_to_sym): Simplified, since more will be handled in + make_lispy_event. + (XTread_socket): When handling KeyPress events, don't pass the + state of the modifier keys to x_func_key_to_sym, since it doesn't + care any more. + + * sysdep.c (kbd_input_ast, end_kbd_input, read_input_waiting): + Rename kbd_buffer_store_char to kbd_buffer_store_event. + + * keyboard.c (stuff_buffered_input): Since the keyboard buffer + holds lisp objects, only stuff entries that are Lisp_Ints, and + XINT them before passing them to stuff_char. + (kbd_buffer_store_char): Make this not a static function, since + sysdep.c calls it. And rename it kbd_buffer_store_event. + + * keyboard.c (kbd_buffer, kbd_fetch_ptr, kbd_store_ptr): Made these + variables static, to document the fact that they're only used + within keyboard.c. + +1991-02-13 Jim Blandy (jimb at pogo.ai.mit.edu) + + * xterm.c (init_input_symbols): remove the `xk-' prefix from all + the function key symbols, since they're going to be used for + function keys from all sorts of terminals, not just when running + under X. + + * lread.c (read_escape): Removed support for mouse button escapes + (\S-, \U-, \C- applied to digits), because they're being replaced + by something more rational. + +1991-02-09 Richard Stallman (rms at mole.ai.mit.edu) + + * buffer.c: Doc fix. + + * sysdep.c (dup2): Rewrite of non-F_DUPFD case. + +1991-02-08 Richard Stallman (rms at mole.ai.mit.edu) + + * m-intel386.h (LOAD_AVE_CVT): Add extra parens. + * s-usg5-4.h (LIBX11_SYSTEM): #undef it. + +1991-02-07 Richard Stallman (rms at mole.ai.mit.edu) + + * s-esix.h: New version from kayvan. + Adds HAVE_X11 conditional, NEED_PTEM_H, USG_SYS_TIME, USE_UTIME, + LIBS_DEBUG; removes #undef sigsetmask, LIBS_SYSTEM, ESIX, + MISSING_UTIMES. + +1991-02-06 Richard Stallman (rms at mole.ai.mit.edu) + + * process.c (Faccept_process_output): Second arg gives timeout. + +1991-02-06 Jim Blandy (jimb at geech.ai.mit.edu) + + * lread.c (read_escape): Added support for \S- and \U- escapes (for + binding mouse buttons), and noted that \C- must work on digits. + + * xterm.c (init_input_symbols): Was mistakenly renamed + init_inputs; named back. + + * xterm.c (construct_mouse_click, encode_mouse_button): Rewritten + to build new-style mouse events. + + * dispnew.c (update_line): Write a zero into obody[olen] to make + sure the lines in current_screen->glyphs remain terminated. + * xdisp.c (display_string, display_text_line): Don't write off + the end of the line and destroy the zero terminator when expanding + a tab. + + * fns.c (Fy_or_n_p): Accept C-] (usually abort-recursive-edit) as + well as C-g to quit. + +1991-02-05 Jim Blandy (jimb at geech.ai.mit.edu) + + * sysdep.c, s-aix3-1.h, s-hpux.h, s-iris3-5.h, s-iris3-6.h, + s-irix3-3.h, s-rtu.h, s-sunos4-1.h, s-unipl5-0.h, s-unipl5-2.h, + s-usg5-0.h, s-usg5-2-2.h, s-usg5-2.h, s-usg5-3.h, s-xenix.h: + Globally replaced INTERRUPTABLE with INTERRUPTIBLE. + + * xterm.c (construct_mouse_event): Renamed to + construct_mouse_click, since there are kinds of mouse events + besides clicks (movement, for example). + (XTread_socket): rename calls here. + + * xterm.c (mapped_screen_symbol, unmapped_screen_symbol, + exited_scrollbar_symbol, exited_window_symbol, + redraw_screen_symbol, mouse_moved_symbol): Renamed to + Qmapped_screen, Qunmapped_screen, Qexited_scrollbar, + Qexited_window, Qredraw_screen, Qmouse_moved, to agree with naming + conventions elsewhere in Emacs. + + * xfns.c (text_part_sym, modeline_part_sym, + vertical_scrollbar_sym, vertical_slider_sym, vertical_thumbup_sym, + vertical_thumbdown_sym, horizontal_scrollbar_sym, + horizontal_slider_sym, horizontal_thumbleft_sym, + horizontal_thumbright_sym): Renamed to Qtext_part, Qmodeline_part, + Qvscrollbar_part, Qvslider_part, Qvthumbup_part, Qvthumbdown_part, + Qhscrollbar_part, Qhslider_part, Qhthumbleft_part, + Qhthumbright_part, to agree with the naming conventions elsewhere + in Emacs. + + * xterm.c (XTread_socket): While handling EnterNotify events, + clear Vmouse_event here. + (notice_mouse_movement): Don't clear it here. + +1991-02-04 Richard Stallman (rms at mole.ai.mit.edu) + + * s-sunos4-0.h: Renamed from s-sunos4.h. + (read, write, open, close): Macro defs moved to s-sunos4-1.h. + (INTERRUPTABLE_*): Likewise. + * s-sunos4-1.h: New file. + +1991-02-04 Jim Blandy (jimb at churchy.ai.mit.edu) + + * keymap.c (Vglobal_mouse_map, Vglobal_function_map): Variables + removed in preparation for conversion to unified keymap format. + (Fmake_keymap): Make vector keymaps with 129 entries; the last + will be an assoc-list for looking up symbols. Update docstring to + describe 129'th element. + (Fmake_sparse_keymap): Update docstring to say that you can bind + symbols in these maps too. + (Fkeymapp): Recognize 129-element vectors as keymaps, not + 128-element vectors. + (get_keymap_1): wrong_type_argument can no longer return a new + value supplied by the debugger; remove loop to support this. + + * xterm.c (XTread_socket): When handling EnterNotify events, + enqueue fake mouse events iff Vx_send_mouse_movement_events != + Qnil. + + * xfns.c (Fx_window_id): Function removed; Fscreen_parameters + already provides this information. + + * xterm.c (x_term_init): Cleaned up the code to get the host name, + and removed fixed limit on host name length. + + * window.c (Fscroll_other_window): Don't explicitly save + current_buffer and point; the save_excursion will take care of + that anyway. + + * dispnew.c (safe_bcopy): Rewritten to handle overlapping regions + with multiple calls to bcopy instead of a stupid copy loop. + + * xterm.c, xfns.c (Vscreen_part, Vx_send_movement_events): These + variables renamed to Vmouse_screen_part, + Vx_send_mouse_movement_events. + + * lread.c (Feval_buffer): function deleted. + (Feval_current_buffer): Removed "#if 0 ... #endif" around this + function. + +1991-02-03 Richard Stallman (rms at mole.ai.mit.edu) + + * Makefile, ymakefile (SHELL): Force use of sh. + + * s-usg5-4.h (USG5_4): Define it. + (LOAD_AVE_*): Don't define them. + * m-intel386.h (LOAD_AVE_*): Define, if USG5_4. + + * buffer.c (Fbuffer_local_variables): Omit slots with no names. + +1991-02-03 Jim Blandy (jimb at geech.ai.mit.edu) + + * xterm.c (x_term_init, init_input_symbols): Moved these to the + bottom of the file, 1) to be consistent with the other files, and + 2) so it can initialize some variables I want. + +1991-02-02 Jim Blandy (jimb at churchy.ai.mit.edu) + + * xterm.h: Added external declaration for x_focus_screen. + + * search.h: File deleted. + * buffer.h: declare searchbuf here instead. + + * screen.c (Ffocus_screen, Funfocus_screen): Moved these functions + to xfns.c, since they're x-specific. + (syms_of_screen): Removed defsubr calls for above. + * xfns.c (Ffocus_screen, Funfocus_screen): Here they are. + (syms_of_xfns): The defsubrs are here now. + + * buffer.h (PT): Make this expand to an expression which is not an + l-value, to prevent people from assigning to it. If everyplace + uses SET_PT, it will be easier to merge in the interval code. + (point): Similar changes here. + (SET_PT): This can no longer be written in terms of PT, so write + out current_buffer->text.pt. + + * xterm.c (x_new_font): Rewritten to remove arbitrary limit on + size of x_font_table. + (x_font_table_size): Created new variable. + (n_available_fonts, font_names, font_info, MAX_FONTS): Deleted + these variables/macros. + + * dispnew.c (scroll_screen_lines): Instead of disabling the lines + vacated by the scroll (i.e. zeroing enable), mark them as enabled + but empty. + + * callint.c (Fcall_interactively): Move UNGCPRO down, so that + stuff is protected while we build the command history entry and do + the function call. + + * xterm.c (XTupdate_end): Turn cursor on, even if we don't + currently have the focus. + + * minibuf.c (temp_echo_area_glyphs): Clear echo_area_glyphs and + previous_echo_glyphs, so the message we're displaying will + supercede any existing message. + + * keyboard.c: Removed external declaration of echo_area_glyphs, + since it's declared in window.h. + +1991-01-31 Jim Blandy (jimb at pogo.ai.mit.edu) + + * xterm.c (XRINGBELL): Pass 0 as the second argument to XBell; + respect the user's preferences. + +1991-01-30 Jim Blandy (jimb at pogo.ai.mit.edu) + + * xterm.c (x_draw_single_glyph): New function, created to simplify + cursor drawing/undrawing. + (x_display_box_cursor): Rewritten to properly handle the box + cursor in its filled and hollow forms. + * xterm.h (enum text_cursor_kinds): Added enum for the different + kinds of cursors which might be displayed in a window. + (struct x_display): added member `text_cursor_kind' which says + which kind of cursor is currently being displayed in the window, so + we can arrange to redraw it effectively. + + * keyboard.c (command_loop_1): When handling the forward_char + command, don't let point move to the location after the end of the + buffer. + + * keyboard.c (poll_suppress_count): Define this even if + POLL_FOR_INPUT is not defined, because this makes lots of #ifdef + clauses unnecessary, and doesn't hurt, because + {start,stop}_polling become nops. + + * config.h, config.h-dist: Make these #include "system.h" and + "machine.h", and let the config script link these appropriately, + instead of using the machine-specific names and expecting the user + to edit this file. + +1991-01-29 Jim Blandy (jimb at churchy.ai.mit.edu) + + * window.c (Fdelete_window): sib is a Lisp_Object; treat it as + such. + + * xterm.c (screen_unhighlight): When the focus leaves a screen, + draw the cursor as a box instead of making it disappear entirely. + +1991-01-29 Richard Stallman (rms at mole.ai.mit.edu) + + * unexec.c (make_hdr) [TPIX]: Set f_hdr.f_nscns and f_thdr.f_scnptr. + + * sysdep.c [BROKEN_TIOCGWINSZ]: Undef TIOCGWINSZ. + + * process.c (wait_reading_process_input): Don't ignore + a zero-length read on a network connection. Do close it. + + * sysdep.c (hft_init, hft_reset): Pass &junk as arg to HFQERROR. + Do nothing if not HFT. + +1991-01-29 Jim Blandy (jimb at albert.ai.mit.edu) + + * xfns.h: Created, to declare things defined in xfns.c. + Declare Vx_send_movement_events. + * xfns.c: #include "xfns.h". + (Vx_send_movement_events): Define this variable. + (syms_of_xfns): DEFVAR_LISP it. + * xterm.c: #include "xfns.h". + (XTread_socket): Place a mouse-moved event in the buffer iff + Vx_send_movement_events says to. + +1991-01-28 Jim Blandy (jimb at geech.ai.mit.edu) + + * ymakefile: noted that callint.o depends on mocklisp.h, + and dired.o on search.h. + + * environ.h: Deleted - its creation in the first place was misguided. + callproc.h: Removed #include "environ.h", and added declarations + for environ.h + + * buffer.c (syms_of_buffer): Add more detailed documentation to + buffer-undo-list. + + * lisp.h (poll_suppress_count): Add external declaration for this here. + +1991-01-28 Richard Stallman (rms at mole.ai.mit.edu) + + * m-sun3-68881.h, m-sun3-fpa.h, m-sun3-soft.h: New files. + +1991-01-27 Jim Blandy (jimb at geech.ai.mit.edu) + + * lisp.h (struct handler): add poll_suppress_count member, so + we can restore poll_suppress_count when we handle an error. + * eval.c (struct catchtag): Add it here too, for throws. + (internal_catch, Fcondition_case, internal_condition_case): Record + the value of poll_suppress_count here in the handler and catch tag. + (Fthrow, Fsignal): Restore it here. + +1991-01-25 Jim Blandy (jimb at churchy.ai.mit.edu) + + * xterm.c (x_display_box_cursor): If we're undrawing the cursor by + redrawing the character underneath it, draw according to that + line's highlight, instead of assuming it's in the normal GC. + +1991-01-25 Richard Stallmao (rms at mole.ai.mit.edu) + + * buffer.h (PTR_CHAR_POS): Value was too small by 1. + +1991-01-16 Richard Stallman (rms at mole.ai.mit.edu) + + * doprnt.c (doprnt): Check for overflow in fmtcpy. + +1991-01-16 Jim Blandy (jimb at churchy.ai.mit.edu) + + * window.c (Fdelete_window): If the deletee gives its space to its + next sibling, that sibling needs to have its top/left side pulled + back to where the deletee's is. + +1991-01-15 Jim Blandy (jimb at geech.ai.mit.edu) + + * doc.c (Fsnarf_documentation): handle attaching docstrings to + bytecode objects too. + + * syntax.h (syntax_spec_code): make external declaration for this + unsigned char to match the definition in syntax.c. + + * indent.c (compute_motion): added comments describing how it + can be used. + +1991-01-15 Richard Stallman (rms at mole.ai.mit.edu) + + * process.c (create_process): Use SETUP_SLAVE_PTY if defined. + + * s-usg5-4.h (HAVE_PTYS, HAVE_SETSID): Defined. + (HAVE_WAIT_HEADER, WAITTYPE, wait3, WRETCODE): New macros. + (TIOCSIGSEND): Alias for TIOCSIGNAL. + (FIRST_PTY_LETTER): Overridden. + (PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF, SETUP_SLAVE_PTY): New macros. + + * m-ibmrs6000.h (CANNOT_DUMP): Undefine it. + (UNEXEC): Define it. + (PURE_SEG_BITS, SHMKEY): Define only if CANNOT_DUMP. + (LINKER): Override it. Then add -bnodelcsect. + + * xfns.c (Fx_get_default): Try reversing XGetDefault args if it fails. + +1991-01-13 Richard Stallman (rms at mole.ai.mit.edu) + + * s-usg5-4.h (LOAD_AVE_CVT): Cast value to int. + + * keyboard.c (read_avail_input): Signal SIGHUP if FIONREAD fails. + + * ymakefile: Put tokens after #endif into comment. + + * filelock.c (lock_file_owner_name): Declare argument type. + + * syntax.c (syntax_spec_code): Type now unsigned char. + + * process.c (wait_reading_process_input): + Call status_notify even when not doing redisplay. + + * emacs.c (Fkill_emacs): Turn off SIGIO before exiting. + + * s-usg5-3.h (USG5_3): Define it. + * m-ibmps2-aix.h [USG5_3]: Define TEXT_START as 0. + Don't define DATA_START or DATA_END or TEXT_END or DATA_SEG_BITS. + Override various other symbols at end of file. + +1991-01-12 Jim Blandy (jimb at churchy.ai.mit.edu) + + * window.c (window-configuration-p): Closing paren needed. Added. + + * keyboard.c (command_loop_1): When displaying a message over an + active minibuffer, call Fsit_for with three arguments, not two. + +1991-01-12 Richard Stallman (rms at mole.ai.mit.edu) + + * s-irix3-3.h (HAVE_SYSVIPC): Defined. + +1991-01-12 Jim Blandy (jimb at pogo.ai.mit.edu) + + * dispnew.c (buffer_posn_from_coords): compute_motion starting + from bufp[y] instead of counting from the top of the window. + +1991-01-11 Richard Mlynarik (mly at pizza.ai.mit.edu) + + * window.c (window-configuration-p): Needed. Added. + +1991-01-11 Jim Blandy (jimb at churchy.ai.mit.edu) + + * dispnew.c (buffer_posn_from_coords): Remember to deduce space + for the line continuation markers and the window separators from + the window width. + +1991-01-11 Richard Stallman (rms at mole.ai.mit.edu) + + * m-tower32v3.h (VALBITS, GCTYPEBITS): Use 26 bits for pointer. + +1991-01-10 Richard Stallman (rms at mole.ai.mit.edu) + + * fileio.c (Fcopy_file): Always close descriptors. + + * s-sunos4.h: read, write, open and close are interruptable. + +1991-01-09 Jim Blandy (jimb at churchy.ai.mit.edu) + + * xterm.c, dispnew.c (pixel_to_char_translation): Renamed to + pixel_to_glyph_translation, and rewritten. Just get coordinates, + don't return anything. + (buffer_posn_from_coords): New function - given a window and + co-ordinates on the screen, find the buffer position at those + co-ordinates. + +1991-01-08 Jim Blandy (jimb at geech.ai.mit.edu) + + * alloc.c (Fmake_byte_code): Flesh out docstring. + + * window.c (window_loop): pick the first window correctly, even + when screen == 0. + + * dispnew.c (scroll_screen_lines): Don't forget to call + update_begin at the top of the down-scrolling section. + And rotate by amount, not -amount, in the up-scrolling section. + + * xterm.h (MAX_FONTS, x_font_table, n_fonts): Removed external + declarations for these variables, since they're declared static in + xterm.c and not used elsewhere. + * xterm.c (MAX_FONTS): Moved definition of this to here from + xterm.h. + + * xterm.c (x_new_font): If you can't find the requested font, + return a code which indicates this, instead of calling abort. + +1991-01-07 Jim Blandy (jimb at churchy.ai.mit.edu) + + * xdisp.c (redisplay, display_mode_line): To test + Vglobal_minibuffer_screen for validity, you must check that its + type is Lisp_Screen; comparing it to Qnil isn't good enough. + + * screen.c (syms_of_screen): Initialize Vglobal_minibuffer_screen + to Qnil; otherwise, it inhibits decent redisplay (is that another + bug?) + + * dispnew.c (init_display): Make sure that the standard input is a + terminal here. + * emacs.c (main): Not here, since we don't know yet if we want to + use a window system of some sort. + + * xfns.c (x_make_gc): Delete code to support default_face and + highlight_face, since they're part of the interval code, and + shouldn't be installed yet. + + * dispnew.c (init_display): calculate_costs expects a screen + parameter; pass selected_screen, instead of nothing. + + * search.c (Freplace_match): Protect STRING. + * process.c (run_filter): New function. + (read_process_output, exec_sentinel): Use run_filter to call the + process's filter function. + (status_notify): GCPro MSG. + * process.c (Fopen_network_stream): Protect various args. + * print.c (Fprin1_to_string, Fprint): Protect OBJ. + * lread.c (Feval_region): Check type of B. + * keymap.c (describe_alist): Protect ELT_PREFIX and TEM2. + (describe_vector): Likewise for ELT_PREFIX and TEM1. + +1991-01-06 Richard Stallman (rms at mole.ai.mit.edu) + + * sysdep.c (init_sys_modes): Turn off VSUSP and V_DSUSP if they exist. + Only on a MIPS. + +1991-01-05 Jim Blandy (jimb at spiff.ai.mit.edu) + + * xselect.c (x_answer_selection_request): For incremental, set + format to 32 and send only 1 element. Pass the address of size, + not size itself. + (x_selection_arrival): For incremental, delete the property + containing the size of the transfer. This generates a + PropertyNotify to the owner, starting the exchange. + + * xrdb.c (get_user_app): Pass correct number of parameters to + sprintf. + + * xfns.c (x_window): Don't use backing store or saveunders; they + seem to slow down suns. + (x_icon): Set the InputHint to the window manager to False. + (x_make_gc): Initialize gc_values.line_width to zero before + creating the normal video GC, since it uses it. And set the + default_face and hilite_face gcs here. + (install_vertical_scrollbar): Add 2 to thumbdown y position, and + don't add ibw. + + * insdel.c (insert, del_range): Use SET_PT rather than assigning + point directly. + * window.c (Fselect_window): Here too. + + * xdisp.c (redisplay_all_windows): removed static declaration for + this nonexistent function. + +1991-01-04 Jim Blandy (jimb at pogo.ai.mit.edu) + + * window.c (window_loop): neatened up. MINI being non-zero now + makes it recognize active minibuffer windows. Iterates properly + over multiple screens when asked nicely. + (Fget_lru_window, Fget_largest_window): SCREENS arguments are now + declared as a Lisp_Object, and documented. + (Fget_buffer_window): SCREENS argument is now documented. + (Fdelete_other_windows): Delete other windows on the argument + window's screen, not the current screen. + + * screen.c (window_from_coordinates): Changed other reference to + Fnext_window to use next_screen_window; see below. + + * window.c (Fnext_window, Fprevious_window): Accept non-nil, non-t + values for mini, and don't turn off all-screens when mini is t but + there is no global minibuffer screen. Remove screen_{root,mini} + variables. + (Fother_window): Added second argument all_screens. + + * undo.c (record_delete): Removed dead variable llength. + + * data.c (Qkeyp, Fkeyp): Removed these and supporting code. + * keymap.c (Fsingle_key_description): Report an error instead of + calling wrong_type_argument. + * lisp.h (Qkeyp): Removed external declaration for this. + +1991-01-03 Richard Stallman (rms at mole.ai.mit.edu) + + * search.c (search_buffer): Return starting position if count == 0. + +1991-01-02 Jim Blandy (jimb at pogo.ai.mit.edu) + + * scroll.c (do_scrolling): Use correct limits on loop to clear + lines just inserted--old version lost a line. + + * screen.c: #ifdef HAVE_X_WINDOWS, #include xterm.h + (Ffocus_screen, Funfocus_screen): use Joe's new definitions, and + only define these functions ifdef HAVE_X_WINDOWS. + (window_from_coordinates): use next_screen_window instead of + Fnext_window, so that global minibuffers work. + + * lread.c (syms_of_read): Don't forget to defsubr + read-char-exclusive. + + * lisp.h (Fscreenp, Fselect_screen, Ffocus_screen, + Funfocus_screen, Fselected_screen, Fwindow_screen, + Fscreen_root_window, Fscreen_selected_window, Fscreen_list, + Fnext_screen, Fdelete_screen, Fread_mouse_position, + Fset_mouse_position, Fmake_screen_visible, Fmake_screen_invisible, + Ficonify_screen, Fdeiconify_screen, Fscreen_visible_p, + Fvisible_screen_list, Fscreen_parameters, + Fmodify_screen_parameters, Fscreen_pixel_size, Fscreen_height, + Fscreen_width, Fset_screen_height, Fset_screen_width, + Fset_screen_size, Fset_screen_position, Fcoordinates_in_window_p, + Flocate_window_from_coordinates, Frubber_band_rectangle): added + extern declarations for all these. + + * lisp.h (Qscreenp): added an extern declaration for this. + + * lisp.h (DBL_DIG): Added constant for the maximum number of + decimal digits a float could print to. Used in print.c. + + * keymap.c (Fkey_description): Produce pretty descriptions of + mouse and window system events too. + (Fsingle_key_description): signal an error if obj is not a key. + + * data.c (Fkeyp, Qkeyp): Added predicate to recognize things which + can be bound - this includes keys, symbols (for function keys and + window system events), and conses (for mouse events). + * lisp.h (Qkeyp): Added external declaration for this. + + * keyboard.c (Frecursive_edit): Don't specbind the standard IO here. + (recursive_edit_1): Do it here, and don't forgot to unbind_to. + + (command_loop_1): Reset no_redisplay after mouse commands. + + (classify_object): Place the object in read_key_sequence_cmd. + + (Fread_key_sequence): recognize that when read_key_sequence + returns -1 or -2, it's a mouse event or window system event. + +1991-01-01 Jim Blandy (jimb at pogo.ai.mit.edu) + + * fileio.c (Fwrite_region): We should dereference GPT_ADDR[-1] + before comparing it to '\n' for VMS cruft. + (Fdo_auto_save): Don't call run-hooks before it's defined. This + only happens before emacs is dumped, when loading inc-vers.el. + + * eval.c (Fsignal): TOTALLY_UNBLOCK_INPUT here. + (error): Not here. + + (Feval): We use argvals[0..5], so declare it to have six elements + instead of just five. + +1990-12-30 Richard Stallman (rms at mole.ai.mit.edu) + + * eval.c (Fsignal): Don't ever return. + Call error instead if user tries to use debugger to return. + + * eval.c (unbind_to): New second arg is value to return. gcpro it. + All callers changed to pass the arg; if a caller uses unbind_to + just before returning, it passes as this arg the value it wants + to return, then it returns whatever comes back. + +1990-12-28 Jim Blandy (jimb at geech.ai.mit.edu) + + * print.c (print): put obj in a non-register variable so + we could gcpro it. Also fixed some syntax errors. + + * editfns.c (Fformat): declare nstrings, and declare nstrings and + strings in a local block. + (Fformat): XFLOAT(args[n]) isn't a float; ->data is. + +1990-12-27 Richard Stallman (rms at mole.ai.mit.edu) + + * m-tower32.h: Add comments for how to optimize. + * m-tower32v3.h: New file. + + * fileio.c (Fwrite_region): Save errno around unlock_file. + +1990-12-26 Richard Stallman (rms at mole.ai.mit.edu) + + * editfns.c (Fformat): Handle floats. Convert between int and float. + Don't truncate value at null char coming from doprnt. + * doprnt.c (doprnt): Replace tembuf with malloced buff if too small. + Handle %e, %f and %g. + +1990-12-25 Richard Stallman (rms at mole.ai.mit.edu) + + * abbrev.c (Fexpand_abbrev): Use insert_from_string, not insert. + (Funexpand_abbrev): Likewise. + * doc.c (Fsubstitute_command_keys): Likewise. + * editfns.c (Finsert, Finsert_before_markers): Likewise. + * minibuf.c (Fminibuffer_complete_word): Likewise. + * mocklisp.c (Finsert_string): Use insert1. + * vmsfns.c (Fdefault_subproc_input_handler): Likewise. + + * print.c: Don't use strout for the text of a Lisp string. + (print_string): New function to use instead. + (print): Use print_string when no escapes needed. + When printing with escapes, protect the string and check addr often. + +1990-12-24 Richard Stallman (rms at mole.ai.mit.edu) + + * insdel.c (insert_from_string): New function. + +1990-12-20 Richard Stallman (rms at mole.ai.mit.edu) + + * term.c (ins_del_lines): Handle scroll region wrt chars_wasted. + +1990-12-16 Jim Blandy (jimb at pogo.ai.mit.edu) + + * Globally renamed InsStr to insert_string. + +1990-12-15 Richard Stallman (rms at mole.ai.mit.edu) + + * s-usg5-3.h (USG_SHARED_LIBRARIES): Define it. + + * m-intel386.h (C_SWITCH_MACHINE): New macro. + +1990-12-15 Jim Blandy (jimb at pogo.ai.mit.edu) + + * alloc.c (STRING_FULLSIZE): Use sizeof(struct Lisp_String) + instead of sizeof(int). + +1990-12-14 Jim Blandy (jimb at pogo.ai.mit.edu) + + * keyboard.c (Fread_key_sequence): Clear this_command_key_count + here; who unfixed this? + +1990-12-12 Richard Stallman (rms at mole.ai.mit.edu) + + * abbrev.c (Fdefine_abbrevs): Don't crash when EXPANSION is nil. + +1990-12-11 Richard Stallman (rms at mole.ai.mit.edu) + + * eval.c (Fmacroexpand): Change handling of (foo . bar) in ENV. + +1990-12-10 Richard Stallman (rms at mole.ai.mit.edu) + + * m-pmax.h (SYSTEM_MALLOC): Define it. + + * process.c (wait_reading_process_input): Ignore failure with EIO. + +1990-12-09 Richard Stallman (rms at mole.ai.mit.edu) + + * m-iris4d.h (LOAD_AVE_CVT): Divide by 1024. + (LIB_STANDARD): Use -lbsd first. + (LIBS_MACHINE): Don't use -lbsd here. + * s-irix3-3.h (ADDR_CORRECT): Macro deleted. + (LIBS_MACHINE): Macro deleted. + (LDAV_SYMBOL): Delete the `_' from start of symbol. + + * process.c (create_process): Delete duplicate sigsetmask. + + * m-ibmrt.h (RTPC_REGISTER_BUG, SHORT_CAST_BUG): Macros deleted. + (C_SWITCH_MACHINE): Use -D to define alloca. + (SIGN_EXTEND_CHAR): Use a cast. + +1990-12-05 Jim Blandy (jimb at pogo.ai.mit.edu) + + * keyboard.c (Fsuspend_emacs): Protect STUFFSTRING. + (cmd_error): Protect TAIL while printing. + (input_poll_signal, start_polling): Use polling_period. + (syms_of_keyboard): Initialize it and make it a Lisp var. + + * fns.c (Fyes_or_no_p): Protect PROMPT for entire loop. + + * fileio.c (Frename_file): Protect args. + * fileio.c (Fadd_name_to_file): Protect the args. + (Fcopy_file, Fmake_symbolic_link): Likewise. + (Finsert_file_contents): Protect FILENAME. + +1990-12-04 Jim Blandy (jimb at geech.ai.mit.edu) + + * eval.c (Fbacktrace): gcpro TAIL. + * emacs.c (Fkill_emacs): gcpro ARG. + * editfns.c (Fformat): remove remains of gcpro'd args. + + * dispnew.c (syms_of_dispnew): Don't clobber Vwindow_system_version + if CANNOT_DUMP. + + * dired.c (file_name_completion): Check that FILE is a string. + + * buffer.c (Fbury_buffer): Don't init BUF1. + + * doc.c (Fsubstitute_command_keys): Protect STR and don't keep a + pointer to the middle of it. + + * m-hp9000s300.h (LOAD_AVE_TYPE, LOAD_AVE_CVT): Override for BSD. + + * process.c (sigchld_handler): Clear synch_process_alive if the + dying process isn't in the table at all. + * callproc.c (call_process_cleanup): Clear synch_process_alive. + +1990-12-03 Jim Blandy (jimb at geech.ai.mit.edu) + + * callproc.c (Fcall_process): change synch_process_pid to + synch_process_alive, as a general flag that we are waiting for + a synchronous process to die. This obviates the need to block + SIGCHLDs until we know the pid. + * sysdep.c (wait_for_termination): wait for synch_process_alive to + be false. + + * process.c (sigchld_handler): If pid not recognized, look for a + process recorded with pid -1. + (create_process): Set pid to -1 before the fork. + Store correct pid right after the fork. + Don't change sigchld handler on system V. + + * process.c (Fstart_process): Set BUFFER before other string vars + so a gc in Fget_buffer_create won't clobber them. + +1990-11-30 Richard Stallman (rms at mole.ai.mit.edu) + + * keyboard.c (read_command_char): Save and restore getcjmp. + +1990-11-29 Richard Stallman (rms at mole.ai.mit.edu) + + * process.c (status_convert): Use WRETCODE for exited process. + +1990-11-26 Richard Stallman (rms at mole.ai.mit.edu) + + * s-usg5-4.h (LIB_STANDARD): Add libucb.a. + (NEED_PTEM_H): Define this instead of NEED_SIOCTL. + * m-ibm370aix.h, m-ibmps2-aix.h, m-ibmrs6000.h (NEED_SIOCTL): + Undefine this. + (NEED_PTEM_H): Likewise. + + * s-sunos4.h (O_NDELAY): Don't define this. + + * print.c (Fwith_output_to_temp_buffer): Don't eval first arg twice. + +1990-11-22 Richard Stallman (rms at mole.ai.mit.edu) + + * m-hp9000s300.h (LOAD_AVE_TYPE, LOAD_AVE_CVT): Alternate defs for BSD. + +1990-11-21 Jim Blandy (jimb at churchy.ai.mit.edu) + + * dispnew.c (init_display): Check if we're using a window system + before trying to initialize the terminal. If someone has + indicated that they want to use a window system, we shouldn't + bother initializing the terminal. This is especially important + when the terminal is so dumb that emacs gives up and doesn't bother + using the window system. + +1990-11-20 Jim Blandy (jimb at churchy.ai.mit.edu) + + * print.c (Fexternal_debugging_output): added new function which + writes a character to stderr, for use when debugging emacs with + gdb. + +1990-11-14 Jim Blandy (jimb at churchy.ai.mit.edu) + + * dispnew.c (window_change_signal): used to assume that SIGWINCHes + always applied to the currently selected screen. Now it scans the + list of screens for a screen controlled by termcap, and changes that + screen's size. + +1990-11-13 Richard Stallman (rms at mole.ai.mit.edu) + + * fileio.c (err_str): New macro. + (Finsert_file_contents, Fwrite_region): Use it in error messages. + +1990-11-12 Richard Stallman (rms at mole.ai.mit.edu) + + * insdel.c (del_range): Supply missing arg to gap_left. + +1990-11-11 Jim Blandy (jimb at churchy.ai.mit.edu) + + * regex.c: Disabled definition of NULL from lisp.h + + * crt0.c (_start): added static declaration of start1. + + * xfns.c: added definition for Vbar_cursor. + (syms_of_xfns): Added DEFVAR_LISP clause for Vbar_cursor. + + * xterm.c (XTread_socket): passed &event.xkey instead of &event to + XLookupString, so things will typecheck nicely. + + * Globally rewrote all references to Vmouse_buffer to use the + buffer viewed by Vmouse_window instead. + + * alloc.c (xmalloc, xrealloc): removed calls to + {un,}hold_window_change. The new SIGWINCH-handling code and + do_pending_window_change make them unnecessary. + +1990-11-11 Richard Stallman (rms at mole.ai.mit.edu) + + * process.c (wait_reading_process_input): Make Available static; + don't clear when a nonzero bit is found. + + * fns.c (Fnthcdr): Stop loop if reach end. + + * dispnew.c: Include fcntl.h if HAVE_TERMIO. + +1990-11-10 Jim Blandy (jimb at pogo.ai.mit.edu) + + * alloc.c (make_uninit_string): No longer declared static, and + extern declaration added to lisp.h. It's used in dired.c. + +1990-11-08 Jim Blandy (jimb at geech.ai.mit.edu) + + * dispnew.c (do_pending_window_change): Changed incorrect call to + change_window_size_1 into a loop which scans list of screens and + resizes those that need resizing. + +1990-11-06 Richard Stallman (rms at mole.ai.mit.edu) + + * m-ibmrs6000.h (CANNOT_DUMP): Define it. + + * process.c (create_process): Unblock SIGCHLD in the child. + + * process.c (wait_reading_process_input): Don't read input + from more than one process between calls to `select'. + +1990-11-02 Richard Stallman (rms at mole.ai.mit.edu) + + * callint.c (syms_of_callint): + Initialize Vprefix_arg and Vcurrent_prefix_arg. + +1990-11-01 Richard Stallman (rms at mole.ai.mit.edu) + + * dired.c (Fdirectory_files): Avoid using MAXNAMLEN. + +1990-10-31 Jim Blandy (jimb at churchy.ai.mit.edu) + + * process.c (MAXDESC): Enclosed definition in `#ifndef ... #endif' + clause. + + * bytecode.c: Included syntax.h to declare syntax_code_spec. + + * syntax.h (syntax_spec_code): Added extern declaration for this. + + * floatfns.c (float_error): Added static declaration for this at + the top of the file. + +1990-10-29 Jim Blandy (jimb at pogo.ai.mit.edu) + + * indent.c (position_indentation): renamed stray `bf_cur' to + `current_buffer', and old `CharAt' usages to `FETCH_CHAR'. + * buffer.c (Fbuffer_disable_undo): the symbol object for this + subroutine was still named Sbuffer_flush_undo, and the symbol's + lisp name was similarly out of date. Renamed both, and added an + alias in lisp/subr.el . + + * keyboard.c (Fset_input_mode): a `meta_flag' had escaped being + renamed to `meta_key'. + +1990-10-29 Richard Stallman (rms at mole.ai.mit.edu) + + * process.c (Fprocess_send_region, Fprocess_send_string): + Break data into bunches less than 500 bytes. + Accept process output between bunches. + ??? Must update manual. + +1990-10-29 Jim Blandy (jimb at pogo.ai.mit.edu) + + * window.c (Fset_window_start, window_scroll): renamed stray + references to `redo_mode_line' to `update_mode_line'. + + * xdisp.c (decode_mode_spec): renamed stray references to `bf_cur' + and `bf_modified' to `current_buffer' and `MODIFF'. + +1990-10-25 Jim Blandy (jimb at pogo.ai.mit.edu) + + * environ.h: file created - contains declarations for users of the + environment variable list. + * callproc.c (environ): removed extern declaration of environ, and + included environ.h. + +1990-10-24 Jim Blandy (jimb at pogo.ai.mit.edu) + + * callproc.c (init_callproc): removed extern declaration of + environ - it's already taken care of at the top of the file. + + * mocklisp.h: file created - externally declares certain + functions defined in mocklisp.c. + * lisp.h (Fread_buffer, Fread_key_sequence): added extern + declarations for these functions. + * callint.c (ml_apply, Fread_buffer, Fread_key_sequence): removed + extern declarations for these functions, included mocklisp.h. + Moved external declaration of index to top of file. + +1990-10-24 Richard Stallman (rms at mole.ai.mit.edu) + + * ymakefile (GNULIB_VAR): New make variable. + (LIBES): Use that, not GNULIB directly. + (GNULIB): Don't define if already defined. + +1990-10-23 Jim Blandy (jimb at geech.ai.mit.edu) + + * indent.h (last_known_column_point): added extern declaration for + this variable. + buffer.c (last_known_column_point): removed extern declaration for + this variable, included indent.h. + (Vprin1_to_string_buffer): removed extern declaration - it's + already in lisp.h. + + * lisp.h (catchlist, backtrace_list, stack_bottom, + current_global_map): added extern declarations for these + variables. + * alloc.c: removed external declarations for catchlist, + backtrace_list, and stack_bottom, since this file includes + lisp.h. + * callint.c: (current_global_map): removed extern declaration. + + * search.h: new file - declares searchbuf. + * dired.c (Fdirectory_files): removed extern declaration of + searchbuf, included search.h. + + * Globally renamed `CHAR_AT_POSITION' to `FETCH_CHAR'. + +1990-10-22 Richard Stallman (rms at mole.ai.mit.edu) + + * keyboard.c (quit_char): New variable. + (init_keyboard): Initialize it. + (Fset_input_mode): New optional arg to set quit_char. + (command_loop_1, read_char, kbd_buffer_store_char): + (read_avail_input): Use quit_char, not C-g. + * sysdep.c (init_sys_modes): Use quit_char to set special chars. + * xterm.c (x_term_init): Pass new arg to Fset_input_mode. + +1990-10-22 Jim Blandy (jimb at pogo.ai.mit.edu) + + * xdisp.c: added `extern' declaration for command_loop_level. + + * term.c (term_init): Internal cleanups. + (write_glyphs): renamed argument `start' to `string'. + +1990-10-21 Richard Stallman (rms at mole.ai.mit.edu) + + * xterm.c (FIONREAD): Undefine if BROKEN_FIONREAD. + (SIGIO): Undefine if no FIONREAD. + (ioctl.h, termio.h, strings.h, string.h): Include them before those. + + * alloc.c (make_vector_from_string, Fvector_from_string): + Functions deleted. + + * sysdep.c (select): Handle timeout == 0. Add var local_timeout. + + * alloc.c (make_uninit_string, make_float): Use VALIDATE_LISP_STORAGE. + (Fcons, Fmake_vector, Fmake_symbol, Fmake_marker): Likewise. + (Fmake_vector_from_list): Likewise. + (VALIDATE_LISP_STORAGE): New macro. + +1990-10-20 Richard Stallman (rms at mole.ai.mit.edu) + + * dispnew.c (scrolling): Give up if some new lines not enabled. + (update_screen): Rework outq logic. + + * xdisp.c (message, message1): Clear noninteractive_need_newline. + +1990-10-19 Jim Blandy (jimb at pogo.ai.mit.edu) + + * scroll.c (do_scrolling): allocate queue using alloca instead + of variable-sized arrays. + +1990-10-19 Richard Stallman (rms at mole.ai.mit.edu) + + * buffer.c: Doc fix. + +1990-10-18 Jim Blandy (jimb at pogo.ai.mit.edu) + + * print.c (internal_with_output_to_temp_buffer): install an + unwind_protect to make sure the current buffer is restored. + + * minibuf.c (read_minibuf): call recursive_edit_1 instead of + Frecursive_edit, to support the new command_loop_level + arrangement. + + * malloc.c (calloc): Added this function, in case something linked + with emacs calls it. + + * lread.c (openp): Since access returns 0 on success, change that + into a 1 before returning it. + + * lisp.h: deleted DEFSIMPLE and DEFPRED, since they're no + longer used. + +1990-10-18 Richard Stallman (rms at mole.ai.mit.edu) + + * m-intel386.h (alloca): Define as builtin, if using GCC. + + * m-att3b.h (NEED_PTEM_H): Define this for 3b2. + + * s-aix3-1.h (SYSV_SYSTEM_DIR): Define it. + + * print.c (print): Improve error message for bad data type. + +1990-10-18 Jim Blandy (jimb at pogo.ai.mit.edu) + + * keymap.c (Flookup_key): rearranged to use an index into the key + sequence instead of a pointer and a level counter. + +1990-10-18 Richard Stallman (rms at mole.ai.mit.edu) + + * floatfns.c (sinh, cosh): On VMS, define to use exp. + (IN_FLOAT): Detect errors reported using errno. + (float_error): Define function unconditionally. + Reestablish handler when called, if not BSD. + +1990-10-17 Richard Stallman (rms at mole.ai.mit.edu) + + * m-delta.h (C_DEBUG_SWITCH): Don't define this. + +1990-10-17 Jim Blandy (jimb at pogo.ai.mit.edu) + + * keyboard.c (command_loop): made call to command_loop_2 + conditional on minibuf_level too (it used to be only conditional + on command_loop_level), since this is what 18.56 and all the other + functions in Emacs 19 keyboard.c do. + +1990-10-16 Jim Blandy (jimb at pogo.ai.mit.edu) + + * keyboard.c (read_char): Don't echo dash if there is already + something else being displayed in the echo area. + +1990-10-16 Richard Stallman (rms at mole.ai.mit.edu) + + * process.c (status_convert): If killed by signal, use WTERMSIG. + + * data.c (arith_error): Reestablish handler on VMS. + + * keyboard.c (start_polling, stop_polling): New functions. + (input_poll_signal): New function, handles periodic alarms. + (read_command_char): Turn off polling temporarily. + * xdisp.c (redisplay): Likewise. + * process.c (wait_reading_process_input, create_process): Likewise. + +1990-10-16 Jim Blandy (jimb at pogo.ai.mit.edu) + + * indent.c (position_indentation): instead of using CharAt, use a + pointer to scan the buffer - this is faster. + + * emacs.c (Fdump_emacs): The conditional expression which passes + symname to unexec was missing a `: 0'. + + * dispnew.c (rotate_vector): Was rotating backwards. + +1990-10-15 Jim Blandy (jimb at pogo.ai.mit.edu) + + * dired.c (file_name_completion): Use scmp to compare names. + +1990-10-15 Richard Stallman (rms at mole.ai.mit.edu) + + * process.c (create_process): Don't turn off handling of SIGCHLD. + Just set a flag if a signal comes in when not wanted. + (create_process_sigchld): New signal handler. + +1990-10-14 Richard Stallman (rms at mole.ai.mit.edu) + + * bytecode.c: De-implement Bmark, Bset_mark, Bscan_buffer. + Mark Bsymbol_function, Bfset, Bread_char as obsolete. + Implement codes Bmult, Bforward_char...Bwiden, + and Bstringeqlsign...Bintegerp. + +1990-10-12 Jim Blandy (jimb at pogo.ai.mit.edu) + + * buffer.c (list_buffers_1): Select the buffer given in + Vstandard_output using Fset_buffer instead of set_buffer_internal. + + * buffer.c (set_buffer_internal): deleted variable swb - it's + never used. + + * buffer.c (count_modified_buffers): function deleted - it's + not used anymore. + +1990-10-11 Jim Blandy (jimb at pogo.ai.mit.edu) + + * buffer.c (reset_buffer_local_variables, buffer_local_variables): + added support for default values for buffer local variables which + do not have a DEFVAR_PER_BUFFER, as described in the comments + above buffer_local_flags. + + * buffer.c (Fget_buffer_create): move initialization of + b->save_length and b->last_window_start to reset_buffer. + +1990-10-11 Richard Stallman (rms at mole.ai.mit.edu) + + * m-ibmps2-aix.h (LOAD_AVE_TYPE, LOAD_AVE_CVT): Define them. + (C_DEBUG_SWITCH): Delete -fstrength-reduce. + + * unexmips.c (unexec): Add conditional for MIPS2. + +1990-10-10 Richard Stallman (rms at mole.ai.mit.edu) + + * m-iris4d.h (LIBS_MACHINE): Use -lsun, don't use -lPW. + + * unexelf.c: New file. + * s-usg5-4.h: New file. + * unexec.c [USG_SHARED_LIBARARIES]: Numerous changes under this cond. + (copy_text_and_data): New second argument. + +1990-10-10 Jim Blandy (jimb at pogo.ai.mit.edu) + + * alloc.c (gc_sweep): only unchain markers that are in a buffer. + +1990-10-10 Mike Rowan (mtr at apple-gunkies) + + * process.c: Merged in more changes from 18.56: update_status, + FD_SET changes (define all the FD_ macros). Other small changes. + +1990-10-09 Jim Blandy (jimb at churchy.ai.mit.edu) + + * xdist.c: (decode_mode_spec): reworked code to handle %* - it now + goes like `if return else if return else ... return' instead of + using a conditional operator. + + * xdist.c: (fmodetrunc): function deleted - no longer used. + +1990-10-09 Richard Stallman (rms at mole.ai.mit.edu) + + * xdisp.c (decode_mode_spec): Handle dashes in wide windows. + +1990-10-08 Richard Stallman (rms at mole.ai.mit.edu) + + * sysdep.c (sys_open, sys_close, sys_read, sys_write): + Don't handle EAGAIN. + + * process.c (wait_reading_process_input): Handle nread==-1 + for O_NDELAY like O_NONBLOCK. + + * s-vms.h (LINK_CTRL_SHARE): Turn on again. + tranle@intellicorp.com found it needed in VMS 5.3. + + * emacs.c (main): Move VMS declaration of environ outside function. + + * vmsfns.c (Fdefault_subproc_input_handler): InsCstr -> insert. + +1990-10-07 Richard Stallman (rms at mole.ai.mit.edu) + + * m-pmax.h (START_FILES): Handle crt0.o in different dir in Ultrix 4.0. + + * s-sunos4.h (O_NDELAY): Define only if not defined. + +1990-10-06 Jim Blandy (jimb at pogo.ai.mit.edu) + + * sysdep.c (tabs_safe_p, get_screen_size): renamed `sg' to `tty'. + + * sysdep.c (init_baud_rate): rearranged code for calculating + baud_rate. + +1990-10-05 Jim Blandy (jimb at pogo.ai.mit.edu) + + * search.c (Freplace_match): used Finsert_buffer_substring instead + of place and deleted place. + + * search.c (place): function removed + + * process.c (count_active_processes): Deleted; not used. + + * minibuf.c (read_minibuf): renamed `prefix' argument to `initial'. + +1990-10-01 Jim Blandy (jimb at pogo.ai.mit.edu) + + * lread.c (Fload): renamed `MISSING-OK' to `NOERROR'. + + * keyboard.c (describe_map): renamed `keys' to `string'. + + * keyboard.c `Vauto_save_interval' unrenamed back to + `auto-save-interval'. + + * keymap.c (Fdefine_key, Flookup_key): renamed arguments called + `keys' to `key'. + +1990-10-01 Richard Stallman (rms at mole.ai.mit.edu) + + * sysdep.c (sys_open, sys_close, sys_read, sys_write): + Handle EAGAIN like EINTR. + +1990-09-30 Richard Stallman (rms at mole.ai.mit.edu) + + * insdel.c (gap_left, gap_right): Use bcopy if requested. + New config parameters GAP_USE_BCOPY, BCOPY_SAFE_UPWARD, + and BCOPY_SAFE_DOWNWARD. + + * eval.c (find_handler_clause): Bind debug-on-error to nil. + (Qdebug_on_error): New variable. + (syms_of_eval): Initialize that. + + * sysdep.c: Include various headers for ptys, for hpux, aix, and sysv. + + * dispnew.c (preserve_other_columns): Fix args to second bcopy. + +1990-09-30 Jim Blandy (jimb at pogo.ai.mit.edu) + + * keyboard.c: `auto_save_interval' renamed to + `Vauto_save_interval', since it *is* a lisp-accessible variable. + + * fileio.c (Fdo_auto_save): call record_auto_save so that + read_char knows when we've auto-saved. + + * keyboard.c (record_auto_save): added function to support the new + auto-save conditions. + + * keyboard.c (read_char): use num_input_chars and last_auto_save + instead of keystrokes to decide when to autosave. + + * keyboard.c (keystrokes): variable deleted. + +1990-09-30 Mike Rowan (mtr at spike.ai.mit.edu) + + * keyboard.c and alloc.c: added malloc warning code from + 18.56. + + * dispnew.c, xdisp.c: (un)hold_window_change no longer exists; + added do_pending_window_change from 18.56. + + * process.[ch]: added the raw_status_low and raw_status_high + code from 18.56. + +1990-09-29 Richard Stallman (rms at mole.ai.mit.edu) + + * alloca.s: Handle ns32000 like ns16000. + + * m-ns32000.h: New file. + + * lread.c (Fload): Warn if elc file older than source file. + + * ymakefile (LIB_X11_LIB): New parameter,default -lX11. + (LIBX): Use that. + + * Makefile (xmakefile): Delete junk.c at the beginning. + + * hftctl.c: Include termios.h before termio.h. + Define TCGETS and TCSETS if nec. + Give some forward declarations for the static functions. + Reformat in usual GNU style. + + * m-orion105.h (LOAD_AVE_TYPE, FSCALE): Changed from double and 1.0. + + * m-delta.h: New file. + +1990-09-28 Richard Stallman (rms at mole.ai.mit.edu) + + * fns.c (Frequire): Undo certain things on failure, like autoload. + +1990-09-28 Jim Blandy (jimb at pogo.ai.mit.edu) + + * fileio.c (Fwrite_region): renamed variable `fd' to `desc' and + changed argument to open from `1' to `O_WRONLY'. + + * fileio.c (O_WRONLY): added clause to define this if not already + defined. + + * emacs.c (Fdump_emacs): removed a_name variable. + + * emacs.c (Fkill_emacs): removed code which asked about modified + buffers and running subprocesses. + + * editfns.c (Fcurrent_time_string): renamed variable `now' to + `current_time'. + + * dispnew.c (update_line): renamed variables `m1' and `m2' to + `begmatch' and `endmatch'. + + * dispnew.c (update_screen): use preempt_count as a limit instead + of a counter; count with i instead. + + * dispnew.c (visible_bell, inverse_video, baud_rate, + Vwindow_system): rearranged comments. + +1990-09-27 Richard Stallman (rms at mole.ai.mit.edu) + + * emacs.c (main) : Set the DISPLAY environment value when both of + MAINTAIN_ENVIRONMENT and HAVE_X_WINDOW are defined. + + * m-convex.h (LIB_STANDARD, LIBS_MACHINE): remove these, they + cause an unnecessary C1/C2 dependency. + + * m-convex.h (LD_SWITCH_MACHINE): use -e__start to specify + where crt0.c begins. + + * m-convex.h (HAVE_SETSID): define; must call setsid + when creating an inferior with a different controlling tty. + * process.c (create_process): rearrange so that HAVE_SETSID + will be seen when not under USG. + + * m-convex.h (S_IFMT etc): define in case of posix compilation. + + * m-convex.h (FIRST_PTY_LETTER): do it at runtime. + * unexconvex.c (first_pty_letter): routine to locate lowest pty. + + * unexconvex.c: Rewrite so it can cope with thread-local sections. + + * sysdep.c (select): Use process_tick and update_tick, + not child_changed. + +1990-09-23 Richard Stallman (rms at mole.ai.mit.edu) + + * keyboard.c (Fsuspend_emacs): Check screen size after resume. + +1990-09-19 Richard Stallman (rms at mole.ai.mit.edu) + + * editfns.c: Doc fix. + +1990-09-18 Richard Stallman (rms at mole.ai.mit.edu) + + * window.c (Fsplit_window): Minor cleanup. + +1990-09-17 Richard Stallman (rms at mole.ai.mit.edu) + + * emacs.c (main) [USG_SHARED_LIBRARIES]: Call brk. + +1990-09-13 Richard Stallman (rms at mole.ai.mit.edu) + + * floatfns.c (float_error_arg): New variable. + (IN_FLOAT): New arg; sets float_error_arg. All uses changed. + (float_error): Use that value when signaling error. + +1990-09-11 Richard Stallman (rms at mole.ai.mit.edu) + + * unexaix.c, m-ibmr2.h, s-aix3-1.h: New files. + + * ymakefile (allocaobj): New variable. Used in otherobjs. + Eliminates assignment of mallocobj using itself. + (mallocobj): Handle SYSTEM_MALLOC without HAVE_ALLOCA. + (xemacs): Use -nl option if HAVE_SHM. + + * sysdep.c: Change IBMRTAIX conditionals to AIX. + Move hft.h to the top. + [IBMR2AIX]: Use termios.h and change macros accordingly. + (child_setup_tty): Change IBMRTAIX to AIX. + (setpgrp_of_tty): Handle IBMR2AIX. + (init_sys_modes): Handle IBMR2AIX. Output special things for AIX. + (reset_sys_modes): Output special things for AIX. + (hft_init, hft_reset): Conditionals for IBMR2AIX. + + * process.c: Change IBMRTAIX to AIX controlling time.h. + [AIX]: Include sys/pty.h and unistd.h. + (wait_reading_process_input): If AIX, handle EBADF differently. + (create_process): Handle HAVE_SETSID. Change conditional to AIX. + + * lisp.h (XPNTR): New definition if HAVE_SHM. + (NULL): Undef before defining. + + * emacs.c (main): If HAVE_SHM, call map_in_data. + Use AIX, not IBMRTAIX, for signal conditional. + (Fdump_emacs_data): New function if HAVE_SHM. + (Fdump_emacs): Don't define if HAVE_SHM. + + * alloc.c (pure, PUREBEG): If HAVE_SHM, define place for a segment. + +1990-09-03 Mike Rowan (mtr at apple-gunkies) + + * sysdep.c: added setup_pty from 18.56 + + * process.c: merged in 18.55->6 changes. Same for process.h + + * globally replaced: + redisplay_preserving_echo_area -> redisplay_preserve_echo_area + SetBfp -> set_buffer_internal + buffer_flush_undo -> buffer_disable_undo + redo_mode_line -> update_mode_line (window.h) + +1990-08-31 Richard Stallman (rms at mole.ai.mit.edu) + + * data.c (Fmake_local_variable): If var is local when set, make it + local now in this buffer. + + * data.c (Fstring_to_int): Finish eliminating second arg. + + * data.c (Faset): Require integer as third arg for string. + +1990-08-28 Richard Stallman (rms at mole.ai.mit.edu) + + * search.c: Doc fix. + + * screen.h (SCREEN_SCROLL_BOTTOM_VPOS): New macro. + * xdisp.c (screen_bottom_vpos): Variable used if just one screen. + (redisplay, try_window_id): Set that field in screen. + * dispnew.c (scrolling, update_screen): New arg scroll_bottom_vpos. + + * dispnew.c (scroll_screen_lines): Mark newly empty lines as empty. + (scrolling): Give up if any line in current_screen not enabled. + +1990-08-27 Roland McGrath (roland at churchy.ai.mit.edu) + + * dired.c (Ffile_attributes): Return the device number too (elt 11 + of the returned list). + +1990-08-27 Richard Stallman (rms at mole.ai.mit.edu) + + * sysdep.c (wait_for_kbd_input): Frob waiting_for_input here. + * keyboard.c (kbd_buffer_read_command_char): Not here. + + * sysdep.c (wait_for_kbd_input): Clear process_ef before snarfing + process input. + + * fileio.c (Fdirectory_file_name): On VMS, leave space for log name. + + * sysdep.c (init_sys_modes): Clear process_ef only the first time. + + * vmsfns.c (process_exit): Logic of deletion was wrong. + (Fspawn_subprocess): Correctly reuse existing struct process_list. + +1990-08-22 Richard Stallman (rms at mole.ai.mit.edu) + + * m-plexus.h (LD_SWITCH_MACHINE): New macro. + +1990-08-22 Joseph Arceneaux (jla at geech) + + * xterm.c (XTread_socket): Cleaned up #ifdefs prior to event + reading loop. Also handle FIOSNBIO. + +1990-08-19 Joseph Arceneaux (jla at geech) + + * xterm.c (dumplyphs): Last vestige of MScreenWidth removed. + * config.h: MScreenWidth, MScreenHeight definitions removed. + +1990-08-18 Joseph Arceneaux (jla at geech) + + * scroll.c (do_scrolling): Pass the correct sizes to bcopy. + * dispnew.c (make_screen_glyphs): Likewise. + +1990-08-16 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * dispnew.c (scroll_screen_lines, free_screen_glyphs): Only deal + with the X components of screen_glyphs if SCREEN_IS_X. + free_screen_glyphs now takes screen argument. + + * window.c (Fnext_window, Fprevious_window): Fixed typo. New + behaviour: mini non-nil implies all_screens if global mini screen + exists, implies current screen only if not. + (Fdisplay_buffer): Simplification of multi-screen code. + +1990-08-15 Richard Stallman (rms at mole.ai.mit.edu) + + * buffer.c: Doc fix. + +1990-08-15 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * dispnew.c (update_line): Simplification of pixel size code, only + done if screen is X. + (update_screen): Only set pixel stuff if screen is X. + +1990-08-14 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * m-targon31.h (NO_REMAP): Definition removed. + (SEGMENT_MASK): New macro. + +1990-08-14 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * lread.c (eval-region): Don't set opoint to point, etc. + Fnarrow_to_region from BEGV, not b. + (eval-buffer): New subr, generalization of eval-current-buffer. + (eval-current-buffer): Moved to elisp, in simple.el. + + * xfns.c (x_y_pos): Nuked. Replaced by pixel_to_char_translation + and notice_mouse_movment (dispnew.c, xterm.c). + (Fx_point_coordinates): Also nuked. + mouse_buffer_offset: New lisp variable. + + * xterm.c (notice_mouse_movement): Use it in call to + pixel_to_char_translation. + + * screen.h: For non-multiscreen, XSCREEN returns selected_screen, + as does WINDOW_SCREEN. + + * xdisp.c (display_mode_line): Set desired_glyphs->bufp to 0 for + mode line. + All occurences of struct screen * replaced with SCREEN_PTR. + +1990-08-13 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * xmenu.c (list_of_items, list_of_panes): Fixed wrong params to + wrong_type_argument. + +1990-08-12 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * dispnew.c (pixel_to_char_translation): New algorithm for + finding y. + + * xfns.c (install_*_scrollbar): No more height, width parameters. + Don't block input here. + (x_set_*_scrollbar): Block input here. + + * xterm.c (notice_mouse_motion): Check if the mouse is still in + the window. + (encode_mouse_button): Don't bother about motion types. + +1990-08-11 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * m-convex.h (C_SWITCH_MACHINE, LIB_STANDARD, LIBS_MACHINE): + (LD_SWITCH_MACHINE): Add definitions for Convex V 4.0. + +1990-08-11 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * xfns.c (Fx_grab_pointer): Call XCreateFontCursor on shape, + setting new variable grabbed_cursor. Return Qt if successful, + Qnil otherwise. + (Fx_ungrab_pointer): free grabbed_cursor if non zero. Return Qnil. + +1990-08-10 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * xfns.c (x_figure_window_size): Don't set pixel sizes until + height and width are determined. + +1990-08-08 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * xfns.c (Fx_grab_pointer): New parameter to explicitly ignore + keyboard events. + + * xterm.c (notice_mouse_movement): Use pixel_to_char_translation + to get char position and buffer offset. + +1990-08-07 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * sysdep.c [NEED_PTEM_H]: New flag macro says include ptem.h. + +1990-08-07 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * dispextern.h: element bufp of screen_glyphs no longer dependent + on X windows. + * xdisp.c (display_text_line): Likewise. + + * xfns.c (Fx_grab_pointer, Fx_ungrab_pointer): New subrs. + (x_figure_window_size): Set pixel_width and pixel_height of + screen, using font height and width. + + * xfns.c: Vmouse_grabbed renamed Vmouse_depressed. + * xterm.c: Likewise. + (construct_mouse_event): Don't check mouse coordinates; this is + done by the notice_mouse_motion. Don't grab the mouse here. + + * dispnew.c (update_line): Set the pix_width and pix_height of the + line. This fashion of doing so is temporary. + +1990-08-06 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * dispextern.h: screen_glyphs struct elements bottom_right_x, + bottom_right_y changed to pix_width and pix_height. + * scroll.c: Likewise. + * dispnew.c: Likewise. + (update_screen): Set top_left_x, top_left_y for X windows. + + * xterm.h: Macros PIXEL_{WIDTH,HEIGHT} now use the display + structure elements. + +1990-08-05 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * xfns.c (x_window_to_scrollbar): Return Lisp symbol in parameter + PART_PTR, rather than string. + Declare these symbols. + New variable Vscreen_part, indicates which part of the screen the + mouse is in. + + * xterm.c (notice_mouse_motion): Do XQueryPointer first thing. + Set Vmouse_event to Qnil. + (construct_mouse_event): Don't check if mouse has moved or not. + When returning cons, part is now already lisp symbol. + (XTread_socket): Set Vmouse_window = Vscreen_part = Qnil when + leaving screen, as well as setting x_mouse_x = x_mouse_y = -1. + + * keyboard.c: Vmouse_window, Vmouse_event declared extern and no + longer DEFVARed: they are already delclared in window.c + + * screen.c (window_from_coordinates): Use Fnext_window, even if + MULTI_SCREEN, to obtain the next window. This is an test. + Also, new paramater part returns text or modeline symbol. + (Flocate_window_from_coordinates): Pass &part to + window_from_coordinates. + (coordinates_in_window): Don't say modeline if window_height is 1, + as this is likely to be the minibuffer. + +1990-08-04 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * screen.c (Fcoordinates_in_window_p): Doc fix. Simplified. + (window_from_coordinates): New function. + (Flocate_window_from_coordinates): Use it. + + * keyboard.c (classify_object): New function for dealing with the + input object. New symbol, mouse-motion, called here. + Call to mouse-motion-handler now takes no parameters. + (read_key_sequence): Use the new function. Don't set keybuf[0] + to 0. + + * xterm.c (init_input_symbols): Create all the Lisp symbols + returned in the input stream. + func_key_syms: New array to hold all symbols for function keys. + (x_func_key_to_sym): Use this array. + (notice_mouse_movement): New function for dealing with motion + events. + (XTread_socket): Use it here. + +1990-08-02 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * callproc.c (child_setup): Report error in chdir. + +1990-08-01 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * lisp.h: New macro XFLOATINT. extract_float declared. + * floatfns.c (Ffloor): Call floor, not ceil. + (extract_float): No longer static. + * bytecode.c (Fbyte_code): Correctly handle floats in case Beqlsign. + +1990-07-31 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * keyboard.c (read_key_sequence): When downcasing letters, + don't change the value returned in keybuf. + (This is an experiment; it might be unpleasant in + things such as C-h c, but it is an improvement + for M-x global-set-key.) + +1990-07-30 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * eval.c: Doc fix. + +1990-07-28 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * s-iris*.h (SYSTEM_TYPE): Change silicon-graphics-unix to irix. + +1990-07-26 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * indent.c (Fmove_to_column): End-test was off by 1. + + * abbrev.c (Fexpand_abbrev): Return nil if alloca arg would be neg. + +1990-07-26 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * xdisp.c (display_text_line): String to rope copy for inserting + arrow text. + +1990-07-25 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * xdisp.c (display_mode_line): Check that the name has actually + changed before calling x_set_name. + + * ralloc.c (check_memory_limits): New function. + Also check if new memory will be larger than elisp pointer. + (r_alloc_sbrk): Call this function. + (relocate_blocs_upward, relocate_blocs_downward): Eliminated. + (r_alloc_sbrk): Use relocate_some_blocs instead of the eliminated + functions. + + * vm-limit.c (morecore_with_warning): Check if new memory larger + than elisp pointer size. + +1990-07-24 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * keyboard.c (save_getcjmp, restore_getcjmp): New functions. + (read_char): Use them around Fdo_auto_save. + * process.c (read_process_output, exec_sentinel): Use them. + * fileio.c (Fdo_auto_save): Run auto-save-hook. + +1990-07-24 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * dispnew.c (safe_bcopy): No longer static. + + * ralloc.c (relocate_blocs_upward, relocate_blocs_downward): Use + safe_bcopy. + + * mem_limits.c: typedef SIZE. + +1990-07-19 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * fileio.c (Finsert_file_contents): Initialize how_much when exiting + main loop. + + * m/m-mips.h: Added stuff from the 18.56 version. + +1990-07-18 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * indent.c (Fmove_to_column): Set end to ZV. + +1990-07-17 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * editfns.c (init_editfns): Let envvar NAME override full name. + + * buffer.c (list_buffers_1): Avoid error with list-buffers-directory. + +1990-07-17 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * buffer.c (list_buffers_1): Don't check list-buffers-directory. + +1990-07-16 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * xdisp.c (display_text_line): Don't print ellipsis if they're + off the left edge. + +1990-07-10 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * s-386-ix.h: Define BROKEN_TIOCGETC. + +1990-07-09 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * m-pmax.h: Undef LD_SWITCH_MACHINE, change DATA_START + and DATA_SEG_BITS. + +1990-07-05 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * s-iris3-6.h (HAVE_GETWD): Define this. + (KERNEL_FILE): Change to /unix. + (sigsetmask, sigblock, NEED_ERRNO, C_SWITCH_MACHINE): Turn off. + (SIGIO): Don't undefine it. + (LIBS_MACHINE): Remove -lbsd. + + * minibuf.c (Fall_completions, do_completion): Treat nil as alist. + (Ftry_completion): Likewise. + +1990-07-01 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * sysdep.c: Undefine TIOCGETC if BROKEN_TIOCGETC defined. + * s-usg5-3.h, s-xenix.h: Define BROKEN_TIOCGETC. + +1990-06-26 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * process.c (Fopen_network_connection): Minor cleanup. + +1990-06-20 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * m-sun3.h: Add comments for dealing with 68881. + +1990-06-19 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * m-ibmps2-aix.h [__GNUC__]: Define LIB_STANDARD and C_DEBUG_SWITCH, + and don't define LIBS_MACHINE. + (HAVE_WAIT_HEADER): Define this. + Also reordered definitions so recently added ones are together. + +1990-06-17 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * insdel.c (insert): Error if buffer would get too long. + * fileio.c (Finsert_file_contents): Likewise. + +1990-06-16 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * syntax.c (scan_sexps_forward): Allow Squote inside symbols. + +1990-06-16 Joseph Arceneaux (jla at geech) + + * window.c (Fscroll_other_window): Don't unbind_to. Keep track of + current_buffer and point explicitly. + +1990-06-15 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * term.c: (cursor_to): Only add chars_wasted if not calling hook. + (clear_end_of_line_raw): Likewise. + (clear_end_of_line): Check that screen is termcap before using + chars_wasted. + (ins_del_lines): Eliminated local copybuf[]. + (calculate_ins_del_char_costs): Now has screen parameter. + DCICcost: Change to char_ins_del_costs and defined with + SCREEN_WIDTH (screen). + DC_ICcost: Changed to char_ins_del_vector. + * term.h: DCICcost no longer defined here. DC_ICcost no longer + declared here. + * dispnew.c: char_ins_del_cost defined here. char_ins_del_vector + declared extern here. + +1990-06-14 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * Globally replaced screen_width with macro + SCREEN_WIDTH (selected_screen). + * dispnew.c (init_display): Don't set SCREEN_WIDTH, etc. from + screen_width. + (change_window_size): No longer check output_type and set + ScreenRows. + +1990-06-11 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * indent.c (Findent_to): Don't fail to return value. + (Fmove_to_column, Fcurrent_column): Doc fixes. + +1990-06-06 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * keyboard.c (echo_prompt): Now uses glyphs. + echobuf, echobuf_ptr: These variables now glyphs. + +1990-06-05 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * fileio.c (Fdo_auto_save): Use glyphs_to_str_copy to set + omessage. + * alloc.c (Fgarbage_collect): Ditto. + + * xdisp.c (message): message_buf set here, realloced if smaller + than screen width. + message_buf now type GLYF *. New variable message_buf_size holds + its size. + Use temp_buf for call to doprnt, then use str_to_glyph_cpy to set + echo_area_glyphs. + + * print.c (printchar, strout): Use message_buf_size. Convert to + glyfs before assigning chars. + (str_to_glyph_cpy, str_to_glyph_ncpy, + glyph_to_str_cpy, glyph_to_str_ncpy): New functions. + +1990-06-03 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * keyboard.c (command_loop_1): Clear this_command_key_count here. + (Fread_key_sequence): And here. + (read_key_sequence): Not here. + + * dispnew.c (update_screen): + Add missing else in handling cursor_in_echo_area. + * xdisp.c (redisplay_window): Eliminate lpoint. Alter opoint + if point should be changed permanently in the selected window. + + * window.c (unshow_buffer): Don't set pt in selected window's buffer. + + * xdisp.c (decode_mode_spec): Don't truncate buffer or file name. + + * editfns.c (Finsert_buffer_substring): Don't fail to set beg, end. + + * keyboard.c (command_loop_level): New variable. + Used in place of RecurseDepth, but different meaning. + (recursive_edit_1): New function. + (Frecursive_edit): Call it. + * minibuf.c (read_minibuf): Call recursive_edit_1. + * xdisp.c (RecurseDepth): Variable deleted. + display_minibuffer_message renamed echo_area_display. + + * print.c: Include dispextern.h. + (printchar, strout): Use message_buf. + + * scroll.c (CalcIDCosts): Dynamically allocate ILcost, etc. + (ILcost, DLcost, ILncost, DLncost): Now pointers. + (do_scrolling): Use alloca for queue. + + * term.c (term_init): selected_screen as arg to calculate_costs. + (calculate_costs): + Dynamically allocate chars_wasted, copybuf, DC_ICcost. + Set RPov based on actual width. + (chars_wasted, copybuf, DC_ICcost): Now pointers. + + * xterm.c (x_term_init): Don't set dont_calculate_costs anymore. + +1990-06-02 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * term.c (calculate_ins_del_char_costs, string_cost_one_line): + Made static. + + * dispnew.c: Declare scrolling_1; + + * scroll.c (CalcIDCosts, CalcIDCosts1, CalcLID): Renamed + calculate_ins_del_char_costs, ins_del_costs, and line_ins_del. + CalcIDCosts1 and CalcLID also renamed. + (calculate_scrolling): Now void. + + * Global renaming: bf_modified -> MODIFF. CharAt -> CHAR_AT_POSITION. + BufferSafe{Floor,Ceiling} -> BUFFER_{FLOOR,CEILING}_OF. + SetPoint -> SET_PT. + + * xterm.c (x_term_init): Don't CalcIDCosts here anymore. + +1990-06-01 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * print.c: Include dispextern.h. + (printchar, strout): Use message_buf. + + * sysdep.c (get_screen_size): Don't use MscreenWidth, MscreenLenght. + * term.c: Likewise. + + * scroll.c (CalcIDCosts, CalcIDCosts1, CalcLID): These now take a + screen argument. + (CalcIDCosts): Dynamically allocate ILcost, etc. + (ILcost, DLcost, ILncost, DLncost): Now pointers. + (do_scrolling): Use alloca for queue. + + * dispnew.c (remake_screen_structures): Allocate message_buf. + Don't use MscreenWidth, MscreenLenght. + + * xdisp.c: bf_cur replaced with current_buffer. + Calls to SetBfx deleted. + message_buf is now char *. + (message): Use SCREEN_WIDTH macro as limit for doprnt. + + * indent.c (current_column): Detect special case when point == BEGV. + + * buffer.h (struct buffer_text): Component modified renamed to + modiff. All refs changed to macros below. + (MODIFF, BUF_MODIFF): New macros. + Macro SetBfx removed. + Macro SetPoint renamed SET_PT. + + * fileio.c (Fexpand_file_name): Simplified. + +1990-06-01 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * dired.c: Doc fix. + +1990-05-31 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * search.c (Fsearch_forward): Docstring fix. + +1990-05-31 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * dired.c: Comment added. + +1990-05-31 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * process.c (Fprocess_connection): Return the type of a process + object. + (syms_of_process): Initialize pty_process and stream_process. + Declare Fprocess_type. + * process.h New element type to struct Lisp_Process. + + * syntax.c (scan_sexps_forward): Initialize curlevel->last to -1. + +1990-05-28 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * fileio.c (Finsert_file_contents): Use new variable how_much to + hold read result. + +1990-05-24 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * lread.c (read_char_exclusive): New subr. + +1990-05-24 David Lawrence (tale at pogo.ai.mit.edu) + + * fileio.c (file_executable_p): New function. + +1990-05-23 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * insdel.c (make_gap): Only set BEG_ADDR if BUFFER_REALLOC was + successful. + + * editfns.c (syms_of_editfns): DEFVAR the new variables. + + * eval.c (Finteractive_p): Don't skip the first frame if the + function was compiled. + + * print.c (print): Use ... only for conses, and instead of normal + print. + +1990-05-22 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * Renamed meta_flag meta_key. + + * termopts.h: Comment changes. + +1990-05-20 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * buffer.h: upcase_table and downcase_table are now Lisp_Objects. + * alloc.c (mark_object, gc_sweep): Related changes. + * casetab.c: Ditto. + +1990-05-17 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * minibuf.c (Fall_completions): Protect STRING from gc. + Copy ALIST to TAIL to protect it. + + * paths.h-dist: Doc fix. + +1990-05-17 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * search.c (Flooking_at, search_buffer): Use new accessors. + * indent.c (Fcurrent_column): Likewise. + * minibuf.c (read_minibuf): Likewise. + * regex.c (re_match_2): Use PTR_CHAR_POS. + * editfns.c (Fbuffer_size, Fnarrow_to_region, Fbuffer_substring): + (Fbuffer_string, Finsert_buffer_substring): Likewise. + (save_restriction_restore): Likewise. + * dispnew.c (direct_output_for_insert): Likewise. + * fileio.c (Fwrite_region, Finsert_file_contents): Likewise. + (Fdo_auto_save): Likewise. + * insdel.c (move_gap, gap_left, gap_right, make_gap): Likewise. + (InsCStr, del_range, modify_region): Likewise. + * process.c (Fprocess_send_region): Likewise. + * xdisp.c (try_window, try_window_id, display_text_line): Likewise. + (redisplay): Likewise. + * buffer.c (list_buffers_1): Likewise. + * marker.c (marker_position, Fset_marker, set_marker_restricted): + (Fmarker_position): Likewise. + * window.c (unshow_buffer, Fset_window_configuration): Likewise. + (Fset_window_buffer): Likewise. + + * editfns.c (save_restriction_restore): Use a macro to alter point. + + * lread.c (readchar): Use new accessors, and avoid knowing about + the text field of a buffer. + * window.c (Fpos_visible_in_window_p): Likewise. + + * buffer.h (struct buffer): Make the syntax table a Lisp object. + * alloc.c (mark_buffer): No need to treat it specially. + * syntax.c (Fsyntax_table, Fset_syntax_table, Fdescribe_syntax): + (Fmodify_syntax_entry): Adjust for this change. + * buffer.c (reset_buffer_local_variables): Need not be special. + (init_buffer_once): Make this slot a defaulted local variable. + * syntax.h: Adjust macros for this change. + (Vstandard_syntax_table): Define as macro, in buffer_defaults. + * syntax.c (syms_of_syntax): Don't staticpro it here. + (Fset_syntax_table): Set the flag in local_var_flags. + + * buffer.h (struct text): Represent the buffer dimensions + with new slots, memory, begv, pt, gpt, zv, z and gap_size. + (BEGV, etc.): Use new slots. + (CharAt): Likewise. + (BufferSafeCeiling, BufferSafeFloor): Use new slots; fix old bugs. + (bf_p1, bf_s1, etc.): Old macros deleted. + + * buffer.c (Fget_buffer_create): Set up memory and new slots. + (Fkill_buffer): Likewise. + + * insdel.c (move_gap, gap_left, gap_right, make_gap): Update new slots. + (del_range, InsCStr): Likewise. + * fileio.c (Finsert_file_contents): Likewise. + * window.c (temp_output_buffer_show): Likewise. + * xdisp.c (decode_mode_spec, try_window_id): Likewise. + + * insdel.c (make_gap): Complete rewrite. Arg is amount of new gap + to create. All calls changed. + (gap_left): New argument NEWGAP. + + * buffer.c (Fset_buffer): Check for deleted buffer. + (SetBfp): Don't check. + (SetBfp, Frename_buffer): Local cleanups. + * print.c (PRINTPREPARE): Use Fset_buffer. + + * buffer.c (SetBfp): Don't bother with selected window or its point. + * window.c (Fselect_window): Always set pointm of old window. + + * editfns.c: Eliminate all use of DEFSIMPLE and DEFPRED. + * indent.c, keyboard.c: Ditto. + + * search.c (skip_chars): Eliminate PointLeft and PointRight. + * cmds.c (SelfInsert): Likewise. + +1990-05-16 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * xdisp.c (try_window): No return value. + Fix calls to try_window. + * Global variable RedoModes is now redraw_mode_line. + +1990-05-13 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * keymap.c (Fdefine_key, Flookup_key): Local cleanups. + + * sysdep.c (sys_suspend): Use save_signal_handlers and + restore_signal_handlers to save and restore signal state. + + * indent.c (Findent_to): Merge guts of indentation into here. + (position_indentation): Scan with a pointer, for speed. + + * casefiddle.c (operate_on_word): Just return the other end. + (Fupcase_word, Fdowncase_word, Fcapitalize_word): + Pass that value to casify_region. + + * editfns.c (init_editfns): Store system and user names as + strings to avoid arbitrary limits. + + * keymap.c (describe_vector, describe_alist): Make elt_prefix + and elt_describer responsible for indentation and newlines. + Local cleanups. + (describe_command): Do indentation and newline. + (describe_map): Add space to end of prefix. + * syntax.c (describe_syntax): Do indentation and newline. + +1990-05-12 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * process.c (create_process) [not USG]: Put subproc in pgrp 0. + +1990-05-10 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * dispextern.h: new struct screen_glyfs replaces struct + display_line. + * screen.c: new screen elements current_glyfs, desired_glyfs, and + temp_glyfs. + * dispnew.c: (make_screen_glyfs, free_screen_glyfs, + remake_screen_glyfs): New functions. + (make_display_lines, new_display_line, return_display_line): + Functions deleted. + (change_screen_size, init_display): Use the new functions. + (cancel_line, clear_screen_records, get_display_line): + Rewritten for new data structures. get_display_line no longer + returns anything. + (preserve_other_columns, preserve_my_columns): Likewise. + (cancel_my_columns, direct_output*): Likewise. + (update_screen, update_line, quit_error_check, scrolling): Likewise. + (scroll_screen_lines): Likewise. + (rotate_vector, safe_bcopy): New subroutines. + (line_hash_code, line_draw_cost): Cleaned up. + Args are different, and hash computation too. + (update_screen): Rearrange buffer-emptying code. + * xdisp.c: (display_minibuf_message, redisplay): Rewritten for new + structures. + (display_text_line, display_mode_line): Likewise. + (display_mode_element, display_string): Likewise. + (decode_mode_spec): Local cleanups. + * scroll.c (do_scrolling): Rewritten for new data structures. + * xterm.c (XTflash): Use this new structure. + + * editfns.c (in_accessible_range): New function. + (Fgoto_char, save_restriction_restore): Use it. + (save_excursion_save, Fcurrent_time_string): Local cleanups. + + * process.c (Fprocess_kill_without_query): New arg; new return value. + (count_active_processes): Function deleted. + + * fileio.c (Finsert_file, Fwrite_region): Local cleanups. + + * fns.c (Fsubstring): Local cleanup. + + * keyboard.c (echo_prompt, echo_char, echo_dash, echo): New functions. + (cancel_echoing): Likewise. + (immediate_echo, echoptr): New variables. + (command_loop_1, request_echo, get_char, read_key_sequence): + (set_waiting_for_input, interrupt_signal): Related changes. + (get_char): No more declaration of request_echo. Local cleanups. + + (this_command_key...): New variables. + (Fexecute_extended_command, Fthis_command_keys): Related changes. + (init_keyboard, get_char): Likewise. + + * macros.c (Fstart_kbd_macro): Local cleanup. + + * minibuf.c (read_minibuf): No more delcaration of + Frestore_screen_configuration. + + * search.c (Fregexp_quote): Simplified. + +1990-05-08 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * process.c (Fopen_network_stream): Also handle numeric inet + addresses. + +1990-05-06 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * alloca.c: #ifdef __STDC__ rather than X3J11/ + +1990-05-03 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * fileio.c (Fmake_symbolic_link): Delete old file if permitted. + +1990-05-02 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * data.c (Fstring_to_int): Delete disabled feature + of accepting `yes' and `no'. + + * xdisp.c (redisplay, redisplay_preserving_echo_area): + Two functions replace DoDsp. All callers changed. + (redisplay, redisplay_window): Eliminate `inhibit_hairy_id'. + (redisplay_window): No return value. Local cleanups. + + * alloc.c (Fmake_marker): Delete `modified' field. + * insdel.c (adjust_markers): Likewise. + + * abbrev.c (Fdefine_mode_abbrev): Clean up error message. + +1990-05-01 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * xfns.c (Fx_draw_rectangle, Fx_erase_rectangle): Simplified. + + * xterm.c (x_display_cursor): Don't check s->phys_x when drawing + cursor. + + * undo.c: New version. + * undo.h: No longer exists. + * alloc.c (Fgarbage_collect): Call truncate_undo_list. + (syms_of_alloc): Define vars undo-threshold and undo-high-threshold. + * buffer.c (Fget_buffer_create): Set undo_list to t or nil. + (Fbuffer_disable_undo, Fbuffer_enable_undo): Likewise. + (Fkill_buffer): Likewise. + (init_buffer_once): Set up local variable buffer-undo-list. + (syms_of_buffer): Likewise. + * buffer.h: New element undo_list in struct buffer. + * fileio.c (Finsert_file_contents): Store nil in undo_list. + + * buffer.c: Variable bf_text deleted. + (Fkill_buffer, SetBfp): Delete code that worked with it. + (SetBfx): Now a macro in buffer.h + * editfns.c (Fwiden, Fnarrow_to_region): Related changes. + (save_restriction_save, save_restriction_restore): Likewise. + (Finsert_buffer_substring): Likewise. + * fileio.c (Fdo_auto_save): Likewise. + * insdel.c (make_gap): Likewise. + * lread.c (readchar): Likewise. + * marker.c (Fmarker_position, marker_position): Likewise. + (Fset_marker): Likewise. + * xdisp.c (DoDsp): Likewise. + +1990-04-30 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * buffer.h: New macro R_ALLOC_SET_BUFFER for declaring all the + text pointers of a buffer to the relocating allocator. + * buffer.c (Fbury_buffer, SetBfx, SetBfp): Use the macro. + * editfns.c (Finsert_buffer_substring): ditto. + * fileio.c (Fdo_auto_save): ditto. + * insdel.c (make_gap): ditto. + * xfns.c (adjust_scrollbars): Don't set bf_cur->text. + +1990-04-26 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * minibuf.c: Declare active_screen struct screen *, not + Lisp_Screen *. + +1990-04-19 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * xterm.c (XTupdate_end): Only x_display_cursor if s is x_input_screen. + +1990-04-19 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * fns.c (Fy_or_n_p): If a C-g comes in and does not quit, quit by hand. + + * buffer.c (Frename_buffer): Allow renaming to same name it has. + +1990-04-19 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * xfns.c (Fx_open_connection): Attach xrdb to x_current_display. + +1990-04-17 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * xterm.c (dumpborder): Now only used for X10. + (highlight, unhighlight): New functions for X11. + +1990-04-17 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * cm.c (Wcm_init): Return -2 if screen size not specified. + * term.c (term_init): Special error message for that case. + +1990-04-16 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * s-sunos4.h, s-sunos4shr.h (SYSTEM_MALLOC): Define it. + +1990-04-15 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * xfns.c (Fx_get_resource): Concatenate invocation_name before + the resource tag. + (Fx_create_screen): Use the latest resource id's. + +1990-04-13 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * xfns.c (Fx_get_resource): New subr. + (Fx_open_connection): Call x_load_resources. New parameter + xrm_string. + * xrdb.c: New file for doing resource manager stuff. + + * xscrollbar.h: New file for scrollbar bitmaps. + + * xselect.h: New file for the X selection stuff. + + * ymakefile: Take note of these new files. + +1990-04-10 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * xterm.c (x_term_init): Use MAXPATHLEN. + +1990-04-09 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * buffer.c (list_buffers_1): Get filename from list-buffers-directory. + +1990-04-06 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * screen.c (coordinates_in_window): Return -1 if in modeline of + window. + (Fcoordinates_in_window_p): Return Qt if in modeline of window. + (Flocate_window_from_coordinates): Use next_screen_window if + MULTI_WINDOW is defined. + +1990-04-05 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * xterm.c (construct_mouse_event): Deal with the motion events + first. Only grab the mouse when in the scrollbar. + +1990-04-04 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * screen.c (coordinates_in_window): Include mode line as part of + window. + + * xterm.c (XTread_socket): Initialize nbytes to 0. + (x_display_cursor): Don't draw if screen not selected. + + * xdisp.c (DoDsp): Additional checks for screen being visible. + +1990-04-03 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * editfns.c (Fmessage): If there is a global minbuffer screen, + raise it before displaying the message. + + * window.c (window_loop): Parameter SCREENS now affects which + screen is scanned for windows. All subrs calling window_loop must + pass a Lisp_Object here now. + +1990-04-01 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * window.c (window_loop): Additional parameter mini to control + minibuffer selection or not. + (Fget_lru_window): + (Fget_largest_window): + (Fget_buffer_window): + (Fdelete_other_windows): + (Fdelete_windows_on): + (Freplace_buffer_in_windows): Use that parameter. + +1990-03-29 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * screen.c (Fselect_screen): Raise the selected screen. + + * window.c (Fget_buffer_window): + (Fget_largest_window): + (Fget_lru_window): New parameter all_screens. + (Fdisplay_buffer): Use the new param in Fget_lru_window, + Fget_buffer_window, and Fget_largest_window. + (Fscroll_other_window): Use new param in Fget_buffer_window. + * buffer.c (Fother_buffer): ditto. + + * xterm.c (x_display_cursor): Always draw the cursor if ON is + true. Don't check if the screen S is selected or equal to + mouse-screen. + + * xfns.c (Fx_track_pointer): Don't turn off cursor, just call + x_display_cursor. + +1990-03-28 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * data.c (Fmake_local_variable): Give the variable value nil if + unbound. + + * window.c (Fnext_window, Fprevious_window): For MULTI_SCREEN, + check if Vglobal_minibuffer_screen is non-nil and maybe call + next_screen. + + * screen.c (Fscreen_selected_window): + (Fscreen_root_window): If screen is nil, use selected-screen. + +1990-03-27 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * xterm.c (XTread_socket): SET_SCREEN_GARBAGED which returning + symbol which causes DoDsp to be invoked. + * keyboard.c (read_key_sequence): Don't SET_SCREEN_GARBAGED here. + + * screen.h: New macro SET_SCREEN_GARBAGED. + + * xfns.c: + * window.c: + * sysdep.c: + * keyboard.c: + * dispnew.c: Use the new macro. + +1990-03-25 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * xfns.c (Fx_own_selection): Only take one argument, string. + +1990-03-24 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * xfns.c (select_visual): Catch bullshit machines whose hardware + doesn't support the X server pixel depth by looking at colormap_size. + (x_decode_color): Use x_screen_planes to check for color. + +1990-03-23 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * xterm.c (x_display_cursor): Try using vertical bar cursor. + (clear_cursor): Call x_display_cursor for X11. + + * xfns.c: Zotzed Vx_pointer_mask. + (Fx_track_pointer): Call x_display_cursor if we just + wasted the cursor. Break out of loop if no display line. + Use mode line cursor if we're there. + (x_y_pos): New function. + (x_set_font): Dont' set x_font_{width,height}, they are gone. + +1990-03-22 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * xfns.c (Fx_track_pointer): Check that s == selected_screen each + time through loop. If event is nil, read mouse position. + + * keyboard.c (get_char): DoDsp only if selected_screen visible. + + * xterm.c (XTread_socket): Mark screen as visible only on expose + event. + + * emacs.c (main): Check here for "-d" option and set display_arg. + * dispnew.c (init_display): Set Vwindow_system, etc. if display_arg. + +1990-03-21 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * keyboard.c (read_key_sequence): Don't DoDsp if the screen was + just unmapped. + (command_loop_1): Call the mouse motion handler before calling + read_key_sequence. + (interrupt_signal): Fixed typo checking screen type. + + * xfns.c (Fx_track_mouse): Don't crash because of null display + line. Don't set obj til call to get_char. + + * xterm.c (x_term_init): Disable SIGWINCH here. + + * fns.c (Fmember): New subr. + + * dispnew.c (init_display): Don't check env variable DISPLAY to + set Vwindow_system. Now done in startup.el. + + * emacs.c: Removed variables xargc, xargv. + +1990-03-20 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * xfns.c (Fx_track_pointer): Go faster. + + * screen.h: New macro SCREENP. + + * window.c: (Fminibuffer_window): Rewritten. + +1990-03-19 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * sysdep.c (perror): Control with HAVE_PERROR as well as HPUX. + * s-hpux.h (HAVE_PERROR): Define it. + +1990-03-19 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * keyboard.c (command_loop_1): Restructured handling of X event + things. + (read_key_sequence): Handle new `unmapped-screen' symbol with new + Vunmap_screen_hook. + + * xterm.c (XTread_socket): Return unmapped-screen symbol if the + window for UnmapNotify events. + + * lread.c (Feval_region): GCPRO opoint. + +1990-03-16 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * keyboard.c (command_loop_1): Call mouse-motion handler with + argument. Also, don't call undo-boundary. + + * process.c (create_process): Set the process group for BSD at + the same time as for USG. + +1990-03-14 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * xterm.c (x_new_selected_screen): Set x_input_screen here. + +1990-03-11 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * xterm.c: Vx_mouse_grabbed now Vmouse_grabbed. + (XTread_socket): Generate exited-window symbols on LeaveNotify + even if screen is focused. + + * xfns.c: Vx_mouse_grabbed now Vmouse_grabbed. + (outline_region): Now static. + (Fx_track_pointer): Check x_mouse_screen == s in loop. + +1990-03-10 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * xterm.c (encode_mouse_button): Correctly get the button from + Motion events. + + * xfns.c (x11_encode_mouse_button): Nuked. + (encode_mouse_button, Fx_mouse_events, Fx_get_mouse_event): #if 0'd. + + * keyboard.c (get_char): Re-set obj if we've keyboard-translated + c. + +1990-03-08 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * xterm.c x_focus_screen no longer static. + (x_error_handler): Use XDefaultIOError. + + * screen.c (Ffocus_screen): New subr, removed Fscreen_has_focus. + (Fselect_screen): New, optional parameter no_enter. + (Frestore_screen_configuration): + (Fdelete_screen): Pass second parm Qnil to Fselect_screen. + + * window.c (Fdisplay_buffer, Fset_window_configuration): Pass + second parm Qnil to Fselect_screen. + +1990-03-07 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * screen.c (Fscreen_has_focus): New subr. + (Fselect_screen): Use x_focus_on_screen to physically select the + screen. + +1990-03-06 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * xfns.c (x_set_mouse_position): Moved to xterm.c. + + * fileio.c (Fremove_directory): New subr. + + * screen.c (Frelease_focused_screen): Just call x_unfocus_screen. + + * xterm.c (XTread_socket): On FocusOut, if s isn't mouse screen, + return exited-window. On LeaveNotify, simplify if expression for + dumpborder. Reworked FocusIn/FocusOut events. + (x_unfocus_screen): Check that screen is x_focus_screen. + (x_set_mouse_position): Moved from xfns.c. Use new macro + XWarpPointer. + * xterm.h: New macro XWarpPointer. + + * buffer.c: Replaced Fbuffer_flush_undo with + Fbuffer_disable_undo. + * process.c: Ditto. + +1990-03-05 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * xterm.c (XTupdate_end): Use parameter s rather than + updating_screen. + (XTread_socket): On EnterNotify, don't check s != focus_screen + before selecting. On Focus In/Out don't set/reset mouse_screen. + +1990-03-04 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * eval.c If using X windows, include xterm.h. + (error): TOTALLY_UNBLOCK_INPUT if using X. + + * xterm.h: BLOCK_INPUT, UNBLOCK_INPUT: No signal stuff, just inc + and decrement x_input_blocked. + + * xfns.c (adjust_scrollbars): Don't BLOCK_INPUT. + (x_set_font): Check result of x_new_font. Call error if nonzero. + (x_set_icon_type): Check result of x_*_icon, maybe call error. + + * screen.c (Fdeiconify_screen): Use x_make_screen_visible rather + than x_deiconify_screen. Return screen. + (Fmake_screen_visible): Don't raise it here. Return screen. + + * xterm.c (XTwrite_glyfs): Don't show cursor if screen is + global-minibuffer-screen. + (x_new_selected_screen): Do dumpborder and check auto-raise here, + rather than XEvent switch. + (x_deiconify_screen): No longer exists. + (x_do_pending_expose, x_clear_cursor): + (x_invert_screen, scraplines, stufflines, x_bitmap_icon): + (x_text_icon, x_new_font): Don't BLOCK_INPUT. + (XTins_del_lines): BLOCK_INPUT here. + (XTupdate_end): Don't turn on cursor if minibuffer-screen. + (XTread_socket): On MotionNotify, just that screen is selected before + processing. + (XTtopos): If updating_screen, just set x and y, don't flush. + (x_bitmap_icon): + (x_text_icon): + (x_new_font): Return 1 if failed, don't call error. + (x_make_screen_visible): Raise the screen as well. + +1990-03-02 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * screen.c (Frelease_focused_screen): Just check that screen is + selected. + +1990-02-28 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * screen.c (Fselect_screen_focused, Frelease_focused_screen): New + subrs. + * xterm.c (x_focus_on_screen, x_unfocus_screen): New procedures + to implement focusing. + +1990-02-28 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * casefiddle.c: Doc fix. + +1990-02-28 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * xterm.h: Redefined BLOCK_INPUT and UNBLOCK_INPUT to use sigblock + and sigsetmask if available. + * xterm.c: Declare BLOCK_INPUT_mask if have SIGIO and FIONREAD. + +1990-02-27 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * minibuf.c (Fread_from_minibuffer): Initialize pos to 0. + +1990-02-25 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * keyboard.c (read_key_sequence): Handle mapped-screen event + symbol by calling new hook Vmap_screen_hook. + + * xterm.c (x_make_screen_invisible): Use the new Xlib function + XWidthdrawWindow. + (x_iconify_screen): Use the new Xlib function XIconifyWindow. + (XTread_socket): Return mapped-screen symbol to signal + mapped-screen events. + +1990-02-23 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * keyboard.c (command_loop_1): Check the character for width 1 + before doing direct_output_forward, as well as the cursor position + on the screen. + + * xdisp.c (DoDsp): Use redisplay_windows rather than + redisplay_all_windows, which was removed. + +1990-02-22 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * unexencap.c: New file, waiting for papers. + +1990-02-22 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * keyboard.c: Removed much debugging stuff. + * xterm.c: Removed much debugging stuff. + (x_error_handler): For X11, if caught BadAlloc error while + converting selection (note new variable x_converting_selection), + just set new variable x_selection_alloc_error. + + * xfns.c: Massive changes for crufty selection processing details. + New X atoms: Xatom_clipboard, Xatom_delete, Xatom_insert_selection, + Xatom_insert_property, Xatom_pair. + +1990-02-21 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * keyboard.c (kbd_buffer_store_char): Check NULL objects. + + * xterm.c (XTread_socket): Correctly advance bufp for all KeyPress + events. + +1990-02-20 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * keyboard.c (kbd_buffer_get_char): Use KBD_BUFFER_SIZE rather + than sizeof kbd_buffer. + (read_key_sequence): Upon redraw-display symbol, set + screen_garbaged. + + * xterm.c (XTread_socket): On EnterNotify events, make sure to + return mouse event for both scrollbars and windows. + +1990-02-19 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * casefiddle.c (casify_region): Move the new statement. + +1990-02-19 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * casefiddle.c (casify_region): Return if beginning and end same. + +1990-02-18 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * keyboard.c (kbd_buffer_store_char): Use KBD_BUFFER_SIZE rather + than sizeof kbd_buffer. + + * fns.c (Fy_or_n_p): Only accept ints from get_char. + +1990-02-18 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * minibuf.c (Fread_from_minibuffer): New arg POSITION. + + * unexsunos4.c: New file. Waiting for papers. + * s-sunos4shr.h: New file. + + * emacs.c (main) [RUN_TIME_REMAP]: Call run_time_remap. + + * ymakefile (LD): Let config file override with LD_CMD. + +1990-02-14 Joseph Arceneaux (jla at albert.ai.mit.edu) + + * keyboard.c (read_avail_input): pass read_socket_hook + KBD_BUFFER_SIZE rather than doing sizeof (buf). + + * xterm.c (XTread_socket): Set event.type = MotionNotify when + entering screen or scrollbar to fake motion event. + +1990-02-13 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * window.c (next_screen, prev_screen): moved to screen.c + (Fnext_window): If mini non-nil, count the separate minibuffer + screen. + * screen.c (Fnext_screen): new subr. + +1990-02-12 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * xdisp.c (display_text_line, try_window, try_window_id, DoDsp): + Don't display overlay arrow on more than one line in a window. + +1990-02-12 Joseph Arceneaux (jla at albert.ai.mit.edu) + + * doprnt.c (doprnt): Expand size of tembuf to 512. + +1990-02-10 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * minibuf.c (Fread_no_blanks_input): Make second arg optional. + +1990-02-09 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * keyboard.c (get_char): Remember to set obj when executing macro. + (read_key_sequence): Handle the exited-scrollbar symbol. + Compare obj, not read_key_sequence_cmd. + + * xterm.c (x_make_screen_visible, x_deiconify_screen): Check + window-manager variable. + (x_make_screen_invisible, x_iconify_screen): Don't use new R4 + calls (they crash), do it ourselves. + (XTread_socket): Return exited-scrollbar symbol when doing so. + +1990-02-08 Joseph Arceneaux (jla at albert.ai.mit.edu) + + * xterm.c (construct_mouse_event): Rewritten to do mouse-motion + compression. All mouse processing now done here. + Also, just use nil and t for x-mouse-grabbed. Record buttons + pressed in new variable x_mouse_grabbed. XGrabPointer on button + depression. + * xfns.c (Fx_horizontal_line): use x_mouse_grabbed. + +1990-02-07 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * xdisp.c (DoDsp): If only updating selected screen, but there is + a minibuffer screen, update it as well. + +1990-02-06 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * xfns.c (Fx_pixel_width, Fx_pixel_height): New subrs. + * xterm.h New components pixel_width, pixel_height, to x_display. + * xterm.c (XTread_socket): On configure notify, set these components. + + * window.c (Fset_window_configuration): Select the screen of the + root window if it's not the selected_screen. + * minibuf.c (read_minibuf): Remove all the screen selection stuff, + now that this is integrated in Fset_window_configuration. + +1990-02-05 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * screen.h: Declare Vglobal_minibuffer_screen. + * xdisp.c (DoDsp): Set all_windows if using global-minibuffer-screen. + +1990-02-03 Joseph Arceneaux (jla at geech) + + * window.c (Fset_window_configuration): Make sure to set + window->next to nil for a minibuffer-only screen. + + * screen.c (make_minibuffer_screen): Set mini_window->next nil. + +1990-02-01 Joseph Arceneaux (jla at albert.ai.mit.edu) + + * screen.c (make_screen): Set wants_modeline elt to 1. + + * window.c (Fset_window_configuration): Use screen->root_window + as arg to delete_all_subwindows rather than minibuf_window->prev. + + * minibuf.c (read_minibuf): Don't unwind with + Frestore_screen_configuration. Save selected_screen if different + than minibuf screen, and re-select it after reading minibuf. + * screen.c: #if 0 Fscreen_configuration, + Frestore_screen_configuration. + +1990-02-01 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * m-ibmps2-aix.h: Undef NEED_SIOCTL. + (SIGN_EXTEND_CHAR): Cast to `signed char'. + +1990-01-28 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * xfns.c (Fx_track_pointer): rewrote this to loop while there are + mouse events. + + * xterm.c (XTread_socket): Return left-window-event symbol upon + LeaveNotify. + * keyboard.c (read_key_sequence): Handle this symbol. + +1990-01-27 Joseph Arceneaux (jla at churchy.ai.mit.edu) + + * xterm.c (x_display_cursor): Use dumpglyfs with SPACEGLYF for + cursor, as `XFillRectaogle's kill HP-BSD server. + + * xterm.h: Added nontext_cursor, modeline_cursor to x_display + structure. + * xfns.c (x_set_mouse_color, Fx_track_pointer): Changes to use + nontext_cursor. + +1990-01-25 Joseph Arceneaux (jla at albert.ai.mit.edu) + + * xterm.h: Changed the face structure for X11 to handle GCs and + pixmaps. + + * xterm.c (XTread_socket): Return a motion event when mouse enters + scrollbar or window. + (x_make_screen_invisible): Use the new X11R4 function XWithdrawWindow. + (x_iconify_screen): Use the X11R4 function XIconfifyWindow. + (dumpglyfs): Use the new face structure. + + * xfns.c (install_vertical_scrollbar, install_horizontal_scrollbar): + Accept EnterNotify events. Use XMapSubwindows rather than mapping + each one. + (Fx_set_face_font): New subr for X11 to set face GC. + +1990-01-25 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * dispnew.c (direct_output_for_insert): Give up if buf in 2 windows. + + * keyboard.c (command_loop_1): + Dumb bugs disabled special fast display for character motion. + + * xdisp.c (DoDsp): For cursor motion within line, + hpos result from compute_motion is relative to window. + +1990-01-24 Richard Stallman (rms at albert.ai.mit.edu) + + * eval.c (Fmacroexpand): Handle explicit macros ((macro ...) ...). + +1990-01-18 Joseph Arceneaux (jla at spiff) + + * undo.c (Fundo_more): Fixed typo. + +1990-01-16 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * xdisp.c (display_text_line): When checking HPOS for continuation + line, compensate for w->left. + +1990-01-15 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * dispnew.c [no FIONREAD]: Undefine SIGIO. + + * buffer.c (SetBfp): Use XTYPE to test for no selected window yet. + + * editfns.c, dispnew.c, fileio.c, process.c, sysdep.c, xterm.c: + Uniformly let NEED_TIME_H control use of time.h instead of sys/time.h. + + * xterm.h (TOTALLY_UNBLOCK_INPUT, UNBLOCK_INPUT): Don't use + SIGIO if no FIONREAD. + +1990-01-15 Joseph Arceneaux (jla at spiff) + + * xfns.c (x_set_mouse_color): Set non-text pointer shape with new + variable Vx_nontext_pointer_shape. + + * keyboard.c: More checks for evil bug which trashes kbd_*_ptr. + + * m/hp300bsd.h: Try using BSD load average stuff. + +1990-01-11 Joseph Arceneaux (jla at spiff) + + * xfns.c (x_draw_pixmap): New routine. + +1990-01-10 Jim Kingdon (kingdon at pogo) + + * m/hp300bsd.h: New file + +1990-01-08 Joseph Arceneaux (jla at spiff) + + * xfns.c (Fx_window_id): New subr. + + * screen.c (make_screen): Set wants_modeline elt to mini_p. + If mini_p 0, then set root_window->next to nil. + +1990-01-08 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * editfns.c (Fchar_after): Set N after coercing marker. + +1990-01-06 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * buffer.c (Fkill_all_local_variables): Force mode line update. + +1990-01-05 Joseph Arceneaux (jla at spiff) + + * insdel.c: Declare Vfirst_change_function. + + * keyboard.c (read_key_sequence): Function keys are now lisp symbols. + (kbd_buffer_store_char): Abort if store pointer past + buffer. Temproarry; This shouldn't be able to happen. + (read_key_sequence): #ifdef HAVE_X_WINDOWS code + which handles complex objects. + (command_loop_1): Check not termcap screen before + processing non-char input. + (kbd_{store,fetch}_char): More debugging checks. + + * screen.c (make_screen): Set root_window height to 9 if mini_p. + (make_minibuffer_screen): Set the mini window's next, + prev, and screen elements. + + * xterm.c (x_func_key_to_sym): New function, uses new variable + func_key_syms. + (XTread_socket): Use this in KeyPress event for function keys. + (XTflash): Draw solid rectangle in middle of screen. + (x_set_offset): Set the size hints as well when doing + this. + (XTflash): Just dumpglyfs instead of redrawing the + screen after flashing the rectangle. + + * lread.c: (syms_of_lread): defsubr Fread_event. + +1990-01-04 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * buffer.h, buffer.c (Vfirst_change_function): New Lisp variable. + * insdel.c (signal_before_change): Call that function. + + * keyboard.c (cmd_error): Don't crash if TAIL is nil. + +1989-12-31 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * minibuf.c: Doc fixes. + +1989-12-28 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * process.c (create_process): Unhold SIGCHLD in the child. + +1989-12-27 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * process.c (create_process): Treat HPUX like BSD for sigsetmask. + +1989-12-25 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * fns.c (Fmapconcat): Gcpro SEP around mapcar1. + +1989-12-23 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * dispnew.c (get_display_line): Don't touch X data if not using X. + + * syntax.c (Fscan_sexps): Fix fatal documentation typo. + + * lread.c: Include commands.h. + + * xterm.c (construct_mouse_event): Delete unreached return at end. + (x_wm_set_size_hint): #if 0 some broken code. + + * cmds.c (SelfInsert): Set HAIRY if have before or after change hooks. + * editfns.c (Fsubst_char_in_region, Ftranslate_region): + Call signal_after_change for chars changed. + * undo.c (Fundo_more): When undoing Uchange, do signal_after_change. + * casefiddle.c (casify_region): Do modify_region before the change, + signal_after_change afterward. + + * insdel.c (prepare_to_modify_buffer): Call signal_before_change. + (del_range, InsCStr): Call signal_after_change. + (signal_after_change, signal_before_change): New functions. + +1989-12-20 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * dispnew.c (init_display) [VMS]: Downcase terminal type. + +1989-12-17 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * sysdep.c: Use NEED_SIOCTL to control use of sioctl.h. + * m/m-mips.h, m/m-iris4d.h: Define that. + + * m/m-ibmps2-aix.h (NEED_SIOCTL, HAVE_UNION_WAIT, HAVE_PTYS): Define. + (HAVE_SYSVIPC, HAVE_SOCKETS, X_DEFAULT_FONT): Define. + (sigsetmask): #undef this. + +1989-12-15 Joseph Arceoeaux (jla at spiff) + + * lread.c (Fread_char): Catch error if read non-char. + (Fread_event): New subr. Return any input object. + +1989-12-14 Joseph Arceneaux (jla at spiff) + + * xfns.c: New variable Vx_no_window_manager. + (Fx_track_pointer): If bufp < 0, abort. + + * xterm.c (XTread_socket): When leaving window, set x_mouse_x and + x_mouse_y to -1. + +1989-12-13 Joseph Arceneaux (jla at spiff) + + * xterm.c (XTread_socket): On ConfigureNotify events, return + "redraw-screen" symbol. + (dumpborder): Only do border stuff if x-no-window-manager non nil. + Also check if there is a tracking rectangle. + (XTupdate_begin): If there is a mouse tracking rectangle, erase + it. + * keyboard.c (read_key_sequence): Return -2 for symbols. + (command_loop_1): DoDsp when 'redraw-screen arrives as input. + For mouse events, call Fexecute_mouse_event with + read_key_sequence_cmd instead of Vmouse_event. + +1989-12-08 Joseph Arceneaux (jla at spiff) + + * process.c (create_process): For not USG, properly set the + process group. + +1989-12-07 Joseph Arceneaux (jla at spiff) + + * term.c (topos): Under X Windows, abort if topos_hook not + correct. Temporary. + + * xfns.c (Fx_horizontal_line): New subr. + +1989-12-05 Joseph Arceneaux (jla at spiff) + + * keyboard.c (Fexecute_mouse_event): Don't set Vmouse_window here + for X11. + + * xterm.c (construct_mouse_event): Vx_mouse_grabbed now indicates + which keys are depressed. + (construct_mouse_event): Set Vmouse_window here. + +1989-12-04 Joseph Arceneaux (jla at spiff) + + * screen.c (coordinates_in_window): New function. + (Fcoordinates_in_window_p): Rewritten to use above. + + * dispextern.h: New element bufp for display_line structure when + using X windows. + * xdisp.c (redisplay_window): Set this to the position in the + buffer of the first char in this display line. + * dispnew.c (get_display_line): Set this to -1 here. + +1989-12-03 Joseph Arceneaux (jla at spiff) + + * alloc: Upped NSTATICS from 200 to 256. + + * xterm.c (XTread_socket): Report MotionNotify events only if + mouse has changed character position. Call x_read_mouse_position. + Set Vmouse_event here. + * xfns.c (x_read_mouse_position): Set new global variables + x_mouse_x and x_mouse_y. + + * keyboard.c: Vignore_mouse_events: New variable. + + * syntax.c (Fscan_sexps): Doc change. + + * lread.c (Fread_char): Return only chars. If new variable + Vignore_mouse_events non nil, execute any mouse events which + appear. + +1989-12-01 Joseph Arceneaux (jla at spiff) + + * xfns.c (Fx_track_pointer): Draw half-sized rectangles for '\n'. + (x_rectangle): Draw half-size if negative argument. + + * xterm.c (XTread_socket): abort if garbage collecting when doing + mouse events. + + * ymakefile: #define FLOATSUP if LISP_FLOAT_TYPE defined. + + * emacs.c (main): If BSD, set pgrp to pid. + +1989-11-30 Joseph Arceneaux (jla at spiff) + + * callint.c (Fcall_interactively): For case 'e', set varies[i] to + avoid entering in the command history. + + * xterm.c: Removed the function x_indicate_pointer_char. + (XTread_socket): When leaving window, erase mouse tracking box if + it exists. + * xfns.c (Fx_track_pointer): New function, does what + x_indicate_pointer_char used to. + (x_read_mouse_position): Subtract internal_border_width. + + * screen.c: No rubber-banding function for X11. + + * window.c (Fmove_to_window_line): Document string fix. + +1989-11-29 Joseph Arceneaux (jla at spiff) + + * lread.c (Fread_char): Return a Lisp_Object (directly from + get_char). + + * keyboard.c: + * xterm.c: Function keys now arrive as cons cells. + +1989-11-27 Joseph Arceneaux (jla at spiff) + + * keyboard.c (read_key_sequence): Handle Lisp_Symbols on input + (function keys). Also, handle these and mouse events with + prefixes (by ignoring the prefixes for now). + + * xfns.c New variable Vx_mouse_grabbed. + * xterm.c (construct_mouse_event): Use it. + (XTread_socket): Return Lisp_Symbol for function key. + + * buffer.c (reset_buffer_local_variables): Set function_key_map to + Qnil. + +1989-11-24 Joseph Arceneaux (jla at spiff) + + * buffer.h: Per-buffer function key maps. + + * keyboard.c (read_avail_input): Convert chars to Lisp_Objects in + case of stdin. + +1989-11-22 Joseph Arceneaux (jla at spiff) + + * keyboard.c (read_key_sequence): Check type of object returned + from get_char. Handle mouse events (set Vmouse_event) and + function keys. + (get_char_menu_prompt): Return a Lisp_Object. + (Fexecute_mouse_event): No longer set Vmouse_event. + Vmouse_window set here. + + * xterm.c (XTread_socket): KeyPress events now return + Lisp_Objects, as do ButtonPress events. + (construct_mouse_event): New function. + (encode_mouse_button): New function. + +1989-11-21 Joseph Arceneaux (jla at spiff) + + * keyboard.c (kbd_buffer_store_char, kbd_buffer_get_char): + Store and get Lisp_Objects. + (get_char): Use those Lisp_Objects. + + * fileio.c (Fread_filename_internal): If exactly complete, but + string was modified, return string. + + * minibuf.c (temp_minibuf_message): Pass correct arguments to Fsit_for. + +1989-11-18 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * s-386-ix.h: New file. + +1989-11-17 Joseph Arceneaux (jla at spiff) + + * xterm.c (dump_rectangle): Flush the X queue. + +1989-11-16 Joseph Arceneaux (jla at spiff) + + * xmenu.c (xmenu_show): Use ButtonReleaseMask instead of + ButtonRelease. + + * fileio.c (Fmake_directory): New subr. + +1989-11-16 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * config.h-dist (C_SWITCH_SITE, LD_SWITCH_SITE): Mention these. + (HAVE_X11): Renamed from X11 and defined by default. + It shoukld have no effect when not using X. + +1989-11-14 Joseph Arceneaux (jla at spiff) + + * xfns.c (Fx_get_selection, x_selection_arrival): use &event + instead of event. + (x_selection_arrival): For incremental selections, loop on + XGetWindowProperty if one is not enough. + +1989-11-13 Joseph Arceneaux (jla at spiff) + + * ymakefile: Just link if ../oldXMenu/libXMenu11.a already exists. + +1989-11-09 Joseph Arceneaux (jla at spiff) + + * m/m-sparc.h: If __GNUC__ use "-O", else "-O2" + +1989-11-08 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * search.c (Fstore_match_data): A marker pointing nowhere, treat as 0. + +1989-11-08 Joseph Arceneaux (jla at spiff) + + * search.c (Fmatch_data): fixed typo. + + * insdel.c (make_gap): Use BUFFER_REALLOC instead of realloc. + * buffer.c (Fget_buffer_create): Use new define BUFFER_ALLOC in + place of malloc, and set b->data. + (Fkill_buffer): Use BUFFER_FREE on b->data, rather than malloc on + b->p1 + 1. + * buffer.h: New element data in buffer_text structure. + New define for it, bf_data. + +1989-11-08 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * marker.c (Fset_marker): Don't force POS into visible range. + * window.c (set_marker_restricted): New function does what + Fset_marker did. All calls in this file now use the new function. + +1989-11-07 Joseph Arceneaux (jla at spiff) + + * buffer.h: Defines for allocating buffer variables. + + * ralloc.c: Completely rewritten. + + * alloc.c (xmalloc, xrealloc): Return 0 immediately for requests + of 0 size. + +1989-11-06 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * search.c (Flooking_at, Fstring_match, search_buffer): + Record in search_regs_from_string whether matching against a string. + (Fmatch_data): Save data as integers if from a string. + + * s-umips.h: Now include either s-usg5-2-2.h or s-bsd4-3.h + and then override as needed. + * m-mips.h: System dependence deleted. + LD_SWITCH_MACHINE remains w/ options needed on all systems. + * m-pmax.h: A little of that (LIBS_DEBUG) moved here. + No need to undef LIBS_MACHINE. + + * fns.c (Fload_average): FIXUP_KERNEL_SYMBOL_ADDR is now general hook. + * s-umips.h: Define it. + + * sysdep.c: Handle BROKEN_FIONREAD. + +1989-11-03 Joseph Arceneaux (jla at spiff) + + * config.h-dist: Mention LISP_FLOAT_TYPE, GNU_MALLOC, and REL_ALLOC. + + * s/s-umips.h: New file. + +1989-11-03 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * process.c (Fopen_network_stream): Handle EINTR in connect. + Describe errno in err msg if connect fails. + +1989-11-02 Joseph Arceneaux (jla at spiff) + + * vm-limit.c: New file. + * ralloc.c: New file. + * ymakefile: Take vm-limit.o into account. + +1989-11-02 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * alloc.c (staticvec): Make this a simple vector of pointers + rather than an alias for a vector of chars. + +1989-11-01 Joseph Arceneaux (jla at spiff) + + * window.c: Moved some functions (save_window_save, + replace_window, unshow_buffer) around. + * search.c: Moved function place. + * lread.c: Moved function read_escape. + * unexec.c: Declarations for make_hdr, copy_text_and_data, + copy_sym. Declare mark_x as static void. + * dispextern.h: removed declaration of new_display_line. + + * emacs.c: Do malloc_init if GNU_MALLOC. + * gmalloc.c: (malloc_init): New function. + + * xfns.c (x_rectangle, Fx_draw_rectangle, Fx_erase_rectangle, + outline_region, Fx_countour_region, Fx_uncontour_region): New + subroutines for drawing rectangles and things. + (Fx_point_coordinates): New subr. + +1989-10-31 Joseph Arceneaux (jla at spiff) + + * All .c and .h files: New copyright header. + +1989-10-30 Joseph Arceneaux (jla at spiff) + + * gmalloc.c: New GNU malloc. + + * emacs.c (main, Fdump_emacs): No malloc init if GNU_MALLOC. + + * ymakefile: Check if GNU_MALLOC defined. + +1989-10-27 Joseph Arceneaux (jla at spiff) + + * xfns.c (Fx_pointer_char): New subr. + * xterm.c (x_indicate_pointer): New procedure. + + * alloc.c (Fmake_vector_from_list, make_vector_from_list): New subrs. + +1989-10-26 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * xterm.c (x_term_init): + Negate arg to fcntl F_SETOWN if F_SETOWN_SOCK_NEG. + * keyboard.c (Fset_input_mode) [NO_SOCK_SIGIO]: + No interrupt input if using a socket. + * m-sequent.h: Define NO_SOCK_SIGIO, F_SETOWN_SOCK_NEG, MAIL_USE_FLOCK. + +1989-10-26 Joseph Arceneaux (jla at spiff) + + * xterm.c (x_handle_error_gracefully): Make sure to completely + release input before returning, using: + * xterm.h New macro TOTALLY_UNBLOCK_INPUT. + + * xmenu.c (xmenu_quit): No longer use this error_handler; use + default one. + +1989-10-25 Joseph Arceneaux (jla at spiff) + + * config.h-dist: Comment fix. + +1989-10-24 Joseph Arceneaux (jla at spiff) + + * xfns.c (Fx_draw_lines, translate_vectors): New functions. + +1989-10-21 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * search.c (search_buffer): Always find null string. + + * window.c (window_loop): For UNSHOW_BUFFER, don't Fset_buffer + unless window is the selected one. + +1989-10-20 Joseph Arceneaux (jla at spiff) + + * xdisp.c (display_minibuf_message): Choose minibuf screen first + of all. Return if not visible. + +1989-10-19 Joseph Arceneaux (jla at apple-gunkies.ai.mit.edu) + + * xterm.c (x_handle_error_gracefully): New procedure to handle + non-fatal X errors. + (x_error_handler): Use it. + (acceptable_x_error_p): New macro. + + * xfns.c (Fx_own_selection): Use second parameter SCREEN. + + * xdisp.c: (message, message1): No longer displays messages + when using X but not yet mapped. + +1989-10-18 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * m-pyramid.h (NO_ARG_ARRAY): Define if using GCC. + +1989-10-17 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * vmsfns.c (process_command_input): Call clear_waiting_for_input. + +1989-10-14 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * syntax.c (scan_words): If words_include_escapes not 0, + treat Sescape and Scharquote like Sword. + (syms_of_syntax): Define Lisp variable. + + * process.c (wait_reading_process_input): Get rid of kbd_count. + Use detect_input_pending. + * sysdep.c (select, read_input_waiting): Likewise. + (read_input_waiting): Don't read directly into kbd_buffer; + use kbd_buffer_store_char. + * keyboard.c: Don't define kbd_count. + + * keyboard.c (read_key_sequence): Reject the prefix char generated + for a Meta char, if it finds a non-prefix definition. + +1989-10-13 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * process.c (wait_reading_process_input): READ_KBD==2 means + wait until have mouse input. + * xfns.c (Fx_get_mouse_event): Use that. + * xterm.c (mouse_event_pending_p): New subroutine. + +1989-10-13 Joseph Arceneaux (jla at apple-gunkies.ai.mit.edu) + + * xfns.c (x_selection_arrival): + (x_send_incremental): + (x_answer_selection_request): New procedures for incremental + selection transfer. + +1989-10-12 Joseph Arceneaux (jla at apple-gunkies.ai.mit.edu) + + * lread.c (complete_filename_p): New function which replaces + absolute_filename_p. This one doesn't consider "~" valid. + +1989-10-12 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * buffer.c: Comment fix. + +1989-10-11 Joseph Arceneaux (jla at apple-gunkies.ai.mit.edu) + + * xfns.c: (Fx_open_connection) New X atoms Xatom_incremental and + Xatom_multiple. + + * xterm.h: New macros MAX_SELECTION and SELECTION_LENGTH. + + * process.c (child_sig): Check pid <= 0 in case WNOHANG not defined. + +1989-10-11 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * termcap.c (tgetent, gobble_line): Always store null at end of bfr. + Allocate one extra byte at end to ensure space. + Clean up order of arithmetic when updating ptrs into buffer + after xrealloc. + +1989-10-10 Joseph Arceneaux (jla at apple-gunkies.ai.mit.edu) + + * xfns.c (Fx_open_connection): Make all X Atoms here. + + * xterm.c: (x_iconify_screen): + (x_iconify_screen): Cleaned up this code. + (x_term_init): Removed warpmouseondeiconify stuff. + +1989-10-09 Joseph Arceneaux (jla at apple-gunkies.ai.mit.edu) + + * xdisp.c (DoDsp): Make sure to call unhold_window_change after + before all returns. + + * minibuf.c (read_minibuf): Changed set_mouse_position to + Fset_mouse_position. + + * xterm.c (XTread_socket): dumprectangle (whole screen) instead of + DoDsp in ConfigureNotify event. + (x_wm_set_size_hint): New calculations for size_hints. + + * screen.c (Fset_mouse_position): No more function + set_mouse_position; use x_set_mouse_position directly. + + * xfns.c (x_set_cursor_color): Really decode Vx_cusor_fore_pixel + if set. Define new cursor before freeing old. This may eliminate + a server bug on the Sony. + Also check for invisible cursors. + (x_set_mouse_color): Check for invisible pointers. + (x_resize_scrollbars): BLOCK_INPUT whilst doing operations. + (adjust_scrollbars): Likewise. + +1989-10-03 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * m/m-hp9000s800.h (XUNMARK): Delete definition. + (S_IFLNK): Do not undef it. + +1989-10-03 Joseph Arceneaux (jla at apple-gunkies.ai.mit.edu) + + * dispnew.c (get_display_line): If screen not visible, abort. + +1989-10-02 Joseph Arceneaux (jla at apple-gunkies.ai.mit.edu) + + * xterm.c (x_make_screen_visible): Set s->visible, unset + s->iconified for HAVE_X11. + +1989-09-29 Joseph Arceneaux (jla at apple-gunkies.ai.mit.edu) + + * xterm.c (XTread_socket): Check screen s before proceeding for + MapNotify event. + + * xterm.c: No longer sets the variable mouse_down_timestamp. + * xfns.c: (Fx_get_mouse_event) mouse_timestamp + (formerly mouse_down_timestamp) set here. Also, mask out upper 9 + bits before doing XSET. + +1989-09-28 Joseph Arceneaux (jla at apple-gunkies.ai.mit.edu) + + * xfns.c (Fx_geometry): Kludge for the case of position `-0'. + (Fx_get_mouse_event): Also return the time stamp as last list elt. + (Fx_color_display_p): + (Fx_defined_color): + (x_decode_color): + (defined_color): Eliminate screen argument. + (Fx_create_screen): No more ColorMap component to display.x. + * xterm.h: Likewise. + +1989-09-27 Joseph Arceneaux (jla at apple-gunkies.ai.mit.edu) + + * xfns.c (Fx_own_selection): + (Fx_get_selection): + (x_disown_selection): new funcs, which use new variables + Vx_selection_value, x_begin_selection_own, mouse_down_timestamp, + requestor_time, requestor_window, property_name, and + x_begin_selection_own. + + * xterm.c (XTread_socket): Only do stuff if s for FocusOut under X11. + SelectionClear: + SelectionRequest: + SelectionNotify: New events to handle the selection inter-client + communication mechanism. + ButtonPress: Set mouse_down_timestamp. + +1989-09-26 Joseph Arceneaux (jla at apple-gunkies.ai.mit.edu) + + * xfns.c: New variable Vx_cursor_fore_pixel. + +1989-09-23 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * lread.c (openp): Don't ! the result of `access'. + +1989-09-22 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * fileio.c (Fread_file_name_internal): Try to work properly + if dirs are specified using environment vars. Preserve use of vars. + +1989-09-21 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * fileio.c: Comment fix. + +1989-09-18 Joseph Arceneaux (jla at spiff) + + * xfns.c (Fx_get_cut_buffer): XFree the data returned by + XFetchBytes. + +1989-09-16 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * fileio.c (Fwrite_region): Reinstall #if 0 around fstat. + +1989-09-12 Joseph Arceneaux (jla at spiff) + + * xfns.c (defined_color): New function to test if a color is + currently defined. + (x_decode_color): Use defined_color. + (Fx_defined_color): New subr. + (select_visual): Select the appropriate X11 Visual. + (Fx_open_connection): Use select_visual. screen_visual now + global and used when making emacs windows. + (Fx_color_display_p): New subr. + +1989-09-11 Joseph Arceneaux (jla at spiff) + + * fileio.c (Fwrite_region): fixed typo. + + * keyboard.c (Fdiscard_input): fixed typo. + + * window.c (Fnext_window): fixed typos. + + * alloc.c (xmalloc, xrealloc): hold_window_changes whilst doing + the associated operations. + + * dispnew.c (init_display): + (Fsleep_for, Fsit_for): + * process.c (Faccept_process_output): + * keyboard.c ({clear,set}_waiting_for_input): + (quit_throw_to_get_char, get_char): + * xdisp.c (DoDsp, message, message1): Undid changes of Aug. 23 + (see below); accept window changes most of the time. + +1989-09-07 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * keyboard.c: Eliminate kbd_count, and use two pointers, + kbd_fetch_ptr and kbd_store_ptr. Assume buffer is empty when + they are equal. This should eliminate timing error. + (kbd_buffer_store_char): Update kbd_store_ptr when storing. + Don't ever fill the entire buffer. + (kbd_buffer_get_char): Update kbd_fetch_ptr when fetching. + (stuff_buffered_input): Likewise. + (get_input_pending): Compare the two pointers. + + * fileio.c (Fwrite_region): Reenable using fstat rather than stat + to get the modtime of the file just written, except on VMS and APOLLO. + +1989-09-05 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * emacs.c, doc.c, filelock.c: Move Emacs header includes after + system header includes, and #undef NULL in between. + +1989-08-30 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * process.c [SYSV_PTYS]: If `titan', include some other files. + +1989-08-29 Joseph Arceneaux (jla at spiff) + + * fileio.c: read-file-name replaced with new version, formerly + called new-read-file-name. + +1989-08-26 Richard Stallman (rms at apple-gunkies.ai.mit.edu) + + * window.c (Fscroll_other_window): Use save-excursion (in effect) + to save and restore current buffer and point. + (window_scroll): If selected window's buffer isn't current, + make it current, using save-excursion to go back. + +1989-08-24 Richard Stallman (rms at apple-gunkies.ai.mit.edu) + + * Use two variables to convey reason for synch process death, + to avoid consing in signal handler. + They are synch_process_death and synch_process_retcode. + * callproc.c (Fcall_process): Use both variables. + * process.c (child_sig): Set both variables. + +1989-08-24 Joseph Arceneaux (jla at spiff) + + * xterm.c (x_wm_set_size_hint): Use new ICCCM values for size_hints. + +1989-08-24 Richard Stallman (rms at apple-gunkies.ai.mit.edu) + + * buffer.c: Doc fix. + +1989-08-24 Joseph Arceneaux (jla at spiff) + + * xfns.c (Fx_create_screen): X11 part. Set height and width to 0 + before calling change_screen_size. + + * buffer.c (kill-all-local-variables): Changed doc string. + +1989-08-23 Richard Stallman (rms at apple-gunkies.ai.mit.edu) + + * dispnew.c (init_display): Call hold_window_change. + (Fsleep_for, Fsit_for): Temporarily unhold, while waiting. + * process.c (Faccept_process_output): Likewise. + * keyboard.c ({clear,set}_waiting_for_input): Temporarily unhold. + (quit_throw_to_get_char, get_char): Rehold. + * xdisp.c (DoDsp, message, message1): + Unhold and rehold momentarily before any real work. + + * Makefile (CPP): Use $(CC). + +1989-08-22 Joseph Arceneaux (jla at spiff) + + * xfns.c (x_set_mouse_color): Use new variables Vx_pointer_mask, + Vx_pointer_shape. + +1989-08-21 Richard Stallman (rms at apple-gunkies.ai.mit.edu) + + * alloc.c (malloc_warning): Do nothing if ignore_warnings. + (init_alloc_once): Set ignore_warnings while initializing allocation. + + * buffer.c: Doc fix. + +1989-08-21 Joseph Arceneaux (jla at spiff) + + * xterm.c (x_calc_absolute_position): New function to calculate + positive screen position. + (x_set_position): Use it. + (x_reset_cursor): No longer exists. + + * xfns.c (x_set_mouse_color): Reset the cursor even if there's no + X window. + (x_figure_window_size): Use x_calc_absolute_position. + (x_set_mouse_color): Rewrote this function. Always set cursor and + its color. If the window exists, then attach the cursor to it. + No longer uses x_reset_cursor. + (x_create_window): + (x_set_background): + (x_set_foreground): Use x_set_mouse_color instead of x_reset_cursor. + +1989-08-18 Richard Stallman (rms at hobbes.ai.mit.edu) + + * vmsfns.c: Define PRV$V_... syms if prvdef.h does not. + +1989-08-18 Joseph Arceneaux (jla at spiff) + + * xfns.c (Fx_geometry): New subr. + (x_figure_window_size): Don't worry about "geometry" here anymore; + now done in x-win.el. + (x_icon): Look in parms for iconic-startup rather than in variable. + +1989-08-16 Joseph Arceneaux (jla at spiff) + + * xfns.c (x_set_*_scrollbar): Don't destroy a scrollbar if it + doesn't exist. Also set scrollbar size only if actually creating + one. + (x_set_name): Don't do anything if the X window doesn't exist. + Set the icon name as well. + (x_window): Set the class hints for the window. + +1989-08-16 Richard Stallman (rms at hobbes.ai.mit.edu) + + * lread.c (Fload): Fix unterminated comment. + + * scroll.c (scrolling_max_lines_saved): Replace fixed threshold of 20 + with 1/4 of average length of lines. + +1989-08-13 Joseph Arceneaux (jla at spiff) + + * ymakefile: Do ${make} for oldXMenu. + +1989-08-13 Richard Stallman (rms at hobbes.ai.mit.edu) + + * eval.c: Doc fix. + +1989-08-12 Richard Stallman (rms at hobbes.ai.mit.edu) + + * emacs.c (main): Check for failure opening -t device. + Fatal error if terminal isn't a real terminal. + + * window.c (Fscroll_other_window): Let Vother_window_scroll_buffer + specify a buffer to scroll. + +1989-08-11 Richard Stallman (rms at hobbes.ai.mit.edu) + + * dispnew.c: Handle BROKEN_FIONREAD as in other files. + +1989-08-09 Joseph Arceneaux (jla at spiff) + + * ../oldXMenu/Makefile: Removed all the unneccessary X stuff. + +1989-08-07 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * fileio.c (barf_or_query_if_file_exists): When signalling, + provide the expected args for a file-error. + +1989-08-06 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * process.c: Let NEED_BSDTTY control include of bsdtty.h. + + * process.c [BSD or STRIDE]: If ioctl.h fails to define O_NDELAY, + and we need it, try fcntl.h. + + * s-bsd*.h, s-rtu.h, s-umax.h, s-unipl*.h: Define HAVE_UNION_WAIT. + * m-stride.h: Likewise. + * process.c: Decide which type to use with `wait' + according to HAVE_UNION_WAIT. If WAITTYPE already defined, + assume everything all set up for this. + + * m-hp9000s300.h: Unless NOT_C_CODE or NO_SHORTNAMES, + define WAITTYPE and WRETCODE, and include sys/wait.h. + +1989-08-05 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * callproc.c (child_setup): Get rid of junk in #if 0. + +1989-08-03 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * abbrev.c (Fdefine_abbrev): Allow nil spec'd as expansion. + (Fexpand_abbrev): Eliminate abbrev length limit; use alloca. + Eliminate redundant tests, always true. + Record positions of both start and end of abbrev. + Handle whitespace following the abbrev, before point. + + * callproc.c (Fcall_process_region): Use unwind-protect to delete + temp file. + + * lread.c (load_unwind): Free the pointer-word malloc'd in Fload. + +1989-08-02 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * emacs.c (Fdump_emacs): Doc fix. + +1989-08-02 Joseph Arceneaux (jla at spiff) + + * xfns.c: Reorganized several functions to be in same order as the + enum list. + (x_set_border_color): For X11, don't set pix to -1 for + gray values. + (Fx_create_screen): Simplified this function even more. + +1989-07-31 Joseph Arceneaux (jla at spiff) + + * keymap.c: New subrs Fuse_local_mouse_map, Fcurrent_local_mouse_map. + + * xfns.c (x_set_mouse_color): + (x_set_cur): No need to redraw display after doing these. + + (Fx_get_mouse_event): Accept motion events. + (x11_encode_mouse_button): Encoding a la X11, except for one + kludge. This is used only for motion events. + + * xterm.c (XTread_socket): Handle motion eveots. + +1989-07-26 Joseph Arceneaux (jla at spiff) + + * xfns.c (Fx_create_screen): I couldn't take it any more, the + ugliness of this routine offended me too deeply. It is now + completely rewritten for X11 and uses subroutines: + (x_figure_window_size) + (x_create_window) + (x_icon) + (x_make_gc) + + (Fx_draw_rectangle): + (Fx_erase_rectangle): New subrs. + + * m/m-intel386.h: Changes in LOAD_AVE_TYPE, LOAD_AVE_CVT, and + FSCALE to make loadst work correctly. + +1989-07-24 Joseph Arceneaux (jla at spiff) + + * xfns.c (Fmodify_screen_parameters): Check s->output_method + before looping through alist. + + (Fx_create_screen): Call x_default_parameter for font. + Don't add the scrollbar widths when making the main window: this + is done when the scrollbar is actually made. + + (x_set_vertical_scrollbar): Set v_scrollbar_width here instead of + in install_vertical_scrollbar. Also, pass that function macros + PIXEL_WIDTH, PIXEL_HEIGHT as args. + + (x_set_horizontal_scrollbar): Likewise. + + * xterm.c: (x_set_window_size): Don't call the things called + anyway upon the ConfigureNotify event. + (x_set_offset): Use the screen-size lisp variables for these + calculations. + + * xterm.h: Added the screen parameter declarations from xfns.c for + X11. + +1989-07-21 Joseph Arceneaux (jla at spiff) + + * sysdep.c: Don't include sioctl.h on mips. + + * buffer.c (Flist_buffers): Pass prefix as arg. + + * editfns.c (Finsert_char): Insert at most 256 chars at a whack. + + * xterm.c (x_draw_box): Moved cursor box right by one pixel. + +1989-07-20 Joseph Arceneaux (jla at spiff) + + * xfns.c: New variable x_screen_visuals, set if Fx_open_display, + to be used in screen-color-p. + + * process.c (create_process): Don't call setpgrp_of_tty here. + Also, do setpgrp for USG regardless of HAVE_PTYS. + + * callproc.c (child_setup): Ignore argument set_pgrp and always do + setpgrp_of_tty. + (Fcall_process): Don't call setpgrp_of_tty here. + + * keyboard.c (command_loop_1): Make sure Vprefix_arg is NULL + before finalizing_kbd_macro_chars; + +1989-07-19 Joseph Arceneaux (jla at spiff) + + * xfns.c (Fx_rebind_key): Completely rewrote this function for + X11. + +1989-07-13 Joseph Arceneaux (jla at spiff) + + * emacs.c: + * process.c: + * unexec.c: + * m/m-ibmrt-aix.h: Changed IBMRTAIX to IBMAIX. + * sysdep.c: Likewise. Also, don't define our closedir if IBMAIX. + * m/m-ibmps2-aix.h: New file. + +1989-07-12 Joseph Arceneaux (jla at spiff) + + * xdisp.c (message, message1): If using x, but haven't mapped the + window yet, use noninteractive output. + + * dispnew.c (Fredraw_display): Don't redraw a screen which is not + visible. + + * xterm.c (x_set_window_size): Don't DoDsp if screen isn't visible. + + * xfns.c (x_set_mouse_color) + (x_set_border_color) + (x_set_cursor_color) + (x_set_background_color) + (x_set_foreground_color): Don't redraw when screen isn't visible. + +1989-07-11 Joseph Arceneaux (jla at gluteus) + + * xterm.c (x_term_init, XTread_socket): Use ConnectionNumber for + both X10 and X11. This is #defined for X10. + + * screen.c (Fset_screen_width, Fset_screen_height): These now take + a SCREEN argument. + +1989-07-10 Joseph Arceneaux (jla at gluteus) + + * xterm.c (x_set_window_size): Call x_wm_set_size_hint. + (x_new_font): Don't call x_wm_set_size_hint. + + * xfns.c (x_set_internal_border_width): Don't call + x_set_resize_hint, and call x_set_window_size after BLOCK_INPUT. + + * screen.c, dispnew.c (Fset_screen_width, Fset_screen_height): + These functions have moved to screen.c. + +1989-07-07 Joseph Arceneaux (jla at sugar-bombs.ai.mit.edu) + + * eval.c (Ffuncall): Handle 6 arguments. Also, print a nice error + message if there are more than 6 args. + + * fns.c: (Fyes-or-no-p): + * minibuf.c: (read_minibuf_unwind): + (Fread_minibuffer): + (Fread_no_blanks_input): + (Fcompleting_read): Extra arg to read_minibuf. + + * callint.c (Fcall_interactively): + * keyboard.c (Fexecute_extended_command): + * minibuf.c: (Fread_command): + (Fread_function): + (Fread_variable): + (Fread_buffer): Extra arg to Fcompleting_read. + +1989-07-05 Joseph Arceneaux (jla at spiff) + + * minibuf.c (read_minibuf): New argument back_n is number of + characters to back-up point by. + (Fcompleting_read): Same. + * fileio.c: (Fnew_read_file_name): New version of Fread_file_name + using the above features. + (Finsert_file_contents): Check for negative file length. + +1989-07-03 Joseph Arceneaux (jla at spiff) + + * xfns.c: (x_pixel_width, x_pixel_height) New functions. + * screen.c: (Fscreen_pixel_size): New subr. + +1989-06-30 Joseph Arceneaux (jla at spiff) + + * xterm.c: Use invocation_name as argument to XGetDefaults. + +1989-06-29 Joseph Arceneaux (jla at spiff) + + * xterm.c (x_error_handler) #ifdef sony_news use XDefaultError + instead of XPrintDefaultError due to weirdness in Sony library. + * xterm.c: Avoid infinite raise/lower, enter/leave cycle when both + auto_raise and auto_lower are set by checking times between + consecutive Enter events. + +1989-06-27 Joseph Arceneaux (jla at sugar-bombs.ai.mit.edu) + + * screen.c: (Fselect_screen) + * window.c: (Fselect_window) The previous strategy was bugging the + lisp stuff, so these are now rewritten. + +1989-06-26 Joseph Arceneaux (jla at galapas.ai.mit.edu) + + * cm.c (Wcm_init): Don't check for Wcm.cm_ds, since this has been + removed. + (losecursor): This function now a #define in cm.h. + + * xterm.c (x_iconify_screen): Send message to root window to do + this, as per latest Inter-Client Communications Conventions. This + is commented out until it's implemented by X. For now, do it with + the iconic_state hint. + (x_deiconify_screen): For X11, just Map the window, as per the new + ICCC. + (x_make_screen_visible): Only handle visible and iconified screen + elements for X10; these variables are handled in event processing + for X11. + (x_make_screen_invisible): Send an UnmapNotify event to the root + window to aprise the window manager of the change. + (XTread_socket): Catch VisibilityNotify events. + +1989-06-25 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * window.c (Fsplit_window): If horizontal, round left window size up. + +1989-06-24 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * cm.h (cmplus): Improve formatting. + Use losecursor when reach end of line, if losewrap. + + * cm.h: New fields to handle multi-line and multi-char motion, + and both max and min cost for certain operations. + * term.c (term_init): Init those fields. + + * term.c (clear_end_of_line_raw): Don't clear last char of last line + if autowrap. + + * abbrev.c (Finsert_abbrev_table_description): Make 2nd arg optional. + +1989-06-23 Joseph Arceneaux (jla at apple-gunkies.ai.mit.edu) + + * xfns.c, lisp/term/x-win.el: C routine Fscreen_color_p now lisp + function x-color-screen-p in x-win.el. + (x_set_cursor_color): New method: first disallow same cursor as + background, then if cursor not foreground, use it as cursor + foreground. + +1989-06-22 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * lisp.h (XPNTR): Don't define if already defined. + +1989-06-22 Joseph Arceneaux (jla at cream-of-wheat.ai.mit.edu) + + * screen.c: New subrs Ficonify_screen, Fdeiconify_screen, + Fread_mouse_position, Fset_mouse_position. + + * xterm.c: New functions x_deiconify_screen, x_iconify_screen. + +1989-06-22 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * window.c (Fsplit_window, change_window_height): + Enforce minimum of 2 for window_min_width and window_min_height. + +1989-06-22 Joseph Arceneaux (jla at galapas.ai.mit.edu) + + * dispnew.c (unhold_window_change): Don't set and unset in_display + before and after calling change_screen_size. + +1989-06-21 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * buffer.c (Fkill_buffer): Ignore errors deleting auto-save file. + Delete only if delete-auto-save-files. + + * data.c (Fmake_local_variable): Don't change value if unbound. + +1989-06-20 Joseph Arceneaux (jla at apple-gunkies.ai.mit.edu) + + * screen.c (Fselect_screen): Use x_set_mouse_position instead of + x_enter_screen. + + * xterm.c (x_enter_screen): Deleted, now merged with + * xfns.c (x_set_mouse_position): If the position is negative, use + the center screen position. + + * data.c (swap_in_symval_forwarding): Declared tem1. + (Fset): Changed variable name void to voide. Also, set it to a C + true/false, rather than Qt or Qnil. + +1989-06-17 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * eval.c (Fdefvar): Operate on default value if sym is buffer-local. + (Fdefconst): Likewise. + + * Allow buffer-local variables to be void in one buffer + or in the default value. + * data.c (swap_in_symval_forwarding): New function. + (Fboundp, Fsymbol_value): Use that. + (default_value): New function. + (Fdefault_value): Use that. + (Fdefault_boundp): New function, uses that. + +1989-06-16 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * ymakefile: New variable OLDXMENU has filename of libXMenu.a + as a target. Make temacs depend on it. + +1989-06-15 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * ymakefile [HAVE_X11, HAVE_X_MENU]: Build oldXMenu. + * xmenu.c: Get XMenu.h from sibling dir. + + * buffer.c (Fkill_buffer): Return t if buffer is killed. + Delete auto-save file if any. + +1989-06-09 Joseph Arceneaux (jla at apple-gunkies.ai.mit.edu) + + * window.c: initialize auto_new_screen to 0 (nil). + + * screen.c (make_screen): added auto_lower to the list of screen + elements initialized. + (make_minibuffer_screen): likewise. + +1989-06-08 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * window.c (Fset_window_point): Don't lose if window's buffer is + not current. + +1989-06-08 Joseph Arceneaux (jla at apple-gunkies.ai.mit.edu) + + * xfns.c (Fx_open_connection): Added 9 Lisp variables + defined by the screen and server. + +1989-06-08 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * m-pmax.h: New file. + +1989-06-08 Joseph Arceneaux (jla at apple-gunkies.ai.mit.edu) + + * xfns.c: removed superfluous definition of gray_bits. + +1989-06-07 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * m-hp9000s300.h: Define NEED_BSDTTY unless NOMULTIPLEJOBS. + +1989-06-07 Joseph Arceneaux (jla at apple-gunkies.ai.mit.edu) + + * emacs.c (Fkill_emacs): If under X, call + Fx_close_current_connection. This has fixed the "bad file" bug. + * xfns.c (Fx_close_current_connection): Added this subr which for + the moment serves only to close the X-connection when killing emacs. + +1989-06-07 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * m-hp9000s800.h: Define NEED_BSDTTY here. + * s-hpux.h: Not here. + +1989-06-06 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * s/s-hpux.h: Define NEED_BSDTTY. + +1989-06-06 Joseph Arceneaux (jla at apple-gunkies.ai.mit.edu) + + * xterm.c (x_new_selected_screen): Make the new selected_screen + and it's selected_window's screen be the same. + (x_enter_screen): Calculate the middle of the screen, and warp the + mouse there. Also, raise the screen before doing so. + +1989-06-05 Joseph Arceneaux (jla at cream-of-wheat.ai.mit.edu) + + * xterm.c (x_set_window_size): If not already in DoDsp (checked + with variable in_display) then DoDsp here. Handles redisplay + after screen configuration. + (x_error_handler): Print out stuff about the error if we're in + debug mode. + + * dispnew.c (change_screen_size): No longer call DoDsp here. + +1989-06-05 Chris Hanson (cph at kleph) + + * syntax.c (Fmodify_syntax_entry): Change documentation string to + reflect earlier change to action of `p' syntax bit. + +1989-06-04 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * lread.c (read1): Don't accept "" in middle of string. + +1989-05-30 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * search.c (Freplace_match): If \N has nothing to insert, + insert nothing. + +1989-05-29 Joseph Arceneaux (jla at gracilis.ai.mit.edu) + + * xfns.c: (Fx_create_screen): If parms is nil and + Vx_screen_defaults isn't, then use them. + (Fdisplay_buffer): Call Fx_create_screen with Qnil. + +1989-05-25 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * syntax.c (scan_lists): Once within a word, treat Squote like Sword. + +1989-05-24 Joseph Arceneaux (jla at apple-gunkies.ai.mit.edu) + + * dispnew.c (change_screen_size): DoDsp if not pretend. + +1989-05-23 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * search.c (skip_chars): Dumb error checking for \. + +1989-05-22 Joseph Arceneaux (jla at apple-gunkies.ai.mit.edu) + + * screen.c (Fselect_screen): Under X, basically just warp the + cursor into the desired screen. The event handler will then do + the right thing. + (Frestore_screen_configuration): Don't set the mouse position. + + * window.c (Fselect_window): If window's screen is not selected, + call Fselecte_screen. + (Fdisplay_buffer): Call Fx_create_screen with x-screen-parameters + as argument instead of nil. + + * keyboard.c (clear_waiting_for_input): Don't call + x_new_selected_screen here. + + * xterm.c (XTread_socket): Add case slots for CirculateNotify and + CirculateRequest events. + +1989-05-21 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * doc.c (Fsubstitute_command_keys): Evaluate \\<...> keymap + in proper buffer. + + * keymap.c (Fapropos_internal): New Lisp function, old apropos + but only returns a list. + +1989-05-20 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * process.c (Fopen_network_stream): Don't set kill-without-query. + +1989-05-19 Joseph Arceneaux (jla at apple-gunkies.ai.mit.edu) + + * xterm.c (x_new_selected_screen): This now takes a struct screen + pointer as paramter. + * (XTread_socket): call x_new_selected_screen *before* dumpborder. + +1989-05-16 Joseph Arceneaux (jla at apple-gunkies.ai.mit.edu) + + * xfns.c: (x_window_to_scrollbar): If the caller's not interested + in the names--passing 0 for last two parameters--just return the + screen pointer. + + * xterm.c (x_enter_screen): Added this function for warping the + pointer into a screen. + +1989-05-16 Chris Hanson (cph at kleph) + + * syntax.c (scan_lists, scan_sexps_forward): Treat characters + whose "prefix" bit is on as whitespace when they are encountered + between expressions. When they occur within expressions they are + treated according to their syntax code. + +1989-05-16 Joseph Arceneaux (jla at apple-gunkies.ai.mit.edu) + + * xterm.c: (x_new_selected_screen): Don't call Fselect_screen. + Just do everything here. + + * window.c (Fselect_window): If the screen associated with the + window is not selected, warp the mouse, cause an EnterNotify event + which then causes the proper screen to become selected. This does + *not* call Fselect_screen. + + * screen.c (Fselect_screen): Now this is *only* a lisp subr. It + just calls Fselect_window on the selected window of the screen. + +1989-05-15 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * editfns.c (Fsubst_char_in_region): If NOUNDO, do increment tick, + but maybe also increment save-tick. + +1989-05-15 Joseph Arceneaux (jla at apple-gunkies.ai.mit.edu) + + * xterm.c (x_set_window_size): Only one #ifdef HAVE_X11 due to new + macro in: + * xterm.h: New macro XChangeWindowSize for both X10 and X11. + + * xfns.c (Fx_create_screen): Use XCreateWindow instead of + XCreateSimpleWindow to directly set some extra attributes. + +1989-05-14 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * syntax.h (SYNTAX_PREFIX): New macro. + * syntax.c (Fmodify_syntax_table): Handle `p'; set new flag. + (describe_syntax): Describe new flag. + (Fbackward_prefix_chars): Move back over such chars. + + * lread.c (read1): Dumb errors in last change. + +1989-05-13 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * lread.c (read1): Error if EOF after `?' or in string. + + * sysdep.c (init_sys_modes) [IBMRTAIX]: Typo; had s for sg. + +1989-05-12 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * s/s-usg5-3.h: Define HAVE_SYSVIPC? + + * alloc.c (Fmake_byte_code): If purifying, purecopy all elements. + + * ymakefile (LIBXMENU): Use -loldX. + Find libXMenu11.a in special place. + +1989-05-12 Joseph Arceneaux (jla at apple-gunkies.ai.mit.edu) + + * xfns.c (Fx_create_screen): If user has specified + `x-iconic-startup' then start emacs in iconic form. + Look for icon position in `icon-left' and `icon-top', or use + window postion. + + * xterm.c (x_term_init): If server doesn't respond, use fatal + instead of error. Also tell user about -d option. + +1989-05-10 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * sysdep.c (init_sys_modes, reset_sys_modes): + Handle TIOCGLTC even if HAVE_TERMIO. + + * print.c (Qprint_escape_newlines): New variable. + * minibuf.c (read_minibuf): Make it t locally in minibuffers. + + * fileio.c (Fcopy_file): Check for error on close. + +1989-05-10 Joseph Arceneaux (jla at corn-chex.ai.mit.edu) + + * xfns.c (adjust_scrollbars): Don't subtract 2 from + h_scrollbar_height when calculating `length'. + +1989-05-08 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * eval.c (call_debugger): Set entering_debugger. + (find_handler_cause): Don't enter debugger if that's set. + (Fbacktrace): Clear it; we are presumably in the debugger. + + * m/m-sps7.h: New file. + +1989-05-08 Joseph Arceneaux (jla at rice-chex.ai.mit.edu) + + * xterm.c (XTread_socket_hook): For X11, on map and unmap events + check the window manager hints for iconification status. + + * xterm.c (x_make_widow_icon): For X11, just request + iconification of the window manager. + +1989-05-08 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * m/m-clipper.h: New file. + +1989-05-07 Joseph Arceneaux (jla at corn-chex.ai.mit.edu) + + * xfns.c (adjust_scrollbars): Don't subtract 2 from + v_scrollbar_width when calculating `height'. + + * xfns.c (x_set_foreground, x_set_border_pixel): Finished color + coordination. Scrollbar border, thump-arrows, and slider pixmap + linked with foreground color; slider border with window border. + +1989-05-07 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * lread.c (read1): Handle octal integers. + + * macros.c: Doc fix. + + * search.c (Fstore_match_data): Allow ints instead of markers. + + * keyboard.c (get_char_menu_prompt): New function; does menu prompting + based on current keymaps. + +1989-05-05 Joseph Arceneaux (jla at gracilis.ai.mit.edu) + + * xfns.c (Fx_set_face): Rewrote the doc-string and renamed the + parameters. + +1989-05-05 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * unexec.c: New control parameters COFF_BSD_SYMBOLS, KEEP_OLD_PADDR, + KEEP_OLD_TEXT_SCNPTR, ADJUST_TEXT_SCNHDR_SIZE, ADJUST_TEXTBASE, + HEADER_INCL_IN_TEXT. + + * unexec.c: Define IN_UNEXEC as flag for config.h. + + * keymap.c: Fapropos, etc., deleted. (Now in Lisp code.) + + * eval.c (Fcommandp): Byte code object is command if interactive slot + exists at all. + +1989-05-05 Chris Hanson (cph at kleph) + + * process.c [HPUX && !NOMULTIPLEJOBS]: Include <bsdtty.h>, which + defines TIOCGPGRP. + +1989-05-05 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * data.c (Faref, Farray_length): Handle byte-code objects. + * fns.c (Flength, concat): Likewise. + + * data.c (Faref, Faset, Farray_length): Rename arg VECTOR to ARRAY. + + * m/m-hp9000s300.h: Undefine NOMULTIPLEJOBS. + + * keyboard.c (Fcommand_execute): Treat bytecode object as function. + + * callint.c (Fcall_interactively): Separate decoding of fcn + from handling of it. + + * alloc.c (Fmake_byte_code): Renamed from Fmake_compiled_code. + Make it pure if Vpurify_flag is non-nil. + (Fpurecopy): Handle byte-code objects. + + * keyboard.c (get_char): Use Fsit_for for echoing timeout, not alarm. + Do this before timeout for auto-save since the latter is longer. + (request_echo): Function deleted. + ({set,clear}_waiting_for_input): No need for echo_now, echo_flag. + +1989-05-04 Joseph Arceneaux (jla at gracilis.ai.mit.edu) + + * xterm.c (x_lower_window, x_raise_window): Don't do anything if + the window isn't visible. + + * xfns.c (x_set_foreground_color): Recolor the scrollbar windows + appropriately, compatible with xterm. + + * xterm.c (x_reset_cursor): Do cursor recoloring. + +1989-05-04 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * fns.c (Frandom): With number as arg, return value < that number. + + * sysdep.c [USG, BSD4_1] (random): Call `rand' twice, to get + 30 bits of significance. + +1989-05-03 Joe Arceneaux (jla at gracilis.ai.mit.edu) + + * xterm.c (x_draw_box): Use the cursor_gc. + * xfns.c: (x_set_cursor_color, x_create_screen): Do a better job + with cursor colors, and use 0 line width for the cursor_gc. + +1989-05-02 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * Begin changing representation of compiled functions. + * lisp.h (enum Lisp_Type): New type code Lisp_Compiled, like a vector. + (COMPILED_*): Names for slots in those vectors. + * alloc.c (Fmake_compiled_code): New function. + * eval.c (Fcommandp, Feval, Ffuncall, funcall_lambda): + Handle fcns of type Lisp_Compiled. + (Fcommandp, Fapply): Avoid directly nested ifs. + * print.c (print): Handle Lisp_Compiled objects. + * callint.c (Fcall_interactively): likewise. + * doc.c (Fdocumentation): likewise. + + * keyboard.c (Fopen_dribble_file): nil as arg means close it. + + * abbrev.c, alloc.c, buffer.c, bytecode.c, callint.c, callproc.c: + * casefiddle.c, cmds.c, data.c, dired.c, dispnew.c, doc.c, editfns.c: + * eval.c, fileio.c, filelock.c, floatfns.c, fns.c, keyboard.c: + * keymap.c, lread.c, minibuf.c, mocklisp.c, print.c, process.c: + * screen.c, search.c, syntax.c, undo.c, vmsfns.c: + Many doc fixes. + +1989-04-30 Joseph Arceneaux (jla at hobbes) + + * xterm.c (XTring_bell): Wasn't passing selected_screen to XTflash. + Fixed this. + + * xterm.c (XTread_socket): Don't check if server died under + X11. Temporary. + +1989-04-30 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * window.c (Fdelete_other_windows): Bug getting top edge. + +1989-04-29 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * keyboard.c (get_char): Auto save if enough time elapses. + (auto_save_timeout): New Lisp variable. + + * xdisp.c (try_window, try_window_id): Set w->redo_mode_line + if should show percentage instead of `Bot'. + +1989-04-29 Joe Arceneaux (jla at apple-gunkies.ai.mit.edu) + + * xterm.c (x_term_init): Don't set visible bell, as it pre-empts + .emacs control. + +1989-04-26 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * doc.c (syms_of_doc): Make Vdoc_file_name a Lisp variable + named internal-doc-file-name. + +1989-04-25 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * m-news.h: m-news800.h renamed. + Removed EXPLICIT_SIGN_EXTEND and COMPILER_REGISTER_BUG. + Removed SEGMENT_MASK and sigmask. + LOAD_AVE_TYPE is now `double'; LOAD_AVE_CVT changed too. + Define m68000 if not defined. + +1989-04-24 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * ymakefile: If COFF_ENCAPSULATE, define LD as gcc -nostdlib. + + * sysdep.c: Unconditionally include sys/ioctl.h. + + * m/m-mips.h [USG]: Define LIBS_TERMCAP. + If HAVE_X11, define HAVE_VFORK. + +1989-04-23 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * m/m-altos.h: Use termcap, not terminfo. + Define COFF_ENCAPSULATE if using gcc. + Use built-in alloca if using gcc. + Define PURESIZE. + + * lread.c (absolute_filename_p): On ALTOS, @ means absolute. + + * process.c: Missing #endif. + * fileio.c (Finsert_file_contents): Define `p' for last change. + * buffer.c, floatfns.c: Typos in DEFUN doc strings. + * keyboard.c: Typo in DEFVAR_LISP doc string. + + * window.c (Fdelete_other_windows): Fix confusion about type of W. + +1989-04-22 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * ymakefile (LDFLAGS): Forgot to use LD_SWITCH_SITE. + + * xterm.c (XTflash): Draw the bars here. + (x_invert_screen): Change to invert entire window. + (stufflines): Changed args to XClearArea. + (XTread_socket): Clean up handling of KeyPress events. + For LeaveWindow, ignore uninteresting ones and handle autolower. + For FocusIn, ignore if unknown window, and handle autoraise. + For MotionNotify, add real handling for X11. + For ConfigureNotify, count width of scroll bars. + Don't call change_screen_size redundantly; ignore linked expose events. + Update left and top pos if nec. + For button events, ignore if not in known window or scrollbar. + (x_new_selected_screen): Takes screen as arg. + (x_error_handler): Arg type different for X11. + (x_set_window_size) [HAVE_X11]: Call change_screen_size + before x_wm_set_size_hint. + (x_make_window_visible): Make scroll bars visible too, if any. + (x_lower_window): New fn. + (x_wm_set_size_hint): Take account of width of scroll bars. + Ior specified hint flags with those already set. + + * xterm.h (HSCROLL_HEIGHT): HSCROLL_WIDTH is renamed. + (MAXWIDTH): Increased to 300. + (MAXHEIGHT): Increased to 100. + (DISPLAY_SCREEN_ARG): Remove parentheses. + (ButtonReleased, WhichMouseButton): Delete definitions. + + * xmenu.c: Adapted to new X interface. X11ONLY replaced with xDISPLAY. + Many X11 conditionals removed. + + * xfns.c (x_set_cursor_color): Special case if matches foreground. + (Fx_create_screen): Typo for HSCROLL_HEIGHT. + Use BLACK_PIX_DEFAULT, WHITE_PIX_DEFAULT. + Set PRETEND arg to change_screen_size. + Delete gray_bits; this value made global. + Don't call install_*_scrollbar here. + (x_set_horizontal_scrollbar): Define this for real. + (x_set_vertical_scrollbar): Corrent args to install_vertical_scrollbar. + (install_vertical_scrollbar): New local slider_pixmap, and set it. + Delete locals GC_values, temp_gc. + Change arrow_width, arrow_height (appears to be undefined) to 16. + Un-if-0 this code. + Use border_pixel, not foreground_pixel, for scrollbar. + (install_horizontal_scrollbar): Define this for real. + (adjust_scrollbars): Handle horizontal scrollbar. + Define XMoveResizeWindow as XConfigureWindow if X10 to simplify. + (x_resize_scrollbars): Remove #if 0 from quick-exit case. + Really handle horizontal scrollbar. + Simplify using new macro. + (Fx_get_mouse_event): Mostly ignore events other than buttons. + Use many new macros to handle X10 and X11. + (encode_mouse_button): New fn: encoding of which button, broken out. + + * xfns.c (left_arror_cursor, etc.): New vars. + (x_screen_parm, init_x_parm_symbols, x_set_screen_param): + Define X_PARM_AUTOLOWER. + + * xdisp.c (display_string, redisplay-window, DoDsp): + Use SCREEN_WIDTH, SCREEN_HEIGHT. + +1989-04-21 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * indent.c (compute_motion): Use SCREEN_WIDTH. + * dispnew.c (update_line): Use SCREEN_WIDTH. + (update_screen): Use SCREEN_HEIGHT. + +1989-04-20 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * window.c: rename Vauto_new_screen_hook, Vdisplay_buffer_hook, and + Vtemp_buffer_show_hook to ..._function. + + * keyboard.c: rename mouse_hook to mouse_event_function. + + * buffer.c, buffer.h, cmds.c: blink-paren-hook and auto-fill-hook + renamed to -function. + + * fileio.c (Finsert_file_contents): Allow quit in read. + (Fwrite_region): Allow quit in write. + +1989-04-19 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * doprnt.c (doprnt): Comment out %b since sprintf can't do it. + + * Change X11 to HAVE_X11 everywhere. + + * m-sun3.h: Define C_SWITCH_MACHINE as -fsoft. + +1989-04-18 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * process.c: Don't define wstopsig, wtersig if already defined. + + * sysdep.c [VMS] (sys_getenv): Copy the string before returning it. + + * m-alliant.h: Define `vector'. + +1989-04-13 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * process.c (wait_reading_process_input) [sun]: If SIGIO failed + to be sent, send it by hand. + +1989-04-12 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * window.c (Fdelete_other_windows): recenter window to avoid scrolling. + +1989-04-11 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * indent.c: Include screen.h. + + * indent.c (pos_tab_offset, Fvertical_motion): Compute internal width + correctly and uniformly. + + * xdisp.c (try_window, try_window_id): Use exact internal width + to update tab_offset. + (try_window_id): pos_tab_offset value needs adjustment only if + starting a line in middle of a character. + +1989-04-08 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * sysdep.c [USG]: If TIOCGWINSZ defined, include sioctl.h. + +1989-04-06 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * eval.c (Fbacktrace): Set Vprint_level to 3 throughout. + + * fns.c (Fload_average): nlist data structure is funny on convex. + + * window.c (scroll_command): scroll at least 1 line in specd direction. + + * cm.c (calccost): NTABS was off by 1 sometimes; take account of + the starting position modulo 8. + + * fileio.c (Fexpand_file_name): Don't simplify /../ at start of name. + + * callint.c: doc fixes. + + * process.c (create_process): + On all USG systems, not just IRIS and AIX, don't pre-open pty's tty. + Move the setpgrp done for USG (no real change). + Tell child_setup to do a setpgrp. + * callproc.c (child_setup): New arg says whether to setpgrp. + Never setpgrp on USG. + (Fcall_process): Tell child_setup not to setpgrp. + + * sysdep.c (init_sys_modes, reset_sys_modes): Don't try to hack + TIOCGLTC, TIOCGETC, etc. if HAVE_TERMIO. + Don't bother to undef these for XENIX. + +1989-04-03 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * ymakefile (LIBES): Put LIBX first; it may depend on LIBS_MACHINE. + + * m-sequent.h: Define HAVE_ALLOCA. + +1989-04-02 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * term.c (term_init): Can't use scroll region if no abs positioning. + +1989-04-01 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * process.c (Fopen_network_stream): close desc. if connect fails. + +1989-03-31 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * minibuf.c (Fall_completions): gcprotect ALLMATCHES and TAIL, + not STRING. + + * keyboard.c (read_avail_input): Handle EBADSLT like EAGAIN. + +1989-03-29 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * term.c (term_init): Either ic or ip or im or IC => can insert chars. + + * minibuf.c (read_minibuf_unwind): Ensure minibuf writable for erasure. + +1989-02-23 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * m-convex.h: Undefine NO_ARG_ARRAY. + Changed defns of DATA_SEG_BITS and XINT. + Define alloca for GCC compilation. + +1989-02-17 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * m-ibmrt-aix.h: Define BROKEN_FIONREAD. + +1989-02-16 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * keymap.c (Fdefine_prefix_command): Set both value and fn defn, + with separate syms specified for each purpose. + +1989-02-15 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * callproc.c (Fcall_process): Open /dev/null with O_WRONLY. + +1989-02-14 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * window.c (window_scroll): Allow scrolling to very end (empty screen) + if that's exactly where we wanted to scroll to. + +1989-02-11 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * data.c (Fkill_local_variable): New local to simplify big stmt. + +1989-02-09 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * xdisp.c (display_text_line): cvt chars to glyfs for overlay arrow. + + * sysdep.c (init_sys_modes, child_setup_tty) [IBMRTAIX]: + Don't ignore BRK, and don't signal it. + + * process.c (pty): An IBMRTAIX conditional. + (create_process): Another here. + +1989-02-08 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * keymap.c (Fdefine_prefix_command): Use Ffset, not Fset. + +1989-02-06 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * fileio.c (Fset_visited_file_modtime): New fn. + + * xfns.c (Fx_create_screen) [X10]: XCreateWindow wants pixmaps as args. + +1989-02-03 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * dispnew.c (Fsit_for): It accepts 3 args. + +1989-02-02 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * xterm.c (XTread_socket): For X10, make EVENT an XKeyPressedEvent. + (x_set_resize_hint): Call XSetResizeHint. + + * process.c: Declare interrupt_input. + + * sysdep.c (init_sys_modes): TIOCSTART, not TCSTART. + +1989-01-28 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * xterm.h (struct x_display): `GC' renamed `gc' in all field names. + Field `ColorMap' renamed to `color_map'. + (face_gc_values): face_GC_values renamed. + +1989-01-28 Joe Arceneaux (rms at sugar-bombs.ai.mit.edu) + + * xterm.h (face_GC): Var deleted. + (struct x_display): New field face_GC. + (VSCROLL_WIDTH, HSCROLL_WIDTH): Moved here. + (MINWIDTH, MINHEIGHT, MAXWIDTH, MAXHEIGHT): New vars. Eliminate them! + (BLACK_PIX_DEFAULT): Typo in definition. + (WHITE_PIX_DEFAULT): Typos in definitions; was the black default. + + * xterm.c: Include ioctl.h only if BSD. + Include termio.h otherwise. + (XMapWindow) [X11]: Typo in definition. + (METABIT): New definition; maybe not needed. + (hostname, id_name, invocation_name, Vcommand_line_args): New vars + declared for main icon title. + (x_debug): Init to 1 if XDEBUG defined. + (dumpglyfs) [X11]: Changed args to XDrawImageString. + If debugging, do XFlushQueue. + Use screen's face_gc rather than old global one. + (XTflash) [not BSD]: avoid `struct itimerval'; use `alarm'. + (events): New table of event type names. + (XTread_socket): EVENT is now an XEvent even on x10. + Translate modifier key 1 into meta-bit. + For EnterNotify event, don't dumpborder or x_new_selected_screen + if there is an x_focus_screen. + For LeaveNotify event, don't ignore due to nonzero subwindow. + For ConfigureNotify, change screen size. + Do `select' check for SIGHUP only if HAVE_SELECT. + (x_new_selected_screen): An arg, SCREEN. + (x_display_cursor): dumpglyfs args changed. + (x_draw_box): Add GC arg to XDrawRectangle; change other args. + (clear_cursor): Change args to XClearArea. + (dumpborder): check x_input_screen, not selected_screen. + (x_text_icon): For X11, new arg to XGetDefault. + Cast values stored in icon_label. + (x_term_init): Hair to calculate name for icon. + Don't init_sigio unless SIGIO defined. + Call Fset_input_mode. + For X11, new arg to XGetDefault. + Set _Xdebug if debugging. + (x_new_font) Use XGetFont. + Get GC values from the screen structure. + (x_reset_cursor): Don't call XRecolorCursor. + (x_set_window_size): Call x_wm_set_size_hint, not x_set_size_hint. + (x_set_resize_hint): For X11, call x_wm_set_size_hint. + (x_wm_set_size_hint, x_wm_set_window_state, x_wm_set_icon_pixmap): + (x_wm_set_icon_position): New fns for X11. + + * xfns.c: For X11, include Xutil.h + (VSCROLL_WIDTH): Moved to xterm.h. + (face_GC): Don't declare it. + (id_name): Declare this. + (x_decode_color): Check `white' and `black' first of all. + (x_set_foreground_color) [X11]: Reset foreground and background. + (x_set_background_color) [X11]: Missing arg to XSetWindowBackground. + (x_set_cursor_color) [X11]: Reset foreground and background. + (x_read_mouse_position) [X11]: Changed call to XQueryPointer. + (x_set_mouse_position) [X11]: Add args to XWarpPointer. + (Fx_create_screen): Set some temporary geometry parms at the beginning. + For X11, changed setup of iconidentity, and implement rubber-banding. + For X11, implement merging individual geometry parms. + For X11, changed args to XCreateSimpleWindow. + For X11, call x_wm_set_size_hint. + Specify name when creating icon. + Don't call XSetForeground, XSetBackground before making border tile. + New var `cursor_bits'. Init the screen's GC's. + + * screen.c (Frubber_band_rectangle): For X11, just return nil. + +1989-01-24 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * buffer.c (Fbuffer_modified_tick): New fn. + + * window.c (Fnext_window): Accept 3 args from Lisp. + +1989-01-23 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * sysdep.c (sys_suspend): Handle case of SIGTSTP but not BSD. + +1989-01-20 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * sysdep.c (init_sys_modes): Do TIOCSTART if def, like TCXONC. + +1989-01-19 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * process.c (wait_reading_process_input): New 2nd arg is extra usecs. + All callers changed. + * dispnew.c (Fsit_for, Fsleep_for): New 2nd arg says 1st arg + counts in milliseconds. + + * buffer.c (Fkill_all_local_variables): Implement permanent locals. + +1989-01-18 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * keymap.c (get_keyelt): Allow indirection within (STRING . DEFN). + +1989-01-16 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * process.c (wait_reading_process_input): If select returns there + is kbd input, but detect_input_pending can't find it, signal SIGIO. + This may avoid the X loop-on-logout bug. + + * process.c (wait_reading_process_input): Flush fix_screen_hook. + * termhooks.h, term.c: likewise. + + * xdisp.c (Fredraw_display): Don't do set_terminal_modes. + * dispnew.c (Fredraw_screen): likewise. + + * eval.c (Fcond): If no args, return nil. + +1989-01-15 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * eval.c (Fbacktrace_frame): Require one arg. Return nil if too high. + +1989-01-14 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * minibuf.c (read_minibuf): Set Vminibuf_scroll_window before + switching windows. + + * xterm.c (XTread_socket): If no HAVE_SELECT, wait for input + if new arg WAITP is non0. Do this by not bothering to test for + presence of input before reading some. + Check for dead connection only if new arg EXPECTED is nonzero. + All callers changed (keyboard and sysdep). + + * Simplify keyboard input. + * keyboard.c (read_avail_input): Don't assume buffer is empty. + Don't call get_input_pending; do FIONREAD here. + Don't do FIONREAD if read_socket_hook, just tell it don't wait. + Arg EXPECTED is passed to read_socket_hook. + (input_available_signal): Use read_avail_input. + (gobble_input): Use read_avail_input; arg EXPECTED passed along. + (get_input_pending): let gobble_input do the work. + + * VMS keyboard input should have interrupt_input nonzero. + * keyboard.c (Fset_input_mode, init_keyboard): [VMS] Always set + interrupt_input to 1. + (get_input_pending): Special case deleted. + +1989-01-13 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * fileio.c (auto_save_1): Always make auto-save file owner-writable. + + * eval.c (Fbacktrace_frame): New fn. + + * buffer.h: Define `fieldlist' field in a buffer. + * buffer.c (Fregion_fields): Return list of fields overlapping + specified region. + (syms_of_buffer): New variable buffer-field-list. + (reset_buffer): Clear the fieldlist. + (init_buffer_once): Set up default and flag for buffer-field-list. + * insdel.c (prepare_to_modify_buffer): If check_protected_fields, + call Fregion_fields to detect error. + Delete buffer_modify_hook. + + * callint.c (Fcall_interactively): Bind `command-debug-status' + for each interactive command. + + * keyboard.c (command_loop_1): Count # commands read. + (num_input_keys): New Lisp variable. + + * m/m-gould.h, m/m-ibmrt-aix.h, m/m-sequent.h, m/m-sparc.h, + m/m-sun3.h, m/m-symmetry.h: Define A_TEXT_SEEK. + * unexec.c (copy_text_and_data): Don't check A_TEXT_OFFSET, + just A_TEXT_SEEK. + * unexconvex.c: Likewise. + + * unexconvex.c: machine/*.h unconditionally. + + * process.c (pty): Delete RTU, HPUX, IRIS alternatives to + PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF. + * s/s-hpux.h: Define PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF. + * s/s-rtu.h: Likewise. + * s/s-iris*.h: Define PTY_TTY_NAME_SPRINTF. + + * sunfns.c (Fsun_change_cursor_icon): Avoid ambiguity in eval order. + +1989-01-12 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * data.c (Fdefault_value): If var set up with default value as current, + take the current value slot, more up to date than the default slot. + +1989-01-11 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * dispnew.c (init_display): don't handle SIGWINCH if using X. + + * fileio.c (Fdo_auto_save): If file has shrunk, turn off auto-save. + This avoids duplicate messages and allows M-x auto-save to turn it on. + + * lread.c (Fload): Look in Vafter_load_alist. + (syms_of_load): Define after-load-alist. + +1989-01-07 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * dired.c (Fdirectory_files): 4th arg NOSORT non-nil means don't sort. + + * syntax.c (scan_lists): Change Sendcomment case so that + ignoring comments works even for newline-terminated comments. + + * minibuf.c (read_minibuf): Default Vminibuf_scroll_window + to the window that was selected. + +1989-01-06 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * fns.c (do_yes_or_no_p): Typo, call2 => call1. + + * eval.c (Fbacktrace): Each frame item should have a newline. + + * emacs.c (Fkill_emacs): Don't run hook if noninteractive. + + * eval.c: Define Vrun_hooks. + (syms_of_eval): Initialize Vrun_hooks. + + * indent.c (Fmove_to_column): Use del_range; Fdelete_backward non ex. + + * ymakefile (objs, floatfns.o): Re-add this file. + (LIBX): Install X11 case. + + * ymakefile (LIB_GCC): Now a cpp macro, like all other LIB_... + Define null if not using GCC. + + * lread.c (unreadchar): New function to unread a char + by stuffing it back into its stream. Now unread chars + work properly between multiple reads. + (UNREAD): Now calls that function. + (readchar): Don't us `unrch'; variable deleted. + (various): Don't initialize `unrch'. + (readevalloop): No need to save and restore `unrch'. + (read1): Don't unread a -1. + + * keymap.c (get_keyelt): If keymap defn is (STRING . FOO), + remove just FOO. Will help HierarKey. + +1989-01-05 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * unexmips.c [IRIS_4D]: Don't include fcntl.h. + (unexec): Look for LIT8, LIT4 sections iff they are defined. + + * buffer.c (Fkill_all_local_variables): Force redisplay of mode lines. + +1989-01-02 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * emacs.c (main): Do the setpgrp before handling -t. + + * keyboard.c (Fsuspend_emacs): Use run-hooks to run suspend-hook + and suspend-resume-hook. + + * buffer.c (Fkill_buffer): Execute kill-buffer-hooks + with buffer to be killed as current buffer. + + * buffer.c (count_modified_buffers): ModExist renamed. + + * emacs.c (Fkill-emacs): Execute kill-emacs-hook. + + * fileio.c (auto_save_1): Set auto_save_mode_bits from visited file. + (Fwrite_region) [not VMS]: If auto-saving, write file with that mode. + + * fileio.c (Fwrite_region): If START is a string, write that string. + +1989-01-01 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * lisp.h (XMARKBIT, XSETMARKBIT): If mark bit is sign bit, + use sign-test for XMARKBIT; value is then 1 or 0. + Make XSETMARKBIT test 2nd arg for nonzeroness only. + + * m/m-mips.h: Last batch of changes are only for USG. + (XMARKBIT, XSETMARKBIT): Deleted; the new default ones are good. + + * editfns.c (Fformat): Use princ for %s. + New format %S converts everything (even strings) with prin1. + * doprnt.c (doprnt): Treat %s like %S. + + * print.c (Fprin1_to_string): Opt 3nd arg non-nil does princ. + +1988-12-31 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * data.c (Fstring_to_int): Correct max # args. + +1988-12-30 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * ymakefile (LIBES, LIB_GCC): If using GCC, link with gnulib. + +1988-12-29 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * editfns.c: Many doc improvements. + +1988-12-28 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * lisp.h (CHECK_NATNUM): New macro. + + * indent.c (Fmove_to_column): 2nd arg t means indent till spec'd column + or change tab to spaces if necessary. + + * m/m-iris4d.h: (conditionally) delete DEFAULT_ENTRY_ADDRESS + and change START_FILES and LIB_STANDARD. + + * s/s-iris3-6.h: Define sigblock as no-op. + + * m/m-mips.h: Cancel defn of VIRT_ADDR_VARIES, `static'. + Undef SIGIO. Define BROKEN_FIONREAD. + Define various HAVE_... flags a la BSD. + Add options, libraries for linking and compilation. + + * unexmips.c (unexec): Handle additional optional sections now likely. + New scheme for recording what sections there are. + Make handling of the LIT8,LIT4 sections conditional (not on IRIS). + + * fns.c (do_yes_or_no_p): New interface to Lisp function yes-or-no-p. + Allows the user to redefine that function. + All callers of Fyes_or_no_p changed. + + * data.c (Fmakunbound): Don't allow nil or t as arg. + + * m/m-orion105.h (LOAD_AVE_TYPE): Now `long'. + +1988-12-27 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * dispnew.c (unhold_window_change): + Don't signal SIGWINCH. Instead, do pending size-changes here, + while holding any new size-changes that arrive, so they become + pending. Loop around to get the new pending ones. + (change_screen_size): Clear any previous pending size-change. + + * search.c (place): Was clipping to (1- (point-max)) by mistake. + +1988-12-24 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * window.c (Fdelete_window): Give all this window's space + to one adjacent sibling. + +1988-12-23 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * keymap.c (describe_alist): Don't lose on non-cons-cell alist elts. + (Fwhere_is_internal): Don't fail to step down the alist. + (Faccessible_keymaps): Considerable confusion in alist case. + + * lread.c (Feval_current_buffer, Feval_region): + Save and restore point as a marker, not a number. + Don't restore it at all if printflag is t. + + * print.c (float_to_string): Mostly rewritten; output format + is now a printf %-spec. + (Qfloat_output_format): Doc changed to match. + +1988-12-22 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * ymakefile (obj): Include floatfns.o. + * data.c (syms_of_data): Fix typo Snumberp_or_marker_p. + + * Allow keymaps to have other keymaps as tails. + Thus, one keymap can inherit from another. + * keymap.c (Fwhere_is_internal): Ignore non-cons elements of alist. + (Faccessible_keymaps): Support symbols as alist indices. + Ignore alist elements that aren't conses. + + * m/m-sun386.h (LDAV_SYMBOL): Define as "avenrun" with no underscore. + + * lread.c (read_escape): Support ANSI C `\x...' hex escapes. + + * bytecode.c (Fbyte_code): fix jump operators for change in `pc'. + +1988-12-21 Joe Arceneaux (jla at gracilis.ai.mit.edu) + + * ymakefile: Commented #endif LISP_FLOAT_TYPE. Also changed + the code pertaining to X11 to use the same files as X10. + + * bytecode.c (Fbyte_code): Declared unsigned char *pc. + +1988-12-19 Joe Arceneaux (jla at apple-gunkies.ai.mit.edu) + + * xterm.c: Finished a first cut of the X11 version. + +1988-12-18 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * sysdep.c (select): `buf' is now unsigned char. + +1988-12-16 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * m/m-elxsi.h: Don't define WORD_MACHINE or CANNOT_DUMP. + Do define symbols for load average. + Define COFF and ADJUST_EXEC_HEADER. + +1988-12-16 Joe Arceneaux (jla at apple-gunkies.ai.mit.edu) + + * sink.h,sinkmask.h: Same file now works for both X10 and X11. + * xterm.c,xfns.c (x_text_icon) Can now take new name as parameter. + +1988-12-16 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * m/m-is386.h: No need to undef HAVE_PTYS, HAVE_SOCKETS, SYSV_PTYS + since s-usg5-3.h no longer defines them. + +1988-12-14 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * bytecode.el (Fbyte_code): Cache the pointer in the string + to avoid recalculating it at each fetch. + Also turn off the error check for stack overflow/underflow. + +1988-12-14 Joe Arceneaux (jla at apple-gunkies.ai.mit.edu) + + * xfns.c: Made the first cut for X11 version. + * xterm.c: (x_reset_cursor) Did the X11 version. + +1988-12-14 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * keyboard.c (Fexecute_mouse_event): Set Vmouse_event. Doc fix. + Run Vmouse_hook at the end. + (syms_of_keyboard): Define var `mouse-hook'. + +1988-12-13 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * term.c (insert_glyfs): Typo, was fetching G twice. + +1988-12-10 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * keymap.c (describe_buffer_bindings): Print mouse bindings too. + (describe_map): If have a chartab, use mouse-describe-key for prefixes. + * keymap.c (describe_{map,map_tree,alist}, describe_vector): + Extra arg mapping chars to their names. Calls changed. + * syntax.c (describe_syntax_1): Call changed. + + * keymap.c (Vglobal_mouse_map): Make it exist unconditionally. + + * keymap.c (apropos1): Clean up. + Do where-is-internal only if there is a function definition. + Use mouse-describe-key to turn mouse key sequences into strings. + (Fwhere_is): Check the mouse map too; + (Fwhere_is_internal): New arg is global map to use. + All callers changed in keypad.c and doc.c. + (where_is_string): New fn cvts result of Fwhere_is_internal to string. + +1988-12-09 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * emacs.c (stack_bottom): New variable, set in main. + * alloc.c (Fgarbage_collect): Save a copy of the entire stack contents. + +1988-12-07 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * editfns.c (Funix_umask, Funix_sync): New functions. + + * process.c (Fsignal_process): New function. + +1988-12-06 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * editfns.c (Fsubst_char_in_region): Fix typo in when to un-modify buf. + +1988-12-05 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * process.c (create_process): Take the usg's setpgrp and the close-and + -open of the tty outside the TIOCNOTTY conditional, since TIOCNOTTY + is always missing outside BSD. Now the TIOCNOTTY conditional controls + only the TIOCNOTTY. + +1988-12-04 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * lread.c (Feval_current_buffer, Feval_region): + If there is an error, don't restore original point. + + * s-hpux.h (SHORT_CAST_BUG): Define this, for HPUX version 6.2. + + * ymakefile (THIS_IS_YMAKEFILE): Define macro to tell m- files + to do special things. + + * m/m-ns16000.h: (LOAD_AVE_TYPE, etc.): Don't define them if USG. + * m/m-ns16000.h [USG]: Define various macros differently. + (munnari!sibyl.eleceng.ua.oz.au!ian@uunet.uu.net). + + * sysdep.c (reset_sys_modes): Don't output a CR here. + * term.c (reset_terminal_modes): Do it here, but first + do a newline if it's a magic cookie terminal. + + * sysdep.c (sys_suspend) [USG]: Use `nice' to set subshell pri. to 0. + + * sysdep.c (TIOCSETN) [USG]: Use TCSETAW, not TCSETA. + + * sysdep.c (setpriority) [USG]: No longer a no-op; use `nice'. + + * keymap.c (Fwhere_is_internal): New 4th arg inhibits looking thru + indirect definitions--so you can search for one. + + * alloc.c, fns.c, search.c: Doc fix. + +1988-12-01 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * process.c (read_process_output): Insert with insert_before_markers. + + * filelock.c (lock_file_1, lock_superlock): + If USG, use chmod instead of fchmod. + + * environ.c (Fsetenv): Doc fix. + +1988-11-25 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * eval.c (do_autoload): Verify FUNNAME is a symbol. + +1988-11-17 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * fileio.c (Fread_file_name): New arg specifies initial minibuf cntnts. + * callint.c (Fcall_interactively): Calls changed. + +1988-10-08 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * insdel.c (make_gap): Error if buffer size exceeds range of Lisp int. + +1988-10-06 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * window.c (Fsplit_window): Prevent error in Fset_window_buffer. + + * sysdep.c (gettimeofday): Store -1 thru tzp so caller knows invalid. + + * xdisp.c (message): Pass 0 as new arg to doprnt. + * callint.c (Fcall_interactively): Likewise. + * editfns.c (format1): + * doprnt.c (doprnt): Allow 0 as FORMAT_END arg meaning null-terminated. + +1988-10-05 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * keyboard.c: If UNIPLUS, include ioctl.h. + + * sysdep.c (utime): Use new flag IRIS_UTIME, not IRIS. + * s-iris*.h: Define that flag. + +1988-10-04 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * term.c (term_init): If have `im' capability, permit ins/del char + even without `ic'. + +1988-10-03 Richard Stallman (rms at corn-chex.ai.mit.edu) + + * m/m-hp9000s300.h: Conditionals for BSD vs HPUX. + + * ymakefile: Look for C_SWITCH_SITE, LD_SWITCH_SITE. + +1988-09-30 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * editfns.c (Fformat): Allow nulls in the format. + * doprnt.c (doprnt): likewise. End of format string is new arg. + +1988-09-28 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * m/m-7300.h: Undefine SHORTNAMES. Supposedly newer Unix now. + + * print.c (print): Support new var print_length. + (syms_of_print): Define Lisp var print-length. + * eval.c (Fbacktrace): Print unevalled form with print_length = 3. + + * Makefile (tags): Add TAGS as alternate target. + Process the files in ../lisp/term. + +1988-09-27 Richard Stallman (rms at corn-chex.ai.mit.edu) + + * doprnt.c (doprnt): Handle %-20s. + * editfns.c (Fformat): Likewise (make enough space for it). + + * minibuf.c (do_completion): If get "Complete but not unique" twice + in a row, display all completions. New var last_exact_completion. + +1988-09-26 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + +* * dispnew.c (baud_rate): Now a Lisp variable, not a function. + * termcap.c (tputs) [emacs]: Use baud_rate as the speed. + +1988-09-19 Richard Stallman (rms at gluteus.ai.mit.edu) + + * window.c (Fset_window_configuration): Set deleted windows' buffer + to nil, via new function delete_all_subwindows. + * window.c (Fset_window_buffer): Reject deleted windows. + * window.c (init_window_once): Init the ->buffer fields + to satisfy error check in Fset_window_buffer. + +* * xmenu.c (Fx_popup_menu): 1st arg is now ((X Y) WINDOW). + + * process.c (child_sig): If synch process terminates, clear + synch_process_pid and record synch_process_death. +* * callproc.c (Fcall_process): return synch_process_death. + Always set synch_process_pid and do it with SIGCHLD masked off. + * sysdep.c (wait_for_termination) [subprocesses and not VMS]: + Use alarms to check every second whether synch_process_pid is 0. + +1988-09-17 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * xdisp.c (redisplay_window): If window-point is outside restriction + then correct it in the window. + * window.c (Fdelete_buffer): Don't change buffer's point to a value + outside its restriction. + + * sysdep.c (init_sys_modes) [MULTI_SCREEN]: Set Vterminal_screen's + garbaged bit. + +1988-09-16 Richard Stallman (rms at corn-chex.ai.mit.edu) + + * keyboard.c (kbd_buffer_get_char): VMS now uses same code as Unix. + + * vmsproc.c: New file for VMS only. + * callproc.c [VMS]: Omit Fcall_process and child_setup_tty. + * emacs.c (main) [VMS]: Call init_vmsproc and syms_of_vmsproc. + + * lread.c (OBARRAY_SIZE): Change slightly to 509 (prime). + +* * keyboard.c, dispnew.c, term.c, xterm.c (meta_flag): MetaFlag renamed. + * keyboard.c (Fset_input_mode): 3rd arg sets meta_flag. + (syms_of_keyboard): Variable meta-flag deleted. + * sysdep.c (init_sys_modes): Don't override parity settings + if meta_flag is 0. + +1988-09-15 Richard Stallman (rms at corn-chex.ai.mit.edu) + +* * search.c (Fsearch_forward, etc.): All buffer-search functions + return new the value of point if they succeed. + +1988-09-13 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * cmds.c (Fnewline): Correct test of ARG1 to inhibit auto-fill. + +1988-09-12 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * window.c (Fdelete_window): Put nil as buffer of the deleted window. + This makes select-window get an error earlier. + +1988-09-06 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * search.c (search_buffer, string_match, looking_at): + Report matcher stack overflow as error, not just failure to match. + + * data.c (Fmake_local_variable): Add local variable to simplify + too-complex expression. + + * fileio.c (Fdo_auto_save): No "file has shrunk" msg if < 5000 chars. + +See ChangeLog.2 for earlier changes.