Trailing whitespace deleted.
[bpt/emacs.git] / src / ChangeLog.3
CommitLineData
615d0182
DL
11993-05-30 Richard Stallman (rms@mole.gnu.ai.mit.edu)
2
3 * Version 19.10 released.
4
51993-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
dff28924 10 * frame.c (Ficonify_frame, Fmake_frame_invisible):
615d0182
DL
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
291993-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
441993-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
dff28924 81 * s/sco4.h (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF):
615d0182
DL
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
891993-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
1081993-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
1321993-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
1401993-05-27 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
141
142 * Version 19.9 released.
143
1441993-05-27 Richard Stallman (rms@mole.gnu.ai.mit.edu)
145
146 * keyboard.c (read_char): Correct previous change.
147
1481993-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
1631993-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
1691993-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
1901993-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
2031993-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
2131993-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
2431993-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
2851993-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
2891993-05-25 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
290
291 * Version 19.8 released.
292
2931993-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
dff28924 328 of fontns returned - 2000 is more reasonable.
615d0182
DL
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
3871993-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
4051993-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
4171993-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
4231993-05-24 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
424
88c71720 425 * buffer.c (Fmake_overlay): Put beg and end in the right order.
615d0182
DL
426 (Fmove_overlay): If beg and end are markers, make sure they're in
427 the right buffer.
428
4291993-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
4411993-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
4461993-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
4591993-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
4671993-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
4721993-05-24 Richard Stallman (rms@mole.gnu.ai.mit.edu)
473
474 * s/dgux.h (NO_GET_LOAD_AVG): Define, if __GNUC__.
475
4761993-05-23 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
477
478 * s/hpux8.h (NO_SIOCTL_H): Defined.
479
4801993-05-23 Richard Stallman (rms@mole.gnu.ai.mit.edu)
481
482 * s/linux.h (HAVE_DUP2, HAVE_ALLOCA_H): Deleted.
483
4841993-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
4891993-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
4981993-05-23 Paul Eggert (eggert@twinsun.com)
499
500 * editfns.c (Fcurrent_time_zone): Make `am' an int, not long.
501
5021993-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
5311993-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
5371993-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
5491993-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
5571993-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
5681993-05-21 Richard Stallman (rms@mole.gnu.ai.mit.edu)
569
570 * xfns.c (x_window_to_frame): Use XGCTYPE.
571
5721993-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
5811993-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
5861993-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
6001993-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
6071993-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
6131993-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
6181993-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
6261993-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
6751993-05-19 Richard Stallman (rms@mole.gnu.ai.mit.edu)
676
677 * keyboard.c (Fcurrent_input_mode): Return META as 3-way flag.
678
6791993-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
dff28924 695 segments above BSS.
615d0182
DL
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
7011993-05-19 Richard Stallman (rms@mole.gnu.ai.mit.edu)
702
703 * keyboard.c (follow_key): Check char in range before UPPERCASEP.
704
7051993-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
7111993-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
7351993-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
7401993-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
7561993-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
7631993-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
7831993-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
8191993-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.
dff28924 834
615d0182
DL
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
8421993-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
8521993-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
8611993-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
8661993-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
dff28924 937 checking for an empty interval tree.
615d0182
DL
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
9471993-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
9791993-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
9991993-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
10221993-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
10891993-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
10951993-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
11121993-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
11311993-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
11491993-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
11591993-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
11701993-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
11851993-05-04 Richard Stallman (rms@mole.gnu.ai.mit.edu)
1186
1187 * window.c (Fdisplay_buffer): Add space to prompt.
1188
11891993-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
11971993-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
12031993-05-01 Richard Stallman (rms@mole.gnu.ai.mit.edu)
1204
1205 * keyboard.c (Fsuspend_emacs): Doc fix.
1206
12071993-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
12111993-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
12421993-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
12531993-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
12571993-04-28 Jim Blandy (jimb@totoro.cs.oberlin.edu)
1258
1259 * keyboard.c (Fcurrent_input_mode): New function.
1260
12611993-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
12691993-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
12791993-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
12841993-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
13141993-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
13201993-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
13331993-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
13411993-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
13541993-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
13641993-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
13891993-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
14081993-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
14231993-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
14501993-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
14581993-04-12 Richard Stallman (rms@mole.gnu.ai.mit.edu)
1459
1460 * xfaces.c: Don't include Xmu/Drawing.h.
1461
14621993-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
14701993-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
15421993-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
15541993-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
15611993-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
15721993-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
15851993-04-05 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
1586
1587 * s/vms.h (EXEC_SUFFIXES): Add definition for this.
1588
15891993-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.
dff28924 1650
615d0182
DL
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
16591993-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
16831993-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
17001993-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
17091993-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
17141993-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
17491993-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
17701993-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
17781993-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
17881993-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
18021993-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
18081993-03-22 Richard Stallman (rms@wookumz.gnu.ai.mit.edu)
1809
dff28924 1810 * indent.c (current_column, Findent_to, position_indentation):
615d0182
DL
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
18211993-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
18271993-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
18331993-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
18451993-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
18661993-03-20 Richard Stallman (rms@mole.gnu.ai.mit.edu)
1867
1868 * emacs.c (init_cmdargs): Fix simple bug in previous change.
1869
18701993-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
19271993-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
19321993-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
19371993-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
19451993-03-18 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
1946
1947 * frame.h (FOR_EACH_FRAME): Change the definition so that
dff28924 1948 FRAME_VAR is a lisp object.
615d0182
DL
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
19571993-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
19641993-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
19711993-03-17 Richard Stallman (rms@mole.gnu.ai.mit.edu)
1972
1973 * fileio.c: Doc fix.
1974
19751993-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
19801993-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
19841993-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
19901993-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
20051993-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
20231993-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
20291993-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
20391993-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
20461993-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
20761993-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
20981993-03-13 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
2099
2100 * ymakefile (YMF_PASS_LDFLAGS): Doc fix.
2101
21021993-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
21151993-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
21191993-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
21571993-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
21681993-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
21811993-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
21861993-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
21921993-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
22021993-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
22191993-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
22261993-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
22311993-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
22371993-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
22611993-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
22661993-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
23161993-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
23381993-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
23801993-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
24021993-03-07 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
2403
2404 * buffer.c (syms_of_buffer): Make erase-buffer a disabled command.
2405
24061993-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
24481993-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
24641993-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
25261993-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
25331993-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.
dff28924 2544 All callers changed.
615d0182
DL
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
25811993-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
25881993-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
25931993-03-04 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
2594
2595 * Makefile.in (xmakefile): Add missing quote.
2596
dff28924 25971992-03-03 Wilson H. Tien (wtien@urbana.mcd.mot.com)
615d0182
DL
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
dff28924 2601 emacs that being processed by other applications (such as strip)
615d0182
DL
2602 to fail.
2603
26041993-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
26171993-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
26241993-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
26351993-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
dff28924 2640 unrequest_sigio in "#ifdef SIGIO" clauses; these are not defined
615d0182
DL
2641
2642 * cmds.c (Fnewline): Doc fix.
2643
26441993-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
26711993-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
27001993-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
27301993-02-26 Richard Stallman (rms@mole.gnu.ai.mit.edu)
2731
2732 * keyboard.c (syms_of_keyboard): Doc fix.
2733
27341993-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
27431993-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
27631993-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
27831993-02-24 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
2784
2785 * buffer.c (Ferase_buffer): Added interactive spec.
2786
27871993-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
28021993-02-23 Richard Stallman (rms@mole.gnu.ai.mit.edu)
2803
2804 * keyboard.c (read_avail_input): Args to `kill' were backwards.
2805
28061993-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
28201993-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
28251993-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
28631993-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
28891993-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
29011993-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
29081993-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
29141993-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
30201993-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
30271993-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
30351993-02-14 Richard Stallman (rms@mole.gnu.ai.mit.edu)
3036
3037 * buffer.c (Frename_buffer): Make prefix arg set UNIQUE.
3038
30391993-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
30631993-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.
dff28924 3068 (Fnext_single_property_change, Fprevious_single_property_change):
615d0182
DL
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
30751993-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
30791993-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
30861993-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
30911993-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
30991993-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
31041993-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
31181993-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
31241993-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
31321993-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
31381993-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
31501993-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
31551993-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
31621993-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.
dff28924 3189 * xselect.c (Fx_own_selection): Rename to Fx_set_selection,
615d0182
DL
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
32241993-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.
dff28924 3239 (Qbar, Qbox, Qcursor_type): New symbols.
615d0182
DL
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
33141993-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
33381993-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
33471993-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
33831993-01-18 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
3384
3385 * window.c (Fdisplay_buffer): Doc fix.
3386
33871993-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
33971993-01-15 Richard Stallman (rms@mole.gnu.ai.mit.edu)
3398
3399 * keyboard.c (Frecent_keys): Doc fix.
3400
34011993-01-14 Richard Stallman (rms@mole.gnu.ai.mit.edu)
3402
3403 * window.c (Fwindow_at): Doc fix.
3404
34051993-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
36851993-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
36921993-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
36981993-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
37051993-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
37101993-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
37161993-01-07 Richard Stallman (rms@mole.gnu.ai.mit.edu)
3717
3718 * unexhp9k800.c (unexec): Don't call exit, just return.
3719
37201993-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
37411993-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
37481992-12-29 Roland McGrath (roland@geech.gnu.ai.mit.edu)
3749
3750 * ralloc.c: [! emacs] [HAVE_CONFIG_H]: #include "config.h"
3751
37521992-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
37581992-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
dff28924 3885 HAVE_X11'.
615d0182
DL
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
39121992-12-21 Richard Stallman (rms@mole.gnu.ai.mit.edu)
3913
3914 * callint.c (Fcall_interactively): For `s', use Fread_string.
3915
39161992-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
39301992-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
39681992-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
39841992-12-17 Jim Blandy (jimb@totoro.cs.oberlin.edu)
3985
3986 * buffer.c (Frename_buffer): Set update_mode_lines.
3987
39881992-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
40131992-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
40241992-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.
dff28924 4058 * process.c (create_process): Don't check the validity of the
615d0182
DL
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
40791992-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
40931992-12-03 Jim Blandy (jimb@totoro.cs.oberlin.edu)
4094
dff28924 4095 Make sure that frames' visible flag only changes at acceptable
615d0182
DL
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
41341992-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
41411992-12-01 Jim Blandy (jimb@totoro.cs.oberlin.edu)
4142
4143 * process.c (wait_reading_process_input): Doc fix.
4144
41451992-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
41571992-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
41661992-11-23 Jim Blandy (jimb@apple-gunkies.gnu.ai.mit.edu)
4167
4168 * Makefile.in (clean): Remove prefix-args.
4169
41701992-11-21 Richard Stallman (rms@mole.gnu.ai.mit.edu)
4171
4172 * s/sol2.h (LD_SWITCH_SYSTEM): Make alternate version for GCC.
4173
41741992-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
41811992-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.
dff28924 4190
615d0182
DL
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
42051992-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
42131992-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
42671992-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
42991992-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
43141992-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
43271992-11-06 Richard Stallman (rms@mole.gnu.ai.mit.edu)
4328
4329 * s/dgux.h (SYSTEM_TYPE): Use berkeley-unix.
4330
43311992-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
43871992-11-03 Jim Blandy (jimb@totoro.cs.oberlin.edu)
4388
4389 * .gdbinit (mips): New command.
4390
43911992-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
43971992-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
45391992-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
45461992-10-29 Richard Stallman (rms@mole.gnu.ai.mit.edu)
4547
4548 * dispnew.c (count_blanks): Leave argument r constant, and increment p.
4549
45501992-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
45901992-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
45961992-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
46021992-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
46131992-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
46251992-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
46301992-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
46361992-10-22 Richard Stallman (rms@mole.gnu.ai.mit.edu)
4637
4638 * ralloc.c (relinquish): Sign of arg to *real_morecore was backwards.
4639
46401992-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
46481992-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
46611992-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
46691992-10-18 Richard Stallman (rms@mole.gnu.ai.mit.edu)
4670
4671 * s/esix5r4.h (BROKEN_FIONREAD): Defined.
4672
46731992-10-16 Richard Stallman (rms@mole.gnu.ai.mit.edu)
4674
4675 * s/vms5-5.h: New file.
4676
46771992-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
47451992-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
47511992-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
47561992-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
47641992-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
47921992-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
48011992-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
48081992-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
48131992-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
48201992-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
48321992-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
48391992-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
48441992-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
48491992-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
48831992-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
49401992-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
49481992-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
49601992-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
49671992-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
49751992-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
49901992-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
49981992-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,
dff28924 5033 instead of just saying it's 7; that way, we won't get screwed if
615d0182
DL
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
50441992-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
50601992-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
50651992-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
50791992-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.
dff28924 5115 * keyboard.c (echo_char, read_char): Apply EVENT_HEAD without first
615d0182
DL
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
51681992-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
51991992-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
52321992-09-30 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
5233
5234 * ymakefile (config.h): Doc fix.
5235
52361992-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
52451992-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
52781992-09-29 Joseph Arceneaux (jla@churchy.gnu.ai.mit.edu)
5279
5280 * textprop.c (Ferase_text_properties): Merge intervals when
5281 possible.
5282
52831992-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
53281992-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
dff28924 5336 them than to call abort.
615d0182
DL
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
53491992-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
53581992-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
53711992-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
53911992-09-25 Richard Stallman (rms@mole.gnu.ai.mit.edu)
5392
5393 * xmenu.c (single_keymap_panes): Handle vectors properly.
5394
53951992-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
54021992-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
54271992-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
54561992-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
54871992-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
54951992-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
55101992-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
dff28924 5517 * sysdep.c (sys_suspend): Read EMACS_PARENT_PID envvar for parent.
615d0182
DL
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
55311992-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
55351992-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.
dff28924 5558
615d0182
DL
5559 * lisp.h (struct specbinding, struct handler): More documentation.
5560 * eval.c (struct catchtag): More documentation.
5561
55621992-09-17 Richard Stallman (rms@mole.gnu.ai.mit.edu)
5563
5564 * ymakefile (LIBX): Don't use -loldX.
5565
55661992-09-17 Jim Blandy (jimb@pogo.cs.oberlin.edu)
5567
5568 * minibuf.c (get_minibuffer): Enable undo in minibuffers.
5569
55701992-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
55821992-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
56071992-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
56181992-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
56361992-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
dff28924
SS
5645 * fileio.c (Ffile_name_directory, Ffile_name_nondirectory):
5646 (Ffile_name_as_directory, Fdirectory_file_name, Fexpand_file_name):
615d0182
DL
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
56521992-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
56571992-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
56681992-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
56731992-09-10 Richard Stallman (rms@mole.gnu.ai.mit.edu)
5674
5675 * s-aix3-1.h (HAVE_GETHOSTNAME): Defined.
5676
56771992-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
56901992-09-08 Jim Blandy (jimb@pogo.cs.oberlin.edu)
5691
dff28924 5692 * ralloc.c (r_re_alloc): Instead of allocating a new bloc at the
615d0182
DL
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
57031992-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
57381992-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
57481992-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
57591992-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
57771992-09-02 Barry A. Warsaw (warsaw@anthem.nlm.nih.gov)
5778
88c71720 5779 Extended syntax.c in the following ways to support up to 2
615d0182
DL
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
57901992-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
57941992-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
58251992-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
58301992-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.
dff28924 5889
615d0182
DL
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
59181992-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
59481992-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
59621992-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
59671992-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
59751992-08-27 Richard Stallman (rms@mole.gnu.ai.mit.edu)
5976
5977 * fns.c (Fappend): Doc fix.
5978
59791992-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
60181992-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.
dff28924 6022
615d0182
DL
60231992-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
60421992-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.
dff28924 6080
615d0182
DL
6081 * xterm.c (events): Array removed; it's not used.
6082
6083 * xfns.c (select_visual): Use XVisualIDFromVisual when available
6084 [HAVE_X11R4].
dff28924 6085
615d0182
DL
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
61021992-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
61261992-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
61871992-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.
dff28924 6201
615d0182
DL
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
62161992-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
62241992-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
63571992-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
64091992-08-12 Jim Blandy (jimb@albert.gnu.ai.mit.edu)
6410
dff28924 6411 * unexsunos4.c: Deleted "$Log" header in comments at top of file;
615d0182
DL
6412 this was beginning to grow RCS hair, which we don't want.
6413 * xmenu.c: Same deal.
6414
64151992-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
64751992-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
65591992-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.
dff28924 6578
615d0182
DL
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
66021992-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
66231992-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
66281992-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
66361992-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
66461992-08-04 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
6647
6648 * eval.c (syms_of_eval): Doc fix for debug-on-quit.
6649
66501992-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
66551992-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
66641992-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
66691992-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
66781992-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
66861992-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.
dff28924 6691 Do staticpro for the recently created Q* vars.
615d0182
DL
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).
dff28924 6697 Pass BACKUP_N arg to read_minibuf properly as Lisp object.
615d0182
DL
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
dff28924 6705 rather than read_minibuf.
615d0182
DL
6706
67071992-07-23 Richard Stallman (rms@mole.gnu.ai.mit.edu)
dff28924 6708
615d0182 6709 * minibuf.c (Vminibuffer_history_variable): New variable.
dff28924 6710 (syms_of_minibuf): Define variable minibuffer-history-variable.
615d0182 6711 (read_minibuf): Push the string on specified history list.
dff28924 6712
615d0182
DL
67131992-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
67181992-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
67491992-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.
dff28924 6762 (syms_of_fileio): Set up Qcopy_file, etc.
615d0182
DL
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
67681992-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
67811992-07-20 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
dff28924 6782
615d0182
DL
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.
dff28924 6786
615d0182
DL
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
67981992-07-19 Richard Stallman (rms@mole.gnu.ai.mit.edu)
dff28924
SS
6799
6800 * process.c (allocate_pty): Handle PTY_OPEN.
615d0182 6801 Delete system-specific alternatives to PTY_NAME_SPRINTF
dff28924
SS
6802 and PTY_TTY_NAME_SPRINTF.
6803
615d0182 68041992-07-18 Richard Stallman (rms@mole.gnu.ai.mit.edu)
dff28924 6805
615d0182 6806 * callint.c (Fprefix_numeric_value): Fix typo: test raw, not val.
dff28924 6807
615d0182
DL
68081992-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
68211992-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.
dff28924 6837
615d0182
DL
6838 * process.c (Fprocess_status): Use get_process to find the process
6839 denoted by the PROC argument, not Fget_process.
6840
68411992-07-15 Richard Stallman (rms@mole.gnu.ai.mit.edu)
6842
6843 * xdisp.c: Doc fix.
6844
68451992-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.
dff28924 6855
615d0182
DL
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
68821992-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
68971992-07-11 Richard Stallman (rms@mole.gnu.ai.mit.edu)
6898
6899 * fns.c, callproc.c: Doc fix.
6900
69011992-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
69081992-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
69161992-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
69241992-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
69321992-07-04 Richard Stallman (rms@mole.gnu.ai.mit.edu)
6933
6934 * buffer.c: Doc fix.
6935
69361992-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
69411992-07-02 Richard Stallman (rms@mole.gnu.ai.mit.edu)
6942
6943 * minibuf.c (Fdisplay_completion_list): Handle non-buffer stream.
6944
69451992-07-01 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
6946
6947 * window.c (Fdisplay_buffer): Add interactive spec.
6948
69491992-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
69561992-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
69641992-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
69741992-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
dff28924 6984 declares the cache invalid if the buffer is wrong (obviously), of
615d0182
DL
6985
69861992-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
70351992-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
71101992-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
71211992-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
88c71720 7139 * xdisp.c [not MULTI_SCREEN] (Fredraw_display): Removed definition
615d0182
DL
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
72121992-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
72171992-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
72221992-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
72401992-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
72491992-06-17 Jim Blandy (jimb@pogo.cs.oberlin.edu)
dff28924 7250
615d0182
DL
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.
dff28924 7268
615d0182
DL
72691992-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
72751992-06-15 Jim Blandy (jimb@pogo.cs.oberlin.edu)
dff28924 7276
615d0182
DL
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.
dff28924 7287
615d0182
DL
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
73001992-06-14 Jim Blandy (jimb@pogo.cs.oberlin.edu)
7301
7302 * eval.c (struct backtrace): Doc fix.
7303
73041992-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
73271992-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
73321992-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
73391992-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
73491992-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
73531992-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
73781992-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
73831992-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
73951992-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
74041992-06-05 Richard Stallman (rms@mole.gnu.ai.mit.edu)
dff28924 7405
615d0182
DL
7406 * keyboard.c (Fread_key_sequence): New 2nd arg CONTINUE_ECHO
7407 added for the sake of universal-argument.
dff28924 7408
615d0182
DL
74091992-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
74331992-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
74411992-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
74471992-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
74551992-06-02 Richard Stallman (rms@mole.gnu.ai.mit.edu)
7456
7457 * lread.c (Feval_buffer): Don't read any arguments, if interactive.
7458
74591992-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
74731992-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
74801992-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
74851992-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
74911992-05-28 Ken Raeburn (raeburn@cygnus.com)
dff28924 7492
615d0182
DL
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.
dff28924 7496
615d0182
DL
7497 * xfns.c (x_set_name): Use ICCCM-conforming scheme for changing
7498 window name in X11.
7499 (Fx_create_screen): Likewise.
7500
75011992-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
75121992-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
75391992-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
75561992-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
75601992-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
76011992-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
76071992-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
76181992-05-14 Jim Blandy (jimb@pogo.cs.oberlin.edu)
dff28924 7619
615d0182
DL
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
76391992-05-13 Richard Stallman (rms@mole.gnu.ai.mit.edu)
7640
7641 * callint.c (Fprefix_numeric_value): Value 1 for symbol other than `-'.
7642
76431992-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
76541992-05-12 Richard Stallman (rms@mole.gnu.ai.mit.edu)
7655
dff28924
SS
7656 * fileio.c: Include config.h first thing.
7657
615d0182
DL
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
76641992-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
76951992-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
77171992-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
77521992-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
77621992-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
77691992-05-08 Richard Stallman (rms@mole.gnu.ai.mit.edu)
7770
7771 * search.c: Doc fix.
7772
77731992-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
77851992-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
78001992-05-04 Jim Blandy (jimb@pogo.cs.oberlin.edu)
7801
7802 * floatfns.c: #include <syssignal.h>.
7803 (float_error): Use SIGEMPTYMASK instead of zero.
dff28924 7804
615d0182
DL
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
78201992-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
78431992-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
78751992-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
dff28924 78831992-04-27 Richard Stallman (rms@mole.gnu.ai.mit.edu)
615d0182
DL
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
78961992-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
79181992-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
79341992-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
79571992-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
88c71720 7976 * s/hpux8.h: #define HPUX8; this is supposed to be customary
615d0182
DL
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
79901992-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
79961992-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
80091992-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
80141992-04-17 Jim Blandy (jimb@pogo.cs.oberlin.edu)
8015
8016 * s/hpux.h (PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF): Use pty_name,
dff28924 8017 not ptyname.
615d0182
DL
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
88c71720 8028 * lread.c (init_lread): Re-cleaned logic. To determine whether the
615d0182
DL
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
80531992-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
80631992-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
80801992-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
80861992-04-11 David J. MacKenzie (djm@wookumz.gnu.ai.mit.edu)
8087
8088 * termcap.c: Declare getenv.
8089
80901992-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
80951992-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
81051992-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
81121992-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
81441992-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
81531992-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
81581992-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
81691992-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
81841992-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
82021992-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
82121992-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
82201992-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
82251992-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
82351992-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
82471992-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
82631992-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
dff28924 82681992-03-05 Jim Blandy (jimb@pogo.cs.oberlin.edu)
615d0182
DL
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
dff28924 82741992-02-23 Jim Blandy (jimb@pogo.cs.oberlin.edu)
615d0182
DL
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.
dff28924 8321
615d0182
DL
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.
dff28924 8344
615d0182
DL
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
dff28924 83591992-02-22 Jim Blandy (jimb@pogo.cs.oberlin.edu)
615d0182
DL
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
dff28924 83741992-02-21 Jim Blandy (jimb@pogo.cs.oberlin.edu)
615d0182
DL
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
dff28924 83971992-02-20 Jim Blandy (jimb@pogo.cs.oberlin.edu)
615d0182
DL
8398
8399 * sysdep.c: No need to test #ifdef TIOCGETP before #undefing it.
8400
dff28924 84011992-02-19 Jim Blandy (jimb@pogo.cs.oberlin.edu)
615d0182
DL
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
dff28924 84411992-02-15 Jim Blandy (jimb@pogo.cs.oberlin.edu)
615d0182
DL
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
dff28924 84491992-02-13 Jim Blandy (jimb@pogo.cs.oberlin.edu)
615d0182
DL
8450
8451 * s/iris3-6.h: #define HAVE_GETWD.
8452
dff28924 84531992-02-11 Jim Blandy (jimb@pogo.cs.oberlin.edu)
615d0182
DL
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
dff28924 84621992-02-10 Jim Blandy (jimb@pogo.cs.oberlin.edu)
615d0182
DL
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
dff28924 84981992-02-05 Jim Blandy (jimb@pogo.cs.oberlin.edu)
615d0182
DL
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
dff28924 85241992-02-03 Jim Blandy (jimb@pogo.cs.oberlin.edu)
615d0182
DL
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
dff28924 85331992-02-03 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
8534
8535 * xdisp.c (redisplay, try_window_id): Special case for change
8536 at beginning of line, if using selective display.
8537
dff28924 85381992-01-31 Jim Blandy (jimb@pogo.cs.oberlin.edu)
615d0182
DL
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
dff28924 85511992-01-30 Jim Blandy (jimb@pogo.cs.oberlin.edu)
615d0182
DL
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
85641992-01-30 Richard Stallman (rms@mole.gnu.ai.mit.edu)
8565
8566 * m-orion105.h (C_DEBUG_SWITCH, LIBS_DEBUG): Defs deleted.
8567
85681992-01-29 Richard Stallman (rms@mole.gnu.ai.mit.edu)
8569
8570 * m-iris4d.h (C_SWITCH_MACHINE): New definition.
8571
dff28924 85721992-01-28 Jim Blandy (jimb@pogo.cs.oberlin.edu)
615d0182
DL
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
86431992-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
dff28924 86601992-01-27 Jim Blandy (jimb@pogo.cs.oberlin.edu)
615d0182
DL
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
dff28924 86851992-01-25 Jim Blandy (jimb@pogo.cs.oberlin.edu)
615d0182
DL
8686
8687 * term.c (term_get_fkeys): New function.
8688 (term_init): Call term_get_fkeys.
8689
dff28924 86901992-01-21 Jim Blandy (jimb@pogo.cs.oberlin.edu)
615d0182
DL
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.
dff28924 8697
615d0182
DL
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
dff28924 87061992-01-15 Jim Blandy (jimb@pogo.cs.oberlin.edu)
615d0182
DL
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
dff28924 87221992-01-16 Richard Stallman (rms@mole.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 87291992-01-15 Richard Stallman (rms@mole.gnu.ai.mit.edu)
615d0182
DL
8730
8731 * process.c (sigchld_handler):
8732 Set synch_process_death and synch_process_retcode.
8733
dff28924 87341992-01-14 Jim Blandy (jimb@pogo.cs.oberlin.edu)
615d0182
DL
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
dff28924 87721992-01-13 Jim Blandy (jimb@pogo.cs.oberlin.edu)
615d0182
DL
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.
dff28924 8778 * emacs.c (decode_env_path): Use getenv instead of egetenv
615d0182
DL
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
dff28924 88351992-01-12 Jim Blandy (jimb@pogo.cs.oberlin.edu)
615d0182
DL
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
dff28924 8841 system-dependent files through symlinks, replace the strings
615d0182 8842
dff28924 88431992-01-09 Jim Blandy (jimb@pogo.cs.oberlin.edu)
615d0182
DL
8844
8845 * keyboard.c (stuff_buffered_input): Don't forget to increment
8846 kbd_fetch_ptr while looping through kbd_buffer.
8847
dff28924 88481992-01-08 Jim Blandy (jimb@occs.cs.oberlin.edu)
615d0182
DL
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
dff28924 88561991-12-21 Jim Blandy (jimb@occs.cs.oberlin.edu)
615d0182
DL
8857
8858 * bytecode.c (docall): Don't remove protection from the arguments
8859 to Ffuncall.
8860
dff28924 88611991-12-20 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 88701991-12-19 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 89091991-12-18 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 89171991-12-16 Richard Stallman (rms@mole.gnu.ai.mit.edu)
615d0182
DL
8918
8919 * abbrev.c (Fexpand_abbrev): Run pre-abbrev-expand-hook.
8920 (syms_of_abbrev): Define that variable.
8921
dff28924 89221991-12-13 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 89281991-12-11 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
8929
8930 * config.h-dist (MULTI_SCREEN): Define this automatically when
8931 we're using a window system.
8932
dff28924 89331991-12-09 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 89421991-12-08 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 89491991-12-05 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 89751991-12-02 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 8983 mouse movements, too.
615d0182 8984
dff28924 89851991-11-27 Jim Wilson (wilson@wookumz.gnu.ai.mit.edu)
615d0182
DL
8986
8987 * alloca.c (alloca): Add parens to make precedence clearer.
8988
dff28924 89891991-11-26 Michael I Bushnell (mib@geech.gnu.ai.mit.edu)
615d0182
DL
8990
8991 * search.c: need to include sys/types.h because of recent mod to
8992 regex.h.
8993
dff28924 89941991-11-25 Richard Stallman (rms@mole.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 90031991-11-25 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 90111991-11-15 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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.
dff28924 9055
615d0182
DL
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
dff28924 90641991-11-14 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 90701991-11-08 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 90901991-11-07 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 91001991-11-06 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 91251991-11-05 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 91751991-11-04 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 92371991-10-31 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 92431991-10-29 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
9244
9245 * xterm.c (x_do_pending_expose, XTmouse_tracking_enable): Use
9246 SCREEN_IS_X instead of testing output_method directly.
9247
dff28924 92481991-10-26 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 92551991-10-25 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 92711991-10-21 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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
92771991-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
dff28924 92821991-10-18 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 92941991-10-15 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 93441991-10-14 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 93521991-10-13 Richard Stallman (rms@mole.gnu.ai.mit.edu)
615d0182
DL
9353
9354 * m-intel386.h: Fix typo in #endif.
9355
dff28924 93561991-10-12 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 93721991-10-11 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 93831991-10-08 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 94151991-10-01 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 94381991-09-29 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
9439
9440 * keyboard.c (make_lispy_event): When building mouse movement
9441 event, use `m', not `event', dummy.
9442
dff28924 94431991-09-26 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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
94641991-09-24 Richard Stallman (rms@mole.gnu.ai.mit.edu)
9465
9466 * alloca.c: Do nothing if alloca is defined as a macro.
9467
dff28924 94681991-09-08 Richard Stallman (rms@mole.gnu.ai.mit.edu)
615d0182
DL
9469
9470 * m-pfa50.h: New file.
9471
dff28924 94721991-09-06 Richard Stallman (rms@mole.gnu.ai.mit.edu)
615d0182
DL
9473
9474 * unexec.c: Add conditionals for COFF_ENCAPSULATE.
9475
94761991-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
dff28924 94811991-08-16 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 94981991-08-15 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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.
dff28924 9508
615d0182
DL
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
95231991-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
95281991-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
dff28924 95501991-08-13 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 95691991-08-11 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 95791991-08-10 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 95841991-08-10 Richard Stallman (rms@mole.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 95911991-08-10 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
9592
9593 * process.c (wait_reading_process_input): Ignore exceptional
9594 conditions on the keyboard input.
9595
dff28924 95961991-08-06 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 96041991-08-05 Richard Stallman (rms@mole.gnu.ai.mit.edu)
615d0182
DL
9605
9606 * keyboard.c: Doc fix.
9607
dff28924 96081991-08-05 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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.
dff28924 9640
615d0182
DL
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
dff28924 96551991-08-04 Richard Stallman (rms@mole.gnu.ai.mit.edu)
615d0182
DL
9656
9657 * lread.c (read1): Accept #[...] for bytecode object.
9658 * print.c (print): Print them that way.
9659
dff28924 96601991-08-01 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 96711991-08-01 Richard Stallman (rms@mole.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 96791991-07-31 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 96871991-07-28 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 97201991-07-27 Richard Stallman (rms@mole.gnu.ai.mit.edu)
615d0182
DL
9721
9722 * keymap.c (Fcopy_keymap): Don't recursively copy maps inside symbols.
9723
dff28924 97241991-07-27 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 97321991-07-26 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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.
dff28924 9739
615d0182
DL
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
97651991-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.
dff28924 9770
615d0182
DL
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
97751991-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
97911991-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
98531991-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
98581991-07-21 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
9859
9860 * screen.h (last_nonminibuf_screen): Added declarations for new
dff28924 9861 variable.
615d0182
DL
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
dff28924 9867 * screen.c (next_screen): Use SCREEN_ accessors instead of ->.
615d0182
DL
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
dff28924 98731991-07-21 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
615d0182
DL
9874
9875 * keyboard.c (read_key_sequence): Restore the state of
9876 this_command_key_count along with the echoing state.
9877
dff28924 98781991-07-20 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 98991991-07-19 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 99291991-07-18 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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.
dff28924 9943 (pure_size): extern declaration added here.
615d0182
DL
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
dff28924 99491991-07-17 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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
99751991-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
99851991-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
dff28924 99941991-07-15 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 100461991-07-14 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 100671991-07-13 Jim Blandy (jimb@churchy.gnu.ai.mit.edu)
615d0182
DL
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.
dff28924 10094 (close_process_descs): Check IN and OUT for nonzeroness.
615d0182
DL
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
101151991-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
dff28924 101201991-07-11 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 101291991-07-10 David J. MacKenzie (djm@nutrimat)
615d0182
DL
10130
10131 * termcap.c, tparam.c [!emacs, USG || STDC_HEADERS]: Define bcopy
10132 in terms of memcpy.
10133
dff28924 101341991-07-09 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 101401991-07-08 Richard Stallman (rms@mole.gnu.ai.mit.edu)
615d0182
DL
10141
10142 * editfns.c: Doc fix.
10143
dff28924 101441991-07-03 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 101521991-07-02 Richard Stallman (rms@mole.gnu.ai.mit.edu)
615d0182
DL
10153
10154 * doc.c (Fdocumentation_property):
10155 Pass only strings to Fsubstitute_command_keys.
10156
dff28924 101571991-07-02 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
615d0182
DL
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.
dff28924 10168
615d0182
DL
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
dff28924 101911991-07-01 Richard Stallman (rms@mole.gnu.ai.mit.edu)
615d0182
DL
10192
10193 * editfns.c (init_editfns): Test that user_name isn't 0.
10194
dff28924 101951991-06-29 Richard Stallman (rms@mole.gnu.ai.mit.edu)
615d0182
DL
10196
10197 * search.c: Doc fixes.
10198
dff28924 101991991-06-28 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 102201991-06-26 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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).
dff28924 10233
615d0182
DL
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
dff28924 10251 passed the wrong number of arguments to their subrs.
615d0182
DL
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
dff28924 102571991-06-25 Jim Blandy (jimb@churchy.gnu.ai.mit.edu)
615d0182
DL
10258
10259 * doc.c (Fdocumentation): Added a QUIT test to the loop that finds
10260 the symbol's function value.
10261
dff28924 102621991-06-24 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 102921991-06-20 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
615d0182
DL
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
103071991-06-20 Roland McGrath (roland@albert.gnu.ai.mit.edu)
10308
10309 * buffer.c (syms_of_buffer): buffer-undo-list doc fix.
10310
103111991-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
dff28924 103161991-05-25 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 103471991-05-23 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 103621991-05-22 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 10366 and similar machines.
615d0182
DL
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
103931991-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
dff28924 104041991-05-19 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 104181991-05-18 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 104251991-05-17 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 104331991-05-16 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 104751991-05-14 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 104801991-05-13 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 105231991-05-10 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 105291991-05-09 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 105751991-05-07 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 105811991-05-05 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
615d0182
DL
10582
10583 * keymap.c (Fkeymapp): Fixed docstring to give the right
10584 definition of a keymap.
10585
dff28924 105861991-05-03 Richard Stallman (rms@mole.gnu.ai.mit.edu)
615d0182
DL
10587
10588 * data.c (Fcompiled_function_p): New function.
10589
dff28924 105901991-05-03 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 106011991-05-01 Jim Blandy (jimb@churchy.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 106071991-04-28 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 106121991-04-27 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 106341991-04-22 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 106451991-04-16 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 106561991-04-14 Richard Stallman (rms@mole.gnu.ai.mit.edu)
615d0182
DL
10657
10658 * sysdep.c: Changes in formatting and comments.
10659
dff28924 106601991-04-12 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 106691991-04-11 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 107021991-04-10 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 107231991-04-09 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 107451991-04-04 Richard Stallman (rms@mole.gnu.ai.mit.edu)
615d0182
DL
10746
10747 * vmsfns.c (vms_trnlog): Increased size of str to 256 elements.
10748 (vms_symbol): Increased size of str to 1025 elements.
10749
dff28924 107501991-03-24 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 107561991-03-22 Richard Stallman (rms@mole.gnu.ai.mit.edu)
615d0182
DL
10757
10758 * s-usg5-4.h (DATA_SEG_BITS): Definition deleted.
10759 * m-intel386.h (DATA_SEG_BITS): Define here if USG5_4.
10760
dff28924 107611991-03-22 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
10762
10763 * keymap.c (Faccessible_keymaps): Produce meta-characters in the
10764 key sequences instead of [meta-prefix-char CHAR] sequences.
10765
dff28924 107661991-03-21 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 107791991-03-20 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 108041991-03-19 Jim Blandy (jimb@pogo.gnu.ai.mit.edu)
615d0182
DL
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
dff28924 108111991-03-19 Richard Stallman (rms@mole.gnu.ai.mit.edu)
615d0182
DL
10812
10813 * keyboard.c (read_avail_input): Raise SIGHUP if no input on AIX.
10814
dff28924 108151991-03-19 Jim Blandy (jimb@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 108341991-03-17 Jim Blandy (jimb@geech.ai.mit.edu)
615d0182
DL
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.
dff28924 10842 (read_char_menu_prompt): Changed to correctly recognize the new
615d0182
DL
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
dff28924 10854 * eval.c (Fcommandp): Removed code to recognize
615d0182
DL
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
dff28924 108601991-03-14 Jim Blandy (jimb@pogo.ai.mit.edu)
615d0182
DL
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
dff28924 108681991-03-14 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
10869
10870 * fileio.c (Fwrite_region): On VMS, don't try rewriting old version.
10871
dff28924 108721991-03-14 Jim Blandy (jimb@pogo.ai.mit.edu)
615d0182
DL
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
dff28924 108831991-03-13 Jim Blandy (jimb@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 108931991-03-12 Jim Blandy (jimb@wookumz.ai.mit.edu)
615d0182
DL
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
dff28924 109061991-03-10 Jim Blandy (jimb@wookumz.ai.mit.edu)
615d0182
DL
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
dff28924 109121991-03-09 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
10913
10914 * eval.c (struct catchtag): New field handlerlist.
10915 (internal_catch, internal_condition_case): Set that field.
10916 (unbind_catch): Use it.
10917
dff28924 109181991-03-08 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
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
dff28924 109241991-03-07 Jim Blandy (jimb@albert.ai.mit.edu)
615d0182
DL
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
dff28924 109301991-03-06 Jim Blandy (jimb@pogo.ai.mit.edu)
615d0182
DL
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
dff28924 109391991-03-06 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
10940
10941 * s-vms.h (DATA_START): Remove `+ 512'.
10942
dff28924 109431991-03-05 Jim Blandy (jimb@spiff.ai.mit.edu)
615d0182
DL
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
dff28924 109501991-03-03 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
10951
10952 * sysdep.c (MEMORY_IN_STRING_H): New compilation flag.
10953 * s-isc2-2.h: New file.
10954
dff28924 109551991-02-27 Jim Blandy (jimb@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 109711991-02-26 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
10972
10973 * s-vms.h (calloc): Define like malloc, etc.
10974
dff28924 109751991-02-26 Jim Blandy (jimb@spiff.ai.mit.edu)
615d0182
DL
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
dff28924 109881991-02-25 Jim Blandy (jimb@pogo.ai.mit.edu)
615d0182
DL
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
dff28924 110131991-02-24 Jim Blandy (jimb@churchy.ai.mit.edu)
615d0182
DL
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.
dff28924
SS
11037
110381991-02-24 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
11039
11040 * process.c (wait_reading_process_input): Use NETCONN_P.
11041
dff28924 110421991-02-23 Jim Blandy (jimb@pogo.ai.mit.edu)
615d0182
DL
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
dff28924 110581991-02-23 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
11059
11060 * process.c (send_process): Handle EAGAIN like EWOULDBLOCK.
11061
dff28924 110621991-02-22 Jim Blandy (jimb@pogo.ai.mit.edu)
615d0182
DL
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
dff28924 111141991-02-21 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
11115
11116 * fileio.c (report_file_error): Don't downcase "I/O".
11117
dff28924 111181991-02-20 Jim Blandy (jimb@geech.ai.mit.edu)
615d0182
DL
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
dff28924 111381991-02-19 Jim Blandy (jimb@pogo.ai.mit.edu)
615d0182
DL
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
dff28924 11196 * screen.c (coordinates_in_window): Added explanatory comment.
615d0182
DL
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
dff28924 112051991-02-18 Jim Blandy (jimb@pogo.ai.mit.edu)
615d0182
DL
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
dff28924 112261991-02-15 Jim Blandy (jimb@pogo.ai.mit.edu)
615d0182
DL
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
dff28924 112691991-02-13 Jim Blandy (jimb@pogo.ai.mit.edu)
615d0182
DL
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
dff28924 112801991-02-09 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
11281
11282 * buffer.c: Doc fix.
11283
11284 * sysdep.c (dup2): Rewrite of non-F_DUPFD case.
11285
dff28924 112861991-02-08 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
11287
11288 * m-intel386.h (LOAD_AVE_CVT): Add extra parens.
11289 * s-usg5-4.h (LIBX11_SYSTEM): #undef it.
11290
dff28924 112911991-02-07 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
11292
11293 * s-esix.h: New version from kayvan.
11294 Adds HAVE_X11 conditional, NEED_PTEM_H, USG_SYS_TIME, USE_UTIME,
dff28924 11295 LIBS_DEBUG; removes #undef sigsetmask, LIBS_SYSTEM, ESIX,
615d0182
DL
11296 MISSING_UTIMES.
11297
dff28924 112981991-02-06 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
11299
11300 * process.c (Faccept_process_output): Second arg gives timeout.
11301
dff28924 113021991-02-06 Jim Blandy (jimb@geech.ai.mit.edu)
615d0182
DL
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
dff28924 113221991-02-05 Jim Blandy (jimb@geech.ai.mit.edu)
615d0182
DL
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
dff28924 113551991-02-04 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
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
dff28924 113621991-02-04 Jim Blandy (jimb@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 114011991-02-03 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
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
dff28924 114111991-02-03 Jim Blandy (jimb@geech.ai.mit.edu)
615d0182
DL
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
dff28924 114171991-02-02 Jim Blandy (jimb@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 114611991-01-31 Jim Blandy (jimb@pogo.ai.mit.edu)
615d0182
DL
11462
11463 * xterm.c (XRINGBELL): Pass 0 as the second argument to XBell;
11464 respect the user's preferences.
11465
dff28924 114661991-01-30 Jim Blandy (jimb@pogo.ai.mit.edu)
615d0182
DL
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
dff28924 114921991-01-29 Jim Blandy (jimb@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 115001991-01-29 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
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
dff28924 115121991-01-29 Jim Blandy (jimb@albert.ai.mit.edu)
615d0182
DL
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
dff28924 115231991-01-28 Jim Blandy (jimb@geech.ai.mit.edu)
615d0182
DL
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
dff28924 115371991-01-28 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
11538
11539 * m-sun3-68881.h, m-sun3-fpa.h, m-sun3-soft.h: New files.
11540
dff28924 115411991-01-27 Jim Blandy (jimb@geech.ai.mit.edu)
615d0182
DL
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
dff28924 115501991-01-25 Jim Blandy (jimb@churchy.ai.mit.edu)
615d0182
DL
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
4d8d4b3a 115561991-01-25 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
11557
11558 * buffer.h (PTR_CHAR_POS): Value was too small by 1.
11559
dff28924 115601991-01-16 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
11561
11562 * doprnt.c (doprnt): Check for overflow in fmtcpy.
11563
dff28924 115641991-01-16 Jim Blandy (jimb@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 115701991-01-15 Jim Blandy (jimb@geech.ai.mit.edu)
615d0182
DL
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
dff28924 115811991-01-15 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
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
dff28924 115981991-01-13 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
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
dff28924 116201991-01-12 Jim Blandy (jimb@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 116271991-01-12 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
11628
11629 * s-irix3-3.h (HAVE_SYSVIPC): Defined.
11630
dff28924 116311991-01-12 Jim Blandy (jimb@pogo.ai.mit.edu)
615d0182
DL
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
dff28924 116361991-01-11 Richard Mlynarik (mly@pizza.ai.mit.edu)
615d0182
DL
11637
11638 * window.c (window-configuration-p): Needed. Added.
11639
dff28924 116401991-01-11 Jim Blandy (jimb@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 116461991-01-11 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
11647
11648 * m-tower32v3.h (VALBITS, GCTYPEBITS): Use 26 bits for pointer.
11649
dff28924 116501991-01-10 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
11651
11652 * fileio.c (Fcopy_file): Always close descriptors.
11653
11654 * s-sunos4.h: read, write, open and close are interruptable.
11655
dff28924 116561991-01-09 Jim Blandy (jimb@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 11663 co-ordinates.
615d0182 11664
dff28924 116651991-01-08 Jim Blandy (jimb@geech.ai.mit.edu)
615d0182
DL
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
dff28924 116851991-01-07 Jim Blandy (jimb@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 11710 process's filter function.
615d0182
DL
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
dff28924 117181991-01-06 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
11719
11720 * sysdep.c (init_sys_modes): Turn off VSUSP and V_DSUSP if they exist.
11721 Only on a MIPS.
11722
dff28924 117231991-01-05 Jim Blandy (jimb@spiff.ai.mit.edu)
615d0182
DL
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
dff28924 117511991-01-04 Jim Blandy (jimb@pogo.ai.mit.edu)
615d0182
DL
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.
dff28924
SS
11777
117781991-01-03 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
11779
11780 * search.c (search_buffer): Return starting position if count == 0.
11781
dff28924 117821991-01-02 Jim Blandy (jimb@pogo.ai.mit.edu)
615d0182
DL
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
dff28924 118331991-01-01 Jim Blandy (jimb@pogo.ai.mit.edu)
615d0182
DL
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
dff28924 118461990-12-30 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
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
dff28924 118561990-12-28 Jim Blandy (jimb@geech.ai.mit.edu)
615d0182
DL
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
dff28924 118651990-12-27 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
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
dff28924 118721990-12-26 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
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
dff28924 118791990-12-25 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
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
dff28924 118941990-12-24 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
11895
11896 * insdel.c (insert_from_string): New function.
11897
dff28924 118981990-12-20 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
11899
11900 * term.c (ins_del_lines): Handle scroll region wrt chars_wasted.
11901
dff28924 119021990-12-16 Jim Blandy (jimb@pogo.ai.mit.edu)
615d0182
DL
11903
11904 * Globally renamed InsStr to insert_string.
11905
dff28924 119061990-12-15 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
11907
11908 * s-usg5-3.h (USG_SHARED_LIBRARIES): Define it.
11909
11910 * m-intel386.h (C_SWITCH_MACHINE): New macro.
11911
dff28924 119121990-12-15 Jim Blandy (jimb@pogo.ai.mit.edu)
615d0182
DL
11913
11914 * alloc.c (STRING_FULLSIZE): Use sizeof(struct Lisp_String)
11915 instead of sizeof(int).
11916
dff28924 119171990-12-14 Jim Blandy (jimb@pogo.ai.mit.edu)
615d0182
DL
11918
11919 * keyboard.c (Fread_key_sequence): Clear this_command_key_count
11920 here; who unfixed this?
11921
dff28924 119221990-12-12 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
11923
11924 * abbrev.c (Fdefine_abbrevs): Don't crash when EXPANSION is nil.
11925
dff28924 119261990-12-11 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
11927
11928 * eval.c (Fmacroexpand): Change handling of (foo . bar) in ENV.
11929
dff28924 119301990-12-10 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
11931
11932 * m-pmax.h (SYSTEM_MALLOC): Define it.
11933
11934 * process.c (wait_reading_process_input): Ignore failure with EIO.
11935
dff28924 119361990-12-09 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
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
dff28924 119511990-12-05 Jim Blandy (jimb@pogo.ai.mit.edu)
615d0182
DL
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
dff28924 119651990-12-04 Jim Blandy (jimb@geech.ai.mit.edu)
615d0182
DL
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
dff28924 119871990-12-03 Jim Blandy (jimb@geech.ai.mit.edu)
615d0182
DL
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
dff28924 120051990-11-30 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
12006
12007 * keyboard.c (read_command_char): Save and restore getcjmp.
12008
dff28924 120091990-11-29 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
12010
12011 * process.c (status_convert): Use WRETCODE for exited process.
12012
dff28924 120131990-11-26 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
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
dff28924 120251990-11-22 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
12026
12027 * m-hp9000s300.h (LOAD_AVE_TYPE, LOAD_AVE_CVT): Alternate defs for BSD.
12028
dff28924 120291990-11-21 Jim Blandy (jimb@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 120381990-11-20 Jim Blandy (jimb@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 120441990-11-14 Jim Blandy (jimb@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 120511990-11-13 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
12052
12053 * fileio.c (err_str): New macro.
12054 (Finsert_file_contents, Fwrite_region): Use it in error messages.
12055
dff28924 120561990-11-12 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
12057
12058 * insdel.c (del_range): Supply missing arg to gap_left.
12059
dff28924 120601990-11-11 Jim Blandy (jimb@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 120791990-11-11 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
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
dff28924 120881990-11-10 Jim Blandy (jimb@pogo.ai.mit.edu)
615d0182
DL
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
dff28924 120931990-11-08 Jim Blandy (jimb@geech.ai.mit.edu)
615d0182
DL
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
dff28924 120991990-11-06 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
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
dff28924 121081990-11-02 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
12109
12110 * callint.c (syms_of_callint):
12111 Initialize Vprefix_arg and Vcurrent_prefix_arg.
12112
dff28924 121131990-11-01 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
12114
12115 * dired.c (Fdirectory_files): Avoid using MAXNAMLEN.
12116
dff28924 121171990-10-31 Jim Blandy (jimb@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 121291990-10-29 Jim Blandy (jimb@pogo.ai.mit.edu)
615d0182
DL
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
dff28924 121411990-10-29 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
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
dff28924 121481990-10-29 Jim Blandy (jimb@pogo.ai.mit.edu)
615d0182
DL
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
dff28924 121561990-10-25 Jim Blandy (jimb@pogo.ai.mit.edu)
615d0182
DL
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
dff28924 121631990-10-24 Jim Blandy (jimb@pogo.ai.mit.edu)
615d0182
DL
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
dff28924 121761990-10-24 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
12177
12178 * ymakefile (GNULIB_VAR): New make variable.
12179 (LIBES): Use that, not GNULIB directly.
12180 (GNULIB): Don't define if already defined.
12181
dff28924 121821990-10-23 Jim Blandy (jimb@geech.ai.mit.edu)
615d0182
DL
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
dff28924 122051990-10-22 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
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
dff28924 122151990-10-22 Jim Blandy (jimb@pogo.ai.mit.edu)
615d0182
DL
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
dff28924 122221990-10-21 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
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
dff28924 122381990-10-20 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
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
dff28924 122451990-10-19 Jim Blandy (jimb@pogo.ai.mit.edu)
615d0182
DL
12246
12247 * scroll.c (do_scrolling): allocate queue using alloca instead
12248 of variable-sized arrays.
12249
dff28924 122501990-10-19 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
12251
12252 * buffer.c: Doc fix.
12253
dff28924 122541990-10-18 Jim Blandy (jimb@pogo.ai.mit.edu)
615d0182
DL
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
dff28924 122721990-10-18 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
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
dff28924 122821990-10-18 Jim Blandy (jimb@pogo.ai.mit.edu)
615d0182
DL
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
dff28924 122871990-10-18 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
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
dff28924 122941990-10-17 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
12295
12296 * m-delta.h (C_DEBUG_SWITCH): Don't define this.
12297
dff28924 122981990-10-17 Jim Blandy (jimb@pogo.ai.mit.edu)
615d0182
DL
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
dff28924 123051990-10-16 Jim Blandy (jimb@pogo.ai.mit.edu)
615d0182
DL
12306
12307 * keyboard.c (read_char): Don't echo dash if there is already
12308 something else being displayed in the echo area.
12309
dff28924 123101990-10-16 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
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
dff28924 123221990-10-16 Jim Blandy (jimb@pogo.ai.mit.edu)
615d0182
DL
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
dff28924 123321990-10-15 Jim Blandy (jimb@pogo.ai.mit.edu)
615d0182
DL
12333
12334 * dired.c (file_name_completion): Use scmp to compare names.
12335
dff28924 123361990-10-15 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
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
dff28924 123421990-10-14 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
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
dff28924 123491990-10-12 Jim Blandy (jimb@pogo.ai.mit.edu)
615d0182
DL
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
dff28924 123601990-10-11 Jim Blandy (jimb@pogo.ai.mit.edu)
615d0182
DL
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
dff28924 123701990-10-11 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
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
dff28924 123771990-10-10 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
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
dff28924 123861990-10-10 Jim Blandy (jimb@pogo.ai.mit.edu)
615d0182
DL
12387
12388 * alloc.c (gc_sweep): only unchain markers that are in a buffer.
12389
dff28924 123901990-10-10 Mike Rowan (mtr@apple-gunkies)
615d0182
DL
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
dff28924 123951990-10-09 Jim Blandy (jimb@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 124031990-10-09 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
12404
12405 * xdisp.c (decode_mode_spec): Handle dashes in wide windows.
12406
dff28924 124071990-10-08 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
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
dff28924 124221990-10-07 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
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
dff28924 124281990-10-06 Jim Blandy (jimb@pogo.ai.mit.edu)
615d0182
DL
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
dff28924 124351990-10-05 Jim Blandy (jimb@pogo.ai.mit.edu)
615d0182
DL
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
dff28924 124461990-10-01 Jim Blandy (jimb@pogo.ai.mit.edu)
615d0182
DL
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
dff28924 12453 `auto-save-interval'.
615d0182
DL
12454
12455 * keymap.c (Fdefine_key, Flookup_key): renamed arguments called
12456 `keys' to `key'.
12457
dff28924 124581990-10-01 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
12459
12460 * sysdep.c (sys_open, sys_close, sys_read, sys_write):
12461 Handle EAGAIN like EINTR.
12462
dff28924 124631990-09-30 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
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
dff28924 124771990-09-30 Jim Blandy (jimb@pogo.ai.mit.edu)
615d0182
DL
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
dff28924 124931990-09-30 Mike Rowan (mtr@spike.ai.mit.edu)
615d0182 12494
41a98391 12495 * keyboard.c, alloc.c: added malloc warning code from
615d0182
DL
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
88c71720 12501 * process.c, process.h: Add the raw_status_low and raw_status_high
615d0182
DL
12502 code from 18.56.
12503
dff28924 125041990-09-29 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
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
dff28924 125261990-09-28 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
12527
12528 * fns.c (Frequire): Undo certain things on failure, like autoload.
12529
dff28924 125301990-09-28 Jim Blandy (jimb@pogo.ai.mit.edu)
615d0182
DL
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
dff28924 125551990-09-27 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
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
dff28924 125811990-09-23 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
12582
12583 * keyboard.c (Fsuspend_emacs): Check screen size after resume.
12584
dff28924 125851990-09-19 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
12586
12587 * editfns.c: Doc fix.
12588
dff28924 125891990-09-18 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
12590
12591 * window.c (Fsplit_window): Minor cleanup.
12592
dff28924 125931990-09-17 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
12594
12595 * emacs.c (main) [USG_SHARED_LIBRARIES]: Call brk.
12596
dff28924 125971990-09-13 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
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
dff28924 126031990-09-11 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
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
dff28924 126361990-09-03 Mike Rowan (mtr@apple-gunkies)
615d0182
DL
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
41a98391 12642 globally replaced:
615d0182 12643 redisplay_preserving_echo_area -> redisplay_preserve_echo_area
dff28924
SS
12644 SetBfp -> set_buffer_internal
12645 buffer_flush_undo -> buffer_disable_undo
615d0182
DL
12646 redo_mode_line -> update_mode_line (window.h)
12647
dff28924 126481990-08-31 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
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
dff28924 126571990-08-28 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
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
dff28924 126691990-08-27 Roland McGrath (roland@churchy.ai.mit.edu)
615d0182
DL
12670
12671 * dired.c (Ffile_attributes): Return the device number too (elt 11
12672 of the returned list).
12673
dff28924 126741990-08-27 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
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
dff28924 126891990-08-22 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
12690
12691 * m-plexus.h (LD_SWITCH_MACHINE): New macro.
12692
dff28924 126931990-08-22 Joseph Arceneaux (jla@geech)
615d0182
DL
12694
12695 * xterm.c (XTread_socket): Cleaned up #ifdefs prior to event
12696 reading loop. Also handle FIOSNBIO.
12697
dff28924 126981990-08-19 Joseph Arceneaux (jla@geech)
615d0182
DL
12699
12700 * xterm.c (dumplyphs): Last vestige of MScreenWidth removed.
12701 * config.h: MScreenWidth, MScreenHeight definitions removed.
12702
dff28924 127031990-08-18 Joseph Arceneaux (jla@geech)
615d0182
DL
12704
12705 * scroll.c (do_scrolling): Pass the correct sizes to bcopy.
12706 * dispnew.c (make_screen_glyphs): Likewise.
12707
dff28924 127081990-08-16 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 127191990-08-15 Richard Stallman (rms@mole.ai.mit.edu)
615d0182
DL
12720
12721 * buffer.c: Doc fix.
12722
dff28924 127231990-08-15 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 127291990-08-14 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
12730
12731 * m-targon31.h (NO_REMAP): Definition removed.
12732 (SEGMENT_MASK): New macro.
12733
dff28924 127341990-08-14 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 127561990-08-13 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
12757
12758 * xmenu.c (list_of_items, list_of_panes): Fixed wrong params to
12759 wrong_type_argument.
12760
dff28924 127611990-08-12 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 127741990-08-11 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
12775
12776 * m-convex.h (C_SWITCH_MACHINE, LIB_STANDARD, LIBS_MACHINE):
12777 (LD_SWITCH_MACHINE): Add definitions for Convex V 4.0.
12778
dff28924 127791990-08-11 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 127861990-08-10 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
12787
12788 * xfns.c (x_figure_window_size): Don't set pixel sizes until
12789 height and width are determined.
12790
dff28924 127911990-08-08 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 127991990-08-07 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
12800
12801 * sysdep.c [NEED_PTEM_H]: New flag macro says include ptem.h.
12802
dff28924 128031990-08-07 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 128211990-08-06 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 128321990-08-05 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 128581990-08-04 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 128781990-08-02 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
12879
12880 * callproc.c (child_setup): Report error in chdir.
12881
dff28924 128821990-08-01 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 128891990-07-31 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 128971990-07-30 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
12898
12899 * eval.c: Doc fix.
12900
dff28924 129011990-07-28 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
12902
12903 * s-iris*.h (SYSTEM_TYPE): Change silicon-graphics-unix to irix.
12904
dff28924 129051990-07-26 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 129111990-07-26 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
12912
12913 * xdisp.c (display_text_line): String to rope copy for inserting
12914 arrow text.
12915
dff28924 129161990-07-25 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 129311990-07-24 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 129381990-07-24 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 129471990-07-19 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 129541990-07-18 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
12955
12956 * indent.c (Fmove_to_column): Set end to ZV.
12957
dff28924 129581990-07-17 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 129641990-07-17 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
12965
12966 * buffer.c (list_buffers_1): Don't check list-buffers-directory.
12967
dff28924 129681990-07-16 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
12969
12970 * xdisp.c (display_text_line): Don't print ellipsis if they're
12971 off the left edge.
12972
dff28924 129731990-07-10 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
12974
12975 * s-386-ix.h: Define BROKEN_TIOCGETC.
12976
dff28924 129771990-07-09 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
12978
12979 * m-pmax.h: Undef LD_SWITCH_MACHINE, change DATA_START
12980 and DATA_SEG_BITS.
12981
dff28924 129821990-07-05 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 129931990-07-01 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
12994
12995 * sysdep.c: Undefine TIOCGETC if BROKEN_TIOCGETC defined.
12996 * s-usg5-3.h, s-xenix.h: Define BROKEN_TIOCGETC.
12997
dff28924 129981990-06-26 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
12999
13000 * process.c (Fopen_network_connection): Minor cleanup.
13001
dff28924 130021990-06-20 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
13003
13004 * m-sun3.h: Add comments for dealing with 68881.
13005
dff28924 130061990-06-19 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 130131990-06-17 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
13014
13015 * insdel.c (insert): Error if buffer would get too long.
13016 * fileio.c (Finsert_file_contents): Likewise.
13017
dff28924 130181990-06-16 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
13019
13020 * syntax.c (scan_sexps_forward): Allow Squote inside symbols.
13021
dff28924 130221990-06-16 Joseph Arceneaux (jla@geech)
615d0182
DL
13023
13024 * window.c (Fscroll_other_window): Don't unbind_to. Keep track of
13025 current_buffer and point explicitly.
13026
dff28924 130271990-06-15 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 130431990-06-14 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182 13044
88c71720 13045 Globally replaced screen_width with macro
615d0182
DL
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
dff28924 130521990-06-11 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
13053
13054 * indent.c (Findent_to): Don't fail to return value.
13055 (Fmove_to_column, Fcurrent_column): Doc fixes.
13056
dff28924 130571990-06-06 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
13058
13059 * keyboard.c (echo_prompt): Now uses glyphs.
13060 echobuf, echobuf_ptr: These variables now glyphs.
13061
dff28924 130621990-06-05 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
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.
dff28924 13077 (str_to_glyph_cpy, str_to_glyph_ncpy,
615d0182
DL
13078 glyph_to_str_cpy, glyph_to_str_ncpy): New functions.
13079
dff28924 130801990-06-03 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
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.
dff28924 13088 * xdisp.c (redisplay_window): Eliminate lpoint. Alter opoint
615d0182
DL
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
dff28924 131201990-06-02 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 131381990-06-01 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 131701990-06-01 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
13171
13172 * dired.c: Doc fix.
13173
dff28924 131741990-05-31 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
13175
13176 * search.c (Fsearch_forward): Docstring fix.
13177
dff28924 131781990-05-31 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
13179
13180 * dired.c: Comment added.
13181
dff28924 131821990-05-31 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
13183
13184 * process.c (Fprocess_connection): Return the type of a process
dff28924 13185 object.
615d0182
DL
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
dff28924 131921990-05-28 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
13193
13194 * fileio.c (Finsert_file_contents): Use new variable how_much to
13195 hold read result.
13196
dff28924 131971990-05-24 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
13198
13199 * lread.c (read_char_exclusive): New subr.
13200
dff28924 132011990-05-24 David Lawrence (tale@pogo.ai.mit.edu)
615d0182
DL
13202
13203 * fileio.c (file_executable_p): New function.
13204
dff28924 132051990-05-23 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 132181990-05-22 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
13219
13220 * Renamed meta_flag meta_key.
13221
13222 * termopts.h: Comment changes.
13223
dff28924 132241990-05-20 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 132301990-05-17 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 132371990-05-17 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
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.
dff28924 13255 * marker.c (marker_position, Fset_marker, set_marker_restricted):
615d0182
DL
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.
dff28924 13303 * window.c (Fselect_window): Always set pointm of old window.
615d0182
DL
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
dff28924 133111990-05-16 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 133171990-05-13 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
13318
13319 * keymap.c (Fdefine_key, Flookup_key): Local cleanups.
13320
dff28924 13321 * sysdep.c (sys_suspend): Use save_signal_handlers and
615d0182
DL
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
dff28924 133411990-05-12 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
13342
13343 * process.c (create_process) [not USG]: Put subproc in pgrp 0.
13344
dff28924 133451990-05-10 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 13368 structures.
615d0182
DL
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.
dff28924 13389 (command_loop_1, request_echo, get_char, read_key_sequence):
615d0182
DL
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
dff28924 134041990-05-08 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
13405
13406 * process.c (Fopen_network_stream): Also handle numeric inet
13407 addresses.
13408
dff28924 134091990-05-06 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
13410
13411 * alloca.c: #ifdef __STDC__ rather than X3J11/
13412
dff28924 134131990-05-03 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
13414
13415 * fileio.c (Fmake_symbolic_link): Delete old file if permitted.
13416
dff28924 134171990-05-02 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 134321990-05-01 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 134641990-04-30 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 134741990-04-26 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
13475
13476 * minibuf.c: Declare active_screen struct screen *, not
13477 Lisp_Screen *.
13478
dff28924 134791990-04-19 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
13480
13481 * xterm.c (XTupdate_end): Only x_display_cursor if s is x_input_screen.
13482
dff28924 134831990-04-19 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 134891990-04-19 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
13490
13491 * xfns.c (Fx_open_connection): Attach xrdb to x_current_display.
13492
dff28924 134931990-04-17 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
13494
13495 * xterm.c (dumpborder): Now only used for X10.
13496 (highlight, unhighlight): New functions for X11.
13497
dff28924 134981990-04-17 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 135031990-04-16 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
13504
13505 * s-sunos4.h, s-sunos4shr.h (SYSTEM_MALLOC): Define it.
13506
dff28924 135071990-04-15 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 135131990-04-13 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 135261990-04-10 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
13527
13528 * xterm.c (x_term_init): Use MAXPATHLEN.
13529
dff28924 135301990-04-09 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
13531
13532 * buffer.c (list_buffers_1): Get filename from list-buffers-directory.
13533
dff28924 135341990-04-06 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 135421990-04-05 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
13543
13544 * xterm.c (construct_mouse_event): Deal with the motion events
13545 first. Only grab the mouse when in the scrollbar.
13546
dff28924 135471990-04-04 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 135571990-04-03 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182 13558
3c17e062 13559 * editfns.c (Fmessage): If there is a global minibuffer screen,
615d0182
DL
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
dff28924 135661990-04-01 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 135771990-03-29 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 135961990-03-28 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 136081990-03-27 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 136221990-03-25 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
13623
13624 * xfns.c (Fx_own_selection): Only take one argument, string.
13625
dff28924 136261990-03-24 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 136321990-03-23 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 136441990-03-22 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 136571990-03-21 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 136771990-03-20 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
13678
13679 * xfns.c (Fx_track_pointer): Go faster.
13680
13681 * screen.h: New macro SCREENP.
13682
13683 * window.c: (Fminibuffer_window): Rewritten.
13684
dff28924 136851990-03-19 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
13686
13687 * sysdep.c (perror): Control with HAVE_PERROR as well as HPUX.
13688 * s-hpux.h (HAVE_PERROR): Define it.
13689
dff28924 136901990-03-19 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 137021990-03-16 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 137101990-03-14 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
13711
13712 * xterm.c (x_new_selected_screen): Set x_input_screen here.
13713
dff28924 137141990-03-11 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 137241990-03-10 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 137351990-03-08 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182 13736
88c71720 13737 * xterm.c (x_focus_screen): no longer static.
615d0182
DL
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
dff28924 137481990-03-07 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
13749
13750 * screen.c (Fscreen_has_focus): New subr.
13751 (Fselect_screen): Use x_focus_on_screen to physically select the
13752 screen.
13753
dff28924 137541990-03-06 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 137741990-03-05 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 137811990-03-04 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182 13782
88c71720 13783 * eval.c: If using X windows, include xterm.h.
615d0182
DL
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
dff28924 138151990-03-02 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
13816
13817 * screen.c (Frelease_focused_screen): Just check that screen is
13818 selected.
13819
dff28924 138201990-02-28 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 138271990-02-28 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
13828
13829 * casefiddle.c: Doc fix.
13830
dff28924 138311990-02-28 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 138371990-02-27 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
13838
13839 * minibuf.c (Fread_from_minibuffer): Initialize pos to 0.
13840
dff28924 138411990-02-25 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 138521990-02-23 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 138611990-02-22 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
13862
13863 * unexencap.c: New file, waiting for papers.
13864
dff28924 138651990-02-22 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 138771990-02-21 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 138841990-02-20 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 138941990-02-19 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
13895
13896 * casefiddle.c (casify_region): Move the new statement.
13897
dff28924 138981990-02-19 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
13899
13900 * casefiddle.c (casify_region): Return if beginning and end same.
13901
dff28924 139021990-02-18 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 139091990-02-18 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 139201990-02-14 Joseph Arceneaux (jla@albert.ai.mit.edu)
615d0182
DL
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
dff28924 139281990-02-13 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 139351990-02-12 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 139401990-02-12 Joseph Arceneaux (jla@albert.ai.mit.edu)
615d0182
DL
13941
13942 * doprnt.c (doprnt): Expand size of tembuf to 512.
13943
dff28924 139441990-02-10 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
13945
13946 * minibuf.c (Fread_no_blanks_input): Make second arg optional.
13947
dff28924 139481990-02-09 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 139601990-02-08 Joseph Arceneaux (jla@albert.ai.mit.edu)
615d0182
DL
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
dff28924 13966 depression.
615d0182
DL
13967 * xfns.c (Fx_horizontal_line): use x_mouse_grabbed.
13968
dff28924 139691990-02-07 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
13970
13971 * xdisp.c (DoDsp): If only updating selected screen, but there is
13972 a minibuffer screen, update it as well.
13973
dff28924 139741990-02-06 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
13975
13976 * xfns.c (Fx_pixel_width, Fx_pixel_height): New subrs.
88c71720 13977 * xterm.h: New components pixel_width, pixel_height, to x_display.
615d0182
DL
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
dff28924 139851990-02-05 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
13986
13987 * screen.h: Declare Vglobal_minibuffer_screen.
13988 * xdisp.c (DoDsp): Set all_windows if using global-minibuffer-screen.
13989
dff28924 139901990-02-03 Joseph Arceneaux (jla@geech)
615d0182
DL
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
dff28924 139971990-02-01 Joseph Arceneaux (jla@albert.ai.mit.edu)
615d0182
DL
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
dff28924 140101990-02-01 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
14011
14012 * m-ibmps2-aix.h: Undef NEED_SIOCTL.
14013 (SIGN_EXTEND_CHAR): Cast to `signed char'.
14014
dff28924 140151990-01-28 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 140241990-01-27 Joseph Arceneaux (jla@churchy.ai.mit.edu)
615d0182
DL
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
dff28924 140341990-01-25 Joseph Arceneaux (jla@albert.ai.mit.edu)
615d0182
DL
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
dff28924 140501990-01-25 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 140601990-01-24 Richard Stallman (rms@albert.ai.mit.edu)
615d0182
DL
14061
14062 * eval.c (Fmacroexpand): Handle explicit macros ((macro ...) ...).
14063
dff28924 140641990-01-18 Joseph Arceneaux (jla@spiff)
615d0182
DL
14065
14066 * undo.c (Fundo_more): Fixed typo.
14067
dff28924 140681990-01-16 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
14069
14070 * xdisp.c (display_text_line): When checking HPOS for continuation
14071 line, compensate for w->left.
14072
dff28924 140731990-01-15 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 140851990-01-15 Joseph Arceneaux (jla@spiff)
615d0182
DL
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
dff28924 140941990-01-11 Joseph Arceneaux (jla@spiff)
615d0182
DL
14095
14096 * xfns.c (x_draw_pixmap): New routine.
14097
dff28924 140981990-01-10 Jim Kingdon (kingdon@pogo)
615d0182
DL
14099
14100 * m/hp300bsd.h: New file
14101
dff28924 141021990-01-08 Joseph Arceneaux (jla@spiff)
615d0182
DL
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
dff28924 141091990-01-08 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
14110
14111 * editfns.c (Fchar_after): Set N after coercing marker.
14112
dff28924 141131990-01-06 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
14114
14115 * buffer.c (Fkill_all_local_variables): Force mode line update.
14116
dff28924 141171990-01-05 Joseph Arceneaux (jla@spiff)
615d0182
DL
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.
dff28924 14126 (command_loop_1): Check not termcap screen before
615d0182
DL
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
dff28924 141451990-01-04 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182 14146
dff28924 14147 * buffer.h, buffer.c (Vfirst_change_function): New Lisp variable.
615d0182
DL
14148 * insdel.c (signal_before_change): Call that function.
14149
14150 * keyboard.c (cmd_error): Don't crash if TAIL is nil.
14151
dff28924 141521989-12-31 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
14153
14154 * minibuf.c: Doc fixes.
14155
dff28924 141561989-12-28 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
14157
14158 * process.c (create_process): Unhold SIGCHLD in the child.
14159
dff28924 141601989-12-27 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
14161
14162 * process.c (create_process): Treat HPUX like BSD for sigsetmask.
14163
dff28924 141641989-12-25 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
14165
14166 * fns.c (Fmapconcat): Gcpro SEP around mapcar1.
14167
dff28924 141681989-12-23 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 141901989-12-20 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
14191
14192 * dispnew.c (init_display) [VMS]: Downcase terminal type.
14193
dff28924 141941989-12-17 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
5691a3f8 142031989-12-15 Joseph Arceneaux (jla@spiff)
615d0182
DL
14204
14205 * lread.c (Fread_char): Catch error if read non-char.
14206 (Fread_event): New subr. Return any input object.
14207
dff28924 142081989-12-14 Joseph Arceneaux (jla@spiff)
615d0182
DL
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
dff28924 142161989-12-13 Joseph Arceneaux (jla@spiff)
615d0182
DL
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
dff28924 142291989-12-08 Joseph Arceneaux (jla@spiff)
615d0182
DL
14230
14231 * process.c (create_process): For not USG, properly set the
14232 process group.
14233
dff28924 142341989-12-07 Joseph Arceneaux (jla@spiff)
615d0182
DL
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
dff28924 142411989-12-05 Joseph Arceneaux (jla@spiff)
615d0182
DL
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
dff28924 142501989-12-04 Joseph Arceneaux (jla@spiff)
615d0182
DL
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
dff28924 142611989-12-03 Joseph Arceneaux (jla@spiff)
615d0182 14262
88c71720 14263 * alloc.c: Upped NSTATICS from 200 to 256.
615d0182
DL
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
dff28924 142791989-12-01 Joseph Arceneaux (jla@spiff)
615d0182
DL
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
dff28924 142911989-11-30 Joseph Arceneaux (jla@spiff)
615d0182
DL
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
dff28924 143071989-11-29 Joseph Arceneaux (jla@spiff)
615d0182
DL
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
dff28924 143151989-11-27 Joseph Arceneaux (jla@spiff)
615d0182
DL
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
88c71720 14321 * xfns.c: New variable Vx_mouse_grabbed.
615d0182
DL
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
dff28924 143281989-11-24 Joseph Arceneaux (jla@spiff)
615d0182
DL
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
dff28924 143351989-11-22 Joseph Arceneaux (jla@spiff)
615d0182
DL
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
dff28924 143491989-11-21 Joseph Arceneaux (jla@spiff)
615d0182
DL
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
dff28924 143601989-11-18 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
14361
14362 * s-386-ix.h: New file.
14363
dff28924 143641989-11-17 Joseph Arceneaux (jla@spiff)
615d0182
DL
14365
14366 * xterm.c (dump_rectangle): Flush the X queue.
14367
dff28924 143681989-11-16 Joseph Arceneaux (jla@spiff)
615d0182
DL
14369
14370 * xmenu.c (xmenu_show): Use ButtonReleaseMask instead of
14371 ButtonRelease.
14372
14373 * fileio.c (Fmake_directory): New subr.
14374
dff28924 143751989-11-16 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 143811989-11-14 Joseph Arceneaux (jla@spiff)
615d0182
DL
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
dff28924 143881989-11-13 Joseph Arceneaux (jla@spiff)
615d0182
DL
14389
14390 * ymakefile: Just link if ../oldXMenu/libXMenu11.a already exists.
14391
dff28924 143921989-11-09 Joseph Arceneaux (jla@spiff)
615d0182
DL
14393
14394 * m/m-sparc.h: If __GNUC__ use "-O", else "-O2"
14395
dff28924 143961989-11-08 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
14397
14398 * search.c (Fstore_match_data): A marker pointing nowhere, treat as 0.
14399
dff28924 144001989-11-08 Joseph Arceneaux (jla@spiff)
615d0182
DL
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
dff28924 144121989-11-08 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 144181989-11-07 Joseph Arceneaux (jla@spiff)
615d0182
DL
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
dff28924 144271989-11-06 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 144451989-11-03 Joseph Arceneaux (jla@spiff)
615d0182
DL
14446
14447 * config.h-dist: Mention LISP_FLOAT_TYPE, GNU_MALLOC, and REL_ALLOC.
14448
14449 * s/s-umips.h: New file.
14450
dff28924 144511989-11-03 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
14452
14453 * process.c (Fopen_network_stream): Handle EINTR in connect.
14454 Describe errno in err msg if connect fails.
14455
dff28924 144561989-11-02 Joseph Arceneaux (jla@spiff)
615d0182
DL
14457
14458 * vm-limit.c: New file.
14459 * ralloc.c: New file.
14460 * ymakefile: Take vm-limit.o into account.
14461
dff28924 144621989-11-02 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
14463
14464 * alloc.c (staticvec): Make this a simple vector of pointers
14465 rather than an alias for a vector of chars.
14466
dff28924 144671989-11-01 Joseph Arceneaux (jla@spiff)
615d0182
DL
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
dff28924 144851989-10-31 Joseph Arceneaux (jla@spiff)
615d0182
DL
14486
14487 * All .c and .h files: New copyright header.
14488
dff28924 144891989-10-30 Joseph Arceneaux (jla@spiff)
615d0182
DL
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
dff28924 144971989-10-27 Joseph Arceneaux (jla@spiff)
615d0182
DL
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
dff28924 145041989-10-26 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 145121989-10-26 Joseph Arceneaux (jla@spiff)
615d0182
DL
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
dff28924 145211989-10-25 Joseph Arceneaux (jla@spiff)
615d0182
DL
14522
14523 * config.h-dist: Comment fix.
14524
dff28924 145251989-10-24 Joseph Arceneaux (jla@spiff)
615d0182
DL
14526
14527 * xfns.c (Fx_draw_lines, translate_vectors): New functions.
14528
dff28924 145291989-10-21 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 145361989-10-20 Joseph Arceneaux (jla@spiff)
615d0182
DL
14537
14538 * xdisp.c (display_minibuf_message): Choose minibuf screen first
14539 of all. Return if not visible.
14540
dff28924 145411989-10-19 Joseph Arceneaux (jla@apple-gunkies.ai.mit.edu)
615d0182
DL
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
dff28924 14551 when using X but not yet mapped.
615d0182 14552
dff28924 145531989-10-18 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
14554
14555 * m-pyramid.h (NO_ARG_ARRAY): Define if using GCC.
14556
dff28924 145571989-10-17 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
14558
14559 * vmsfns.c (process_command_input): Call clear_waiting_for_input.
14560
dff28924 145611989-10-14 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 145771989-10-13 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 145841989-10-13 Joseph Arceneaux (jla@apple-gunkies.ai.mit.edu)
615d0182
DL
14585
14586 * xfns.c (x_selection_arrival):
14587 (x_send_incremental):
14588 (x_answer_selection_request): New procedures for incremental
14589 selection transfer.
14590
dff28924 145911989-10-12 Joseph Arceneaux (jla@apple-gunkies.ai.mit.edu)
615d0182
DL
14592
14593 * lread.c (complete_filename_p): New function which replaces
14594 absolute_filename_p. This one doesn't consider "~" valid.
14595
dff28924 145961989-10-12 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
14597
14598 * buffer.c: Comment fix.
14599
dff28924 146001989-10-11 Joseph Arceneaux (jla@apple-gunkies.ai.mit.edu)
615d0182
DL
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
dff28924 146091989-10-11 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 146161989-10-10 Joseph Arceneaux (jla@apple-gunkies.ai.mit.edu)
615d0182
DL
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
dff28924 146241989-10-09 Joseph Arceneaux (jla@apple-gunkies.ai.mit.edu)
615d0182
DL
14625
14626 * xdisp.c (DoDsp): Make sure to call unhold_window_change after
dff28924 14627 before all returns.
615d0182
DL
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
dff28924 146471989-10-03 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
14648
14649 * m/m-hp9000s800.h (XUNMARK): Delete definition.
14650 (S_IFLNK): Do not undef it.
14651
dff28924 146521989-10-03 Joseph Arceneaux (jla@apple-gunkies.ai.mit.edu)
615d0182
DL
14653
14654 * dispnew.c (get_display_line): If screen not visible, abort.
14655
dff28924 146561989-10-02 Joseph Arceneaux (jla@apple-gunkies.ai.mit.edu)
615d0182
DL
14657
14658 * xterm.c (x_make_screen_visible): Set s->visible, unset
14659 s->iconified for HAVE_X11.
14660
dff28924 146611989-09-29 Joseph Arceneaux (jla@apple-gunkies.ai.mit.edu)
615d0182
DL
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
dff28924 146711989-09-28 Joseph Arceneaux (jla@apple-gunkies.ai.mit.edu)
615d0182
DL
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
dff28924 146821989-09-27 Joseph Arceneaux (jla@apple-gunkies.ai.mit.edu)
615d0182
DL
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
dff28924 146981989-09-26 Joseph Arceneaux (jla@apple-gunkies.ai.mit.edu)
615d0182
DL
14699
14700 * xfns.c: New variable Vx_cursor_fore_pixel.
14701
dff28924 147021989-09-23 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
14703
14704 * lread.c (openp): Don't ! the result of `access'.
14705
dff28924 147061989-09-22 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 147111989-09-21 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
14712
14713 * fileio.c: Comment fix.
14714
dff28924 147151989-09-18 Joseph Arceneaux (jla@spiff)
615d0182
DL
14716
14717 * xfns.c (Fx_get_cut_buffer): XFree the data returned by
14718 XFetchBytes.
14719
dff28924 147201989-09-16 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
14721
14722 * fileio.c (Fwrite_region): Reinstall #if 0 around fstat.
14723
dff28924 147241989-09-12 Joseph Arceneaux (jla@spiff)
615d0182
DL
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
dff28924 147351989-09-11 Joseph Arceneaux (jla@spiff)
615d0182
DL
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
dff28924
SS
14746 * dispnew.c (init_display):
14747 (Fsleep_for, Fsit_for):
14748 * process.c (Faccept_process_output):
615d0182 14749 * keyboard.c ({clear,set}_waiting_for_input):
dff28924 14750 (quit_throw_to_get_char, get_char):
615d0182
DL
14751 * xdisp.c (DoDsp, message, message1): Undid changes of Aug. 23
14752 (see below); accept window changes most of the time.
14753
dff28924 147541989-09-07 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 147681989-09-05 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
14769
14770 * emacs.c, doc.c, filelock.c: Move Emacs header includes after
14771 system header includes, and #undef NULL in between.
14772
dff28924 147731989-08-30 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
14774
14775 * process.c [SYSV_PTYS]: If `titan', include some other files.
14776
dff28924 147771989-08-29 Joseph Arceneaux (jla@spiff)
615d0182
DL
14778
14779 * fileio.c: read-file-name replaced with new version, formerly
14780 called new-read-file-name.
14781
dff28924 147821989-08-26 Richard Stallman (rms@apple-gunkies.ai.mit.edu)
615d0182
DL
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
dff28924 147891989-08-24 Richard Stallman (rms@apple-gunkies.ai.mit.edu)
615d0182 14790
88c71720 14791 Use two variables to convey reason for synch process death,
615d0182
DL
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
dff28924 147971989-08-24 Joseph Arceneaux (jla@spiff)
615d0182
DL
14798
14799 * xterm.c (x_wm_set_size_hint): Use new ICCCM values for size_hints.
14800
dff28924 148011989-08-24 Richard Stallman (rms@apple-gunkies.ai.mit.edu)
615d0182
DL
14802
14803 * buffer.c: Doc fix.
14804
dff28924 148051989-08-24 Joseph Arceneaux (jla@spiff)
615d0182
DL
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
dff28924 148121989-08-23 Richard Stallman (rms@apple-gunkies.ai.mit.edu)
615d0182
DL
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
dff28924 148241989-08-22 Joseph Arceneaux (jla@spiff)
615d0182
DL
14825
14826 * xfns.c (x_set_mouse_color): Use new variables Vx_pointer_mask,
14827 Vx_pointer_shape.
14828
dff28924 148291989-08-21 Richard Stallman (rms@apple-gunkies.ai.mit.edu)
615d0182
DL
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
dff28924 148361989-08-21 Joseph Arceneaux (jla@spiff)
615d0182
DL
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
dff28924 148531989-08-18 Richard Stallman (rms@hobbes.ai.mit.edu)
615d0182
DL
14854
14855 * vmsfns.c: Define PRV$V_... syms if prvdef.h does not.
14856
dff28924 148571989-08-18 Joseph Arceneaux (jla@spiff)
615d0182
DL
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
dff28924 148641989-08-16 Joseph Arceneaux (jla@spiff)
615d0182
DL
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
dff28924 148731989-08-16 Richard Stallman (rms@hobbes.ai.mit.edu)
615d0182
DL
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
dff28924 148801989-08-13 Joseph Arceneaux (jla@spiff)
615d0182
DL
14881
14882 * ymakefile: Do ${make} for oldXMenu.
14883
dff28924 148841989-08-13 Richard Stallman (rms@hobbes.ai.mit.edu)
615d0182
DL
14885
14886 * eval.c: Doc fix.
14887
dff28924 148881989-08-12 Richard Stallman (rms@hobbes.ai.mit.edu)
615d0182
DL
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
dff28924 148961989-08-11 Richard Stallman (rms@hobbes.ai.mit.edu)
615d0182
DL
14897
14898 * dispnew.c: Handle BROKEN_FIONREAD as in other files.
14899
dff28924 149001989-08-09 Joseph Arceneaux (jla@spiff)
615d0182
DL
14901
14902 * ../oldXMenu/Makefile: Removed all the unneccessary X stuff.
14903
dff28924 149041989-08-07 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
14905
14906 * fileio.c (barf_or_query_if_file_exists): When signalling,
14907 provide the expected args for a file-error.
14908
dff28924 149091989-08-06 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 149251989-08-05 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
14926
14927 * callproc.c (child_setup): Get rid of junk in #if 0.
14928
dff28924 149291989-08-03 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 149421989-08-02 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
14943
14944 * emacs.c (Fdump_emacs): Doc fix.
14945
dff28924 149461989-08-02 Joseph Arceneaux (jla@spiff)
615d0182
DL
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
dff28924 149541989-07-31 Joseph Arceneaux (jla@spiff)
615d0182
DL
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.
dff28924
SS
14966
149671989-07-26 Joseph Arceneaux (jla@spiff)
615d0182
DL
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
dff28924 149831989-07-24 Joseph Arceneaux (jla@spiff)
615d0182
DL
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
dff28924 150061989-07-21 Joseph Arceneaux (jla@spiff)
615d0182
DL
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
dff28924 150161989-07-20 Joseph Arceneaux (jla@spiff)
615d0182
DL
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
dff28924 150311989-07-19 Joseph Arceneaux (jla@spiff)
615d0182
DL
15032
15033 * xfns.c (Fx_rebind_key): Completely rewrote this function for
15034 X11.
15035
dff28924 150361989-07-13 Joseph Arceneaux (jla@spiff)
615d0182
DL
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
dff28924 150451989-07-12 Joseph Arceneaux (jla@spiff)
615d0182
DL
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
dff28924 150611989-07-11 Joseph Arceneaux (jla@gluteus)
615d0182
DL
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
dff28924 150691989-07-10 Joseph Arceneaux (jla@gluteus)
615d0182
DL
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
dff28924 150801989-07-07 Joseph Arceneaux (jla@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 150981989-07-05 Joseph Arceneaux (jla@spiff)
615d0182
DL
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
dff28924 151071989-07-03 Joseph Arceneaux (jla@spiff)
615d0182
DL
15108
15109 * xfns.c: (x_pixel_width, x_pixel_height) New functions.
15110 * screen.c: (Fscreen_pixel_size): New subr.
15111
dff28924 151121989-06-30 Joseph Arceneaux (jla@spiff)
615d0182
DL
15113
15114 * xterm.c: Use invocation_name as argument to XGetDefaults.
15115
dff28924 151161989-06-29 Joseph Arceneaux (jla@spiff)
615d0182
DL
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
dff28924 151241989-06-27 Joseph Arceneaux (jla@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 151301989-06-26 Joseph Arceneaux (jla@galapas.ai.mit.edu)
615d0182
DL
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
dff28924 151491989-06-25 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
15150
15151 * window.c (Fsplit_window): If horizontal, round left window size up.
15152
dff28924 151531989-06-24 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 151671989-06-23 Joseph Arceneaux (jla@apple-gunkies.ai.mit.edu)
615d0182
DL
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
dff28924 151751989-06-22 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
15176
15177 * lisp.h (XPNTR): Don't define if already defined.
15178
dff28924 151791989-06-22 Joseph Arceneaux (jla@cream-of-wheat.ai.mit.edu)
615d0182
DL
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
dff28924 151861989-06-22 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
15187
15188 * window.c (Fsplit_window, change_window_height):
15189 Enforce minimum of 2 for window_min_width and window_min_height.
15190
dff28924 151911989-06-22 Joseph Arceneaux (jla@galapas.ai.mit.edu)
615d0182
DL
15192
15193 * dispnew.c (unhold_window_change): Don't set and unset in_display
15194 before and after calling change_screen_size.
15195
dff28924 151961989-06-21 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 152031989-06-20 Joseph Arceneaux (jla@apple-gunkies.ai.mit.edu)
615d0182
DL
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
dff28924 152161989-06-17 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
15217
15218 * eval.c (Fdefvar): Operate on default value if sym is buffer-local.
15219 (Fdefconst): Likewise.
15220
88c71720 15221 Allow buffer-local variables to be void in one buffer
615d0182
DL
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
dff28924 152291989-06-16 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
15230
15231 * ymakefile: New variable OLDXMENU has filename of libXMenu.a
15232 as a target. Make temacs depend on it.
15233
dff28924 152341989-06-15 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 152421989-06-09 Joseph Arceneaux (jla@apple-gunkies.ai.mit.edu)
615d0182
DL
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
dff28924 152501989-06-08 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
15251
15252 * window.c (Fset_window_point): Don't lose if window's buffer is
15253 not current.
15254
dff28924 152551989-06-08 Joseph Arceneaux (jla@apple-gunkies.ai.mit.edu)
615d0182
DL
15256
15257 * xfns.c (Fx_open_connection): Added 9 Lisp variables
15258 defined by the screen and server.
15259
dff28924 152601989-06-08 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
15261
15262 * m-pmax.h: New file.
15263
dff28924 152641989-06-08 Joseph Arceneaux (jla@apple-gunkies.ai.mit.edu)
615d0182
DL
15265
15266 * xfns.c: removed superfluous definition of gray_bits.
15267
dff28924 152681989-06-07 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
15269
15270 * m-hp9000s300.h: Define NEED_BSDTTY unless NOMULTIPLEJOBS.
15271
dff28924 152721989-06-07 Joseph Arceneaux (jla@apple-gunkies.ai.mit.edu)
615d0182
DL
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
dff28924 152791989-06-07 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
15280
15281 * m-hp9000s800.h: Define NEED_BSDTTY here.
15282 * s-hpux.h: Not here.
15283
dff28924 152841989-06-06 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
15285
15286 * s/s-hpux.h: Define NEED_BSDTTY.
15287
dff28924 152881989-06-06 Joseph Arceneaux (jla@apple-gunkies.ai.mit.edu)
615d0182
DL
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
dff28924 152951989-06-05 Joseph Arceneaux (jla@cream-of-wheat.ai.mit.edu)
615d0182
DL
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
dff28924 153051989-06-05 Chris Hanson (cph@kleph)
615d0182
DL
15306
15307 * syntax.c (Fmodify_syntax_entry): Change documentation string to
15308 reflect earlier change to action of `p' syntax bit.
15309
dff28924 153101989-06-04 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
15311
15312 * lread.c (read1): Don't accept "" in middle of string.
15313
dff28924 153141989-05-30 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
15315
15316 * search.c (Freplace_match): If \N has nothing to insert,
15317 insert nothing.
15318
dff28924 153191989-05-29 Joseph Arceneaux (jla@gracilis.ai.mit.edu)
615d0182
DL
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
dff28924 153251989-05-25 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
15326
15327 * syntax.c (scan_lists): Once within a word, treat Squote like Sword.
15328
dff28924 153291989-05-24 Joseph Arceneaux (jla@apple-gunkies.ai.mit.edu)
615d0182
DL
15330
15331 * dispnew.c (change_screen_size): DoDsp if not pretend.
15332
dff28924 153331989-05-23 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
15334
15335 * search.c (skip_chars): Dumb error checking for \.
15336
dff28924 153371989-05-22 Joseph Arceneaux (jla@apple-gunkies.ai.mit.edu)
615d0182
DL
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
dff28924 153551989-05-21 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182 15356
dff28924 15357 * doc.c (Fsubstitute_command_keys): Evaluate \\<...> keymap
615d0182
DL
15358 in proper buffer.
15359
15360 * keymap.c (Fapropos_internal): New Lisp function, old apropos
15361 but only returns a list.
15362
dff28924 153631989-05-20 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
15364
15365 * process.c (Fopen_network_stream): Don't set kill-without-query.
15366
dff28924 153671989-05-19 Joseph Arceneaux (jla@apple-gunkies.ai.mit.edu)
615d0182
DL
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
dff28924 153731989-05-16 Joseph Arceneaux (jla@apple-gunkies.ai.mit.edu)
615d0182
DL
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
dff28924 153821989-05-16 Chris Hanson (cph@kleph)
615d0182
DL
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
dff28924 153891989-05-16 Joseph Arceneaux (jla@apple-gunkies.ai.mit.edu)
615d0182
DL
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
dff28924 154021989-05-15 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
15403
15404 * editfns.c (Fsubst_char_in_region): If NOUNDO, do increment tick,
15405 but maybe also increment save-tick.
15406
dff28924 154071989-05-15 Joseph Arceneaux (jla@apple-gunkies.ai.mit.edu)
615d0182
DL
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
dff28924 154161989-05-14 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 154251989-05-13 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 154311989-05-12 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 154401989-05-12 Joseph Arceneaux (jla@apple-gunkies.ai.mit.edu)
615d0182
DL
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
dff28924 154501989-05-10 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 154601989-05-10 Joseph Arceneaux (jla@corn-chex.ai.mit.edu)
615d0182
DL
15461
15462 * xfns.c (adjust_scrollbars): Don't subtract 2 from
15463 h_scrollbar_height when calculating `length'.
15464
dff28924 154651989-05-08 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 154731989-05-08 Joseph Arceneaux (jla@rice-chex.ai.mit.edu)
615d0182
DL
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
dff28924 154811989-05-08 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
15482
15483 * m/m-clipper.h: New file.
15484
dff28924 154851989-05-07 Joseph Arceneaux (jla@corn-chex.ai.mit.edu)
615d0182
DL
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
dff28924 154941989-05-07 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 155051989-05-05 Joseph Arceneaux (jla@gracilis.ai.mit.edu)
615d0182
DL
15506
15507 * xfns.c (Fx_set_face): Rewrote the doc-string and renamed the
15508 parameters.
15509
dff28924 155101989-05-05 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 155231989-05-05 Chris Hanson (cph@kleph)
615d0182
DL
15524
15525 * process.c [HPUX && !NOMULTIPLEJOBS]: Include <bsdtty.h>, which
15526 defines TIOCGPGRP.
15527
dff28924 155281989-05-05 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 155511989-05-04 Joseph Arceneaux (jla@gracilis.ai.mit.edu)
615d0182
DL
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
dff28924 155611989-05-04 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 155681989-05-03 Joe Arceneaux (jla@gracilis.ai.mit.edu)
615d0182
DL
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
dff28924 155741989-05-02 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182 15575
88c71720 15576 Begin changing representation of compiled functions.
615d0182
DL
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
dff28924 155961989-04-30 Joseph Arceneaux (jla@hobbes)
615d0182
DL
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
dff28924 156041989-04-30 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
15605
15606 * window.c (Fdelete_other_windows): Bug getting top edge.
15607
dff28924 156081989-04-29 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 156161989-04-29 Joe Arceneaux (jla@apple-gunkies.ai.mit.edu)
615d0182
DL
15617
15618 * xterm.c (x_term_init): Don't set visible bell, as it pre-empts
15619 .emacs control.
15620
dff28924 156211989-04-26 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
15622
15623 * doc.c (syms_of_doc): Make Vdoc_file_name a Lisp variable
15624 named internal-doc-file-name.
15625
dff28924 156261989-04-25 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 156341989-04-24 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 156431989-04-23 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 156591989-04-22 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 157221989-04-21 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
15723
15724 * indent.c (compute_motion): Use SCREEN_WIDTH.
15725 * dispnew.c (update_line): Use SCREEN_WIDTH.
15726 (update_screen): Use SCREEN_HEIGHT.
15727
dff28924 157281989-04-20 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 157411989-04-19 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 157491989-04-18 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 157571989-04-13 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
15758
15759 * process.c (wait_reading_process_input) [sun]: If SIGIO failed
15760 to be sent, send it by hand.
15761
dff28924 157621989-04-12 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
15763
15764 * window.c (Fdelete_other_windows): recenter window to avoid scrolling.
15765
dff28924 157661989-04-11 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 157781989-04-08 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
15779
15780 * sysdep.c [USG]: If TIOCGWINSZ defined, include sioctl.h.
15781
dff28924 157821989-04-06 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 158091989-04-03 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
15810
15811 * ymakefile (LIBES): Put LIBX first; it may depend on LIBS_MACHINE.
15812
15813 * m-sequent.h: Define HAVE_ALLOCA.
15814
dff28924 158151989-04-02 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
15816
15817 * term.c (term_init): Can't use scroll region if no abs positioning.
15818
dff28924 158191989-04-01 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
15820
15821 * process.c (Fopen_network_stream): close desc. if connect fails.
15822
dff28924 158231989-03-31 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 158301989-03-29 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 158361989-02-23 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 158421989-02-17 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
15843
15844 * m-ibmrt-aix.h: Define BROKEN_FIONREAD.
15845
dff28924 158461989-02-16 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
15847
15848 * keymap.c (Fdefine_prefix_command): Set both value and fn defn,
15849 with separate syms specified for each purpose.
15850
dff28924 158511989-02-15 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
15852
15853 * callproc.c (Fcall_process): Open /dev/null with O_WRONLY.
15854
dff28924 158551989-02-14 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 158601989-02-11 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
15861
15862 * data.c (Fkill_local_variable): New local to simplify big stmt.
15863
dff28924 158641989-02-09 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 158741989-02-08 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
15875
15876 * keymap.c (Fdefine_prefix_command): Use Ffset, not Fset.
15877
dff28924 158781989-02-06 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
15879
15880 * fileio.c (Fset_visited_file_modtime): New fn.
15881
15882 * xfns.c (Fx_create_screen) [X10]: XCreateWindow wants pixmaps as args.
15883
dff28924 158841989-02-03 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
15885
15886 * dispnew.c (Fsit_for): It accepts 3 args.
15887
dff28924 158881989-02-02 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 158971989-01-28 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 159031989-01-28 Joe Arceneaux (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 159721989-01-24 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
15973
15974 * buffer.c (Fbuffer_modified_tick): New fn.
15975
15976 * window.c (Fnext_window): Accept 3 args from Lisp.
15977
dff28924 159781989-01-23 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
15979
15980 * sysdep.c (sys_suspend): Handle case of SIGTSTP but not BSD.
15981
dff28924 159821989-01-20 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
15983
15984 * sysdep.c (init_sys_modes): Do TIOCSTART if def, like TCXONC.
15985
dff28924 159861989-01-19 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 159951989-01-18 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
15996
15997 * keymap.c (get_keyelt): Allow indirection within (STRING . DEFN).
15998
dff28924 159991989-01-16 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 160131989-01-15 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
16014
16015 * eval.c (Fbacktrace_frame): Require one arg. Return nil if too high.
16016
dff28924 160171989-01-14 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
88c71720
KS
16028 * keyboard.c: Simplify keyboard input.
16029 (read_avail_input): Don't assume buffer is empty.
615d0182
DL
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
88c71720 16037 VMS keyboard input should have interrupt_input nonzero.
615d0182
DL
16038 * keyboard.c (Fset_input_mode, init_keyboard): [VMS] Always set
16039 interrupt_input to 1.
16040 (get_input_pending): Special case deleted.
16041
dff28924 160421989-01-13 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 160801989-01-12 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 160851989-01-11 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 160951989-01-07 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 161051989-01-06 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 161361989-01-05 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 161431989-01-02 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 161621989-01-01 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 161771988-12-31 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
16178
16179 * data.c (Fstring_to_int): Correct max # args.
16180
dff28924 161811988-12-30 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
16182
16183 * ymakefile (LIBES, LIB_GCC): If using GCC, link with gnulib.
16184
dff28924 161851988-12-29 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
16186
16187 * editfns.c: Many doc improvements.
16188
dff28924 161891988-12-28 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 162181988-12-27 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 162281988-12-24 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
16229
16230 * window.c (Fdelete_window): Give all this window's space
16231 to one adjacent sibling.
16232
dff28924 162331988-12-23 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 162471988-12-22 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
16248
16249 * ymakefile (obj): Include floatfns.o.
16250 * data.c (syms_of_data): Fix typo Snumberp_or_marker_p.
16251
88c71720 16252 Allow keymaps to have other keymaps as tails.
615d0182
DL
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
dff28924 162641988-12-21 Joe Arceneaux (jla@gracilis.ai.mit.edu)
615d0182
DL
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
dff28924 162711988-12-19 Joe Arceneaux (jla@apple-gunkies.ai.mit.edu)
615d0182
DL
16272
16273 * xterm.c: Finished a first cut of the X11 version.
16274
dff28924 162751988-12-18 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
16276
16277 * sysdep.c (select): `buf' is now unsigned char.
16278
dff28924 162791988-12-16 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 162851988-12-16 Joe Arceneaux (jla@apple-gunkies.ai.mit.edu)
615d0182
DL
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
dff28924 162901988-12-16 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 162951988-12-14 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 163011988-12-14 Joe Arceneaux (jla@apple-gunkies.ai.mit.edu)
615d0182
DL
16302
16303 * xfns.c: Made the first cut for X11 version.
16304 * xterm.c: (x_reset_cursor) Did the X11 version.
16305
dff28924 163061988-12-14 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 163121988-12-13 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
16313
16314 * term.c (insert_glyfs): Typo, was fetching G twice.
16315
dff28924 163161988-12-10 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 163341988-12-09 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 163391988-12-07 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
16340
16341 * editfns.c (Funix_umask, Funix_sync): New functions.
16342
16343 * process.c (Fsignal_process): New function.
16344
dff28924 163451988-12-06 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
16346
16347 * editfns.c (Fsubst_char_in_region): Fix typo in when to un-modify buf.
16348
dff28924 163491988-12-05 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 163561988-12-04 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 16381 indirect definitions--so you can search for one.
615d0182
DL
16382
16383 * alloc.c, fns.c, search.c: Doc fix.
16384
dff28924 163851988-12-01 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 163941988-11-25 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
16395
16396 * eval.c (do_autoload): Verify FUNNAME is a symbol.
16397
dff28924 163981988-11-17 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
16399
16400 * fileio.c (Fread_file_name): New arg specifies initial minibuf cntnts.
16401 * callint.c (Fcall_interactively): Calls changed.
16402
dff28924 164031988-10-08 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
16404
16405 * insdel.c (make_gap): Error if buffer size exceeds range of Lisp int.
16406
dff28924 164071988-10-06 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 164181988-10-05 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 164251988-10-04 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
16426
16427 * term.c (term_init): If have `im' capability, permit ins/del char
16428 even without `ic'.
16429
dff28924 164301988-10-03 Richard Stallman (rms@corn-chex.ai.mit.edu)
615d0182
DL
16431
16432 * m/m-hp9000s300.h: Conditionals for BSD vs HPUX.
16433
16434 * ymakefile: Look for C_SWITCH_SITE, LD_SWITCH_SITE.
16435
dff28924 164361988-09-30 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
16437
16438 * editfns.c (Fformat): Allow nulls in the format.
16439 * doprnt.c (doprnt): likewise. End of format string is new arg.
16440
dff28924 164411988-09-28 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 164521988-09-27 Richard Stallman (rms@corn-chex.ai.mit.edu)
615d0182
DL
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
dff28924 164601988-09-26 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182 16461
2a34a036 16462 * dispnew.c (baud_rate): Now a Lisp variable, not a function.
615d0182
DL
16463 * termcap.c (tputs) [emacs]: Use baud_rate as the speed.
16464
dff28924 164651988-09-19 Richard Stallman (rms@gluteus.ai.mit.edu)
615d0182
DL
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
2a34a036 16473 * xmenu.c (Fx_popup_menu): 1st arg is now ((X Y) WINDOW).
615d0182
DL
16474
16475 * process.c (child_sig): If synch process terminates, clear
16476 synch_process_pid and record synch_process_death.
2a34a036 16477 * callproc.c (Fcall_process): return synch_process_death.
615d0182
DL
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
dff28924 164821988-09-17 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
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
dff28924 164921988-09-16 Richard Stallman (rms@corn-chex.ai.mit.edu)
615d0182
DL
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
2a34a036 16502 * keyboard.c, dispnew.c, term.c, xterm.c (meta_flag): MetaFlag renamed.
615d0182
DL
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
dff28924 165081988-09-15 Richard Stallman (rms@corn-chex.ai.mit.edu)
615d0182 16509
2a34a036 16510 * search.c (Fsearch_forward, etc.): All buffer-search functions
615d0182
DL
16511 return new the value of point if they succeed.
16512
dff28924 165131988-09-13 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
16514
16515 * cmds.c (Fnewline): Correct test of ARG1 to inhibit auto-fill.
16516
dff28924 165171988-09-12 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182
DL
16518
16519 * window.c (Fdelete_window): Put nil as buffer of the deleted window.
16520 This makes select-window get an error earlier.
16521
dff28924 165221988-09-06 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
615d0182 16523
dff28924 16524 * search.c (search_buffer, string_match, looking_at):
615d0182
DL
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
16532See ChangeLog.2 for earlier changes.
2a34a036
GM
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.