]> code.delx.au - gnu-emacs/blob - src/ChangeLog.3
(Version, mh-version): Update for release 8.0.
[gnu-emacs] / src / ChangeLog.3
1 1993-05-30 Richard Stallman (rms@mole.gnu.ai.mit.edu)
2
3 * Version 19.10 released.
4
5 1993-05-29 Richard Stallman (rms@mole.gnu.ai.mit.edu)
6
7 * keyboard.c (read_key_sequence): If we changed buffers during
8 read_char, go to replay_sequence.
9
10 * frame.c (Ficonify_frame, Fmake_frame_invisible):
11 Select some other frame. Move minibuffer off this frame.
12
13 * frame.c (Fhandle_switch_frame): Don't call Ffocus_frame.
14 (Fredirect_frame_focus): Call Ffocus_frame here.
15
16 * xterm.c (x_bitmap_icon): Don't free icon_bitmap;
17 create it if it hasn't been created before.
18
19 * xterm.c (XTread_socket): For UnmapNotify, if frame was visible,
20 mark it now as iconified.
21 (x_make_frame_invisible): If async_iconic, work does need to be done.
22 Don't let this frame stay highlighted.
23 (x_iconify_frame): Don't let this frame stay highlighted.
24
25 * s/usg5-4-2.h (sigsetmask): #undef this.
26
27 * sysdep.c (sys_signal): Use 0, not NULL, to set sa_flags.
28
29 1993-05-29 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
30
31 * linux.h (C_OPTIMIZE_SWITCH): Set this to the empty string;
32 configure guesses just fine.
33
34 * tekXD88.h: New file, from Kaveh Ghazi.
35
36 * systty.h (CDISABLE): #undef it before re-#defining it.
37
38 * sysdep.c (sys_siglist): Comment out #endif trailer.
39 * xmenu.c (TRUE, FALSE): Same.
40 * xterm.c (dumprectangle): Same.
41
42 * emacs.c: Don't include termios.h directly--let systty.h do it.
43
44 1993-05-29 Richard Stallman (rms@mole.gnu.ai.mit.edu)
45
46 * xfaces.c [HPUX]: Include time.h and define __TIMEVAL__.
47
48 * emacs.c (shut_down_emacs): Maybe close X connection. New arg NO_X.
49 (Fkill_emacs): Don't close it here. Pass new arg.
50 (fatal_error_signal): Pass new arg.
51 * xterm.c (x_connection_closed): Pass new arg.
52
53 * xdisp.c (syms_of_xdisp): Make highlight-nonselected-windows Lisp var.
54 (display_text_line): Obey it.
55 (display_text_line): Really check for just the selected window.
56
57 * s/usg5-4-2.h: New file.
58
59 * keyboard.c (menu_bar_items): Save Vinhibit_quit by hand
60 instead of using specbind.
61 (menu_bar_items): Call Fnreverse before restoring Vinhibit_quit.
62
63 * s/hpux8.h (OLDXMENU_OPTIONS): Add quotations.
64
65 * m/ibmrt.h (C_SWITCH_MACHINE): Define only if not __GNUC__.
66 (HAVE_FTIME): Defined.
67 (EMACS_BITMAP_FILES): Defined.
68
69 * xfns.c (Fx_close_current_connection): Clear x_current_display.
70 * xterm.c (XTring_bell): Do nothing if x_current_connection is 0.
71
72 * buffer.c (reset_buffer): Clear mark_active field here.
73 (reset_buffer_local_variables): Not here.
74 (Fswitch_to_buffer, Fpop_to_buffer): Return the buffer.
75 (Fmove_overlay): Fix data types in last change.
76
77 * sysdep.c (gettimeofday): Don't store in *tzp if tzp is 0.
78
79 * process.c (MAXDESC): Get it from FD_SETSIZE if that exists.
80
81 * s/sco4.h (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF):
82 Redefined.
83 (SIGNALS_VIA_CHARACTERS): Defined.
84 [HAVE_SOCKETS] (HAVE_GETTIMEOFDAY): Defined.
85 (MAIL_PROGRAM_NAME): Defined (two alternate definitions).
86
87 * xfns.c (Fx_list_fonts): Use CHECK_LIVE_FRAME on the frame arg.
88
89 1993-05-28 Richard Stallman (rms@mole.gnu.ai.mit.edu)
90
91 * s/hpux8.h (LIBX11_SYSTEM): Defined.
92
93 * ymakefile: Replace config.h as dep with $(config_h).
94 (really-oldXMenu): Use two make vars to pass values
95 of C_SWITCH_... within doublequotes.
96
97 * xfns.c (x_figure_window_size): Never set PPosition or PSize.
98
99 * keymap.c (syms_of_keymap): Create global_map 256 slots long.
100 * cmds.c (keys_of_cmds): Predefined 0240-0376 as self-insert.
101
102 * xterm.c (XTread_socket, case KeyPress) [HPUX]:
103 Recognize the extended function keys.
104
105 * buffer.c (Fgenerate_new_buffer_name): New arg IGNORE.
106 (Frename_buffer): Pass new arg.
107
108 1993-05-28 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
109
110 * keyboard.c (menu_bar_items): Bind Qinhibit_quit to Qt while we
111 call the keymap accessors; this gets called during redisplay.
112
113 * ymakefile (alloca.o): Call $(CC), not cc.
114
115 * s/linux.h (SIGNALS_VIA_CHARACTERS): Try this out for a bit.
116
117 * buffer.c (Fmove_overlay): If the overlay is changing buffers,
118 do a thorough redisplay.
119
120 * xfns.c (x_set_frame_parameters): Use the first
121 position/size parameter we find, not the last.
122
123 * s/hpux8.h: Don't define HAVE_RANDOM.
124
125 * config.h.in (UNEXEC_SRC): New macro, set by the configure
126 script.
127 * ymakefile (UNEXEC_SRC): Give it a default value here, and make
128 UNEXEC depend on it.
129
130 * ymakefile (lispdir): Set this in terms of ${srcdir}.
131
132 1993-05-27 Richard Stallman (rms@mole.gnu.ai.mit.edu)
133
134 * dispnew.c (Fsleep_for): Don't return without waiting when SEC is 0.
135
136 * emacs.c (syms_of_emacs) [CANNOT_DUMP]: Don't defsubr Sdump_emacs*.
137
138 * alloc.c (mark_object): Add debugging code to check for ptr clobbered.
139
140 1993-05-27 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
141
142 * Version 19.9 released.
143
144 1993-05-27 Richard Stallman (rms@mole.gnu.ai.mit.edu)
145
146 * keyboard.c (read_char): Correct previous change.
147
148 1993-05-27 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
149
150 * systty.h: Always terminate comments, to avoid confusion.
151
152 * xfns.c: Make resource manager work correctly even when
153 Vinvocation_name has periods and asterisks in it.
154 (Vxrdb_name): New variable.
155 (Fx_get_resource): Use it instead of Vinvocation_name.
156 (Fx_open_connection): Initialize it to a copy of Vinvocation_name,
157 with the dots and stars replaced by hyphens.
158 (syms_of_xfns): staticpro it here.
159
160 * xfns.c (Fx_get_resource): Use the proper format string when the
161 attribute has been specified.
162
163 1993-05-27 Richard Stallman (rms@mole.gnu.ai.mit.edu)
164
165 * xfns.c (x_get_resource_string): New function.
166
167 * ymakefile (ALL_CFLAGS): Put CFLAGS last.
168
169 1993-05-26 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
170
171 * s/sol2.h: (SOLARIS_BROKEN_ACCESS): Don't define this.
172
173 * s/aix3-2.h (C_SWITCH_SYSTEM): Don't define this to be "-ma" if
174 we're using GCC - that's an XLC switch.
175
176 * s/aix3-2.h (LIBS_SYSTEM): Put -LIM -Liconv here.
177
178 * systty.h (HAVE_LTCHARS, HAVE_TCHARS): New macros; define them if
179 we have those structures, but *don't* define them if we have
180 TERMIOS, whose functions take care of those parameters; that
181 screws up AIX.
182 (struct emacs_tty): Test those symbols, instead of the ioctl
183 commands.
184 * sysdep.c (emacs_get_tty, emacs_set_tty, new_ltchars, new_tchars,
185 init_sys_modes): Same.
186
187 * config.h.in (HAVE_RENAME): Include an #undef for this, so
188 configure will have something to edit.
189
190 1993-05-26 Richard Stallman (rms@mole.gnu.ai.mit.edu)
191
192 * window.c (window_loop, case GET_LRU_WINDOW):
193 Get frame's width properly.
194
195 * xselect.c (x_get_local_selection): If no conversion function
196 exists for the requested type, just return nil.
197
198 * s/linux.h (HAVE_TCATTR): Defined.
199
200 * sysdep.c [HAVE_SOCKETS]: Include socket.h, netdb.h.
201 (get_system_name) [HAVE_SOCKETS]: Use gethostbyname.
202
203 1993-05-26 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
204
205 * s/hpux8.h (LIB_X11_LIB, C_SWITCH_SYSTEM, LD_SWITCH_SYSTEM,
206 LD_SWITCH_SYSTEM, OLDXMENU_OPTIONS): Add X11R5 directories to the
207 search paths in these lists; they shouldn't do any harm if they
208 don't have X11R5.
209
210 * s/aix3-2.h (C_SWITCH_SYSTEM): Don't #define this if we're using
211 GCC.
212
213 1993-05-26 Richard Stallman (rms@mole.gnu.ai.mit.edu)
214
215 * xrdb.c (magic_searchpath_decoder): Fix typos.
216
217 * xdisp.c (display_text_line): Don't call compute_char_face
218 for a non-X frame.
219
220 * xfns.c (Fx_rebind_key, Fx_rebind_keys): X10 definitions deleted.
221 (syms_of_xfns): Install them only if X11.
222
223 * ralloc.c (r_alloc_sbrk): Declare already_available as long, not SIZE.
224
225 * xfns.c (x_set_cursor_type): If arg not recognized, use box cursor.
226
227 * s/hpux8.h (LD_SWITCH_SYSTEM) [__GNUC__]: Pass -a archive to ld.
228 (HAVE_RANDOM): Defined.
229
230 * s/hpux.h (rand, srand): Definitions deleted.
231
232 * keyboard.c (Fcurrent_input_mode): Fix the call to Flist.
233 (make_lispy_event): Fix off-by-1 error with hpos in menu bar.
234
235 * s/sunos4-1-3.h: New file.
236
237 * ymakefile (XOBJ) [!HAVE_X_MENU]: Add xfaces.o.
238
239 * s/irix4-0.h (SIGNALS_VIA_CHARACTERS): Defined.
240
241 * xterm.c (x_wm_set_size_hint): Don't set hints for max size.
242
243 1993-05-25 Richard Stallman (rms@mole.gnu.ai.mit.edu)
244
245 * m/ibmrs6000.h (LIBS_MACHINE): Add -lIM and -liconv.
246 (HAVE_GETTIMEOFDAY): Deleted.
247
248 * sysdep.c (wait_for_termination): Don't use the BSD alternative
249 for LINUX. Use the UNIPLUS alternative.
250
251 * keyboard.c (read_char): If kbd_buffer_get_event returns nil,
252 redisplay and retry.
253 (kbd_buffer_get_event): If event is handled here, return nil.
254 (swallow_events): New function.
255 * process.c (wait_reading_process_input): Call that.
256
257 * ralloc.c (POINTER): Always use char *.
258
259 * s/sol2.h (C_SWITCH_X_SYSTEM): Deleted.
260 (LD_SWITCH_SYSTEM): Delete the -L option, leave just -R.
261
262 * m/symmetry.h (PTY_TTY_NAME_SPRINTF, PTY_NAME_SPRINTF):
263 Use pty_name, not ptyname.
264
265 * syntax.c (Fforward_comment): Arg is a Lisp_Object.
266 Convert it to an int.
267
268 * ymakefile (alloca.o): Get alloca.c and alloca.s from ${srcdir}.
269
270 * floatfns.c (logb): Don't declare if hpux.
271
272 * syntax.c (Fforward_comment): Always set point.
273
274 * s/dgux.h, s/hpux.h, s/esix.h (HAVE_GETTIMEOFDAY): Deleted.
275
276 * s/irix4-0.h (C_ALLOCA, alloca): Definitions deleted.
277 [!NOT_C_CODE]: Include alloca.h.
278 (NEED_SIOCTL): #undef this.
279
280 * xterm.h (PIXEL_TO_CHAR_COL, PIXEL_TO_CHAR_ROW):
281 Fix mismatch in arg names.
282
283 * xfns.c (Fx_open_connection): Set xrm_option correctly.
284
285 1993-05-25 David J. MacKenzie (djm@wiki.eng.umd.edu)
286
287 * xfns.c (x_figure_window_size): Make the default frame coords (0,0).
288
289 1993-05-25 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
290
291 * Version 19.8 released.
292
293 1993-05-25 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
294
295 * xfns.c: Clear out the old face stuff.
296 (x_face_table, n_faces, x_set_face, x_set_glyph, Fx_set_face_font,
297 Fx_set_face, Fx_get_face): Removed.
298 (syms_of_xfns): Remove defsubr for Fx_set_face.
299
300 Arrange for font names to get fully resolved - no wildcards.
301 * xfns.c (x_set_frame_parameters): Store the value in the frame
302 parameter alist before we call the setter function, so the setter
303 function can touch up the value if it chooses.
304 (x_set_foreground_color, x_set_background_color): Call
305 recompute_basic_faces, so their GC's will reflect the changes.
306 (x_new_font): Add extern declaration - this returns a Lisp_Object
307 now, the fully resolved font name.
308 (x_set_font): Accept the fully resolved name from x_new_font, and
309 put it in the frame's parameter alist. Call recompute_basic_faces.
310 * xterm.c (x_new_font): Return the fully resolved font name, Qnil
311 (if no match), or Qt (match, but unacceptable metrics).
312 * xterm.c (x_new_font): Don't call init_frame_faces.
313
314 * xterm.h: New section for declarations for xfaces.c.
315 (init_frame_faces, free_frame_faces, intern_face,
316 face_name_id_number, same_size_fonts, recompute_basic_faces,
317 compute_char_face, compute_glyph_face): Declare these here.
318 * xfaces.c (same_size_fonts): We can now remove this extern
319 declaration.
320 * xfns.c (face_name_id_number): Likewise.
321 * xterm.c (intern_face): Likewise.
322
323 * xterm.c (dumpglyphs): Remember that the default faces can have
324 null fonts, too.
325
326 * xfns.c (Fx_list_fonts): Remember that FACE may not have a font
327 specified. Don't specify 30000 as the maximum limit on the number
328 of fontns returned - 2000 is more reasonable.
329
330 * xfaces.c (build_face, unload_font, free_frame_faces): Don't
331 forget to block input while making X calls.
332
333 Treat faces as structures specifying modifications to the frame's
334 parameters, rather than things which need to specify a complete
335 set of parameters by themselves.
336 * xfaces.c (init_frame_faces): Don't set up the two frame display
337 faces by querying the GC - just leave all their fields blank, and
338 call recompute_basic_faces, letting build_face do the work of
339 consulting the frame when necessary.
340 (recompute_basic_faces): New function.
341 (compute_base_faces): New function for obtaining the "identity"
342 for compute_char_face and compute_glyph_face.
343 (compute_char_face, compute_glyph_face): Call it, instead of copying
344 FRAME_DEFAULT_FACE.
345 * xfns.c (x_make_gc): No need to call init_frame_faces here.
346
347 * xfaces.c (intern_frame_face): This can be static.
348
349 * dispextern.h (struct face): New field - `copy', to help us with
350 resource allocation.
351 * xfaces.c (free_frame_faces): Do free the first two faces; don't
352 free anything from a face that's a copy.
353 (intern_frame_face): Mark every face we intern as a copy; its
354 resources are actually a combination of the real faces.
355 (Fset_face_attribute_internal): No need to check if we're trying
356 to free one of the frame's GC's; they never enter into the
357 picture.
358
359 * casetab.c: Fix formatting, so as not to confuse etags.
360
361 * xfns.c (Fx_list_fonts): New function.
362 (face_name_id_number): Add extern declaration for this.
363 * xfaces.c (face_name_id_number): Make this externally visible,
364 and make the FRAME argument a FRAME_PTR, not a Lisp_Object.
365 (compute_char_face): Call face_name_id_number properly.
366
367 * xfaces.c (unload_color): Don't free the pixel for now.
368
369 * xfaces.c (merge_faces): You can't tell if a font is a
370 character-cell font or not by testing whether or not it has a
371 per_char table. They all do.
372 * xterm.c (x_new_font): Same deal.
373 * xfns.c (Fx_list_fonts): Same deal.
374
375 * m/iris4d.h: Dyke out the section which specifies how to get the
376 load average.
377
378 * paths.h (PATH_INFO): New path, to edited by the configuration
379 process.
380 * callproc.c (Vconfigure_info_directory): New variable, used
381 internally by build process.
382 (syms_of_callproc): DEFVAR it and initialize it.
383
384 * keyboard.c (Fcurrent_input_mode): Use XFASTINT to build the last
385 element of the return value, not XSETINT.
386
387 1993-05-24 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
388
389 Changes for OSF/1:
390 * mem-limits.h [__osf__ && (__mips || mips)]: #include
391 <sys/time.h> and <sys/resource.h>.
392 (get_lim_data): OSF wants a definition like BSD4_2's.
393 * s/osf1.h: #include "bsd4-3.h", not "s-bsd4-3.h".
394
395 * ymakefile (LIBX): Put LD_SWITCH_X_SITE before the libraries, so
396 it actually has an effect.
397
398 Some makes can't handle form feed characters in their makefiles.
399 * s/usg5-3.h: Remove form feed.
400 * s/template.h, m/template.h: Remove form feeds.
401
402 * xfns.c (select_visual): Include the screen number in the
403 template of things XGetVisualInfo must match.
404
405 1993-05-24 Richard Stallman (rms@mole.gnu.ai.mit.edu)
406
407 * s/dgux.h (NO_GET_LOAD_AVG): Test _M88KBCS_TARGET, not __GNUC__.
408
409 * xterm.c (XTread_socket, ConfigureNotify case):
410 Convert from parent window, not Emacs window.
411 (XTread_socket): Handle ReparentNotify events.
412
413 * m/i860.h: New file.
414
415 * keyboard.c (lispy_function_keys): Add kp-numlock. Fix kp-backspace.
416
417 1993-05-24 Thorsten Ohl (ohl@chico.harvard.edu)
418
419 * m/next.h (C_SWITCH_MACHINE): Definition deleted.
420
421 * lread.c: Don't #undef NULL.
422
423 1993-05-24 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
424
425 * buffer.c (Fmake_overlay): Put beg and end in the right order.
426 (Fmove_overlay): If beg and end are markers, make sure they're in
427 the right buffer.
428
429 1993-05-24 Richard Stallman (rms@mole.gnu.ai.mit.edu)
430
431 * keyboard.c (modify_event_symbol): If a name_table elt is null,
432 generate a name to use. Don't crash.
433
434 * fileio.c (Fread_file_name): If input is empty, do return the default
435 even if !insert_default_directory.
436
437 * xterm.c (XTread_socket): For ConfigureNotify event,
438 translate coordinates if send_event field is false
439 provided the x-coord value is not large.
440
441 1993-05-24 Richard Stallman (rms@mole.gnu.ai.mit.edu)
442
443 * s/irix4-0.h (NO_MATHERR): Defined.
444 * floatfns.c [NO_MATHERR]: Undef HAVE_MATHERR.
445
446 1993-05-24 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
447
448 * fileio.c (Ffile_writable_p): Pass XSTRING (foo)->data to
449 ro_fsys, not XSTRING (foo).
450
451 * xterm.c (x_new_font): Reject fonts with varying spacing. We
452 don't support them yet.
453 * xfns.c (x_set_font): Report the error message properly.
454
455 * xfns.c (Fx_parse_geometry): No need to call check_x here; it
456 doesn't interact with the server at all, and we need it in order
457 to create our first frame.
458
459 1993-05-24 Richard Stallman (rms@mole.gnu.ai.mit.edu)
460
461 * s/linux.h (HAVE_SETSID): Defined.
462 (HAVE_SOCKETS): Defined.
463
464 * process.c (create_process): Ignore retval from TIOCSTTY.
465 (sys_siglist) [LINUX]: Don't even declare it.
466
467 1993-05-24 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
468
469 * syssignal.h (sys_signal): Declare the second argument to have
470 type signal_handler_t. We're told this is necessary for Linux.
471
472 1993-05-24 Richard Stallman (rms@mole.gnu.ai.mit.edu)
473
474 * s/dgux.h (NO_GET_LOAD_AVG): Define, if __GNUC__.
475
476 1993-05-23 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
477
478 * s/hpux8.h (NO_SIOCTL_H): Defined.
479
480 1993-05-23 Richard Stallman (rms@mole.gnu.ai.mit.edu)
481
482 * s/linux.h (HAVE_DUP2, HAVE_ALLOCA_H): Deleted.
483
484 1993-05-23 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
485
486 * syssignal.h: Don't #include <signal.h>
487 * alloc.c: #include <signal.h>, but before "config.h".
488
489 1993-05-23 Richard Stallman (rms@mole.gnu.ai.mit.edu)
490
491 * xfaces.c (Fset_face_attribute_internal): Don't call unload_font
492 for the frame's own font.
493
494 * xfns.c (check_x): New function.
495 Call it in almost every Lisp function in this file.
496 (x_set_menu_bar_lines_1): Pass both args in recursive call.
497
498 1993-05-23 Paul Eggert (eggert@twinsun.com)
499
500 * editfns.c (Fcurrent_time_zone): Make `am' an int, not long.
501
502 1993-05-23 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
503
504 Changes for SGI from Matthew J Brown <mjb@doc.ic.ac.uk>.
505 * m/iris4d.h, m/iris5d.h: Don't use the --cckr CC switch if we're
506 using GCC.
507 * m/iris4d.h (NEED_SIOCTL): Move this to...
508 * s/irix3-3.h (NEED_SIOCTL): ... here; apparently it's not
509 necessary in irix4-0.h.
510 * s/irix4-0.h: Remove declaration of getpty; apparently Irix 4.0
511 already declares this elsewhere.
512 (PTY_TTY_NAME_SPRINTF): #undef this before re-#defining it.
513 * m/ibmps2-aix.h, m/pfa50.h, s/hpux.h, s/isc2-2.h, s/linux.h,
514 s/sco4.h, s/usg5-4.h: Remove HAVE_RENAME; configure guesses that now.
515
516 * config.h.in (LD_SWITCH_X_SITE, C_SWITCH_X_SITE): Change the
517 #defines to #undef's, so ../configure knows it should tweak them.
518
519 * xterm.c (x_scroll_bar_report_motion): Set *TIME whether or not
520 the mouse is over a scroll bar.
521
522 * xfaces.c (Fset_face_attribute_internal): Don't free the frame's
523 normal_gc or reverse_gc.
524
525 * keyboard.c (make_lispy_movement): Deal properly with mouse
526 motion outside of all windows.
527
528 * lisp.h (GLYPH_FACE): Remember that the face portion of a glyph
529 can be 24 bits, not just eight.
530
531 1993-05-23 Richard Stallman (rms@mole.gnu.ai.mit.edu)
532
533 * xterm.c: Move signal.h and stdio.h before config.h.
534
535 * editfns.c (Fcurrent_time_zone): Assign gmt, instead of init.
536
537 1993-05-22 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
538
539 * Version 19.7 released.
540
541 * Makefile.in (SUBMAKEFLAGS): Add CFLAGS to the list.
542
543 * puresize.h [not HAVE_X_WINDOWS] (PURESIZE): Make this 185k,
544 not 196k. We're actually using ~180k.
545
546 * editfns.c: #include <sys/types.h>, to get time_t for Eggert's
547 changes.
548
549 1993-05-22 Richard Stallman (rms@mole.gnu.ai.mit.edu)
550
551 * ymakefile (FRAME_SUPPORT): Add mouse.elc, select.elc, scroll-bar.elc.
552
553 * xdisp.c (display_text_line): Highlight in any frame's sel window.
554
555 * keyboard.c (modifier_names): Update to match *_modifier in termhooks.
556
557 1993-05-22 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
558
559 * xterm.c (x_scroll_bar_handle_click): Never grab the scroll bar;
560 that feature requires more support to work correctly.
561
562 * keyboard.c (make_ctrl_char): New function.
563 (read_char): Call it.
564 (kbd_buffer_store_event): Call it to see if the new character is
565 the quit or stop character.
566 (make_lispy_event): Call it.
567
568 1993-05-21 Richard Stallman (rms@mole.gnu.ai.mit.edu)
569
570 * xfns.c (x_window_to_frame): Use XGCTYPE.
571
572 1993-05-21 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
573
574 * process.c (Fopen_network_stream): Deal with older systems, which
575 only have the h_addr field in their struct hostent.
576
577 * systty.h [SYSV_PTYS]: #include <sys/types.h>. Francesco
578 Potorti` <pot@fly.CNUCE.CNR.IT> says it's necessary on his
579 machine, and it should be harmless.
580
581 1993-05-21 Richard Stallman (rms@mole.gnu.ai.mit.edu)
582
583 * sysdep.c (wait_for_termination): Copy code from 18.59
584 (but sans BSD4_1 alternatives).
585
586 1993-05-21 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
587
588 * ymakefile (alloca.o): #define malloc and free to be xmalloc and
589 xfree on the command line of this compilation.
590
591 * s/sco4.h: (TIME_WITH_SYS_TIME): This is no longer needed.
592
593 * s/linux.h: Remove copyright notices by Michael K. Johnson and
594 Rik Faith. They have both sent in papers now which make their
595 changes public domain.
596
597 * sysdep.c (sys_suspend): Set synch_process_alive, so that
598 wait_for_termination has something to wait for.
599
600 1993-05-21 Richard Stallman (rms@mole.gnu.ai.mit.edu)
601
602 * xdisp.c (display_text_line): Highlight only in selected window.
603
604 * xfns.c (syms_of_xfns): Don't make Lisp vars
605 x-mode-pointer-shape and x-nontext-pointer-shape.
606
607 1993-05-20 Ian Lance Taylor (ian@cygnus.com)
608
609 * s/sco4.h (SCO): Don't define (no longer needed).
610 (HAVE_SYS_TIME_H): Don't define (set by configure).
611 (TIME_WITH_SYS_TIME): Define.
612
613 1993-05-20 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
614
615 * dispnew.c (preserve_other_columns): Remember to multiply the
616 size argument to bcopy by the size of a glyph.
617
618 1993-05-20 Richard Stallman (rms@mole.gnu.ai.mit.edu)
619
620 * keyboard.c (read_key_sequence): Reexamine this_command
621 after pre-command-hook runs.
622
623 * xterm.c (x_find_modifier_meanings): If some keys are meta and alt,
624 make them just meta, not alt.
625
626 1993-05-19 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
627
628 Some time-handling patches from Paul Eggert:
629 * editfns.c (Fcurrent_time_zone): Take an optional argument specifying
630 what (absolute) time should be used to determine the current time zone.
631 Yield just offset and name of time zone, including DST correction.
632 Yield time zone offset in seconds, not minutes.
633 (lisp_time_argument, difftm): New functions.
634 (Fcurrent_time_string): Use lisp_time_argument.
635 * systime.h (EMACS_CURRENT_TIME_ZONE, EMACS_GET_TZ_OFFSET,
636 EMACS_GET_TZ_NAMES): Remove.
637 * config.h.in: Add HAVE_TM_ZONE.
638
639 Some more changes from Michael K. Johnson for Linux.
640 * s/template.h: Mention that you should #define HAVE_TERMIO or
641 HAVE_TERMIOS, but not both, and that HAVE_TERMIOS is preferred.
642 * systty.h (EMACS_SET_TTY_PGRP): Don't assign the return value of
643 tcsetpgrp to *pgid; it's just a status value.
644 * config.h.in (HAVE_RANDOM): This shouldn't be defined on Linux
645 systems using XFree386, and perhaps is inappropriate in general.
646 * m/intel386.h: #undefine the integer size macros, since the Linux
647 <values.h> file #defines them itself.
648 * mem-limits.h (get_lim_data): Linux has the ulimit call; if it
649 fails, fall back on ULIMIT_BREAK_VALUE.
650 * process.c: Linux needs the WAITTYPE, etc. definitions.
651 * unexec.c (hdr, ohdr): Linux has the ordinary `struct exec' type;
652 no need to use SYSV names.
653 * s/linux.h: New file.
654
655 Some changes from Michael K. Johnson for Linux.
656 * sysdep.c (sys_siglist): Don't define this if HAVE_SYS_SIGLIST is
657 #defined. That lets the system provide it, if it has it.
658 * syssignal.h (sigmask): Only define this if <signal.h> hasn't
659 given us a definition already.
660 * syssignal.h (sys_sigpause): Fix argument in prototype.
661 * sysdep.c (init_signals): The masks are called empty_mask and
662 full_mask, not signal_empty_mask and signal_full_mask.
663 (signal_handler_t): Moved ....
664 * syssignal.h: ... to here.
665 * systty.h (EMACS_SET_TTY_PGRP): Call tcsetpgrp with the correct
666 arguments.
667 * emacs.c (main): Don't try to establish signal handlers for
668 SIGBUS and SIGSYS unless they're actually #defined.
669
670 * systty.h [HAVE_TERMIO, __DGUX]: #include <sys/ioctl.h>.
671
672 * xdisp.c (redisplay_window): Compute the scrollbar start and end
673 properly.
674
675 1993-05-19 Richard Stallman (rms@mole.gnu.ai.mit.edu)
676
677 * keyboard.c (Fcurrent_input_mode): Return META as 3-way flag.
678
679 1993-05-19 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
680
681 * fileio.c (Ffind_file_name_handler): Check that FILENAME is a
682 string.
683
684 * process.c (wait_reading_process_input): Undo change of April
685 29th, since that re-introduces the race condition the comments are
686 warning about. Call clear_waiting_for_input before calling
687 status_notify, though.
688
689 * process.c (wait_reading_process_input): Don't forget to call
690 clear_waiting_for_input when we exit the loop because process
691 input has arrived.
692
693 Changes for Silicon Graphics Iris 5D.
694 * unexelfsgi.c: New file; like unexelf.c, but tolerates program
695 segments above BSS.
696 * m/iris5d.h: New file.
697 * s/irix5-0.h: New file.
698 * process.c [__sgi] (allocate_pty): Give up immediately if pty is
699 inaccessible.
700
701 1993-05-19 Richard Stallman (rms@mole.gnu.ai.mit.edu)
702
703 * keyboard.c (follow_key): Check char in range before UPPERCASEP.
704
705 1993-05-18 Richard Stallman (rms@mole.gnu.ai.mit.edu)
706
707 * xfns.c (x_set_menu_bar_lines): Fix typo in last change.
708
709 * keyboard.c (make_lispy_event): Controlify lower case letters too.
710
711 1993-05-18 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
712
713 * xdisp.c (display_text_line): If the newline (or C-m, in
714 selective-display) has a non-default face, apply that face to the
715 remainder of the line, so that the fill occupies the entire line.
716
717 * xterm.c (x_new_font): Tell the frame display faces about the
718 newly chosen font.
719
720 Make sure that all the display faces use fonts of the
721 same dimensions as the default face, so as not to confuse the rest
722 of the redisplay code.
723 * xfaces.c (same_size_fonts): New function.
724 (merge_faces): Only merge in a new font from the FROM face if it
725 is the same size as the font in the TO face.
726
727 * xfns.c (x_set_menu_bar_lines): Minibuffer-only frames can't have
728 menu bars.
729
730 * keyboard.c (read_key_sequence): Don't lay down an unwind_protect
731 to restore the original buffer until we actually get a mouse click.
732
733 * window.c (window-dedicated-p): Doc fix.
734
735 1993-05-18 Richard Stallman (rms@mole.gnu.ai.mit.edu)
736
737 * xterm.c (XTread_socket): Turn off ControlMask for XLookupString.
738 * keyboard.c (make_lispy_event): Controlify here.
739
740 1993-05-17 Jim Blandy (jimb@totoro.cs.oberlin.edu)
741
742 * xdisp.c (redisplay_window): Make the scrollbar reflect the
743 extent of the visible region, not the whole buffer.
744
745 * xfaces.c (free_frame_faces): Don't free the resources from the
746 first two faces.
747
748 * lisp.h (malloc, realloc): Declare these to return void *, to
749 avoid conflicts with ANSI header files.
750
751 * sysdep.c (reset_sys_modes): Test the return value of
752 EMACS_SET_TTY properly.
753 * systty.h (EMACS_GET_TTY, EMACS_SET_TTY): Document the return
754 values.
755
756 1993-05-16 Jim Blandy (jimb@totoro.cs.oberlin.edu)
757
758 * config.h.in (STDC_HEADERS, TIME_WITH_SYS_TIME,
759 CRAY_STACKSEG_END, STACK_DIRECTION): Add #undef clauses for these,
760 since otherwise the autoconf tests in configure.in won't do us
761 much good.
762
763 1993-05-16 Richard Stallman (rms@mole.gnu.ai.mit.edu)
764
765 * buffer.c (overlays_at): New arg EXTEND.
766 (Foverlays_at, Fnext_overlay_change): Pass 1.
767 * xfaces.c (compute_char_face): Pass 0.
768 Try first with small overlay_vec, then use a big enough one.
769
770 * lread.c (syms_of_lread): Make Vcurrent_load_list ordinary Lisp var.
771 Set up Qcurrent_load_list.
772 (readevalloop): Specbind Qcurrent_load_list instead of ad-hoc saving.
773 (build_load_history): Do nothing when loading pure files.
774
775 * xterm.c (dumpglyphs): Create a temporary merged gc
776 when cursor falls on char with non-default face.
777
778 * xterm.h (x_display): New field cursor_foreground_pixel.
779 * xfns.c (x_set_cursor_color): Set cursor_foreground_pixel.
780
781 * casefiddle.c (casify_region): Remove mistaken arg to record_change.
782
783 1993-05-15 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
784
785 * xfaces.c (Fset_face_attribute_internal): Jolt redisplay, so it
786 knows something has changed.
787
788 * xfaces.c (unload_color): Don't try to unload the standard black
789 or white pixel.
790
791 More changes from David Mackenzie.
792 * ymakefile (emacs): No need to edit srcdir into a lisp file and
793 then load it; we can just take advantage of the PATH_DUMPLOADSEARCH.
794 (crt0.o): Remember that crt0.c is in ${srcdir}.
795
796 Install David Mackenzie's patches to make ${srcdir} work.
797 * Makefile.in (srcdir, VPATH): Get this value from the top-level
798 Makefile.
799 (xmakefile): Use ${srcdir} to find the files from which we produce
800 xmakefile. Edit the values for srcdir and VPATH into xmakefile.
801 * ymakefile (srcdir, VPATH): New definitions for the Makefile
802 to edit.
803 (ALL_CFLAGS): Remove `-Is' and `-Im'; add `-I${srcdir}', and
804 `-I.'.
805 (emacs): Adjust dumping commands to deal with a separate source
806 directory.
807 (${etc}DOC): Pass `-d ${srcdir}' to make-docfile, to tell it where
808 to find the source files.
809 (prefix-args): Find the source code in ${srcdir}.
810
811 * process.c (wait_reading_process_input): If we're running
812 Solaris, it's not necessary to check if we should redeliver SIGIO,
813 according to David Mackenzie.
814 * s/sol2.h: #include "usg5-4.h", and #define const.
815
816 * systime.h: Borrow CPP sequence from getdate.y to include the
817 proper combination of <time.h> and <sys/time.h>.
818
819 1993-05-15 Richard Stallman (rms@mole.gnu.ai.mit.edu)
820
821 * window.h (struct window): New slot region_showing.
822 * xdisp.c (mark_window_display_accurate): Set region_showing fields.
823 (redisplay_window): Update region_showing field.
824 (display_text_line): Set region_showing to t if will show one.
825
826 * xselect.c (Fx_selection_exists_p): Handle nil, t as SELECTION arg.
827 Don't die if SELECTION is not recognized.
828
829 * dispnew.c (direct_output_forward_char): Just give up
830 if region is being highlighted.
831
832 * xdisp.c (redisplay, redisplay_window): Don't use the cursor-motion
833 special-case code if the region is or was highlighted.
834
835 * xfaces.c (compute_char_face): New args REGION_BEG, REGION_END.
836 Don't sort if noverlays is 0 or 1.
837
838 * dispnew.c (direct_output_for_insert): Pass those args.
839 * xdisp.c (display_text_line): Pass those args,
840 describing the region if the mark is transient and active.
841
842 1993-05-14 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
843
844 * buffer.c (Fmove_overlay): If the overlay is in no buffer and the
845 BUFFER argument has been omitted, put it in the current buffer,
846 for symmetry with move-marker.
847
848 * buffer.c (Fdelete_overlay): Make the overlay's markers point
849 nowhere, not at 1. Do this after calling redisplay_region, so
850 that code knows what section has changed.
851
852 1993-05-14 Richard Stallman (rms@mole.gnu.ai.mit.edu)
853
854 * xdisp.c (display_menu_bar): Update FRAME_MENU_BAR_ITEMS here.
855 * keyboard.c (command_loop_1): Don't do it here.
856
857 * keymap.c (access_keymap): Handle any length vector.
858 (store_in_keymap): Likewise.
859 (Fcopy_keymap): Likewise.
860
861 1993-05-14 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
862
863 * buffer.c (Foverlay_start, Foverlay_end, Foverlay_buffer,
864 Foverlay_properties): Functions moved here from subr.el.
865
866 1993-05-13 Jim Blandy (jimb@totoro.cs.oberlin.edu)
867
868 * xfaces.c (compute_char_face): When merging the overlays,
869 traverse sortvec, not overlay_vec; the latter isn't the one we
870 sorted.
871
872 * xterm.c (dumpglyphs): Give the cursor higher priority than the
873 face specified by the glyph under it.
874
875 * xterm.c (dumpglyphs): Move the underline up a row. I dislike
876 the way X addresses pixels. Quickdraw is much nicer.
877
878 * xfaces.c (intern_face): If the face has a GC, but it's not the
879 default or modeline face, abort. Nothing but those two faces
880 should have a GC *and* be passed to intern_face.
881 (compute_char_face, compute_glyph_face): After copying
882 the frame's default face into face, to use as a base case for
883 calculation, set the `gc' member to zero; that way we don't have
884 things lying around that look like display faces but aren't.
885
886 * xfaces.c (intern_frame_face): When copying the new face into the
887 frame's face array, remember that the number of bytes to copy is
888 sizeof (*new_face), not sizeof (new_face).
889
890 * xfaces.c (compute_char_face): Assume that W is displaying the
891 current buffer. Abort if it isn't.
892
893 * lisp.h (Lisp_Overlay): New tag.
894 (OVERLAYP): New predicate.
895 (CHECK_OVERLAY): New type-checker.
896 (Qoverlayp): New extern declaration.
897 * buffer.c (Foverlayp): New function.
898 (Qoverlayp): New atom.
899 (overlays_at, recenter_overlay_lists): Abort if we encounter an
900 invalid overlay.
901 (syms_of_buffer): defsubr Soverlayp; initialize Qoverlayp.
902 (Fdelete_overlay): Set the overlay's markers to point nowhere.
903 Use CHECK_OVERLAY instead of signalling a special error.
904 (Fmove_overlay, Foverlay_put): Use CHECK_OVERLAY instead of
905 signalling a special error.
906 (Foverlay_get): Use CHECK_OVERLAY.
907 * fns.c (internal_equal): Define this for overlays.
908 * buffer.h (OVERLAY_VALID): Define in terms of OVERLAYP.
909 * print.c (print): Give overlays their own print syntax.
910 * alloc.c (mark_object): Treat overlays like conses.
911
912 * lisp.h (FLOATP): Define this appropriately when LISP_FLOAT_TYPE
913 is not defined.
914
915 * buffer.c (Foverlay_get): Return Qnil if the requested property
916 is missing from the property list.
917
918 The text property routines can now modify buffers other
919 than the current one.
920 * insdel.c (modify_region): New argument BUFFER. Select that
921 buffer while we prepare for the modification, and switch back when
922 we're done.
923 * textprop.c (add_properties, remove_properties): Pass
924 the buffer being modified as the first argument to modify_region.
925 * editfns.c (Fsubst_char_in_region, Ftranslate_region): Pass the
926 current_buffer as the first argument to modify_region.
927 * casefiddle.c (casify_region): Same.
928
929 * dispnew.c (direct_output_for_insert): Compute the face of the
930 character we're inserting properly.
931
932 * xterm.c (dumpglyphs): Pass the proper arguments to intern_face.
933
934 * xterm.c (dumpglyphs): Don't increment left twice.
935
936 * intervals.c (set_point): Check for point out of bounds before
937 checking for an empty interval tree.
938
939 * cmds.c (Fforward_char): Check proposed new position, and then
940 set point, instead of setting point to a potentially invalid
941 position.
942
943 * lread.c, data.c: If STDC_HEADERS is #defined, include <stdlib.h>
944 to get the extern declarations for atof. That's where it is in
945 POSIX.
946
947 1993-05-12 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
948
949 * ymakefile (xfaces.o): Add window.h to the dependencies.
950
951 * xfaces.c (intern_frame_face): Exchange order of arguments, to
952 make callers correct.
953
954 * xfaces.c (compute_char_face): Notice the next property change
955 location correctly.
956
957 * xfaces.c (face_name_id_number): Return 0 (the default face) if
958 the name is undefined.
959
960 * xfaces.c (Fset_face_attribute_internal): Do nothing unless FRAME
961 is an X frame.
962
963 * xdisp.c (copy_rope, copy_part_of_rope): Add face argument.
964 (display_text_line): Initialize current_face to zero. Apply it
965 to characters as we write them to the display matrix.
966 (display_string): Pass the new argument to copy_rope.
967
968 * xdisp.c (display_text_line): Handle the locations of face
969 changes properly.
970
971 * textprop.c (Fnext_single_property_change,
972 Fprevious_single_property_change): Pass arguments to textget in
973 the right order.
974
975 * ymakefile (xfns.o): Remove duplication of buffer.h in dependencies.
976
977 * ymakefile ($(OLDXMENU)): Remove extraneous call to `rm'.
978
979 1993-05-12 Richard Stallman (rms@mole.gnu.ai.mit.edu)
980
981 * keymap.c (Faccessible_keymaps): Use whatever size the vector has.
982 (Fwhere_is_internal): Likewise.
983 (describe_vector): Likewise.
984 (current_minor_maps): Call Findirect_function, so symbols
985 can be used in place of actual maps.
986
987 * xdisp.c (display_text_line): Use break; to exit loop at eol.
988 Duplicate the short MAKE_GLYPH loop after the main loop.
989 If no display table, do obey selective_display_ellipses.
990 (copy_part_of_rope): Arg FROM is now Lisp_Object *.
991
992 * xfaces.c: Do include window.h.
993 (compute_char_face): Supply third arg of Fget_text_property.
994
995 * keyboard.c (make_lispy_event): Don't set shift modifier for C-^.
996
997 * callproc.c (child_setup): Omit duplicates from new env array.
998
999 1993-05-10 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
1000
1001 * fileio.c (ro_fsys) [SOLARIS_BROKEN_ACCESS]: Check for the
1002 filesystem being ro, since Solaris 2.1 doesn't.
1003 (file-writable-p): Call ro_fsys.
1004 * s/sol2.h (SOLARIS_BROKEN_ACCESS): Define this.
1005
1006 * systime.h: Use the strategy from getdate.y to include the proper
1007 combination of <time.h> and <sys/time.h>.
1008
1009 * xfns.c (Fx_create_frame): Use an XLFD name for the default font,
1010 instead of "9x15" or whatever it was.
1011
1012 * xdisp.c (display_text_line): Make face-handling code conditional
1013 on HAVE_X_WINDOWS macro. Perhaps this isn't the best approach,
1014 but it'll do for now.
1015
1016 * xdisp.c (display_text_line): We can't use the FRAME_DEFAULT_FACE
1017 macro here; that's x-specific. Just don't pass the second
1018 argument.
1019 * xfaces.c (compute_glyph_face): Remove the BASIC_FACE argument;
1020 use F's default face.
1021
1022 1993-05-09 Jim Blandy (jimb@totoro.cs.oberlin.edu)
1023
1024 * xfaces.c (Fmake_face_internal): Do nothing for non-X frames.
1025
1026 * dispextern.h (struct face): Add cached_index member.
1027 * xfaces.c (get_cached_face): Use it to avoid unnecessary
1028 searches of face_vector.
1029
1030 * xfaces.c (intern_face): Renamed from get_display_face.
1031
1032 * xfns.c (x_make_gc): After building the GC's for the frame, call
1033 init_frame_faces to set up the first two faces.
1034 * xfaces.c (init_frame_faces): Don't just try to copy the default
1035 and mode line faces from some other random frame; instead, consult
1036 the normal_gc and reverse_gc members of the frame, and build the
1037 faces based on their parameters.
1038
1039 Adjust the face computation functions to return frame face ID's,
1040 not pointers to display faces; since we call these functions
1041 during display construction, we don't want the display faces yet.
1042 * xfaces.c (intern_frame_face): New function.
1043 (compute_char_face, compute_glyph_face): Apply intern_frame_face
1044 to the computed face, and return the frame face's ID, instead of
1045 calling intern_face and returning a pointer to a display frame.
1046
1047 * xfaces.c: Describe the facial data structures. It took me a
1048 while to figure them out; perhaps this will save someone else the
1049 trouble.
1050
1051 Arrange to tell redisplay about changes in overlays.
1052 * xdisp.c (redisplay_region): New function.
1053 * buffer.c (Fmove_overlay): Call redisplay_region on the areas the
1054 overlay has enclosed or left.
1055 (Fdelete_overlay): Call redisplay_region on the area the overlay
1056 used to occupy.
1057 (Foverlay_put): Call redisplay_region on the area the overlay now
1058 occupies; we may have put a face property on it.
1059
1060 * buffer.c (Fmove_overlay): Doc fix.
1061
1062 * xdisp.c (redisplay): If we're doing a thorough redisplay (all
1063 windows on all frames involved), go ahead and flush the GC cache -
1064 call clear_face_vector.
1065
1066 * xdisp.c (display_text_line): Apply faces to characters
1067 according to overlays and text properties; use
1068 compute_char_face and compute_glyph_face to figure out what
1069 face to use, and where a new face starts.
1070 * xterm.c (dumpglyphs): Use the upper bits of the glyphs to decide
1071 which frame face to use. Call GLYPH_FOLLOW_ALIASES to make sure
1072 we're implementing the glyph table properly. If we're not using
1073 the default or mode line face, call intern_face to find a display
1074 face for the frame face selected by the glyph code. Implement
1075 underlining. Remove the `font' argument; we have to derive this
1076 from the frame and face anyway. Change all callers.
1077 * disptab.h (GLYPH_FOLLOW_ALIASES): New macro.
1078
1079 * xterm.c (x_destroy_window): Call free_frame_faces.
1080
1081 The GNU coding standards specify that CFLAGS should be left for
1082 users to set.
1083 * ymakefile (ALL_CFLAGS): Set this to the long string of
1084 compilation switches, not CFLAGS. Changed all uses.
1085 (CFLAGS): Make this default to just -g.
1086 (.c.o): Define new default rule, to make sure that the right flags
1087 get to the compilations.
1088
1089 1993-05-09 Richard Stallman (rms@mole.gnu.ai.mit.edu)
1090
1091 * keyboard.c (read_char): Exit kbd macro if Vexecuting_macro is t.
1092
1093 * pwd.h: File deleted.
1094
1095 1993-05-08 Jim Blandy (jimb@totoro.cs.oberlin.edu)
1096
1097 * s/sunos4shr.h: Apply changes from David J. Mackenzie; this isn't
1098 used by any configuration right now, but he's trying to make it
1099 work.
1100 #include "sunos4-1.h" instead of "bsd4-2.h".
1101 (O_NDELAY): Don't define this.
1102 (SYSTEM_MALLOC): Don't define this, either.
1103 (LD_SWITCH_SYSTEM): Remove the definition for this.
1104
1105 * Makefile.in (DEFS): Remove this; we have configure build a
1106 config.h file directly, instead of having lots of -D flags.
1107
1108 * Makefile.in (CFLAGS): Don't make this carry DEFS from the
1109 configure script; the coding standards say that CFLAGS should be
1110 left for the user to tweak.
1111
1112 1993-05-08 Richard Stallman (rms@mole.gnu.ai.mit.edu)
1113
1114 * keyboard.c (do_mouse_tracking): Now static.
1115
1116 * xmenu.c (Fx_popup_menu): Add a vector of prefix keys for the panes.
1117 (keymap_panes): Allocate that vector.
1118 (single_keymap_panes): Fill in that vector.
1119 (xmenu_show): Return a list of events, not just one event.
1120
1121 * keyboard.c (read_char_menu_prompt): Expect Fx_popup_menu
1122 to return a list of events. Don't lose any of them.
1123
1124 * xfns.c (Fx_get_mouse_event, Fx_mouse_events): Code deleted.
1125 * window.c (Vmouse_event): Var deleted.
1126 (syms_of_window): Don't make it a Lisp var.
1127
1128 * keyboard.c (read_avail_input, Fset_input_mode): Make
1129 meta_key a three-value variable to support 8-bit input.
1130
1131 1993-05-07 Jim Blandy (jimb@totoro.cs.oberlin.edu)
1132
1133 * ymakefile [__GNUC__ && __GNUC__ > 1] (LIB_GCC): Set this even if
1134 LINKER is #defined.
1135
1136 * ymakefile ($(OLDXMENU)): Remove the link before we re-create it;
1137 not all versions of ln have the `-f' flag. Use the LN_S variable,
1138 inherited from src/Makefile.
1139
1140 * Makefile.in (LN_S): New variable, edited by top Makefile.
1141 (SUBMAKEFILE): New variable, containing all flags to pass to
1142 recursive makes.
1143
1144 * config.h.in: Adjust this for use by autoconf's AC_CONFIG_HEADER,
1145 instead of AC_OUTPUT.
1146
1147 * xfaces.c (get_display_face): Use face_eql instead of writing it out.
1148
1149 1993-05-06 Jim Blandy (jimb@totoro.cs.oberlin.edu)
1150
1151 * keymap.c (Fwhere_is_internal): If FIRSTONLY is non-nil, avoid
1152 returning a non-ascii key sequence unless FIRSTONLY is the symbol
1153 `non-ascii'.
1154
1155 * config.h.in: Remove mention of GLYPH datatype; that shouldn't be
1156 a user option.
1157 * lisp.h (GLYPH, MAKE_GLYPH, GLYPH_CHAR, GLYPH_FACE): New macros.
1158
1159 1993-05-06 Richard Stallman (rms@mole.gnu.ai.mit.edu)
1160
1161 * xfns.c (x_get_arg): Call Fintern, not intern.
1162
1163 * systime.h [SCO]: Include time.h.
1164 * s/sco4.h: New file.
1165
1166 * ymakefile (LIBXMENU): Delete -loldX.
1167
1168 * emacs.c (main): Handle -display like -d.
1169
1170 1993-05-05 Jim Blandy (jimb@totoro.cs.oberlin.edu)
1171
1172 * s/template.h: Explain the relative significance of the SIGIO and
1173 INTERRUPT_INPUT macros.
1174
1175 * ymakefile (buffer.o, insdel.o): Note that these files also
1176 depend on blockinput.h.
1177
1178 * blockinput.h (UNBLOCK_INPUT): We cannot assume that SIGIO is
1179 defined everywhere this file is #included; merge the two
1180 definitions for defined (SIGIO) and ! defined (SIGIO) into one,
1181 which calls reinvoke_input_signal if interrupt_input_pending is
1182 set.
1183 * keyboard.c (reinvoke_input_signal): New function.
1184
1185 1993-05-04 Richard Stallman (rms@mole.gnu.ai.mit.edu)
1186
1187 * window.c (Fdisplay_buffer): Add space to prompt.
1188
1189 1993-05-04 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
1190
1191 * keyboard.c (syms_of_keyboard): Doc fix for
1192 extra-keyboard-modifiers.
1193
1194 * lisp.h (CHAR_ALT, CHAR_SUPER, CHAR_HYPER, CHAR_SHIFT, CHAR_CTL,
1195 CHAR_META): Shift these all up one bit, back to where they were.
1196
1197 1993-05-02 Jim Blandy (jimb@totoro.cs.oberlin.edu)
1198
1199 * keymap.c (Fdefine_prefix_command): Doc fix.
1200
1201 * ymakefile (C_DEBUG_SWITCH): Undo April 10 change.
1202
1203 1993-05-01 Richard Stallman (rms@mole.gnu.ai.mit.edu)
1204
1205 * keyboard.c (Fsuspend_emacs): Doc fix.
1206
1207 1993-04-30 Jim Blandy (jimb@totoro.cs.oberlin.edu)
1208
1209 * data.c (Ffset): Refuse to set the function value of t or nil.
1210
1211 1993-04-29 Jim Blandy (jimb@totoro.cs.oberlin.edu)
1212
1213 Implement extra_keyboard_modifiers properly.
1214 * keyboard.c (syms_of_keyboard): Doc fix for
1215 extra-keyboard-modifiers; use the same modifier bits as we do for
1216 characters.
1217 (read_char): Apply all the modifiers in extra_keyboard_modifiers
1218 to the input characters, so you can get hyper, super, and the rest
1219 of the gang.
1220 * xterm.c (x_emacs_to_x_modifiers): New function.
1221 (x_convert_modifiers): Renamed to x_x_to_emacs_modifiers, for
1222 consistency. Callers changed.
1223 (XTread_socket): Apply x_emacs_to_x_modifiers to
1224 extra_keyboard_modifiers before setting the state member of the
1225 event; this will get all the modifiers on ASCII characters.
1226
1227 * xterm.c (x_text_icon): Don't call XSetIconName; it should be
1228 unnecessary, and perhaps it's killing the icon pixmap.
1229
1230 * lisp.h (CHAR_ALT, CHAR_SUPER, CHAR_HYPER): New constants, in
1231 case we need them.
1232 * termhooks.h (alt_modifier, super_modifier, hyper_modifier,
1233 shift_modifier, ctrl_modifier, meta_modifier): Define these in
1234 terms of the CHAR_mumble macros, to avoid having the same thing
1235 defined in two places.
1236
1237 * keyboard.c (kbd_buffer_get_event): Don't generate switch-frame
1238 events if they'd only switch to the frame already selected. This
1239 avoids lots of extra switch-frame events when using a separate
1240 minibuffer.
1241
1242 1993-04-29 Richard Stallman (rms@mole.gnu.ai.mit.edu)
1243
1244 * keyboard.c (Fthis_command_keys): Doc fix.
1245
1246 * process.c (wait_reading_process_input): Move the status_notify
1247 call before the set_waiting_for_input call.
1248
1249 * fileio.c (Fexpand_file_name): Undo last change--too risky for now.
1250
1251 * data.c (Fdefine_function): New function (same code as Fdefalias).
1252
1253 1993-04-28 Eric S. Raymond (eric@mole.gnu.ai.mit.edu)
1254
1255 * eval.c (do_autoload): Fixed the bug in the autoload-saving code.
1256
1257 1993-04-28 Jim Blandy (jimb@totoro.cs.oberlin.edu)
1258
1259 * keyboard.c (Fcurrent_input_mode): New function.
1260
1261 1993-04-27 Eric S. Raymond (eric@mole.gnu.ai.mit.edu)
1262
1263 * eval.c (un_autoload): Don't try to save old autoload forms when
1264 we load something in. Something about the code now conditioned
1265 out by UNLOAD was screwing up ordinary autoloads, notably of
1266 picture.el. When I figure out what, I'll fix and re-enable this
1267 code.
1268
1269 1993-04-27 Jim Blandy (jimb@totoro.cs.oberlin.edu)
1270
1271 * buffer.c (syms_of_buffer): Doc fix for buffer-display-table.
1272
1273 * systime.h: Doc fix.
1274 (EMACS_SET_USECS): Remember that a `usec' is a microsecond, not a
1275 millisecond. What's three orders of magnitude between friends?
1276 * dispnew.c (Fsit_for, Fsleep_for): Remember to multiply the
1277 `milliseconds' argument by 1000 to get microseconds.
1278
1279 1993-04-26 Roland McGrath (roland@geech.gnu.ai.mit.edu)
1280
1281 * fileio.c (Fexpand_file_name):
1282 Don't remove trailing / from NEWDIR if just "/".
1283
1284 1993-04-26 Jim Blandy (jimb@totoro.cs.oberlin.edu)
1285
1286 * m/ibmps2-aix.h, m/ibmrs6000.h, m/ibmrt-aix.h, m/mips.h,
1287 m/sps7.h, s/hpux.h, s/usg5-4.h (HAVE_DUP2): Removed; derived by
1288 configure script.
1289 * s/hpux.h, s/irix3-3.h, s/aix3-1.h (HAVE_GETHOSTNAME): Removed;
1290 derived by configure script.
1291
1292 Arrange for Fy_or_n_p to put off switch-frame events.
1293 * lread.c (read_filtered_char): New function, which contains the
1294 code which used to be in Fread_char, Fread_event, and
1295 Fread_char_exclusive; there was a lot of common code.
1296 (Fread_char, Fread_event, Fread_char_exclusive): Rewrite in terms
1297 of read_filtered_char.
1298 * lisp.h (read_filtered_char): Declare this extern here.
1299 * fns.c (Fy_or_n_p): Call read_filtered_char, arranging to delay
1300 switch-frame events.
1301
1302 * keyboard.c (read_key_sequence): Let the `modifiers' variable in
1303 the code which deals with KEY being unbound be an int, not a
1304 Lisp_Object.
1305
1306 * config.h.in (getenv): Don't test THIS_IS_YMAKEFILE to see if we
1307 should exclude the getenv declaration; instead, test NOT_C_CODE.
1308 Per suggestion from Francesco Potorti`.
1309 * ymakefile (NOT_C_CODE): Define this; it's true, and useful.
1310
1311 * dispnew.c (Fsleep_for, Fsit_for): Allow SECONDS to be a
1312 floating point value.
1313
1314 1993-04-26 Eric S. Raymond (eric@mole.gnu.ai.mit.edu)
1315
1316 * sysdep.c (read_pending_input):
1317 Fix the garbaged-modifiers bug under System Vs previous
1318 to r4.
1319
1320 1993-04-25 Jim Blandy (jimb@totoro.cs.oberlin.edu)
1321
1322 * systty.h (EMACS_GET_TTY, EMACS_SET_TTY): Move these into
1323 functions in sysdep.c.
1324 * sysdep.c (emacs_get_tty, emacs_set_tty): Here they are.
1325
1326 * sysdep.c (emacs_set_tty): Call tcsetattr over and over again
1327 until it does all of what we ask it to, or returns an error.
1328
1329 * search.c (Freplace_match): Arrange for markers sitting at the
1330 beginning or end of the original text to float to the
1331 corresponding position in the replacement text.
1332
1333 1993-04-25 Eric S. Raymond (eric@mole.gnu.ai.mit.edu)
1334
1335 * window.c (Fset-window-buffer):
1336 Set horizontal-scrolling on a window to zero when
1337 we connect it to a new buffer.
1338
1339 * buffer.c: Doc fix.
1340
1341 1993-04-24 Jim Blandy (jimb@totoro.cs.oberlin.edu)
1342
1343 Make the modifier manipulation functions more robust. The old way
1344 caused a bug once, and probably would again.
1345 * termhooks.h (alt_modifier, super_modifier, hyper_modifier,
1346 shift_modifier, ctrl_modifier, meta_modifier): Shift these all
1347 down one bit in value, to avoid sign extension problems.
1348 * lisp.h (CHAR_META, CHAR_CTL, CHAR_SHIFT): Fix these definitions too.
1349 * keyboard.c (lispy_modifier_list): Ignore modifier bits beyond
1350 what our table of modifier names can handle.
1351 (apply_modifiers): Don't abort if you see extra modifier bits,
1352 just remove them.
1353
1354 1993-04-23 Eric S. Raymond (eric@mole.gnu.ai.mit.edu)
1355
1356 * data.c (Fdefine_function):
1357 Changed name back to Fdefalias, so we get things
1358 in a known-good state.
1359
1360 * buffer.h (BUF_NARROWED, NARROWED):
1361 New macros to test whether a region
1362 restriction has narrowed the buffer.
1363
1364 1993-04-17 Richard Stallman (rms@mole.gnu.ai.mit.edu)
1365
1366 * systime.h: Comment fixes.
1367
1368 * data.c (Fdefine_function): New function.
1369
1370 * lisp.h (LOADHIST_ATTACH): New macro.
1371 (Vcurrent_load_list, Vload_history): Vars declared.
1372
1373 * eval.c: (defun, defmacro, defvar, defconst):
1374 Attach symbol argument to the list of globals for the input source.
1375 (do_autoload): Save the old autoloads, in case we ever unload.
1376
1377 * fns.c (provide, require): Put appropriately-marked
1378 conses in the current-globals list.
1379
1380 * lread.c (readevalloop):
1381 New argument is the source file name (or nil if none).
1382 All calls changed. Do the two-step
1383 necessary to call build_load_history with the correct current-globals
1384 list for the current recursion.
1385 (build_load_history): New function.
1386 (eval_region, eval_buffer): Call readevalloop with new arg.
1387 (load_history): New variable.
1388
1389 1993-04-16 Eric S. Raymond (eric@mole.gnu.ai.mit.edu)
1390
1391 * lread.c (readevalloop): New argument is the source file name (or
1392 nil if none). All calls changed. Do the two-step
1393 necessary to call build_load_history with the correct current-globals
1394 list for the current recursion.
1395 (build_load_history): New function.
1396 (Feval_region, Feval_buffer): Call readevalloop with new arg.
1397 (Vload_history): New variable.
1398
1399 * fns.c (Fprovide, Frequire): Put appropriately-marked
1400 conses in the current-globals list.
1401
1402 * eval.c (Fdefun, Fdefmacro, Fdefvar, Fdefconst):
1403 Attach symbol argument to the list of globals for the input source.
1404 (do_autoload): Save the old autoloads, in case we ever unload.
1405
1406 * data.c (Fdefine_function): New function.
1407
1408 1993-04-16 Jim Blandy (jimb@totoro.cs.oberlin.edu)
1409
1410 * fileio.c (Fmake_symbolic_link): If a file already exists under
1411 the link's filename, delete the file which the link
1412 would replace, not the file the link would point at.
1413
1414 * config.h.in (volatile): Don't define this to be the empty string
1415 if some file has #defined HAVE_VOLATILE.
1416
1417 * emacs.c (SEPCHAR): Instead of defining this to be ',' on VMS and
1418 ':' elsewhere, just have it default to ':' if not #defined, and
1419 #define it to be ',' in s/vms.h; OS/2 will need it to be ';'.
1420 * s/vms.h (SEPCHAR): #define this to be ','.
1421 * s/template.h (SEPCHAR): Mention this.
1422
1423 1993-04-13 Jim Blandy (jimb@totoro.cs.oberlin.edu)
1424
1425 * s/vms.h (xfree): #define this to emacs_xfree, to avoid case
1426 conflict with XFree; on VMS, external symbols are case-insensitive.
1427
1428 * s/usg5-4.h (HAVE_GETTIMEOFDAY): Deleted; ../configure figures
1429 that out now.
1430
1431 Changes for Emacs 19 from Thorsten Ohl <ohl@chico.harvard.edu>:
1432 * s/mach2.h: copied from the Emacs 18.59 distribution.
1433 Don't define NO_REMAP, define START_FILES as
1434 `pre-crt0.o' instead. Define LIB_MATH as `-lm', to override the
1435 default `-lm -lc' (there is no libc on the NeXT).
1436 * ymakefile (STARTFILES): Allow config.h to set this value even if
1437 ORDINARY_LINK is defined.
1438 * unexnext.c: Fix subdirectories for the machine dependent include
1439 files for NeXTStep 3.0; #include <mach/mach.h> and
1440 <mach-o/loader.h> instead of <mach.h> and <sys/loader.h>.
1441 (getsectbyname): Remove prototype for this; the system #include
1442 files take care of that.
1443 (malloc_cookie): New variable.
1444 (unexec_doit): Set malloc_cookie to the result returned by
1445 malloc_freezedry.
1446 * emacs.c (main): Declare malloc_cookie to be extern, so that we can
1447 get the value set when we dumped and pass it to malloc_jumpstart.
1448 * systime.h: The NeXT has a timezone function.
1449
1450 1993-04-12 Jim Blandy (jimb@totoro.cs.oberlin.edu)
1451
1452 * ymakefile ($(OLDXMENU)): Remove $(OLDXMENU) before trying to
1453 link in a new version.
1454
1455 * lisp.h (Qrange_error, Qdomain_error, Qsingularity_error,
1456 Qoverflow_error, Qunderflow_error): Add extern to these declarations.
1457
1458 1993-04-12 Richard Stallman (rms@mole.gnu.ai.mit.edu)
1459
1460 * xfaces.c: Don't include Xmu/Drawing.h.
1461
1462 1993-04-10 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
1463
1464 * Makefile.in (xmakefile): Recognize the -O option with a numeric
1465 optimization level.
1466
1467 * ymakefile (C_DEBUG_SWITCH): If we're using version 2 of GCC or
1468 higher, use -O99 instead of plain -O.
1469
1470 1993-04-09 Jim Blandy (jimb@totoro.cs.oberlin.edu)
1471
1472 * keyboard.c (command_loop_1): Rebuild menu bar if
1473 update_mode_lines is set.
1474
1475 long_to_cons and cons_to_long are generally useful things; they're
1476 needed whether or not X is defined.
1477 * xselect.c (long_to_cons, cons_to_long): Moved from here...
1478 * data.c (long_to_cons, cons_to_long): ... to here.
1479 * lisp.h (long_to_cons, cons_to_long): Add extern declaration.
1480
1481 * xmenu.c (Qmenu_enable): Definition moved...
1482 (syms_of_xmenu): ... along with initialization ...
1483 * keyboard.c (Qmenu_enable): ... to here ...
1484 (syms_of_keyboard): ... and here.
1485
1486 * keyboard.c (kbd_buffer_get_event): If we get a selection clear
1487 or selection request event, but we were compiled without the
1488 window-system-specific code to handle it, abort. Don't try to
1489 call a function which doesn't exist.
1490
1491 * keyboard.c (make_lispy_event): In the code which processes mouse
1492 clicks, declare f to be a FRAME_PTR, not a struct frame *; this
1493 works when MULTI_FRAME is not #defined.
1494
1495 * xfaces.c (sort_overlays): Define this to be static, as declared.
1496
1497 * callproc.c (relocate_fd): Make messages string literals, not
1498 initialized arrays.
1499
1500 * alloc.c (__malloc_hook, __realloc_hook, __free_hook): Declare
1501 these extern, not static. (!)
1502
1503 * alloc.c (__malloc_hook, old_malloc_hook, __realloc_hook,
1504 old_realloc_hook): Declare that the functions these point to return
1505 void *, not void.
1506
1507 Adjust for autoconf merger.
1508 * config.h.in: Add extra line to top, in case autoconf gets fixed
1509 and decides not to add Makefile-style comments to the top of the
1510 files it generates which we are forced to lop off.
1511 Indicate that the boolean macros here get their definitions via
1512 the DEFS Makefile variable.
1513 Adjust the operating system and machine #includes to use
1514 autoload's @cookies@.
1515 (RETSIGTYPE): Give this a default value.
1516 (SIGTYPE): Set this from RETSIGTYPE.
1517 (LD_SWITCH_X_SITE, C_SWITCH_X_SITE): Get values via @cookies@.
1518 * Makefile.in (DEFS): Renamed from CONFIG_CFLAGS.
1519 (xmakefile): Pass CFLAGS to ${CPP}.
1520
1521 * buffer.c (Fmake_overlay, Fmove_overlay): New optional BUFFER
1522 arguments.
1523 (recenter_overlay_lists): New argument BUF, to use instead of the
1524 current buffer.
1525 (Foverlay_recenter): Pass the appropriate arguments to
1526 recenter_overlay_lists.
1527
1528 * buffer.c (Fdelete_overlay): Don't assume that overlay is in the
1529 current buffer. Don't forget to declare the argument a Lisp_Object.
1530
1531 * dispnew.c (getenv): Extern declaration deleted; this is done in
1532 config.h.
1533
1534 * Makefile.in (tagsfiles): Remove external-lisp from this list of
1535 files; we're not distributing it, so the normal build process
1536 shouldn't depend on it.
1537
1538 * dispnew.c (init_display): Compare the return value of getenv to
1539 zero before setting display_arg, instead of just using the pointer
1540 as a truth value.
1541
1542 1993-04-08 Richard Stallman (rms@mole.gnu.ai.mit.edu)
1543
1544 * xdisp.c (message, message1): If noninteractive and
1545 cursor_in_echo_area, don't print a newline at end of message.
1546
1547 * fns.c (Fy_or_n_p): Echo the answer just once, at exit.
1548
1549 * keyboard.c (echo_dash): Do nothing if echoptr is 0.
1550
1551 * buffer.c (Fkill_all_local_variables): Store each var's current value
1552 in the buffer's alist entry, before reverting to the default value.
1553
1554 1993-04-07 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
1555
1556 * keyboard.c (apply_modifiers): Fix typo in sanity check.
1557
1558 * keyboard.c (interrupt_input_blocked, interrupt_input_pending):
1559 Remove `extern' keywords - these are the definitions.
1560
1561 1993-04-07 Richard Stallman (rms@mole.gnu.ai.mit.edu)
1562
1563 * blockinput.h (UNBLOCK_INPUT): Fix typo.
1564 (interrupt_input_blocked): Make this signed int.
1565
1566 * search.c (search_buffer): Fix typo in previous change.
1567
1568 * insdel.c, buffer.c: Include blockinput.h.
1569
1570 * xterm.c: Fix typo in comment delimiter.
1571
1572 1993-04-07 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
1573
1574 * m/imbrs6000.h: If we're using GCC, define ORDINARY_LINK instead
1575 of defining LINKER to use cc.
1576 * s/aix3-1.h (LINKER): Don't use cc for linking command if we're
1577 using GCC.
1578 * s/aix3-2.h (SYSTEM_MALLOC): Undefine this.
1579
1580 * xterm.c (updating_frame): Declare this extern instead of static,
1581 so it's the same variable as the updating_frame in term.c.
1582 (XTupdate_begin, XTupdate_end): Don't bother to set
1583 updating_frame; the term.c functions take care of that for us.
1584
1585 1993-04-05 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
1586
1587 * s/vms.h (EXEC_SUFFIXES): Add definition for this.
1588
1589 1993-03-31 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
1590
1591 * xfaces.c: Doc fixes.
1592
1593 Put interrupt input blocking in a separate file from xterm.h.
1594 This isn't specific to X, and it allows us to avoid #including
1595 xterm.h in files that don't really have anything to do with X.
1596 * blockinput.h: New file.
1597 * xterm.h (BLOCK_INPUT, UNBLOCK_INPUT, TOTALLY_UNBLOCK_INPUT,
1598 UNBLOCK_INPUT_RESIGNAL): These are now in blockinput.h.
1599 (x_input_blocked, x_pending_input): Deleted; there are analogs
1600 in blockinput.h called interrupt_input_blocked and
1601 interrupt_input_pending.
1602 * keyboard.c (interrupt_input_blocked, interrupt_input_pending):
1603 New variables, used by the macros in blockinput.h.
1604 * xterm.c: #include blockinput.h.
1605 (x_input_blocked, x_pending_input): Deleted.
1606 (XTread_socket): Test and set interrupt_input_blocked and
1607 interrupt_input_pending instead of the old variables.
1608 * alloc.c, xfaces.c, xfns.c, xmenu.c, xselect.c, keymap.c:
1609 #include blockinput.h.
1610 * eval.c: #include blockinput.h instead of xterm.h.
1611 * keyboard.c: #include blockinput.h.
1612 (input_poll_signal): Just test
1613 interrupt_input_blocked, instead of testing HAVE_X_WINDOWS and
1614 x_input_blocked.
1615
1616 Block the processing of interrupt input while we're manipulating the
1617 malloc heap.
1618 * alloc.c: (xfree): New function, to make it easy to free things
1619 safely.
1620 (xmalloc, xrealloc): Block X input while doing the deed.
1621 (VALIDATE_LISP_STORAGE, gc_sweep, compact_strings): Use xfree
1622 instead of free.
1623 (uninterrupt_malloc): New function, to install input-blocking
1624 hooks into the GNU malloc routines.
1625 * emacs.c [not SYSTEM_MALLOC] (main): Call uninterrupt_malloc
1626 on startup.
1627 * alloc.c: (make_interval, make_float, Fcons, Fmake_vector,
1628 Fmake_symbol, Fmake_marker, make_uninit_string, Fgarbage_collect):
1629 Use xmalloc instead of malloc; don't bother to check if out of
1630 memory here.
1631 (Fgarbage_collect): Call xrealloc instead of realloc.
1632 * buffer.c: Use xmalloc and xfree instead of malloc and free;
1633 don't bother to check if out of memory here.
1634 (Fget_buffer_create): Put BLOCK_INPUT/UNBLOCK_INPUT pair around
1635 calls to ralloc routines.
1636 * insdel.c: Same.
1637 * lisp.h (xfree): New extern declaration.
1638 * xfaces.c (xfree): Don't #define this to be free; use the
1639 definition in alloc.c.
1640 * dispnew.c, doc.c, doprnt.c, fileio.c, lread.c, term.c, xfns.c,
1641 xmenu.c, xterm.c: Use xfree instead of free.
1642 * hftctl.c: Use xfree and xmalloc instead of free and malloc.
1643 * keymap.c (current_minor_maps): BLOCK_INPUT while calling realloc
1644 and malloc.
1645 * search.c: Since the regexp routines can malloc, BLOCK_INPUT
1646 while runing them. #include blockinput.h.
1647 * sysdep.c: #include blockinput.h. Call xfree and xmalloc instead
1648 of free and malloc. BLOCK_INPUT around routines which we know
1649 will call malloc.
1650
1651 ymakefile (keyboard.o, keymap.o, search.o, sysdep.o, xfaces.o,
1652 xfns.o, xmenu.o, xterm.o, xselect.o, alloc.o, eval.o): Note that
1653 these depend on blockinput.h.
1654
1655 * keyboard.c (parse_modifiers, apply_modifiers): Make sure we're
1656 not trying to create modifier masks using integers which are
1657 unrepresentable as lisp values.
1658
1659 1993-03-30 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
1660
1661 New macros NULL_DEVICE and EXEC_SUFFIXES, to give the name of the
1662 equivalent of /dev/null, and the suffixes used by executable
1663 files. This is simple, and helps people porting Emacs to other
1664 operating systems.
1665 * process.h (NULL_DEVICE): Give this a default value.
1666 * process.c (Fstart_process): Pass EXEC_SUFFIXES to openp.
1667 (Fprocess_send_eof): Use NULL_DEVICE instead of "/dev/null".
1668 * callproc.c (Fcall_process): Pass EXEC_SUFFIXES to openp.
1669 Use NULL_DEVICE instead of "/dev/null".
1670 * s/vms.h (NULL_DEVICE): #define this.
1671
1672 Rename int-to-string to number-to-string, since it can handle
1673 floating-point as well as integer arguments. subr.el defines the
1674 former as an alias for the latter.
1675 * data.c (Fnumber_to_string): Renamed from Fint_to_string.
1676 (wrong_type_argument): Adjust caller.
1677 (syms_of_data): Adjust defsubr.
1678 * fns.c (concat): Adjust caller.
1679 * lisp.h (Fnumber_to_string): Adjust extern declaration.
1680 * mocklisp.c (Finsert_string): Adjust caller.
1681 * process.c (status_message): Adjust caller.
1682
1683 1993-03-28 Richard Stallman (rms@wookumz.gnu.ai.mit.edu)
1684
1685 * systty.h [NO_PTY_H]: Don't include pty.h.
1686
1687 * m/delta88k.h [USG5_4]: Alternate defining of LIBS_SYSTEM,
1688 LIBX11_SYSTEM, HAVE_RANDOM, BSTRING.
1689 (NO_PTY_H): Defined.
1690
1691 * fileio.c (Fwrite_region): Don't fail to set visit_file.
1692
1693 * keyboard.c (command_loop_1): Clear force_start of selected_window
1694 after reading each key sequence.
1695 (read_char): Clear Vquit_flag when we return C-g for it.
1696
1697 * fileio.c (Fexpand_file_name): Default DEFALT at beginning,
1698 before expanding it. But avoid unneeded or infinite recursive expand.
1699
1700 1993-03-26 Richard Stallman (rms@wookumz.gnu.ai.mit.edu)
1701
1702 * editfns.c (Fchar_equal): Don't ignore high bits of character.
1703
1704 * fileio.c (Fwrite_region): Set visit_file after expanding file arg.
1705 Also expand VISIT arg if specified.
1706
1707 * frame.c (make_frame): Init face_alist field.
1708
1709 1993-03-25 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
1710
1711 * xselect.c (SELECTION_QUANTUM): Don't use XMaxRequestSize on R3;
1712 access the display structure directly.
1713
1714 1993-03-25 Richard Stallman (rms@wookumz.gnu.ai.mit.edu)
1715
1716 * ymakefile (xfns.o): Depend on buffer.h.
1717
1718 * buffer.h (struct buffer): Field `fieldlist' deleted.
1719
1720 * search.c (Freplace_match): Clean up criterion about converting case.
1721 If old text has any capitalized words, capitalize new text.
1722
1723 * xfaces.c: New file.
1724
1725 * ymakefile (XOBJ): Add xfaces.o.
1726 (xfaces.o): New target.
1727 * emacs.c (main): Call syms_of_xfaces.
1728
1729 * buffer.h (OVERLAY_START, OVERLAY_END, OVERLAY_VALID): New macros.
1730 (OVERLAY_POSITION): Likewise.
1731 (searchbuf): Decl deleted--doesn't belong here.
1732 Delete include of regex.h for VMS.
1733 * dired.c (searchbuf): Declare here.
1734
1735 * frame.h (struct frame): New field face_alist.
1736 * alloc.c (mark_object): Mark face_alist of a frame.
1737
1738 * ymakefile (xselect.o): Depend on dispextern.h.
1739
1740 * xterm.h (FRAME_FACES, FRAME_N_FACES, FRAME_DEFAULT_FACE)
1741 (FRAME_MODE_LINE_FACE): New macros.
1742 (struct x_display): New fields faces, n_faces.
1743
1744 * dispextern.h (struct face): New fields pixmap_h, pixmap_w.
1745 Field `font' is now a pointer.
1746
1747 * fns.c (Fy_or_n_p): Ensure cursor_in_echo_area = 0 when quit.
1748
1749 1993-03-24 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
1750
1751 * dispnew.c (getenv): Add extern declaration.
1752
1753 * ymakefile (really-oldXMenu): Pass C_SWITCH_SITE and
1754 C_SWITCH_SYSTEM to the inferior make as separate flags, instead of
1755 passing just C_SWITCH_SITE as CFLAGS.
1756
1757 * keymap.c (Fkeymapp): Doc fix.
1758
1759 * xterm.h (x_focus_frame): Add extern keyword to declaration.
1760
1761 * xterm.c [VMS]: Don't #include <sys/termio.h> and <string.h>.
1762 * xfns.c [VMS]: Get the gray_bits from [.bitmaps]gray.xbm.
1763 * process.c [VMS] (DCL_PROMPT): Remove hack.
1764 (WIFSTOPPED, WIFSIGNALED, WIFEXITED, XRETCODE, WSTOPSIG,
1765 WCOREDUMP, WTERMSIG): New dummy definitions.
1766 (deactivate_process): Add missing semicolon.
1767 * dispnew.c (init_display): Get display name from environment
1768 properly on VMS as well as Unix.
1769
1770 1993-03-24 Richard Stallman (rms@wookumz.gnu.ai.mit.edu)
1771
1772 * buffer.c (init_buffer_once, reset_buffer):
1773 Delete last vestige of fieldlist slot.
1774 (Fregion_fields): Finally deleted.
1775
1776 * keymap.c (push_key_description): Ignore bits above meta_modifier.
1777
1778 1993-03-23 Richard Stallman (rms@wookumz.gnu.ai.mit.edu)
1779
1780 * buffer.c (overlays_at, recenter_overlay_lists): New functions.
1781 (Fmake_overlay, Fdelete_overlay, Foverlay_get, Foverlay_put): Likewise.
1782 (Fmove_overlay, Foverlays_at, Fnext_overlay_change): Likewise.
1783 (Foverlay_lists, Foverlay_recenter): Likewise.
1784
1785 * buffer.h (struct buffer): New fields overlay_center,
1786 overlays_before, overlays_after.
1787
1788 1993-03-23 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
1789
1790 * config.h.in (HAVE_XFREE386): New flag, set by configure script.
1791 If it's set, #define LIBX11_SYSTEM and HAVE_RANDOM as appropriate
1792 for XFree386.
1793 * sysdep.c (random, srandom): Don't define these if HAVE_RANDOM is
1794 #defined.
1795
1796 * config.h.in (C_SWITCH_X_SITE, LD_SWITCH_X_SITE): New flags.
1797 * ymakefile (C_SWITCH_X_SITE, LD_SWITCH_X_SITE): Provide default
1798 values. Include C_SWITCH_X_SITE in CFLAGS, include
1799 LD_SWITCH_X_SITE in LIBX, and pass C_SWITCH_X_SITE to the make
1800 which builds the X Menu library.
1801
1802 1993-03-22 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
1803
1804 * xfns.c (Fx_parse_geometry): Renamed from Fx_geometry.
1805 (Fx_color_defined_p): Renamed from Fx_defined_color.
1806 (syms_of_xfns): Adjusted.
1807
1808 1993-03-22 Richard Stallman (rms@wookumz.gnu.ai.mit.edu)
1809
1810 * indent.c (current_column, Findent_to, position_indentation):
1811 (Fmove_to_column, compute_motion): Allow tab_width up to 1000.
1812
1813 * xdisp.c (display_string, display_text_line):
1814 Allow tab_width up to 1000.
1815
1816 * keyboard.c (Fsuspend_emacs):
1817 Change suspend-hooks back to suspend-hook and make it a normal hook.
1818
1819 * s/dgux.h: Decide automatically whether to use COFF or ELF.
1820
1821 1993-03-21 Richard Stallman (rms@mole.gnu.ai.mit.edu)
1822
1823 * fns.c (Fy_or_n_p): Handle `recenter' response type.
1824
1825 * s/dgux.h (HAVE_TERMIO, SIGNALS_VIA_CHARACTERS): Defined.
1826
1827 1993-03-21 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
1828
1829 * frame.c (Fhandle_switch_frame): Renamed from Fselect_frame.
1830 Doc changed in anticipation of new purpose.
1831 (Fselect_frame): Just call Fhandle_switch_frame for now.
1832
1833 1993-03-21 Richard Stallman (rms@mole.gnu.ai.mit.edu)
1834
1835 * xdisp.c (decode_mode_spec): Handle `%l'.
1836 (display_count_lines): New function.
1837 (redisplay_window): Update base_line_number and base_line_pos fields.
1838 Always update mode line if it's an integer.
1839 * window.h (struct window):
1840 New fields base_line_number and base_line_pos.
1841
1842 * window.c (Fselect_window): Use Fhandle_switch_frame.
1843 (Fset_window_configuration): Likewise.
1844
1845 1993-03-20 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
1846
1847 Use the `visiblity' parameter to determine the initial state of
1848 the frame, instead of the `iconic-startup' and
1849 `suppress-initial-map' parameters.
1850 * xfns.c (x_icon): Test the Qvisibility parameter against Qicon,
1851 instead of the Qiconic_startup against Qt.
1852 (x_create_frame): Test Qvisibility against Qnil and
1853 Qicon, instead of testing Qsuppress_initial_map and Qvisibility.
1854 (Qicon): New symbol.
1855 (Qiconic_startup, Qsuppress_initial_map): Removed.
1856 (syms_of_xfns): Adjusted appropriately.
1857
1858 * xfns.c (x_set_visibility): Instead of interpreting only Qt as
1859 `make the frame visible' and everything else as `iconify the
1860 frame', interpret Qicon as `iconify the frame' and everything else
1861 as `make the frame visible.'
1862
1863 * xfns.c (x_get_arg): When the type of the resource is `symbol',
1864 return `true' and `on' as Qt, and `false' and `off' as Qnil.
1865
1866 1993-03-20 Richard Stallman (rms@mole.gnu.ai.mit.edu)
1867
1868 * emacs.c (init_cmdargs): Fix simple bug in previous change.
1869
1870 1993-03-20 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
1871
1872 * dispnew.c (Fsleep_for): Make this take two arguments SECONDS and
1873 MILLISECONDS, which add, rather than a second argument which says
1874 "treat the first argument as milliseconds."
1875 (Fsit_for): Same thing.
1876 (Fsleep_for_milliseconds): Deleted; this can be done with Fsleep_for.
1877
1878 * process.c (wait_reading_process_input): Doc fix.
1879
1880 * systime.h (EMACS_HAS_USECS): #define this if HAVE_TIMEVAL is
1881 #defined.
1882
1883 * dispnew.c (sit_for): Doc fix.
1884
1885 * sysdep.c (reset_sys_modes): Fix usage of EMACS_SET_TTY.
1886
1887 * callproc.c (child_setup): Make sure that in, out, and err are
1888 not less than three.
1889 (relocate_fd): New function.
1890
1891 * xterm.c (x_term_init): If the X connection is already in file
1892 descriptor zero, don't dup it and close the old one.
1893
1894 * s/hpux8.h, s/sunos4-1.h (OLDXMENU_OPTIONS): Define this, as in
1895 Emacs 18.
1896
1897 * xfns.c (Fx_open_connection): If we have X11R5, use
1898 XrmSetDatabase to set the display's database. In older versions,
1899 just store the value into x_current_display->db.
1900 * xterm.h (HAVE_X11R5): Define this where appropriate.
1901
1902 * frame.c (Fraise_frame, Flower_frame): Renamed from
1903 Fframe_to_front and Fframe_to_back.
1904 (syms_of_frame): Adjusted appropriately.
1905
1906 * fileio.c (HAVE_FSYNC): Define, if appropriate.
1907 (Fwrite_region): Use HAVE_FSYNC.
1908 * s-aix3-2.h (HAVE_FSYNC): Define.
1909
1910 * emacs.c (Finvocation_name): New function.
1911 (Vinvocation_name): New variable.
1912 (init_cmdargs): Set it.
1913 (syms_of_emacs): defsubr Finvocation_name, staticpro and
1914 initialize Vinvocation_name.
1915 * lisp.h (Vinvocation_name): New extern declaration.
1916 * xterm.c (invocation_name): Variable deleted; use
1917 Vinvocation_name now.
1918 (x_text_icon, x_term_init): Use Vinvocation_name now instead of
1919 invocation_name.
1920 (x_term_init): Don't initialize invocation_name.
1921 (syms_of_xterm): Don't initialize or staticpro invocation_name.
1922 * xfns.c (invocation_name): Remove extern declaration for this.
1923 [HAVE_X11] (Fx_get_resource): Use Vinvocation_name now instead of
1924 invocation_name.
1925 [not HAVE_X11] (Fx_get_default): Same.
1926
1927 1993-03-20 Richard Stallman (rms@wookumz.gnu.ai.mit.edu)
1928
1929 * xfns.c (Fx_display_color_p): Renamed from Fx_color_display_p.
1930 (syms_of_xfns): Use new name in defsubr.
1931
1932 1993-03-19 Eric S. Raymond (eric@geech.gnu.ai.mit.edu)
1933
1934 * Makefile.in (unlock, relock): New productions to assist with
1935 version control.
1936
1937 1993-03-19 Richard Stallman (rms@wookumz.gnu.ai.mit.edu)
1938
1939 * fileio.c (Fvisited_file_modtime): New function.
1940 (Fset_visited_file_modtime): Accept an argument specifying time value.
1941 If arg is nil, really use the filename handler.
1942
1943 * xselect.c (cons_to_long, long_to_cons): No longer static.
1944
1945 1993-03-18 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
1946
1947 * frame.h (FOR_EACH_FRAME): Change the definition so that
1948 FRAME_VAR is a lisp object.
1949 * dispnew.c (WINDOW_CHANGE_SIGNAL, do_pending_window_change):
1950 Adjusted appropriately.
1951 * xdisp.c (redisplay): Adjusted appropriately.
1952
1953 * dispnew.c (Fredraw_frame): Give this appropriate definitions for
1954 MULTI_FRAME and non-MULTI_FRAME configurations.
1955 (Fredraw_display): Give this a non-MULTI_FRAME-dependent definition.
1956
1957 1993-03-18 Richard Stallman (rms@geech.gnu.ai.mit.edu)
1958
1959 * lisp.h (CHECK_LIVE_WINDOW): Use Qlive_window_p.
1960
1961 * xfns.c (x_screen): Make this var file scope.
1962 (Fx_server_version): Use Fcons, not list3.
1963
1964 1993-03-17 Eric S. Raymond (eric@mole.gnu.ai.mit.edu)
1965
1966 * xterm.c (term_get_fkeys): Less klugey version of the last fix.
1967
1968 * Makefile.in (versionclean): New production nukes binaries and
1969 DOC files, forcing a re-load, re-dump and re-makedoc.
1970
1971 1993-03-17 Richard Stallman (rms@mole.gnu.ai.mit.edu)
1972
1973 * fileio.c: Doc fix.
1974
1975 1993-03-17 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
1976
1977 * xterm.c (x_display_box_cursor, x_display_bar_cursor): Don't
1978 display the cursor on garbaged frames.
1979
1980 1993-03-17 Eric S. Raymond (eric@mole.gnu.ai.mit.edu)
1981
1982 * term.c (term_get_fkeys) Supply second args for all tgetstr calls.
1983
1984 1993-03-17 Richard Stallman (rms@mole.gnu.ai.mit.edu)
1985
1986 * process.c (Fprocess_send_eof): Make sure proc is running.
1987
1988 * s/irix4-0.h (_getpty): Declare this, not _get_pty.
1989
1990 1993-03-16 Richard Stallman (rms@mole.gnu.ai.mit.edu)
1991
1992 * xfns.c (Fx_server_vendor, Fx_server_version, Fx_display_pixel_width)
1993 (Fx_display_pixel_height, Fx_display_mm_width, Fx_display_mm_height)
1994 (Fx_display_screens, Fx_display_planes, Fx_display_color_cells)
1995 (Fx_display_visual_class, Fx_display_backing_store)
1996 (Fx_display_save_under): New functions.
1997 (x_screen_count, Vx_vendor, x_release, x_screen_height_mm)
1998 (x_screen_width_mm, Vx_backing_store, x_save_under, Vx_screen_visual)
1999 (x_visual_strings): Vars deleted.
2000 (Fx_open_connection): Don't init those vars.
2001 (syms_of_xfns): Set up new functions.
2002 Don't set up those vars as Lisp vars.
2003 Nor x-screen-width and x-screen-height.
2004
2005 1993-03-16 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
2006
2007 * cmds.c (overwrite_binary_mode): Deleted; this implements the
2008 wrong feature.
2009 (Qoverwrite_mode_binary): New variable.
2010 (internal_self_insert): If current_buffer->overwrite_mode is
2011 `overwrite-mode-binary', do as overwrite_binary_mode used to.
2012 (syms_of_cmds): Remove defvar of overwrite_binary_mode; initialize
2013 Qoverwrite_mode_binary.
2014 * buffer.c (syms_of_buffer): Doc fix for overwrite_mode.
2015 * buffer.h (struct buffer): Doc fix.
2016
2017 Rename `live-window-p' to `window-live-p', for consistency with
2018 `frame-live-p'.
2019 * window.c (Fwindow_live_p): Renamed from Flive_window_p.
2020 * lisp.h (CHECK_LIVE_WINDOW): Change to use Qwindow_live_p.
2021 (Qwindow_live_p): Extern declaration renamed fom Qlive_window_p.
2022
2023 1993-03-16 Richard Stallman (rms@mole.gnu.ai.mit.edu)
2024
2025 * xmenu.c (xmenu_show): Do BLOCK_INPUT; unblock just before returning.
2026
2027 * xterm.h [SIGIO] (UNBLOCK_INPUT): Resignal if x_pending_input.
2028
2029 1993-03-15 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
2030
2031 * frame.c (Fframe_height, Fframe_width): Fix doc strings to match
2032 those of the multi-frame versions in frame.el. Accept an optional
2033 argument FRAME, also for consistency.
2034
2035 * floatfns.c (logb): Add extern declaration for this.
2036
2037 * floatfns.c (Flogb): Under SYSV, implement this using frexp.
2038
2039 1993-03-15 Richard Stallman (rms@mole.gnu.ai.mit.edu)
2040
2041 * ymakefile (dispnew.o): Depend on termhooks.h.
2042
2043 * xmenu.c (list_of_items): Allow strings among the alist items;
2044 they make nonselectable lines.
2045
2046 1993-03-14 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
2047
2048 * dired.c (Fdirectory_files): Recompile MATCH (if specified) after
2049 expanding the file name and all; those might compile regexp of
2050 their own, and change searchbuf.
2051
2052 * keyboard.h (internal_last_event_frame): This should be extern,
2053 dummy.
2054
2055 * fns.c (Fy_or_n_p): Display the answer.
2056
2057 Some VMS changes from Richard Levitte <levitte@e.kth.se>:
2058 * [VMS] systime.h: Include vmstime.h. VMS has the timezone
2059 variable and the tzname array.
2060 * s/vms.h: VMS does have select.
2061 mth$dmod is the same as Unix's drem.
2062 Use the time functions in vmstime.c.
2063 No need to rename the malloc routines if we're using GNU malloc.
2064 PURESIZE needs to be 330000.
2065 * vmstime.c, vmstime.h: New files.
2066 * systty.h: Don't try to initialize extern declarations under VAX C.
2067 * vmspaths.h (PATH_LOADSEARCH): Include EMACS_LIBRARY:[LOCAL-LISP]
2068 in PATH_LOADSEARCH.
2069 (PATH_EXEC): Use EMACS_LIBRARY:[LIB-SRC] instead of [ETC].
2070 * sysdep.c [VMS] (init_sys_modes): Don't allocate process_ef.
2071 [VMS] (queue_kbd_input): Build events structure correctly.
2072 [VMS] (gethostname): New function.
2073 [VMS] (getwd): Don't get the PATH environment variable; that's
2074 dumb. Call getcwd.
2075
2076 1993-03-14 Richard Stallman (rms@mole.gnu.ai.mit.edu)
2077
2078 * xdisp.c (display_menu_bar): Assume FRAME_MENU_BAR_ITEMS already set.
2079 Fill out line with spaces.
2080 Put explicit spaces between items.
2081 * keyboard.c (command_loop_1): Set FRAME_MENU_BAR_ITEMS here.
2082
2083 * window.c (Fdelete_other_windows): Handle FRAME_MENU_BAR_LINES.
2084
2085 * keyboard.c (menu_bar_items): Reverse the list when done.
2086
2087 * xmenu.c (single_keymap_panes): When storing in ENABLES,
2088 check def before enabled.
2089
2090 * ymakefile (really-oldXMenu): Renamed from ${oldXMenudir}$(OLDXMENU).
2091 Add @true.
2092 ($(OLDXMENU)): Depend on really-oldXMenu.
2093 The idea is to make sure libXMenu11.a is always updated if nec.
2094
2095 * keyboard.c (command_loop_1): Typo calling Qrecompute_lucid_menubar.
2096 (read_key_sequence): Likewise. Also fix call to Vrun_hooks.
2097
2098 1993-03-13 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
2099
2100 * ymakefile (YMF_PASS_LDFLAGS): Doc fix.
2101
2102 1993-03-13 Richard Stallman (rms@mole.gnu.ai.mit.edu)
2103
2104 * print.c (PRINTPREPARE): Handle marker that points nowhere.
2105
2106 * apollo.h (NO_X_DESTROY_DATABASE): Defined.
2107
2108 * undo.c (record_property_change, record_delete, record_insert):
2109 Don't make boundary or touch last_undo_buffer if cur buf has no undo.
2110
2111 * ymakefile [__GNUC__ > 1]: Delete the conditional for GCC 2.4.
2112 [__GNUC__ > 1] (LIB_GCC): Use -print-libgcc-file-name to find libgcc.a.
2113 (YMF_FIND_LIBGCC_A): Definitions and uses deleted.
2114
2115 1993-03-13 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
2116
2117 * s/usg5-4.h: Remove extraneous text after #undef LIB_X11_LIB.
2118
2119 1993-03-13 Richard Stallman (rms@mole.gnu.ai.mit.edu)
2120
2121 * xterm.c (Xatom_wm_change_state): Define here.
2122 * xfns.c (Xatom_wm_change_state): Just declare.
2123 (Xatom_emacs_selection, Xatom_clipboard, Xatom_clipboard_selection):
2124 (Xatom_wm_change_state, Xatom_incremental, Xatom_multiple):
2125 (Xatom_targets, Xatom_timestamp, Xatom_delete, Xatom_insert_selection):
2126 (Xatom_pair, Xatom_insert_property, Xatom_text): Decls deleted.
2127 (x_begin_selection_own): Decls deleted.
2128 (Fx_open_connection): Set up only the wm atoms here.
2129 Call Xatoms_of_xselect.
2130
2131 * dispnew.c: Include termhooks.h.
2132
2133 * frame.h (FRAMEP): Macro deleted.
2134
2135 * xselect.c: Total rewrite, derived from Lucid's version.
2136
2137 * keyboard.c (kbd_buffer_get_event): Handle selection_clear_event
2138 and selection_request_event events.
2139
2140 * xterm.c (XTread_socket): Handle NEW_SELECTIONS alternative:
2141 queue events for SelectionRequest and SelectionClear;
2142 call functions for SelectionNotify and PropertyNotify.
2143
2144 * termhooks.h (selection_request_event, selection_clear_event):
2145 New event kinds.
2146
2147 * xterm.h (SELECTION_EVENT_DISPLAY): New macro.
2148 (SELECTION_EVENT_REQUESTOR, SELECTION_EVENT_SELECTION)
2149 (SELECTION_EVENT_TARGET, SELECTION_EVENT_PROPERTY)
2150 (SELECTION_EVENT_TIME): New macros.
2151 (struct selection_input_event): New structure.
2152
2153 * process.c (wait_reading_process_input): New option to wait
2154 till a given cons cell has a non-nil car.
2155 Delete vipc conditionals.
2156
2157 1993-03-12 Jim Blandy (jimb@totoro.cs.oberlin.edu)
2158
2159 * ymakefile (YMF_FIND_LIBGCC_A): New macro, to help GCC find
2160 libgcc.a even when -nostdlib is in effect. Define it to be the
2161 empty string if nobody else establishes a value for it.
2162 (temacs): Include it in the list of flags passed to the linker.
2163
2164 * ymakefile (LINKER): If we have GCC 2.4 or later, use the
2165 -nostartfiles option instead of -nostdlib.
2166 (LIBGCC): Under GCC 2.4 or later, define this to be the empty string.
2167
2168 1993-03-12 Richard Stallman (rms@mole.gnu.ai.mit.edu)
2169
2170 * xmenu.c (xmenu_show): New arg enable_list.
2171 (keymap_panes): New arg enables
2172 (single_keymap_panes): New arg enables. Fill in its contents.
2173 (list_of_panes, list_of_items): New arg enables. Fill in contents.
2174 (Fx_popup_menu): Pass enable and enable_list args.
2175 (single_keymap_panes): Set enable flag to -1 if cmd definition is nil.
2176
2177 * lisp.h (INTEGERP, SYMBOLP, MARKERP, STRINGP, VECTORP): New macros.
2178 (COMPILEDP, BUFFERP, SUBRP, PROCESSP, FRAMEP, WINDOWP): New macros.
2179 (WINDOW_CONFIGURATIONP, FLOATP): New macros.
2180
2181 1993-03-12 Paul Eggert (eggert@twinsun.com)
2182
2183 * cmd.c (internal_self_insert): Check that tab_width does not
2184 exceed 20, to be consistent with indent.c and xdisp.c.
2185
2186 1993-03-12 Eric S. Raymond (eric@mole.gnu.ai.mit.edu)
2187
2188 * term.c (CONDITIONAL_REASSIGN): fixed reference to tigetstr.
2189 This should have been tgetstr, but I typoed and tigetstr happens
2190 to link and even do the right thing if you're on a System V box.
2191
2192 1993-03-12 Richard Stallman (rms@mole.gnu.ai.mit.edu)
2193
2194 * keyboard.c (read_key_sequence): Support Vcurrent_menubar
2195 and Qactivate_menubar_hook. Call Qrecompute_lucid_menubar.
2196 (syms_of_keyboard): Set up Vcurrent_menubar, Vprevious_lucid_menubar,
2197 Qactivate_menubar_hook, and Qrecompute_lucid_menubar.
2198
2199 * xmenu.c (Fx_popup_menu): Allow a frame instead of a window, in arg.
2200 Use Fcar, Fcdr when extracting from event, to check data types.
2201
2202 1993-03-11 Richard Stallman (rms@mole.gnu.ai.mit.edu)
2203
2204 * frame.h (FRAME_MENU_BAR_ITEMS): New macro (two versions).
2205 (struct frame): New field menu_bar_items.
2206 * alloc.c (mark_object): Mark the menu_bar_items field.
2207
2208 * xdisp.c (display_menu_bar): New function.
2209 (redisplay_window): Call display_menu_bar.
2210
2211 * term.c (tigetstr): Add dummy definition to make Emacs link again.
2212
2213 * keyboard.c (syms_of_keyboard): Set up Qmenu_bar.
2214 (menu_bar_items): New function.
2215 (menu_bar_one_keymap, menu_bar_item): New functions.
2216 (make_lispy_event): Handle menu bar events.
2217 (read_key_sequence): Make dummy prefix `menu-bar' for menu bar events.
2218
2219 1993-03-11 Eric S. Raymond (eric@mole.gnu.ai.mit.edu)
2220
2221 * term.c (fkey_table): Added many more keycap cookies to the
2222 fkey_table; it now supports the full intersection of the set of X
2223 keysyms and terminfo capabilities. See my lisp directory
2224 ChangeLog entry for this date, and lisp/term/README, for details.
2225
2226 1993-03-11 Richard Stallman (rms@mole.gnu.ai.mit.edu)
2227
2228 * floatfns.c (Flogb): Fix use of IN_FLOAT.
2229 Fix arg names. Don't confuse Lisp_Object with integer.
2230
2231 1993-03-11 Jim Blandy (jimb@totoro.cs.oberlin.edu)
2232
2233 * process.c (process_send_signal): In the TERMIOS code for sending
2234 control characters to processes, don't try to return Qnil; just
2235 return.
2236
2237 1993-03-11 Richard Stallman (rms@mole.gnu.ai.mit.edu)
2238
2239 * dispnew.c (change_frame_size): Handle FRAME_MENU_BAR_LINES.
2240
2241 * frame.c (Fframe_parameters): Report menu-bar-lines parm.
2242 (syms_of_frame): Set up Qmenu_bar_lines.
2243
2244 * frame.h (FRAME_MENU_BAR_LINES): New macro.
2245 (struct frame): New field menu_bar_lines.
2246
2247 * xfns.c (x_frame_parms): Add elts for visibility and menu-bar-lines.
2248 (enum x_frame_parm): Likewise.
2249 (x_set_menu_bar_lines, x_set_menu_bar_lines_1): New functions.
2250 (x_set_visibility): New function.
2251 (Fx_create_frame): Handle menu-bar-lines parm.
2252 (x_report_frame_params): Report Qvisibility.
2253 (syms_of_xfns): Set up Qvisibility.
2254
2255 * keyboard.c (command_loop_1): Typo in last change.
2256
2257 * xmenu.c (syms_of_xmenu): Set up Qmenu_enable.
2258 (single_keymap_panes): Test menu-enable property of symbol
2259 to decide whether to include it in the menu.
2260
2261 1993-03-10 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
2262
2263 * keyboard.c (command_loop_1): Adjust to the fact that display
2264 tables are now vectors of vectors, not vectors of strings.
2265
2266 1993-03-10 Jim Blandy (jimb@totoro.cs.oberlin.edu)
2267
2268 * floatfns.c (Flogb): Undo the change of Feb 22.
2269
2270 * ymakefile (OLDXMENU): Don't assume that we have symbolic links
2271 available; use `ln -f' instead of `ln -s'.
2272
2273 * xterm.c (x_find_modifier_meanings): XDisplayKeycodes only
2274 appeared in X11R4; for earlier versions, just access the members
2275 of the Display directly.
2276
2277 * xrdb.c (get_user_db): Since xrdb.c doesn't #include xterm.h,
2278 we can't test HAVE_X11R4 to see how we should get the resource
2279 manager string; cheat.
2280
2281 * unexec.c (copy_text_and_data): Error message tweaked.
2282
2283 * systime.h (timezone): Add an explicit declaration for this
2284 variable under USG 5-4.
2285
2286 * sysdep.c (read_input_waiting): Set e.frame_or_window, not
2287 e.frame; the latter doesn't exist anymore.
2288
2289 * sysdep.c (start_of_data): If ORDINARY_LINK is #defined, we don't
2290 have the data_start symbol defined, so we'll just use the address
2291 of environ.
2292
2293 * s/usg5-4.h: Changes from Eric Raymond:
2294 If we're doing ordinary linking, define LIB_STANDARD appropriately.
2295 Give LIBS_DEBUG a null definition; usg5-4 has no -lg.
2296 #define LIBS_STANDARD as "-lc"; usg5-4 has no -lPW.
2297 #define NSIG, if it's not already defined.
2298 #define HAVE_TERMIOS instead of HAVE_TCATTR.
2299 Provide our own definition of LIB_X11_LIB.
2300
2301 * s/usg5-3.h (LIBX11_SYSTEM): Eric Raymond says the libraries here
2302 were slightly wrong.
2303
2304 * m/intel386.h (LIB_STANDARD): If USG5_4 is #defined, there's no
2305 need to include `-lPW'; that has been merged with `-lc'.
2306
2307 * emacs.c (__do_global_ctors, __do_global_ctors_aux,
2308 __do_global_dtors, __CTOR_LIST__, __DTOR_LIST__, __main): Don't
2309 define these if ORDINARY_LINK is #defined; in that case, the
2310 standard linking procedure will find definitions for these.
2311
2312 * syssignal.h (sigunblock): Add definition which works under SYSVr4.
2313 * emacs.c (fatal_error_signal): Unblock the signal which we're
2314 handling using sigunblock.
2315
2316 1993-03-09 Jim Blandy (jimb@totoro.cs.oberlin.edu)
2317
2318 * xfns.c (x_make_gc): Don't forget to block X input around the
2319 X calls in this function.
2320
2321 * xfns.c [not HAVE_X11R4] (select_visual): It's v->visualid, not
2322 x->visualid. x isn't defined.
2323
2324 * m/template.h, s/template.h: Mention that `etc/MACHINES' and
2325 `configure' should be updated whenever support for a configuration
2326 is added or improved.
2327
2328 * process.c [! subprocesses] (wait_reading_process_input):
2329 Remember to re-enable polling for input.
2330
2331 * keyboard.c [POLL_FOR_INPUT] (quit_throw_to_read_char): If
2332 we're polling for input, abort; input polling should always be
2333 suppressed while we're waiting for input.
2334
2335 * keyboard.c (interrupt_signal): Remove extern declaration of
2336 Vwindow_system; this is no longer used.
2337
2338 1993-03-09 Richard Stallman (rms@mole.gnu.ai.mit.edu)
2339
2340 * editfns.c (Fcurrent_time_string): Optional arg specifies time.
2341
2342 * keymap.c (Fdefine_key): Use proper meta-bit to clear.
2343
2344 * intervals.c (set_point): Check invisibility of following character,
2345 not previous character.
2346
2347 * floatfns.c (FLOAT_CHECK_ERRNO): Define unless NO_FLOAT_CHECK_ERRNO.
2348
2349 * floatfns.c: Changes from Lucid.
2350 (HAVE_MATHERR, FLOAT_CHECK_ERRNO, FLOAT_CATCH_SIGILL): New parm macros.
2351 (FLOAT_CHECK_DOMAIN, HAVE_RINT): New parm macros.
2352 (HAVE_INVERSE_HYPERBOLIC, HAVE_CBRT): New parm macros.
2353 [!HAVE_RINT]: Define rint as macro.
2354 (IN_FLOAT): Major rewrite; several alternate versions.
2355 (IN_FLOAT2): New macro.
2356 (arith_error, range_error, domain_error, domain_error2): New macros.
2357 (Facos, Fasin, Fatan, Fcos, Fsin, Ftan, Fexp, Fexpt, Flog): Changed.
2358 (Flog10, Fsqrt, Fabs, Ffloat, Flogb): Changed.
2359 (Ffloor, Fceiling, Fround, Ftruncate): Changed.
2360 (Fcube_root): Renamed from Fcbrt.
2361 (matherr): New function.
2362 (float_error): Only if FLOAT_CATCH_SIGILL.
2363
2364 * fns.c (Fy_or_n_p): Use query-replace-map.
2365
2366 * keymap.c (access_keymap): Handle ints beyond the ASCII range.
2367 (store_in_keymap): Likewise.
2368 (Faccessible_keymaps): Use meta_modifier.
2369 Use vectors for the key sequences.
2370 (Fwhere_is_internal): Use meta_modifier.
2371 (append_key): Always return a vector.
2372
2373 * lisp.h (Qrange_error, Qdomain_error, Qsingularity_error):
2374 (Qoverflow_error, Qunderflow_error): New vars.
2375
2376 * data.c (syms_of_data) [LISP_FLOAT_TYPE]: Define new error conditions:
2377 Qarith_error, Qrange_error, Qdomain_error,
2378 Qsingularity_error, Qoverflow_error, Qunderflow_error.
2379
2380 1993-03-08 Richard Stallman (rms@mole.gnu.ai.mit.edu)
2381
2382 * systty.h: Define HAVE_TCATTR based on HAVE_TERMIOS earlier.
2383 (struct emacs_tty): Separate the struct decl
2384 from the EMACS_..._TTY... macro definitions.
2385 Use HAVE_TCATTR to decide whether to use `struct termios'.
2386
2387 * xfns.c (Fx_pixel_width, Fx_pixel_height): Fns deleted.
2388 (syms_of_xfns): Don't install them.
2389 (x_user_set_name): Function deleted.
2390 (x_char_height, x_char_width): New functions.
2391
2392 * frame.c (Fframe_char_height, Fframe_char_width):
2393 (Fframe_pixel_height, Fframe_pixel_width):
2394 New functions, two versions of each.
2395 [MULTI_FRAME] (syms_of_frame): Make them Lisp functions.
2396 [!MULTI_FRAME] (syms_of_frame): Likewise. Also Fselected_frame.
2397
2398 * xterm.c (XTread_socket):
2399 Don't reverse the chars that XLookupString returns. Use all of them.
2400 Save last 100 chars and keysyms in temp_buffer.
2401
2402 1993-03-07 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
2403
2404 * buffer.c (syms_of_buffer): Make erase-buffer a disabled command.
2405
2406 1993-03-07 Richard Stallman (rms@mole.gnu.ai.mit.edu)
2407
2408 * ymakefile (keyboard.o): Depend on intervals.h.
2409 (keymap.o): Depend on termhooks.h.
2410
2411 * keyboard.c: Include intervals.h.
2412 (read_key_sequence): Use get_local_map.
2413
2414 * textprop.c (Fget_text_property): Use textget.
2415 (Fnext_single_property_change): Likewise.
2416 (Fprevious_single_property_change): Likewise.
2417
2418 * intervals.c (textget): Handle categories.
2419 (get_local_map): New function.
2420 (verify_interval_modification): Call textget correctly.
2421
2422 * textprop.c (syms_of_textprop): Set up Qcategory, Qlocal_map.
2423 * intervals.h: Declare those vars. Declare textget, get_local_map.
2424
2425 * keymap.c: Include termhooks.h.
2426 (push_key_description): Handle all modifiers.
2427 Handle large character codes.
2428 (Fkey_description): Move the meta bit, if arg is string.
2429 (Fsingle_key_description): Don't alter integer value.
2430 Make tem long enough.
2431
2432 * keyboard.c (read_key_sequence):
2433 Use meta_modifier for meta keys when handling function_key_map.
2434
2435 * lread.c (syms_of_lread): Set up Qascii_character.
2436 (Fread_char, Fread_char_exclusive): Use that property
2437 to convert symbols like tab, return, M-return,... to ASCII.
2438
2439 * keyboard.c (follow_key): Downcase shift_modifier as well as ASCII.
2440 (command_loop_1): Run pre-command-hook and post-command-hook.
2441 Set this_command before running pre-command-hook.
2442 (syms_of_keyboard): Set up vars for those hooks.
2443
2444 * buffer.c (reset_buffer_local_variables): Reset mark_active.
2445 (syms_of_buffer): New buffer-local var `mark-active'.
2446 (init_buffer_once): Initialize mechanism for it.
2447
2448 1993-03-06 Jim Blandy (jimb@totoro.cs.oberlin.edu)
2449
2450 * dispnew.c (init_display): Initialize Vwindow_system.
2451
2452 * ymakefile (SHELL): No need to set this twice; remove one.
2453
2454 * emacs.c (main): SIGIOT isn't defined on all systems; don't set
2455 its signal handler unless it is.
2456
2457 * sysdep.c (init_baud_rate): Use input_fd, instead of fd; the
2458 latter is undefined.
2459
2460 * dired.c (NAMLEN): Never use d_nameln to get the length of the
2461 directory entry's name; it is used inconsistently. Always call
2462 strlen instead.
2463
2464 1993-03-06 Richard Stallman (rms@mole.gnu.ai.mit.edu)
2465
2466 * keyboard.c (syms_of_keyboard): Handle gaps in modifier_names.
2467 (modifier_names): Reorder to match termhooks.h.
2468
2469 * keyboard.c (parse_modifiers_uncached): Detect `s-', not `super-'.
2470 (apply_modifiers_uncached): Make `s-', not `super-'.
2471
2472 * lread.c: Include termhooks.h.
2473 (read_escape): Handle \H, \A, \s. Use ..._modifier.
2474 * ymakefile (lread.o): Depend on termhooks.h.
2475
2476 * termhooks.h (alt_modifier, super_modifier, hyper_modifier):
2477 (shift_modifier, ctrl_modifier, meta_modifier):
2478 Renumber the bits.
2479 * keyboard.c (make_lispy_event): For ASCII event, the ..._modifier
2480 bits are the right bits to return.
2481
2482 * keyboard.c (lispy_function_keys): Add codes starting at 0xff00
2483 and running through 0xffff.
2484
2485 * xterm.c (x_alt_mod_mask, x_super_mod_mask, x_hyper_mod_mask):
2486 New variables.
2487 (x_find_modifier_meanings): Set them.
2488 (x_convert_modifiers): Check for them.
2489 (XTread_socket): Handle BackSpace, etc, function keys.
2490
2491 * keyboard.c (read_char): Move metabit when fetching from string macro.
2492
2493 * callint.c (check_mark): Error if mark is not active.
2494
2495 * editfns.c (save_excursion_save): Save mark_active of buffer.
2496 (save_excursion_restore): Restore mark_active of buffer.
2497 Run activate-mark-hook if it's on, or deactivate-mark-hook
2498 if it turns off.
2499 (region_limit): Error if mark inactive, if transient-mark-mode.
2500
2501 * insdel.c (prepare_to_modify_buffer): Set Vdeactivate_mark.
2502
2503 * keyboard.c (command_loop_1): Clear Vdeactivate_mark before cmd.
2504 Clear mark_active if command set Vdeactivate_mark.
2505 Run deactivate-mark-hook at that time, or activate-mark-hook.
2506 (syms_of_keyboard): Define variable deactivate-mark.
2507
2508 * buffer.c (syms_of_buffer): New buffer-local var `mark-active'.
2509 (init_buffer_once): Initialize mechanism for it.
2510
2511 * buffer.h (struct buffer): New field mark_active.
2512
2513 * intervals.c (verify_interval_modification): Handle insertions
2514 specially. For non-insertions, check only the chars being changed.
2515 `modification-hooks' property is now a list of functions.
2516 (set_point): Ignore chars outside current restriction.
2517
2518 * textprop.c (Qmodification_hooks): Renamed from Qmodification.
2519 (syms_of_textprop): Changed accordingly.
2520
2521 * keyboard.c (syms_of_keyboard): New lisp var unread-command-char.
2522 (Finput_pending_p): Test unread_command_char.
2523 (Fdiscard_input, quit_throw_to_read_char, init_keyboard): Set it.
2524 (read_char): Fetch from it.
2525
2526 1993-03-05 Jim Blandy (jimb@totoro.cs.oberlin.edu)
2527
2528 * textprop.c (Fadd_text_properties): Initialize the modified flag.
2529 Use a "for (;;)" loop at the end of the function, to indicate that
2530 all exiting is taken care of inside the loop.
2531 (Fremove_text_properties): Same.
2532
2533 1993-03-05 Richard Stallman (rms@mole.gnu.ai.mit.edu)
2534
2535 * ymakefile (LIB_MATH): Delete -lc, since duplicates LIB_STANDARD.
2536
2537 * buffer.c (check_protected_fields): Variable deleted.
2538 (syms_of_buffer): Delete vars buffer-field-list
2539 and check-protected-fields.
2540 * insdel.c (check_protected_fields): Delete decl.
2541
2542 * disptab.h (DISP_INVIS_VECTOR): Renamed from DISP_INVIS_ROPE.
2543 (DISP_CHAR_VECTOR): Renamed from DISP_CHAR_ROPE.
2544 All callers changed.
2545
2546 * xdisp.c (copy_rope): Expect FROM to be a vector.
2547 (copy_part_of_rope): New function.
2548 (display_string): Expect display table elts to be vectors.
2549 * indent.c (current_column, Fmove_to_column, compute_motion):
2550 Expect display table elts to be vectors.
2551
2552 * alloc.c: (Fmake_rope, Frope_elt): Fns deleted.
2553
2554 * lisp.h (CHAR_META, CHAR_SHIFT, CHAR_CTL): New macros.
2555
2556 * lread.c (read_escape): Handle M-, C- and S- for new convention.
2557 (read1): Move the meta bit to the right place for a string.
2558
2559 * keyboard.c (Fthis_command_keys, Fread_key_sequence):
2560 Fix calls to make_event_array.
2561
2562 * macros.c (Fend_kbd_macro): Fix call to make_event_array.
2563
2564 * alloc.c (make_event_array): Renamed from make_array.
2565 Chars that fit in a string are 0...127 and their meta variants.
2566
2567 * keyboard.c (make_lispy_event): Put meta and shift modifiers
2568 into an integer.
2569 (read_avail_input): Set the modifiers field in the events read.
2570 (kbd_buffer_get_event): Pass thru integer event untruncated.
2571 (read_char): Likewise.
2572 (read_key_sequence, read_char): Only -1 means EOF.
2573 (kbd_buffer_store_event): Don't ignore 0200 bit in quit char.
2574 (follow_key): Use new meta bit flag.
2575
2576 * xterm.c (XTread_socket): Set bufp->modifiers for all kinds of keys.
2577
2578 * keymap.c (Flookup_key): Use 0x800000 as meta-bit if from vector.
2579 (Fdefine_key): Likewise.
2580
2581 1993-03-04 Richard Stallman (rms@mole.gnu.ai.mit.edu)
2582
2583 * dgux.h (ELF): Handle this parameter.
2584 [! COFF] (UNEXEC, USG_SHARED_LIBRARIES): New definitions.
2585 (_BSD_TTY_FLAVOR): Don't define if already defined.
2586 (C_COMPILER, LINKER, MAKE_COMMAND): New definitions.
2587
2588 1993-03-04 Jim Blandy (jimb@totoro.cs.oberlin.edu)
2589
2590 * keyboard.c (Fsuspend_emacs): Remember that `suspend-hooks' isn't
2591 necessarily bound.
2592
2593 1993-03-04 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
2594
2595 * Makefile.in (xmakefile): Add missing quote.
2596
2597 1992-03-03 Wilson H. Tien (wtien@urbana.mcd.mot.com)
2598
2599 * unexelf.c (unexec): Move data2 section header up so all section
2600 headers will be in ascending order. This will prevent the unexeced
2601 emacs that being processed by other applications (such as strip)
2602 to fail.
2603
2604 1993-03-02 Richard Stallman (rms@mole.gnu.ai.mit.edu)
2605
2606 * s/isc2-2.h (S_IFLNK): Add #undef.
2607 (C_SWITCH_SYSTEM): Add conditional definition.
2608 (NO_ASM, USE_UTIME, NO_X_DESTROY_DATABASE): Defined.
2609 (LIB_STANDARD): Alternate definition if __GNUC__.
2610 (SIGTSTP): #undef deleted.
2611 (LIBS_SYSTEM): Define only if HAVE_X_WINDOWS.
2612 * s/isc3-0.h: New file.
2613
2614 * unexelf.c: Handle rounding of section boundaries.
2615 (round_up): New function.
2616
2617 1993-03-02 Karl Berry (karl@cs.umb.edu)
2618
2619 * s/isc2-2.h (USG_SHARED_LIBRARIES, CLASH_DETECTION, NO_FCHMOD):
2620 Define.
2621 (HAVE_TIMEVAL): Do not define.
2622 (NO_ASM): Only define once.
2623
2624 1993-03-02 Jim Blandy (jimb@totoro.cs.oberlin.edu)
2625
2626 * print.c (float_to_string): Define buf to be an unsigned char, to
2627 match the data field of strings.
2628
2629 * keyboard.c (kbd_buffer_get_event): Protect assignment to
2630 Vlast_event_frame in a "#ifdef MULTI_FRAME" clause.
2631
2632 * syntax.c (describe_syntax_1): Delete excess arg to describe_vector.
2633 (check_syntax_table): Delete excess arg to wrong_type_argument.
2634
2635 1993-03-01 Jim Blandy (jimb@totoro.cs.oberlin.edu)
2636
2637 * buffer.c (buffer-undo-list): Doc fix.
2638
2639 * xdisp.c (redisplay): Protect calls to request_sigio and
2640 unrequest_sigio in "#ifdef SIGIO" clauses; these are not defined
2641
2642 * cmds.c (Fnewline): Doc fix.
2643
2644 1993-03-01 Richard Stallman (rms@mole.gnu.ai.mit.edu)
2645
2646 * insdel.c (del_range): Update point before offset_intervals.
2647
2648 * intervals.h: Don't include dispextern.h more than once.
2649 (INTERVAL_VISIBLE_P): NILP test was backwards.
2650
2651 * intervals.c (intervals_equal): Handle one arg null and other not.
2652 (set_point): Considerable rewrite. Handle intervals both
2653 before and after the old and new point values.
2654 Redo handling of invisible intervals, and of motion hooks.
2655 (textget): New function.
2656
2657 * textprop.c (Fadd_text_properties, Fremove_text_properties):
2658 Add len>0 as condition for main loop.
2659 Abort if reach a null interval.
2660 (Fset_text_properties): Abort if reach a null interval.
2661 (Ftext_properties_at, Fget_text_property):
2662 Return nil if POS is end of OBJECT.
2663 (add_properties): Use NILP to test result of Fequal.
2664 No longer inline.
2665 (remove_properties): No longer inline.
2666 (set_properties): Total rewrite as function.
2667 (validate_interval_range): Don't alter *begin at end of buffer.
2668 But do search for a position just before the end.
2669 Return null for an empty string.
2670
2671 1993-02-28 Richard Stallman (rms@mole.gnu.ai.mit.edu)
2672
2673 * Makefile.in (emacs, temacs): Add @true to prevent Make confusion.
2674
2675 * lread.c (read1--strings with properties case):
2676 Detect end of list, and invalid syntax, using recursive read1 calls.
2677
2678 * intervals.c (graft_intervals_into_buffer):
2679 create_root_interval needs Lisp object arg.
2680 Set tree to new root interval.
2681 Don't test TREE_LENGTH if buffer has no intervals.
2682 Rearrange code to copy properties so that it really
2683 does merge the inserted ones into the inherited ones.
2684 (traverse_intervals): Pass `arg' on recursive calls.
2685 (split_interval_left): Use new_length as basis for length of new.
2686
2687 * print.c (print--string case):
2688 Any non-null interval means print intervals.
2689 Get rid of var obj1; just use obj.
2690
2691 * textprop.c (validate_interval_range): Allow 0 as position in string.
2692 Add 1 to specified string positions.
2693 (Fprevious_single_property_change): Subtract 1 if object is string.
2694 (Fnext_single_property_change): Likewise.
2695 (Fprevious_property_change, Fnext_property_change): Likewise.
2696
2697 * xterm.c (x_do_pending_expose, XTframe_rehighlight):
2698 (x_window_to_scrollbar): Use XGCTYPE.
2699
2700 1993-02-28 Jim Blandy (jimb@totoro.cs.oberlin.edu)
2701
2702 Use the term `scroll bar', instead of `scrollbar'.
2703 * alloc.c, frame.c, frame.h, indent.c, keyboard.c, keyboard.h,
2704 lisp.h, term.c, termhooks.h, window.c, window.h, xdisp.c, xfns.c,
2705 xterm.c, xterm.h: Terminology changed.
2706
2707 Don't generate switch-frame events by checking Vlast_event_frame;
2708 use a separate variable for that bookkeeping. In order to
2709 generate them properly, we may need to fiddle with it.
2710 * keyboard.c (internal_last_event_frame): New variable.
2711 (command_loop_1): Check internal_last_event_frame, not
2712 Vlast_event_frame.
2713 (read_char, kbd_buffer_store_event): Set both Vlast_event_frame and
2714 internal_last_event_frame.
2715 (kbd_buffer_get_event): Check internal_last_event_frame to decide
2716 whether to generate a switch-frame event. Set Vlast_event_frame
2717 after each event.
2718 (init_keyboard): Initialize both Vlast_event_frame and
2719 internal_last_event_frame.
2720 * keyboard.h (internal_last_event_frame): Add extern declaration
2721 for this.
2722 * frame.c (Vlast_event_frame): Remove external declaration for
2723 this.
2724 (Fselect_frame): Set internal_last_event_frame to Qnil to force a
2725 switch-frame event, not Vlast_event_frame; the latter is supposed
2726 to convey information to the user.
2727
2728 * keyboard.c (syms_of_keyboard): Doc fix for unread_command_events.
2729
2730 1993-02-26 Richard Stallman (rms@mole.gnu.ai.mit.edu)
2731
2732 * keyboard.c (syms_of_keyboard): Doc fix.
2733
2734 1993-02-26 Jim Blandy (jimb@totoro.cs.oberlin.edu)
2735
2736 * ymakefile (LIBES): Exchange the order of LIB_MATH and
2737 LIB_STANDARD, to avoid duplicated symbols under SunOS.
2738
2739 * buffer.c (syms_of_buffer): Add the extra argument to the
2740 commented-out DEFVAR_PER_BUFFER for `mode-line-format', so
2741 make-docfile will find the docstring properly.
2742
2743 1993-02-25 Richard Stallman (rms@mole.gnu.ai.mit.edu)
2744
2745 * ymakefile (intervals.o): Dep on intervals.c, not textprop.c.
2746
2747 * textprop.c (remove_properties): Call modify_buffer.
2748 (add_properties): Likewise.
2749
2750 * undo.c (record_property_change): Typo in last change.
2751
2752 * cmds.c (syms_of_cmds): Typo in last change.
2753
2754 * print.c (print): Never declare OBJ arg as `register'.
2755 Special handling for strings with intervals.
2756 (print_intervals): New function.
2757 * lread.c (read1): Handle reading strings with properties.
2758
2759 * intervals.c (traverse_intervals): New arg ARG.
2760 * alloc.c (mark_interval): Add ignored arg.
2761 (mark_interval_tree): Pass new arg to traverse_intervals.
2762
2763 1993-02-24 Jim Blandy (jimb@totoro.cs.oberlin.edu)
2764
2765 * xterm.c (x_window_to_scrollbar, x_scrollbar_expose,
2766 x_scrollbar_handle_click, x_scrollbar_note_movement): Remember
2767 that these can be called during GC; we have to ignore mark bits.
2768 * lisp.h (GC_NILP, GC_EQ): New macros to help with that.
2769
2770 * print.c (float_to_string): Define buf to be an unsigned char, to
2771 match the data field of strings.
2772
2773 * lisp.h (RETURN_UNGCPRO): Remove "do ... while (0)" wrapper
2774 around macro.
2775
2776 * data.c (Fstring_to_number): Declare p to be an unsigned char, to
2777 match the data field of strings.
2778
2779 * data.c (Fstring_to_number): Just skip tabs and spaces; don't use
2780 the <ctype.h> macros. The <ctype.h> stuff apparently varies from
2781 locale to locale more than we'd like. Don't include <ctype.h>.
2782
2783 1993-02-24 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
2784
2785 * buffer.c (Ferase_buffer): Added interactive spec.
2786
2787 1993-02-24 Richard Stallman (rms@mole.gnu.ai.mit.edu)
2788
2789 * undo.c (Fprimitive_undo): Handle property-change undo entry.
2790 (record_property_change): New function.
2791
2792 * textprop.c (Fadd_text_properties): Pass new arg to add_properties.
2793 (Fremove_text_properties): Likewise.
2794 (add_properties, remove_properties): New arg OBJECT. Record undo info.
2795 (Fput_text_property): New function.
2796
2797 * buffer.c (syms_of_buffer): Doc fix.
2798
2799 * cmds.c (syms_of_cmds): New var `overwrite-binary-mode'.
2800 (internal_self_insert): Handle that var.
2801
2802 1993-02-23 Richard Stallman (rms@mole.gnu.ai.mit.edu)
2803
2804 * keyboard.c (read_avail_input): Args to `kill' were backwards.
2805
2806 1993-02-23 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
2807
2808 * alloc.c (make_pure_float): Assure that PUREBEG + pureptr is
2809 aligned, not pureptr itself.
2810
2811 * emacs.c (fatal_error_signal): Unblock the signal before we try
2812 to deliver it to ourselves. #include "syssignal.h" to get the
2813 right definitions.
2814
2815 * abbrev.c (Fexpand_abbrev): Only copy the text we're going to
2816 expand - from wordstart to wordend, not from wordstart to point -
2817 into the buffer. There might be non-word text between wordend and
2818 point.
2819
2820 1993-02-23 Richard Stallman (rms@geech.gnu.ai.mit.edu)
2821
2822 * unexec.c (adjust_lnnoptrs): Handle symentry.n_type == 0x2400.
2823 (make_hdr) [USG_SHARED_LIBRARIES]: Set bias using bss_start.
2824
2825 1993-02-22 Jim Blandy (jimb@totoro.cs.oberlin.edu)
2826
2827 * process.c: Make sure we don't miss processes exiting, by having
2828 the sigchld handler clear *input_available_clear_time.
2829 (wait_reading_process_input): Check for process activity after
2830 setting the timeout and calling set_waiting_for_input.
2831 (sigchld_handler): If the process which has exited is one we care
2832 about, clear *input_available_clear_time.
2833
2834 * frame.c (Fselect_frame): Set Vlast_event_frame to Qnil after
2835 switching frames, to make sure we'll get a switch-frame event.
2836 (Vlast_event_frame): Add external declaration for this here.
2837
2838 * alloc.c (make_pure_float): Align pureptr according to __alignof,
2839 if it's available, or sizeof (struct Lisp_Float) if it's not.
2840
2841 * .gdbinit (xprocess): New command.
2842
2843 * floatfns.c (Flogb): Always implement this by calling Flog, even
2844 on non-USG systems, which supposedly have a logb function.
2845 (Fround): Always implement this by calling floor, even on systems
2846 that have rint.
2847
2848 * process.c (process_send_signal): Use TERMIOS functions in
2849 preference to BSD ioctls. Some systems attempt to provide the BSD
2850 functions for backward compatibility, and get it wrong.
2851
2852 * data.c (Fstring_to_number): Skip initial spaces, to make Emacs
2853 lisp parse consistently on different operating systems.
2854 #include <ctype.h> to help with this.
2855
2856 * data.c (Fstring_to_int): Rename this to Fstring_to_number, since
2857 it parses floats as well as integers. Fix docstring.
2858 (syms_of_data): Fix defsubr.
2859 (wrong_type_argument): Change use.
2860 (Fint_to_string): Doc fix.
2861 * lisp.h (Fstring_to_int): Change extern declaration.
2862
2863 1993-02-22 Charles Hannum (mycroft@hal.gnu.ai.mit.edu)
2864
2865 * ibmrs6000.h (C_ALLOCA, STACK_DIRECTION): Only define if HAVE_ALLOCA
2866 is not defined.
2867 (X_DEFAULT_FONT): Change to `fixed', as `Rom14.500' only works on the
2868 console.
2869
2870 * aix3-1.h: Changes from 18.58.
2871 (HAVE_TERMIOS): Changed from HAVE_TERMIO.
2872 (unix): Define.
2873
2874 * sysdep.c (child_setup_tty): Recognize HAVE_TERMIOS as well as
2875 HAVE_TERMIO.
2876
2877 * xrdb.c (getuid): Remove declaration.
2878
2879 * systty.h [HAVE_TERMIOS]: Include fcntl.h.
2880
2881 * systime.h [_AIX]: Move test outside of previous #if.
2882 (EMACS_GET_TZ_OFFSET) [USG]: Don't declare twice. Prefer tzset.
2883
2884 * keyboard.c (init_keyboard): Recognize HAVE_TERMIOS as well as
2885 HAVE_TERMIO.
2886
2887 * aix3-2.h: New file. Specifies difference between AIX 3.1 and 3.2.
2888
2889 1993-02-20 Richard Stallman (rms@wookumz.gnu.ai.mit.edu)
2890
2891 * keyboard.c (Fsuspend_emacs): Make tem not register.
2892
2893 * syntax.c (Fforward_comment): New function.
2894
2895 * search.c (Fskip_syntax_backward): New function.
2896 (Fskip_syntax_forward): Likewise.
2897 (skip_chars): New argument syntaxp.
2898
2899 * alloc.c (Fmemory_limit): Doc fix.
2900
2901 1993-02-19 Richard Stallman (rms@mole.gnu.ai.mit.edu)
2902
2903 * keyboard.c (Fsuspend_emacs): Rename suspend-hook to suspend-hooks
2904 and run it manually.
2905
2906 * keymap.c (describe_map): Call Fkey_description before build_string.
2907
2908 1993-02-18 Richard Stallman (rms@mole.gnu.ai.mit.edu)
2909
2910 * keyboard.c (Fopen_dribble_file): Doc fix.
2911
2912 * lread.c (syms_of_lread): Doc fix.
2913
2914 1993-02-18 Jim Blandy (jimb@totoro.cs.oberlin.edu)
2915
2916 * textprop.c (Fget_text_property): Fix typo in function's declaration.
2917
2918 * floatfns.c (IN_FLOAT): Make this work properly when SIGTYPE is void.
2919
2920 * alloc.c: Add description lines to the top of each page.
2921
2922 * alloc.c (mark_interval_tree): Remove spurious & in front of
2923 function name.
2924
2925 * alloc.c (UNMARK_BALANCE_INTERVALS): Fix to accomodate compilers
2926 other than GCC, which do not allow casts on the LHS of an
2927 assignment.
2928
2929 * config.h.in: #define USE_TEXT_PROPERTIES by default.
2930
2931 * alloc.c (mark_object, mark_buffer): Remove some unused
2932 variables.
2933
2934 * buffer.c (Fswitch_to_buffer): Pass the correct number of
2935 arguments to Fnext_window.
2936
2937 * buffer.c (Fbury_buffer): Pass the correct number of arguments to
2938 Fother_buffer.
2939
2940 * bytecode.c (Fbyte_code): Pass the correct number of arguments to
2941 temp_output_buffer_show.
2942
2943 * callint.c (Fcall_interactively): Pass the correct number of
2944 arguments to wrong_type_argument.
2945 * casefiddle.c (caseify_object): Same.
2946 * casetab.c (check_case_table): Same.
2947 * search.c (Fstore_match_data): Same.
2948 * syntax.c (check_syntax_table): Same.
2949
2950 * callproc.c (delete_temp_file): Declare this to return
2951 Lisp_Object, to smooth type-checking.
2952
2953 * data.c (wrong_type_argument): Pass the correct number of
2954 arguments to Fstring_to_int.
2955
2956 * data.c (arithcompare): Add a default case which aborts, just to
2957 make me happy.
2958
2959 * dispnew.c (sit_for): Pass the correct number of arguments to
2960 gobble_input.
2961
2962 * editfns.c (Fmessage): Don't forget to return a value when
2963 args[0] == Qnil.
2964
2965 * fns.c (Fequal): Call internal_equal to recurse on elements of
2966 lists and vectors, not Fequal.
2967
2968 * frame.c (Fdelete_frame): If FRAME is a dead frame, return Qnil,
2969 not nothing.
2970
2971 * keyboard.c (echo_char): Apply XINT to c before passing it to
2972 push_key_description.
2973
2974 * keyboard.c (recursive_edit_1, command_loop_1): Pass the proper
2975 number of arguments to unbind_to.
2976 * lread.c (Feval_buffer): Same.
2977 * window.c (Fscroll_other_window): Same.
2978
2979 * keyboard.c (command_loop_1): Apply XINT to c before passing it
2980 to internal_self_insert and direct_output_for_insert.
2981
2982 * keyboard.c (make_lispy_movement): Rename the variable `part'
2983 declared in the block handling scrollbar movement to `part_sym',
2984 to avoid potential conflicts with the argument named `part'.
2985 Apparently the semantics of expressions like this are unclear.
2986
2987 * keyboard.c (Fread_key_sequence): Backslash the newlines in this
2988 docstring.
2989 * textprop.c (Fget_text_property): Same.
2990
2991 * keymap.c (Fdescribe_vector): Pass the proper number of arguments
2992 to describe_vector.
2993 * syntax.c (describe_syntax_1): Same.
2994
2995 * minibuf.c (Fdisplay_completion_list): Pass the proper number of
2996 arguments to Flength.
2997 * xmenu.c (list_of_items): Same.
2998
2999 * window.c (Fset_window_configuration): Pass the proper number of
3000 arguments to Fselect_frame.
3001
3002 * xfns.c (x_set_icon_type): Pass the proper number of arguments to
3003 x_bitmap_icon.
3004
3005 * xterm.c (XTread_socket): Pass the proper number of arguments to
3006 construct_mouse_click.
3007
3008 * config.h.in (HAVE_CONST): New macro. If it's not #defined, #define
3009 const to be the empty string.
3010
3011 * config.h.in: If we're not __STDC__, define volatile to be the
3012 empty string.
3013
3014 * buffer.h: Remove code which #includes "undo.h" if lint is
3015 defined. undo.h no longer exists.
3016
3017 * buffer.c (buffer_slot_type_mismatch): Make symbol_name an
3018 unsigned char *, to match the type of a string's data.
3019
3020 1993-02-17 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
3021
3022 * process.c (Fstart_process): Jimb's change of December 11
3023 had a misplaced paren. This only became apparent because of
3024 jimb's change on February 8 to Fexpand_file_name.
3025 * callproc.c (Fcall_process): Ditto.
3026
3027 1993-02-17 Jim Blandy (jimb@totoro.cs.oberlin.edu)
3028
3029 * callproc.c (init_callproc): Move the initialization of
3030 Vprocess_environment to its own function.
3031 (set_process_environment): This is that.
3032 * emacs.c (main): Call set_process_environment earlier than
3033 init_callproc.
3034
3035 1993-02-14 Richard Stallman (rms@mole.gnu.ai.mit.edu)
3036
3037 * buffer.c (Frename_buffer): Make prefix arg set UNIQUE.
3038
3039 1993-02-14 Jim Blandy (jimb@totoro.cs.oberlin.edu)
3040
3041 * xterm.c (x_set_window_size): Call change_frame_size instead of
3042 just setting the `rows' and `cols' members of the frame, and
3043 leaving the window tree in complete disarray.
3044
3045 * dispnew.c (remake_frame_glyphs): When re-allocating the frame's
3046 message buffer when echo_area_glyphs is pointing at it, relocate
3047 echo_area_glyphs too. Same for previous_echo_glyphs.
3048 * window.h (previous_echo_glyphs): Add extern declaration for this.
3049
3050 * frame.c (Fframe_parameters): Report the `minibuffer' parameter of
3051 minibufferless frames as nil, not `none'.
3052 (Qnone): Remove declaration and initialization for this. It's not
3053 needed anymore.
3054 * xfns.c (Qnone): Add them here; we still accept "none" as a valid
3055 value for the `minibuffer' parameter.
3056
3057 * xfns.c (x_frame_params): Remember that the parameters are called
3058 "auto-raise" and "auto-lower", not "autoraise" and "autolower".
3059
3060 * xdisp.c (message): Set echo_frame to the frame whose message buf
3061 we want to use, not to the message buf itself.
3062
3063 1993-02-13 Richard Stallman (rms@mole.gnu.ai.mit.edu)
3064
3065 * textprop.c (Fadd_text_properties): Put OBJECT arg last.
3066 Make it optional.
3067 (Fset_text_properties, Fremove_text_properties): Likewise.
3068 (Fnext_single_property_change, Fprevious_single_property_change):
3069 (Fnext_property_change, Fprevious_property_change): Likewise.
3070 (Ferase_text_properties): #if 0.
3071 (Fget_text_property): New function.
3072
3073 * s/irix4-0.h (C_SWITCH_MACHINE): Don't define if GCC.
3074
3075 1993-02-13 Jim Blandy (jimb@totoro.cs.oberlin.edu)
3076
3077 * s/usg5-4.h: #include "usg5-3.h", not "s-usg5-3.h".
3078
3079 1993-02-11 Jim Blandy (jimb@totoro.cs.oberlin.edu)
3080
3081 * xterm.c (x_io_error_quitter): New function.
3082 (x_error_quitter): Note that this is only used for protocol
3083 errors now, not I/O errors.
3084 (x_term_init): Set the I/O error handler to x_io_error_quitter.
3085
3086 1993-02-11 Richard Stallman (rms@mole.gnu.ai.mit.edu)
3087
3088 * editfns.c (Finsert_buffer_substring): Proper error for non-ex buffer.
3089 (Fcompare_buffer_substrings): Likewise.
3090
3091 1993-02-10 Jim Blandy (jimb@totoro.cs.oberlin.edu)
3092
3093 * fileio.c (Fdo_auto_save): If NO_MESSAGE is non-nil, don't tell
3094 users that buffers have shrunk a lot. This is called when Emacs
3095 is crashing, so we don't want to run any code that isn't
3096 absolutely necessary. Also, autosave buffers which don't have
3097 specially handled autosave file names first.
3098
3099 1993-02-10 Richard Stallman (rms@mole.gnu.ai.mit.edu)
3100
3101 * editfns.c (Fcompare_buffer_substrings): Ignore case
3102 if case-fold-search is non-nil.
3103
3104 1993-02-08 Jim Blandy (jimb@totoro.cs.oberlin.edu)
3105
3106 * keymap.c (Flookup_key, Fkey_binding, Flocal_key_binding,
3107 Fglobal_key_binding, Fminor_mode_key_binding): Add a new optional
3108 argument ACCEPT_DEFAULT, to control whether this function sees
3109 bindings for t.
3110 (Fwhere_is_internal, describe_map_tree, describe_map_2,
3111 describe_vector): Pass the proper arguments to Flookup_key.
3112
3113 * fileio.c (Fexpand_file_name): Pass DEFALT through
3114 Fexpand_file_name before using it.
3115
3116 * fileio.c (Fexpand_file_name): Doc fix.
3117
3118 1993-02-07 Jim Blandy (jimb@totoro.cs.oberlin.edu)
3119
3120 * xdisp.c (message): Use the message buffer of the frame we're
3121 going to display the message on to format the message, not that of
3122 the selected frame.
3123
3124 1993-02-07 Richard Stallman (rms@mole.gnu.ai.mit.edu)
3125
3126 * Makefile (emacs, temacs): Add no-op commands to these rules.
3127
3128 * dispnew.c (char_ins_del_cost): Use FRAME_WIDTH, not FRAME_HEIGHT.
3129
3130 * editfns.c (Fcompare_buffer_substrings): New function.
3131
3132 1993-02-06 Richard Stallman (rms@mole.gnu.ai.mit.edu)
3133
3134 * keyboard.c (extra_keyboard_modifiers): New Lisp var.
3135 (read_char): Support ctl and meta bits in extra_keyboard_modifiers.
3136 * xterm.c (XTread_socket): Support extra_keyboard_modifiers.
3137
3138 1993-01-29 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
3139
3140 * window.c (Fscroll_left, Fscroll_right): Don't forget to apply
3141 XWINDOW to selected_window before passing it to window_internal_width.
3142
3143 * xmenu.c (Fx_popup_menu): Don't forget to turn the frame-relative
3144 coordinates for the menu position into root-window-relative
3145 coordinates.
3146
3147 * lread.c (read1): Although digits followed by a '.' are an
3148 integer, a single . by itself (like, say, \.) should be a symbol.
3149
3150 1993-01-25 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
3151
3152 * fns.c (internal_equal): Protect the clause for comparing numbers
3153 of different types with a "#ifdef LISP_FLOAT_TYPE".
3154
3155 1993-01-25 Richard Stallman (rms@mole.gnu.ai.mit.edu)
3156
3157 * s/hpux8.h [__GNUC__] (LD_SWITCH_SYSTEM): Remove -a.
3158 [__GNUC__] (ORDINARY_LINK): Defined.
3159
3160 * m/sparc.h [TERMINFO]: Don't define LIBS_TERMCAP.
3161
3162 1993-01-25 Jim Blandy (jimb@totoro.cs.oberlin.edu)
3163
3164 `live-frame-p' has become `frame-live-p'.
3165 * frame.c (Qlive_frame_p): Renamed to Qframe_live_p.
3166 (Flive_frame_p): Renamed to Fframe_live_p.
3167 (syms_of_frame): Defsubrs and initializations adjusted.
3168 * frame.h (CHECK_LIVE_FRAME): Use Qframe_live_p, not Qlive_frame_p.
3169 (Qlive_frame_p): Changed extern declaration to Qframe_live_p.
3170
3171 * lread.c (read1): Treat a string of digits ending in a period as
3172 an integer.
3173
3174 Turn `first-change-function' into `first-change-hook'.
3175 * buffer.c (Vfirst_change_function): Renamed to Vfirst_change_hook.
3176 (Qfirst_change_hook): New symbol, for passing to Vrun_hooks.
3177 (syms_of_buffer): Change DEFVAR; initialize Qfirst_change_hook.
3178 * buffer.h (Vfirst_change_function): Renamed to Vfirst_change_hook.
3179 (Qfirst_change_hook): Added declaration.
3180 * insdel.c (signal_before_change): Change references to
3181 Vfirst_change_function, and apply Vrun_hooks to
3182 Qfirst_change_hook, instead of just calling Vfirst_change_function
3183 directly.
3184
3185 x-selection-value has been renamed to x-selection.
3186 x-own-selection has been renamed to x-set-selection, and the order
3187 of its arguments has been reversed, for consistency with other
3188 lisp functions like put and aset.
3189 * xselect.c (Fx_own_selection): Rename to Fx_set_selection,
3190 reverse the order of the args, and therefore make the type
3191 non-optional. Doc fix.
3192 (Fx_selection_value): Rename to Fx_selection; make the type
3193 argument non-optional, for symmetry with Fx_set_selection. Doc
3194 fix.
3195 (syms_of_xselect): Adjusted.
3196
3197 * xselect.c (Fx_own_selection, Fx_selection_value): Remove "#if
3198 0"'ed code which made cut buffers look like a special selection
3199 type.
3200
3201 * xfns.c (Vx_selection_value): Removed extern declaration for
3202 this; it's never used.
3203
3204 * data.c (Fcompiled_function_p): Renamed to Fbyte_code_function_p.
3205 (syms_of_data): Adjusted.
3206
3207 * data.c (Fnumberp, Fnumber_or_marker_p): Use the NUMBERP macro,
3208 instead of writing it out.
3209
3210 * fns.c (internal_equal): If the operands are both numbers,
3211 compare them numerically, so that (equal 1.0 1) => t.
3212 Compare Lisp_Compiled objects like vectors.
3213
3214 Add lisp functions to raise and lower frames.
3215 * termhooks.h (frame_raise_lower_hook): New hook.
3216 * term.c (frame_raise_lower_hook): Define it.
3217 * frame.c (Fframe_to_front, Fframe_to_back): New functions.
3218 (syms_of_frame): defsubr them.
3219 * xterm.c (XTframe_raise_lower): New function.
3220 (x_term_init): Set frame_raise_lower_hook to XTframe_raise_lower.
3221
3222 * frame.c: Doc fixes.
3223
3224 1993-01-24 Jim Blandy (jimb@totoro.cs.oberlin.edu)
3225
3226 Make the cursor style a frame parameter.
3227 * xterm.h (struct x_display): Rename the `text_cursor_kind' member
3228 to `current_cursor'; add new member `desired_cursor'.
3229 (FRAME_DESIRED_CURSOR): New accessor for new member.
3230 * xterm.c (x_display_bar_cursor): Rewritten so as not to damage
3231 the characters the cursor is displayed over, and to handle
3232 transitions between box and bar styles.
3233 (x_display_bar_cursor, x_display_box_cursor): Use current_cursor
3234 instead of text_cursor_kind.
3235 (Vbar_cursor): Delete external declaration.
3236 (x_display_cursor): Use the FRAME_DESIRED_CURSOR accessor instead
3237 of Vbar_cursor to decide how to draw the cursor.
3238 * xfns.c (Vbar_cursor): Remove definition.
3239 (Qbar, Qbox, Qcursor_type): New symbols.
3240 (syms_of_xfns): Init and staticpro them; remove DEFVAR for
3241 Vbar_cursor.
3242 (x_set_cursor_type): New setter.
3243 (x_frame_parms): Add it to the list.
3244 (Fx_create_frame): Get default values for the cursor type.
3245
3246 * frame.c (Fmouse_position): Pass the appropriate arguments to
3247 *mouse_position_hook; the protocol was changed, but this caller
3248 wasn't fixed.
3249
3250 * xterm.c (XTclear_frame): Call x_scrollbar_clear.
3251 (x_scrollbar_clear): New function.
3252
3253 * xterm.c (XTflash): Totally rewritten. Only defined if
3254 HAVE_TIMEVAL and HAVE_SELECT are defined, since we use select for
3255 our timing.
3256 (timeval_subtract): New function, to help XTflash.
3257 (x_invert_frame): Removed. This didn't work anyway.
3258 (XTring_bell): Remove "#if 0" around call to XTflash, and remove
3259 calls to x_invert_frame. If both HAVE_TIMEVAL and HAVE_SELECT
3260 aren't defined, then just do the ordinary beep.
3261
3262 * window.c (Fscroll_other_window): Prefer windows on the selected
3263 frame, then look for windows on other visible frames.
3264
3265 * keyboard.c (Fmouse_click_p): Removed; with the 'e' spec, this
3266 isn't necessary anymore.
3267 (syms_of_keyboard): Remove defsubr for it.
3268 * keyboard.h (Fmouse_click_p): Remove extern declaration for it.
3269
3270 * xfns.c (gray_bits): Remove this declaration; the same data is in
3271 <X11/bitmaps/gray>. #include that instead.
3272 [not HAVE_X11] (x_set_border_pixel): Use gray_width and
3273 gray_height, instead of assuming that the bitmap is 16x16.
3274 (x_make_gc): Instead of creating a pixmap and then calling
3275 XPutImage to make it into a grey stipple, just call
3276 XCreatePixmapFromBitmapData to do it all at once.
3277
3278 * xterm.c (x_text_icon): Move the request for font information
3279 into the "not HAVE_X11" part of the function; the X11 code doesn't
3280 need this.
3281
3282 * xterm.c (x_wm_set_icon_pixmap): Instead of setting the
3283 icon_pixmap to None, just remove IconPixmapHint from the flags of
3284 the XWMHints structure.
3285
3286 * window.c (Fprevious_frame): Use prev_frame when we get to the
3287 end of the current frame, not next_frame. Doc fix.
3288 * frame.c (prev_frame): Remove "#if 0" from this function. It
3289 turns out we do need it, to make prev_frame work right.
3290
3291 * frame.c (next_frame): Check that FRAME is a live frame.
3292
3293 * frame.c (Fselect_frame): Remove "#ifdef MULTI_FRAME" clause
3294 around the code which calls Ffocus_frame; this code is already
3295 inside an "#ifdef MULTI_FRAME" clause.
3296 (next_frame, prev_frame, Fnext_frame): For the same reasons,
3297 remove the "#ifdef MULTI_FRAME" clause around these functions.
3298
3299 unread-command-event has been replaced by unread-command-events.
3300 * commands.h (unread_command_event): Change extern declaration.
3301 * keyboard.c (unread_command_event): Change the definition.
3302 (syms_of_keyboard): Change DEFVAR, and adjust the docstring.
3303 (command_loop_1, read_char, Finput_pending, Fdiscard_input,
3304 quit_throw_to_read_char, init_keyboard): Change to use
3305 unread_command_events, with the new semantics.
3306 * lread.c (read_char): Same.
3307 * minibuf.c (temp_echo_area_glyphs): Same.
3308 * xterm.c (unread_command_event): Remove external declaration for
3309 this; it is only used by obsolete code.
3310
3311 * Makefile.in: Some makes can't handle comments in the middle of
3312 commands; move them to before the whole rule.
3313
3314 1993-01-21 Jim Blandy (jimb@totoro.cs.oberlin.edu)
3315
3316 * keyboard.c (make_lispy_event): When handling a mouse click event
3317 on a window, change x and y from screen coordinates to window
3318 coordinates even when the click isn't in the text area.
3319
3320 * xterm.c (x_scrollbar_create): Remove code which asks for
3321 EastGravity for windows; Emacs can't correctly deal with them
3322 moving around unexpectedly.
3323
3324 * xterm.c (XTread_socket): Minor reformatting.
3325
3326 * xterm.c (x_set_window_size): Always mark the frame garbaged.
3327
3328 * window.c (Vmouse_window): Variable removed; it can't be handled
3329 properly without race conditions, and the events give you all the
3330 information you need anyway.
3331 (syms_of_window): Remove DEFVAR.
3332 * callint.c (Fcall_interactively): Change the `@' spec to select
3333 the window of the first parameterized event in the key sequence
3334 which invoked the command, instead of using Vmouse_window, which
3335 isn't even updated anymore. Adjust the documentation
3336 accordingly.
3337
3338 1993-01-20 Jim Blandy (jimb@totoro.cs.oberlin.edu)
3339
3340 * xterm.c (x_scrollbar_create): Set the scrollbars to use
3341 EastGravity.
3342
3343 * keyboard.c (make_lispy_event): Deal with button releases with no
3344 stored down-going position. Make sure we always store a Qnil in
3345 the right button_down_location element after using it.
3346
3347 1993-01-19 Jim Blandy (jimb@totoro.cs.oberlin.edu)
3348
3349 * frame.c (Fdelete_frame): Clear the frame's display after calling
3350 the window-system-dependent frame destruction routine. We
3351 no longer need to pass the display as a separate argument to
3352 x_destroy_window.
3353 * xterm.c (x_destroy_window): Put the code which clears out f's
3354 display here, right after we free the storage it points to. Put
3355 everything, including the code which clears x_focus_frame and
3356 x_highlight_frame, inside the BLOCK/UNBLOCK_INPUT pair.
3357
3358 * dispnew.c (Fredraw_display): Undo change of Jan 12; redraw only
3359 frames whose garbaged flag is set. The change to
3360 FRAME_SAMPLE_VISIBILITY on Jan 14 should address the problem better.
3361
3362 keyboard.c (read_char_menu_prompt): Test HAVE_X_WINDOWS, not
3363 HAVE_X_WINDOW.
3364
3365 The CPP symbol indicating whether or not we have mouse menu
3366 support under X Windows is HAVE_X_MENU, not not NO_X_MENU.
3367 * emacs.c (main): Test HAVE_X_MENU, instead of NO_X_MENU.
3368 * keyboard.c (read_char_menu_prompt): Same.
3369 * ymakefile: Same.
3370
3371 * keyboard.c (read_char, read_char_menu_prompt): Use the
3372 EVENT_HAS_PARAMETERS macro from keyboard.h, instead of writing it
3373 out.
3374
3375 * keyboard.c (read_char_menu_prompt): Doc fix.
3376
3377 * keyboard.c (read_char_menu_prompt): Fix test for no menus;
3378 comparing name to Qnil doesn't work if we are called with no maps.
3379
3380 * keymap.c (Fdefine_key): Call Fkey_description to make the string
3381 to use in the error message.
3382
3383 1993-01-18 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
3384
3385 * window.c (Fdisplay_buffer): Doc fix.
3386
3387 1993-01-16 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
3388
3389 * xterm.c (x_window_to_scrollbar): Search frames'
3390 condemned_scrollbars list as well; input might arrive during
3391 redisplay.
3392 (x_scrollbar_report_motion): Don't forget to BLOCK_INPUT.
3393 (XTjudge_scrollbars): Clear the condemned scrollbar list before
3394 traversing it, so we don't try to process an event on a scrollbar
3395 we've killed.
3396
3397 1993-01-15 Richard Stallman (rms@mole.gnu.ai.mit.edu)
3398
3399 * keyboard.c (Frecent_keys): Doc fix.
3400
3401 1993-01-14 Richard Stallman (rms@mole.gnu.ai.mit.edu)
3402
3403 * window.c (Fwindow_at): Doc fix.
3404
3405 1993-01-14 Jim Blandy (jimb@totoro.cs.oberlin.edu)
3406
3407 * xterm.c (x_scrollbar_create): Include PointerMotionHintMask in
3408 the event mask for scrollbars.
3409
3410 * dispnew.c (Fredraw_display): DEFUN was missing a closing paren.
3411
3412 * term.c (set_vertical_scrollbar_hook, condemn_scrollbars_hook,
3413 redeem_scrollbar_hook, judge_scrollbars_hook): Removed dumbo
3414 "externs" from these. They're supposed to be real definitions.
3415
3416 * .gdbinit: Add "-geometry +0+0" to default args.
3417 (xscrollbar): New command.
3418
3419 Make scrollbar structures into lisp objects, so that they can be
3420 GC'd; this allows windows and scrollbars can refer to each other
3421 without worrying about dangling pointers.
3422 * xterm.h (struct x_display): vertical_scrollbars and
3423 judge_timestamp members deleted.
3424 (struct scrollbar): Redesigned to be a template for a Lisp_Vector.
3425 (SCROLLBAR_VEC_SIZE, XSCROLLBAR, SCROLLBAR_PACK, SCROLLBAR_UNPACK,
3426 SCROLLBAR_X_WINDOW, SET_SCROLLBAR_X_WINDOW,
3427 VERTICAL_SCROLLBAR_INSIDE_WIDTH, VERTICAL_SCROLLBAR_TOP_RANGE,
3428 VERTICAL_SCROLLBAR_INSIDE_HEIGHT, VERTICAL_SCROLLBAR_MIN_HANDLE):
3429 New macros, to help deal with the lispy structures, and deal with
3430 the graphics.
3431 * frame.h (WINDOW_VERTICAL_SCROLLBAR): Macro deleted.
3432 (struct frame): New fields `scrollbars' and
3433 `condemned_scrollbars', for use by the scrollbar implementation.
3434 [MULTI_FRAME and not MULTI_FRAME] (FRAME_SCROLLBARS,
3435 FRAME_CONDEMNED_SCROLLBARS): Accessors for the new field.
3436 * window.h (struct window): Doc fix for vertical_scrollbar field.
3437 * frame.c (make_frame): Initialize the `scrollbars' and
3438 `condemned_scrollbars' fields of the new frame.
3439 * alloc.c (mark_object): Mark the `scrollbars' and
3440 `condemned_scrollbars' slots of frames.
3441 * xterm.c (x_window_to_scrollbar): Scrollbars are chained on
3442 frames' scrollbar field, not their x.display->vertical_scrollbars
3443 field.
3444 (x_scrollbar_create, x_scrollbar_set_handle, x_scrollbar_move,
3445 x_scrollbar_remove, XTset_vertical_scrollbar,
3446 XTcondemn_scrollbars, XTredeem_scrollbar, XTjudge_scrollbars,
3447 x_scrollbar_expose, x_scrollbar_handle_click,
3448 x_scrollbar_handle_motion): Substantially rewritten to correct
3449 typos and brainos, and to accomodate the lispy structures.
3450
3451 * xterm.c (x_scrollbar_background_expose): Function deleted; we
3452 don't want anything in the background there after all.
3453 (XTread_socket): Don't call x_scrollbar_background_expose. We
3454 don't care.
3455
3456 * frame.h (FRAME_SAMPLE_VISIBILITY): Make sure frame is marked as
3457 garbaged whenever it goes from invisible to visible.
3458 * dispextern.h (frame_garbaged): Move extern declaration from here...
3459 * frame.h (frame_garbaged): ... to here. The FRAME_SAMPLE_VISIBILITY
3460 macro uses it now, and this seems to be just as modular. Make a
3461 new page, just for this and message_buf_print.
3462 (struct frame): Doc fix for the `visible' field.
3463 * process.c: #include "frame.h" instead of "dispextern.h"; the
3464 only thing we care about from it is the frame_garbaged
3465 declaration.
3466 * ymakefile: Note dependency change.
3467
3468 * xfns.c (Fx_create_frame): After mapping the frame, call
3469 SET_FRAME_GARBAGED, not just plain FRAME_GARBAGED.
3470
3471 * window.c (window_internal_width): New function, which accounts
3472 for scrollbars if present.
3473 * lisp.h (window_internal_height, window_internal_width): Add
3474 extern declarations for these.
3475 * dispnew.c (direct_output_for_insert, direct_output_forward_char,
3476 buffer_posn_from_coords): Use window_internal_width instead of
3477 writing out its definition.
3478 * indent.c (compute_motion): Doc fix; mention scrollbars and
3479 window_internal_width.
3480 (pos_tab_offset, Fvertical_motion): Use window_internal_width
3481 instead of writing it out.
3482 * window.c (Fpos_visible_in_window_p, Fwindow_width, Fscroll_left,
3483 Fscroll_right): Same.
3484 * xdisp.c (redisplay, try_window, try_window_id,
3485 display_text_line): Same.
3486
3487 * xdisp.c (display_string): Add new variable `f', to be W's
3488 frame. Use it to set desired_glyphs, and to get the frame's width
3489 to decide whether or not to draw vertical bars.
3490
3491 * xdisp.c (display_text_line): If we're using vertical scrollbars,
3492 don't draw the vertical bars separating side-by-side windows.
3493 (display_string): Same thing. Draw spaces to fill in the part of
3494 the mode line that is under the scrollbar in partial-width
3495 windows.
3496
3497 * xfns.c (Qvertical_scrollbars): New symbol. Use it as the name
3498 of the parameter which decides whether or not the frame has
3499 scrollbars, instead of Qvertical_scrollbar.
3500 (Fx_create_frame): Adjusted accordingly.
3501 (syms_of_xfns): Initialize and staticpro Qvertical_scrollbars.
3502 (x_set_vertical_scrollbar): Renamed to x_set_vertical_scrollbars.
3503 (x_frame_parms): Adjusted accordingly.
3504
3505 * xterm.h (CHAR_TO_PIXEL_WIDTH, CHAR_TO_PIXEL_HEIGHT,
3506 PIXEL_TO_CHAR_WIDTH, PIXEL_TO_CHAR_HEIGHT): Rewritten, using:
3507 (CHAR_TO_PIXEL_ROW, CHAR_TO_PIXEL_COL, PIXEL_TO_CHAR_ROW,
3508 PIXEL_TO_CHAR_COL): New macros.
3509 * xfns.c [not HAVE_X11] (Fx_create_frame): Use the
3510 PIXEL_TO_CHAR_{HEIGHT,WIDTH} macros to figure the frame's
3511 character size, and the CHAR_TO_PIXEL* macros for vice versa.
3512 * xterm.c (XTwrite_glyphs, XTclear_end_of_line, stufflines,
3513 scraplines, dumprectangle, pixel_to_glyph_coords, x_draw_box,
3514 clear_cursor, x_display_bar_cursor, x_draw_single_glyph,
3515 x_set_mouse_position): Use the CHAR_TO_PIXEL_* macros.
3516
3517 * xterm.c (x_wm_set_size_hint): The max_width and max_height
3518 members of the size_hints are expressed in pixels, not columns.
3519
3520 * xterm.c (x_set_window_size): Remove ibw var; it's not used.
3521 Set FRAME_WIDTH (f) to cols instead of rows. Duh.
3522
3523 * xterm.c (pixel_to_glyph_coords): Properly set *bounds to the
3524 character cell bounding the position, even when the position is
3525 off the frame.
3526
3527 * xfns.c (x_set_name): To request that the modelines be redrawn,
3528 execute the statement "update_mode_lines = 1;" instead of the
3529 silly statement "update_mode_lines;".
3530
3531 * xfns.c (x_set_vertical_scrollbars): Don't try to set the
3532 X window's size if the frame's X window hasn't been created yet.
3533
3534 * xfns.c (x_figure_window_size): Set the frame's
3535 vertical_scrollbar_extra field before trying to calculate its
3536 pixel dimensions.
3537
3538 * xfns.c (x_window): When calling x_implicitly_set_name for the
3539 sake of drawing the name for the first time, remember to clear and
3540 set the frame's explicit_name member as well as its name member.
3541 (Fx_create_frame): Set the frame's explicit_name member if the
3542 user specified the name explicitly.
3543
3544 * xdisp.c (display_text_line): Use the usable internal width of
3545 the window, as calculated above, as the limit on the length of the
3546 overlay arrow's image, rather than using the window's width field,
3547 less one.
3548
3549 * xdisp.c (redisplay): Call condemn_scrollbars_hook and
3550 judge_scrollbars_hook whenever they are set, not just when the
3551 frame has vertical scrollbars.
3552
3553 * termhooks.h (mouse_position_hook): Doc fix.
3554 (set_vertical_scrollbar_hook): This doesn't return anything any
3555 more, and doesn't take a struct scrollbar * argument any more.
3556 (condemn_scrollbars_hook, redeem_scrollbar_hook,
3557 judge_scrollbars_hook): Doc fixes.
3558 * term.c (mouse_position_hook): Doc fix.
3559 (set_vertical_scrollbar_hook): This doesn't return
3560 anything any more. Doc fixes.
3561 * keyboard.c (kbd_buffer_get_event): Receive the scrollbar's
3562 window from *mouse_position_hook and pass it to
3563 make_lispy_movement, instead of working with a pointer to a struct
3564 scrollbar.
3565 (make_lispy_event): We don't need a window_from_scrollbar function
3566 anymore; we are given the window directly in *EVENT.
3567 Unify the code which generates
3568 text-area mouse clicks and scrollbar clicks; use the same code to
3569 distinguish clicks from drags on the scrollbar as in the text area.
3570 Distinguish clicks from drags by storing a copy of the lispy
3571 position list returned as part of the event.
3572 (button_down_location): Make this a lisp vector, rather than an
3573 array of random structures.
3574 (struct mouse_position): Remove this; it's been replaced by a lisp
3575 list.
3576 (make_lispy_movement): Accept the scrollbar's window as a
3577 parameter, rather than the scrollbar itself.
3578 If FRAME is zero, assume that the other arguments are garbage.
3579 (syms_of_keyboard): No need to staticpro each window of
3580 button_down_location now; just initialize and staticpro it.
3581 * window.c (window_from_scrollbar): Function deleted; no longer
3582 needed.
3583 * xdisp.c (redisplay_window): Just pass the window to
3584 set_vertical_scrollbar hook; don't pass the scrollbar object too.
3585 * xterm.c (XTmouse_position): Don't return a pointer to the
3586 scrollbar for scrollbar motion; instead, return the scrollbar's
3587 window.
3588
3589 * xterm.c (XTmouse_position): Entirely rewritten, using
3590 XTranslateCoordinates. Call x_scrollbar_report_motion to handle
3591 scrollbar movement events.
3592 (x_scrollbar_report_motion): New function, to help out
3593 XTmouse_position.
3594
3595 * keyboard.c (apply_modifiers): Don't assume that the Qevent_kind
3596 property of BASE is set when we first create the new modified
3597 symbol. Check that the Qevent_kind property is properly set each
3598 time we return any symbol.
3599
3600 * termhooks.h (struct input_event): Replace the frame member with
3601 a Lisp_Object member by the name of frame_or_window. Doc fixes.
3602 Remove the scrollbar member; instead, use frame_or_window to hold the
3603 window whose scrollbar was clicked.
3604 * keyboard.c (kbd_buffer_store_event, kbd_buffer_get_event,
3605 make_lispy_event): Adjust references to frame member of struct
3606 input_event to use frame_or_window now.
3607 * xterm.c (construct_mouse_click, XTread_socket): Same.
3608
3609 * xterm.c (last_mouse_bar, last_mouse_bar_frame, last_mouse_part,
3610 last_mouse_scroll_range_start, last_mouse_scroll_range_end):
3611 Replaced with...
3612 (last_mouse_scrollbar): New variable.
3613 (note_mouse_movement): Clear last_mouse_scrollbar when we have
3614 receieved a new motion.
3615 (syms_of_xterm): Staticpro last_mouse_scrollbar.
3616
3617 * xterm.c (note_mouse_position): Renamed to note_mouse_movement,
3618 because that's what it really does.
3619 (x_scrollbar_handle_motion): Renamed to x_scrollbar_note_movement,
3620 for consistency.
3621 (XTread_socket): Adjusted.
3622
3623 * xterm.c (XTset_scrollbar): Renamed to XTset_vertical_scrollbar.
3624 (x_term_init): Adjusted.
3625
3626 * keyboard.c (kbd_buffer_frames): Renamed to
3627 kbd_buffer_frame_or_window, and made to exist even when
3628 MULTI_FRAME isn't defined; single-frame systems might have
3629 scrollbars. Use it to GCPRO the frame_or_window field in the
3630 event queue.
3631 (kbd_buffer_store_event, kbd_buffer_get_event,
3632 stuff_buffered_input): Set and clear the
3633 appropriate element of kbd_buffer_frame_or_window, whether or not
3634 MULTI_FRAME is #defined.
3635 (read_avail_input): When reading characters directly from stdin,
3636 set the frame_or_window field of the event appropriately,
3637 depending on whether or not MULTI_FRAME is #defined.
3638 (Fdiscard_input, init_keyboard): Zap kbd_buffer_frame_or_window,
3639 not kbd_buffer_frames.
3640 (syms_of_keyboard): Initialize and staticpro
3641 kbd_buffer_frame_or_window, whether or not MULTI_FRAME is
3642 #defined.
3643
3644 * keyboard.c (head_table): Make Qscrollbar_movement have a
3645 Qevent_kind property of Qmouse_movement, not Qscrollbar_movement.
3646
3647 * keyboard.c (read_key_sequence): If we decide to throw away a
3648 mouse event which has prefix symbols (`mode-line',
3649 `vertical-scrollbar', etcetera), remember that we may have to
3650 unwind two characters, not just one.
3651
3652 * keyboard.c (read_key_sequence): Doc fixes.
3653
3654 * keyboard.c (kbd_buffer_store_event): Fix reversed sense of test
3655 for focus redirection.
3656
3657 * keyboard.c (read_char): Don't echo mouse movements.
3658
3659 * emacs.c (shut_down_emacs): New function.
3660 (fatal_error_signal, Fkill_emacs): Call it, instead of writing it out.
3661 * xterm.c (x_connection_closed): Call shut_down_emacs instead of
3662 Fkill_emacs; the latter will try to perform operations on the X
3663 server and die a horrible death.
3664 * lisp.h (shut_down_emacs): Add extern declaration for it.
3665
3666 * xterm.c (x_error_quitter): Move the abort call to after we print
3667 the error message. No harm in that.
3668
3669 * xdisp.c (echo_area_display): Move the assignment of f and the
3670 check for visibility out of the "#ifdef MULTI_FRAME" clause; they
3671 should work under any circumstances.
3672
3673 * xdisp.c (redisplay_window): If we're not going to redisplay this
3674 window because it's a minibuffer whose contents have already been
3675 updated, go ahead and jump to the scrollbar refreshing code
3676 anyway; they still need to be updated. Initialize opoint, so it's
3677 known to be valid when we jump. Calculate the scrollbar settings
3678 properly for minibuffers, no matter what they are displaying at
3679 the time.
3680
3681 * xdisp.c (redisplay_windows): Don't restore the current buffer
3682 and its point before refreshing the scrollbars; we need the buffer
3683 accurate.
3684
3685 1993-01-12 Richard Stallman (rms@mole.gnu.ai.mit.edu)
3686
3687 * print.c (float_to_string): Add final 0 if text ends with decimal pt.
3688
3689 * dispnew.c (Fredraw_display): Redraw all visible frames.
3690 Make the non-multi-frame version interactive.
3691
3692 1993-01-11 Richard Stallman (rms@mole.gnu.ai.mit.edu)
3693
3694 * fileio.c (Fset_default_file_modes, Fdefault_file_modes):
3695 Renamed from Fset_umask and Fumask; sense of arg is reversed.
3696 (Fwrite_region): Doc fix.
3697
3698 1993-01-10 Richard Stallman (rms@mole.gnu.ai.mit.edu)
3699
3700 * print.c (float_to_string): Add `.0' at end if needed.
3701
3702 * lread.c (Fload): If warn that .elc file is older, inhibit
3703 the ordinary message that would follow.
3704
3705 1993-01-09 Jim Blandy (jimb@totoro.cs.oberlin.edu)
3706
3707 * fileio.c (Fdo_auto_save): Add CURRENT_ONLY argument, as
3708 described in doc string.
3709
3710 1993-01-08 Richard Stallman (rms@mole.gnu.ai.mit.edu)
3711
3712 * fns.c (Frandom): Change arg name.
3713
3714 * editfns.c: Doc fixes.
3715
3716 1993-01-07 Richard Stallman (rms@mole.gnu.ai.mit.edu)
3717
3718 * unexhp9k800.c (unexec): Don't call exit, just return.
3719
3720 1993-01-07 Jim Blandy (jimb@totoro.cs.oberlin.edu)
3721
3722 * config.h.in: protect against multiple #inclusions.
3723
3724 * config.h.in: Add a declaration for getenv.
3725
3726 * xfns.c (Fx_get_resource): Add CLASS argument, to give class of
3727 ATTRIBUTE.
3728 [not HAVE_X11]: Change definition of Fx_get_resource macro
3729 accordingly.
3730 (x_get_arg): Add CLASS argument, to give the class of ATTRIBUTE.
3731 Pass it along to Fx_get_resource.
3732 (x_figure_window_size, x_icon): Pass new argument to x_get_arg.
3733 (x_default_parameter): Add XCLASS argument, to give the class of
3734 XPROP. Pass it along to x_get_arg.
3735 (Fx_create_frame): Pass new args to x_get_arg and
3736 x_default_parameter.
3737
3738 * xfns.c (Fx_create_frame): Use the same resource names and
3739 classes as xterm and Emacs 18.
3740
3741 1993-01-03 Richard Stallman (rms@mole.gnu.ai.mit.edu)
3742
3743 * xfns.c (Fx_get_resource): Use EMACS_CLASS to make class_key
3744 even if SUBCLASS is specified. I don't know whether that is
3745 right, but that's what the doc says.
3746 Cosmetic changes in arg names and doc string.
3747
3748 1992-12-29 Roland McGrath (roland@geech.gnu.ai.mit.edu)
3749
3750 * ralloc.c: [! emacs] [HAVE_CONFIG_H]: #include "config.h"
3751
3752 1992-12-21 Roland McGrath (roland@geech.gnu.ai.mit.edu)
3753
3754 * Makefile.in (tagsfiles): New variable.
3755 (TAGS): Depend on $(tagsfiles); use that in cmds.
3756 (tags): Separate phony rule; depends on TAGS.
3757
3758 1992-12-21 Jim Blandy (jimb@totoro.cs.oberlin.edu)
3759
3760 * keyboard.c: Protect all references to kbd_buffer_frames with
3761 #ifdef MULTI_FRAME.
3762
3763 * frame.h (struct frame): New fields `can_have_scrollbars' and
3764 `has_vertical_scrollbars'.
3765 (FRAME_CAN_HAVE_SCROLLBARS, FRAME_HAS_VERTICAL_SCROLLBARS): New
3766 accessors, for both the MULTI_FRAME and non-MULTI_FRAME.
3767 (VERTICAL_SCROLLBAR_WIDTH, WINDOW_VERTICAL_SCROLLBAR,
3768 WINDOW_VERTICAL_SCROLLBAR_COLUMN,
3769 WINDOW_VERTICAL_SCROLLBAR_HEIGHT): New macros.
3770 * window.h (struct window): New field `vertical_scrollbar'.
3771 * xterm.h (struct x_display): vertical_scrollbars,
3772 judge_timestamp, vertical_scrollbar_extra: New fields.
3773 (struct scrollbar): New struct.
3774 (VERTICAL_SCROLLBAR_PIXEL_WIDTH, VERTICAL_SCROLLBAR_PIXEL_HEIGHT,
3775 VERTICAL_SCROLLBAR_LEFT_BORDER, VERTICAL_SCROLLBAR_RIGHT_BORDER,
3776 VERTICAL_SCROLLBAR_TOP_BORDER, VERTICAL_SCROLLBAR_BOTTOM_BORDER,
3777 CHAR_TO_PIXEL_WIDTH, CHAR_TO_PIXEL_HEIGHT, PIXEL_TO_CHAR_WIDTH,
3778 PIXEL_TO_CHAR_HEIGHT): New accessors and macros.
3779 * frame.c (make_frame): Initialize the `can_have_scrollbars' and
3780 `has_vertical_scrollbars' fields of the frame.
3781 * term.c (term_init): Note that TERMCAP terminals don't support
3782 scrollbars.
3783 (mouse_position_hook): Document new args.
3784 (set_vertical_scrollbar_hook, condemn_scrollbars_hook,
3785 redeem_scrollbar_hook, judge_scrollbars_hook): New hooks.
3786 * termhooks.h: Declare and document them.
3787 (enum scrollbar_part): New type.
3788 (struct input_event): Describe the new form of the scrollbar_click
3789 event type. Change `part' from a Lisp_Object to an enum
3790 scrollbar_part. Add a new field `scrollbar'.
3791 * keyboard.c (kbd_buffer_get_event): Pass appropriate new
3792 parameters to *mouse_position_hook, and make_lispy_movement.
3793 * xfns.c (x_set_vertical_scrollbar): New function.
3794 (x_figure_window_size): Use new macros to calculate frame size.
3795 (Fx_create_frame): Note that X Windows frames do support scroll
3796 bars. Default to "yes".
3797 * xterm.c: #include <X11/cursorfont.h> and "window.h".
3798 (x_vertical_scrollbar_cursor): New variable.
3799 (x_term_init): Initialize it.
3800 (last_mouse_bar, last_mouse_bar_frame, last_mouse_part,
3801 last_mouse_scroll_range_start, last_mouse_scroll_range_end): New
3802 variables.
3803 (XTmouse_position): Use them to return scrollbar movement events.
3804 Take new arguments, for that purpose.
3805 (x_window_to_scrollbar, x_scrollbar_create,
3806 x_scrollbar_set_handle, x_scrollbar_remove, x_scrollbar_move,
3807 XTset_scrollbar, XTcondemn_scrollbars, XTredeem_scrollbar,
3808 XTjudge_scrollbars, x_scrollbar_expose,
3809 x_scrollbar_background_expose, x_scrollbar_handle_click,
3810 x_scrollbar_handle_motion): New functions to implement scrollbars.
3811 (x_term_init): Set the termhooks.h hooks to point to them.
3812 (x_set_window_size): Use new macros to calculate frame size. Set
3813 vertical_scrollbar_extra field.
3814 (x_make_frame_visible): Use the frame accessor
3815 FRAME_HAS_VERTICAL_SCROLLBARS to decide if we need to map the
3816 frame's subwindows as well.
3817 (XTread_socket): Use new size-calculation macros from xterm.h when
3818 processing ConfigureNotify events.
3819 (x_wm_set_size_hint): Use PIXEL_TO_CHAR_WIDTH and
3820 PIXEL_TO_CHAR_HEIGHT macros.
3821 * ymakefile (xdisp.o): This now depends on termhooks.h.
3822 (xterm.o): This now depends on window.h.
3823
3824 * xdisp.c: #include "termhooks.h".
3825 (redisplay, redisplay_window): Use set_vertical_scrollbar_hook,
3826 condemn_scrollbars_hook, redeem_scrollbar_hook, and
3827 judge_scrollbars_hook to make scrollbars redisplay properly.
3828
3829 * keyboard.c (Qscrollbar_movement, Qvertical_scrollbar,
3830 Qabove_handle, Qhandle, Qbelow_handle): New symbols.
3831 (make_lispy_event): New code to build scrollbar clicks.
3832 (make_lispy_movement): New code to handle scrollbar movement.
3833 (head_table): Include Qscrollbar_movement in the event heads.
3834 (syms_of_keyboard): Init and staticpro Qvertical_scrollbar,
3835 Qabove_handle, Qhandle, and Qbelow_handle.
3836 * keyboard.h (Qscrollbar_movement): Declare this along with the
3837 other event types.
3838 * lisp.h (Qvertical_scrollbar): Declare this.
3839 * window.c (window_from_scrollbar): New function.
3840
3841 * xterm.h (struct x_display): Delete v_scrollbar, v_thumbup,
3842 v_thumbdown, v_slider, h_scrollbar, h_thumbup,
3843 h_thumbdown, h_slider, v_scrollbar_width, h_scrollbar_height
3844 fields.
3845 * keyboard.c (Qvscrollbar_part, Qvslider_part, Qvthumbup_part,
3846 Qvthumbdown_part, Qhscrollbar_part, Qhslider_part, Qhthumbup_part,
3847 Qhthumbdown_part, Qscrollbar_click): Deleted; part of an obsolete
3848 interface.
3849 (head_table): Removed from here as well.
3850 (syms_of_keyboard): And here.
3851 * keyboard.h: And here.
3852 (POSN_SCROLLBAR_BUTTON): Removed.
3853 * xscrollbar.h: File removed - no longer necessary.
3854 * xfns.c: Don't #include it any more.
3855 (Qhorizontal_scroll_bar, Qvertical_scroll_bar): Deleted.
3856 (syms_of_xfns): Don't initialize or staticpro them.
3857 (gray_bits): Salvaged from xscrollbar.h.
3858 (x_window_to_scrollbar): Deleted.
3859 (x_set_horizontal_scrollbar): Deleted.
3860 (enum x_frame_parm, x_frame_parms): Remove references to
3861 x_set_horizontal_scrollbar.
3862 (x_set_foreground_color, x_set_background_color,
3863 x_set_border_pixel): Remove special code to support scrollbars.
3864 (Fx_create_frame): Remove old scrollbar setup code.
3865 (install_vertical_scrollbar, install_horizontal_scrollbar,
3866 adjust_scrollbars, x_resize_scrollbars): Deleted.
3867 * xterm.c (construct_mouse_click): This doesn't need to take care of
3868 scrollbar clicks anymore.
3869 (XTread_socket): Remove old code to support scrollbars. Call new
3870 functions instead for events which occur in scrollbar windows.
3871 (XTupdate_end): Remove call to adjust_scrollbars; the main
3872 redisplay code takes care of that now.
3873 (enum window_type): Deleted.
3874 * ymakefile: Note that xfns.o no longer depends on xscrollbar.h.
3875
3876 * xterm.c (x_set_mouse_position): Clip mouse position to be within
3877 frame.
3878
3879 * xterm.c: Adjust the first line of each page to have a reasonable
3880 description. This makes pages-directory more useful.
3881
3882 * xterm.c (x_do_pending_expose): Declare this routine only if
3883 HAVE_X11 is not #defined; X11 doesn't need it.
3884 (XTread_socket): Protect call to x_do_pending_expose with `#ifdef
3885 HAVE_X11'.
3886
3887 * xfns.c (syms_of_xfns): Delete defvars for x_mouse_x and
3888 x_mouse_y. That interface hasn't been live for years.
3889 (x_mouse_x, x_mouse_y): Delete these variables.
3890
3891 * xterm.c (notice_mouse_movement): Deleted; obsolete and unused.
3892
3893 * keyboard.c (Fread_key_sequence): Doc fix.
3894
3895 * keyboard.c (make_lispy_event): Buttons are numbered starting
3896 with zero now.
3897
3898 * keyboard.c (make_lispy_event): Use the proper accessors when
3899 manipulating the `x' and `y' fields of struct input_event.
3900
3901 * keyboard.c (parse_modifiers_uncached): Remember that strncmp
3902 returns zero if the two substrings are equal.
3903
3904 * keyboard.c (do_mouse_tracking, Ftrack_mouse): Doc fix.
3905
3906 * keyboard.c (read_char): Don't put mouse movements in
3907 this_command_keys.
3908
3909 * xfns.c (Fx_create_frame): Don't initialize the wm_hints field here.
3910 (x_window): Do it here, along with all the similar stuff.
3911
3912 1992-12-21 Richard Stallman (rms@mole.gnu.ai.mit.edu)
3913
3914 * callint.c (Fcall_interactively): For `s', use Fread_string.
3915
3916 1992-12-20 Jim Blandy (jimb@totoro.cs.oberlin.edu)
3917
3918 Properly handle focus shift events, so the cursor is filled and
3919 hollow at the appropriate times, even in titleless windows.
3920 * xterm.c (x_focus_event_frame): New variable.
3921 (XTread_socket): When we receive a FocusIn event that's not
3922 NotifyPointer, record the frame in x_focus_event_frame. When we
3923 receive a FocusOut event that's not NotifyPointer, clear it. When
3924 we get a LeaveNotify event, don't take it seriously if we still
3925 have focus.
3926
3927 * xterm.c (XTread_socket): Remove special code in EnterNotify case
3928 to handle scrollbars and fake mouse motion events.
3929
3930 1992-12-19 Jim Blandy (jimb@totoro.cs.oberlin.edu)
3931
3932 * floatfns.c (Flog): Fix unescaped newline in string.
3933 * frame.c (Fnext_frame): Same.
3934 * textprop.c (Fprevious_single_property_change): Same.
3935 (syms_of_textprop): Same, for DEFVAR for
3936 `interval_balance_threshold'.
3937
3938 Change the meaning of focus redirection to make switching windows
3939 work properly. Fredirect_frame_focus has the details.
3940 * frame.h (focus_frame): Doc fix.
3941 [not MULTI_FRAME] (FRAME_FOCUS_FRAME): Make this Qnil, which
3942 indicates no focus redirection, instead of zero, which is
3943 selected_frame.
3944 * frame.c (make_frame): Initialize f->focus_frame to Qnil, rather
3945 than making it point to frame itself.
3946 (Fselect_frame): If changing the selected frame from FOO to BAR,
3947 make all redirections to FOO shift to BAR as well. Doc fix.
3948 (Fredirect_frame_focus): Doc fix. Accept nil as a valid
3949 redirection, not just as a default for FRAME.
3950 (Fframe_focus): Doc fix.
3951 * keyboard.c (kbd_buffer_store_event, kbd_buffer_get_event): Deal
3952 with focus redirections being nil.
3953 * xterm.c (XTframe_rehighlight): Doc fix. Deal with focus
3954 redirections being nil.
3955
3956 * window.c (Fset_window_configuration): Don't restore the frame's
3957 focus redirection if the target frame is now dead.
3958
3959 * ymakefile (ralloc.o): This no longer depends on xterm.h.
3960
3961 * ymakefile (all, xemacs): We build an executable called `emacs' now,
3962 not `xemacs'.
3963 * Makefile.in (distclean, xemacs, doxemacs): Same.
3964
3965 * xterm.h (PIXEL_WIDTH, PIXEL_HEIGHT): Change name of parameter
3966 from `s' to `f'; it's a frame pointer.
3967
3968 1992-12-18 Jim Blandy (jimb@totoro.cs.oberlin.edu)
3969
3970 * keyboard.c (kbd_buffer_frames): New vector, to GCPRO frames in
3971 kbd_buffer.
3972 (kbd_buffer_store_event): When we add an event to kbd_buffer, make
3973 sure to store its frame in kbd_buffer_frames.
3974 (kbd_buffer_get_event): When we remove an event from kbd_buffer,
3975 make sure to set the corresponding element of kbd_buffer_frames to
3976 Qnil, to allow the frame to get GC'd.
3977 (Fdiscard_input, init_keyboard): Clear all elements of
3978 kbd_buffer_frames to nil.
3979 (syms_of_keyboard): Create and staticpro kbd_buffer_frames.
3980
3981 * xterm.c (x_error_quitter): Just abort, so we can look at the
3982 core to see what happened.
3983
3984 1992-12-17 Jim Blandy (jimb@totoro.cs.oberlin.edu)
3985
3986 * buffer.c (Frename_buffer): Set update_mode_lines.
3987
3988 1992-12-14 Jim Blandy (jimb@totoro.cs.oberlin.edu)
3989
3990 * scroll.c (do_scrolling): When bcopying the max_ascent field from
3991 current_frame to temp_frame, remember that max_ascent is an array
3992 of shorts, not ints.
3993
3994 It's a pain to remember that you can't assign to FRAME->visible.
3995 Let's change all references to the `visible' member of struct
3996 frame to use the accessor macros, and then write a setter for the
3997 `visible' field that does the right thing.
3998 * frame.h (FRAME_VISIBLE_P): Make this not an l-value.
3999 (FRAME_SET_VISIBLE): New macro.
4000 * frame.c (make_terminal_frame, Fdelete_frame): Use FRAME_SET_VISIBLE.
4001 (Fframe_visible_p, Fvisible_frame_list): Use FRAME_VISIBLE_P and
4002 FRAME_ICONIFIED_P.
4003 * dispnew.c (Fredraw_display): Use the FRAME_VISIBLE_P and
4004 FRAME_GARBAGED_P accessors.
4005 * xdisp.c (redisplay): Use the FRAME_VISIBLE_P accessor.
4006 * xfns.c (x_set_foreground_color, x_set_background_color,
4007 x_set_cursor_color, x_set_border_pixel, x_set_icon_type): Use the
4008 FRAME_VISIBLE_P accessor.
4009 (Fx_create_frame): Use FRAME_SET_VISIBILITY.
4010 * xterm.c (clear_cursor, x_display_bar_cursor,
4011 x_display_box_cursor): Use FRAME_SET_VISIBILITY.
4012
4013 1992-12-12 Jim Blandy (jimb@totoro.cs.oberlin.edu)
4014
4015 * ymakefile (CFLAGS): #define HAVE_CONFIG_H too.
4016
4017 * Makefile.in (distclean): Don't delete machine.h or system.h;
4018 they don't exist anymore.
4019
4020 * Makefile.in (distclean): Don't delete autosave or backup files.
4021 (extraclean): New target; like distclean, but delete autosave
4022 and backup files too.
4023
4024 1992-12-11 Jim Blandy (jimb@totoro.cs.oberlin.edu)
4025
4026 * search.c (Fskip_chars_forward, Fskip_chars_backward): Return the
4027 distance traveled.
4028 (skip_chars): Return the distance traveled, as a Lisp_Object.
4029
4030 * macros.c (Fend_kbd_macro): Don't use XFASTINT to check if arg is
4031 negative; XFASTINT only works on values known to be positive.
4032 (Fexecute_kbd_macro): Check QUIT in the repetition loop. If the
4033 macro is null, no characters are actually being read, so this
4034 matters.
4035
4036 * Makefile.in (srcdir): New variable, not fully implemented.
4037 (xmakefile): Turn -g and -O in CFLAGS into C_DEBUG_SWITCH and
4038 C_OPTIMIZE_SWITCH in C_SWITCH_SITE's definition. Delete junk.cpp
4039 when done.
4040 * ymakefile (archlib): Variable definition deleted. Run programs
4041 from ../lib-src directly, or use ${archlibdir}.
4042 (${etc}DOC): Run make-docfile from ${libsrc}, not ${archlib}.
4043 (${archlib}make-docfile, ${archlib}emacstool): Use ${libsrc}, not
4044 ${archlib}.
4045
4046 * ymakefile (lisp): Don't include version.el in this list.
4047
4048 Give subprocess creation a way to find a valid current directory
4049 for subprocesses when the buffer's default-directory is a handled
4050 name.
4051 * fileio.c (Funhandled_file_name_directory): New function.
4052 (Qunhandled_file_name_directory): New file-name-handler operation.
4053 (syms_of_fileio): Defsubr Sunhandled_file_name_directory, and
4054 initialize and staticpro Qunhandled_file_name_directory.
4055 * callproc.c (Fcall_process): Call Funhandled_file_name_directory
4056 on the buffer's default directory. Do it earlier in the function
4057 so there's less to GCPRO.
4058 * process.c (create_process): Don't check the validity of the
4059 buffer's default directory here...
4060 (Fstart_process): Instead, do it here; if we call
4061 Funhandled_file_name_directory here, there's less GCPROing to do.
4062
4063 * callproc.c (Fcall_process_region): Return the value returned by
4064 Fcall_process.
4065
4066 * fileio.c (find_file_handler): Rename this to
4067 Ffind_file_name_handler, and make it visible to lisp. Add a QUIT
4068 to the loop which scans file-name-handler-alist. All uses
4069 changed.
4070 (syms_of_fileio): Mention this new function in the docstring for
4071 Vfile_name_handler_alist. defsubr Sfind_file_name_handler.
4072 * lisp.h (Ffind_file_name_handler): Added extern declaration.
4073 * dired.c: All uses of find_file_handler changed here too.
4074
4075 * fileio.c (syms_of_fileio): Add staticpros for Qexpand_file_name,
4076 Qdirectory_file_name, Qfile_name_directory,
4077 Qfile_name_nondirectory, Qfile_name_as_directory.
4078
4079 1992-12-07 Jim Blandy (jimb@totoro.cs.oberlin.edu)
4080
4081 * window.c (Fset_window_configuration): If we're restoring the
4082 configuration of a dead frame, don't bother rebuilding its window
4083 tree, restoring its focus redirection, or temporarily resizing it
4084 to fit the saved window configuration. If the frame which was
4085 selected when the configuration was captured is now dead, don't
4086 try to select it.
4087
4088 * frame.c (Fdelete_frame): Delete all the windows in the frame's
4089 window tree, using delete_all_subwindows.
4090 * window.c (delete_all_subwindows): Don't make this static
4091 anymore.
4092
4093 1992-12-03 Jim Blandy (jimb@totoro.cs.oberlin.edu)
4094
4095 Make sure that frames' visible flag only changes at acceptable
4096 times. See FRAME_SAMPLE_VISIBILITY's comments for details.
4097 * frame.h (struct frame): New fields called async_visible and
4098 async_iconified.
4099 (FRAME_SAMPLE_VISIBILITY): New macro, with MULTI_FRAME and
4100 non-MULTI_FRAME definitions.
4101 * xdisp.c (redisplay): Call FRAME_SAMPLE_VISIBILITY to set the
4102 visible and iconified flags appropriately for each frame.
4103 (message1): Call FRAME_SAMPLE_VISIBILITY to set the visible and
4104 iconified flags for the minibuffer frame.
4105 * frame.c (make_frame): Initialize async_visible and
4106 async_iconified properly.
4107 * xfns.c (Fx_create_frame): Initialize f->async_visible too.
4108 * xterm.c (XTread_socket): When we get MapNotify, UnmapNotify,
4109 Expose, ExposeWindow, or UnmapWindow, set f->async_visible, not
4110 f->visible.
4111 (x_do_pending_expose, x_raise_frame, x_lower_frame,
4112 x_make_frame_invisible, x_make_frame_visible, x_iconify_frame):
4113 Test and set f->async_visible and f->async_iconified, not
4114 f->visible or f->async_iconified.
4115
4116 * keyboard.c (kbd_store_ptr): Declare this to be volatile, if
4117 __STDC__ is #defined.
4118 (Fdiscard_input): Use cast to keep GCC from complaining about the
4119 assignment of kbd_store_ptr to kbd_fetch_ptr.
4120
4121 * xdisp.c (redisplay): Use FOR_EACH_FRAME to apply
4122 redisplay_windows to the root window of each frame. This makes a
4123 #ifdef MULTI_FRAME unneeded, but it also means we recompute
4124 buffer_shared from scratch even on non-MULTI_FRAME configurations.
4125 Don't skip elements of Vframe_list that aren't frames; go ahead
4126 and crash here.
4127
4128 * xdisp.c (redisplay): Remove #ifdef MULTI_FRAME around the code
4129 which updates separate minibuffer frames specially; there's
4130 nothing there that won't work on a single-frame configuration.
4131
4132 * dispextern.h (struct frame_glyphs): Doc fix.
4133
4134 1992-12-02 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
4135
4136 * dispnew.c: Remove dyked-out copy of safe_bcopy.
4137
4138 * environ.c: File removed; Changes on 1/13/1992 made it
4139 unnecessary.
4140
4141 1992-12-01 Jim Blandy (jimb@totoro.cs.oberlin.edu)
4142
4143 * process.c (wait_reading_process_input): Doc fix.
4144
4145 1992-11-26 Richard Stallman (rms@mole.gnu.ai.mit.edu)
4146
4147 * next.h: Copy changes from 18.59:
4148 (NeXT): Defined.
4149 (BIG_ENDIAN): Define only if __BIG_ENDIAN__.
4150 (m68000, COMPILER_REGISTER_BUG): Defs deleted.
4151 (SIGN_EXTEND_CHAR, LIB_X11_LIB, NO_T_CHARS_DEFINES, UNEXEC): Defined.
4152 (LIBS_DEBUG, LIB_GCC, C_SWITCH_MACHINE, ORDINARY_LINK): Defined.
4153 (TEXT_START, TEXT_END, DATA_END, LD_SWITCH_MACHINE): Defined.
4154 (KERNEL_FILE): #undef it.
4155 (environ): Define as _environ.
4156
4157 1992-11-25 Jim Blandy (jimb@totoro.cs.oberlin.edu)
4158
4159 * doc.c (store_function_docstring): New function, made from part
4160 of Fsnarf_documentation, which handles docstrings for macros
4161 properly.
4162 (Fsnarf_documentation): Call store_function_docstring.
4163
4164 * data.c (indirect_function): Delete unused argument ERROR.
4165
4166 1992-11-23 Jim Blandy (jimb@apple-gunkies.gnu.ai.mit.edu)
4167
4168 * Makefile.in (clean): Remove prefix-args.
4169
4170 1992-11-21 Richard Stallman (rms@mole.gnu.ai.mit.edu)
4171
4172 * s/sol2.h (LD_SWITCH_SYSTEM): Make alternate version for GCC.
4173
4174 1992-11-19 Jim Blandy (jimb@totoro.cs.oberlin.edu)
4175
4176 * m/sparc.h: Don't include <sys/param.h> here; that screws up the
4177 xmakefile. Instead, include it in getloadavg.c, which is the only
4178 place that uses LOAD_AVE_CVT, which is the only reason
4179 <sys/param.h> was here in the first place.
4180
4181 1992-11-15 Jim Blandy (jimb@totoro.cs.oberlin.edu)
4182
4183 * dispnew.c [not MULTI_FRAME] (Fredraw_display): Pass the correct
4184 number of arguments to mark_window_display_accurate.
4185
4186 * undo.c (Fprimitive_undo): Remove whitespace in front of #ifdef
4187 and #endif.
4188
4189 * systty.h: Doc fix.
4190
4191 * systty.h, process.c, buffer.h, callproc.c, sysdep.c, dired.c:
4192 Added VMS changes from Roland Roberts.
4193 * vmspaths.h: New version from Roland Roberts.
4194
4195 * xdisp.c (display_string): Use w's buffer's value of
4196 tab-width to display the string, instead of the current buffer's,
4197 which could be anything.
4198
4199 * s/sol2.h (LD_SWITCH_SYSTEM): Add -R option.
4200
4201 * process.c (read_process_output): Save, widen, insert the process
4202 output, and then restore the restriction if inserting text outside
4203 the visible region.
4204
4205 1992-11-14 Jim Blandy (jimb@totoro.cs.oberlin.edu)
4206
4207 * buffer.c (Ferase_buffer): Doc fix.
4208
4209 * dispnew.c (safe_bcopy): Use the right terminating condition in
4210 the loop which uses multiple bcopy calls to transfer a block to an
4211 overlapping higher block.
4212
4213 1992-11-13 Jim Blandy (jimb@totoro.cs.oberlin.edu)
4214
4215 * process.c (Fstart_process): Establish an unwind-protect to
4216 remove PROC from the process list if an error occurs while
4217 starting it.
4218 (start_process_unwind): New function to help with that.
4219 (create_process): There's no need to explicitly call
4220 remove_process if the fork fails; the record_unwind_protect in
4221 Fstart_process will take care of it.
4222
4223 * commands.h (unread_command_event): Doc fix.
4224
4225 Don't ever throw away switch-frame events.
4226 * lread.c: #include "keyboard.h".
4227 (Fread_char, Fread_char_exclusive): Don't signal an
4228 error for or throw away switch-frame events; instead, put them off
4229 until after we've found a character we can respond to.
4230 * commands.h (unread_switch_frame): Declare this extern.
4231 * keyboard.c (unread_switch_frame): Don't declare this static.
4232 * ymakefile (lread.o): Note that this depends on keyboard.h.
4233
4234 * keyboard.c (Vlast_event_frame): Doc fix.
4235
4236 * process.c (wait_reading_process_input): Test the C preprocessor
4237 symbol "ultrix", not "__ultrix__" to see if we should ignore
4238 ENOMEM errors from select.
4239
4240 * fileio.c (Fexpand_file_name): Don't fiddle with "/." if it's the
4241 entire string.
4242
4243 * buffer.c (Fbury_buffer): Make this behave as in 18.59, although
4244 that behavior is very odd - only remove the buffer from the
4245 selected window if BUFFER was nil or omitted.
4246
4247 * keyboard.c (read_char): Write composite events to the dribble
4248 file properly.
4249
4250 * keyboard.c (init_keyboard): Initialize Vlast_event_frame to
4251 Qnil, rather than the selected frame.
4252
4253 * mem-limits.h [DATA_SEG_BITS] (EXCEEDS_LISP_PTR): Remember to
4254 remove DATA_SEG_BITS from the pointer before testing if the
4255 pointer fits in VALBITS.
4256
4257 * Makefile.in (doxemacs, dotemacs): Explicitly pass along the CC
4258 variable in these rules, just as in the `doall' rule.
4259
4260 * ralloc.c (relocate_some_blocs): Handle BLOC == NIL_BLOC.
4261 (free_bloc): This can now be simplified.
4262
4263 * ralloc.c (r_alloc_sbrk): When we allocate new space for the
4264 malloc heap, zero it out even if we don't have any blocs in the
4265 free list.
4266
4267 1992-11-12 Jim Blandy (jimb@totoro.cs.oberlin.edu)
4268
4269 * process.c (process_send_signal): On systems which have both
4270 the TIOCGETC and TCGETA ioctls, just use the former.
4271
4272 * xselect.c (Fx_get_cut_buffer): Correct check for buf_num in
4273 range.
4274
4275 * xselect.c (Fx_get_cut_buffer, Fx_set_cut_buffer): Fix error
4276 message format; use NUM_CUT_BUFFERS instead of literal 7.
4277
4278 * keyboard.c (lispy_modifier_list): Added sanity check before
4279 indexing into modifier_symbols.
4280
4281 * keyboard.c (add_command_key): When copying the contents of the
4282 old this_command_keys to new_keys, remember to multiply size by
4283 sizeof (Lisp_Object) to get the amount we really need to copy.
4284
4285 Rename unread_command_char to unread_command_event; it has
4286 subtly different semantics now, and we should use
4287 `make-obsolete-variable' to warn people.
4288 * command.h (unread_command_char): Change name in extern declaration.
4289 * keyboard.c (unread_command_char): Rename.
4290 (command_loop_1, read_char, Finput_pending, Fdiscard_input,
4291 quit_throw_to_read_char, init_keyboard, syms_of_keyboard): Change
4292 references.
4293 * lread.c (Fread_char): Change reference.
4294 * minibuf.c (temp_echo_area_glyphs): Change reference to
4295 unread_command_char to unread_command_event.
4296 * xfns.c (unread_command_char): Change name in extern declaration
4297 to unread_command_event.
4298
4299 1992-11-11 Jim Blandy (jimb@totoro.cs.oberlin.edu)
4300
4301 * m/pmax.h: Don't define SYSTEM_MALLOC; this was only necessary
4302 for Ultrix version 4.1, and the current version is 4.3.
4303
4304 * s/bsd4-2.h, s/bsd4-3.h: #define SIGNALS_VIA_CHARACTERS.
4305 * process.c (process_send_signal): Put all the code for sending
4306 signals via characters in a #ifdef SIGNALS_VIA_CHARACTERS. Decide
4307 whether to use the Berkeley-style or SYSV-style ioctls by seeing
4308 which ioctl commands are #defined.
4309
4310 * minibuf.c (read_minibuf): If get_minibuffer gives the
4311 new minibuffer a nil default directory, find another buffer with a
4312 better default directory and use that one's instead.
4313
4314 1992-11-10 Jim Blandy (jimb@totoro.cs.oberlin.edu)
4315
4316 * process.c (process_send_signal): Doc fix.
4317
4318 * keyboard.c (read_key_sequence): Don't use
4319 save_excursion_{save,restore} to protect the caller against buffer
4320 switches; use Fset_buffer and Fcurrent_buffer; redisplay might
4321 change point, and we don't want to undo that.
4322
4323 * keyboard.c (kbd_buffer_get_event): When checking a mouse
4324 movement for a frame switch, don't assume Vlast_event_frame
4325 contains a Lisp_Frame object.
4326
4327 1992-11-06 Richard Stallman (rms@mole.gnu.ai.mit.edu)
4328
4329 * s/dgux.h (SYSTEM_TYPE): Use berkeley-unix.
4330
4331 1992-11-04 Jim Blandy (jimb@totoro.cs.oberlin.edu)
4332
4333 * alloc.c: #include "frame.h" unconditionally. frame.h does the
4334 right thing when MULTI_FRAME isn't defined.
4335
4336 * Makefile.in: Rearrange dependencies to make sure that xmakefile
4337 is built before we try to use it, even using a parallel make.
4338
4339 Changes for SYSV from Eric Raymond:
4340 * process.c [SYSV]: Don't include <termios.h>, <termio.h>, or
4341 <fcntl.h>.
4342 (process_send_signal): Don't try to send SIGTSTP
4343 unless SIGTSTP is defined.
4344 * sysdep.c (init_baud_rate) [HAVE_TERMIO, not HAVE_TCATTR]: Use
4345 TCGETA, not TIOCGETP.
4346 * systime.h [USG] (EMACS_GET_TZ_OFFSET): Assign to *(offset), not
4347 (offset). Don't forget the while corresponding to the do.
4348 Include USG in the list of systems that have a tzname array.
4349
4350 * keyboard.c (read_key_sequence): Removed the
4351 replay_sequence_new_buffer label; replay_sequence should be here
4352 instead.
4353
4354 Arrange to get compile-time errors for uses of Lisp_Frame in a
4355 non-MULTI_FRAME configuration.
4356 * lisp.h [not MULTI_FRAME]: Don't declare the Lisp_Frame tag.
4357 * minibuf.c (read_minibuf): Protect call to Fredirect_frame_focus
4358 with a #ifdef MULTI_FRAME.
4359 * window.c (Fset_window_configuration): Protect call to
4360 Fselect_frame with a #ifdef MULTI_FRAME.
4361 [not MULTI_FRAME] (Fcurrent_window_configuration): Don't bother
4362 setting the window configuration's selected_frame member.
4363 * keyboard.c (Vlast_event_frame): Arrange for this to exist iff
4364 MULTI_FRAME is defined.
4365 [not MULTI_FRAME] (syms_of_keyboard): Don't DEFVAR Vlast_event_frame.
4366 [not MULTI_FRAME] (read_char): Don't try to set Vlast_event_frame.
4367 [not MULTI_FRAME] (kbd_buffer_store_event): Don't try to set
4368 Vlast_event_frame for quit characters.
4369 [not MULTI_FRAME] (kbd_buffer_get_event): Don't try to generate
4370 switch-frame events.
4371
4372 * buffer.c (init_buffer): If PWD is accurate, use it instead of
4373 calling getwd.
4374 #include <sys/types.h> and <sys/stat.h>, for the call to stat.
4375
4376 Indicate whether an autoload form stands for a keymap or not.
4377 * eval.c (Fautoload): Renamed fifth argument TYPE. Document the
4378 fact that (eq TYPE 'keymap) means FUNCTION will become a keymap
4379 when loaded.
4380 (Fmacroexpand): Instead of assuming that every autoload
4381 form with a fifth element is a macro, actually check the fifth
4382 element against t and `macro', which are the only values which
4383 denote macroness.
4384 * keymap.c (get_keymap_1): Don't try to autoload OBJECT's function
4385 unless the autoload form indicates that it's a keymap.
4386
4387 1992-11-03 Jim Blandy (jimb@totoro.cs.oberlin.edu)
4388
4389 * .gdbinit (mips): New command.
4390
4391 1992-10-31 Richard Stallman (rms@mole.gnu.ai.mit.edu)
4392
4393 * fileio.c (Fmake_directory_internal): Renamed from Fmake_directory.
4394 Pass nil as third arg to handler.
4395 Lisp function `make-directory' is now in files.el.
4396
4397 1992-10-30 Jim Blandy (jimb@totoro.cs.oberlin.edu)
4398
4399 Clean up errors due to treating Lisp_Objects like integers.
4400 * abbrev.c (Funexpand_abbrev): Just assign the last abbrev's value
4401 to val; don't use XSET. Make sure that the value of the
4402 abbrev-symbol is a string.
4403 * alloc.c (Frope_elt): Declare arguments to be Lisp_Objects.
4404 * buffer.c (reset_buffer): Don't assign to b->save_length as if it
4405 were an int; use XFASTINT.
4406 * buffer.h (Fbuffer_name, Fget_file_buffer): Added external
4407 declarations.
4408 * bytecode.c (Fbyte_code): Use EQ to compare string_saved with
4409 bytestr.
4410 * casefiddle.c (operate_on_word): Declare end to be an int, not a
4411 Lisp_Object.
4412 * casetab.c (set_case_table): Declare this to be static, and
4413 return a Lisp_Object. Add static declaration for this
4414 before Fset_case_table and Fset_standard_case_table.
4415 (Fset_case_table, Fset_standard_case_table): Return the return
4416 value of set_case_table, instead of returning garbage.
4417 * commands.h (unread_command_char): Declare this to be a
4418 Lisp_Object, not an int.
4419 * data.c (Fset): See if current_alist_element points to itself
4420 using EQ, not ==.
4421 (float_arith_driver): Declare this extern above arith_driver.
4422 * dired.c (find_file_handler): Declare this extern.
4423 (Ffile_attributes): Use NILP, not == Qnil.
4424 * dispextern.h (sit_for): Declare this extern.
4425 * doc.c: #include keyboard.h.
4426 * floatfns.c (Flog): Don't forget to declare the BASE argument a
4427 Lisp_Object.
4428 * fns.c: #include keyboard.h.
4429 (Fdelete): Check if Fequal returns Qnil, not zero.
4430 * frame.c: #include buffer.h.
4431 * keyboard.c: #include dispextern.h.
4432 (recursive_edit_unwind, command_loop, Fthis_command_keys): Declare
4433 these to return Lisp_Objects at the very top of the file, to avoid
4434 having them implicitly declared as ints.
4435 (echo_char): Use EQ to compare C to help_char.
4436 (read_char): Remember to apply XFASTINT to the return value of
4437 Flength before using it. Apply XINT to c when clearing its high
4438 bits and meta bits, and when writing it to the dribble file.
4439 (read_char_menu_prompt): Use EQ to compare obj with
4440 menu_prompt_more_char and its control-character analog.
4441 (read_key_sequence): Declare PROMPT to be char *, not a
4442 Lisp_Object. Use the appropriate accessors on keybuf when looking
4443 for ASCII function key sequences.
4444 * keyboard.h (get_keymap_1, Fkeymapp, reorder_modifiers,
4445 Fmouse_click_p, read_char): Add external declarations for these.
4446 * keymap.c (Fdefine_key, Flookup_key, describe_map): Don't assume
4447 that Flength returns an integer.
4448 * lisp.h (Fdefault_boundp, make_float, Ffloat, Fnth, Fcopy_alist,
4449 Fmake_byte_code, Fverify_visited_file_modtime, Ffile_exists_p,
4450 Fdirectory_file_name, Ffile_name_directory,
4451 expand_and_dir_to_file, Ffile_accessible_directory_p, Fbyte_code,
4452 Fundo_boundary, truncate_undo_list): Add extern declarations for
4453 these.
4454 * lread.c (read_char): Add an extern declaration for this,
4455 indicating that it returns a Lisp_Object.
4456 * minibuf.c (read_minibuf): Use EQ to compare, not ==.
4457 (temp_echo_area_glyphs): Use XFASTINT to assign to
4458 unread_command_char.
4459 * print.c (print): Cast the frame's address to an integer before
4460 passing it to sprintf to form the frame's printed form.
4461 * process.c: (status_convert): Declare this to return a
4462 Lisp_Object at the top of the file.
4463 (decode_status): Don't untag XCONS (tem)->cdr before storing it in
4464 tem; tem is a Lisp_Object, too.
4465 (process_send_signal): Declare this to be static void. Don't
4466 return Qnil; nobody cares.
4467 (sigchld_handler): Use XFASTINT to manipulate p->infd.
4468 * search.c (Fstore_match_data): Don't assume Flength returns a
4469 C integer.
4470 * undo.c (record_insert): Use accessors on BEG and LENGTH.
4471 (truncate_undo_list): Use NILP, not == Qnil.
4472 * window.c (Fwindow_width, Fset_window_hscroll): Use accessors on
4473 w->width, w->left, w->hscroll, and arguments.
4474 (replace_window): Use EQ, not ==.
4475 (Fdelete_window): p->top and p->left are not C integers.
4476 (Fnext_window, Fprevious_window): Use EQ, not ==.
4477 * window.h (make_window, window_from_coordinates,
4478 Fwindow_dedicated_p): Add extern declarations for these.
4479 * xdisp.c (redisplay): Use ! EQ to compare the old and new arrow
4480 positions, not !=.
4481 (mark_window_display_accurate): Barf if WINDOW isn't a window.
4482 (display_string): Test buffer_defaults.ctl_arrow using NILP,
4483 instead of comparing it with zero.
4484 * xfns.c (x_decode_color, Fx_color_display_p): x_screen_planes is
4485 an int, not a Lisp_Object.
4486 (x_set_mouse_color): Give separate error messages for the
4487 different cursors we try to set.
4488 (Fx_geometry): Declare STRING to be a Lisp_Object.
4489 (Fx_create_frame): No need to use XSET to assign NAME to f->name;
4490 they're both Lisp_Objects.
4491 (adjust_scrollbars): Use XINT to access w->hscroll.
4492 (Fx_open_connection): x_screen_count, x_release, x_screen_height,
4493 x_screen_height_mm, x_screen_width, x_screen_width_mm,
4494 x_save_under, and x_screen_planes are integers, not Lisp_Objects.
4495 (syms_of_xfns): x_mouse_x, x_mouse_y, and mouse_buffer_offset are
4496 integers, not Lisp_Objects.
4497 * xselect.c (own_selection): selection_type is an X Atom value,
4498 not a Lisp_Object.
4499 (x_selection_arrival): Declare this static, and add a forward
4500 declaration at the top of the page.
4501 * xterm.c (x_convert_modifiers): Declare this to return an
4502 unsigned int, not a Lisp_Object. Remember that the quiescent
4503 value for part is Qnil, not zero, that x_mouse_x and x_mouse_y
4504 are ints, not Lisp_Objects, and that RESULT->x and RESULT->y are
4505 Lisp_Objects, not ints.
4506 (XTread_socket): Declare this to return int, not Lisp_Object.
4507 When calling construct_mouse_click on a non-scrollbar click, pass
4508 PART as Qnil, not zero.
4509 (x_calc_absolute_position): Remember that x_screen_width and
4510 x_screen_height are ints, not Lisp_Objects.
4511 * xterm.h (x_screen_count, x_release, x_screen_height,
4512 x_screen_height_mm, x_screen_width, x_screen_width_mm,
4513 x_save_under, x_screen_planes): Declare this as ints, to match
4514 their definitions in xterm.c.
4515 * ymakefile: Note the new dependencies caused by the new
4516 #inclusions above.
4517
4518 * xdisp.c (last_arrow_position, last_arrow_string): Make these
4519 static.
4520
4521 * process.c (pty_process): Variable deleted; it's no longer used.
4522 (syms_of_process): Don't initialize it.
4523
4524 * buffer.h (struct buffer_local_types): This declaration needed an
4525 extern qualifier.
4526
4527 * floatfns.c (Fexpt): Don't return the value of the XSET function
4528 call; that's not guaranteed to be the value assigned.
4529
4530 * dired.c (Ffile_attributes): Doc fix.
4531
4532 * lisp.h (DEFVARLISP, DEFVARBOOL, DEFVARINT, DEFVARPERBUFFER):
4533 Removed these definitions; we should be using the versions whose
4534 names use underscores.
4535
4536 * keyboard.c (echobuf): Make this 300 characters, not 100. This
4537 isn't a real fix, but it's quick.
4538
4539 1992-10-30 Richard Stallman (rms@mole.gnu.ai.mit.edu)
4540
4541 * callint.c (preserved_fns): New var.
4542 (Fcall_interactively): Preserve all fns listed in preserved_fns.
4543 (syms_of_callint): Set preserved_fns and staticpro it.
4544 Don't set up Qregion_beginning or Qregion_end.
4545
4546 1992-10-29 Richard Stallman (rms@mole.gnu.ai.mit.edu)
4547
4548 * dispnew.c (count_blanks): Leave argument r constant, and increment p.
4549
4550 1992-10-28 Jim Blandy (jimb@totoro.cs.oberlin.edu)
4551
4552 * xdisp.c (message): Re-write this in terms of message1.
4553 (message1): Move code to clear out echo_area_glyphs and
4554 previous_echo_glyphs from message to here.
4555
4556 * keyboard.c (read_char): When returning an unread switch-frame
4557 event, jump to reread_first to return it, rather than reread; this
4558 makes sure the event gets echoed (if appropriate) and goes into
4559 this_command_keys.
4560
4561 * keyboard.c (read_key_sequence): If the key sequence starts with
4562 a mouse click, read the key sequence using the keymaps of the
4563 buffer clicked on, not the current buffer.
4564
4565 * keyboard.c (unread_switch_frame): Make this static, to indicate
4566 that nobody outside of this file uses it.
4567
4568 * keymap.c: Deal with autoloaded keymaps properly.
4569 (get_keymap_1): Renamed to inner_get_keymap; made
4570 static. New argument AUTOLOAD says to pursue autoloads if
4571 non-zero.
4572 (Fkeymapp, get_keymap, get_keyelt, Flookup_key): Ask get_keymap_1
4573 not to perform autoloads.
4574 (Fdefine_key): Ask get_keymap_1 to perform autoloads. Since
4575 autoloading may GC, remember that we have to GCPRO our local
4576 variables now.
4577 (Fminor_mode_key_binding): Call get_keymap instead of calling
4578 get_keymap_1 with equivalent arguments.
4579 * keyboard.c (follow_key): Ask get_keymap_1 to perform autoloads.
4580 (read_key_sequence): When pursuing potential bindings in the
4581 function key map, ask get_keymap_1 to perform autoloading. This
4582 is hardly important, but it's consistent.
4583 * doc.c (Fsubstitute_command_keys): Ask get_keymap_1 to
4584 perform autoloads. Autoloading might GC; we need to GCPRO our
4585 local variables now.
4586 (Fdocumentation, Fdocumentation_property): Autoloading in
4587 Fsubstitute_command_keys might GC; we need to GCPRO our
4588 local variables now.
4589
4590 1992-10-28 Richard Stallman (rms@mole.gnu.ai.mit.edu)
4591
4592 * s/irix3-3.h (HAVE_SETSID, IRIX): Defined.
4593
4594 * s/irix4-0.h: New file.
4595
4596 1992-10-27 Noah Friedman (friedman@nutrimat.gnu.ai.mit.edu)
4597
4598 * sysdep.c (get_system_name): Use gethostname for USG systems if
4599 HAVE_GETHOSTNAME is defined.
4600 * s/hpux7.h, s/irix3-3.h (HAVE_GETHOSTNAME): Define it.
4601
4602 1992-10-27 Jim Blandy (jimb@totoro.cs.oberlin.edu)
4603
4604 * callproc.c: Arrange for synchronous processes to get SIGINT the
4605 first time the user quits, or SIGKILL if the user quits again.
4606 #include "syssignal.h".
4607 (call_process_kill): New function.
4608 (call_process_cleanup): Send SIGINT to the subprocess, and then
4609 arrange to call call_process_kill if the user quits while we wait
4610 for it to terminate.
4611 (Fcall_process, Fcall_process_region): Doc fix.
4612
4613 1992-10-27 Richard Stallman (rms@mole.gnu.ai.mit.edu)
4614
4615 * unexmips.c [sony, IRIS_4D]: Include getpagesize.h and fcntl.h.
4616 (unexec): #if 0 the error check of hdr.fhdr.f_nscns.
4617 Clear text_section->s_scnptr.
4618
4619 * callint.c (Fcall_interactively): Preserve (region-beginning)
4620 and (region-end) into the command history when they appear
4621 in an interactive spec which is a call to `list'.
4622
4623 * batcomp.com: New file. Waiting for papers from richard@ttt.kth.se.
4624
4625 1992-10-23 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
4626
4627 * emacs.c (main): Correct spelling of HAVE_X_WINDOW to
4628 HAVE_X_WINDOWS in conditionals around the call to syms_of_xmenu.
4629
4630 1992-10-23 Richard Stallman (rms@mole.gnu.ai.mit.edu)
4631
4632 * ralloc.c (relinquish):
4633 Adjust page_break_value by amount of memory actually given back.
4634 (r_alloc_sbrk): Provide hysteresis in relocating the blocs.
4635
4636 1992-10-22 Richard Stallman (rms@mole.gnu.ai.mit.edu)
4637
4638 * ralloc.c (relinquish): Sign of arg to *real_morecore was backwards.
4639
4640 1992-10-21 Richard Stallman (rms@mole.gnu.ai.mit.edu)
4641
4642 * ralloc.c (relinquish): Never free less than extra_bytes;
4643 keep extra_bytes of empty space.
4644 (obtain): Always get extra_bytes additional space.
4645 (r_alloc_init): Set extra_bytes and page_size.
4646 (ALIGNED, ROUNDUP, ROUND_TO_PAGE): Use page_size.
4647
4648 1992-10-20 Richard Stallman (rms@mole.gnu.ai.mit.edu)
4649
4650 * keyboard.c (syms_of_keyboard): Properly staticpro this_command_keys.
4651
4652 * mem-limits.h (get_lim_data): Make it static.
4653
4654 * ymakefile (mallocobj): Use vm-limit.o along with ralloc.o.
4655
4656 * ralloc.c [emacs]: Define POINTER and SIZE.
4657 [!emacs]: Delete definition of EXCEEDS_LISP_PTR.
4658
4659 * eval.c (grow_specpdl): Increase max_specpdl_size before Fsignal.
4660
4661 1992-10-19 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
4662
4663 * xfns.c (x_set_face): Dyked out this function; it has no callers,
4664 and refers to an obsolete version of struct face.
4665
4666 * xterm.c (compose_status): New variable.
4667 (XTread_socket): Pass it by reference to XLookupString.
4668
4669 1992-10-18 Richard Stallman (rms@mole.gnu.ai.mit.edu)
4670
4671 * s/esix5r4.h (BROKEN_FIONREAD): Defined.
4672
4673 1992-10-16 Richard Stallman (rms@mole.gnu.ai.mit.edu)
4674
4675 * s/vms5-5.h: New file.
4676
4677 1992-10-16 Jim Blandy (jimb@totoro.cs.oberlin.edu)
4678
4679 * xdisp.c (message): If M is zero, clear echo_area_glyphs and
4680 previous_echo_glyphs, so that the minibuffer shows through.
4681 * * editfns.c (Fmessage): With no arguments, clear any active
4682 message; let the minibuffer contents show through.
4683 * minibuf.c (temp_echo_area_glyphs): Don't clear echo_area_glyphs
4684 and previous_echo_glyphs; let message do that work.
4685
4686 * keyboard.c (this_command_keys): Make this a vector, instead of
4687 an array of Lisp_Objects.
4688 (this_command_keys_size): Deleted.
4689 (echo, add_command_key, Fthis_command_keys): Adjusted
4690 appropriately.
4691 (init_keyboard): Don't allocate it here.
4692 (syms_of_keyboard): Allocate it here, and staticpro it.
4693 * keyboard.h (this_command_keys): Extern declaration changed. Doc fix.
4694 * callint.c (Fcall_interactively): Change handling of 'e' spec;
4695 this_command_keys is now a vector.
4696
4697 * keyboard.c (read_char): Call ourselves with the appropriate
4698 number of arguments.
4699 (read_char_menu_prompt): If USED_MOUSE_MENU is zero, don't try to
4700 store things in it.
4701
4702 * window.c: Try to deal coherently with deleted windows:
4703 * (Flive_window_p): New function.
4704 (Qlive_window_p): New variable, to name it in type errors.
4705 (syms_of_window): Defsubr Slive_window_p, init and staticpro
4706 Qlive_window_p.
4707 * lisp.h (CHECK_LIVE_WINDOW): New predicate.
4708 (Qlive_window_p): Extern declaration for this.
4709 * window.c (decode_window): Use CHECK_LIVE_WINDOW instead of
4710 CHECK_WINDOW; the only thing a user should be able to do to a dead
4711 window is check its type.
4712 (Fcoordinates_in_window_p, Fnext_window, Fprevious_window,
4713 Fdelete_other_windows, Fselect_window, Fsplit_window,
4714 Fscroll_other_window): Use CHECK_LIVE_WINDOW instead of
4715 CHECK_WINDOW.
4716 * frame.c (make_frame_without_minibuffer, Fwindow_frame): Same.
4717 * sunfns.c (Fsun_menu_internal): Same.
4718 * xmenu.c (Fx_popup_menu): Same.
4719 * window.c (Fdelete_window): If WINDOW is a deleted window, do nothing;
4720 there's no harm in allowing people to delete deleted windows.
4721 Delete all of WINDOW's subwindows, too.
4722 (delete_all_subwindows): Set the buffer, vchild, and hchild of the
4723 windows we delete all to nil.
4724 * window.h (struct window): Doc fix.
4725
4726 * window.c (Fwindow_minibuffer_p): Make the WINDOW argument
4727 optional, like all the other window-querying functions.
4728
4729 * window.c (Fpos_visible_in_window_p): Use decode_window to handle
4730 the WINDOW argument, instead of writing out that function's code.
4731
4732 * window.c (check_frame_size): Don't define this extern; that
4733 doesn't mean anything.
4734
4735 * xterm.c: Clean up some of the caps lock handling:
4736 (x_shift_lock_mask): New variable.
4737 (x_find_modifier_mappings): Set it, based on the modifier mappings.
4738 (x_convert_modifiers): Use x_shift_lock_mask, instead of assuming
4739 that the lock bit always means to shift the character.
4740 (XTread_socket): When handling KeyPress events, don't pass an
4741 XComposeStatus structure along to XLookupString. When handling
4742 MappingNotify events, call XRefreshKeyboardMapping for both
4743 MappingModifier and MappingKeyboard events, not just the latter.
4744
4745 1992-10-15 Jim Blandy (jimb@totoro.cs.oberlin.edu)
4746
4747 * window.c (Fdelete_window): Choose an alternative when we delete
4748 any frame's selected window, not just when we delete the selected
4749 frame's selected window.
4750
4751 1992-10-15 Roland McGrath (roland@geech.gnu.ai.mit.edu)
4752
4753 * vm-limit.c (check_memory_limits): Declare __morecore.
4754 Remove unused variable `result'.
4755
4756 1992-10-15 Roland McGrath (roland@geech.gnu.ai.mit.edu)
4757
4758 * vm-limit.c (morecore_with_warning): Removed.
4759 (check_memory_limits): New fn; most code from
4760 morecore_with_warning, but only checks limits, doesn't do any work.
4761 (memory_warnings): Set __after_morecore_hook to check_memory_limits;
4762 don't set __morecore.
4763
4764 1992-10-14 Joseph Arceneaux (jla@churchy.gnu.ai.mit.edu)
4765
4766 * intervals.c (traverse_intervals): New parameter `depth'.
4767 Increment this when passing recursively.
4768
4769 * alloc.c (mark_interval_tree): Pass 0 as initial depth argument
4770 to traverse_intervals.
4771
4772 * xterm.h: Declaration of struct face removed.
4773
4774 * dispextern.h: New element of frame structure `max_ascent'.
4775 Removed elements `nruns' and `face_list'.
4776 LINE_HEIGHT and LINE_WIDTH macros removed.
4777 New struct face with associated typedef FACE declared, along with
4778 accessing macros.
4779
4780 * scroll.c (do_scrolling): Don't bcopy non-existant `nruns' or
4781 `face_list' elements. Do copy new `max_ascent' frame element.
4782
4783 * dispnew.c (scroll_frame_lines): All references to frame elements
4784 `nruns' and 'face_list' removed. Handle new element `max_ascent'.
4785 (free_frame_glyphs): Don't free nonexistent elements `nruns' and
4786 `face_list'; do free `max_ascent' element.
4787 (make_frame_glyphs): Don't allocate nonexistent elements `nruns'
4788 and `face_list'; do allocate `max_ascent' element.
4789 (update_frame): Replaced use of macro LINE_HEIGHT with element
4790 frame element `pix_height'.
4791
4792 1992-10-14 Jim Blandy (jimb@totoro.cs.oberlin.edu)
4793
4794 * keyboard.c (modify_event_symbol): Arrange to set the
4795 click_modifier bit on otherwise unmodified mouse clicks.
4796
4797 * keymap.c (store_in_keymap): Don't forget to QUIT in the
4798 keymap-scanning loop. Don't treat vectors as binding tables if
4799 they're the wrong length.
4800
4801 1992-10-12 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
4802
4803 * keyboard.c (kbd_buffer_get_event): Remember that
4804 *mouse_position_hook may set *FRAME to 0; don't generate
4805 switch-frame events in this case. Fix fencepost bug in fetching
4806 events from keyboard buffer.
4807
4808 1992-10-12 Richard Stallman (rms@mole.gnu.ai.mit.edu)
4809
4810 * ymakefile (ralloc.o): Delete dep mem_limits.h
4811 (vm-limit.o): Rename dep to mem-limits.h.
4812
4813 1992-10-12 Roland McGrath (roland@geech.gnu.ai.mit.edu)
4814
4815 * ralloc.c: Removed #include "mem-limits.h".
4816 [emacs]: Moved #undef NULL and #include "getpagesize.h" here.
4817 [! emacs]: #include <unistd.h>, <malloc.h>, <string.h>.
4818 (r_alloc_init): Use NIL, not NULL.
4819
4820 1992-10-12 Roland McGrath (roland@geech.gnu.ai.mit.edu)
4821
4822 * ralloc.c (sbrk): Removed decl.
4823 (real_morecore): New static variable.
4824 (warnlevel, warn_function, check_memory_limits): Removed.
4825 (obtain): Don't call check_memory_limits.
4826 (obtain, relinquish, r_alloc_sbrk): Use (*real_morecore) in place
4827 of sbrk; it returns 0 for errors, not -1.
4828 (r_alloc_init): Set real_morecore to old value of __morecore.
4829 Don't initialize lim_data or warnlevel, and don't call get_lim_data.
4830 (memory_warnings): Function removed.
4831
4832 1992-10-12 Roland McGrath (roland@geech.gnu.ai.mit.edu)
4833
4834 * vm-limit.c (warnfunction): Renamed to warn_function (was used
4835 inconsistently).
4836 (morecore_with_warning, memory_warnings): Change callers (were
4837 inconsistent).
4838
4839 1992-10-12 Roland McGrath (roland@geech.gnu.ai.mit.edu)
4840
4841 * mem-limits.h (start_of_data): Removed extra defn.
4842 (get_lim_data): Define to return void.
4843
4844 1992-10-12 Roland McGrath (roland@geech.gnu.ai.mit.edu)
4845
4846 * mem_limits.h: File renamed to mem-limits.h.
4847 * vm-limit.c, ralloc.c: Changed #includes.
4848
4849 1992-10-11 Richard Stallman (rms@mole.gnu.ai.mit.edu)
4850
4851 * syntax.c (find_defun_start): scan_buffer returns start of line;
4852 no need to advance over newline.
4853
4854 * vm-limit.c (morecore_with_warning):
4855 Reduce warnlevel when usage drops far enough.
4856 * ralloc.c (check_memory_limits): Likewise.
4857
4858 * vm-limit.c (memory_warnings): Renamed from malloc_init.
4859 Don't set lim_data or warnlevel. Use start_of_data if start is 0.
4860 * ralloc.c (memory_warnings): New function; just set warning data.
4861 Use start_of_data if start is 0.
4862 * emacs.c (Fdump_emacs, main): Use memory_warnings.
4863
4864 * mem_limits.h [!emacs]: Don't define POINTER, SIZE or NULL.
4865 (start_of_data): Define as macro, if !emacs.
4866 * ralloc.c [!emacs]: Don't include config.h or lisp.h;
4867 instead, use stddef.h. Define POINTER, SIZE, EXCEEDS_LISP_PTR.
4868 * vm-limit.c [!emacs]: Don't include config.h or lisp.h;
4869 instead, use stddef.h. Define POINTER, SIZE, EXCEEDS_LISP_PTR.
4870
4871 * ralloc.c [!emacs] (safe_bcopy): Define as macro using memmove.
4872 (r_alloc_free): Clear *ptr.
4873 (r_alloc_init): Renamed from malloc_init. Take no args.
4874 Make it static; declare at top of file.
4875 (r_alloc): Call r_alloc_init, if not initialized yet.
4876 (r_alloc_initialized): Renamed from malloc_initialized; moved to top.
4877 (ROUNDUP): Subtract 1, in case arg is already aligned.
4878
4879 * mem_limits.h (EXCEEDS_LISP_PTR): Renamed from EXCEEDS_ELISP_PTR.
4880 * vm-limit.c (morecore_with_warning): Use EXCEEDS_LISP_PTR.
4881 * ralloc.c (check_memory_limits): Use EXCEEDS_LISP_PTR.
4882
4883 1992-10-10 Jim Blandy (jimb@totoro.cs.oberlin.edu)
4884
4885 * keyboard.c (Vlast_event_frame): Make this variable exist even
4886 when MULTI_FRAME isn't #defined. People might find it
4887 necessary for writing correct programs, even when the programs
4888 don't explicitly use multiple frames.
4889 (read_char, kbd_buffer_store_event, kbd_buffer_get_event): No need
4890 to test MULTI_FRAME before setting Vlast_event_frame.
4891 (syms_of_keyboard): DEFVAR Vlast_event_frame whether or not
4892 MULTI_FRAME is defined.
4893
4894 * keyboard.c: Add switch-frame events.
4895 (Qswitch_frame): New event header symbol.
4896 (head_table): Include Qswitch_frame in the table of event heads.
4897 (kbd_buffer_get_event): Detect when a frame switch has occurred,
4898 and return a frame switch event before the enqueued event.
4899 (make_lispy_switch_frame): New function.
4900 (unread_switch_frame): New variable.
4901 (read_key_sequence): Don't throw away the key sequence if the user
4902 switches frames in the middle of the sequence. Instead, when we
4903 receive a switch-frame event in the middle of a key sequence, save
4904 it, and stuff it into unread_switch_frame when the sequence
4905 is complete.
4906 (read_char): If unread_switch_frame is set, return that value.
4907 (command_loop_1): No need to check Vlast_event_frame and select
4908 new frames here; that's taken care of by switch-frame events now.
4909 (syms_of_keyboard): Initialize and staticpro unread_switch_frame.
4910 * keyboard.h (Qswitch_frame): Declare this extern.
4911
4912 * frame.c: #include "commands.h" and "keyboard.h".
4913 (Fselect_frame): Make this interactive, and accept
4914 switch-frame events as arguments, so we can bind this function to
4915 switch-frame events.
4916 (keys_of_frame): New function; bind switch-frame to Fselect_frame.
4917 * emacs.c (main): Call keys_of_frame.
4918 * keymap.c (initial_define_lispy_key): New function, for defining
4919 non-ascii keys.
4920 * ymakefile: Note that frame.o depends on commands.h and keyboard.h.
4921
4922 * callint.c (Fcall_interactively): Allow multiple 'e' specs.
4923 (Finteractive): Doc fix.
4924 * keyboard.h (this_command_keys, this_command_key_count): Added
4925 external declarations.
4926
4927 * keymap.c (access_keymap): Treat bindings for Qt as default
4928 bindings, when new argument T_OK is non-zero.
4929 (get_keyelt, Fdefine_key, Flookup_key): Call access_keymap with
4930 T_OK false.
4931 * keyboard.c (follow_key, read_key_sequence): Call access_keymap
4932 with T_OK true.
4933
4934 * keyboard.c (apply_modifiers): Copy the value of BASE's
4935 Qevent_kind property to the new symbol.
4936
4937 * keyboard.c (syms_of_keyboard): Qevent_kind should be initialized
4938 to intern ("event-kind"), not intern ("event-type").
4939
4940 1992-10-10 Richard Stallman (rms@mole.gnu.ai.mit.edu)
4941
4942 * fileio.c (Fwrite_region): If VISIT is a file name,
4943 use that as file name to visit, and print it in the message.
4944 Use it for file locking too.
4945
4946 * m-ibmps2-aix.h [__GNUC__ >= 2] (LIB_STANDARD): Don't define.
4947
4948 1992-10-09 Jim Blandy (jimb@totoro.cs.oberlin.edu)
4949
4950 * ymakefile (FLOATSUP): Renamed to FLOAT_SUPPORT.
4951 (FRAME_SUPPORT, VMS_SUPPORT): New macros.
4952 (lisp): Rebuild this from loadup.el, using the _SUPPORT macros.
4953
4954 * ymakefile [HAVE_X_WINDOWS, not NO_X_MENU, HAVE_X11] (LIBXMENU):
4955 Link against -loldX, to get the association table functions.
4956
4957 * xterm.c, xrdb.c: #include <stdio.h> before "xterm.h", to avoid
4958 warnings about redefining NULL under GCC 2.2.2.
4959
4960 1992-10-09 Richard Stallman (rms@mole.gnu.ai.mit.edu)
4961
4962 * m/pyrmips.h: New file.
4963
4964 * s/aix3-1.h (PTY_ITERATION, etc.): Defined.
4965 (FIRST_PTY_LETTER): Deleted.
4966
4967 1992-10-07 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
4968
4969 * m/sparc.h: Include <sys/param.h>, to define the FSCALE constant.
4970
4971 * ymakefile (YMF_PASS_LDFLAGS): Refer to the prefix-args program
4972 using "./prefix-args", not just "prefix-args"; some people don't
4973 have . in their paths.
4974
4975 1992-10-06 Richard Stallman (rms@mole.gnu.ai.mit.edu)
4976
4977 * link.com: Use gcclib if compiling with GCC.
4978
4979 * fileio.c (directory_file_name): Don't clobber the envvar
4980 when handling top-level rooted dir.
4981
4982 * ymakefile (LIB_STANDARD): If ORDINARY_LINK, default this to empty.
4983
4984 * m/ibmps2-aix.h [USG_SHARED_LIBRARIES]: Define ORDINARY_LINK.
4985 Undef LIB_STANDARD. Modify LD_SWITCH_MACHINE.
4986
4987 * unexnext.c: New file.
4988 * emacs.c (main) [NeXT]: Call malloc_jumpstart.
4989
4990 1992-10-05 Richard Stallman (rms@mole.gnu.ai.mit.edu)
4991
4992 * window.c (window_loop): Pass 2nd arg to Fother_buffer.
4993 * frame.c (make_frame): Likewise.
4994 * callint.c (Fcall_interactively): Likewise.
4995 * buffer.c (Fkill_buffer): Likewise.
4996 (Fswitch_to_buffer, Fpop_to_buffer, Fbury_buffer): Likewise.
4997
4998 1992-10-03 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
4999
5000 * keyboard.c (read_key_sequence): Treat mouse clicks on non-text
5001 areas as if they were prefixed with the symbol denoting the
5002 area clicked on - `mode-line', etcetera.
5003 When we throw away an unbound `down-' event, reset mock_input as
5004 well.
5005
5006 * keyboard.c (Qevent_symbol_element_mask, Qmodifier_cache): Two
5007 new symbols, used to implement caches on event heads. These take
5008 the place of some of the caching that modify_event_symbol used to do.
5009 (parse_modifiers_uncached, apply_modifiers_uncached,
5010 lispy_modifier_list, parse_modifiers, apply_modifiers): New
5011 functions, which replace format_modifiers and reorder_modifiers;
5012 they can be useful elsewhere too.
5013 (reorder_modifiers, modify_event_symbol): Re-implement these in
5014 terms of parse_modifiers and apply_modifiers. modify_event_symbol
5015 now uses a much simpler cache, and takes advantage of the caches
5016 maintained by parse_ and apply_modifiers.
5017 (follow_key): Don't modify NEXT if KEY has no bindings.
5018 (read_key_sequence): Drop unbound `down-' events, and turn unbound
5019 `drag-' events into clicks if that would make them bound. This
5020 benefits from the rewriting of the modifier key handling code.
5021 (syms_of_keyboard): Initialize and intern
5022 Qevent_symbol_element_mask and Qmodifier_cache.
5023
5024 * keyboard.c (echo_prompt): Terminate the echo buffer properly
5025 even when the string is too long to display in the minibuffer.
5026 (echo_truncate): Just return echoptr - echobuf, rather than
5027 calling strlen on echobuf.
5028
5029 * alloc.c (Fmemory_limit): New function.
5030 (syms_of_alloc): Defsubr it.
5031
5032 * window.c (SAVE_WINDOW_DATA_SIZE): Define this using sizeof,
5033 instead of just saying it's 7; that way, we won't get screwed if
5034 we add members to struct save_window_data.
5035
5036 * window.c (struct save_window_data): Save the currently selected
5037 frame, too.
5038 (Fset_window_configuration): Restore the frame's selected window
5039 using Fselect_window, and then restore the selected frame using
5040 Fselect_frame.
5041 (Fcurrent_window_configuration): Record the currently selected
5042 frame. Update docstring to describe the information now recorded.
5043
5044 1992-10-02 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
5045
5046 * process.c (wait_reading_process_input): Ultrix select seems to
5047 return ENOMEM when interrupted. So, under Ultrix, treat ENOMEM
5048 like EINTR.
5049
5050 * keyboard.c (modifier_names): The modifier is named "control",
5051 not "ctrl".
5052
5053 * keyboard.c (modify_event_symbol): Make sure that the unmodified
5054 event header gets the proper properties set on it, by recursing
5055 and letting the same code build the properties for all event symbols.
5056
5057 * keyboard.c (Qmouse_click): Fix typo which assigned `mouse-click'
5058 symbol to Qmouse_movement.
5059
5060 1992-10-02 Richard Stallman (rms@mole.gnu.ai.mit.edu)
5061
5062 * undo.c (Fprimitive_undo):
5063 When undoing an insert, move point and then delete.
5064
5065 1992-10-02 Joseph Arceneaux (jla@churchy.gnu.ai.mit.edu)
5066
5067 * intervals.c: `copy_intervals' no longer static.
5068
5069 * intervals.h: Declare `copy_intervals'.
5070
5071 * buffer.c: #include intervals.h.
5072
5073 * ymakefile: New macro "INTERVALS", controlled by "USE_INTERVALS",
5074 which defines the interval include file "intervals.h".
5075 New entries for "intervals.c" and "textprop.c".
5076
5077 * lisp.h: Declare Qbuffer_or_string_p.
5078
5079 1992-10-02 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
5080
5081 * xterm.c (x_find_modifier_meanings): If there are no
5082 modifiers containing a Meta_ keysym, use the Alt keysyms to
5083 denote meta.
5084 (construct_mouse_click): Set the down_modifier bit on mouse
5085 button press events.
5086 (XTread_socket): When processing keypress events, use
5087 x_meta_mod_mask when processing ordinary ASCII characters, not
5088 just when processing function keys and other non-ASCII events.
5089 (XTread_socket): If we receive a MappingNotify event with the
5090 `request' member set to `MappingModifier', then call
5091 x_find_modifier_meanings to refresh x_meta_mod_mask.
5092
5093 * window.c (Fset_window_configuration): Clean up the way we save
5094 and restore the frame's size.
5095
5096 * termhooks.h (struct input_event): Doc fix.
5097 (NUM_MOUSE_BUTTONS): New constant.
5098 (click_modifier): New modifier.
5099 (NUM_MODIFIER_COMBOS): Removed.
5100
5101 * keyboard.h (EVENT_HAS_PARAMETERS): Definition changed - all events
5102 are not 5 elements long.
5103 (EVENT_HEAD): Work correctly on all sorts of events, not just
5104 events with parameters.
5105 (EVENT_WINDOW, EVENT_BUFFER_POSN, EVENT_SCROLLBAR_BUTTON,
5106 EVENT_WINDOW_POSN, EVENT_TIMESTAMP): These aren't useful
5107 anymore; this information may appear twice in an event. These
5108 are replaced by the POSN_ accessors, which are meant to be
5109 composed with the EVENT_START and EVENT_END accessors.
5110 (EVENT_START, EVENT_END): Two new accessors, to get at the
5111 starting and ending position of an event.
5112 (POSN_WINDOW, POSN_BUFFER_POSN, PONS_SCROLLBAR_BUTTON,
5113 POSN_WINDOW_POSN, POSN_TIMESTAMP): New macros, to futher
5114 diasassemble the values returned by EVENT_START and EVENT_END.
5115 * keyboard.c (echo_char, read_char): Apply EVENT_HEAD without first
5116 testing for EVENT_HAS_PARAMETERS; EVENT_HEAD works properly on
5117 all sorts of events now.
5118 (read_key_sequence): Use the new accessors to decide in which window
5119 an event occurred.
5120 * keymap.c (access_keymap, store_in_keymap,
5121 Fsingle_key_description): No need to check for
5122 EVENT_HAS_PARAMETERS before using EVENT_HEAD; the latter now
5123 works properly on all sorts of events.
5124
5125 * keyboard.c (Qevent_unmodified): Replaced by...
5126 (Qevent_symbol_elements): New property.
5127 (syms_of_keyboard): initialize and staticpro the latter, not the
5128 former.
5129 * keyboard.h (Qevent_unmodified): Extern declaration replaced by...
5130 (Qevent_symbol_elements): This.
5131 (EVENT_HEAD_UNMODIFIED): Use the Qevent_symbol_elements
5132 property, rather than the Qevent_unmodified property.
5133
5134 * keyboard.c (readable_events): This doesn't need to scan and
5135 discard mouse release events anymore; it just uses
5136 EVENT_QUEUES_EMPTY.
5137 (kbd_buffer_get_event): No need to skip past mouse release events.
5138
5139 * keyboard.c (button_down_location): New variable, which
5140 stores the location at which each button was pressed, so we
5141 can build a complete drag event when the button is released.
5142 (make_lispy_event): When a button is pressed, record its
5143 location in button_down_location, and turn it into a `down'
5144 event. When a button is released, compare its release
5145 location with its press location, and decide whether to call
5146 it a `click' or `drag' event.
5147 Change mouse movement events to be arranged like click events.
5148 (format_modifiers): Note that the click modifier has no
5149 written representation.
5150 (modifier_names, modifer_symbols): New variables, used to
5151 create the Qevent_symbol_elements property.
5152 (modify_event_symbol): Change the format of the modified
5153 symbol cache; there are too many modifier bits now to use a
5154 vector indexed by a modifier mask. Use an assoc-list instead.
5155 Document the format of the cache.
5156 Put the Qevent_symbol_elements property on each new symbol,
5157 instead of a Qevent_unmodified property.
5158 (symbols_of_keyboard): Put Qevent_symbol_elements properties on
5159 the symbols specified in head_table, not Qevent_unmodifed properties.
5160 Initialize and staticpro modifier_symbols, and staticpro the
5161 window elements of button_down_location.
5162
5163 * xmenu.c: #include "keyboard.h".
5164 (Fx_popup_menu): Use the event accessors defined in keyboard.h,
5165 instead of writing out cars and cdrs.
5166 * ymakefile: Note that xmenu.o depends on keyboard.h.
5167
5168 1992-10-02 Joseph Arceneaux (jla@wookumz.gnu.ai.mit.edu)
5169
5170 * textprop.c: Conditionalize all functions on
5171 "USE_TEXT_PROPERTIES".
5172 * intervals.c: Conditionalize all functions on
5173 "USE_TEXT_PROPERTIES".
5174 Removed #include of "screen.h".
5175
5176 * alloc.c: #include "intervals.h".
5177 (init_intervals, make_interval,
5178 mark_interval, mark_interval_tree): New functions conditionally
5179 defined.
5180 (make_uninit_string): Call INITIALIZE_INTERVAL.
5181 (INIT_INTERVALS, UNMARK_BALANCE_INTERVALS, MARK_INTERVAL_TREE):
5182 New macros, conditionally defined.
5183 (mark_object): Call MARK_INTERVAL_TREE in case Lisp_String.
5184 (gc_sweep): If text properties are in use, place all unmarked
5185 intervals on the free list. Call UNMARK_BALANCE_INTERVALS on
5186 `buffer->intervals' when unmarking `buffer'.
5187 (compact_strings): Include INTERVAL_PTR_SIZE in calculation for
5188 target of bcopy when relocating strings.
5189 (init_alloc_once): Call INIT_INTERVALS.
5190 (make_pure_string): Include INTERVAL_PTR_SIZE in calculation of
5191 `size'.
5192 Moved static declaration of `mark_object' and other functions up
5193 in the file.
5194
5195 * fileio.c (Finsert_file_contents): Call offset_intervals if
5196 text was actually inserted.
5197 #include "intervals.h".
5198
5199 1992-09-30 Joseph Arceneaux (jla@churchy.gnu.ai.mit.edu)
5200
5201 * data.c: Qbuffer_or_string_p added.
5202
5203 * syntax.c (describe_syntax): Use insert_char to insert `match'.
5204
5205 * buffer.c (reset_buffer): Do INITIALIZE_INTERVAL on the buffer's
5206 interval component.
5207 (Fkill_buffer): Likewise.
5208
5209 * editfns.c (make_buffer_string): Call copy_intervals_to_string.
5210 (Finsert_buffer_substring): Call graft_intervals_into_buffer.
5211 #include "intervals.h".
5212
5213 * insdel.c: #include "intervals.h"
5214 (prepare_to_modify_buffer): Call verify_interval_modification.
5215 (insert_from_string): Call offset_intervals and
5216 graft_intervals_into_buffer.
5217 (del_range): Call offset_intervals.
5218 (insert): Call offset_intervals.
5219
5220 * emacs.c: #include "intervals.h".
5221 (main): Call syms_of_textprop. This is only really present if
5222 Emacs is compiled with USE_TEXT_PROPERTIES defined.
5223
5224 * buffer.h: New macro TEMP_SET_PT. If intervals are used, SET_PT
5225 and TEMP_SET_PT are function calls.
5226 Similarly for BUF_SET_PT and BUF_TEMP_SET_PT.
5227 Added DECLARE_INTERVALS to buffer structure to conditionally
5228 compile an interval tree into it.
5229
5230 * intervals.h: Declare temp_set_point.
5231
5232 1992-09-30 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
5233
5234 * ymakefile (config.h): Doc fix.
5235
5236 1992-09-30 Joseph Arceneaux (jla@churchy.gnu.ai.mit.edu)
5237
5238 * config.h.in: Added a slot for definition of USE_TEXT_PROPERTIES,
5239 controlling compilation of interval code.
5240 If using GNUC, support inline functions.
5241
5242 * lisp.h: Conditionally define interval structure and macros.
5243 Add DECLARE_INTERVALS to struct Lisp_String.
5244
5245 1992-09-30 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
5246
5247 * buffer.c (Fother_buffer): Add back the VISIBLE_OK argument. It
5248 got removed with no comment or ChangeLog entry, and
5249 append-to-buffer uses it.
5250
5251 * window.c (struct save_window_data): Add a member called
5252 focus_frame, to save and restore the screen's focus frame.
5253 (Fset_window_configuration): Redirect the frame's focus as
5254 indicated in the window configuration.
5255 (Fcurrent_window_configuration): Record the frame's current focus.
5256 * minibuf.c (read_minibuf): Don't bother to save the current
5257 frame's focus, and have read_minibuf_unwind restore it; saving and
5258 restoring the window configurations will take care of that.
5259 (read_minibuf_unwind): Don't worry about restoring the frame's focus.
5260
5261 * window.c (Fset_window_configuration): Don't select the frame
5262 just because we restored its configuration.
5263
5264 * window.c (Fset_window_configuration): Don't forget to set the
5265 frame's selected window when we can't call Fselect_window.
5266
5267 * xterm.c (x_meta_mod_mask): New variable, indicating which X
5268 modifier bits denote meta keys.
5269 (x_find_modifier_meanings): New function, to set x_meta_mod_mask.
5270 (x_convert_modifiers): Use that.
5271 (x_term_init): Call x_find_modifier_meanings.
5272
5273 * data.c (Fmake_local_variable): If SYM forwards to a C variable,
5274 swap in the value for the current buffer immediately.
5275
5276 * lisp.h: Doc elaboration for Lisp_Buffer_Local_Value.
5277
5278 1992-09-29 Joseph Arceneaux (jla@churchy.gnu.ai.mit.edu)
5279
5280 * textprop.c (Ferase_text_properties): Merge intervals when
5281 possible.
5282
5283 1992-09-29 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
5284
5285 * xselect.c (Qcut_buffer0): Symbol removed; we're using a new
5286 interface to the cut buffer now.
5287 (NUM_CUT_BUFFERS, cut_buffer_atom, cut_buffer_value,
5288 cut_buffer_cached, cut_buffer_just_set): New variables.
5289 (Fx_own_selection, Fx_selection_value): Dike out the code to
5290 handle CUT_BUFFER0 requests.
5291 (Fx_get_cut_buffer, Fx_set_cut_buffer, x_watch_cut_buffer_cache,
5292 x_invalidate_cut_buffer_cache): New functions.
5293 (syms_of_xselect): Don't bother to initialize Qcut_buffer0.
5294 Initialize and staticpro cut_buffer_value, and defsubr
5295 Sx_get_cut_buffer and Sx_set_cut_buffer.
5296 * xterm.c (XTread_socket): Pass PropertyNotify events from the
5297 root window to x_invalidate_cut_buffer_cache.
5298 (x_term_init): Call x_watch_cut_buffer_cache here.
5299
5300 * keymap.c (access_keymap): Don't forget to QUIT while scanning
5301 the keymap.
5302
5303 * keyboard.c (recent_keys): This needs to be staticpro'ed. Change
5304 it from a C array, which is a pain in the neck to staticpro, into
5305 a lisp vector, which is easier.
5306 (read_char, Frecent_keys): Access recent_keys as a lisp vector,
5307 not a C array.
5308 (syms_of_keyboard): Set recent_keys to be a vector, and staticpro it.
5309
5310 * ymakefile (xfns.o): This doesn't depend on xselect.c.
5311
5312 * xterm.h (ROOT_WINDOW): Use the DefaultScreen macro, not the
5313 XDefaultScreen function.
5314
5315 * frame.c (Fdelete_frame): Call Fselect_frame with the appropriate
5316 number of arguments.
5317
5318 * data.c (Frem): Use the `fmod' function under SunOS, Ultrix, and
5319 HP/UX, not just under USG systems.
5320
5321 * buffer.c (Fbury_buffer): This used to undisplay the buffer being
5322 buried only if the BUFFER argument was nil. Instead, undisplay the
5323 buffer whenever it's displayed in the selected window, no matter
5324 how it was specified by BUFFER. This is how it behaves in 18.58,
5325 and I can't find any ChangeLog entry in 18.58 or 19.0 saying why
5326 they differ. Fix the doc string accordingly.
5327
5328 1992-09-28 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
5329
5330 * frame.c (Fselect_frame, Fframe_root_window,
5331 Fframe_selected_window, Fnext_frame, Fmake_frame_visible,
5332 Fmake_frame_invisible, Ficonify_frame): Doc fixes.
5333
5334 * ralloc.c: Since the users of the relocating allocation code
5335 handle memory exhaustion, it's better to return an error code to
5336 them than to call abort.
5337 (obtain): If we cannot allocate more memory, don't call
5338 abort. Instead, return non-zero iff the allocation is successful.
5339 (get_more_space): If obtain fails, return zero.
5340 (get_bloc): Return zero if we can't allocate the new bloc.
5341 (r_alloc_sbrk): Return zero if we can't allocate more memory.
5342 (r_alloc): If we can't allocate more memory, set *PTR to zero and
5343 return zero.
5344 (r_re_alloc): If we can't allocate more memory, leave *PTR
5345 unchanged, and return zero.
5346
5347 * ralloc.c (warnfunction): Renamed to warn_function; users changed.
5348
5349 1992-09-28 Richard Stallman (rms@mole.gnu.ai.mit.edu)
5350
5351 * insdel.c (del_range): Call record_delete before updating point.
5352
5353 * fileio.c (Finsert_file_contents): Do record_insert, then inc MODIFF.
5354
5355 * undo.c (record_delete): Record pos before the deletion.
5356 (Fprimitive_undo): Go back to recorded position.
5357
5358 1992-09-28 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
5359
5360 * window.c (delete_all_subwindows): Save the window's buffer in
5361 its `height' field; we may need to know the window's old buffer
5362 once we have restored it from a window configuration.
5363 (Fset_window_configuration): When we restore a window, if its
5364 `height' field is a buffer, restore its `buffer' field from that.
5365 This allows us to leave the window's buffer unchanged if the
5366 buffer recorded in the configuration is dead.
5367
5368 * window.c (delete_all_subwindows): Removed unused variable named
5369 "count".
5370
5371 1992-09-27 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
5372
5373 * keyboard.c (read_char): If we're returning an event from a
5374 macro, set Vlast_event_frame to Qmacro, instead of leaving it set
5375 to the frame of the previous real event.
5376 (read_key_sequence): If Vlast_event_frame isn't a frame, don't
5377 bother switching buffers.
5378 (syms_of_keyboard): Doc fix for Vlast_event_frame.
5379 (Vlast_event_frame): Doc fix.
5380
5381 * termhooks.h (alt_modifier, hyper_modifier, super_modifier,
5382 down_modifier, drag_modifier): New modifiers, to support the new
5383 input system. Re-arranged modifiers so that their bits are in
5384 canonical order; this makes reorder_modifiers slightly simpler.
5385 * keyboard.c (format_modifiers, reorder_modifiers): Handle the new
5386 modifier bits.
5387
5388 * keymap.c (access_keymap): Remove code to notice bindings for
5389 Qt.
5390
5391 1992-09-25 Richard Stallman (rms@mole.gnu.ai.mit.edu)
5392
5393 * xmenu.c (single_keymap_panes): Handle vectors properly.
5394
5395 1992-09-25 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
5396
5397 * keymap.c (Fwhere_is_internal): Don't forget to advance map to
5398 the next element when we find something that is neither a vector
5399 nor a cons. Don't forget to QUIT in the appropriate places,
5400 either.
5401
5402 1992-09-23 Joseph Arceneaux (jla@geech.gnu.ai.mit.edu)
5403
5404 * textprop.c (Fset_text_properties): Merge adjacent intervals with
5405 the same properties.
5406 (Fnext_single_property_change, Fprevious_single_property_change):
5407 New subrs.
5408
5409 * intervals.c (merge_interval_left, merge_interval_right): Abort
5410 if caller tries to merge first (or last, respectively) interval.
5411 Delete the interval node after merging.
5412 (copy_intervals): Use `split_interval_right' rather than creating
5413 new intervals with make_new_interval and attaching them
5414 explicitly.
5415 (verify_interval_modification): Changed error message. GCPRO
5416 hooks before calling Fnreverse, and correctly Fcdr down the list.
5417 Also, don't cons multiple copies of the same consecutive
5418 modification hook.
5419 (temp_set_point): New function.
5420 (set_point): Call point-left and point-entered hooks if moving
5421 between text with different properties. Use the old and new
5422 positions as arguments to these calls.
5423
5424 * intervals.c, intervals.h: (map_intervals, make_buffer_interval,
5425 make_string_interval,run_hooks): Deleted.
5426
5427 1992-09-23 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
5428
5429 * keymap.c (DENSE_TABLE_SIZE): Doc fix.
5430 (keymap_table): Function removed; this function exists only to
5431 support an incorrect understanding of the format of keymaps.
5432 (access_keymap, store_in_keymap, Fcopy_keymap,
5433 Faccessible_keymaps): Correctly handle vectors at any point in the
5434 keymap; don't assume it must be at the front.
5435 (describe_map): Instead of calling describe_vector on the vector
5436 in the cadr of the keymap (if present) and then calling
5437 describe_alist to do the rest, just call describe_map_2.
5438 (describe_alist): Renamed to describe_map_2; call describe_vector
5439 when we encounter a vector in the list.
5440 * xmenu.c (single_keymap_panes): Comment out the code which
5441 tries to handle a dense keymap's table; it uses keymap_table, and
5442 the rest of the code never uses the table contents anyway.
5443
5444 * keymap.c (access_keymap, store_in_keymap): Clarify error message
5445 for non-ASCII characters.
5446
5447 * process.c [SIGCHLD && !BSD && !UNIPLUS && !HPUX]
5448 (create_process): #if 0 out the code which sets the child's
5449 handler for SIGCHLD to sigchld; the code which gives sigchld its
5450 value has been diked out under these CPP symbols, so this should
5451 be diked out too.
5452
5453 * indent.c (Fmove_to_column): Pass the right number of arguments
5454 to Findent_to.
5455
5456 1992-09-22 Jim Blandy (jimb@kropotkin.gnu.ai.mit.edu)
5457
5458 * emacs.c (emacs_priority): Doc fix.
5459 (main): Use nice, not setpriority; we just need a
5460 simple, portable call to nice here.
5461 * callproc.c (child_setup): Use nice, not setpriority.
5462 * sysdep.c (sys_suspend): Don't try to use "nice (- nice (0))" to
5463 set the subshell's priority to normal; nice doesn't return a
5464 defined value on all systems. Instead, since emacs_priority gives
5465 the priority that Emacs was nastied to, we can use it to reset the
5466 priority in a straightforward way.
5467 [BSD4_1], [USG], [VMS] (setpriority): Remove dummy and
5468 compatibility definitions of setpriority.
5469
5470 * keymap.c (access_keymap): Return the binding of Qt as the
5471 binding for all unbound characters.
5472
5473 * fileio.c (syms_of_fileio): Don't try to defsubr Sunix_sync
5474 unless it's actually been defined - that is, if unix is #defined.
5475
5476 * xrdb.c (x_get_resource): Cast the value being assigned to
5477 ret_value->addr, rather than ret_value->addr itself; only GCC
5478 allows you to cast lvalues.
5479
5480 * eval.c (unbind_catch): Do the long-jump here. Take a VALUE
5481 argument, which specifies the value to return to the catch, or the
5482 data to give to the condition handler. Renamed to
5483 unwind_to_catch, to reflect new role.
5484 (Fsignal, Fthrow): Removed code to set catch tag value and do the
5485 long-jump; this is taken care of by unwind_to_catch.
5486
5487 1992-09-21 Richard Stallman (rms@mole.gnu.ai.mit.edu)
5488
5489 * alloc.c (mark_object): Avoid car recursion on cons with nil in cdr.
5490 Avoid recursion on constants-vector of a compiled function.
5491
5492 * oldXMenu: Symlink deleted; anything that uses it needs fixing
5493 in any case to work properly on systems without symlinks.
5494
5495 1992-09-20 Richard Stallman (rms@mole.gnu.ai.mit.edu)
5496
5497 * s/sol2.h: New file.
5498
5499 * fileio.c: Don't include sys/dir.h.
5500
5501 * s/usg5-4.h (LIBS_SYSTEM): Move non-default libraries here.
5502 (LIB_STANDARD, START_FILES): Deleted.
5503 (ORDINARY_LINK): Defined.
5504
5505 * ymakefile [ORDINARY_LINK]: Default LD to $(CC)
5506 and make START_FILES and LIB_STANDARD empty.
5507 (C_SWITCH_X_MACHINE, C_SWITCH_X_SYSTEM): New macros, default empty.
5508 (CFLAGS): Use them.
5509
5510 1992-09-19 Richard Stallman (rms@mole.gnu.ai.mit.edu)
5511
5512 * ymakefile (${etc}DOC): Use OBJECTS_SYSTEM and OBJECTS_MACHINE.
5513
5514 * dired.c [VMS]: Include string.h, rms.h, rmsdef.h.
5515 [VMS] (Ffile_version_limit): New function.
5516
5517 * sysdep.c (sys_suspend): Read EMACS_PARENT_PID envvar for parent.
5518
5519 * syntax.c (scan_lists): When searching back for comment:
5520 if comment-end is 2 chars, assume it does end a comment.
5521 Otherwise, scan back to previous comment-end to see if there's
5522 a comment starter between. Also record whether the string quotes
5523 between the start and the end are paired and uniform.
5524 If so, skip to comment starter. If not, scan from start of
5525 defun to find comment starter if any.
5526 (find_defun_start): New function.
5527
5528 * alloc.c (mark_object): Save last 500 values of objptr.
5529 Check for clobberage of ptr, when marking a vector.
5530
5531 1992-09-18 Richard Stallman (rms@mole.gnu.ai.mit.edu)
5532
5533 * keymap.c (get_keyelt): Skip menu help string after menu item name.
5534
5535 1992-09-18 Jim Blandy (jimb@pogo.cs.oberlin.edu)
5536
5537 * buffer.c (Fget_buffer_create): Doc fix.
5538
5539 * lisp.h (struct handler): Remove the poll_suppress_count member
5540 of this structure; it is always equal to the poll_suppress_count
5541 of its catchtag structure. The non-local exit code in eval.c is
5542 difficult enough to understand as it is; needless duplication
5543 doesn't help.
5544 * eval.c (Fcondition_case): Rearranged for clarity. Don't worry
5545 about setting h.poll_suppress_count; it's guaranteed to be the
5546 same as c.poll_suppress_count.
5547 (internal_condition_case): Don't worry about
5548 h.poll_suppress_count.
5549 (Fsignal): Use h->tag->poll_suppress_count instead of
5550 h->poll_suppress_count.
5551
5552 * eval.c (Fsignal): It's okay for the debugger to return to the
5553 caller if the caller was signalling a quit.
5554
5555 * eval.c (unbind_catch): Restore the polling suppression count
5556 here, instead of in Fsignal and Fthrow.
5557 (Fthrow, Fsignal): Don't restore the polling suppression count here.
5558
5559 * lisp.h (struct specbinding, struct handler): More documentation.
5560 * eval.c (struct catchtag): More documentation.
5561
5562 1992-09-17 Richard Stallman (rms@mole.gnu.ai.mit.edu)
5563
5564 * ymakefile (LIBX): Don't use -loldX.
5565
5566 1992-09-17 Jim Blandy (jimb@pogo.cs.oberlin.edu)
5567
5568 * minibuf.c (get_minibuffer): Enable undo in minibuffers.
5569
5570 1992-09-14 Richard Stallman (rms@mole.gnu.ai.mit.edu)
5571
5572 * ymakefile (LIBXMENU): Check NO_X_MENU, not HAVE_X_MENU
5573 * emacs.c (main): Use X menu code if HAVE_X_WINDOWS and not NO_X_MENU.
5574 * keyboard.c (read_char_menu_prompt): Likewise.
5575
5576 * config.h.in: Delete everything about config.h.
5577
5578 * emacs.c: Eliminate HIGHPRI as compilation option.
5579 (emacs_priority): New C variable, also Lisp variable.
5580 (main): Set the priority iff emacs_priority is nonzero.
5581
5582 1992-09-14 Jim Blandy (jimb@pogo.cs.oberlin.edu)
5583
5584 * eval.c (entering_debugger): Variable renamed
5585 when_entered_debugger, and is now a timestamp based on
5586 num_nonmacro_input_chars.
5587 (init_eval): Initialize when_entered_debugger, not
5588 entering_debugger.
5589 (call_debugger): Set when_entered_debugger to the current value of
5590 num_nonmacro_input_chars.
5591 (find_handler_clause): Don't call debugger unless
5592 num_nonmacro_input_chars is greater than when_entered_debugger;
5593 that way, we won't call the debugger unless the user has had a
5594 chance to take control.
5595 (Fbacktrace): Don't clear entering_debugger here.
5596 * keyboard.h (num_nonmacro_input_chars): Added extern declaration
5597 for this.
5598
5599 * fns.c (Fy_or_n_p): After testing for a QUIT, clear Vquit_flag.
5600 Otherwise, if Fy_or_n_p is called while Vinhibit_quit is true and
5601 the user presses C-g, this function goes into an infinite loop.
5602
5603 * dispnew.c (get_display_line): Don't abort if the frame is
5604 invisible; since unmap events are handled at the interrupt level,
5605 a screen may become invisible at any time.
5606
5607 1992-09-13 Richard Stallman (rms@mole.gnu.ai.mit.edu)
5608
5609 * fileio.c (Fverify_visited_file_modtime):
5610 Pass buffer itself to handler, if have handler.
5611 (Fwrite_region): GCPRO around Fexpand_file_name, Ffile_name_directory.
5612 (Fread_file_name_internal): GCPRO around file name manip.
5613 (Ffile_writable_p, Ffile_readable_p): Use abspath, not filename,
5614 (Ffile_executable_p, Ffile_exists_p): to run the handler.
5615 (Fset_file_modes, Ffile_directory_p, Ffile_modes): Likewise.
5616 (Ffile_newer_than_file_p): GCPRO around expand_and_dir_to_file.
5617
5618 1992-09-13 Jim Blandy (jimb@pogo.cs.oberlin.edu)
5619
5620 * s/bsd4-3.h: Give the BSD4_3 and BSD symbols the same numeric
5621 definitions they'll get in <sys/param.h>, to avoid warnings.
5622
5623 * m/hp9000s300.h: Don't include <sys/wait.h>. This really
5624 shouldn't be necessary.
5625 (BIG_ENDIAN): Define this as "4321", to agree with
5626 <machines/endian.h>, and avoid warnings.
5627
5628 * systime.h: Re-arrange inclusion of <sys/time.h> and <time.h> so
5629 that they don't both get included under BSD, and do both get
5630 included under AIX.
5631
5632 * xdisp.c (display_mode_line): If the only other frames are
5633 minibuffer frames, don't name the frame after the in the selected
5634 window. We can use Fnext_frame to do this test easily.
5635
5636 1992-09-12 Richard Stallman (rms@mole.gnu.ai.mit.edu)
5637
5638 * process.c (Faccept_process_output): Initialize useconds.
5639
5640 * keyboard.c (num_nonmacro_input_chars): New variable.
5641 (read_char): Use num_nonmacro_input_chars to decide on auto-save & gc.
5642 Increment it when appropriate.
5643 (record_auto_save): Use num_nonmacro_input_chars.
5644
5645 * fileio.c (Ffile_name_directory, Ffile_name_nondirectory):
5646 (Ffile_name_as_directory, Fdirectory_file_name, Fexpand_file_name):
5647 Call find_file_handler.
5648 (syms_of_fileio): Set up Qfile_name_directory, etc.
5649 (Fcopy_file): Call find_file_handler for newname as well as for filename.
5650 (syms_of_fileio): Initialize Vfile_name_handler_alist.
5651
5652 1992-09-11 Jim Blandy (jimb@pogo.cs.oberlin.edu)
5653
5654 * callint.c (Fcall_interactively): Remove the 'K' interactive
5655 code, in favor of 'e'; that's a better name.
5656
5657 1992-09-11 Richard Stallman (rms@mole.gnu.ai.mit.edu)
5658
5659 * s/esix5r4.h: New file.
5660
5661 * sysdep.c (init_sys_modes): Handle VDSUSP like V_DSUSP.
5662 Use CDISABLE, not CDEL.
5663 Turn off IEXTEN if it exists.
5664 * systty.h (CDISABLE): New macro; may be defined from CDEL.
5665
5666 * keyboard.c (command_loop_1): Bind inhibit-quit to t when in Fsit_for.
5667
5668 1992-09-10 Jim Blandy (jimb@pogo.cs.oberlin.edu)
5669
5670 * Makefile.in: Add comments starting with "# DIST: " explaining
5671 that this gets munged by the configure script.
5672
5673 1992-09-10 Richard Stallman (rms@mole.gnu.ai.mit.edu)
5674
5675 * s-aix3-1.h (HAVE_GETHOSTNAME): Defined.
5676
5677 1992-09-09 Jim Blandy (jimb@pogo.cs.oberlin.edu)
5678
5679 * frame.c (choose_minibuf_frame): abort if the selected frame has
5680 nil in its minibuffer_window slot; this shouldn't happen any more.
5681 * window.c (minibuffer_window): Accept an optional FRAME argument;
5682 if specified, return the minibuffer used by that frame.
5683
5684 * keymap.c (describe_buffer_bindings): Adjust key_heading to match
5685 the format used by describe_map_tree. Also, don't reprint the
5686 "key binding" header above the global bindings if we've already
5687 printed it for the local bindings; it's clear enough that the
5688 columns mean the same thing as above.
5689
5690 1992-09-08 Jim Blandy (jimb@pogo.cs.oberlin.edu)
5691
5692 * ralloc.c (r_re_alloc): Instead of allocating a new bloc at the
5693 end of the heap, copying the data to it, and then freeing the
5694 original bloc, just expand the original block. This saves a copy
5695 and a call to sbrk, and also removes the large spike in memory
5696 allocation that would occur when resizing large buffers. And it's
5697 less code.
5698
5699 * keyboard.h (Vkeyboard_translate_table): Declare this extern
5700 here, so describe_buffer_bindings can use it.
5701 * keymap.c (describe_buffer_bindings): Declare buf and bufend...
5702
5703 1992-09-05 Jim Blandy (jimb@pogo.cs.oberlin.edu)
5704
5705 * systime.h: Always #include <time.h>, not just when NEED_TIME_H
5706 is defined. It gets us struct tm. #include <sys/time.h> whenever
5707 HAVE_TIMEVAL is defined and NEED_TIME_H isn't.
5708
5709 * systime.h: Note that the tz_dsttime field of the struct timezone
5710 returned by gettimeofday doesn't say whether daylight savings is
5711 _currently- active; rather it specifies whether it is *ever*
5712 active.
5713 (EMACS_GET_TZ_OFFSET_AND_SAVINGS): Removed `savings_flag'
5714 argument, and renamed to EMACS_GET_TZ_OFFSET. Don't try to
5715 extract savings information. EMACS_CURRENT_TIME_ZONE should call
5716 localtime to figure out whether DST is active.
5717
5718 * m/hp9000s300.h: #include <sys/wait.h> before doing anything
5719 else, to avoid conflicts between the system's and Emacs's
5720 definitions of BIG_ENDIAN.
5721
5722 * keymap.c (describe_buffer_bindings): Set the current buffer to
5723 descbuf before calling current_minor_maps; that function's value
5724 depends on the values of buffer-local variables. Don't set the
5725 current buffer to Vstandard_output until afterwards.
5726
5727 * keymap.c (describe_buffer_bindings): If
5728 Vkeyboard_translate_table is in effect, describe its effects.
5729
5730 * frame.c (Fnext_frame): Doc fix.
5731
5732 * frame.c (prev_frame): #if 0'd out; nobody uses this.
5733
5734 * frame.c (next_frame): The logic which determines whether a frame
5735 is acceptable to return was misarranged; rewrote it.
5736 (prev_frame): Same thing.
5737
5738 1992-09-05 Richard Stallman (rms@mole.gnu.ai.mit.edu)
5739
5740 * syntax.c (scan_lists): Improve smarts for backwards scan of comments.
5741 Don't modify comstyle inside that loop.
5742 If string quotes don't match up, don't take value from OFROM;
5743 instead, parse forward using scan_sexps_forward.
5744 (scan_sexps_forward): Return value via a pointer passed in.
5745 New element in state contains char addr of last comment-starter seen.
5746 (Fparse_partial_sexp): Change call to scan_sexps_forward.
5747
5748 1992-09-04 Richard Stallman (rms@mole.gnu.ai.mit.edu)
5749
5750 * xmenu.c (xmenu_show): If no panes, just return.
5751
5752 * keyboard.c (last_nonmenu_event): New var.
5753 (syms_of_keyboard): New Lisp var.
5754 (read_key_sequence): Use that instead of prev_event.
5755 * commands.h (last_nonmenu_event): Declared.
5756 * callint.c (Fcall_interactively): For `K', use last_nonmenu_event.
5757 Make `e' alias for `K'.
5758
5759 1992-09-03 Jim Blandy (jimb@pogo.cs.oberlin.edu)
5760
5761 * editfns.c (Fcurrent_time_string): Change docstring to
5762 indicate that we will probably add the timezone to the end,
5763 now that we have it available on many systems.
5764
5765 * xrdb.c: Don't include <X11/Xos.h>. Under R4, it stupidly
5766 insists on defining SIGCHLD, even if it already has a definition.
5767 (file_p): Use the constant 4 instead of R_OK; empirically, the
5768 number is more portable than the symbol if you count the #include
5769 hair you have to go through to get R_OK defined. Ffile_readable_p
5770 does this too.
5771
5772 * xterm.c (x_wm_set_size_hint): Set the base_width and base_height
5773 members of size_hints, if they're available (X11R4 and after);
5774 otherwise, approximate the right thing, by using min_width and
5775 min_height as the base size.
5776
5777 1992-09-02 Barry A. Warsaw (warsaw@anthem.nlm.nih.gov)
5778
5779 Extended syntax.c in the following ways to support up to 2
5780 orthogonal comment styles per mode. This is needed for C++.
5781 Bit 6 of syntax table entry for a character indicates
5782 it is part of the `b' comment style. Otherwise it is
5783 part of the `a' style.
5784 * syntax.h (SYNTAX_COMMENT_STYLE): New macro.
5785 * syntax.c (Fmodify_syntax_entry): Set that flag for `b'.
5786 (describe_syntax): Print the `b' flag.
5787 (scan_lists, scan_sexps_forward): Handle the new flag.
5788 (Fparse_partial_sexp): Return new element in value.
5789
5790 1992-09-02 Roland McGrath (roland@geech.gnu.ai.mit.edu)
5791
5792 * fileio.c (syms_of_fileio): Doc fix for Vfile_name_handler_alist.
5793
5794 1992-09-02 Jim Blandy (jimb@pogo.cs.oberlin.edu)
5795
5796 * keyboard.c (kbd_buffer_get_event): When performing the
5797 FRAME_FOCUS_FRAME redirection, don't modify the frame field of
5798 the event; that fatally corrupts mouse click events. Instead,
5799 just perform the redirection on the value assigned to
5800 Vlast_event_frame.
5801
5802 * callint.c (Fcall_interactively): Don't try to get the
5803 `enable-recursive-minibuffers' property from FUNCTION unless
5804 FUNCTION is actually a symbol; there are some cases where a key
5805 sequence is bound directly to a lambda form, and there's no reason
5806 to break these.
5807
5808 * window.c (Fset_window_configuration): Don't signal an error
5809 if the frame size saved in the window configuration doesn't
5810 match the frame's current size; instead, temporarily resize
5811 the frame while installing the window configuration. This is
5812 important because using the minibuffer saves and restores the
5813 current window configuration, and you don't want to signal an
5814 error just because the user resized the frame while using the
5815 minibuffer.
5816
5817 * doc.c (Fsnarf_documentation): Signal an error if this is
5818 called in a dumped Emacs.
5819
5820 * alloc.c (mark_object): mark a symbol's name after marking its
5821 value, function, and property list rather than before; this way,
5822 symbols' names are readable, giving us a chance to detect some
5823 kinds of heap corruption.
5824
5825 1992-09-02 Richard Stallman (rms@mole.gnu.ai.mit.edu)
5826
5827 * emacs.c (__main, __do_global_dtors): New dummy functions.
5828 (__do_global_ctors_aux, __do_global_ctors): Fix typo in fn names.
5829
5830 1992-09-01 Jim Blandy (jimb@pogo.cs.oberlin.edu)
5831
5832 * prefix-args.c: New file. See comment at top of file.
5833 * ymakefile (YMF_PASS_LDFLAGS): Use the prefix-args program to
5834 affix the -Xlinker prefix to the linker arguments.
5835 (prefix-args): New target.
5836 (temacs): Depend on prefix-args.
5837
5838 * xterm.c (x_catch_errors): Don't forget to initialize
5839 x_caught_error_message to the null string, so x_check_errors can
5840 tell when an error has occurred.
5841
5842 * unexmips.c (mark_x): Declare this as static void at the top of
5843 the file and at the function definition.
5844
5845 * keyboard.c (input_available_signal): Declare this to return
5846 SIGTYPE.
5847
5848 * xrdb.c (getuid): Declare this to return short.
5849
5850 * s/bsd4-3.h: Remove definition of SIGTYPE macro; Mt. Xinu says
5851 it's int, but Ultrix says it's void. Since the SIGTYPE guessing
5852 code in the `configure' script gives the correct answer for both
5853 of these cases, there's no point in listing it here.
5854
5855 * systime.h (EMACS_CURRENT_TIMEZONE): Change documentation to
5856 indicate that *OFFSET should be set to the number of minutes EAST
5857 of Greenwich, which is what Ed Reingold says real time gurus want.
5858 Changed the definition of the EMACS_GET_TZ_OFFSET_AND_SAVINGS
5859 macro to reflect this. Buggily, the Fcurrent_time_zone function
5860 was already expecting minutes east of GMT.
5861
5862 * Makefile.in (distclean): Remove backups from the `m' and `s'
5863 directories, too.
5864
5865 * m/mips.h: Merge changes from Emacs 18.58:
5866 [NEWSOS5]: Changes so this file can be used with s/newsos5.h.
5867 (SIGN_EXTEND_CHAR): Define this using a cast to signed char. I
5868 guess the MIPS compiler and its derivatives all have this type.
5869 (HAVE_ALLOCA, C_ALLOCA): Define the former if we're compiling with
5870 GCC, and the latter otherwise.
5871 (C_SWITCH_MACHINE): Defined, instead of C_SWITCH_SYSTEM.
5872 (LINKER): Defined, if BSD.
5873 (XUINT, XSET, XUNMARK): Add parentheses to eliminate warnings from
5874 GCC. Reindent to fit in 80 columns.
5875 INHIBIT_BSD_TIME prevents including bsd/sys/time.h.
5876 * s/newsos5.h: New file for Sony NEWS-OS release 5, courtesy of
5877 Chris Hanson <cph@klia.ai.mit.edu>.
5878
5879 * m/mips.h: Don't undefine LOAD_AVE_TYPE; the comment says that
5880 Emacs 19 has the crocks to handle it properly.
5881
5882 * m/pmax.h: Merge changes from Emacs 18.58:
5883 (LIB_STANDARD, COFF, TERMINFO): Cancel out definitions from
5884 m/mips.h which are only appropriate for USG.
5885 (MAIL_USE_FLOCK, HAVE_UNION_WAIT): Do define these.
5886 (BROKEN_O_NONBLOCK): Defined.
5887 (LINKER): Don't define this.
5888 [OSF1]: Undef C_ALLOCA, define HAVE_ALLOCA.
5889
5890 * s/osf1.h: New file.
5891
5892 * s/bsd4-3.h: Merge changes from Emacs 18.58:
5893 (BSD, BSD4_3): Just define these, don't fret about numerical
5894 values or version numbers.
5895
5896 * m/hp9000s300.h: Merge changes from Emacs 18.58, and hp300bsd.h:
5897 Change configuration note to say it's okay to use this file for BSD.
5898 Add comment saying that NOMULTIPLEJOBS must be defined for
5899 versions of HP/UX before 6.5.
5900 Don't define BIG_ENDIAN if it seems that <endian.h> has already
5901 done so.
5902 [BSD4_3] Define m68000, instead of hp9000s300; crt0.c uses these
5903 to decide what sort of startup code to use.
5904 [not BSD4_3] Under HP/UX, always define the BSD memory functions
5905 (bcopy, bzero, and bcmp) in terms of the SYSV string functions
5906 (memcpy, memset, and memcmp), not just under HP/UX 5; version 6's
5907 BSD compatibility library has reported bugs in `signal'.
5908 (NEED_BSDTTY): Move this symbol's definition inside the "not
5909 BSD4_3" conditional, since it's only relevant to HP/UX.
5910 * m/hp300bsd.h: File deleted, since m/hp9000s300.h now
5911 works with both HP/UX and BSD; it includes m/hp300bsd.h's
5912 specifications.
5913
5914 * m/hp9000s300.h: Remove definition for SIGN_EXTEND_CHAR; this is
5915 only used by the regexp code, which has its own portable
5916 definition these days.
5917
5918 1992-08-31 Richard Stallman (rms@mole.gnu.ai.mit.edu)
5919
5920 * keymap.c (Fmake_sparse_keymap): New optional arg. Callers changed.
5921 (Fmake_keymap): Likewise.
5922
5923 * emacs.c (__do_global_ctors, __do_global_ctors_aux): New dummy fns.
5924 (__CTOR_LIST__, __DTOR_LIST__): New dummy variables.
5925
5926 * fileio.c (Fdo_auto_save): Always call record_auto_save.
5927
5928 * keyboard.c (read_char): Call read_char_menu_prompt here.
5929 Accept 4 new args to pass to it. Include them in recursive call.
5930 Don't delay before starting echo if prev_event was a mouse event.
5931 Test for eof in batch mode now understands C is a Lisp_Object.
5932 (read_key_sequence): Don't call it here; always call read_char.
5933 Don't change last_event_buffer after a mouse menu input.
5934 (read_char_menu_prompt): Arg PROMPT deleted.
5935 Return nil if nothing to do.
5936
5937 * xmenu.c (Fx_popup_menu): Treat coords relative to spec'd window.
5938 (single_keymap_panes): New function; contains guts of keymap_panes.
5939 If a command binding for submenu has a prompt string starting with @,
5940 make a separate pane for it at this level.
5941
5942 * xfns.c (Fx_track_pointer): Pass new args to read_char.
5943 (Fx_select_region, Fx_horizontal_line): Likewise.
5944 * lread.c (Fread_char): Pass new args to read_char.
5945 (Fread_event, Fread_char_exclusive): Likewise.
5946 * fns.c (Fy_or_n_p): Pass new args to read_char.
5947
5948 1992-08-30 Richard Stallman (rms@mole.gnu.ai.mit.edu)
5949
5950 * keyboard.c (read_key_sequence): Keep track of prev_event.
5951 Pass new proper args to read_char_menu_prompt.
5952 (read_char_menu_prompt): New arg prev_event. Use Fx_popup_menu.
5953 Handle any number of keymaps, not just LOCAL and GLOBAL.
5954 Invert meaning of arg PROMPT. Test of menu_prompting was backwards.
5955
5956 * keymap.c (keymap_table): No longer static.
5957
5958 * xmenu.c (keymap_panes): New function.
5959 (Fx_popup_menu): Accept keymap or list of keymaps as MENU argument.
5960 Accept mouse button event as POSITION argument.
5961
5962 1992-08-29 Richard Stallman (rms@mole.gnu.ai.mit.edu)
5963
5964 * cmds.c (internal_self_insert): Assume Fexpand_abbrev expanded
5965 something if it incremented MODIFF.
5966
5967 1992-08-28 Richard Stallman (rms@mole.gnu.ai.mit.edu)
5968
5969 * unexmips.c (unexec): Allow sections in any order.
5970 Adjust addresses of rdata section as well as data section.
5971
5972 * buffer.c (syms_of_buffer): Made buffer-display-table,
5973 buffer-field-list and buffer-undo-list allow any type of value.
5974
5975 1992-08-27 Richard Stallman (rms@mole.gnu.ai.mit.edu)
5976
5977 * fns.c (Fappend): Doc fix.
5978
5979 1992-08-24 Jim Blandy (jimb@pogo.cs.oberlin.edu)
5980
5981 * s/usg5-4.h: Incorporate changes from 18.58:
5982 (LIBX10_SYSTEM): Undefine this.
5983 (GNULIB): Definition deleted -- done in ymakefile.
5984 (LIB_STANDARD): Don't use GNULIB.
5985 (HAVE_TCATTR): Defined.
5986
5987 * xfns.c (x_icon): Don't call x_wm_set_icon_positions if the user
5988 hasn't specified the icon position. Let the window manager put
5989 the icon where it likes.
5990
5991 * xterm.c (x_make_frame_invisible): Don't forget to check the
5992 return value of XWithdrawWindow; it could indicate that the window
5993 wasn't successfully redrawn.
5994
5995 * sysdep.c (init_baud_rate): Re-arranged order of conditionals -
5996 test TERMIOS before TERMIO; when two options might both be
5997 defined, test the most recent first, so that the most recent
5998 functions get used.
5999
6000 * sysdep.c [HAVE_TERMIO] (init_baud_rate): Don't use tcgetattr
6001 unless HAVE_TCATTR is defined. Only very rarely do termio systems
6002 have the tc{get,set}attr macros.
6003
6004 * window.c (coordinates_in_window): Do not assume that all
6005 one-line windows are the minibuffer, or that all minibuffers are
6006 one line high. Use MINI_WINDOW_P.
6007
6008 * systerm.h: Renamed to systty.h, to be more consistent with
6009 everything else in Unix.
6010 * dispnew.c, emacs.c, keyboard.c, process.c, sysdep.c: #include
6011 directive changed.
6012 * ymakefile: References to systerm.h changed.
6013
6014 * s/usg5-3.h: Merged changes from 18.58:
6015 (HAVE_SYSV_SIGPAUSE): Defined.
6016 (BROKEN_TIOCGETC): Defined.
6017
6018 1992-08-21 Richard Stallman (rms@mole.gnu.ai.mit.edu)
6019
6020 * process.c (WCOREDUMP): Define only if not defined.
6021 (create_process) [HAVE_SETSID]: Use TIOCSCTTY if exists.
6022
6023 1992-08-20 Jim Blandy (jimb@pogo.cs.oberlin.edu)
6024
6025 * fileio.c (Fdo_auto_save): Call Fsleep_for with the appropriate
6026 number of arguments.
6027 * fns.c (Fyes_or_no_p): Same.
6028
6029 * dispnew.c (update_frame): Change the way we handle
6030 cursor_in_echo_area. Firstly, ignore this if the frame we're
6031 updating doesn't have a minibuffer. Secondly, don't handle the
6032 selected frame specially. Thirdly, don't assume that the
6033 minibuffer is only one line high. If cursor_in_echo_area < 0, put
6034 the cursor in the upper-left corner; if cursor_in_echo_area > 0,
6035 put it on the lowest non-empty line in the minibuffer window, or
6036 on the top line.
6037
6038 * dispnew.c (direct_output_for_insert): Fail if
6039 cursor_in_echo_area is set; we don't want to do the typing there.
6040 (direct_output_for_insert): Same.
6041
6042 1992-08-19 Jim Blandy (jimb@pogo.cs.oberlin.edu)
6043
6044 * xterm.c (x_make_frame_invisible): Use XWithdrawWindow when
6045 available [HAVE_X11R4]; send the UnmapNotify event when
6046 appropriate [HAVE_X11]; just unmap the window if that's all that's
6047 needed [not HAVE_X11].
6048
6049 * xterm.c (x_set_text_property): Removed; it's only called from
6050 one place. Who wants *another* layer of indirection?
6051 * xfns.c (x_set_name): Use XSetWM{Name,IconName} when available
6052 [HAVE_X11R4], or XSetIconName and XStoreName otherwise.
6053
6054 * xterm.h (FRAME_X_WINDOW): New macro, for readability.
6055 * xterm.c, xfns.c, xselect.c: Use it.
6056
6057 * emacs.c (Fkill_emacs): Doc fix.
6058 (syms_of_emacs): Doc fix for Vkill_emacs_hook.
6059
6060 * xterm.c (x_death_handler): Renamed to x_connection_closed.
6061 (x_term_init): Use x_connection_closed as the SIGPIPE handler.
6062
6063 * xterm.c (acceptable_x_error_p, x_handler_error_gracefully,
6064 x_error_handler): Removed; you can't catch X errors this way,
6065 since you can't perform X operations from within an X error
6066 handler, and even though we call error, we're still within an X
6067 error handler.
6068 (x_error_quitter, x_error_catcher): New functions, for panicking
6069 on and catching X protocol errors.
6070 (x_caught_error_message): Buffer for caught X errors.
6071 (x_catch_errors, x_check_errors, x_uncatch_errors): New functions
6072 for catching errors.
6073 (x_term_init): Set the error handler to x_error_quitter, rather
6074 than x_error_handler.
6075 * xfns.c (x_set_mouse_color): Use x_catch_errors, x_check_errors,
6076 and x_uncatch errors to avoid crashing if the user selects an
6077 odd cursor.
6078
6079 * xterm.c (x_proto_requests): Removed; it's not important.
6080
6081 * xterm.c (events): Array removed; it's not used.
6082
6083 * xfns.c (select_visual): Use XVisualIDFromVisual when available
6084 [HAVE_X11R4].
6085
6086 * xrdb.c (get_user_db): Use XResourceManagerString when available
6087 [HAVE_X11R4].
6088
6089 * window.c (change_window_height): If the size of the window will
6090 shrink below the minimum, this code would only try to delete it if
6091 it had a parent. Well, even if the window doesn't have a parent,
6092 you want Fdelete_window to signal an error, since you're trying to
6093 resize one of the undeleteable windows into nothingness. So call
6094 Fdelete_window even if the window doesn't have a parent.
6095
6096 * window.c (MINSIZE): Add kludge so that the minibuffer is always
6097 allowed to shrink to one line in height.
6098 (MINSIZE, CURBEG, CURSIZE): Change these so that their argument
6099 are always Lisp_Objects, not struct window *'s.
6100 (change_window_height): Changed accordingly.
6101
6102 1992-08-18 Jim Blandy (jimb@pogo.cs.oberlin.edu)
6103
6104 * frame.h (struct frame): New member - explicit_name.
6105 * frame.c (make_frame): Clear it.
6106 * xfns.c (x_set_name): Take new argument EXPLICIT, instead of
6107 OLDVAL.
6108 (x_explicitly_set_name, x_implicitly_set_name): New functions.
6109 (x_frame_parms): Use x_explicitly_set_name here.
6110 (x_window): Use x_implicitly_set_name here.
6111 * xdisp.c (display_mode_line): Use x_implicitly_set_name here.
6112
6113 * xterm.c (x_wm_hints): Variable deleted. This has to be
6114 per-screen. Duh.
6115 * xterm.h (struct x_display): New member: wm_hints.
6116 * xterm.c (x_wm_set_window_state, x_wm_set_icon_pixmap,
6117 x_wm_set_icon_position): Use F->wm_hints, rather than x_wm_hints.
6118 (x_term_init): Don't initialize x_wm_hints here.
6119 * xfns.c (Fx_create_frame): Instead, initialize f->x_wm_hints
6120 here.
6121
6122 * xterm.c (x_set_text_property): Properly balance the BLOCK_INPUTs
6123 and UNBLOCK_INPUTs. And remember that VALUE is the string we want
6124 to set the name to, not PROPERTY.
6125
6126 1992-08-17 Jim Blandy (jimb@pogo.cs.oberlin.edu)
6127
6128 * frame.c (make_minibuffer_frame): Don't set this to auto-raise by
6129 default. It's annoying.
6130
6131 * frame.c (make_minibuffer_frame): Set the prev field of the
6132 minibuffer window on a minibuffer-only frame to Qnil, rather than
6133 having it point to itself. This confuses code (Fprevious_window
6134 and change_window_height, for example), and is only an attempt to
6135 support a convention that can't really be used in Emacs 19 anymore.
6136 * window.h: Document the fact that we can no longer assume that
6137 the minibuffer's previous window is the root window, since a
6138 minibuffer window in a minibuffer-only frame has a prev field of
6139 nil.
6140 * frame.h [not MULTI_FRAME] (FRAME_ROOT_WINDOW): Define this by
6141 reference to the_only_frame.root_window, rather than by assuming
6142 that minibuf_window->prev is the root window. While this is true
6143 in the non-multi-frame case, we want to discourage this assumption
6144 in code.
6145 * dispnew.c [not MULTI_FRAME] (Fredraw_display): Use
6146 FRAME_ROOT_WINDOW instead of minibuf_window->prev.
6147 * xdisp.c (redisplay, init_xdisp): Same.
6148 * window.c (Fset_window_configuration): Removed #if 0'd code which
6149 assumes that minibuf_window is on the same frame as the window
6150 configuration. Removed special case for windows whose prevs
6151 point to themselves.
6152
6153 * window.c (Fset_window_configuration): Rename the argument from
6154 ARG to CONFIGURATION, so it matches the docstring. The
6155 make-docfile program cares.
6156
6157 * window.c [MULTI_FRAME] (syms_of_window): Don't staticpro
6158 minibuf_window; the frame list will take care of it.
6159
6160 * xterm.h (HAVE_X11R4): Since we can autodetect this, and can
6161 write code more likely to be future-compatible, define this when
6162 appropriate.
6163 * xterm.c (x_set_text_property): Define this appropriately for
6164 X11R3 and X11R4.
6165
6166 * xterm.c (x_set_text_property): Make this take a Lisp_Object
6167 string as an argument, rather than a pointer and a length.
6168 * xfns.c (x_set_name): Caller changed.
6169
6170 * xfns.c (x_get_arg): Accept a new type - symbol. If we've
6171 retrieved a string from the xrdb database and the user wants a
6172 symbol, intern it.
6173 (Fx_create_frame): Use the symbol type here.
6174
6175 * xfns.c (x_figure_window_size, x_icon, Fx_create_frame): Use
6176 values from enum resource_types for the last arg to x_get_arg,
6177 instead of passing numbers.
6178
6179 * xfns.c (Fx_create_frame): When setting up the scroll bars, use
6180 the type parameter to x_default_parameter, rather than prefixing
6181 the resource name with a question mark.
6182
6183 * xfns.c [not HAVE_X11] (Fx_create_frame): The resource which
6184 determines whether or not to use a bitmapped icon is called
6185 "IconType", not "BitmapIcon". Update this.
6186
6187 1992-08-15 Jim Blandy (jimb@pogo.cs.oberlin.edu)
6188
6189 * xterm.c: Doc fixes.
6190
6191 More SYSV portability changes from Eric Raymond:
6192
6193 * xterm.c [USG5]: Don't include <sys/types.h>.
6194
6195 * xterm.c (x_make_frame_invisible): Instead of calling XWithdraw
6196 window, which isn't widely available, write out what it does,
6197 since that's not much.
6198 (x_iconify_frame): Explicitly perform both the X11R3 and X11R4
6199 methods for iconification; don't use XIconifyWindow, since that's
6200 not present in R3.
6201
6202 * xterm.c (x_wm_set_size_hint): Don't bother setting the
6203 base_width and base_height members; their function is performed
6204 just as well by the min_width and min_height members, and if we
6205 use XSetNormalHints instead of XSetWMNormalHints, we can be
6206 compatible with R3.
6207
6208 * xterm.c (x_error_handler): There is no way to invoke the default
6209 error handler which works on all versions of X11, so don't bother;
6210 call XGetErrorText and print the message ourselves.
6211
6212 * xterm.c (x_term_init): Don't use MAXHOSTNAMELEN; this isn't
6213 defined on all systems. Since we only use that as an initial
6214 guess anyway, it's not very important.
6215
6216 1992-08-14 Richard Stallman (rms@mole.gnu.ai.mit.edu)
6217
6218 * abbrev.c (Fexpand_abbrev): If pre-expand hook changes the buffer,
6219 assume that means we "did an expansion".
6220
6221 * cmds.c (internal_self_insert): Ignore value of Fexpand_abbrev;
6222 instead, check whether buf is modified when it returns.
6223
6224 1992-08-14 Jim Blandy (jimb@pogo.cs.oberlin.edu)
6225
6226 Applied SYSV portability changes from Eric Raymond:
6227
6228 * xrdb.c [USG5]: Define SYSV, and then include <unistd.h>.
6229 Apparently, Xlib.h include string.h if SYSV is defined, and
6230 strings.h if not.
6231 Don't include <sys/types.h>; just declare getuid to return an
6232 int. Big deal.
6233 (MAXPATHLEN): If this is not defined by the system's include
6234 files, give it a value of 256.
6235 (get_user_db): Fetch the defaults directly from the display
6236 structure, rather than using XResourceManagerString; that
6237 function doesn't exist in the older versions of X.
6238
6239 * xterm.c (x_set_text_property): New function.
6240 * xfns.c (x_set_name): Use it instead of XSetWMName and
6241 XSetWMIconName.
6242
6243 * xfns.c (select_visual): Fetch the visual id directly from v;
6244 don't call XVisualIDFromVisual, since that function is not
6245 available in earlier versions of X.
6246
6247 * term.c (term_get_fkeys): Some systems define `static' to be the
6248 empty string, which means that you can't have constant
6249 initialized arrays inside a function. So move the `keys' array
6250 outside of the function.
6251 * xdisp.c (decode_mode_spec): Same deal, with lots_of_dashes.
6252 * xfns.c (x_make_gc): Same deal, regarding cursor_bits.
6253
6254 * term.c (keys): Include definitions for "K2" (the center key on
6255 an IBM keypad), "F1" (F11), and "F2" (F12). Handle "k0" and "k;"
6256 specially; see the code for details.
6257
6258 * term.c (clear_end_of_line): Remember that on some systems,
6259 "static" gets defined to be the null string, so we can't declare
6260 an array to be static and then initialize it. Since the array in
6261 question (buf) is only one element long, just make it a scalar
6262 rather than an array; it can then be initialized, even if it's
6263 not static.
6264
6265 * systime.h [not HAVE_TIMEVAL] (EMACS_USECS, EMACS_SET_USECS):
6266 Don't forget to define dummy versions of these.
6267
6268 * systime.h [USE_UTIME]: time_t is a typedef, not a struct.
6269 Don't prefix it with `struct'.
6270
6271 * systerm.h (EMACS_SET_TTY_PGRP): When there doesn't seem to be
6272 any way to do this, don't forget to give it a dummy definition.
6273
6274 * sysdep.c (select): There's no need to cast the return value of
6275 signal anymore, since we have the SIGTYPE macro defined.
6276
6277 * sysdep.c (read_input_waiting): When scanning for quit
6278 characters, use the value of quit_char, rather than assuming that
6279 C-g is the quit character. And don't forget to declare i.
6280
6281 * sysdep.c [USG5]: Don't include fcntl.h.
6282
6283 * s/usg5-3.h: Eric Raymond writes:
6284 Define HAVE_SELECT and BSTRINGS only if HAVE_X_WINDOWS is on,
6285 because that means we'll be linking in the shared libraries
6286 containing the BSD emulations. Teach the file about the shared
6287 libraries necessary to link X programs, because AT&T doesn't
6288 supply static libraries for X. Also, fix the incorrect assertion
6289 that -lg cannot be used with SVr3. Finally, force USE_UTIMES and
6290 BROKEN_TIOCGWINSZ. (Note for the future; there may be a
6291 utimes(2)) emulation lurking in the X shared libraries.)
6292
6293 * s/usg5-4.h (USE_UTIME): Remove this definition; the C library
6294 still doesn't have utimes.
6295
6296 * ralloc.c (get_bloc): When initializing new_bloc->variable, cast
6297 NIL to (POINTER *).
6298 (malloc_init): Give warning if sbrk returns zero. Wonder what
6299 that's supposed to mean.
6300
6301 * process.c (process_send_signal): Don't send SIGTSTP if the
6302 system doesn't have that facility.
6303
6304 * process.c: [USG5] Don't include <fcntl.h>.
6305 [USG] Don't bother including <termios.h>, <termio.h>, or
6306 <fcntl.h>; systerm.h takes care of all that.
6307 Remove the "mis;tak-+;;" line from the code; apparently this
6308 section of code does get used.
6309
6310 * minibuf.c (Fread_from_minibuffer): Put this function's doc
6311 string into a comment; it's too long for the PCC preprocessor.
6312 Rah.
6313 (Fcompleting_read): Same deal.
6314
6315 * keyboard.c (init_keyboard): Changed "#endif SIGIO" to
6316 "#endif /* SIGIO */"
6317 * mocklisp.c (Fml_substr): Same sort of thing.
6318 * process.c (wait_reading_process_input): Same.
6319
6320 * floatfns.c (Fexpm1, Flog1p): Function removed; it's not widely
6321 available, and hardly vital.
6322 (syms_of_floatfns): Adjusted appropriately.
6323
6324 * floatfns.c (Flog): Accept optional second arg, being the base
6325 for the logarithm.
6326 [USG] (Flogb): Define this in terms of Flog.
6327
6328 * data.c [USG] (Frem): Call fmod, rather than drem. Rah.
6329
6330 * emacs.c [USG5]: Don't #include <fcntl.h> for these systems.
6331
6332 * alloc.c (Fmake_marker): Removed the test for being called from a
6333 signal handler. The original bug is probably gone, the test
6334 wasn't written portably, and it should probably go somewhere else
6335 anyway - say, funcall or eval.
6336
6337 End of changes from Eric Raymond.
6338
6339 * xfns.c (Fx_create_frame): Make the default for the icon-type
6340 parameter nil, not t. It seems to cause problems with some X
6341 servers.
6342
6343 * lisp.h (DEFVAR_PER_BUFFER): Add new argument, TYPE, to help
6344 check the types of buffer-local variable slots.
6345 * buffer.c (syms_of_buffer): Call DEFVAR_PER_BUFFER with the new
6346 TYPE argument.
6347 * abbrev.c (syms_of_abbrev): Same.
6348 * buffer.c (buffer_local_types): New variable.
6349 (buffer_slot_type_mismatch): New function.
6350 * buffer.h (buffer_local_types): New extern declaration.
6351 * data.c (store_symval_forwarding): When storing through a
6352 Lisp_Buffer_Objfwd, check if the slot requires a particular type,
6353 and report an error if the types clash.
6354 * lread.c (defvar_per_buffer): Support new TYPE argument, by
6355 setting the appropriate slot in buffer_local_types.
6356
6357 1992-08-13 Jim Blandy (jimb@pogo.cs.oberlin.edu)
6358
6359 * window.c (window_loop): This used to keep track of the first
6360 window processed and wait until we came back around to it. Sadly,
6361 this doesn't work if that window gets deleted. So instead, use
6362 Fprevious_window to find the last window to process, and loop
6363 until we've done that one.
6364
6365 * window.c [not MULTI_FRAME] (init_window_once): Don't forget to
6366 set the `mini_p' flag on the new minibuffer window to t.
6367
6368 * window.c (Fwindow_at): Don't check the type of the frame
6369 argument.
6370
6371 * window.c [not MULTI_FRAME] (window_loop): Set frame to zero,
6372 instead of trying to decode it.
6373
6374 * frame.h [not MULTI_FRAME] (the_only_frame): Put a comment above
6375 this indicating that it's not GCPRO'd. Put parens around some of
6376 the FRAME_* macros' definitions.
6377 [not MULTI_SCREEN] (Fselected_frame): New function.
6378
6379 * frame.h [not MULTI_FRAME] (FRAME_ROOT_WINDOW): Define this in
6380 terms of minibuf_window, rather than by reference to
6381 the_only_frame.
6382 * window.c (init_window_once): Initialize minibuf_window before
6383 FRAME_ROOT_WINDOW, so the latter actually points to something.
6384
6385 * keyboard.c (Fexecute_mouse_event): dyked-out function deleted.
6386 We're not going to use this mouse interface.
6387 (Vmouse_window, Vmouse_event, Vmouse_event_function,
6388 Vmouse_left_hook, Vmap_frame_hook, Vunmap_frame_hook,
6389 Vmouse_motion_handler): Variables deleted; they were to be used by
6390 Fexecute_mouse_event.
6391 (syms_of_keyboard): Same.
6392 (command_loop_1): Remove dyked-out code to support
6393 Fexecute_mouse_event.
6394 (read_char): Same.
6395
6396 * keyboard.c (Vlast_event_frame): Don't define this window if
6397 MULTI_FRAME is not #defined.
6398 (syms_of_keyboard): Same.
6399 (kbd_buffer_store_event): Don't try to work with Vlast_event_frame
6400 if MULTI_FRAME is not #defined.
6401 (kbd_buffer_get_event): Same.
6402
6403 * keyboard.c (Fdiscard_input): Removed dyked-out code from when
6404 unread_command_char's quiescent value was -1, not nil.
6405
6406 * frame.c (make_frame): Stop passing zero to make_window; it's not
6407 expecting any arguments.
6408
6409 1992-08-12 Jim Blandy (jimb@albert.gnu.ai.mit.edu)
6410
6411 * unexsunos4.c: Deleted "$Log" header in comments at top of file;
6412 this was beginning to grow RCS hair, which we don't want.
6413 * xmenu.c: Same deal.
6414
6415 1992-08-11 Jim Blandy (jimb@pogo.cs.oberlin.edu)
6416
6417 * fileio.c (Fread_filename): Don't add one here.
6418 * minibuf.c (Fcompleting_read): Instead, stop subtracting one
6419 here, so this function lives up to its doc string, which I think
6420 specifies an okay way to work.
6421
6422 * doc.c (Vdata_directory): Removed; this is declared in callproc.c.
6423 (syms_of_doc): Initialization removed.
6424
6425 * xfns.c (x_get_arg): Return Qunbound for an unspecified
6426 resource, not nil. That way, we can tell the difference between a
6427 false resource and an unspecified resource.
6428 (x_default_error): Use DEFLT if x_get_arg returns Qunbound, not Qnil.
6429 (x_figure_window_size, x_icon, Fx_create_frame): Deal with
6430 Qunbound and Qnil properly.
6431
6432 * xfns.c (Fx_create_frame): Pass the correct number of arguments
6433 to x_set_font.
6434
6435 * xfns.c [not HAVE_X11] (Fx_create_frame): Delete section that's
6436 only included if we *do* have X11. Blind patching.
6437
6438 * xfns.c (x_icon): Rewritten to call x_wm_set_icon_position and
6439 x_wm_set_window_state instead of calling XSetWMHints directly.
6440 * xterm.c (x_wm_hints): New variable.
6441 (x_wm_set_window_state, x_wm_set_icon_pixmap,
6442 x_wm_set_icon_position): Use x_wm_hints.
6443 (x_term_init): Set the `input' field of x_wm_hints, and its flag.
6444
6445 * xterm.c (x_text_icon): Call x_wm_set_icon_pixmap with a pixmap
6446 of zero, to clear the pixmap.
6447 (x_wm_set_icon_pixmap): Accept this protocol; if pixmap is zero,
6448 specify no pixmap for the icon.
6449
6450 * xfns.c (x_default_parameter): Don't call store_frame_param here;
6451 it's already taken care of by x_set_frame_parameters.
6452
6453 * xfns.c (Fx_create_frame): Check for the `icon-type',
6454 `auto-raise', and `auto-lower' parameters. Have `icon-type'
6455 default to t, indicating that we want the nifty gnu in our icons.
6456 (Qauto_lower): New symbol.
6457
6458 * xfns.c (x_set_icon_type): UNBLOCK_INPUT before reporting the
6459 error, not after. error doesn't return, sklitch-brain.
6460
6461 * xterm.c (x_set_window_size): Call check_frame_size to make sure
6462 that the requested dimensions are within acceptable limits.
6463 Store the new size information in the frame structure.
6464
6465 * xfns.c (x_set_frame_parameters): Properly recognize changes to
6466 the height of the frame. Recognize changes of the frame's
6467 position.
6468
6469 * xfns.c (x_set_frame_parameters): Iterate over ALIST while the
6470 current element is cons, not while it's non-nil.
6471 (syms_of_xfns): Call init_x_parm_symbols after interning all the
6472 other atoms; init_x_parm_symbols expects Qx_frame_parameter to be
6473 initialized.
6474
6475 1992-08-10 Jim Blandy (jimb@pogo.cs.oberlin.edu)
6476
6477 * xfns.c (Qbackground_color, Qborder_color, Qborder_width,
6478 Qcursor_color, Qfont, Qforeground_color, Qgeometry,
6479 Qhorizontal_scroll_bar, Qicon_left, Qicon_top, Qiconic_startup,
6480 Qinternal_border_width, Qleft, Qmouse_color, Qparent_id,
6481 Qsuppress_icon, Qsuppress_initial_map, Qtop, Qundefined_color,
6482 Qvertical_scroll_bar, Qwindow_id, Qx_frame_parameter): New
6483 symbols, with lisp code to rebuild syms_of_xfns.
6484 (syms_of_xfns): Initialize and staticpro them.
6485 (Qheight, Qminibuffer, Qname, Qnone, Qonly, Qwidth,
6486 Qunsplittable): Add extern declaration for these.
6487 (x_init_parm_symbols): Don't initialize Qx_frame_parameter here;
6488 it's done in syms_of_xfns.
6489 (x_default_parameter): Change the argument char *PROPNAME into a
6490 Lisp_Object PROP; let the caller take care of interning the atom.
6491 (Fx_geometry, x_figure_window_size, x_icon, Fx_create_frame): Use
6492 the new Q... variables, instead of interning things.
6493
6494 * frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
6495 Qunsplittable, Qwidth, Qx): New symbol, with lisp code to rebuild
6496 syms_of_frame.
6497 (syms_of_xfns): Initialize and staticpro them.
6498 (Fframep, Fframe_visible_p, Fframe_parameters): Use
6499 the new Q... variables, instead of interning things.
6500 (store_in_alist): Change the argument char *PROPNAME into a
6501 Lisp_Object PROP; let the caller take care of interning the atom.
6502
6503 * frame.c (Fframe_visible_p): Doc fix.
6504
6505 * frame.c (Fframe_parameters): When figuring the `minibuffer'
6506 parameter, if FRAME doesn't have a minibuffer, return `none', not
6507 nil. If it does have a minibuffer with other windows, return the
6508 window.
6509
6510 * frame.c (Fmodify_frame_parameters): Don't write out the loop for
6511 processing X frame parameters here; do it in the x specific code.
6512 Call the function which deals with this stuff
6513 x_set_frame_parameters, not x_set_frame_parameter.
6514 * xfns.c (x_set_frame_param): Replaced by x_set_frame_parameters.
6515 (x_set_frame_parameters): Process the alist of parameters here.
6516 Notice `width', `height', `top', and `left' parameters.
6517 Hold off changing the frame size and position until the end, so we
6518 can do both parameters at once when they are both specified.
6519 (x_default_parameter): Call x_set_frame_parameters, not
6520 x_set_frame_param.
6521
6522 * frame.c (Fmake_frame_visible, Fmake_frame_invisible,
6523 Ficonify_frame, Fframe_parameters, Fmodify_frame_parameters,
6524 Fset_frame_height, Fset_frame_width, Fset_frame_size,
6525 Fset_frame_position): Place clauses controlled by FRAME_X_P inside
6526 `#ifdef HAVE_X_WINDOWS ... #endif' clauses.
6527
6528 * frame.c (Fset_frame_position): Doc fix.
6529
6530 * dispnew.c (Fredraw_frame): Call clear_frame_records before
6531 calling update_end, so that x_display_box_cursor can rely on the
6532 contents of f->current_glyphs.
6533
6534 * xfns.c (x_figure_window_size): Indicate that this function
6535 returns an int, rather than just leaving it unstated.
6536
6537 * xterm.c (x_wm_set_size_hint): Don't try to set the base_height
6538 and base_width elements of size_hints if PBaseSize is not
6539 #defined. Set the minimum frame size according to the information
6540 returned by check_frame_size.
6541
6542 * window.h (MIN_SAFE_WINDOW_HEIGHT, MIN_SAFE_WINDOW_WIDTH): Macros
6543 removed.
6544 (check_frame_size): New extern declaration.
6545 * window.c (MIN_SAFE_WINDOW_HEIGHT, MIN_SAFE_WINDOW_WIDTH): Macros
6546 defined here now.
6547 (check_frame_size): New function.
6548 * dispnew.c (change_frame_size): Call check_frame_size here,
6549 rather than writing out its code. Don't declare newheight and
6550 newwidth to be register variables, since we take their address.
6551
6552 * bytecode.c (Fbyte_code): When metering the Bcall opcodes, make
6553 sure the count on the symbol's `byte-code-meter' property does not
6554 overflow.
6555
6556 * bytecode.c (syms_of_bytecode): Add a docstring for
6557 byte-metering-on.
6558
6559 1992-08-08 Jim Blandy (jimb@pogo.cs.oberlin.edu)
6560
6561 * dispnew.c (in_display): Variable deleted; it's only ever used as
6562 an unofficial parameter to change_frame_size.
6563 (change_frame_size): New argument, DELAY, which when non-zero
6564 indicates to delay the size change until later. This should be
6565 passed as one from signal handlers.
6566 (window_change_signal): Call change_frame_size with a DELAY of 1.
6567 (do_pending_window_change): Call change_frame_size with DELAY of 0.
6568 * frame.c [MULTI_SCREEN] (Fset_frame_height, Fset_frame_width,
6569 Fset_frame_size): Same.
6570 [not MULTI_SCREEN] (Fset_frame_height, Fset_frame_width,
6571 Fset_frame_size, Fset_screen_height, Fset_screen_width): Same.
6572 * keyboard.c (Fsuspend_emacs): Call change_frame_size with the
6573 proper arguments - the height and width are the second and third
6574 arguments, not the first and second. Pass 0 for DELAY.
6575 * xfns.c (Fx_create_frame): Call change_frame_size with a DELAY of 0.
6576 * xterm.c (XTread_socket, x_do_pending_expose): Call
6577 change_frame_size with a DELAY of 1.
6578
6579 * xterm.c (in_display): Deleted this; it's never used in xterm.c,
6580 and there is another variable by the same name in dispnew.c.
6581
6582 * frame.c [not MULTI_SCREEN] (Fset_frame_height, Fset_frame_width,
6583 Fset_frame_size, Fframe_height, Fframe_width): New functions, for
6584 use when Emacs is not compiled with multiple screens.
6585 [not MULTI_SCREEN] (Fset_screen_height, Fset_screen_width):
6586 Functions added for backward compatibility with Emacs 18. These
6587 would be just aliases, except that the version 18 functions don't
6588 take a FRAME argument.
6589 [not MULTI_SCREEN] (syms_of_frame): New function, to defsubr the
6590 above and add screen-height and screen-width as aliases for
6591 Fframe_height and Fframe_width.
6592 * emacs.c (main): Call syms_of_frame unconditionally. When
6593 MULTI_FRAME is not defined, it still provides the Fframe_width,
6594 Fframe_height, Fset_frame_width, and Fset_frame_height functions.
6595
6596 * frame.c (Fset_frame_width): Change the size of FRAME, not of
6597 selected_frame.
6598
6599 * frame.c (Fset_frame_width, Fset_frame_height): Declare the
6600 `frame' argument to be a Lisp_Object. It used to be undeclared.
6601
6602 1992-08-07 Jim Blandy (jimb@pogo.cs.oberlin.edu)
6603
6604 * dispnew.c, frame.c, frame.h, keyboard.c, scroll.c, term.c,
6605 window.c, xdisp.c, xfns.c xterm.c (FRAME_IS_TERMCAP, FRAME_IS_X,
6606 FRAME_HAS_MINIBUF): Renamed these to FRAME_TERMCAP_P, FRAME_X_P,
6607 and FRAME_HAS_MINIBUF_P, for consistency with the rest of the
6608 frame macros.
6609
6610 * window.h (MIN_SAFE_WINDOW_WIDTH, MIN_SAFE_WINDOW_HEIGHT): New
6611 macros.
6612 * window.c (check_min_window_sizes): New function.
6613 (set_window_height): Call it.
6614 (Fsplit_window, change_window_height): Call it, instead of writing
6615 out its code.
6616 * dispnew.c (change_frame_size): If newlength or newwidth are too
6617 small (according to the value of MIN_SAFE_WINDOW_{WIDTH,HEIGHT}),
6618 force them larger. This isn't really right, but it's better than
6619 crashing.
6620
6621 * editfns.c (Fcurrent_time_zone): Doc fix.
6622
6623 1992-08-06 Jim Blandy (jimb@pogo.cs.oberlin.edu)
6624
6625 * editfns.c (Fcurrent_time_zone): Don't forget to include code to
6626 signal an error when EMACS_CURRENT_TIME_ZONE is not defined.
6627
6628 1992-08-06 Joseph Arceneaux (jla@gnu.ai.mit.edu)
6629
6630 * doc.c (Vdata_directory): Declared.
6631 (syms_of_doc): Initialized.
6632
6633 * fileio.c (Fread_filename): Add 1 to the offset position for the
6634 cursor when reading file names.
6635
6636 1992-08-05 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
6637
6638 * systime.h (EMACS_CURRENT_TIME_ZONE): New macro.
6639 * editfns.c (Fcurrent_time_zone): New function.
6640 (syms_of_editfns): defsubr it.
6641
6642 * keyboard.c (read_key_sequence): Clear the eighth bit of the
6643 character from the key sequence, NOT the index of the character IN
6644 the key sequence. How many tries will it take to get it right?
6645
6646 1992-08-04 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
6647
6648 * eval.c (syms_of_eval): Doc fix for debug-on-quit.
6649
6650 1992-08-03 Jim Blandy (jimb@pogo.cs.oberlin.edu)
6651
6652 * callproc.c (Fcall_process): Doc fix. Used to claim that
6653 Fcall_process doesn't wait when BUFFER was nil. It does.
6654
6655 1992-07-30 Jim Blandy (jimb@pogo.cs.oberlin.edu)
6656
6657 * keyboard.c (read_key_sequence): Scan for function keys when t >=
6658 mock_input, not when t > mock_input. We do want to scan for
6659 function keys when t == mock_input.
6660
6661 * keyboard.c (read_key_sequence): Don't increment fkey_end when
6662 testing to see if keybuf[fkey_end] is a meta-character.
6663
6664 1992-07-27 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
6665
6666 * Makefile.in (TAGS): Generate tags for files in ../external-lisp
6667 too.
6668
6669 1992-07-26 Richard Stallman (rms@mole.gnu.ai.mit.edu)
6670
6671 * eval.c (find_handler_clause): For quit, don't check Vdebug_on_error.
6672 (wants_debugger): Rewrite so it cannot get an error.
6673
6674 * callint.c (Fcall_interactively): Handle enable-recursive-minibuffers
6675 property on the command, by enabling recursive minibuffers.
6676 (syms_of_callint): Set Qenable_recursive_minibuffers.
6677
6678 1992-07-24 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
6679
6680 * frame.c (Fmake_frame_visible, Fmake_frame_invisible,
6681 Ficonify_frame): Make the first argument optional, defaulting to
6682 selected_frame.
6683 (Ficonify_frame, Fmake_frame_invisible): Add interactive specs, so
6684 we can bind these directly to C-z.
6685
6686 1992-07-24 Richard Stallman (rms@mole.gnu.ai.mit.edu)
6687
6688 * fileio.c (Fread_file_name): Use new calling convention for
6689 Fcompleting_read, with history as Qfile_name_history.
6690 (syms_of_fileio): Set Qfile_name_history; set the var to nil.
6691 Do staticpro for the recently created Q* vars.
6692
6693 * minibuf.c (read_minibuf): Two additional args histvar and histpos.
6694 All calls changed.
6695 (Fcompleting_read): Last arg is now HIST--(HISTVAR . HISTPOS).
6696 Arg INIT can now be (INITIAL-STRING . INITIAL-POSITION).
6697 Pass BACKUP_N arg to read_minibuf properly as Lisp object.
6698 (Fread_from_minibuffer): Likewise.
6699 (syms_of_minibuf): Set Qminibuffer_history and staticpro it.
6700
6701 * eval.c (Ffuncall, Feval): Support subrs with 7 args.
6702
6703 * fns.c (Fyes_or_no_p): Use Fread_string, not read_minibuf.
6704 * callint.c (Fcall_interactively): For 'S', use Fread_no_blanks_input
6705 rather than read_minibuf.
6706
6707 1992-07-23 Richard Stallman (rms@mole.gnu.ai.mit.edu)
6708
6709 * minibuf.c (Vminibuffer_history_variable): New variable.
6710 (syms_of_minibuf): Define variable minibuffer-history-variable.
6711 (read_minibuf): Push the string on specified history list.
6712
6713 1992-07-23 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
6714
6715 * Makefile.in (doall, doxemacs, dotemacs): Put quotes around CC=${CC}.
6716 Don't include $(MAKEOVERRIDES); that is always implicit.
6717
6718 1992-07-22 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
6719
6720 * keyboard.c (read_key_sequence): If we have read a
6721 meta-character, prefix it with meta_prefix_char before looking it
6722 up in the function key keymap.
6723
6724 * lread.c (Fread_char_exclusive): Code this with a do-while loop,
6725 not a while loop with its body repeated.
6726
6727 * lread.c (Fread_event): Don't make this function's definition
6728 conditional on X-windows. It ought to be there no matter how
6729 Emacs was built.
6730 (syms_of_lread): Don't make its defsubr conditional either.
6731
6732 * lread.c (Fread_char): Doc fix.
6733
6734 * fileio.c (find_file_handler): It's called
6735 Vfile_name_handler_alist, not Vfile_handler_alist.
6736 (Fwrite_region): Declare the variable named `handler'.
6737 (Fverify_visited_file_modtime): Use `b->filename', not `filename'.
6738 (Fset_visited_file_modtime): Declare the variable named `handler'.
6739 * dired.c (Fdirectory_files, Ffile_name_completion): Use
6740 `dirname', not `filename'.
6741 (Qfile_attributes): New variable.
6742 (syms_of_dired): Initialize it.
6743
6744 * xselect.c (Fx_own_selection): If we're trying to set
6745 cut-buffer0, and the value is too large for the X server (as
6746 indicated by the max_request_size member of the X Display), just
6747 set the buffer to the empty string, and return nil.
6748
6749 1992-07-21 Richard Stallman (rms@mole.gnu.ai.mit.edu)
6750
6751 * search.c (fast_string_match): New function.
6752 * fileio.c (find_file_handler): New function.
6753 (Fcopy_file, Fmake_directory, Fdelete_directory, Fdelete_file):
6754 (Frename_file, Fadd_name_to_file, Fmake_symbolic_link):
6755 (Ffile_exists_p, Ffile_executable_p, Ffile_readable_p, Ffile_symlink_p)
6756 (Ffile_writable_p, Ffile_directory_p, Ffile_accessible_directory_p):
6757 (Ffile_modes, Fset_file_modes, Ffile_newer_than_file_p):
6758 (Fwrite_region, Fverify_visited_file_modtime):
6759 Use find_file_handler; call the handler and return.
6760 (Finsert_file_contents): Use find_file_handler;
6761 cannot just return after the handler, but must handle VISIT.
6762 (syms_of_fileio): Set up Qcopy_file, etc.
6763 * dired.c (Fdirectory_files, Ffile_name_completion):
6764 (Ffile_name_all_completions, Ffile_attributes):
6765 Use find_file_handler; call the handler.
6766 (syms_of_dired): Set Qfile_attributes, etc.
6767
6768 1992-07-21 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
6769
6770 * xselect.c (Fx_own_selection): Initialize val to nil, so that if
6771 we don't get the selection, we don't return garbage. When setting
6772 cut-buffer0, set val to the string pasted.
6773
6774 * xfns.c (x_set_name): If ARG is nil, set the frame's name to the
6775 current x_id_name.
6776 * xdisp.c (display_mode_line): If we should set the frame's name,
6777 but there is only one frame currently active, call x_set_name with
6778 nil as the name; this will display samething generically
6779 appropriate.
6780
6781 1992-07-20 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
6782
6783 * lread.c (isfloat_string): Recognize floats without a leading
6784 integer part, noting that "e5" is a symbol, not a floating point
6785 number.
6786
6787 * xdisp.c (message, message1): When displaying a message, don't
6788 make the minibuf frame visible unless the selected frame is also
6789 visible. This means that frames won't pop up unless the user is
6790 actually interacting with Emacs.
6791
6792 * xdisp.c (display_mode_line): If Emacs is currently supporting
6793 only one screen, don't change the title of the screen to the name
6794 of the current buffer; this is only annoying in this case. We
6795 should probably think more carefully about how screens should be
6796 named.
6797
6798 1992-07-19 Richard Stallman (rms@mole.gnu.ai.mit.edu)
6799
6800 * process.c (allocate_pty): Handle PTY_OPEN.
6801 Delete system-specific alternatives to PTY_NAME_SPRINTF
6802 and PTY_TTY_NAME_SPRINTF.
6803
6804 1992-07-18 Richard Stallman (rms@mole.gnu.ai.mit.edu)
6805
6806 * callint.c (Fprefix_numeric_value): Fix typo: test raw, not val.
6807
6808 1992-07-17 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
6809
6810 * xfns.c (x_window): x_set_name normally ignores requests to set
6811 the name if the requested name is the same as the current name.
6812 This is the one place where that assumption isn't correct; f->name
6813 is set, but the X server hasn't been told. So fake it out.
6814
6815 * emacs.c [sun] (main): On suns, localtime caches the value of the
6816 time zone rather than looking it up every time. This means that
6817 the dumped Emacs doesn't check the value of the TZ environment
6818 variable. Call tzset before entering the editing loop to check
6819 the new TZ value.
6820
6821 1992-07-16 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
6822
6823 * dired.c (Fdirectory_files): Don't forget to pass the REGP
6824 argument to compile_pattern.
6825 * search.c (compile_pattern): If REGP is zero, don't call
6826 re_set_registers; nobody cares.
6827
6828 * fileio.c (auto_save_error): Pass the correct number of arguments
6829 to Fsleep_for.
6830
6831 * lread.c: Include <ctype.h> at the top of the file, instead of
6832 just before isfloat_string; read0 wants to use it too.
6833
6834 * process.c (Fdelete_process, Fprocess_status, Fprocess_send_region,
6835 Fprocess_send_string, Fprocess_send_eof, Finterrupt_process): Doc
6836 fixes.
6837
6838 * process.c (Fprocess_status): Use get_process to find the process
6839 denoted by the PROC argument, not Fget_process.
6840
6841 1992-07-15 Richard Stallman (rms@mole.gnu.ai.mit.edu)
6842
6843 * xdisp.c: Doc fix.
6844
6845 1992-07-14 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
6846
6847 * window.c (syms_of_window): Doc fix for pop-up-frames.
6848
6849 * frame.c (Fframe_parameters): Note that if FRAME is omitted, it
6850 defaults to the selected frame.
6851
6852 * frame.c (Fframe_height, Fframe_width): Blocked out these
6853 functions; they have no C callers, and can be written nicely in
6854 lisp.
6855
6856 * frame.c (Fframe_pixel_size): Function removed; there aren't
6857 enough other functions available to make this useful. We need
6858 functions describing the size of the characters of a font.
6859
6860 * xterm.h, xterm.c, xselect.c, xmenu.c, xfns.c, xdisp.c, window.h,
6861 window.c, termopts.h, termhooks.h, termchar.h, term.c sysdep.c,
6862 scroll.c, screen.c, screen.h, process.c, print.c, minibuf.c,
6863 lisp.h keyboard.c, indent.c, fns.c, emacs.c, dispnew.c,
6864 dispextern.h, cm.h, alloc.c, config.h.in: Screens are now called
6865 frames, to avoid even more confusion with X terminology than
6866 Emacs's "windows" already cause. All macros, functions, and
6867 variables renamed; all uses changed.
6868 * screen.c, screen.h: Renamed to frame.c and frame.h. All
6869 #includers changed.
6870 * ymakefile: Adjusted appropriately.
6871 * buffer.c: Doc fixes.
6872
6873 * xfns.c (Fx_store_cut_buffer): Reversed sense of test for non-X
6874 screen.
6875
6876 * window.c (Frecenter): Doc fix; this function places point in the
6877 middle of the current window, not the current screen.
6878
6879 * window.c (temp_output_buffer_show): Use WINDOW_SCREEN macro
6880 instead of accessing the member directly.
6881
6882 1992-07-13 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
6883
6884 * print.c (print): Changed code which prints screen objects to use
6885 the SCREEN_LIVE_P macro instead of testing the screen structure
6886 directly.
6887
6888 * alloc.c (undo_threshold, undo_high_threshold): Variables renamed
6889 to undo_limit and undo_strong_limit.
6890 (Fgarbage_collect): Uses changed.
6891 (syms_of_alloc): DEFVARs and docstrings changed.
6892 * undo.c (truncate_undo_list): Comment adjusted.
6893
6894 * lread.c (read0): Allow floating-point numbers to begin with a
6895 period. `(0 .5)' denotes a list of two numbers, not a dotted pair.
6896
6897 1992-07-11 Richard Stallman (rms@mole.gnu.ai.mit.edu)
6898
6899 * fns.c, callproc.c: Doc fix.
6900
6901 1992-07-10 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
6902
6903 * bytecode.c (Bsymbol_function, Bfset): Removed comments saying
6904 that these are no longer generated. Jamie Zawinski's byte
6905 compiler does generate them, and he's actually collected
6906 statistics on how often these functions are called.
6907
6908 1992-07-09 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
6909
6910 * screen.c (store_screen_param): Clarify error message.
6911
6912 * xterm.c (x_make_screen_visible): Undo the change made on June
6913 30; that is not the right solution. Apparently there are three
6914 states a window may be in: normal, iconified, and invisible.
6915
6916 1992-07-08 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
6917
6918 * eval.c (Fmacroexpand): Code cleaned up; there's no need to
6919 handle forms like ((macro lambda ...) ...) specially.
6920
6921 * fileio.c (Finsert_file_contents): Signal an error if we're asked
6922 to read from a named pipe.
6923
6924 1992-07-07 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
6925
6926 * m/*.h (SIGN_EXTEND_CHAR): Removed these definitions. The only
6927 place they were used is in regex.c, and nowadays that has its own
6928 definition, which works for any machine. The definitions in the
6929 machine description files usually didn't work if given an unsigned
6930 character as an argument, anyway.
6931
6932 1992-07-04 Richard Stallman (rms@mole.gnu.ai.mit.edu)
6933
6934 * buffer.c: Doc fix.
6935
6936 1992-07-02 Joseph Arceneaux (jla@churchy.gnu.ai.mit.edu)
6937
6938 * minibuf.c (Fdisplay_completion_list): Declared new variables
6939 used in rms' previous change.
6940
6941 1992-07-02 Richard Stallman (rms@mole.gnu.ai.mit.edu)
6942
6943 * minibuf.c (Fdisplay_completion_list): Handle non-buffer stream.
6944
6945 1992-07-01 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
6946
6947 * window.c (Fdisplay_buffer): Add interactive spec.
6948
6949 1992-06-30 Joseph Arceneaux (jla@churchy.gnu.ai.mit.edu)
6950
6951 * mem_limits.h: EXCEEDS_ELISP_PTR declared here.
6952 * ralloc.c: No longer declared here.
6953 * vm-limit.c: Nor here. Also, include "lisp.h" before
6954 "mem_limits.h" and additionally include "config.h".
6955
6956 1992-06-30 Jim Blandy (jimb@pogo.cs.oberlin.edu)
6957
6958 * xterm.c (x_make_screen_visible): Don't de-iconify the window;
6959 iconification is orthogonal to visibility.
6960
6961 * emacs.c (syms_of_emacs): Change docstring for `kill-emacs-hook'
6962 to describe it as a hook, not as a single function.
6963
6964 1992-06-29 Jim Blandy (jimb@pogo.cs.oberlin.edu)
6965
6966 * minibuf.c (Fread_no_blanks_input): Corrected maximum number of
6967 arguments from one to two.
6968
6969 * emacs.c (Vkill_emacs_hook): Declare this here; it should have a
6970 docstring, so we might as well DEFVAR it.
6971 (syms_of_emacs): initialize it, and DEFVAR_LISP it with an
6972 appropriate docstring.
6973
6974 1992-06-28 Jim Blandy (jimb@pogo.cs.oberlin.edu)
6975
6976 * lread.c (Feval_buffer): Make the DEFUN match the C argument
6977 list; this takes two optional arguments, not just one.
6978
6979 * lisp.h (Lisp_Buffer_Local_Value): Comments neatened.
6980
6981 * data.c (Fset): Fixed conditional which tests whether the cache
6982 is invalid. It used to be pretty munged, and would always declare
6983 the cache invalid for Lisp_Buffer_Local_Value variables. Now it
6984 declares the cache invalid if the buffer is wrong (obviously), of
6985
6986 1992-06-27 Jim Blandy (jimb@pogo.cs.oberlin.edu)
6987
6988 * data.c (Fset): Comments reformatted for readability.
6989
6990 * xterm.c (last_mouse_movement_time): New variable.
6991 (note_mouse_position): Set it.
6992 (XTmouse_position): Return its current value as the position's
6993 timestamp.
6994
6995 * keyboard.c (Qvertical_split): Renamed to `vertical-line',
6996 since the window arrangement is actually referred to as a
6997 `horizontal split.'
6998 (make_lispy_event, make_lispy_movement, syms_of_keyboard): Uses
6999 renamed here.
7000 keyboard.h (Qvertical_split): Extern declaration changed here.
7001 window.c (Fcoordinates_in_window_p): Changed this to return
7002 `vertical-line' at the appropriate times, rather than
7003 `vertical-split'.
7004
7005 * window.c (Fcoordinates_in_window_p): Put symbol names in
7006 opposing single quotes - `vertical-split', for example.
7007
7008 * fileio.c (Fexpand_file_name): Don't signal an error if USERNAME
7009 in a "~USERNAME/..." filename isn't a real user; just leave the
7010 "~USERNAME" unchanged.
7011
7012 * fileio.c (Fmake_symbolic_link): Rename argument `NEWNAME' to
7013 `LINKNAME', to conform with the docstring.
7014
7015 * Makefile.in (CPP): Pass `-Is -Im' to CPP, to make sure that
7016 machine- and system-dependend files can include each other
7017 properly.
7018 * ymakefile (CFLAGS): Add those directories to the #include path
7019 here too.
7020
7021 * Makefile.in (xmakefile): Build this via a temporary file, so
7022 that if preprocessing fails we don't nuke the xmakefile.
7023
7024 * fileio.c: There are two versions of Fexpand_file_name defined
7025 here; the latter is inside a `#if 0' clause. Change its DEFUN to
7026 a DEAFUN, so that its docstring doesn't make it into the DOC file
7027 and supercede the real docstring.
7028
7029 * callint.c (Fcall_interactively): For the 'K' interactive spec,
7030 set varies[i] to -1, indicating that the mouse click should be
7031 quoted if the function makes it into the command history, and that
7032 this argument by itself does not qualify the command to be
7033 recorded in the history.
7034
7035 1992-06-26 Jim Blandy (jimb@pogo.cs.oberlin.edu)
7036
7037 * data.c (Frem): The drem function will sometimes return a
7038 negative number. If it does, add the divisor to it, to make it
7039 positive.
7040
7041 * screen.c: Put '#ifdef MULTI_SCREEN' after the inclusion of
7042 config.h.
7043
7044 * window.c (Fpos_visible_in_window_p): Remember to apply XSCREEN
7045 to w->screen before applying SCREEN_WIDTH.
7046
7047 * screen.h [not MULTI_SCREEN] (last_nonminibuf_screen): Removed
7048 #definition of this; it's confusing when debugging.
7049 * screen.c (last_nonminibuf_screen): Variable moved from here...
7050 * dispnew.c (last_nonminibuf_screen): to here, beside
7051 selected_screen. They should both exist, even if the multi-screen
7052 support is not present.
7053
7054 * dispnew.c [not MULTI_SCREEN] (the_only_screen): New variable.
7055 Instead of having the non-multi-screen version of Emacs refer to
7056 lots of different variables scattered hither and yon, we'll just
7057 declare this new variable, of type `struct screen', and define the
7058 single-screen versions of the `SCREEN_foo' macros to reference its
7059 elements. This avoids conflicts between names of local variables
7060 and names of global variables describing the screen, and simplifies
7061 some of the differences between the multi-screen and single-screen
7062 cases.
7063 * screen.h (enum output_method, struct screen): Removed these from
7064 the `#ifdef MULTI_SCREEN' conditional.
7065 * screen.h [not MULTI_SCREEN] (the_only_screen): extern
7066 declaration for it here.
7067 [not MULTI_SCREEN] (SCREEN_CURRENT_GLYPHS, SCREEN_DESIRED_GLYPHS,
7068 SCREEN_TEMP_GLYPHS, SCREEN_HEIGHT, SCREEN_WIDTH,
7069 SCREEN_NEW_HEIGHT, SCREEN_NEW_WIDTH, SCREEN_CURSOR_X,
7070 SCREEN_CURSOR_Y, SCREEN_ROOT_WINDOW, SCREEN_INSERT_COST,
7071 SCREEN_DELETE_COST, SCREEN_INSERTN_COST, SCREEN_DELETEN_COST,
7072 SCREEN_MESSAGE_BUF, SCREEN_SCROLL_BOTTOM_VPOS): Macros changed to
7073 refer to the_only_screen.
7074 * dispnew.c [not MULTI_SCREEN] (one_screen_cursX,
7075 one_screen_cursY, one_screen_current_glyphs,
7076 one_screen_desired_glyphs, one_screen_temp_glyphs,
7077 delayed_screen_width, delayed_screen_height): Variables
7078 deleted; they're all now kept in the_only_screen.
7079 * xdisp.c [not MULTI_SCREEN] (message_buf): Variable deleted; same
7080 fate.
7081 * term.c [not MULTI_SCREEN] (one_screen_width, one_screen_height):
7082 Variables deleted; same fate.
7083 * screen.h [not MULTI_SCREEN]: extern declarations for the above
7084 variables removed.
7085 * window.c [not MULTI_SCREEN] (root_window): Variable deleted.
7086 [not MULTI_SCREEN] (init_window_once): Use SCREEN_ROOT_WINDOW to
7087 refer to the root window, instead of referring to it directly.
7088 * window.h [not MULTI_SCREEN] (root_window): extern declaration
7089 removed.
7090 * scroll.c [not MULTI_SCREEN] (insert_line_cost, delete_line_cost,
7091 insert_n_lines_cost, delete_n_lines_cost): Variables deleted; same
7092 fate.
7093
7094 * dispnew.c [not MULTI_SCREEN] (cursX, cursY): Renamed to
7095 `one_screen_cursX' and `one_screen_cursY'.
7096 * screen.h [not MULTI_SCREEN] (cursX, cursY, SCREEN_CURSOR_X,
7097 SCREEN_CURSOR_Y): extern declarations and macros changed
7098 accordingly.
7099
7100 * term.c [not MULTI_SCREEN] (screen_width, screen_height): Renamed
7101 to `one_screen_width' and `one_screen_height', so as not to
7102 conflict with local variables when referenced by the `SCREEN_foo'
7103 macros.
7104 * screen.h [not MULTI_SCREEN] (screen_width, screen_height):
7105 extern declarations changed accordingly.
7106 * termchar.h (screen_width, screen_height): extern declarations
7107 deleted. Everyone should go through the `SCREEN_foo' macros.
7108 (SCREEN_WIDTH, SCREEN_HEIGHT): Changed accordingly.
7109
7110 1992-06-25 Jim Blandy (jimb@pogo.cs.oberlin.edu)
7111
7112 * callint.c (Fcall_interactively): When making a copy of the spec
7113 string, cast the return value of `alloca' to `unsigned char *',
7114 not `char *', to match the type of `string'.
7115
7116 * xselect.c (Fx_own_selection): Cast XSTRING (string)->data to a
7117 char *, so it can be comfortably passed to XStoreBytes.
7118
7119 * filelock.c (strcpy): Declare this to return char *.
7120
7121 1992-06-24 Jim Blandy (jimb@pogo.cs.oberlin.edu)
7122
7123 * dispnew.c (current_glyphs, desired_glyphs, temp_glyphs): Renamed
7124 to have the prefix `one_screen_', so that the screen macros can
7125 refer to them without conflicting with local variables.
7126 * screen.h [not MULTI_SCREEN] (SCREEN_CURRENT_GLYPHS,
7127 SCREEN_DESIRED_GLYPHS, SCREEN_TEMP_GLYPHS): Changed accordingly.
7128
7129 * keyboard.c (read_key_sequence): Put the code which restarts the
7130 key sequence in a `#ifdef MULTI_SCREEN' conditional.
7131
7132 * screen.h [not MULTI_SCREEN]: Added definitions for
7133 CHECK_LIVE_SCREEN and SCREEN_FOCUS_SCREEN for the non-multi-screen
7134 case.
7135
7136 * screen.h [not MULTI_SCREEN]: The name is
7137 `SCREEN_MINIBUF_ONLY_P', not `SCREEN_IS_MINIBUF_ONLY'.
7138
7139 * xdisp.c [not MULTI_SCREEN] (Fredraw_display): Removed definition
7140 here; the non-multi-screen version is already defined in
7141 dispnew.c, alongside the multi-screen version.
7142 (syms_of_xdisp): Don't try to defsubr Sredraw_display; it doesn't
7143 exist.
7144
7145 * lread.c (Fread_char_exclusive): Remove this from the `#ifdef
7146 HAVE_X_WINDOWS' conditional; it is appropriate in any context.
7147
7148 * eval.c (Fsignal): Put call to TOTALLY_UNBLOCK_INPUT under the
7149 protection of a `#ifdef HAVE_X_WINDOWS' conditional.
7150
7151 * keyboard.c (kbd_buffer_get_event): Expect *mouse_position_hook
7152 to return the timestamp as an unsigned long, not a lisp_Object.
7153 This matches the change made to `struct input_event'.
7154 (make_lispy_movement): Change argument TIME to an unsigned long.
7155 * xterm.c (XTmouse_position): Change TIME argument to a pointer to
7156 an unsigned long.
7157 * termhooks.h (mouse_position_hook): Doc fix.
7158 * term.c (mouse_position_hook): Doc fix.
7159
7160 * termhooks.h (struct input_event): If MULTI_SCREEN is defined,
7161 declare the .screen element to be `struct screen *'; otherwise,
7162 declare it to be `int'. See the comment in the file for why I've
7163 done this obviously wrong thing.
7164
7165 * print.c (printbufidx): Doc fix.
7166 * xdisp.c (message_buf_print): Doc fix.
7167
7168 * dispextern.h (message_buf_size): Variable deleted; it's no
7169 longer used, since the message buffer is always the width of the
7170 screen.
7171
7172 * screen.h [not MULTI_SCREEN] (message_buf): Add extern
7173 declaration for it here.
7174 (message_buf_print): Added extern declarations here for both the
7175 MULTI_SCREEN and non-MULTI_SCREEN cases.
7176 * dispextern.h (message_buf, message_buf_print): Deleted extern
7177 declaration for these here. It should never be used directly; it
7178 should always be used through the SCREEN_MESSAGE_BUF macro.
7179
7180 * dispnew.c (temp_glyphs): Added back this variable declaration;
7181 screen.h and various other places referred to this; where did it
7182 go?
7183 * screen.h [not MULTI_SCREEN] (temp_glyphs, desired_glyphs,
7184 current_glyphs): Add extern declarations for these.
7185
7186 * dispnew.c (cancel_my_columns): Use SCREEN_DESIRED_GLYPHS macro,
7187 instead of assuming that a SCREEN_PTR is actually a pointer to
7188 something; it isn't if we're not using any of the screen support.
7189 Remove the variable `screen', and find the value for
7190 `desired_glyphs' directly.
7191 * xdisp.c (echo_area_display): Use the SCREEN_DESIRED_GLYPHS macro
7192 to find screen's desired cursor position, instead of assuming that
7193 a SCREEN_PTR is a pointer to something.
7194 (display_mode_line): Same.
7195 * window.c (Fpos_visible_in_window_p): Use the SCREEN_WIDTH macro.
7196 (replace_window): Use the SCREEN_ROOT_WINDOW macro.
7197 (window_loop): Use the SCREEN_WIDTH macro.
7198
7199 * dispnew.c (update_screen): Enclose the statement which
7200 increments `downto' in a `#ifdef HAVE_X_WINDOWS' conditional.
7201
7202 * screen.h [MULTI_SCREEN and not MULTI_SCREEN] (FOR_EACH_SCREEN):
7203 New macro.
7204 * dispnew.c (window_change_signal, do_pending_window_change): Use
7205 FOR_EACH_SCREEN instead of assuming that Vscreen_list exists.
7206 * window.h (root_window): Added extern declaration for this.
7207
7208 * screen.c: Enclose the entire file in a #ifdef MULTI_SCREEN
7209 conditional.
7210
7211
7212 1992-06-23 Richard Stallman (rms@mole.gnu.ai.mit.edu)
7213
7214 * window.c (Fset_window_dedicated_p):
7215 Replaces Fset_window_buffer_dedicated. Second arg just t or nil.
7216
7217 1992-06-22 Richard Stallman (rms@mole.gnu.ai.mit.edu)
7218
7219 * syntax.h (SYNTAX, SYNTAX_MATCH, SYNTAX_COMSTART_FIRST, etc.)
7220 Cast character to unsigned char before indexing.
7221
7222 1992-06-19 Jim Blandy (jimb@pogo.cs.oberlin.edu)
7223
7224 * xterm.c (x_wm_set_size_hint): Set size_hints.flags to indicate
7225 that we are providing the base_width and base_height data.
7226
7227 * xfns.c (Fx_create_screen): Default the internal border width to
7228 2; this matches XTerm.
7229
7230 * syntax.c (Fparse_partial_sexp): Doc fix.
7231
7232 * syntax.c (Fparse_partial_sexp): Added phony argument list to
7233 comment containing the docstring for this function, so that
7234 make-docfile.c will get the right arguments.
7235
7236 * xfns.c (x_set_name): Don't go through the X11 brouhaha to set
7237 the name unless we're actually setting it to something different
7238 from the current name.
7239
7240 1992-06-18 Jim Blandy (jimb@pogo.cs.oberlin.edu)
7241
7242 * eval.c (syms_of_eval): Don't forget to escape the ends of the
7243 lines in the docstring for `debug-on-quit'.
7244
7245 * keyboard.c (Fread_key_sequence): Reversed sense of CONTINUE_ECHO
7246 argument - set this_command_key_count to zero iff CONTINUE_ECHO is
7247 Qnil, not iff it's non-Qnil.
7248
7249 1992-06-17 Jim Blandy (jimb@pogo.cs.oberlin.edu)
7250
7251 * search.c: Changed to remember the object in which the last
7252 search was done, so that markers from match data are placed in
7253 that buffer, instead of the current buffer.
7254 (search_regs_from_string): Replaced with...
7255 (last_thing_searched): This is either Qnil, meaning no searching
7256 has been done, Qt, meaning that the last search was done in a
7257 string, or a buffer object, meaning that the last search was done
7258 in that buffer.
7259 (syms_of_search): Initialize and staticpro last_thing_searched.
7260 (Flooking_at, search_buffer): Set last_thing_searched to the
7261 current buffer.
7262 (Fstring_match): Set last_thing_searched to Qt.
7263 (Fmatch_data): Test last_thing_searched to see if any searching
7264 has been done, and construct integers or markers in the right
7265 buffer. Abort if it's not Qt, Qnil, or a buffer.
7266 (Fstore_match_data): Set last_thing_searched according to the
7267 things we find in LIST.
7268
7269 1992-06-16 Jim Blandy (jimb@pogo.cs.oberlin.edu)
7270
7271 * fns.c (Fload_average): Document the fact that this sometimes
7272 returns a list of fewer than three elements, on systems which
7273 don't provide 5- and 15-minute load averages.
7274
7275 1992-06-15 Jim Blandy (jimb@pogo.cs.oberlin.edu)
7276
7277 * xterm.c (XTread_socket): If an event arrives to a screen S,
7278 don't attribute them to SCREEN_FOCUS_SCREEN (S) here. Do that
7279 synchronously, when the events are dequeued. This keeps events
7280 from being accidentally routed to the wrong screen, if we
7281 temporarily redirect a screen's focus.
7282 * keyboard.c (kbd_buffer_store_event): If the character being
7283 stuffed is a quit character, do the SCREEN_FOCUS_SCREEN
7284 redirection to it here.
7285 (kbd_buffer_get_event): And do it here, before returning the
7286 event.
7287
7288 * eval.c (Finteractive_p): This assumed that if the function in
7289 the top frame of the lisp backtrace was not a Lisp_Compiled
7290 object, then Finteractive_p must have an explicit frame on the top
7291 of the stack, which we could skip. It didn't bother to follow the
7292 symbol function chaining, and it would break if any C code called
7293 from a non-compiled function tried to call Finteractive_p anyway.
7294 Changed this to actually check if the top frame's effective
7295 function is the Lisp_Subr for Finteractive_p. This also used to
7296 skip any number of frames for special forms and/or Fbytecode
7297 calls. Changed this to skip an Fbytecode frame (if present),
7298 followed by any number of special form frames.
7299
7300 1992-06-14 Jim Blandy (jimb@pogo.cs.oberlin.edu)
7301
7302 * eval.c (struct backtrace): Doc fix.
7303
7304 1992-06-12 Jim Blandy (jimb@pogo.cs.oberlin.edu)
7305
7306 * m/hp300bsd.h (LOAD_AVE_TYPE): This is long, not double.
7307 (LOAD_AVE_CVT): Adjusted as appropriate.
7308
7309 * fns.c: Moved lots of system-dependent preprocessor cruft
7310 dealing with getting the load average to `getloadavg.c'.
7311 (Fload_average): Guts moved to `getloadavg.c'.
7312 * getloadavg.c: New file, containing the necessary mess to get the
7313 load average on many different systems. This file is supposed to
7314 be Emacs-independent.
7315 * ymakefile (obj): Add getloadavg.o to the list.
7316 (getloadavg.o): Note that this depends on its source, and config.h.
7317
7318 * screen.c (Fdelete_screen): Typo in loop looking for new
7319 last_nonminibuf_screen - change `screen = XCONS (screens)->cdr`
7320 to `screens = XCONS (screens)->cdr`
7321
7322 * xdisp.c (echo_area_display): Don't neglect to draw all the lines
7323 of the minibuffer window (or echo area) when a message is being
7324 displayed. If the minibuffer is more than one line high, they
7325 should all be blanked.
7326
7327 1992-06-10 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
7328
7329 * sysdep.c [POSIX_SIGNALS] (sys_signal): Fix typo - rather than
7330 calling new_action as if it were a function, call sigaction.
7331
7332 1992-06-09 Richard Stallman (rms@mole.gnu.ai.mit.edu)
7333
7334 * lisp.h (Qnumberp, Qnumber_or_marker_p): Declared.
7335
7336 * eval.c (wants_debugger): Changed NULL to NILP.
7337 Who installed these calls to NULL?
7338
7339 1992-06-09 Jim Blandy (jimb@pogo.cs.oberlin.edu)
7340
7341 * dispnew.c (Fsit_for): Don't forget to actually set sec from ARG.
7342
7343 * termhooks.h (struct input_event): Doc fix - for mouse clicks, .x
7344 and .y give the position in characters, not in pixels.
7345
7346 * keyboard.c (format_modifiers): Order the modifier letters
7347 alphabetically - control, meta, shift, and up.
7348
7349 1992-06-08 Richard Stallman (rms@mole.gnu.ai.mit.edu)
7350
7351 * xfns.c: Move some extern decls out of #if 0, to top of file.
7352
7353 1992-06-08 Jim Blandy (jimb@pogo.cs.oberlin.edu)
7354
7355 * window.c (Fcoordinates_in_window_p): Docstring fix.
7356
7357 * buffer.c (Fother_buffer): Put a comma between arguments BUFFER
7358 and VISIBLE_OK in the argument list. Duh.
7359
7360 * screen.c (Fdelete_screen): Remember that s is a SCREEN_PTR *,
7361 not a Lisp_Object.
7362
7363 * search.c (search_regs): Doc fix.
7364 (compile_pattern): Take a new argument - the search register
7365 structure - so we can reassure the regex routines that the
7366 registers have been allocated.
7367 (Flooking_at, Fstring_match, search_buffer): Changed to pass
7368 &search_regs to compile_pattern.
7369 (search_buffer): When we've searched for a literal string and
7370 found it, make sure that the search registers are allocated before
7371 stuffing the location of the search into them.
7372 (Fstore_match_data): If we need to allocate more registers,
7373 allocate them using re_set_registers, instead of just storing the
7374 new registers and hoping that regex doesn't free them.
7375
7376 * search.c (Freplace_match): Doc fix.
7377
7378 1992-06-07 Richard Stallman (rms@mole.gnu.ai.mit.edu)
7379
7380 * screen.c (Fdeiconify_screen): Function deleted.
7381 It was the same as make-screen-visible.
7382
7383 1992-06-06 Richard Stallman (rms@mole.gnu.ai.mit.edu)
7384
7385 * keyboard.c: Doc fix.
7386
7387 * floatfns.c (Fcbrt): Renamed from Fcube_root, and #if 0'd.
7388
7389 * lisp.h (CHECK_NUMBER_OR_FLOAT*): Use Qnumberp or Qnumber_or_marker_p.
7390 * data.c (syms_of_data): Staticpro those.
7391 (Qinteger_or_float_p, Qinteger_or_float_or_marker_p): Deleted.
7392 (Fnumberp, Fnumber_or_marker_p): Define these always,
7393 but make them work even if not LISP_FLOAT_TYPE.
7394
7395 1992-06-05 Joseph Arceneaux (jla@churchy.gnu.ai.mit.edu)
7396
7397 * config.h.in: Undefine REL_ALLOC if a system specific file
7398 defines SYSTEM_MALLOC.
7399
7400 * sysdep.c (save_signal_handlers): Cast result of signal to
7401 avoid compiler warning.
7402 * process.c (send_process): Likewise.
7403
7404 1992-06-05 Richard Stallman (rms@mole.gnu.ai.mit.edu)
7405
7406 * keyboard.c (Fread_key_sequence): New 2nd arg CONTINUE_ECHO
7407 added for the sake of universal-argument.
7408
7409 1992-06-04 Richard Stallman (rms@mole.gnu.ai.mit.edu)
7410
7411 * editfns.c (Fset_default_file_mode): Function deleted.
7412 (Funix_sync): Moved.
7413 * fileio.c (Funix_sync): Moved to here.
7414
7415 * xfns.c (Fx_erase_rectangle, Fx_draw_rectangle, Fx_contour_region):
7416 (Fx_uncontour_region): #if 0 these.
7417 (x_rectangle, outline_region): Likewise.
7418 (syms_of_xfns): #if 0 the defsubrs.
7419
7420 * dispnew.c (Fsleep_for, Fsit_for): Clean up error messages.
7421
7422 * eval.c, print.c, keyboard.c: Doc fix.
7423
7424 * xfns.c (Fx_horizontal_line): Disabled, since not documented.
7425
7426 * fileio.c (Fdelete_directory): Renamed from Fremove_directory.
7427
7428 * unexencap.c: Deinstalled (renamed to =unexencap.c)
7429 since awaited papers never arrived.
7430
7431 * xfns.c: Doc fix.
7432
7433 1992-06-04 Roland McGrath (roland@geech.gnu.ai.mit.edu)
7434
7435 * eval.c (stack_trace_on_error, debug_on_error): Made Lisp_Objects V*.
7436 (syms_of_eval): Changed DEFVAR_BOOLs to DEFVAR_LISPs.
7437 (wants_debugger): New fn.
7438 (find_handler_clause): Use it to look in debug-on-error and
7439 stack-trace-on-error lists.
7440
7441 1992-06-04 Richard Stallman (rms@mole.gnu.ai.mit.edu)
7442
7443 * floatfns.c (Fbessel_*, Ferf, Ferfc, Flog_gamma): Turned off;
7444 not clearly worth including.
7445 (Fasinh, Facosh, Fatanh, Fsinh, Fcosh, Ftanh): Likewise.
7446
7447 1992-06-03 Richard Stallman (rms@mole.gnu.ai.mit.edu)
7448
7449 * minibuf.c, keyboard.c: Doc fix.
7450
7451 * window.c (Fwindow_at): Fix number of args--minimum 2, max 3.
7452
7453 * screen.c: Doc fix.
7454
7455 1992-06-02 Richard Stallman (rms@mole.gnu.ai.mit.edu)
7456
7457 * lread.c (Feval_buffer): Don't read any arguments, if interactive.
7458
7459 1992-06-02 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
7460
7461 * screen.c (make_screen_without_minibuffer): Apply XSCREEN to
7462 Vdefault_minibuffer_screen before calling SCREEN_LIVE_P. The
7463 argument to SCREEN_LIVE_P must be a SCREEN_PTR, not a Lisp_Object.
7464
7465 * dispnew.c (Fsit_for): This used to compare arg with 0 and return
7466 Qt immediately. It should actually call sit_for anyway, because
7467 sit_for needs to test for input and do the redisplay.
7468 (sit_for): Compare sec and usec with zero here, after we've
7469 looked for input and done a redisplay.
7470
7471 * lread.c (Feval_buffer): Use NILP, not NIL_P.
7472
7473 1992-06-01 Joseph Arceneaux (jla@churchy.gnu.ai.mit.edu)
7474
7475 * buffer.h: New macro, BUF_SET_PT.
7476
7477 * lread.c: New subr `eval-buffer', replaces `eval-current-buffer',
7478 which is now defined in simple.el.
7479
7480 1992-05-30 Jim Blandy (jimb@pogo.cs.oberlin.edu)
7481
7482 * screen.c (Fdelete_screen): If we're deleting the default
7483 minibuffer screen, try to find another minibuffer screen.
7484
7485 1992-05-29 Jim Blandy (jimb@pogo.cs.oberlin.edu)
7486
7487 * buffer.c (Fother_buffer): New optional argument VISIBLE_OK,
7488 indicating that buffers currently visible in windows should not be
7489 discriminated against.
7490
7491 1992-05-28 Ken Raeburn (raeburn@cygnus.com)
7492
7493 * screen.c (Fdelete_screen): Fix bugs in walking screen list.
7494 (make_screen_without_minibuffer): Signal an error if the default
7495 minibuffer screen is dead.
7496
7497 * xfns.c (x_set_name): Use ICCCM-conforming scheme for changing
7498 window name in X11.
7499 (Fx_create_screen): Likewise.
7500
7501 1992-05-27 Jim Blandy (jimb@pogo.cs.oberlin.edu)
7502
7503 * xselect.c: Support getting and setting the obsolete X cut
7504 buffers.
7505 (Qcut_buffer0): New atom, denoting the X cut buffer 0.
7506 (syms_of_xselect): Initialize and staticpro it.
7507 (Fx_own_selection): If TYPE is Qcut_buffer0, interpret this to
7508 mean that we should set cut buffer 0 to STRING.
7509 (Fx_selection_value): If TYPE is Qcut_buffer0, interpret this to
7510 mean that we should retrieve the value of cut buffer 0.
7511
7512 1992-05-21 Jim Blandy (jimb@pogo.cs.oberlin.edu)
7513
7514 * xterm.c (construct_mouse_click): Removed extra assignment of
7515 result->timestamp.
7516
7517 * keyboard.c (last_event_timestamp): Doc fix.
7518 * xselect.c (last_event_timestamp): Declare it extern here.
7519 (mouse_timestamp): Variable deleted. last_event_timestamp is a
7520 more accurate thing to use here.
7521 (own_selection, get_selection_value): Use last_event_timestamp
7522 instead of mouse_timestamp.
7523 * keyboard.c (make_lispy_event): Pass the event's timestamp
7524 through the make_number function, to assure that it is properly
7525 tagged before incorporating it into the lispy event.
7526 * xterm.c (construct_mouse_click): The timestamp element of a
7527 struct input_event is no longer a Lisp_Object; it is now an
7528 unsigned long. So don't use XSET to assign to it.
7529 (XTread_socket): Same here, in processing KeyPress events.
7530
7531 * keyboard.c (Fexecute_extended_command): Properly initialize
7532 this_command_keys to the concatenation of the sequence that
7533 invoked Fexecute_extended_command, the characters making up the
7534 name of the command we're running, and a return character.
7535 Previously, this code would set it to the last key typed while
7536 reading the function name from the minibuffer, followed by the
7537 name of the function being run.
7538
7539 1992-05-20 Jim Blandy (jimb@pogo.cs.oberlin.edu)
7540
7541 * xterm.c (x_display_box_cursor): Draw the cursor at curs_{x,y},
7542 rather than at s->cursor_{x,y}. If cursor_in_echo_area is set,
7543 then s->cursor_{x,y} does not accurately describe the position of
7544 the cursor. However, if we're not updating, then curs_{x,y} are
7545 garbage; set them from s->cursor_{x,y}.
7546
7547 * dispnew.c (update_screen): Check current_screen->enable and
7548 current_screen_used to see if there is any text on the last line,
7549 not desired_screen->{enable,used}. When the line isn't enabled,
7550 move to line SCREEN_HEIGHT (s) - 1, not SCREEN_HEIGHT (s).
7551 Rearranged conditionals.
7552
7553 * dispnew.c (cursor_in_echo_area): Document the interpretations of
7554 positive and negative values of this variable.
7555
7556 1992-05-18 Richard Stallman (rms@mole.gnu.ai.mit.edu)
7557
7558 * dispnew.c (Fding): If have arg, don't end a keyboard macro.
7559
7560 1992-05-18 Jim Blandy (jimb@pogo.cs.oberlin.edu)
7561
7562 * dispnew.c (sit_for): New function, which is a slight
7563 generalization of Fsit_for; you can tell it that it's waiting for
7564 input, so C-g gets handled properly.
7565 (Fsit_for): Call it, instead of replicating all its guts.
7566 * keyboard.c (read_char): Call sit_for instead of Fsit_for, and
7567 indicate that we're awaiting keyboard input.
7568
7569 * dispnew.c (Fsit_for): Rename arguments to match docstring. Use
7570 NILP instead of EQ (foo, Qnil). If nodisp is non-nil, call
7571 wait_reading_process_input with do_display 0, instead of 1; this
7572 will inhibit spurious redisplays when process input arrives during
7573 a sit-for.
7574
7575 * process.c (Faccept_process_output): Pass zero as read_kbd
7576 argument to wait_reading_process_input when PROC is nil, not when
7577 PROC is non-nil.
7578
7579 * process.c (wait_reading_process_input): Declare read_kbd to be a
7580 Lisp_Object, and use the tagging to tell the difference between a
7581 process object and an integer.
7582 * dispnew.c (Fsleep_for, Fsit_for, Fsleep_for_millisecs): Pass
7583 read_kbd argument to wait_reading_process_input as a Lisp_Object.
7584 * keyboard.c (kbd_buffer_get_event): Same.
7585 * process.c (Faccept_process_output, send_process): Same.
7586
7587 * keyboard.c (read_char): Use save_getcjmp and restore_getcjmp
7588 instead of doing the bcopy explicitly.
7589
7590 * xterm.c (XTread_socket): When handling an EnterWindow event,
7591 don't bother to check waiting_for_input. It's not necessary.
7592
7593 * keyboard.c (read_char): Don't clear waiting_for_input and
7594 input_available_clear_time here.
7595 (quit_throw_to_read_char): It's already done here.
7596
7597 * keyboard.c (quit_throw_to_read_char): Use
7598 clear_waiting_for_input instead of clearing waiting_for_input
7599 explicitly.
7600
7601 1992-05-18 Jim Blandy (jimb@pogo.cs.oberlin.edu)
7602
7603 * keyboard.c (read_char): Call clear_waiting_for_input instead of
7604 clearing waiting_for_input and input_available_clear_time
7605 explicitly.
7606
7607 1992-05-15 Jim Blandy (jimb@pogo.cs.oberlin.edu)
7608
7609 * ymakefile [defined (__GNUC__) and __GNUC__ > 1]: define
7610 YMF_PASS_LDFLAGS so that it can deal with an empty flags argument.
7611
7612 * callproc.c (Fcall_process): Under VMS, a nil INFILE argument
7613 means to read from "NLA0:", not "/dev/null".
7614
7615 * callproc.c (Fcall_process): Use nil as the value for display
7616 (the fourth argument) when nargs >= 4, not when nargs >= 3.
7617
7618 1992-05-14 Jim Blandy (jimb@pogo.cs.oberlin.edu)
7619
7620 * termhooks.h: Change timestamp from a Lisp_Object to an unsigned
7621 long.
7622 * keyboard.c (kbd_buffer_store_event): We don't have to apply the
7623 XINT macro to the timestamp member of the event anymore.
7624
7625 * process.c (wait_reading_process_output): Don't turn off polling.
7626
7627 * sysdep.c (setpgrp_of_tty): Pass the address of pid, not pid
7628 itself.
7629
7630 * process.c: Deleted cpp tangle for dealing with system-dependent
7631 tty handling; #included "systerm.h".
7632 * systerm.h: Add some of the things that were done in process.c:
7633 If titan is #defined, then we should include <sys/ttyhw.h> and
7634 <sys/stream.h> along with the other SYSV pty stuff.
7635 If HPUX is #defined, then EMACS_HAVE_TTY_PGRP isn't true.
7636 If XENIX is #defined, then we shouldn't try to use TIOCGETC.
7637 * ymakefile: Note that process.o depends on systerm.h now.
7638
7639 1992-05-13 Richard Stallman (rms@mole.gnu.ai.mit.edu)
7640
7641 * callint.c (Fprefix_numeric_value): Value 1 for symbol other than `-'.
7642
7643 1992-05-13 Jim Blandy (jimb@pogo.cs.oberlin.edu)
7644
7645 * cmds.c (Fforward_line): If the buffer is empty, don't try to see
7646 if it contains a newline, and moving nowhere at eob after
7647 non-newline should return 1, not 0.
7648
7649 * search.c (scan_buffer): Doc fix.
7650
7651 * buffer.c (Fbuffer_disable_undo): Accept a buffer name as an
7652 argument.
7653
7654 1992-05-12 Richard Stallman (rms@mole.gnu.ai.mit.edu)
7655
7656 * fileio.c: Include config.h first thing.
7657
7658 * keyboard.c (clear_input_pending): New subroutine.
7659 * process.c (wait_reading_process_input): Make C-g really quit in
7660 sit-for case.
7661
7662 * ymakefile (LD_SWITCH_SYSTEM): Don't use -X with GCC.
7663
7664 1992-05-12 Jim Blandy (jimb@pogo.cs.oberlin.edu)
7665
7666 * eval.c (Fapply): Use indirect_function, instead of doing a dumb
7667 loop.
7668 * keymap.c (get_keymap_1): Same.
7669 * macros.c (Fexecute_kbd_macro): Same.
7670
7671 * buffer.c (init_buffer_once): Don't disable undos for *scratch*
7672 here. Do it in loadup.el.
7673
7674 * buffer.c (init_buffer_once): Doc fix.
7675
7676 * doc.c (Fdocumentation): After extracting the doc string from a
7677 lambda or autoload expression, don't fall through to the default
7678 case and signal an invalid function error; instead, do a `break'.
7679
7680 * doc.c (Fdocumentation): Use EQ (x, y) instead of XSYMBOL (x) ==
7681 XSYMBOL (y).
7682
7683 * doc.c (Fdocumentation): When decyphering a function made from
7684 conses, use 'else if' for the chain of alternatives instead of
7685 just 'if'. It used to be that each alternative returned, but
7686 that's not true anymore.
7687
7688 * alloc.c (Fgarbage_collect): Don't call truncate_undo_list on
7689 buffers whose undo list is 't.
7690
7691 * doc.c (Fdocumentation): Renamed argument `fun1' to `function',
7692 so make-docstring will list argument consistently with the
7693 docstring.
7694
7695 1992-05-11 Joseph Arceneaux (jla@churchy.gnu.ai.mit.edu)
7696
7697 * xterm.h: Removed definition of `RES_CLASS'.
7698
7699 * xfns.c (x_get_arg): Eliminated `screen_name' parameter. No
7700 longer uses screen name as X resource search component.
7701 All calls to x_get_arg changed accordingly.
7702 Global variable `screen_class' and #define `SCREEN_CLASS' removed.
7703
7704 * xterm.c (XTread_socket): Added basic structure for handling
7705 various ClientMessage events, using new global variables
7706 `Xatom_wm_take_focus', `Xatom_wm_save_yourself',
7707 `Xatom_wm_delete_window', `Xatom_wm_configure_denied',
7708 `Xatom_wm_moved'.
7709 * xfns.c: Declare these variables extern.
7710 (syms_of_xfns): Initialize these variables.
7711
7712 * xselect.c (Fx_own_selection, Fx_selection_value): New optional
7713 parameter `type', to specify the selection type.
7714 (syms_of_xselect): New symbols Qprimary, Qsecondary, Qclipboard
7715 initialized.
7716
7717 1992-05-11 Jim Blandy (jimb@pogo.cs.oberlin.edu)
7718
7719 * data.c (Qcyclic_function_indirection): New error condition.
7720 (indirect_function, Findirect_function): New functions.
7721 (syms_of_data): Initialize Qcyclic_function_indirection, put the
7722 error properties on it, and staticpro it. Defsubr
7723 Findirect_function.
7724 * lisp.h (indirect_function, Findirect_function): Declare them here.
7725 * callint.c (Fcall_interactively): Get symbol's function by
7726 calling indirect_function, instead of just looping.
7727 * doc.c (Fdocumentation): Same.
7728 * eval.c (Finteractive_p, Fcommandp, do_autoload, Feval,
7729 Ffuncall): Same.
7730 * keyboard.c (Fcommand_execute): Same.
7731
7732 * data.c (Fsymbol_function): Name the argument `symbol' instead of
7733 `sym', so make-docstring will list argument consistently with the
7734 docstring.
7735
7736 * process.c (wait_reading_process_input): Make sure the screen
7737 isn't garbaged (and therefore not displayed) before we enter the
7738 select and start waiting for input.
7739
7740 * keyboard.c: #include <systime.h>.
7741 * ymakefile (keyboard.o): This depends on systime.h.
7742 * keyboard.c (input_available_clear_word): Replaced with
7743 input_available_clear_time, which is a pointer to an EMACSTIME;
7744 sometimes the time information is larger than a single word.
7745 (read_char): Changed ..._word to ..._time.
7746 (input_available_signal): Use the EMACS_SET_SECS_USECS macro to
7747 clear *input_available_clear_time, instead of zapping a zero into
7748 *input_available_clear_word.
7749 (set_waiting_for_input, clear_waiting_for_input): Adjusted
7750 appropriately.
7751
7752 1992-05-10 Jim Blandy (jimb@pogo.cs.oberlin.edu)
7753
7754 * editfns.c (make_buffer_string): New function.
7755 * lisp.h (make_buffer_string): Declare it here.
7756 * editfns.c (Fbuffer_substring): Call make_buffer_string instead
7757 of writing it out.
7758 (Fbuffer_string): Call make_buffer_string instead of make_string,
7759 so we can deal with buffer relocations.
7760 * minibuf.c (read_minibuf): Same here.
7761
7762 1992-05-09 Jim Blandy (jimb@pogo.cs.oberlin.edu)
7763
7764 * syssignal.h (sigunblock): New macro, taken from 18.58's
7765 emacssignal.h file.
7766 * sysdep.c (request_sigio): Use the sigunblock macro to enable
7767 reciept of SIGWINCH, instead of the dysfunctional sigblockx.
7768
7769 1992-05-08 Richard Stallman (rms@mole.gnu.ai.mit.edu)
7770
7771 * search.c: Doc fix.
7772
7773 1992-05-06 Jim Blandy (jimb@pogo.cs.oberlin.edu)
7774
7775 * emacs.c (decode_env_path): If EVARNAME is zero, don't try to
7776 call getenv on it.
7777 * lread.c (init_lread): When we don't have an environment variable
7778 to check, pass 0 instead of the empty string.
7779
7780 * alloc.c (Fmake_marker): Use `SIGMASKTYPE' instead of `int'.
7781 Instead of calling sigsetmask twice - once to get the mask, and
7782 again to restore it - call sigblock, specifying no additional
7783 signals.
7784
7785 1992-05-05 Jim Blandy (jimb@pogo.cs.oberlin.edu)
7786
7787 * alloc.c: #include <syssignal.h>, for the sake of the
7788 bug-catching code in Fmake_marker.
7789 ymakefile: Add dependency.
7790
7791 * syssignal.h [not POSIX_SIGNALS] (SIGFULLMASK): New definition,
7792 for symmetry with the "defined (POSIX_SIGNALS)" case.
7793
7794 * callproc.c (child_setup): Since we always get the environment
7795 from Vprocess_environment, don't bother to take the environment
7796 the subprocess should inherit as an argument anymore.
7797 * process.c (create_process): Don't pass environment as a
7798 variable. Just preserve it across call to fork.
7799
7800 1992-05-04 Jim Blandy (jimb@pogo.cs.oberlin.edu)
7801
7802 * floatfns.c: #include <syssignal.h>.
7803 (float_error): Use SIGEMPTYMASK instead of zero.
7804
7805 * syssignal.h [POSIX_SIGNALS] (sigmask): Defined to expand to a
7806 statement expression under GCC, or a function call otherwise.
7807 (sigpause, sigblock, sigunblock, sigsetmask): These are now
7808 K&R-compatible macros.
7809 * systerm.h [POSIX_SIGNALS] (sys_sigmask): Here is the function
7810 the POSIX version of sigmask calls when we're not compiling with
7811 GCC.
7812 * alloc.c (Fmake_marker): Undo changes of Apr 29.
7813 * callproc.c (Fcall_process): Same.
7814 * data.c (arith_error): Same.
7815 * floatfns.c (float_error): Same.
7816 * keyboard.c (gobble_input): Same.
7817
7818 * sysdep.c (request_sigio, unrequest_sigio)
7819
7820 1992-04-29 Jim Blandy (jimb@pogo.cs.oberlin.edu)
7821
7822 * x11term.h (CLASS): Change this from "emacs" to "Emacs"; class
7823 names should always start with an upper-case letter.
7824
7825 * syssignal.h: Arranged cpp conditionals so that the specific
7826 cases come first, generic cases last.
7827
7828 * syssignal.h (sigpause, sigblock, sigunblock, sigsetmask): Macros
7829 removed; they require GCC, and Emacs 19 should compile without GCC.
7830 (EMACS_SIGPAUSE, EMACS_SIGBLOCK, EMACS_SIGUNBLOCK,
7831 EMACS_SIGSETMASK, EMACS_SIGFREE, EMACS_SIGHOLDX, EMACS_SIGBLOCKX,
7832 EMACS_SIGUNBLOCKX, EMACS_SIGPAUSEX): These are new macros that
7833 don't require GCC, but expand to statements.
7834 * callproc.c (Fcall_process): Use new EMACS_SIG* macros from
7835 syssignal.h.
7836 * keyboard.c (gobble_input): Same.
7837 * sysdep.c (request_sigio, unrequest_sigio): Same.
7838 * x11term.h (BLOCK_INPUT, UNBLOCK_INPUT): Same.
7839 * alloc.c (Fmake_marker): Same.
7840 * data.c (arith_error): Same.
7841 * floatfns.c (float_error): Same.
7842
7843 1992-04-28 Jim Blandy (jimb@pogo.cs.oberlin.edu)
7844
7845 * ymakefile: If we're using GCC version 2.0 or later, use "$(CC)
7846 -nostdlib" as the linker. This will allow us to find libgcc.a
7847 even when GCC puts it in a really weird place.
7848 (YMF_PASS_LDFLAGS): New macro.
7849 (temacs): Use it.
7850
7851 * s/hpux.h: Doc fix.
7852
7853 * filelock.c (egetenv): Declare this.
7854 (lock_path, SUPERLOCK_NAME, superlock_path): New variables and
7855 macros.
7856 (MAKE_LOCK_PATH, lock_file, unlock_file, lock_superlock): Use the
7857 variables lock_path and superlock_path instead of the PATH_LOCK
7858 and PATH_SUPERLOCK macros.
7859 (init_filelock): New function.
7860 * emacs.c (main): Call the init_filelock function.
7861 * paths.h.in (PATH_SUPERLOCK): Removed. This is now calculated
7862 from PATH_LOCK or from the EMACSLOCKDIR environment variable.
7863
7864 * filelock.c (MAKE_LOCK_PATH): New macro.
7865 (lock_file, unlock_file, Ffile_locked_p): Use it.
7866
7867 * syntax.c (Fmodify_syntax_entry): Note that '-' is a synonym for
7868 ' ' (both denote whitespace), that '\\' denotes the escape class,
7869 and that '/' denotes the character-quote class. The description
7870 used to claim that '\\' denoted the character-quote class, and
7871 neglected to mention '-' and '/'.
7872
7873 * filelock.c (lock_file): Doc fix.
7874
7875 1992-04-27 Jim Blandy (jimb@pogo.cs.oberlin.edu)
7876
7877 * callproc.c (init_callproc): Get the default Vexec_path from the
7878 environment variable "EMACSPATH"; get Vdata_directory from
7879 "EMACSDATA".
7880
7881 * ymakefile: Fix #endif and #else comments.
7882
7883 1992-04-27 Richard Stallman (rms@mole.gnu.ai.mit.edu)
7884
7885 * ymakefile (xemacs): Link xemacs to temacs if HAVE_SHM.
7886
7887 * ymakefile (paths.h, config.h): Never copy, always fail.
7888
7889 * process.c (wait_reading_process_input): Redisplay if screen_garbaged.
7890 Call do_pending_window_change first.
7891 Include dispextern.h.
7892 * ymakefile (process.o): Added dependency.
7893
7894 * ymakefile (OLDXMENU_OPTIONS): New macro, used compiling oldxmenu.
7895
7896 1992-04-25 Jim Blandy (jimb@pogo.cs.oberlin.edu)
7897
7898 * ymakefile: Changed all references to LD_CMD to LINKER, for
7899 compatibility with the 18.58 configuration files.
7900 * s/aix3-1.h, s/sunos4shr.h: Same here.
7901
7902 * ymakefile: Doc fixes.
7903
7904 * ymakefile (CC, MAKE): Set these variables from optional macros.
7905 Change all uses of `make' to ${MAKE}.
7906
7907 * ymakefile: use HAVE_X11 as alias for X11.
7908
7909 * ymakefile (LIB_GCC, GNULIB_VAR): Handle GCC 2.
7910
7911 * process.c (allocate_pty): Re-arranged conditionals to put the
7912 system-specific-case first, and the generic case in the #else
7913 section, for consistency with the rest of Emacs.
7914
7915 * process.c (allocate_pty): Wait until we fail to open three ptys
7916 in a row before concluding that we've reached the end of the ptys.
7917
7918 1992-04-22 Jim Blandy (jimb@pogo.cs.oberlin.edu)
7919
7920 * ralloc.c: #include "getpagesize.h".
7921
7922 * search.c (Flooking_at): Use search_regs.num_regs instead of
7923 RE_NREGS. As of regex version 0.4, the compiler allocates the
7924 registers, and may allocate more than RE_NREGS.
7925 (search_buffer): Same.
7926 (Freplace_match): Use search_regs.num_regs to tell how many
7927 registers are valid. Also note that if none are valid, no search
7928 has been performed.
7929 (match_limit): Same.
7930 (Fmatch_data): Same.
7931 (Fstore_match_data): If we're trying to store more registers than
7932 search_regs has allocated, re-allocate them to make room.
7933
7934 1992-04-21 Jim Blandy (jimb@pogo.cs.oberlin.edu)
7935
7936
7937 * callproc.c (egetenv): Declare the type of VAR.
7938
7939 * lisp.h: Don't undefine NULL. There is no longer any conflict.
7940
7941 * lisp.h (NUMBERP): New macro.
7942 * editfns.c (Fformat): Protect the sections that deal with
7943 Lisp_Float objects with a "#ifdef LISP_FLOAT_TYPE".
7944 * bytecode.c (Fbyte_code): Use the NUMBERP macro instead of
7945 explicitly checking for the Lisp_Float tag.
7946 * callint.c (Fcall_interactively): Same here.
7947
7948 * xrdb.c (magic_searchpath_decoder): Re-allocate string as needed,
7949 rather than making it a fixed-size array.
7950
7951 * xfns.c (Fx_rebind_key): Don't declare modifier_list to be a
7952 register variable. It's too big, and we need the address of its
7953 first element when we pass it to XRebindKeysym anyway.
7954
7955 * fileio.c (Fdo_auto_save): Doc fix.
7956
7957 1992-04-20 Jim Blandy (jimb@pogo.cs.oberlin.edu)
7958
7959 * search.c (search_buffer): Cast RE_EXACTN_VALUE to char, because
7960 the regex-0.4 distribution says so.
7961
7962 * ymakefile (dired.o): This depends on regex.h.
7963
7964 * process.c (wait_reading_process_input): There is code here which
7965 sends SIGIO to Emacs if we thought we had input available but
7966 didn't get SIGIO. If the system doesn't have SIGIO, then
7967 #ifdef it out.
7968
7969 * print.c (Fexternal_debugging_output): Arguments were declared
7970 ANSI-style - rewritten in K&R 1 fashion.
7971
7972 * floatfns.c (IN_FLOAT): Cast the zero in the `else' clause of the
7973 conditional expression to SIGTYPE, to match the type of the
7974 float_error call in the `then' clause.
7975
7976 * s/hpux8.h: #define HPUX8; this is supposed to be customary
7977 procedure, and fileio.c was expecting it, but somehow it didn't
7978 get defined.
7979
7980 * sysdep.h: Move inclusions of [AIX] <sys/hft.h>,
7981 <sys/devinfo.h>, <sys/pty.h>, <unistd.h> [NEED_BSDTTY]
7982 <sys/bsdtty.h>, [HPUX and HAVE_PTYS] <sys/ptyio.h>, [SYSV_PTYS]
7983 <sys/tty.h>, <sys/pty.h>, and [pfa] <sys/file.h> to systerm.h;
7984 also move undefinition of LLITOUT under BSD4_1 to systerm.h.
7985 * systerm.h: They're here.
7986
7987 * xterm.c (XTcursor_to, XTclear_end_of_line): Declare to return
7988 int in the function definitions as well as their declarations.
7989
7990 1992-04-19 Jim Blandy (jimb@pogo.cs.oberlin.edu)
7991
7992 * fileio.c (directory_file_name): When checking if the string ends
7993 with '/', check that slen is a valid length *before* examining
7994 dst[slen-1], not after.
7995
7996 1992-04-18 Jim Blandy (jimb@pogo.cs.oberlin.edu)
7997
7998 * xterm.c (x_death_handler): New function.
7999 (x_error_handler): Call x_death_handler to shut down Emacs.
8000 (x_term_init): Use x_death_handler to handle SIGPIPE, instead of
8001 x_error_handler, which expects to be passed a display and an
8002 event.
8003 * process.c (send_process): This used to set a handler to
8004 catch SIGPIPEs when writing to a subprocess, and then set the
8005 handler to SIGDFL after writing, but this would stomp on the
8006 SIGPIPE handler for for the X connection. So restore the prevous
8007 handler instead of changing to SIGDFL.
8008
8009 1992-04-18 Richard Stallman (rms@mole.gnu.ai.mit.edu)
8010
8011 * indent.c (compute_motion): Fix skipping invis lines and
8012 truncation at right margin.
8013
8014 1992-04-17 Jim Blandy (jimb@pogo.cs.oberlin.edu)
8015
8016 * s/hpux.h (PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF): Use pty_name,
8017 not ptyname.
8018 * s/rtu.h: Same.
8019
8020 * process.c (pty_process): Add 'int' to the declaration 'static
8021 pty_processes;'. This makes it a happy declaration even when
8022 static has been #defined as the empty string.
8023 * xterm.c (XTcursor_to, XTclear_end_of_line): Same.
8024
8025 * unexec.c (sbrk): Declare this to return void * if __STDC__ is
8026 defined, or char * otherwise.
8027
8028 * lread.c (init_lread): Re-cleaned logic. To determine whether the
8029 load path was changed before dumping, cons up a dump path and
8030 compare it. This method is more localized and accurate.
8031 (initial_path): Variable removed.
8032 (syms_of_lread): Don't staticpro.
8033
8034 * floatfns.c (float_error): Declare and define this to return
8035 SIGTYPE.
8036
8037 * systime.h [HAVE_TIMEVAL] (EMACS_GET_TIME): Declare dummy to be a
8038 real struct timezone, instead of an EMACS_TIME. Since
8039 HAVE_TIMEVAL is defined, struct timezone ought to be declared, so
8040 there's no harm in passing the genuine article.
8041
8042 * sysdep.c [USG] (rename): Place under the protection of a new
8043 preprocessor symbol, HAVE_RENAME.
8044 * s/hpux.h (HAVE_RENAME): Defined.
8045
8046 * sysdep.c [USG] (setpriority): Declare to return int, not void.
8047
8048 * s/template.h: Add template section for HAVE_TERMIOS.
8049
8050 * term.c (cursor_to, raw_cursor_to, fatal): Do declare the types
8051 of the arguments.
8052
8053 1992-04-15 Jim Blandy (jimb@pogo.cs.oberlin.edu)
8054
8055 * callint.c (Fcall_interactively): When the interactive spec is
8056 a string, it may be relocated while reading the arguments. To
8057 avoid this, make a copy of the spec to refer to, instead of
8058 using a pointer to the data of the spec string.
8059
8060 * callint.c (Fcall_interactively): When following the function
8061 chain of a symbol, check for quits.
8062
8063 1992-04-13 Jim Blandy (jimb@pogo.cs.oberlin.edu)
8064
8065 * lread.c (init_lread): Make the load path default to
8066 PATH_LOADSEARCH when we're not dumping (null purify-flag), and
8067 PATH_DUMPLOADSEARCH when we are (not (null (purify-flag))).
8068 Change from April 7th incorrectly always used PATH_DUMPLOADSEARCH.
8069
8070 * lread.c (init_lread): Cleaned up logic; to determine whether the
8071 load path was changed before dumping, remember the initial value
8072 and compare against it.
8073 (initial_path): New variable to support this.
8074 (syms_of_lread): staticpro initial_path.
8075
8076 * ymakefile: Renamed filenames like "*-dist" to "*.in".
8077
8078 * config.h.in: Doc fixes.
8079
8080 1992-04-11 Jim Blandy (jimb@pogo.cs.oberlin.edu)
8081
8082 * config.h-dist: Renamed to config.h.in, for consistency with
8083 the installation conventions of other GNU programs.
8084 * paths.h-dist: Renamed to paths.h.in.
8085
8086 1992-04-11 David J. MacKenzie (djm@wookumz.gnu.ai.mit.edu)
8087
8088 * termcap.c: Declare getenv.
8089
8090 1992-04-08 Jim Blandy (jimb@pogo.cs.oberlin.edu)
8091
8092 * Makefile: Renamed to Makefile.in; the configure script will edit
8093 this to produce Makefile.
8094
8095 1992-04-07 Jim Blandy (jimb@pogo.cs.oberlin.edu)
8096
8097 * paths.h-dist (PATH_DUMPLOADSEARCH): New macro.
8098 * lread.c (init_lread): If we're building an Emacs to be dumped,
8099 use PATH_DUMPLOADSEARCH as the default load path, so we can
8100 correctly find our lisp files.
8101
8102 * config.h-dist, paths.h-dist: Added "-*- C -*-" to top lines, so
8103 Emacs will know that these are really C source.
8104
8105 1992-04-03 Jim Blandy (jimb@pogo.cs.oberlin.edu)
8106
8107 * search.c (syms_of_search): When allocating memory
8108 searchbuf.buffer, cast the return value of malloc to unsigned char
8109 *, not char *; this changed in the most recent version of the
8110 regex code.
8111
8112 1992-03-31 Jim Blandy (jimb@pogo.cs.oberlin.edu)
8113
8114 * doc.c (Fdocumentation): Don't forget to end each line of the
8115 docstring with "\n\".
8116
8117 * process.c (Fprocess_connection): Change "#ifdef 0" around this
8118 function to "#if 0".
8119
8120 * eval.c (Flet, FletX): Signal an error if one of the let's binding
8121 clauses has more than one value form, as in (let ((a 1 2)) a).
8122
8123 * eval.c (Ffuncall): Re-install change of March 10; I don't know
8124 why it went away.
8125
8126 * search.c (compile_pattern): Declare the variable which holds the
8127 return value of re_compile_pattern to be const, if this is ANSI C.
8128
8129 * alloc.c (xrealloc): Change "ese" to "else".
8130
8131 * crt0.c (start1) [sun_soft]: Change 'jst' to 'jsr'. The Sun
8132 assembly language manual doesn't list any 'jst' instruction, I
8133 don't know of one personally, and all the analogous code
8134 around it uses 'jsr'.
8135
8136 * crt0.c [m68k]: Merged with GNU C Library's version: added
8137 conditionals for sun_68881, sun_fpa, sun_soft.
8138
8139 * config.h-dist: Adjusted for renaming of share-lib to etc.
8140 * lread.c (read1): Same.
8141 * doc.c (Fdocumentation_property, Fsnarf_documentation): Same.
8142 * ymakefile: Same.
8143
8144 1992-03-30 Jim Blandy (jimb@pogo.cs.oberlin.edu)
8145
8146 * crt0.c: Merged changes from 18.58:
8147 [hp9000s300]: Set flag_fpa. Define float_loc.
8148 [new hp assembler]: Double flag_fpa and flag_68881 if %d2!=0.
8149 (start1): Declare to be static at the top of the file.
8150 (_start): Removed static declaration in this function; since
8151 everyone wants it, we'll just put it here.
8152
8153 1992-03-20 Richard Stallman (rms@mole.gnu.ai.mit.edu)
8154
8155 * fileio.c (Finsert_file_contents): Allow quitting from I/O.
8156 (Fcopy_file): Likewise.
8157
8158 1992-03-20 Jim Blandy (jimb@pogo.cs.oberlin.edu)
8159
8160 * m-intel386.h (HAVE_ALLOCA): Inhibit if C_ALLOCA.
8161 (LIB_STANDARD): Alternate USG value if __GNUC__ or C_ALLOCA
8162
8163 * alloc.c (xrealloc): If handed a NULL pointer for the block to
8164 resize, malloc a new block and return that. Not all reallocs do
8165 this.
8166
8167 * m/elxsi.h: Doc fix.
8168
8169 1992-03-18 Jim Blandy (jimb@pogo.cs.oberlin.edu)
8170
8171 * dispnew.c (Fsleep_for): Call wait_reading_process_input, whether
8172 or not we have process support; let the emulator do the work.
8173 * emacs.c (fatal_error_signal, Fkill_emacs): Call
8174 kill_buffer_processes even when subprocesses is not #defined; we
8175 have a stub.
8176
8177 * process.c [not defined (subprocesses)] (Fget_buffer_process,
8178 init_process, syms_of_process): New stub versions of these functions.
8179 * emacs.c (main): Call init_process and syms_of_process whether or
8180 not subprocesses is #defined.
8181 * xdisp.c (decode_mode_spec): Call Fget_buffer_process whether or
8182 not subprocesses is #defined.
8183
8184 1992-03-17 Jim Blandy (jimb@pogo.cs.oberlin.edu)
8185
8186 * keyboard.c (kbd_buffer_get_event): Call
8187 wait_reading_process_input, even when subprocesses is not
8188 #defined, instead of doing a whole lot of hairy SIGIO-pausing
8189 stuff.
8190 * dispnew.c (Fsit_for): Call wait_reading_process_input, whether
8191 or not subprocesses is #defined.
8192
8193 * process.c (wait_reading_process_input): Since we're no longer
8194 checking for exceptional conditions in the call to select, all of
8195 the different ways to call select for different systems have
8196 become the same; remove the #if conditionals around this.
8197
8198 * keyboard.c (read_char): When returning quit_char because we got
8199 an interrupt signal, claim that the character came from the
8200 currently selected screen.
8201
8202 1992-03-16 Jim Blandy (jimb@pogo.cs.oberlin.edu)
8203
8204 * callproc.c (Fcall_process): Doc fix.
8205
8206 * process.c [not defined (subprocesses)] (kill_buffer_processes):
8207 New dummy version of this function.
8208 * buffer.c (Fkill_buffer): Removed '#ifdef subprocesses'
8209 protection from the call to kill_buffer_processes; this is safe
8210 whether or not we actually have subprocesses.
8211
8212 1992-03-14 Jim Blandy (jimb@pogo.cs.oberlin.edu)
8213
8214 * m/pfa50.h: New file.
8215 * process.c (create_process, process_send_signal): Added changes
8216 for m/pfa50.h.
8217 * sysdep.c: same.
8218 * unexec.c: same.
8219
8220 1992-03-14 Jim Blandy (jimb@pogo.cs.oberlin.edu)
8221
8222 * callproc.c (child_setup): Always put the child in its own
8223 process group.
8224
8225 1992-03-13 Jim Blandy (jimb@pogo.cs.oberlin.edu)
8226
8227 * mem_limits.h (POINTER): Doc fix.
8228
8229 * ralloc.c: Don't #include lisp.h and xterm.h; we no longer need
8230 to block input in critical sections.
8231 (r_alloc, r_alloc_free, r_re_alloc): Don't use BLOCK_INPUT and
8232 UNBLOCK_INPUT; these are no longer needed.
8233 (struct bp): Doc fix.
8234
8235 1992-03-11 Jim Blandy (jimb@pogo.cs.oberlin.edu)
8236
8237 * ralloc.c (obtain): When deciding how many pages to request, take
8238 into account the amount of spare bytes at the end of the current
8239 page; let get be ROUNDUP (size - already_available), instead of
8240 ROUNDUP (size).
8241 (relinquish): Re-organized for clarity.
8242
8243 * editfns.c (Fcurrent_time): Updated to return the current time's
8244 seconds split into two 16-bit integers (similar to the system used
8245 by file-attributes), and the milliseconds.
8246
8247 1992-03-10 Jim Blandy (jimb@pogo.cs.oberlin.edu)
8248
8249 * process.c (Faccept_process_output): Add new optional argument
8250 TIMEOUT-MSECS, and return non-nil iff we actually got some input
8251 from the process(es).
8252 (wait_reading_process_input): Make return value indicate whether
8253 we got some input from the specified process, when read_kbd is a
8254 process, or from any process when read_kbd isn't particular.
8255
8256 * indent.c (Fmove_to_column): Pass the correct number of arguments
8257 to Findent_to.
8258
8259 * eval.c (Ffuncall): If a subr is asking for too many arguments,
8260 abort instead of printing an error message; this is an internal
8261 flaw in Emacs, and the subr cannot be called.
8262
8263 1992-03-06 Roland McGrath (roland@geech.gnu.ai.mit.edu)
8264
8265 * doc.c (Fdocumentation, Fdocumentation_property): Take optional
8266 new arg to not pass results thru substitute-command-keys.
8267
8268 1992-03-05 Jim Blandy (jimb@pogo.cs.oberlin.edu)
8269
8270 * unexmips.c (unexec): When setting up the data_section header,
8271 calculate the size of the section as "brk - data_start," not "brk
8272 - DATA_START".
8273
8274 1992-02-23 Jim Blandy (jimb@pogo.cs.oberlin.edu)
8275
8276 * fileio.c: #include "systime.h".
8277 (Fcopy_file): Use the systime.h macros to copy the time to the new
8278 file.
8279 * ymakefile: Note that fileio.o depends on systime.h.
8280
8281 * ymakefile (dispnew.o): Note that this depends on systerm.h and
8282 systime.h.
8283 (editfns.o, xterm.o, sysdep.o): Note that this depends on
8284 systime.h.
8285 (emacs.o, keyboard.o, process.o, sysdep.o): Note that these depend
8286 on systerm.h.
8287
8288 * systerm.h: Expanded to handle getting and setting terminal
8289 parameters:
8290 (struct emacs_tty): New structure, which consolidates all of the
8291 old tty parameter structures.
8292 (EMACS_GET_TTY, EMACS_SET_TTY, EMACS_TTY_TABS_OK): New macros.
8293 * sysdep.c (TABS_OK): Definitions of this macro removed;
8294 EMACS_TTY_TABS_OK replaces it.
8295 (TERMINAL): Definitions removed; now we use struct emacs_tty.
8296 [VMS] (input_chan): Renamed to...
8297 (input_fd): and defined even when VMS isn't; in that case, we
8298 leave it initialized to zero, which is the input tty. This allows
8299 us to use the EMACS_GET_TTY and EMACS_SET_TTY for both VMS and
8300 Unix.
8301 (discard_tty_input): Use struct emacs_tty and its macros instead
8302 of TERMINAL. Replace some of conditional with a call to
8303 EMACS_GET_TTY.
8304 (child_setup_tty): Use struct emacs_tty and its macros instead of
8305 TERMINAL and conditionals.
8306 (old_gtty, old_ltchars, old_tchars, old_lmode): Replaced by...
8307 (old_tty): New variable.
8308 (lmode): Made conditional on BSD4_1, since it's only used by the
8309 BSD4_1 support code now.
8310 (init_sys_modes): Define tty to be a struct emacs_tty, not a
8311 TERMINAL. Use macros to get and set parameters for VMS and
8312 Unices. Set lmode, tchars, and ltchars along with the rest of the
8313 tty state.
8314 (tabs_safe_p): Use EMACS_GET_TTY and EMACS_TTY_TABS_OK instead of
8315 conditionals.
8316 (reset_sys_modes): Use EMACS_SET_TTY to restore the settings from
8317 old_tty, instead of using hairy conditionals.
8318
8319 * sysdep.c (get_screen_size): Neatened; now each system of
8320 reporting the screen size is separated from the rest.
8321
8322 * systerm.h (EMACS_HAVE_TTY_PGRP, EMACS_GET_TTY_PGRP,
8323 EMACS_GET_TTY_PGRP): New macros to handle setting a tty's current
8324 process group.
8325 * sysdep.c (setpgrp_of_tty): Use the above, instead of
8326 conditionals.
8327
8328 * sysdep.c: #include "systerm.h".
8329 #ifs that choose #include files moved from here...
8330 * systerm.h: to here.
8331
8332 * sysdep.c [APOLLO]: We now undefine TIOCSTART not here but...
8333 * systerm.h: here.
8334
8335 * sysdep.c [BROKEN_TIOCGETC]: We now undefine TIOCGETC not here but...
8336 * systerm.h: here.
8337
8338 * sysdep.c [BROKEN_FIONREAD]: We now undefine FIONREAD and FASYNC
8339 not here but...
8340 * systerm.h: here.
8341
8342 * process.c (process_send_signal): Steal 18.58's version of this,
8343 but incorporate the support for VMS signals.
8344
8345 * syssignal.h (EMACS_KILLPG): New macro.
8346 * process.c (process_send_signal): Use it.
8347 * sysdep.c (sys_suspend): Use it.
8348
8349 * syssignal.h (SIGCHLD): If we have SIGCLD and not SIGCHLD, define
8350 SIGCHLD as an alias for SIGCLD.
8351 * sysdep.c: Remove code for above.
8352
8353 * sysdep.c (init_baud_rate): Rather than trying to maintain the
8354 illusion of an abstraction with the OSPEED and SETOSPEED macros,
8355 just use conditionalized code for each terminal kind. This is the
8356 only place we ever need this functionality.
8357 (OSPEED, SETOSPEED): Definitions removed.
8358
8359 1992-02-22 Jim Blandy (jimb@pogo.cs.oberlin.edu)
8360
8361 * sysdep.c: Moved definition of sigunblock macro to ...
8362 * syssignal.h: Here.
8363
8364 * hftctl.c: #include <sys/uio.h> before #including <sys/tty.h>.
8365 (hfqry, hfskbd): Declare these functions as static before all uses.
8366 * unexaix.c (make_hdr, mark_x, copy_text_and_data, copy_sym):
8367 Declare as static before all uses.
8368 Remove extraneous semicolons from #ifdefs of COFF and XCOFF
8369 (unrelocate_symbols): cast the initializers of t_start and d_start
8370 to ulong.
8371
8372 * s/template.h: Include a clause for the HAVE_TERMIO flag.
8373
8374 1992-02-21 Jim Blandy (jimb@pogo.cs.oberlin.edu)
8375
8376 * keyboard.c (read_char): Don't clear Vquit_flag when we catch an
8377 interrupt and return a quit_char; this change (Mar 21 1991) is too
8378 large a change in functionality for the cleanliness it gains.
8379
8380 * pwd.h: Renamed to vms-pwd.h, so that we don't get it by accident
8381 when we #include <pwd.h> with the `-I.' flag given to the
8382 compiler.
8383 * editfns.c [VMS]: Changed to include vms-pwd.h instead of pwd.h.
8384 * fileio.c [VMS]: Same.
8385 * filelock.c [VMS]: Same.
8386 * sysdep.c [VMS]: Same.
8387
8388 * xrdb.c: Changed to #include "vms-pwd.h" if VMS is defined,
8389 instead of including <pwd.h> unconditionally.
8390
8391 * window.c (Fset_window_display_table): Rearranged to make etags
8392 happy.
8393
8394 * xterm.c (XTread_socket): Clear the meta flag from the keypress
8395 event before handing it to XLookupString.
8396
8397 1992-02-20 Jim Blandy (jimb@pogo.cs.oberlin.edu)
8398
8399 * sysdep.c: No need to test #ifdef TIOCGETP before #undefing it.
8400
8401 1992-02-19 Jim Blandy (jimb@pogo.cs.oberlin.edu)
8402
8403 * systime.h: New file.
8404 * dispnew.c: #include "systime.h" to get <time.h> or <sys/time.h>,
8405 whichever is appropriate, instead of using a conditional.
8406 (Fsleep_for, Fsit_for, Fsleep_for_millisecs): Use the systime.h
8407 macros instead of HAVE_TIMEVAL conditionals.
8408 * editfns.c: #include "systime.h" to get <time.h> or <sys/time.h>,
8409 whichever is appropriate, instead of using a conditional.
8410 * fileio.c: Same.
8411 * process.c: Same.
8412 * xterm.c: Same.
8413 (wait_reading_process_input): Use the systime.h macros.
8414 * sysdep.c: #include "systime.h" to get <time.h> or <sys/time.h>,
8415 whichever is appropriate, instead of using a conditional.
8416
8417 * m/template.h: Add description of NO_SOCK_SIGIO.
8418
8419 * sysdep.c (reset_sys_modes): Doc fix.
8420
8421 * keyboard.c (sigfree, sigholdx, sigblockx, sigunblockx,
8422 sigpausex): Definitions moved to syssignal.h.
8423
8424 * dispnew.c: Doc fix.
8425
8426 * systerm.h: New file, to consolidate the system-dependent
8427 terminal-handling trash.
8428 * emacs.c: #include systerm.h.
8429 (main): Use systerm.h macros instead of conditionals.
8430 * dispnew.c: #include systerm.h.
8431 (update_screen): Use EMACS_OUTQSIZE instead of the direct ioctl.
8432 * keyboard.c: #include systerm.h to get the proper FIONREAD header
8433 files, instead of using conditional.
8434
8435 * syssignal.h: Added copyright notice.
8436
8437 * emacssignal.h: Renamed to syssignal.h, to be like sysdep.c.
8438 * data.c, keyboard.c, process.c, sysdep.c, ymakefile: Changed
8439 #include directives.
8440
8441 1992-02-15 Jim Blandy (jimb@pogo.cs.oberlin.edu)
8442
8443 * m/intel386.h: Don't bother casting the argument to the signal
8444 function; the SIGTYPE code in config.emacs ought to take care of
8445 this.
8446
8447 * buffer.c (record_buffer): Doc fix.
8448
8449 1992-02-13 Jim Blandy (jimb@pogo.cs.oberlin.edu)
8450
8451 * s/iris3-6.h: #define HAVE_GETWD.
8452
8453 1992-02-11 Jim Blandy (jimb@pogo.cs.oberlin.edu)
8454
8455 * window.c (Fwindow_at): Accept position as two arguments, not a
8456 cons of numbers.
8457
8458 * window.c (scroll_command): Undo the Jan 31 change; do set the
8459 current buffer to the selected window's buffer. A simple
8460 set-buffer will make these two different.
8461
8462 1992-02-10 Jim Blandy (jimb@pogo.cs.oberlin.edu)
8463
8464 * callproc.c (Fcall_process): Clear synch_process_death and
8465 synch_process_retcode to zero before forking the process.
8466
8467 * process.c (synch_process_death, synch_process_retcode): Don't
8468 declare them extern here.
8469 * process.h (synch_process_death, synch_process_retcode): Declare
8470 them extern here, along with synch_process_alive.
8471
8472 * s/hpux.h: Define CLASH_DETECTION.
8473
8474 * window.c (init_window_once): Don't pass any arguments to
8475 make_window.
8476
8477 * keyboard.c (command_loop_1): Move the label directly_done out of
8478 the else block to just after the else block. This shouldn't
8479 change the semantics of the code, but appears to avoid a compiler
8480 bug on SCO Unix V.3.2v2.
8481
8482 * fileio.c (Fset_umask, Fumask): New functions.
8483 (syms_of_fileio): defsubr them.
8484
8485 * undo.c (Fprimitive_undo): When undoing a deletion with the point
8486 before the deleted text, use Finsert_before_markers so that the
8487 mark will end up on the other side of the text, if it's in the
8488 area at all.
8489
8490 * xdisp.c (redisplay): Properly compute TAB_OFFSET for compute_motion.
8491
8492 * keyboard.c (command_loop_1): Don't check whether cursor is at
8493 edge of screen here.
8494 * dispnew.c (direct_output_forward_char): Check here, and return
8495 zero if it can't be done. And compare the cursor position to the
8496 window boundaries, not the screen boundaries.
8497
8498 1992-02-05 Jim Blandy (jimb@pogo.cs.oberlin.edu)
8499
8500 * screen.c (Fscreen_parameters): If the screen has a minibuffer
8501 window on another screen, return the window, instead of nil.
8502 (store_screen_param): If the value of the minibuffer parameter is
8503 a window, try to make it the surrogate minibuffer window.
8504 (Qminibuffer): New variable, to support above change.
8505 (syms_of_screen): initialize and staticpro it.
8506
8507 * m/tad68k.h: New file.
8508
8509 * fileio.c (Ffile_accessible_directory_p): New function.
8510 (syms_of_fileio): defsubr it.
8511 * callproc.c: #include <errno.h>.
8512 (child_setup): Accept yet another argument, current_dir.
8513 Don't try to report an error here if current_dir is inaccessible;
8514 this function is called in a vforking process. Just have the
8515 process exit with an error code.
8516 (Fcall_process): Make sure that the current directory is okay
8517 here, before we fork. Pass the current_dir argument.
8518 * process.c (create_process): Same here.
8519
8520 * callproc.c (Fcall_process): Don't assign into args[1] when nargs
8521 < 2. Instead, use a new variable called infile. Re-arranged
8522 logic which processes the BUFFER argument.
8523
8524 1992-02-03 Jim Blandy (jimb@pogo.cs.oberlin.edu)
8525
8526 * fileio.c (Fexpand_file_name): Doc fix.
8527
8528 * scroll.c (line_ins_del): Since we're calculating the array from
8529 end to beginning, make the indices go that way, and thus clearly
8530 get the right boundary. This used to ignore the [0] element, and
8531 write in the [screen_height] element, which doesn't exist.
8532
8533 1992-02-03 Richard Stallman (rms@mole.ai.mit.edu)
8534
8535 * xdisp.c (redisplay, try_window_id): Special case for change
8536 at beginning of line, if using selective display.
8537
8538 1992-01-31 Jim Blandy (jimb@pogo.cs.oberlin.edu)
8539
8540 * m/delta88k.h: Added USUAL-OPSYS information, for the
8541 config.emacs script to use.
8542
8543 * window.c (scroll_command): Don't bother setting the current
8544 buffer to the selected window's buffer; this should always already
8545 be the case. Add check just in case.
8546
8547 * indent.c (compute_motion): Don't pack vpos and hpos into one int;
8548 use separate variables hpos/vpos and prev_hpos/prev_vpos.
8549 (vmotion): Use largest int as tovpos arg to compute_motion.
8550
8551 1992-01-30 Jim Blandy (jimb@pogo.cs.oberlin.edu)
8552
8553 * window.c: #include "keyboard.h" to get the Qmode_line and
8554 Qvertical_split declarations.
8555 * ymakefile (window.o): Note that this depends on keyboard.h.
8556
8557 * callproc.c (getenv_internal): Cast the pointer to the variable's
8558 value to a char *; elisp strings are unsigned char *'s. And
8559 valuelen is an int *, not an int **.
8560
8561 * scroll.c (do_scrolling): Document meaning of enable flag in
8562 temp_screen.
8563
8564 1992-01-30 Richard Stallman (rms@mole.gnu.ai.mit.edu)
8565
8566 * m-orion105.h (C_DEBUG_SWITCH, LIBS_DEBUG): Defs deleted.
8567
8568 1992-01-29 Richard Stallman (rms@mole.gnu.ai.mit.edu)
8569
8570 * m-iris4d.h (C_SWITCH_MACHINE): New definition.
8571
8572 1992-01-28 Jim Blandy (jimb@pogo.cs.oberlin.edu)
8573
8574 * term.c: #include "keyboard.h", for Vfunction_key_map.
8575 * keyboard.h: Declare Vfunction_key_map.
8576
8577 * keyboard.h: New file, for external declarations used in
8578 processing keyboard input and events.
8579 * lisp.h (Qmode_line, Qvertical_split, num_input_chars,
8580 poll_suppress_count): Extern declarations moved to keyboard.h.
8581 * keyboard.c: #include "keyboard.h".
8582 (Qvscrollbar_par, Qvslider_part, Qvthumbup_part,
8583 Qvthumbdown_part, Qhscrollbar_part, Qhslider_part,
8584 Qhthumbleft_part, Qhthumbright_part): Moved declarations here from
8585 xfns.c, so they're with the other event heading symbols.
8586 * eval.c: #include "keyboard.h".
8587 * ymakefile (callint.o, keyboard.o, keymap.o, xfns.o, eval.o):
8588 Note that these depend on keyboard.h.
8589
8590 * xfns.c: The above symbols aren't here any more. #include
8591 "keyboard.h" to get them.
8592 (syms_of_xfns): Don't initialize or staticpro them.
8593 * keyboard.h: Added extern declarations for the above.
8594 * callint.c: #include "keyboard.h".
8595
8596 * xfns.c (Vmouse_screen_part): Variable removed, no longer used.
8597 (syms_of_xfns): Changed accordingly.
8598
8599 * xterm.c (Qmouse_moved): Variable removed, no longer used.
8600 (Qmouse_click, Qscrollbar_click): Removed. These are now event
8601 types, in keyboard.c and keyboard.h; they're no longer used in
8602 this way.
8603 (Vmouse_window, Vmouse_screen_part): Extern declarations removed.
8604 (XTread_socket): Don't assign to Vmouse_window or
8605 Vmouse_screen_part.
8606 (syms_of_xterm): Changed accordingly.
8607
8608 * keyboard.h (EVENT_HAS_PARAMETERS, EVENT_HEAD, EVENT_WINDOW,
8609 EVENT_BUFFER_POSN, EVENT_SCROLLBAR_BUTTON, EVENT_WINDOW_POSN,
8610 EVENT_TIMESTAMP, EVENT_HEAD_UNMODIFIED, EVENT_HEAD_KIND): New
8611 macros to recognize and access events that have parameters, like
8612 mouse events.
8613 * keyboard.c (read_char, echo_char, Fmouse_click_p,
8614 read_key_sequence): Use them.
8615 * keymap.c: #include "keyboard.h".
8616 (access_keymap, store_in_keymap, Fsingle_key_description): Use the
8617 macros from keyboard.h.
8618
8619 * keyboard.c (Qevent_kind): New symbol, naming the property of an event
8620 header where we put the event's type.
8621 (Qfunction_key, Qmouse_click, Qscrollbar_click): New symbols, used
8622 to tag different kinds of events.
8623 (Qevent_unmodified): New symbol, naming the property
8624 of an event header where we put an unmodified version of the event
8625 header.
8626 (modify_event_symbol): Take a new argument, SYMBOL_KIND, whose
8627 value should be put on the Qevent_kind property of each symbol we
8628 make. Set the Qevent_unmodified property of each symbol we make.
8629 (make_lispy_event): Pass the appropriate SYMBOL_KIND argument to
8630 modify_event_symbol.
8631 (struct event_head, head_table): New tables, to simplify the
8632 initialization of some of the event heads.
8633 (syms_of_keyboard): Initialize and staticpro the symbols given in
8634 head_table, and put the Qevent_kind and Qevent_unmodified
8635 properties on them. Initialize all of the new symbols listed
8636 above.
8637
8638 * keyboard.c (lispy_function_keys, lispy_mouse_names): Renamed
8639 these from function_key_names and mouse_names, and moved them
8640 outside of make_lispy_event, since static doesn't work on all
8641 systems, and these can't be automatic.
8642
8643 1992-01-28 Richard Stallman (rms@mole.gnu.ai.mit.edu)
8644
8645 * fileio.c (Fwrite_region): Remove Alliant conditional.
8646 * crt0.c: Conditionals for ALLIANT_2800.
8647 * m/alliant-2800.h: New file.
8648 * unexfx2800.c: New file.
8649
8650 * m-mips4.h (C_DEBUG_SWITCH): Alternate defn for GCC.
8651
8652 * sysdep.c [VMS] (sys_write): Special case for fixed-length
8653 with carriage-control characters.
8654
8655 * s/isc2-2.h (NOMULTIPLEJOBS): Undef this.
8656 (LIB_STANDARD): Add -lPW.
8657 (LIBS_SYSTEM): Defined.
8658 * m/intel386.h (signal): Optionally don't define it.
8659
8660 1992-01-27 Jim Blandy (jimb@pogo.cs.oberlin.edu)
8661
8662 * s/template.h: Document the SIGTYPE macro.
8663 * s/bsd4-3.h: Define the SIGTYPE macro.
8664
8665 * data.c (Fsymbol_value): Extract all the innards of this function
8666 into find_symbol_value, except the code which signals an error.
8667 (find_symbol_value): New function.
8668 * lisp.h (find_symbol_value): Declare it.
8669 * keymap.c (current_minor_maps): Use it, instead of a call to
8670 Fboundp and Fsymbol_value per every minor map, for every key
8671 sequence read.
8672
8673 * xterm.c (x_make_screen_visible): Don't raise the window. This
8674 causes the window to pop to the front every time a message
8675 appears, which isn't desirable.
8676
8677 * screen.c (Fselect_screen, Fdelete_screen, Fset_mouse_position,
8678 Fmake_screen_visible, Fmake_screen_invisible, Ficonify_screen,
8679 Fdeiconify_screen, Fscreen_parameters, Fmodify_screen_parameters,
8680 Fset_screen_height, Fset_screen_width, Fset_screen_size,
8681 Fset_screen_position): Use SCREEN_IS_X macro instead of testing
8682 for output_x_window.
8683 * xfns.c (adjust_scrollbars, Fx_store_cut_buffer): Same.
8684
8685 1992-01-25 Jim Blandy (jimb@pogo.cs.oberlin.edu)
8686
8687 * term.c (term_get_fkeys): New function.
8688 (term_init): Call term_get_fkeys.
8689
8690 1992-01-21 Jim Blandy (jimb@pogo.cs.oberlin.edu)
8691
8692 * editfns.c (Ffollchar, Fprevchar): Renamed to Ffollowing_char and
8693 Fprevious_char, for consistency. Renamed Sfollchar and Sprevchar
8694 too.
8695 (syms_of_editfns): Fixed defsubrs.
8696 * lisp.h (Ffollchar, Fprevchar): Renamed extern declarations as above.
8697
8698 * editfns.c (Ffollowing_char): Return 0 at the end of the buffer,
8699 as advertised. Doc fix.
8700 (Fprevious_char): Doc fix.
8701
8702 * config.h-dist: Rearranged to define user parameters before
8703 including the machine and opsystem files, so the files can have
8704 conditionals on the parameters.
8705
8706 1992-01-15 Jim Blandy (jimb@pogo.cs.oberlin.edu)
8707
8708 * keyboard.c (read_key_sequence): When expanding a function key
8709 recognized with Vfunction_key_map, don't scan the expansion for
8710 further function key sequences.
8711
8712 * keyboard.c (Vfunction_key_map): Real declaration moved to
8713 keymap.c; this declaration made extern.
8714 (syms_of_keyboard): DEFVAR and initialization of Vfunction_key_map
8715 moved to keymap.c, since it should be initialized to a keymap, but
8716 we don't want to rely on Qkeymap being initialized now.
8717 * keymap.c (Vfunction_key_map): Variable moved here.
8718 (syms_of_keymap): DEFVAR and init here.
8719
8720 * keymap.c (Fglobal_key_binding): Doc fix.
8721
8722 1992-01-16 Richard Stallman (rms@mole.gnu.ai.mit.edu)
8723
8724 * m-delta88.h: New file.
8725
8726 * window.c (window_scroll): New arg `noerror'.
8727 (scroll_command, Fscroll_other_window): Pass that arg.
8728
8729 1992-01-15 Richard Stallman (rms@mole.gnu.ai.mit.edu)
8730
8731 * process.c (sigchld_handler):
8732 Set synch_process_death and synch_process_retcode.
8733
8734 1992-01-14 Jim Blandy (jimb@pogo.cs.oberlin.edu)
8735
8736 * config.h-dist (SIGTYPE): New macro to help give signal handlers
8737 the correct type.
8738 * s/usg5-3.h (SIGTYPE): Define this to be void.
8739 * dispnew.c (window_change_signal): Declare this to return
8740 SIGTYPE.
8741 * emacs.c (fatal_error_signal): Same.
8742 * data.c (arith_error): Same.
8743 * process.c (create_process_1, send_process_trap,
8744 create_process_sigchld, sigchld_handler): Same.
8745 (create_process): Declare sigchld according to SIGTYPE. This
8746 means we don't have to cast the return value of signal.
8747 * keyboard.c (input_poll_signal, interrupt_signal): Declare these
8748 to return SIGTYPE.
8749 (kbd_buffer_store_event): Include a forward declaration for
8750 interrupt_signal here.
8751 * sysdep.c (struct save_signal): Say the handler returns SIGTYPE
8752 instead of int.
8753 (save_signal_handlers): So we don't have to cast the return value
8754 from signal here.
8755 (sys_suspend): Declare oldsig according to SIGTYPE.
8756 (select): Declare old_trap using SIGTYPE.
8757 (select_alarm, wait_for_termination_signal): Declare these to
8758 return SIGTYPE.
8759
8760 * emacs.c: #include <termios.h>, if we have it.
8761 (fatal_error_signal): If we have termios, use tcgetpgrp to get the
8762 terminal's process group.
8763 * process.c: If we have termios, #include <termios.h> instead of
8764 <termio.h>.
8765 (process_send_signal): If we have termios, use tcgetpgrp to get
8766 the terminal's process group. Have gid default to the child's
8767 pid, to simplify the logic below.
8768 * sysdep.c (flush_pending_output): If we are using termios, make
8769 this function a no-op; since we're not in the tty's pgroup, we
8770 would get a SIGTTIN.
8771
8772 1992-01-13 Jim Blandy (jimb@pogo.cs.oberlin.edu)
8773
8774 * config.h-dist: Removed MAINTAIN_ENVIRONMENT clause.
8775 * callproc.c: Removed support for MAINTAIN_ENVIRONMENT.
8776 (init_callproc): Use getenv instead of egetenv to initialize
8777 Vshell_file_name.
8778 * emacs.c (decode_env_path): Use getenv instead of egetenv
8779 * lisp.h: Removed support for MAINTAIN_ENVIRONMENT.
8780 * process.c: Same.
8781 * ymakefile: Same.
8782 * dispnew.c (init_display): Call getenv instead of egetenv.
8783
8784 * editfns.c (Fgetenv): Function moved...
8785 * callproc.c (Fgetenv): To here, and made to scan
8786 Vprocess_environment instead of using the usual C getenv function.
8787 (getenv_internal): New function.
8788 (egetenv): New function.
8789 * lisp.h: Added extern declaration for egetenv.
8790 * editfns.c (syms_of_editfns): Adjusted.
8791 * callproc.c (syms_of_callproc): Adjusted.
8792
8793 * window.h (minibuf_prompt_width): Declare this extern here, after
8794 minibuf_prompt.
8795 minibuf.c: Don't extern declare it here.
8796 indent.c: As above.
8797
8798 * dispnew.c (buffer_posn_from_coords): If there is a prompt in the
8799 minibuffer, account for its width when computing the buffer
8800 position.
8801
8802 * Makefile (doall): Explicitly export CC to the xmakefile.
8803
8804 * ymakefile: Use /* */ around comments; # confuses cpp.
8805
8806 * ymakefile: Note that ralloc.o depends on mem_limits.h, xterm.h,
8807 and config.h.
8808 Note that vm-limit.o depends on mem_limits.h.
8809
8810 * lread.c (read_escape): Return \a as '\007', not '\a'; the latter
8811 isn't portable, and this routine would have to be revised anyway
8812 to deal with anything other than ASCII.
8813
8814 * keymap.c (current_minor_maps): Rewritten not to use
8815 function-local static variables, to accomodate DGUX.
8816
8817 * xterm.h (UNBLOCK_INPUT): Replace "abort ()" with "(abort (),
8818 0)", to avoid type conflicts on odd systems like Ultrix.
8819
8820 * xrdb.c: Include <sys/types.h>, and declare getuid to return uid_t.
8821
8822 * xdisp.c (redisplay_window): Use SET_PT macro instead of
8823 assigning to point.
8824 insdel.c (insert_from_string): Same.
8825
8826 * xterm.c (XTcursor_to): Declare it static at the function
8827 definition, as well as at the top of the file.
8828 (dumpglyphs): Removed declarations for buf and cp; these variables
8829 are never used.
8830
8831 * lisp.h (NULL): Renamed to NILP, so as not to conflict with
8832 <stdio.h>, and <stddef.h>. All callers changed; all
8833 #undefinitions of NULL removed.
8834
8835 1992-01-12 Jim Blandy (jimb@pogo.cs.oberlin.edu)
8836
8837 * xdisp.c (message): #ifdef NO_ARG_ARRAY, make a local block to
8838 declare the explicit argument array.
8839
8840 * config.h-dist: Instead of reaching the machine- and
8841 system-dependent files through symlinks, replace the strings
8842
8843 1992-01-09 Jim Blandy (jimb@pogo.cs.oberlin.edu)
8844
8845 * keyboard.c (stuff_buffered_input): Don't forget to increment
8846 kbd_fetch_ptr while looping through kbd_buffer.
8847
8848 1992-01-08 Jim Blandy (jimb@occs.cs.oberlin.edu)
8849
8850 * keyboard.c (read_avail_input): Don't forget to fill in the
8851 screen field in events read from the terminal.
8852 * sysdep.c (kbd_input_ast, read_input_waiting): Call
8853 kbd_buffer_store_event with a `struct input_event *', not a
8854 character or a Lisp_Object.
8855
8856 1991-12-21 Jim Blandy (jimb@occs.cs.oberlin.edu)
8857
8858 * bytecode.c (docall): Don't remove protection from the arguments
8859 to Ffuncall.
8860
8861 1991-12-20 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
8862
8863 * keyboard.c (Vfunction_key_map): New variable.
8864 (read_key_sequence): Changed to recognize and substitute bindings
8865 in Vfunction_key_map at any point in the sequence, unless they
8866 conflict with ordinary bindings.
8867 (syms_of_keyboard): DEFVAR, document, and initialize
8868 Vfunction_key_map.
8869
8870 1991-12-19 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
8871
8872 * keymap.c (Vminor_mode_map_alist): New variable, to support
8873 keymaps for minor modes.
8874 (current_minor_maps, Fminor_mode_key_binding,
8875 Fcurrent_minor_mode_maps): New functions.
8876 (Fkey_binding): Rewritten to scan for minor mode bindings too.
8877 (syms_of_keymap): DEFVAR, document, and initialize
8878 Vminor_mode_map_alist, and defsubr the new Ffunctions.
8879 (describe_buffer_bindings): Describe the bindings established by
8880 minor modes too.
8881 * keyboard.c (follow_key): New function, to support...
8882 (read_key_sequence): Completely rewritten to handle scanning an
8883 arbitrary number of keymaps at a time.
8884
8885 * keyboard.c (Fread_key_sequence): GCPRO keybuf, since it can hold
8886 lisp expressions while waiting for input. Don't pass too many
8887 arguments to read_key_sequence.
8888 (command_loop_1): Don't pass too many arguments to read_key_sequence.
8889
8890 * keyboard.c (add_command_key): New function; there are several
8891 places that add keys to this_command_keys, so we make one function
8892 to do the work.
8893 (read_char, Fexecute_extended_command): Call add_command_key
8894 instead of writing out its code again.
8895 (init_keyboard): Allocate this_command_keys according to
8896 this_command_keys_size.
8897
8898 * lread.c (read1): Change comment to use `share-lib' instead of `etc'.
8899 * doc.c (Fdocumentation_property, Fsnarf_documentation): Update
8900 docstring similarly.
8901 (Fsnarf_documentation): Use "../share-lib/" instead of "../etc/"
8902 to find doc file while dumping.
8903 * unexaix.c: Similar doc fix.
8904
8905 * ymakefile (etcdir): Variable removed.
8906 (libsrc, archlib, sharelib): New variables, to take the place of
8907 etcdir.
8908
8909 1991-12-18 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
8910
8911 * ymakefile (CFLAGS): Don't automatically include C_DEBUG_SWITCH
8912 in the value for CFLAGS; the configuration script will take care
8913 of choosing the debugging and optimization switches.
8914
8915 * config.h-dist: Copy the GLYPH definitions from config.h to here.
8916
8917 1991-12-16 Richard Stallman (rms@mole.gnu.ai.mit.edu)
8918
8919 * abbrev.c (Fexpand_abbrev): Run pre-abbrev-expand-hook.
8920 (syms_of_abbrev): Define that variable.
8921
8922 1991-12-13 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
8923
8924 * m/m-*.h: Since the m- is now redundant, renamed all files to
8925 remove it, and changed references within files.
8926 * s/s-*.h: Same business.
8927
8928 1991-12-11 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
8929
8930 * config.h-dist (MULTI_SCREEN): Define this automatically when
8931 we're using a window system.
8932
8933 1991-12-09 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
8934
8935 * m/m-*.h (i.e. all machine config files): Added USUAL-OPSYS
8936 comments to tell the configuration script what sort of operating
8937 system this machine typically runs.
8938
8939 * config.h-dist (MScreenWidth, MScreenLength): Deleted; no longer
8940 used.
8941
8942 1991-12-08 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
8943
8944 * editfns.c (Fcurrent_time): New function, to return the current
8945 time as a number, like the Unix time(3) function. This might be
8946 fun to port.
8947 (syms_of_editfns): defsubr it.
8948
8949 1991-12-05 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
8950
8951 * keymap.c (Vminor_mode_map_alist): New variable.
8952 (current_minor_maps): New function.
8953 (Fcurrent_minor_mode_maps): New function.
8954 (syms_of_keymap): DEFVAR, document, and initialize
8955 Vminor_mode_map_alist, and defsubr Fcurrent_minor_mode_maps.
8956
8957 * callproc.c (Vdata_directory): New lisp variable, for the
8958 directory containing architecture-independent data files.
8959 (init_callproc): Initialize Vdata_directory from PATH_DATA, and
8960 make sure it exists. Renamed execdir to tempdir, because we use
8961 it for both Vexec_directory and Vdata_directory.
8962 (syms_of_callproc): Doc fix for Vexec_directory, new DEFVAR_LISP
8963 for Vdata_directory.
8964 * paths.h-dist (PATH_DATA): New path macro, to initialize
8965 Vdata_directory.
8966 * doc.c (get_doc_string): Use Vdata_directory to find the
8967 docstrings, not Vexec_directory.
8968 * lisp.h (Vdata_directory): New extern declaration, for above
8969 users.
8970 * config.h-dist: Changed references to ../etc to ../share-lib.
8971
8972 * callint.c (Fcall_interactively): For the 'k' interactive code,
8973 cast the type of the symbol name before passing it to error.
8974
8975 1991-12-02 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
8976
8977 * keyboard.c (make_lispy_movement): Move call to
8978 mouse_position_hook from here...
8979 (kbd_buffer_get_event): To here, for symmetry with non-movement
8980 events.
8981
8982 * keyboard.c (kbd_buffer_get_event): Set Vlast_event_screen for
8983 mouse movements, too.
8984
8985 1991-11-27 Jim Wilson (wilson@wookumz.gnu.ai.mit.edu)
8986
8987 * alloca.c (alloca): Add parens to make precedence clearer.
8988
8989 1991-11-26 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
8990
8991 * search.c: need to include sys/types.h because of recent mod to
8992 regex.h.
8993
8994 1991-11-25 Richard Stallman (rms@mole.gnu.ai.mit.edu)
8995
8996 * bytecode.c: BYTE_CODE_METER and BYTE_CODE_SAFE undefined by default.
8997 (METER_CODE): Define same name whether metering or not.
8998 (BinsertN): New byte code.
8999 (Fbyte_code): Improve overflow/underflow error messages.
9000 (docall): Put back previously lost code to remove protection
9001 from funcall args.
9002
9003 1991-11-25 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
9004
9005 * lisp.h (make_array): New extern declaration.
9006
9007 * alloc.c (make_sequence): Renamed to make_array; more accurate.
9008 * keyboard.c (Fread_key_sequence, Fthis_command_keys): Callers fixed.
9009 * macros.c (Fend_kbd_macro): Callers fixed.
9010
9011 1991-11-15 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
9012
9013 * keyboard.c (cmd_error): If an error occurs before somebody has
9014 provided a screen to print it on, print it to stderr and exit
9015 Emacs. Handle batch-mode errors with the same code.
9016 * lisp.h (Qexternal_debugging_ouput): New extern declaration, for
9017 use in cmd_error.
9018
9019 * screen.c (Fscreen_pixel_size, Fset_screen_position): Doc fix.
9020
9021 * window.c (Fwindow_at): Typecheck COORDINATES more thoroughly.
9022
9023 * screen.c (read_mouse_position): Function deleted.
9024 (Fread_mouse_position): Renamed to Fmouse_position, and changed to
9025 use mouse_position_hook.
9026 (syms_of_screen): Adjusted accordingly.
9027 * xfns.c (x_read_mouse_position): Function deleted.
9028
9029 * screen.h (SCREENP): The non-MULTI_SCREEN case used to say this
9030 was false for all objects, but it should be true for the terminal
9031 screen, so make its definition the same as in the MULTI_SCREEN
9032 case.
9033
9034 * screen.h (SCREEN_LIVE_P): New predicate.
9035 (CHECK_LIVE_SCREEN): New type-checking macro.
9036 (Qlive_screen_p): New error-reporting symbol.
9037 * screen.c (Qlive_screen_p): Declare the new symbol.
9038 (Flive_screen_p): New lisp predicate.
9039 (syms_of_screen): Initialize, staticpro, and defsubr the lot.
9040 * dispnew.c (Fredraw_screen): Use CHECK_LIVE_SCREEN.
9041 * screen.c (Fscreen_root_window, Fscreen_selected_window,
9042 Fnext_screen, Fset_mouse_position, Frestore_screen_configuration,
9043 Fmake_screen_visible, Fmake_screen_invisible, Ficonify_screen,
9044 Fdeiconify_screen, Fscreen_visible_p, Fredirect_screen_focus,
9045 Fscreen_focus, Fmodify_screen_parameters, Fset_screen_height,
9046 Fset_screen_width, Fset_screen_size, Fset_screen_position,
9047 Fselect_screen): Use CHECK_LIVE_SCREEN.
9048 * window.c (Fwindow_at, Fcurrent_window_configuration): Use
9049 CHECK_LIVE_SCREEN.
9050 * xfns.c (Ffocus_screen, Fx_pixel_width, Fx_pixel_height): Use
9051 CHECK_LIVE_SCREEN.
9052
9053 * screen.c (Fdelete_screen): Do nothing if SCREEN is already
9054 deleted.
9055
9056 * screen.c (Qscreenp): Staticpro this symbol.
9057
9058 * xfns.c (Fx_create_screen): Doc fix.
9059
9060 * xfns.c (Fx_create_screen): Give the screen a minibuffer if the
9061 'minibuffer parameter is t or nil; nil is the default value for
9062 omitted parameters, and t is intuitive.
9063
9064 1991-11-14 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
9065
9066 * eval.c (specbind): Check that the thing being bound is a symbol.
9067 (funcall_lambda): Signal an invalid-function error if the
9068 arguments are not all symbols.
9069
9070 1991-11-08 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
9071
9072 * screen.c (Fselect_screen): Don't select dead screens.
9073 * print.c (print): Print dead screen objects starting with
9074 "#<dead screen".
9075
9076 * keyboard.c (read_key_sequence): Make sure that the compound
9077 events actually have valid window fields.
9078
9079 * window.c (next_screen_window): Function deleted; Fnext_window
9080 can now do its job properly.
9081 (window_from_coordinates, window_loop): Call Fnext_window instead
9082 of next_screen_window.
9083
9084 * xdisp.c (redisplay): Don't clear out minibuffer windows in the
9085 midst of the screen loop here. That's confusing.
9086 (redisplay_window): Since this needs special code to detect
9087 minibuffers anyway, put it here. And clear all the lines of a
9088 multi-line minibuffer, not just the first one.
9089
9090 1991-11-07 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
9091
9092 * screen.c (Fdelete_screen): When searching Vscreen_list for a new
9093 value for last_nonminibuf_screen, remember that the screens live
9094 in the cars of the list, not the cdrs.
9095
9096 * xterm.c (x_make_screen_visible): Rearranged for clarity.
9097
9098 * xdisp.c (echo_area_display): Rearranged for clarity.
9099
9100 1991-11-06 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
9101
9102 * screen.c (next_screen, prev_screen): New meaning for MINI_SCREEN
9103 argument helps implement the behavior of Fnext_window.
9104 (Fnext_screen): Document the new behavior.
9105
9106 * screen.c (make_minibuffer_screen): Do set has_minibuffer for
9107 minibuffer-only screens.
9108 (Fscreen_parameters): Correctly generate value of minibuffer
9109 parameter using SCREEN_HAS_MINIBUF and SCREEN_MINIBUF_ONLY_P.
9110 * screen.h (SCREEN_HAS_MINIBUF): New predicate.
9111 * dispnew.c (change_screen_size): Use it.
9112 * screen.c (Fdelete_screen): Use it.
9113
9114 * screen.c (Vglobal_minibuffer_screen): Renamed
9115 Vdefault_minibuffer_screen to better describe its significance.
9116 (make_screen_without_minibuffer, syms_of_screen): Adjusted.
9117 * xfns.c (Fx_create_screen): Doc string adjusted.
9118
9119 * xdisp.c (display_mode_line): Make the code which names the
9120 screen after the current buffer not depend on
9121 Vglobal_minibuffer_screen.
9122 * xterm.c (Vglobal_minibuffer_screen): Don't declare this extern
9123 here; it's never used.
9124
9125 1991-11-05 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
9126
9127 * screen.c (Fdelete_screen): Document the fact that surrogate
9128 minibuffer screens may not be deleted.
9129
9130 * screen.h (SCREEN_MINIBUF_ONLY_P): New predicate, true iff the
9131 screen's only window is a minibuffer, aka a "minibuffer screen" or
9132 a "minibuffer-only" screen.
9133 * dispnew.c (change_screen_size): Use it.
9134 * screen.c (Fselect_screen, next_screen, prev_screen,
9135 Fdelete_screen): Use it.
9136 * window.c (Fdisplay_buffer): Use it.
9137
9138 * screen.c (next_screen, prev_screen): Make MINIBUF a lisp
9139 boolean, not a C boolean.
9140 (Fnext_screen, Fdelete_screen): Changed to fit.
9141 * window.c (Fnext_window, Fprevious_window): Changed to fit.
9142
9143 * screen.c (make_screen_without_minibuffer): Error string improvement.
9144
9145 * screen.c (syms_of_screen): Doc grammar fix for Vemacs_iconified.
9146
9147 * screen.c (next_screen): Added some sanity checks, rewrote comments.
9148
9149 * screen.h (Vglobal_minibuffer_screen): Don't declare this. It
9150 shouldn't be used for anything but screen creation.
9151 * window.c (Fminibuffer_window): Vglobal_minibuffer_screen is not
9152 necessarily the screen containing the current minibuffer window.
9153 Also, call choose_minibuf_window; it does much of the work here.
9154 (Fnext_window): Used to insist on looping through all screens if
9155 Vglobal_minibuffer_screen was non-nil. Now includes screen's
9156 minibuffer window according to MINIBUF, no matter what screen it's
9157 on, and ignores Vglobal_minibuffer_screen. Loop termination logic
9158 cleaned up. Clarified doc string.
9159 (Fprev_window): Same problems as Fnext_window, above.
9160 * screen.c (Vglobal_minibuffer_screen): Documentation rewritten to
9161 emphasize that it is only a parameter of the creation of
9162 minibufferless screens, and not an indication of where the
9163 minibuffer is.
9164 (prev_screen): Used to assume that Vglobal_minibuffer_screen was
9165 the only minibuffer-only screen, and would enter an infinite loop
9166 if Vglobal_minibuffer_screen was the only screen in the list.
9167 Rewritten to fix these problems.
9168 * minibuf.c (Vglobal_minibuffer_screen): Don't declare it extern
9169 here; it's not used.
9170
9171 * editfns.c (Fmessage): Don't call Fmake_screen_visible here.
9172 * xdisp.c (message, message1): Call it here, so that Emacs C
9173 functions like Fy_or_n_p make the screen visible too.
9174
9175 1991-11-04 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
9176
9177 * keyboard.c (readable_events): If EVENT_QUEUES_EMPTY, we can
9178 short-circuit and say no. Otherwise, if do_mouse_tracking, we can
9179 short-circuit and say yes. These things let us scan the event
9180 queue less often.
9181
9182 * termhooks.h (mouse_tracking_enable_hook): Replaced by...
9183 (mouse_moved, mouse_position_hook): It turns out that it is
9184 possible and no less efficient simply to tell Emacs if the mouse
9185 has moved since last noticed, and let it ask for the current mouse
9186 position; X's pointer motion hints are a cool thing.
9187 * term.c (mouse_tracking_enable_hook): Replaced by...
9188 (mouse_position_hook): New, simpler interface.
9189 * keyboard.c (struct movement, movement_buf, movement_ptr):
9190 Replaced by...
9191 (mouse_moved): This flag, to be used in conjuction with
9192 mouse_position_hook.
9193 (EVENT_QUEUES_EMPTY): Adjusted to use mouse_moved instead of
9194 movement_buf and movement_ptr.
9195 (tracking_off, Ftrack_mouse): Don't call mouse_tracking_enable
9196 hook.
9197 (note_mouse_position): Moved to xterm.c.
9198 (get_mouse_position): Replaced by mouse_position_hook.
9199 (make_lispy_event): Movement event generation code moved out to a
9200 separate function...
9201 (make_lispy_movement): Create a mouse movement event for the
9202 current mouse position. Use mouse_position_hook instead of
9203 get_mouse_position. Added static declaration for this above...
9204 (kbd_buffer_get_event): Use mouse_moved instead of movement_buf
9205 and movement_ptr. Call make_lispy_movement instead of
9206 make_lispy_event.
9207 (init_keyboard): Initialize do_mouse_tracking. Don't init
9208 movement_ptr and movement_buf.
9209 * xterm.h (STANDARD_EVENT_SET): Add PointerMotionMask and
9210 PointerMotionHintMask to the set.
9211 * xterm.c (pixel_to_glyph_translation): Renamed to
9212 pixel_to_glyph_coords, made static, simplified to take advantage
9213 of constant-size characters, and extended to return the bounding
9214 rectangle of the glyph returned.
9215 (construct_mouse_click): The 'button' field of a button event is
9216 the button number, not a mask; convert it to a mask before
9217 frobbing x_mouse_grabbed. Call pixel_to_glyph_coords properly.
9218 (last_mouse_screen, last_mouse_glyph): New variables, to keep
9219 track of when the pointer has moved to a different glyph.
9220 (note_mouse_position): Moved here from keyboard.c and made static.
9221 Check if the new mouse position is over a new glyph. If it is,
9222 set mouse_moved flag; otherwise, call XQueryPointer to get the
9223 next motion event.
9224 (XTmouse_tracking_enable): No longer needed, since pointer motion
9225 hints let us implement the simpler mouse position hook.
9226 (XTmouse_position): New hook. Call XQueryPointer to get the
9227 current mouse position and request notification about the next
9228 mouse movement. Clear the mouse_moved flag.
9229 (pixel_to_glyph_coords, construct_mouse_click,
9230 note_mouse_position, XTmouse_position): Put these all on the same
9231 page.
9232 (XTread_socket): case MotionNotify, call note_mouse_position with
9233 the right args; don't call pixel_to_glyph_translation.
9234 (x_term_init): Set mouse_position_hook instead of
9235 mouse_tracking_enable_hook.
9236
9237 1991-10-31 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
9238
9239 * xdisp.c (redisplay_window): When trying to avoid starting
9240 display at the end of the buffer: check that startp < ZV, not
9241 startp <= ZV.
9242
9243 1991-10-29 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
9244
9245 * xterm.c (x_do_pending_expose, XTmouse_tracking_enable): Use
9246 SCREEN_IS_X instead of testing output_method directly.
9247
9248 1991-10-26 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
9249
9250 * xdisp.c (redisplay): In the single-screen optimization, always
9251 update the minibuffer's screen as well as the selected screen, no
9252 matter what the echo_area_glyphs are. This makes sure that
9253 messages get cleared after a keystroke.
9254
9255 1991-10-25 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
9256
9257 * callint.c (Finteractive): Doc fix.
9258
9259 * xterm.c (XTmouse_tracking_enable): Block input while changing
9260 the screens' input selection masks.
9261
9262 * window.c (change_window_height): If the window being resized is
9263 the only window of the screen, no size change is possible; make
9264 the delta be zero. Exit without "changing" the sizes of any
9265 windows if the delta is zero.
9266
9267 * alloc.c: Don't bother to include xterm.h.
9268 (Fgarbage_collect): Don't bother to BLOCK_INPUT here,
9269 since we don't cons in the input handler.
9270
9271 1991-10-21 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
9272
9273 * window.c (init_window_once): Set last_nonminibuf_screen to the
9274 initial terminal screen, so that poor Fdisplay_buffer doesn't try
9275 to create a new screen on a terminal.
9276
9277 1991-10-19 Richard Stallman (rms@mole.gnu.ai.mit.edu)
9278
9279 * m-intel386.h (signal): Optionally don't define it.
9280 * s-isc2-2.h (DONT_DEFINE_SIGNAL): Define this.
9281
9282 1991-10-18 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
9283
9284 * scroll.c (line_ins_del): Don't calculate costs off the end of mf
9285 and ov; use < in loop condition, not <=.
9286
9287 * scroll.c (scroll_cost): Logic rearranged.
9288
9289 * dispnew.c (change_screen_size): Change "SCREEN_IS_TERMCAP
9290 (screen) == output_termap" to "SCREEN_IS_TERMCAP (screen)"
9291 (window_change_signal): Use SCREEN_IS_TERMCAP predicate instead of
9292 testing output_method_directly.
9293
9294 1991-10-15 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
9295
9296 * xterm.h (STANDARD_EVENT_SET): Include ButtonReleaseMask in
9297 STANDARD_EVENT_SET.
9298 * xterm.c (XTmouse_tracking_enable): Don't bother or'ing
9299 ButtonReleaseMask with the STANDARD_EVENT_SET.
9300
9301 * dispnew.c (buffer_posn_from_coords): If the coordinates are off
9302 past the end of a line, return them as being *before* the newline,
9303 not after.
9304
9305 * keyboard.c (kbd_buffer_get_event): Set input_pending after
9306 reading the event, no matter what sort of event it is - i.e., move
9307 the assignment to input_pending outside of the event lispifying
9308 conditional.
9309
9310 * keyboard.c (note_mouse_position): Don't record a "new" mouse
9311 position unless it really differs from the last one returned.
9312
9313 * keyboard.c (kbd_buffer_read_char): Renamed to
9314 kbd_buffer_get_event, for consistency with kbd_buffer_store_event.
9315
9316 * window.c (Fwindow_at): modified to take the coordinates as a
9317 pair, not a two-element list, for ease of use and compatibility
9318 with events. Make SCREEN argument second and optional.
9319 (Fcoordinates_in_window_p): Modified to take and return the
9320 coordinates as above, and to distinguish the right border as well
9321 as the mode line.
9322 (window_from_coordinates): Modified to distinguish the right
9323 border as well as the mode line.
9324 * lisp.h (Qmode_line, Qvertical_split): Declare this extern, from
9325 keyboard.c.
9326 * keyboard.c (make_lispy_event): Distinguish a window's right
9327 border from its text area.
9328
9329 * window.c (coordinates_in_window): Make it static.
9330
9331 * window.c (Flocate_window_from_coordinates): Renamed to
9332 Fwindow_at.
9333 (syms_of_window): Adjusted.
9334 * lisp.h: Adjusted to say so.
9335
9336 * screen.c (Fcoordinates_in_window_p, window_from_coordinates,
9337 Flocate_window_from_coordinates): Functions moved to window.c.
9338 (syms_of_screen): Adjusted.
9339 * window.c (Fcoordinates_in_window_p, window_from_coordinates,
9340 Flocate_window_from_coordinates): Here they are.
9341 (syms_of_window): Adjusted.
9342 * lisp.h: Adjusted to say so.
9343
9344 1991-10-14 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
9345
9346 * xterm.c (XTclear_end_of_line): This used to try to get the
9347 cursor out of the way by comparing the line being cleared with
9348 s->cursor_y, which is meaningless; it should have compared it with
9349 s->phys_cursor_y. Changed to just mark the cursor as cleared if
9350 it's in the area we're clearing.
9351
9352 1991-10-13 Richard Stallman (rms@mole.gnu.ai.mit.edu)
9353
9354 * m-intel386.h: Fix typo in #endif.
9355
9356 1991-10-12 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
9357
9358 * callint.c (Fcall_interactively): Added new interactive spec 'K',
9359 for mouse clicks. Added explanation to doc string. Removed 'e'
9360 spec, which didn't work with the new input model anyway.
9361 * keyboard.c (Fmouse_click_p): New function.
9362 (syms_of_keyboard): defsubr it.
9363
9364 * keyboard.c (EVENT_QUEUES_EMPTY): Clarified comment.
9365 (tracking_off): Change "if (!readable_events)" to
9366 "if (!readable_events ())".
9367 (Ftrack_mouse): Doc fix.
9368 (kbd_buffer_read_char): Fix brainos in tossing of unwanted events.
9369 Don't use EVENT_QUEUES_EMPTY to set input_pending; call
9370 readable_events.
9371
9372 1991-10-11 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
9373
9374 * keyboard.c (Qmode_line): New quoted symbol.
9375 (syms_of_keyboard): Initialize and staticpro it.
9376 (make_lispy_event): Use it to indicate when a mouse position is in
9377 a window's mode line.
9378
9379 * xterm.c (XTread_socket): Consider the window to be resized if
9380 either the character or pixel dimensions have changed; this will
9381 catch font size changes.
9382
9383 1991-10-08 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
9384
9385 * process.c (wait_reading_process_input): Removed all the
9386 exceptional condition stuff. Emacs lacks any way to respond to
9387 such a state, and selecting for it without responding to it can make
9388 Emacs loop indefinitely.
9389
9390 * xterm.c (XTread_socket, construct_mouse_click): Make sure that
9391 all enqueued events have their timestamp field set.
9392 * termhooks.h (struct input_event): Doc fix.
9393 * keyboard.c (last_event_timestamp): New variable.
9394 (get_mouse_position, kbd_buffer_store_event,
9395 kbd_buffer_read_char): Make sure to fill in Vlast_event_screen and
9396 last_event_timestamp.
9397 * xselect.c (mouse_timestamp): Don't use this anymore.
9398 (last_event_timestamp): Use this instead.
9399 (Fx_own_selection, Fx_own_clipboard, Fx_get_selection,
9400 Fx_get_clipboard): Use last_event_timestamp instead of
9401 mouse_timestamp.
9402
9403 * xdisp.c (redisplay): Don't pass extra arguments to
9404 update_screen.
9405
9406 * keyboard.c (echo_truncate): Don't call echo here; this results
9407 in extraneous echoing of characters.
9408 (read_key_sequence): After calling echo_truncate, call echo_char
9409 to put the character we just read into the minibuffer, if
9410 appropriate.
9411
9412 * keyboard.c (read_key_sequence): Removed unused argument
9413 no_redisplay.
9414
9415 1991-10-01 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
9416
9417 * xfns.c (x_create_screen): Initialize phys_cursor_x to -1, to
9418 indicate that the screen has no displayed cursor.
9419
9420 * xfns.c (x_create_screen): Let InternalBorderWidth default to 1.
9421
9422 * xterm.c (x_display_bar_cursor): Declare this to be static void.
9423
9424 * xterm.c (XTupdate_begin): Don't turn off the cursor. This makes
9425 ugly flickering. Instead, make it okay for XTins_del_lines to do
9426 so:
9427 * screen.h (struct screen): New field phys_cursor_glyph, keeping
9428 track of the glyph under the currently displayed cursor. Since
9429 current_glyphs is sometimes inaccurate when we want to undraw the
9430 cursor (as when XTins_del_lines is called from do_scrolling), we
9431 can't always get the GLYPH from there.
9432 * xterm.c (x_draw_single_glyph): Take the glyph to draw as an
9433 argument, instead of taking it from the screen matrix.
9434 (x_display_box_cursor): Set and use s->phys_cursor_glyph.
9435
9436 * ymakefile: Note that scroll.o and xmenu.o depend on screen.h.
9437
9438 1991-09-29 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
9439
9440 * keyboard.c (make_lispy_event): When building mouse movement
9441 event, use `m', not `event', dummy.
9442
9443 1991-09-26 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
9444
9445 * screen.c (Fscreen_parameters): Return the proper value for the
9446 'minibuffer parameter for minibuffer-only screens.
9447
9448 * xdisp.c (redisplay_window): When the start position is forced,
9449 constrain it to be within the visible region anyway.
9450
9451 * xterm.c (XTwrite_glyphs): Instead of turning off the cursor
9452 before we write, just notice if we wrote over it.
9453
9454 * xfns.c (x_decode_color): If a screen has two planes, then it is
9455 considered a color screen, and we should look up the color value.
9456
9457 * ymakefile: Include xselect.o and xrdb.o in XOBJ even when
9458 HAVE_X_MENU is not defined.
9459
9460 * fns.c (Fdelete): This used to be named Fdelq; Roland forgot to
9461 change the function name in his August 17 change.
9462 (syms_of_fns): defsubr Fdelete.
9463
9464 1991-09-24 Richard Stallman (rms@mole.gnu.ai.mit.edu)
9465
9466 * alloca.c: Do nothing if alloca is defined as a macro.
9467
9468 1991-09-08 Richard Stallman (rms@mole.gnu.ai.mit.edu)
9469
9470 * m-pfa50.h: New file.
9471
9472 1991-09-06 Richard Stallman (rms@mole.gnu.ai.mit.edu)
9473
9474 * unexec.c: Add conditionals for COFF_ENCAPSULATE.
9475
9476 1991-08-17 Roland McGrath (roland@geech.gnu.ai.mit.edu)
9477
9478 * fns.c (Fdelete): New fn. We have member now; we should have
9479 delete too.
9480
9481 1991-08-16 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
9482
9483 * xfns.c (x_get_arg): Clean bad characters out of the screen name
9484 before using it as a resource key.
9485
9486 * abbrev.c (Fexpand_abbrev): Don't let capitalization go past point.
9487
9488 * sysdep.c (sys_suspend): Don't use & before array name.
9489
9490 * sysdep.c [BROKEN_FIONREAD]: Undefine FASYNC.
9491
9492 * m-tandem-s2.h (START_FILES, LIB_STANDARD): Added.
9493
9494 * s/s-aix3-1.h: Define HAVE_TCATTR.
9495
9496 * xfns.c (Fx_grab_cursor, Fx_ungrab_cursor): Functions removed.
9497
9498 1991-08-15 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
9499
9500 * bytecode.c (Qbyte_code_meter): New.
9501 (Bend_of_line, Bset_marker, Bmatch_beginning, Bmatch_end, Bupcase,
9502 Bdowncase, BRgoto, BRgotoifnil, BRgotoifnonnil,
9503 BRgotoifnilelsepop, BRgotoifnonnilelsepop, BlistN, BconcatN): New
9504 byte codes.
9505 (Fbyte_code): Implemented new codes listed above. Added code to
9506 count how many times a function is called.
9507 (syms_of_bytecode): Initialize and staticpro Qbyte_code_meter.
9508
9509 * xfns.c (x_window): When setting the class hints, use the
9510 screen's name as the res_name.
9511
9512 * xfns.c (x_make_screen_name): New function.
9513 (Fx_create_screen): Use x_get_arg to find screen name; if none has
9514 been specified, use x_make_screen_name; don't set the name again
9515 at the bottom.
9516 (x_get_arg): If SCREEN_NAME is nil, don't pass any class to
9517 Fx_get_resource.
9518
9519 * xfns.c (x_get_arg, x_default_parameter): Take an extra argument
9520 TYPE, instead of encoding the type in the first letter of the
9521 property name.
9522
9523 1991-08-15 Roland McGrath (roland@albert.gnu.ai.mit.edu)
9524
9525 * buffer.c (Fkill_all_local_variables): Don't pass
9526 Fmake_local_variable too many args. Use Fset instead.
9527
9528 1991-08-14 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
9529
9530 * xfns.c (emacs_class): Variable removed.
9531 (EMACS_CLASS): New macro, specifying Emacs class for xrdb use.
9532 Use a class of "Emacs", to be compatible with previous versions.
9533 (Fx_get_resource, x_window, Fx_open_connection): Use macro here.
9534
9535 * buffer.c (Fgenerate_new_buffer): Function moved to
9536 lisp/files.el.
9537 (Fgenerate_new_buffer_name): New function which does only the
9538 name-choosing work Fgenerate_new_buffer used to do.
9539 (Frename_buffer): Added second optional argument DISTINGUISH,
9540 which lets rename_buffer use generate-new-buffer-name if non-nil.
9541 Return the name the buffer was given.
9542 Do nothing if new name is already buffer's name.
9543
9544 * xfns.c (Fx_get_resource): Take third argument CLASS, and require
9545 it to be specified whenever NAME is.
9546 All callers changed.
9547 [not HAVE_X11] (Fx_get_default): Only take the one arg.
9548 [not HAVE_X11] (Fx_get_resource): Toss the second two args.
9549
9550 1991-08-13 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
9551
9552 * xfns.c (Fx_close_current_connection): Add \n to error message.
9553
9554 * keyboard.c (make_lispy_event): Added HP keys into the
9555 function_key_names array.
9556 * xterm.c (XTread_socket): For KeyPressed events, strip the
9557 keysym's vendor-specific bit, and take a shot at fitting it into
9558 the Emacs key numbering.
9559
9560 * screen.c (Vdefault_screen_alist): Definition moved from
9561 screen.el to here.
9562 (syms_of_screen): DEFVAR_LISP and initialize it here.
9563 * screen.h: Declare it here.
9564 * xfns.c (x_get_arg): Use it here.
9565
9566 * screen.c (make_screen): When choosing a buffer for the screen's
9567 root window, shy away from buffers whose names start with a space.
9568
9569 1991-08-11 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
9570
9571 * process.c (exec_sentinel, exec_sentinel_unwind): Move these
9572 above status_notify.
9573
9574 * eval.c (Qinhibit_quit): New variable, to support Aug 5 changes
9575 to process.c.
9576 (syms_of_eval): Initialize and staticpro above.
9577 * lisp.h: added extern declaration for above.
9578
9579 1991-08-10 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
9580
9581 * regex.c (re_search_2): When searching with the fastmap, test for
9582 a translate table outside of the loop, not inside the loop.
9583
9584 1991-08-10 Richard Stallman (rms@mole.gnu.ai.mit.edu)
9585
9586 * fns.c (Fequal): Don't crash on circular structure.
9587 (internal_equal): New subroutine does the recursion.
9588
9589 * print.c (print): Recognize circular car pointers.
9590
9591 1991-08-10 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
9592
9593 * process.c (wait_reading_process_input): Ignore exceptional
9594 conditions on the keyboard input.
9595
9596 1991-08-06 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
9597
9598 * lisp.h: Fiddled with formatting.
9599
9600 * process.c (exec_sentinel_unwind): New function.
9601 (exec_sentinel): Restore the process's sentinel, using an
9602 unwind_protect.
9603
9604 1991-08-05 Richard Stallman (rms@mole.gnu.ai.mit.edu)
9605
9606 * keyboard.c: Doc fix.
9607
9608 1991-08-05 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
9609
9610 * dired.h: Don't include search.h; it doesn't exist.
9611
9612 * process.c (read_process_output, exec_sentinel): Bind
9613 Qinhibit_quit to true and call the filter directly instead of
9614 through a condition-case.
9615 (run_filter): Removed.
9616 (this_filter, filter_process, filter_string): Variables now
9617 unnecessary.
9618
9619 * xfns.c (Fx_get_resource): Take the screen name as an optional
9620 argument and look up resources using the name of the screen as
9621 part of the key.
9622 [not HAVE_X11] (Fx_get_default): Take optional 2nd arg NAME and
9623 ignore it.
9624 (x_get_arg): Take the screen name as an arg, and call
9625 Fx_get_resource with that argument.
9626 (x_default_parameter, x_figure_window_size, x_icon): Pass the
9627 screen's name to x_get_arg.
9628 (Fx_create_screen): Make sure the screen name is either nil or a
9629 string, and pass it to x_get_arg.
9630
9631 * xfns.c (Vx_screen_defaults): Variable removed; such settings
9632 belong in the .Xdefaults file.
9633 (syms_of_xfns): Don't defvar it here.
9634 (Fx_create_screen): Don't use it here.
9635
9636 * keyboard.c (classify_object): #if 0'd function finally removed.
9637 * xterm.c (Qmapped_screen, Qunmapped_screen, Qexited_scrollbar,
9638 Qexited_window, Qredraw_screen): Unused, so removed.
9639 (syms_of_xterm): Don't bother to initialize above.
9640
9641 * xterm.c (init_input_symbols): Renamed to syms_of_xterm, for
9642 consistency.
9643 (x_term_init): Don't call it here.
9644 * xfns.c (syms_of_xfns): Don't call syms_of_xselect here.
9645 * emacs.c (main): Call them here.
9646
9647 * xterm.c (invocation_name): Made this a Lisp_Object, so that its
9648 string value could be relocated properly.
9649 (x_term_init, x_text_icon): Adjusted code appropriately.
9650 (syms_of_xterm): staticpro invocation_name.
9651 * xfns.c (invocation_name): Changed extern declaration, deleted
9652 extra declaration.
9653 (Fx_get_resource): Adjusted code appropriately.
9654
9655 1991-08-04 Richard Stallman (rms@mole.gnu.ai.mit.edu)
9656
9657 * lread.c (read1): Accept #[...] for bytecode object.
9658 * print.c (print): Print them that way.
9659
9660 1991-08-01 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
9661
9662 * fileio.c (Fexpand_file_name): Avoid doing strlen (0).
9663
9664 * editfns.c, filelock.c [VMS]: Use pwd.h from Emacs, not from system.
9665 * fileio.c [VMS]: Likewise. Also include stddef.h, string.h.
9666 Include perror.h only once.
9667 [VMS] (file_name_as_directory, directory_file_name): Remove
9668 assignments from if conditions.
9669 (Fexpand_file_name): Remove excess slash from end of user's home dir.
9670
9671 1991-08-01 Richard Stallman (rms@mole.gnu.ai.mit.edu)
9672
9673 * emacs.c (main): Add SIGIO conditional within AIX conditional.
9674
9675 * xdisp.c (try_window_id): Compute proper position for screen bottom
9676 when all changes are below the screen.
9677 When first computing bp, don't go more than HEIGHT + 1 lines.
9678
9679 1991-07-31 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
9680
9681 * xterm.c (x_destroy_window): If we're destroying the currently
9682 highlighted screen, clear x_highlight_screen.
9683
9684 * xdisp.c (display_text_line, display_string):
9685 Don't go past endp for multi-column chars.
9686
9687 1991-07-28 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
9688
9689 * lread.c (init_lread): If Vload_path was set specially before
9690 dumping, preserve it by default.
9691
9692 * process.c (process_send_signal): Notice and deal if the
9693 TIOCGPGRP ioctl says that the subprocess has no pgrp.
9694
9695 * xdisp.c (try_window_id): Always update window_end_* if successful.
9696
9697 * process.h (subtty): New slot.
9698 * process.c (create_process): Set it.
9699 (process_send_signal): Use it.
9700
9701 * alloc.c (Fmake_rope): Doc fix.
9702 * screen.c (Fselect_screen): Doc fix.
9703 * vms-pp.c: Fix comment.
9704
9705 * keymap.c (Fkeymapp, Fdefine_prefix_command): Doc fixes.
9706
9707 * window.c (window_select_count): No longer static.
9708 (init_window_once): Increment window_select_count, to give each
9709 window a unique use_time.
9710 * window.h (window_select_count): extern this here.
9711 * screen.c (make_screen): Stamp a new screen's selected window
9712 with the proper selection time.
9713
9714 * ymakefile: xselect.o depends on screen.h, xterm.h, and config.h.
9715 xrdb.o depends on config.h.
9716 xterm.o depends on gnu.h.
9717 * xfns.h: File removed - it only declared Vx_send_movement_events.
9718 All includers changed.
9719
9720 1991-07-27 Richard Stallman (rms@mole.gnu.ai.mit.edu)
9721
9722 * keymap.c (Fcopy_keymap): Don't recursively copy maps inside symbols.
9723
9724 1991-07-27 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
9725
9726 * xdisp.c (redisplay): If echo_area_display puts text in a
9727 surrogate minibuffer screen, don't neglect to update it.
9728
9729 * keyboard.c (kbd_buffer_store_event): Make sure
9730 Vlast_event_screen is set properly for quit characters.
9731
9732 1991-07-26 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
9733
9734 * keyboard.c (command_loop_1): pass both arguments to
9735 Fselect_screen.
9736
9737 * screen.c (make_screen): Divide the size by sizeof (Lisp_Object)
9738 before passing it to Fmake_vector.
9739
9740 * screen.h [not MULTI_SCREEN] (SCREEN_SCROLL_BOTTOM_VPOS): fixed
9741 definition.
9742
9743 * screen.c: #include termhooks.h and therefore stdio.h.
9744 (make_screen): Initialize focus_screen member.
9745 (Fdelete_screen): Refuse to delete SCREEN if it is a
9746 surrogate minibuffer for some other screen, not just if it's the
9747 global minibuffer screen.
9748 (Fredirect_screen_focus, Fscreen_focus): New function.
9749 (syms_of_screen): defsubr Sredirect_screen_focus.
9750 * window.c: Don't include termhooks.h or stdio.h.
9751 (Fselect_window): Removed grunge to support minibuffer hack.
9752 * screen.h (struct screen): Added focus_screen member, and
9753 accessor for it.
9754 * alloc.c (mark_object): mark focus_screen member of Lisp_Screens.
9755 * xterm.c (XTscreen_rehighlight): Use the focus_screen member to
9756 decide which screen to highlight.
9757 (XTread_socket): Use focus_screen when enqueuing keystrokes.
9758 * minibuf.c (read_minibuf, read_minibuf_unwind): Shift the
9759 selected screen's focus around appropriately.
9760 * termhooks.h (screen_rehighlight_hook): Doc fix.
9761
9762 * lisp.h (CHECK_IMPURE): Moved definition...
9763 * puresize.h (CHECK_IMPURE): To here.
9764
9765 1991-07-25 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
9766
9767 * dispnew.c (buffer_posn_from_coords): Bufp is broken; don't use it.
9768
9769 * xterm.c (XTscreen_rehighlight): Neatened sloppy logic.
9770
9771 * keyboard.c (read_key_sequence): When truncating a key sequence,
9772 don't forget to put the new keystroke back in this_command_keys.
9773 Do this before calling echo_truncate, and don't call echo_char.
9774
9775 1991-07-24 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
9776
9777 * xterm.c (x_term_init): Initialize x_focus_screen and
9778 x_highlight_screen.
9779
9780 * xterm.c (XTscreen_rehighlight): Handle things correctly when
9781 x_focus_screen is 0.
9782 (XTread_socket): Process EnterNotify and LeaveNotify events with
9783 .focus == 0 properly. For FocusOut events, pass the right
9784 arguments to x_new_focus_screen.
9785
9786 * fileio.c (Finsert_file_contents): Use RETURN_UNGCPRO macro.
9787
9788 * buffer.c (Fbuffer_name): Fix typo in doc string.
9789 (syms_of_buffer): Fix typo in before_change_function name.
9790
9791 1991-07-23 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
9792
9793 * screen.h (CHECK_SCREEN): Define a dummy version of this when
9794 MULTI_SCREEN is not defined.
9795
9796 * sysdep.c (init_signals, sys_signal, sys_sigpause): New functions.
9797 (sys_sigblock, sys_sigunblock, sys_sigsetmask): New functions.
9798
9799 * sysdep.c (_sobuf): Unsigned chars if DGUX.
9800
9801 * sysdep.c [DGUX]: Include file.h.
9802 [DGUX] (sys_siglist): New variable.
9803
9804 * x11term.c (x_init_1) [SYSV_STREAMS]: Don't close the old
9805 descriptor.
9806
9807 * keyboard.c (read_key_sequence): Treat function keys like ascii
9808 characters.
9809
9810 * lread.c (init_lread, syms_of_lread): New names for init_read and
9811 syms_of_read, for consistency.
9812
9813 * emacssignal.h: New file.
9814 * data.c, keyboard.c, process.c, sysdep.c: Include it.
9815 * data.c (arith_error): Use SIGEMPTYMASK.
9816 * keyboard.c (sigfree, sigunblockx): Use SIGEMPTYMASK.
9817 (sigholdx, sigblockx): Use sigmask.
9818 (gobble_input): Use sigblockx instead of sigholdx, so that any
9819 other blocked signals stay blocked during and after the call to
9820 read_avail_input.
9821 * process.c (create_process): Use sigmask.
9822 [FASYNC] (request_sigio): Use sigunblock.
9823 * xterm.c (sigmask): Removed #definition here.
9824 * ymakefile (keyboard.o, process.o, sysdep.o, data.o): Make these
9825 depend on emacssignal.h.
9826
9827 * window.c (Fselect_window): Modify surrogate minibuffer hack to
9828 make the minibuffer the selected window of the selected screen,
9829 AND select the minibuffer window's screen.
9830 * minibuf.c (read_minibuf): If the minibuffer window is on a
9831 different screen, save that screen's configuration too.
9832
9833 * window.c (Fset_window_configuration): Use SCREEN_ accessor to
9834 get at a screen's root window. Removed unused variable
9835 screen_to_select.
9836 (Fcurrent_window_configuration): Take an optional argument SCREEN.
9837 All callers changed.
9838
9839 * window.c (auto_new_screen, Vauto_new_screen_function): Renamed
9840 to pop_up_screens and pop_up_screen_function, to be parallel with
9841 pop_up_windows.
9842 (display_buffer, syms_of_window): Changed appropriately.
9843
9844 * fns.c (Fload_average) [DGUX]: Add code to support DGUX.
9845
9846 * s-dgux.h, m-aviion.h: New files.
9847
9848 * emacs.c (main) [POSIX_SIGNALS]: Call init_signals.
9849
9850 * screen.c (Fdelete_screen): Update last_nonminibuf_screen if
9851 the screen it's currently pointing to gets deleted.
9852
9853 1991-07-22 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
9854
9855 * screen.c (last_nonminibuf_screen): New variable.
9856 (Fselect_screen): Set last_nonminibuf_screen if appropriate.
9857
9858 1991-07-21 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
9859
9860 * screen.h (last_nonminibuf_screen): Added declarations for new
9861 variable.
9862 * minibuf.c (active_screen): Variable removed.
9863 (read_minibuf): Removed code to set and clear active_screen.
9864 * window.c (Fdisplay_buffer): Rewritten to use
9865 last_nonminibuf_screen.
9866
9867 * screen.c (next_screen): Use SCREEN_ accessors instead of ->.
9868
9869 * window.c (Fdisplay_buffer): Removed reference to
9870 Fx_create_screen; we should rely on the auto-new-screen-function
9871 being set to something appropriate.
9872
9873 1991-07-21 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
9874
9875 * keyboard.c (read_key_sequence): Restore the state of
9876 this_command_key_count along with the echoing state.
9877
9878 1991-07-20 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
9879
9880 * xfns.c (Fx_synchronize): New function.
9881 (syms_of_xfns): defsubr it.
9882
9883 * xdisp.c (redisplay): Don't turn on all_windows whenever we're
9884 using a separate minibuffer screen. Even if there is some tweak
9885 necessary, this wasn't it.
9886
9887 * process.c (status_notify): Do not forget to UNGCPRO.
9888
9889 * screen.c (next_screen): Re-work logic to skip minibuffer-only
9890 screens so that it doesn't loop indefinitely, even when the only
9891 screen is a minibuffer-only screen. Skip all screens that are
9892 only minibuffers, not just when they are the global minibuffer
9893 screen.
9894
9895 * xdisp.c (message, message1): If the screen's message buffer
9896 is 0, toss the message; don't check the window system against
9897 the screen output_method.
9898
9899 1991-07-19 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
9900
9901 * keyboard.c (read_key_sequence): When we truncate the echo
9902 buffer because the user has switched screens, re-echo the
9903 character that caused the truncation.
9904
9905 * lread.c (Fload): Change "source newer than ..." message not to
9906 refer to "libraries." What is a "library," anyway?
9907
9908 * window.c: #include "termhooks.h", and therefore <stdio.h> too.
9909 [MULTI_SCREEN] (Fselect_window): If the window being selected is
9910 the selected screen's minibuffer, but it lives on another screen,
9911 don't select that other screen - call the screen_rehighlight_hook
9912 instead.
9913 * termhooks.h (screen_rehighlight_hook): New hook, so that Emacs
9914 can shift the screen highlighting when needed.
9915 * term.c (screen_rehighlight_hook): Define it.
9916 * xterm.c (x_highlight_screen): New variable.
9917 (x_new_focus_screen): Move the rehighlighting code to...
9918 (XTscreen_rehighlight): New function.
9919 (x_display_bar_cursor, x_display_box_cursor): Use
9920 x_highlighted_screen instead of x_focus_screen.
9921 (x_term_init): Initialize screen_rehighlight_hook.
9922 * ymakefile: Make window.o depend on termhooks.h.
9923
9924 * xfns.c (Fx_create_screen): Add mention of
9925 global-minibuffer-screen to docstring.
9926 * screen.c (make_screen_without_minibuffer): Improve error message
9927 displayed when Vglobal_minibuffer_screen is not a proper screen.
9928
9929 1991-07-18 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
9930
9931 * config.h (PURESIZE): Definition moved to...
9932 * puresize.h: New file.
9933 (PURESIZE): Define this here. This will allow people to change
9934 their pure storage allocation without having to recompile most of
9935 Emacs.
9936 * data.c: #include puresize.h, since CHECK_IMPURE needs PURESIZE.
9937 * alloc.c: #include puresize.h.
9938 [HAVE_SHM] (pure_size): New variable, so that XPNTR doesn't depend
9939 on PURESIZE.
9940 [HAVE_SHM] (init_alloc_once): Initialize pure_size here.
9941 * lisp.h [HAVE_SHM] (XPNTR): Defined in terms of pure_size,
9942 instead of PURESIZE.
9943 (pure_size): extern declaration added here.
9944 * ymakefile: Added puresize.h to dependencies for alloc.c and
9945 data.c's .o files.
9946
9947 * emacs.c (main): Doc fix for kludge to scan for -d.
9948
9949 1991-07-17 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
9950
9951 * termhooks.h (struct input_event): #if 0'd out the definition for
9952 the screen_selected event type, and added the stipulation that the
9953 {non_,}ascii_keystroke events specify the screen they happen in.
9954 * xterm.c (x_new_focus_screen): Don't enqueue a screen_selected
9955 event.
9956 (XTread_socket): Calls to x_new_focus_screen in the EnterNotify,
9957 FocusIn, LeaveNotify, and FocusOut event code don't worry about
9958 enqueued events any more.
9959 * keyboard.c (new_selected_screen): Removed - see below.
9960 (Vlast_event_screen): New variable, visible to lisp code.
9961 (echo_length, echo_truncate): New functions.
9962 (readable_events): Removed screen_selected events from the set of
9963 things to skip.
9964 (kbd_buffer_store_event): Don't bother collapsing consecutive
9965 screen_selected events.
9966 (kbd_buffer_read_char): Don't process screen_selected events.
9967 (make_lispy_event): Re-arrange scrollbar events to put the window
9968 whose scrollbar was diddled right after the identifying symbol,
9969 for consistency.
9970 (read_key_sequence): Let the selected screen and the location of
9971 the event affect the keymap used to find its binding.
9972 (Fread_key_sequence): Update docstring.
9973 (syms_of_keyboard): Added DEFVAR_LISP for Vlast_event_screen.
9974
9975 1991-07-15 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
9976
9977 * screen.c (next_screen): If !mini_screen, only exclude the global
9978 minibuffer screen when the minibuffer is its only window.
9979 (Fnext_screen): Make the docstring clearer about what MINISCREEN
9980 means.
9981
9982 * window.c (Fother_window): Indicate that it takes both a required
9983 and optional argument, instead of just one required.
9984
9985 1991-07-15 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
9986
9987 * buffer.c (Fkill_buffer): Rehacked kill-buffer-hooks to use
9988 standard name kill-buffer-hook, and to use set_buffer_internal
9989 instead of Fset_buffer. Use static variable containing symbol
9990 instead of intern.
9991 (syms_of_buffer, init_buffer_once): Qkill_buffer_hook =
9992 'kill-buffer-hook.
9993
9994 1991-07-15 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
9995
9996 * keymap.c (Fsingle_key_description): When describing a listy
9997 object, take the car to find the symbol that heads it, not the cdr.
9998
9999 * dispnew.c (buffer_posn_from_coords): Pass col and line to
10000 compute_motion in the correct order.
10001
10002 * keyboard.c (make_lispy_event): When calculating rows and columns
10003 for mouse clicks and movement events, don't forget to subtract the
10004 position of the window's top left corner before passing them to
10005 buffer_posn_from_coords.
10006
10007 * screen.c (coordinates_in_window): Removed useless test for *y ==
10008 screen_height, and screen_height variable; this would be out of
10009 range of all the windows anyway.
10010
10011 * xdisp.c (message1): Removed code to ignore messages before X has
10012 started up; this issue has hopefully been addressed by the
10013 condition-case in startup.el.
10014
10015 * editfns.c (init_editfns): Make user_name char * instead of
10016 unsigned char *, since that's what most of the usages seem to
10017 want. And when expanding ampersands in AMPERSAND_FULL_NAME mode,
10018 don't try to use user_name as a string; use Vuser_name.
10019
10020 * minibuf.c (assoc_for_completion): New function.
10021 (do_completion): Use that to check for exact match.
10022
10023 * minibuf.c (Ftry_completion): Fix handling of matches aside from
10024 case. If ignoring case, and all else equal, try to preserve the
10025 case of the characters in the input.
10026
10027 * process.c (status_notify): GCPRO tail.
10028
10029 * sysdep.c (creat_copy_attrs, rename_sans_version): Always set
10030 protection to O:REWD when creating file. Added new function
10031 rename_sans_version, which strips the version number from the target
10032 filename, renames the temporary file to this filename, and then
10033 sets the file protection of this new file to be the same as the file
10034 being edited.
10035
10036 * sysdep.c [VMS]: Include pwd.h from Emacs. Use sys/file.h if GCC.
10037 (F_SETFL) [VMS]: Undefine this, to control conditionals.
10038 (getpwnam): Make `full' unsigned.
10039 (creat_copy_attrs): Add some casts.
10040 (sys_access): Change prvmask and CHECKPRIV to use bitfields.
10041 Add some casts, and make dummy an unsigned short int.
10042 Don't use & on constants.
10043 (vmserrstr): Add a cast.
10044 (sys_creat): Define va_count before this function.
10045
10046 1991-07-14 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
10047
10048 * sysdep.c (sys_sleep, input_wait_timeout): Don't use & on constant.
10049 [VMS]: Include pwd.h from Emacs. Use sys/file.h if GCC.
10050 (bzero, bcopy) [VMS]: Don't take address of `length'.
10051
10052 * sysdep.c (sys_suspend): Cast value of `signal' to insulate from
10053 changed value type in sysV.3.
10054
10055 * sysdep.c (child_setup_tty): Turn off erase & kill chars for BSD.
10056
10057 * sysdep.c (discard_tty_input): Use TIOCFLUSH on Apollo.
10058 (init_sys_modes): Avoid TIOCSTART on Apollo.
10059
10060 * sysdep.c: If HAVE_TERMIOS is not defined, define tcgetattr in
10061 terms of the TIOCGETP ioctl.
10062 (init_sys_modes): Handle VSUSP, V_DSUSP if HAVE_TCATTR.
10063 (discard_tty_input, init_baud_rate, child_setup_tty,
10064 init_sys_modes, tabs_safe_p, reset_sys_modes):
10065 Use tcgetattr, and if HAVE_TCATTR, use tcsetattr.
10066
10067 1991-07-13 Jim Blandy (jimb@churchy.gnu.ai.mit.edu)
10068
10069 * s-hpux8.h: New file.
10070 * fileio.c [HPUX8]: Don't include errnet.h.
10071
10072 * unexhp9k800.c (unexec): Local variable i to avoid compiler bug?
10073
10074 * sysdep.c (insque) [WRONG_NAME_INSQUE]: New function.
10075 * s-386ix.h (WRONG_NAME_INSQUE): Define it.
10076
10077 * xdisp.c (message_buf_print): New variable.
10078 (message): Clear it here.
10079 * dispextern.h: Declare it here.
10080 * print.c (printchar, strout): Set it and test it here.
10081
10082 * keyboard.c (command_loop_1): Don't clear last_command when start
10083 macro.
10084
10085 * keyboard.c (read_command_char): Exit at eof if noninteractive.
10086
10087 * indent.c (invalidate_current_column): New function.
10088 * editfns.c (Fwiden, Fnarrow_to_region): Call it.
10089
10090 * process.c (create_process): Use O_NOCTTY whenever defined,
10091 unless USG.
10092
10093 * process.c (Fprocess_send_eof): If using a pipe, close it.
10094 (close_process_descs): Check IN and OUT for nonzeroness.
10095
10096 * process.c (process_send_signal): Use interrupt chars
10097 to send certain signals to the process group.
10098 (TIOCGETC): Undefine this if it is not really usable.
10099
10100 * sysdep.c (discard_tty_input): Do nothing if read_socket_hook.
10101
10102 * xfns.c (x_set_mouse_color): Change the default pointer shapes to
10103 be closer to xterm and emacs 18.
10104
10105 * xterm.c (x_focus_on_screen, x_unfocus_screen): These no longer
10106 call XSetInputFocus, because I think that the X-windows ICCCM
10107 says that only the window manager can do this sort of thing.
10108
10109 * keyboard.c (read_char): When there is an unread command
10110 character, goto reread_first when this_command_key_count is zero,
10111 not when it is >= 0.
10112 (command_loop_1): Reset this_command_key_count only if there is no
10113 prefix argument. This makes echoing of keystrokes work correctly.
10114
10115 1991-07-11 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
10116
10117 * eval.c (Finteractive_p): Changed "! XTYPE (foo) == Lisp_Bar" to
10118 "XTYPE (foo) != bar".
10119
10120 1991-07-11 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
10121
10122 * eval.c (apply1): Don't forget to UNGCPRO before returning.
10123
10124 * xterm.c (XTupdate_begin): Undisplay the cursor here; do_scrolling
10125 will call XTins_del_lines when the screen matrix is inaccurate, so
10126 we cannot undisplay the cursor then, but do_scrolling is always
10127 called within an update.
10128
10129 1991-07-10 David J. MacKenzie (djm@nutrimat)
10130
10131 * termcap.c, tparam.c [!emacs, USG || STDC_HEADERS]: Define bcopy
10132 in terms of memcpy.
10133
10134 1991-07-09 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
10135
10136 * scroll.c (do_scrolling): Use correct termination condition for
10137 loop that uses the glyph pointers for the deleted lines to fill in
10138 the inserted lines.
10139
10140 1991-07-08 Richard Stallman (rms@mole.gnu.ai.mit.edu)
10141
10142 * editfns.c: Doc fix.
10143
10144 1991-07-03 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
10145
10146 * dispnew.c (line_hash_code): Test m->highlight[vpos], not
10147 m->highlight. All lines were getting hash codes of -1, because
10148 the highlight vector was never NULL. Golly.
10149
10150 * process.c (list_processes_1): Handle status of network streams.
10151
10152 1991-07-02 Richard Stallman (rms@mole.gnu.ai.mit.edu)
10153
10154 * doc.c (Fdocumentation_property):
10155 Pass only strings to Fsubstitute_command_keys.
10156
10157 1991-07-02 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
10158
10159 * editfns.c (init_editfns): If neither of the environment
10160 variables are set, DON'T set Vuser_name to Vuser_real_name; it's
10161 supposed to reflect the EFFECTIVE uid.
10162 Get the full name according to Vuser_name if it differs from
10163 Vuser_real_name, not if they are equal.
10164 And pass Vuser_name to getpwnam in that case instead of user_name,
10165 which might be 0.
10166
10167 * lisp.h (RETURN_UNGCPRO): New macro.
10168
10169 * bytecode.c (Fbyte_code): Do not remove GC protection from the
10170 stack when making a function call, because the caller is
10171 responsible for protecting the arguments to a MANY-arg'ed
10172 function.
10173 * eval.c (Fapply): If we use funcall_args, GCPRO it.
10174 And when we call Ffuncall with funcall_args, tell it the correct
10175 length of funcall_args, no matter which branch allocated it.
10176 (Ffuncall): Don't gcpro the arguments before calling
10177 Fgarbage_collect.
10178 (Feval): If we're calling a subr that takes MANY args, don't
10179 UNGCPRO until after we call the subr.
10180 (apply1, call0, call1, call2, call3): GCPRO the arg arrays passed
10181 to Ffuncall and Fapply.
10182 * callproc.c (Fcall_process, Fcall_process_region): Don't GCPRO
10183 the argument array.
10184 * editfns.c (Finsert, Finsert_before_markers): Don't GCPRO the
10185 argument array. Added comment about when GCPROing is not needed.
10186 * mocklisp.c (Finsert_string): Don't GCPRO the argument array.
10187
10188 * keyboard.c (init_keyboard): Handle SIGQUIT with interrupt_signal
10189 on any system that has HAVE_TERMIO, not just on USG systems.
10190
10191 1991-07-01 Richard Stallman (rms@mole.gnu.ai.mit.edu)
10192
10193 * editfns.c (init_editfns): Test that user_name isn't 0.
10194
10195 1991-06-29 Richard Stallman (rms@mole.gnu.ai.mit.edu)
10196
10197 * search.c: Doc fixes.
10198
10199 1991-06-28 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
10200
10201 * keyboard.c (make_lispy_event): Let the posns of mouse clicks and
10202 mouse movements be nil when window_from_coordinates returns a
10203 NON-window, not when it returns a window. Since posn is a lisp
10204 object, don't call make_number when consing up the event.
10205 Don't call make_number on the code member of the event.
10206
10207 * keyboard.c (struct movement): Make the x, y, and time members
10208 Lisp_Objects, since it's easier to convert from a Lisp_Object than
10209 to.
10210 (note_mouse_position): Adjusted for the above.
10211 (make_lispy_event): Removed code to make Lisp_Objects for those
10212 members.
10213
10214 * xterm.c (XTread_socket): When handling LeaveNotify events,
10215 remember that the focus member of the event is true when the
10216 receiving window now has the focus, not when it is losing it.
10217 * xfns.c (Ffocus_screen): Don't signal an error if SCREEN is
10218 already the focus screen.
10219
10220 1991-06-26 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
10221
10222 * alloc.c (Fmake_rope): Use sizeof (GLYPH) instead of 2 to
10223 determine how large the string should be, and changed doc string
10224 to describe ropes as strings of glyphs, not just as strings of
10225 character pairs.
10226 (Frope_elt): Use sizeof (GLYPH) as the element size, instead of
10227 assuming that the elements are two bytes.
10228 * lisp.h (typedef GLYPH): Moved the definition from here...
10229 * config.h (typedef GLYPH): to here, so people can elect to get
10230 better performance if they don't want to use huge fonts.
10231 * xterm.c (dumpglyphs): Use XDrawImageString or
10232 XDrawImageString16, Depending on sizeof (GLYPH).
10233
10234 * data.c (Fsetq_default): Call Fset_default to do the assignments,
10235 not plain Fset.
10236
10237 The following changes were contributed by Jamie Zawinski
10238 <jwz@lucid.com>:
10239
10240 * bytecode.c (Fbyte_code): BYTE_CODE_SAFE and BYTE_CODE_METER
10241 options added.
10242 Added Bmark, Bscan_buffer, Bset_mark to support error-checking for
10243 these obsolete bytecodes.
10244 Added Bunbind_all to support tail-call optimization (not yet
10245 implemented).
10246 Did NOT add the relative branch opcodes that were in the version
10247 of bytecode.c that Jamie sent.
10248 The branching bytecodes now only QUIT if they take the branch.
10249 Btemp_output_buffer_show, Bforward_char, Bforward_word,
10250 Bskip_chars_forward, Bskip_chars_backward, and Bforward_line
10251 passed the wrong number of arguments to their subrs.
10252 Brem, Bbuffer_substring, Bdelete_region, Bnarrow_to_region,
10253 Bstringeqlsign, Bstringlss, Bequal, Bnthcdr, Bmember, Bassq,
10254 Bsetcar, and Bsetcdr passed arguments to the subr in the wrong
10255 order.
10256
10257 1991-06-25 Jim Blandy (jimb@churchy.gnu.ai.mit.edu)
10258
10259 * doc.c (Fdocumentation): Added a QUIT test to the loop that finds
10260 the symbol's function value.
10261
10262 1991-06-24 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
10263
10264 * xterm.c (dumprectangle): Removed call to XFlushQueue here.
10265
10266 * keyboard.c (command_loop_1): Call Fselect_screen to establish
10267 the new selected screen after the key sequence has been read, not
10268 at the top of the loop. This way, a key sequence will happen in
10269 the screen it was typed at, or (to be more precise) the screen its
10270 last character was typed at.
10271
10272 * keyboard.c (fast_read_one_key): Function deleted, since it had
10273 been #if 0'd out a long time ago.
10274 (command_loop_1): Support for fast_read_one_key removed.
10275
10276 * eval.c (Ffuncall): Do GCPRO the arguments, contrary to the May
10277 16 change. The convention appears to be that the MANY-arged
10278 callee must protect its own arguments.
10279 (Fapply): Don't protect funcall_args; they are the caller's
10280 responsibility.
10281 * bytecode.c (Fbyte_code): GCPRO the section of the stack *above*
10282 the args to Ffuncall, since it will be protected again once
10283 Ffuncall returns and therefore should stay valid. If it is not
10284 protected, string relocation may make it invalid.
10285 * mocklisp.c (Finsert_string): GCPRO the arguments, since insert
10286 may cause a garbage collection.
10287 * editfns.c (Finsert, Finsert_before_markers): GCPRO the
10288 arguments, since insert may cause a garbage collection.
10289 * callproc.c (Fcall_process, Fcall_process_region): GCPRO the
10290 arguments, since insert may cause a garbage collection.
10291
10292 1991-06-20 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
10293
10294 * buffer.h (struct buffer_text, struct buffer): small change to
10295 comments.
10296
10297 * search.c (Fmatch_beginning, Fmatch_end): Fixed doc strings to
10298 indicate that non-regexp searches set these too.
10299
10300 * window.c (Fset_window_start): If window is not the selected
10301 window, set windows_or_buffers_changed, so that redisplay will
10302 know that it should redisplay the window.
10303
10304 * callint.c (Finteractive): Changed doc string to indicate that
10305 the interactive prompts are passed through format.
10306
10307 1991-06-20 Roland McGrath (roland@albert.gnu.ai.mit.edu)
10308
10309 * buffer.c (syms_of_buffer): buffer-undo-list doc fix.
10310
10311 1991-06-11 Roland McGrath (roland@albert.gnu.ai.mit.edu)
10312
10313 * data.c (Fsetq_default): Take multiple SYM, VAL args; syntax now
10314 parallel to setq.
10315
10316 1991-05-25 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
10317
10318 * keyboard.c (kbd_buffer_read_char): Fix wait-for-input loop so
10319 that we always process/toss events we don't want to return.
10320
10321 * screen.c (Fselect_screen): Call Ffocus_screen instead of
10322 x_new_selected_screen, which doesn't exist anymore.
10323
10324 * xfns.c (Ffocus_screen): Declare the type of the SCREEN argument.
10325
10326 * xfns.c (Fx_track_pointer): Function #if 0'd out - I don't think
10327 that this is a feature that we want.
10328 (syms_of_xfns): Elide the defsubr for the above.
10329
10330 * xterm.c (x_mouse_screen, x_input_screen): Variable deleted,
10331 since all we really need is x_focus_screen; all other issues are
10332 the realm and responsibility of the window manager.
10333 (x_new_selected_screen): Renamed to x_new_focus_screen, and
10334 modified not to do thiogs inappropriate for signal handlers.
10335 (XTread_socket): Change the handling of EnterNotify, LeaveNotify,
10336 FocusOut and FocusIn events to use x_new_selected_screen, and
10337 ditched code that deals with x_mouse_screen and x_input_screen,
10338 since they don't exist anymore.
10339 (x_display_bar_cursor, x_display_box_cursor): Compare s with
10340 x_focus_screen to see what form the cursor should take.
10341 (x_destroy_window): Don't bother with x_input_screen.
10342 * xfns.c (x_mouse_screen): Removed extern declaration for this.
10343 (Fx_grab_pointer): Confine the pointer to x_focus_screen, not
10344 x_mouse_screen. This is wrong, but will make emacs compile until
10345 this gets fixed.
10346
10347 1991-05-23 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
10348
10349 * keyboard.c (get_input_pending): Don't use trim_events; use
10350 readable_events instead.
10351
10352 * keyboard.c (make_lispy_event): Remove case for window_sys_event,
10353 since that type of event doesn't exist anymore.
10354
10355 * minibuf.c (Fcompleting_read): Document the backup-n argument.
10356
10357 * dispnew.c (init_display): Don't declare alternate_display extern
10358 here. I can't figure out what this feature is, and it's broken.
10359 * emacs.c (main): Don't test alternate_display and put its value
10360 in the environment.
10361
10362 1991-05-22 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
10363
10364 * keyboard.c (struct movement): Made .used an int instead of a
10365 char, since that's more likely to be stored atomically on SPARCS
10366 and similar machines.
10367
10368 * termhooks.h (struct input_event): Removed the window_sys_event,
10369 since it's not used anywhere. Added screen_selected event type.
10370 The event handling code used to change the current buffer,
10371 selected window, and selected screen out from under running lisp
10372 code. Now we wait for a more convenient time by enqueuing an
10373 event.
10374 * xterm.c (XTread_socket): When handling FocusIn events and
10375 EnterNotify events with the focus member set, enqueue a
10376 selected_screen event instead of calling x_new_selected_screen.
10377 * keyboard.c (trim_events): Function deleted; it is a bad idea to
10378 delete events based on the current tracking state, since tracking
10379 might be re-enabled later.
10380 (readable_events): New function which searches the input queue for
10381 readable events.
10382 (tracking_off): Call readable_events to see if we should
10383 redisplay.
10384 (kbd_buffer_read_char): Toss events that we are not interested in.
10385 This is a better place to do it than trim_events, since we know
10386 that do_mouse_tracking will not change. Also, handle
10387 screen_selected events.
10388 (new_selected_screen): New variable, holding the screen which
10389 should become selected the next time through command_loop_1.
10390 (syms_of_keyboard): Initialize and staticpro new_selected_screen.
10391 (command_loop_1): If there is a new screen to be selected, do so.
10392
10393 1991-05-21 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
10394
10395 * xdisp.c (message): Removed the if at the top that did not
10396 display messages if the current screen was a termcap screen and a
10397 window system will be used. The change to startup.el on May 18,
10398 1991 replaces this.
10399
10400 * ralloc.c (check_memory_limits): If the address returned by the
10401 allocator is not representable in a Lisp_Object, call memory_full
10402 instead of printing a very silly "warning" message.
10403
10404 1991-05-19 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
10405
10406 * xterm.c (XTread_socket): Don't overwrite the end of the buffer
10407 with function keys.
10408
10409 * keyboard.c (tracking_off): Update input_pending after reading
10410 all the input.
10411 * process.c: #include "screen.h".
10412 (wait_reading_process_input): Check if any screens have been newly
10413 mapped and need updating.
10414 * xterm.c (XTread_socket): Don't SET_SCREEN_GARBAGED when the
10415 screen is unmapped; do this when is mapped.
10416 (dumprectangle): Don't dump any data for garbaged screens.
10417
10418 1991-05-18 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
10419
10420 * sysdep.c (init_sys_modes): Moved the clauses that set up
10421 interrupt-driven input out of the "if running on a terminal"
10422 clause, since these may need to be set up even when running on a
10423 window system.
10424
10425 1991-05-17 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
10426
10427 * process.c (Fprocess_status): For network connections, return
10428 Qopen and Qclosed instead of Qrun and Qexit, as documented.
10429
10430 * lread.c (read1): Removed code that treated numbers starting with
10431 a zero as octal.
10432
10433 1991-05-16 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
10434
10435 * eval.c (Ffuncall): Don't gcpro the arguments; the caller
10436 protects them.
10437 (Fapply): Gcpro funcall_args, if we use them.
10438
10439 * xterm.c (notice_mouse_movement): #if 0'd this function out.
10440 (XTread_socket): #if 0 the code that fakes motion events for
10441 moving in and out of windows. Also, rearrange the MotionNotify
10442 case to give character rows and columns to note_mouse_position,
10443 not pixel x and y positions. Don't deal with scrollbars here.
10444 * termhooks.h (struct input_event): Removed the mouse_movement
10445 event kind.
10446 * keyboard.c (movement_buf): A new buffer for mouse-movement events.
10447 This is hairier than you might think; see the comments for this
10448 and the comments for note_mouse_position and get_mouse_position
10449 for an explanation of why this is hairy.
10450 (movement_ptr): Where the event handler should store new mouse
10451 locations.
10452 (EVENT_QUEUES_EMPTY): New macro, to be used in the places that
10453 used to compare kbd_fetch_ptr to kbd_store_ptr to see if there
10454 were any events available; this macro tests the mouse movement
10455 buffer too.
10456 (Qmouse_movement): New symbol to head mouse movement events with.
10457 (trim_events): Mouse movement events are no longer in kbd_buffer,
10458 so don't try to trim them.
10459 (tracking_off, kbd_buffer_read_char, get_input_pending): Use
10460 EVENT_QUEUES_EMPTY.
10461 (get_mouse_position): New function to retrieve a mouse position
10462 from the buffer properly, no matter when the event-handling signal
10463 occurs.
10464 (kbd_buffer_read_char): If there is something in kbd_buffer, make
10465 an event for that; if there is a mouse movement, make an event for
10466 that; otherwise, the while loop lied.
10467 (make_lispy_event): Added code to produce mouse movement events.
10468 (init_keyboard): Clear the mouse movement buffer.
10469 (Qmouse_moved, Qredraw_screen, Qmapped_screen, Qunmapped_screen,
10470 Qexited_window, Qexited_scrollbar): Removed extern declarations
10471 for these, since they're no longer generated.
10472 (syms_of_keyboard): Initialize and staticpro Qmouse_movement,
10473 remove DEFVAR_LISP for Vignore_mouse_events.
10474
10475 1991-05-14 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
10476
10477 * lread.c (read1): Correctly parenthesize the shift when parsing
10478 octal numbers, and signal an error if we see a non-octal digit.
10479
10480 1991-05-13 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
10481
10482 * keyboard.c (trim_events): New function, to remove uninteresting
10483 events from the input queue.
10484 (get_input_pending): Call trim_events before checking the queue,
10485 so as not to advertise input we don't care about.
10486 (Ftrack_mouse): A new function to enable mouse tracking for a
10487 block of code.
10488 (tracking_off): A function for unwind_protection; restore the
10489 mouse tracking state to what it was outside of the track-mouse
10490 (syms_of_keyboard): defsubr track-mouse.
10491 (make_lispy_event): Find the window io which the click occurred
10492 when processing mouse_click events, instead of trusting the window
10493 tree in the signal-handling code. Include the buffer position in
10494 the click event.
10495
10496 * xterm.c (construct_mouse_click): Return the click's screen, not
10497 its window, and don't bother updating Vmouse_window. Calculate
10498 the row and column of text-area clicks using
10499 pixel_to_glyph_translation, since we know that those data
10500 structures are alive in signal handlers.
10501
10502 * screen.c (window_from_coordinates,
10503 Flocate_window_from_coordinates): Moved these to window.c, since I
10504 need to be able to call them even if we don't have multi-screen
10505 support.
10506 (syms_of_screen): Removed defsubr for
10507 Flocate_window_from_coordinates.
10508 * window.c (window_from_coordinates, Flocate_window_from_coordinates):
10509 Here they are.
10510 (syms_of_window): Here is the defsubr.
10511
10512 * keyboard.c (note_mouse_position): New function to enqueue
10513 mouse movement events properly.
10514 (current_movement_event): New variable, to support the above. See
10515 its comment for more explanation.
10516
10517 * termhooks.h (struct input_event): Change the .window member to
10518 .screen, make it a struct screen *, and indicate that those events
10519 which used to return windows now return screens. It is unsafe
10520 for the event reader to traverse the window structure, because it
10521 can be called by a signal handler.
10522
10523 1991-05-10 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
10524
10525 * keyboard.c (Vignore_mouse_events): Variable deleted.
10526 (make_lispy_event): For mouse and scrollbar clicks, return the
10527 position as a pair of numbers, not a list of two numbers.
10528
10529 1991-05-09 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
10530
10531 * keyboard.c (do_mouse_tracking): Define this variable, which
10532 controls whether kbd_buffer_read_char will ignore button up and
10533 mouse movement events.
10534 * termhooks.h: Declare do_mouse_tracking here.
10535
10536 * xterm.h (STANDARD_EVENT_SET): New constant, giving the event
10537 mask all the windows use.
10538
10539 * xfns.c (Vx_send_mouse_movement_events): Removed this variable;
10540 XTmouse_tracking_enable and do_mouse_tracking do its job better.
10541 (syms_of_xfns): Remove the DEFVAR_LISP for the above.
10542 (x_window): Don't ask for any pointer motion events or button
10543 release events by default; use the unmodified STANDARD_EVENT_MASK.
10544 The user will ask for them explicitly if he or she wants them.
10545 And don't ask for backing store.
10546
10547 * xterm.c (XTmouse_tracking_enable): New function to
10548 request/unrequest detailed mouse tracking information of the
10549 server, and set the flag used by XTread_socket.
10550 (x_term_init): Set mouse_tracking_enable_hook to
10551 XTmouse_tracking_enable here.
10552 (XTread_socket): Handle mouse movement events by calling
10553 note_mouse_position.
10554
10555 * xterm.c (XTread_socket): For MapNotify events, go ahead and set
10556 the screen's visible flag, so Expose events will work. Clear the
10557 iconified flag.
10558
10559 * editfns.c (Finsert_char): Return immediately if n <= 0, not just
10560 if n < 0, so that the `while' below does not become an infinite
10561 loop.
10562
10563 * term.c (mouse_tracking_enable_hook): Added this variable to
10564 allow emacs to request that the window system start or stop
10565 detailed mouse tracking.
10566 * termhooks.h (mouse_tracking_enable_hook): Declare it here.
10567
10568 * xfns.c: Declare the functions before initializing
10569 x_screen_parm_table to point to them.
10570
10571 * xterm.c (XTread_socket): Don't send Qmapped_screen,
10572 Qunmapped_screen, Qexited_scrollbar, Qexited_window,
10573 Qredraw_screen - these are not features that we want to support.
10574
10575 1991-05-07 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
10576
10577 * editfns.c (Finsert_char): Let strlen be the minimum of n and
10578 256, not the maximum, so we use an n-byte buffer when n < 256, and
10579 a 256-byte buffer many times when n > 256.
10580
10581 1991-05-05 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
10582
10583 * keymap.c (Fkeymapp): Fixed docstring to give the right
10584 definition of a keymap.
10585
10586 1991-05-03 Richard Stallman (rms@mole.gnu.ai.mit.edu)
10587
10588 * data.c (Fcompiled_function_p): New function.
10589
10590 1991-05-03 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
10591
10592 * xfns.c (struct x_screen_parm_table): New type for recording
10593 information about screen parameters.
10594 (x_screen_parms): New table describing the existing parameters.
10595 (init_x_parm_symbols, x_set_screen_param): Use x_screen_parms
10596 instead of a large switch statement.
10597 (x_figure_window_size): Make the default case of the switch call
10598 abort instead of signalling an error, since window_prompting's
10599 value is internally generated.
10600
10601 1991-05-01 Jim Blandy (jimb@churchy.gnu.ai.mit.edu)
10602
10603 * keymap.c (describe_map_tree): GCPRO the maps variable;
10604 Fkey_description calls Fmapconcat, which eventually calls
10605 Ffuncall, which can garbage-collect.
10606
10607 1991-04-28 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
10608
10609 * dispnew.c (buffer_posn_from_coords): Use the information in bufp
10610 to reduce the distance compute_motion must scan, when possible.
10611
10612 1991-04-27 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
10613
10614 * keyboard.c (syms_of_keyboard): Qtop_level is initialized and
10615 staticpro'd in syms_of_data too. Don't staticpro (or initialize)
10616 it again here.
10617
10618 * macros.c (syms_of_macros): Since executing-macro and
10619 executing-kbd-macro are actually the same variable, use
10620 DEFVAR_LISP_NOPRO for the second one so it doesn't get staticpro'd
10621 twice.
10622
10623 * process.c (syms_of_process): Don't staticpro or initialize Qexit
10624 here, since syms_of_eval already does this and it's bad to
10625 staticpro something twice.
10626 (Qexit): Remove declaration here, so there will be a compilation
10627 error if someone rearranges eval.c without fixing the Qexit stuff.
10628 * eval.c (syms_of_eval): Add comment here to say that
10629 syms_of_process cares about Qexit too.
10630
10631 * lread.c (init_obarray): Don't staticpro Vobarray, since the
10632 DEFVAR_LISP in syms_of_read takes care of that.
10633
10634 1991-04-22 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
10635
10636 * window.c (save_window_save): Always get the selected window's
10637 value of point from its buffer, not just when it's also the
10638 current buffer.
10639
10640 * lisp.h (Qdisabled): Declare this here so that the keys_of_*
10641 files can disable the commands they define.
10642 * casefiddle.c (keys_of_casefiddle): Make upcase-region and
10643 downcase-region disabled, by default.
10644
10645 1991-04-16 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
10646
10647 * bytecode.c (PUSH): Alliant can't be bothered to implement the
10648 preincrement operator right, so use a comma.
10649
10650 * print.c (syms_of_print): staticpro Qexternal_debugging_output.
10651
10652 * editfns.c (clip_to_bounds): No longer static - used in window.c.
10653 * window.c (unshow_buffer): Use clip_to_bounds to make sure we
10654 change point to something legal.
10655
10656 1991-04-14 Richard Stallman (rms@mole.gnu.ai.mit.edu)
10657
10658 * sysdep.c: Changes in formatting and comments.
10659
10660 1991-04-12 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
10661
10662 * editfns.c (Fbuffer_substring): Don't call make_string, because
10663 it may cause a compaction and move the buffer, and then copy the
10664 wrong data.
10665
10666 * keyboard.c (read_char): Only GC if we've actually done enough
10667 consing since the last gc to make it worthwhile.
10668
10669 1991-04-11 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
10670
10671 * keymap.c (access_keymap): Canonicalize the order of the
10672 modifiers when you look up a symbol in a keymap, too.
10673 (where-is-internal): If the keymap in which we found the
10674 definition was reached by meta-prefix-char, replace it with the
10675 metized character.
10676
10677 * eval.c (Fcondition_case): Initialize the `handler_list' member
10678 of the catchtag.
10679
10680 * keyboard.c (read_char): reset recent_keys_index when it is
10681 greater than OR EQUAL to the number of elements in recent_keys,
10682 stupid.
10683
10684 * keymap.c (access_keymap): When fetching the car of listy events,
10685 no need to call Fcar_safe - extract the car directly.
10686 * keyboard.c (read_key_sequence): Don't extract the car from listy
10687 events here since 1) it strips information that we need from the
10688 events, and 2) access_keymap will take care of that for us.
10689
10690 * macros.c (Qexecute_kbd_macro): New variable, used by
10691 Fexecute_command.
10692 (syms_of_macros): Initialize and staticpro Qexecute_kbd_macro.
10693 * lisp.h: Add extern declaration for Qexecute_kbd_macro.
10694 * keyboard.c (Fcommand_execute): Add an entry to the command
10695 history for keyboard macros too.
10696
10697 * xterm.c (XTread_socket): If we get a MappingNotify event whose
10698 request == MappingKeyboard, someone has changed the keyboard
10699 mapping, and we should get the new mapping with
10700 XRefreshKeyboardMapping.
10701
10702 1991-04-10 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
10703
10704 * commands.h: Declare last_command_char to be a Lisp_Object, not
10705 an integer (ack).
10706
10707 * cmds.c (Fself_insert_command): If last_command_char is not an
10708 integer, beep.
10709 * minibuf.c (Fself_insert_and_exit): Same thing.
10710
10711 * keyboard.c (format_modifiers): New function, factoring out code
10712 from modify_event_symbol and reorder_modifiers.
10713 (modify_event_symbol): Call format_modifiers instead of doing the
10714 work inline.
10715 (reorder_modifiers): New function to put the modifiers on a
10716 modified symbol in the canonical order.
10717
10718 * keymap.c (modify_event_symbol): Prepend the modifiers so they
10719 appear in the canonical order: `M-C-S-U-'.
10720 (store_in_keymap): If IDX is a symbol, put the modifiers in the
10721 canonical order before storing.
10722
10723 1991-04-09 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
10724
10725 * keymap.c (Flocal_set_key, Fglobal_set_key): When checking types
10726 of arguments, allow KEYS to be a vector or string, not just a
10727 string.
10728 (keymap_table): New static function to replace duplicated code in
10729 access_keymap and store_in_keymap.
10730 (access_keymap): Use keymap_table.
10731 (store_in_keymap): Use keymap_table, and put non-character
10732 definitions in dense keymaps *after* the vector.
10733
10734 * fileio.c (directory_file_name): Remove trailing slashes from
10735 single-letter names like "a/" too. Let slen be the string length,
10736 not one less than the string length.
10737
10738 * keyboard.c (Fset_input_mode): Don't complain that QUIT isn't an
10739 ASCII character if it is nil - it is an optional parameter.
10740
10741 * keymap.c (Faccessible_keymaps): Use meta-characters in the key
10742 sequences returned, carefully making sure that the sequences still
10743 appear in order of increasing length.
10744
10745 1991-04-04 Richard Stallman (rms@mole.gnu.ai.mit.edu)
10746
10747 * vmsfns.c (vms_trnlog): Increased size of str to 256 elements.
10748 (vms_symbol): Increased size of str to 1025 elements.
10749
10750 1991-03-24 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
10751
10752 * dispnew.c (pixel_to_glyph_translation): Moved this function to
10753 xterm.c, since it is specific to X and only called by the X code.
10754 * xterm.c (pixel_to_glyph_translation): Here it is.
10755
10756 1991-03-22 Richard Stallman (rms@mole.gnu.ai.mit.edu)
10757
10758 * s-usg5-4.h (DATA_SEG_BITS): Definition deleted.
10759 * m-intel386.h (DATA_SEG_BITS): Define here if USG5_4.
10760
10761 1991-03-22 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
10762
10763 * keymap.c (Faccessible_keymaps): Produce meta-characters in the
10764 key sequences instead of [meta-prefix-char CHAR] sequences.
10765
10766 1991-03-21 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
10767
10768 * keymap.c (Flookup_key): If KEY is a zero-length array, then
10769 return KEYMAP; this is more algebraically satisfying.
10770
10771 * dispnew.c (Fsit_for): If the time to sit is zero and there is no
10772 input available, then return Qt, not Qnil.
10773
10774 * keyboard.c (read_char): If a quit occurs and we return
10775 quit_char, clear Vquit_flag, so we don't end up returning it again
10776 and again... All lisp code does this manually if they call
10777 read-char with quits inhibited, so it's the right thing to do.
10778
10779 1991-03-20 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
10780
10781 * keyboard.c (read_char): If there is still no input available
10782 after an auto-save, do a garbage-collection.
10783
10784 * undo.c (truncate_undo_list): Always leave at least one undo
10785 record in the undo list. And use sizeof (struct Lisp_Cons), etc.
10786 instead of 8, etc.
10787
10788 * keyboard.c (read_char): When deciding whether to wrap
10789 recent_keys_index back to 0, compare it against
10790 sizeof (recent_keys)/sizeof(recent_keys[0]),
10791 not sizeof (recent_keys).
10792 (quit_char): This can't be anything but an ASCII character, so it
10793 shouldn't be a Lisp_Object. The declaration's comment says why.
10794 (read_char, init_keyboard): Treat quit_char as an int now.
10795 (Fset_input_mode): As above, and signal an error if QUIT is not an
10796 ASCII character.
10797
10798 * callint.c (Fprefix_numeric_value): Use XFASTINT to initialize
10799 val, not raw.
10800
10801 * fileio.c (Fmake_symbolic_link): Don't expand FILENAME; this
10802 would make it impossible to make a link to a relative name.
10803
10804 1991-03-19 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
10805
10806 * keyboard.c (syms_of_keyboard): Removed the DEFVAR_BOOL for
10807 meta-flag. This cannot be a lisp variable because we need to
10808 change the terminal settings whenever this flag changes. Change
10809 this through set-input-mode instead.
10810
10811 1991-03-19 Richard Stallman (rms@mole.gnu.ai.mit.edu)
10812
10813 * keyboard.c (read_avail_input): Raise SIGHUP if no input on AIX.
10814
10815 1991-03-19 Jim Blandy (jimb@churchy.ai.mit.edu)
10816
10817 * keyboard.c (kbd_buffer_store_event, kbd_buffer_read_char,
10818 read_key_sequence, Fexecute_extended_command, Fset_input_mode,
10819 init_keyboard, syms_of_keyboard): Use XSET (var, Lisp_Int, exp)
10820 instead of XSETINT (var, exp) in those cases where var is not
10821 known to already be a Lisp_Int.
10822 * search.c (skip_chars): Same.
10823 * xterm.c (construct_mouse_click, XTread_socket): Same.
10824 * callint.c (Fprefix_numeric_value): Make sure to return a
10825 Lisp_Int even when RAW is a cons whose car is not a Lisp_Int.
10826 * process.c (sigchld_handler): When searching for a process whose
10827 pid is -1, make sure that the pid is an int first, since network
10828 streams are in Vprocess_alist too.
10829
10830 * keyboard.c (syms_of_keyboard): Added DEFVAR_BOOL for
10831 meta-flag. Emacs 18 had this, and I see no entry in the ChangeLog
10832 saying that it was purposefully removed.
10833
10834 1991-03-17 Jim Blandy (jimb@geech.ai.mit.edu)
10835
10836 * keymap.c (Fcopy_keymap, Faccessible_keymaps, describe_map,
10837 append_key): Minor typos and brainos corrected.
10838
10839 * keyboard.c (read_char): Removed code to find the vector in a
10840 (kbd-macro . VECTOR) - style macro, since the macro is represented
10841 by the vector itself.
10842 (read_char_menu_prompt): Changed to correctly recognize the new
10843 dense keymap structures.
10844 (read_key_sequence): Changed code that checks for keymapness to
10845 use get_keymap_1 instead of doing the indirection and keymapness
10846 testing itself.
10847 (Fcommand_execute): A keyboard macro is now a string or a vector.
10848 (Fexecute_extended_command): When expanding this_command_keys,
10849 remember that it is now an array of Lisp_Objects, not chars.
10850
10851 * doc.c (Fdocumentation): Rearranged into a switch statement, and
10852 made vectors macros, not keymaps.
10853
10854 * eval.c (Fcommandp): Removed code to recognize
10855 (kbd-macro . VECTOR) as a command, and added code to recognize
10856 vectors as commands.
10857 * macros.c (Qkbd_macro): Variable deleted.
10858 (syms_of_macros): Initialization of Qkbd_macro removed.
10859
10860 1991-03-14 Jim Blandy (jimb@pogo.ai.mit.edu)
10861
10862 * minibuf.c (keys_of_minibuf): Changed all calls to
10863 initial_define_lisp_key to calls to initial_define_key.
10864
10865 * keymap.c (describe_map): Adjusted to handle the new style of
10866 keymap.
10867
10868 1991-03-14 Richard Stallman (rms@mole.ai.mit.edu)
10869
10870 * fileio.c (Fwrite_region): On VMS, don't try rewriting old version.
10871
10872 1991-03-14 Jim Blandy (jimb@pogo.ai.mit.edu)
10873
10874 * keymap.c (Faccessible_keymaps): Adjusted to handle the new style
10875 of keymap.
10876 (Fwhere_is_internal): Handle the new-style of keymaps.
10877 Additionally, only check to see if a match is shadowed by a
10878 binding in the local keymap when LOCAL_KEYMAP is non-nil, instead
10879 of comparing elt against DEFINITION yet again.
10880 (describe_map_tree): Handle key sequences that are vectors, as
10881 well as those that are strings.
10882
10883 1991-03-13 Jim Blandy (jimb@churchy.ai.mit.edu)
10884
10885 * commands.h, keymap.c (meta_map, control_x_map): Make these
10886 Lisp_Objects, not Lisp_Vectors.
10887 keymap.c (syms_of_keymap): Same.
10888
10889 * keymap.c (Fuse_global_map): There is no longer any reason to
10890 insist that KEYMAP must be a dense keymap; delete the code that
10891 does so.
10892
10893 1991-03-12 Jim Blandy (jimb@wookumz.ai.mit.edu)
10894
10895 * commands.h, lisp.h: Changed global_map and current_global_map to
10896 be Lisp_Objects, not Lisp_Vectors.
10897 keyboard.c (read_key_sequence): Same.
10898 keymap.c (Fkey_binding, Fglobal_key_binding, Fglobal_set_key,
10899 Fuse_global_map, Fwhere_is_internal, describe_buffer_bindings,
10900 syms_of_keymap): Same.
10901
10902 * keymap.c (Fdefine_key): Braino: increment idx and clear metized
10903 flag even when the element of the key sequence isn't a character.
10904 (Flookup_key): Fix same braino.
10905
10906 1991-03-10 Jim Blandy (jimb@wookumz.ai.mit.edu)
10907
10908 * keymap.c (get_keyelt): Use access_keymap to resolve indirect
10909 entries, instead of duplicating its code.
10910 (Fcopy_keymap): Handle the new keymap structure.
10911
10912 1991-03-09 Richard Stallman (rms@mole.ai.mit.edu)
10913
10914 * eval.c (struct catchtag): New field handlerlist.
10915 (internal_catch, internal_condition_case): Set that field.
10916 (unbind_catch): Use it.
10917
10918 1991-03-08 Richard Stallman (rms@mole.ai.mit.edu)
10919
10920 * m-intel386.h (signal): Maybe define if USG.
10921
10922 * keyboard.c (echo_char): Don't have space at end of echobuf.
10923
10924 1991-03-07 Jim Blandy (jimb@albert.ai.mit.edu)
10925
10926 * keyboard.c (syms_of_keyboard): Initialize mouse_syms, instead of
10927 doing func_key_syms twice. Don't deal with scrollbar_syms, since
10928 it doesn't exist.
10929
10930 1991-03-06 Jim Blandy (jimb@pogo.ai.mit.edu)
10931
10932 * keymap.c (access_keymap, store_in_keymap): Changed to handle the
10933 new style of keymaps.
10934
10935 * fns.c (Fassq, Fcopy_alist): Changed docstring to promise to
10936 ignore elements of LIST that are not conses. See access_keymap
10937 and copy_keymap for a cheap excuse.
10938
10939 1991-03-06 Richard Stallman (rms@mole.ai.mit.edu)
10940
10941 * s-vms.h (DATA_START): Remove `+ 512'.
10942
10943 1991-03-05 Jim Blandy (jimb@spiff.ai.mit.edu)
10944
10945 * keymap.c (Fmake_keymap): Rewritten to construct the
10946 new dense keymap structure: (keymap VECTOR . ALIST). Docstring
10947 adjusted accordingly. This means that the keyboard macro
10948 stupidity (see Feb 27, keyboard.c) is no longer needed.
10949
10950 1991-03-03 Richard Stallman (rms@mole.ai.mit.edu)
10951
10952 * sysdep.c (MEMORY_IN_STRING_H): New compilation flag.
10953 * s-isc2-2.h: New file.
10954
10955 1991-02-27 Jim Blandy (jimb@churchy.ai.mit.edu)
10956
10957 * macros.c (Qkbd_macro): New variable, to hold the symbol
10958 `kbd-macro', which we use to tag vector-style keyboard macros.
10959 (syms_of_macros): Initialize and staticpro Qkbd_macro.
10960
10961 * eval.c (Fcommandp): Recognize the new keyboard macros.
10962
10963 * keyboard.c (Fcommand_execute): A keyboard macro is now a string,
10964 or a cons whose car is the symbol `kbd-macro' and whose
10965 cdr is a vector of events; previously, macros were strings or
10966 vectors, but that makes it difficult to tell the difference
10967 between macros and dense keymaps.
10968 (read_char): Handle the new macros correctly, and re-allocate
10969 this_command_keys correctly.
10970
10971 1991-02-26 Richard Stallman (rms@mole.ai.mit.edu)
10972
10973 * s-vms.h (calloc): Define like malloc, etc.
10974
10975 1991-02-26 Jim Blandy (jimb@spiff.ai.mit.edu)
10976
10977 * xterm.c (XTread_socket): Move enter_timestamp outside of the
10978 function; static variables inside functions don't always work in
10979 Emacs.
10980
10981 * editfns.c (in_accessible_range): Deleted - insufficently
10982 general.
10983 (clip_to_bounds): New function, much like in_accessible_range,
10984 except that the upper and lower bounds are arguments.
10985 (goto_char, save_restriction_restore): Rewritten to use
10986 clip_to_bounds instead of in_accessible_range.
10987
10988 1991-02-25 Jim Blandy (jimb@pogo.ai.mit.edu)
10989
10990 * keymap.c (initial_define_lisp_key): Turn KEY into a Lisp_Int
10991 before passing it to store_in_keymap.
10992
10993 * buffer.c (reset_buffer_local_variables): Don't try to initialize
10994 the buffer's mouse_map and function_key_map fields, since they
10995 don't exist anymore.
10996
10997 * macro.c (kbd_macro_buffer, kbd_macro_ptr, kbd_macro_end): These
10998 are now all pointers to Lisp_Objects instead of chars.
10999 (Fend_kbd_macro): Use make_sequence.
11000 (store_kbd_macro_char): Argument c is now a Lisp_Object. Change
11001 call to xrealloc to ask for Lisp_Objects instead of chars. Set
11002 kbd_macro_end to the same place in the new buffer as it was in the
11003 old one, not to the end of the buffer.
11004 (Fexecute_kbd_macro): Allow MACRO to be a string or a vector.
11005 (syms_of_macros): Allocate Lisp_Objects instead of chars for
11006 kbd_macro_buffer.
11007
11008 * alloc.c (make_sequence): New function, useful to keyboard.c and
11009 macro.c.
11010 * keyboard.c (Fread_key_sequence): Use make_sequence.
11011 (Fthis_command_keys): Use make_sequence.
11012
11013 1991-02-24 Jim Blandy (jimb@churchy.ai.mit.edu)
11014
11015 * keymap.c (Fwhere_is): If the command can't be found, the message
11016 is now "foobie is not on any key.", instead of "... any keys.".
11017
11018 * keyboard.c (input_poll_signal): Pass 0 to read_avail_input,
11019 instead of `&junk'. Removed variable `junk'.
11020 (command_loop_1): Updated to handle the unified function key/mouse
11021 event/keystroke arrangement.
11022 (Finput_pending_p): Removed vestiges of code to handle
11023 unread_input_char value of -1, since this doesn't happen anymore.
11024 (read_char): Adapted to handle lispy events.
11025 (read_char_menu_prompt): Allocate `menu' buffer using alloca,
11026 instead of a variable-sized array, which is gcc-specific.
11027 (Frecent_keys): Return the most recent "keystrokes" as a vector,
11028 to accomodate lispy events.
11029 (Fset_input_mode): Accomodate non-characters as quit keys. If
11030 this is a bad thing, init_sys_modes will tell us.
11031 (init_keyboard): this_command_keys is now an array of
11032 Lisp_Objects; adjust the amount of storage we request to hold it.
11033 Remember that quit_char can be any keystroke.
11034 (syms_of_keyboard): last_command_char, last_input_char, help_char,
11035 menu_prompt_more_char and meta_prefix_char are now DEFVAR_LISPs
11036 instead of DEFVAR_INTs.
11037
11038 1991-02-24 Richard Stallman (rms@mole.ai.mit.edu)
11039
11040 * process.c (wait_reading_process_input): Use NETCONN_P.
11041
11042 1991-02-23 Jim Blandy (jimb@pogo.ai.mit.edu)
11043
11044 * keyboard.c: (recent_keys, this_command_keys,
11045 menu_prompt_more_char, help_char, last_command_char, quit_char,
11046 last_input_char): Changed to Lisp_Objects, so we can use function
11047 keys for them.
11048 (Vglobal_function_map): Variable deleted.
11049 (echo_char): Echo function keys too. The argument C is now a
11050 Lisp_Object instead of a char.
11051 (Fread_key_sequence): Removed sludge to handle window events
11052 specially, and added sludge to handle sequences with
11053 non-characters in them.
11054 (classify_object): Elided, since this should go away soon.
11055 (read_key_sequence): Adapted to look up symbols in keymaps,
11056 just like characters.
11057
11058 1991-02-23 Richard Stallman (rms@mole.ai.mit.edu)
11059
11060 * process.c (send_process): Handle EAGAIN like EWOULDBLOCK.
11061
11062 1991-02-22 Jim Blandy (jimb@pogo.ai.mit.edu)
11063
11064 * doc.c (substitute_command_keys): Call describe_map_tree with
11065 only three arguments, since the CHARTAB arg has been disposed of.
11066
11067 * keymap.c (Fcurrent_global_map, Fuse_local_mouse_map): Functions
11068 deleted, since the mouse maps are no longer separate from the key
11069 maps.
11070 (append_key): New function, which handles tacking a single
11071 keystroke on the end of a key sequence, promoting strings to
11072 vectors when needed.
11073 (Faccessible_keymaps): Adjusted to return vectors for key
11074 sequences, when necessary.
11075 (Fkey_description): Removed stuff to handle mouse buttons and
11076 other things specially, since this work will go into
11077 Fsingle_key_description.
11078 (Fsingle_key_description): SIMPLIFIED to handle everything
11079 correctly! Jeepers!
11080 (Fwhere_is_internal): Scan the assoc-list at the end of dense
11081 keymaps, and construct strings or vectors.
11082 (where_is_string, describe_buffer_bindings): Simplified by
11083 deleting code to handle mouse button bindings specially.
11084 (describe_map_tree): Removed CHARTAB argument; this was
11085 a kludge to print out mouse events nicely, and is no longer
11086 necessary. Nobody was using it anyway.
11087 (describe_map): Removed ugly hack to handle mouse buttons
11088 specially, added code to describe alists on dense keymaps, and
11089 removed CHARTAB argument.
11090 (describe_alist): Made to handle bindings of symbols as well as
11091 characters. Removed CHARTAB argument.
11092 (describe_vector): Removed CHARTAB argument, allocated KLUDGE
11093 outside of loop and GCPRO'd it.
11094 (syms_of_keymap): Remove last vestiges of Vglobal_mouse_map,
11095 Vmouse_button_names, Suse_local_mouse_map,
11096 Scurrent_local_mouse_map.
11097
11098 * buffer.h (struct buffer): Removed mouse_map and function_key_map
11099 members, since they are now handled by the keymap element.
11100
11101 * keyboard.c (syms_of_keyboard): Change initialization of
11102 meta_prefix_char, since it's now a Lisp_Object.
11103
11104 * keymap.c (Fkeymapp): Rewrote this to use get_keymap_1; now it's
11105 a one-liner instead of a 13-liner.
11106 (DENSE_TABLE_SIZE): Created new constant for the # of lookup-style
11107 entries in a dense keymap, and the index of the map's assoc list.
11108 Used it where appropriate.
11109 (Fcopy_keymap): Notice that 129'th element in dense keymaps.
11110 (Fdefine_key, Flookup_key): Reworked to deal with vectors of
11111 symbols and characters as well as strings for key sequences.
11112 (meta_prefix_char): Changed from an int to a Lisp_Object.
11113
11114 1991-02-21 Richard Stallman (rms@mole.ai.mit.edu)
11115
11116 * fileio.c (report_file_error): Don't downcase "I/O".
11117
11118 1991-02-20 Jim Blandy (jimb@geech.ai.mit.edu)
11119
11120 * keymap.c (access_keymap): Allow IDX to be any sort of bindable
11121 event, and deal with the extended keymaps. IDX is now a
11122 Lisp_Object instead of an int, obviously.
11123 (store_in_keymap): Allow IDX to be any sort of bindable event, and
11124 deal with the extended keymaps. IDX is now a Lisp_Object.
11125
11126 * xterm.c (construct_mouse_click): Add code to set the up_modifier
11127 bit for ButtonRelease events.
11128
11129 * keyboard.c (kbd_buffer_store_event): Use XFASTINT and XSETINT to
11130 access event->code, since it's a Lisp_Object.
11131 (kbd_buffer_read_char): Golly, perhaps we should increment
11132 kbd_fetch_ptr to remove the event we just read from the queue.
11133 (modify_event_symbol): Stupid fixes: correctly look up unmodified
11134 symbols when cache entry has a modified symbol vector. And, when
11135 first adding the modified symbol vector, copy the old slot value
11136 into it correctly.
11137
11138 1991-02-19 Jim Blandy (jimb@pogo.ai.mit.edu)
11139
11140 * keyboard.c (command_loop_1): #if 0 the block of code which
11141 handles mouse events and other lispy events specially, since I
11142 hope it will go away soon.
11143
11144 * dispnew.c (Fsleep_for_millisecs): Pass all four arguments to
11145 wait_reading_process_input, instead of just the first two.
11146
11147 * process.c (wait_reading_process_input): Remove support for
11148 only waiting for mouse input, since that has been superceded.
11149 This removes X dependencies from process.c, and eliminates some
11150 references to code that should only exist when using X10.
11151
11152 * keyboard.c (mouse_moved_symbol, redraw_screen_symbol,
11153 mapped_screen_symbol, unmapped_screen_symbol,
11154 exited_window_symbol, exited_scrollbar_symbol): Renamed to
11155 Qmouse_moved, Qredraw_screen, Qmapped_screen, Qunmapped_screen,
11156 Qexited_window, Qexited_scrollbar, just as done in xterm.c.
11157 (classify_object): Removed code to look up a function key in the
11158 global and local function key keymaps, since this will be done
11159 more generally.
11160 (Fexecute_mouse_event): Elided this function with a #if 0; I
11161 think it will go away once the more general keymap stuff is
11162 implemented, but I'm not sure.
11163 (syms_of_keyboard): Removed defsubr for Sexecute_mouse_event.
11164 (where_is_string, describe_buffer_bindings, syms_of_keymap):
11165 Elided code to handle mouse button bindings specially; I hope this
11166 will go away.
11167
11168 * lread.c (syms_of_lread): Change defsubr for eval-buffer to
11169 defsubr for eval-current-buffer.
11170
11171 * keymap.c (syms_of_keymap): defvar for Vglobal_function_map
11172 removed, since that variable has disappeared.
11173
11174 * xterm.c (x_func_key_to_sym): Removed entirely, since we no
11175 longer convert X keycodes to symbols in this section of code.
11176 (x_convert_modifiers): New function to turn the X modifier bits
11177 into struct input_event modifier bits.
11178 (encode_mouse_button): removed, since this work isn't done here
11179 anymore.
11180 (Vx_send_mouse_movement_events): Add an extern declaration for
11181 this.
11182
11183 * termhooks.h: Only define struct input_event if the module
11184 has previously #included lisp.h; this avoids forcing simple modules
11185 like cm.c to #include lisp.h.
11186
11187 * term.c: #include "lisp.h" before #including "termhooks.h", since
11188 the latter uses Lisp_Objects now.
11189
11190 * xfns.c (syms_of_xfns): Delete the defsubr for Sx_window_id,
11191 since Fx_window_id is gone.
11192
11193 * xterm.c (construct_mouse_event): Construct a struct input_event
11194 instead of a lispy event.
11195
11196 * screen.c (coordinates_in_window): Added explanatory comment.
11197 (window_from_coordinates): Change PART, whose returned values are
11198 dependent on X-windows, to be called MODELINE_P, with appropriate
11199 new return values.
11200 * xterm.c (notice_mouse_movement): Handle the X-windows dependent
11201 stuff that used to be in window_from_coordinates here instead.
11202 (XTread_socket): Modified to produce struct input_events
11203 instead of lispy events.
11204
11205 1991-02-18 Jim Blandy (jimb@pogo.ai.mit.edu)
11206
11207 * termhooks.h: Added up_modifier to the enum for modifier bits;
11208 this bit will be applied to mouse events.
11209 (struct input_event): Changed specification of non_ascii_keystroke
11210 events to send the function key number instead of a symbol.
11211 * keyboard.c (modify_event_symbol): Re-arranged to work well
11212 with function key/mouse button numbers instead of symbols.
11213 And if (MODIFIERS & up_modifer), prepend "U-" to the name of the
11214 symbol being constructed.
11215 (make_lispy_event): Use the new modify_event_symbol.
11216
11217 * xterm.c (notice_mouse_movement): Adjusted this function to
11218 work with a struct input_event instead of producing an
11219 s-expression.
11220
11221 * xterm.c, xfns.c: Made all references to x_mouse_queue,
11222 x_expose_queue, and the functions which manipulate them
11223 conditional on having X10, since only X10 code ever places
11224 anything in these queues.
11225
11226 1991-02-15 Jim Blandy (jimb@pogo.ai.mit.edu)
11227
11228 * termhooks.h: Define struct input_event, to represent input
11229 events while they sit in the keyboard input buffer. Using lisp
11230 objects to represent input events is a bad idea because the
11231 routines which enqueue them can be called from signal handlers,
11232 and therefore should not cons.
11233
11234 * keyboard.c: (kbd_buffer, kbd_fetch_ptr, kbd_store_ptr): Change
11235 these to be of type `struct input_event *'.
11236 (kbd_buffer_store_event): Manipulate struct input_events instead
11237 of lisp objects.
11238 (make_lispy_event): New function, to construct a lisp-style event
11239 corresponding to a particular struct input_event.
11240 (modify_event_symbol): New function, to add modifier prefixes to a
11241 symbol, and look the new symbols up quickly if they've already
11242 been created.
11243 (kbd_buffer_read_char): Call make_lispy_event to turn the thing
11244 in the keyboard buffer into the form that read_char is expecting.
11245 (Qwith_modifier_keys): Define this new symbol variable.
11246 (syms_of_keyboard): Initialize and protect Qwith_modifier_keys.
11247
11248 * xterm.c (init_input_symbols): Rearranged the code that produces
11249 the func_key_syms array.
11250 (x_func_key_to_sym): Simplified, since more will be handled in
11251 make_lispy_event.
11252 (XTread_socket): When handling KeyPress events, don't pass the
11253 state of the modifier keys to x_func_key_to_sym, since it doesn't
11254 care any more.
11255
11256 * sysdep.c (kbd_input_ast, end_kbd_input, read_input_waiting):
11257 Rename kbd_buffer_store_char to kbd_buffer_store_event.
11258
11259 * keyboard.c (stuff_buffered_input): Since the keyboard buffer
11260 holds lisp objects, only stuff entries that are Lisp_Ints, and
11261 XINT them before passing them to stuff_char.
11262 (kbd_buffer_store_char): Make this not a static function, since
11263 sysdep.c calls it. And rename it kbd_buffer_store_event.
11264
11265 * keyboard.c (kbd_buffer, kbd_fetch_ptr, kbd_store_ptr): Made these
11266 variables static, to document the fact that they're only used
11267 within keyboard.c.
11268
11269 1991-02-13 Jim Blandy (jimb@pogo.ai.mit.edu)
11270
11271 * xterm.c (init_input_symbols): remove the `xk-' prefix from all
11272 the function key symbols, since they're going to be used for
11273 function keys from all sorts of terminals, not just when running
11274 under X.
11275
11276 * lread.c (read_escape): Removed support for mouse button escapes
11277 (\S-, \U-, \C- applied to digits), because they're being replaced
11278 by something more rational.
11279
11280 1991-02-09 Richard Stallman (rms@mole.ai.mit.edu)
11281
11282 * buffer.c: Doc fix.
11283
11284 * sysdep.c (dup2): Rewrite of non-F_DUPFD case.
11285
11286 1991-02-08 Richard Stallman (rms@mole.ai.mit.edu)
11287
11288 * m-intel386.h (LOAD_AVE_CVT): Add extra parens.
11289 * s-usg5-4.h (LIBX11_SYSTEM): #undef it.
11290
11291 1991-02-07 Richard Stallman (rms@mole.ai.mit.edu)
11292
11293 * s-esix.h: New version from kayvan.
11294 Adds HAVE_X11 conditional, NEED_PTEM_H, USG_SYS_TIME, USE_UTIME,
11295 LIBS_DEBUG; removes #undef sigsetmask, LIBS_SYSTEM, ESIX,
11296 MISSING_UTIMES.
11297
11298 1991-02-06 Richard Stallman (rms@mole.ai.mit.edu)
11299
11300 * process.c (Faccept_process_output): Second arg gives timeout.
11301
11302 1991-02-06 Jim Blandy (jimb@geech.ai.mit.edu)
11303
11304 * lread.c (read_escape): Added support for \S- and \U- escapes (for
11305 binding mouse buttons), and noted that \C- must work on digits.
11306
11307 * xterm.c (init_input_symbols): Was mistakenly renamed
11308 init_inputs; named back.
11309
11310 * xterm.c (construct_mouse_click, encode_mouse_button): Rewritten
11311 to build new-style mouse events.
11312
11313 * dispnew.c (update_line): Write a zero into obody[olen] to make
11314 sure the lines in current_screen->glyphs remain terminated.
11315 * xdisp.c (display_string, display_text_line): Don't write off
11316 the end of the line and destroy the zero terminator when expanding
11317 a tab.
11318
11319 * fns.c (Fy_or_n_p): Accept C-] (usually abort-recursive-edit) as
11320 well as C-g to quit.
11321
11322 1991-02-05 Jim Blandy (jimb@geech.ai.mit.edu)
11323
11324 * sysdep.c, s-aix3-1.h, s-hpux.h, s-iris3-5.h, s-iris3-6.h,
11325 s-irix3-3.h, s-rtu.h, s-sunos4-1.h, s-unipl5-0.h, s-unipl5-2.h,
11326 s-usg5-0.h, s-usg5-2-2.h, s-usg5-2.h, s-usg5-3.h, s-xenix.h:
11327 Globally replaced INTERRUPTABLE with INTERRUPTIBLE.
11328
11329 * xterm.c (construct_mouse_event): Renamed to
11330 construct_mouse_click, since there are kinds of mouse events
11331 besides clicks (movement, for example).
11332 (XTread_socket): rename calls here.
11333
11334 * xterm.c (mapped_screen_symbol, unmapped_screen_symbol,
11335 exited_scrollbar_symbol, exited_window_symbol,
11336 redraw_screen_symbol, mouse_moved_symbol): Renamed to
11337 Qmapped_screen, Qunmapped_screen, Qexited_scrollbar,
11338 Qexited_window, Qredraw_screen, Qmouse_moved, to agree with naming
11339 conventions elsewhere in Emacs.
11340
11341 * xfns.c (text_part_sym, modeline_part_sym,
11342 vertical_scrollbar_sym, vertical_slider_sym, vertical_thumbup_sym,
11343 vertical_thumbdown_sym, horizontal_scrollbar_sym,
11344 horizontal_slider_sym, horizontal_thumbleft_sym,
11345 horizontal_thumbright_sym): Renamed to Qtext_part, Qmodeline_part,
11346 Qvscrollbar_part, Qvslider_part, Qvthumbup_part, Qvthumbdown_part,
11347 Qhscrollbar_part, Qhslider_part, Qhthumbleft_part,
11348 Qhthumbright_part, to agree with the naming conventions elsewhere
11349 in Emacs.
11350
11351 * xterm.c (XTread_socket): While handling EnterNotify events,
11352 clear Vmouse_event here.
11353 (notice_mouse_movement): Don't clear it here.
11354
11355 1991-02-04 Richard Stallman (rms@mole.ai.mit.edu)
11356
11357 * s-sunos4-0.h: Renamed from s-sunos4.h.
11358 (read, write, open, close): Macro defs moved to s-sunos4-1.h.
11359 (INTERRUPTABLE_*): Likewise.
11360 * s-sunos4-1.h: New file.
11361
11362 1991-02-04 Jim Blandy (jimb@churchy.ai.mit.edu)
11363
11364 * keymap.c (Vglobal_mouse_map, Vglobal_function_map): Variables
11365 removed in preparation for conversion to unified keymap format.
11366 (Fmake_keymap): Make vector keymaps with 129 entries; the last
11367 will be an assoc-list for looking up symbols. Update docstring to
11368 describe 129'th element.
11369 (Fmake_sparse_keymap): Update docstring to say that you can bind
11370 symbols in these maps too.
11371 (Fkeymapp): Recognize 129-element vectors as keymaps, not
11372 128-element vectors.
11373 (get_keymap_1): wrong_type_argument can no longer return a new
11374 value supplied by the debugger; remove loop to support this.
11375
11376 * xterm.c (XTread_socket): When handling EnterNotify events,
11377 enqueue fake mouse events iff Vx_send_mouse_movement_events !=
11378 Qnil.
11379
11380 * xfns.c (Fx_window_id): Function removed; Fscreen_parameters
11381 already provides this information.
11382
11383 * xterm.c (x_term_init): Cleaned up the code to get the host name,
11384 and removed fixed limit on host name length.
11385
11386 * window.c (Fscroll_other_window): Don't explicitly save
11387 current_buffer and point; the save_excursion will take care of
11388 that anyway.
11389
11390 * dispnew.c (safe_bcopy): Rewritten to handle overlapping regions
11391 with multiple calls to bcopy instead of a stupid copy loop.
11392
11393 * xterm.c, xfns.c (Vscreen_part, Vx_send_movement_events): These
11394 variables renamed to Vmouse_screen_part,
11395 Vx_send_mouse_movement_events.
11396
11397 * lread.c (Feval_buffer): function deleted.
11398 (Feval_current_buffer): Removed "#if 0 ... #endif" around this
11399 function.
11400
11401 1991-02-03 Richard Stallman (rms@mole.ai.mit.edu)
11402
11403 * Makefile, ymakefile (SHELL): Force use of sh.
11404
11405 * s-usg5-4.h (USG5_4): Define it.
11406 (LOAD_AVE_*): Don't define them.
11407 * m-intel386.h (LOAD_AVE_*): Define, if USG5_4.
11408
11409 * buffer.c (Fbuffer_local_variables): Omit slots with no names.
11410
11411 1991-02-03 Jim Blandy (jimb@geech.ai.mit.edu)
11412
11413 * xterm.c (x_term_init, init_input_symbols): Moved these to the
11414 bottom of the file, 1) to be consistent with the other files, and
11415 2) so it can initialize some variables I want.
11416
11417 1991-02-02 Jim Blandy (jimb@churchy.ai.mit.edu)
11418
11419 * xterm.h: Added external declaration for x_focus_screen.
11420
11421 * search.h: File deleted.
11422 * buffer.h: declare searchbuf here instead.
11423
11424 * screen.c (Ffocus_screen, Funfocus_screen): Moved these functions
11425 to xfns.c, since they're x-specific.
11426 (syms_of_screen): Removed defsubr calls for above.
11427 * xfns.c (Ffocus_screen, Funfocus_screen): Here they are.
11428 (syms_of_xfns): The defsubrs are here now.
11429
11430 * buffer.h (PT): Make this expand to an expression which is not an
11431 l-value, to prevent people from assigning to it. If everyplace
11432 uses SET_PT, it will be easier to merge in the interval code.
11433 (point): Similar changes here.
11434 (SET_PT): This can no longer be written in terms of PT, so write
11435 out current_buffer->text.pt.
11436
11437 * xterm.c (x_new_font): Rewritten to remove arbitrary limit on
11438 size of x_font_table.
11439 (x_font_table_size): Created new variable.
11440 (n_available_fonts, font_names, font_info, MAX_FONTS): Deleted
11441 these variables/macros.
11442
11443 * dispnew.c (scroll_screen_lines): Instead of disabling the lines
11444 vacated by the scroll (i.e. zeroing enable), mark them as enabled
11445 but empty.
11446
11447 * callint.c (Fcall_interactively): Move UNGCPRO down, so that
11448 stuff is protected while we build the command history entry and do
11449 the function call.
11450
11451 * xterm.c (XTupdate_end): Turn cursor on, even if we don't
11452 currently have the focus.
11453
11454 * minibuf.c (temp_echo_area_glyphs): Clear echo_area_glyphs and
11455 previous_echo_glyphs, so the message we're displaying will
11456 supercede any existing message.
11457
11458 * keyboard.c: Removed external declaration of echo_area_glyphs,
11459 since it's declared in window.h.
11460
11461 1991-01-31 Jim Blandy (jimb@pogo.ai.mit.edu)
11462
11463 * xterm.c (XRINGBELL): Pass 0 as the second argument to XBell;
11464 respect the user's preferences.
11465
11466 1991-01-30 Jim Blandy (jimb@pogo.ai.mit.edu)
11467
11468 * xterm.c (x_draw_single_glyph): New function, created to simplify
11469 cursor drawing/undrawing.
11470 (x_display_box_cursor): Rewritten to properly handle the box
11471 cursor in its filled and hollow forms.
11472 * xterm.h (enum text_cursor_kinds): Added enum for the different
11473 kinds of cursors which might be displayed in a window.
11474 (struct x_display): added member `text_cursor_kind' which says
11475 which kind of cursor is currently being displayed in the window, so
11476 we can arrange to redraw it effectively.
11477
11478 * keyboard.c (command_loop_1): When handling the forward_char
11479 command, don't let point move to the location after the end of the
11480 buffer.
11481
11482 * keyboard.c (poll_suppress_count): Define this even if
11483 POLL_FOR_INPUT is not defined, because this makes lots of #ifdef
11484 clauses unnecessary, and doesn't hurt, because
11485 {start,stop}_polling become nops.
11486
11487 * config.h, config.h-dist: Make these #include "system.h" and
11488 "machine.h", and let the config script link these appropriately,
11489 instead of using the machine-specific names and expecting the user
11490 to edit this file.
11491
11492 1991-01-29 Jim Blandy (jimb@churchy.ai.mit.edu)
11493
11494 * window.c (Fdelete_window): sib is a Lisp_Object; treat it as
11495 such.
11496
11497 * xterm.c (screen_unhighlight): When the focus leaves a screen,
11498 draw the cursor as a box instead of making it disappear entirely.
11499
11500 1991-01-29 Richard Stallman (rms@mole.ai.mit.edu)
11501
11502 * unexec.c (make_hdr) [TPIX]: Set f_hdr.f_nscns and f_thdr.f_scnptr.
11503
11504 * sysdep.c [BROKEN_TIOCGWINSZ]: Undef TIOCGWINSZ.
11505
11506 * process.c (wait_reading_process_input): Don't ignore
11507 a zero-length read on a network connection. Do close it.
11508
11509 * sysdep.c (hft_init, hft_reset): Pass &junk as arg to HFQERROR.
11510 Do nothing if not HFT.
11511
11512 1991-01-29 Jim Blandy (jimb@albert.ai.mit.edu)
11513
11514 * xfns.h: Created, to declare things defined in xfns.c.
11515 Declare Vx_send_movement_events.
11516 * xfns.c: #include "xfns.h".
11517 (Vx_send_movement_events): Define this variable.
11518 (syms_of_xfns): DEFVAR_LISP it.
11519 * xterm.c: #include "xfns.h".
11520 (XTread_socket): Place a mouse-moved event in the buffer iff
11521 Vx_send_movement_events says to.
11522
11523 1991-01-28 Jim Blandy (jimb@geech.ai.mit.edu)
11524
11525 * ymakefile: noted that callint.o depends on mocklisp.h,
11526 and dired.o on search.h.
11527
11528 * environ.h: Deleted - its creation in the first place was misguided.
11529 callproc.h: Removed #include "environ.h", and added declarations
11530 for environ.h
11531
11532 * buffer.c (syms_of_buffer): Add more detailed documentation to
11533 buffer-undo-list.
11534
11535 * lisp.h (poll_suppress_count): Add external declaration for this here.
11536
11537 1991-01-28 Richard Stallman (rms@mole.ai.mit.edu)
11538
11539 * m-sun3-68881.h, m-sun3-fpa.h, m-sun3-soft.h: New files.
11540
11541 1991-01-27 Jim Blandy (jimb@geech.ai.mit.edu)
11542
11543 * lisp.h (struct handler): add poll_suppress_count member, so
11544 we can restore poll_suppress_count when we handle an error.
11545 * eval.c (struct catchtag): Add it here too, for throws.
11546 (internal_catch, Fcondition_case, internal_condition_case): Record
11547 the value of poll_suppress_count here in the handler and catch tag.
11548 (Fthrow, Fsignal): Restore it here.
11549
11550 1991-01-25 Jim Blandy (jimb@churchy.ai.mit.edu)
11551
11552 * xterm.c (x_display_box_cursor): If we're undrawing the cursor by
11553 redrawing the character underneath it, draw according to that
11554 line's highlight, instead of assuming it's in the normal GC.
11555
11556 1991-01-25 Richard Stallman (rms@mole.ai.mit.edu)
11557
11558 * buffer.h (PTR_CHAR_POS): Value was too small by 1.
11559
11560 1991-01-16 Richard Stallman (rms@mole.ai.mit.edu)
11561
11562 * doprnt.c (doprnt): Check for overflow in fmtcpy.
11563
11564 1991-01-16 Jim Blandy (jimb@churchy.ai.mit.edu)
11565
11566 * window.c (Fdelete_window): If the deletee gives its space to its
11567 next sibling, that sibling needs to have its top/left side pulled
11568 back to where the deletee's is.
11569
11570 1991-01-15 Jim Blandy (jimb@geech.ai.mit.edu)
11571
11572 * doc.c (Fsnarf_documentation): handle attaching docstrings to
11573 bytecode objects too.
11574
11575 * syntax.h (syntax_spec_code): make external declaration for this
11576 unsigned char to match the definition in syntax.c.
11577
11578 * indent.c (compute_motion): added comments describing how it
11579 can be used.
11580
11581 1991-01-15 Richard Stallman (rms@mole.ai.mit.edu)
11582
11583 * process.c (create_process): Use SETUP_SLAVE_PTY if defined.
11584
11585 * s-usg5-4.h (HAVE_PTYS, HAVE_SETSID): Defined.
11586 (HAVE_WAIT_HEADER, WAITTYPE, wait3, WRETCODE): New macros.
11587 (TIOCSIGSEND): Alias for TIOCSIGNAL.
11588 (FIRST_PTY_LETTER): Overridden.
11589 (PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF, SETUP_SLAVE_PTY): New macros.
11590
11591 * m-ibmrs6000.h (CANNOT_DUMP): Undefine it.
11592 (UNEXEC): Define it.
11593 (PURE_SEG_BITS, SHMKEY): Define only if CANNOT_DUMP.
11594 (LINKER): Override it. Then add -bnodelcsect.
11595
11596 * xfns.c (Fx_get_default): Try reversing XGetDefault args if it fails.
11597
11598 1991-01-13 Richard Stallman (rms@mole.ai.mit.edu)
11599
11600 * s-usg5-4.h (LOAD_AVE_CVT): Cast value to int.
11601
11602 * keyboard.c (read_avail_input): Signal SIGHUP if FIONREAD fails.
11603
11604 * ymakefile: Put tokens after #endif into comment.
11605
11606 * filelock.c (lock_file_owner_name): Declare argument type.
11607
11608 * syntax.c (syntax_spec_code): Type now unsigned char.
11609
11610 * process.c (wait_reading_process_input):
11611 Call status_notify even when not doing redisplay.
11612
11613 * emacs.c (Fkill_emacs): Turn off SIGIO before exiting.
11614
11615 * s-usg5-3.h (USG5_3): Define it.
11616 * m-ibmps2-aix.h [USG5_3]: Define TEXT_START as 0.
11617 Don't define DATA_START or DATA_END or TEXT_END or DATA_SEG_BITS.
11618 Override various other symbols at end of file.
11619
11620 1991-01-12 Jim Blandy (jimb@churchy.ai.mit.edu)
11621
11622 * window.c (window-configuration-p): Closing paren needed. Added.
11623
11624 * keyboard.c (command_loop_1): When displaying a message over an
11625 active minibuffer, call Fsit_for with three arguments, not two.
11626
11627 1991-01-12 Richard Stallman (rms@mole.ai.mit.edu)
11628
11629 * s-irix3-3.h (HAVE_SYSVIPC): Defined.
11630
11631 1991-01-12 Jim Blandy (jimb@pogo.ai.mit.edu)
11632
11633 * dispnew.c (buffer_posn_from_coords): compute_motion starting
11634 from bufp[y] instead of counting from the top of the window.
11635
11636 1991-01-11 Richard Mlynarik (mly@pizza.ai.mit.edu)
11637
11638 * window.c (window-configuration-p): Needed. Added.
11639
11640 1991-01-11 Jim Blandy (jimb@churchy.ai.mit.edu)
11641
11642 * dispnew.c (buffer_posn_from_coords): Remember to deduce space
11643 for the line continuation markers and the window separators from
11644 the window width.
11645
11646 1991-01-11 Richard Stallman (rms@mole.ai.mit.edu)
11647
11648 * m-tower32v3.h (VALBITS, GCTYPEBITS): Use 26 bits for pointer.
11649
11650 1991-01-10 Richard Stallman (rms@mole.ai.mit.edu)
11651
11652 * fileio.c (Fcopy_file): Always close descriptors.
11653
11654 * s-sunos4.h: read, write, open and close are interruptable.
11655
11656 1991-01-09 Jim Blandy (jimb@churchy.ai.mit.edu)
11657
11658 * xterm.c, dispnew.c (pixel_to_char_translation): Renamed to
11659 pixel_to_glyph_translation, and rewritten. Just get coordinates,
11660 don't return anything.
11661 (buffer_posn_from_coords): New function - given a window and
11662 co-ordinates on the screen, find the buffer position at those
11663 co-ordinates.
11664
11665 1991-01-08 Jim Blandy (jimb@geech.ai.mit.edu)
11666
11667 * alloc.c (Fmake_byte_code): Flesh out docstring.
11668
11669 * window.c (window_loop): pick the first window correctly, even
11670 when screen == 0.
11671
11672 * dispnew.c (scroll_screen_lines): Don't forget to call
11673 update_begin at the top of the down-scrolling section.
11674 And rotate by amount, not -amount, in the up-scrolling section.
11675
11676 * xterm.h (MAX_FONTS, x_font_table, n_fonts): Removed external
11677 declarations for these variables, since they're declared static in
11678 xterm.c and not used elsewhere.
11679 * xterm.c (MAX_FONTS): Moved definition of this to here from
11680 xterm.h.
11681
11682 * xterm.c (x_new_font): If you can't find the requested font,
11683 return a code which indicates this, instead of calling abort.
11684
11685 1991-01-07 Jim Blandy (jimb@churchy.ai.mit.edu)
11686
11687 * xdisp.c (redisplay, display_mode_line): To test
11688 Vglobal_minibuffer_screen for validity, you must check that its
11689 type is Lisp_Screen; comparing it to Qnil isn't good enough.
11690
11691 * screen.c (syms_of_screen): Initialize Vglobal_minibuffer_screen
11692 to Qnil; otherwise, it inhibits decent redisplay (is that another
11693 bug?)
11694
11695 * dispnew.c (init_display): Make sure that the standard input is a
11696 terminal here.
11697 * emacs.c (main): Not here, since we don't know yet if we want to
11698 use a window system of some sort.
11699
11700 * xfns.c (x_make_gc): Delete code to support default_face and
11701 highlight_face, since they're part of the interval code, and
11702 shouldn't be installed yet.
11703
11704 * dispnew.c (init_display): calculate_costs expects a screen
11705 parameter; pass selected_screen, instead of nothing.
11706
11707 * search.c (Freplace_match): Protect STRING.
11708 * process.c (run_filter): New function.
11709 (read_process_output, exec_sentinel): Use run_filter to call the
11710 process's filter function.
11711 (status_notify): GCPro MSG.
11712 * process.c (Fopen_network_stream): Protect various args.
11713 * print.c (Fprin1_to_string, Fprint): Protect OBJ.
11714 * lread.c (Feval_region): Check type of B.
11715 * keymap.c (describe_alist): Protect ELT_PREFIX and TEM2.
11716 (describe_vector): Likewise for ELT_PREFIX and TEM1.
11717
11718 1991-01-06 Richard Stallman (rms@mole.ai.mit.edu)
11719
11720 * sysdep.c (init_sys_modes): Turn off VSUSP and V_DSUSP if they exist.
11721 Only on a MIPS.
11722
11723 1991-01-05 Jim Blandy (jimb@spiff.ai.mit.edu)
11724
11725 * xselect.c (x_answer_selection_request): For incremental, set
11726 format to 32 and send only 1 element. Pass the address of size,
11727 not size itself.
11728 (x_selection_arrival): For incremental, delete the property
11729 containing the size of the transfer. This generates a
11730 PropertyNotify to the owner, starting the exchange.
11731
11732 * xrdb.c (get_user_app): Pass correct number of parameters to
11733 sprintf.
11734
11735 * xfns.c (x_window): Don't use backing store or saveunders; they
11736 seem to slow down suns.
11737 (x_icon): Set the InputHint to the window manager to False.
11738 (x_make_gc): Initialize gc_values.line_width to zero before
11739 creating the normal video GC, since it uses it. And set the
11740 default_face and hilite_face gcs here.
11741 (install_vertical_scrollbar): Add 2 to thumbdown y position, and
11742 don't add ibw.
11743
11744 * insdel.c (insert, del_range): Use SET_PT rather than assigning
11745 point directly.
11746 * window.c (Fselect_window): Here too.
11747
11748 * xdisp.c (redisplay_all_windows): removed static declaration for
11749 this nonexistent function.
11750
11751 1991-01-04 Jim Blandy (jimb@pogo.ai.mit.edu)
11752
11753 * window.c (window_loop): neatened up. MINI being non-zero now
11754 makes it recognize active minibuffer windows. Iterates properly
11755 over multiple screens when asked nicely.
11756 (Fget_lru_window, Fget_largest_window): SCREENS arguments are now
11757 declared as a Lisp_Object, and documented.
11758 (Fget_buffer_window): SCREENS argument is now documented.
11759 (Fdelete_other_windows): Delete other windows on the argument
11760 window's screen, not the current screen.
11761
11762 * screen.c (window_from_coordinates): Changed other reference to
11763 Fnext_window to use next_screen_window; see below.
11764
11765 * window.c (Fnext_window, Fprevious_window): Accept non-nil, non-t
11766 values for mini, and don't turn off all-screens when mini is t but
11767 there is no global minibuffer screen. Remove screen_{root,mini}
11768 variables.
11769 (Fother_window): Added second argument all_screens.
11770
11771 * undo.c (record_delete): Removed dead variable llength.
11772
11773 * data.c (Qkeyp, Fkeyp): Removed these and supporting code.
11774 * keymap.c (Fsingle_key_description): Report an error instead of
11775 calling wrong_type_argument.
11776 * lisp.h (Qkeyp): Removed external declaration for this.
11777
11778 1991-01-03 Richard Stallman (rms@mole.ai.mit.edu)
11779
11780 * search.c (search_buffer): Return starting position if count == 0.
11781
11782 1991-01-02 Jim Blandy (jimb@pogo.ai.mit.edu)
11783
11784 * scroll.c (do_scrolling): Use correct limits on loop to clear
11785 lines just inserted--old version lost a line.
11786
11787 * screen.c: #ifdef HAVE_X_WINDOWS, #include xterm.h
11788 (Ffocus_screen, Funfocus_screen): use Joe's new definitions, and
11789 only define these functions ifdef HAVE_X_WINDOWS.
11790 (window_from_coordinates): use next_screen_window instead of
11791 Fnext_window, so that global minibuffers work.
11792
11793 * lread.c (syms_of_read): Don't forget to defsubr
11794 read-char-exclusive.
11795
11796 * lisp.h (Fscreenp, Fselect_screen, Ffocus_screen,
11797 Funfocus_screen, Fselected_screen, Fwindow_screen,
11798 Fscreen_root_window, Fscreen_selected_window, Fscreen_list,
11799 Fnext_screen, Fdelete_screen, Fread_mouse_position,
11800 Fset_mouse_position, Fmake_screen_visible, Fmake_screen_invisible,
11801 Ficonify_screen, Fdeiconify_screen, Fscreen_visible_p,
11802 Fvisible_screen_list, Fscreen_parameters,
11803 Fmodify_screen_parameters, Fscreen_pixel_size, Fscreen_height,
11804 Fscreen_width, Fset_screen_height, Fset_screen_width,
11805 Fset_screen_size, Fset_screen_position, Fcoordinates_in_window_p,
11806 Flocate_window_from_coordinates, Frubber_band_rectangle): added
11807 extern declarations for all these.
11808
11809 * lisp.h (Qscreenp): added an extern declaration for this.
11810
11811 * lisp.h (DBL_DIG): Added constant for the maximum number of
11812 decimal digits a float could print to. Used in print.c.
11813
11814 * keymap.c (Fkey_description): Produce pretty descriptions of
11815 mouse and window system events too.
11816 (Fsingle_key_description): signal an error if obj is not a key.
11817
11818 * data.c (Fkeyp, Qkeyp): Added predicate to recognize things which
11819 can be bound - this includes keys, symbols (for function keys and
11820 window system events), and conses (for mouse events).
11821 * lisp.h (Qkeyp): Added external declaration for this.
11822
11823 * keyboard.c (Frecursive_edit): Don't specbind the standard IO here.
11824 (recursive_edit_1): Do it here, and don't forgot to unbind_to.
11825
11826 (command_loop_1): Reset no_redisplay after mouse commands.
11827
11828 (classify_object): Place the object in read_key_sequence_cmd.
11829
11830 (Fread_key_sequence): recognize that when read_key_sequence
11831 returns -1 or -2, it's a mouse event or window system event.
11832
11833 1991-01-01 Jim Blandy (jimb@pogo.ai.mit.edu)
11834
11835 * fileio.c (Fwrite_region): We should dereference GPT_ADDR[-1]
11836 before comparing it to '\n' for VMS cruft.
11837 (Fdo_auto_save): Don't call run-hooks before it's defined. This
11838 only happens before emacs is dumped, when loading inc-vers.el.
11839
11840 * eval.c (Fsignal): TOTALLY_UNBLOCK_INPUT here.
11841 (error): Not here.
11842
11843 (Feval): We use argvals[0..5], so declare it to have six elements
11844 instead of just five.
11845
11846 1990-12-30 Richard Stallman (rms@mole.ai.mit.edu)
11847
11848 * eval.c (Fsignal): Don't ever return.
11849 Call error instead if user tries to use debugger to return.
11850
11851 * eval.c (unbind_to): New second arg is value to return. gcpro it.
11852 All callers changed to pass the arg; if a caller uses unbind_to
11853 just before returning, it passes as this arg the value it wants
11854 to return, then it returns whatever comes back.
11855
11856 1990-12-28 Jim Blandy (jimb@geech.ai.mit.edu)
11857
11858 * print.c (print): put obj in a non-register variable so
11859 we could gcpro it. Also fixed some syntax errors.
11860
11861 * editfns.c (Fformat): declare nstrings, and declare nstrings and
11862 strings in a local block.
11863 (Fformat): XFLOAT(args[n]) isn't a float; ->data is.
11864
11865 1990-12-27 Richard Stallman (rms@mole.ai.mit.edu)
11866
11867 * m-tower32.h: Add comments for how to optimize.
11868 * m-tower32v3.h: New file.
11869
11870 * fileio.c (Fwrite_region): Save errno around unlock_file.
11871
11872 1990-12-26 Richard Stallman (rms@mole.ai.mit.edu)
11873
11874 * editfns.c (Fformat): Handle floats. Convert between int and float.
11875 Don't truncate value at null char coming from doprnt.
11876 * doprnt.c (doprnt): Replace tembuf with malloced buff if too small.
11877 Handle %e, %f and %g.
11878
11879 1990-12-25 Richard Stallman (rms@mole.ai.mit.edu)
11880
11881 * abbrev.c (Fexpand_abbrev): Use insert_from_string, not insert.
11882 (Funexpand_abbrev): Likewise.
11883 * doc.c (Fsubstitute_command_keys): Likewise.
11884 * editfns.c (Finsert, Finsert_before_markers): Likewise.
11885 * minibuf.c (Fminibuffer_complete_word): Likewise.
11886 * mocklisp.c (Finsert_string): Use insert1.
11887 * vmsfns.c (Fdefault_subproc_input_handler): Likewise.
11888
11889 * print.c: Don't use strout for the text of a Lisp string.
11890 (print_string): New function to use instead.
11891 (print): Use print_string when no escapes needed.
11892 When printing with escapes, protect the string and check addr often.
11893
11894 1990-12-24 Richard Stallman (rms@mole.ai.mit.edu)
11895
11896 * insdel.c (insert_from_string): New function.
11897
11898 1990-12-20 Richard Stallman (rms@mole.ai.mit.edu)
11899
11900 * term.c (ins_del_lines): Handle scroll region wrt chars_wasted.
11901
11902 1990-12-16 Jim Blandy (jimb@pogo.ai.mit.edu)
11903
11904 * Globally renamed InsStr to insert_string.
11905
11906 1990-12-15 Richard Stallman (rms@mole.ai.mit.edu)
11907
11908 * s-usg5-3.h (USG_SHARED_LIBRARIES): Define it.
11909
11910 * m-intel386.h (C_SWITCH_MACHINE): New macro.
11911
11912 1990-12-15 Jim Blandy (jimb@pogo.ai.mit.edu)
11913
11914 * alloc.c (STRING_FULLSIZE): Use sizeof(struct Lisp_String)
11915 instead of sizeof(int).
11916
11917 1990-12-14 Jim Blandy (jimb@pogo.ai.mit.edu)
11918
11919 * keyboard.c (Fread_key_sequence): Clear this_command_key_count
11920 here; who unfixed this?
11921
11922 1990-12-12 Richard Stallman (rms@mole.ai.mit.edu)
11923
11924 * abbrev.c (Fdefine_abbrevs): Don't crash when EXPANSION is nil.
11925
11926 1990-12-11 Richard Stallman (rms@mole.ai.mit.edu)
11927
11928 * eval.c (Fmacroexpand): Change handling of (foo . bar) in ENV.
11929
11930 1990-12-10 Richard Stallman (rms@mole.ai.mit.edu)
11931
11932 * m-pmax.h (SYSTEM_MALLOC): Define it.
11933
11934 * process.c (wait_reading_process_input): Ignore failure with EIO.
11935
11936 1990-12-09 Richard Stallman (rms@mole.ai.mit.edu)
11937
11938 * m-iris4d.h (LOAD_AVE_CVT): Divide by 1024.
11939 (LIB_STANDARD): Use -lbsd first.
11940 (LIBS_MACHINE): Don't use -lbsd here.
11941 * s-irix3-3.h (ADDR_CORRECT): Macro deleted.
11942 (LIBS_MACHINE): Macro deleted.
11943 (LDAV_SYMBOL): Delete the `_' from start of symbol.
11944
11945 * process.c (create_process): Delete duplicate sigsetmask.
11946
11947 * m-ibmrt.h (RTPC_REGISTER_BUG, SHORT_CAST_BUG): Macros deleted.
11948 (C_SWITCH_MACHINE): Use -D to define alloca.
11949 (SIGN_EXTEND_CHAR): Use a cast.
11950
11951 1990-12-05 Jim Blandy (jimb@pogo.ai.mit.edu)
11952
11953 * keyboard.c (Fsuspend_emacs): Protect STUFFSTRING.
11954 (cmd_error): Protect TAIL while printing.
11955 (input_poll_signal, start_polling): Use polling_period.
11956 (syms_of_keyboard): Initialize it and make it a Lisp var.
11957
11958 * fns.c (Fyes_or_no_p): Protect PROMPT for entire loop.
11959
11960 * fileio.c (Frename_file): Protect args.
11961 * fileio.c (Fadd_name_to_file): Protect the args.
11962 (Fcopy_file, Fmake_symbolic_link): Likewise.
11963 (Finsert_file_contents): Protect FILENAME.
11964
11965 1990-12-04 Jim Blandy (jimb@geech.ai.mit.edu)
11966
11967 * eval.c (Fbacktrace): gcpro TAIL.
11968 * emacs.c (Fkill_emacs): gcpro ARG.
11969 * editfns.c (Fformat): remove remains of gcpro'd args.
11970
11971 * dispnew.c (syms_of_dispnew): Don't clobber Vwindow_system_version
11972 if CANNOT_DUMP.
11973
11974 * dired.c (file_name_completion): Check that FILE is a string.
11975
11976 * buffer.c (Fbury_buffer): Don't init BUF1.
11977
11978 * doc.c (Fsubstitute_command_keys): Protect STR and don't keep a
11979 pointer to the middle of it.
11980
11981 * m-hp9000s300.h (LOAD_AVE_TYPE, LOAD_AVE_CVT): Override for BSD.
11982
11983 * process.c (sigchld_handler): Clear synch_process_alive if the
11984 dying process isn't in the table at all.
11985 * callproc.c (call_process_cleanup): Clear synch_process_alive.
11986
11987 1990-12-03 Jim Blandy (jimb@geech.ai.mit.edu)
11988
11989 * callproc.c (Fcall_process): change synch_process_pid to
11990 synch_process_alive, as a general flag that we are waiting for
11991 a synchronous process to die. This obviates the need to block
11992 SIGCHLDs until we know the pid.
11993 * sysdep.c (wait_for_termination): wait for synch_process_alive to
11994 be false.
11995
11996 * process.c (sigchld_handler): If pid not recognized, look for a
11997 process recorded with pid -1.
11998 (create_process): Set pid to -1 before the fork.
11999 Store correct pid right after the fork.
12000 Don't change sigchld handler on system V.
12001
12002 * process.c (Fstart_process): Set BUFFER before other string vars
12003 so a gc in Fget_buffer_create won't clobber them.
12004
12005 1990-11-30 Richard Stallman (rms@mole.ai.mit.edu)
12006
12007 * keyboard.c (read_command_char): Save and restore getcjmp.
12008
12009 1990-11-29 Richard Stallman (rms@mole.ai.mit.edu)
12010
12011 * process.c (status_convert): Use WRETCODE for exited process.
12012
12013 1990-11-26 Richard Stallman (rms@mole.ai.mit.edu)
12014
12015 * s-usg5-4.h (LIB_STANDARD): Add libucb.a.
12016 (NEED_PTEM_H): Define this instead of NEED_SIOCTL.
12017 * m-ibm370aix.h, m-ibmps2-aix.h, m-ibmrs6000.h (NEED_SIOCTL):
12018 Undefine this.
12019 (NEED_PTEM_H): Likewise.
12020
12021 * s-sunos4.h (O_NDELAY): Don't define this.
12022
12023 * print.c (Fwith_output_to_temp_buffer): Don't eval first arg twice.
12024
12025 1990-11-22 Richard Stallman (rms@mole.ai.mit.edu)
12026
12027 * m-hp9000s300.h (LOAD_AVE_TYPE, LOAD_AVE_CVT): Alternate defs for BSD.
12028
12029 1990-11-21 Jim Blandy (jimb@churchy.ai.mit.edu)
12030
12031 * dispnew.c (init_display): Check if we're using a window system
12032 before trying to initialize the terminal. If someone has
12033 indicated that they want to use a window system, we shouldn't
12034 bother initializing the terminal. This is especially important
12035 when the terminal is so dumb that emacs gives up and doesn't bother
12036 using the window system.
12037
12038 1990-11-20 Jim Blandy (jimb@churchy.ai.mit.edu)
12039
12040 * print.c (Fexternal_debugging_output): added new function which
12041 writes a character to stderr, for use when debugging emacs with
12042 gdb.
12043
12044 1990-11-14 Jim Blandy (jimb@churchy.ai.mit.edu)
12045
12046 * dispnew.c (window_change_signal): used to assume that SIGWINCHes
12047 always applied to the currently selected screen. Now it scans the
12048 list of screens for a screen controlled by termcap, and changes that
12049 screen's size.
12050
12051 1990-11-13 Richard Stallman (rms@mole.ai.mit.edu)
12052
12053 * fileio.c (err_str): New macro.
12054 (Finsert_file_contents, Fwrite_region): Use it in error messages.
12055
12056 1990-11-12 Richard Stallman (rms@mole.ai.mit.edu)
12057
12058 * insdel.c (del_range): Supply missing arg to gap_left.
12059
12060 1990-11-11 Jim Blandy (jimb@churchy.ai.mit.edu)
12061
12062 * regex.c: Disabled definition of NULL from lisp.h
12063
12064 * crt0.c (_start): added static declaration of start1.
12065
12066 * xfns.c: added definition for Vbar_cursor.
12067 (syms_of_xfns): Added DEFVAR_LISP clause for Vbar_cursor.
12068
12069 * xterm.c (XTread_socket): passed &event.xkey instead of &event to
12070 XLookupString, so things will typecheck nicely.
12071
12072 * Globally rewrote all references to Vmouse_buffer to use the
12073 buffer viewed by Vmouse_window instead.
12074
12075 * alloc.c (xmalloc, xrealloc): removed calls to
12076 {un,}hold_window_change. The new SIGWINCH-handling code and
12077 do_pending_window_change make them unnecessary.
12078
12079 1990-11-11 Richard Stallman (rms@mole.ai.mit.edu)
12080
12081 * process.c (wait_reading_process_input): Make Available static;
12082 don't clear when a nonzero bit is found.
12083
12084 * fns.c (Fnthcdr): Stop loop if reach end.
12085
12086 * dispnew.c: Include fcntl.h if HAVE_TERMIO.
12087
12088 1990-11-10 Jim Blandy (jimb@pogo.ai.mit.edu)
12089
12090 * alloc.c (make_uninit_string): No longer declared static, and
12091 extern declaration added to lisp.h. It's used in dired.c.
12092
12093 1990-11-08 Jim Blandy (jimb@geech.ai.mit.edu)
12094
12095 * dispnew.c (do_pending_window_change): Changed incorrect call to
12096 change_window_size_1 into a loop which scans list of screens and
12097 resizes those that need resizing.
12098
12099 1990-11-06 Richard Stallman (rms@mole.ai.mit.edu)
12100
12101 * m-ibmrs6000.h (CANNOT_DUMP): Define it.
12102
12103 * process.c (create_process): Unblock SIGCHLD in the child.
12104
12105 * process.c (wait_reading_process_input): Don't read input
12106 from more than one process between calls to `select'.
12107
12108 1990-11-02 Richard Stallman (rms@mole.ai.mit.edu)
12109
12110 * callint.c (syms_of_callint):
12111 Initialize Vprefix_arg and Vcurrent_prefix_arg.
12112
12113 1990-11-01 Richard Stallman (rms@mole.ai.mit.edu)
12114
12115 * dired.c (Fdirectory_files): Avoid using MAXNAMLEN.
12116
12117 1990-10-31 Jim Blandy (jimb@churchy.ai.mit.edu)
12118
12119 * process.c (MAXDESC): Enclosed definition in `#ifndef ... #endif'
12120 clause.
12121
12122 * bytecode.c: Included syntax.h to declare syntax_code_spec.
12123
12124 * syntax.h (syntax_spec_code): Added extern declaration for this.
12125
12126 * floatfns.c (float_error): Added static declaration for this at
12127 the top of the file.
12128
12129 1990-10-29 Jim Blandy (jimb@pogo.ai.mit.edu)
12130
12131 * indent.c (position_indentation): renamed stray `bf_cur' to
12132 `current_buffer', and old `CharAt' usages to `FETCH_CHAR'.
12133 * buffer.c (Fbuffer_disable_undo): the symbol object for this
12134 subroutine was still named Sbuffer_flush_undo, and the symbol's
12135 lisp name was similarly out of date. Renamed both, and added an
12136 alias in lisp/subr.el .
12137
12138 * keyboard.c (Fset_input_mode): a `meta_flag' had escaped being
12139 renamed to `meta_key'.
12140
12141 1990-10-29 Richard Stallman (rms@mole.ai.mit.edu)
12142
12143 * process.c (Fprocess_send_region, Fprocess_send_string):
12144 Break data into bunches less than 500 bytes.
12145 Accept process output between bunches.
12146 ??? Must update manual.
12147
12148 1990-10-29 Jim Blandy (jimb@pogo.ai.mit.edu)
12149
12150 * window.c (Fset_window_start, window_scroll): renamed stray
12151 references to `redo_mode_line' to `update_mode_line'.
12152
12153 * xdisp.c (decode_mode_spec): renamed stray references to `bf_cur'
12154 and `bf_modified' to `current_buffer' and `MODIFF'.
12155
12156 1990-10-25 Jim Blandy (jimb@pogo.ai.mit.edu)
12157
12158 * environ.h: file created - contains declarations for users of the
12159 environment variable list.
12160 * callproc.c (environ): removed extern declaration of environ, and
12161 included environ.h.
12162
12163 1990-10-24 Jim Blandy (jimb@pogo.ai.mit.edu)
12164
12165 * callproc.c (init_callproc): removed extern declaration of
12166 environ - it's already taken care of at the top of the file.
12167
12168 * mocklisp.h: file created - externally declares certain
12169 functions defined in mocklisp.c.
12170 * lisp.h (Fread_buffer, Fread_key_sequence): added extern
12171 declarations for these functions.
12172 * callint.c (ml_apply, Fread_buffer, Fread_key_sequence): removed
12173 extern declarations for these functions, included mocklisp.h.
12174 Moved external declaration of index to top of file.
12175
12176 1990-10-24 Richard Stallman (rms@mole.ai.mit.edu)
12177
12178 * ymakefile (GNULIB_VAR): New make variable.
12179 (LIBES): Use that, not GNULIB directly.
12180 (GNULIB): Don't define if already defined.
12181
12182 1990-10-23 Jim Blandy (jimb@geech.ai.mit.edu)
12183
12184 * indent.h (last_known_column_point): added extern declaration for
12185 this variable.
12186 buffer.c (last_known_column_point): removed extern declaration for
12187 this variable, included indent.h.
12188 (Vprin1_to_string_buffer): removed extern declaration - it's
12189 already in lisp.h.
12190
12191 * lisp.h (catchlist, backtrace_list, stack_bottom,
12192 current_global_map): added extern declarations for these
12193 variables.
12194 * alloc.c: removed external declarations for catchlist,
12195 backtrace_list, and stack_bottom, since this file includes
12196 lisp.h.
12197 * callint.c: (current_global_map): removed extern declaration.
12198
12199 * search.h: new file - declares searchbuf.
12200 * dired.c (Fdirectory_files): removed extern declaration of
12201 searchbuf, included search.h.
12202
12203 * Globally renamed `CHAR_AT_POSITION' to `FETCH_CHAR'.
12204
12205 1990-10-22 Richard Stallman (rms@mole.ai.mit.edu)
12206
12207 * keyboard.c (quit_char): New variable.
12208 (init_keyboard): Initialize it.
12209 (Fset_input_mode): New optional arg to set quit_char.
12210 (command_loop_1, read_char, kbd_buffer_store_char):
12211 (read_avail_input): Use quit_char, not C-g.
12212 * sysdep.c (init_sys_modes): Use quit_char to set special chars.
12213 * xterm.c (x_term_init): Pass new arg to Fset_input_mode.
12214
12215 1990-10-22 Jim Blandy (jimb@pogo.ai.mit.edu)
12216
12217 * xdisp.c: added `extern' declaration for command_loop_level.
12218
12219 * term.c (term_init): Internal cleanups.
12220 (write_glyphs): renamed argument `start' to `string'.
12221
12222 1990-10-21 Richard Stallman (rms@mole.ai.mit.edu)
12223
12224 * xterm.c (FIONREAD): Undefine if BROKEN_FIONREAD.
12225 (SIGIO): Undefine if no FIONREAD.
12226 (ioctl.h, termio.h, strings.h, string.h): Include them before those.
12227
12228 * alloc.c (make_vector_from_string, Fvector_from_string):
12229 Functions deleted.
12230
12231 * sysdep.c (select): Handle timeout == 0. Add var local_timeout.
12232
12233 * alloc.c (make_uninit_string, make_float): Use VALIDATE_LISP_STORAGE.
12234 (Fcons, Fmake_vector, Fmake_symbol, Fmake_marker): Likewise.
12235 (Fmake_vector_from_list): Likewise.
12236 (VALIDATE_LISP_STORAGE): New macro.
12237
12238 1990-10-20 Richard Stallman (rms@mole.ai.mit.edu)
12239
12240 * dispnew.c (scrolling): Give up if some new lines not enabled.
12241 (update_screen): Rework outq logic.
12242
12243 * xdisp.c (message, message1): Clear noninteractive_need_newline.
12244
12245 1990-10-19 Jim Blandy (jimb@pogo.ai.mit.edu)
12246
12247 * scroll.c (do_scrolling): allocate queue using alloca instead
12248 of variable-sized arrays.
12249
12250 1990-10-19 Richard Stallman (rms@mole.ai.mit.edu)
12251
12252 * buffer.c: Doc fix.
12253
12254 1990-10-18 Jim Blandy (jimb@pogo.ai.mit.edu)
12255
12256 * print.c (internal_with_output_to_temp_buffer): install an
12257 unwind_protect to make sure the current buffer is restored.
12258
12259 * minibuf.c (read_minibuf): call recursive_edit_1 instead of
12260 Frecursive_edit, to support the new command_loop_level
12261 arrangement.
12262
12263 * malloc.c (calloc): Added this function, in case something linked
12264 with emacs calls it.
12265
12266 * lread.c (openp): Since access returns 0 on success, change that
12267 into a 1 before returning it.
12268
12269 * lisp.h: deleted DEFSIMPLE and DEFPRED, since they're no
12270 longer used.
12271
12272 1990-10-18 Richard Stallman (rms@mole.ai.mit.edu)
12273
12274 * m-intel386.h (alloca): Define as builtin, if using GCC.
12275
12276 * m-att3b.h (NEED_PTEM_H): Define this for 3b2.
12277
12278 * s-aix3-1.h (SYSV_SYSTEM_DIR): Define it.
12279
12280 * print.c (print): Improve error message for bad data type.
12281
12282 1990-10-18 Jim Blandy (jimb@pogo.ai.mit.edu)
12283
12284 * keymap.c (Flookup_key): rearranged to use an index into the key
12285 sequence instead of a pointer and a level counter.
12286
12287 1990-10-18 Richard Stallman (rms@mole.ai.mit.edu)
12288
12289 * floatfns.c (sinh, cosh): On VMS, define to use exp.
12290 (IN_FLOAT): Detect errors reported using errno.
12291 (float_error): Define function unconditionally.
12292 Reestablish handler when called, if not BSD.
12293
12294 1990-10-17 Richard Stallman (rms@mole.ai.mit.edu)
12295
12296 * m-delta.h (C_DEBUG_SWITCH): Don't define this.
12297
12298 1990-10-17 Jim Blandy (jimb@pogo.ai.mit.edu)
12299
12300 * keyboard.c (command_loop): made call to command_loop_2
12301 conditional on minibuf_level too (it used to be only conditional
12302 on command_loop_level), since this is what 18.56 and all the other
12303 functions in Emacs 19 keyboard.c do.
12304
12305 1990-10-16 Jim Blandy (jimb@pogo.ai.mit.edu)
12306
12307 * keyboard.c (read_char): Don't echo dash if there is already
12308 something else being displayed in the echo area.
12309
12310 1990-10-16 Richard Stallman (rms@mole.ai.mit.edu)
12311
12312 * process.c (status_convert): If killed by signal, use WTERMSIG.
12313
12314 * data.c (arith_error): Reestablish handler on VMS.
12315
12316 * keyboard.c (start_polling, stop_polling): New functions.
12317 (input_poll_signal): New function, handles periodic alarms.
12318 (read_command_char): Turn off polling temporarily.
12319 * xdisp.c (redisplay): Likewise.
12320 * process.c (wait_reading_process_input, create_process): Likewise.
12321
12322 1990-10-16 Jim Blandy (jimb@pogo.ai.mit.edu)
12323
12324 * indent.c (position_indentation): instead of using CharAt, use a
12325 pointer to scan the buffer - this is faster.
12326
12327 * emacs.c (Fdump_emacs): The conditional expression which passes
12328 symname to unexec was missing a `: 0'.
12329
12330 * dispnew.c (rotate_vector): Was rotating backwards.
12331
12332 1990-10-15 Jim Blandy (jimb@pogo.ai.mit.edu)
12333
12334 * dired.c (file_name_completion): Use scmp to compare names.
12335
12336 1990-10-15 Richard Stallman (rms@mole.ai.mit.edu)
12337
12338 * process.c (create_process): Don't turn off handling of SIGCHLD.
12339 Just set a flag if a signal comes in when not wanted.
12340 (create_process_sigchld): New signal handler.
12341
12342 1990-10-14 Richard Stallman (rms@mole.ai.mit.edu)
12343
12344 * bytecode.c: De-implement Bmark, Bset_mark, Bscan_buffer.
12345 Mark Bsymbol_function, Bfset, Bread_char as obsolete.
12346 Implement codes Bmult, Bforward_char...Bwiden,
12347 and Bstringeqlsign...Bintegerp.
12348
12349 1990-10-12 Jim Blandy (jimb@pogo.ai.mit.edu)
12350
12351 * buffer.c (list_buffers_1): Select the buffer given in
12352 Vstandard_output using Fset_buffer instead of set_buffer_internal.
12353
12354 * buffer.c (set_buffer_internal): deleted variable swb - it's
12355 never used.
12356
12357 * buffer.c (count_modified_buffers): function deleted - it's
12358 not used anymore.
12359
12360 1990-10-11 Jim Blandy (jimb@pogo.ai.mit.edu)
12361
12362 * buffer.c (reset_buffer_local_variables, buffer_local_variables):
12363 added support for default values for buffer local variables which
12364 do not have a DEFVAR_PER_BUFFER, as described in the comments
12365 above buffer_local_flags.
12366
12367 * buffer.c (Fget_buffer_create): move initialization of
12368 b->save_length and b->last_window_start to reset_buffer.
12369
12370 1990-10-11 Richard Stallman (rms@mole.ai.mit.edu)
12371
12372 * m-ibmps2-aix.h (LOAD_AVE_TYPE, LOAD_AVE_CVT): Define them.
12373 (C_DEBUG_SWITCH): Delete -fstrength-reduce.
12374
12375 * unexmips.c (unexec): Add conditional for MIPS2.
12376
12377 1990-10-10 Richard Stallman (rms@mole.ai.mit.edu)
12378
12379 * m-iris4d.h (LIBS_MACHINE): Use -lsun, don't use -lPW.
12380
12381 * unexelf.c: New file.
12382 * s-usg5-4.h: New file.
12383 * unexec.c [USG_SHARED_LIBARARIES]: Numerous changes under this cond.
12384 (copy_text_and_data): New second argument.
12385
12386 1990-10-10 Jim Blandy (jimb@pogo.ai.mit.edu)
12387
12388 * alloc.c (gc_sweep): only unchain markers that are in a buffer.
12389
12390 1990-10-10 Mike Rowan (mtr@apple-gunkies)
12391
12392 * process.c: Merged in more changes from 18.56: update_status,
12393 FD_SET changes (define all the FD_ macros). Other small changes.
12394
12395 1990-10-09 Jim Blandy (jimb@churchy.ai.mit.edu)
12396
12397 * xdist.c: (decode_mode_spec): reworked code to handle %* - it now
12398 goes like `if return else if return else ... return' instead of
12399 using a conditional operator.
12400
12401 * xdist.c: (fmodetrunc): function deleted - no longer used.
12402
12403 1990-10-09 Richard Stallman (rms@mole.ai.mit.edu)
12404
12405 * xdisp.c (decode_mode_spec): Handle dashes in wide windows.
12406
12407 1990-10-08 Richard Stallman (rms@mole.ai.mit.edu)
12408
12409 * sysdep.c (sys_open, sys_close, sys_read, sys_write):
12410 Don't handle EAGAIN.
12411
12412 * process.c (wait_reading_process_input): Handle nread==-1
12413 for O_NDELAY like O_NONBLOCK.
12414
12415 * s-vms.h (LINK_CTRL_SHARE): Turn on again.
12416 tranle@intellicorp.com found it needed in VMS 5.3.
12417
12418 * emacs.c (main): Move VMS declaration of environ outside function.
12419
12420 * vmsfns.c (Fdefault_subproc_input_handler): InsCstr -> insert.
12421
12422 1990-10-07 Richard Stallman (rms@mole.ai.mit.edu)
12423
12424 * m-pmax.h (START_FILES): Handle crt0.o in different dir in Ultrix 4.0.
12425
12426 * s-sunos4.h (O_NDELAY): Define only if not defined.
12427
12428 1990-10-06 Jim Blandy (jimb@pogo.ai.mit.edu)
12429
12430 * sysdep.c (tabs_safe_p, get_screen_size): renamed `sg' to `tty'.
12431
12432 * sysdep.c (init_baud_rate): rearranged code for calculating
12433 baud_rate.
12434
12435 1990-10-05 Jim Blandy (jimb@pogo.ai.mit.edu)
12436
12437 * search.c (Freplace_match): used Finsert_buffer_substring instead
12438 of place and deleted place.
12439
12440 * search.c (place): function removed
12441
12442 * process.c (count_active_processes): Deleted; not used.
12443
12444 * minibuf.c (read_minibuf): renamed `prefix' argument to `initial'.
12445
12446 1990-10-01 Jim Blandy (jimb@pogo.ai.mit.edu)
12447
12448 * lread.c (Fload): renamed `MISSING-OK' to `NOERROR'.
12449
12450 * keyboard.c (describe_map): renamed `keys' to `string'.
12451
12452 * keyboard.c `Vauto_save_interval' unrenamed back to
12453 `auto-save-interval'.
12454
12455 * keymap.c (Fdefine_key, Flookup_key): renamed arguments called
12456 `keys' to `key'.
12457
12458 1990-10-01 Richard Stallman (rms@mole.ai.mit.edu)
12459
12460 * sysdep.c (sys_open, sys_close, sys_read, sys_write):
12461 Handle EAGAIN like EINTR.
12462
12463 1990-09-30 Richard Stallman (rms@mole.ai.mit.edu)
12464
12465 * insdel.c (gap_left, gap_right): Use bcopy if requested.
12466 New config parameters GAP_USE_BCOPY, BCOPY_SAFE_UPWARD,
12467 and BCOPY_SAFE_DOWNWARD.
12468
12469 * eval.c (find_handler_clause): Bind debug-on-error to nil.
12470 (Qdebug_on_error): New variable.
12471 (syms_of_eval): Initialize that.
12472
12473 * sysdep.c: Include various headers for ptys, for hpux, aix, and sysv.
12474
12475 * dispnew.c (preserve_other_columns): Fix args to second bcopy.
12476
12477 1990-09-30 Jim Blandy (jimb@pogo.ai.mit.edu)
12478
12479 * keyboard.c: `auto_save_interval' renamed to
12480 `Vauto_save_interval', since it *is* a lisp-accessible variable.
12481
12482 * fileio.c (Fdo_auto_save): call record_auto_save so that
12483 read_char knows when we've auto-saved.
12484
12485 * keyboard.c (record_auto_save): added function to support the new
12486 auto-save conditions.
12487
12488 * keyboard.c (read_char): use num_input_chars and last_auto_save
12489 instead of keystrokes to decide when to autosave.
12490
12491 * keyboard.c (keystrokes): variable deleted.
12492
12493 1990-09-30 Mike Rowan (mtr@spike.ai.mit.edu)
12494
12495 * keyboard.c, alloc.c: added malloc warning code from
12496 18.56.
12497
12498 * dispnew.c, xdisp.c: (un)hold_window_change no longer exists;
12499 added do_pending_window_change from 18.56.
12500
12501 * process.c, process.h: Add the raw_status_low and raw_status_high
12502 code from 18.56.
12503
12504 1990-09-29 Richard Stallman (rms@mole.ai.mit.edu)
12505
12506 * alloca.s: Handle ns32000 like ns16000.
12507
12508 * m-ns32000.h: New file.
12509
12510 * lread.c (Fload): Warn if elc file older than source file.
12511
12512 * ymakefile (LIB_X11_LIB): New parameter,default -lX11.
12513 (LIBX): Use that.
12514
12515 * Makefile (xmakefile): Delete junk.c at the beginning.
12516
12517 * hftctl.c: Include termios.h before termio.h.
12518 Define TCGETS and TCSETS if nec.
12519 Give some forward declarations for the static functions.
12520 Reformat in usual GNU style.
12521
12522 * m-orion105.h (LOAD_AVE_TYPE, FSCALE): Changed from double and 1.0.
12523
12524 * m-delta.h: New file.
12525
12526 1990-09-28 Richard Stallman (rms@mole.ai.mit.edu)
12527
12528 * fns.c (Frequire): Undo certain things on failure, like autoload.
12529
12530 1990-09-28 Jim Blandy (jimb@pogo.ai.mit.edu)
12531
12532 * fileio.c (Fwrite_region): renamed variable `fd' to `desc' and
12533 changed argument to open from `1' to `O_WRONLY'.
12534
12535 * fileio.c (O_WRONLY): added clause to define this if not already
12536 defined.
12537
12538 * emacs.c (Fdump_emacs): removed a_name variable.
12539
12540 * emacs.c (Fkill_emacs): removed code which asked about modified
12541 buffers and running subprocesses.
12542
12543 * editfns.c (Fcurrent_time_string): renamed variable `now' to
12544 `current_time'.
12545
12546 * dispnew.c (update_line): renamed variables `m1' and `m2' to
12547 `begmatch' and `endmatch'.
12548
12549 * dispnew.c (update_screen): use preempt_count as a limit instead
12550 of a counter; count with i instead.
12551
12552 * dispnew.c (visible_bell, inverse_video, baud_rate,
12553 Vwindow_system): rearranged comments.
12554
12555 1990-09-27 Richard Stallman (rms@mole.ai.mit.edu)
12556
12557 * emacs.c (main) : Set the DISPLAY environment value when both of
12558 MAINTAIN_ENVIRONMENT and HAVE_X_WINDOW are defined.
12559
12560 * m-convex.h (LIB_STANDARD, LIBS_MACHINE): remove these, they
12561 cause an unnecessary C1/C2 dependency.
12562
12563 * m-convex.h (LD_SWITCH_MACHINE): use -e__start to specify
12564 where crt0.c begins.
12565
12566 * m-convex.h (HAVE_SETSID): define; must call setsid
12567 when creating an inferior with a different controlling tty.
12568 * process.c (create_process): rearrange so that HAVE_SETSID
12569 will be seen when not under USG.
12570
12571 * m-convex.h (S_IFMT etc): define in case of posix compilation.
12572
12573 * m-convex.h (FIRST_PTY_LETTER): do it at runtime.
12574 * unexconvex.c (first_pty_letter): routine to locate lowest pty.
12575
12576 * unexconvex.c: Rewrite so it can cope with thread-local sections.
12577
12578 * sysdep.c (select): Use process_tick and update_tick,
12579 not child_changed.
12580
12581 1990-09-23 Richard Stallman (rms@mole.ai.mit.edu)
12582
12583 * keyboard.c (Fsuspend_emacs): Check screen size after resume.
12584
12585 1990-09-19 Richard Stallman (rms@mole.ai.mit.edu)
12586
12587 * editfns.c: Doc fix.
12588
12589 1990-09-18 Richard Stallman (rms@mole.ai.mit.edu)
12590
12591 * window.c (Fsplit_window): Minor cleanup.
12592
12593 1990-09-17 Richard Stallman (rms@mole.ai.mit.edu)
12594
12595 * emacs.c (main) [USG_SHARED_LIBRARIES]: Call brk.
12596
12597 1990-09-13 Richard Stallman (rms@mole.ai.mit.edu)
12598
12599 * floatfns.c (float_error_arg): New variable.
12600 (IN_FLOAT): New arg; sets float_error_arg. All uses changed.
12601 (float_error): Use that value when signaling error.
12602
12603 1990-09-11 Richard Stallman (rms@mole.ai.mit.edu)
12604
12605 * unexaix.c, m-ibmr2.h, s-aix3-1.h: New files.
12606
12607 * ymakefile (allocaobj): New variable. Used in otherobjs.
12608 Eliminates assignment of mallocobj using itself.
12609 (mallocobj): Handle SYSTEM_MALLOC without HAVE_ALLOCA.
12610 (xemacs): Use -nl option if HAVE_SHM.
12611
12612 * sysdep.c: Change IBMRTAIX conditionals to AIX.
12613 Move hft.h to the top.
12614 [IBMR2AIX]: Use termios.h and change macros accordingly.
12615 (child_setup_tty): Change IBMRTAIX to AIX.
12616 (setpgrp_of_tty): Handle IBMR2AIX.
12617 (init_sys_modes): Handle IBMR2AIX. Output special things for AIX.
12618 (reset_sys_modes): Output special things for AIX.
12619 (hft_init, hft_reset): Conditionals for IBMR2AIX.
12620
12621 * process.c: Change IBMRTAIX to AIX controlling time.h.
12622 [AIX]: Include sys/pty.h and unistd.h.
12623 (wait_reading_process_input): If AIX, handle EBADF differently.
12624 (create_process): Handle HAVE_SETSID. Change conditional to AIX.
12625
12626 * lisp.h (XPNTR): New definition if HAVE_SHM.
12627 (NULL): Undef before defining.
12628
12629 * emacs.c (main): If HAVE_SHM, call map_in_data.
12630 Use AIX, not IBMRTAIX, for signal conditional.
12631 (Fdump_emacs_data): New function if HAVE_SHM.
12632 (Fdump_emacs): Don't define if HAVE_SHM.
12633
12634 * alloc.c (pure, PUREBEG): If HAVE_SHM, define place for a segment.
12635
12636 1990-09-03 Mike Rowan (mtr@apple-gunkies)
12637
12638 * sysdep.c: added setup_pty from 18.56
12639
12640 * process.c: merged in 18.55->6 changes. Same for process.h
12641
12642 globally replaced:
12643 redisplay_preserving_echo_area -> redisplay_preserve_echo_area
12644 SetBfp -> set_buffer_internal
12645 buffer_flush_undo -> buffer_disable_undo
12646 redo_mode_line -> update_mode_line (window.h)
12647
12648 1990-08-31 Richard Stallman (rms@mole.ai.mit.edu)
12649
12650 * data.c (Fmake_local_variable): If var is local when set, make it
12651 local now in this buffer.
12652
12653 * data.c (Fstring_to_int): Finish eliminating second arg.
12654
12655 * data.c (Faset): Require integer as third arg for string.
12656
12657 1990-08-28 Richard Stallman (rms@mole.ai.mit.edu)
12658
12659 * search.c: Doc fix.
12660
12661 * screen.h (SCREEN_SCROLL_BOTTOM_VPOS): New macro.
12662 * xdisp.c (screen_bottom_vpos): Variable used if just one screen.
12663 (redisplay, try_window_id): Set that field in screen.
12664 * dispnew.c (scrolling, update_screen): New arg scroll_bottom_vpos.
12665
12666 * dispnew.c (scroll_screen_lines): Mark newly empty lines as empty.
12667 (scrolling): Give up if any line in current_screen not enabled.
12668
12669 1990-08-27 Roland McGrath (roland@churchy.ai.mit.edu)
12670
12671 * dired.c (Ffile_attributes): Return the device number too (elt 11
12672 of the returned list).
12673
12674 1990-08-27 Richard Stallman (rms@mole.ai.mit.edu)
12675
12676 * sysdep.c (wait_for_kbd_input): Frob waiting_for_input here.
12677 * keyboard.c (kbd_buffer_read_command_char): Not here.
12678
12679 * sysdep.c (wait_for_kbd_input): Clear process_ef before snarfing
12680 process input.
12681
12682 * fileio.c (Fdirectory_file_name): On VMS, leave space for log name.
12683
12684 * sysdep.c (init_sys_modes): Clear process_ef only the first time.
12685
12686 * vmsfns.c (process_exit): Logic of deletion was wrong.
12687 (Fspawn_subprocess): Correctly reuse existing struct process_list.
12688
12689 1990-08-22 Richard Stallman (rms@mole.ai.mit.edu)
12690
12691 * m-plexus.h (LD_SWITCH_MACHINE): New macro.
12692
12693 1990-08-22 Joseph Arceneaux (jla@geech)
12694
12695 * xterm.c (XTread_socket): Cleaned up #ifdefs prior to event
12696 reading loop. Also handle FIOSNBIO.
12697
12698 1990-08-19 Joseph Arceneaux (jla@geech)
12699
12700 * xterm.c (dumplyphs): Last vestige of MScreenWidth removed.
12701 * config.h: MScreenWidth, MScreenHeight definitions removed.
12702
12703 1990-08-18 Joseph Arceneaux (jla@geech)
12704
12705 * scroll.c (do_scrolling): Pass the correct sizes to bcopy.
12706 * dispnew.c (make_screen_glyphs): Likewise.
12707
12708 1990-08-16 Joseph Arceneaux (jla@churchy.ai.mit.edu)
12709
12710 * dispnew.c (scroll_screen_lines, free_screen_glyphs): Only deal
12711 with the X components of screen_glyphs if SCREEN_IS_X.
12712 free_screen_glyphs now takes screen argument.
12713
12714 * window.c (Fnext_window, Fprevious_window): Fixed typo. New
12715 behaviour: mini non-nil implies all_screens if global mini screen
12716 exists, implies current screen only if not.
12717 (Fdisplay_buffer): Simplification of multi-screen code.
12718
12719 1990-08-15 Richard Stallman (rms@mole.ai.mit.edu)
12720
12721 * buffer.c: Doc fix.
12722
12723 1990-08-15 Joseph Arceneaux (jla@churchy.ai.mit.edu)
12724
12725 * dispnew.c (update_line): Simplification of pixel size code, only
12726 done if screen is X.
12727 (update_screen): Only set pixel stuff if screen is X.
12728
12729 1990-08-14 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
12730
12731 * m-targon31.h (NO_REMAP): Definition removed.
12732 (SEGMENT_MASK): New macro.
12733
12734 1990-08-14 Joseph Arceneaux (jla@churchy.ai.mit.edu)
12735
12736 * lread.c (eval-region): Don't set opoint to point, etc.
12737 Fnarrow_to_region from BEGV, not b.
12738 (eval-buffer): New subr, generalization of eval-current-buffer.
12739 (eval-current-buffer): Moved to elisp, in simple.el.
12740
12741 * xfns.c (x_y_pos): Nuked. Replaced by pixel_to_char_translation
12742 and notice_mouse_movment (dispnew.c, xterm.c).
12743 (Fx_point_coordinates): Also nuked.
12744 mouse_buffer_offset: New lisp variable.
12745
12746 * xterm.c (notice_mouse_movement): Use it in call to
12747 pixel_to_char_translation.
12748
12749 * screen.h: For non-multiscreen, XSCREEN returns selected_screen,
12750 as does WINDOW_SCREEN.
12751
12752 * xdisp.c (display_mode_line): Set desired_glyphs->bufp to 0 for
12753 mode line.
12754 All occurences of struct screen * replaced with SCREEN_PTR.
12755
12756 1990-08-13 Joseph Arceneaux (jla@churchy.ai.mit.edu)
12757
12758 * xmenu.c (list_of_items, list_of_panes): Fixed wrong params to
12759 wrong_type_argument.
12760
12761 1990-08-12 Joseph Arceneaux (jla@churchy.ai.mit.edu)
12762
12763 * dispnew.c (pixel_to_char_translation): New algorithm for
12764 finding y.
12765
12766 * xfns.c (install_*_scrollbar): No more height, width parameters.
12767 Don't block input here.
12768 (x_set_*_scrollbar): Block input here.
12769
12770 * xterm.c (notice_mouse_motion): Check if the mouse is still in
12771 the window.
12772 (encode_mouse_button): Don't bother about motion types.
12773
12774 1990-08-11 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
12775
12776 * m-convex.h (C_SWITCH_MACHINE, LIB_STANDARD, LIBS_MACHINE):
12777 (LD_SWITCH_MACHINE): Add definitions for Convex V 4.0.
12778
12779 1990-08-11 Joseph Arceneaux (jla@churchy.ai.mit.edu)
12780
12781 * xfns.c (Fx_grab_pointer): Call XCreateFontCursor on shape,
12782 setting new variable grabbed_cursor. Return Qt if successful,
12783 Qnil otherwise.
12784 (Fx_ungrab_pointer): free grabbed_cursor if non zero. Return Qnil.
12785
12786 1990-08-10 Joseph Arceneaux (jla@churchy.ai.mit.edu)
12787
12788 * xfns.c (x_figure_window_size): Don't set pixel sizes until
12789 height and width are determined.
12790
12791 1990-08-08 Joseph Arceneaux (jla@churchy.ai.mit.edu)
12792
12793 * xfns.c (Fx_grab_pointer): New parameter to explicitly ignore
12794 keyboard events.
12795
12796 * xterm.c (notice_mouse_movement): Use pixel_to_char_translation
12797 to get char position and buffer offset.
12798
12799 1990-08-07 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
12800
12801 * sysdep.c [NEED_PTEM_H]: New flag macro says include ptem.h.
12802
12803 1990-08-07 Joseph Arceneaux (jla@churchy.ai.mit.edu)
12804
12805 * dispextern.h: element bufp of screen_glyphs no longer dependent
12806 on X windows.
12807 * xdisp.c (display_text_line): Likewise.
12808
12809 * xfns.c (Fx_grab_pointer, Fx_ungrab_pointer): New subrs.
12810 (x_figure_window_size): Set pixel_width and pixel_height of
12811 screen, using font height and width.
12812
12813 * xfns.c: Vmouse_grabbed renamed Vmouse_depressed.
12814 * xterm.c: Likewise.
12815 (construct_mouse_event): Don't check mouse coordinates; this is
12816 done by the notice_mouse_motion. Don't grab the mouse here.
12817
12818 * dispnew.c (update_line): Set the pix_width and pix_height of the
12819 line. This fashion of doing so is temporary.
12820
12821 1990-08-06 Joseph Arceneaux (jla@churchy.ai.mit.edu)
12822
12823 * dispextern.h: screen_glyphs struct elements bottom_right_x,
12824 bottom_right_y changed to pix_width and pix_height.
12825 * scroll.c: Likewise.
12826 * dispnew.c: Likewise.
12827 (update_screen): Set top_left_x, top_left_y for X windows.
12828
12829 * xterm.h: Macros PIXEL_{WIDTH,HEIGHT} now use the display
12830 structure elements.
12831
12832 1990-08-05 Joseph Arceneaux (jla@churchy.ai.mit.edu)
12833
12834 * xfns.c (x_window_to_scrollbar): Return Lisp symbol in parameter
12835 PART_PTR, rather than string.
12836 Declare these symbols.
12837 New variable Vscreen_part, indicates which part of the screen the
12838 mouse is in.
12839
12840 * xterm.c (notice_mouse_motion): Do XQueryPointer first thing.
12841 Set Vmouse_event to Qnil.
12842 (construct_mouse_event): Don't check if mouse has moved or not.
12843 When returning cons, part is now already lisp symbol.
12844 (XTread_socket): Set Vmouse_window = Vscreen_part = Qnil when
12845 leaving screen, as well as setting x_mouse_x = x_mouse_y = -1.
12846
12847 * keyboard.c: Vmouse_window, Vmouse_event declared extern and no
12848 longer DEFVARed: they are already delclared in window.c
12849
12850 * screen.c (window_from_coordinates): Use Fnext_window, even if
12851 MULTI_SCREEN, to obtain the next window. This is an test.
12852 Also, new paramater part returns text or modeline symbol.
12853 (Flocate_window_from_coordinates): Pass &part to
12854 window_from_coordinates.
12855 (coordinates_in_window): Don't say modeline if window_height is 1,
12856 as this is likely to be the minibuffer.
12857
12858 1990-08-04 Joseph Arceneaux (jla@churchy.ai.mit.edu)
12859
12860 * screen.c (Fcoordinates_in_window_p): Doc fix. Simplified.
12861 (window_from_coordinates): New function.
12862 (Flocate_window_from_coordinates): Use it.
12863
12864 * keyboard.c (classify_object): New function for dealing with the
12865 input object. New symbol, mouse-motion, called here.
12866 Call to mouse-motion-handler now takes no parameters.
12867 (read_key_sequence): Use the new function. Don't set keybuf[0]
12868 to 0.
12869
12870 * xterm.c (init_input_symbols): Create all the Lisp symbols
12871 returned in the input stream.
12872 func_key_syms: New array to hold all symbols for function keys.
12873 (x_func_key_to_sym): Use this array.
12874 (notice_mouse_movement): New function for dealing with motion
12875 events.
12876 (XTread_socket): Use it here.
12877
12878 1990-08-02 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
12879
12880 * callproc.c (child_setup): Report error in chdir.
12881
12882 1990-08-01 Joseph Arceneaux (jla@churchy.ai.mit.edu)
12883
12884 * lisp.h: New macro XFLOATINT. extract_float declared.
12885 * floatfns.c (Ffloor): Call floor, not ceil.
12886 (extract_float): No longer static.
12887 * bytecode.c (Fbyte_code): Correctly handle floats in case Beqlsign.
12888
12889 1990-07-31 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
12890
12891 * keyboard.c (read_key_sequence): When downcasing letters,
12892 don't change the value returned in keybuf.
12893 (This is an experiment; it might be unpleasant in
12894 things such as C-h c, but it is an improvement
12895 for M-x global-set-key.)
12896
12897 1990-07-30 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
12898
12899 * eval.c: Doc fix.
12900
12901 1990-07-28 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
12902
12903 * s-iris*.h (SYSTEM_TYPE): Change silicon-graphics-unix to irix.
12904
12905 1990-07-26 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
12906
12907 * indent.c (Fmove_to_column): End-test was off by 1.
12908
12909 * abbrev.c (Fexpand_abbrev): Return nil if alloca arg would be neg.
12910
12911 1990-07-26 Joseph Arceneaux (jla@churchy.ai.mit.edu)
12912
12913 * xdisp.c (display_text_line): String to rope copy for inserting
12914 arrow text.
12915
12916 1990-07-25 Joseph Arceneaux (jla@churchy.ai.mit.edu)
12917
12918 * xdisp.c (display_mode_line): Check that the name has actually
12919 changed before calling x_set_name.
12920
12921 * ralloc.c (check_memory_limits): New function.
12922 Also check if new memory will be larger than elisp pointer.
12923 (r_alloc_sbrk): Call this function.
12924 (relocate_blocs_upward, relocate_blocs_downward): Eliminated.
12925 (r_alloc_sbrk): Use relocate_some_blocs instead of the eliminated
12926 functions.
12927
12928 * vm-limit.c (morecore_with_warning): Check if new memory larger
12929 than elisp pointer size.
12930
12931 1990-07-24 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
12932
12933 * keyboard.c (save_getcjmp, restore_getcjmp): New functions.
12934 (read_char): Use them around Fdo_auto_save.
12935 * process.c (read_process_output, exec_sentinel): Use them.
12936 * fileio.c (Fdo_auto_save): Run auto-save-hook.
12937
12938 1990-07-24 Joseph Arceneaux (jla@churchy.ai.mit.edu)
12939
12940 * dispnew.c (safe_bcopy): No longer static.
12941
12942 * ralloc.c (relocate_blocs_upward, relocate_blocs_downward): Use
12943 safe_bcopy.
12944
12945 * mem_limits.c: typedef SIZE.
12946
12947 1990-07-19 Joseph Arceneaux (jla@churchy.ai.mit.edu)
12948
12949 * fileio.c (Finsert_file_contents): Initialize how_much when exiting
12950 main loop.
12951
12952 * m/m-mips.h: Added stuff from the 18.56 version.
12953
12954 1990-07-18 Joseph Arceneaux (jla@churchy.ai.mit.edu)
12955
12956 * indent.c (Fmove_to_column): Set end to ZV.
12957
12958 1990-07-17 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
12959
12960 * editfns.c (init_editfns): Let envvar NAME override full name.
12961
12962 * buffer.c (list_buffers_1): Avoid error with list-buffers-directory.
12963
12964 1990-07-17 Joseph Arceneaux (jla@churchy.ai.mit.edu)
12965
12966 * buffer.c (list_buffers_1): Don't check list-buffers-directory.
12967
12968 1990-07-16 Joseph Arceneaux (jla@churchy.ai.mit.edu)
12969
12970 * xdisp.c (display_text_line): Don't print ellipsis if they're
12971 off the left edge.
12972
12973 1990-07-10 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
12974
12975 * s-386-ix.h: Define BROKEN_TIOCGETC.
12976
12977 1990-07-09 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
12978
12979 * m-pmax.h: Undef LD_SWITCH_MACHINE, change DATA_START
12980 and DATA_SEG_BITS.
12981
12982 1990-07-05 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
12983
12984 * s-iris3-6.h (HAVE_GETWD): Define this.
12985 (KERNEL_FILE): Change to /unix.
12986 (sigsetmask, sigblock, NEED_ERRNO, C_SWITCH_MACHINE): Turn off.
12987 (SIGIO): Don't undefine it.
12988 (LIBS_MACHINE): Remove -lbsd.
12989
12990 * minibuf.c (Fall_completions, do_completion): Treat nil as alist.
12991 (Ftry_completion): Likewise.
12992
12993 1990-07-01 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
12994
12995 * sysdep.c: Undefine TIOCGETC if BROKEN_TIOCGETC defined.
12996 * s-usg5-3.h, s-xenix.h: Define BROKEN_TIOCGETC.
12997
12998 1990-06-26 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
12999
13000 * process.c (Fopen_network_connection): Minor cleanup.
13001
13002 1990-06-20 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
13003
13004 * m-sun3.h: Add comments for dealing with 68881.
13005
13006 1990-06-19 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
13007
13008 * m-ibmps2-aix.h [__GNUC__]: Define LIB_STANDARD and C_DEBUG_SWITCH,
13009 and don't define LIBS_MACHINE.
13010 (HAVE_WAIT_HEADER): Define this.
13011 Also reordered definitions so recently added ones are together.
13012
13013 1990-06-17 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
13014
13015 * insdel.c (insert): Error if buffer would get too long.
13016 * fileio.c (Finsert_file_contents): Likewise.
13017
13018 1990-06-16 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
13019
13020 * syntax.c (scan_sexps_forward): Allow Squote inside symbols.
13021
13022 1990-06-16 Joseph Arceneaux (jla@geech)
13023
13024 * window.c (Fscroll_other_window): Don't unbind_to. Keep track of
13025 current_buffer and point explicitly.
13026
13027 1990-06-15 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13028
13029 * term.c: (cursor_to): Only add chars_wasted if not calling hook.
13030 (clear_end_of_line_raw): Likewise.
13031 (clear_end_of_line): Check that screen is termcap before using
13032 chars_wasted.
13033 (ins_del_lines): Eliminated local copybuf[].
13034 (calculate_ins_del_char_costs): Now has screen parameter.
13035 DCICcost: Change to char_ins_del_costs and defined with
13036 SCREEN_WIDTH (screen).
13037 DC_ICcost: Changed to char_ins_del_vector.
13038 * term.h: DCICcost no longer defined here. DC_ICcost no longer
13039 declared here.
13040 * dispnew.c: char_ins_del_cost defined here. char_ins_del_vector
13041 declared extern here.
13042
13043 1990-06-14 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13044
13045 Globally replaced screen_width with macro
13046 SCREEN_WIDTH (selected_screen).
13047 * dispnew.c (init_display): Don't set SCREEN_WIDTH, etc. from
13048 screen_width.
13049 (change_window_size): No longer check output_type and set
13050 ScreenRows.
13051
13052 1990-06-11 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
13053
13054 * indent.c (Findent_to): Don't fail to return value.
13055 (Fmove_to_column, Fcurrent_column): Doc fixes.
13056
13057 1990-06-06 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13058
13059 * keyboard.c (echo_prompt): Now uses glyphs.
13060 echobuf, echobuf_ptr: These variables now glyphs.
13061
13062 1990-06-05 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13063
13064 * fileio.c (Fdo_auto_save): Use glyphs_to_str_copy to set
13065 omessage.
13066 * alloc.c (Fgarbage_collect): Ditto.
13067
13068 * xdisp.c (message): message_buf set here, realloced if smaller
13069 than screen width.
13070 message_buf now type GLYF *. New variable message_buf_size holds
13071 its size.
13072 Use temp_buf for call to doprnt, then use str_to_glyph_cpy to set
13073 echo_area_glyphs.
13074
13075 * print.c (printchar, strout): Use message_buf_size. Convert to
13076 glyfs before assigning chars.
13077 (str_to_glyph_cpy, str_to_glyph_ncpy,
13078 glyph_to_str_cpy, glyph_to_str_ncpy): New functions.
13079
13080 1990-06-03 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13081
13082 * keyboard.c (command_loop_1): Clear this_command_key_count here.
13083 (Fread_key_sequence): And here.
13084 (read_key_sequence): Not here.
13085
13086 * dispnew.c (update_screen):
13087 Add missing else in handling cursor_in_echo_area.
13088 * xdisp.c (redisplay_window): Eliminate lpoint. Alter opoint
13089 if point should be changed permanently in the selected window.
13090
13091 * window.c (unshow_buffer): Don't set pt in selected window's buffer.
13092
13093 * xdisp.c (decode_mode_spec): Don't truncate buffer or file name.
13094
13095 * editfns.c (Finsert_buffer_substring): Don't fail to set beg, end.
13096
13097 * keyboard.c (command_loop_level): New variable.
13098 Used in place of RecurseDepth, but different meaning.
13099 (recursive_edit_1): New function.
13100 (Frecursive_edit): Call it.
13101 * minibuf.c (read_minibuf): Call recursive_edit_1.
13102 * xdisp.c (RecurseDepth): Variable deleted.
13103 display_minibuffer_message renamed echo_area_display.
13104
13105 * print.c: Include dispextern.h.
13106 (printchar, strout): Use message_buf.
13107
13108 * scroll.c (CalcIDCosts): Dynamically allocate ILcost, etc.
13109 (ILcost, DLcost, ILncost, DLncost): Now pointers.
13110 (do_scrolling): Use alloca for queue.
13111
13112 * term.c (term_init): selected_screen as arg to calculate_costs.
13113 (calculate_costs):
13114 Dynamically allocate chars_wasted, copybuf, DC_ICcost.
13115 Set RPov based on actual width.
13116 (chars_wasted, copybuf, DC_ICcost): Now pointers.
13117
13118 * xterm.c (x_term_init): Don't set dont_calculate_costs anymore.
13119
13120 1990-06-02 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13121
13122 * term.c (calculate_ins_del_char_costs, string_cost_one_line):
13123 Made static.
13124
13125 * dispnew.c: Declare scrolling_1;
13126
13127 * scroll.c (CalcIDCosts, CalcIDCosts1, CalcLID): Renamed
13128 calculate_ins_del_char_costs, ins_del_costs, and line_ins_del.
13129 CalcIDCosts1 and CalcLID also renamed.
13130 (calculate_scrolling): Now void.
13131
13132 * Global renaming: bf_modified -> MODIFF. CharAt -> CHAR_AT_POSITION.
13133 BufferSafe{Floor,Ceiling} -> BUFFER_{FLOOR,CEILING}_OF.
13134 SetPoint -> SET_PT.
13135
13136 * xterm.c (x_term_init): Don't CalcIDCosts here anymore.
13137
13138 1990-06-01 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13139
13140 * print.c: Include dispextern.h.
13141 (printchar, strout): Use message_buf.
13142
13143 * sysdep.c (get_screen_size): Don't use MscreenWidth, MscreenLenght.
13144 * term.c: Likewise.
13145
13146 * scroll.c (CalcIDCosts, CalcIDCosts1, CalcLID): These now take a
13147 screen argument.
13148 (CalcIDCosts): Dynamically allocate ILcost, etc.
13149 (ILcost, DLcost, ILncost, DLncost): Now pointers.
13150 (do_scrolling): Use alloca for queue.
13151
13152 * dispnew.c (remake_screen_structures): Allocate message_buf.
13153 Don't use MscreenWidth, MscreenLenght.
13154
13155 * xdisp.c: bf_cur replaced with current_buffer.
13156 Calls to SetBfx deleted.
13157 message_buf is now char *.
13158 (message): Use SCREEN_WIDTH macro as limit for doprnt.
13159
13160 * indent.c (current_column): Detect special case when point == BEGV.
13161
13162 * buffer.h (struct buffer_text): Component modified renamed to
13163 modiff. All refs changed to macros below.
13164 (MODIFF, BUF_MODIFF): New macros.
13165 Macro SetBfx removed.
13166 Macro SetPoint renamed SET_PT.
13167
13168 * fileio.c (Fexpand_file_name): Simplified.
13169
13170 1990-06-01 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
13171
13172 * dired.c: Doc fix.
13173
13174 1990-05-31 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13175
13176 * search.c (Fsearch_forward): Docstring fix.
13177
13178 1990-05-31 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
13179
13180 * dired.c: Comment added.
13181
13182 1990-05-31 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13183
13184 * process.c (Fprocess_connection): Return the type of a process
13185 object.
13186 (syms_of_process): Initialize pty_process and stream_process.
13187 Declare Fprocess_type.
13188 * process.h New element type to struct Lisp_Process.
13189
13190 * syntax.c (scan_sexps_forward): Initialize curlevel->last to -1.
13191
13192 1990-05-28 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13193
13194 * fileio.c (Finsert_file_contents): Use new variable how_much to
13195 hold read result.
13196
13197 1990-05-24 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13198
13199 * lread.c (read_char_exclusive): New subr.
13200
13201 1990-05-24 David Lawrence (tale@pogo.ai.mit.edu)
13202
13203 * fileio.c (file_executable_p): New function.
13204
13205 1990-05-23 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13206
13207 * insdel.c (make_gap): Only set BEG_ADDR if BUFFER_REALLOC was
13208 successful.
13209
13210 * editfns.c (syms_of_editfns): DEFVAR the new variables.
13211
13212 * eval.c (Finteractive_p): Don't skip the first frame if the
13213 function was compiled.
13214
13215 * print.c (print): Use ... only for conses, and instead of normal
13216 print.
13217
13218 1990-05-22 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13219
13220 * Renamed meta_flag meta_key.
13221
13222 * termopts.h: Comment changes.
13223
13224 1990-05-20 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13225
13226 * buffer.h: upcase_table and downcase_table are now Lisp_Objects.
13227 * alloc.c (mark_object, gc_sweep): Related changes.
13228 * casetab.c: Ditto.
13229
13230 1990-05-17 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
13231
13232 * minibuf.c (Fall_completions): Protect STRING from gc.
13233 Copy ALIST to TAIL to protect it.
13234
13235 * paths.h-dist: Doc fix.
13236
13237 1990-05-17 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13238
13239 * search.c (Flooking_at, search_buffer): Use new accessors.
13240 * indent.c (Fcurrent_column): Likewise.
13241 * minibuf.c (read_minibuf): Likewise.
13242 * regex.c (re_match_2): Use PTR_CHAR_POS.
13243 * editfns.c (Fbuffer_size, Fnarrow_to_region, Fbuffer_substring):
13244 (Fbuffer_string, Finsert_buffer_substring): Likewise.
13245 (save_restriction_restore): Likewise.
13246 * dispnew.c (direct_output_for_insert): Likewise.
13247 * fileio.c (Fwrite_region, Finsert_file_contents): Likewise.
13248 (Fdo_auto_save): Likewise.
13249 * insdel.c (move_gap, gap_left, gap_right, make_gap): Likewise.
13250 (InsCStr, del_range, modify_region): Likewise.
13251 * process.c (Fprocess_send_region): Likewise.
13252 * xdisp.c (try_window, try_window_id, display_text_line): Likewise.
13253 (redisplay): Likewise.
13254 * buffer.c (list_buffers_1): Likewise.
13255 * marker.c (marker_position, Fset_marker, set_marker_restricted):
13256 (Fmarker_position): Likewise.
13257 * window.c (unshow_buffer, Fset_window_configuration): Likewise.
13258 (Fset_window_buffer): Likewise.
13259
13260 * editfns.c (save_restriction_restore): Use a macro to alter point.
13261
13262 * lread.c (readchar): Use new accessors, and avoid knowing about
13263 the text field of a buffer.
13264 * window.c (Fpos_visible_in_window_p): Likewise.
13265
13266 * buffer.h (struct buffer): Make the syntax table a Lisp object.
13267 * alloc.c (mark_buffer): No need to treat it specially.
13268 * syntax.c (Fsyntax_table, Fset_syntax_table, Fdescribe_syntax):
13269 (Fmodify_syntax_entry): Adjust for this change.
13270 * buffer.c (reset_buffer_local_variables): Need not be special.
13271 (init_buffer_once): Make this slot a defaulted local variable.
13272 * syntax.h: Adjust macros for this change.
13273 (Vstandard_syntax_table): Define as macro, in buffer_defaults.
13274 * syntax.c (syms_of_syntax): Don't staticpro it here.
13275 (Fset_syntax_table): Set the flag in local_var_flags.
13276
13277 * buffer.h (struct text): Represent the buffer dimensions
13278 with new slots, memory, begv, pt, gpt, zv, z and gap_size.
13279 (BEGV, etc.): Use new slots.
13280 (CharAt): Likewise.
13281 (BufferSafeCeiling, BufferSafeFloor): Use new slots; fix old bugs.
13282 (bf_p1, bf_s1, etc.): Old macros deleted.
13283
13284 * buffer.c (Fget_buffer_create): Set up memory and new slots.
13285 (Fkill_buffer): Likewise.
13286
13287 * insdel.c (move_gap, gap_left, gap_right, make_gap): Update new slots.
13288 (del_range, InsCStr): Likewise.
13289 * fileio.c (Finsert_file_contents): Likewise.
13290 * window.c (temp_output_buffer_show): Likewise.
13291 * xdisp.c (decode_mode_spec, try_window_id): Likewise.
13292
13293 * insdel.c (make_gap): Complete rewrite. Arg is amount of new gap
13294 to create. All calls changed.
13295 (gap_left): New argument NEWGAP.
13296
13297 * buffer.c (Fset_buffer): Check for deleted buffer.
13298 (SetBfp): Don't check.
13299 (SetBfp, Frename_buffer): Local cleanups.
13300 * print.c (PRINTPREPARE): Use Fset_buffer.
13301
13302 * buffer.c (SetBfp): Don't bother with selected window or its point.
13303 * window.c (Fselect_window): Always set pointm of old window.
13304
13305 * editfns.c: Eliminate all use of DEFSIMPLE and DEFPRED.
13306 * indent.c, keyboard.c: Ditto.
13307
13308 * search.c (skip_chars): Eliminate PointLeft and PointRight.
13309 * cmds.c (SelfInsert): Likewise.
13310
13311 1990-05-16 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13312
13313 * xdisp.c (try_window): No return value.
13314 Fix calls to try_window.
13315 * Global variable RedoModes is now redraw_mode_line.
13316
13317 1990-05-13 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13318
13319 * keymap.c (Fdefine_key, Flookup_key): Local cleanups.
13320
13321 * sysdep.c (sys_suspend): Use save_signal_handlers and
13322 restore_signal_handlers to save and restore signal state.
13323
13324 * indent.c (Findent_to): Merge guts of indentation into here.
13325 (position_indentation): Scan with a pointer, for speed.
13326
13327 * casefiddle.c (operate_on_word): Just return the other end.
13328 (Fupcase_word, Fdowncase_word, Fcapitalize_word):
13329 Pass that value to casify_region.
13330
13331 * editfns.c (init_editfns): Store system and user names as
13332 strings to avoid arbitrary limits.
13333
13334 * keymap.c (describe_vector, describe_alist): Make elt_prefix
13335 and elt_describer responsible for indentation and newlines.
13336 Local cleanups.
13337 (describe_command): Do indentation and newline.
13338 (describe_map): Add space to end of prefix.
13339 * syntax.c (describe_syntax): Do indentation and newline.
13340
13341 1990-05-12 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
13342
13343 * process.c (create_process) [not USG]: Put subproc in pgrp 0.
13344
13345 1990-05-10 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13346
13347 * dispextern.h: new struct screen_glyfs replaces struct
13348 display_line.
13349 * screen.c: new screen elements current_glyfs, desired_glyfs, and
13350 temp_glyfs.
13351 * dispnew.c: (make_screen_glyfs, free_screen_glyfs,
13352 remake_screen_glyfs): New functions.
13353 (make_display_lines, new_display_line, return_display_line):
13354 Functions deleted.
13355 (change_screen_size, init_display): Use the new functions.
13356 (cancel_line, clear_screen_records, get_display_line):
13357 Rewritten for new data structures. get_display_line no longer
13358 returns anything.
13359 (preserve_other_columns, preserve_my_columns): Likewise.
13360 (cancel_my_columns, direct_output*): Likewise.
13361 (update_screen, update_line, quit_error_check, scrolling): Likewise.
13362 (scroll_screen_lines): Likewise.
13363 (rotate_vector, safe_bcopy): New subroutines.
13364 (line_hash_code, line_draw_cost): Cleaned up.
13365 Args are different, and hash computation too.
13366 (update_screen): Rearrange buffer-emptying code.
13367 * xdisp.c: (display_minibuf_message, redisplay): Rewritten for new
13368 structures.
13369 (display_text_line, display_mode_line): Likewise.
13370 (display_mode_element, display_string): Likewise.
13371 (decode_mode_spec): Local cleanups.
13372 * scroll.c (do_scrolling): Rewritten for new data structures.
13373 * xterm.c (XTflash): Use this new structure.
13374
13375 * editfns.c (in_accessible_range): New function.
13376 (Fgoto_char, save_restriction_restore): Use it.
13377 (save_excursion_save, Fcurrent_time_string): Local cleanups.
13378
13379 * process.c (Fprocess_kill_without_query): New arg; new return value.
13380 (count_active_processes): Function deleted.
13381
13382 * fileio.c (Finsert_file, Fwrite_region): Local cleanups.
13383
13384 * fns.c (Fsubstring): Local cleanup.
13385
13386 * keyboard.c (echo_prompt, echo_char, echo_dash, echo): New functions.
13387 (cancel_echoing): Likewise.
13388 (immediate_echo, echoptr): New variables.
13389 (command_loop_1, request_echo, get_char, read_key_sequence):
13390 (set_waiting_for_input, interrupt_signal): Related changes.
13391 (get_char): No more declaration of request_echo. Local cleanups.
13392
13393 (this_command_key...): New variables.
13394 (Fexecute_extended_command, Fthis_command_keys): Related changes.
13395 (init_keyboard, get_char): Likewise.
13396
13397 * macros.c (Fstart_kbd_macro): Local cleanup.
13398
13399 * minibuf.c (read_minibuf): No more delcaration of
13400 Frestore_screen_configuration.
13401
13402 * search.c (Fregexp_quote): Simplified.
13403
13404 1990-05-08 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13405
13406 * process.c (Fopen_network_stream): Also handle numeric inet
13407 addresses.
13408
13409 1990-05-06 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13410
13411 * alloca.c: #ifdef __STDC__ rather than X3J11/
13412
13413 1990-05-03 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
13414
13415 * fileio.c (Fmake_symbolic_link): Delete old file if permitted.
13416
13417 1990-05-02 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13418
13419 * data.c (Fstring_to_int): Delete disabled feature
13420 of accepting `yes' and `no'.
13421
13422 * xdisp.c (redisplay, redisplay_preserving_echo_area):
13423 Two functions replace DoDsp. All callers changed.
13424 (redisplay, redisplay_window): Eliminate `inhibit_hairy_id'.
13425 (redisplay_window): No return value. Local cleanups.
13426
13427 * alloc.c (Fmake_marker): Delete `modified' field.
13428 * insdel.c (adjust_markers): Likewise.
13429
13430 * abbrev.c (Fdefine_mode_abbrev): Clean up error message.
13431
13432 1990-05-01 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13433
13434 * xfns.c (Fx_draw_rectangle, Fx_erase_rectangle): Simplified.
13435
13436 * xterm.c (x_display_cursor): Don't check s->phys_x when drawing
13437 cursor.
13438
13439 * undo.c: New version.
13440 * undo.h: No longer exists.
13441 * alloc.c (Fgarbage_collect): Call truncate_undo_list.
13442 (syms_of_alloc): Define vars undo-threshold and undo-high-threshold.
13443 * buffer.c (Fget_buffer_create): Set undo_list to t or nil.
13444 (Fbuffer_disable_undo, Fbuffer_enable_undo): Likewise.
13445 (Fkill_buffer): Likewise.
13446 (init_buffer_once): Set up local variable buffer-undo-list.
13447 (syms_of_buffer): Likewise.
13448 * buffer.h: New element undo_list in struct buffer.
13449 * fileio.c (Finsert_file_contents): Store nil in undo_list.
13450
13451 * buffer.c: Variable bf_text deleted.
13452 (Fkill_buffer, SetBfp): Delete code that worked with it.
13453 (SetBfx): Now a macro in buffer.h
13454 * editfns.c (Fwiden, Fnarrow_to_region): Related changes.
13455 (save_restriction_save, save_restriction_restore): Likewise.
13456 (Finsert_buffer_substring): Likewise.
13457 * fileio.c (Fdo_auto_save): Likewise.
13458 * insdel.c (make_gap): Likewise.
13459 * lread.c (readchar): Likewise.
13460 * marker.c (Fmarker_position, marker_position): Likewise.
13461 (Fset_marker): Likewise.
13462 * xdisp.c (DoDsp): Likewise.
13463
13464 1990-04-30 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13465
13466 * buffer.h: New macro R_ALLOC_SET_BUFFER for declaring all the
13467 text pointers of a buffer to the relocating allocator.
13468 * buffer.c (Fbury_buffer, SetBfx, SetBfp): Use the macro.
13469 * editfns.c (Finsert_buffer_substring): ditto.
13470 * fileio.c (Fdo_auto_save): ditto.
13471 * insdel.c (make_gap): ditto.
13472 * xfns.c (adjust_scrollbars): Don't set bf_cur->text.
13473
13474 1990-04-26 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13475
13476 * minibuf.c: Declare active_screen struct screen *, not
13477 Lisp_Screen *.
13478
13479 1990-04-19 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13480
13481 * xterm.c (XTupdate_end): Only x_display_cursor if s is x_input_screen.
13482
13483 1990-04-19 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
13484
13485 * fns.c (Fy_or_n_p): If a C-g comes in and does not quit, quit by hand.
13486
13487 * buffer.c (Frename_buffer): Allow renaming to same name it has.
13488
13489 1990-04-19 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13490
13491 * xfns.c (Fx_open_connection): Attach xrdb to x_current_display.
13492
13493 1990-04-17 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13494
13495 * xterm.c (dumpborder): Now only used for X10.
13496 (highlight, unhighlight): New functions for X11.
13497
13498 1990-04-17 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
13499
13500 * cm.c (Wcm_init): Return -2 if screen size not specified.
13501 * term.c (term_init): Special error message for that case.
13502
13503 1990-04-16 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
13504
13505 * s-sunos4.h, s-sunos4shr.h (SYSTEM_MALLOC): Define it.
13506
13507 1990-04-15 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13508
13509 * xfns.c (Fx_get_resource): Concatenate invocation_name before
13510 the resource tag.
13511 (Fx_create_screen): Use the latest resource id's.
13512
13513 1990-04-13 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13514
13515 * xfns.c (Fx_get_resource): New subr.
13516 (Fx_open_connection): Call x_load_resources. New parameter
13517 xrm_string.
13518 * xrdb.c: New file for doing resource manager stuff.
13519
13520 * xscrollbar.h: New file for scrollbar bitmaps.
13521
13522 * xselect.h: New file for the X selection stuff.
13523
13524 * ymakefile: Take note of these new files.
13525
13526 1990-04-10 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13527
13528 * xterm.c (x_term_init): Use MAXPATHLEN.
13529
13530 1990-04-09 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
13531
13532 * buffer.c (list_buffers_1): Get filename from list-buffers-directory.
13533
13534 1990-04-06 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13535
13536 * screen.c (coordinates_in_window): Return -1 if in modeline of
13537 window.
13538 (Fcoordinates_in_window_p): Return Qt if in modeline of window.
13539 (Flocate_window_from_coordinates): Use next_screen_window if
13540 MULTI_WINDOW is defined.
13541
13542 1990-04-05 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13543
13544 * xterm.c (construct_mouse_event): Deal with the motion events
13545 first. Only grab the mouse when in the scrollbar.
13546
13547 1990-04-04 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13548
13549 * screen.c (coordinates_in_window): Include mode line as part of
13550 window.
13551
13552 * xterm.c (XTread_socket): Initialize nbytes to 0.
13553 (x_display_cursor): Don't draw if screen not selected.
13554
13555 * xdisp.c (DoDsp): Additional checks for screen being visible.
13556
13557 1990-04-03 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13558
13559 * editfns.c (Fmessage): If there is a global minibuffer screen,
13560 raise it before displaying the message.
13561
13562 * window.c (window_loop): Parameter SCREENS now affects which
13563 screen is scanned for windows. All subrs calling window_loop must
13564 pass a Lisp_Object here now.
13565
13566 1990-04-01 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13567
13568 * window.c (window_loop): Additional parameter mini to control
13569 minibuffer selection or not.
13570 (Fget_lru_window):
13571 (Fget_largest_window):
13572 (Fget_buffer_window):
13573 (Fdelete_other_windows):
13574 (Fdelete_windows_on):
13575 (Freplace_buffer_in_windows): Use that parameter.
13576
13577 1990-03-29 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13578
13579 * screen.c (Fselect_screen): Raise the selected screen.
13580
13581 * window.c (Fget_buffer_window):
13582 (Fget_largest_window):
13583 (Fget_lru_window): New parameter all_screens.
13584 (Fdisplay_buffer): Use the new param in Fget_lru_window,
13585 Fget_buffer_window, and Fget_largest_window.
13586 (Fscroll_other_window): Use new param in Fget_buffer_window.
13587 * buffer.c (Fother_buffer): ditto.
13588
13589 * xterm.c (x_display_cursor): Always draw the cursor if ON is
13590 true. Don't check if the screen S is selected or equal to
13591 mouse-screen.
13592
13593 * xfns.c (Fx_track_pointer): Don't turn off cursor, just call
13594 x_display_cursor.
13595
13596 1990-03-28 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13597
13598 * data.c (Fmake_local_variable): Give the variable value nil if
13599 unbound.
13600
13601 * window.c (Fnext_window, Fprevious_window): For MULTI_SCREEN,
13602 check if Vglobal_minibuffer_screen is non-nil and maybe call
13603 next_screen.
13604
13605 * screen.c (Fscreen_selected_window):
13606 (Fscreen_root_window): If screen is nil, use selected-screen.
13607
13608 1990-03-27 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13609
13610 * xterm.c (XTread_socket): SET_SCREEN_GARBAGED which returning
13611 symbol which causes DoDsp to be invoked.
13612 * keyboard.c (read_key_sequence): Don't SET_SCREEN_GARBAGED here.
13613
13614 * screen.h: New macro SET_SCREEN_GARBAGED.
13615
13616 * xfns.c:
13617 * window.c:
13618 * sysdep.c:
13619 * keyboard.c:
13620 * dispnew.c: Use the new macro.
13621
13622 1990-03-25 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13623
13624 * xfns.c (Fx_own_selection): Only take one argument, string.
13625
13626 1990-03-24 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13627
13628 * xfns.c (select_visual): Catch bullshit machines whose hardware
13629 doesn't support the X server pixel depth by looking at colormap_size.
13630 (x_decode_color): Use x_screen_planes to check for color.
13631
13632 1990-03-23 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13633
13634 * xterm.c (x_display_cursor): Try using vertical bar cursor.
13635 (clear_cursor): Call x_display_cursor for X11.
13636
13637 * xfns.c: Zotzed Vx_pointer_mask.
13638 (Fx_track_pointer): Call x_display_cursor if we just
13639 wasted the cursor. Break out of loop if no display line.
13640 Use mode line cursor if we're there.
13641 (x_y_pos): New function.
13642 (x_set_font): Dont' set x_font_{width,height}, they are gone.
13643
13644 1990-03-22 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13645
13646 * xfns.c (Fx_track_pointer): Check that s == selected_screen each
13647 time through loop. If event is nil, read mouse position.
13648
13649 * keyboard.c (get_char): DoDsp only if selected_screen visible.
13650
13651 * xterm.c (XTread_socket): Mark screen as visible only on expose
13652 event.
13653
13654 * emacs.c (main): Check here for "-d" option and set display_arg.
13655 * dispnew.c (init_display): Set Vwindow_system, etc. if display_arg.
13656
13657 1990-03-21 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13658
13659 * keyboard.c (read_key_sequence): Don't DoDsp if the screen was
13660 just unmapped.
13661 (command_loop_1): Call the mouse motion handler before calling
13662 read_key_sequence.
13663 (interrupt_signal): Fixed typo checking screen type.
13664
13665 * xfns.c (Fx_track_mouse): Don't crash because of null display
13666 line. Don't set obj til call to get_char.
13667
13668 * xterm.c (x_term_init): Disable SIGWINCH here.
13669
13670 * fns.c (Fmember): New subr.
13671
13672 * dispnew.c (init_display): Don't check env variable DISPLAY to
13673 set Vwindow_system. Now done in startup.el.
13674
13675 * emacs.c: Removed variables xargc, xargv.
13676
13677 1990-03-20 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13678
13679 * xfns.c (Fx_track_pointer): Go faster.
13680
13681 * screen.h: New macro SCREENP.
13682
13683 * window.c: (Fminibuffer_window): Rewritten.
13684
13685 1990-03-19 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
13686
13687 * sysdep.c (perror): Control with HAVE_PERROR as well as HPUX.
13688 * s-hpux.h (HAVE_PERROR): Define it.
13689
13690 1990-03-19 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13691
13692 * keyboard.c (command_loop_1): Restructured handling of X event
13693 things.
13694 (read_key_sequence): Handle new `unmapped-screen' symbol with new
13695 Vunmap_screen_hook.
13696
13697 * xterm.c (XTread_socket): Return unmapped-screen symbol if the
13698 window for UnmapNotify events.
13699
13700 * lread.c (Feval_region): GCPRO opoint.
13701
13702 1990-03-16 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13703
13704 * keyboard.c (command_loop_1): Call mouse-motion handler with
13705 argument. Also, don't call undo-boundary.
13706
13707 * process.c (create_process): Set the process group for BSD at
13708 the same time as for USG.
13709
13710 1990-03-14 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13711
13712 * xterm.c (x_new_selected_screen): Set x_input_screen here.
13713
13714 1990-03-11 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13715
13716 * xterm.c: Vx_mouse_grabbed now Vmouse_grabbed.
13717 (XTread_socket): Generate exited-window symbols on LeaveNotify
13718 even if screen is focused.
13719
13720 * xfns.c: Vx_mouse_grabbed now Vmouse_grabbed.
13721 (outline_region): Now static.
13722 (Fx_track_pointer): Check x_mouse_screen == s in loop.
13723
13724 1990-03-10 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13725
13726 * xterm.c (encode_mouse_button): Correctly get the button from
13727 Motion events.
13728
13729 * xfns.c (x11_encode_mouse_button): Nuked.
13730 (encode_mouse_button, Fx_mouse_events, Fx_get_mouse_event): #if 0'd.
13731
13732 * keyboard.c (get_char): Re-set obj if we've keyboard-translated
13733 c.
13734
13735 1990-03-08 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13736
13737 * xterm.c (x_focus_screen): no longer static.
13738 (x_error_handler): Use XDefaultIOError.
13739
13740 * screen.c (Ffocus_screen): New subr, removed Fscreen_has_focus.
13741 (Fselect_screen): New, optional parameter no_enter.
13742 (Frestore_screen_configuration):
13743 (Fdelete_screen): Pass second parm Qnil to Fselect_screen.
13744
13745 * window.c (Fdisplay_buffer, Fset_window_configuration): Pass
13746 second parm Qnil to Fselect_screen.
13747
13748 1990-03-07 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13749
13750 * screen.c (Fscreen_has_focus): New subr.
13751 (Fselect_screen): Use x_focus_on_screen to physically select the
13752 screen.
13753
13754 1990-03-06 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13755
13756 * xfns.c (x_set_mouse_position): Moved to xterm.c.
13757
13758 * fileio.c (Fremove_directory): New subr.
13759
13760 * screen.c (Frelease_focused_screen): Just call x_unfocus_screen.
13761
13762 * xterm.c (XTread_socket): On FocusOut, if s isn't mouse screen,
13763 return exited-window. On LeaveNotify, simplify if expression for
13764 dumpborder. Reworked FocusIn/FocusOut events.
13765 (x_unfocus_screen): Check that screen is x_focus_screen.
13766 (x_set_mouse_position): Moved from xfns.c. Use new macro
13767 XWarpPointer.
13768 * xterm.h: New macro XWarpPointer.
13769
13770 * buffer.c: Replaced Fbuffer_flush_undo with
13771 Fbuffer_disable_undo.
13772 * process.c: Ditto.
13773
13774 1990-03-05 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13775
13776 * xterm.c (XTupdate_end): Use parameter s rather than
13777 updating_screen.
13778 (XTread_socket): On EnterNotify, don't check s != focus_screen
13779 before selecting. On Focus In/Out don't set/reset mouse_screen.
13780
13781 1990-03-04 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13782
13783 * eval.c: If using X windows, include xterm.h.
13784 (error): TOTALLY_UNBLOCK_INPUT if using X.
13785
13786 * xterm.h: BLOCK_INPUT, UNBLOCK_INPUT: No signal stuff, just inc
13787 and decrement x_input_blocked.
13788
13789 * xfns.c (adjust_scrollbars): Don't BLOCK_INPUT.
13790 (x_set_font): Check result of x_new_font. Call error if nonzero.
13791 (x_set_icon_type): Check result of x_*_icon, maybe call error.
13792
13793 * screen.c (Fdeiconify_screen): Use x_make_screen_visible rather
13794 than x_deiconify_screen. Return screen.
13795 (Fmake_screen_visible): Don't raise it here. Return screen.
13796
13797 * xterm.c (XTwrite_glyfs): Don't show cursor if screen is
13798 global-minibuffer-screen.
13799 (x_new_selected_screen): Do dumpborder and check auto-raise here,
13800 rather than XEvent switch.
13801 (x_deiconify_screen): No longer exists.
13802 (x_do_pending_expose, x_clear_cursor):
13803 (x_invert_screen, scraplines, stufflines, x_bitmap_icon):
13804 (x_text_icon, x_new_font): Don't BLOCK_INPUT.
13805 (XTins_del_lines): BLOCK_INPUT here.
13806 (XTupdate_end): Don't turn on cursor if minibuffer-screen.
13807 (XTread_socket): On MotionNotify, just that screen is selected before
13808 processing.
13809 (XTtopos): If updating_screen, just set x and y, don't flush.
13810 (x_bitmap_icon):
13811 (x_text_icon):
13812 (x_new_font): Return 1 if failed, don't call error.
13813 (x_make_screen_visible): Raise the screen as well.
13814
13815 1990-03-02 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13816
13817 * screen.c (Frelease_focused_screen): Just check that screen is
13818 selected.
13819
13820 1990-02-28 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13821
13822 * screen.c (Fselect_screen_focused, Frelease_focused_screen): New
13823 subrs.
13824 * xterm.c (x_focus_on_screen, x_unfocus_screen): New procedures
13825 to implement focusing.
13826
13827 1990-02-28 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
13828
13829 * casefiddle.c: Doc fix.
13830
13831 1990-02-28 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13832
13833 * xterm.h: Redefined BLOCK_INPUT and UNBLOCK_INPUT to use sigblock
13834 and sigsetmask if available.
13835 * xterm.c: Declare BLOCK_INPUT_mask if have SIGIO and FIONREAD.
13836
13837 1990-02-27 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13838
13839 * minibuf.c (Fread_from_minibuffer): Initialize pos to 0.
13840
13841 1990-02-25 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13842
13843 * keyboard.c (read_key_sequence): Handle mapped-screen event
13844 symbol by calling new hook Vmap_screen_hook.
13845
13846 * xterm.c (x_make_screen_invisible): Use the new Xlib function
13847 XWidthdrawWindow.
13848 (x_iconify_screen): Use the new Xlib function XIconifyWindow.
13849 (XTread_socket): Return mapped-screen symbol to signal
13850 mapped-screen events.
13851
13852 1990-02-23 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13853
13854 * keyboard.c (command_loop_1): Check the character for width 1
13855 before doing direct_output_forward, as well as the cursor position
13856 on the screen.
13857
13858 * xdisp.c (DoDsp): Use redisplay_windows rather than
13859 redisplay_all_windows, which was removed.
13860
13861 1990-02-22 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
13862
13863 * unexencap.c: New file, waiting for papers.
13864
13865 1990-02-22 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13866
13867 * keyboard.c: Removed much debugging stuff.
13868 * xterm.c: Removed much debugging stuff.
13869 (x_error_handler): For X11, if caught BadAlloc error while
13870 converting selection (note new variable x_converting_selection),
13871 just set new variable x_selection_alloc_error.
13872
13873 * xfns.c: Massive changes for crufty selection processing details.
13874 New X atoms: Xatom_clipboard, Xatom_delete, Xatom_insert_selection,
13875 Xatom_insert_property, Xatom_pair.
13876
13877 1990-02-21 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13878
13879 * keyboard.c (kbd_buffer_store_char): Check NULL objects.
13880
13881 * xterm.c (XTread_socket): Correctly advance bufp for all KeyPress
13882 events.
13883
13884 1990-02-20 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13885
13886 * keyboard.c (kbd_buffer_get_char): Use KBD_BUFFER_SIZE rather
13887 than sizeof kbd_buffer.
13888 (read_key_sequence): Upon redraw-display symbol, set
13889 screen_garbaged.
13890
13891 * xterm.c (XTread_socket): On EnterNotify events, make sure to
13892 return mouse event for both scrollbars and windows.
13893
13894 1990-02-19 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
13895
13896 * casefiddle.c (casify_region): Move the new statement.
13897
13898 1990-02-19 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13899
13900 * casefiddle.c (casify_region): Return if beginning and end same.
13901
13902 1990-02-18 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13903
13904 * keyboard.c (kbd_buffer_store_char): Use KBD_BUFFER_SIZE rather
13905 than sizeof kbd_buffer.
13906
13907 * fns.c (Fy_or_n_p): Only accept ints from get_char.
13908
13909 1990-02-18 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
13910
13911 * minibuf.c (Fread_from_minibuffer): New arg POSITION.
13912
13913 * unexsunos4.c: New file. Waiting for papers.
13914 * s-sunos4shr.h: New file.
13915
13916 * emacs.c (main) [RUN_TIME_REMAP]: Call run_time_remap.
13917
13918 * ymakefile (LD): Let config file override with LD_CMD.
13919
13920 1990-02-14 Joseph Arceneaux (jla@albert.ai.mit.edu)
13921
13922 * keyboard.c (read_avail_input): pass read_socket_hook
13923 KBD_BUFFER_SIZE rather than doing sizeof (buf).
13924
13925 * xterm.c (XTread_socket): Set event.type = MotionNotify when
13926 entering screen or scrollbar to fake motion event.
13927
13928 1990-02-13 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13929
13930 * window.c (next_screen, prev_screen): moved to screen.c
13931 (Fnext_window): If mini non-nil, count the separate minibuffer
13932 screen.
13933 * screen.c (Fnext_screen): new subr.
13934
13935 1990-02-12 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
13936
13937 * xdisp.c (display_text_line, try_window, try_window_id, DoDsp):
13938 Don't display overlay arrow on more than one line in a window.
13939
13940 1990-02-12 Joseph Arceneaux (jla@albert.ai.mit.edu)
13941
13942 * doprnt.c (doprnt): Expand size of tembuf to 512.
13943
13944 1990-02-10 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
13945
13946 * minibuf.c (Fread_no_blanks_input): Make second arg optional.
13947
13948 1990-02-09 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13949
13950 * keyboard.c (get_char): Remember to set obj when executing macro.
13951 (read_key_sequence): Handle the exited-scrollbar symbol.
13952 Compare obj, not read_key_sequence_cmd.
13953
13954 * xterm.c (x_make_screen_visible, x_deiconify_screen): Check
13955 window-manager variable.
13956 (x_make_screen_invisible, x_iconify_screen): Don't use new R4
13957 calls (they crash), do it ourselves.
13958 (XTread_socket): Return exited-scrollbar symbol when doing so.
13959
13960 1990-02-08 Joseph Arceneaux (jla@albert.ai.mit.edu)
13961
13962 * xterm.c (construct_mouse_event): Rewritten to do mouse-motion
13963 compression. All mouse processing now done here.
13964 Also, just use nil and t for x-mouse-grabbed. Record buttons
13965 pressed in new variable x_mouse_grabbed. XGrabPointer on button
13966 depression.
13967 * xfns.c (Fx_horizontal_line): use x_mouse_grabbed.
13968
13969 1990-02-07 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13970
13971 * xdisp.c (DoDsp): If only updating selected screen, but there is
13972 a minibuffer screen, update it as well.
13973
13974 1990-02-06 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13975
13976 * xfns.c (Fx_pixel_width, Fx_pixel_height): New subrs.
13977 * xterm.h: New components pixel_width, pixel_height, to x_display.
13978 * xterm.c (XTread_socket): On configure notify, set these components.
13979
13980 * window.c (Fset_window_configuration): Select the screen of the
13981 root window if it's not the selected_screen.
13982 * minibuf.c (read_minibuf): Remove all the screen selection stuff,
13983 now that this is integrated in Fset_window_configuration.
13984
13985 1990-02-05 Joseph Arceneaux (jla@churchy.ai.mit.edu)
13986
13987 * screen.h: Declare Vglobal_minibuffer_screen.
13988 * xdisp.c (DoDsp): Set all_windows if using global-minibuffer-screen.
13989
13990 1990-02-03 Joseph Arceneaux (jla@geech)
13991
13992 * window.c (Fset_window_configuration): Make sure to set
13993 window->next to nil for a minibuffer-only screen.
13994
13995 * screen.c (make_minibuffer_screen): Set mini_window->next nil.
13996
13997 1990-02-01 Joseph Arceneaux (jla@albert.ai.mit.edu)
13998
13999 * screen.c (make_screen): Set wants_modeline elt to 1.
14000
14001 * window.c (Fset_window_configuration): Use screen->root_window
14002 as arg to delete_all_subwindows rather than minibuf_window->prev.
14003
14004 * minibuf.c (read_minibuf): Don't unwind with
14005 Frestore_screen_configuration. Save selected_screen if different
14006 than minibuf screen, and re-select it after reading minibuf.
14007 * screen.c: #if 0 Fscreen_configuration,
14008 Frestore_screen_configuration.
14009
14010 1990-02-01 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
14011
14012 * m-ibmps2-aix.h: Undef NEED_SIOCTL.
14013 (SIGN_EXTEND_CHAR): Cast to `signed char'.
14014
14015 1990-01-28 Joseph Arceneaux (jla@churchy.ai.mit.edu)
14016
14017 * xfns.c (Fx_track_pointer): rewrote this to loop while there are
14018 mouse events.
14019
14020 * xterm.c (XTread_socket): Return left-window-event symbol upon
14021 LeaveNotify.
14022 * keyboard.c (read_key_sequence): Handle this symbol.
14023
14024 1990-01-27 Joseph Arceneaux (jla@churchy.ai.mit.edu)
14025
14026 * xterm.c (x_display_cursor): Use dumpglyfs with SPACEGLYF for
14027 cursor, as `XFillRectaogle's kill HP-BSD server.
14028
14029 * xterm.h: Added nontext_cursor, modeline_cursor to x_display
14030 structure.
14031 * xfns.c (x_set_mouse_color, Fx_track_pointer): Changes to use
14032 nontext_cursor.
14033
14034 1990-01-25 Joseph Arceneaux (jla@albert.ai.mit.edu)
14035
14036 * xterm.h: Changed the face structure for X11 to handle GCs and
14037 pixmaps.
14038
14039 * xterm.c (XTread_socket): Return a motion event when mouse enters
14040 scrollbar or window.
14041 (x_make_screen_invisible): Use the new X11R4 function XWithdrawWindow.
14042 (x_iconify_screen): Use the X11R4 function XIconfifyWindow.
14043 (dumpglyfs): Use the new face structure.
14044
14045 * xfns.c (install_vertical_scrollbar, install_horizontal_scrollbar):
14046 Accept EnterNotify events. Use XMapSubwindows rather than mapping
14047 each one.
14048 (Fx_set_face_font): New subr for X11 to set face GC.
14049
14050 1990-01-25 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
14051
14052 * dispnew.c (direct_output_for_insert): Give up if buf in 2 windows.
14053
14054 * keyboard.c (command_loop_1):
14055 Dumb bugs disabled special fast display for character motion.
14056
14057 * xdisp.c (DoDsp): For cursor motion within line,
14058 hpos result from compute_motion is relative to window.
14059
14060 1990-01-24 Richard Stallman (rms@albert.ai.mit.edu)
14061
14062 * eval.c (Fmacroexpand): Handle explicit macros ((macro ...) ...).
14063
14064 1990-01-18 Joseph Arceneaux (jla@spiff)
14065
14066 * undo.c (Fundo_more): Fixed typo.
14067
14068 1990-01-16 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
14069
14070 * xdisp.c (display_text_line): When checking HPOS for continuation
14071 line, compensate for w->left.
14072
14073 1990-01-15 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
14074
14075 * dispnew.c [no FIONREAD]: Undefine SIGIO.
14076
14077 * buffer.c (SetBfp): Use XTYPE to test for no selected window yet.
14078
14079 * editfns.c, dispnew.c, fileio.c, process.c, sysdep.c, xterm.c:
14080 Uniformly let NEED_TIME_H control use of time.h instead of sys/time.h.
14081
14082 * xterm.h (TOTALLY_UNBLOCK_INPUT, UNBLOCK_INPUT): Don't use
14083 SIGIO if no FIONREAD.
14084
14085 1990-01-15 Joseph Arceneaux (jla@spiff)
14086
14087 * xfns.c (x_set_mouse_color): Set non-text pointer shape with new
14088 variable Vx_nontext_pointer_shape.
14089
14090 * keyboard.c: More checks for evil bug which trashes kbd_*_ptr.
14091
14092 * m/hp300bsd.h: Try using BSD load average stuff.
14093
14094 1990-01-11 Joseph Arceneaux (jla@spiff)
14095
14096 * xfns.c (x_draw_pixmap): New routine.
14097
14098 1990-01-10 Jim Kingdon (kingdon@pogo)
14099
14100 * m/hp300bsd.h: New file
14101
14102 1990-01-08 Joseph Arceneaux (jla@spiff)
14103
14104 * xfns.c (Fx_window_id): New subr.
14105
14106 * screen.c (make_screen): Set wants_modeline elt to mini_p.
14107 If mini_p 0, then set root_window->next to nil.
14108
14109 1990-01-08 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
14110
14111 * editfns.c (Fchar_after): Set N after coercing marker.
14112
14113 1990-01-06 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
14114
14115 * buffer.c (Fkill_all_local_variables): Force mode line update.
14116
14117 1990-01-05 Joseph Arceneaux (jla@spiff)
14118
14119 * insdel.c: Declare Vfirst_change_function.
14120
14121 * keyboard.c (read_key_sequence): Function keys are now lisp symbols.
14122 (kbd_buffer_store_char): Abort if store pointer past
14123 buffer. Temproarry; This shouldn't be able to happen.
14124 (read_key_sequence): #ifdef HAVE_X_WINDOWS code
14125 which handles complex objects.
14126 (command_loop_1): Check not termcap screen before
14127 processing non-char input.
14128 (kbd_{store,fetch}_char): More debugging checks.
14129
14130 * screen.c (make_screen): Set root_window height to 9 if mini_p.
14131 (make_minibuffer_screen): Set the mini window's next,
14132 prev, and screen elements.
14133
14134 * xterm.c (x_func_key_to_sym): New function, uses new variable
14135 func_key_syms.
14136 (XTread_socket): Use this in KeyPress event for function keys.
14137 (XTflash): Draw solid rectangle in middle of screen.
14138 (x_set_offset): Set the size hints as well when doing
14139 this.
14140 (XTflash): Just dumpglyfs instead of redrawing the
14141 screen after flashing the rectangle.
14142
14143 * lread.c: (syms_of_lread): defsubr Fread_event.
14144
14145 1990-01-04 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
14146
14147 * buffer.h, buffer.c (Vfirst_change_function): New Lisp variable.
14148 * insdel.c (signal_before_change): Call that function.
14149
14150 * keyboard.c (cmd_error): Don't crash if TAIL is nil.
14151
14152 1989-12-31 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
14153
14154 * minibuf.c: Doc fixes.
14155
14156 1989-12-28 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
14157
14158 * process.c (create_process): Unhold SIGCHLD in the child.
14159
14160 1989-12-27 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
14161
14162 * process.c (create_process): Treat HPUX like BSD for sigsetmask.
14163
14164 1989-12-25 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
14165
14166 * fns.c (Fmapconcat): Gcpro SEP around mapcar1.
14167
14168 1989-12-23 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
14169
14170 * dispnew.c (get_display_line): Don't touch X data if not using X.
14171
14172 * syntax.c (Fscan_sexps): Fix fatal documentation typo.
14173
14174 * lread.c: Include commands.h.
14175
14176 * xterm.c (construct_mouse_event): Delete unreached return at end.
14177 (x_wm_set_size_hint): #if 0 some broken code.
14178
14179 * cmds.c (SelfInsert): Set HAIRY if have before or after change hooks.
14180 * editfns.c (Fsubst_char_in_region, Ftranslate_region):
14181 Call signal_after_change for chars changed.
14182 * undo.c (Fundo_more): When undoing Uchange, do signal_after_change.
14183 * casefiddle.c (casify_region): Do modify_region before the change,
14184 signal_after_change afterward.
14185
14186 * insdel.c (prepare_to_modify_buffer): Call signal_before_change.
14187 (del_range, InsCStr): Call signal_after_change.
14188 (signal_after_change, signal_before_change): New functions.
14189
14190 1989-12-20 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
14191
14192 * dispnew.c (init_display) [VMS]: Downcase terminal type.
14193
14194 1989-12-17 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
14195
14196 * sysdep.c: Use NEED_SIOCTL to control use of sioctl.h.
14197 * m/m-mips.h, m/m-iris4d.h: Define that.
14198
14199 * m/m-ibmps2-aix.h (NEED_SIOCTL, HAVE_UNION_WAIT, HAVE_PTYS): Define.
14200 (HAVE_SYSVIPC, HAVE_SOCKETS, X_DEFAULT_FONT): Define.
14201 (sigsetmask): #undef this.
14202
14203 1989-12-15 Joseph Arceneaux (jla@spiff)
14204
14205 * lread.c (Fread_char): Catch error if read non-char.
14206 (Fread_event): New subr. Return any input object.
14207
14208 1989-12-14 Joseph Arceneaux (jla@spiff)
14209
14210 * xfns.c: New variable Vx_no_window_manager.
14211 (Fx_track_pointer): If bufp < 0, abort.
14212
14213 * xterm.c (XTread_socket): When leaving window, set x_mouse_x and
14214 x_mouse_y to -1.
14215
14216 1989-12-13 Joseph Arceneaux (jla@spiff)
14217
14218 * xterm.c (XTread_socket): On ConfigureNotify events, return
14219 "redraw-screen" symbol.
14220 (dumpborder): Only do border stuff if x-no-window-manager non nil.
14221 Also check if there is a tracking rectangle.
14222 (XTupdate_begin): If there is a mouse tracking rectangle, erase
14223 it.
14224 * keyboard.c (read_key_sequence): Return -2 for symbols.
14225 (command_loop_1): DoDsp when 'redraw-screen arrives as input.
14226 For mouse events, call Fexecute_mouse_event with
14227 read_key_sequence_cmd instead of Vmouse_event.
14228
14229 1989-12-08 Joseph Arceneaux (jla@spiff)
14230
14231 * process.c (create_process): For not USG, properly set the
14232 process group.
14233
14234 1989-12-07 Joseph Arceneaux (jla@spiff)
14235
14236 * term.c (topos): Under X Windows, abort if topos_hook not
14237 correct. Temporary.
14238
14239 * xfns.c (Fx_horizontal_line): New subr.
14240
14241 1989-12-05 Joseph Arceneaux (jla@spiff)
14242
14243 * keyboard.c (Fexecute_mouse_event): Don't set Vmouse_window here
14244 for X11.
14245
14246 * xterm.c (construct_mouse_event): Vx_mouse_grabbed now indicates
14247 which keys are depressed.
14248 (construct_mouse_event): Set Vmouse_window here.
14249
14250 1989-12-04 Joseph Arceneaux (jla@spiff)
14251
14252 * screen.c (coordinates_in_window): New function.
14253 (Fcoordinates_in_window_p): Rewritten to use above.
14254
14255 * dispextern.h: New element bufp for display_line structure when
14256 using X windows.
14257 * xdisp.c (redisplay_window): Set this to the position in the
14258 buffer of the first char in this display line.
14259 * dispnew.c (get_display_line): Set this to -1 here.
14260
14261 1989-12-03 Joseph Arceneaux (jla@spiff)
14262
14263 * alloc.c: Upped NSTATICS from 200 to 256.
14264
14265 * xterm.c (XTread_socket): Report MotionNotify events only if
14266 mouse has changed character position. Call x_read_mouse_position.
14267 Set Vmouse_event here.
14268 * xfns.c (x_read_mouse_position): Set new global variables
14269 x_mouse_x and x_mouse_y.
14270
14271 * keyboard.c: Vignore_mouse_events: New variable.
14272
14273 * syntax.c (Fscan_sexps): Doc change.
14274
14275 * lread.c (Fread_char): Return only chars. If new variable
14276 Vignore_mouse_events non nil, execute any mouse events which
14277 appear.
14278
14279 1989-12-01 Joseph Arceneaux (jla@spiff)
14280
14281 * xfns.c (Fx_track_pointer): Draw half-sized rectangles for '\n'.
14282 (x_rectangle): Draw half-size if negative argument.
14283
14284 * xterm.c (XTread_socket): abort if garbage collecting when doing
14285 mouse events.
14286
14287 * ymakefile: #define FLOATSUP if LISP_FLOAT_TYPE defined.
14288
14289 * emacs.c (main): If BSD, set pgrp to pid.
14290
14291 1989-11-30 Joseph Arceneaux (jla@spiff)
14292
14293 * callint.c (Fcall_interactively): For case 'e', set varies[i] to
14294 avoid entering in the command history.
14295
14296 * xterm.c: Removed the function x_indicate_pointer_char.
14297 (XTread_socket): When leaving window, erase mouse tracking box if
14298 it exists.
14299 * xfns.c (Fx_track_pointer): New function, does what
14300 x_indicate_pointer_char used to.
14301 (x_read_mouse_position): Subtract internal_border_width.
14302
14303 * screen.c: No rubber-banding function for X11.
14304
14305 * window.c (Fmove_to_window_line): Document string fix.
14306
14307 1989-11-29 Joseph Arceneaux (jla@spiff)
14308
14309 * lread.c (Fread_char): Return a Lisp_Object (directly from
14310 get_char).
14311
14312 * keyboard.c:
14313 * xterm.c: Function keys now arrive as cons cells.
14314
14315 1989-11-27 Joseph Arceneaux (jla@spiff)
14316
14317 * keyboard.c (read_key_sequence): Handle Lisp_Symbols on input
14318 (function keys). Also, handle these and mouse events with
14319 prefixes (by ignoring the prefixes for now).
14320
14321 * xfns.c: New variable Vx_mouse_grabbed.
14322 * xterm.c (construct_mouse_event): Use it.
14323 (XTread_socket): Return Lisp_Symbol for function key.
14324
14325 * buffer.c (reset_buffer_local_variables): Set function_key_map to
14326 Qnil.
14327
14328 1989-11-24 Joseph Arceneaux (jla@spiff)
14329
14330 * buffer.h: Per-buffer function key maps.
14331
14332 * keyboard.c (read_avail_input): Convert chars to Lisp_Objects in
14333 case of stdin.
14334
14335 1989-11-22 Joseph Arceneaux (jla@spiff)
14336
14337 * keyboard.c (read_key_sequence): Check type of object returned
14338 from get_char. Handle mouse events (set Vmouse_event) and
14339 function keys.
14340 (get_char_menu_prompt): Return a Lisp_Object.
14341 (Fexecute_mouse_event): No longer set Vmouse_event.
14342 Vmouse_window set here.
14343
14344 * xterm.c (XTread_socket): KeyPress events now return
14345 Lisp_Objects, as do ButtonPress events.
14346 (construct_mouse_event): New function.
14347 (encode_mouse_button): New function.
14348
14349 1989-11-21 Joseph Arceneaux (jla@spiff)
14350
14351 * keyboard.c (kbd_buffer_store_char, kbd_buffer_get_char):
14352 Store and get Lisp_Objects.
14353 (get_char): Use those Lisp_Objects.
14354
14355 * fileio.c (Fread_filename_internal): If exactly complete, but
14356 string was modified, return string.
14357
14358 * minibuf.c (temp_minibuf_message): Pass correct arguments to Fsit_for.
14359
14360 1989-11-18 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
14361
14362 * s-386-ix.h: New file.
14363
14364 1989-11-17 Joseph Arceneaux (jla@spiff)
14365
14366 * xterm.c (dump_rectangle): Flush the X queue.
14367
14368 1989-11-16 Joseph Arceneaux (jla@spiff)
14369
14370 * xmenu.c (xmenu_show): Use ButtonReleaseMask instead of
14371 ButtonRelease.
14372
14373 * fileio.c (Fmake_directory): New subr.
14374
14375 1989-11-16 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
14376
14377 * config.h-dist (C_SWITCH_SITE, LD_SWITCH_SITE): Mention these.
14378 (HAVE_X11): Renamed from X11 and defined by default.
14379 It shoukld have no effect when not using X.
14380
14381 1989-11-14 Joseph Arceneaux (jla@spiff)
14382
14383 * xfns.c (Fx_get_selection, x_selection_arrival): use &event
14384 instead of event.
14385 (x_selection_arrival): For incremental selections, loop on
14386 XGetWindowProperty if one is not enough.
14387
14388 1989-11-13 Joseph Arceneaux (jla@spiff)
14389
14390 * ymakefile: Just link if ../oldXMenu/libXMenu11.a already exists.
14391
14392 1989-11-09 Joseph Arceneaux (jla@spiff)
14393
14394 * m/m-sparc.h: If __GNUC__ use "-O", else "-O2"
14395
14396 1989-11-08 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
14397
14398 * search.c (Fstore_match_data): A marker pointing nowhere, treat as 0.
14399
14400 1989-11-08 Joseph Arceneaux (jla@spiff)
14401
14402 * search.c (Fmatch_data): fixed typo.
14403
14404 * insdel.c (make_gap): Use BUFFER_REALLOC instead of realloc.
14405 * buffer.c (Fget_buffer_create): Use new define BUFFER_ALLOC in
14406 place of malloc, and set b->data.
14407 (Fkill_buffer): Use BUFFER_FREE on b->data, rather than malloc on
14408 b->p1 + 1.
14409 * buffer.h: New element data in buffer_text structure.
14410 New define for it, bf_data.
14411
14412 1989-11-08 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
14413
14414 * marker.c (Fset_marker): Don't force POS into visible range.
14415 * window.c (set_marker_restricted): New function does what
14416 Fset_marker did. All calls in this file now use the new function.
14417
14418 1989-11-07 Joseph Arceneaux (jla@spiff)
14419
14420 * buffer.h: Defines for allocating buffer variables.
14421
14422 * ralloc.c: Completely rewritten.
14423
14424 * alloc.c (xmalloc, xrealloc): Return 0 immediately for requests
14425 of 0 size.
14426
14427 1989-11-06 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
14428
14429 * search.c (Flooking_at, Fstring_match, search_buffer):
14430 Record in search_regs_from_string whether matching against a string.
14431 (Fmatch_data): Save data as integers if from a string.
14432
14433 * s-umips.h: Now include either s-usg5-2-2.h or s-bsd4-3.h
14434 and then override as needed.
14435 * m-mips.h: System dependence deleted.
14436 LD_SWITCH_MACHINE remains w/ options needed on all systems.
14437 * m-pmax.h: A little of that (LIBS_DEBUG) moved here.
14438 No need to undef LIBS_MACHINE.
14439
14440 * fns.c (Fload_average): FIXUP_KERNEL_SYMBOL_ADDR is now general hook.
14441 * s-umips.h: Define it.
14442
14443 * sysdep.c: Handle BROKEN_FIONREAD.
14444
14445 1989-11-03 Joseph Arceneaux (jla@spiff)
14446
14447 * config.h-dist: Mention LISP_FLOAT_TYPE, GNU_MALLOC, and REL_ALLOC.
14448
14449 * s/s-umips.h: New file.
14450
14451 1989-11-03 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
14452
14453 * process.c (Fopen_network_stream): Handle EINTR in connect.
14454 Describe errno in err msg if connect fails.
14455
14456 1989-11-02 Joseph Arceneaux (jla@spiff)
14457
14458 * vm-limit.c: New file.
14459 * ralloc.c: New file.
14460 * ymakefile: Take vm-limit.o into account.
14461
14462 1989-11-02 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
14463
14464 * alloc.c (staticvec): Make this a simple vector of pointers
14465 rather than an alias for a vector of chars.
14466
14467 1989-11-01 Joseph Arceneaux (jla@spiff)
14468
14469 * window.c: Moved some functions (save_window_save,
14470 replace_window, unshow_buffer) around.
14471 * search.c: Moved function place.
14472 * lread.c: Moved function read_escape.
14473 * unexec.c: Declarations for make_hdr, copy_text_and_data,
14474 copy_sym. Declare mark_x as static void.
14475 * dispextern.h: removed declaration of new_display_line.
14476
14477 * emacs.c: Do malloc_init if GNU_MALLOC.
14478 * gmalloc.c: (malloc_init): New function.
14479
14480 * xfns.c (x_rectangle, Fx_draw_rectangle, Fx_erase_rectangle,
14481 outline_region, Fx_countour_region, Fx_uncontour_region): New
14482 subroutines for drawing rectangles and things.
14483 (Fx_point_coordinates): New subr.
14484
14485 1989-10-31 Joseph Arceneaux (jla@spiff)
14486
14487 * All .c and .h files: New copyright header.
14488
14489 1989-10-30 Joseph Arceneaux (jla@spiff)
14490
14491 * gmalloc.c: New GNU malloc.
14492
14493 * emacs.c (main, Fdump_emacs): No malloc init if GNU_MALLOC.
14494
14495 * ymakefile: Check if GNU_MALLOC defined.
14496
14497 1989-10-27 Joseph Arceneaux (jla@spiff)
14498
14499 * xfns.c (Fx_pointer_char): New subr.
14500 * xterm.c (x_indicate_pointer): New procedure.
14501
14502 * alloc.c (Fmake_vector_from_list, make_vector_from_list): New subrs.
14503
14504 1989-10-26 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
14505
14506 * xterm.c (x_term_init):
14507 Negate arg to fcntl F_SETOWN if F_SETOWN_SOCK_NEG.
14508 * keyboard.c (Fset_input_mode) [NO_SOCK_SIGIO]:
14509 No interrupt input if using a socket.
14510 * m-sequent.h: Define NO_SOCK_SIGIO, F_SETOWN_SOCK_NEG, MAIL_USE_FLOCK.
14511
14512 1989-10-26 Joseph Arceneaux (jla@spiff)
14513
14514 * xterm.c (x_handle_error_gracefully): Make sure to completely
14515 release input before returning, using:
14516 * xterm.h New macro TOTALLY_UNBLOCK_INPUT.
14517
14518 * xmenu.c (xmenu_quit): No longer use this error_handler; use
14519 default one.
14520
14521 1989-10-25 Joseph Arceneaux (jla@spiff)
14522
14523 * config.h-dist: Comment fix.
14524
14525 1989-10-24 Joseph Arceneaux (jla@spiff)
14526
14527 * xfns.c (Fx_draw_lines, translate_vectors): New functions.
14528
14529 1989-10-21 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
14530
14531 * search.c (search_buffer): Always find null string.
14532
14533 * window.c (window_loop): For UNSHOW_BUFFER, don't Fset_buffer
14534 unless window is the selected one.
14535
14536 1989-10-20 Joseph Arceneaux (jla@spiff)
14537
14538 * xdisp.c (display_minibuf_message): Choose minibuf screen first
14539 of all. Return if not visible.
14540
14541 1989-10-19 Joseph Arceneaux (jla@apple-gunkies.ai.mit.edu)
14542
14543 * xterm.c (x_handle_error_gracefully): New procedure to handle
14544 non-fatal X errors.
14545 (x_error_handler): Use it.
14546 (acceptable_x_error_p): New macro.
14547
14548 * xfns.c (Fx_own_selection): Use second parameter SCREEN.
14549
14550 * xdisp.c: (message, message1): No longer displays messages
14551 when using X but not yet mapped.
14552
14553 1989-10-18 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
14554
14555 * m-pyramid.h (NO_ARG_ARRAY): Define if using GCC.
14556
14557 1989-10-17 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
14558
14559 * vmsfns.c (process_command_input): Call clear_waiting_for_input.
14560
14561 1989-10-14 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
14562
14563 * syntax.c (scan_words): If words_include_escapes not 0,
14564 treat Sescape and Scharquote like Sword.
14565 (syms_of_syntax): Define Lisp variable.
14566
14567 * process.c (wait_reading_process_input): Get rid of kbd_count.
14568 Use detect_input_pending.
14569 * sysdep.c (select, read_input_waiting): Likewise.
14570 (read_input_waiting): Don't read directly into kbd_buffer;
14571 use kbd_buffer_store_char.
14572 * keyboard.c: Don't define kbd_count.
14573
14574 * keyboard.c (read_key_sequence): Reject the prefix char generated
14575 for a Meta char, if it finds a non-prefix definition.
14576
14577 1989-10-13 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
14578
14579 * process.c (wait_reading_process_input): READ_KBD==2 means
14580 wait until have mouse input.
14581 * xfns.c (Fx_get_mouse_event): Use that.
14582 * xterm.c (mouse_event_pending_p): New subroutine.
14583
14584 1989-10-13 Joseph Arceneaux (jla@apple-gunkies.ai.mit.edu)
14585
14586 * xfns.c (x_selection_arrival):
14587 (x_send_incremental):
14588 (x_answer_selection_request): New procedures for incremental
14589 selection transfer.
14590
14591 1989-10-12 Joseph Arceneaux (jla@apple-gunkies.ai.mit.edu)
14592
14593 * lread.c (complete_filename_p): New function which replaces
14594 absolute_filename_p. This one doesn't consider "~" valid.
14595
14596 1989-10-12 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
14597
14598 * buffer.c: Comment fix.
14599
14600 1989-10-11 Joseph Arceneaux (jla@apple-gunkies.ai.mit.edu)
14601
14602 * xfns.c: (Fx_open_connection) New X atoms Xatom_incremental and
14603 Xatom_multiple.
14604
14605 * xterm.h: New macros MAX_SELECTION and SELECTION_LENGTH.
14606
14607 * process.c (child_sig): Check pid <= 0 in case WNOHANG not defined.
14608
14609 1989-10-11 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
14610
14611 * termcap.c (tgetent, gobble_line): Always store null at end of bfr.
14612 Allocate one extra byte at end to ensure space.
14613 Clean up order of arithmetic when updating ptrs into buffer
14614 after xrealloc.
14615
14616 1989-10-10 Joseph Arceneaux (jla@apple-gunkies.ai.mit.edu)
14617
14618 * xfns.c (Fx_open_connection): Make all X Atoms here.
14619
14620 * xterm.c: (x_iconify_screen):
14621 (x_iconify_screen): Cleaned up this code.
14622 (x_term_init): Removed warpmouseondeiconify stuff.
14623
14624 1989-10-09 Joseph Arceneaux (jla@apple-gunkies.ai.mit.edu)
14625
14626 * xdisp.c (DoDsp): Make sure to call unhold_window_change after
14627 before all returns.
14628
14629 * minibuf.c (read_minibuf): Changed set_mouse_position to
14630 Fset_mouse_position.
14631
14632 * xterm.c (XTread_socket): dumprectangle (whole screen) instead of
14633 DoDsp in ConfigureNotify event.
14634 (x_wm_set_size_hint): New calculations for size_hints.
14635
14636 * screen.c (Fset_mouse_position): No more function
14637 set_mouse_position; use x_set_mouse_position directly.
14638
14639 * xfns.c (x_set_cursor_color): Really decode Vx_cusor_fore_pixel
14640 if set. Define new cursor before freeing old. This may eliminate
14641 a server bug on the Sony.
14642 Also check for invisible cursors.
14643 (x_set_mouse_color): Check for invisible pointers.
14644 (x_resize_scrollbars): BLOCK_INPUT whilst doing operations.
14645 (adjust_scrollbars): Likewise.
14646
14647 1989-10-03 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
14648
14649 * m/m-hp9000s800.h (XUNMARK): Delete definition.
14650 (S_IFLNK): Do not undef it.
14651
14652 1989-10-03 Joseph Arceneaux (jla@apple-gunkies.ai.mit.edu)
14653
14654 * dispnew.c (get_display_line): If screen not visible, abort.
14655
14656 1989-10-02 Joseph Arceneaux (jla@apple-gunkies.ai.mit.edu)
14657
14658 * xterm.c (x_make_screen_visible): Set s->visible, unset
14659 s->iconified for HAVE_X11.
14660
14661 1989-09-29 Joseph Arceneaux (jla@apple-gunkies.ai.mit.edu)
14662
14663 * xterm.c (XTread_socket): Check screen s before proceeding for
14664 MapNotify event.
14665
14666 * xterm.c: No longer sets the variable mouse_down_timestamp.
14667 * xfns.c: (Fx_get_mouse_event) mouse_timestamp
14668 (formerly mouse_down_timestamp) set here. Also, mask out upper 9
14669 bits before doing XSET.
14670
14671 1989-09-28 Joseph Arceneaux (jla@apple-gunkies.ai.mit.edu)
14672
14673 * xfns.c (Fx_geometry): Kludge for the case of position `-0'.
14674 (Fx_get_mouse_event): Also return the time stamp as last list elt.
14675 (Fx_color_display_p):
14676 (Fx_defined_color):
14677 (x_decode_color):
14678 (defined_color): Eliminate screen argument.
14679 (Fx_create_screen): No more ColorMap component to display.x.
14680 * xterm.h: Likewise.
14681
14682 1989-09-27 Joseph Arceneaux (jla@apple-gunkies.ai.mit.edu)
14683
14684 * xfns.c (Fx_own_selection):
14685 (Fx_get_selection):
14686 (x_disown_selection): new funcs, which use new variables
14687 Vx_selection_value, x_begin_selection_own, mouse_down_timestamp,
14688 requestor_time, requestor_window, property_name, and
14689 x_begin_selection_own.
14690
14691 * xterm.c (XTread_socket): Only do stuff if s for FocusOut under X11.
14692 SelectionClear:
14693 SelectionRequest:
14694 SelectionNotify: New events to handle the selection inter-client
14695 communication mechanism.
14696 ButtonPress: Set mouse_down_timestamp.
14697
14698 1989-09-26 Joseph Arceneaux (jla@apple-gunkies.ai.mit.edu)
14699
14700 * xfns.c: New variable Vx_cursor_fore_pixel.
14701
14702 1989-09-23 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
14703
14704 * lread.c (openp): Don't ! the result of `access'.
14705
14706 1989-09-22 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
14707
14708 * fileio.c (Fread_file_name_internal): Try to work properly
14709 if dirs are specified using environment vars. Preserve use of vars.
14710
14711 1989-09-21 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
14712
14713 * fileio.c: Comment fix.
14714
14715 1989-09-18 Joseph Arceneaux (jla@spiff)
14716
14717 * xfns.c (Fx_get_cut_buffer): XFree the data returned by
14718 XFetchBytes.
14719
14720 1989-09-16 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
14721
14722 * fileio.c (Fwrite_region): Reinstall #if 0 around fstat.
14723
14724 1989-09-12 Joseph Arceneaux (jla@spiff)
14725
14726 * xfns.c (defined_color): New function to test if a color is
14727 currently defined.
14728 (x_decode_color): Use defined_color.
14729 (Fx_defined_color): New subr.
14730 (select_visual): Select the appropriate X11 Visual.
14731 (Fx_open_connection): Use select_visual. screen_visual now
14732 global and used when making emacs windows.
14733 (Fx_color_display_p): New subr.
14734
14735 1989-09-11 Joseph Arceneaux (jla@spiff)
14736
14737 * fileio.c (Fwrite_region): fixed typo.
14738
14739 * keyboard.c (Fdiscard_input): fixed typo.
14740
14741 * window.c (Fnext_window): fixed typos.
14742
14743 * alloc.c (xmalloc, xrealloc): hold_window_changes whilst doing
14744 the associated operations.
14745
14746 * dispnew.c (init_display):
14747 (Fsleep_for, Fsit_for):
14748 * process.c (Faccept_process_output):
14749 * keyboard.c ({clear,set}_waiting_for_input):
14750 (quit_throw_to_get_char, get_char):
14751 * xdisp.c (DoDsp, message, message1): Undid changes of Aug. 23
14752 (see below); accept window changes most of the time.
14753
14754 1989-09-07 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
14755
14756 * keyboard.c: Eliminate kbd_count, and use two pointers,
14757 kbd_fetch_ptr and kbd_store_ptr. Assume buffer is empty when
14758 they are equal. This should eliminate timing error.
14759 (kbd_buffer_store_char): Update kbd_store_ptr when storing.
14760 Don't ever fill the entire buffer.
14761 (kbd_buffer_get_char): Update kbd_fetch_ptr when fetching.
14762 (stuff_buffered_input): Likewise.
14763 (get_input_pending): Compare the two pointers.
14764
14765 * fileio.c (Fwrite_region): Reenable using fstat rather than stat
14766 to get the modtime of the file just written, except on VMS and APOLLO.
14767
14768 1989-09-05 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
14769
14770 * emacs.c, doc.c, filelock.c: Move Emacs header includes after
14771 system header includes, and #undef NULL in between.
14772
14773 1989-08-30 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
14774
14775 * process.c [SYSV_PTYS]: If `titan', include some other files.
14776
14777 1989-08-29 Joseph Arceneaux (jla@spiff)
14778
14779 * fileio.c: read-file-name replaced with new version, formerly
14780 called new-read-file-name.
14781
14782 1989-08-26 Richard Stallman (rms@apple-gunkies.ai.mit.edu)
14783
14784 * window.c (Fscroll_other_window): Use save-excursion (in effect)
14785 to save and restore current buffer and point.
14786 (window_scroll): If selected window's buffer isn't current,
14787 make it current, using save-excursion to go back.
14788
14789 1989-08-24 Richard Stallman (rms@apple-gunkies.ai.mit.edu)
14790
14791 Use two variables to convey reason for synch process death,
14792 to avoid consing in signal handler.
14793 They are synch_process_death and synch_process_retcode.
14794 * callproc.c (Fcall_process): Use both variables.
14795 * process.c (child_sig): Set both variables.
14796
14797 1989-08-24 Joseph Arceneaux (jla@spiff)
14798
14799 * xterm.c (x_wm_set_size_hint): Use new ICCCM values for size_hints.
14800
14801 1989-08-24 Richard Stallman (rms@apple-gunkies.ai.mit.edu)
14802
14803 * buffer.c: Doc fix.
14804
14805 1989-08-24 Joseph Arceneaux (jla@spiff)
14806
14807 * xfns.c (Fx_create_screen): X11 part. Set height and width to 0
14808 before calling change_screen_size.
14809
14810 * buffer.c (kill-all-local-variables): Changed doc string.
14811
14812 1989-08-23 Richard Stallman (rms@apple-gunkies.ai.mit.edu)
14813
14814 * dispnew.c (init_display): Call hold_window_change.
14815 (Fsleep_for, Fsit_for): Temporarily unhold, while waiting.
14816 * process.c (Faccept_process_output): Likewise.
14817 * keyboard.c ({clear,set}_waiting_for_input): Temporarily unhold.
14818 (quit_throw_to_get_char, get_char): Rehold.
14819 * xdisp.c (DoDsp, message, message1):
14820 Unhold and rehold momentarily before any real work.
14821
14822 * Makefile (CPP): Use $(CC).
14823
14824 1989-08-22 Joseph Arceneaux (jla@spiff)
14825
14826 * xfns.c (x_set_mouse_color): Use new variables Vx_pointer_mask,
14827 Vx_pointer_shape.
14828
14829 1989-08-21 Richard Stallman (rms@apple-gunkies.ai.mit.edu)
14830
14831 * alloc.c (malloc_warning): Do nothing if ignore_warnings.
14832 (init_alloc_once): Set ignore_warnings while initializing allocation.
14833
14834 * buffer.c: Doc fix.
14835
14836 1989-08-21 Joseph Arceneaux (jla@spiff)
14837
14838 * xterm.c (x_calc_absolute_position): New function to calculate
14839 positive screen position.
14840 (x_set_position): Use it.
14841 (x_reset_cursor): No longer exists.
14842
14843 * xfns.c (x_set_mouse_color): Reset the cursor even if there's no
14844 X window.
14845 (x_figure_window_size): Use x_calc_absolute_position.
14846 (x_set_mouse_color): Rewrote this function. Always set cursor and
14847 its color. If the window exists, then attach the cursor to it.
14848 No longer uses x_reset_cursor.
14849 (x_create_window):
14850 (x_set_background):
14851 (x_set_foreground): Use x_set_mouse_color instead of x_reset_cursor.
14852
14853 1989-08-18 Richard Stallman (rms@hobbes.ai.mit.edu)
14854
14855 * vmsfns.c: Define PRV$V_... syms if prvdef.h does not.
14856
14857 1989-08-18 Joseph Arceneaux (jla@spiff)
14858
14859 * xfns.c (Fx_geometry): New subr.
14860 (x_figure_window_size): Don't worry about "geometry" here anymore;
14861 now done in x-win.el.
14862 (x_icon): Look in parms for iconic-startup rather than in variable.
14863
14864 1989-08-16 Joseph Arceneaux (jla@spiff)
14865
14866 * xfns.c (x_set_*_scrollbar): Don't destroy a scrollbar if it
14867 doesn't exist. Also set scrollbar size only if actually creating
14868 one.
14869 (x_set_name): Don't do anything if the X window doesn't exist.
14870 Set the icon name as well.
14871 (x_window): Set the class hints for the window.
14872
14873 1989-08-16 Richard Stallman (rms@hobbes.ai.mit.edu)
14874
14875 * lread.c (Fload): Fix unterminated comment.
14876
14877 * scroll.c (scrolling_max_lines_saved): Replace fixed threshold of 20
14878 with 1/4 of average length of lines.
14879
14880 1989-08-13 Joseph Arceneaux (jla@spiff)
14881
14882 * ymakefile: Do ${make} for oldXMenu.
14883
14884 1989-08-13 Richard Stallman (rms@hobbes.ai.mit.edu)
14885
14886 * eval.c: Doc fix.
14887
14888 1989-08-12 Richard Stallman (rms@hobbes.ai.mit.edu)
14889
14890 * emacs.c (main): Check for failure opening -t device.
14891 Fatal error if terminal isn't a real terminal.
14892
14893 * window.c (Fscroll_other_window): Let Vother_window_scroll_buffer
14894 specify a buffer to scroll.
14895
14896 1989-08-11 Richard Stallman (rms@hobbes.ai.mit.edu)
14897
14898 * dispnew.c: Handle BROKEN_FIONREAD as in other files.
14899
14900 1989-08-09 Joseph Arceneaux (jla@spiff)
14901
14902 * ../oldXMenu/Makefile: Removed all the unneccessary X stuff.
14903
14904 1989-08-07 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
14905
14906 * fileio.c (barf_or_query_if_file_exists): When signalling,
14907 provide the expected args for a file-error.
14908
14909 1989-08-06 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
14910
14911 * process.c: Let NEED_BSDTTY control include of bsdtty.h.
14912
14913 * process.c [BSD or STRIDE]: If ioctl.h fails to define O_NDELAY,
14914 and we need it, try fcntl.h.
14915
14916 * s-bsd*.h, s-rtu.h, s-umax.h, s-unipl*.h: Define HAVE_UNION_WAIT.
14917 * m-stride.h: Likewise.
14918 * process.c: Decide which type to use with `wait'
14919 according to HAVE_UNION_WAIT. If WAITTYPE already defined,
14920 assume everything all set up for this.
14921
14922 * m-hp9000s300.h: Unless NOT_C_CODE or NO_SHORTNAMES,
14923 define WAITTYPE and WRETCODE, and include sys/wait.h.
14924
14925 1989-08-05 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
14926
14927 * callproc.c (child_setup): Get rid of junk in #if 0.
14928
14929 1989-08-03 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
14930
14931 * abbrev.c (Fdefine_abbrev): Allow nil spec'd as expansion.
14932 (Fexpand_abbrev): Eliminate abbrev length limit; use alloca.
14933 Eliminate redundant tests, always true.
14934 Record positions of both start and end of abbrev.
14935 Handle whitespace following the abbrev, before point.
14936
14937 * callproc.c (Fcall_process_region): Use unwind-protect to delete
14938 temp file.
14939
14940 * lread.c (load_unwind): Free the pointer-word malloc'd in Fload.
14941
14942 1989-08-02 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
14943
14944 * emacs.c (Fdump_emacs): Doc fix.
14945
14946 1989-08-02 Joseph Arceneaux (jla@spiff)
14947
14948 * xfns.c: Reorganized several functions to be in same order as the
14949 enum list.
14950 (x_set_border_color): For X11, don't set pix to -1 for
14951 gray values.
14952 (Fx_create_screen): Simplified this function even more.
14953
14954 1989-07-31 Joseph Arceneaux (jla@spiff)
14955
14956 * keymap.c: New subrs Fuse_local_mouse_map, Fcurrent_local_mouse_map.
14957
14958 * xfns.c (x_set_mouse_color):
14959 (x_set_cur): No need to redraw display after doing these.
14960
14961 (Fx_get_mouse_event): Accept motion events.
14962 (x11_encode_mouse_button): Encoding a la X11, except for one
14963 kludge. This is used only for motion events.
14964
14965 * xterm.c (XTread_socket): Handle motion eveots.
14966
14967 1989-07-26 Joseph Arceneaux (jla@spiff)
14968
14969 * xfns.c (Fx_create_screen): I couldn't take it any more, the
14970 ugliness of this routine offended me too deeply. It is now
14971 completely rewritten for X11 and uses subroutines:
14972 (x_figure_window_size)
14973 (x_create_window)
14974 (x_icon)
14975 (x_make_gc)
14976
14977 (Fx_draw_rectangle):
14978 (Fx_erase_rectangle): New subrs.
14979
14980 * m/m-intel386.h: Changes in LOAD_AVE_TYPE, LOAD_AVE_CVT, and
14981 FSCALE to make loadst work correctly.
14982
14983 1989-07-24 Joseph Arceneaux (jla@spiff)
14984
14985 * xfns.c (Fmodify_screen_parameters): Check s->output_method
14986 before looping through alist.
14987
14988 (Fx_create_screen): Call x_default_parameter for font.
14989 Don't add the scrollbar widths when making the main window: this
14990 is done when the scrollbar is actually made.
14991
14992 (x_set_vertical_scrollbar): Set v_scrollbar_width here instead of
14993 in install_vertical_scrollbar. Also, pass that function macros
14994 PIXEL_WIDTH, PIXEL_HEIGHT as args.
14995
14996 (x_set_horizontal_scrollbar): Likewise.
14997
14998 * xterm.c: (x_set_window_size): Don't call the things called
14999 anyway upon the ConfigureNotify event.
15000 (x_set_offset): Use the screen-size lisp variables for these
15001 calculations.
15002
15003 * xterm.h: Added the screen parameter declarations from xfns.c for
15004 X11.
15005
15006 1989-07-21 Joseph Arceneaux (jla@spiff)
15007
15008 * sysdep.c: Don't include sioctl.h on mips.
15009
15010 * buffer.c (Flist_buffers): Pass prefix as arg.
15011
15012 * editfns.c (Finsert_char): Insert at most 256 chars at a whack.
15013
15014 * xterm.c (x_draw_box): Moved cursor box right by one pixel.
15015
15016 1989-07-20 Joseph Arceneaux (jla@spiff)
15017
15018 * xfns.c: New variable x_screen_visuals, set if Fx_open_display,
15019 to be used in screen-color-p.
15020
15021 * process.c (create_process): Don't call setpgrp_of_tty here.
15022 Also, do setpgrp for USG regardless of HAVE_PTYS.
15023
15024 * callproc.c (child_setup): Ignore argument set_pgrp and always do
15025 setpgrp_of_tty.
15026 (Fcall_process): Don't call setpgrp_of_tty here.
15027
15028 * keyboard.c (command_loop_1): Make sure Vprefix_arg is NULL
15029 before finalizing_kbd_macro_chars;
15030
15031 1989-07-19 Joseph Arceneaux (jla@spiff)
15032
15033 * xfns.c (Fx_rebind_key): Completely rewrote this function for
15034 X11.
15035
15036 1989-07-13 Joseph Arceneaux (jla@spiff)
15037
15038 * emacs.c:
15039 * process.c:
15040 * unexec.c:
15041 * m/m-ibmrt-aix.h: Changed IBMRTAIX to IBMAIX.
15042 * sysdep.c: Likewise. Also, don't define our closedir if IBMAIX.
15043 * m/m-ibmps2-aix.h: New file.
15044
15045 1989-07-12 Joseph Arceneaux (jla@spiff)
15046
15047 * xdisp.c (message, message1): If using x, but haven't mapped the
15048 window yet, use noninteractive output.
15049
15050 * dispnew.c (Fredraw_display): Don't redraw a screen which is not
15051 visible.
15052
15053 * xterm.c (x_set_window_size): Don't DoDsp if screen isn't visible.
15054
15055 * xfns.c (x_set_mouse_color)
15056 (x_set_border_color)
15057 (x_set_cursor_color)
15058 (x_set_background_color)
15059 (x_set_foreground_color): Don't redraw when screen isn't visible.
15060
15061 1989-07-11 Joseph Arceneaux (jla@gluteus)
15062
15063 * xterm.c (x_term_init, XTread_socket): Use ConnectionNumber for
15064 both X10 and X11. This is #defined for X10.
15065
15066 * screen.c (Fset_screen_width, Fset_screen_height): These now take
15067 a SCREEN argument.
15068
15069 1989-07-10 Joseph Arceneaux (jla@gluteus)
15070
15071 * xterm.c (x_set_window_size): Call x_wm_set_size_hint.
15072 (x_new_font): Don't call x_wm_set_size_hint.
15073
15074 * xfns.c (x_set_internal_border_width): Don't call
15075 x_set_resize_hint, and call x_set_window_size after BLOCK_INPUT.
15076
15077 * screen.c, dispnew.c (Fset_screen_width, Fset_screen_height):
15078 These functions have moved to screen.c.
15079
15080 1989-07-07 Joseph Arceneaux (jla@sugar-bombs.ai.mit.edu)
15081
15082 * eval.c (Ffuncall): Handle 6 arguments. Also, print a nice error
15083 message if there are more than 6 args.
15084
15085 * fns.c: (Fyes-or-no-p):
15086 * minibuf.c: (read_minibuf_unwind):
15087 (Fread_minibuffer):
15088 (Fread_no_blanks_input):
15089 (Fcompleting_read): Extra arg to read_minibuf.
15090
15091 * callint.c (Fcall_interactively):
15092 * keyboard.c (Fexecute_extended_command):
15093 * minibuf.c: (Fread_command):
15094 (Fread_function):
15095 (Fread_variable):
15096 (Fread_buffer): Extra arg to Fcompleting_read.
15097
15098 1989-07-05 Joseph Arceneaux (jla@spiff)
15099
15100 * minibuf.c (read_minibuf): New argument back_n is number of
15101 characters to back-up point by.
15102 (Fcompleting_read): Same.
15103 * fileio.c: (Fnew_read_file_name): New version of Fread_file_name
15104 using the above features.
15105 (Finsert_file_contents): Check for negative file length.
15106
15107 1989-07-03 Joseph Arceneaux (jla@spiff)
15108
15109 * xfns.c: (x_pixel_width, x_pixel_height) New functions.
15110 * screen.c: (Fscreen_pixel_size): New subr.
15111
15112 1989-06-30 Joseph Arceneaux (jla@spiff)
15113
15114 * xterm.c: Use invocation_name as argument to XGetDefaults.
15115
15116 1989-06-29 Joseph Arceneaux (jla@spiff)
15117
15118 * xterm.c (x_error_handler) #ifdef sony_news use XDefaultError
15119 instead of XPrintDefaultError due to weirdness in Sony library.
15120 * xterm.c: Avoid infinite raise/lower, enter/leave cycle when both
15121 auto_raise and auto_lower are set by checking times between
15122 consecutive Enter events.
15123
15124 1989-06-27 Joseph Arceneaux (jla@sugar-bombs.ai.mit.edu)
15125
15126 * screen.c: (Fselect_screen)
15127 * window.c: (Fselect_window) The previous strategy was bugging the
15128 lisp stuff, so these are now rewritten.
15129
15130 1989-06-26 Joseph Arceneaux (jla@galapas.ai.mit.edu)
15131
15132 * cm.c (Wcm_init): Don't check for Wcm.cm_ds, since this has been
15133 removed.
15134 (losecursor): This function now a #define in cm.h.
15135
15136 * xterm.c (x_iconify_screen): Send message to root window to do
15137 this, as per latest Inter-Client Communications Conventions. This
15138 is commented out until it's implemented by X. For now, do it with
15139 the iconic_state hint.
15140 (x_deiconify_screen): For X11, just Map the window, as per the new
15141 ICCC.
15142 (x_make_screen_visible): Only handle visible and iconified screen
15143 elements for X10; these variables are handled in event processing
15144 for X11.
15145 (x_make_screen_invisible): Send an UnmapNotify event to the root
15146 window to aprise the window manager of the change.
15147 (XTread_socket): Catch VisibilityNotify events.
15148
15149 1989-06-25 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15150
15151 * window.c (Fsplit_window): If horizontal, round left window size up.
15152
15153 1989-06-24 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15154
15155 * cm.h (cmplus): Improve formatting.
15156 Use losecursor when reach end of line, if losewrap.
15157
15158 * cm.h: New fields to handle multi-line and multi-char motion,
15159 and both max and min cost for certain operations.
15160 * term.c (term_init): Init those fields.
15161
15162 * term.c (clear_end_of_line_raw): Don't clear last char of last line
15163 if autowrap.
15164
15165 * abbrev.c (Finsert_abbrev_table_description): Make 2nd arg optional.
15166
15167 1989-06-23 Joseph Arceneaux (jla@apple-gunkies.ai.mit.edu)
15168
15169 * xfns.c, lisp/term/x-win.el: C routine Fscreen_color_p now lisp
15170 function x-color-screen-p in x-win.el.
15171 (x_set_cursor_color): New method: first disallow same cursor as
15172 background, then if cursor not foreground, use it as cursor
15173 foreground.
15174
15175 1989-06-22 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15176
15177 * lisp.h (XPNTR): Don't define if already defined.
15178
15179 1989-06-22 Joseph Arceneaux (jla@cream-of-wheat.ai.mit.edu)
15180
15181 * screen.c: New subrs Ficonify_screen, Fdeiconify_screen,
15182 Fread_mouse_position, Fset_mouse_position.
15183
15184 * xterm.c: New functions x_deiconify_screen, x_iconify_screen.
15185
15186 1989-06-22 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15187
15188 * window.c (Fsplit_window, change_window_height):
15189 Enforce minimum of 2 for window_min_width and window_min_height.
15190
15191 1989-06-22 Joseph Arceneaux (jla@galapas.ai.mit.edu)
15192
15193 * dispnew.c (unhold_window_change): Don't set and unset in_display
15194 before and after calling change_screen_size.
15195
15196 1989-06-21 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15197
15198 * buffer.c (Fkill_buffer): Ignore errors deleting auto-save file.
15199 Delete only if delete-auto-save-files.
15200
15201 * data.c (Fmake_local_variable): Don't change value if unbound.
15202
15203 1989-06-20 Joseph Arceneaux (jla@apple-gunkies.ai.mit.edu)
15204
15205 * screen.c (Fselect_screen): Use x_set_mouse_position instead of
15206 x_enter_screen.
15207
15208 * xterm.c (x_enter_screen): Deleted, now merged with
15209 * xfns.c (x_set_mouse_position): If the position is negative, use
15210 the center screen position.
15211
15212 * data.c (swap_in_symval_forwarding): Declared tem1.
15213 (Fset): Changed variable name void to voide. Also, set it to a C
15214 true/false, rather than Qt or Qnil.
15215
15216 1989-06-17 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15217
15218 * eval.c (Fdefvar): Operate on default value if sym is buffer-local.
15219 (Fdefconst): Likewise.
15220
15221 Allow buffer-local variables to be void in one buffer
15222 or in the default value.
15223 * data.c (swap_in_symval_forwarding): New function.
15224 (Fboundp, Fsymbol_value): Use that.
15225 (default_value): New function.
15226 (Fdefault_value): Use that.
15227 (Fdefault_boundp): New function, uses that.
15228
15229 1989-06-16 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15230
15231 * ymakefile: New variable OLDXMENU has filename of libXMenu.a
15232 as a target. Make temacs depend on it.
15233
15234 1989-06-15 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15235
15236 * ymakefile [HAVE_X11, HAVE_X_MENU]: Build oldXMenu.
15237 * xmenu.c: Get XMenu.h from sibling dir.
15238
15239 * buffer.c (Fkill_buffer): Return t if buffer is killed.
15240 Delete auto-save file if any.
15241
15242 1989-06-09 Joseph Arceneaux (jla@apple-gunkies.ai.mit.edu)
15243
15244 * window.c: initialize auto_new_screen to 0 (nil).
15245
15246 * screen.c (make_screen): added auto_lower to the list of screen
15247 elements initialized.
15248 (make_minibuffer_screen): likewise.
15249
15250 1989-06-08 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15251
15252 * window.c (Fset_window_point): Don't lose if window's buffer is
15253 not current.
15254
15255 1989-06-08 Joseph Arceneaux (jla@apple-gunkies.ai.mit.edu)
15256
15257 * xfns.c (Fx_open_connection): Added 9 Lisp variables
15258 defined by the screen and server.
15259
15260 1989-06-08 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15261
15262 * m-pmax.h: New file.
15263
15264 1989-06-08 Joseph Arceneaux (jla@apple-gunkies.ai.mit.edu)
15265
15266 * xfns.c: removed superfluous definition of gray_bits.
15267
15268 1989-06-07 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15269
15270 * m-hp9000s300.h: Define NEED_BSDTTY unless NOMULTIPLEJOBS.
15271
15272 1989-06-07 Joseph Arceneaux (jla@apple-gunkies.ai.mit.edu)
15273
15274 * emacs.c (Fkill_emacs): If under X, call
15275 Fx_close_current_connection. This has fixed the "bad file" bug.
15276 * xfns.c (Fx_close_current_connection): Added this subr which for
15277 the moment serves only to close the X-connection when killing emacs.
15278
15279 1989-06-07 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15280
15281 * m-hp9000s800.h: Define NEED_BSDTTY here.
15282 * s-hpux.h: Not here.
15283
15284 1989-06-06 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15285
15286 * s/s-hpux.h: Define NEED_BSDTTY.
15287
15288 1989-06-06 Joseph Arceneaux (jla@apple-gunkies.ai.mit.edu)
15289
15290 * xterm.c (x_new_selected_screen): Make the new selected_screen
15291 and it's selected_window's screen be the same.
15292 (x_enter_screen): Calculate the middle of the screen, and warp the
15293 mouse there. Also, raise the screen before doing so.
15294
15295 1989-06-05 Joseph Arceneaux (jla@cream-of-wheat.ai.mit.edu)
15296
15297 * xterm.c (x_set_window_size): If not already in DoDsp (checked
15298 with variable in_display) then DoDsp here. Handles redisplay
15299 after screen configuration.
15300 (x_error_handler): Print out stuff about the error if we're in
15301 debug mode.
15302
15303 * dispnew.c (change_screen_size): No longer call DoDsp here.
15304
15305 1989-06-05 Chris Hanson (cph@kleph)
15306
15307 * syntax.c (Fmodify_syntax_entry): Change documentation string to
15308 reflect earlier change to action of `p' syntax bit.
15309
15310 1989-06-04 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15311
15312 * lread.c (read1): Don't accept "" in middle of string.
15313
15314 1989-05-30 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15315
15316 * search.c (Freplace_match): If \N has nothing to insert,
15317 insert nothing.
15318
15319 1989-05-29 Joseph Arceneaux (jla@gracilis.ai.mit.edu)
15320
15321 * xfns.c: (Fx_create_screen): If parms is nil and
15322 Vx_screen_defaults isn't, then use them.
15323 (Fdisplay_buffer): Call Fx_create_screen with Qnil.
15324
15325 1989-05-25 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15326
15327 * syntax.c (scan_lists): Once within a word, treat Squote like Sword.
15328
15329 1989-05-24 Joseph Arceneaux (jla@apple-gunkies.ai.mit.edu)
15330
15331 * dispnew.c (change_screen_size): DoDsp if not pretend.
15332
15333 1989-05-23 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15334
15335 * search.c (skip_chars): Dumb error checking for \.
15336
15337 1989-05-22 Joseph Arceneaux (jla@apple-gunkies.ai.mit.edu)
15338
15339 * screen.c (Fselect_screen): Under X, basically just warp the
15340 cursor into the desired screen. The event handler will then do
15341 the right thing.
15342 (Frestore_screen_configuration): Don't set the mouse position.
15343
15344 * window.c (Fselect_window): If window's screen is not selected,
15345 call Fselecte_screen.
15346 (Fdisplay_buffer): Call Fx_create_screen with x-screen-parameters
15347 as argument instead of nil.
15348
15349 * keyboard.c (clear_waiting_for_input): Don't call
15350 x_new_selected_screen here.
15351
15352 * xterm.c (XTread_socket): Add case slots for CirculateNotify and
15353 CirculateRequest events.
15354
15355 1989-05-21 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15356
15357 * doc.c (Fsubstitute_command_keys): Evaluate \\<...> keymap
15358 in proper buffer.
15359
15360 * keymap.c (Fapropos_internal): New Lisp function, old apropos
15361 but only returns a list.
15362
15363 1989-05-20 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15364
15365 * process.c (Fopen_network_stream): Don't set kill-without-query.
15366
15367 1989-05-19 Joseph Arceneaux (jla@apple-gunkies.ai.mit.edu)
15368
15369 * xterm.c (x_new_selected_screen): This now takes a struct screen
15370 pointer as paramter.
15371 * (XTread_socket): call x_new_selected_screen *before* dumpborder.
15372
15373 1989-05-16 Joseph Arceneaux (jla@apple-gunkies.ai.mit.edu)
15374
15375 * xfns.c: (x_window_to_scrollbar): If the caller's not interested
15376 in the names--passing 0 for last two parameters--just return the
15377 screen pointer.
15378
15379 * xterm.c (x_enter_screen): Added this function for warping the
15380 pointer into a screen.
15381
15382 1989-05-16 Chris Hanson (cph@kleph)
15383
15384 * syntax.c (scan_lists, scan_sexps_forward): Treat characters
15385 whose "prefix" bit is on as whitespace when they are encountered
15386 between expressions. When they occur within expressions they are
15387 treated according to their syntax code.
15388
15389 1989-05-16 Joseph Arceneaux (jla@apple-gunkies.ai.mit.edu)
15390
15391 * xterm.c: (x_new_selected_screen): Don't call Fselect_screen.
15392 Just do everything here.
15393
15394 * window.c (Fselect_window): If the screen associated with the
15395 window is not selected, warp the mouse, cause an EnterNotify event
15396 which then causes the proper screen to become selected. This does
15397 *not* call Fselect_screen.
15398
15399 * screen.c (Fselect_screen): Now this is *only* a lisp subr. It
15400 just calls Fselect_window on the selected window of the screen.
15401
15402 1989-05-15 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15403
15404 * editfns.c (Fsubst_char_in_region): If NOUNDO, do increment tick,
15405 but maybe also increment save-tick.
15406
15407 1989-05-15 Joseph Arceneaux (jla@apple-gunkies.ai.mit.edu)
15408
15409 * xterm.c (x_set_window_size): Only one #ifdef HAVE_X11 due to new
15410 macro in:
15411 * xterm.h: New macro XChangeWindowSize for both X10 and X11.
15412
15413 * xfns.c (Fx_create_screen): Use XCreateWindow instead of
15414 XCreateSimpleWindow to directly set some extra attributes.
15415
15416 1989-05-14 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15417
15418 * syntax.h (SYNTAX_PREFIX): New macro.
15419 * syntax.c (Fmodify_syntax_table): Handle `p'; set new flag.
15420 (describe_syntax): Describe new flag.
15421 (Fbackward_prefix_chars): Move back over such chars.
15422
15423 * lread.c (read1): Dumb errors in last change.
15424
15425 1989-05-13 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15426
15427 * lread.c (read1): Error if EOF after `?' or in string.
15428
15429 * sysdep.c (init_sys_modes) [IBMRTAIX]: Typo; had s for sg.
15430
15431 1989-05-12 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15432
15433 * s/s-usg5-3.h: Define HAVE_SYSVIPC?
15434
15435 * alloc.c (Fmake_byte_code): If purifying, purecopy all elements.
15436
15437 * ymakefile (LIBXMENU): Use -loldX.
15438 Find libXMenu11.a in special place.
15439
15440 1989-05-12 Joseph Arceneaux (jla@apple-gunkies.ai.mit.edu)
15441
15442 * xfns.c (Fx_create_screen): If user has specified
15443 `x-iconic-startup' then start emacs in iconic form.
15444 Look for icon position in `icon-left' and `icon-top', or use
15445 window postion.
15446
15447 * xterm.c (x_term_init): If server doesn't respond, use fatal
15448 instead of error. Also tell user about -d option.
15449
15450 1989-05-10 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15451
15452 * sysdep.c (init_sys_modes, reset_sys_modes):
15453 Handle TIOCGLTC even if HAVE_TERMIO.
15454
15455 * print.c (Qprint_escape_newlines): New variable.
15456 * minibuf.c (read_minibuf): Make it t locally in minibuffers.
15457
15458 * fileio.c (Fcopy_file): Check for error on close.
15459
15460 1989-05-10 Joseph Arceneaux (jla@corn-chex.ai.mit.edu)
15461
15462 * xfns.c (adjust_scrollbars): Don't subtract 2 from
15463 h_scrollbar_height when calculating `length'.
15464
15465 1989-05-08 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15466
15467 * eval.c (call_debugger): Set entering_debugger.
15468 (find_handler_cause): Don't enter debugger if that's set.
15469 (Fbacktrace): Clear it; we are presumably in the debugger.
15470
15471 * m/m-sps7.h: New file.
15472
15473 1989-05-08 Joseph Arceneaux (jla@rice-chex.ai.mit.edu)
15474
15475 * xterm.c (XTread_socket_hook): For X11, on map and unmap events
15476 check the window manager hints for iconification status.
15477
15478 * xterm.c (x_make_widow_icon): For X11, just request
15479 iconification of the window manager.
15480
15481 1989-05-08 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15482
15483 * m/m-clipper.h: New file.
15484
15485 1989-05-07 Joseph Arceneaux (jla@corn-chex.ai.mit.edu)
15486
15487 * xfns.c (adjust_scrollbars): Don't subtract 2 from
15488 v_scrollbar_width when calculating `height'.
15489
15490 * xfns.c (x_set_foreground, x_set_border_pixel): Finished color
15491 coordination. Scrollbar border, thump-arrows, and slider pixmap
15492 linked with foreground color; slider border with window border.
15493
15494 1989-05-07 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15495
15496 * lread.c (read1): Handle octal integers.
15497
15498 * macros.c: Doc fix.
15499
15500 * search.c (Fstore_match_data): Allow ints instead of markers.
15501
15502 * keyboard.c (get_char_menu_prompt): New function; does menu prompting
15503 based on current keymaps.
15504
15505 1989-05-05 Joseph Arceneaux (jla@gracilis.ai.mit.edu)
15506
15507 * xfns.c (Fx_set_face): Rewrote the doc-string and renamed the
15508 parameters.
15509
15510 1989-05-05 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15511
15512 * unexec.c: New control parameters COFF_BSD_SYMBOLS, KEEP_OLD_PADDR,
15513 KEEP_OLD_TEXT_SCNPTR, ADJUST_TEXT_SCNHDR_SIZE, ADJUST_TEXTBASE,
15514 HEADER_INCL_IN_TEXT.
15515
15516 * unexec.c: Define IN_UNEXEC as flag for config.h.
15517
15518 * keymap.c: Fapropos, etc., deleted. (Now in Lisp code.)
15519
15520 * eval.c (Fcommandp): Byte code object is command if interactive slot
15521 exists at all.
15522
15523 1989-05-05 Chris Hanson (cph@kleph)
15524
15525 * process.c [HPUX && !NOMULTIPLEJOBS]: Include <bsdtty.h>, which
15526 defines TIOCGPGRP.
15527
15528 1989-05-05 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15529
15530 * data.c (Faref, Farray_length): Handle byte-code objects.
15531 * fns.c (Flength, concat): Likewise.
15532
15533 * data.c (Faref, Faset, Farray_length): Rename arg VECTOR to ARRAY.
15534
15535 * m/m-hp9000s300.h: Undefine NOMULTIPLEJOBS.
15536
15537 * keyboard.c (Fcommand_execute): Treat bytecode object as function.
15538
15539 * callint.c (Fcall_interactively): Separate decoding of fcn
15540 from handling of it.
15541
15542 * alloc.c (Fmake_byte_code): Renamed from Fmake_compiled_code.
15543 Make it pure if Vpurify_flag is non-nil.
15544 (Fpurecopy): Handle byte-code objects.
15545
15546 * keyboard.c (get_char): Use Fsit_for for echoing timeout, not alarm.
15547 Do this before timeout for auto-save since the latter is longer.
15548 (request_echo): Function deleted.
15549 ({set,clear}_waiting_for_input): No need for echo_now, echo_flag.
15550
15551 1989-05-04 Joseph Arceneaux (jla@gracilis.ai.mit.edu)
15552
15553 * xterm.c (x_lower_window, x_raise_window): Don't do anything if
15554 the window isn't visible.
15555
15556 * xfns.c (x_set_foreground_color): Recolor the scrollbar windows
15557 appropriately, compatible with xterm.
15558
15559 * xterm.c (x_reset_cursor): Do cursor recoloring.
15560
15561 1989-05-04 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15562
15563 * fns.c (Frandom): With number as arg, return value < that number.
15564
15565 * sysdep.c [USG, BSD4_1] (random): Call `rand' twice, to get
15566 30 bits of significance.
15567
15568 1989-05-03 Joe Arceneaux (jla@gracilis.ai.mit.edu)
15569
15570 * xterm.c (x_draw_box): Use the cursor_gc.
15571 * xfns.c: (x_set_cursor_color, x_create_screen): Do a better job
15572 with cursor colors, and use 0 line width for the cursor_gc.
15573
15574 1989-05-02 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15575
15576 Begin changing representation of compiled functions.
15577 * lisp.h (enum Lisp_Type): New type code Lisp_Compiled, like a vector.
15578 (COMPILED_*): Names for slots in those vectors.
15579 * alloc.c (Fmake_compiled_code): New function.
15580 * eval.c (Fcommandp, Feval, Ffuncall, funcall_lambda):
15581 Handle fcns of type Lisp_Compiled.
15582 (Fcommandp, Fapply): Avoid directly nested ifs.
15583 * print.c (print): Handle Lisp_Compiled objects.
15584 * callint.c (Fcall_interactively): likewise.
15585 * doc.c (Fdocumentation): likewise.
15586
15587 * keyboard.c (Fopen_dribble_file): nil as arg means close it.
15588
15589 * abbrev.c, alloc.c, buffer.c, bytecode.c, callint.c, callproc.c:
15590 * casefiddle.c, cmds.c, data.c, dired.c, dispnew.c, doc.c, editfns.c:
15591 * eval.c, fileio.c, filelock.c, floatfns.c, fns.c, keyboard.c:
15592 * keymap.c, lread.c, minibuf.c, mocklisp.c, print.c, process.c:
15593 * screen.c, search.c, syntax.c, undo.c, vmsfns.c:
15594 Many doc fixes.
15595
15596 1989-04-30 Joseph Arceneaux (jla@hobbes)
15597
15598 * xterm.c (XTring_bell): Wasn't passing selected_screen to XTflash.
15599 Fixed this.
15600
15601 * xterm.c (XTread_socket): Don't check if server died under
15602 X11. Temporary.
15603
15604 1989-04-30 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15605
15606 * window.c (Fdelete_other_windows): Bug getting top edge.
15607
15608 1989-04-29 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15609
15610 * keyboard.c (get_char): Auto save if enough time elapses.
15611 (auto_save_timeout): New Lisp variable.
15612
15613 * xdisp.c (try_window, try_window_id): Set w->redo_mode_line
15614 if should show percentage instead of `Bot'.
15615
15616 1989-04-29 Joe Arceneaux (jla@apple-gunkies.ai.mit.edu)
15617
15618 * xterm.c (x_term_init): Don't set visible bell, as it pre-empts
15619 .emacs control.
15620
15621 1989-04-26 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15622
15623 * doc.c (syms_of_doc): Make Vdoc_file_name a Lisp variable
15624 named internal-doc-file-name.
15625
15626 1989-04-25 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15627
15628 * m-news.h: m-news800.h renamed.
15629 Removed EXPLICIT_SIGN_EXTEND and COMPILER_REGISTER_BUG.
15630 Removed SEGMENT_MASK and sigmask.
15631 LOAD_AVE_TYPE is now `double'; LOAD_AVE_CVT changed too.
15632 Define m68000 if not defined.
15633
15634 1989-04-24 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15635
15636 * ymakefile: If COFF_ENCAPSULATE, define LD as gcc -nostdlib.
15637
15638 * sysdep.c: Unconditionally include sys/ioctl.h.
15639
15640 * m/m-mips.h [USG]: Define LIBS_TERMCAP.
15641 If HAVE_X11, define HAVE_VFORK.
15642
15643 1989-04-23 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15644
15645 * m/m-altos.h: Use termcap, not terminfo.
15646 Define COFF_ENCAPSULATE if using gcc.
15647 Use built-in alloca if using gcc.
15648 Define PURESIZE.
15649
15650 * lread.c (absolute_filename_p): On ALTOS, @ means absolute.
15651
15652 * process.c: Missing #endif.
15653 * fileio.c (Finsert_file_contents): Define `p' for last change.
15654 * buffer.c, floatfns.c: Typos in DEFUN doc strings.
15655 * keyboard.c: Typo in DEFVAR_LISP doc string.
15656
15657 * window.c (Fdelete_other_windows): Fix confusion about type of W.
15658
15659 1989-04-22 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15660
15661 * ymakefile (LDFLAGS): Forgot to use LD_SWITCH_SITE.
15662
15663 * xterm.c (XTflash): Draw the bars here.
15664 (x_invert_screen): Change to invert entire window.
15665 (stufflines): Changed args to XClearArea.
15666 (XTread_socket): Clean up handling of KeyPress events.
15667 For LeaveWindow, ignore uninteresting ones and handle autolower.
15668 For FocusIn, ignore if unknown window, and handle autoraise.
15669 For MotionNotify, add real handling for X11.
15670 For ConfigureNotify, count width of scroll bars.
15671 Don't call change_screen_size redundantly; ignore linked expose events.
15672 Update left and top pos if nec.
15673 For button events, ignore if not in known window or scrollbar.
15674 (x_new_selected_screen): Takes screen as arg.
15675 (x_error_handler): Arg type different for X11.
15676 (x_set_window_size) [HAVE_X11]: Call change_screen_size
15677 before x_wm_set_size_hint.
15678 (x_make_window_visible): Make scroll bars visible too, if any.
15679 (x_lower_window): New fn.
15680 (x_wm_set_size_hint): Take account of width of scroll bars.
15681 Ior specified hint flags with those already set.
15682
15683 * xterm.h (HSCROLL_HEIGHT): HSCROLL_WIDTH is renamed.
15684 (MAXWIDTH): Increased to 300.
15685 (MAXHEIGHT): Increased to 100.
15686 (DISPLAY_SCREEN_ARG): Remove parentheses.
15687 (ButtonReleased, WhichMouseButton): Delete definitions.
15688
15689 * xmenu.c: Adapted to new X interface. X11ONLY replaced with xDISPLAY.
15690 Many X11 conditionals removed.
15691
15692 * xfns.c (x_set_cursor_color): Special case if matches foreground.
15693 (Fx_create_screen): Typo for HSCROLL_HEIGHT.
15694 Use BLACK_PIX_DEFAULT, WHITE_PIX_DEFAULT.
15695 Set PRETEND arg to change_screen_size.
15696 Delete gray_bits; this value made global.
15697 Don't call install_*_scrollbar here.
15698 (x_set_horizontal_scrollbar): Define this for real.
15699 (x_set_vertical_scrollbar): Corrent args to install_vertical_scrollbar.
15700 (install_vertical_scrollbar): New local slider_pixmap, and set it.
15701 Delete locals GC_values, temp_gc.
15702 Change arrow_width, arrow_height (appears to be undefined) to 16.
15703 Un-if-0 this code.
15704 Use border_pixel, not foreground_pixel, for scrollbar.
15705 (install_horizontal_scrollbar): Define this for real.
15706 (adjust_scrollbars): Handle horizontal scrollbar.
15707 Define XMoveResizeWindow as XConfigureWindow if X10 to simplify.
15708 (x_resize_scrollbars): Remove #if 0 from quick-exit case.
15709 Really handle horizontal scrollbar.
15710 Simplify using new macro.
15711 (Fx_get_mouse_event): Mostly ignore events other than buttons.
15712 Use many new macros to handle X10 and X11.
15713 (encode_mouse_button): New fn: encoding of which button, broken out.
15714
15715 * xfns.c (left_arror_cursor, etc.): New vars.
15716 (x_screen_parm, init_x_parm_symbols, x_set_screen_param):
15717 Define X_PARM_AUTOLOWER.
15718
15719 * xdisp.c (display_string, redisplay-window, DoDsp):
15720 Use SCREEN_WIDTH, SCREEN_HEIGHT.
15721
15722 1989-04-21 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15723
15724 * indent.c (compute_motion): Use SCREEN_WIDTH.
15725 * dispnew.c (update_line): Use SCREEN_WIDTH.
15726 (update_screen): Use SCREEN_HEIGHT.
15727
15728 1989-04-20 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15729
15730 * window.c: rename Vauto_new_screen_hook, Vdisplay_buffer_hook, and
15731 Vtemp_buffer_show_hook to ..._function.
15732
15733 * keyboard.c: rename mouse_hook to mouse_event_function.
15734
15735 * buffer.c, buffer.h, cmds.c: blink-paren-hook and auto-fill-hook
15736 renamed to -function.
15737
15738 * fileio.c (Finsert_file_contents): Allow quit in read.
15739 (Fwrite_region): Allow quit in write.
15740
15741 1989-04-19 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15742
15743 * doprnt.c (doprnt): Comment out %b since sprintf can't do it.
15744
15745 * Change X11 to HAVE_X11 everywhere.
15746
15747 * m-sun3.h: Define C_SWITCH_MACHINE as -fsoft.
15748
15749 1989-04-18 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15750
15751 * process.c: Don't define wstopsig, wtersig if already defined.
15752
15753 * sysdep.c [VMS] (sys_getenv): Copy the string before returning it.
15754
15755 * m-alliant.h: Define `vector'.
15756
15757 1989-04-13 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15758
15759 * process.c (wait_reading_process_input) [sun]: If SIGIO failed
15760 to be sent, send it by hand.
15761
15762 1989-04-12 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15763
15764 * window.c (Fdelete_other_windows): recenter window to avoid scrolling.
15765
15766 1989-04-11 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15767
15768 * indent.c: Include screen.h.
15769
15770 * indent.c (pos_tab_offset, Fvertical_motion): Compute internal width
15771 correctly and uniformly.
15772
15773 * xdisp.c (try_window, try_window_id): Use exact internal width
15774 to update tab_offset.
15775 (try_window_id): pos_tab_offset value needs adjustment only if
15776 starting a line in middle of a character.
15777
15778 1989-04-08 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15779
15780 * sysdep.c [USG]: If TIOCGWINSZ defined, include sioctl.h.
15781
15782 1989-04-06 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15783
15784 * eval.c (Fbacktrace): Set Vprint_level to 3 throughout.
15785
15786 * fns.c (Fload_average): nlist data structure is funny on convex.
15787
15788 * window.c (scroll_command): scroll at least 1 line in specd direction.
15789
15790 * cm.c (calccost): NTABS was off by 1 sometimes; take account of
15791 the starting position modulo 8.
15792
15793 * fileio.c (Fexpand_file_name): Don't simplify /../ at start of name.
15794
15795 * callint.c: doc fixes.
15796
15797 * process.c (create_process):
15798 On all USG systems, not just IRIS and AIX, don't pre-open pty's tty.
15799 Move the setpgrp done for USG (no real change).
15800 Tell child_setup to do a setpgrp.
15801 * callproc.c (child_setup): New arg says whether to setpgrp.
15802 Never setpgrp on USG.
15803 (Fcall_process): Tell child_setup not to setpgrp.
15804
15805 * sysdep.c (init_sys_modes, reset_sys_modes): Don't try to hack
15806 TIOCGLTC, TIOCGETC, etc. if HAVE_TERMIO.
15807 Don't bother to undef these for XENIX.
15808
15809 1989-04-03 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15810
15811 * ymakefile (LIBES): Put LIBX first; it may depend on LIBS_MACHINE.
15812
15813 * m-sequent.h: Define HAVE_ALLOCA.
15814
15815 1989-04-02 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15816
15817 * term.c (term_init): Can't use scroll region if no abs positioning.
15818
15819 1989-04-01 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15820
15821 * process.c (Fopen_network_stream): close desc. if connect fails.
15822
15823 1989-03-31 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15824
15825 * minibuf.c (Fall_completions): gcprotect ALLMATCHES and TAIL,
15826 not STRING.
15827
15828 * keyboard.c (read_avail_input): Handle EBADSLT like EAGAIN.
15829
15830 1989-03-29 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15831
15832 * term.c (term_init): Either ic or ip or im or IC => can insert chars.
15833
15834 * minibuf.c (read_minibuf_unwind): Ensure minibuf writable for erasure.
15835
15836 1989-02-23 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15837
15838 * m-convex.h: Undefine NO_ARG_ARRAY.
15839 Changed defns of DATA_SEG_BITS and XINT.
15840 Define alloca for GCC compilation.
15841
15842 1989-02-17 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15843
15844 * m-ibmrt-aix.h: Define BROKEN_FIONREAD.
15845
15846 1989-02-16 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15847
15848 * keymap.c (Fdefine_prefix_command): Set both value and fn defn,
15849 with separate syms specified for each purpose.
15850
15851 1989-02-15 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15852
15853 * callproc.c (Fcall_process): Open /dev/null with O_WRONLY.
15854
15855 1989-02-14 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15856
15857 * window.c (window_scroll): Allow scrolling to very end (empty screen)
15858 if that's exactly where we wanted to scroll to.
15859
15860 1989-02-11 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15861
15862 * data.c (Fkill_local_variable): New local to simplify big stmt.
15863
15864 1989-02-09 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15865
15866 * xdisp.c (display_text_line): cvt chars to glyfs for overlay arrow.
15867
15868 * sysdep.c (init_sys_modes, child_setup_tty) [IBMRTAIX]:
15869 Don't ignore BRK, and don't signal it.
15870
15871 * process.c (pty): An IBMRTAIX conditional.
15872 (create_process): Another here.
15873
15874 1989-02-08 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15875
15876 * keymap.c (Fdefine_prefix_command): Use Ffset, not Fset.
15877
15878 1989-02-06 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15879
15880 * fileio.c (Fset_visited_file_modtime): New fn.
15881
15882 * xfns.c (Fx_create_screen) [X10]: XCreateWindow wants pixmaps as args.
15883
15884 1989-02-03 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15885
15886 * dispnew.c (Fsit_for): It accepts 3 args.
15887
15888 1989-02-02 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15889
15890 * xterm.c (XTread_socket): For X10, make EVENT an XKeyPressedEvent.
15891 (x_set_resize_hint): Call XSetResizeHint.
15892
15893 * process.c: Declare interrupt_input.
15894
15895 * sysdep.c (init_sys_modes): TIOCSTART, not TCSTART.
15896
15897 1989-01-28 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15898
15899 * xterm.h (struct x_display): `GC' renamed `gc' in all field names.
15900 Field `ColorMap' renamed to `color_map'.
15901 (face_gc_values): face_GC_values renamed.
15902
15903 1989-01-28 Joe Arceneaux (rms@sugar-bombs.ai.mit.edu)
15904
15905 * xterm.h (face_GC): Var deleted.
15906 (struct x_display): New field face_GC.
15907 (VSCROLL_WIDTH, HSCROLL_WIDTH): Moved here.
15908 (MINWIDTH, MINHEIGHT, MAXWIDTH, MAXHEIGHT): New vars. Eliminate them!
15909 (BLACK_PIX_DEFAULT): Typo in definition.
15910 (WHITE_PIX_DEFAULT): Typos in definitions; was the black default.
15911
15912 * xterm.c: Include ioctl.h only if BSD.
15913 Include termio.h otherwise.
15914 (XMapWindow) [X11]: Typo in definition.
15915 (METABIT): New definition; maybe not needed.
15916 (hostname, id_name, invocation_name, Vcommand_line_args): New vars
15917 declared for main icon title.
15918 (x_debug): Init to 1 if XDEBUG defined.
15919 (dumpglyfs) [X11]: Changed args to XDrawImageString.
15920 If debugging, do XFlushQueue.
15921 Use screen's face_gc rather than old global one.
15922 (XTflash) [not BSD]: avoid `struct itimerval'; use `alarm'.
15923 (events): New table of event type names.
15924 (XTread_socket): EVENT is now an XEvent even on x10.
15925 Translate modifier key 1 into meta-bit.
15926 For EnterNotify event, don't dumpborder or x_new_selected_screen
15927 if there is an x_focus_screen.
15928 For LeaveNotify event, don't ignore due to nonzero subwindow.
15929 For ConfigureNotify, change screen size.
15930 Do `select' check for SIGHUP only if HAVE_SELECT.
15931 (x_new_selected_screen): An arg, SCREEN.
15932 (x_display_cursor): dumpglyfs args changed.
15933 (x_draw_box): Add GC arg to XDrawRectangle; change other args.
15934 (clear_cursor): Change args to XClearArea.
15935 (dumpborder): check x_input_screen, not selected_screen.
15936 (x_text_icon): For X11, new arg to XGetDefault.
15937 Cast values stored in icon_label.
15938 (x_term_init): Hair to calculate name for icon.
15939 Don't init_sigio unless SIGIO defined.
15940 Call Fset_input_mode.
15941 For X11, new arg to XGetDefault.
15942 Set _Xdebug if debugging.
15943 (x_new_font) Use XGetFont.
15944 Get GC values from the screen structure.
15945 (x_reset_cursor): Don't call XRecolorCursor.
15946 (x_set_window_size): Call x_wm_set_size_hint, not x_set_size_hint.
15947 (x_set_resize_hint): For X11, call x_wm_set_size_hint.
15948 (x_wm_set_size_hint, x_wm_set_window_state, x_wm_set_icon_pixmap):
15949 (x_wm_set_icon_position): New fns for X11.
15950
15951 * xfns.c: For X11, include Xutil.h
15952 (VSCROLL_WIDTH): Moved to xterm.h.
15953 (face_GC): Don't declare it.
15954 (id_name): Declare this.
15955 (x_decode_color): Check `white' and `black' first of all.
15956 (x_set_foreground_color) [X11]: Reset foreground and background.
15957 (x_set_background_color) [X11]: Missing arg to XSetWindowBackground.
15958 (x_set_cursor_color) [X11]: Reset foreground and background.
15959 (x_read_mouse_position) [X11]: Changed call to XQueryPointer.
15960 (x_set_mouse_position) [X11]: Add args to XWarpPointer.
15961 (Fx_create_screen): Set some temporary geometry parms at the beginning.
15962 For X11, changed setup of iconidentity, and implement rubber-banding.
15963 For X11, implement merging individual geometry parms.
15964 For X11, changed args to XCreateSimpleWindow.
15965 For X11, call x_wm_set_size_hint.
15966 Specify name when creating icon.
15967 Don't call XSetForeground, XSetBackground before making border tile.
15968 New var `cursor_bits'. Init the screen's GC's.
15969
15970 * screen.c (Frubber_band_rectangle): For X11, just return nil.
15971
15972 1989-01-24 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15973
15974 * buffer.c (Fbuffer_modified_tick): New fn.
15975
15976 * window.c (Fnext_window): Accept 3 args from Lisp.
15977
15978 1989-01-23 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15979
15980 * sysdep.c (sys_suspend): Handle case of SIGTSTP but not BSD.
15981
15982 1989-01-20 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15983
15984 * sysdep.c (init_sys_modes): Do TIOCSTART if def, like TCXONC.
15985
15986 1989-01-19 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15987
15988 * process.c (wait_reading_process_input): New 2nd arg is extra usecs.
15989 All callers changed.
15990 * dispnew.c (Fsit_for, Fsleep_for): New 2nd arg says 1st arg
15991 counts in milliseconds.
15992
15993 * buffer.c (Fkill_all_local_variables): Implement permanent locals.
15994
15995 1989-01-18 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
15996
15997 * keymap.c (get_keyelt): Allow indirection within (STRING . DEFN).
15998
15999 1989-01-16 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
16000
16001 * process.c (wait_reading_process_input): If select returns there
16002 is kbd input, but detect_input_pending can't find it, signal SIGIO.
16003 This may avoid the X loop-on-logout bug.
16004
16005 * process.c (wait_reading_process_input): Flush fix_screen_hook.
16006 * termhooks.h, term.c: likewise.
16007
16008 * xdisp.c (Fredraw_display): Don't do set_terminal_modes.
16009 * dispnew.c (Fredraw_screen): likewise.
16010
16011 * eval.c (Fcond): If no args, return nil.
16012
16013 1989-01-15 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
16014
16015 * eval.c (Fbacktrace_frame): Require one arg. Return nil if too high.
16016
16017 1989-01-14 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
16018
16019 * minibuf.c (read_minibuf): Set Vminibuf_scroll_window before
16020 switching windows.
16021
16022 * xterm.c (XTread_socket): If no HAVE_SELECT, wait for input
16023 if new arg WAITP is non0. Do this by not bothering to test for
16024 presence of input before reading some.
16025 Check for dead connection only if new arg EXPECTED is nonzero.
16026 All callers changed (keyboard and sysdep).
16027
16028 * keyboard.c: Simplify keyboard input.
16029 (read_avail_input): Don't assume buffer is empty.
16030 Don't call get_input_pending; do FIONREAD here.
16031 Don't do FIONREAD if read_socket_hook, just tell it don't wait.
16032 Arg EXPECTED is passed to read_socket_hook.
16033 (input_available_signal): Use read_avail_input.
16034 (gobble_input): Use read_avail_input; arg EXPECTED passed along.
16035 (get_input_pending): let gobble_input do the work.
16036
16037 VMS keyboard input should have interrupt_input nonzero.
16038 * keyboard.c (Fset_input_mode, init_keyboard): [VMS] Always set
16039 interrupt_input to 1.
16040 (get_input_pending): Special case deleted.
16041
16042 1989-01-13 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
16043
16044 * fileio.c (auto_save_1): Always make auto-save file owner-writable.
16045
16046 * eval.c (Fbacktrace_frame): New fn.
16047
16048 * buffer.h: Define `fieldlist' field in a buffer.
16049 * buffer.c (Fregion_fields): Return list of fields overlapping
16050 specified region.
16051 (syms_of_buffer): New variable buffer-field-list.
16052 (reset_buffer): Clear the fieldlist.
16053 (init_buffer_once): Set up default and flag for buffer-field-list.
16054 * insdel.c (prepare_to_modify_buffer): If check_protected_fields,
16055 call Fregion_fields to detect error.
16056 Delete buffer_modify_hook.
16057
16058 * callint.c (Fcall_interactively): Bind `command-debug-status'
16059 for each interactive command.
16060
16061 * keyboard.c (command_loop_1): Count # commands read.
16062 (num_input_keys): New Lisp variable.
16063
16064 * m/m-gould.h, m/m-ibmrt-aix.h, m/m-sequent.h, m/m-sparc.h,
16065 m/m-sun3.h, m/m-symmetry.h: Define A_TEXT_SEEK.
16066 * unexec.c (copy_text_and_data): Don't check A_TEXT_OFFSET,
16067 just A_TEXT_SEEK.
16068 * unexconvex.c: Likewise.
16069
16070 * unexconvex.c: machine/*.h unconditionally.
16071
16072 * process.c (pty): Delete RTU, HPUX, IRIS alternatives to
16073 PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF.
16074 * s/s-hpux.h: Define PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF.
16075 * s/s-rtu.h: Likewise.
16076 * s/s-iris*.h: Define PTY_TTY_NAME_SPRINTF.
16077
16078 * sunfns.c (Fsun_change_cursor_icon): Avoid ambiguity in eval order.
16079
16080 1989-01-12 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
16081
16082 * data.c (Fdefault_value): If var set up with default value as current,
16083 take the current value slot, more up to date than the default slot.
16084
16085 1989-01-11 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
16086
16087 * dispnew.c (init_display): don't handle SIGWINCH if using X.
16088
16089 * fileio.c (Fdo_auto_save): If file has shrunk, turn off auto-save.
16090 This avoids duplicate messages and allows M-x auto-save to turn it on.
16091
16092 * lread.c (Fload): Look in Vafter_load_alist.
16093 (syms_of_load): Define after-load-alist.
16094
16095 1989-01-07 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
16096
16097 * dired.c (Fdirectory_files): 4th arg NOSORT non-nil means don't sort.
16098
16099 * syntax.c (scan_lists): Change Sendcomment case so that
16100 ignoring comments works even for newline-terminated comments.
16101
16102 * minibuf.c (read_minibuf): Default Vminibuf_scroll_window
16103 to the window that was selected.
16104
16105 1989-01-06 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
16106
16107 * fns.c (do_yes_or_no_p): Typo, call2 => call1.
16108
16109 * eval.c (Fbacktrace): Each frame item should have a newline.
16110
16111 * emacs.c (Fkill_emacs): Don't run hook if noninteractive.
16112
16113 * eval.c: Define Vrun_hooks.
16114 (syms_of_eval): Initialize Vrun_hooks.
16115
16116 * indent.c (Fmove_to_column): Use del_range; Fdelete_backward non ex.
16117
16118 * ymakefile (objs, floatfns.o): Re-add this file.
16119 (LIBX): Install X11 case.
16120
16121 * ymakefile (LIB_GCC): Now a cpp macro, like all other LIB_...
16122 Define null if not using GCC.
16123
16124 * lread.c (unreadchar): New function to unread a char
16125 by stuffing it back into its stream. Now unread chars
16126 work properly between multiple reads.
16127 (UNREAD): Now calls that function.
16128 (readchar): Don't us `unrch'; variable deleted.
16129 (various): Don't initialize `unrch'.
16130 (readevalloop): No need to save and restore `unrch'.
16131 (read1): Don't unread a -1.
16132
16133 * keymap.c (get_keyelt): If keymap defn is (STRING . FOO),
16134 remove just FOO. Will help HierarKey.
16135
16136 1989-01-05 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
16137
16138 * unexmips.c [IRIS_4D]: Don't include fcntl.h.
16139 (unexec): Look for LIT8, LIT4 sections iff they are defined.
16140
16141 * buffer.c (Fkill_all_local_variables): Force redisplay of mode lines.
16142
16143 1989-01-02 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
16144
16145 * emacs.c (main): Do the setpgrp before handling -t.
16146
16147 * keyboard.c (Fsuspend_emacs): Use run-hooks to run suspend-hook
16148 and suspend-resume-hook.
16149
16150 * buffer.c (Fkill_buffer): Execute kill-buffer-hooks
16151 with buffer to be killed as current buffer.
16152
16153 * buffer.c (count_modified_buffers): ModExist renamed.
16154
16155 * emacs.c (Fkill-emacs): Execute kill-emacs-hook.
16156
16157 * fileio.c (auto_save_1): Set auto_save_mode_bits from visited file.
16158 (Fwrite_region) [not VMS]: If auto-saving, write file with that mode.
16159
16160 * fileio.c (Fwrite_region): If START is a string, write that string.
16161
16162 1989-01-01 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
16163
16164 * lisp.h (XMARKBIT, XSETMARKBIT): If mark bit is sign bit,
16165 use sign-test for XMARKBIT; value is then 1 or 0.
16166 Make XSETMARKBIT test 2nd arg for nonzeroness only.
16167
16168 * m/m-mips.h: Last batch of changes are only for USG.
16169 (XMARKBIT, XSETMARKBIT): Deleted; the new default ones are good.
16170
16171 * editfns.c (Fformat): Use princ for %s.
16172 New format %S converts everything (even strings) with prin1.
16173 * doprnt.c (doprnt): Treat %s like %S.
16174
16175 * print.c (Fprin1_to_string): Opt 3nd arg non-nil does princ.
16176
16177 1988-12-31 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
16178
16179 * data.c (Fstring_to_int): Correct max # args.
16180
16181 1988-12-30 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
16182
16183 * ymakefile (LIBES, LIB_GCC): If using GCC, link with gnulib.
16184
16185 1988-12-29 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
16186
16187 * editfns.c: Many doc improvements.
16188
16189 1988-12-28 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
16190
16191 * lisp.h (CHECK_NATNUM): New macro.
16192
16193 * indent.c (Fmove_to_column): 2nd arg t means indent till spec'd column
16194 or change tab to spaces if necessary.
16195
16196 * m/m-iris4d.h: (conditionally) delete DEFAULT_ENTRY_ADDRESS
16197 and change START_FILES and LIB_STANDARD.
16198
16199 * s/s-iris3-6.h: Define sigblock as no-op.
16200
16201 * m/m-mips.h: Cancel defn of VIRT_ADDR_VARIES, `static'.
16202 Undef SIGIO. Define BROKEN_FIONREAD.
16203 Define various HAVE_... flags a la BSD.
16204 Add options, libraries for linking and compilation.
16205
16206 * unexmips.c (unexec): Handle additional optional sections now likely.
16207 New scheme for recording what sections there are.
16208 Make handling of the LIT8,LIT4 sections conditional (not on IRIS).
16209
16210 * fns.c (do_yes_or_no_p): New interface to Lisp function yes-or-no-p.
16211 Allows the user to redefine that function.
16212 All callers of Fyes_or_no_p changed.
16213
16214 * data.c (Fmakunbound): Don't allow nil or t as arg.
16215
16216 * m/m-orion105.h (LOAD_AVE_TYPE): Now `long'.
16217
16218 1988-12-27 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
16219
16220 * dispnew.c (unhold_window_change):
16221 Don't signal SIGWINCH. Instead, do pending size-changes here,
16222 while holding any new size-changes that arrive, so they become
16223 pending. Loop around to get the new pending ones.
16224 (change_screen_size): Clear any previous pending size-change.
16225
16226 * search.c (place): Was clipping to (1- (point-max)) by mistake.
16227
16228 1988-12-24 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
16229
16230 * window.c (Fdelete_window): Give all this window's space
16231 to one adjacent sibling.
16232
16233 1988-12-23 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
16234
16235 * keymap.c (describe_alist): Don't lose on non-cons-cell alist elts.
16236 (Fwhere_is_internal): Don't fail to step down the alist.
16237 (Faccessible_keymaps): Considerable confusion in alist case.
16238
16239 * lread.c (Feval_current_buffer, Feval_region):
16240 Save and restore point as a marker, not a number.
16241 Don't restore it at all if printflag is t.
16242
16243 * print.c (float_to_string): Mostly rewritten; output format
16244 is now a printf %-spec.
16245 (Qfloat_output_format): Doc changed to match.
16246
16247 1988-12-22 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
16248
16249 * ymakefile (obj): Include floatfns.o.
16250 * data.c (syms_of_data): Fix typo Snumberp_or_marker_p.
16251
16252 Allow keymaps to have other keymaps as tails.
16253 Thus, one keymap can inherit from another.
16254 * keymap.c (Fwhere_is_internal): Ignore non-cons elements of alist.
16255 (Faccessible_keymaps): Support symbols as alist indices.
16256 Ignore alist elements that aren't conses.
16257
16258 * m/m-sun386.h (LDAV_SYMBOL): Define as "avenrun" with no underscore.
16259
16260 * lread.c (read_escape): Support ANSI C `\x...' hex escapes.
16261
16262 * bytecode.c (Fbyte_code): fix jump operators for change in `pc'.
16263
16264 1988-12-21 Joe Arceneaux (jla@gracilis.ai.mit.edu)
16265
16266 * ymakefile: Commented #endif LISP_FLOAT_TYPE. Also changed
16267 the code pertaining to X11 to use the same files as X10.
16268
16269 * bytecode.c (Fbyte_code): Declared unsigned char *pc.
16270
16271 1988-12-19 Joe Arceneaux (jla@apple-gunkies.ai.mit.edu)
16272
16273 * xterm.c: Finished a first cut of the X11 version.
16274
16275 1988-12-18 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
16276
16277 * sysdep.c (select): `buf' is now unsigned char.
16278
16279 1988-12-16 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
16280
16281 * m/m-elxsi.h: Don't define WORD_MACHINE or CANNOT_DUMP.
16282 Do define symbols for load average.
16283 Define COFF and ADJUST_EXEC_HEADER.
16284
16285 1988-12-16 Joe Arceneaux (jla@apple-gunkies.ai.mit.edu)
16286
16287 * sink.h,sinkmask.h: Same file now works for both X10 and X11.
16288 * xterm.c,xfns.c (x_text_icon) Can now take new name as parameter.
16289
16290 1988-12-16 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
16291
16292 * m/m-is386.h: No need to undef HAVE_PTYS, HAVE_SOCKETS, SYSV_PTYS
16293 since s-usg5-3.h no longer defines them.
16294
16295 1988-12-14 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
16296
16297 * bytecode.el (Fbyte_code): Cache the pointer in the string
16298 to avoid recalculating it at each fetch.
16299 Also turn off the error check for stack overflow/underflow.
16300
16301 1988-12-14 Joe Arceneaux (jla@apple-gunkies.ai.mit.edu)
16302
16303 * xfns.c: Made the first cut for X11 version.
16304 * xterm.c: (x_reset_cursor) Did the X11 version.
16305
16306 1988-12-14 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
16307
16308 * keyboard.c (Fexecute_mouse_event): Set Vmouse_event. Doc fix.
16309 Run Vmouse_hook at the end.
16310 (syms_of_keyboard): Define var `mouse-hook'.
16311
16312 1988-12-13 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
16313
16314 * term.c (insert_glyfs): Typo, was fetching G twice.
16315
16316 1988-12-10 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
16317
16318 * keymap.c (describe_buffer_bindings): Print mouse bindings too.
16319 (describe_map): If have a chartab, use mouse-describe-key for prefixes.
16320 * keymap.c (describe_{map,map_tree,alist}, describe_vector):
16321 Extra arg mapping chars to their names. Calls changed.
16322 * syntax.c (describe_syntax_1): Call changed.
16323
16324 * keymap.c (Vglobal_mouse_map): Make it exist unconditionally.
16325
16326 * keymap.c (apropos1): Clean up.
16327 Do where-is-internal only if there is a function definition.
16328 Use mouse-describe-key to turn mouse key sequences into strings.
16329 (Fwhere_is): Check the mouse map too;
16330 (Fwhere_is_internal): New arg is global map to use.
16331 All callers changed in keypad.c and doc.c.
16332 (where_is_string): New fn cvts result of Fwhere_is_internal to string.
16333
16334 1988-12-09 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
16335
16336 * emacs.c (stack_bottom): New variable, set in main.
16337 * alloc.c (Fgarbage_collect): Save a copy of the entire stack contents.
16338
16339 1988-12-07 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
16340
16341 * editfns.c (Funix_umask, Funix_sync): New functions.
16342
16343 * process.c (Fsignal_process): New function.
16344
16345 1988-12-06 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
16346
16347 * editfns.c (Fsubst_char_in_region): Fix typo in when to un-modify buf.
16348
16349 1988-12-05 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
16350
16351 * process.c (create_process): Take the usg's setpgrp and the close-and
16352 -open of the tty outside the TIOCNOTTY conditional, since TIOCNOTTY
16353 is always missing outside BSD. Now the TIOCNOTTY conditional controls
16354 only the TIOCNOTTY.
16355
16356 1988-12-04 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
16357
16358 * lread.c (Feval_current_buffer, Feval_region):
16359 If there is an error, don't restore original point.
16360
16361 * s-hpux.h (SHORT_CAST_BUG): Define this, for HPUX version 6.2.
16362
16363 * ymakefile (THIS_IS_YMAKEFILE): Define macro to tell m- files
16364 to do special things.
16365
16366 * m/m-ns16000.h: (LOAD_AVE_TYPE, etc.): Don't define them if USG.
16367 * m/m-ns16000.h [USG]: Define various macros differently.
16368 (munnari!sibyl.eleceng.ua.oz.au!ian@uunet.uu.net).
16369
16370 * sysdep.c (reset_sys_modes): Don't output a CR here.
16371 * term.c (reset_terminal_modes): Do it here, but first
16372 do a newline if it's a magic cookie terminal.
16373
16374 * sysdep.c (sys_suspend) [USG]: Use `nice' to set subshell pri. to 0.
16375
16376 * sysdep.c (TIOCSETN) [USG]: Use TCSETAW, not TCSETA.
16377
16378 * sysdep.c (setpriority) [USG]: No longer a no-op; use `nice'.
16379
16380 * keymap.c (Fwhere_is_internal): New 4th arg inhibits looking thru
16381 indirect definitions--so you can search for one.
16382
16383 * alloc.c, fns.c, search.c: Doc fix.
16384
16385 1988-12-01 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
16386
16387 * process.c (read_process_output): Insert with insert_before_markers.
16388
16389 * filelock.c (lock_file_1, lock_superlock):
16390 If USG, use chmod instead of fchmod.
16391
16392 * environ.c (Fsetenv): Doc fix.
16393
16394 1988-11-25 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
16395
16396 * eval.c (do_autoload): Verify FUNNAME is a symbol.
16397
16398 1988-11-17 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
16399
16400 * fileio.c (Fread_file_name): New arg specifies initial minibuf cntnts.
16401 * callint.c (Fcall_interactively): Calls changed.
16402
16403 1988-10-08 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
16404
16405 * insdel.c (make_gap): Error if buffer size exceeds range of Lisp int.
16406
16407 1988-10-06 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
16408
16409 * window.c (Fsplit_window): Prevent error in Fset_window_buffer.
16410
16411 * sysdep.c (gettimeofday): Store -1 thru tzp so caller knows invalid.
16412
16413 * xdisp.c (message): Pass 0 as new arg to doprnt.
16414 * callint.c (Fcall_interactively): Likewise.
16415 * editfns.c (format1):
16416 * doprnt.c (doprnt): Allow 0 as FORMAT_END arg meaning null-terminated.
16417
16418 1988-10-05 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
16419
16420 * keyboard.c: If UNIPLUS, include ioctl.h.
16421
16422 * sysdep.c (utime): Use new flag IRIS_UTIME, not IRIS.
16423 * s-iris*.h: Define that flag.
16424
16425 1988-10-04 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
16426
16427 * term.c (term_init): If have `im' capability, permit ins/del char
16428 even without `ic'.
16429
16430 1988-10-03 Richard Stallman (rms@corn-chex.ai.mit.edu)
16431
16432 * m/m-hp9000s300.h: Conditionals for BSD vs HPUX.
16433
16434 * ymakefile: Look for C_SWITCH_SITE, LD_SWITCH_SITE.
16435
16436 1988-09-30 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
16437
16438 * editfns.c (Fformat): Allow nulls in the format.
16439 * doprnt.c (doprnt): likewise. End of format string is new arg.
16440
16441 1988-09-28 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
16442
16443 * m/m-7300.h: Undefine SHORTNAMES. Supposedly newer Unix now.
16444
16445 * print.c (print): Support new var print_length.
16446 (syms_of_print): Define Lisp var print-length.
16447 * eval.c (Fbacktrace): Print unevalled form with print_length = 3.
16448
16449 * Makefile (tags): Add TAGS as alternate target.
16450 Process the files in ../lisp/term.
16451
16452 1988-09-27 Richard Stallman (rms@corn-chex.ai.mit.edu)
16453
16454 * doprnt.c (doprnt): Handle %-20s.
16455 * editfns.c (Fformat): Likewise (make enough space for it).
16456
16457 * minibuf.c (do_completion): If get "Complete but not unique" twice
16458 in a row, display all completions. New var last_exact_completion.
16459
16460 1988-09-26 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
16461
16462 * dispnew.c (baud_rate): Now a Lisp variable, not a function.
16463 * termcap.c (tputs) [emacs]: Use baud_rate as the speed.
16464
16465 1988-09-19 Richard Stallman (rms@gluteus.ai.mit.edu)
16466
16467 * window.c (Fset_window_configuration): Set deleted windows' buffer
16468 to nil, via new function delete_all_subwindows.
16469 * window.c (Fset_window_buffer): Reject deleted windows.
16470 * window.c (init_window_once): Init the ->buffer fields
16471 to satisfy error check in Fset_window_buffer.
16472
16473 * xmenu.c (Fx_popup_menu): 1st arg is now ((X Y) WINDOW).
16474
16475 * process.c (child_sig): If synch process terminates, clear
16476 synch_process_pid and record synch_process_death.
16477 * callproc.c (Fcall_process): return synch_process_death.
16478 Always set synch_process_pid and do it with SIGCHLD masked off.
16479 * sysdep.c (wait_for_termination) [subprocesses and not VMS]:
16480 Use alarms to check every second whether synch_process_pid is 0.
16481
16482 1988-09-17 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
16483
16484 * xdisp.c (redisplay_window): If window-point is outside restriction
16485 then correct it in the window.
16486 * window.c (Fdelete_buffer): Don't change buffer's point to a value
16487 outside its restriction.
16488
16489 * sysdep.c (init_sys_modes) [MULTI_SCREEN]: Set Vterminal_screen's
16490 garbaged bit.
16491
16492 1988-09-16 Richard Stallman (rms@corn-chex.ai.mit.edu)
16493
16494 * keyboard.c (kbd_buffer_get_char): VMS now uses same code as Unix.
16495
16496 * vmsproc.c: New file for VMS only.
16497 * callproc.c [VMS]: Omit Fcall_process and child_setup_tty.
16498 * emacs.c (main) [VMS]: Call init_vmsproc and syms_of_vmsproc.
16499
16500 * lread.c (OBARRAY_SIZE): Change slightly to 509 (prime).
16501
16502 * keyboard.c, dispnew.c, term.c, xterm.c (meta_flag): MetaFlag renamed.
16503 * keyboard.c (Fset_input_mode): 3rd arg sets meta_flag.
16504 (syms_of_keyboard): Variable meta-flag deleted.
16505 * sysdep.c (init_sys_modes): Don't override parity settings
16506 if meta_flag is 0.
16507
16508 1988-09-15 Richard Stallman (rms@corn-chex.ai.mit.edu)
16509
16510 * search.c (Fsearch_forward, etc.): All buffer-search functions
16511 return new the value of point if they succeed.
16512
16513 1988-09-13 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
16514
16515 * cmds.c (Fnewline): Correct test of ARG1 to inhibit auto-fill.
16516
16517 1988-09-12 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
16518
16519 * window.c (Fdelete_window): Put nil as buffer of the deleted window.
16520 This makes select-window get an error earlier.
16521
16522 1988-09-06 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
16523
16524 * search.c (search_buffer, string_match, looking_at):
16525 Report matcher stack overflow as error, not just failure to match.
16526
16527 * data.c (Fmake_local_variable): Add local variable to simplify
16528 too-complex expression.
16529
16530 * fileio.c (Fdo_auto_save): No "file has shrunk" msg if < 5000 chars.
16531
16532 See ChangeLog.2 for earlier changes.
16533
16534 Copyright (C) 1993 Free Software Foundation, Inc.
16535 Copying and distribution of this file, with or without modification,
16536 are permitted provided the copyright notice and this notice are preserved.
16537
16538 ;;; arch-tag: 136a8e5c-4f83-403b-9132-874f1c47f8a9