(list-character-sets): Completely
[bpt/emacs.git] / src / ChangeLog
CommitLineData
ed4d0512
GM
12000-02-29 Gerd Moellmann <gerd@gnu.org>
2
3 * atimer.c (cancel_atimer): Handle canceling an atimer when
4 some timers are stopped.
5
6 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
7 after canceling it.
8
9 * fns.c (maybe_resize_hash_table): Handle case of new size
10 coming out as being the same as old size.
11
387023ee
JR
122000-02-27 Jason Rumney <jasonr@gnu.org>
13
14 * makefile.nt: Add atimer.h to dependencies.
15 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
16 * w32console.c: Only disable window system features for dispextern.h
17 (initialize_w32_display): Build a display info for the console.
18 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
19 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
20 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
21 as 2 button mice.
22 * w32gui.h (struct W32FontStruct): Revert last change after change
23 to xdisp.c.
24 * w32menu.c (single_submenu): Set up help string.
25 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
26 (w32_dialog_show): Set up help string.
27 * w32term.c (w32_display_info_for_display): Remove unused function.
28 (w32_draw_bitmap): Use pre-built bitmaps.
29 (w32_initialize_display_info): New function to initialize parts of
30 display info that are common to both GUI and console frames.
31 (w32_term_init): Use w32_initialize_display_info. Do not set
32 Vw32_num_mouse_buttons here, as it is not called for console
33 frames. Build bitmaps for indicating truncated lines etc.
34 (x_delete_display): Destroy pre-built bitmaps.
35 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
36 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
37
4516715a
DL
382000-02-27 Dave Love <fx@gnu.org>
39
40 * lisp.h: Add a bunch of prototypes.
41
171ca836
KH
422000-02-26 Kenichi Handa <handa@etl.go.jp>
43
44 * keyboard.c (read_char): Set `usec' correctly.
45
4013921d
KH
462000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
47
48 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
49 `lambda', set reg[RRR] to the map index.
50 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
51 reg[RRR] to 0. Otherwise, set it to -1.
52
9244a058
GM
532000-02-25 Gerd Moellmann <gerd@gnu.org>
54
55 * emacs.c (main): Remove code snipped commented out with `//'.
56
f43d79c1
GM
572000-02-25 Richard M. Stallman <rms@caffeine.ai.mit.edu>
58
59 * fileio.c (Ffile_symlink_p): If result starts with a `/'
60 and contains a `:', prepend `/:'.
61
62 * window.c (select_window_1): If selected_window is nil,
63 don't "swap out" the buffer's point.
64 (Fset_window_configuration): Set selected_window to nil
65 before calling Fselect_window.
66 (unshow_buffer): Don't set point in buffer from window's point
67 if another more recently selected window also shows the buffer.
68
bed0c171
GM
692000-02-25 Gerd Moellmann <gerd@gnu.org>
70
449c3c52
GM
71 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
72
f5b58615
GM
73 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
74 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
75 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay): New
76 variables.
77 (DEFAULT_BUSY_CURSOR_DELAY): New define.
78 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
79 (hide_busy_cursor): New functions.
80 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
81
82 * minibuf.c (read_minibuf): Cancel busy-cursor.
83
84 * keyboard.c (command_loop_1): Call start_busy_cursor before
85 Fcommand_execute and cancel_busy_cursor after it.
86 (timer_check): Remove busy-cursor code.
87 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
88 cursor timer.
89
90 * process.c (wait_reading_process_input): Remove busy-cursor code.
91
92 * eval.c (Fsignal): Call cancel_busy_cursor instead of
93 Fx_hide_busy_cursor.
94
95 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
96 Remove prototyoes.
97 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
98
99 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
100
101 * xterm.c (XTread_socket): Remove busy-cursor code.
102
4eb8436f
GM
103 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
104 (build_frame_matrix_from_leaf_window): Put code handling
105 glyph row's not being a slice of a frame row in #if 0.
106 (sync_window_with_frame_matrix_rows): New function.
107 (frame_row_to_window): New function.
108 (mirror_line_dance): Handle copies between windows.
109
3cb65b0e
GM
110 * lread.c (Fload): Use `xfree' instead of `free'.
111 (init_obarray): Use `xmalloc' instead of `malloc'.
112
bed0c171
GM
113 * window.c (Fset_window_buffer): Set WINDOW to the window
114 after decoding.
2add4349
GM
115 (coordinates_in_window): Take frame's internal border width
116 into account.
bed0c171 117
42088c12
GM
1182000-02-24 Gerd Moellmann <gerd@gnu.org>
119
120 * xterm.c (x_display_and_set_cursor): Display cursor of
121 non-selected windows depending on the setting of
122 cursor_in_non_selected_windows.
123
124 * xdisp.c (cursor_in_non_selected_windows): New variable.
125 (syms_of_xdisp): DEFVAR_BOOL it.
126
d1e103b2
GM
1272000-02-23 Gerd Moellmann <gerd@gnu.org>
128
723e779c
GM
129 * data.c (Fstring_to_number): If number is greater than what
130 fits into an integer, return a float.
131
d1e103b2
GM
132 * eval.c (specbind): Remove references to
133 keyword_symbols_constant_flag.
134
135 * data.c (keyword_symbols_constant_flag): Removed.
136 (Fmakunbound, set_internal, syms_of_data): Remove references to
137 keyword_symbols_constant_flag.
138
139 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
140
214f877f
KH
1412000-02-23 Kenichi Handa <handa@etl.go.jp>
142
143 * syntax.c (multibyte_syntax_as_symbol): New variable.
144 (syms_of_syntax): Declare it as a Lisp variable.
145 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
146 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
147 nonzero, treat all multibyte characters as symbol.
42088c12 148 (init_syntax_once): Give syntax `word' to all multibyte
214f877f
KH
149 characters.
150
130adcb7
EZ
1512000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
152
3cb65b0e 153 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
130adcb7
EZ
154 a deleted frame.
155
17cbbf95
GM
1562000-02-21 Gerd Moellmann <gerd@gnu.org>
157
158 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
159
160 * xfns.c (x_window_to_frame, x_any_window_to_frame)
161 (x_non_menubar_window_to_frame): Check the busy-cursor window.
162
beb0bc36
DL
1632000-02-21 Dave Love <fx@gnu.org>
164
165 * frame.c (Vmouse_position_function): New variable.
166 (Fmouse_position): Use it.
167 (syms_of_frame): Install it.
168
169 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
170
1d92afcd
GM
1712000-02-20 Gerd Moellmann <gerd@gnu.org>
172
173 * fileio.c (Finsert_file_contents): Unbind the binding of
174 standard-output done by temp_output_buffer_setup.
329eed9f
GM
175
176 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
177 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
178 (specbind, unbind_to): Handle most common case of non-constant
179 symbol with trivial value specially.
180
181 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
182
2d06696f
RS
1832000-02-20 Richard M. Stallman <rms@caffeine.ai.mit.edu>
184
185 * data.c (Fmake_variable_buffer_local): Doc fix.
186 Init found_for_buffer to 0.
187 (Fmake_variable_frame_local): If the variable has already
188 been buffer-local, set the check_frame field.
189
1d4311c3
EZ
1902000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
191
192 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
193 produced for CODING_MODE_LAST_BLOCK requires.
194
2dc95ddd
DL
1952000-02-18 Dave Love <fx@gnu.org>
196
197 * keyboard.c (echo_keystrokes): Remove declaration.
198 (Vecho_keystrokes) New variable.
199 (read_char, record_menu_key, read_key_sequence): Use it to allow
200 use of float value.
201 (syms_of_keyboard): Change Vecho_keystrokes declaration.
202
203 * lread.c: Undef feature selection macros before defining.
204
f0930f35
GM
2052000-02-18 Gerd Moellmann <gerd@gnu.org>
206
207 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
208 for symbols other than the symbol in question.
209
e3d4de90
DL
2102000-02-17 Dave Love <fx@gnu.org>
211
212 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
213
0b378936
GM
2142000-02-17 Gerd Moellmann <gerd@gnu.org>
215
d621caf7
GM
216 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
217
0b378936
GM
218 * alloc.c (enum mem_type): Compile unconditionally.
219
3b451f74
EZ
2202000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
221
222 * xfaces.c (tty_defined_color): Don't return faulire indication
223 for unspecified-fg and unspecified-bg pseudo-colors.
224
10689a01
GM
2252000-02-17 Gerd Moellmann <gerd@gnu.org>
226
1216f5e4
GM
227 * alloc.c (mark_object): Don't mark symbol names in pure space.
228 (gc_sweep): Don't unmark symbol names in pure space.
229
230 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
231 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
232 [GC_MARK_STACK]: New defines.
233 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
234 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
235
236 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
237
238 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
239 allocate_buffer instead of xmalloc.
240
241 * alloc.c (toplevel): Include setjmp.h.
242 (PURE_POINTER_P): New define.
243 (enum mem_type) [GC_MARK_STACK]: New enumeration.
244 (Vdead) [GC_MARK_STACK]: New variable.
245 (lisp_malloc): Add parameter TYPE, call mem_insert if
246 GC_MARK_STACK is defined.
247 (allocate_buffer): New function.
248 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
249 (free_float) [GC_MARK_STACK]: Set type to Vdead.
250 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
251 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
252 (MEM_NIL) [GC_MARK_STACK]: New define.
253 (struct mem_node) [GC_MARK_STACK]: New structure.
254 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
255 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
256 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
257 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
258 (mark_stack) [GC_MARK_STACK]: New functions.
259 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
260 (clear_marks): Removed.
261 (gc_sweep): Set free conses' car, free floats' type, free
262 symbols' function to Vdead. Use lisp_free to free buffers.
263 (init_alloc_once): Initialize Vdead.
264 (survives_gc_p): Return non-zero for pure objects.
265
266 * alloc.c: Add comments throughout the file.
267
2503c8b1
GM
268 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
269 that unblocks alarms.
270
8389e1e2
GM
271 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
272 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
273 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
274
10689a01
GM
275 * frame.c (make_frame): Set frame initiallly to `garbaged'.
276
bfc17d18
KH
2772000-02-17 Kenichi Handa <handa@etl.go.jp>
278
4a09dee0
KH
279 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
280 avoid infinite error signaling. Allocate sufficient memory for
281 eol_str in the case that eoltype is Lisp_Int.
bfc17d18 282
2b927d02
SM
2832000-02-17 Stefan Monnier <monnier@cs.yale.edu>
284
285 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
286 depends on the previous behavior.
287
b49cb764
GM
2882000-02-16 Gerd Moellmann <gerd@gnu.org>
289
290 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
291
99e95407
GM
2922000-02-15 Gerd Moellmann <gerd@gnu.org>
293
294 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
295
296 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
b49cb764 297 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
99e95407
GM
298 write(2).
299
6ffd3cf7
RS
3002000-02-15 Richard M. Stallman <rms@gnu.org>
301
302 * data.c (set_internal): Don't make variable buffer-local
303 if within a let-binding for the same buffer.
304 (let_shadows_buffer_binding_p): New function.
305
306 * eval.c (specbind): For buffer-local value,
307 record the current buffer also.
308 (unbind_to): Cope with that change.
309
cad53475
GM
3102000-02-15 Gerd Moellmann <gerd@gnu.org>
311
312 * window.c (Fsave_window_excursion): Doc fix.
313
1aa963c8
SM
3142000-02-15 Stefan Monnier <monnier@cs.yale.edu>
315
316 * syntax.c (back_comment): Make sure we only consider comment-starters
317 of the relevant style and return -1 in case of a failure to find the
318 beginning of the comment.
319 (Fforward_comment): If back_comment fails, go back to the position just
320 after the comment-end.
321 (scan_lists): Add comment describing a very minor bug.
322
b9b84fd3
SM
3232000-02-14 Stefan Monnier <monnier@cs.yale.edu>
324
325 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
326 `completion-regexp-list' in the docstring.
327
3a28db80
DL
3282000-02-14 Dave Love <fx@gnu.org>
329
330 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
331
fb4a568d
SM
3322000-02-14 Stefan Monnier <monnier@cs.yale.edu>
333
334 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
335 to Emacs' syntax. Also fix the comment about set/not-set meanings
336 since Emacs syntax is not the value 0 any more.
337 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
338 since it's now part of RE_SYNTAX_EMACS.
339
1063ebb5
DL
3402000-02-12 Dave Love <fx@gnu.org>
341
342 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on
343 Alpha.
344
fb07a302
GM
3452000-02-12 Gerd Moellmann <gerd@gnu.org>
346
347 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
348
aaf2320c
DL
3492000-02-12 Dave Love <fx@gnu.org>
350
351 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
352
353 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
fb07a302
GM
354 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
355 * s/hpux.h: Don't define HAVE_VFORK.
aaf2320c
DL
356
357 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
358
359 * s/nextstep.h: Don't define HAVE_ALLOCA.
360
361 * config.in: Add vfork bits.
362
eedf8bde
GM
3632000-02-12 Gerd Moellmann <gerd@gnu.org>
364
365 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
366 unwind function to undo the effect of stopping atimers.
367
368 * keyboard.c (bind_polling_period): Stop all timers except
369 poll_timer.
370
371 * atimer.c (stopped_atimers): New variable.
372 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
373 New functions.
374
375 * atimer.h (stop_other_atimers, run_all_atimers)
376 (unwind_stop_other_atimers): Add function prototypes.
377
378 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
379
8476c2f8
KR
3802000-02-11 Ken Raeburn <raeburn@gnu.org>
381
382 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
383 library may depend on jpeg.
384 (atimer.o): Depends on atimer.c.
385
0e85e4a3
KH
3862000-02-11 Kenichi Handa <handa@etl.go.jp>
387
388 * insdel.c (del_range_1): Call update_compositions.
389 (del_range_both): Call update_compositions just once..
390
97fa0cc8
DL
3912000-02-10 Dave Love <fx@gnu.org>
392
393 * xfns.c (create_frame_xic): Fix initialization of automatic
394 aggregates for pcc.
395
25566a3c
KH
3962000-02-09 Kenichi Handa <handa@etl.go.jp>
397
398 * ccl.c (CCL_MAKE_CHAR): New macro.
399 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
400 registers by CCL_MAKE_CHAR before calling translate_char.
401 <CCL_TranslateCharacterConstTbl> Likewise.
402
69da54ba
DL
4032000-02-08 Dave Love <fx@gnu.org>
404
405 * lread.c (__EXTENSIONS__): Define.
406
f7136ee8
GM
4072000-02-08 Gerd Moellmann <gerd@gnu.org>
408
409 * puresize.h (BASE_PURESIZE): Increase to 650000.
410
7768790b
EZ
4112000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
412
413 * msdos.c (XMenuActivate): Turn off the cursor after displaying
414 the help message.
415
38fd211b
EZ
4162000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
417
418 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
419 md, mh, mb, mr, and me to the fake termcap entry.
420
66e4690f
KR
4212000-02-06 Ken Raeburn <raeburn@gnu.org>
422
423 * sound.c (sound_cleanup): Don't call device close routine if the
424 function pointer is null.
425
a75dfea0
AI
4262000-02-06 Andrew Innes <andrewi@gnu.org>
427
428 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
429 around image definitions and prototypes.
430 (gamma_correct) [WINDOWSNT]: New prototype.
431
432 * w32term.c (x_make_frame_visible): Replace call to
433 input_poll_signal with poll_for_input.
434
435 * window.c [WINDOWSNT]: Include w32term.h.
436
437 * xdisp.c [WINDOWSNT]: Include w32term.h.
438
439 * makefile.nt: Add dependencies on w32gui.h.
440 (OBJ1): Include atimer.obj.
441 ($(BLD)\atimer.obj): New dependency rule.
442
443 * w32.c (sigmask): New function (does nothing).
444 (sigunblock): Ditto.
445
446 * frame.c [WINDOWSNT]: Include w32term.h.
447
448 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
449
450 * lread.c (syms_of_lread): Fix literal newlines.
451
452 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
453 the string constant limit (2048 bytes) in MSVC.
454 (main): Ditto.
455
59ddecde
GM
4562000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
457
458 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit
459 area.
460 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
461 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
462 dispatch the event.
463
07590973
DL
4642000-02-04 Dave Love <fx@gnu.org>
465
466 * fileio.c: Remove some unused vars.
467 (_GNU_SOURCE): Define (for euidaccess).
468
469 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
470
471 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
472 gcpro1, gcpro2.
473 (read_minibuf): Deal with allow_props correctly.
474
649351f9
EZ
4752000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
476
477 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
478
66e4690f 4792000-02-03 Ken Raeburn <raeburn@gnu.org>
f1b9c7c1
KR
480
481 * search.c (compile_pattern): If a cache entry has a nil regexp,
482 fill in that entry instead of clobbering a previously cached
483 string regexp.
484
66e4690f 4852000-02-02 Ken Raeburn <raeburn@gnu.org>
15c9cf81
KR
486
487 * puresize.h (BASE_PURESIZE): Increase to 610000.
488
d240a249
GM
4892000-02-02 Gerd Moellmann <gerd@gnu.org>
490
491 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
492 can GC.
493
ca91fb26
KH
4942000-02-02 Kenichi Handa <handa@etl.go.jp>
495
25660570
KH
496 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
497 instead of incrementing ic directly.
498 <CCL_WriteExprConst> Likewise.
499 <ccl_set_expr>: Set ic to jump_address.
500
ca91fb26
KH
501 * fileio.c (e_write): Fix the handling of
502 CODING_FINISH_INSUFFICIENT_SRC.
503
2ede9689
DL
5042000-02-01 Dave Love <fx@gnu.org>
505
506 * editfns.c (Fpropertize): Doc fix.
507
508 * process.c (Fstart_process): Doc fix.
509
510 * eval.c: Fix various doc strings not to duplicate information
511 from help-manyarg-func-alist.
512
513 * window.c (Fset_window_margins): Don't make interactive. Doc
514 fix.
515
516 * doc.c (Vhelp_manyarg_func_alist): New variable.
517 (Fdocumentation): Use it.
518 (syms_of_doc): Define it.
519
b6680a0e
GM
5202000-01-31 Gerd Moellmann <gerd@gnu.org>
521
2cb750ba
GM
522 * xterm.c (xim_open_dpy): Remove unused local variable.
523
74e9213b
GM
524 * emacs.c (USAGE): Use term `display options' instead of `X
525 options'.
526
527 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
528 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
529
b6680a0e
GM
530 * fns.c (sweep_weak_table): New function.
531 (sweep_weak_hash_tables): Use it. Keep on marking until there
532 is no more change.
533
994c5afe
GM
5342000-01-30 Gerd Moellmann <gerd@gnu.org>
535
536 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
537 that XTread_socket does not crash by trying to call XNoOp on a
538 closed display.
539
f00276e3
JR
5402000-01-30 Jason Rumney <jasonr@gnu.org>
541
542 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
543 Change selected_frame to SELECTED_FRAME ().
544 (w32_console_mouse_position): Remove #ifndef MULE from around
545 `insist' parameter.
546
547 * makefile.nt: Remove dosfns.obj.
548
549 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
550
551 * w32fns.c (w32_defined_color): Check for valid frame before
552 applying gamma correction. Eliminate dependency on frame elsewhere.
553 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
554 (w32_to_x_font): Use resx and resy not height_in and width_in.
555 (x_to_w32_font): Doc fix.
556 (xlfd_strip_height): New function to strip and return font height.
557 (w32_font_match): Compare height separately from rest of xlfd
558 spec, using xlfd_strip_height.
559
560 * w32term.c (w32_term_init): Swap resx and height_in, resy and
561 width_in. Use w32_defined_color in place of defined_color.
562
563 * w32faces.c: Merge more of DOS and X specifics in preparation for
564 merge with xfaces.c.
565 (defined_color): Remove FIXME comment.
566 (tty_color_name): Provide w32-specific function.
567 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
568
569 * w32console.c (turn_on_face, turn_off_face): Removed.
570 (w32_face_attributes): New function.
571 (Global_variables): Reduce scope where possible.
572 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
573 fill attribute.
574 (hl_mode): Don't modify text attributes.
575 (write_glyphs): Don't do anything if len <= 0. Use
576 w32_face_attributes to get attributes for drawing. Write
577 terminating codes using char_attr_normal.
578 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
579 (update_begin, update_end): Likewise.
580 (vga_stdcolor_name): New function.
581 (initialize_w32_display): Remove char_attr_reverse and char_attr.
582 (Fset_screen_color): Remove char_attr_reverse.
583
b08e8bb2
GM
5842000-01-29 Gerd Moellmann <gerd@gnu.org>
585
586 * xfns.c (xic_set_preeditarea): Take window parameter and
587 window-relative pixel-positions.
588
589 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
590 is its frame's selected window.
591 (xim_instantiate_callback): Likewise.
592
593 * xfns.c (x_create_im): Removed.
594 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
595 (supported_xim_styles): Renamed from supported_styles.
596 (best_xim_style): Renamed from best_style.
597 (create_frame_xic): Renamed from xic_create_frame.
598 (free_frame_xic): Renamed from xic_destroy_frame.
599
6002000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
601
602 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
603 our frames, call XFilterEvent with 2nd parameter `None'.
604 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
605 returning XBufferOverflow.
606 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status
607 area.
608 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
609 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
610 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
611 (xim_initialize, xim_close)
612 [HAVE_X_I18N && HAVE_X11R6]: New functions.
613 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
614 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
615 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
616
617 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
618 and `xim_styles'.
619 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
620 `xic_style' and `xic_xfs'.
621 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
622 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
623 (FRAME_XIM): Removed.
624
625 * xfns.c (supported_styles): New variable.
626 (DEFAULT_STYLE, DEFAULT_FONT): New macros
627 (xic_create_xfontset, best_style, xic_create_frame)
628 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
629 (xic_set_xfontset): New functions.
630
142e109c
DL
6312000-01-28 Dave Love <fx@gnu.org>
632
633 * s/irix6-5.h: Revert last change after change to irix5-0.h.
634
635 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
636
b02786f9
GM
6372000-01-28 Gerd Moellmann <gerd@gnu.org>
638
d060bc9f
GM
639 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
640 for *scratch* if it already existed.
641
b02786f9
GM
642 * emacs.c (USAGE): New macro.
643 (main): Use it to display usage information.
644
2c52d7e4
EZ
6452000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
646
647 Support for the menu-help feature:
648
649 * msdos.h: Change prototypes of XMenuAddSelection and
650 XMenuActivate.
651
652 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
653 part of the line to the termscript file.
654 (IT_clear_to_end): Clear the entire line, not just its beginning.
655 (menu_help_message, prev_menu_help_message): New variables.
656 (IT_menu_make_room): Make room for the help_text member.
657 (IT_menu_display): New argument disp_help; all callers changed.
658 If disp_help is non-zero, store the help text of the active menu
659 item in menu_help_message.
660 (XMenuAddPane): Initialize the help_text member to NULL.
661 (XMenuAddSelection): New argument help_text. Store it in the
662 XMenu structure.
663 (XMenuActivate): New argument help_callback. If the value of
664 menu_help_message has changed since the last time, display the
665 menu help message text while waiting for the mouse to move. Clear
666 the echo area before exiting.
667 (XMenuDestroy): Free the help_text member.
668
ffe0bcd1
GM
6692000-01-27 Gerd Moellmann <gerd@gnu.org>
670
671 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
672 XMenuAddSelection. Pass help callback to XMenuActivate.
673 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
674
50dbd23f
EZ
6752000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
676
677 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
678 and EMACS_SET_USECS.
679
f5941bf8
GM
6802000-01-26 Dave Love <fx@gnu.org>
681
6c67ddee
DL
682 * editfns.c (Fchar_after, Fchar_before): Doc fix.
683
f5941bf8
GM
684 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
685 an error may be signalled.
686
9e49c990
GM
6872000-01-26 Gerd Moellmann <gerd@gnu.org>
688
fc3cb460
GM
689 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
690 LD_SWITCH_SYSTEM inherited from irix5-0.h.
691
9e49c990
GM
692 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
693
d0c037d8
GM
6942000-01-25 Gerd Moellmann <gerd@gnu.org>
695
696 * charset.c (Fstring): If there is a multibyte char among
697 the args, always return a multibyte string.
698
e12489f9
GM
6992000-01-25 Gerd Moellmann <gerd@gnu.org>
700
701 * sysdep.c (sys_select): Turn atimers off and on instead of
702 recording and restoring old alarm handler
703
704 * process.c (toplevel): Include atimer.h.
705 (create_process_1): Rewritten.
706 (create_process): Use atimers instead of alarm.
707 (wait_reading_process_input) [hpux]: Turn atimers off instead
708 of turning off SIGALRM.
709 (wait_reading_process_input): Turn off atimers instead off
710 calling stop_polling.
711
712 * emacs.c (main): Call init_atimer.
713
714 * keyboard.c (toplevel): Include systime.h and atimer.h.
715 (polling_for_input): Removed because unused.
716 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
717 (poll_timer): New variable.
718 (poll_for_input, poll_for_input_1): New functions.
719 (start_polling, stop_polling): Rewritten.
720
721 * keyboard.h (polling_for_input): Removed.
722
723 * atimer.h, atimer.c: New files.
724
725 * Makefile.in (obj): Add atimer.o.
726 (atimer.o): New target.
727
728 * blockinput.h (pending_atimers): Add extern declaration.
729 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
730
731 * lisp.h (popup_activated_flag): Add extern declaration.
732
733 * xmenu.c (popup_activated_flag): Make externally visible.
734 (popup_activate_callback) [USE_MOTIF]: Increment
735 popup_activated_flag.
736 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
737
738 * xterm.c (toplevel): Include atimer.h.
739 (toolkit_scroll_bar_interaction): New variable.
740 (Fxt_process_timeouts): Removed.
741 (x_process_timeouts): New function.
742 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
743 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
744 (x_make_frame_visible): Call poll_for_input_1 instead of
745 input_poll_signal. Don't call alarm.
746 (x_initialize): Install timer calling x_process_timeouts.
747
1e5279b9
DL
7482000-01-24 Dave Love <fx@gnu.org>
749
6c67ddee 750 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
1e5279b9
DL
751 Don't use -cckr -- apparently not now necessary.
752
edf6aeb8
EZ
7532000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
754
755 * msdos.c (IT_menu_display): Truncate long menu lines at the right
756 screen boundary.
757
9badad41
JR
7582000-01-23 Jason Rumney <jasonr@gnu.org>
759
760 * w32fns.c (w32_defined_color): Apply gamma correction before
761 trying to map to the palette.
762 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
763 to w32_clear_rect.
764
765 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
766 here. Callers changed to always pass real device context.
767 (w32_draw_bitmap): Likewise.
768 (w32_get_glyph_overhangs): Likewise.
769 (w32_draw_box_rect): Make use of s->hdc rather than getting a new
770 one.
771 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
772 pfnSetScrollInfo and SetScrollRange.
773 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
774 back into MULE characters after decoding them.
775 (x_get_glyph_face_and_encoding): Likewise.
776 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
777 GetCharABCWidthsW fails, since this is defined on Windows 9x.
778 (x_produce_glyphs): Calculate per char metrics for a character
779 that we know exists in default font when font_not_found_p is true.
780
63bd786b
JR
7812000-01-22 Jason Rumney <jasonr@gnu.org>
782
783 * makefile.nt (intervals.obj, composite.obj): New modules.
784 (composite.h): Added as dependency where appropriate.
785
786 * w32gui.h (XGCValue): New struct for emulating X GCs.
787
788 * w32term.h (XCharStruct): New struct for emulating X.
789
790 * w32console.c (turn_on_face, turn_off_face): New functions.
791 (change_line_highlight): New prototype for new redisplay.
792 (write_glyphs): Support multibyte text. Support faces.
793
794 * w32faces.c: Complete rewrite for new redisplay based on new
795 xfaces.c.
796
797 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
798 throughout. struct frame * in place of FRAME_PTR.
799 Skeleton support for images, toolbars, tooltips from xfns.c.
800 (Fx_create_frame): Use system default for default scroll bar
801 width.
802 (w32_get_arg): Renamed from x_get_arg.
803 (Fx_file_dialog): New function.
804 (w32_list_fonts): Check cache before asking system.
805 (Vw32_enable_synthesized_fonts): New variable.
806 (Vw32_enable_italics): Obsolete, removed.
807
808 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
809 Use SELECTED_FRAME macro.
810
811 * w32menu.c: Add skeleton support for help strings on menus.
812 (add_menu_item): Native checkbox and radio support added, but not
813 yet enabled due to bugs.
814 (push_menu_item): Add parameters type, selection and help.
815 Callers updated.
816 Formatting changes to reduce unnecessary diffs with xmenu.c.
817
818 * w32select.c (Fw32_set_clipboard_data): Update call to
819 find_charset_in_str.
820
821 * w32term.c: Complete rewrite for new redisplay based on new
822 xterm.c with necessary sections merged back in from old w32term.c.
823
6ffd3cf7 8242000-01-21 Richard M. Stallman <rms@gnu.org>
b50c9214
RS
825
826 * data.c (set_internal): Further fix in same criterion.
827
6ffd3cf7 8282000-01-20 Richard M. Stallman <rms@gnu.org>
8cc95642
RS
829
830 * data.c (set_internal): Fix the criteria for whether
831 to swap out the old cached binding.
832
60af03f1
DL
8332000-01-19 Dave Love <fx@gnu.org>
834
835 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
836
f9be074f
KH
8372000-01-18 Kenichi Handa <handa@etl.go.jp>
838
839 * regex.c (re_compile_fastmap): While checking a range table for
840 `charset', skip flag bits for a character class correctly.
841
52b8dbf9
GM
8422000-01-17 Gerd Moellmann <gerd@gnu.org>
843
d36100c9
GM
844 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
845
52b8dbf9
GM
846 * xfns.c (x_window): Call lw_create_widget with new parameter
847 list.
848
849 * widget.c (EmacsFrameSetCharSize): Change size of children first
850 because of problems with main window geometry management under
851 Lesstif.
852
853 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
854 MENU_ITEMS_ITEM_.*.
855 (MENU_ITEMS_ITEM_HELP): New enumerator.
856 (push_menu_item): Add parameter HELP. Record help in menu_items.
857 (single_menu_item, single_submenu, list_of_items): Call
858 push_menu_item with new parameter.
859 (single_submenu): Set help string in widget value.
860 (menu_highlight_callback): New function.
861 (set_frame_menubar): Call lw_create_widget with new
862 parameter list.
863 (xmenu_show, xdialog_show): Ditto.
864
3139018f
GM
8652000-01-13 Gerd Moellmann <gerd@gnu.org>
866
867 * sound.c (Fplay_sound): Improve doc string.
868
83c8f461
RS
8692000-01-11 Richard M. Stallman <rms@gnu.org>
870
871 * lisp.h (set_internal): Enter the new arg.
872
873 * eval.c (specbind): Record buffer-local variables specially,
874 indicating which buffer's binding was saved.
875 (unbind_to): Restore buffer-local variables specially
876 in the proper buffer.
877
878 * data.c (set_internal): New arg BUF.
879
880 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
881 * data.c (Fset): Pass new arg to set_internal.
882 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
883
1fab1775
GM
8842000-01-11 Gerd Moellmann <gerd@gnu.org>
885
886 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload,
887 xprintsym.
888
83c8f461 8892000-01-11 Richard M. Stallman <rms@gnu.org>
6f59462e
RS
890
891 * minibuf.c (Ftry_completion): Doc fix.
892
7a85e4df
GM
8932000-01-11 Gerd Moellmann <gerd@gnu.org>
894
895 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
896 vector, too.
897
a970dae4
AS
8982000-01-11 Andreas Schwab <schwab@suse.de>
899
900 * coding.c (code_convert_region): Initialize total_skip.
901
c65d14ee
DL
9022000-01-08 Dave Love <fx@gnu.org>
903
904 * eval.c (Fuser_variable_p): Check customizability too.
905
834938d2
GM
9062000-01-07 Gerd Moellmann <gerd@gnu.org>
907
908 * minibuf.c (Fcompleting_read): Doc fix.
909
e0303cd6
GM
9102000-01-05 Gerd Moellmann <gerd@gnu.org>
911
8a26744b
GM
912 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
913 -L /usr/local/lib.
914
e0303cd6
GM
915 * xfns.c (x_create_im): New function to set IM and IC of a frame.
916 Check that input style is supported before trying to create an
917 IC for it.
918 (x_window): Call x_create_im.
919
2e471eb5
GM
9202000-01-04 Gerd Moellmann <gerd@gnu.org>
921
560a7bd2
GM
922 * xfns.c (current_gif_memory_src): New variable.
923 (gif_load): Record the address of the current memory source
924 in current_gif_memory_src.
925 (gif_read_from_memory): Use current_gif_memory_src.
926
f9ee84a3
GM
927 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
928 macros statement form.
929
d1299cde
GM
930 * sound.c (struct sound): Renamed from struct sound_file.
931 (struct sound): Add members `data' and `header_size'.
932 (enum sound_attr): Add SOUND_DATA.
933 (current_sound, current_sound_device): Variables renamed from
934 sound_file and sound_device.
935 (parse_sound): Parse :data.
936 (parse_sound): Handle sound data in strings.
937 (find_sound_type): Function renamed from find_sound_file_type.
938 (wav_init, au_init): Fail if sound's header_size is smaller than
939 needed header size.
940 (wav_play, au_play): Play sounds from string data.
941
2e471eb5
GM
942 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
943
944 * lisp.h: Add prototype for allocate_string_data.
945
946 * alloc.c (Fgarbage_collect): Return number of live and free
947 strings.
948
949 * alloc.c (mark_buffer): Remove code in #if 0.
950 (gc_sweep): Ditto.
951 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
952 (strings_consed): New variable.
953 (allocate_string): Set it.
954 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
955 (Fmemory_use_counts): Return strings_consed. Use Flist.
956
957 * alloc.c: General cleanup in comments etc. Remove conditional
958 compilation for `standalone'.
959
960 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
961
962 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
963 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
964 (DONT_COPY_FLAG): Removed.
965 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
966 (struct sdata, struct sblock): New
967 (struct string_block): Rewritten.
968 (STRINGS_IN_STRING_BLOCK): New macro.
969 (oldest_sblock, current_sblock, total_strings, total_free_strings)
970 (large_sblocks, string_blocks, string_free_list): New variables.
971 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
972 (init_strings): Rewritten.
973 (allocate_string, allocate_string_data, compact_small_strings)
974 (free_large_strings, sweep_strings): New functions.
975 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
976 (struct string_block_head, current_string_block)
977 (first_string_block, large_string_blocks, STRING_FULLSIZE)
978 (STRING_PAD): Removed.
979 (make_uninit_multibyte_string, make_pure_string): Rewritten.
980 (Fgarbage_collect): Don't set mark bit in large strings.
981 (mark_object): Mark strings differently. Mark symbol names
982 differently.
983 (survives_gc_p): Test marked strings differently.
984 (gc_sweep): Sweep strings differently, unmark strings in
985 symbol names.
986 (compact_strings): Removed.
987
42608ba8
EZ
9882000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
989
990 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
991 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
992
e0a09e1a
KH
9932000-01-04 Kenichi Handa <handa@etl.go.jp>
994
dd9f0750
KH
995 * fileio.c (Finsert_file_contents): Signal error if visiting file
996 in a non-empty buffer.
997
3c0f3b15 998 * term.c (encode_terminal_code): Fix the previous change.
e0a09e1a 999
44cd3ae5
GM
10002000-01-03 Gerd Moellmann <gerd@gnu.org>
1001
1002 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
1003 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
1004
1005 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
1006
c182a70f
EZ
10072000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
1008
1009 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
1010 need to test for MSDOS frames.
1011
24480d5b
EZ
10122000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
1013
1014 * dosfns.c (unspecified_colors): Remove.
1015 (msdos_stdcolor_idx): Use global variables unspecified_fg and
1016 unspecified_bg.
1017 (msdos_stdcolor_name): Return strings for unspecified fore- and
1018 back-ground colors.
1019
1020 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
aaf2320c 1021 (syms_of_xfaces): Remove their staticpro's.
24480d5b
EZ
1022 (tty_color_name): Return Lisp strings for unspecified fore- and
1023 back-ground colors.
1024 (Finternal_set_lisp_face_attribute): Remove the special treatment
1025 for Qunspecified_{f,b}g.
1026 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp
1027 string.
1028
047f434a
GM
10292000-01-03 Gerd Moellmann <gerd@gnu.org>
1030
1031 * xdisp.c (reseat_at_next_visible_line_start): Position before
1032 newline only if ending up on a newline.
1033 (next_element_from_ellipsis): Return success. Handle case of
1034 displaying no ellipsis. Fix case of ellipsis defined in display
1035 table.
1036 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
1037 returns 0.
1038
d684c676
EZ
10392000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
1040
1041 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
1042 (Fcolor_supported_p): Renamed from face-color-supported-p.
1043
5fe1d139
EZ
10442000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
1045
1046 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
1047 list of colors renamed to tty-defined-color-alist.
1048 (tty_color_name): Pass the frame to tty-color-by-index.
1049 (realize_tty_face): tty-color-alist is now a function which
1050 accepts the frame as argument.
1051
1052 * term.c (Ftty_display_color_p): Accept an optional argument
1053 FRAME.
1054
816be8b8
EZ
10552000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
1056
1057 * term.c (insert_glyphs): Pass glyph, not &glyph, to
1058 encode_terminal_code.
1059
b635321e
EZ
10602000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
1061
1062 * dispnew.c (mode_line_string): Support termcap frames as well.
1063
9b784e96
GM
10642000-01-01 Gerd Moellmann <gerd@gnu.org>
1065
27189709
GM
1066 * syntax.c (Fforward_word): Undo previous change.
1067
1068 * editfns.c (Fconstrain_to_field): Don't constrain if
1069 inhibit-field-text-motion is non-nil.
1070 (Fline_beginning_position): Undo previous change.
1071 (Fline_end_position): Ditto.
1072
1073 * syntax.c (Fforward_word): Notice field boundaries only if
1074 inhibit-field-text-motion is nil.
1075
1076 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
1077
1078 * editfns.c (Vinhibit_field_text_motion): New variable.
1079 (inhibit-field-text-motion): New DEFVAR_LISP.
1080 (Fline_beginning_position, Fline_end_position): Notice field
1081 boundaries only if inhibit-field-text-motion is nil.
1082
45158a91
GM
1083 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
1084 All calls adjusted.
1085 (x_build_heuristic_mask): Likewise.
1086 (xbm_load_image_from_file): Change error output.
1087 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
1088 (gif_load, gs_load, x_kill_gs_process): Ditto.
1089
9b784e96
GM
1090 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
1091 color indices when accessing raster pixels.
63cec32f
GM
1092 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
1093 one of :file or :data.
1094 (enum pbm_keyword_index): Add PBM_DATA.
1095 (pbm_format): Add :data.
1096 (pbm_image_p): Allow either :file or :data.
1097 (pbm_read_file): New function.
1098 (pbm_scan_number): Rewritten to read from string.
1099 (pbm_load): Support :data.
9b784e96 1100
5ad6a5fb
GM
11011999-12-31 Gerd Moellmann <gerd@gnu.org>
1102
1103 * xfns.c: New image functions adapted to Emacs conventions.
1104 (png_load, tiff_load, jpeg_load, gif_load): Always GCPRO local
1105 variable `file'.
1106
63448a4d
WP
11071999-12-31 William M. Perry <wmperry@aventail.com>
1108
1109 * xfns.c (jpeg_format): Added the :data keyword
1110 (jpeg_image_p): JPEG is valid with :file _or_ :data
1111 (jpeg_memory_src): Defined new JPEG image source to read from a
1112 memory buffer.
1113 (jpeg_load): Pay attention to the :data keyword if specified.
1114 Instantiates a jpeg_memory_src instead of jpeg_stdio_src if
1115 found.
1116 (png_format): Added the :data keyword
1117 (png_image_p): PNG is valid with :file _or_ :data
1118 (png_read_from_memory): New PNG read function to read from a
1119 memory buffer.
1120 (png_load): Pay attention to the :data keyword if specified. Uses
1121 png_set_read_fn() instead of png_init_io() if specified.
1122 (tiff_format): Added the :data keyword for TIFF images.
1123 (tiff_image_p): TIFF is valid with :file _or_ :data
1124 (tiff_read_from_memory): Defined new TIFF I/O functions to read
1125 from a memory buffer.
1126 (tiff_load): Pay attention to the :data keyword if specified.
1127 Uses TIFFClientOpen() instead of TIFFOpen() if specified.
1128 (gif_format): Added the :data keyword
1129 (gif_image_p): GIF is valid with :file _or_ :data
1130 (gif_read_from_memory): New GIF input function to read from a
1131 memory buffer.
c65d14ee 1132 (gif_load): Pay attention to the :data keyword. Uses DGifOpen()
63448a4d
WP
1133 instead of DGifOpenFileName() if specified.
1134
c880678e
GM
11351999-12-31 Gerd Moellmann <gerd@gnu.org>
1136
1137 * xdisp.c (next_element_from_buffer): Change assertion at the end
1138 because it doesn't hold when there's an overlay string at the end
1139 from which we deliver an image.
1140
8ccb9a54
EZ
11411999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
1142
1143 * msdos.c (IT_update_begin): Don't dereference members of struct
1144 window for deleted windows.
1145
12ce2351
GM
11461999-12-30 Gerd Moellmann <gerd@gnu.org>
1147
a915c648
GM
1148 * abbrev.c (Fexpand_abbrev): If expanding an abbrev which has only
1149 a hook, and the hook has a non-nil `no-self-insert' property, let
1150 the return value of the hook specify whether an expansion took
1151 place. If it returns nil, no expansion has been performed.
1152
12ce2351
GM
1153 * xterm.c (x_make_frame_visible): Wait for frame becoming visible
1154 differently.
1155
04ee4f45
EZ
11561999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
1157
1158 * msdos.c (IT_write_glyphs): Track last changes to struct glyph.
1159
7f4bc0c3
EZ
11601999-12-29 Eli Zaretskii <eliz@is.elta.co.il>
1161
1162 * dispnew.c (mode_line_string): Support MS-DOS frames.
1163
dac204bc
GM
11641999-12-29 Gerd Moellmann <gerd@gnu.org>
1165
1166 * eval.c (syms_of_eval): Initialize debugger_may_continue.
1167
7b712ad8
KH
11681999-12-29 Kenichi Handa <handa@etl.go.jp>
1169
1170 * process.c (read_process_output): Fix the args CHARPOS and LENINS
1171 to signal_after_change.
1172
adb9900f
EZ
11731999-12-28 Eli Zaretskii <eliz@is.elta.co.il>
1174
41ad069b
EZ
1175 * msdos.c (dos_set_window_size) [__DJGPP__ > 1]: If the frame
1176 dimensions changed, invalidate the mouse highlight info.
1177 (disable_mouse_highlight, help_echo, previous_help_echo): New
1178 variables.
1179 (IT_set_mouse_pointer, show_mouse_face, clear_mouse_face)
1180 (fast_find_position, IT_note_mode_line_highlight)
1181 (IT_note_mouse_highlight): New functions.
1182 (IT_update_begin): If the redisplay affects the window where the
1183 mouse highlight is, clear the highlight. If the frame where the
1184 highlight was displayed was killed, invalidate the highlight
1185 info.
1186 (IT_update_end): Reset the highlight flag. Reset the mouse
1187 highlight-defer flag.
1188 (IT_frame_up_to_date): New function, if mouse highlight was
1189 deferred due to GC, do it now.
1190 (internal_terminal_init): Initialize mouse-highlight related
1191 members of the_only_x_display. Assign IT_frame_up_to_date to
1192 frame_up_to_date_hook.
1193 (dos_rawgetc): If the mouse moved, update mouse highlight. If
1194 help_echo changed value, generate a HELP_EVENT event.
1195 (syms_of_msdos): Staticpro help_echo and previous_help_echo.
1196
adb9900f
EZ
1197 * msdos.h (struct display_info): New.
1198 (struct x_output): Add the display_info member.
1199 (FRAME_X_DISPLAY_INFO): New macro.
1200
481b5054
GM
12011999-12-28 Gerd Moellmann <gerd@gnu.org>
1202
1203 * xdisp.c (try_window_id): Compute BEG_UNCHANGED and END_UNCHANGED
1204 if MODIFF > 1.
6448a6b3 1205 (dump_glyph_row): Adapt to changes in struct glyph.
481b5054
GM
1206
1207 * buffer.c (modify_overlay): Always compute unchanged info.
1208
a2882b0d
KH
12091999-12-27 Kenichi Handa <handa@etl.go.jp>
1210
1211 * dispextern.h (FACE_FROM_ID): Cast the arg ID to `unsigned'.
1212
89ba5b5f
KH
12131999-12-27 Kenichi Handa <handa@etl.go.jp>
1214
1215 The following changes are to use more bits for face IDs.
1216
1217 * lisp.h (GLYPH): Defined as `int', not `unsigned int'. Now the
1218 lowest 8 bits are single byte character code, the bits above are
1219 face ID.
481b5054 1220 (GLYPH_MASK_FACE, GLYPH_MASK_CHAR): Adjusted for the change
89ba5b5f 1221 above.
481b5054
GM
1222 (FAST_MAKE_GLYPH, FSST_GLYPH_FACE): Likewise.
1223 (GLYPH_MASK_REV_DIR, GLYPH_MASK_PADDING): Macros deleted.
89ba5b5f
KH
1224
1225 * charset.h (CHAR_BYTES): Use ((1 << CHARACTERBITS) - 1) instead
1226 of GLYPH_MASK_CHAR.
1227
1228 * charset.c (char_bytes): Use ((1 << CHARACTERBITS) - 1) instead
1229 of GLYPH_MASK_CHAR.
1230
1231 * dispextern.h (struct glyph): Make face_id and padding_p the top
1232 level members. Change members in union `u'.
1233 (GLYPH_EQUAL_P): Check also members face_id and padding_p.
1234 (GLYPH_CHAR_AND_FACE_EQUAL_P): New macro.
1235 (SET_CHAR_GLYPH): Adjusted for the change of struct glyph.
1236 (CHAR_GLYPH_PADDING_P): Likewise.
1237 (GLYPH_FROM_CHAR_GLYPH): Likewise. Always return -1 for multibyte
1238 characters.
1239
481b5054 1240 * dispnew.c (line_hash_code, direct_output_for_insert): Adjusted
89ba5b5f
KH
1241 for the change of struct glyph.
1242 (line_draw_cost): Adjusted for the change of
1243 GLYPH_FROM_CHAR_GLYPH.
1244 (count_match): Use macro GLYPH_CHAR_AND_FACE_EQUAL_P.
1245
1246 * term.c (encode_terminal_code): Adjusted for the change of struct
1247 glyph and GLYPH_FROM_CHAR_GLYPH.
481b5054 1248 (write_glyphs, insert_glyphs, append_glyph): Adjusted for the
89ba5b5f
KH
1249 change of struct glyph.
1250
1251 * xdisp.c: All codes adjusted for the change of struct glyph.
1252
1253 * xterm.c: All codes adjusted for the change of struct glyph.
1254
5bcd116c
KH
12551999-12-27 Kenichi Handa <handa@etl.go.jp>
1256
1257 * composite.h (struct composition): Change the order of declaring
1258 members to reduce the byte size of the structure.
1259
f21b06b7
GM
12601999-12-25 Gerd Moellmann <gerd@gnu.org>
1261
1262 * search.c (looking_at_1): Reset immediate_quit before modifying
1263 global data.
1264
e36557c9
KH
12651999-12-24 Kenichi Handa <handa@etl.go.jp>
1266
1267 * process.c (read_process_output): Fix the arg FROM to
1268 update_compositions.
1269
83c8f461 12701999-12-22 Richard M. Stallman <rms@gnu.org>
f7c9e039
RS
1271
1272 * search.c (Freplace_match): For nonliteral replacement in buffer,
1273 construct all the new text first, then insert all at once.
1274
0b863bd9
DL
12751999-12-22 Dave Love <fx@gnu.org>
1276
1277 * xfns.c (Fx_show_tip): Gcpro `timeout' too.
1278
6d8e8ef3
GM
12791999-12-22 Gerd Moellmann <gerd@gnu.org>
1280
28d7281d
GM
1281 * xfns.c (Fx_create_frame): Move x_default_parameter calls that
1282 lead to size changes to after the X window has been created.
1283
e22ef6eb 1284 * xfaces.c (realize_x_face): Don't use uninitialized local
6d8e8ef3
GM
1285 variable in xassert.
1286
8affcced
KH
12871999-12-22 Kenichi Handa <handa@etl.go.jp>
1288
1289 * xfaces.c (face_color_supported_p): Check by tty_defined_color
6d8e8ef3 1290 only when the frame is not for a window system.
8affcced 1291
f2be1146
GM
12921999-12-22 Gerd Moellmann <gerd@gnu.org>
1293
deca1348
GM
1294 * buffer.c (Fset_buffer_multibyte): Arrange for a thorough
1295 redisplay after changing the multibyteness of a buffer.
1296
f2be1146
GM
1297 * xterm.c (XTread_socket): At the beginning of the loop, pass the
1298 frame's X window to XFilterEvent instead of None because that's
1299 the X window for which the IC was created. This makes dead
1300 accents work when the pointer is not in Emacs' frame.
1301 (XTread_socket) <KeyPress>: Don't call XFilterEvent here.
1302
a744a2ec
DL
13031999-12-20 Dave Love <fx@gnu.org>
1304
1305 * xfns.c (Fx_show_tip): Add missing UNGCPRO.
1306
9e6985ed
GM
13071999-12-19 Gerd Moellmann <gerd@gnu.org>
1308
1309 * eval.c (debugger_may_continue): New variable.
1310 (syms_of_eval): Add a DEFVAR_BOOL for it.
1311 (call_debugger): Bind it.
1312
3b620731
EZ
13131999-12-19 Eli Zaretskii <eliz@is.elta.co.il>
1314
1315 * msdos.c (IT_set_face): Don't swap face colors when highlight or
1316 fp->tty_reverse_p is set, unless the computed colors are identical
1317 to frame colors. Print both original and computed colors to
1318 termscript file.
1319 (IT_write_glyphs): Track the changes in handling of composite
1320 characters.
1321 (IT_set_frame_parameters): Don't set frame colors from
1322 unspecified-fg and unspecified-bg pseudo-colors.
1323
0f9a51c4
DL
13241999-12-17 Dave Love <fx@gnu.org>
1325
1326 * data.c (Fkeywordp): New function.
1327 (syms_of_data): Install it.
1328
363e4e42
EZ
13291999-12-16 Eli Zaretskii <eliz@is.elta.co.il>
1330
1331 * xfaces.c (tty_defined_color): Fix last change.
1332
cfad01b4
GM
13331999-12-15 Gerd Moellmann <gerd@gnu.org>
1334
1335 * xdisp.c (redisplay_window) <optional new window start>: Check
1336 that window start is in [BEGV..ZV].
1337
f9d2fdc4
EZ
13381999-12-15 Eli Zaretskii <eliz@is.elta.co.il>
1339
1340 * dispextern.h (FACE_TTY_DEFAULT_FG_COLOR)
1341 (FACE_TTY_DEFAULT_BG_COLOR): New macros.
1342
1343 * xfaces.c (Qunspecified_fg, Qunspecified_bg): New variables.
1344 (syms_of_xfaces): Initialize and staticpro them.
1345 (tty_defined_color): If the color name is unspecified-fg or
1346 unspecified-bg, return FACE_TTY_DEFAULT_FG_COLOR and
1347 FACE_TTY_DEFAULT_BG_COLOR, respectively, as the pixel value.
1348 (tty_color_name): If the color pixel value is either
1349 FACE_TTY_DEFAULT_FG_COLOR or FACE_TTY_DEFAULT_BG_COLOR, return
1350 Qunspecified_fg or Qunspecified_bg, respectively.
1351 (Finternal_set_lisp_face_attribute): Allow values Qunspecified_fg
1352 and Qunspecified_bg for foreground and background colors.
1353 (realize_default_face): If the foreground and background colors
1354 are not specified, default to Qunspecified_fg and Qunspecified_bg.
1355 (realize_tty_face): By default, set the face colors to
1356 FACE_TTY_DEFAULT_FG_COLOR and FACE_TTY_DEFAULT_BG_COLOR.
1357 [MSDOS]: Handle FACE_TTY_DEFAULT_FG_COLOR and
1358 FACE_TTY_DEFAULT_BG_COLOR when face colors are not defined.
1359 Reverse the colors if the default colors were reversed.
1360
1361 * dispnew.c (init_display): Initialize the frame pixels of the
1362 initial frame to FACE_TTY_DEFAULT_FG_COLOR and
1363 FACE_TTY_DEFAULT_BG_COLOR.
1364
1365 * term.c (turn_on_face): If the default fore- and background
1366 colors are reversed, enter inverse video mode. Don't send color
1367 escape sequences for unspecified foreground and background colors.
1368 (turn_off_face): Handle unspecified-fg and unspecified-bg colors.
1369
1370 * dosfns.c (unspecified_colors): New variable.
1371 (msdos_stdcolor_idx): Handle unspecified-fg and unspecified-bg
1372 color names, return FACE_TTY_DEFAULT_FG_COLOR and
1373 FACE_TTY_DEFAULT_BG_COLOR, respectively.
1374 (msdos_stdcolor_name): Handle FACE_TTY_DEFAULT_FG_COLOR and
1375 FACE_TTY_DEFAULT_BG_COLOR, return Qunspecified_fg and
1376 Qunspecified_bg, respectively.
1377
1378 * msdos.c (IT_set_face): Support FACE_TTY_DEFAULT_FG_COLOR and
1379 FACE_TTY_DEFAULT_BG_COLOR as pixel values.
1380
e19539f1
KH
13811999-12-15 Kenichi Handa <handa@etl.go.jp>
1382
1383 * coding.c (code_convert_region): Fix the secoding arg to
1384 update_compositions.
1385
5ec14d3c
KH
13861999-12-15 Kenichi Handa <handa@etl.go.jp>
1387
1388 The following changes are for the new composition mechanism. We
1389 have deleted `composition' charset and composite characters,
1390 instead introduced a special text property `composition'.
1391
1392 * Makefile.in (INTERVAL_SRC): Include composite.h.
1393 (INTERVAL_OBJ): Include composite.o.
1394 (SOME_MACHINE_OBJECTS): Include composite.o.
1395 (casefiddle.o) (dispnew.o) (indent.o) (process.o) (search.o)
1396 (syntax.o) (window.o) (xdisp.o) (xfaces.o) (xterm.o) (print.o):
1397 Depend on composite.h.
1398 (doc.o): Depend on charset.h.
1399 (keyboard.o) (textprop.o) (intervals.o): Depend on INTERVAL_SRC.
1400 (composite.o): New target.
1401
1402 * alloc.c (Fmake_string): Adjusted for the change of CHAR_STRING.
1403
1404 * callproc.c (Fcall_process): Call code_convert_string to encode
1405 arguments. Use CODING_REQUIRE_DECODING to check if the process
1406 output should be decoded.
1407
1408 * casefiddle.c: Include composite.h.
1409 (casify_object): Use MAX_MULTIBYTE_LENGTH to allocate memory for a
1410 multibyte character. Adjusted for the change of CHAR_STRING.
1411 (casify_region): Likewise. Call update_compositions.
1412
1413 * category.h (CATEGORY_SET): Delete codes for a composite
1414 character.
1415
1416 * category.c (word_boundary_p): Delete codes for a composite
1417 character.
1418 (Fmake_category_table): New function.
1419 (syms_of_category): Defsubr it.
1420
1421 * ccl.c (CCL_WRITE_CHAR): Adjusted for the change of CHAR_STRING.
1422 (ccl_driver): Delete codes for a composite character.
1423
1424 * charset.h: In this entry, just `Modified' means that codes for a
1425 composite character is deleted.
1426 (LEADING_CODE_COMPOSITION) (CHARSET_COMPOSITION)
1427 (charset_composition) (MIN_CHAR_COMPOSITION)
1428 (MAX_CHAR_COMPOSITION) (GENERIC_COMPOSITION_CHAR)
1429 (COMPOSITE_CHAR_P) (MAKE_COMPOSITE_CHAR) (COMPOSITE_CHAR_ID)
1430 (PARSE_COMPOSITE_SEQ) (PARSE_CHARACTER_SEQ): Deleted.
1431 (MAX_CHAR) (CHARSET_VALID_P) (CHARSET_DEFINED_P) (CHARSET_AT)
1432 (FIRST_CHARSET_AT) (SAME_CHARSET_P) (MAKE_NON_ASCII_CHAR)
1433 (PARSE_MULTIBYTE_SEQ) (SPLIT_NON_ASCII_CHAR) (CHAR_PRINTABLE_P):
1434 Modified.
1435 (SPLIT_STRING): Call split_string, not split_non_ascii_string.
1436 (CHAR_STRING): Delete WORKBUF argument. Call char_string, not
1437 non_ascii_char_to_string.
1438 (STRING_CHAR): Call string_to_char, not string_to_non_ascii_char.
1439 (STRING_CHAR_AND_LENGTH): Likewise.
1440 (FETCH_CHAR_ADVANCE): New macro.
1441 (MAX_COMPONENT_COUNT) (struct cmpchar_info): Deleted.
1442 (MAX_MULTIBYTE_LENGTH): New macro.
1443 (MAX_LENGTH_OF_MULTI_BYTE_FORM): Deleted.
1444 (find_charset_in_str): Argument adjusted.
1445 (CHAR_LEN): Modified.
1446
1447 * charset.c: In this entry, just `Modified' means that codes for a
1448 composite character is deleted.
1449 (Qcomposition) (leading_code_composition)
1450 (charset_composition) (min_composite_char) (cmpchar_table)
1451 (cmpchar_table_size) (n_cmpchars): Deleted.
1452 (SPLIT_COMPOSITE_SEQ): Deleted.
1453 (SPLIT_MULTIBYTE_SEQ): Modified.
1454 (char_to_string): Renamed from non_ascii_char_to_string.
1455 Modified.
1456 (string_to_char): Renamed from string_to_non_ascii_char.
1457 (split_string): Renamed from split_non_ascii_string.
1458 (char_printable_p) (Fsplit_char)
1459 (Ffind_charset_region) (Ffind_charset_string) (char_valid_p)
1460 (char_bytes) (Fchar_width) (strwidth): Modified.
1461 (find_charset_in_str): Argument CMPCHARP deleted. Modified.
1462 (Fstring): Adjusted for the change of CHAR_STRING. Modified.
1463 (hash_string) (CMPCHAR_HASH_TABLE_SIZE) (cmpchar_hash_table)
1464 (CMPCHAR_HASH_SIZE) (CMPCHAR_HASH_USED) (CMPCHAR_HASH_CMPCHAR_ID)
1465 (str_cmpchar_id) (cmpchar_component) (Fcmpcharp)
1466 (Fcmpchar_component) (Fcmpchar_cmp_rule) (Fcmpchar_cmp_rule_p)
1467 (Fcmpchar_cmp_count): Deleted.
1468 (Fcompose_string): Implemented by Emacs Lisp in composite.el.
1469 (init_charset_once): Modified.
1470 (syms_of_charset): Modified.
1471
1472 * cmds.c (internal_self_insert): Adjusted for the change of
1473 CHAR_STRING.
1474
1475 * coding.h (emacs_code_class_type): Delete the member
1476 EMACS_leading_code_composition.
1477 (COMPOSING_NO) (COMPOSING_WITH_RULE_HEAD) (COMPOSING_NO_RULE_HEAD)
1478 (COMPOSING_WITH_RULE_TAIL) (COMPOSING_NO_RULE_TAIL)
1479 (COMPOSING_WITH_RULE_RULE) (COMPOSING_HEAD_P)
1480 (COMPOSING_WITH_RULE_P): Macros deleted.
1481 (COMPOSITION_DATA_SIZE) (COMPOSITION_DATA_MAX_BUNCH_LENGTH): New
1482 macros.
1483 (struct composition_data): New structure.
1484 (CODING_FINISH_INSUFFICIENT_CMP): New macro.
1485 (struct coding_system): New members composition_rule_follows,
1486 cmp_data, cmp_data_start, cmp_data_index.
1487 (coding_save_composition) (coding_free_composition_data)
1488 (coding_adjust_composition_offset): Extern them.
1489
1490 * coding.c: Include composite.h.
1491 (DECODE_CHARACTER_ASCII): Don't handle composition here.
1492 (DECODE_CHARACTER_DIMENSION1): Likewise. Don't check the validity
1493 of multibyte code here.
1494 (DECODE_CHARACTER_DIMENSION2): Likewise.
1495 (detect_coding_emacs_mule): Change the case label from
1496 EMACS_leading_code_composition to 0x80.
1497 (detect_coding_iso2022): Handle new composition sequence.
1498 (DECODE_ISO_CHARACTER): Likewise.
1499 (check_composing_code): Deleted.
1500 (coding_allocate_composition_data): New function.
1501 (CODING_ADD_COMPOSITION_START) (CODING_ADD_COMPOSITION_END)
1502 (CODING_ADD_COMPOSITION_COMPONENT) (DECODE_COMPOSITION_START)
1503 (DECODE_COMPOSITION_END) (DECODE_COMPOSITION_RULE): New macros.
1504 (decode_coding_iso2022): Handle new composition sequence.
1505 (ENCODE_ISO_CHARACTER): Don't check composition here.
1506 (ENCODE_COMPOSITION_RULE) (ENCODE_COMPOSITION_START): New macros.
1507 (ENCODE_COMPOSITION_NO_RULE_START)
1508 (ENCODE_COMPOSITION_WITH_RULE_START): Deleted.
1509 (ENCODE_COMPOSITION_END): Handle new composition sequence.
1510 (ENCODE_COMPOSITION_FAKE_START): New macro.
1511 (encode_coding_iso2022): Handle new composition sequence.
1512 (ENCODE_SJIS_BIG5_CHARACTER): Delete superfluous `;' at the tail.
1513 (encode_coding_sjis_big5): Ignore composition.
1514 (setup_coding_system): Initialize new members of struct
1515 coding_system. Enable composition only when the coding system has
1516 `composition' property t.
1517 (coding_free_composition_data) (coding_adjust_composition_offset)
1518 (coding_save_composition) (coding_restore_composition): New
1519 functions.
1520 (code_convert_region): Call coding_save_composition for encoding
1521 and coding_allocate_composition_data for decoding. Don't skip
1522 ASCII characters if we handle composition on encoding. Call
1523 signal_after_change with Check_BORDER.
1524 (code_convert_string): Call coding_save_composition for encoding
1525 and coding_allocate_composition_data for decoding. Don't skip
1526 ASCII characters if we handle composition on encoding.
1527 (code_convert_string1): Set Vlast_coding_system_used after calling
1528 code_convert_string.
1529 (code_convert_string_norecord): Disable composition.
1530 (Fset_terminal_coding_system_internal): Likewise.
1531 (Fset_safe_terminal_coding_system_internal): Likewise.
1532 (Fset_keyboard_coding_system_internal): Likewise.
1533 (init_coding_once): Set emacs_code_class[0x80] to
1534 EMACS_invalid_code.
1535
1536 * composite.h: New file.
1537
1538 * composite.c: New file.
1539
1540 * data.c (Faref): Delete codes for a composite character..
1541 (Faset): Likewise. Adjusted for the change of CHAR_STRING.
1542
1543 * dispextern.h (enum glyph_type): New member COMPOSITE_GLYPH.
1544 (struct glyph): Add new sub-structure cmp to the union `u'.
1545 (enum display_element_type): New member IT_COMPOSITION.
1546 (enum prop_idx): New member COMPOSITION_PROP_IDX.
1547 (struct it): New members cmp_id, cmp_len.
1548
1549 * dispnew.c (direct_output_forward_char): Check point moving into
1550 or out of a composition. If so, give up direct method.
1551
1552 * doprnt.c (doprnt1): Adjusted for the change of CHAR_STRING.
1553
1554 * editfns.c (Fchar_to_string): Adjusted for the change of
1555 CHAR_STRING.
1556 (general_insert_function): Likewise.
1557 (Finsert_char): Likewise.
1558 (Fsubst_char_in_region): Likewise. Call update_compositions.
1559 (Ftranslate_region): Call update_compositions.
1560 (Ftranspose_regions): Call update_compositions.
1561
1562 * emacs.c (main): Call syms_of_composite.
1563
1564 * fileio.c (Fsubstitute_in_file_name): Adjusted for the change of
1565 CHAR_STRING.
1566 (Finsert_file_contents): Set Vlast_coding_system_used before
1567 calling signal_after_change. Call update_compositions if some
1568 texts are inserted..
1569 (Fwrite_region): Adjusted for the change of a_write and e_write.
1570 (a_write): Argument changed. Work based on character position,
1571 not byte position.
1572 (e_write): Argument changed. Handle new way of composition.
1573
1574 * fns.c (Flength): The length of char-table is MAX_CHAR.
1575 (concat): Adjusted for the change of CHAR_STRING.
1576 (Ffillarray): Adjusted for the change of CHAR_STRING.
1577 (Fset_char_table_default): Delete codes for a composite character.
1578 (hash_put): Return hash index.
1579
1580 * fontset.h (struct font_info): New member vertical_centering.
1581 (Vvertical_centering_font_regexp): Extern it.
1582
1583 * fontset.c (Vvertical_centering_font_regexp): New variable.
1584 (syms_of_fontset): Declare it as a Lisp variable and initialize.
1585 Set Vignore_relative_composition to nil.
1586 (fs_load_font): Initialize `vertical_centering' of struct
1587 font_info.
1588
1589 * indent.c (check_composition): New function.
1590 (MULTIBYTE_BYTES_WIDTH): Call STRING_CHAR_AND_LENGTH with
1591 MAX_MULTIBYTE_LENGTH, not MAX_LENGTH_OF_MULTI_BYTE_FORM.
1592 (current_column_1): Handle new way of composition.
1593 (Fmove_to_column): Likewise.
1594 (compute_motion): Likewise.
1595
1596 * insdel.c (copy_text): Adjusted for the change of CHAR_STRING.
1597 (insert_char): Likewise.
1598 (insert): Call update_compositions.
1599 (insert_and_inherit): Likewise.
1600 (insert_before_markers): Likewise.
1601 (insert_before_markers_and_inherit): Likewise.
1602 (insert_from_string): Likewise.
1603 (insert_from_string_before_markers): Likewise.
1604 (insert_from_buffer): Likewise.
1605 (replace_range): Likewise.
1606 (count_combining_composition): Deleted.
1607 (count_combining_before): Delete codes for a composite character.
1608 (count_combining_after): Likewise.
1609 (del_range_1): Call update_compositions.
1610 (del_range_byte): Likewise.
1611 (del_range_both): Likewise.
1612 (Fcombine_after_change_execute): Likewise.
1613
1614 * intervals.h: Include composite.h.
1615 (get_property_and_range): Extern it.
1616 (Vtext_property_default_nonsticky): Extern it.
1617
1618 * intervals.c (adjust_intervals_for_insertion): To check stickines
1619 of properties, pay attention to text-property-default-nonsticky.
1620 (merge_properties_sticky): Likewise.
1621 (get_property_and_range): New function.
1622
1623 * keyboard.c (Vdisable_point_adjustment): New variable.
1624 (Vglobal_disable_point_adjustment): New variable.
1625 (syms_of_keyboard): Declare them as Lisp variables.
1626 (command_loop_1): Check them and call adjust_point_for_property if
1627 necessary.
1628 (adjust_point_for_property): New function.
1629
1630 * keymap.c (push_key_description): Adjusted for the change of
1631 CHAR_STRING.
1632 (Ftext_char_description): Likewise.
1633
1634 * lisp.h (QCtest, QCweakness, Qequal): Extern them.
1635 (hash_put): Adjusted for the change of the definition.
1636 (signal_after_change): Likewise.
1637 (check_point_in_composition): Extern it.
1638
1639 * lread.c (readchar): Adjusted for the change of CHAR_STRING.
1640 Delete a code that handles an invalid too-long multibyte sequence
1641 because we are now sure that we never encounter with such a
1642 sequence.
1643 (read_multibyte): Use macro MAX_MULTIBYTE_LENGTH, not
1644 MAX_LENGTH_OF_MULTI_BYTE_FORM.
1645 (init_obarray): Likewise.
1646 (read1): Likewise. Adjusted for the change of CHAR_STRING.
1647
1648 * print.c (printchar): Adjusted for the change of CHAR_STRING.
1649
1650 * process.c: Include composite.h.
1651 (read_process_output): Call update_compositions.
1652
1653 * regex.c (regex_compile): Adjusted for the change of CHAR_STRING.
1654
1655 * search.c (search_buffer): Adjusted for the change of CHAR_STRING.
1656
1657 * syntax.h (SYNTAX_ENTRY_INT): Delete codes for a composite
1658 character.
1659
1660 * term.c (encode_terminal_code): Delete codes for a composite
1661 character. Adjusted for the change of CHAR_STRING.
1662 (produce_glyphs): When called, it->what can be IT_COMPOSITION.
1663 Delete codes for a composite character.
1664
1665 * textprop.c (Vtext_property_default_nonsticky): New variable
1666 (syms_of_textprop): Declare it as a Lisp variable.
1667
1668 * window.c (Frecenter): Clear all caches of compositions.
1669
1670 * xdisp.c (it_props): Add an entry for composition.
1671 (face_before_or_after_it_pos): For composition, check face of a
1672 character after the composition.
1673 (handle_composition_prop): New function.
1674 (get_next_display_element): Adjusted for the change of
1675 CHAR_STRING.
1676 (set_iterator_to_next): Handle the case that it->method ==
1677 next_element_from_composition.
1678 (next_element_from_composition): New function.
1679 (message_dolog): Adjusted for the change of CHAR_STRING.
1680 (set_message_1): Likewise.
1681 (check_point_in_composition): New function.
1682 (reconsider_clip_changes): If point moved into or out of
1683 composition, set b->clip_changed to 1 to force updating of the
1684 screen.
1685 (disp_char_vector): Delete codes for a composite character.
1686 (decode_mode_spec_coding): Adjusted for the change of CHAR_STRING.
1687
1688 * xfaces.c (choose_face_fontset_font): Delete codes for a
1689 composite character.
1690 (realize_x_face): Likewise. Change a place to set local variable
1691 `f' to avoid a bug of GCC 2.8.1 on Solaris.
1692
1693 * xfns.c: Include intervals.h.
1694 (syms_of_xfns): Make `display' property nonsticky by default.
1695
1696 * xselect.c (lisp_data_to_selection_data): Adjusted for the change
1697 for find_charset_in_str.
1698
1699 * xterm.h (struct x_output): Change member font_baseline to
1700 baseline_offset.
1701
1702 * xterm.c (x_append_glyph): Setup members of struct glyph properly
1703 for composition.
1704 (x_append_composite_glyph): New function.
1705 (VCENTER_BASELINE_OFFSET): New macro.
1706 (x_produce_glyphs): If it->what == IT_COMPOSITION, setup members
1707 of struct it for the composition. Cache pixel offsets in the
1708 struct composition. Delete codes for a composite character.
1709 Handle Vignore_relative_composition in composition code.
1710 (struct glyph_string): Delete member cmpcharp, add new member cmp.
1711 (x_set_cursor_gc): Check s->cmp, not s->cmpcharp.
1712 (x_compute_glyph_string_overhangs): Likewise.
1713 (x_get_glyph_overhangs): Delete codes for a composite character.
1714 (x_right_overwritten): Check s->cmp, not s->cmpcharp.
1715 (x_draw_glyph_string_background): Likewise. Delete codes for
1716 checking s->gidx for a composition.
1717 (x_draw_glyph_string_foreground): Delete code for a composite
1718 character.
1719 (x_draw_composite_glyph_string_foreground): New function.
1720 (x_draw_glyph_string_box): Check s->cmp, not s->cmpcharp.
1721 (x_draw_glyph_string): Handle the case of COMPOSITE_GLYPH.
1722 (struct work): Deleted.
1723 (x_fill_composite_glyph_string): Argument changed. Mostly
1724 rewritten for that.
1725 (x_fill_glyph_string): Don't check CHARSET_COMPOSITION.
1726 (BUILD_CHAR_GLYPH_STRINGS): Don't handle composition here.
1727 (BUILD_COMPOSITE_GLYPH_STRING): New macro.
1728 (BUILD_GLYPH_STRINGS): For composition, call
1729 BUILD_COMPOSITE_GLYPH_STRING.
1730 (x_new_font): Initialize f->output_data.x->baseline_offset, not
1731 f->output_data.x->font_baseline.
1732
c3c60f13
GM
17331999-12-14 Gerd Moellmann <gerd@gnu.org>
1734
1735 * xterm.c (show_mouse_face): Don't use updated_area, use
1736 TEXT_AREA.
1737
83c8f461 17381999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
1739
1740 * minibuf.c (Fall_completions): Doc fix.
1741
83c8f461 17421999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
1743
1744 * macros.c (Fstart_kbd_macro): Handle case where last-kbd-macro
1745 has been changed by the Lisp code.
1746
d8eccf12
GM
17471999-12-12 Gerd Moellmann <gerd@gnu.org>
1748
1749 * xfns.c: Indentation fixes.
1750
ae56feae
SM
17511999-12-10 Stefan Monnier <monnier@cs.yale.edu>
1752
1753 * xterm.c (x_initialize): Only setup xaw3d_* if they've been declared.
1754
dfa1c6ae
GM
17551999-12-10 Gerd Moellmann <gerd@gnu.org>
1756
1757 * frame.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL)
1758 [!MSDOS && !WINDOWSNT && !macintosh]: Moved here from xterm.h.
1759
1760 * xterm.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL): Moved
1761 to frame.h.
1762
ec18280f
SM
17631999-12-09 Stefan Monnier <monnier@cs.yale.edu>
1764
1765 * keyboard.c (Qratio): New symbol.
1766 (scroll_bar_parts): Add `Qratio' to it.
1767 (syms_of_keyboard): Init `Qratio'.
1768 * termhooks.h (scroll_bar_part): Add `scroll_bar_move_ratio'.
1769 * xterm.c (#includes): Allow compilation with only Xaw.
1770 (xaw3d_arrow_scroll, xaw3d_pick_top): New variables.
1771 (xt_action_hook): Replace XAW3D by XAW.
1772 (xaw3d_jump_callback): Renamed to xaw_jump_callback.
1773 (xaw_jump_callback): Renamed from xaw3d_jump_callback.
1774 Determine epsilon dynamically and don't try to be too clever.
1775 (xaw3d_scroll_callback): Renamed to xaw_scroll_callback.
1776 (xaw_scroll_callback): Renamed from xaw3d_scroll_callback.
1777 Handle both Xaw3d with arrow-scrollbars and with Xaw-style
1778 scrollbar (using `ratio').
1779 (x_create_toolkit_scroll_bar): Try to detect which style of Xaw3d
1780 scrollbar we have so as to set it up more optimally and to fix
1781 xaw3d_arrow_scroll and xaw3d_pick_top.
1782 (x_set_toolkit_scroll_bar_thumb): Try to maintain 2 spare pixels at the
1783 bottom of the Xaw3d scrollbar, to work around its tendency to refuse
1784 shrinking the thumb. Also make sure that `XawScrollbarSetThumb'
1785 is not ignored, using a major gross hack.
1786 (x_initialize): Init default values for xaw3d_arrow_scroll and
1787 xaw3d_pick_top.
1788
83b6d970
DL
17891999-12-09 Dave Love <fx@gnu.org>
1790
1791 * frame.h: (PIX_TYPE) [! HAVE_X_WINDOWS]: Define PIX_TYPE.
1792
3648c842
GM
17931999-12-08 Gerd Moellmann <gerd@gnu.org>
1794
1795 * eval.c: Remove conditional compilation on `standalone'.
1796 (call_debugger): When entering the debugger while redisplaying,
1797 reset redisplaying_p, and go back to the top-level if the debugger
1798 returns.
1799
05e71564
GM
18001999-12-07 Gerd Moellmann <gerd@gnu.org>
1801
1802 * xfaces.c (x_set_menu_resources_from_menu_face): Make sure
1803 basic faces are realized before trying to use face `menu'.
1804
1805 * window.c (delete_window): Block input for the time window
1806 matrices are being changed.
1807
b46cd536
DL
18081999-12-07 Dave Love <fx@gnu.org>
1809
1810 * lread.c (Fintern_soft): Fix newlines in doc string.
1811
96acb1f7
GM
18121999-12-07 Alexandre Oliva <oliva@dcc.unicamp.br>
1813
1814 * unexelf.c: Include <syms.h>, not <sym.h> on IRIX. Removed
1815 duplicate definition of ElfW.
1816 (find_section): Copied from unexsgi.c.
1817 (unexec): Use find_section. Adjust whitespace. Initialize
1818 new_data2_offset based on old_data, not sbss (this fixes a bug on
1819 IRIX6). Change #ifdef __mips to __sgi, since it's IRIX-specific.
1820 Adjust test for presence of .mdebug section to the new return
1821 value of find_section.
1822
18231999-12-07 Gerd Moellmann <gerd@gnu.org>
1824
1825 * unexelf.c: Merge changes from 20.5.
1826 (unexec): Handle .lit4 and .lit8 unconditionally.
1827
1828 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexelf.o instead of
1829 unexsgi.o again.
1830
1831 * m/iris5d.h (UNEXEC): Likewise.
1832
7dae4502
SM
18331999-12-06 Stefan Monnier <monnier@cs.yale.edu>
1834
1835 * editfns.c (Fdelete_and_extract_region): New function.
05e71564
GM
1836 (syms_of_editfns): Register it.
1837 * insdel.c (del_range): Update del_range_1 call.
7dae4502
SM
1838 (del_range_1, del_range_2): Add a ret_string argument to
1839 request that the deleted text be returned.
1840 (del_range_byte, del_range_both): Update del_range_2 call.
05e71564 1841 * lisp.h (del_range_1, del_range_2): Change prototype
7dae4502
SM
1842 * casefiddle.c (casify_region): Update del_range_1 call.
1843 * coding.c (code_convert_region): Update del_range_2 call.
1844 * fileio.c (Finsert_file_contents): Update del_range_2 call.
1845
397e4fae
GM
18461999-12-06 Gerd Moellmann <gerd@gnu.org>
1847
1848 * xfaces.c (set_lface_from_font_name): Fix incomplete merge.
1849
3d973f71
GM
18501999-12-04 Hrvoje Niksic <hniksic@iskon.hr>
1851
1852 * lread.c (Fintern_soft): Accept a symbol argument.
1853
740e985f
EZ
18541999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
1855
1856 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Reduce to 40000.
809f3d51
EZ
1857
1858 * insdel.c (adjust_markers_for_delete): Fix last change.
1859
2d764c78
EZ
18601999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
1861
1862 Changes for automatic remapping of X colors on terminal frames:
1863
1864 * xfaces.c (XColor) [!HAVE_X_WINDOWS]: Provide a typedef for non-X
1865 frames.
1866 (Vface_tty_color_alist): Remove.
1867 (tty_defined_color): New function.
1868 (defined_color): Rewrite to support any type of frame.
1869 (tty_color_name): New function.
1870 (face_color_supported_p, Fface_color_gray_p,
1871 Fface_color_supported_p): Support non-X frames.
1872 (load_color): Enclose the color name in quotes, in the log
1873 messages. Remove DOS-specific version of load_color.
1874 (realize_tty_face): Take the supported colors from
1875 tty-color-alist. Support translation of X colors to the closest
1876 tty color, for both MSDOS and tty frames.
1877 [MSDOS]: Don't invert face colors if they were taken from the
1878 frame colors.
1879 (Fface_register_tty_color, Fface_clear_tty_colors): Remove.
1880
1881 * frame.h (struct x_output) [!MSDOS, !WINDOWSNT, !HAVE_X_WINDOWS]:
1882 Define a mostly empty surrogate.
1883 (tty_display): Declare.
1884
1885 * frame.c (make_terminal_frame) [!macintosh]: Don't use
1886 tty_display.
1887 (Fframe_parameters): Don't invert colors of non-FRAME_WINDOW_P
1888 frames when the frame's param_alist includes 'reverse.
1889 (tty_display): Define.
1890 (make_terminal_frame) [!MSDOS]: Assign &tty_display to the
1891 output_data.x member.
1892 (Fframe_parameters): Return foreground and background color names
1893 on tty frames as well, in addition to MSDOS frames.
1894
1895 * msdos.h (DisplayWidth, DisplayHeight): Changes for Lisp_Object
1896 selected_frame.
1897 (struct x_output): Remove unused members; document who uses each
1898 member.
1899 (FRAME_PARAM_FACES, FRAME_N_PARAM_FACES, FRAME_DEFAULT_PARAM_FACE,
1900 FRAME_MODE_LINE_PARAM_FACE, FRAME_COMPUTED_FACES,
1901 FRAME_N_COMPUTED_FACES, FRAME_SIZE_COMPUTED_FACES,
1902 FRAME_DEFAULT_FACE, FRAME_MODE_LINE_FACE, unload_color): Remove
1903 unused macro definintions.
1904
1905 * msdos.c (IT_set_frame_parameters): Don't call
1906 recompute_basic_faces, the next redisplay will, anyway.
1907 (x_current_display): Remove unused variable.
1908 Many functions: changes for Lisp_object selected_frame.
1909 (IT_set_face): If the tty_reverse_p flag is set for the face,
1910 reverse the foreground and background colors.
1911 (Fmsdos_remember_default_colors): New function.
1912 (syms_of_msdos): Defsubr it.
1913 (IT_set_frame_parameters): Use initial_screen_colors[] when
1914 creating a new frame. If the frame parameters include 'reverse,
1915 swap the foreground and background colors.
1916 (internal_terminal_init): Initialize initial_screen_colors to -1.
1917 (syms_of_msdos): Add DEFVAR_BOOL for x-stretch-cursor, to shut up
1918 cus-start.el.
1919
1920 * Makefile.in (lisp, shortlisp): Add lisp/term/tty-colors.elc.
1921
1922 * xfns.c (x_defined_color): Rename from defined_color. All
1923 callers changed.
1924 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
1925 all callers changed.
1926 (Fxw_color_values): Renamed from Fx_color_values; all callers
1927 changed.
1928 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
1929 callers changed.
1930 (x_window_to_frame, x_any_window_to_frame,
1931 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
1932 x_top_window_to_frame): Use !FRAME_X_P instead of
1933 f->output_data.nothing.
1934 * xterm.h (x_defined_color): Rename from defined_color.
1935
1936 * w32fns.c (x_window_to_frame): Use FRAME_W32_P instead of
1937 f->output_data.nothing.
1938 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
1939 all callers changed.
1940 (Fxw_color_values): Renamed from Fx_color_values; all callers
1941 changed.
1942 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
1943 callers changed.
1944
1945 * dispextern.h (tty_color_name): Add prototype.
1946
1947 * xmenu.c (menubar_id_to_frame): Use FRAME_WINDOW_P instead of
1948 f->output_data.nothing.
1949 * w32menu.c (menubar_id_to_frame): Likewise.
1950 * w32term.h (w32_output): Declare.
1951
1952 * dosfns.c (Qmsdos_color_translate): Remove.
1953 (msdos_stdcolor_name): Now returns a Lisp_Object.
1954 * dosfns.h (Qmsdos_color_translate): Remove.
1955
1956 * s/msdos.h (INTERNAL_TERMINAL): Add entries for color support.
1957
b3e5232e
KH
19581999-12-06 Kenichi Handa <handa@etl.go.jp>
1959
1960 * fileio.c (decide_coding_unwind): Renamed from
1961 set_auto_coding_unwind.
1962 (Finsert_file_contents): Make single unwind protect to call both
1963 Vset_auto_coding_function and Ffind_operation_coding_system.
1964
1965 * insdel.c (adjust_markers_for_delete): Make it non-static.
1966
db0e466c
SM
19671999-12-04 Stefan Monnier <monnier@cs.yale.edu>
1968
1969 * regex.c (regex_compile): Recognize *?, +? and ?? as non-greedy
1970 operators and handle them properly.
1971 * regex.h (RE_ALL_GREEDY): New option.
1972 (RE_UNMATCHED_RIGHT_PAREN_ORD): Moved to the end where alphabetic
1973 sorting would put it.
1974 (RE_SYNTAX_AWK, RE_SYNTAX_GREP, RE_SYNTAX_EGREP)
1975 (_RE_SYNTAX_POSIX_COMMON): Use the new option to keep old behavior.
1976
22afa6e8
DL
19771999-12-04 Dave Love <d.love@dl.ac.uk>
1978
1979 * m/arm.h: New file.
1980
40afb967
DL
19811999-12-03 Dave Love <fx@gnu.org>
1982
1983 * editfns.c (Fmessage_or_box): Use use_dialog_box.
1984
ddf8eff5
GM
19851999-12-02 Gerd Moellmann <gerd@gnu.org>
1986
1987 * s/usg5-4.h (LIBS_SYSTEM): Add -lgen because that's needed
1988 for building with Motif.
1989
1990 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexsgi.o instead of
1991 unexelf.o.
1992
1993 * m/iris5d.h (UNEXEC): Use unexsgi.o instead of unexelf.o.
1994
fa09a82d
DL
19951999-12-01 Dave Love <fx@gnu.org>
1996
1997 * emacs.c (main): Set LANG=C iff AX3_2 defined.
1998
ddf8eff5
GM
19991999-11-28 Gerd Moellmann <gerd@gnu.org>
2000
2001 * systime.h (EMACS_TIME_CMP, EMACS_TIME_EQ, EMACS_TIME_NE)
2002 (EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT,EMACS_TIME_LE): New
2003 macros.
2004
2005 * config.in (HAVE_SETITIMER, HAVE_UALARM): New.
2006
fa09a82d
DL
20071999-11-28 eliz <eliz@dlpx1>
2008
2009 * emacs.c (synchronize_locale): Avoid compiler warnings about
2010 pointer type mismatch.
2011
f9632fc8
GM
20121999-11-28 Gerd Moellmann <gerd@gnu.org>
2013
717d0121
GM
2014 * window.c (Fwindow_end): Don't call temp_set_pt_both with
2015 out of range position.
2016
f9632fc8
GM
2017 * xterm.c (XTread_socket) <ClientMessage, Xatom_Scrollbar>:
2018 Switch off busy-cursor by setting inhibit_busy_cursor to 2.
2019
59c65f1e
EZ
20201999-11-28 Eli Zaretskii <eliz@is.elta.co.il>
2021
613a8346
EZ
2022 * charset.c (Fmake_char_internal): Print the charset ID when
2023 signalling an error.
2024
59c65f1e
EZ
2025 * emacs.c (synchronize_locale): Avoid compiler warnings about
2026 pointer type mismatch.
2027
83c8f461 20281999-11-26 Richard M. Stallman <rms@gnu.org>
d01f3570
RS
2029
2030 * editfns.c (Fdelete_field): Make it noninteractive. Return nil.
2031
18df9369
GM
20321999-11-26 Gerd Moellmann <gerd@gnu.org>
2033
65a3ccf7
GM
2034 * puresize.h (BASE_PURESIZE): Increase to 550000.
2035
b3b98592
GM
2036 * textprop.c (set_text_properties): New function. Like
2037 Fset_text_properties, but with additional parameter
2038 SIGNAL_AFTER_CHANGE_P. If that is nil, don't signal after
2039 changes.
2040 (Fset_text_properties): Use it.
2041
2042 * insdel.c (insert_1_both): Call set_text_properties with last
2043 parameter nil so that no after changes will be signaled.
2044
2045 * lisp.h: Add prototype for set_text_properties.
2046
18df9369
GM
2047 * xfaces.c (set_lface_from_font_name): Fix previous change.
2048 (recompute_basic_faces): Change assert to abort.
2049
71a8e74b
DL
20501999-11-25 Dave Love <fx@gnu.org>
2051
2052 * fns.c (Fnthcdr, Fnreverse): Inline cdr.
2053 (Fmember, Fdelq, Fdelete): Inline car.
2054 (Fy_or_n_p): Doc fix.
2055
bc6a5782
GM
20561999-11-25 Gerd Moellmann <gerd@gnu.org>
2057
3221576b 2058 * xfaces.c (set_lface_from_font_name): New parameter may_fail_p.
18df9369 2059 Callers changed. If specified font name is bogus, and may_fail_p
3221576b
GM
2060 is not set, try to use a reasonable default.
2061
bc6a5782
GM
2062 * dispnew.c (direct_output_for_insert): Set glyph row's
2063 displays_text_p flag. Correct window's window_end_vpos if
2064 necessary.
2065
0c8559bb
PE
20661999-11-25 Paul Eggert <eggert@twinsun.com>
2067
2068 * emacs.c (fixup_locale): Don't bother to record initial locale.
2069 (synchronize_locale): If the desired locale is nil,
2070 treat it as if it were the empty string,
2071 so that we set the locale from the environment.
2072
35737351
KH
20731999-11-25 Kenichi Handa <handa@etl.go.jp>
2074
2075 * fileio.c (Finsert_file_contents): Set buffer-file-coding-system
2076 of the current buffer via Fset.
2077
5562b47f
DL
20781999-11-24 Dave Love <fx@gnu.org>
2079
2080 * xfns.c: Don't duplicate Qdisplay definition done elsewhere.
2081
2082 * xfaces.c: Don't duplicate Qmode_line definition done elsewhere.
2083
2084 * xfns.c: Don't duplicate Qdisplay definition done elsewhere.
2085
00da0e4a
GM
20861999-11-24 Gerd Moellmann <gerd@gnu.org>
2087
2088 * lisp.h (enum pvec_type): Put PVEC_FLAG in #if 0.
2089
2090 * emacs.c (PVEC_FLAG): New variable.
2091
b1775dc1
GM
20921999-11-23 Gerd Moellmann <gerd@gnu.org>
2093
2094 * unexaix.c (unexec): Use unsigned instead of uintptr_t because
2095 that fails on IBM PowerPC, AIX 4.2.
2096
08de6200
EZ
20971999-11-22 Eli Zaretskii <eliz@is.elta.co.il>
2098
2099 * buffer.c (syms_of_buffer): Add %z, %Z, %m and %& to the doc
2100 string of mode-line-format. Remove the obsolete %t.
2101
02fda8ff
GM
21021999-11-22 Gerd Moellmann <gerd@gnu.org>
2103
f2fa858f
GM
2104 * dispnew.c (direct_output_for_insert): Increment glyph positions
2105 for glyphs from buffer text only.
2106
02fda8ff
GM
2107 * emacs.c (gdb_valbits, gdb_gctypebits, gdb_emacs_intbits)
2108 (gdb_data_seg_bits): New variables.
2109
2110 * lisp.h (enum gdb_lisp_params): Put in #if 0, since it doesn't
2111 work on systems not allowing enumerators > INT_MAX, and it
2112 won't work if EMACS_INT is long long.
2113
1b0d24e7
PE
21141999-11-22 Paul Eggert <eggert@twinsun.com>
2115
2116 Port to SunOS 4.1.x again. Help out with Alpha port.
2117 Rename messages-locale to system-messages-locale,
2118 and likewise for time-locale.
2119
2120 * callproc.c (strerror): Remove decl.
2121 * fileio.c (strerror): Likewise.
2122 * process.c (strerror): Likewise.
2123 * emacs.c (strerror): Likewise.
2124 (Vsystem_messages_locale): Renamed from Vmessages_locale.
2125 All uses changed.
2126 (Vprevious_system_messages_locale): Likewise, from
2127 Vprevious_messages_locale.
2128 (Vsystem_time_locale): Likewise, from Vtime_locale.
2129 (Vprevious_system_time_locale): Likewise, from Vprevious_time_locale.
2130 (ABORT_RETURN_TYPE): New macro.
2131 (abort): Return type is now ABORT_RETURN_TYPE.
2132 (main): Always invoke init_signals, even if POSIX_SIGNALS is not
2133 defined.
2134 (syms_of_emacs): messages-locale -> system-messages-locale,
2135 previous-messages-locale -> previous-system-messages-locale,
2136 time-locale -> system-time-locale,
2137 previous-time-locale -> previous-system-time-locale.
2138
2139 * gmalloc.c (PP, __ptr_t): Assume ANSI C if STDC_HEADERS is defined.
2140 (const): Do not define; that's config.h's job.
2141 (<limits.h>): Include if HAVE_LIMITS_H is defined.
2142 (CHAR_BIT): Move test for definedness outside of limits.h condition.
2143 (<stddef.h>): Include if STDC_HEADERS is defined.
2144 (FREE_RETURN_TYPE): New macro.
2145 (free): Return type is now FREE_RETURN_TYPE.
2146
2147 * lisp.h (synchronize_system_time_locale): Renamed from
2148 synchronize_time_locale. All uses changed.
2149 (synchronize_system_messages_locale): Likewise, from
2150 synchronize_messages_locale.
2151
2152 * m/alpha.h (malloc, realloc, calloc): Remove decls;
2153 stdlib.h now does this.
2154
2155 * process.c (sys_siglist): Remove.
2156
2157 * s/sunos4-0.h (ABORT_RETURN_TYPE, FREE_RETURN_TYPE):
2158 New macros.
2159
2160 * syntax.c (scan_sexps_forward): Use abort, not assert.
2161
2162 * sysdep.c (my_sys_siglist): New var.
2163 (sys_siglist): New macro. Remove old initialized vars of same name.
2164 (init_signals): Initialize sys_siglist.
2165
2166 * xfns.c (abort): Remove decl; stdlib.h now does this.
2167
0dcd5b54
DL
21681999-11-18 Dave Love <fx@gnu.org>
2169
946173ad
DL
2170 * filelock.c: Add forward declaration for get_boot_time_1.
2171
0dcd5b54
DL
2172 * dispnew.c (Finternal_show_cursor_p): Fix doc string.
2173
71447e8f
GM
21741999-11-18 Gerd Moellmann <gerd@gnu.org>
2175
2176 * buffer.h (struct buffer_text): Add comment about moving
2177 buffer text if REL_ALLOC is defined.
2178
eeedff63
KH
21791999-11-18 Kenichi Handa <handa@etl.go.jp>
2180
2181 * lisp.h (KEY_DESCRIPTION_SIZE): New macro.
2182
2183 * keyboard.c (echo_char): Use KEY_DESCRIPTION_SIZE to check free
2184 memory for push_key_description.
2185
2186 * keymap.c (Fsingle_key_description): Use KEY_DESCRIPTION_SIZE to
2187 allocate memory for push_key_description.
2188 (describe_buffer_bindings): Likewise.
2189
5d7e4a2c
GM
21901999-11-17 Gerd Moellmann <gerd@gnu.org>
2191
2192 * xfns.c (Fx_show_busy_cursor): Doc-fix.
2193 (Fx_hide_busy_cursor): Ditto.
2194
21951999-11-17 Marco Walther <walther@siemens-pyramid.com>
2196
2197 * unexsni.c (unexec): Handle .rel.dyn section.
2198
b5b41e02
DL
21991999-11-16 Dave Love <fx@gnu.org>
2200
2201 * doc.c (Fdocumentation): Remove gcpro here too.
2202
e35b6123
GM
22031999-11-16 Gerd Moellmann <gerd@gnu.org>
2204
2205 * keyboard.c (command_loop_1): Remove no_redisplay.
2206
83c8f461 22071999-11-16 Richard M. Stallman <rms@gnu.org>
0a14b9bb
GM
2208
2209 * print.c (PRINTPREPARE): Don't call setup_echo_area_for_printing
2210 in noninteractive.
2211
b05d3bee
GM
22121999-11-14 Gerd Moellmann <gerd@gnu.org>
2213
5bcfeb49
GM
2214 * xdisp.c (ensure_echo_area_buffers): New.
2215 (with_echo_area_buffer): Use it.
2216 (setup_echo_area_for_printing): Ditto.
2217
b05d3bee
GM
2218 * buffer.c (indicate-empty-lines): Doc-fix.
2219
9b2e6e4c
GM
22201999-11-12 Gerd Moellmann <gerd@gnu.org>
2221
e7f90eab
GM
2222 * term.c (term_init): If "op" isn't available, don't support color
2223 because we can't switch back to the default foreground and
2224 background.
2225
9b2e6e4c
GM
2226 * doc.c (Fdocumentation_property): Remove GCPRO because
2227 Fsubstitute_command_keys gcpro's the string.
2228
1bf21027
KH
22291999-11-12 Kenichi Handa <handa@etl.go.jp>
2230
2231 * editfns.c (Ftranslate_region): Check the buffer multibyteness.
2232
3bc6df53
GM
22331999-11-11 Gerd Moellmann <gerd@gnu.org>
2234
2235 * print.c, keymap.c, indent.c, insdel.c, keyboard.c, intervals.c,
2236 lread.c, textprop.c, undo.c, emacs.c, lisp.h, intervals.h,
2237 buffer.h, config.in, Makefile.in: Remove USE_TEXT_PROPERTIES.
2238
35a5514b
GM
22391999-11-10 Gerd Moellmann <gerd@gnu.org>
2240
2241 * xfns.c (QCuser_data): Removed.
2242 (syms_of_xfns): Initialization of QCuser_data removed.
2243 (parse_image_spec): Don't handle :user-data specially. Allow
2244 unknown keys. Remove parameter ALLOW_OTHER_KEYS.
2245 (xbm_image_p, xbm_load, xpm_image_p, pbm_image_p, png_image_p)
2246 (tiff_image_p, jpeg_image_p, gif_image_p, gs_image_p): Call
2247 parse_image_spec accordingly.
2248
83c8f461 22491999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
2250
2251 * cmds.c (Fbeginning_of_line): Doc fix.
2252 (Fend_of_line): Doc fix.
2253
2254 * editfns.c (Fline_beginning_position): If N is not 1,
2255 pass t to Fconstrain_to_field for ESCAPE-FROM-EDGE.
2256
2257 * syntax.c (Fforward_word): Handle fields even if would have hit
2258 an edge of the buffer. Return nil if affected by fields.
2259
83c8f461 22601999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
2261
2262 * editfns.c (preceding_pos): Function deleted.
2263 (text_property_stickiness): Decrement POS directly.
2264 Fix a confusion that used PT instead of POS.
2265
2266 * editfns.c (find_field): Properly handle the case
2267 of a field boundary where `field' inherits from neither side.
2268
2269 * editfns.c (Ffield_beginning, Ffield_end): Doc fixes.
2270 (Ferase_field, Ffield_string, Ffield_string_no_properties): Doc fixes.
2271
fa9aabf6
GM
22721999-11-08 Gerd Moellmann <gerd@gnu.org>
2273
2274 * bytecode.c (Fbyte_code) <BinsertN, Bcall>: Do the
2275 BEFORE_POTENTIAL_GC before DISCARD.
2276
4015b3c0
GM
22771999-11-07 Gerd Moellmann <gerd@gnu.org>
2278
033a5fa3
GM
2279 * alloc.c (Fgarbage_collect): Call unmark_byte_stack.
2280
2281 * lisp.h: Add prototype for unmark_byte_stack.
2282
2283 * bytecode.c (mark_byte_stack): Use XMARKBIT and XMARK.
2284 (unmark_byte_stack): Renamed from relocate_byte_pcs. Use
2285 XUNMARK.
2286
55b064bd
GM
2287 * xdisp.c (resize_mini_window): Fix computation of needed
2288 mini-window height.
2289
2290 * alloc.c, buffer.c, editfns.c, xdisp.c: Remove conditional
2291 compilation on USE_TEXT_PROPERTIES.
01e9b9df 2292
4015b3c0 2293 * Fbyte_code: Use block statements in cases and declare v1 and v2
60af03f1 2294 locally there. Rearrange case statements so that those most
4015b3c0
GM
2295 frequently executed come first. Avoid goto's in frequently
2296 executed cases.
2297
fe512f27
GM
22981999-11-05 Gerd Moellmann <gerd@gnu.org>
2299
dd59e217
GM
2300 * bytecode.c (Fbyte_code): Use BEFORE_POTENTIAL_GC and
2301 AFTER_POTENTIAL_GC around internal_catch.
2302
bcf28080
GM
2303 * alloc.c (Fgarbage_collect): Call mark_byte_stack and
2304 relocate_byte_pcs.
2305 (init_alloc_once, init_alloc): Set byte_stack_list to null.
2306
2307 * eval.c (struct catchtag): Add member byte_stack.
2308 (internal_catch, Fcondition_case, internal_condition_case)
dd59e217 2309 (internal_condition_case_1): Save value of byte_stack_list in
bcf28080
GM
2310 catchtag.
2311 (unwind_to_catch): Restore byte_stack_list from catchtag.
2312
2313 * lisp.h: Add prototypes for new functions in bytecode.c.
2314 Add extern declaration for byte_stack_list.
2315
2316 * bytecode.c (struct byte_stack): New.
2317 (byte_stack_list, mark_byte_stack, relocate_byte_pcs): New
2318 (BEFORE_POTENTIAL_GC, AFTER_POTENTIAL_GC): New.
2319 (FETCH, PUSH, POP, DISCARD, TOP, MAYBE_GC): Rewritten.
2320 (HANDLE_RELOCATION): Removed.
2321 (Fbyte_code): Use byte_stack structures.
2322
4d59c34c
GM
2323 * filelock.c (Ffile_locked_p): Make FILENAME a required argument.
2324
fe512f27
GM
2325 * buffer.c (syms_of_buffer): Extend documentation of
2326 mode-line-format.
2327
60b64cd6
GM
23281999-11-04 Gerd Moellmann <gerd@gnu.org>
2329
2330 * editfns.c (Fdelete_field): Renamed from Ferase_field.
2331
2332 * minibuf.c (do_completion, Fminibuffer_complete_word): Use
2333 Ferase_field instead of Fdelete_field.
2334
b51b619b
GM
23351999-11-03 Gerd Moellmann <gerd@gnu.org>
2336
2337 * dispnew.c (Finternal_show_cursor): Change it to set the
2338 cursor on/off, not toggle its state.
2339 (Finternal_show_cursor_p): New.
2340 (syms_of_display): Defsubr Sinternal_show_cursor_p.
2341
5865af0d
DL
23421999-11-03 Dave Love <fx@gnu.org>
2343
2344 * charset.c (split_non_ascii_string): Define return value.
2345
82a700f3
GM
23461999-11-03 Gerd Moellmann <gerd@gnu.org>
2347
edfef199
GM
2348 * minibuf.c (string_to_object): New.
2349 (read_minibuf_noninteractive): New.
2350 (read_minibuf): Call read_minibuf_noninteractive if
2351 noninteractive. Use string_to_object.
2352
82a700f3
GM
2353 * doc.c (Fdocumentation_property): Fix bug bypassing UNGCPRO.
2354
b5540f0d
DL
23551999-11-02 Dave Love <fx@gnu.org>
2356
e69dcd60
DL
2357 * gnu-linux.h: Use SIGCHLD, not SIGCLD (not in glibc 2.1).
2358
827a1788
DL
2359 * process.c: Define _GNU_SOURCE before config.h to get strsignal
2360 declared with glibc2.
b5540f0d 2361
a69a6e61
GM
23621999-11-02 Gerd Moellmann <gerd@gnu.org>
2363
2364 * lisp.h (QUIT): Give it statement form.
2365
87e21fbd
DL
23661999-11-02 Dave Love <fx@gnu.org>
2367
2368 * eval.c (init_eval): Conditionalize declaration of gcpro_level.
2369
1b335865
GM
23701999-11-02 Gerd Moellmann <gerd@gnu.org>
2371
9fb5e03d
GM
2372 * xfns.c (QCuser_data): New.
2373 (syms_of_xfns): Initialize QCuser_data.
2374 (parse_image_spec): Ignore :user-data DATA properties.
2375
1b335865
GM
2376 * xdisp.c (display_line): Set charpos of first glyph in blank
2377 lines not corresponding to any text to -1, even if no glyphs are
2378 filled in in that line.
2379
e76f1c44
GM
23801999-11-01 Gerd Moellmann <gerd@gnu.org>
2381
36fcd3d9
GM
2382 * xfns.c (png_load) [PNG_READ_sRGB_SUPPORTED]: Put code using
2383 png_get_sRGB in #ifdef.
2384
111259b4
GM
2385 * dispnew.c (Finternal_show_cursor): Renamed from Fshow_cursor.
2386 (syms_of_display): Use the new name.
2387
dd5c96e8
GM
2388 * textprop.c (verify_interval_modification): Signal text-read-only
2389 instead of calling error.
2390
db8878fb
GM
2391 * data.c (Qtext_read_only): New built-in error.
2392 (syms_of_data): Initialize it.
2393
2394 * lisp.h: Add extern declaration for Qtext_read_only.
2395
e76f1c44
GM
2396 * syntax.c: Remove whitespace after open or in front of closing
2397 parentheses.
2398
83c8f461 23991999-11-01 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
2400
2401 * Makefile.in (w16select.o, sound.o): Don't depend on lisp.h.
2402
7843e09c
GM
24031999-10-31 Gerd Moellmann <gerd@gnu.org>
2404
575ed805
GM
2405 * xdisp.c (resize_mini_window): Compute needed height differently.
2406
7843e09c
GM
2407 * fns.c (Flength): Unroll loop over lists.
2408
2409 * xdisp.c (append_space): Return non-zero if space was appended.
2410 (display_line): Set charpos of first glyph to -1 only if that
2411 glyph is the space added by append_glyph.
2412
83c8f461 24131999-10-30 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
2414
2415 * print.c (strout): Consider `noninteractive' and use stdout
2416 only when PRINTCHARFUN is t.
2417
2418 * lisp.h (struct gcpro) [DEBUG_GCPRO]: New field `level'.
2419 (gcpro_level): Declare it extern.
2420 [DEBUG_GCPRO] (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5):
2421 Alternate definitions that set `level' and increment `gcpro_level'.
2422 [DEBUG_GCPRO] (UNGCPRO): Alternate definition that checks gcpro_level.
2423
2424 * eval.c [DEBUG_GCPRO] (gcpro_level): New variable.
2425 (init_eval) [DEBUG_GCPRO]: Initialize it.
2426 (unwind_to_catch) [DEBUG_GCPRO]: Set gcpro_level
2427 from remaining gcprolist.
2428
3636f7a3
KH
24291999-10-29 Kenichi Handa <handa@etl.go.jp>
2430
2431 * coding.c (code_convert_region): Update `dst' correctly.
2432
a2ad7096
GM
24331999-10-28 Gerd Moellmann <gerd@gnu.org>
2434
2435 * fns.c (Fmemq, Fassq, Frassq, assq_no_quit, Fassoc)
2436 (Frassoc): Rewritten.
2437
1e3196e8
GM
24381999-10-27 Noah Friedman <friedman@splode.com>
2439
2440 * s/gnu-linux.h [HAVE_DEV_PTMX]: Redefine FIRST_PTY_LETTER to 'z'.
2441 Define PTY_NAME_SPRINTF.
2442 Redefine PTY_TTY_NAME_SPRINTF.
2443 * config.in: Add undef for HAVE_DEV_PTMX.
2444
83c8f461 24451999-10-26 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
2446
2447 * regex.c (POP_FAILURE_POINT): Use failure_id.integer
2448 as arg to DEBUG_POP and DEBUG_PRINT.
2449
83c8f461 24501999-10-27 Richard M. Stallman <rms@gnu.org>
17dbfaad
GM
2451
2452 * data.c (Qad_activate_internal): Renamed from Qad_activate.
2453 (Ffset): Call Qad_activate_internal.
2454 (syms_of_data): Initialize Qad_activate_internal.
2455
26922151
GM
24561999-10-27 Gerd Moellmann <gerd@gnu.org>
2457
2458 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing if
2459 Vterminal_frame is selected and Vwindow_system is non-nil.
2460
67a5596f
GM
24611999-10-26 Gerd Moellmann <gerd@gnu.org>
2462
2bea706b
GM
2463 * xdisp.c (echo_area_display): Put previous change in #if 0.
2464
67a5596f
GM
2465 * emacs.c (standard_args): Add `file' as synonym for `visit',
2466 `execute' as synonym for `eval'.
2467 (main): Add new options to usage message.
2468
81dc5de5
GM
24691999-10-25 Gerd Moellmann <gerd@gnu.org>
2470
2471 * data.c (Qhash_table): New.
2472 (Ftype_of): Return it for hash tables.
2473 (syms_of_data): Initialize Qhash_table.
2474
83c8f461 24751999-10-25 Richard M. Stallman <rms@gnu.org>
bd3c545d
GM
2476
2477 * regex.c (POP_FAILURE_POINT): Extract failure_id as an integer.
2478
66e4690f 24791999-10-24 Ken Raeburn <raeburn@gnu.org>
3a7093d8 2480
7539e11f
KR
2481 * alloc.c: Undef HIDE_LISP_IMPLEMENTATION before including
2482 lisp.h.
2483
2484 * buffer.c (Fbuffer_list, Fget_file_buffer, get_truename_buffer,
2485 Fbuffer_local_variables, Fother_buffer, record_buffer,
2486 set_buffer_internal_1, Fbury_buffer, Fkill_all_local_variables,
2487 swap_out_buffer_local_variables, overlays_at, overlays_in,
2488 overlay_touches_p, overlay_strings, recenter_overlay_lists,
2489 fix_overlays_in_range, fix_overlays_before, Foverlay_get,
2490 Foverlay_put, report_overlay_modification, evaporate_overlays):
2491 Use XCAR, XCDR, and XFLOAT_DATA instead of explicit member
2492 references.
2493 * data.c (Fcar, Fcar_safe, Fcdr, Fcdr_safe, Fsetcar, Fsetcdr,
2494 swap_in_symval_forwarding, set_internal, default_value,
2495 Fset_default, Fmake_variable_buffer_local, Fmake_local_variable,
2496 Fmake_variable_frame_local, Flocal_variable_p,
2497 Flocal_variable_if_set_p, arithcompare, Fzerop, cons_to_long,
2498 Fnumber_to_string, float_arith_driver, Fadd1, Fsub1): Likewise.
2499 * dispnew.c (Fframe_or_buffer_changed_p): Likewise.
2500 * emacs.c (main): Likewise.
2501 * fontset.c (fs_load_font, fs_register_fontset,
2502 CACHED_FONTSET_NAME, CACHED_FONTSET_REGEX, Fquery_fontset,
2503 Fnew_fontset, Fset_fontset_font): Likewise.
2504 * frame.c (do_switch_frame, next_frame, prev_frame,
2505 other_visible_frames, Fdelete_frame, Fvisible_frame_list):
2506 Likewise.
2507 * keyboard.c (read_char, help_char_p, event_to_kboard,
2508 kbd_buffer_get_event, timer_start_idle, timer_check,
2509 make_lispy_event, apply_modifiers, reorder_modifiers,
2510 Fevent_convert_list, lucid_event_type_list_p, menu_bar_items,
2511 menu_bar_one_keymap, menu_item_eval_property_1, parse_menu_item,
2512 tool_bar_items, read_char_x_menu_prompt, read_key_sequence,
2513 Fcommand_execute, Fexecute_extended_command): Likewise.
2514 * minibuf.c (read_minibuf, get_minibuffer, Ftry_completion,
2515 Fall_completions): Likewise.
2516 * window.c (Fset_window_margins): Likewise.
2517
2518 * callint.c (quotify_args): Don't explicitly use struct
2519 Lisp_Cons, use Lisp_Object and XCAR/XCDR instead.
2520
3a7093d8
KR
2521 * s/netbsd.h (HAVE_GETLOADAVG): Define as 1.
2522 (UNEXEC, START_FILES, LIB_STANDARD, LIB_GCC): Define ELF versions,
2523 if __ELF__ is defined.
2524
2a3d7146
GM
25251999-10-24 Gerd Moellmann <gerd@gnu.org>
2526
2527 * window.c (Fnext_window): Add a QUIT in the loop.
2528
8ac52782
GM
25291999-10-23 Gerd Moellmann <gerd@gnu.org>
2530
2531 * Makefile.in (bootstrap, bootstrap-emacs, bootstrap-temacs):
2532 New targets.
2533
05f0d15a
DL
25341999-10-22 Dave Love <fx@gnu.org>
2535
2536 * emacs.c (main): Enable profiling conditional on __linux also.
2537
882fb0e6
GM
25381999-10-20 Gerd Moellmann <gerd@gnu.org>
2539
2540 * xrdb.c (x_load_resources): Set default resources for resource
2541 classes instead of for the specific Emacs.
2542
b5f5bc31
GM
25431999-10-19 Gerd Moellmann <gerd@gnu.org>
2544
66f4dd69
GM
2545 * s/freebsd.h (HAVE_GETLOADAVG): Define as 1 because config.h
2546 defines it that way.
2547
b5f5bc31
GM
2548 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing
2549 if selected_frame is equal to Vterminal_frame.
2550
68c45bf0
PE
25511999-10-19 Paul Eggert <eggert@twinsun.com>
2552
2553 Add support for large files, 64-bit Solaris, system locale codings.
2554
2555 * Makefile.in (emacs): Set the LC_ALL environment variable to "C"
2556 when dumping, so that the dumped Emacs doesn't have stray locale info.
2557 (dired.o): Depend on systime.h.
2558 (editfns.o): Depend on coding.h.
2559
2560 * alloc.c, buffer.c, callproc.c, ccl.c, charset.c, coding.c, data.c,
2561 dispnew.c, editfns.c, emacs.c, filelock.c, floatfns.c, hftctl.c,
2562 keyboard.c, process.c, sysdep.c, unexelf.c, unexhp9k800.c,
2563 unexsunos4.c, vmsfns.c, vmsgmalloc.c, w32faces.c, w32menu.c, w32term.c,
2564 w32xfns.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
2565 Include <config.h> before any system include files.
2566
2567 * alloc.c, buffer.c, ccl.c, data.c, editfns.c, emacs.c, eval.c,
2568 fileio.c, filelock.c, frame.c, insdel.c, keymap.c, lread.c,
2569 m/alpha.h, print.c, search.c, sysdep.c, xdisp.c, xfaces.c, xfns.c,
2570 xmenu.c, xterm.c:
2571 Do not include <stdlib.h>, as <config.h> does this now.
2572
2573 * callproc.c (Fcall_process):
2574 Synchronize messages locale before invoking strerror.
2575 Decode resulting string with locale-coding-system.
2576
2577 * coding.c (Vlocale_coding_system): New var.
2578 (syms_of_coding): Adjust to above change.
2579 (emacs_strerror): New function.
2580
2581 * coding.h (emacs_strerror, Vlocale_coding_system): New decls.
2582
2583 * config.in (HAVE_STDIO_EXT_H, HAVE_TM_GMTOFF, HAVE___FPENDING,
2584 HAVE_FTELLO, HAVE_GETLOADAVG, HAVE_MBLEN, HAVE_MBRLEN,
2585 HAVE_STRSIGNAL): New macros.
2586 (BITS_PER_LONG): Default to 64 if _LP64 is defined.
2587 <stdlib.h>: Include if HAVE_STDLIB_H is defined and NOT_C_CODE isn't.
2588
2589 * dired.c: Include "systime.h".
2590 (Ffile_attributes): Do not cast s.st_size to int; this loses
2591 information if int is 32 bits but st_size and EMACS_INT are larger.
2592 Treat large device numbers like large inode numbers.
2593
2594 * dispnew.c (PENDING_OUTPUT_COUNT): Use __fpending if available.
2595
2596 * editfns.c: Include coding.h.
2597 (emacs_strftime): Remove decl.
2598 (emacs_strftimeu): New decl.
2599 (emacs_memftimeu): Renamed from emacs_memftime; new arg UT.
2600 Use emacs_strftimeu instead of emacs_strftime.
2601 (Fformat_time_string): Convert format string using
2602 Vlocale_coding_system, and convert result back. Synchronize time
2603 locale before invoking lower level function. Invoke
2604 emacs_memftimeu, passing ut, instead of emacs_memftime.
2605
2606 * emacs.c: Include <locale.h> if HAVE_SETLOCALE is defined.
2607 (Vmessages_locale, Vprevious_messages_locale, Vtime_locale,
2608 Vprevious_time_locale): New variables.
2609 (main): Invoke setlocale early, so that initial error messages are
2610 localized properly. But skip locale-setting if LC_ALL is "C".
2611 Fix up locale when it's safe to do so.
2612 (fixup_locale): Moved here from xterm.c.
2613 (synchronize_locale, synchronize_time_locale,
2614 synchronize_messages_locale): New functions.
2615 (syms_of_emacs): Accommodate above changes.
2616
2617 * fileio.c (report_file_error): Convert strerror output according
2618 to Vlocale_coding_system.
2619 (Finsert_file_contents): Check for arithmetic overflow in
2620 computations that depend on file size. Report IO errors
2621 with emacs_strerror, not strerror.
2622
2623 * fns.c (Fgethash): Declare dflt parameter.
2624
2625 * gmalloc.c: Do not define const to nothing if HAVE_CONFIG_H
2626 is defined; that's config.h's job.
2627
2628 * lisp.h (EMACS_INT, BITS_PER_EMACS_INT, EMACS_UINT): If _LP64,
2629 default these values to long, BITS_PER_LONG, and unsigned long.
2630 (VALBITS, MARKBIT, XINT): Do not assume 32-bit EMACS_INT.
2631 (PNTR_COMPARISON_TYPE): Default to EMACS_UINT, not to unsigned int.
2632 (code_convert_string_norecord, fixup_locale,
2633 synchronize_messages_locale, synchronize_time_locale,
2634 emacs_open, emacs_close, emacs_read, emacs_write): New decls.
2635 All Emacs callers of open, close, read, write changed to use
2636 emacs_open, emacs_close, emacs_read, emacs_write.
2637
2638 * lread.c (file_offset, file_tell): New macros. All uses of ftell
2639 changed to file_tell.
2640 (saved_doc_string_position, prev_saved_doc_string_position): Now
2641 of type file_offset.
2642 (init_lread): Do not fix locale here; fixup_locale now does this.
2643
2644 * m/amdahl.h, s/usg5-4.h:
2645 (NSIG): Remove.
2646 (NSIG_MINIMUM): New macro.
2647
2648 * m/cydra5.h, m/dpx2.h, m/mips.h, m/pfa50.h, m/sps7.h, m/stride.h,
2649 m/ustation.h, s/gnu-linux.h, s/hpux.h, s/iris3-5.h, s/iris3-6.h,
2650 s/umips.h, s/usg5-4.h:
2651 (SIGIO): Do not undef.
2652 (BROKEN_SIGIO): New macro.
2653
2654 * m/ustation.h:
2655 (SIGTSTP): Do not undef.
2656 (BROKEN_SIGTSTP): New macro.
2657
2658 * s/gnu-linux.h:
2659 (SIGPOLL, SIGURG): Do not undef.
2660 (BROKEN_SIGPOLL, BROKEN_SIGURG): New macros.
2661
2662 * s/ptx4.h:
2663 (SIGINFO): Do not undef.
2664 (BROKEN_SIGINFO): New macros.
2665
2666 * m/delta.h, s/ptx.h, s/template.h: Doc fix.
2667
2668 * mktime.c, strftime.c: Update to glibc 2.1.2 version, with
2669 some Emacs-related changes merged.
2670
2671 * print.c (float_to_string): Prepend "-" to representation of a
2672 NaN if the NaN is negative.
2673
2674 * process.c (sys_siglist): Omit if HAVE_STRSIGNAL.
2675 (wait_reading_process_input): Use emacs_strerror, not strerror.
2676
2677 * process.c (status_message, sigchld_handler): Synchronize locale,
2678 then use strsignal istead of sys_siglist.
2679 * w32proc.c (sys_wait): Likewise.
2680
2681 * s/aix3-1.h, s/bsd4-1.h, s/dgux.h, s/gnu-linux.h, s/hiuxmpp.h,
2682 s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/osf1.h, s/rtu.h,
2683 s/sunos4-1.h, s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h,
2684 s/usg5-2.h, s/usg5-3.h, s/xenix.h:
2685 (open, close, read, write, INTERRUPTIBLE_OPEN,
2686 INTERRUPTIBLE_CLOSE, INTERRUPTIBLE_IO): Remove.
2687
2688 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): New macros.
2689
2690 * sysdep.c (sys_read, sys_write, read, write, sys_close, close,
2691 sys_open, open): Remove.
2692 (emacs_open, emacs_close, emacs_read, emacs_write): Always define;
2693 the old INTERRUPTIBLE_OPEN, INTERRUPTIBLE_CLOSE, and INTERRUPTIBLE_IO
2694 macros are no longer used.
2695 (emacs_open): Renamed from sys_open. Merge BSD4_1 version.
2696 (emacs_close): Renamed from sys_close.
2697 (emacs_read): Renamed from sys_read.
2698 (emacs_write): Renamed from sys_write.
2699 (sys_siglist): Do not declare if HAVE_STRSIGNAL.
2700 (dup2): Do not print error on failure; the real dup2 doesn't.
2701 (strsignal): New function, defined if !HAVE_STRSIGNAL.
2702
2703 * syssignal.h (SIGINFO): Undef if defined and if BROKEN_SIGINFO
2704 is defined.
2705 (SIGIO, SIGPOLL, SIGTSTP, SIGURG): Likewise.
2706 (NSIG): If less than NSIG_MINIMUM, define to NSIG_MINIMUM.
2707 (strsignal): Declare if !HAVE_STRSIGNAL.
2708
2709 * unexelf.c (ElfBitsW, ELFSIZE, ElfExpandBitsW): New macros.
2710 (ElfW): Define in terms of ElfExpandBitsW.
2711
2712 * w32proc.c (sys_siglist): Remove decl.
2713
2714 * xdisp.c (decode_mode_spec): 3rd arg is int, not char, to comply
2715 with ANSI C.
2716 (display_string): Declare face_string_pos arg.
2717
2718 * xfns.c (Fx_show_tip): Declare timeout param.
2719
2720 * xterm.c: No need to include locale.h.
2721 (x_alloc_lighter_color, x_setup_relief_color):
2722 Pass arg as double, not float, for compatibility with ANSI C.
2723 (fixup_locale): Move to emacs.c.
2724 (x_term_init): Do not setlocale or fixup locale; the main program
2725 does this now.
2726
2f0b74ea
DL
27271999-10-18 Dave Love <fx@gnu.org>
2728
2729 * doc.c (Fdocumentation_property): Gcpro `tem'.
2730
471aa4a0
KH
27311999-10-18 Kenichi Handa <handa@etl.go.jp>
2732
2733 * lread.c (Fload): Calculate bytes of filename correctly.
2734 (openp): Likewise.
2735
aca2020b
KH
27361999-10-18 Keisuke Nishida <kxn30@po.cwru.edu>
2737
2738 * print.c (print_preprocess): In case print-circle is nil,
2739 add OBJ to Vprint_number_table only when OBJ is a symbol.
2740
1f5fe392 27411999-10-18 Kenichi Handa <handa@etl.go.jp>
b843d1ae
KH
2742
2743 * coding.c (code_convert_string): Add record_unwind_protect to
2744 assure setting inhibit_pre_post_conversion back to zero. Take
2745 care of the multibyteness of the working buffer.
2746
2747 * coding.c (inhibit_pre_post_conversion): New variable.
2748 (setup_coding_system): If inhibit_pre_post_conversion is nonzero,
2749 ignore post-read-conversion and pre-write-conversion property of
2750 the coding system.
2751 (code_convert_region_unwind): New function.
2752 (code_convert_region): Set inhibit_pre_post_conversion to 1 while
2753 running pre-write-conversion and post-read-conversion.
2754 (code_convert_string): Likewise.
2755
cd876a91
GM
27561999-10-17 Miles Bader <miles@gnu.org>
2757
2758 * editfns.c: Doc fix.
2759
27601999-10-17 Miles Bader <miles@gnu.org>
2761
2762 * editfns.c (Fconstrain_to_field): Make sure we don't violate the
2763 argument preconditions of find_before_next_newline in the case
2764 where both ONLY_IN_LINE and ESCAPE_FROM_EDGE are set and OLD_POS
2765 was indeed at the edge.
2766
27671999-10-17 Miles Bader <miles@gnu.org>
2768
2769 * minibuf.c (Fminibuffer_complete_and_exit): Supply value for new
2770 ESCAPE_FROM_EDGE parameter to Ffield_beginning.
2771
2772 * editfns.c (text_property_eq, text_property_stickiness): Don't
2773 use initializers for auto variables of type Lisp_Object.
2774 (find_field): Likewise. Use braces around nested ifs.
2775 (Fline_end_position): Store the raw eol in a variable, so that the
2776 final expression doesn't look so ugly.
2777 (Fconstrain_to_field): Doc fix.
2778 (preceding_pos): Renamed from `preceeding_pos'.
2779 (text_property_stickiness, find_field): Call preceding_pos,
2780 not preceeding_pos.
2781
27821999-10-17 Miles Bader <miles@gnu.org>
2783
2784 * editfns.c (Ffield_string_no_properties): New function.
2785 (text_property_stickiness, preceeding_pos): New functions.
2786 (Ffield_string): Remove PROPS parameter.
2787 (find_field): Add MERGE_AT_BOUNDARY parameter.
2788 Rewrite to use stickiness of `field' property to resolve
2789 ambiguous cases.
2790 (Ffield_beginning, Ffield_end): Add ESCAPE_FROM_EDGE parameter.
2791 (Fconstrain_to_field): Likewise.
2792 (syms_of_editfns): Init Sfield_string_no_properties.
2793 (Ffield_string, Ferase_field, Ffield_end):
2794 Supply new MERGE_AT_BOUNDARY argument to find_field.
2795 (Fline_beginning_position, Fline_end_position): Supply new
2796 ESCAPE_FROM_EDGE parameter to Fconstrain_to_field.
2797 Pass a value of Qt for the ONLY_IN_LINE argument to
2798 Fconstrain_to_field (only matters if N != 1).
2799 * syntax.c (Fforward_word): Supply new ESCAPE_FROM_EDGE parameter
2800 to Fconstrain_to_field.
2801
2802 * minibuf.c (Fminibuffer_complete_word): Use
2803 Ffield_beginning to find the prompt end.
2804
28051999-10-17 Miles Bader <miles@gnu.org>
2806
2807 * editfns.c (Fconstrain_to_field): Add get/set-current-point
2808 behavior when NEW_POS is nil.
2809 (find_field): Use XSETFASTINT instead of make_number.
2810 * minibuf.c (Fminibuffer_complete_and_exit): Test for an empty
2811 input string by seeing where the field begins, instead of
2812 looking at text-properties.
2813
28141999-10-17 Miles Bader <miles@gnu.org>
2815
2816 * editfns.c (Qfield): New variable.
2817 (find_field, Ferase_field, Ffield_string,
2818 Ffield_beginning, Ffield_end, Fconstrain_to_field): New functions.
2819 (Fline_beginning_position, Fline_end_position): Constrain to any field.
2820 (make_buffer_string_both): Remove minibuffer-prompt hack.
2821 (syms_of_editfns): Initialize Qfield, and subr entries for
2822 field functions above.
2823 * minibuf.c (read_minibuf): Don't save minibuffer prompt length on
2824 minibuf_save_list.
2825 Don't initialize minibuffer prompt length.
2826 Wrap prompt text-properties around the entire prompt.
2827 Add 'prompt text-property to prompt.
2828 Get final value with Ffield_string instead of make_buffer_string.
2829 (read_minibuf_unwind): Don't restore minibuffer prompt length from
2830 minibuf_save_list.
2831 (do_completion): Get minibuffer input with Ffield_string
2832 instead of Fbuffer_string.
2833 Erase minibuffer input with Ferase_field instead of erase_buffer.
2834 (Fminibuffer_complete_and_exit): Likewise.
2835 Test whether buffer is empty by looking for the 'prompt text
2836 property at the end.
2837 Set prompt length by looking for the end of the prompt text property,
2838 and save prompt length for later use (since there is no longer a
2839 buffer variable to get it from).
2840 (Fminibuffer_prompt_width, Fminibuffer_prompt_end): Functions removed.
2841 (syms_of_minibuf): Remove initializations of
2842 Sminibuffer_prompt_width and Sminibuffer_prompt_end.
2843 * buffer.h (struct buffer): Remove prompt_end_charpos field.
2844 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer, Fkill_buffer):
2845 Don't initialize prompt_end_charpos field.
2846 * syntax.c (Fforward_word): Likewise.
2847 Constrain to any field.
2848
3f6f7508
GM
28491999-10-16 Gerd Moellmann <gerd@gnu.org>
2850
2851 * window.c (enum save_restore_action): New.
2852 (save_restore_orig_size): Change parameter list. Add
2853 functionality to check for valid orig_top and orig_height members
2854 in a window tree.
2855 (grow_mini_window): Call save_restore_orig_size with new parameter
2856 list.
2857 (shrink_mini_window): Restore old window sizes only if old
2858 size information is valid in all windows in a window tree.
2859
06482119
GM
28601999-10-15 Gerd Moellmann <gerd@gnu.org>
2861
2710454d
GM
2862 * xmenu.c (set_frame_menubar): Don't call
2863 x_set_menu_resources_from_menu_face here.
2864 (update_frame_menubar): Call x_set_menu_resources_from_menu_face.
2865
06482119
GM
2866 * xfns.c (gif_load): Fix handling of interlaced GIFs.
2867
17fa2837
DL
28681999-10-14 Dave Love <fx@gnu.org>
2869
2870 * xdisp.c (handle_fontified_prop): GCPRO `pos'.
2871
45f93416
GM
28721999-10-14 Gerd Moellmann <gerd@gnu.org>
2873
2874 * process.c (Fopen_network_stream): Don't loop if gethostbyname
2875 fails and h_errno is TRY_AGAIN.
2876
c765b723
DL
28771999-10-13 Dave Love <fx@gnu.org>
2878
2879 * filelock.c (lock_file): Move gcpro of `fn'.
2880
dace7f4e
GM
28811999-10-10 Gerd Moellmann <gerd@gnu.org>
2882
2883 * keyboard.c (auto-save-interval): Fix documentation.
2884
83c8f461 28851999-10-09 Richard M. Stallman <rms@gnu.org>
73fb36f1
RS
2886
2887 * print.c (print): When removing objects from Vprint_number_table,
2888 only scan the newly added objects.
2889 (print_preprocess): If OBJ is a gensym, and print-continuous-numbering,
2890 unconditionally force it to stay in the table.
2891
85177c86
GM
28921999-10-09 Gerd Moellmann <gerd@gnu.org>
2893
2894 * xfns.c (prepare_image_for_display): Don't try to load image if
2895 loading it failed before.
2896 (lookup_image, prepare_image_for_display): Remember if loading the
2897 image failed.
2898 (xpm_load): Add missing UNBLOCK_INPUT.
2899
2900 * dispextern.h (struct image): New member load_failed_p.
2901
11e4de5d
SM
29021999-10-08 Stefan Monnier <monnier@cs.yale.edu>
2903
f28eba7b 2904 * fileio.c (Fmake_temp_name): Add a reference to `make-temp-file'
11e4de5d
SM
2905 in the docstring.
2906
f1da8f06
GM
29071999-10-08 Gerd Moellmann <gerd@gnu.org>
2908
2909 * xterm.c (XTread_socket) <ClientMessage, WM_TAKE_FOCUS>:
2910 Don't call XSetInputFocus because that can generate additional
2911 FocusIn events.
2912
c37bbd4f
GM
29131999-10-07 Jeffrey C Honig <jch@bsdi.com>
2914
2915 * bsdos4.h [HAVE_LIBNCURSES]: Define TERMINFO and LIBS_TERMCAP.
2916
83c8f461 29171999-10-07 Richard M. Stallman <rms@gnu.org>
78cc5c64
GM
2918
2919 * process.c (wait_reading_process_input): When trying to suck
2920 input from one process, for accept-process-output,
2921 exit that loop if we get EAGAIN or EWOULDBLOCK.
2922
577d9e2f
GM
29231999-10-07 Gerd Moellmann <gerd@gnu.org>
2924
2925 * xfaces.c (Qbitmap_spec_p): Replaces Qpixmap_spec_p.
2926 (Fbitmap_spec_p): Replaces Fpixmap_spec_p.
2927 (load_pixmap): Use Fbitmap_spec_p and Qbitmap_spec_p instead of
2928 Fpixmap_spec_p and Qpixmap_spec_p.
2929 (load_face_colors, check_lface_attrs,
2930 merge_face_vector_with_property,
2931 Finternal_set_lisp_face_attribute): Use Fbitmap_spec_p.
2932 (syms_of_xfaces): Initialize Qbitmap_spec_p, defsubr
2933 Fbitmap_spec_p.
2934
f5737ad2
GM
29351999-10-07 Gerd Moellmann <gerd@gnu.org>
2936
2937 * xdisp.c (display_menu_bar): Use MENU_FACE_ID instead of
2938 MODE_LINE_FACE_ID.
2939
2940 * xfaces.c (toplevel) [USE_MOTIF]: Include some Motif headers.
2941 (struct x_resources) [USE_X_TOOLKIT]: New.
2942 (xm_apply_resources, xm_set_menu_resources_from_menu_face)
2943 [USE_MOTIF]: New.
2944 (xl_apply_resources, xl_set_menu_resources_from_menu_face)
2945 [USE_LUCID]: New.
2946 (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]: New.
2947 (Qmenu): New.
2948 (syms_of_xfaces): Initialize Qmenu.
2949 (realize_basic_faces): Realize face `menu'.
2950 (resolve_face_name): New.
2951 (lface_from_face_name): Use it.
2952 (Finternal_set_lisp_face_attribute): Ditto.
2953 (Fpixmap_spec_p): Rewritten. Extend doc string.
2954
2955 * xmenu.c (set_frame_menubar, xmenu_show): Call
2956 x_set_menu_resources_from_menu_face.
2957
2958 * dispextern.h (enum face_id): Add MENU_FACE_ID.
2959 (toplevel): Include X11/Intrinsic.h.
2960
6a1aa823
DL
29611999-10-03 Ken'ichi Handa <handa@gnu.org>
2962
2963 * coding.c (DECODE_CHARACTER_ASCII): Decode ASCII invocated to GR
2964 correctly.
2965
26901792
DL
29661999-09-30 Kenichi Handa <handa@etl.go.jp>
2967
2968 * category.c (modify_lower_category_set): Set default value of
2969 TABLE correctly.
2970
2971 * minibuf.c (Fminibuffer_complete_word): Calculate string byte
2972 size correctly.
2973
29741999-09-29 Gerd Moellmann <gerd@gnu.org>
2975
2976 * editfns.c (Fpropertize): Renamed from Fproperties.
2977
29781999-09-29 Gerd Moellmann <gerd@gnu.org>
2979
2980 * xdisp.c (resize_mini_window): Do nothing if frame is an X
2981 frame that hasn't been initialized yet.
2982
83c8f461 29831999-09-28 Richard M. Stallman <rms@gnu.org>
a04f1a93
PR
2984
2985 * keymap.c (Fsingle_key_description): Make tem big enough.
2986 (describe_buffer_bindings): Make buf big enough.
2987
83c8f461 29881999-09-27 Richard M. Stallman <rms@gnu.org>
d177c583
PR
2989
2990 * intervals.c (get_local_map): Use indirect_function,
2991 not Findirect_function.
2992
26901792
DL
29931999-09-27 Dave Love <fx@gnu.org>
2994
2995 * cm.h: Remove unneeded declaration of ospeed.
2996
29971999-09-26 Gerd Moellmann <gerd@gnu.org>
2998
2999 * lisp.h (toplevel): Add prototype for
3000 next_single_char_property_change.
3001
3002 * textprop.c (next_single_char_property_change): New.
3003
3004 * xdisp.c (display_prop_end, invisible_text_between_p): Use
3005 next_single_char_property_change.
3006
30071999-09-25 Gerd Moellmann <gerd@gnu.org>
3008
3009 * editfns.c (Fproperties): New.
3010 (syms_of_editfns): Defsubr it.
3011
3012 * xfns.c (lookup_image): Set image's timestamp because it's
3013 used when we look it up.
3014
30151999-09-23 Gerd Moellmann <gerd@gnu.org>
3016
3017 * window.c (enlarge_window): Add window parameter instead of using
3018 selected_window.
3019 (Fdisplay_buffer): Call it with window parameter instead of
3020 setting selected_window.
3021 (Fenlarge_window, Fshrink_window): Ditto.
3022 (shrink_mini_window): If there is no recorded height and position
3023 info, resize mini-window to height 1.
3024
3025 * xfns.c (image_error): Use add_to_log.
3026
3027 * xfaces.c (load_pixmap): Call add_to_log without frame parameter.
3028 (load_face_font_or_fontset, load_color,
3029 merge_face_vector_with_property): Ditto.
3030
3031 * dispextern.h: Add prototype for add_to_log.
3032
3033 * xfaces.c (add_to_log): Move to xdisp.c.
3034
3035 * xdisp.c (add_to_log): Moved from xfaces.c. Remove frame
3036 parameter.
3037
30381999-09-23 Gerd Moellmann <gerd@gnu.org>
3039
3040 * xterm.c (XTread_socket) <MotionNotify>: Change #ifdef
3041 USE_X_TOOLKIT to #ifdef USE_TOOLKIT_SCROLL_BARS.
3042
3043 * xdisp.c (resize_mini_window): Use grow_mini_window and
3044 shrink_mini_window.
3045
3046 * window.c (window_min_size): Add parameter ignore_fixed_p.
3047 (change_window_height): Call window_min_size with new parameter.
3048 (shrink_window_lowest_first, save_restore_orig_size,
3049 grow_mini_window, shrink_mini_window): New.
3050 (make_window, replace_window): Initialize orig_top and
3051 orig_height.
3052 (enlarge_window): Renamed from change_window_height. Make it
3053 static.
3054 (Fdisplay_buffer, Fenlage_window, Fshrink_window): Call
3055 enlarge_window instead of change_window_height.
3056
3057 * window.h (struct window): New members orig_top, orig_height.
3058 (toplevel): Add prototypes for grow_mini_window and
3059 shrink_mini_window. Remove prototype for change_window_height.
3060
30611999-09-21 Eli Zaretskii <eliz@gnu.org>
3062
3063 * frame.c (frame_name_fnn_p): Fix previous change.
3064
30651999-09-20 Gerd Moellmann <gerd@gnu.org>
3066
3067 * minibuf.c (toplevel): Move include of stdio.h to other includes.
3068
3069 * dispnew.c (direct_output_for_insert): Cast arguments to
3070 safe_bcopy to char *.
3071
3072 * lread.c (readchar): Remove unused variables.
3073 (read_filtered_event, read1, Fmapatoms): Ditto.
3074 (toplevel): Include intervals.h.
3075
3076 * eval.c (Fsignal): Remove unused variables.
3077 (Fcommandp, do_autoload): Ditto.
3078
3079 * lisp.h: Add prototype for safe_bcopy, fatal.
3080
3081 * editfns.c (init_editfns): Remove unused variables.
3082 (Fgoto_char, Fchar_after, Fformat): Ditto.
3083 (message_text, message_length): Put in #ifndef HAVE_MENUS.
3084
3085 * data.c (find_symbol_value): Remove unused variables.
3086 (Faref, Fstring_to_number): Ditto.
3087 (toplevel): Include stdio.h.
3088 (Fnumber_to_string): Cast XINT to long for %ld.
3089
3090 * casefiddle.c (casify_object): Remove unused variables.
3091 (casify_region): Ditto.
3092
3093 * filelock.c (get_boot_time): Put local variable used in
3094 conditinally compiled section in #ifdef.
3095 (toplevel): Include stdio.h.
3096
3097 * keymap.c (Flookup_key, Faccessible_keymaps, describe_vector,
3098 keys_of_keymap, syms_of_keymap): Remove unused variables.
3099
31001999-09-20 Gerd Moellmann <gerd@gnu.org>
3101
3102 * xdisp.c (sync_frame_with_window_matrix_rows): Disable frame rows
3103 whose corresponding window rows have been disabled in
3104 try_window_id.
3105
31061999-09-20 Gerd Moellmann <gerd@gnu.org>
3107
3108 * xdisp.c (compute_window_start_on_continuation_line): Handle case
3109 that window start is out of range.
3110 (handle_display_prop, handle_single_display_prop): Replace
3111 marginal area specifications like `left-margin' with `(margin
3112 left-margin)'.
3113 (Qmargin): New.
3114 (syms_of_xdisp): Initialize Qmargin.
3115
31161999-09-19 Gerd Moellmann <gerd@gnu.org>
3117
3118 * syntax.c (update_syntax_table, find_defun_start, back_comment,
3119 describe_syntax, skip_chars): Remove unused variables.
3120 (back_comment, forw_comment): Add braces to if-statement with
3121 if-else as dependent statement.
3122
3123 * process.c (list_processes_1): Remove unused variables.
3124 (Fopen_network_stream, create_process): Add parentheses to
3125 conditional expressions.
3126 (create_process): Put declaration of sigchld in #if 0.
3127 (Fopen_network_stream): Removed unused variables.
3128 (Fopen_network_stream, wait_reading_process_input,
3129 wait_reading_process_input, send_process, send_process): Ditto.
3130 (toplevel): Add prototypes for set_waiting_for_input and
3131 keyboard_bit_set.
3132
3133 * abbrev.c (Fexpand_abbrev): Remove unused variables.
3134
3135 * textprop.c (Fset_text_properties): Remove unused variables.
3136 (text_property_list, verify_interval_modification,
3137 interval_has_all_properties): Ditto.
3138
3139 * callproc.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
3140 (Fcall_process): Remove unused variable.
3141
3142 * keyboard.c (Frecursive_edit): Remove unused variable.
3143 (command_loop_1, safe_run_hooks, kbd_buffer_get_event,
3144 timer_check, make_lispy_event, menu_bar_items,
3145 menu_bar_one_keymap, menu_bar_item, parse_menu_item,
3146 parse_tool_bar_item, read_char_x_menu_prompt, read_key_sequence,
3147 kbd_buffer_get_event, make_lispy_event, read_char_x_menu_prompt,
3148 read_key_sequence): Ditto. Fread_key_sequence,
3149 Fread_key_sequence_vector, Fsuspend_emacs): Ditto.
3150 (read_key_sequence) [GOBBLE_FIRST_EVENT]: Put local variables only
3151 used when GOBBLE_FIRST_EVENT is defined in #ifdef
3152 (Fexecute_extended_command): Cast XINT to long for %ld.
3153 (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
3154 (toplevel): Include sys/types.h.
3155
3156 * lisp.h (RETURN_UNGCPRO): Use do-while (0) idiom.
3157 (toplevel): Add prototypes for stuff_char, and
3158 code_convert_string_norecord.
3159
31601999-09-19 Gerd Moellmann <gerd@gnu.org>
3161
3162 * buffer.h: Add prototype for r_re_alloc.
3163
3164 * insdel.c (copy_text): Removed unused variables.
3165 (count_combining_after, count_combining_after, insert_1_both,
3166 insert_from_string_1, insert_from_buffer_1, check_markers): Ditto.
3167 (adjust_after_replace, replace_range): Add parentheses to logical
3168 expressions. Remove unused variables.
3169 (CHECK_BYTE_COMBINING_FOR_INSERT): Add parentheses to logical
3170 expression.
3171
3172 * alloc.c (Fgarbage_collect): Remove unused variable.
3173 (compact_strings): Add parentheses around assignments in
3174 conditional context.
3175 (toplevel): Put declaration of unused function clear_marks
3176 in #if 0 like its definition.
3177
3178 * lisp.h: Add prototype for shrink_regexp_cache,
3179 sweep_weak_hash_tables.
3180
31811999-09-19 Dave Love <fx@gnu.org>
3182
3183 * process.c (Fopen_network_stream): Use strerror, not gai_strerror.
3184
3185 * doc.c (read_bytecode_char): Declare arg.
3186
3187 * lisp.h: Declare Fcurrent_message, Fmake_temp_name,
3188 read_bytecode_char, Fx_hide_busy_cursor, getloadavg.
3189
31901999-09-18 Richard Stallman <rms@gnu.org>
3191
3192 * xdisp.c (echo_area_display): Turn off code that returned
3193 without doing anything when using a terminal frame.
3194
83c8f461 31951999-09-17 Richard M. Stallman <rms@gnu.org>
27271329
PR
3196
3197 * unexelf.c (unexec): Don't get confused by a short section
3198 just before the bss section.
3199
26901792
DL
32001999-09-16 Gerd Moellmann <gerd@gnu.org>
3201
3202 * emacs.c (main): Remove unused variables.
3203 (sort_args, Fkill_emacs, Fkill_emacs): Ditto.
3204
3205 * lisp.h: Add prototype for uninterrupt_malloc, memory_warnings,
3206 init_fileio_once, syms_of_sound, init_xfns, init_fns
3207 init_sound, check_message_stack.
3208
3209 * emacs.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
3210
3211 * intervals.c (rotate_right, rotate_left): Add braces to avoid
3212 ambiguous else warning.
3213 (split_interval_left): Remove unused variables.
3214 (previous_interval, adjust_intervals_for_deletion,
3215 set_point_both, set_point_both, set_intervals_multibyte_1): Ditto.
3216 (icount, idepth, zero_length): Move into #if 0 section below
3217 original position where these are used.
3218
3219 * buffer.h [REL_ALLOC]: Add prototypes for r_alloc and r_alloc_free.
3220
3221 * buffer.c (Fkill_buffer): Remove unused variables.
3222 (Fkill_buffer, overlays_at, overlays_in, recenter_overlay_lists,
3223 fix_overlays_in_range, Fmove_overlay, Fprevious_overlay_change,
3224 init_buffer_once, (syms_of_buffer): Ditto.
3225
3226 * xrdb.c (get_fallback): Remove unused variable.
3227 (x_load_resources): Ditto. Put local variable used for Motif only
3228 in #ifdef USE_MOTIF.
3229
32301999-09-16 Gerd Moellmann <gerd@gnu.org>
3231
3232 * minibuf.c (read_minibuf): Remove unused variables.
3233 (read_minibuf, Fread_buffer, scmp, Fcompleting_read): Ditto.
3234 (do_completion): Move assignment out of conditional context.
3235 (Fdisplay_completion_list): Add parentheses to conditional expression.
3236
3237 * cm.c (toplevel) [HAVE_TERMCAP_H]: Include termcap.h.
3238
3239 * lisp.h: Add prototype for no_switch_window.
3240
3241 * window.c (Fset_window_buffer): Remove unused variables.
3242 (Fset_window_margins): Ditto.
3243
3244 * xdisp.c (resize_mini_window): Temporarily set the selected
3245 window's or Vminibuf_scroll_window's height to "fixed" around
3246 the call the change_window_height.
3247
3248 * window.c (window_fixed_size_p): Check window's height_fixed_p
3249 flag.
3250
3251 * window.h (struct window): New member height_fixed_p.
3252
3253 * dispnew.c (direct_output_forward_char): Don't use this method
3254 if showing a message or a message was just cleared because we
3255 might need to resize the mini-window.
3256
32571999-09-16 Gerd Moellmann <gerd@gnu.org>
3258
3259 * frame.c (Fdelete_frame): Correct local variable pointing to
3260 selected frame after selecting new frame.
3261
32621999-09-15 Richard Stallman <rms@gnu.org>
3263
3264 * puresize.h (BASE_PURESIZE): Increase to 525000.
3265
3266 * filelock.c (Vtemporary_file_directory): New variable.
3267 (syms_of_filelock): Set up Lisp variable.
3268
32691999-09-15 Gerd Moellmann <gerd@gnu.org>
3270
3271 * term.c (OUTPUT_IF, OUTPUT1_IF): Use do-while.
3272 (encode_terminal_code): Remove unused variables.
3273 (turn_off_face): Ditto.
3274 (toplevel): Include termcap.h if HAVE_TERMCAP_H.
3275
3276 * dispnew.c (update_frame_line): If writing whole desired line,
3277 don't clear to end of line if already at the end.
3278
32791999-09-15 Gerd Moellmann <gerd@gnu.org>
3280
3281 * xdisp.c (resize_mini_window): Don't report changed window
3282 height if it actually hasn't changed.
3283
3284 * widget.c (set_frame_size, EmacsFrameSetCharSize): Remove
3285 unused variables.
3286 (mark_shell_size_user_specified): Put in #if 0 because not used.
3287 (create_frame_gcs): Put in #if 0 because currently unused.
3288 (first_frame_p): Ditto.
3289
3290 * xmenu.c (single_menu_item, Fx_popup_menu, Fx_popup_menu,
3291 single_submenu, update_frame_menubar, set_frame_menubar,
3292 free_frame_menubar, xmenu_show, xdialog_show): Remove unused
3293 variables.
3294
3295 * print.c (PRINTFULLP): Removed because it is no longer used and
3296 is misleading.
3297 (Ferror_message_string): Remove unused variables.
3298 (print_object): Cast argument of sprintf to long for `%ld'
3299 specifier. Remove unused variable.
3300
33011999-09-14 Gerd Moellmann <gerd@gnu.org>
3302
3303 * sound.c (Fplay_sound): Remove usused variables.
3304 (be2hs): Put in #if 0 because it's currently not used.
3305
33061999-09-14 Ken Raeburn <raeburn@gnu.org>
3307
3308 * print.c (Ferror_message_string, print_error_message,
3309 print_object): Use XCAR, XCDR and XFLOAT_DATA instead of explicit
3310 member access.
3311
33121999-09-14 Gerd Moellmann <gerd@gnu.org>
3313
3314 * frame.h (CHECK_FRAME, CHECK_LIVE_FRAME): Put code in do-while.
3315
3316 * frame.c (Fnext_frame): Remove unused variable(s).
3317 (Fprevious_frame, Fmouse_pixel_position, frame_name_fnn_p): Ditto.
3318 (store_frame_param): Add parentheses to conditional expression.
3319 (Fmodify_frame_parameters): Remove unused variables.
3320 (Fmodify_frame_parameters, Fset_frame_size, Fset_frame_position):
3321 Ditto.
3322
3323 * xfns.c (x_set_background_color): Remove unused variable(s).
3324 (x_set_border_pixel): Ditto.
3325 (x_set_menu_bar_lines): Put local variable used only for
3326 non-toolkit case in #ifdef/#endif.
3327 (x_figure_window_size): Remove unused variable(s).
3328 (x_figure_window_size, x_window, lookup_image,
3329 xbm_read_bitmap_file_data, x_build_heuristic_mask, pbm_load,
3330 png_load, jpeg_load, gif_load, x_create_tip_frame,
3331 x_create_tip_frame, Fx_show_tip, x_set_border_pixel): Ditto.
3332
3333 * xterm.c (x_scroll_bar_handle_click): Compile only if
3334 not USE_TOOLKIT_SCROLL_BARS.
3335 (x_scroll_bar_set_handle, x_scroll_bar_note_movement): Ditto.
3336
3337 * dispextern.h: Add prototypes for gamma_correct and
3338 x_kill_gs_process.
3339
3340 * xterm.c (x_produce_glyphs): Remove unused variable(s).
3341 (x_alloc_nearest_color_for_widget, note_tool_bar_highlight,
3342 x_set_toolkit_scroll_bar_thumb): Ditto.
3343 (x_scroll_bar_create): Move local variable to the
3344 conditionally compiled section of code where it is used.
3345 (x_scroll_bar_create): Remove unused variable(s).
3346 (x_scroll_bar_remove, XTread_socket): Ditto.
3347 (XTread_socket) <ConfigureNotify>: Move variables used for
3348 non-toolkit case into conditionally compiled section of code.
3349
3350 * window.h (freeze_window_starts): Fix typo in prototype.
3351
3352 * xdisp.c (display_echo_area_1, try_window_id): Remove unused
3353 variable(s).
3354
3355 * lisp.h: Add prototype for debug_print.
3356
3357 * dispextern.h (xassert) [GLYPH_DEBUG]: Change definition
3358 to use do-while.
3359
3360 * fns.c (SXHASH_COMBINE): Add missing parentheses.
3361 (Fchar_table_range, Fset_char_table_default, mapcar1,
3362 Fyes_or_no_p, sweep_weak_hash_tables): Remove unused variable(s).
3363
3364 * lisp.h: Add prototype for getloadavg.
3365
33661999-09-14 Andreas Schwab <schwab@gnu.org>
3367
3368 * process.c (Fopen_network_stream): Avoid socket decriptor leak.
3369
3370 * lisp.h: Declare close_file_unwind.
3371
33721999-09-14 Richard Stallman <rms@gnu.org>
3373
3374 * filelock.c (get_boot_time): Make the temp name in the proper dir.
3375
33761999-09-13 Gerd Moellmann <gerd@gnu.org>
3377
3378 * xdisp.c (redisplay_window): Make sure start_at_line_beg
3379 is always set correctly.
3380
33811999-09-13 Dave Love <fx@gnu.org>
3382
3383 * xdisp.c (move_it_in_display_line_to): Make type consistent with
3384 declaration.
3385
33861999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
3387
3388 * xdisp.c (QCfile): Move here from xfns.c.
3389 (syms_of_xdisp): Initialize it.
3390 (message2_nolog): Change for Lisp_Object selected_frame.
3391 (message3_nolog, message_with_string, message,
3392 setup_echo_area_for_printing, truncate_echo_area,
3393 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
3394
33951999-09-13 Dave Love <fx@gnu.org>
3396
3397 * xterm.c: Don't continue #define args for benefit of old cc.
3398 (xt_action_hook): Indent #error for benefit of K&R cc.
3399
34001999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
3401
3402 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
3403 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
3404 (XRINGBELL): Removed.
3405
34061999-09-13 Dave Love <fx@gnu.org>
3407
3408 * xfns.c (x_put_x_image): Make type consistent with declaration.
3409
3410 * fns.c (Fmake_hash_table): Fix string continuation.
3411
34121999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
3413
3414 * xfns.c (QCfile): Moved to xdisp.c.
3415 (syms_of_xfns): Don't initialize QCfile.
3416 (check_x_frame): Change for Lisp_Object selected_frame.
3417 (check_x_display_info, x_get_resource_string): Ditto.
3418
34191999-09-13 Gerd Moellmann <gerd@gnu.org>
3420
3421 * minibuf.c (choose_minibuf_frame): Don't try to set the
3422 mini-buffer window's buffer, if the buffer is invalid.
3423
3424 * xfns.c (QCfile): Moved to xdisp.c.
3425 (syms_of_xfns): Don't initialize QCfile.
3426
3427 * xdisp.c (QCfile): Move here from xfns.c.
3428 (syms_of_xdisp): Initialize it.
3429
3430 * lisp.h (selected_frame): Add external declaration.
3431
3432 * xselect.c (x_own_selection): Change for Lisp_Object selected_frame.
3433 (Fx_store_cut_buffer_internal): Ditto.
3434 (Fx_rotate_cut_buffers_internal): Ditto.
3435
3436 * xfaces.c (frame_or_selected_frame): Change for Lisp_Object
3437 selected_frame.
3438 (Finternal_set_lisp_face_attribute): Ditto.
3439 (Finternal_get_lisp_face_attribute): Ditto.
3440 (Finternal_lisp_face_empty_p): Ditto.
3441 (Fdump_face): Ditto.
3442
3443 * term.c (OUTPUT): Change for Lisp_Object selected_frame.
3444 (OUTPUT_IF, ring_bell, set_terminal_modes, reset_terminal_modes,
3445 set_terminal_window, set_scroll_region, reassert_line_highlight,
3446 change_line_highlight, cursor_to, raw_cursor_to, clear_to_end,
3447 clear_end_of_line, clear_end_of_line_raw, clear_end_of_line_raw,
3448 encode_terminal_code, write_glyphs, term_init): Ditto.
3449
3450 * sysdep.c (reset_sys_modes): Change for Lisp_Object selected_frame.
3451 (kbd_input_ast, read_input_waiting): Ditto.
3452
3453 * minibuf.c (choose_minibuf_frame): Change for Lisp_Object
3454 selected_frame.
3455 (read_minibuf): Ditto.
3456
3457 * keyboard.c (command_loop_1): Change for Lisp_Object
3458 selected_frame.
3459 (cmd_error_internal, command_loop_1, read_char,
3460 kbd_buffer_get_event, read_avail_input,
3461 read_char_minibuf_menu_prompt, read_key_sequence, Fsuspend_emacs,
3462 interrupt_signal, quit_throw_to_read_char): Ditto.
3463
3464 * fontset.c (Ffont_info): Change for Lisp_Object selected_frame.
3465 (Ffontset_info): DItto.
3466
3467 * emacs.c (handle_USR1_signal): Change for Lisp_Object selected_frame.
3468
3469 * dispnew.c (selected_frame): Make it a Lisp_Object.
3470 (adjust_frame_glyphs_initially): Change for Lisp_Object selected_frame.
3471 (direct_output_for_insert, direct_output_forward_char,
3472 init_display): Ditto.
3473
3474 * data.c (swap_in_symval_forwarding): Change for Lisp_Object
3475 selected_frame.
3476 (set_internal): Ditto.
3477
3478 * buffer.c (Fother_buffer): Change for Lisp_Object selected_frame.
3479 (record_buffer): Ditto.
3480
3481 * frame.c (Fmake_terminal_frame): Use SELECTED_FRAME.
3482 (do_switch_frame): Change for Lisp_Object selected_frame.
3483 (Fselected_frame): Ditto.
3484 (Fframe_first_window): Use SELECTED_FRAME.
3485 (Fframe_root_window): Change for Lisp_Object selected_frame.
3486 (Fframe_selected_window, Fset_frame_selected_window, Fnext_frame,
3487 Fprevious_frame, other_visible_frames, Fdelete_frame,
3488 Fmouse_position, Fmouse_pixel_position, Fmake_frame_visible,
3489 Fmake_frame_invisible, Ficonify_frame, Fraise_frame, Flower_frame,
3490 Fframe_parameters, Fmodify_frame_parameters, Fframe_char_height,
3491 Fframe_char_width, Fframe_pixel_height, Fframe_pixel_width,
3492 Fset_frame_height, Fset_frame_width): Ditto.
3493
34941999-09-13 Gerd Moellmann <gerd@gnu.org>
3495
3496 * xdisp.c (message2_nolog): Change for Lisp_Object selected_frame.
3497 (message3_nolog, message_with_string, message,
3498 setup_echo_area_for_printing, truncate_echo_area,
3499 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
3500
3501 * xmenu.c (Fx_popup_menu): Change for Lisp_Object selected_frame.
3502 (Fx_popup_dialog): Ditto.
3503
3504 * xfns.c (check_x_frame): Change for Lisp_Object selected_frame.
3505 (check_x_display_info, x_get_resource_string): Ditto.
3506
3507 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
3508 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
3509 (XRINGBELL): Removed.
3510
3511 * window.c (Fminibuffer_window): Change for Lisp_Object
3512 selected_frame.
3513 (Fwindow_at, Fprevious_window, window_loop, select_window_1,
3514 display_buffer_1, Fdisplay_buffer, temp_output_buffer_show,
3515 Fcurrent_window_configuration, init_window_once): Ditto.
3516
3517 * frame.h (SELECTED_FRAME): New.
3518
35191999-09-12 Ken Raeburn <raeburn@gnu.org>
3520
3521 * category.c (word_boundary_p): Use XCAR and XCDR.
3522 * ccl.c (ccl_driver, resolve_symbol_ccl_program,
3523 Fregister_code_conversion_map): Likewise.
3524 * coding.c (setup_coding_system, detect_coding_system,
3525 Ffind_operation_coding_system, Fset_coding_priority_internal):
3526 Likewise.
3527 * doc.c (get_doc_string, Fdocumentation,
3528 store_function_docstring): Likewise.
3529 * editfns.c (save_restriction_restore): Likewise.
3530 * eval.c (Fcond, Fmacroexpand, Fcondition_case, wants_debugger,
3531 skip_debugger, find_handler_clause, Fautoload, Fapply,
3532 run_hook_with_args, run_hook_list_with_args, Ffetch_bytecode):
3533 Likewise.
3534 * fileio.c (Ffind_file_name_handler, Finsert_file_contents,
3535 Fwrite_region, do_auto_save_unwind, Fdo_auto_save,
3536 Fread_file_name): Likewise.
3537 * filelock.c (unlock_all_files): Likewise.
3538 * insdel.c (Fcombine_after_change_execute): Likewise.
3539 * intervals.c (adjust_intervals_for_insertion): Likewise.
3540 * keymap.c (get_keymap_1, Fkeymap_parent, Fset_keymap_parent,
3541 Fset_keymap_parent, fix_submap_inheritance, access_keymap,
3542 store_in_keymap, Fcopy_keymap, define_as_prefix,
3543 current_minor_maps, Faccessible_keymaps,
3544 accessible_keymaps_char_table, Fkey_description,
3545 Fwhere_is_internal, where_is_internal_2, where_is_internal_1,
3546 describe_buffer_bindings, describe_map_tree, shadow_lookup,
3547 describe_map): Likewise.
3548 * lread.c (Fload, load_unwind, close_load_descs, read_vector,
3549 read_list, init_lread): Likewise.
3550 * search.c (Fmatch_data): Likewise.
3551 * sunfns.c (Fsun_menu_internal): Likewise.
3552 * syntax.c (describe_syntax): Likewise.
3553 * undo.c (record_insert, record_delete, Fundo_boundary,
3554 truncate_undo_list): Likewise.
3555 * vmsproc.c (child_sig): Likewise.
3556
3557 * editfns.c (Fformat): Use XFLOAT_DATA.
3558
35591999-09-12 Gerd Moellmann <gerd@gnu.org>
3560
3561 * keyboard.c (command_loop_1): Resize mini-window to the
3562 exact size of a message displayed, if any.
3563
3564 * xdisp.c (resize_mini_window): Add parameter exact_p. Resize
3565 to exact size if exact_p is non-zero.
3566 (display_echo_area_1): Call resize_mini_window with
3567 new parameter.
3568 (redisplay_internal): Ditto.
3569 (resize_echo_area_axactly): New.
3570
3571 * minibuf.c (read_minibuf_unwind): Call resize_mini_window with
3572 new parameter.
3573
3574 * dispextern.h: Change prototype of resize_mini_window.
3575 Add prototype for resize_echo_area_axactly.
3576
3577 * xfaces.c (Fx_family_fonts): Replaces Fx_font_list.
3578 (syms_of_xfaces): Defsubr accordingly.
3579
3580 * xdisp.c (hscroll_window_tree): Choose cursor row from
3581 desired or current matrix.
3582 (redisplay_internal): Hscroll before updating.
3583
35841999-09-12 Gerd Moellmann <gerd@gnu.org>
3585
3586 * syntax.c (Fforward_word): Use prompt_end_charpos instead
3587 of minibuffer_prompt_length.
3588
3589 * minibuf.c (read_minibuf): Use prompt_end_charpos instead
3590 of minibuffer_prompt_length.
3591 (read_minibuf_unwind): Ditto.
3592 (Fminibuffer_complete_and_exit): Ditto.
3593 (Fminibuffer_complete_word): Ditto.
3594 (Fminibuffer_prompt_end): Ditto.
3595
3596 * editfns.c (Fbuffer_string): Use prompt_end_charpos instead
3597 of minibuffer_prompt_length.
3598 (Fline_beginning_position): Ditto.
3599
3600 * buffer.c (Fget_buffer_create): Use prompt_end_charpos instead
3601 of minibuffer_prompt_length.
3602 (Fmake_indirect_buffer): Ditto.
3603 (Fkill_buffer): Ditto.
3604 (Ferase_buffer): Ditto.
3605
3606 * buffer.h (prompt_end_charpos): Replaces
3607 minibuffer_prompt_length.
3608
3609 * minibuf.c (read_minibuf): Return mini-buffer contents
3610 without the prompt.
3611
3612 * editfns.c (make_buffer_string_both): Take out the code
3613 to handle mini-buffer prompts.
3614 (Fbuffer_string): Handle the prompt here, instead.
3615
3616 * xfaces.c (lface_from_face_name): Resolve face aliases.
3617 (Qmode_line): Replaces Qmodeline.
3618 (realize_basic_faces): Use Qmode_line.
3619 (syms_of_xfaces): Initialize Qmode_line.
3620
36211999-09-12 Gerd Moellmann <gerd@gnu.org>
3622
3623 * minibuf.c (read_minibuf): Set minibuf_prompt_width to the
3624 current column after inserting prompt.
3625 (Fminibuffer_prompt_width): Return minibuf_prompt_width.
3626
3627 * xfaces.c (Qframe_update_face_colors): New.
3628 (syms_of_xfaces): Initialize call.
3629 (update_face_from_frame_parameter): Call that function when
3630 the frame's background changes.
3631
36321999-09-12 Richard Stallman <rms@gnu.org>
3633
3634 * insdel.c (del_range_1): Don't treat minibuffer prompt specially.
3635
36361999-09-12 Ken Raeburn <raeburn@gnu.org>
3637
3638 * alloc.c (Fcons, pure_cons, Fpurecopy, Fgarbage_collect,
3639 mark_object, mark_buffer): Use XCAR and XCDR.
3640 * bytecode.c (Fbyte_code): Likewise.
3641 * callint.c (Fcall_interactively, Fprefix_numeric_value):
3642 Likewise.
3643 * callproc.c (Fcall_process, Fcall_process_region, child_setup,
3644 getenv_internal): Likewise.
3645 * dired.c (file_name_completion): Likewise.
3646 * fns.c (Fsafe_length, concat, Fcopy_alist, Fmember, Fmemq, Fassq,
3647 assq_no_quit, Fassoc, Frassq, Frassoc, Fdelq, Fdelete, Freverse,
3648 Fplist_get, Fplist_put, internal_equal, mapcar1): Likewise.
3649 * indent.c (Fcompute_motion): Likewise.
3650 * process.c (decode_status, Fprocess_status, Fprocess_exit_status,
3651 list_processes_1, Fstart_process, Fopen_network_stream,
3652 wait_reading_process_input, read_process_output_call,
3653 kill_buffer_processes, sigchld_handler, exec_sentinel_unwind,
3654 status_notify, wait_reading_process_input): Likewise.
3655 * textprop.c (PLIST_ELT_P, property_value, set_properties,
3656 extend_property_ranges): Likewise.
3657 * w32faces.c (Fpixmap_spec_p, merge_face_list): Likewise.
3658 * w32fns.c (x_window_to_frame, x_set_frame_parameters,
3659 x_report_frame_params, x_set_cursor_type, x_icon_type,
3660 x_figure_window_size, Fx_create_frame, w32_load_system_font,
3661 w32_load_font, enum_font_cb2, w32_list_bdf_fonts, w32_list_fonts,
3662 w32_list_synthesized_fonts, w32_find_ccl_program, Fx_list_fonts,
3663 Fw32_find_bdf_fonts, w32_find_bdf_fonts_in_dir,
3664 x_display_info_for_name, Fx_display_list): Likewise.
3665 * w32menu.c (menubar_id_to_frame, single_keymap_panes,
3666 Fx_popup_menu, Fx_popup_dialog): Likewise.
3667 * w32proc.c (Fw32_set_keyboard_layout): Likewise.
3668 * w32term.c (x_window_to_scroll_bar, w32_read_socket,
3669 w32_term_init, x_delete_display): Likewise.
3670 * xfns.c (x_window_to_frame, x_any_window_to_frame,
3671 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
3672 x_top_window_to_frame, x_set_frame_parameters,
3673 x_report_frame_params, x_set_cursor_type, x_icon_type,
3674 x_figure_window_size, Fx_create_frame, x_display_info_for_name,
3675 Fx_display_list, x_create_tip_frame): Likewise.
3676 * xmenu.c (menubar_id_to_frame, single_keymap_panes,
3677 Fx_popup_menu, Fx_popup_dialog): Likewise.
3678 * xselect.c (x_own_selection, x_get_local_selection,
3679 x_handle_selection_request, x_handle_selection_clear,
3680 x_clear_frame_selections, wait_for_property_change_unwind,
3681 wait_for_property_change, x_handle_property_notify,
3682 copy_multiple_data, x_get_foreign_selection,
3683 lisp_data_to_selection_data, clean_local_selection_data,
3684 x_handle_selection_notify, Fx_get_selection_internal,
3685 x_disown_buffer_selections): Likewise.
3686 * xterm.c (x_window_to_scroll_bar, XTread_socket, x_list_fonts,
3687 x_load_font, x_find_ccl_program, x_term_init, x_delete_display):
3688 Likewise.
3689
3690 * alloc.c (make_float, make_pure_float, Fpurecopy): Use
3691 XFLOAT_DATA.
3692 * bytecode.c (Fbyte_code): Likewise.
3693 * floatfns.c (extract_float, Fexpt, Fabs, rounding_driver,
3694 fmod_float): Likewise.
3695
36961999-09-11 Richard Stallman <rms@gnu.org>
3697
3698 * xdisp.c (run_window_scroll_functions): If hook functions switch
3699 buffers, switch back after.
3700
37011999-09-11 Ken Raeburn <raeburn@gnu.org>
3702
3703 * charset.h (GET_TRANSLATION_TABLE): Use XCDR.
3704 * frame.h (FOR_EACH_FRAME): Use XCAR and XCDR.
3705 (PIXEL_X_FROM_CANON_X, PIXEL_Y_FROM_CANON_Y): Use XFLOAT_DATA.
3706 * keyboard.h (EVENT_HEAD, EVENT_START, EVENT_END, POSN_WINDOW,
3707 POSN_BUFFER_POSN, POSN_WINDOW_POSN, POSN_TIMESTAMP): Use XCAR and
3708 XCDR.
3709 * syntax.h (SYNTAX, SYNTAX_WITH_FLAGS, SYNTAX_MATCH): Use XCAR and
3710 XCDR.
3711
37121999-09-10 Richard Stallman <rms@gnu.org>
3713
3714 * xterm.c (XTread_socket): In XSetInputFocus, use RevertToParent,
3715 not RevertToPointerRoot.
3716 (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
3717 Fix the code to clear around the scroll bar.
3718
37191999-09-10 Keisuke Nishida <kxn30@po.cwru.edu>
3720
3721 * print.c: Support print-circle and related features.
3722 (Vprint_gensym_alist): Removed.
3723 (Vprint_circle, Vprint_continuous_numbering, print_number_index
3724 Vprint_number_table): New variables.
3725 (PRINT_NUMBER_OBJECT, PRINT_NUMBER_STATUS): New macros.
3726 (PRINTPREPARE, PRINTFINISH): Don't set Vprint_gensym_alist.
3727 (print, print_preprocess, print_preprocess_string, print_object):
3728 New/modified functions with print-circle feature. Use
3729 Vprint_number_table instead of Vprint_gensym_alist for print-gensym.
3730 (syms_of_print): Defined new Lisp variables `print-circle',
3731 `print-continuous-numbering', `print-number-table'.
3732
37331999-09-10 Gerd Moellmann <gerd@gnu.org>
3734
3735 * xfns.c (x_build_heuristic_mask): Accept a list `(R G B)'
3736 as background color specification instead of an integer.
3737 (image-cache-eviction-delay): Replaces image-eviction-seconds.
3738 (Vimage_cache_eviction_delay): Replaces Vimage_eviction_seconds.
3739 (clear_image_cache, syms_of_xfns): Use it.
3740 (Qpostscript): Replaces Qghostscript.
3741 (gs_type): Use it.
3742 (gs_image_p): Ditto.
3743 (syms_of_xfns): Initialize Qpostscript.
3744
37451999-09-10 Richard Stallman <rms@gnu.org>
3746
3747 * buffer.c (Ferase_buffer): Don't erase the minibuffer prompt.
3748
37491999-09-09 Richard Stallman <rms@gnu.org>
3750
3751 * editfns.c (Fline_beginning_position): Handle minibuffer prompt here.
3752
3753 * cmds.c (Fbeginning_of_line): Don't handle minibuffer prompt here.
3754
37551999-09-09 Gerd Moellmann <gerd@gnu.org>
3756
3757 * fns.c (Fmakehash): Accept just one optional argument TEST.
3758
3759 * xfns.c (QCindex): New.
3760 (syms_of_xfns): Initialize QCindex.
3761 (gif_load): Use it instead of `:image'.
3762
37631999-09-09 Richard Stallman <rms@gnu.org>
3764
3765 * fileio.c (Fwrite_region): Finish renaming CONFIRM to MUSTBENEW.
3766 (Fwrite_region) [DOS_NT]: Handle `excl' here too.
3767
37681999-09-08 Gerd Moellmann <gerd@gnu.org>
3769
3770 * xdisp.c (Qwhen): Replaces QCwhen.
3771 (syms_of_xdisp): Initialized it instead of QCwhen.
3772 (handle_single_display_prop): Use it instead of QCwhen.
3773
37741999-09-08 Ken'ichi Handa <handa@gnu.org>
3775
3776 * charset.c (translate_char): Reset MSBs of arguments of
3777 MAKE_CHAR.
3778 (CHAR_COMPONENTS_VALID_P): Fix for ASCII.
3779
37801999-09-08 Lars Magne Ingebrigtsen <larsi@gnus.org>
3781
3782 * editfns.c (Fbufsize): Accept an extra BUFFER parameter.
3783
3784 * fns.c (Fbase64_decode_region): Don't place point outside of the
3785 current accessible portion.
3786
37871999-09-07 Richard Stallman <rms@gnu.org>
3788
3789 * keymap.c (fix_submap_inheritance): Do nothing if the proper
3790 parent is an ancestor of SUBMAP; otherwise, add it as the
3791 ultimate ancestor.
3792
37931999-09-07 Gerd Moellmann <gerd@gnu.org>
3794
3795 * xdisp.c (handle_single_display_prop): Change conditional
3796 display property to `:when FORM . VALUE'.
3797
37981999-09-07 Richard Stallman <rms@gnu.org>
3799
3800 * fileio.c (Fwrite_region): Doc fix.
3801
38021999-09-07 Stefan Monnier <monnier@cs.yale.edu>
3803
3804 * fileio.c (Qexcl): New variable.
3805 (report_file_error): Handle EEXIST specially.
3806 (Fwrite_region): Special handling for CONFIRM = `excl'.
3807 (syms_of_fileio): Initialize Qexcl.
3808
38091999-09-07 Gerd Moellmann <gerd@gnu.org>
3810
3811 * xfns.c (x_set_foreground_color): Call
3812 update_face_from_frame_parameter.
3813 (x_set_background_color): Ditto.
3814 (x_set_mouse_color): Ditto.
3815 (x_set_cursor_color): Ditto.
3816 (x_set_border_color): Ditto.
3817 (x_set_scroll_bar_foreground): Ditto.
3818 (x_set_scroll_bar_background): Ditto.
3819
3820 * xfaces.c (recompute_basic_faces): Clear face cache.
3821 (Finternal_set_lisp_face_attribute): Modify frame parameters
3822 if attributes of certain faces are changed.
3823 (update_face_from_frame_parameter): New.
3824
3825 * xfaces.c (realize_basic_faces): Realize new basic faces.
3826
3827 * dispextern.h (SCROLL_BAR_FACE_ID, BORDER_FACE_ID,
3828 CURSOR_FACE_ID, MOUSE_FACE_ID): New.
3829
3830 * xfaces.c (Qscroll_bar, Qcursor, Qborder, Qmouse): New.
3831 (syms_of_xfaces): Intialize new symbols.
3832
3833 * fns.c (Fmakehash): Take one argument, test, make all the
3834 rest keyword arguments.
3835
3836 * window.c (Fset_window_margins): Make window the first argument.
3837 (set_window_buffer): Call Fset_window_margins with window as first
3838 argument.
3839
38401999-09-07 Gerd Moellmann <gerd@gnu.org>
3841
3842 * xfaces.c (Qfringe): Replaces Qmargin.
3843
38441999-09-07 Kenichi Handa <handa@etl.go.jp>
3845
3846 * charset.h: Lots of comments fixed.
3847 (PARSE_MULTIBYTE_SEQ): Make it work also for ASCII string.
3848 (STRING_CHAR_AND_CHAR_LENGTH): This macro removed.
3849
3850 * charset.c : Lots of comments fixed.
3851 (SPLIT_MULTIBYTE_SEQ): Make it work also for ASCII string.
3852 (CHAR_COMPONENTS_VALID_P): Name changed from
3853 CHAR_COMPONENT_VALID_P. Caller changed.
3854
38551999-09-06 Richard Stallman <rms@gnu.org>
3856
3857 * insdel.c (syms_of_insdel): Define Lisp variable
3858 inhibit-modification-hooks.
3859
38601999-09-06 Michael Sperber [Mr. Preprocessor] <sperber@informatik.uni-tuebingen.de>
3861
3862 * s/aix4-2.h (ALIGN_DATA_RELOC): Undefined to support new
3863 unexaix.c.
3864
3865 * s/aix3-1.h (ALIGN_DATA_RELOC): Defined to support new unexaix.c.
3866
38671999-09-06 Dave Love <fx@gnu.org>
3868
3869 * unexaix.c: New version incorporating Michael Sperber's changes
3870 from XEmacs. Should solve problems on AIX 4.3.
3871
3872 * lread.c (Vbyte_boolean_vars): New variable.
3873 (defvar_bool, syms_of_lread): Use it.
3874
38751999-09-05 Richard Stallman <rms@gnu.org>
3876
3877 * minibuf.c (read_minibuf): Put all three properties on the
3878 same range, the whole prompt.
3879
38801999-09-05 Gerd Moellmann <gerd@gnu.org>
3881
3882 * sound.c (Qplay_sound_functions): Replaces Qplay_sound_hook.
3883 (Fplay_sound, syms_of_sound): Use it.
3884 (parse_sound): Allow float volume values in the range [0, 1].
3885 (Fplay_sound): Ditto.
3886
3887 * window.c (Fset_window_vscroll): Make window the first argument,
3888 amount to scroll the second. Take non-negative vscroll as
3889 argument.
3890 (Fwindow_vscroll): Return non-negative vscroll.
3891
3892 * xfns.c (Fx_show_tip): Improve documentation.
3893
38941999-09-05 Gerd Moellmann <gerd@gnu.org>
3895
3896 * buffer.c, buffer.h, dispextern.h, dispnew.c, keyboard.c,
3897 window.c, xdisp.c, xfaces.c, xterm.c, keyboard.h: Change
3898 `top-line' and `top_line' to `header-line' and `header_line'.
3899 Likewise for similar spellings.
3900
39011999-09-05 Gerd Moellmann <gerd@gnu.org>
3902
3903 * xdisp.c (row_containing_pos): New.
3904 (try_window_id): Use it.
3905
3906 * alloc.c, dispextern.h, dispnew.c, frame.c, frame.h, keyboard.c,
3907 lisp.h, termhooks.h, window.c xdisp.c, xfaces.c, xfns.c, xterm.c:
3908 Change spelling of `toolbar' to `tool_bar' or `tool-bar'.
3909 Likewise for upper-case etc.
3910
39111999-09-05 Gerd Moellmann <gerd@gnu.org>
3912
3913 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
3914 Fix reference to renamed variable.
3915
39161999-09-04 Gerd Moellmann <gerd@gnu.org>
3917
3918 * window.c (Qwindow_size_fixed): Replaces Qfixed_window_size.
3919 (window_fixed_size_p): Use Qwindow_size_fixed instead of
3920 Qfixed_window_size.
3921 (syms_of_window): Ditto.
3922
3923 * fns.c (Fmakehash): Exchange optional test and size arguments.
3924
39251999-09-03 Gerd Moellmann <gerd@gnu.org>
3926
3927 * xterm.c (XTset_vertical_scroll_bar): Block input when clearing
3928 under newly created scroll bar.
3929 (expose_window): If window is not yet fully initialized, do
3930 nothing. This can happen when toolkit scroll bars are used and a
3931 window is split. Reconfiguring the scroll bars will generate an
3932 expose for a newly created window.
3933
3934 * frame.h (struct frame): New member `gamma'.
3935
3936 * xfns.c: Include math.h. Add extern declaration for atof in case
3937 we don't see one.
3938 (Qscreen_gamma): New.
3939 (struct x_frame_parm_table): Add prototypes, add
3940 x_set_screen_gamma.
3941 (gamma_correct): New function.
3942 (defined_color): Call it.
3943 (x_set_screen_gamma): New.
3944 (x_set_title): Add parameter old_value.
3945 (RES_TYPE_FLOAT): New.
3946 (x_get_arg): Handle RES_TYPE_FLOAT.
3947 (Fx_create_frame): Call x_default_parameter for `screen-gamma'.
3948 (lookup_pixel_color): Change call to x_alloc_nearest_color to
3949 new prototype.
3950 (lookup_rgb_color): Ditto.
3951 (syms_of_xfns): Initialize Qscreen_gamma.
3952
3953 * xterm.c (x_alloc_nearest_color_for_widget) [USE_X_TOOLKIT]:
3954 New. Allocate color for lwlib widgets.
3955 (x_alloc_nearest_color): Change parameter list include the
3956 frame on which to allocate colors. Gamma-correct colors.
3957 (x_alloc_lighter_color): Call x_alloc_lighter_color with new
3958 parameter list.
3959
3960 * xterm.h: Change protorype of x_alloc_nearest_color.
3961
39621999-09-03 Richard Stallman <rms@gnu.org>
3963
3964 * callproc.c: Delete the system-independent include of stdlib.h
3965 (leaving only the one in the WINDOWSNT conditional).
3966
39671999-09-03 Andrew Choi <choi@cs.hku.hk>
3968
3969 * callproc.c (call-process) [macintosh]: Call mac_run_command in
3970 sysdep.c. The Mac code is modeled after the DOS code.
3971
3972 * dispextern.h [macintosh]: Include macterm.h to define substitute X
3973 Window types and macros.
3974
3975 * frame.h: Do nothing if included a second time.
3976 (enum output_method): Add mac_output frame type.
3977 (union output_data): Add new alternative `mac'.
3978 (FRAME_MAC_P): New macro.
3979
3980 * frame.c (Fframep) [macintosh]: Handle mac frame type.
3981 (syms_of_frame_1): Initialize Qmac.
3982 (make_terminal_frame) [macintosh]: Initialize output_data.mac fields.
3983 (Fmake_terminal_frame) [macintosh]: Add an alternate error check.
3984 (Fmodify_frame_parameters) [macintosh]: Call
3985 mac_set_frame_parameter in macterm.c.
3986
3987 * keyboard.c [macintosh]: Set KBD_BUFFER_SIZE to a smaller value
3988 (512) because Mac compilers limit local data of a function to 32K.
3989
3990 * make-docfiles.c: Correctly handle input files with Mac-style
3991 eol's.
3992
3993 * sysdep.c: Define numerous routines to emulate Unix system calls.
3994
3995 * xfaces.c: on MacOS, define the set of colors listed in rgb.txt
3996 file of an X Window environment.
3997
3998 * xfaces.c: on MacOS, define the Lisp functions x-display-color-p,
3999 x-display-grayscale, x-color-defined-p, and x-color-values.
4000
4001 * sysdep.c [macintosh] (stat, fstat, mkdir, rmdir, utime, access)
4002 (open, creat, unlink, read, write, rename, fopen, pause, alarm)
4003 (signal, sleep, gmtime, localtime, ctime, time, index, mktemp)
4004 (getpwuid, getpwnam, dup, dup2, isatty, getgid, getegid, getuid)
4005 (geteuid, getpid, getenv, uname, opendir, closedir, readdir, getwd.):
4006 New functions, replacing POSIX features.
4007
4008 * sysdep.c [macintosh] (Mac2UnixPathname, Unix2MacPathname, CheckAlarm)
4009 (InitMyPasswd, GetTempDirName, mystrchr, mystrtok, mystrcpy):
4010 (InitEmacsPasswdDir, run_mac_command): New subroutines.
4011
4012 * sysdep.c [macintosh] (targetTicks, alarm_signal_func, myPasswdName)
4013 (myPasswd, emacsPasswdDir, emacsPasswd, myPasswdInited, mask)
4014 (myPasswdDir, TempDirName, sys_siglist): New variables.
4015
4016 * sysdep.c [macintosh] (execvp, wait, croak, fork, kill, sigsetmask)
4017 (sigblock, request_sigio, unrequest_sigio, setpgrp, pipe, symlink)
4018 (link, lstat, readlink, umask, chmod, sbrk, fsync, ioctl):
4019 Define empty stubs so Emacs will link.
4020
40211999-09-03 Gerd Moellmann <gerd@gnu.org>
4022
4023 * xdisp.c: Use XCAR and XCDR instead of XCONS.
4024
4025 * window.h: New member frozen_window_start_p.
4026
4027 * window.c (foreach_window, foreach_window_1): New.
4028 (freeze_window_start, freeze_window_starts): New.
4029 (make_window): Initialize frozen_window_start_p.
4030 (replace_window): Ditto.
4031 (Fset_window_point): Remove references to deleted variables.
4032 (Fset_window_start): Ditto.
4033
4034 * xdisp.c (Vresize_mini_config, resize_mini_frame,
4035 resize_mini_initial_height): Removed.
4036 (syms_of_xdisp): Remove references to these variables.
4037 (resize_mini_window): Don't save window configuration, freeze
4038 window starts instead. Enlarge window until displaying an empty
4039 buffer, then shrink it. Make the function externally visible.
4040 (redisplay_window): Treat frozen window start like forced start,
4041 but accept point outside of the window.
4042
4043 * dispextern.h: Add function prototype for resize_mini_window.
4044
4045 * minibuf.c (read_minibuf_unwind): Resize mini-window when
4046 reaching minibuf_level 0.
4047
4048 * lisp.h: Remove extern declarations for variables deleted from
4049 xdisp.c.
4050
4051 * dispnew.c (adjust_frame_glyphs): Remove reference to
4052 Vresize_mini_config.
4053
40541999-09-03 Gerd Moellmann <gerd@gnu.org>
4055
4056 * xfns.c (x_set_scroll_bar_width): Change conditional compilation
4057 to USE_TOOLKIT_SCROLL_BARS.
4058
4059 * xterm.c (x_scroll_bar_create): Don't clear under scroll bar
4060 here.
4061 (XTset_vertical_scroll_bar): Clarify position computations. Clear
4062 under newly created scroll bar. Put toolkit scroll bars in the
4063 middle of the area reserved for the scroll bar.
4064
40651999-09-03 Kenichi Handa <handa@etl.go.jp>
4066
4067 The following changes are for the new handling of mulitbyte
4068 sequence. Now, except for a composite character, no multibyte
4069 character in string/buffer has trailing garbage bytes. For
4070 instance, the length of string "\201\300\300" is now 2, the first
4071 character is Latin-1 A-grave, the second is raw \300.
4072
4073 * charset.h (MAKE_NON_ASCII_CHAR): Handle the case that C1 or C2
4074 are negative.
4075 (MAKE_CHAR): Don't set MSBs of C1 and C2 to 0.
4076 (VALID_MULTIBYTE_CHAR_P): This macro deleted.
4077 (PARSE_COMPOSITE_SEQ): New macro.
4078 (PARSE_CHARACTER_SEQ): New macro.
4079 (PARSE_MULTIBYTE_SEQ): New macro.
4080 (CHAR_PRINTABLE_P): New macro.
4081 (STRING_CHAR): Adjusted for the change of string_to_non_ascii_char.
4082 (STRING_CHAR_AND_LENGTH): Likewise.
4083 (STRING_CHAR_AND_CHAR_LENGTH): Define it as STRING_CHAR_AND_LENGTH.
4084 (INC_POS): Use the macro PARSE_MULTIBYTE_SEQ.
4085 (DEC_POS, BUF_INC_POS, BUF_DEC_POS): Likewise,
4086
4087 * charset.c (SPLIT_COMPOSITE_SEQ): New macro.
4088 (SPLIT_CHARACTER_SEQ): New macro.
4089 (SPLIT_MULTIBYTE_SEQ): New macro.
4090 (CHAR_COMPONENT_VALID_P): New macro.
4091 (non_ascii_char_to_string): Generate a multibyte sequence as far
4092 as possible.
4093 (string_to_non_ascii_char): The 4th arg exclude_tail_garbage is
4094 deleted. Caller changed. Use the macro SPLIT_MULTIBYTE_SEQ.
4095 (split_non_ascii_string): Likewise.
4096 (multibyte_form_length): Use the macro PARSE_MULTIBYTE_SEQ.
4097 (char_printable_p): New function.
4098 (translate_char): Check character by NATNUMP instead of INTEGERP.
4099 (unibyte_char_to_multibyte): Call char_valid_p instead of
4100 VALID_MULTIBYTE_CHAR_P.
4101 (Fmake_char_internal): Check the arguments more rigidly.
4102 (Fcharset_after): Use the macro SPLIT_MULTIBYTE_SEQ.
4103 (char_valid_p): Check the validity by CHAR_COMPONENT_VALID_P.
4104 (Fmultibyte_char_to_unibyte): Check the validity of character by
4105 CHAR_VALID_P.
4106 (chars_in_text): Call multibyte_chars_in_text.
4107 (multibyte_chars_in_text): Use the macro PARSE_MULTIBYTE_SEQ.
4108 (Fcompose_string): Use the macro STRING_CHAR_AND_LENGTH instead of
4109 STRING_CHAR_AND_CHAR_LENGTH (which is obsolete now).
4110
4111 * data.c (Faset): Adjust the way to check byte-combining
4112 possibility for the new handling of multibyte sequence.
4113
4114 * editfns.c (Fsubst_char_in_region): Likewise.
4115
4116 * fns.c (count_combining): Use the macro PARSE_MULTIBYTE_SEQ.
4117 (string_char_to_byte): Likewise.
4118 (string_byte_to_char): Likewise.
4119
4120 * indent.c (MULTIBYTE_BYTES_WIDTH): Delete the 2nd arg C. Use the
4121 macro STRING_CHAR_AND_LENGTH. Caller changed.
4122
4123 * insdel.c (count_combining_composition): New function.
4124 (count_combining_before): Adjust the way to check byte-combining
4125 possibility for the new handling of multibyte sequence. Call
4126 count_combining_composition for a composite character.
4127 (count_combining_after): Likewise.
4128
4129 * print.c (print_string): Use the macro STRING_CHAR_AND_LENGTH.
4130 (print): Likewise.
4131
4132 * dispextern.h (struct it): Change the size of the member
4133 `ctl_chars'.
4134
4135 * xdisp.c (get_next_display_element): Display incomplete multibyte
4136 sequence (e.g. \222\300) by octal form.
4137
41381999-09-02 Gerd Moellmann <gerd@gnu.org>
4139
4140 * xterm.h (VERTICAL_SCROLL_BAR_WIDTH_TRIM): Change from 2 to 0.
4141
4142 * fns.c (Fhash_table_weakness): Replaces Fhash_table_weak.
4143 (cmpfn_eql, sxhash): Use XFLOAT_DATA.
4144
41451999-09-02 Gerd Moellmann <gerd@gnu.org>
4146
4147 * buffer.c (set_buffer_internal): Never set
4148 windows_or_buffers_changed.
4149
4150 * xdisp.c (try_window_id): Reset first_unchanged_at_end_row
4151 if we have displayed to the bottom of the window.
4152
4153 * syntax.c (Fforward_word): Stop at a mini-buffer prompt end
4154 in both directions. Extend documentation.
4155
41561999-09-01 Gerd Moellmann <gerd@gnu.org>
4157
4158 * minibuf.c (read_minibuf): Flush display after setting cursor to
4159 column 0.
4160
41611999-08-31 Gerd Moellmann <gerd@gnu.org>
4162
4163 * s/freebsd.h (__FreeBSD_version): Don't define it if it is
4164 already defined. This avoids a warning from buffer.c.
4165
41661999-08-30 Gerd Moellmann <gerd@gnu.org>
4167
4168 * xterm.h (FRAME_X_FLAGS_AREA_COLS): Define it as the total width
4169 of both margins.
4170 (FRAME_X_FLAGS_AREA_WIDTH): Likewise.
4171 (FRAME_X_LEFT_FLAGS_AREA_WIDTH): New.
4172 (FRAME_X_RIGHT_FLAGS_AREA_WIDTH): New.
4173
4174 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add in FRAME_FLAGS_AREA_COLS
4175 once instead of twice.
4176 (FRAME_LEFT_FLAGS_AREA_WIDTH): New.
4177
4178 * xterm.c: Remove unused bitmaps.
4179 (continued_bits, continuation_bits, overlay_bits): Change images.
4180 (x_draw_vertical_border): Use FRAME_X_RIGHT_FLAGS_AREA_WIDTH
4181 instead of FRAME_X_FLAGS_AREA_WIDTH.
4182 (x_after_update_window_line): Ditto.
4183 (x_draw_bitmap): Likewise.
4184 (x_draw_row_bitmaps): Likewise.
4185 (x_draw_glyph_string_box): Likewise.
4186 (x_draw_glyphs): Likewise.
4187 (x_scroll_run): Likewise.
4188 (expose_window_tree): Likewise.
4189 (note_mode_line_highlight): Likewise.
4190 (XTset_vertical_scroll_bar): Likewise.
4191 (x_clip_to_row): Likewise.
4192 (x_set_window_size): Likewise.
4193
4194 * xfns.c (x_figure_window_size): Use FRAME_FLAGS_AREA_COLS instead
4195 of 2 * that value.
4196
4197 * xdisp.c (window_box_width): Use FRAME_FLAGS_AREA_COLS instead of
4198 2 * that value.
4199 (window_box_left): Use FRAME_LEFT_FLAGS_AREA_WIDTH instead of
4200 FRAME_FLAGS_AREA_WIDTH.
4201
4202 * window.c (coordinates_in_window): Use
4203 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
4204 (window_internal_width): Subtract FRAME_FLAGS_AREA_WIDTH once
4205 instead of twice.
4206
4207 * widget.c (set_frame_size): Set flags_area_extra to
4208 FRAME_FLAGS_AREA_WIDTH instead of 2 * that width.
4209 (EmacsFrameSetCharSize): Ditto.
4210
4211 * dispnew.c (mode_line_string): Add FRAME_LEFT_FLAGS_AREA_WIDTH
4212 instead of FRAME_FLAGS_AREA_WIDTH.
4213
4214 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract
4215 FRAME_FLAGS_AREA_COLS once.
4216 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Add
4217 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
4218
42191999-08-30 Gerd Moellmann <gerd@gnu.org>
4220
4221 * freebsd.h (C_SWITCH_SYSTEM): Added to let configure find headers
4222 in /usr/X11R6/include which are checked for with AC_CHECK_HEADER.
4223
42241999-08-30 Gerd Moellmann <gerd@gnu.org>
4225
4226 * fns.c (QCweakness): Replaces QCweak.
4227 (Fmake_hash_table): Ditto.
4228 (Fmakehash): Ditto.
4229 (syms_of_fns): Ditto.
4230
42311999-08-29 Richard Stallman <rms@gnu.org>
4232
4233 * search.c (compile_pattern_1): Enable RE_CHAR_CLASSES for regexp.
4234
4235 * sysdep.c (read_input_waiting): Pass read_socket_hook just 4 args.
4236
4237 * syntax.h (SYNTAX_COMMENT_NESTED, SYNTAX_FLAGS_COMMENT_NESTED):
4238 Add support for nested comments.
4239
863476d1
SM
4240 * syntax.c (Fforward_comment, scan_lists, scan_sexps_forward):
4241 Consolidate the forward comment code into the new `forw_comment'.
4242 (forw_comment): New subroutine. Added support for nested comments.
4243 (lisp_parse_state, back_comment, Fmodify_syntax_entry)
4244 (Fparse_partial_sexp): Add support for nested comments.
26901792
DL
4245
42461999-08-28 Ken Raeburn <raeburn@gnu.org>
4247
4248 * lisp.h (struct Lisp_Cons, XCAR, XCDR, struct Lisp_Float): Change
4249 names of structure elements if HIDE_LISP_IMPLEMENTATION is
4250 defined, to help detect code that uses knowledge of the Lisp
4251 internals that it shouldn't have.
4252 (XFLOAT_DATA): New macro.
4253
42541999-08-25 Gerd Moellmann <gerd@gnu.org>
4255
4256 * syntax.c (Fforward_word): If in a mini-buffer and moving
4257 backwards, stop in front of the prompt to prevent accidentially
4258 moving into the read-only prompt.
4259
4260 * window.c (Frecenter): Clear frame if called with nil or no arg.
4261
4262 * xdisp.c (resize_mini_window): Don't resize if
4263 Vmax_mini_window_height is nil. Otherwise, use a default if
4264 Vmax_mini_window_height is not ot a number.
4265 (syms_of_xdisp): Extend documentation of Vmax_mini_window_height.
4266
42671999-08-25 Alexandre Oliva <oliva@dcc.unicamp.br>
4268
4269 * unexelf.c: Merge IRIX debugging info patch from unexsgi.c
4270 * m/iris4d.h: Use unexelf for IRIX 5.*.
4271 * m/iris5d.h: Use unexelf for IRIX 6.*.
4272 * unexsgi.c: Deleted.
4273
4274 * unexelf.c: Auto-detect .sbss section.
4275 (round_up): Make it static.
4276 (unexec): Declare alignment as Elf Word. Skip ``Program
4277 segment above .bss'' test on MIPS without .sbss.
4278 Copy sections .got and .sdata1 sections. Adjust offsets in
4279 sections .sdata, .lit4, .lit8, .got and .sdata1.
4280
42811999-08-25 Gerd Moellmann <gerd@gnu.org>
4282
4283 * xdisp.c (try_window_id): Remove typo.
4284
42851999-08-24 Gerd Moellmann <gerd@gnu.org>
4286
4287 * xdisp.c (try_window_id): Recognize case that PT == ZV and in
4288 unchanged text at the bottom when computing the cursor position.
4289 (message3_nolog): Raise frame only if minibuffer_auto_raise is
4290 set.
4291
4292 * lisp.h (PVEC_TYPE_MASK): Add the bit for hash tables.
4293
42941999-08-24 Gerd Moellmann <gerd@gnu.org>
4295
4296 * xfaces.c (Qmargin): Replacement for Qbitmap_area.
4297 (realize_basic_faces): Replace Qmargin for Qbitmap_area.
4298 (syms_of_xfaces): Ditto.
4299
4300 * window.c (Fset_window_point): Reset Vresize_mini_config.
4301 (Fset_window_start): Ditto.
4302 (set_window_buffer): Ditto.
4303
4304 * dispnew.c (adjust_frame_glyphs): Reset Vresize_mini_config.
4305
4306 * xdisp.c (redisplay_window): Don't ever test just_this_one_p
4307 before calling try_window.
4308 (echo_area_display): If height has changed, update other windows.
4309 (resize_mini_frame, resize_mini_initial_height): New.
4310 (resize_mini_window): Save/restore window configuration
4311 differently.
4312
4313 * lisp.h (Vresize_mini_config, resize_mini_frame,
4314 resize_mini_initial_height): Add extern declarations.
4315
4316 * xterm.c (expose_window_tree): Fix typo CANON_Y_UNIT to
4317 CANON_X_UNIT.
4318
4319 * xfns.c [HAVE_JPEG]: Work around a warning about HAVE_STDLIB_H
4320 being redefined in jconfig.h.
4321
43221999-08-23 Ken'ichi Handa <handa@gnu.org>
4323
4324 * coding.h: Include "ccl.h" instead of "../src/ccl.h".
4325
43261999-08-22 Gerd Moellmann <gerd@gnu.org>
4327
4328 * alloc.c (mark_glyph_matrix): Mark strings only.
4329
4330 * xdisp.c (redisplay_internal): Clear garbaged frames after
4331 resizing mini-window.
4332
43331999-08-22 Gerd Moellmann <gerd@gnu.org>
4334
4335 * xdisp.c (unwind_with_echo_area_buffer): Use
4336 set_buffer_internal_1 instead of set_buffer_internal.
4337 (with_echo_area_buffer): Ditto.
4338
4339 * buffer.c (set_buffer_internal): Set windows_or_buffers_changed
4340 only if buffer is displayed somewhere.
4341
4342 * buffer.h (BUF_COMPUTE_UNCHANGED): New.
4343
4344 * insdel.c (gap_left): Use BUF_COMPUTE_UNCHANGED.
4345 (gap_right): Ditto.
4346 (modify_region): Ditto.
4347
4348 * buffer.c (modify_overlay): Use BUF_COMPUTE_UNCHANGED.
4349
4350 * xdisp.c (Vresize_mini_config): New.
4351 (resize_mini_window): Use it to save restore original window
4352 configuration
4353 (syms_of_xdisp): Initialize it.
4354
4355 * buffer.h (struct buffer): Add prevent_redisplay_optimizations_p.
4356
4357 * dispextern.h (struct glyph_matrix): Add buffer, begv, and zv.
4358
4359 * xdisp.c (reconsider_clip_changes): New.
4360 (redisplay_internal, redisplay_window): Call it.
4361 (mark_window_display_accurate, redisplay_internal): Set current
4362 matrix' buffer, begv, zv.
4363
4364 * window.c (Fset_window_hscroll): Set
4365 prevent_redisplay_optimizations_p instead of clip_changed.
4366 (Fset_window_hscroll): Ditto.
4367 (temp_output_buffer_show): Ditto.
4368 (Fset_window_vscroll): Ditto.
4369
4370 * buffer.c (reset_buffer): Set clip_changed to 0 and
4371 prevent_redisplay_optimizations_p to 1.
4372 (Fget_buffer_create): Set prevent_redisplay_optimizations_p to 1.
4373
4374 * buffer.h (BUF_UNCHANGED_MODIFIED, UNCHANGED_MODIFIED,
4375 BUF_OVERLAY_UNCHANGED_MODIFIED, OVERLAY_UNCHANGED_MODIFIED,
4376 BUF_BEG_UNCHANGED, BEG_UNCHANGED, BUF_END_UNCHANGED,
4377 END_UNCHANGED): New.
4378 (struct buffer_text): Add beg_unchanged, end_unchanged,
4379 unchanged_modified, overlay_unchanged_modified.
4380
4381 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
4382 overlay_unchanged_modified): Removed.
4383 (with_echo_area_unwind_data): Don't save beg/end_unchanged.
4384 (unwind_with_echo_area_buffer): Don't restore them.
4385 (debug_beg_unchanged, debug_end_unchanged) [GLYPH_DEBUG]: Removed.
4386 (text_outside_line_unchanged_p, redisplay_internal,
4387 try_scrolling): Use/set buffer-specific beg/end_unchanged.
4388 (redisplay_window): Let try_window_id be called if more than one
4389 window is displayed. Use/set buffer-specific beg/end_unchanged.
4390 (get_last_unchanged_at_beg_row, get_first_unchanged_at_end_row,
4391 try_window_id):
4392 Use buffer-specific beg/end_unchanged.
4393
4394 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
4395 overlay_unchanged_modified): Remove extern declarations.
4396
4397 * keyboard.c (command_loop_1): Set beg/end_unchanged per
4398 buffer.
4399
4400 * insdel.c (gap_left): Compute beg/end_unchanged per buffer.
4401 (gap_right): Ditto.
4402 (adjust_after_replace): Likewise.
4403 (replace_range, del_range_2, modify_region): Likewise.
4404
4405 * dispnew.c (direct_output_for_insert): Set beg_unchanged
4406 and unchanged_modified per buffer.
4407
4408 * coding.c (code_convert_region): Compute beg/end_unchanged per
4409 buffer.
4410
4411 * buffer.c (modify_overlay): Compute beg/end_unchanged
4412 per buffer.
4413 (Fget_buffer_create): Initialize new members of the buffer
4414 structure.
4415
44161999-08-22 Gerd Moellmann <gerd@gnu.org>
4417
4418 * lisp.h: Add prototype for copy_hash_table and Fcopy_hash_table.
4419
4420 * fns.c (Qkey, Qvalue): Renamed from Qkey_weak, and Qvalue_weak.
4421 (Qkey_value_weak): Removed.
4422 (make_hash_table): Use nil, `key', `value', t for weakness.
4423 (Fmake_hash_table): Ditto.
4424 (copy_hash_table): New.
4425 (Fcopy_hash_table): New.
4426
44271999-08-22 Gerd Moellmann <gerd@gnu.org>
4428
4429 * xfns.c: Call change_frame_size and do_pending_window_change with
4430 new parameter.
4431
44321999-08-21 Gerd Moellmann <gerd@gnu.org>
4433
4434 * xdisp.c (resize_mini_window): Do it for truncate-lines t as
4435 well.
4436 (redisplay_internal): Resize mini-window only if text might
4437 have changed.
4438 (display_echo_area): Reset displayed echo_area_buffer to nil
4439 at the end if we're displaying a nil message.
4440
44411999-08-21 Gerd Moellmann <gerd@gnu.org>
4442
4443 * fns.c (hash_lookup): Test with EQ before calling key comparion
4444 function.
4445 (hash_remove): Ditto.
4446 (cmpfn_eq): Removed.
4447 (cmpfn_eql): Don't test with EQ.
4448 (cmpfn_equal): Ditto.
4449 (make_hash_table): Set comparison function for `eq' to null.
4450
4451 * buffer.c, cmds.c, editfns.c, indent.c, insdel.c, buffer.h:
4452 Remove conditional compilation on NO_PROMPT_IN_BUFFER.
4453
4454 * dispextern.h (NO_PROMPT_IN_BUFFER): Removed.
4455
4456 * window.c, widget.c, process.c, keyboard.c, frame.c, xdisp.c,
4457 xterm.c: Call change_frame_size and do_pending_window_change with
4458 new parameter.
4459
4460 * dispnew.c (do_pending_window_change): Add parameter `safe'.
4461 (change_frame_size): Ditto.
4462 (change_frame_size_1): Ditto. Deley size changes if redisplaying
4463 and not called from a safe place.
4464 (window_change_signal): Call change_frame_size with new parameter.
4465
4466 * dispextern.h: Change prototypes for do_pending_window_change
4467 and change_frame_size.
4468
4469 * xfaces.c (face_at_buffer_position): Don't xassert that
4470 window's buffers equals current_buffer; this is not the
4471 case during echo area display.
4472
44731999-08-21 Gerd Moellmann <gerd@gnu.org>
4474
4475 * xdisp.c, minibuf.c: Remove conditional compilation on
4476 NO_PROMPT_IN_BUFFER.
4477
4478 * minibuf.c (Fminibuffer_prompt_end): New.
4479 (syms_of_minibuf): Defsubr it. Remove
4480 minibuffer-prompt-in-buffer.
4481 (Fminibuffer_prompt_width): Return 0 if not in mini-buffer.
4482 Extend documentation.
4483
4484 * xdisp.c (get_next_display_element): Display \r as ^M.
4485
4486 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Clear
4487 under scroll bar widget.
4488
44891999-08-21 Gerd Moellmann <gerd@gnu.org>
4490
4491 * xdisp.c (minibuffer_scroll_overlap): Removed because not used
4492 anywhere.
4493 (unwind_redisplay): Return nil.
4494 (clear_garbaged_frames): New.
4495 (redisplay_internal): Use it.
4496 (echo_area_display): Ditto.
4497 (resize_mini_window): Mew.
4498 (display_echo_area_1): Use it to resize echo area window.
4499 (redisplay_internal): Use it to resize active mini-window.
4500
4501 * dispextern.h, lisp.h: Add function prototypes.
4502
4503 * dispnew.c (set_window_cursor_after_update): Do the
4504 cursor_in_echo_area case only for a mini-window showing
4505 a message. Don't let cursor end up after the end of a row.
4506
4507 * xdisp.c (echo_area_glyphs, echo_area_message,
4508 echo_area_glyphs_length, previous_echo_glyphs,
4509 previous_echo_area_message, previous_echo_area_glyphs_length):
4510 Removed.
4511 (Vmessage_stack, echo_area_buffer, echo_buffer,
4512 display_last_displayed_message_p, Vwith_echo_area_save_vector): New.
4513 (message2_nolog): Use set_message and clear_message.
4514 (message3): Rename parameter len to nbytes to make clear what
4515 it is.
4516 (message3_nolog): Ditto. Use set_message and clear_message.
4517 (update_echo_area): Rewritten.
4518 (with_echo_area_buffer): New.
4519 (with_echo_area_buffer_unwind_data, unwind_with_area_buffer): New.
4520 (setup_echo_area_for_printing): New.
4521 (display_echo_area, display_echo_area_1): New.
4522
4523 (current_message, current_message_1): New.
4524 (push_message, restore_message, pop_message,
4525 check_message_stack): New.
4526 (truncate_echo_area): Rewritten.
4527 (truncate_message_1): New.
4528 (set_message, set_message_1, clear_message): New.
4529 (echo_area_display): Rewritten.
4530 (redisplay_internal): Check for needed echo area update
4531 differently.
4532 (redisplay_preserve_echo_area): Rewritten.
4533 (redisplay_window): Check for mini-window displaying echo area
4534 message differently.
4535 (syms_of_xdisp): Initialize Vmessage_stack and echo area buffers.
4536 Remove initialzation of removed variables.
4537 (init_xdisp): Remove references to removed variables.
4538
4539 * dispnew.c (adjust_frame_message_buffer): Removed references
4540 to echo_area_glyphs and previous_echo_glyphs.
4541 (direct_output_for_insert): Check for mini-window displaying
4542 echo area message differently.
4543 (update_frame): Likewise.
4544 (set_window_cursor_after_update): Likewise. In echo area,
4545 don't try to set cursor on rows that aren't enabled.
4546
4547 * print.c: Remove conditional compilation on `standalone'.
4548 (glyph_len, str_to_glyph_cpy, str_to_glyph_ncpy,
4549 glyph_to_str_cpy): Remove that section because GLYPHs are no
4550 longer used in that way.
4551 (PRINTDECLARE): Add multibyte.
4552 (PRINTPREPARE, PRINTFINISH): Handle printcharfun t differently.
4553 (printbufidx): Removed.
4554 (printchar, strout): Rewritten.
4555
4556 * keyboard.c (ok_to_echo_at_next_pause): Make it a pointer to
4557 a struct kboard.
4558 (echo_kboard): New.
4559 (echo_now): Set echo_kboard to the current kboard.
4560 (cancel_echoing): Set echo_kboard to null.
4561 (cmd_error_internal): Use clear_message, remove references
4562 to echo_area_glyphs and echo_area_message.
4563 (command_loop_1): Check for echo area messages differently.
4564 (read_char): Likewise.
4565 (record_menu_key): Use clear_message.
4566 (Fexecute_extended_command): Check for echo area messages
4567 differently. Use push_message, restore_message, pop_message.
4568
4569 * alloc.c (Fgarbage_collect): Use push_message, restore_message,
4570 pop_message.
4571
4572 * emacs.c (shut_down_emacs): Call check_message_stack.
4573
4574 * lisp.h: Add function prototypes and extern declarations for
4575 new functions and variables.
4576
4577 * fileio.c (Fdo_auto_save): Use push_message, restore_message,
4578 pop_message.
4579
4580 * minibuf.c (read_minibuf): Use clear_message instead of
4581 setting echo_area_glyphs.
4582 (Fminibuffer_completion_help): Ditto.
4583
4584 * editfns.c (Fcurrent_message): Rewritten.
4585
4586 * frame.c, window.h: Remove references to echo_area_glyphs
4587 and previous_echo_glyphs.
4588
45891999-08-21 Dave Love <fx@gnu.org>
4590
4591 * aix3-2-5.h (C_DEBUG_SWITCH): Use -g -O.
4592 * aix4-1.h: Likewise.
4593
4594 * irix6-5.h (C_DEBUG_SWITCH): Set for debug and optimize.
4595
45961999-08-20 Gerd Moellmann <gerd@gnu.org>
4597
4598 * xfns.c: Remove tiff34 prefix from include.
4599
46001999-08-20 Dave Love <fx@gnu.org>
4601
4602 * cm.c: Revert previous change.
4603
46041999-08-19 Gerd Moellmann <gerd@gnu.org>
4605
4606 * xterm.c (XTset_vertical_scroll_bar): Fix previous change. Clear
4607 under scroll bar with width FRAME_SCROLL_BAR_COLS.
4608
46091999-08-18 Dave Love <fx@gnu.org>
4610
4611 * callproc.c, filelock.c, insdel.c, sysdep.c, xmenu.c: Use
4612 stdlib.h.
4613
4614 * doprnt.c: Use stdlib.h, unistd.h.
4615
4616 * config.in: Add HAVE_TERMCAP_H.
4617
4618 * cm.c: Use termcap.h.
4619
46201999-08-18 Gerd Moellmann <gerd@gnu.org>
4621
4622 * xfns.c (x_window) [USE_X_TOOLKIT]: Remove test for
4623 FRAME_X_WINDOW (f) being null at the of the function. If widgets
4624 cannot be created we will already have crashed earlier. Call
4625 lw_set_main_areas with a null menu-bar widget, so that we have
4626 a reasonable default.
4627 (Fx_create_frame): Rearranged so that Lisp errors during frame
4628 initialization cause less damage. Initialize menu bar widget
4629 here.
4630
46311999-08-18 Gerd Moellmann <gerd@gnu.org>
4632
4633 * dispnew.c (update_frame_line): Fix previous change. If writing
4634 whole line clear to end of frame.
4635
46361999-08-17 Gerd Moellmann <gerd@gnu.org>
4637
4638 * window.c (Fcoordinates_in_window_p): Return `left-bitmap-area'
4639 and `right-bitmap-area' if position is in the bitmap areas. This
4640 avoids an error when clicking on the bitmap areas. Instead, they
4641 are currently treated like clicks inside the window.
4642 (coordinates_in_window): Return 5 and 6 for bitmap areas.
4643 (Qleft_bitmap_area, Qright_bitmap_area): New.
4644 (syms_of_window): Initialize new symbols.
4645
4646 * dispnew.c (update_frame_line): If writing whole line,
4647 don't write trailing spaces unless we must.
4648
4649 * xdisp.c (unwind_redisplay): New. Resets flag redisplaying_p.
4650 (redisplay_internal): Register unwind_redisplay with
4651 register_unwind_protect.
4652 (try_window_reusing_current_matrix): If new start > old start,
4653 give up if start pos of first reusable row is not equal to new
4654 start.
4655
4656 * eval.c (Fsignal): Don't reset redisplaying_p here.
4657
4658 * xterm.c (expose_area): If row extends face to end of line,
4659 write the whole line.
4660
46611999-08-16 Gerd Moellmann <gerd@gnu.org>
4662
4663 * dispextern.h (struct it): Remove member
4664 show_trailing_whitespace_p.
4665
4666 * dispnew.c (direct_output_for_insert): Use
4667 Vshow_trailing_whitespace instead of former iterator member
4668 show_trailing_whitespace_p.
4669 (direct_output_forward_char): Don't do it if hightlighting
4670 trailing whitespace.
4671
4672 * xdisp.c (Qshow_trailing_whitespace): Removed.
4673 (Vshow_trailing_whitespace): Added.
4674 (init_iterator): Remove initialization code for
4675 show_trailing_whitespace_p.
4676 (redisplay_internal): Don't try cursor movement in this_line
4677 if showing trailing whitespace.
4678 (redisplay_window): Likewise for cursor movement in current
4679 matrix and try_window_id.
4680 (try_window_reusing_current_matrix): Likewise.
4681 (trailing_whitespace_p): Return 0 if trailing whitespace is
4682 in front of point.
4683 (display_line): Use Vshow_trailing_whitespace instead of
4684 former iterator member show_trailing_whitespace_p.
4685 (syms_of_xdisp): Add DEFVAR_LISP for show-trailing-whitespace.
4686
46871999-08-16 Gerd Moellmann <gerd@gnu.org>
4688
4689 * window.c (Fpos_visible_in_window_p): Rewritten.
4690
4691 * xfaces.c (add_to_log): Renamed from display_message.
4692 Don't display messages in echo area.
4693
4694 * xterm.c (x_draw_glyph_string_box): Use the background width
4695 of the glyph string for the width of the box.
4696
46971999-08-16 Stefan Monnier <monnier@cs.yale.edu>
4698
4699 * syntax.c (Fforward_comment): Set comstyle for Scomment_fence.
4700
47011999-08-16 Geoff Voelker <voelker@cs.washington.edu>
4702
4703 * xfns.c, w32fns.c (x_set_frame_parameters): Set foreground and
4704 background first, and then set other parameters that might
4705 depend upon their new values.
4706
47071999-08-15 Gerd Moellmann <gerd@gnu.org>
4708
4709 * xfaces.c (Vfont_list_limit): New.
4710 (syms_of_xfaces): Make it a user-variable.
4711 (DEFAULT_FONT_LIST_LIMIT): New.
4712 (sorted_font_list): If Vfont_list_limit is an integer > 0, list
4713 maximally that number of fonts, otherwise use
4714 DEFAULT_FONT_LIST_LIMIT.
4715 (Fx_font_family_list): Bind `font-list-limit' to higher values
4716 until we have all fonts.
4717 (Fxfont_list): Additionally return the full names of fonts and
4718 their registry and encoding.
4719
4720 * xterm.c (XTset_vertical_scroll_bar) [USE_TOOLKIT_SCROLL_BARS]:
4721 Simplify clearing "under" scroll bar.
4722
4723 * window.c (Qfixed_window_size): New.
4724 (syms_of_window): Initialiaze it.
4725 (check_all_windows): Add return type void.
4726 (window_fixed_size_p): New. Return non-zero if window
4727 is fixed-size.
4728 (window_min_size_1): New.
4729 (window_min_size): Handle fixed-size windows.
4730 (size_window): New. Rewritten combination of set_window_height and
4731 set_window_width that handles fixed-size windows.
4732 (set_window_height): Call it.
4733 (set_window_width): Call it.
4734 (Fsplit_window): Give an error on attempt to split a fixed-size
4735 window.
4736 (change_window_height): Partly rewritten to handle fixed-size
4737 windows.
4738
47391999-08-13 Wolfgang Rupprecht <wolfgang@wsrcc.com>
4740
4741 * process.c (Fopen_network_stream): Fix previous change.
4742
47431999-08-13 Karl Heuer <kwzh@gnu.org>
4744
4745 * xdisp.c (line_number_display_limit_width): New var.
4746 (decode_mode_spec): Use it instead of hardcoded value.
4747 (syms_of_xdisp): Defvar it.
4748
47491999-08-13 Richard M. Stallman <rms@gnu.org>
4750
4751 * eval.c (run_hook_list_with_args): Gcpro `globals'.
4752 (run_hook_with_args): Likewise.
4753
4754 * window.h (struct window): New field too_small_ok.
4755
4756 * window.c (set_window_height, set_window_width):
4757 If window starts out "too small", set its too_small_ok flag.
4758 If window's too_small_ok flag is set, don't delete it
4759 unless it is so small it would cause a crash.
4760
47611999-08-13 Gerd Moellmann <gerd@gnu.org>
4762
4763 * window.c (MINSIZE): Removed.
4764 (window_min_size): New.
4765 (set_window_height): Use window_min_size.
4766 (change_window_height): Ditto.
4767
47681999-08-12 Gerd Moellmann <gerd@gnu.org>
4769
4770 * indent.c (vmotion): Don't add in mini-buffer prompt width
4771 if prompts are inserted into mini-buffer.
4772
47731999-08-12 Wolfgang Rupprecht <wolfgang@wsrcc.com>
4774
4775 * config.in: Add HAVE_GETADDRINFO.
4776 * process.c (Fopen_network_stream): Use getaddrinfo.
4777
47781999-08-11 Gerd Moellmann <gerd@gnu.org>
4779
4780 * xdisp.c (get_overlay_arrow_glyph_row): Set the charpos of
4781 glyphs to -1.
4782
4783 * xdisp.c (face_before_or_after_it_pos): If position after
4784 or before iterator's current position in the buffer is out
4785 of bounds, return the iterator's original face id.
4786
4787 * dispnew.c (mirror_make_current): If desired row isn't enabled,
4788 just swap glyphs pointers between current and desired row.
4789 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Copy
4790 desired matrix method string to current matrix.
4791
47921999-08-11 Kenichi Handa <handa@etl.go.jp>
4793
4794 * lisp.h (CHAR_MODIFIER_MASK): New macro.
4795
4796 * lread.c (read_escape): For Control modifier, pay attention to
4797 multibyte character.
4798 (read1): Likewise. Singal error or a multibyte character which
4799 has a modifer bit. Check validity of Shift modifer.
4800
4801 * charset.c (non_ascii_char_to_string): Handle modifier bits as
4802 the same as Lisp reader.
4803
48041999-08-10 Richard M. Stallman <rms@gnu.org>
4805
4806 * charset.h (BCOPY_SHORT): Fix typo `unsigined'.
4807
48081999-08-10 Alexandre Oliva <oliva@dcc.unicamp.br>
4809
4810 * unexelf.c [__linux__ && __alpha__] (HAS_SBSS_SECTION): Define.
4811
48121999-08-10 Eli Zaretskii <eliz@gnu.org>
4813
4814 * msdos.c (IT_set_face): Abort if the default face is not realized
4815 and cached.
4816 (IT_write_glyphs): Reset the screen face to the default face
4817 before writing glyphs.
4818
4819 * xfaces.c (realize_default_face) [MSDOS]: Don't take default
4820 colors from the frame here.
4821 (realize_tty_face) [MSDOS]: Do it here. Update the face
4822 attributes with the actual name of the color taken from the
4823 frame.
4824
4825 * dosfns.c (msdos_stdcolor_name): Remove const from return value.
4826 * dosfns.h (msdos_stdcolor_name): Ditto for the prototype.
4827
4828 * frame.c (Fframe_parameters): Swap foreground and background
4829 colors returned in frame parameters if the frame has reverse in
4830 its parameter alist.
4831 (Fmake_terminal_frame): Make a unique copy of face_alist for
4832 each frame.
4833
48341999-08-07 Richard Stallman <rms@gnu.org>
4835
4836 * buffer.c (Fprevious_overlay_change): Just return
4837 the answer obtained from overlays_at.
4838
4839 * xfns.c (xpm_load) [!XpmAllocCloseColors]:
4840 Use XpmCloseness and attrs.closeness instead.
4841
48421999-08-06 Richard Stallman <rms@gnu.org>
4843
4844 * lread.c (Feval_buffer): New arg DO_ALLOW_PRINT.
4845
48461999-08-06 Geoff Voelker <voelker@cs.washington.edu>
4847
4848 * dired.c (directory_files_internal, Fdirectory_files_and_attributes,
4849 Ffile_attributes_lessp): New functions.
4850 (Fdirectory_files): Use directory_files_internal.
4851 (syms_of_dired): Initialize Fdirectory_files_and_attributes,
4852 Ffile_attributes_lessp.
4853
4854 * w32.c (stat): Check for directory ending in separator when
4855 doing readdir fast path.
4856
4857 * w32fns.c (x_set_icon_type): Support setting frame icons.
4858 * w32term.c (x_bitmap_icon): New function.
4859 (x_make_frame_visible, x_iconify_frame): Invoke x_bitmap_icon.
4860
48611999-08-06 Gerd Moellmann <gerd@gnu.org>
4862
4863 * xdisp.c (set_iterator_to_next): After delivering a character
4864 from a display vector, restore face and charset to what they were
4865 before the display vector was processed.
4866
48671999-08-06 Gerd Moellmann <gerd@gnu.org>
4868
4869 * xdisp.c (reseat_at_next_visible_line_start): New parameter
4870 on_newline_p.
4871 (set_iterator_to_next): After delivering last char
4872 from display vector, reseat on next visible line start if
4873 dpvec_char_len < 0.
4874 (next_element_from_buffer): Set dpvec_char_len to -1 for
4875 selective display.
4876
48771999-08-06 Gerd Moellmann <gerd@gnu.org>
4878
4879 * xdisp.c (compute_line_metrics): If first line's physical ascent
4880 is larger than its logical ascent, use the physical ascent, and
4881 make the row taller. Set row's overlapping_p flag.
4882
4883 * dispnew.c (redraw_overlapping_rows): Use flag overlapping_p.
4884 (direct_output_for_insert): Ditto.
4885
4886 * dispextern.h (struct glyph_row): Add overlapping_p.
4887
4888 * xterm.c (x_draw_phys_cursor_glyph): Redraw overlaps.
4889
4890 * dispextern.h (MATRIX_ROW_OVERLAPS_PRED_P): New.
4891 (MATRIX_ROW_OVERLAPS_SUCC_P): New.
4892
4893 * dispnew.c (direct_output_for_insert): Don't use this method if
4894 row is overlapped by others.
4895 (update_text_area): Write full line if current line is overlapped.
4896 (redraw_overlapped_rows): New.
4897 (update_window): Call it.
4898 (redraw_overlapping_rows): New.
4899 (update_window): Call it.
4900 (scrolling_window): Make sure overlapped_p flag in current rows is
4901 unchanged.
4902 (row_equal_p): Take rows overlapped_p flag into account.
4903
4904 * dispextern.h (struct glyph_row): Add flag overlapped_p.
4905
4906 * xterm.c (x_fix_overlapping_area): New.
4907 (x_redisplay_interface): Add x_fix_overlapping_area.
4908
4909 * dispnew.c (adjust_glyphs): Block input while adjusting matrices.
4910
49111999-08-06 Gerd Moellmann <gerd@gnu.org>
4912
4913 * xterm.c (x_draw_glyphs): Add parameter overlaps_p.
4914 (struct glyph_string): Add member for_overlaps_p.
4915 (x_get_glyph_string_clip_rect): If glyph string draws foreground
4916 of overlapping rows, clip to window bottom.
4917 (x_fill_glyph_string): Add parameter overlaps_p.
4918 (x_fill_composite_glyph_string): Ditto.
4919 (BUILD_GLYPH_STRINGS): Ditto.
4920 (BUILD_CHAR_GLYPH_STRINGS): Ditto.
4921 (x_draw_glyph_string): Don't draw anything but the foreground
4922 if glyph string draws row overlaps.
4923
4924 * dispnew.c (direct_output_for_insert): Don't use this
4925 optimization for rows that overlap others.
4926 (update_window_line): Return non-zero if display has changed.
4927 (update_text_area): Ditto.
4928 (update_window): Record if display has been changed.
4929
4930 * dispextern.h (MATRIX_ROW_OVERLAPPING_P): New.
4931
4932 * dispextern.h (struct redisplay_interface): Add
4933 fix_overlapping_area.
4934
4935 * xterm.c (x_append_glyph): Set glyph flag overlaps_vertically_p.
4936
4937 * dispextern.h (struct glyph): Add overlaps_vertically_p.
4938
4939 * xterm.c (x_produce_image_glyph): Compute iterator's physical
4940 ascent and descent.
4941 (x_produce_stretch_glyph): Ditto.
4942 (x_produce_glyphs): Ditto.
4943
4944 * xdisp.c (init_iterator): Reset physical line height info
4945 after producing special glyphs.
4946 (display_toolbar_line): Set physical line height info.
4947 (compute_line_metrics): Ditto.
4948 (display_line): Ditto.
4949 (display_string): Ditto.
4950
4951 * term.c (produce_glyphs): Set iterator's physical height
4952 information.
4953
4954 * dispnew.c (blank_row): Compute glyph row's physical height.
4955 (row_equal_p): Take physical row heights into account.
4956 (direct_output_for_insert): Ditto.
4957 (update_text_area): Ditto.
4958
4959 * dispextern.h (struct glyph_row): Add phys_ascent and
4960 phys_height.
4961 (struct it): Add phys_ascent, phys_descent, max_phys_ascent,
4962 max_phys_descent.
4963
49641999-08-04 Stefan Monnier <monnier@cs.yale.edu>
4965
4966 * buffer.c (switch_to_buffer_1): New subroutine, taken out from
4967 Fswitch_to_buffer.
4968 (no_switch_buffer): New function.
4969 (Fswitch_to_buffer): Call them. Don't get confused
4970 by "same-window" buffers in a dedicated frame.
4971
4972 * window.c (display-buffer): Don't get confused
4973 by "same-window" buffers in a dedicated frame.
4974
49751999-08-04 Andreas Schwab <schwab@gnu.org>
4976
4977 * insdel.c (insert_from_string_1): Check gap size against number
4978 of outgoing bytes, not incoming bytes.
4979
49801999-08-03 Tom Breton <tob@world.std.com>
4981
4982 * lread.c (read1): Added circular reading code to #N=.
4983 (SUBSTITUTE): New macro.
4984 (seen_list): New variable.
4985 (substitute_object_in_subtree): New function.
4986 (substitute_object_recurse): New function.
4987 (substitute_in_interval): New function.
4988
49891999-08-02 Eli Zaretskii <eliz@gnu.org>
4990
4991 * Makefile.in (frame.o, sysdep.o, xfaces.o): Depend on dosfns.h.
4992
4993 * frame.c (make_terminal_frame): Don't call init_frame_faces if
4994 noninteractive, for termcap frames as well.
4995
4996 * sysdep.c (init_sys_modes): Call init_frame_faces for termcap
4997 frames.
4998
49991999-08-01 Richard Stallman <rms@gnu.org>
5000
5001 * fns.c (internal_equal): Correct overlay comparison.
5002
83c8f461 50031999-07-31 Richard M. Stallman <rms@gnu.org>
26901792
DL
5004
5005 * xfns.c (x_set_internal_border_width):
5006 Call do_pending_window_change. Don't block input, don't call XFlush.
5007 (x_set_vertical_scroll_bars): Call do_pending_window_change.
5008 (x_set_scroll_bar_width, x_set_font): Likewise.
5009
5010 * frame.c (Fset_frame_height): Call do_pending_window_change.
5011 (Fset_frame_width, Fset_frame_size): Likewise.
5012
5013 * xterm.c (x_set_window_size): When calling change_frame_size,
5014 specify 1 for DELAY.
5015
5016 * widget.c (EmacsFrameSetCharSize): Don't call
5017 do_pending_window_change here.
5018
50191999-07-30 Dave Love <fx@gnu.org>
5020
5021 * config.in: Add HAVE_STDLIB_H.
5022
50231999-07-30 Richard M. Stallman <rms@gnu.org>
5024
5025 * process.c (create_process): Detect failure of `pipe'.
5026
50271999-07-30 Keisuke Nishida <kei@psn.net>
5028
5029 * alloc.c (allocate_vectorlike): Add missing increment.
5030
5031 * data.c (Fdefalias): Call Ffset instead of duplicating code.
5032
5033 * keymap.c (get_keymap_1, get_keyelt): Check the type of OBJECT
5034 before calling indirect_function.
5035
50361999-07-30 Eli Zaretskii <eliz@gnu.org>
5037
5038 * dispextern.h (load_color, lookup_derived_face): Declare
5039 prototypes.
5040
5041 * dispnew.c (init_display) [MSDOS]: Don't initialize frame faces,
5042 it will be done later.
5043
5044 * frame.c (make_terminal_frame) [MSDOS]: Don't call
5045 init_frame_faces if non-interactive.
5046 (Fframe_parameters) [MSDOS]: Replace indexing into colornames[]
5047 array with a call to msdos_stdcolor_name. The font name is now
5048 "ms-dos", consistent with realize_tty_face.
5049
5050 * keyboard.c (cmd_error_internal): Don't kill Emacs if this is an
5051 MSDOS frame.
5052
5053 * window.c (Fset_window_configuration) [MSDOS]: Don't call
5054 x_set_toolbar_lines.
5055
5056 * xfaces.c (load_color): Remove static from definition and remove
5057 prototype.
5058 [MSDOS]: Add a DOS-specific version of load_color.
5059 (lookup_face): Replace FRAME_TERMCAP_P with !FRAME_WINDOW_P.
5060 (lookup_derived_face): New function.
5061 (realize_default_face): Support MSDOS frames.
5062 [MSDOS]: If fore/background colors are unspecified, inherit them
5063 from the frame.
5064 (realize_face): Support MSDOS frames.
5065 (realize_tty_face): Support MSDOS frames.
5066 [MSDOS]: If the face color is not in Vface_tty_color_alist, call
5067 load_color to try to find a suitable approximation. If the face
5068 is inverse-video, swap the foreground and background colors.
5069
5070 * dosfns.c (msdos_stdcolor_name, msdos_stdcolor_idx): New
5071 functions.
5072
5073 * dosfns.h (msdos_stdcolor_name, msdos_stdcolor_idx): Declare.
5074
5075 * msdos.h: Remove redundant declarations (most of them are now in
5076 dispextern.h).
5077
5078 * msdos.c (IT_set_face): Rewritten for the new redisplay engine.
5079 Use default frame colors if the face doesn't specify them; invert
5080 the colors if highlight is ON.
5081 (IT_write_glyphs): Rewritten for the new redisplay engine.
5082 (IT_change_line_highlight): Add (unused) parameter Y, since that's
5083 how the hook is called by term.c.
5084 (IT_copy_glyphs): New function, copies an area of the display in
5085 video RAM.
5086 (IT_insert_glyphs): Rewritten to DTRT instead of aborting, since
5087 redisplay now calls it even if char_ins_del_ok is zero.
5088 (IT_set_frame_parameters): Prototype changed. Calls the new
5089 load_color. Puts the new fore/background colors into the default
5090 face on current frame.
5091 (IT_menu_display): Rewritten to handle the new struct glyph
5092 instead of a char array.
5093 (XMenuActivate): Call lookup_derived_face to create and use
5094 special faces for the pop-up and drop-down menus.
5095
50961999-07-29 Gerd Moellmann <gerd@gnu.org>
5097
5098 * xterm.c (x_set_toolkit_scroll_bar_thumb): Don't call
5099 XawScrollbarSetThumb if thumb parameters haven't changed because
5100 that function apparently isn't optimized for this case.
5101
51021999-07-29 Eli Zaretskii <eliz@gnu.org>
5103
5104 * msdos.c (getdefdir): Don't return failure indication when
5105 _fixpath sets errno to ENOSYS.
5106
51071999-07-28 Gerd Moellmann <gerd@gnu.org>
5108
5109 * xdisp.c (string_char_and_length): New. Use it everywhere
5110 instead of STRING_CHAR_AND_LENGTH in xdisp.c.
5111
51121999-07-28 Kenichi Handa <handa@etl.go.jp>
5113
5114 * fns.c (count_combining): New function.
5115 (struct textprop_rec): New structure.
5116 (concat): Copy text properties correctly when byte combining
5117 occurs.
5118
51191999-07-28 Gerd Moellmann <gerd@gnu.org>
5120
5121 * xterm.c (x_setup_relief_color): Don't try smart color allocation
5122 if display is mono.
5123 (x_draw_row_bitmaps): If face has stipple, don't switch
5124 to foreground color for clearing areas, and set the fill style.
5125
5126 * xfaces.c (load_face_colors): Load background color if setting
5127 stipple, too.
5128 (prepare_face_for_display): Use FillOpaqueStippled instead of
5129 FillStippled.
5130
51311999-07-26 Ken'ichi Handa <handa@gnu.org>
5132
5133 * xterm.c (x_find_ccl_program): Add casting.
5134
5135 * w32fns.c (w32_find_ccl_program): Add casting.
5136
51371999-07-27 Gerd Moellmann <gerd@gnu.org>
5138
5139 * dispextern.h (struct glyph_row): Flag internal_border_p removed.
5140
5141 * xfns.c (x_create_tip_frame): Don't set bitmapIcon resource
5142 because this will try to access a nonexisting widget.
5143
51441999-07-26 Markus Rost <rost@gnu.org>
5145
5146 * fns.c (Fgethash): Fix order of variables (patch by gerd).
5147 (Fputhash): Ditto.
5148 (Fremhash): Ditto.
5149
51501999-07-26 Gerd Moellmann <gerd@gnu.org>
5151
5152 * widget.c (EmacsFrameSetCharSize): Don't add XtNborderWidth
5153 value to frame width and height.
5154
5155 * xterm.c (x_get_glyph_string_clip_rect): Take internal border
5156 into account for full-width windows. Don't add scroll bar width
5157 to width of clip rect.
5158 (x_draw_glyph_string_box): Add 1 to right x of full width lines.
5159 (x_set_glyph_string_background_width): Add 1 to background width.
5160 (x_draw_glyphs): Take internal border into account for full-width
5161 lines.
5162
51631999-07-26 Richard M. Stallman <rms@gnu.org>
5164
5165 * xfns.c (x_set_mouse_color): Always unload the old color.
5166 Don't allow nil as color value.
5167 (x_set_cursor_color, x_set_background_color, x_set_foreground_color):
5168 Always unload the old color.
5169
5170 * indent.c (Fmove_to_column): Extend end of line only if FORCE is t.
5171
51721999-07-26 Karl Heuer <kwzh@gnu.org>
5173
5174 * fns.c (Fy_or_n_p): Doc fix.
5175
51761999-07-26 Kenichi Handa <handa@etl.go.jp>
5177
5178 * ccl.h (setup_ccl_program): The type is changed to `int'.
5179
5180 * ccl.c (ccl_driver) <CCL_Call>: Now CCL program ID to call may be
5181 stored in the following CCL code. Adjusted for the change of
5182 Vccl_program_table.
5183 (resolve_symbol_ccl_program): Adjusted for the new style of
5184 embedded symbols (SYMBOL . PROP) in CCL compiled code. Return Qt
5185 is resolving failed.
5186 (ccl_get_compiled_code): New function.
5187 (setup_ccl_program): Function type changed from `void' to `int'.
5188 Resolve symbols in CCL_PROG.
5189 (Fccl_program_p): New function.
5190 (Fccl_execute): Get compiled CCL code by just calling
5191 setup_ccl_program.
5192 (Fccl_execute_on_string): Likewise.
5193 (Fregister_ccl_program): Adjusted for the change of
5194 Vccl_program_table.
5195
5196 * coding.c (setup_coding_system): Get compiled CCL code by just
5197 calling setup_ccl_program.
5198
5199 * xterm.c (x_find_ccl_program): Get compiled CCL code by just
5200 calling setup_ccl_program.
5201
5202 * w32fns.c (w32_find_ccl_program): Get compiled CCL code by just
5203 calling setup_ccl_program.
5204
52051999-07-23 Gerd Moellmann <gerd@gnu.org>
5206
5207 * xfaces.c (frame_update_line_height): Just use the height of the
5208 frame's fontset or font, instead of taking face fonts into
5209 account.
5210
5211 * xdisp.c (get_next_display_element): Display DEL as `^?'.
5212
52131999-07-23 Richard M. Stallman <rms@gnu.org>
5214
5215 * window.c (Fsplit_window): For default size, round up for left window.
5216
52171999-07-21 Joe Ramey <ramey@ti.com>
5218
5219 * filelock.c (lock_if_free): Return -1 if check_lock_owner
5220 has returned -1 (lockfile exists but is not a symlink?).
5221
52221999-07-20 Gerd Moellmann <gerd@gnu.org>
5223
5224 * xterm.c (x_draw_bar_cursor): Use scratch_cursor_gc to
5225 because of a change in cursor_gc made in 20.4.
5226
52271999-07-19 Gerd Moellmann <gerd@gnu.org>
5228
5229 * xterm.c (x_calc_absolute_position): Subtract menu bar height
5230 for YNegative, if using X toolkit.
5231
5232 * xfns.c (x_real_positions): Don't subtract window borders
5233 from positions returned.
5234
52351999-07-17 Gerd Moellmann <gerd@gnu.org>
5236
5237 * xrdb.c (x_load_resources): Set double-click time defaults
5238 for Motif list boxes from double-click-time.
5239
5240 * fns.c (Vhash_table_tests): Remvoed.
5241 (Qhash_table_test): New.
5242 (syms_of_fns): Initialize Qhash_table_test.
5243 (Fmake_hash_table): Look up user-defined tests in symbol prop
5244 `hash-table-test'.
5245 (Fdefine_hash_table_test): Store test and hash function as
5246 symbol prop `hash-table-test'.
5247 (make_hash_table): Add parameters user_test and user_hash.
5248
5249 * window.c (set_window_buffer): Set window margins for tty
5250 frames, too.
5251 (Fset_window_margins): Ditto.
5252
5253 * term.c (append_glyph): Use glyph area of iterator instead of
5254 always TEXT_AREA.
5255
5256 * dispnew.c (update_frame_1): Add left margin width to cursor
5257 hpos.
5258 (direct_output_for_insert): Ditto.
5259 (direct_output_forward_char): Ditto.
5260
5261 * dispnew.c (adjust_glyph_matrix): Set glyph matrix' top_line_p.
5262
5263 * dispextern.h (struct glyph_matrix): Add top_line_p.
5264
52651999-07-16 Gerd Moellmann <gerd@gnu.org>
5266
5267 * frame.h (FRAME_WINDOW_REDISPLAY_P): Removed. Use FRAME_WINDOW_P
5268 instead.
5269
5270 * fns.c (cmpfn_eq): Add hash code parameters.
5271 (cmpfn_eql): Ditto.
5272 (cmpfn_equal): Ditto, and compare hash codes before calling Fequal.
5273 (cmpfn_user_defined): Likewise.
5274
52751999-07-15 Gerd Moellmann <gerd@gnu.org>
5276
5277 * lisp.h (DEFAULT_REHASH_THRESHOLD): Changed to 0.8.
5278
5279 * fns.c (maybe_resize_hash_table): Correct computation of
5280 index vector size.
5281 (make_hash_table): Ditto.
5282 (Fmakehash): New.
5283
5284 * xdisp.c (echo_area_display): Don't call redraw_garbaged_frames.
5285
5286 * alloc.c (gc_sweep): Call sweep_weak_hash_tables.
5287 (survives_gc_p): Make it externally visible.
5288 (mark_object): Ditto.
5289
5290 * fns.c (remove_hash_entry): Removed.
5291 (sweep_weak_hash_tables): New.
5292
5293 * print.c (print): Print more information about hash tables.
5294
5295 * xfns.c (image_spec_hash): Removed.
5296 (lookup_image): Use sxhash instead of image_spec_hash.
5297 (image_spec_equal_p): Removed.
5298 (lookup_image): Use Fequal instead of image_spec_equal_p.
5299
53001999-07-14 Gerd Moellmann <gerd@gnu.org>
5301
5302 * lisp.h (P_): Moved to top of file.
5303
5304 * fns.c (make_hash_table): Set new members.
5305
5306 * alloc.c (mark_object): Mark hash table's user_hash_function.
5307 Mark index vector for weak hash tables.
5308
5309 * lisp.h (struct Lisp_Hash_Table): Add user_cmp_function,
5310 user_hash_function, cmpfn, and hashfn.
5311
5312 * fns.c (build_hash): Removed.
5313 (hash_test): Removed.
5314 (cmpfn_eq, cmpfn_eql, cmpfn_equal, cmpfn_user_defined): New.
5315 (hashfn_eq, hashfn_eql, hashfn_equal, hashfn_user_defined): New.
5316
53171999-07-13 Gerd Moellmann <gerd@gnu.org>
5318
5319 * alloc.c (survives_gc_p): New.
5320
5321 * print.c (print): Add hash table handling.
5322
5323 * alloc.c (mark_object): Add code to mark hash tables.
5324
5325 * lisp.h (GC_HASH_TABLE_P): New.
5326
5327 * emacs.c (main): Call init_fns.
5328
5329 * fns.c (init_fns): New.
5330
5331 * fns.c: Add hash table implementation.
5332
5333 * lisp.h (PVEC_HASH_TABLE): New.
5334 (struct Lisp_Hash_Table): New.
5335 (XHASH_TABLE): New.
5336 (XSET_HASH_TABLE): New.
5337 (HASH_TABLE_P): New.
5338 (CHECK_HASH_TABLE): New.
5339 (DEFAULT_HASH_SIZE): New.
5340 (DEFAULT_REHASH_THRESHOLD): New.
5341 (DEFAULT_REHASH_SIZE): New.
5342
5343 * xterm.c (x_draw_glyphs): Add parameters real_start and real_end.
5344 (x_write_glyphs): Compute overwritten cursor using real start
5345 and end positions of display.
5346 (x_insert_glyphs): Ditto.
5347
53481999-07-10 Gerd Moellmann <gerd@gnu.org>
5349
5350 * keyboard.c (read_char): Use message3_nolog to show help-echo.
5351
5352 * dispnew.c (blank_row): Add y-position as parameter. Compute
5353 visible height.
5354
5355 * xdisp.c (next_element_from_string): Give padding spaces
5356 a position of -1.
5357
5358 * dispnew.c (adjust_glyph_matrix): Some work to support
5359 marginals areas on tty frames in a future version.
5360 (allocate_matrices_for_frame_redisplay): Ditto.
5361
5362 * xdisp.c (display_line): At ZV, set glyph row's displays_text_p
5363 to zero if number of glyphs in the row is <= 1.
5364
53651999-07-09 Gerd Moellmann <gerd@gnu.org>
5366
5367 * dispnew.c (buffer_posn_from_coords): Take left marginal area
5368 into account.
5369
5370 * xdisp.c (handle_display_prop): Don't reset area if handing
5371 a property from a string that came from a `display' property.
5372 (handle_single_display_prop): Don't handle recursive `display'
5373 properties.
5374 (handle_single_display_prop): Handle some display property
5375 forms for terminal frames.
5376 (Qimage): Moved here from xfns.c.
5377
5378 * dispextern.h (struct it): New field string_from_display_prop_p.
5379
5380 * xterm.c (x_clip_to_row): Don't let clip_rect include top
5381 line.
5382
53831999-07-08 Gerd Moellmann <gerd@gnu.org>
5384
5385 * xdisp.c (handle_single_display_prop): Handle `:when FORM'.
5386
5387 * window.c (set_window_buffer): Set window's vscroll to zero.
5388
5389 * xdisp.c (QCwhen): New.
5390 (display_prop_end): New.
5391 (handle_single_display_prop): Use it.
5392 (debug_method_add): Print buffer name if tracing.
5393 (try_window_reusing_current_matrix): Compute visible height
5394 of reused rows. Fix cursor position calculation in case of
5395 top-line.
5396
5397 * dispextern.h (struct redisplay_interface): Add parameter
5398 cursor_on_p to update_window_end_hook.
5399
5400 * xterm.c (x_update_window_end): Add parameter cursor_on_p.
5401
54021999-07-07 Gerd Moellmann <gerd@gnu.org>
5403
5404 * xdisp.c (redisplay_internal): Ensure that redisplayinp_p
5405 doesn't become negative when decrementing it.
5406
5407 * eval.c (Fsignal): Reset redisplaying_p to zero.
5408
5409 * xdisp.c (try_window_reusing_current_matrix): Call hooks
5410 for window update.
5411 (try_window_id): Ditto.
5412
5413 * xterm.c (x_clear_end_of_line): Handle top-line correctly.
5414 (x_scroll_run): Ditto.
5415 (any_help_event_p): New.
5416 (x_initialize): Set it to zero.
5417 (XTread_socket): Clear help echo only if any_help_event_p.
5418
5419 * xdisp.c (init_iterator): Set top_line_p.
5420 (start_display): Use correct initial y if top-line is present.
5421 (make_cursor_line_fully_visible): Bug fixes for top-line.
5422 (try_scrolling): Ditto.
5423 (try_window_reusing_current_matrix): Ditto.
5424
5425 * dispextern.h (struct it): Add top_line_p.
5426
5427 * dispnew.c (shift_glyph_matrix): Move some computations out
5428 of the loop.
5429
5430 * dispnew.c (margin_glyphs_to_reserve): Use NUMBERP and
5431 XFLOATINT.
5432
54331999-07-06 Gerd Moellmann <gerd@gnu.org>
5434
5435 * dispnew.c (update_frame_1): When setting cursor in echo area,
5436 skip only over padding spaces at the end.
5437
5438 * xfaces.c (realize_tty_face): Set face's font_name field to
5439 "tty".
5440
5441 * term.c (update_end): Turn cursor on only if selected window's
5442 cursor_off_p flag is not set.
5443
54441999-07-05 Gerd Moellmann <gerd@gnu.org>
5445
5446 * term.c (TS_cursor_visible): Renamed from TS_visual_mode.
5447 (TS_cursor_normal): Renamed from TS_end_visual_mode.
5448 (TS_cursor_invisible): New.
5449 (term_init): Initialize TS_cursor_invisible.
5450 (tty_hide_cursor): New.
5451 (tty_show_cursor): New.
5452 (update_end): Show tty cursor.
5453 (update_begin): Hide tty cursor to prevent cursor flickering
5454 during redisplays triggered by timers (stealth fontification).
5455
5456 * keyboard.c (make_lispy_event) <TOOLBAR_EVENT>: Apply modifiers.
5457
5458 * xterm.c (XTread_socket) [USE_MOTIF] <KeyPress>: Catch events
5459 in scroll bars.
5460 (x_handle_toolbar_click): Set modifier bits.
5461
54621999-07-04 Gerd Moellmann <gerd@gnu.org>
5463
5464 * keyboard.c (kbd_store_ptr): Declare it as a volatile pointer
5465 instead of a pointer to a volatile input_event.
5466 (kbd_buffer_store_event): Remove volatile modifier from
5467 declaration of local variable `sp'.
5468 (Fdiscard_input): Don't cast when assigning kbd_store_ptr
5469 to kbd_fetch_ptr.
5470
54711999-07-03 Gerd Moellmann <gerd@gnu.org>
5472
5473 * xdisp.c (try_window_id): Set beg_unchanged and end_unchanged
5474 only if buffer is modified. Return quickly if changes are
5475 above window start.
5476
54771999-07-02 Gerd Moellmann <gerd@gnu.org>
5478
5479 * dispextern.h (HSCROLL_WINDOWS): Removed.
5480
5481 * xdisp.c (mark_window_display_accurate): Don't set
5482 w->region_showing.
5483 (redisplay_internal): Don't call redraw_garbaged_frames.
5484
54851999-07-01 Gerd Moellmann <gerd@gnu.org>
5486
5487 * xdisp.c (echo_area_display): Don't display truncation marks
5488 for messages because 20.4 doesn't do it either.
5489 (redisplay_window): Case same window start. Instead of giving
5490 up when cursor is partially visible, make it fully visible.
5491 (mark_window_display_accurate): Some cleanup. Record window's
5492 last cursor information.
5493 (debug_method_add): Improved.
5494 (redisplay_internal): Record last cursor info only if not
5495 consider_all_windows_p.
5496
5497 * dispnew.c (update_window): Update top line after scrolling.
5498 (blank_row): Renamed from make_empty_enabled_row.
5499 (increment_glyph_row_buffer_positions): Increment positions
5500 in buffers, only.
5501
5502 * window.c (Fcoordinates_in_window_p): Add top-line to doc
5503 string.
5504
55051999-06-30 Gerd Moellmann <gerd@gnu.org>
5506
5507 * dispnew.c (update_window): Check that updated row is visible.
5508
5509 * xterm.c (x_draw_row_bitmaps): Check for invisible rows at
5510 top of window differently.
5511
5512 * xdisp.c (try_window_reusing_current_matrix): Don't do it
5513 if region is showing.
5514
5515 * dispnew.c (adjust_glyph_matrix): Check w->vscroll when
5516 avoiding matrix reallocation. Set window_vscroll in matrix.
5517
5518 * dispextern.h (struct glyph_matrix): Add member window_vscroll.
5519
26901792
DL
5520 * xdisp.c (debug_method_add): New.
5521 (debug_redisplay_method): Removed.
5522 (try_window_reusing_current_matrix): Handle case where old
5523 window start is the same as new window start.
5524
5525 * dispextern.h (struct glyph_matrix) [GLYPH_DEBUG]: Make `method'
5526 an array instead of a pointer.
5527
26901792
DL
5528 * xfns.c (Fx_show_tip): Undo previous change.
5529
5530 * xterm.c (x_append_glyph): Clear glyph->u.val.
5531
5532 * dispextern.h (struct glyph): Increase size of face_id bit-field
5533 for CHAR_GLYPH to 12.
5534
55351999-06-29 Gerd Moellmann <gerd@gnu.org>
5536
5537 * xfaces.c (x_charset_registry): Make it externally visible.
5538
55391999-06-28 Gerd Moellmann <gerd@gnu.org>
5540
5541 * dispnew.c (update_window): Use mode_line_p flag of rows
5542 instead of WINDOW_WANTS_MODELINE_P.
5543
5544 * xterm.c (clear_mouse_face): Make externally visible.
5545
5546 * xfns.c (Fx_show_tip): Clear mouse face before showing tip.
5547
5548 * xterm.c (expose_line): Handle exposure of top-lines.
5549
5550 * xterm.c (XTframe_up_to_date): Don't call note_mouse_highlight
5551 if mouse_face_mouse_frame is null.
5552
5553 * xdisp.c (redisplay_window): If window is echo_area_window,
5554 and update_mode_line is set, update menubar and toolbar.
5555
5556 * dispnew.c (space_glyph): Set its charpos to -1.
5557 (update_frame_1): Ignore trailing padding spaces.
5558
5559 * xdisp.c (next_element_from_c_string): Set position of padding
5560 glyphs to -1.
5561
55621999-06-27 Gerd Moellmann <gerd@gnu.org>
5563
5564 * xfns.c (x_laplace_read_row): Use XQueryColors instead of
5565 XQueryColor.
5566
5567 * xdisp.c (display_menu_bar): Remove unwarranted assertion.
5568 (set_cursor_from_row): Skip over glyphs having a null object at
5569 the start of rows.
5570 (insert_left_trunc_glyphs): Use charpos < 0 to indicate truncation
5571 glyphs.
5572 (handle_invisible_prop): Compute next change only when needed.
5573 (handle_face_prop): Don't correct DEFAULT_FACE_ID if in the mode
5574 line.
5575
55761999-06-26 Gerd Moellmann <gerd@gnu.org>
5577
5578 * xrdb.c (x_load_resources): Don't set resource for double-click
5579 time.
5580
5581 * xdisp.c (try_window_id): Return quickly if all changes are
5582 below the window's current matrix end.
5583
5584 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): Remove window
5585 parameter.
5586
5587 * xdisp.c (try_window_reusing_current_matrix): Set no_scrolling_p
5588 in desired not in current matrix.
5589 (try_window_reusing_current_matrix): Rotate matrices starting
5590 at start_vpos instead of 0.
5591
5592 * xterm.c (expose_window): Use window_text_bottom_y.
5593 (fast_find_position): Ditto.
5594
5595 * xdisp.c (redisplay_window): Use window_text_bottom_y.
5596 (try_window_reusing_current_matrix): Ditto.
5597 (get_last_unchanged_at_beg_row): Ditto.
5598 (init_iterator): Ditto.
5599
5600 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate one
5601 more row.
5602 (check_matrix_invariants): Use window_text_bottom_y.
5603 (update_window): Ditto.
5604 (scrolling_window): Ditto.
5605
5606 * xdisp.c (window_text_bottom_y): New.
5607
56081999-06-25 Gerd Moellmann <gerd@gnu.org>
5609
5610 * xterm.c (XTread_socket): Set mouse_face_frame to zero after
5611 clearing mouse face.
5612 (XTread_socket) <EnterNotify> [LESSTIF_VERSION]: If
5613 event.xcrossing.focus is not set, and focus is in the menu bar,
5614 set focus frame as if event.xcrossing.focus were set.
5615
56161999-06-24 Gerd Moellmann <gerd@gnu.org>
5617
5618 * keyboard.c (make_lispy_event): Handle mouse on top lines.
5619 * keyboard.c (make_lispy_movement): Ditto.
5620
5621 * window.c (coordinates_in_window): Return 4 if on top line.
5622 (Fcoordinates_in_window_p): Return `top-line' if on top line.
5623
5624 * xdisp.c (window_box_height): Subtract top line height.
5625 (window_box): Add top line height to top y position if top line
5626 exists.
5627 (init_iterator): If base_face_id is TOP_LINE_FACE_ID, set row to
5628 the top line row of the window. Set initial y-position to
5629 window's top line height plus delta.
5630 (start_display): Choose start glyph row depending on whether
5631 window has a top line.
5632 (try_scrolling): Take top line height into account for aggressive
5633 scrolling.
5634 (compute_window_start_on_continuation_line): Take top line into
5635 account.
5636 (redisplay_window): Ditto. If top line height has changed,
5637 trigger a new redisplay.
5638 (try_window_reusing_current_matrix): Take top line into account.
5639 (find_last_row_displaying_text): Ditto.
5640 (get_last_unchanged_at_beg_row): DItto.
5641 (try_window_id): Ditto.
5642 (compute_line_metrics): Ditto.
5643
5644 * dispnew.c (shift_glyph_matrix): Compute visible row height
5645 taking top line of window into account.
5646 (update_window): Update top line. If scrolling_window detects
5647 that all rows are equal, only set cursor.
5648 (update_window_line): Call after_update_window_line_hook if
5649 mode_line_p flag of rows has changed.
5650 (scrolling_window): Add parameter top_line_p. Return -1 if
5651 all rows are equal.
5652 (mode_line_string): Add parameter mode_line_p. Handle strings
5653 in top lines.
5654
5655 * dispextern.h (MATRIX_TOP_LINE_ROW): New.
5656 (MATRIX_FIRST_TEXT_ROW): New.
5657 (MATRIX_ROW_PARTIALLY_VISIBLE_P): Use row's visible_height.
5658 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_TOP_P): New.
5659 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_BOTTOM_P): New.
5660 (MATRIX_TOP_LINE_HEIGHT): New.
5661 (CURRENT_MODE_LINE_HEIGHT): Use estimate_mode_line_height.
5662 (CURRENT_TOP_LINE_HEIGHT): New.
5663 (DESIRED_TOP_LINE_HEIGHT): New.
5664 (WINDOW_DISPLAY_TOP_LINE_HEIGHT): New.
5665 (WINDOW_DISPLAY_HEIGHT_NO_MODE_LINE): Replaces
5666 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
5667 (WINDOW_DISPLAY_TEXT_HEIGHT): New.
5668
5669 * xterm.c (x_after_update_window_line): Don't draw bitmaps for top
5670 lines.
5671 (x_draw_row_bitmaps): Take top line into account when clearing
5672 bitmap area.
5673 (x_estimate_mode_line_height): Replacement for
5674 x_frame_mode_line_height.
5675 (x_get_glyph_string_clip_rect): Take top line into account.
5676 (x_clear_end_of_line): Ditto.
5677 (note_mode_line_highlight): Add parameter mode_line_p. Handle
5678 top lines.
5679 (note_mouse_highlight): Call note_mode_line_highlight for top lines.
5680 (x_erase_phys_cursor): Take top line into account.
5681
5682 * xdisp.c (window_box_height): Subtract top line height if
5683 window wants a top line.
5684 (display_mode_lines): New.
5685 (redisplay_window): Call it.
5686 (display_mode_line): Add parameters face_id and format.
5687
5688 * dispextern.h (CURRENT_TOP_LINE_HEIGHT): New.
5689 (MATRIX_TOP_LINE_HEIGHT): New.
5690
5691 * xterm.c (x_frame_mode_line_height): Add parameter face_id.
5692
5693 * term.c (estimate_mode_line_height): Renamed from
5694 frame_mode_line_height. Add parameter face_id.
5695 (estimate_mode_line_height_hook): Renamed from
5696 frame_mode_line_height_hook.
5697 (produce_special_glyphs_hook): Removed.
5698 (produce_glyphs_hook): Removed.
5699
57001999-06-23 Gerd Moellmann <gerd@gnu.org>
5701
5702 * dispextern.h (WINDOW_WANTS_TOP_LINE_P): New.
5703 (struct glyph_row): Add mode_line_p.
5704
5705 * xfaces.c (realize_basic_faces): Realize face `top-line'.
5706 (Qtop_line): New.
5707 (syms_of_xfaces): Initialize Qtop_line.
5708
5709 * dispextern.h (TOP_LINE_FACE_ID): New.
5710
5711 * buffer.c (init_buffer_once): Set default for
5712 top_line_format to nil.
5713 (init_buffer_once): Init top_line_format.
5714 (default-top-line-format): New.
5715 (top-line-format): New buffer-local variable.
5716
5717 * buffer.h: Add top_line_format.
5718
5719 * xdisp.c (overlay_arrow_changed_p): Removed because not used.
5720
57211999-06-17 Dave Love <fx@gnu.org>
5722
5723 * xfns.c: Move the PNG section before the JPEG one to avoid
5724 problems surrounding setjmp.h/png.h on GNU/Linux.
5725
57261999-06-17 Gerd Moellmann <gerd@gnu.org>
5727
5728 * xfns.c (x_kill_gs_process): Don't free colors.
5729
57301999-06-17 Dave Love <fx@gnu.org>
5731
5732 * s/gnu-linux.h: Zap spurious ~.
5733
57341999-06-16 Gerd Moellmann <gerd@gnu.org>
5735
5736 * xfns.c (gif_load): Improve multi-image support.
5737
57381999-06-15 Gerd Moellmann <gerd@gnu.org>
5739
5740 * xfns.c (gif_load): Support multi-image files.
5741
5742 * Makefile.in (LIBGIF): Use libungif.
5743
5744 * configure.in (HAVE_GIF): Use libungif instead of libgif
5745 because the former doesn't contain patented compression code.
5746
5747 * xdisp.c (compute_window_start_on_continuation_line): Don't
5748 do it if line start is too far away from window start.
5749
57501999-06-14 Gerd Moellmann <gerd@gnu.org>
5751
5752 * buffer.c (init_buffer_once): Set buffer_local_flags for
5753 scroll_*_aggressively.
5754 (syms_of_buffer): Add DEFVAR_PER_BUFFER for scroll-*-aggressively.
5755 (init_buffer_once): Set defaults for these variables.
5756 (syms_of_buffer): Add default-scroll-*-aggressively.
5757
5758 * buffer.h (scroll_up_aggressively): New.
5759 (scroll_down_aggressively): New.
5760
5761 * Makefile.in (LIBPNG): Add -lz -lm in case we're linking with
5762 a static PNG library.
5763
5764 * configure.in (HAVE_PNG): Add -lz -lm when checking for PNG lib
5765 in case it's a static library.
5766
5767 * Makefile.in (ctagsfiles): Split so that files starting
5768 with an `x' are found before files starting with `w32'.
5769 (ctagsfiles1): New.
5770 (ctagsfiles2): New.
5771 (TAGS): Use ctagsfiles[12] instead of ctagsfiles.
5772
5773 * xdisp.c (compute_window_start_on_continuation_line): New.
5774 (redisplay_window): Use it.
5775 (INFINITY): New.
5776 (reseat_to_string): Use it.
5777 (hscroll_window_tree): Ditto.
5778 (compute_window_start_on_continuation_line): Ditto.
5779 (redisplay_window): Don't force display with a new window start.
5780
57811999-06-06 Gerd Moellmann <gerd@gnu.org>
5782
5783 * xfns.c (x_report_frame_params): Don't report `outer-window-id'
5784 if widget not present.
5785
5786 * xdisp.c (prepare_menu_bars): Ignore tooltip frame.
5787
57881999-06-04 Gerd Moellmann <gerd@gnu.org>
5789
5790 * xfaces.c (recompute_basic_faces)[GLYPH_DEBUG]: Check return
5791 value of realize_basic_faces.
5792 (load_face_font_or_fontset): Store full font name in face.
5793 (realize_default_face): Use full font name.
5794
26901792
DL
5795 * xterm.c (x_produce_glyphs): Set member char_to_display.
5796 (x_append_glyph): Store char_to_display in glyphs.
5797
5798 * dispextern.h (struct it): Add char_to_display.
5799
5800 * xfns.c (x_set_font): Don't call face-set-after-frame-default
5801 if faces haven't been initialized.
5802 (Fx_create_frame): Call face-set-after-frame-default after
5803 faces have been initialized, and widget has been created.
5804
5805 * puresize.h (BASE_PURESIZE): Increased.
5806
58071999-06-01 Gerd Moellmann <gerd@gnu.org>
5808
5809 * xfaces.c (set_lface_from_font_name): Add parameter force_p.
5810 (Finternal_set_lisp_face_attribute): If frame is t when
5811 :font attribute is set, use the selected frame.
5812 (clear_face_cache): Add parameter clear_fonts_p.
5813 (Fclear_face_cache): Add optional parameter thorougly.
5814
5815 * xfaces.c (face_numeric_value): Return -1 if symbol is not
5816 in table.
5817 (Fclear_face_cache): New.
5818 (choose_face_fontset_font): If fontset doesn't contain font
5819 pattern for the given charset, use CHARSET_ASCII.
5820 (Finternal_set_lisp_face_attribute): Fix handling of nil
5821 stipple attribute.
5822 (Finternal_set_lisp_face_attribute): Fix handling of changing
5823 font-related face attributes of the default face.
5824 (set_lface_from_font_name): Set only attributes that aren't
5825 specified.
5826
58271999-05-31 Gerd Moellmann <gerd@gnu.org>
5828
5829 * xfaces.c (SCALABLE_FONTS): Define this to enable scalable
5830 font support.
5831 (Vscalable_fonts_allowed) [SCALABLE_FONTS]: New.
5832 (x_face_list_fonts): Add parameter scalable_fonts_p. Handle
5833 scalable fonts depending on the setting of SCALABLE_FONTS.
5834 (first_font_matching): List more than one font to find the
5835 first non-scalable matching font.
5836 (sorted_font_list): Let x_face_list_fonts return scalable fonts
5837 depending on SCALABLE_FONTS.
5838 (better_font_p): New parameter compare_pt_p. If zero, don't
5839 compare point sizes of fonts.
5840 (exact_face_match_p) [SCALABLE_FONTS]: New.
5841 (build_scalable_font_name) [SCALABLE_FONTS]: New.
5842 (may_use_scalable_font_p) [SCALABLE_FONTS]: New.
5843 (best_matching_font) [SCALABLE_FONTS]: Handle scalable fonts.
5844 (syms_of_xfaces): Add scalable-fonts-allowed.
5845
58461999-05-26 Gerd Moellmann <gerd@gnu.org>
5847
5848 * xfns.c (png_load): Let PNG lib handle gamma. Construct
5849 mask only if image contains simple transparency information.
5850 Otherwise, combine image with frame background color.
5851
5852 * configure.in (--with-png, HAVE_PNG): New.
5853
5854 * config.in (HAVE_PNG): New.
5855
5856 * Makefile.in: Add PNG library.
5857
5858 * xfns.c: Add PNG support.
5859
58601999-05-25 Gerd Moellmann <gerd@gnu.org>
5861
5862 * xdisp.c (init_xdisp): Initialize echo_area_message and
5863 previous_echo_area_message to nil.
5864
5865 * keyboard.c (read_char): Rename local variable echo_area_message
5866 because it shadows the global one.
5867
58681999-05-05 Gerd Moellmann <gerd@gnu.org>
5869
5870 * xterm.c (note_mode_line_highlight): Restructured.
5871
5872 * window.c (coordinates_in_window): Handle windows that don't have
5873 a mode line because their buffer's mode-line-format is nil.
5874 Recognize the mode line under x positions that correspond to
5875 flags areas and left scroll bar.
5876
58771999-05-02 Dave Love <fx@gnu.org>
5878
5879 * xterm.c (note_mouse_highlight): Separate help-echo processing
5880 from check on mouse-face so that it works generally.
5881
58821999-04-21 Gerd Moellmann <gerd@gnu.org>
5883
5884 * sound.c (Fplay_sound): Run hook play-sound-hook.
5885 (Qplay_sound_hook): New.
5886
58871999-04-20 Gerd Moellmann <gerd@gnu.org>
5888
5889 * xdisp.c (update_echo_area): Handle echo_area_message.
5890
58911999-04-19 Gerd Moellmann <gerd@gnu.org>
5892
5893 * editfns.c (Fmessage): Use message3.
5894
5895 * print.c (printchar): Set echo_area_message to nil.
5896 (strout): Ditto.
5897
5898 * minibuf.c (read_minibuf): Reset echo message strings to nil.
5899 (Fminibuffer_completion_help): Ditto.
5900
5901 * keyboard.c (cmd_error_internal): Set echo_areA_message.
5902 (command_loop_1): Test echo_areA_message.
5903 (read_char): Ditto.
5904 (record_menu_key): Set echo_area_message to nil.
5905 (Fexecute_extended_command): Test echo_area_message.
5906 (Fexecute_extended_command): Handle echo_area_message.
5907
5908 * fileio.c (Fdo_auto_save): Handle the case that echo_area_message
5909 is set.
5910
5911 * editfns.c (Fcurrent_message): If echo_area_message is set,
5912 return a substring of that string.
5913
5914 * dispnew.c (direct_output_for_insert): Test echo_area_message
5915 in addition to echo_area_glyphs.
5916 (set_window_cursor_after_update): Ditto.
5917 (update_frame_1): Ditto.
5918
5919 * alloc.c (Fgarbage_collect): Use message3_nolog to display
5920 old Lisp message string.
5921
5922 * xdisp.c (echo_area_message): New.
5923 (previous_echo_area_message): New.
5924 (syms_of_xdisp): Initialize and staticpro new variables.
5925 (echo_area_display): Display echo_area_message if set.
5926 (message2_nolog): Set echo_area_message and
5927 previous_echo_area_message.
5928 (echo_area_display): Set previous_echo_area_message.
5929 (redisplay_internal): Display echo area if echo_area_message
5930 or previous_echo_area_message are set.
5931 (redisplay_preserve_echo_area): Test/set echo_area_message and
5932 previous_echo_area_message.
5933 (redisplay_window): Test echo_area_message.
5934 (message3_nolog): New.
5935 (message3): New.
5936
5937 * editfns.c (Fformat): Add text properties to the result string
5938 from properties of the format string and properties of string
5939 arguments.
5940
5941 * textprop.c (text_property_list): New.
5942 (add_text_properties_from_list): New.
5943 (extend_property_ranges): New.
5944
59451999-03-29 Gerd Moellmann <gerd@gnu.org>
5946
5947 * xfaces.c (Qraised, Qsunken, QCshadow): Removed.
5948 (QCline_width, QCstyle, Qpressed_button, Qreleased_button): New.
5949 Use these symbols for the box face attribute instead of the
5950 removed ones.
5951
59521999-03-12 Gerd Moellmann <gerd@gnu.org>
5953
5954 * xfaces.c (realize_tty_face): Don't set alt_char_p of face.
5955 Correct wrong test for slant.
5956
59571999-03-10 Gerd Moellmann <gerd@gnu.org>
5958
5959 * xfaces.c: Use `unspecified' for unspecified face attributes,
5960 use t and nil for on/off.
5961
59621999-03-06 Gerd Moellmann <gerd@gnu.org>
5963
5964 * buffer.c (syms_of_buffer): Extend doc string of
5965 mode-line-format.
5966
5967 * xfaces.c (x_face_list_fonts): New parameter try_alternatives_p.
5968 (first_font_matching): New.
5969 (set_lface_from_font_name): Use it if font name is a pattern.
5970 (font_field_wildcard_p): Removed.
5971
5972 * dispnew.c (shift_glyph_matrix): Add `window' parameter.
5973 Recompute visible height of rows.
5974
5975 * xterm.c (note_mouse_highlight): Reorder code for help-echo.
5976 Don't accept non-strings for help-echo from overlays.
5977
59781999-03-04 Dave Love <fx@gnu.org>
5979
5980 * xterm.c (note_mouse_highlight): Check overlays for help-text
5981 property.
5982 (XTread_socket): Fix compiler warning.
5983
59841999-03-05 Gerd Moellmann <gerd@gnu.org>
5985
5986 * xterm.c (note_mouse_highlight): Don't restrict number of
5987 overlay to 10. Call overlays_at so that it doesn't try to
5988 extend the vector.
5989
5990 * xdisp.c (compute_line_metrics): Compute glyph row's visible
5991 height.
5992
5993 * dispnew.c (row_equal_p): Compare visible row height, only.
5994 (update_text_area): Draw whole line if visible heights of
5995 rows differ.
5996 (update_window_line): Call after_update_window_line_hook
5997 if visible row height has changed.
5998
5999 * dispextern.h (MATRIX_ROW_VISIBLE_HEIGHT): Removed.
6000 (struct glyph_row): New member visible_height.
6001
6002 * xfaces.c (font_field_wildcard_p): New.
6003 (set_lface_from_font_name): Remove parameter force_p. Accept
6004 font names containing wildcards.
6005
60061999-03-04 Gerd Moellmann <gerd@gnu.org>
6007
6008 * xterm.c (x_after_update_window_line): Clear internal border
6009 when windows_or_buffers_changed.
6010
6011 * dispextern.h (WINDOW_WANTS_MODELINE_P): Return zero if window's
6012 buffer has a nil mode_line_format.
6013
60141999-03-03 Gerd Moellmann <gerd@gnu.org>
6015
6016 * xterm.c (x_setup_relief_colors): Use either background color
6017 or specified color.
6018
6019 * xfaces.c (realize_x_face): Set face->use_box_color_for_shadows_p.
6020
6021 * dispextern.h (struct face): Add use_box_color_for_shadows_p.
6022
6023 * xterm.c (x_draw_box_rect): New.
6024 (x_draw_glyph_string_box): Renamed from
6025 x_draw_glyph_string_relief. Call x_draw_box_rect.
6026
6027 * xfns.c (QCrelief): New.
6028 (syms_of_xfns): Initialize it.
6029
6030 * dispextern.h (struct glyph): Rename left_shadow_p to
6031 left_box_line_p, right_shadow_p to right_box_line_p.
6032 (MAX_RELIEF_THICKNESS): Removed.
6033 (struct it): Rename members having `relief' in their names
6034 to contain `box' instead.
6035
6036 * xfaces.c (realize_x_face): Handle new box attribute values.
6037 (QCrelief, Qbox): Removed.
6038 (QCshadow, QCcolor, Qraised, Qsunken): New.
6039 (syms_of_xfaces): Initialize new symbols.
6040
60411999-03-02 Gerd Moellmann <gerd@gnu.org>
6042
6043 * dispextern.h (LFACE_RELIEF_INDEX): Removed.
6044
6045 * xfaces.c (LFACE_RELIEF): Removed.
6046 (merge_face_vector_with_property): Remove handling of `:relief'.
6047 (Finternal_set_lisp_face_attribute): Ditto.
6048 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
6049 (Finternal_get_lisp_face_attribute): Ditto.
6050 (realize_default_face): Ditto.
6051 (lface_hash): Don't compute hash from relief.
6052
6053 * dispextern.h (struct face): Replace member `relief' by
6054 `box_line_width'. Add member `box'.
6055 (face_box_type): New.
6056
6057 * xterm.c (x_produce_glyphs): If face has overline, add overline
6058 thickness + 1 to ascent.
6059
60601999-03-01 Gerd Moellmann <gerd@gnu.org>
6061
6062 * xterm.c (x_draw_glyph_string): Draw underline, overline,
6063 strike-through, and boxes.
6064 (x_draw_glyph_string_underline): Removed.
6065
6066 * xfaces.c (QCoverline, QCstrike_through, QCbox): New.
6067 (Qoverline, Qstrike_through, Qbox): New.
6068 (syms_of_xfaces): Define these symbols.
6069 (check_lface_attrs): Add checks for overline, strike-through,
6070 and box.
6071 (Finternal_set_lisp_face_attribute): Set new attributes.
6072 (LFACE_OVERLINE, LFACE_STRIKE_THROUGH, LFACE_BOX): New.
6073 (load_color): Handle new attributes.
6074 (realize_x_face): Ditto.
6075 (merge_face_vector_with_property): Ditto.
6076 (free_face_colors): Ditto.
6077 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
6078 (Finternal_get_lisp_face_attribute): Ditto.
6079 (Finternal_lisp_face_attribute_values): Ditto.
6080
6081 * dispextern.h (lface_attribute_index): Add enumerators for
6082 overstrike, strike-through, and box.
6083 (struct face): Add members for overline, strike-through, and
6084 box.
6085
60861999-02-17 Dave Love <fx@gnu.org>
6087
6088 * s/gnu-linux.h s/gnu.h s/irix5-0.h s/netbsd.h s/sco4.h s/sco5.h
6089 s/template.h (NARROWPROTO): Define on the basis of relevant X cf
6090 files.
6091
60921999-02-16 Gerd Moellmann <gerd@gnu.org>
6093
6094 * keyboard.c (toolbar_items): Call access_keymap with third
6095 parameter 1, so that we don't get inherited toolbar item
6096 definitions.
6097
6098 * xdisp.c (redisplay_internal): In optimization 1, don't decrement
6099 the window end vpos when in empty first line of window.
6100
61011999-02-15 Gerd Moellmann <gerd@gnu.org>
6102
6103 * xfaces.c (set_font_frame_param): New.
6104 (Finternal_set_lisp_face_attribute): Call it.
6105
6106Sun Feb 14 10:54:02 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
6107
6108 * xfaces.c (Finternal_set_lisp_face_attribute_from_resource):
6109 Accept specifications of color for underline.
6110
61111999-02-13 Gerd Moellmann <gerd@gnu.org>
6112
6113 * xfaces.c (Finternal_set_lisp_face_attribute): If parameter
6114 `frame' is t, operate on face defaults for new frames. If it
6115 is nil, operate on the selected frame.
6116
61171999-02-12 Gerd Moellmann <gerd@gnu.org>
6118
6119 * dispnew.c (check_matrix_invariants): Put it in #if 0.
6120 (update_window): Put the call to check_matrix_invariants in #if 0.
6121
6122Sun Feb 7 09:58:49 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
6123
6124 * dispextern.h: Remove all else block of UNDERLINE_COLOR.
6125 Remove definition of UNDERLINE_COLOR.
6126
6127Mon Jan 4 04:43:41 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
6128
6129 * xfaces.c (free_face_colors): Free the color for underline.
6130
6131 * xterm.c (x_draw_glyph_string_underline): Set the color for underline
6132 to the GC.
6133
6134Sun Jan 3 08:41:10 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
6135
6136 * dispextern.h (UNDERLINE_COLOR): Defined.
6137 (struct face): Added two new members.
6138 underline_color, underline_defaulted_p.
6139
6140 * xfaces.c (merge_face_vector_with_property):
6141 (check_lface_attrs): Accept the string value for underline.
6142 (Finternal_set_lisp_face_attribute): Likewise.
6143
6144 * xfaces.c (load_color): Change the last argument type to enum
6145 lface_attribute_index from int. And addec code for underling coloring.
6146 (load_face_colors): Pass LFACE_*_INDEX to load_color.
6147
61481999-02-12 Gerd Moellmann <gerd@gnu.org>
6149
6150 * xfns.c (Fx_image_header): Removed.
6151
61521999-02-07 Gerd Moellmann <gerd@gnu.org>
6153
6154 * xterm.c: Don't include <bitmaps/gray>.
6155 (x_term_init): Use gray_bitmap_width and gray_bitmap_height.
6156
6157 * xfns.c (Fx_image_header): Add missing `\n\'.
6158 (gray_bitmap_width, gray_bitmap_height, gray_bitmap_bits): New.
6159
61601999-02-01 Gerd Moellmann <gerd@gnu.org>
6161
6162 * xterm.c (x_scroll_bar_create): Set background pixel from
6163 specified scroll bar color.
6164 (x_scroll_bar_set_handle): Use scroll bar foreground color.
6165
6166 * xfns.c (x_set_scroll_bar_foreground): Remove all scroll bars.
6167 (x_set_scroll_bar_background): Ditto.
6168
6169 * xterm.c (x_create_toolkit_scroll_bar): Set scroll bar colors.
6170
6171 * xfns.c (x_default_scroll_bar_color_parameter): New.
6172 (Fx_create_frame): Call it.
6173
61741999-01-31 Gerd Moellmann <gerd@gnu.org>
6175
6176 * xfns.c (Fx_create_frame): Initialize scroll bar pixel color
6177 values in x_output structure.
6178 (Qscroll_bar_foreground, Qscroll_bar_background): New.
6179 (syms_of_xfns): Initialize these symbols.
6180
6181 * xterm.h (struct x_output): Add scroll bar pixel colors.
6182
6183 * xfns.c (x_frame_parms): Add entries for scroll bar colors.
6184 (x_set_scroll_bar_foreground): New.
6185 (x_set_scroll_bar_background): New.
6186
26901792
DL
61871999-01-12 Gerd Moellmann <gerd@gnu.org>
6188
6189 * xdisp.c (handle_single_display_prop): New.
6190 (handle_display_prop): Call it.
6191 (handle_raise_prop): Removed.
6192 (handle_height_prop): Removed.
6193 (handle_space_width_prop): Removed.
6194 (handle_face_prop): Remove handling of raised text.
6195 (handle_display_prop): Do it here.
6196
6197 * dispextern.h (DISPLAY_PROP_IDX): Replaces GLYPH_PROP_IDX.
6198 (RAISE_PROP_IDX): Removed.
6199 (HEIGHT_PROP_IDX): Removed.
6200 (SPACE_WIDTH_PROP_IDX): Removed.
6201
6202 * xdisp.c (Qdisplay): Replaces Qglyph.
6203 (handle_display_prop): Formerly handle_glyph_prop.
6204
62051999-01-11 Gerd Moellmann <gerd@gnu.org>
6206
6207 * xdisp.c (reseat_to_string): Set position in display vector to -1.
6208 (handle_stop): Set position in display vector to -1. Don't
6209 check overlay strings when set up to deliver characters from a
6210 display vector.
6211 (set_iterator_to_next): At the end of a run of characters from a
6212 display vector, check whether the display vector display replaces
6213 the display of a character.
6214
62151999-01-05 Gerd Moellmann <gerd@gnu.org>
6216
6217 * xfaces.c (init_frame_faces): Don't realize faces if frame's
6218 X window hasn't been created yet.
6219
62201998-12-06 Gerd Moellmann <gerd@gnu.org>
6221
6222 * sound.c: New.
6223
62241998-12-04 Gerd Moellmann <gerd@gnu.org>
6225
6226 * config.in (HAVE_SOUND): New.
6227
6228 * emacs.c (main): Call syms_of_sound and init_sound.
6229
6230 * Makefile.in (obj): Add sound.o.
6231
6232 * configure.in: Add checks for machine/soundcard.h and sys/soundcard.h.
6233
6234 * config.in (HAVE_MACHINE_SOUNDCARD_H): New.
6235 (HAVE_SYS_SOUNDCARD_H): New.
6236
62371998-12-03 Gerd Moellmann <gerd@gnu.org>
6238
6239 * buffer.h (struct buffer): indicate_empty_lines renamed from
6240 indicate_zv_lines.
6241
6242 * buffer.c (indicate-empty-lines): Renamed from indicate_zv_lines.
6243 (default-indicate-zv-lines): Likewise.
6244
6245 * dispextern.h (struct glyph_row): Rename indicate_zv_line_p
6246 to indicate_empty_line_p.
6247
6248 * xdisp.c (reseat_at_next_visible_line_start): Reset method
6249 to next_element_from_buffer.
6250
6251 * frame.c (make_frame): Set n_current_toolbar_items to 0.
6252
6253 * xdisp.c (handle_face_prop): Allow symbols of the form `N+'
6254 and `N-'.
6255
6256 * xfns.c (xbm_scan): New.
6257 (xbm_read_hexint): Removed.
6258 (xbm_read_bitmap_file_data): Use xbm_scan.
6259
6260 * fileio.c (Finsert_file_contents): Prevent redisplay optimizations.
6261
62621998-12-02 Gerd Moellmann <gerd@gnu.org>
6263
6264 * xfns.c (xbm_read_hexint): New.
6265 (xbm_read_bitmap_file_data): New.
6266 (xbm_load_image_from_file): Call xbm_read_bitmap_file_data
6267 instead of XReadBitmapFileData.
6268
6269 * xdisp.c (handle_raise_prop): Compute voffset from current font.
6270
6271 * xfaces.c (face_with_height): New.
6272
6273 * xdisp.c (eval_handler): Renamed from eval_mode_handler.
6274 (eval_form): Renamed from eval_mode_element.
6275 (handle_face_prop): Use it.
6276 (Qheight): Replaces Qsmaller.
6277 (handle_height_prop): Replaces handle_smaller_prop.
6278 (handle_face_prop): If iterator's font_height is not an
6279 integer, evaluate it to get the font height to use.
6280
6281 * dispextern.h (HEIGHT_PROP_IDX): Replaces SMALLER_PROP_IDX.
6282 (struct it): Use `font_height' instead of `smaller'.
6283
62841998-12-01 Gerd Moellmann <gerd@gnu.org>
6285
6286 * xdisp.c (reseat_1): New.
6287 (reseat): Call it.
6288 (move_it_vertically_backward): Ditto.
6289 (redisplay_window): Don't abort when cursor not found in recenter.
6290
62911998-11-30 Gerd Moellmann <gerd@gnu.org>
6292
6293 * xdisp.c (reseat_at_next_visible_line_start): When not
6294 currently delivering display elements from the current buffer,
6295 restore buffer position first.
6296 (init_from_display_pos): Don't set IT's position from the
6297 position passed to this function.
6298
62991998-11-28 Gerd Moellmann <gerd@gnu.org>
6300
6301 * config.in (PROTO): Removed.
6302
6303 * xterm.h: Change PROTO to P_.
6304
63051998-11-26 Gerd Moellmann <gerd@gnu.org>
6306
6307 * xterm.c (take_vertical_position_into_account): New.
6308 (x_produce_image_glyph): Call it.
6309 (x_produce_stretch_glyph): Ditto.
6310 (x_produce_glyphs): Ditto.
6311 (x_fill_glyph_string): Adjust base line for glyph's voffset.
6312 (x_fill_composite_glyph_string): Ditto.
6313 (x_fill_image_glyph_string): Ditto.
6314 (x_fill_stretch_glyph_string): Ditto.
6315
6316 * xdisp.c (display_line): Always compute row height from
6317 max_ascent and max_descent.
6318
6319 * dispextern.h (struct glyph): Add voffset.
6320 (struct it): Replace height by descent, max_height by max_descent.
6321
6322 * xterm.c (x_append_glyph): Set voffset
6323 (x_append_stretch_glyph): Ditto.
6324 (x_produce_image_glyph): Ditto.
6325 (x_produce_glyphs): Take voffset into account.
6326 (x_produce_image_glyph): Ditto.
6327 (x_produce_stretch_glyph): Ditto.
6328
6329 * dispextern.h (struct it): Add voffset.
6330 * xdisp.c (push_it): Save voffset.
6331 (pop_it): Restore it.
6332
6333 * xdisp.c (it_props): Add entry for `raise'.
6334 (handle_raise_prop): New.
6335
6336 * dispextern.h (RAISE_PROP_IDX): New.
6337
6338 * xdisp.c (Qraise): New.
6339 (syms_of_xdisp): Define Qraised.
6340
6341 * xterm.c (x_scroll_bar_move): Clear to the left and right
6342 of toolkit scroll bars differently.
6343 (x_scroll_bar_move): Removed.
6344 (XTset_vertical_scroll_bar): Move code from x_scroll_bar_move here.
6345
6346 * dispextern.h: Make it compilable --with-x=no.
6347 * alloc.c: Ditto.
6348 * emacs.c: Ditto.
6349 * dispnew.c: Ditto.
6350 * keyboard.c: Ditto.
6351 * term.c: Ditto.
6352 * xdisp.c: Ditto.
6353 * xfaces.c: Ditto.
6354 * xfns.c: Ditto.
6355 * xmenu.c: Ditto.
6356
63571998-11-25 Gerd Moellmann <gerd@gnu.org>
6358
6359 * xterm.c (XTread_socket): Cancel help-echo when leaving frame.
6360
63611998-11-24 Gerd Moellmann <gerd@gnu.org>
6362
6363 * xterm.c (x_set_toolkit_scroll_bar_thumb): When dragging,
6364 update slider size, only.
6365 (xm_scroll_callback): Set dragging member of the scroll bar.
6366 (xt_action_hook): Reset last_scroll_bar_part.
6367 (XTredeem_scroll_bar): Reset bar->dragging to nil.
6368
26901792
DL
6369 * xfns.c (Fx_hide_busy_cursor): Don't try to hide busy cursor
6370 window on newly created frames that don't have one.
6371
63721998-11-23 Gerd Moellmann <gerd@gnu.org>
6373
6374 * xdisp.c (restore_overlay_strings): Removed.
6375 (restore_dpvec): Removed.
6376 (init_from_display_pos): Inline both functions above.
6377
6378 * xfns.c (IMAGE_NON_NEGATIVE_INTEGER_VALUE): New.
6379 (parse_image_spec): Handle it.
6380 (xbm_format): Use it.
6381 (xpm_format): Ditto.
6382 (pbm_format): Ditto.
6383 (jpeg_format): Ditto.
6384 (tiff_format): Ditto.
6385 (gif_format): Ditto.
6386 (gs_format): Ditto.
6387
6388 * xdisp.c (set_window_cursor): Removed.
6389 (redisplay_internal): Case cursor motion in cursor line of
6390 selected window; use set_cursor_from_row.
6391
63921998-11-22 Gerd Moellmann <gerd@gnu.org>
6393
6394 * widget.c (EmacsFrameSetCharSize): Take widget's border width
6395 into account.
6396
63971998-11-21 Gerd Moellmann <gerd@gnu.org>
6398
6399 * xterm.c (expose_frame): Redraw menu bar window.
6400
6401 * xdisp.c (display_menu_bar): Record hpos instead of x-position
6402 in menu item.
6403
6404 * dispnew.c (change_frame_size_1): Use FRAME_TOP_MARGIN instead
6405 of FRAME_TOOLBAR_LINES. Use `f' instead of `frame'.
6406
6407 * widget.c (set_frame_size): Use FRAME_SCROLL_BAR_COLS
6408 to determine vertical_scroll_bar_extra.
6409 (EmacsFrameSetCharSize): Ditto.
6410 * xfns.c (x_figure_window_size): Ditto.
6411
6412 * xterm.c (x_draw_row_bitmaps): Draw in `bitmap-area' face.
6413 (x_draw_bitmap): Ditto.
6414
6415 * dispextern.h (face_id): New id BITMAP_AREA_FACE_ID.
6416 * xfaces.c (realize_basic_faces): Realize it.
6417
64181998-11-20 Gerd Moellmann <gerd@gnu.org>
6419
6420 * xmenu.c (xmenu_show): Add workaround for remaining button grab
6421 under LessTif Use the widget of the frame as parent for the
6422 menu, again.
6423
64241998-11-19 Gerd Moellmann <gerd@gnu.org>
6425
6426 * xterm.c (XTread_socket): Inhibit busy cursor for EnterNotify.
6427 When EnterNotify, don't generate a mouse movement event if
6428 notification is from a busy-cursor child window.
6429
6430 * xterm.h (struct x_output): Add busy_window, remove cursor.
6431
6432 * xfns.c (Fx_show_busy_cursor): Formerly Fx_display_busy_cursor.
6433 Use a transparent window to display the busy-cursor.
6434 (Fx_hide_busy_cursor): Formerly Fx_undisplay_busy_cursor.
6435
64361998-11-17 Gerd Moellmann <gerd@gnu.org>
6437
6438 * xdisp.c (check_window_end): New, for debugging.
6439 (CHECK_WINDOW_END): New.
6440 (try_window_id): Use it.
6441
6442 * xterm.c (process_expose_from_menu): Return int.
6443
6444 * keyboard.c (kbd_buffer_get_event): Set flag to prevent recording
6445 TOOLBAR_EVENT events in last_nonmenu_event.
6446
64471998-11-16 Gerd Moellmann <gerd@gnu.org>
6448
6449 * xdisp.c (redisplay_window): If windows_or_buffers_changed,
6450 window end isn't reliable, so set window_end_valid to nil.
6451 (redisplay_internal): If overlay arrow has changed, set
6452 windows_or_buffers_changed to redisplay thoroughly.
6453
6454 * dispnew.c (adjust_glyph_matrix): Invalidate window end, if
6455 necessary.
6456
6457 * xfns.c (file_dialog_cb): New.
6458 (Fx_file_dialog): New.
6459 * fileio.c (Fread_file_name): Call it.
6460
6461 * xrdb.c (x_load_resources): Add default resoures for file
6462 selection dialog.
6463
64641998-11-14 Gerd Moellmann <gerd@gnu.org>
6465
6466 * xterm.c (note_mouse_highlight): Don't highlight when popup
6467 is active.
6468
26901792
DL
6469 * keyboard.c (timer_check): Inhibit busy cursor around calls to
6470 timer-event-handler. This busy cursor tends to be anoying if
6471 fontifying stealthily.
6472
6473 * dispnew.c (direct_output_for_insert): Give up if current row
6474 contains trailing whitespace.
6475
64761998-11-13 Gerd Moellmann <gerd@gnu.org>
6477
6478 * dispextern.h (prop_idx): Add FONTIFIED_PROP_IDX.
6479
6480 * xdisp.c (handle_fontified_prop): New.
6481 (Vfontification_functions): New.
6482 (Qfontification_functions): New.
6483 (it_props): Add handle_fontified_prop.
6484
64851998-11-12 Gerd Moellmann <gerd@gnu.org>
6486
6487 * xmenu.c (xmenu_show): Use the frame's edit_widget as parent.
6488 Otherwise, under LessTif, after the popup has gone, all button
6489 press events come in for the frame's widget, and release events
6490 come in for the edit_widget.
6491 * xterm.c (XTread_socket): Remove workaround for that problem.
6492 (x_set_toolkit_scroll_bar_thumb): Add workaround for LessTif
6493 XmScrollBarSetValues.
6494 (SET_SAVED_MENU_EVENT): Give it statement form.
6495
26901792
DL
6496 * xfaces.c (display_message): If waiting_for_input, don't display
6497 the message.
6498
6499 * window.c (scroll_command): If not acting on current_buffer,
6500 make redisplay consider all windows.
6501
6502 * xfns.c (Fx_hide_tip): Return t if tooltip was open.
6503
6504 * xdisp.c (handle_glyph_prop): Set it->object for images to
6505 the object having the glyph property.
6506
6507 * xterm.c (x_draw_row_bitmaps): Don't draw if row is completely
6508 invisible.
6509
65101998-11-11 Gerd Moellmann <gerd@gnu.org>
6511
6512 * xterm.h (struct x_display_info): Add gray pixmap. * xterm.c
6513 (x_term_init): Create the gray pixmap.
6514 (x_setup_relief_color): Use it.
6515 (x_get_glyph_string_clip_rect): Draw a toolbar window over the
6516 internal border at the top of a frame.
6517 (x_init_glyph_string): Likewise.
6518 (x_draw_glyph_string_relief): Correct right x by 1 pixel for
6519 full-width lines.
6520 (XTflash): Don't flash the toolbar window.
6521
6522 * xterm.c (XTread_socket): Workaround for LessTif popup menus
6523 in case of ButtonPress events.
6524
65251998-11-10 Gerd Moellmann <gerd@gnu.org>
6526
6527 * xrdb.c (x_load_resources): Add grey background colors as
6528 defaults for menus, scroll bars, and dialogs.
6529
6530 * insdel.c (prepare_to_modify_buffer): Move setting
6531 windows_or_buffers_changed from modify_region here.
6532
6533 * xfns.c (Fx_show_tip): Inhibit redisplay.
6534 (Fx_hide_tip): Ditto.
6535 (Fx_image_header): New.
6536
65371998-11-09 Gerd Moellmann <gerd@gnu.org>
6538
6539 * dispnew.c (clear_window_matrices): Set window_end_valid to nil
6540 when clearing current window matrices.
6541
65421998-11-08 Gerd Moellmann <gerd@gnu.org>
6543
6544 * xdisp.c (handle_glyph_prop): Don't set an iterator's buffer
6545 position from a string position. Use the right end position
6546 if the property spans a whole overlay string.
6547
65481998-11-07 Gerd Moellmann <gerd@gnu.org>
6549
6550 * xmenu.c (menubar_selection_callback): Remove workaround for
6551 Lesstif not calling XmNpopdownCallback because it doesn't
6552 handle the case where users don't select any menu item.
6553
26901792
DL
6554 * insdel.c (modify_region): Set windows_or_buffers_changed.
6555
6556 * buffer.c (set_buffer_internal): Don't set
6557 windows_or_buffers_changed.
6558
26901792
DL
6559 * xmenu.c (HAVE_BOXES): Define if USE_X_TOOLKIT.
6560
26901792
DL
6561 * xmenu.c (menubar_selection_callback): Add workaround for
6562 Lesstif not calling XmNpopdownCallback.
6563
6564 * xdisp.c (eval_mode_element): New.
6565 (eval_mode_handler): New.
6566 (display_mode_element): Use eval_mode_element.
6567
6568 * xdisp.c (display_mode_element): Allow `(:eval FORM)'.
6569 Remove code looking at text props of default value.
6570
6571 * xmenu.c (HAVE_BOXES): Define if using Lucid menus.
6572
26901792
DL
65731998-11-06 Gerd Moellmann <gerd@gnu.org>
6574
6575 * xmenu.c (single_submenu): Set button_type of menu to
6576 BUTTON_TYPE_NONE.
6577 (single_submenu): Likewise for panes and menu items.
6578 (set_frame_menubar): Set button_type of menu bar to none.
6579 (xmenu_show): Likewise.
6580 (single_submenu): Set widget values selected slot.
6581 (xmenu_show): Likewise.
6582
26901792
DL
6583 * xmenu.c (push_menu_item): Add parameters `type' and
6584 `selected'. Store it in menu_items.
6585 (MENU_ITEMS_ITEM_TYPE): New.
6586 (MENU_ITEMS_ITEM_SELECTED): New.
6587 (MENU_ITEMS_ITEM_LENGTH): Increase by two.
6588
6589 * xfns.c (clear_image_cache): Get the current time, before
6590 doing anything.
6591 (cache_image): Set prev pointer of next image.
6592 (clear_image_cache): Clear current matrices if any image was
6593 freed.
6594
6595 * xterm.c (XTread_socket): Set inhibit_busy_cursor.
6596
6597 * xfns.c (x_set_cursor): New.
6598 (Fx_display_busy_cursor): New.
6599 (Fx_undisplay_busy_cursor): New.
6600
6601 * xterm.h (struct x_output): Add busy_cursor.
6602
6603 * xfns.c (Vx_busy_pointer_shape): New.
6604 (x_set_mouse_color): Create busy cursor.
6605
6606 * process.c (wait_reading_process_input): Show and hide busy
6607 cursor.
6608
6609 * keyboard.c (command_loop_1): Display busy cursor.
6610
6611 * eval.c (Fsignal): Hide busy cursor.
6612
6613 * buffer.c (set_buffer_internal): Don't set
6614 windows_or_buffers_changed.
6615
6616 * xterm.c (redo_mouse_highlight): New.
6617
66181998-11-04 Gerd Moellmann <gerd@gnu.org>
6619
26901792
DL
6620 * xfns.c (x_create_x_image_and_pixmap): Add depth parameter.
6621 (x_build_heuritic_mask): New.
6622 (lookup_image): Call it.
6623
6624 * xterm.c (note_toolbar_highlight): Always set up help_echo.
6625 (previous_help_echo): New.
6626 (XTread_socket): Generate help event with nil message when
6627 leaving a region with help-echo.
6628 (note_mouse_highlight): Handle `help-echo' over text.
6629 (XTread_socket): Dispatch VisibilityNotify, CirculateNotify,
6630 CirculateRequest.
6631 (clear_mouse_face): Don't clear if tooltip is shown.
6632 (XTread_socket): Redo mouse-highlight after tooltip is gone.
6633 Avoid SET_FRAME_GARBAGED when tooltip is mapped.
6634
6635 * keyboard.c (Vshow_help_function): New.
6636 (read_char): Use it.
6637
66381998-11-03 Gerd Moellmann <gerd@gnu.org>
6639
6640 * xfns.c (x_create_tip_frame): New.
6641 (Fx_show_tip): New.
6642 (Fx_hide_tip): New.
6643
6644 * xterm.c (x_destroy_window): Handle case that we don't have
6645 a widget.
6646
6647 * dispextern.h (struct glyph_row): Rename no_marginal_areas_p
6648 to full_width_p. Add internal_border_p.
6649
66501998-11-02 Gerd Moellmann <gerd@gnu.org>
6651
6652 * xterm.c (note_mode_line_highlight): Check the charpos of
6653 the glyph under the mouse pointer before accessing text
6654 properties at that position.
6655
66561998-11-01 Gerd Moellmann <gerd@gnu.org>
6657
6658 * xterm.c (x_draw_image_relief): Handle toolbar_button_relief.
6659
6660 * xdisp.c (auto-raise-toolbar-buttons): New.
6661 (build_desired_toolbar_string): Handle the flag.
6662 (toolbar-button-margin): New.
6663 (toolbar-button-relief): New.
6664 (build_desired_toolbar_string): Use margin and relief.
6665
6666 * xterm.c (x_set_toolkit_scroll_bar_thumb): Remove workaround
6667 for FreeBSD.
6668 (note_mode_line_highlight): New.
6669 (note_mouse_highlight): Call it.
6670
66711998-10-31 Gerd Moellmann <gerd@gnu.org>
6672
6673 * s/freebsd.h (NARROWPROTO): New.
6674
6675 * xdisp.c (display_string): New parameter face_string.
6676 (display_mode_element): When displaying a symbol with a string
6677 value, use text properties from the symbol's default value, maybe.
6678
6679 * xrdb.c (x_load_resources): Add font defaults for menus and
6680 dialogs.
6681
66821998-10-30 Gerd Moellmann <gerd@gnu.org>
6683
6684 * xfns.c (Fx_create_frame): Try 12pt Courier font first.
6685
66861998-10-29 Gerd Moellmann <gerd@gnu.org>
6687
6688 * xterm.c (x_produce_glyphs): Fix bug causing glyphs to be
6689 produced for characters with codes < 32 under certain
6690 circumstances.
6691
6692 * xdisp.c (redisplay_window): Handle values of PT in front
6693 of invisible, intangible text.
6694 (try_window_id): Set overlay_arrow_seen to zero before
6695 displaying lines.
6696 (display_mode_element): Assign to glyphs written for a mode
6697 line spec `%x' as object the Lisp format string, as position
6698 the position of the `%' in that string.
6699 (display_string): If displaying a C string, optionally get
6700 the face to use from a Lisp string.
6701
6702 * xterm.c (expose_window_tree): Include mode line height.
6703
6704 * xfns.c (Fx_create_frame): Add toolbar height to frame height.
6705
67061998-10-27 Gerd Moellmann <gerd@gnu.org>
6707
6708 * xterm.c (note_mouse_highlight): Change mouse pointer shape
6709 over mode line.
6710
67111998-10-26 Gerd Moellmann <gerd@gnu.org>
6712
6713 * window.c (coordinates_in_window): Use CURRENT_MODE_LINE_HEIGHT.
6714
6715 * xdisp.c (redisplay_window): If mode line height has changed,
6716 arrange for a thorough immediate redisplay using the correct mode
6717 line height.
6718 (window_box_height): Use CURRENT_MODE_LINE_HEIGHT.
6719
6720 * dispextern.h (MATRIX_MODE_LINE_HEIGHT): New.
6721 (CURRENT_MODE_LINE_HEIGHT): New.
6722 (DESIRED_MODE_LINE_HEIGHT): New.
6723
6724 * keyboard.c (make_lispy_event): Add string and string position
6725 info to mouse-click events.
6726 (read_key_sequence): Handle `local-map' property of mode line
6727 strings.
6728
6729 * keyboard.h (POSN_STRING): New.
6730
67311998-10-25 Gerd Moellmann <gerd@gnu.org>
6732
6733 * dispnew.c (mode_line_string): Mew.
6734
6735 * xterm.c (xt_action_hook): New.
6736 (x_create_toolkit_scroll_bar): Add action hook.
6737 (xm_scroll_callback): Implement dragging.
6738
6739 * keyboard.c (Qend_scroll): New.
6740 (scroll_bar_parts): Add it.
6741
6742 * termhooks.h (scroll_bar_end_scroll): New.
6743
6744 * xterm.c (XTread_socket): Bug fix.
6745
67461998-10-24 Gerd Moellmann <gerd@gnu.org>
6747
6748 * xdisp.c (redisplay_window): Finish scroll bars after
6749 redisplaying toolbar.
6750
6751 * keyboard.c (scroll_bar_parts): Add Qtop and Qbottom.
6752 (syms_of_keyboard): Add Qbottom.
6753
6754 * termhooks.h (scroll_bar_to_top): New.
6755 (scroll_bar_to_bottom): New.
6756
6757 * xdisp.c (redisplay_window): Always resize toolbar window if
6758 auto_resize_toolbar_p is non-zero.
6759 (auto_resize_toolbar_p): Renamed from auto_resize_toolbar.
6760 (window_box): New.
6761 (window_box_height): New.
6762 (window_box_width): New.
6763 (window_box_left): New.
6764 (window_box_right): New.
6765 (window_box_edges): New.
6766
67671998-10-23 Gerd Moellmann <gerd@gnu.org>
6768
6769 * xterm.c (x_set_toolkit_scroll_bar_thumb): Kluge for call to
6770 XawScrollbarSetThumb in FreeBSD.
6771 (x_create_toolkit_scroll_bar): Set resource "beNiceToColormap"
6772 to true.
6773
6774 * window.c (get_phys_cursor_glyph): Return null if cursor vpos
6775 is out of range.
6776
6777 * xterm.c (x_create_toolkit_scroll_bar): Set scroll_bar_pixel.
6778 (x_term_init): Initialize it.
6779
6780 * xterm.h (struct x_display_info): Add scroll_bar_pixel.
6781
6782 * xterm.c (x_create_toolkit_scroll_bar): Set LessTif scroll bar's
6783 cursor.
6784
67851998-10-22 Gerd Moellmann <gerd@gnu.org>
6786
6787 * keyboard.c (make_lispy_event): Handle scroll_bar_click
6788 differently when using toolkit scroll bars.
6789
6790 * xterm.c (x_send_scroll_bar_event): New.
6791 (x_scroll_bar_to_input_event): New.
6792 (xaw3d_scroll_callback): New.
6793 (xaw3d_jump_callback): New.
6794 (xm_scroll_callback): New.
6795 (x_toolkit_scroll_p): New.
6796 (XTread_socket): Handle scroll bar client message.
6797 (x_term_init): Initialize Xatom_Scrollbar.
6798 (x_scroll_bar_create): Set cursor.
6799 (xm_scroll_callback):
6800 (x_create_toolkit_scroll_bar): New.
6801 (x_set_toolkit_scroll_bar_thumb): New.
6802 (x_scroll_bar_create): Call x_create_toolkit_scroll_bar.
6803 (XTset_vertical_scroll_bar): Call x_set_toolkit_scroll_bar_thumb.
6804
6805 * xterm.h (struct x_display_info): Add Xatom_Scrollbar.
6806
68071998-10-21 Gerd Moellmann <gerd@gnu.org>
6808
6809 * xterm.c (x_scroll_bar_remove): Handle toolkit scroll bars.
6810 (XTread_socket): Don't handle mouse button events for scroll bars
6811 if using toolkit scroll bars.
6812 (XTset_vertical_scroll_bar): Set thumb size and position for
6813 Athena scroll bar.
6814
6815 * xterm.h (scroll_bar): Add x_widget_low and x_widget_high.
6816
6817 * xterm.c (XTread_socket): Dispatch expose event to widget
6818 if using toolkit scroll bars.
6819 (x_scroll_bar_expose): Make no-op for toolkit scroll bars.
6820 (x_scroll_bar_create): Create and show a scroll bar widget
6821 if using toolkit scroll bars.
6822 (x_scroll_bar_move): Handle tookit scroll bars.
6823
6824 * Makefile.in (LIBW): Use Xaw3d if present.
6825
6826 * configure.in (USE_TOOLKIT_SCROLL_BARS): New.
6827 (HAVE_XAW3D): New.
6828
6829 * config.in (USE_TOOLKIT_SCROLL_BARS): New.
6830 (HAVE_XAW3D): New.
6831
6832 * xterm.c (XTset_vertical_scroll_bar): Correct position of
6833 right vertical scroll bar.
6834
68351998-10-20 Gerd Moellmann <gerd@gnu.org>
6836
6837 * xfns.c (xpm_load): Support reading XPM images from string
6838 buffers containing data in the same format as an XPM file.
6839 Support `:color-symbols'.
6840 (xpm_format): Add `:data'.
6841 (xpm_keyword_index): Add XPM_DATA.
6842 (syms_of_xfns): Add `:color-symbols'.
6843 (xpm_keyword_index): Add XPM_COLOR_SYMBOLS.
6844 (xpm_valid_color_symbols_p): New.
6845 (xpm_image_p): Call it.
6846
6847 * xdisp.c (build_desired_toolbar_string): Add `:algorithm'
6848 attribute to the image if item is not enabled.
6849
6850 * xfns.c (x_laplace): New.
6851 (x_laplace_read_row): New.
6852 (x_laplace_write_row): New.
6853 (lookup_image): Handle common image attributes here. New
6854 attribute `:algorithm'.
6855
6856 * xfaces.c (clear_face_cache): Call clear_image_cache.
6857
6858 * xterm.c (x_inverted_image_mask): Removed.
6859 (x_draw_image_foreground_1): New.
6860 (x_draw_image_glyph_string): Draw images with mask to a temporary
6861 pixmap to reduce flickering.
6862
6863 * xdisp.c (redisplay_toolbar): Handle auto-resize-toolbars.
6864 (display_toolbar_line): Remove parameter `margin'.
6865
68661998-10-19 Gerd Moellmann <gerd@gnu.org>
6867
6868 * xdisp.c (toolbar_lines_needed): New.
6869 (auto-resize-toolbars): New.
6870
6871 * xfns.c (cache_image): Correct call to xrealloc.
6872
6873 * dispnew.c (Fset_toolbar_height): Removed.
6874
6875 * xdisp.c (init_xdisp): Use FRAME_TOP_MARGIN instead of
6876 FRAME_MENU_BAR_LINES.
6877
6878 * window.c (Fdelete_other_windows): Use FRAME_TOP_MARGIN
6879 instead of FRAME_MENU_BAR_LINES.
6880 (check_frame_size): Ditto.
6881
6882 * dispnew.c (adjust_frame_glyphs_initially): Use FRAME_TOP_MARGIN
6883 instead of FRAME_MENU_BAR_LINES.
6884 (adjust_frame_glyphs_for_frame_redisplay): Ditto.
6885 (build_frame_matrix): Ditto.
6886 (change_frame_size_1): Ditto.
6887
6888 * frame.h (FRAME_TOOLBAR_LINES): New.
6889 (FRAME_TOP_MARGIN): New.
6890
6891 * window.c (struct save_window_data): Add frame_toolbar_lines.
6892 (Fset_window_configuration): Handle toolbar lines.
6893 (Fcurrent_window_configuration): Save toolbar lines.
6894
6895 * frame.c (syms_of_frame_1): Add Qtoolbar_lines.
6896
6897 * xfns.c (Fx_create_frame): Add default parameter for toolbar.
6898
6899 * frame.h (struct frame): Rename top_margin to toolbar_lines.
6900
6901 * xfns.c (x_frame_parms): Add `toolbar-lines'.
6902 (x_set_toolbar_lines): New.
6903
6904 * keyboard.c (cmd_error_internal): Bug fix.
6905
6906 * xterm.c: Remove double include of syssignal.h.
6907
69081998-10-18 Gerd Moellmann <gerd@gnu.org>
6909
6910 * xterm.c (x_toolbar_item): New.
6911 (x_handle_toolbar_click): Use it.
6912 (note_toolbar_highlight): Use it.
6913
6914 * keyboard.c (syms_of_keyboard): Staticpro toolbar_item_properties
6915 and toolbar_items_vectors.
6916
6917 * xterm.c (help_echo): New.
6918 (draw_glyphs_face): Add DRAW_IMAGE_RAISED and DRAW_IMAGE_SUNKEN.
6919 (x_set_glyph_string_gc): Handle them.
6920 (x_after_update_window_line): Don't do anything in pseudo-windows.
6921 (x_produce_image_glyph): Take image margin and face relief into
6922 account.
6923 (x_get_glyph_string_clip_rect): Handle pseudo-windows.
6924 (x_draw_glyph_string_background): Optimize case when face has
6925 relief.
6926 (x_setup_relief_color): Take frame instead of glyph string
6927 parameter.
6928 (x_draw_relief_rect): New.
6929 (x_draw_glyph_string_relief): Call it.
6930 (x_draw_image_glyph_string_foreground): Handle margin and image
6931 relief.
6932 (x_draw_image_glyph_string_background): Ditto.
6933 (expose_frame): Redraw toolbar window.
6934 (expose_window): Don't draw cursor for pseudo-windows.
6935 (x_y_to_hpos_vpos): Handle pseudo-windows.
6936 (frame_to_window_pixel_xy): New.
6937 (note_mouse_highlight): Call note_toolbar_highlight.
6938 (x_handle_toolbar_click): New.
6939 (note_toolbar_highlight): New.
6940 (show_mouse_face): Change int parameter `hl' to parameter of
6941 type enum draw_glyphs_face. Handle image highlighting.
6942 (XTread_socket): Return a HELP_EVENT input event if help_echo is
6943 non-nil. Use x_handle_toolbar_click.
6944
6945 * termhooks.h (event_kind): Add HELP_EVENT, TOOLBAR_EVENT.
6946
6947 * xfns.c (image_value_type): Add IMAGE_INTEGER_VALUE,
6948 IMAGE_BOOL_VALUE.
6949 (parse_image_spec): Handle them.
6950 (image_spec_value): Additional parameter found.
6951 (free_image): Remove image from the vector `images' of the
6952 image cache.
6953 (clear_image_cache): Additional parameter force_p.
6954 (Fclear_image_cache): New.
6955 (x_find_image_file): New.
6956 (xbm_load): Handle `:margin' and `:relief'. Use
6957 x_find_image_file.
6958 (xpm_load): Likewise.
6959 (pbm_load): Likewise.
6960 (jpeg_load): Likewise.
6961 (tiff_load): Likewise.
6962 (gif_load): Likewise.
6963
6964 * keyboard.c (Qhelp_echo): New symbol.
6965 (read_char): Handle `toolbar' and `help_echo' events.
6966 (kbd_buffer_get_event): Handle HELP_ECHO input event.
6967 (make_lispy_event): Handle TOOLBAR_EVENT.
6968 (toolbar_items): New.
6969 (process_toolbar_item): New.
6970 (PROP): New.
6971 (init_toolbar_items): New.
6972 (append_toolbar_item): New.
6973 (read_char_x_menu_prompt): Handle `toolbar' event.
6974 (read_key_sequence): Ditto.
6975
6976 * xfaces.c (Qtoolbar): New.
6977 (realize_basic_faces): Realize `toolbar' face.
6978 (face_at_string_position): Remove parameter modeline_p, add
6979 base_face_id.
6980
6981 * xfns.c (xbm_load_image_from_file): Don't use Xmu function
6982 to read data.
6983
69841998-10-17 Gerd Moellmann <gerd@gnu.org>
6985
6986 * xdisp.c (init_iterator): Replace parameter modeline_p with
6987 base_face_id.
6988 (next_element_from_string): Call get_next_display_element
6989 recursively after handling text properties.
6990 (prepare_menu_bars): Call update_toolbar.
6991 (update_toolbar): New.
6992 (build_desired_toolbar_string): New.
6993 (display_toolbar_line): New.
6994 (redisplay_toolbar): New.
6995 (toolbar_item_info): New.
6996 (redisplay_window): Call redisplay_toolbar.
6997 (Fdump_toolbar_row): New. Defined if compiled with GLYPH_DEBUG.
6998
6999 * dispnew.c (clear_current_matrices): Clear matrices of toolbar
7000 window.
7001 (clear_desired_matrices): Ditto.
7002 (adjust_frame_glyphs_for_window_redisplay): Make toolbar window.
7003 (free_glyphs): Free matrices of toolbar window.
7004 (update_frame): Update toolbar window.
7005 (change_frame_size_1): Take toolbar into account.
7006 (Fset_toolbar_height): New.
7007
7008 * dispextern.h (struct it): Remove member modeline_p, add
7009 base_face_id.
7010 (struct image): Add members relief and margin.
7011 (IMAGE_ASCENT): Include margin in height.
7012
70131998-10-14 Gerd Moellmann <gerd@gnu.org>
7014
7015 * xfns.c (Fclear_image_cache): New.
7016
7017 * xfaces.c (realize_basic_faces): Realize toolbar face.
7018 (face_at_string_position): Remove parameter modeline_p, add
7019 base_face_id.
7020
7021 * dispextern.h (enum face_id): Add TOOLBAR_FACE_ID.
7022
70231998-10-13 Gerd Moellmann <gerd@gnu.org>
7024
7025 * keyboard.c (syms_of_keyboard): Intern `:help'.
7026
70271998-10-12 Gerd Moellmann <gerd@gnu.org>
7028
7029 * xterm.c (note_toolbar_highlight): New.
7030 (note_mouse_highlight): Call it.
7031
7032 * window.c (window_from_coordinates): Additional parameter toolbar_p.
7033 (coordinates_in_window): Handle toolbar window.
7034
7035 * keyboard.c (toolbar_items): New.
7036 (process_toolbar_item): New.
7037 (parse_toolbar_item): New.
7038 (init_toolbar_items): New.
7039 (append_toolbar_item): New.
7040
7041 * dispextern.h (enum toolbar_item_idx): New.
7042 (enum toolbar_item_image): New.
7043
7044 * frame.h (struct frame): Add toolbar-related members.
7045
7046 * xfaces.c (face_at_string_position): Remove assertion that
7047 current_buffer == window's buffer. This is not the case when
7048 called for the toolbar window.
7049
7050 * frame.c (make_frame): Initialize toolbar members.
7051
7052 * alloc.c (mark_object): Mark toolbar data of frames.
7053
7054 * frame.h (struct frame): Add toolbar-related members
7055 toolbar_window, desired_toolbar_items, current_toolbar_items,
7056 desired_toolbar_string, current_toolbar_string,
7057 n_desired_toolbar_items, n_current_toolbar_items. Add
7058 window_height.
7059
7060 * xterm.c (x_after_update_window_line): Don't draw bitmap
7061 areas for pseudo-windows.
7062 (expose_frame): Handle toolbar window.
7063 (expose_window): Don't do cursor stuff for pseudo-windows.
7064
7065 * xdisp.c (display_menu_bar): Correct calls to init_iterator.
7066
70671998-10-11 Gerd Moellmann <gerd@gnu.org>
7068
7069 * frame.c (make_frame): Initialize toolbar_window.
7070
7071 * alloc.c (mark_object): Make the toolbar window.
7072
7073 * dispnew.c (update_frame): Update frame's toolbar_window.
7074 (clear_current_matrices): Likewise.
7075 (clear_desired_matrices): Likewise.
7076 (adjust_frame_glyphs_for_window_redisplay): Make toolbar_window.
7077 (free_glyphs): Free the toolbar window and its matrices.
7078
7079 * frame.h (struct frame): Add toolbar_window.
7080
7081 * xterm.c (x_draw_glyph_string_relief): Handle mouse-face
7082 with relief.
7083
70841998-10-10 Gerd Moellmann <gerd@gnu.org>
7085
7086 * dispnew.c (buffer_posn_from_coords): Don't screw up if
7087 window start is not in the range BEGV..ZV.
7088
70891998-10-09 Gerd Moellmann <gerd@gnu.org>
7090
7091 * xdisp.c (try_scrolling): Experimentally handle the case
7092 that scroll-preserve-screen-position is set to `always'.
7093
7094 * window.c (Vscroll_preserve_screen_position): Replacement for
7095 scroll_preserve_screen_position.
7096
70971998-10-08 Gerd Moellmann <gerd@gnu.org>
7098
7099 * dispnew.c: Don't initialize auto structs; the HP/UX compiler
7100 doesn't like it.
7101 * xdisp.c: Ditto.
7102
7103 * xdisp.c (make_cursor_line_fully_visible): Adjust this_line_y.
7104
71051998-10-06 Gerd Moellmann <gerd@gnu.org>
7106
7107 * minibuf.c (Fminibuffer_complete_word): Fix computation of
7108 i_byte when prompts are inserted into minibuffers.
7109
7110 * dispextern.h (FRAME_INTERNAL_BORDER_WIDTH_SAFE): New.
7111 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Use it.
7112 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y): Ditto.
7113
71141998-10-04 Gerd Moellmann <gerd@gnu.org>
7115
7116 * xdisp.c (make_cursor_line_fully_visible): New.
7117 (try_scrolling): New.
7118 (redisplay_window): Move scrolling code to try_scrolling.
7119 (make_cursor_line_fully_visible): Handle case of window too small
7120 to show a single line.
7121 (redisplay_window): Case forced window start---use
7122 make_cursor_line_fully_visible.
7123 (redisplay_window): Case cursor movement via current matrix.
7124 If ending up on a partially visible line, make it fully visible
7125 instead of recentering.
7126 (try_scrolling): Additional parameter scroll_smoothly.
7127
7128 * xterm.c (x_draw_bitmap): Don't XClearArea under the pixmap.
7129
71301998-09-28 Gerd Moellmann <gerd@gnu.org>
7131
7132 * window.c (window_scroll_pixel_based): Bug fix: vpos used
7133 instead of y-position for scroll-preserved-screen-position.
7134
71351998-09-07 Gerd Moellmann <gerd@gnu.org>
7136
7137 * dispnew.c (update_frame_line): If current row is not enabled,
7138 write the whole line.
7139
71401998-09-06 Gerd Moellmann <gerd@gnu.org>
7141
7142 * lisp.h (HAVE_FACES): Removed.
7143
7144 * dispextern.h (HAVE_FACES): Removed.
7145
7146 * config.in (HAVE_FACES): Removed.
7147
7148 * dispnew.c (HAVE_FACES): Removed.
7149
7150 * xdisp.c (HAVE_FACES): Removed.
7151
7152 * xfaces.c (HAVE_FACES): Removed.
7153
71541998-09-05 Gerd Moellmann <gerd@gnu.org>
7155
7156 * xdisp.c (init_iterator): If face_change_count is non-zero,
7157 free realized faces.
7158
7159 * xfaces.c (free_all_realized_faces): Make it externally visible.
7160 (Finternal_set_lisp_face_attribute): Increment
7161 windows_or_buffers_changed.
7162
7163 * dispnew.c (direct_output_for_insert): Give up if
7164 face_change_count is non-zero.
7165 (direct_output_forward_char): Ditto.
7166
7167 * xfaces.c (face_change_count): New.
7168
71691998-09-04 Gerd Moellmann <gerd@gnu.org>
7170
7171 * xterm.c (x_draw_bar_cursor): Don't draw if cursor hpos is out
7172 of range.
7173
71741998-09-03 Gerd Moellmann <gerd@gnu.org>
7175
7176 * term.c (Ftty_display_color_p): New.
7177
71781998-09-02 Gerd Moellmann <gerd@gnu.org>
7179
7180 * xfaces.c (Ftty_defined_colors): New.
7181
7182 * xterm.c (x_produce_glyphs): Fix computation of
7183 contains_overlapping_glyphs_p for ASCII.
7184
7185 * dispnew.c (Fshow_cursor): Don't change cursor state while
7186 redisplaying.
7187 (direct_output_for_insert): If a glyph with lbearing or rbearing
7188 is among the new glyphs, set row flag contains_overlapping_glyph_p.
7189
71901998-09-01 Gerd Moellmann <gerd@gnu.org>
7191
7192 * term.c (OUTPUT_IF): Make replacement text have statement form.
7193 (OUTPUT1_IF): Ditto.
7194 (TS_italic_mode, TS_end_italic_mode): Removed.
7195 (TS_bold_mode): Removed.
7196 (TS_underscore_mode, TS_end_underscore_mode): Removed.
7197 (TS_enter_bold_mode, TS_enter_dim_mode, TS_enter_blink_mode): New.
7198 (TS_enter_reverse_mode): New.
7199 (TS_enter_underline_mode, TS_exit_underline_mode): New.
7200 (TN_magic_cookie_glitch_ul): New.
7201 (TS_enter_alt_charset_mode, TS_exit_alt_charset_mode): New.
7202 (TS_exit_attribute_mode): New.
7203 (TN_max_colors, TN_max_pairs, TS_orig_pairs): New.
7204 (TS_set_foreground, TS_set_background): New.
7205 (reset_terminal_modes): Switch colors back to default.
7206 (write_glyphs): Turn face on before writing text, turn it off
7207 afterwards.
7208 (insert_glyphs): Ditto.
7209 (term_init): Initialize new terminal capability variables.
7210 (turn_on_face): Turn a face on.
7211 (turn_off_face): Turn a face off.
7212
7213 * lisp.h (MAKE_GLYPH): Remove test for frame type.
7214 (GLYPH_CHAR): Ditto.
7215 (GLYPH_FACE): Ditto.
7216
7217 * xfaces.c (Vface_tty_color_alist): New.
7218 (face-register-tty-color): New.
7219 (face-clear-tty-colors): New.
7220
7221 * dispextern.h (FACE_TTY_DEFAULT_COLOR): New.
7222 (struct it): Remove member faces_p since we now always have faces.
7223
72241998-08-31 Gerd Moellmann <gerd@gnu.org>
7225
7226 * dispextern.h (struct face): Add tty appearance flags.
7227
7228 * xdisp.c (init_iterator): Always handle faces.
7229 (extend_face_to_end_of_line): Handle tty frames.
7230
7231 * dispnew.c (clear_glyph_matrix): Allow a null matrix to be
7232 passed in.
7233
72341998-08-30 Gerd Moellmann <gerd@gnu.org>
7235
7236 * xfaces.c (realize_default_face): Use empty strings to indicate
7237 that the face should use the default foreground/background
7238 color of the terminal. Fill font-related attributes with
7239 appropriate values for tty frames.
7240
7241 * emacs.c (main): Call syms_of_xfaces before init_window_once.
7242
7243 * xfaces.c (realize_default_face): If face `default' is not
7244 yet known, create it.
7245
7246 * frame.c (make_terminal_frame): Call init_frame_faces
7247 unconditionally.
7248
7249 * xfaces.c (init_frame_faces): Make it work for tty frames.
7250 (free_frame_faces): Ditto.
7251 (clear_face_cache): Ditto.
7252 (recompute_basic_faces): Ditto.
7253 (Fframe_face_alist): Ditto.
7254 (free_realized_face): Ditto.
7255 (prepare_face_for_display): Ditto.
7256 (clear_face_gcs): Ditto.
7257 (lookup_face): Ditto.
7258 (smaller_face): Ditto.
7259 (realize_default_face): Ditto.
7260 (realize_face): Ditto.
7261 (realize_face): Dispatch to functions depending on the frame type.
7262 (realize_x_face): X way of realizing faces.
7263 (realize_tty_face): TTY way of realizing faces.
7264
72651998-08-29 Gerd Moellmann <gerd@gnu.org>
7266
7267 * xfaces.c (realize_face): Remove parameter unibyte_registry,
7268 compute it instead.
7269 (lookup_face): Remove local variable unibyte_registry.
7270
72711998-08-22 Gerd Moellmann <gerd@gnu.org>
7272
7273 * xterm.c (x_draw_glyph_string_relief): Draw top and bottom lines
7274 1 pixel longer.
7275
7276 * xdisp.c (face_before_or_after_it_pos): Fix computation
7277 of face in buffer.
7278
7279 * editfns.c (make_buffer_string_both): If prompt in buffer,
7280 prevent start > end.
7281
7282 * indent.c (Fvertical_motion): Set current_buffer to window's
7283 buffer if it isn't already.
7284
72851998-08-21 Gerd Moellmann <gerd@gnu.org>
7286
7287 * dispextern.h (GLYPH_DEBUG): Use default 0.
7288
7289 * xdisp.c (it_props): New member `smaller'.
7290 (init_iterator): Initialize it.
7291 (Qsmaller): New.
7292 (push_it): Save value of `smaller' value on the stack.
7293 (pop_it): Restore `smaller' from the stack.
7294 (handle_smaller_prop): New.
7295 (handle_face_prop): Use `smaller' text property to select a
7296 suitable face.
7297
7298 * dispextern.h (SMALLER_PROP_IDX): New.
7299 (struct it): Add member `smaller'.
7300
7301 * xfaces.c (smaller_face): New.
7302
7303 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add bitmap area widths.
7304
7305 * dispnew.c (allocate_matrices_for_window_redisplay): Compute
7306 total pixel width of window differently.
7307
7308 * xdisp.c (init_iterator): Compute width of mode line differently.
7309
7310 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract width
7311 of bitmap areas.
7312
7313 * window.c (Fsplit_window): Include width of bitmap areas in
7314 window width.
7315 (window_internal_width): Subtract width of bitmap areas from
7316 total width.
7317
73181998-08-18 Gerd Moellmann <gerd@gnu.org>
7319
7320 * xdisp.c: Functions reordered for better readability.
7321
7322 * dispnew.c (update_text_area): Handle glyphs with arbitrary
7323 lbearing.
7324 (update_window_tree): Parameter no_scrolling_p removed.
7325 (update_single_window): Ditto.
7326
7327 * xterm.c (x_get_char_font_and_encoding): Renamed to
7328 x_get_char_face_and_encoding.
7329
7330 * dispnew.c (update_text_area): Don't call get_glyph_overhangs
7331 if end of current row reached.
7332
7333 * xterm.c (x_get_glyph_face_and_encoding): New.
7334 (x_get_glyph_overhangs): Call it.
7335
7336 * xdisp.c (Qshow_trailing_whitespace): New.
7337 (Qtrailing_whitespace): New.
7338 (enum prop_handled): New.
7339 (struct props, it_props): New.
7340 (next_overlay_change): New. Works like Fnext_overlay_change
7341 but doesn't use xmalloc.
7342 (handle_stop): Restructured.
7343 (face_before_or_after_it_pos): Case iteration over a string: fix
7344 handling of face before current position.
7345
73461998-08-16 Gerd Moellmann <gerd@gnu.org>
7347
7348 * dispnew.c (adjust_glyph_matrix): Don't optimize matrix
7349 reallocation matrix if fonts_changed_p.
7350 (update_text_area): Handle glyphs with lbearing.
7351
73521998-08-14 Gerd Moellmann <gerd@gnu.org>
7353
7354 * xdisp.c (struct props): New.
7355 (it_props): New.
7356 (compute_prop_info): New.
7357 (handle_stop): New.
7358
7359 * textprop.c (validate_interval_range): Make it externally
7360 visible.
7361
7362 * dispnew.c (direct_output_for_insert): Remove calls
7363 to compute_stop_pos.
7364
7365 * dispextern.h (struct it): Remove check_charpos,
7366 next_overlay_pos. Add what_changes.
7367
73681998-08-10 Gerd Moellmann <gerd@gnu.org>
7369
7370 * xterm.c (note_mouse_highlight): Set BEGV_BYTE, ZV_BYTE.
7371
7372 * xfaces.c (Vx_unibyte_registry_and_encoding): Removed. Use
7373 face_default_registry instead.
7374
7375 * syntax.c (scan_sexps_forward): Set up syntax table before
7376 jumping to initial state label.
7377
73781998-08-09 Gerd Moellmann <gerd@gnu.org>
7379
7380 * dispnew.c (check_matrix_invariants): Handle case of row end pos
7381 >= ZV specially.
7382
73831998-08-08 Gerd Moellmann <gerd@gnu.org>
7384
7385 * xdisp.c (redisplay_window): Case cursor movement---if cursor
7386 ends up in partially visible row, try to scroll. Case forced
7387 window start---handle windows not tall enough to show a single
7388 line.
7389
7390 * window.h (struct window): Member dy renamed vscroll.
7391
7392 * xterm.c (x_list_fonts): Re-activate suppression of scalable
7393 fonts.
7394 (x_draw_stretch_glyph_string): Set clipping if using GC that
7395 hasn't set it yet.
7396
7397 * xdisp.c (redisplay_window): Case forced window start -
7398 don't let cursor end on partially visible row. Use desired
7399 matrix to find a suitable PT if it doesn't appear.
7400 (decode_mode_spec): Merged with 20.2.97.
7401 (try_window_reusing_current_matrix): Give up if old or
7402 new display is vscrolled.
7403 (redisplay_window): Reset vscrolling if forced window start,
7404 or if recentering.
7405
74061998-08-06 Gerd Moellmann <gerd@gnu.org>
7407
7408 * xfaces.c (realize_default_face): Use the fontset name instead of
7409 the alias for the family attribute of the default face because we
7410 can't easily determine a good alias from fontset-alias-alist.
7411 (face_fontset): Use Fquery_fontset to find the fontset.
7412 (font_list): Additional pattern parameter.
7413 (try_font_list): Ditto.
7414 (set_lface_from_font_name): Set face family from font foundry
7415 and family.
7416 (font_list): If family contains a hyphen, build pattern differently.
7417
74181998-08-05 Gerd Moellmann <gerd@gnu.org>
7419
7420 * xfaces.c (free_realized_faces): Increment windows_or_buffers_-
7421 changed instead of setting the frame garbaged.
7422
7423 * xfaces.c (lface_equal_p): Don't assume equal Lisp types for
7424 all attribute values. This is wrong if values are unspecified,
7425 i.e. nil.
7426
7427 * xdisp.c (try_window_id): Give up if window start changed.
7428
7429 * xfaces.c (make_realized_face): Store registry as Lisp object.
7430 (load_face_font_or_fontset): Compute registry of a face
7431 differently. Make it `eq' to Vx_unibyte_registry_and_encoding if
7432 possible.
7433
7434 * dispextern.h (FACE_SUITABLE_FOR_CHARSET_P): Compare registries
7435 differently.
7436
7437 * alloc.c (mark_face_cache): Mark the registry member of faces.
7438
7439 * dispextern.h (struct face): Make registry a Lisp string.
7440
74411998-08-04 Gerd Moellmann <gerd@gnu.org>
7442
7443 * xterm.c (x_get_char_font_and_encoding): Additional parameter
7444 multibyte_p. Handle unibyte text.
7445 (x_append_glyph): Set the multibyte_p flag of glyphs.
7446 (x_produce_image_glyph): Ditto.
7447 (x_append_stretch_glyph): Ditto.
7448 (x_produce_glyphs): Handle unibyte text like ASCII.
7449
7450 * xdisp.c (push_it): Save the multibyte flag of an iterator on the
7451 stack.
7452 (pop_it): Restore it.
7453 (face_before_or_after_it_pos): Handle the case that the string or
7454 buffer is unibyte.
7455 (get_overlay_strings): Set the multibyte flag of the iterator if
7456 the new overlay string is multibyte.
7457 (get_glyph_property): Likewise.
7458 (get_next_display_element): Don't check for charset changes in
7459 unibyte text.
7460 (append_space): Compute face differently for unibyte text.
7461 (extend_face_to_end_of_line): Don't return quickly if face has
7462 stipple.
7463
7464 * xfaces.c (load_face_font_or_fontset): Store registry and
7465 encoding of the font in the registry member of the face.
7466 (make_realized_face): Additional parameter `registry'.
7467 (free_realized_face): Free the registry of a realized face.
7468 (face_suitable_for_charset_p): Function form of the macro
7469 with the same name in uppercase.
7470 (lookup_face): Use Vx_unibyte_registry_and_encoding if charset < 0.
7471 (choose_face_font): New parameter unibyte_registry.
7472 (choose_face_fontset_font): Ditto.
7473 (realize_default_face): Remember the registry and encoding of
7474 the specified frame font in Vx_unibyte_registry_and_encoding.
7475 (face_at_buffer_position): Handle unibyte.
7476 (face_at_string_position): Likewise.
7477 (realize_face): New parameter unibyte_registry.
7478 (compute_char_face): Handle the unibyte case.
7479
7480 * dispextern.h (struct glyph): Add bit multibyte_p.
7481 (struct face): New member registry holding the registry and
7482 encoding of the X font of the face.
7483 (FACE_UNIBYTE_P): Value is non-zero if face is for unibye text.
7484 (enum face_id): Add BASIC_FACE_ID_SENTINEL.
7485 (FACE_SUITABLE_FOR_CHARSET_P): Handle charset < 0 meansing unibyte
7486 text.
7487 (struct iterator_stack_entry): Add multibyte_p.
7488
7489 * xdisp.c (string_pos): Use string_char_to_byte.
7490 (char_charset): Removed.
7491
74921998-08-03 Gerd Moellmann <gerd@gnu.org>
7493
7494 * xterm.c (x_draw_image_glyph_string_foreground): Draw a
7495 rectangle for a block cursor over an image without a mask.
7496 (x_stretch_block_cursor): Added. Non-zero means don't draw
7497 a block cursor over a stretch as wide as that stretch.
7498 (x_draw_stretch_glyph_string): Use it.
7499 (x_draw_hollow_cursor): Ditto.
7500
7501 * minibuf.c (read_minibuf): Use minibuf_prompt instead of prompt.
7502 (read_minibuf): Add front-sticky text property for prompt.
7503
7504 * xdisp.c (char_charset): Return charset of a character,
7505 depending on whether or not multi-byte characters are enabled.
7506
7507 * xfaces.c (Fset_face_charset_registry): Removed.
7508 (x_charset_registry): Determine registry from charset plist.
7509
75101998-08-02 Gerd Moellmann <gerd@gnu.org>
7511
7512 * xdisp.c (get_next_display_element): Don't check for charset
7513 changes if multi-byte characters are not enabled.
7514
7515 * xdisp.c (echo_area_display): Use the flush function from the
7516 redisplay interface.
7517 * keyboard.c (detect_input_pending_run_timers): Likewise.
7518
7519 * dispextern.h (produce_*glyphs_hook): Removed.
7520 * term.c (produce_*glyphs): Ditto.
7521 (cursor_to): Remove pixel position parameters.
7522
7523 * dispnew.c: Remove hooks for window-based redisplay, introduce
7524 a redisplay interface structure.
7525
7526 * xterm.c (x_per_char_metric): Return default char metrics if per
7527 char metric exists but contains a zero width. Adobe Courier seems
7528 to contain such characters.
7529
7530 * xdisp.c (compute_line_metrics): Compute the width of rows
7531 without stopping at glyphs with zero width.
7532
75331998-08-01 Gerd Moellmann <gerd@gnu.org>
7534
7535 * xdisp.c (display_mode_line): If nothing was displayed at all,
7536 display a space.
7537 (hscroll_window_tree): Don't subtract 1 from target point if equal
7538 to ZV and window is not the selected window.
7539
7540 * dispnew.c (check_matrix_invariants): Remove check for window
7541 start at BEGV or after newline. This happens in rare cases
7542 intentionally.
7543
75441998-07-31 Gerd Moellmann <gerd@gnu.org>
7545
7546 * xfaces.c (x_charset_registry): Use STRING_BYTES.
7547 (syms_of_xfaces): Add Vface_default_registry.
7548 (x_charset_registry): Use it.
7549
7550 * xdisp.c (run_window_scroll_functions): Run window scroll functions.
7551 (redisplay_window): Use it.
7552
7553 * dispnew.c (update_text_area): Handle lbearing of deleted text
7554 by backing up one character.
7555
75561998-07-30 Gerd Moellmann <gerd@gnu.org>
7557
7558 * dispnew.c (adjust_glyph_matrix): Use a different check to
7559 decide to do nothing.
7560
7561 * xfaces.c (face_at_string_position): Additional parameter
7562 mode_line_p. If non-zero, merge with the mode line face
7563 instead of the default face.
7564 * dispextern.h (struct it): Add mode_line_p.
7565 * xdisp.c (init_iterator): Set it.
7566 (compute_face_in_string): Use it.
7567 (face_before_or_after_it_pos): Handle strings.
7568 (get_next_display_element): Don't look for relief end in C strings.
7569 (next_element_from_string): Deliver string position instead of
7570 buffer position.
7571
7572 * xterm.c (x_flush): Flush X output buffer.
7573 (XTflash): Use it.
7574
7575 * xfaces.c (lface_from_face_name): Renamed from lface_from_symbol.
7576 Allow strings as face names.
7577
7578 * xfns.c (forall_images_in_image_cache): Check that frame is
7579 alive.
7580
7581 * widget.c (EmacsFrameDestroy): Remove call to free_frame_faces;
7582 it's also called from x_destroy_window. Since this function is
7583 called from X, freeing stuff allocated with xmalloc is dangerous
7584 here, anyway.
7585
7586 * xfaces.c (free_realized_faces): Don't clear current matrices
7587 of a frame being destroyed.
7588
7589 * frame.c (make_frame): Call set_window_buffer instead of
7590 Fset_window_buffer.
7591
7592 * window.c (set_window_buffer): Extracted from Fset_window_buffer,
7593 with an additional argument specifying whether or not hooks may
7594 be called.
7595 (Fset_window_buffer): Call it.
7596
7597 * dispnew.c (clear_desired_matrices): Check that frame has
7598 a valid root window before clearing matrices in the window tree.
7599 (clear_current_matrices): Ditto.
7600 (clear_window_matrices): If GLYPH_DEBUG, check that hchild and
7601 vchild are valid windows if not nil.
7602
7603 * xfaces.c (merge_face_vector_with_property): Allow :reverse-video
7604 for :inverse-video.
7605 (Finternal_set_lisp_face_attribute): Ditto.
7606 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
7607 (Finternal_get_lisp_face_attribute): Ditto.
7608 (Finternal_lisp_face_attribute_values): Ditto.
7609 (syms_of_xfaces): Define the symbol `:reverse-video'.
7610
7611 * xdisp.c (get_glyph_property): Renamed from
7612 fill_iterator_from_glyph_property.
7613 (next_element_from_buffer): Handle case that no `glyph' property
7614 was found correctly.
7615 (display_line): Extend face to end of line only if we have faces.
7616
76171998-07-29 Gerd Moellmann <gerd@gnu.org>
7618
7619 * dispnew.c (Fshow_cursor): Renamed from blink_cursor. Take
7620 additional window argument.
7621
7622 * xdisp.c (reseat_at_previous_visible_line_start): Renamed from
7623 set_iterator_to_previous_visible_line_start.
7624 (reseat_at_next_visible_line_start): Likewise.
7625 (compute_stop_pos): Renamed from set_iterator_stop_pos.
7626 (face_before_or_after_it_pos): Renamed from get_face_at_it_pos.
7627 (compute_face_in_buffer): Renamed from
7628 compute_face_at_iterator_position.
7629 (compute_face_in_string): Renamed from
7630 compute_face_at_iterator_string_position.
7631 (get_space_width): Renamed from get_iterator_space_width.
7632 (next_overlay_string): Renamed from
7633 set_iterator_to_next_overlay_string.
7634 (get_overlay_strings): Renamed from
7635 get_overlay_strings_at_iterator_position.
7636 (restore_overlay_strings): Renamed from
7637 setup_overlay_strings_from_glyph_pos.
7638 (restore_dpvec): Renamed from setup_iterator_dpvec_from_glyph_pos.
7639 (init_from_display_pos): Renamed from init_iterator_from_glyph_pos.
7640 (init_to_row_start): Renamed from init_iterator_to_row_start.
7641 (init_to_row_end): Formerly init_iterator_to_next_row_start.
7642
7643 * xterm.c: Merge with 20.2.97.
7644 (x_produce_glyphs): Use x_append_stretch_glyph for tabs.
7645
7646 * dispextern.h (struct glyph): Replace text_pos position with
7647 simple charpos.
7648
7649 * xdisp.c (this_line_start_pos): Use struct text_pos.
7650 (this_line_end_pos): Renamed from .*endpos; use struct text_pos.
7651 (enum move_it_result): Renamed from move_iterator_result.
7652 (string_pos_nchars_ahead): Compute text_pos in a string from a
7653 known text_pos plus a character delta.
7654 (string_pos): Compute text_pos in string from charpos.
7655 (c_string_pos): Likewise for a C string.
7656 (number_of_chars): Return number of characters in a possibly
7657 multi-byte C string.
7658 (check_it): Renamed from check_iterator. Check that charpos and
7659 bytepos are in sync.
7660 (push_it): Renamed from save_iterator_settings.
7661 (pop_it): Renamed from restore_iterator_settings.
7662 (move_it_.*): Renamed from move_iterator_.*.
7663 (charset_at_position): Take charpos/bytepos into account.
7664 (back_to_previous_line_start): Set iterator to previous line start.
7665 (forward_to_next_line_start): Set iterator to next line start.
7666 (back_to_previous_visible_line_start): Renamed from
7667 move_iterator_previous_visible_line_start.
7668 (set_iterator_to_next_visible_line_start): Handle charpos/bytepos.
7669 (get_face_at_it_pos): Renamed from get_face_from_cursor_pos.
7670 Handle charpos/bytepos.
7671 (compute_face_at_iterator_position): Handle charpos/bytepos.
7672 (compute_face_at_iterator_string_position): Likewise.
7673 (get_iterator_space_width): Likewise.
7674 (load_overlay_strings): Likewise.
7675 (get_overlay_strings_at_iterator_position): Likewise.
7676 (reseat_iterator): Take a text_pos position argument.
7677 (setup_iterator_overlay_strings_from_glyph_pos): Handle charpos/
7678 bytepos.
7679 (init_iterator): Take additional bytepos parameter.
7680 (reseat_iterator_to_string): Handle charpos/bytepos.
7681 (start_display): Take a text_pos parameter. Handle charpos/bytepos.
7682 (next_element_from_string): Handle charpos/bytepos.
7683 (next_element_from_c_string): Likewise.
7684 (fill_iterator_from_glyph_property): Likewise.
7685 (next_element_from_buffer): Likewise.
7686 (set_iterator_to_next): Increment charpos and bytepos of an iterator.
7687 (move_iterator_in_display_line_to): Handle charpos/bytepos.
7688 (move_it_to): Likewise.
7689 (move_it_vertically_backward): Likewise.
7690 (move_it_vertically): Likewise.
7691 (move_it_by_lines): Likewise.
7692 (hscroll_window_tree): Likewise.
7693 (redisplay_internal): Likewise.
7694 (set_cursor_from_row): Likewise.
7695 (redisplay_window): Likewise.
7696 (try_window): Take a text_pos parameter. Handle charpos/bytepos.
7697 (try_window_reusing_current_matrix): Handle charpos/bytepos.
7698 (get_first_unchanged_at_end_row): Compute and return delta_bytes.
7699 (try_window_id): Handle charpos/bytepos.
7700 (Ftrace_redisplay_toggle): Return Qnil.
7701 (get_overlay_arrow_glyph_row): Handle charpos/bytepos.
7702 (insert_left_trunc_glyphs): Likewise.
7703
7704 * dispnew.c: `Merge' with 20.2.97 (it's really too different to
7705 do a real merge).
7706 (increment_glyph_matrix_buffer_positions): Add parameter delta_bytes.
7707 (increment_glyph_row_buffer_positions): Ditto.
7708 (copy_glyph_row_contents): Ditto.
7709 (check_matrix_invariants): Add additional checks for charpos/
7710 bytepos consistency.
7711 (direct_output_for_insert): Changed for charpos/bytepos.
7712 (buffer_posn_from_coords): Likewise. Put code dealing with
7713 `direction-reversed' in #if 0.
7714
7715 * xterm.h: Merge with 20.2.97.
7716
7717 * frame.h: Merge with 20.2.97.
7718
7719 * window.h: Merge with 20.2.97. Add window_end_bytepos.
7720
7721 * dispextern.h (MATRIX_ROW_START_CHARPOS): Get charpos of a row
7722 start.
7723 (MATRIX_ROW_START_BYTEPOS): Likewise for the byte position.
7724 (MATRIX_ROW_END_CHARPOS): Likewise for the row end.
7725 (MATRIX_ROW_END_BYTEPOS): Likewise for the row end byte position.
7726 (struct it): Various members renamed from .*pos to .*charpos.
7727 (IT_CHARPOS): Access current buffer character position of an
7728 iterator.
7729 (IT_BYTEPOS): Access current buffer byte position of an iterator.
7730 (IT_STRING_CHARPOS): Access current string character position of
7731 an iterator.
7732 (IT_STRING_BYTEPOS): Access current string byte position of
7733 an iterator.
7734 (globally): Add function prototypes from 20.2.97.
7735
7736 * everywhere: Use P_ instead of PROTO for function prototypes
7737 because everyone else seems to use P_.
7738
7739 * dispextern.h (struct text_pos): Structure describing a charpos/
7740 bytepos position in text.
7741 (BYTEPOS): Access the byte position part of a text_pos.
7742 (CHARPOS): Likewise for the character position.
7743 (SET_TEXT_POS): Set a text_pos from a character and byte position.
7744 (INC_TEXT_POS, DEC_TEXT_POS): Increment/decrement a text position.
7745 (SET_TEXT_POS_FROM_MARKER): Set a text_pos from a marker.
7746 (SET_MARKER_FROM_TEXT_POS): Set a marker from a text_pos.
7747 (TEXT_POS_EQUAL_P): Compare two text_pos structures for equality.
7748 (struct display_pos): Renamed from glyph_pos. Use struct text_pos
7749 for buffer and string positions.
7750 (struct glyph): Use text_pos.
7751 (struct it): Renamed from display_iterator. Use text_pos.
7752
77531998-07-23 Gerd Moellmann <gerd@gnu.org>
7754
7755 * xfns.c (x_kill_gs_process): Get image colors from XImage of a
7756 pixmap.
7757
77581998-07-21 Gerd Moellmann <gerd@gnu.org>
7759
7760 * dispextern.h (struct glyph_row): New flag indicate_zv_line_p.
7761 * xterm.c (x_draw_row_bitmaps): Use it.
7762 * dispnew.c (row_equal_p): Ditto.
7763 (update_window_line): Ditto.
7764
7765 * xfns.c (prepare_image_for_display): Don't set loading_failed_p
7766 flag of images.
7767
7768 * dispextern.h (struct image): Removed member loading_failed_p.
7769 It's probably better to have the chance to try to load an image
7770 again.
7771
77721998-07-20 Gerd Moellmann <gerd@gnu.org>
7773
7774 * xterm.c (x_draw_bitmap): Draw bitmap for empty lines ending
7775 at ZV if `indicate-zv-lines' is non-nil.
7776 (x_draw_row_bitmaps): Compute bitmap for `indicate-zv-lines'.
7777
7778 * dispnew.c (row_equal_p): Compare displays_text_p and
7779 ends_at_zv_p flags of rows.
7780 (update_window_line): Ditto.
7781
7782 * buffer.h (struct buffer): New member indicate_zv_lines.
7783
7784 * buffer.c (init_buffer_once): Add default for `indicate-zv-lines'.
7785 (init_buffer_once): New variable `default-indicate-zv-lines'.
7786 (syms_of_buffer): New buffer-local varianle `indicate-zv-lines'.
7787
7788 * xdisp.c (redisplay_window): Don't try moving the cursor
7789 if current glyph row w->last_cursor.vpos isn't enabled.
7790
7791 * xterm.c (bitmap_type): Add ZV_LINE_BITMAP.
7792
7793 * window.c (Fset_window_vscroll): Allow only negative scroll
7794 values. Others don't seem to make sense, and this way it's easy
7795 to restore a vscroll of zero.
7796
7797 * xterm.c (x_inverted_image_mask): Check that pixmap could be
7798 allocated.
7799 (x_draw_image_glyph_string_background): Don't clip if pixmap
7800 could not be created.
7801
7802 * xfns.c (xbm_load_image_from_file): Check that pixmap could
7803 be created.
7804 (xbm_load): Ditto.
7805 (gs_load): Ditto.
7806
7807 * xterm.c (x_get_glyph_overhangs): Take image and stretch
7808 glyphs into account.
7809
7810 * xfaces.c (realize_default_face): Don't set font family of
7811 the default face from the fontset alias name for `fontset-startup'.
7812
7813 * xfns.c (gs_load): Pass frame's pixel foreground and background
7814 color to the Lisp loader.
7815
78161998-07-19 Gerd Moellmann <gerd@gnu.org>
7817
7818 * xfns.c (tiff_image_p, tiff_load): Support TIFF images via
7819 libtiff34.
7820
7821 * configure.in (--with-tiff, HAVE_TIFF): Added.
7822
7823 * config.in (HAVE_TIFF): Added.
7824
7825 * Makefile.in (LIBTIFF): Added.
7826
7827 * xfns.c (jpeg_image_p, jpeg_load): Support JPEG images.
7828
7829 * Makefile.in (LIBJPEG): Added.
7830
7831 * xfns.c (resource_types): Enumerators renamed to RES_TYPE_NUMBER,
7832 RES_TYPE_BOOLEAN etc. because of conflict of `boolean' with
7833 jpeglib.h.
7834
7835 * configure.in (HAVE_JPEG, --with-jpeg): Added. On systems
7836 where the library is installed in /usr/local/lib, e.g. FreeBSD,
7837 configure must be run with `--x-includes=/usr/X11R6/include:
7838 /usr/local/include --x-libraries=/usr/X11R6/lib:/usr/local/lib'.
7839
78401998-07-18 Gerd Moellmann <gerd@gnu.org>
7841
7842 * config.in (HAVE_JPEG): Added.
7843
7844 * xfns.c (ct_init): Initialize color table used to map RGB colors
7845 from images to X pixel colors.
7846 (ct_free): Free color table.
7847 (ct_lookup): Look an RGB color up.
7848 (ct_allocated_colors): Get vector of allocated colors.
7849 (pbm_image_p): Test if image specification is a valid PPM
7850 image specification.
7851 (pbm_scan_number): Scan a decimal ASCII number from a file.
7852 (pbm_load): Load a PPM image.
7853
7854 * window.c (Fset_window_vscroll): Adjust glyph matrix if
7855 necessary. Take canonical character units as parameter.
7856 (Fwindow_vscroll): Return canonical character units.
7857
7858 * dispnew.c (allocate_matrices_for_window_redisplay): Add negative
7859 w->dy to display height for which glyph rows must be allocated.
7860
78611998-07-17 Gerd Moellmann <gerd@gnu.org>
7862
7863 * xfaces.c (face_at_string_position): Merge in region face
7864 so that it won't overwrite the font in the region.
7865 (face_at_buffer_position): Ditto.
7866 (realize_basic_faces): Don't realize region face.
7867
7868 * dispextern.h (enum face_id): REGION_FACE_ID removed.
7869
7870 * xterm.c (x_set_glyph_string_background_width): Don't let
7871 cursor face extend to end of line.
7872
7873 * xdisp.c (append_space): If adding space of default face,
7874 make sure glyph ist produced with right face.
7875
7876 * xterm.c (x_clear_glyph_string_rect): Draw a rectangle in the
7877 background color of a glyph string.
7878 (x_draw_glyph_string_background): Call it.
7879 (x_draw_glyph_string_bg_rect): Ditto.
7880 (x_draw_stretch_glyph_string): Ditto.
7881
78821998-07-15 Gerd Moellmann <gerd@gnu.org>
7883
7884 * xdisp.c (init_iterator): Initialize it->current_y to the
7885 window's vscroll w->dy.
7886
7887 * window.c (Fwindow_vscroll): Return number of pixels window
7888 is vscrolled smoothly.
7889 (Fset_window_vscroll): Set the number.
7890
7891 * xdisp.c (move_iterator_to): Recognize case MOVE_TO_POS and
7892 to_pos in truncated part of a line.
7893
78941998-07-14 Gerd Moellmann <gerd@gnu.org>
7895
7896 * xdisp.c (move_iterator_in_display_line_to): If very first glyph
7897 doesn't fit on the line, truncate it, despite truncate_lines nil.
7898 (display_line): Ditto.
7899
7900 * xfns.c: Experimental support for Ghostscript images.
7901
7902 * xterm.c (x_term_init): Initialize new atoms DONE and PAGE.
7903 (XTread_socket): React on events from Ghostscript.
7904 (expose_frame): If width or height are zero, redraw entire frame.
7905 (XTread_socket): Call expose_frame after receiving event from
7906 Ghostscript.
7907
7908 * xterm.h (struct x_display_info): Add atoms DONE and PAGE
7909 for Ghostscript support.
7910
7911 * xdisp.c (redisplay_internal): Return quickly if called
7912 recursively.
7913
7914 * alloc.c (NSTATICS): Increased to 1024.
7915
79161998-07-08 Gerd Moellmann <gerd@gnu.org>
7917
7918 * xterm.c (x_append_stretch_glyph): Append a stretch glyph to an
7919 iterator's glyph row.
7920 (x_produce_stretch_glyph): Call it.
7921 (x_produce_glyphs): Handle `space-width' property; call
7922 x_append_stretch_glyph.
7923
7924 * xdisp.c (syms_of_xdisp): Add symbol `space-width' used as a text
7925 property.
7926 (get_iterator_space_width): Determine value of `space-width'
7927 property at iterator's position.
7928 (reseat_iterator): Call it.
7929 (next_element_from_string): Ditto.
7930 (next_element_from_buffer): Ditto.
7931 (init_iterator): Initialize space_width of iterator.
7932 (redisplay_internal): Don't goto end_of_redisplay if PT hasn't
7933 moved, but cursor blinks.
7934 (redisplay_internal): Set w->last_cursor_off_p after update.
7935
7936 * dispextern.h (enum iterator_prop_idx): Add SPACE_WIDTH_PROP_IDX.
7937 (struct display_iterator): Add new member space_width.
7938
7939 * window.h (struct window): Add last_cursor_off_p.
7940
79411998-07-07 Gerd Moellmann <gerd@gnu.org>
7942
7943 * Saved.
7944
7945 * window.c (Fpos_visible_in_window_p): Case window not up to
7946 date---return nil if iterator hasn't reached position.
7947
79481998-07-06 Gerd Moellmann <gerd@gnu.org>
7949
7950 * xdisp.c (text_outside_line_unchanged_p): Fix case that
7951 overlays have changed.
7952 (redisplay_window): Case cursor movement. Don't try it if
7953 last_cursor.vpos is out of range.
7954
7955 * xdisp.c (set_cursor_from_row): Set this_line_.* variables. This
7956 way, the display optimization for the line containing the cursor
7957 is used more frequently, esp. when we have a blinking cursor.
7958 (display_line): Don't set this_line_.* variables.
7959
7960 * xterm.c (x_redraw_cursor): Removed.
7961 (x_display_and_set_cursor): Set cursor type depending on
7962 cursor_off_p flag of window.
7963
7964 * dispnew.c (redraw_cursor_hook): Removed.
7965 (Fblink_cursor): Additional parameter on_p to set the cursor_off_p
7966 member of the selected window.
7967
7968 * xfaces.c (Fface_font): Added for compatibility with 20.2.
7969
7970 * xterm.c (x_y_to_hpos_vpos): Return null if not over text.
7971 Return glyph area under x/y.
7972 (note_mouse_highlight): Use x_y_to_hpos_vpos in its new form.
7973
7974 * keyboard.c (detect_input_pending_run_timers): Call gobble_input
7975 after redisplaying.
7976
79771998-07-05 Gerd Moellmann <gerd@gnu.org>
7978
7979 * xdisp.c (text_outside_line_unchanged_p): Test if changes
7980 are all outside of a line of text.
7981 (redisplay_internal): Use it.
7982
79831998-06-30 Gerd Moellmann <gerd@gnu.org>
7984
7985 * xdisp.c (next_element_from_buffer): After skipping over
7986 invisible text, look for the `glyph' property.
7987 (set_iterator_stop_pos): Ignore check positions in front
7988 of an iterator's current position.
7989
7990 * xterm.c (show_mouse_face): Don't act on rows that don't exist
7991 anymore or which are marked as not having valid contents.
7992
7993 * xfaces.c (Finternal_set_lisp_face_attribute): Don't free
7994 realized faces if new attribute value is equal to old value.
7995
79961998-06-29 Gerd Moellmann <gerd@gnu.org>
7997
7998 * xfaces.c (Finternal_make_lisp_face): Increment
7999 lface_id_to_name_size when lface_id_to_name is reallocated.
8000
80011998-06-27 Gerd Moellmann <gerd@gnu.org>
8002
8003 * xdisp.c (set_iterator_stop_pos): Compute initial stop_pos
8004 as minimum of endpos and overlay_pos.
8005 (load_overlay_strings): Set next_overlay_pos of iterator to
8006 -1 if we don't have to check for more overlay strings.
8007
80081998-05-09 Gerd Moellmann <gerd@gnu.org>
8009
8010 * xdisp.c (set_iterator_to_next_visible_line_start): Don't
8011 do anything if iterator is at ZV because scan_buffer doesn't
8012 work otherwise.
8013
8014 * xterm.c (x_encode_char): Inline it.
8015 (x_get_char_font_and_encoding): Simplified.
8016 (x_per_char_metric): Inline it.
8017
8018 * xterm.c (x_draw_glyph_string_relief): Use clipping.
8019
8020 * xdisp.c (get_next_display_element): Check for end of relief
8021 face moved here from next_element_from_buffer.
8022
8023 * xterm.c (x_produce_image_glyph): Add relief thickness.
8024 (x_produce_stretch_glyph): Ditto.
8025
80261998-05-08 Gerd Moellmann <gerd@gnu.org>
8027
8028 * xdisp.c (fill_iterator_from_glyph_property): Handle glyph
8029 property value (space :width WIDTH :height HEIGHT :ascent ASCENT).
8030
8031 * xterm.c (x_produce_stretch_glyph): Produce a stretch glyph
8032 from a glyph property.
8033 (x_produce_glyphs): Use it.
8034
8035 * xdisp.c (set_iterator_to_next): Handle next_element_from_stretch.
8036
8037 * xterm.c (x_produce_image_glyph): Add to current_x only if
8038 in text area.
8039 (x_produce_glyphs): Ditto.
8040
8041 * xdisp.c (display_line): Compute row height from glyphs in
8042 marginal areas.
8043
8044 * xterm.c (x_draw_image_glyph_string_background): Draw
8045 background of an image glyph string.
8046 (x_draw_glyph_string_bg_rect): Draw a rectangular region of
8047 the background of a glyph string.
8048 (x_draw_image_glyph_string_foreground): Draw the foreground of
8049 an image glyph string.
8050 (x_inverted_image_mask): Return the inverted mask of an image.
8051
8052 * xfns.c (x_draw_image): Removed.
8053
8054 * dispextern.h (struct image_type): Remove drawing function.
8055
8056 * xfaces.c (load_face_colors): Swap colors if face is inverse.
8057
8058 * xdisp.c (get_next_display_element): In marginal areas, translate
8059 newlines, tabs, etc. like normal control characters.
8060
8061 * xfaces.c (Fface_color_supported_p): Transpose parameters frame
8062 and color.
8063 (free_realized_faces): Set frame garbaged.
8064
8065 * xfaces.c (syms_of_xfaces): Add defsubr for
8066 internal-lisp-face-attribute-values.
8067
80681998-05-07 Gerd Moellmann <gerd@gnu.org>
8069
8070 * xterm.c (x_produce_image_glyph): Don't add glyph if area is
8071 full.
8072 (x_produce_image_glyph): Set IT->nglyphs to 1.
8073 (x_draw_image_glyph_string): Use inverted mask to draw background.
8074
8075 * dispextern.h (struct image_type): Additional clipping rect
8076 parameters for drawing functions.
8077
8078 * xterm.c (x_get_glyph_string_clip_rect): Get clip rect for
8079 a glyph string.
8080 (x_draw_image_glyph_string): Use it and pass the rect to the
8081 image drawing function.
8082
8083 * xdisp.c (fill_iterator_from_glyph_property): Use position of
8084 first character with `glyph' property as image position. Set
8085 iterator back to that position as long as the image hasn't been
8086 consumed with set_iterator_to_next.
8087 (set_cursor_from_row): Accept when glyph with given position is
8088 not found in the row. Set cursor x to end of line in that case,
8089 so that we can hscroll.
8090 (redisplay_internal): Correct computation of delta by which
8091 positions have changed in redisplay optimization for cursor
8092 row of selected window.
8093
8094 * xdisp.c (display_line): Remove start_pos.
8095 (display_line): Fix bug preventing display optimization for
8096 cursor line of selected window.
8097 (next_element_from_buffer): Avoid XSETBUFFER, use it->w->buffer
8098 instead.
8099
8100 * dispnew.c (update_text_area): Use GLYPH_EQUAL_P.
8101 (update_text_area): Take glyph pixel width into account
8102 when trying to find a resync point.
8103 (row_equal_p): Compare glyphs in all areas.
8104
81051998-05-06 Gerd Moellmann <gerd@gnu.org>
8106
8107 * xterm.c (x_produce_glyphs): Don't add glyph if area is full.
8108
8109 * dispextern.h (struct glyph_row): Use unsigned hash value.
8110
8111 * xdisp.c (display_line): Simplified and made faster by setting
8112 the cursor with set_cursor_from_row.
8113 (set_cursor_from_row): Handle rows of desired matrix.
8114
81151998-05-05 Gerd Moellmann <gerd@gnu.org>
8116
8117 * xdisp.c (set_cursor_from_row): Don't put cursor on glyphs
8118 with type != CHAR_GLYPH.
8119 (fill_iterator_from_glyph_property): Return void. Set
8120 method to next_element_from_image.
8121 (next_element_from_image): Dummy function for delivering a
8122 single image id.
8123 (set_iterator_to_next): Add method next_element_from_image.
8124 (redisplay_window): When recentering, and cursor vpos is -1
8125 after display, assume middle of window is in first line displayed
8126 in window, and display again.
8127 (fill_iterator_from_glyph_property): Assign image glyph
8128 the position of the first character having the glyph property.
8129
8130 * dispextern.h (IMAGE_ASCENT): Compute ascent of image.
8131 * xfns.c (x_draw_image): Use it.
8132 * xterm.c (x_produce_image_glyph): Use it.
8133
8134 * xterm.c (x_produce_image_glyph): Set iterator's pixel_width.
8135
8136 * Makefile.in: Extraneous #define of LIBXPM removed.
8137
8138 * xterm.c (x_produce_glyphs): Produce a STRETCH_GLYPH for tabs.
8139 (x_fill_stretch_glyph_string): Fill a glyph string from a
8140 stretch glyph.
8141 (x_compute_glyph_string_overhangs): Compute overhangs only
8142 for text glyph strings.
8143 (x_draw_stretch_glyph_string): Draw a stretch glyph string.
8144 (x_draw_glyph_string): Call it.
8145
8146 * dispextern.h (glyph_type): Add STRETCH_GLYPH.
8147 (struct glyph): Add sub-structure for stretchable glyphs.
8148 (GLYPH_EQUAL_P): Compare glyph type and u.val.
8149
8150 * xdisp.c (get_overlay_arrow_glyph_row): Put face code into
8151 #ifdef HAVE_FACES.
8152
8153 * xterm.c (x_produce_glyphs): Use ASCII face for spaces of a TAB.
8154
8155 * xdisp.c (fill_iterator_from_glyph_property): Renamed from
8156 setup_iterator_from_glyph_property. Don't do it for terminal
8157 frames.
8158
8159 * xterm.c (x_produce_image_glyph): Produce glyph for image
8160 that can't be loaded.
8161
8162 * xfns.c (lookup_image): If image can't be loaded, set its
8163 width and height so that we can draw a rectangle.
8164 (x_draw_image): Draw a rectangle for images that don't have
8165 a pixmap.
8166 (make_image): Set hash value.
8167 (image_spec_equal_p): Use image_spec_value.
8168
8169 * xterm.c (expose_frame): Don't try to redraw if basic faces
8170 haven't benn realized yet.
8171 (x_draw_image_glyph_string): Fill background only if image
8172 is not as tall as row.
8173
81741998-05-04 Gerd Moellmann <gerd@gnu.org>
8175
8176 * Makefile.in (LIBXPM): If not already defined, define to -lXpm.
8177 (LIBX)[HAVE_X11]: Add LIBXPM.
8178
8179 * xfns.c (xpm_image_p): Implementation of image type functions
8180 for XPM.
8181 (xpm_load): Ditto.
8182
8183 * dispextern.h (struct image): Add mask pixmap for XPM.
8184
8185 * xfns.c (x_draw_image): Handle images with masks.
8186
8187 * configure.in: --with-xpm added. Code detecting -lXpm added.
8188
8189 * config.in: Add HAVE_XPM.
8190
8191 * xfns.c (xbm_draw): Removed.
8192 (x_draw_image): Default implementation for drawing images.
8193 (xbm_keyword_index): Remove XBM_DEPTH.
8194 (xbm_format): Remove `:depth'.
8195 (xbm_image_spec_from_file): Removed to reduce consing.
8196 (xbm_load_image_from_file): Added for the same reason.
8197
8198 * xterm.c (x_fill_image_glyph_string): Don't set ybase of
8199 glyph string.
8200 (x_draw_image_glyph_string): Pass ybase to image draw function.
8201
8202 * xfns.c (make_image): Set default baseline.
8203
8204 * xterm.c (x_produce_image_glyph): Compute ascent of image
8205 from its height and baseline percentage.
8206
8207 * xfns.c (xbm_keyword_index): Add XBM_BASELINE.
8208 (xbm_format): Add description for `:baseline'.
8209 (xbm_image_spec_from_file): Add keywords from original spec to
8210 result.
8211 (xbm_load): Set baseline of image.
8212 (xbm_image_p): Check range for baseline.
8213
8214 * dispextern.h (struct image): Add member baseline.
8215
8216 * xdisp.c (dump_glyph_matrix): Handle image glyphs.
8217
8218 * term.c (produce_glyphs): Change assertion to allow DISP_IMAGE.
8219
8220 * xdisp.c (get_next_display_element): Do character translations
8221 only if delivering characters.
8222
82231998-05-03 Gerd Moellmann <gerd@gnu.org>
8224
8225 * dispextern.h (ITERATOR_AT_END_OF_LINE_P): Test for
8226 DISP_CHARACTER.
8227
8228 * xterm.c (x_produce_image_glyph): Poduce image glyphs.
8229 (x_produce_glyphs): Call x_produce_glyphs for DISP_IMAGE.
8230
82311998-05-02 Gerd Moellmann <gerd@gnu.org>
8232
8233 * xfns.c (prepare_image_for_display): Set image timestamp.
8234 (clear_image_cache): Clear images if image's timestamp +
8235 Vimage_eviction_seconds is > now.
8236 (syms_of_xfns): New variables image-eviction-seconds, and
8237 image-types.
8238 (add_image_format): Add to image-types.
8239 (xbm_load): Support new image spec format.
8240 (x_alloc_image_color): Allocate a color for an image.
8241
8242 * dispextern.h (struct image): Add timestamp.
8243
8244 * xfns.c (xbm_image_p): Allow bool-vectors, vectors of strings and
8245 vectors of bool-vectors.
8246 (xbm_lisp_object_from_file): Build new format image spec.
8247
82481998-05-01 Gerd Moellmann <gerd@gnu.org>
8249
8250 * xfaces.c (init_frame_faces): Initialize image cache.
8251 (free_frame_faces): Free it.
8252
8253 * xterm.c (x_delete_display): Don't free image cache.
8254
8255 * emacs.c (main): Call init_xfns.
8256
82571998-04-30 Gerd Moellmann <gerd@gnu.org>
8258
8259 * alloc.c (mark_object): Mark objects in image cache.
8260
8261 * xfns.c (x_set_internal_border_width): Correct call to
8262 widget_store_internal_border_width.
8263
8264 * widget.c (widget_store_internal_border): Return void.
8265
8266 * xfns.c (x_destroy_bitmap): Use xfree instead of free. Return
8267 void.
8268 (init_x_parm_symbols): Return void.
8269 (x_report_frame_params): Ditto.
8270 (x_set_border_pixel): Ditto.
8271 (syms_of_xfns): Ditto.
8272 (x_destroy_all_bitmaps): Use xfree instead of free.
8273
8274 * xterm.h (FRAME_X_IMAGE_CACHE): Access the image cache of a frame.
8275
8276 * xterm.c (x_term_init): Initialize image_cache of display info.
8277 (x_delete_display): Free image cache.
8278
8279 * xterm.h (struct x_display_info): Add image_cache.
8280
8281 * xfns.c (make_image_cache): Allocate a new image cache.
8282 (free_image_cache): Free an image cache.
8283 (make_image): Allocate an image.
8284 (free_image): Free an image.
8285
8286 * dispextern.h (struct image): Structure describing an image.
8287 (struct image_cache): Structure describing an image cache.
8288
82891998-04-29 Gerd Moellmann <gerd@gnu.org>
8290
8291 * xdisp.c (check_iterator_glyph_property): Return int. Value is
8292 non-zero if iterator is filled with something to return.
8293 (next_element_from_buffer): Immediately return if
8294 setup_iterator_from_glyph_prop has filled iterator with pixmap.
8295 (next_element_from_string): Likewise.
8296
8297 * xfaces.c (load_pixmap): Allow to pass null for W_PTR and H_PTR.
8298
8299 * dispextern.h (struct glyph): Add pixmap_id.
8300 (display_element_type): Add DISP_PIXMAP.
8301
8302 * xmenu.c (popup_get_selection): Use xmalloc/xfree instead of
8303 malloc/free.
8304
8305 * xfaces.c (clear_font_table): Free fonts not used by fontsets.
8306 (clear_face_cache): Call it.
8307
8308 * xterm.c (x_query_font): Don't look at empty font table slots.
8309 (x_compute_min_glyph_bounds): Likewise.
8310 (x_term_init): Initialize font_table to null.
8311 (x_load_font): Change allocation of font_info structures so
8312 that it is possible to free fonts.
8313
8314 * xfns.c (Fx_close_connection): Use xfree instead of free.
8315 Only free fonts from filled font table entries.
8316
8317 * xfaces.c (best_matching_font): Support use of scalable fonts.
8318 (Fface_scalable_fonts_mode): Toggle use of scalable fonts.
8319
8320 * xterm.h (struct x_display_info): Remove screen_dpi, add resx
8321 and resy.
8322 * xterm.c (x_term_init): Compute resx and resy.
8323
8324 * xfaces.c (split_font_name): Don't reject scalable fonts.
8325
8326 * xterm.c (x_list_fonts): Set code exclusing scalable fonts
8327 in #if 0.
8328
8329 * xfaces.c (xlfd_point_size): Return 0 for fonts whose real
8330 point size cannot be determined.
8331
8332 * xterm.h (FRAME_SMALLEST_CHAR_WIDTH): Return smallest character
8333 width over all fonts on a frame.
8334 (FRAME_SMALLEST_FONT_HEIGHT): Likewise for font height.
8335 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Use these
8336 macros.
8337
8338 * xterm.c (x_font_min_bounds): Moved here from xfaces.c.
8339 (x_compute_min_char_bounds): Formerly min_char_bounds in xfaces.c.
8340 (x_load_font): Use x_compute_min_char_bounds.
8341
8342 * xterm.h (struct x_display_info): New members smallest_char_width
8343 and smallest_font_height.
8344
83451998-04-28 Gerd Moellmann <gerd@gnu.org>
8346
8347 * dispextern.h (PREPARE_FACE_FOR_DISPLAY): Call function with
8348 the same name if GC of face is zero.
8349
8350 * dispextern.h (struct face): Member non_ascii_gc removed.
8351
8352 * xterm.c (x_get_char_font_and_encoding): Return face's font
8353 for characters < 0177 in default face. Prepare face for
8354 display before returning it.
8355 (x_produce_glyphs): Use it->charset.
8356 (x_get_char_font_and_encoding): Simplified.
8357 (x_encode_char): Remove parameter `font'.
8358
8359 * xfaces.c (choose_face_font): If registry from charset symbol
8360 doesn't contain a `-', make it a pattern by appending "*-*".
8361
8362 * xdisp.c (check_iterator_glyph_property): Adjust limit for
8363 glyph_check_pos computation to character boundary.
8364
83651998-04-27 Gerd Moellmann <gerd@gnu.org>
8366
8367 * fontset.h (FONT_INFO_FROM_ID): Return null if ID is invalid.
8368
8369 * xfaces.c (ascii_face_of_lisp_face): Get the id of the realized
8370 ASCII face for a given Lisp face id.
8371
8372 * xdisp.c (set_iterator_stop_pos): Take glyph_check_pos into
8373 account.
8374 (reseat_iterator): Set glyph_check_pos. Handle case where
8375 new position is < original position.
8376 (check_iterator_glyph_property): Handle glyph property in strings.
8377 (next_element_from_string): Call above function.
8378 (next_element_from_display_vector): Handle faces in glyphs.
8379 (get_next_display_element): Set face_id of glyphs for
8380 control chars to zero.
8381
8382 * Makefile.in (term.o): Add dependency on dispextern.h.
8383
8384 * xdisp.c (syms_of_xdisp): Add symbol `glyph'.
8385 (display_line): Handle marginal areas.
8386 (move_iterator_in_display_line_to): Likewise.
8387
8388 * xfaces.c (Finternal_make_lisp_face): Assign Lisp faces an id.
8389
8390 * xfaces.c (face_at_buffer_position): Don't merge with nil
8391 text property.
8392 (face_at_string_position): Ditto.
8393
8394 * dispextern.h (struct display_iterator): Use a stack of saved
8395 values instead of saving check positions etc. individually.
8396
8397 * xdisp.c (set_iterator_to_next): If end of Lisp string reached,
8398 maybe pop the iterator's stack.
8399 (save_iterator_settings): Push a value on iterator's stack.
8400 (get_overlay_strings_at_iterator_position): Use it.
8401 (restore_iterator_settings): Pop the stack.
8402 (set_iterator_to_next_overlay_string): Use it.
8403
8404 * xfaces.c (try_font_list): Use alternative font families.
8405
84061998-04-26 Gerd Moellmann <gerd@gnu.org>
8407
8408 * xfaces.c (Fset_face_font_sort_order): Set the order in which
8409 font selection matches fonts.
8410 (Fface_font_sort_order): Return the font sort order.
8411 (best_matching_font): Find best matching font based on sort order.
8412 (cmp_font_names): Sort by given sort order.
8413
8414 * dispextern.h (struct display_iterator): New member faces_p.
8415 * xdisp.c (init_iterator): Initialize it->faces_p.
8416 (compute_face_at_iterator_string_position): Use it.
8417 (compute_face_at_iterator_position): Use it.
8418 (init_iterator): Use it.
8419 (display_mode_line): Ditto.
8420
8421 * xdisp.c (get_next_display_element): Put code choosing a face
8422 when the charset changes in #ifdef HAVE_FACES.
8423
8424 * dispextern.h (FACE_FOR_CHARSET): Replacement for function
8425 lookup_face_for_charset.
8426
8427 * xfaces.c (free_font_names): Renamed from free_split_font_names.
8428 (free_all_realized_faces): Renamed from remove_all_realized_faces.
8429
84301998-04-25 Gerd Moellmann <gerd@gnu.org>
8431
8432 * xfaces.c (best_matching_font): Return the name of the best
8433 matching font in an array of font_name structures.
8434 (choose_face_font): Use it.
8435 (choose_face_fontset_font): Use it.
8436 (find_best_weight_font): If final font found has same weight as
8437 the font we started with, return the original font because it is a
8438 better match for the resolution of the display.
8439 (find_best_slant_font): Likewise.
8440 (merge_face_vector_with_property): Check more invalid attribute
8441 values.
8442 (lface_suitable_for_charset_p): Replaced by a macro with the same
8443 name in upper-case.
8444
84451998-04-24 Gerd Moellmann <gerd@gnu.org>
8446
8447 * dispextern.h (struct face): Member
8448 fontset_chosen_for_realization_p removed.
8449
8450 * xfaces.c (cache_face): If face->fontset >= 0, add face to the
8451 end of the collision list, so that we find more specific faces
8452 first.
8453 (lookup_face_for_charset): Look up a new face if face->fontset >=
8454 0, and charset != CHARSET_COMPOSITION.
8455
8456 * xfaces.c (split_font_name): Return zero if point size of font
8457 couldn't be computed.
8458 (realize_default_face): Use ASCII font of a fontset to determine
8459 font-related attributes of the default face.
8460 (face_fontset): Return fontset id for face family.
8461 (font_list): Additional parameter font_pattern. If non-nil,
8462 return fonts matching that pattern.
8463
84641998-04-23 Gerd Moellmann <gerd@gnu.org>
8465
8466 * xfaces.c (choose_face_fontset): If new fontset cannot be
8467 constructed, or fontset name cannot be split, return the id of the
8468 standard fontset.
8469
8470 * xterm.c (XTframe_up_to_date): Check that frame is an X frame.
8471 When Emacs starts, it may be called for the initial frame which
8472 isn't an X frame.
8473
8474 * dispextern.h (struct face): New members foreground_defaulted_p,
8475 background_defaulted_p.
8476 (struct face): Members `mask' and `cache' removed.
8477
8478 * xfaces.c (load_color): Set them.
8479 (free_face_colors): Check them.
8480 (xlfd_point_size): Return -1 if resolution or point size of
8481 font unknown.
8482
8483 * xfaces.c (free_font): Removed.
8484 (load_face_font_or_fontset): Renamed from load_font.
8485 (load_face_font_or_fontset): Use message2 instead of signalling.
8486 (load_color): Likewise.
8487 (load_pixmap): Likewise.
8488
8489 * xterm.h (struct x_display_info): Add screen_dpi.
8490 * xterm.c (x_term_init): Initialize it.
8491 * xfaces.c (xlfd_point_size): Use it.
8492 (split_font_name): Compute numeric XLFD_RESY.
8493 (cmp_font_names): Make fonts with an y-resolution more
8494 similar to that of the frame appear first in the result.
8495
8496 * xfaces.c (cache_face): If fontset_chosen_for_realization_p
8497 is set for the face to cache, add it to the end of the collision
8498 list.
8499 (try_font_list): If fonts for given family and registry cannot
8500 be found, first try to keep the registry, and choose a different
8501 family.
8502 (choose_face_font): Allow nfonts == 0.
8503 (try_font_list): Give up if no font matches given registry.
8504
85051998-04-22 Gerd Moellmann <gerd@gnu.org>
8506
8507 * xterm.c (x_get_char_font_and_encoding): Get font_info from
8508 font info id of the face.
8509
8510 * xfaces.c (load_font): Set font_info_id.
8511 (realize_face): Ditto.
8512
8513 * dispextern.h (struct face): Change member font_info to
8514 font_info_id.
8515
8516 * fontset.h (FONT_INFO_ID): Build an ID from a font_info pointer.
8517 (FONT_INFO_FROM_ID): Get a font_info pointer from an ID.
8518
8519 * xdisp.c (extend_face_to_end_of_line): If IT's current charset
8520 isn't ASCII, get the ASCII face before adding a space.
8521 (append_space): Likewise.
8522 (insert_left_trunc_glyphs): Initialize truncate_it's charset
8523 to -1 so that it will compute the right face for the truncation
8524 glyphs.
8525
8526 * xfaces.c (realize_face): Set
8527 face->fontset_chosen_for_realization_p.
8528 (lookup_face_for_charset): If fontset wasn't specified originally
8529 and new charset != CHARSET_COMPOSITION, get a new face for that
8530 charset.
8531
8532 * dispextern.h (struct face): New member
8533 fontset_chosen_for_realization_p_specified_p. Set to 1 when
8534 realize_face has chosen a fontset to display composite characters
8535 for a Lisp face not specifying a fontset.
8536
8537 * xdisp.c (extend_face_to_end_of_line): Move tests for default
8538 face and line already filled here. Don't do anything if current
8539 face hasn't a relief or has a background equal to the frame
8540 background.
8541
8542 * xfaces.c (split_font_name): Additional parameter numeric_p.
8543 Don't compute numeric values if it is non-zero.
8544 (choose_face_fontset): Call split_font_name with numeric_p == 0.
8545 (choose_face_fontset): Print a message if fontset contains a
8546 font whose name cannot be split into fields.
8547
85481998-04-21 Gerd Moellmann <gerd@gnu.org>
8549
8550 * xfaces.c (try_font_list): Try to load a list of fonts,
8551 possibly using less restrictive patterns.
8552 (choose_face_font): Use it.
8553
8554 * xterm.c (x_get_char_font_and_encoding): For charset !=
8555 CHARSET_ASCII use font_info of face if face hasn't a fontset set.
8556
8557 * dispextern.h (struct face): New member font_info.
8558
8559 * xfaces.c (load_font): Use FS_LOAD_FONT to load fonts for faces
8560 specifying a fontset as well as those not having a fontset.
8561 (free_font): Make it empty.
8562 (realize_face): Use changed load_font.
8563
8564 * xterm.c (x_get_char_font_and_encoding): If face doesn't
8565 fit for charset, get the right one.
8566
8567 * xfaces.c (load_font): Take frame and name parameter, return
8568 font.
8569 (free_font): Likewise.
8570 (split_font_name): Compute numeric values for height, swidth etc.
8571 (cmp_font_names): Use them.
8572 (find_best_width_font): Ditto.
8573 (find_best_height_font): Ditto.
8574 (find_best_weight_font): Ditto.
8575 (find_best_slant_font): Ditto.
8576 (lface_hash): Add weight, slant, swidth and relief to hash value.
8577 (lface_equal_p): Make it faster.
8578 (lface_from_symbol): Use assq_no_quit.
8579 (Fnote_default_face_changed): Removed.
8580 (cmp_font_names): Use strcmp instead of xstricmp.
8581 (face_charset_registries): Removed.
8582
85831998-04-20 Gerd Moellmann <gerd@gnu.org>
8584
8585 * frame.h (CHECK_FRAME): Give this macro a statement form.
8586 (CHECK_LIVE_FRAME): Ditto.
8587
8588 * xfaces.c (find_best_width_font): Find the best matching font
8589 for a given width.
8590 (find_best_height_font): Likewise for height.
8591 (find_best_weight_font): Likewise for weight.
8592 (find_best_slant_font): Likewise for slant.
8593 (choose_face_font): Use them.
8594 (get_lface_attributes): Always return frame-local face attrs.
8595 (Finternal_merge_in_global_face): Merge local face with
8596 global face attributes.
8597
8598 * xfaces.c (check_lface_attrs, check_lface): Check consistency of
8599 Lisp face attributes.
8600
86011998-04-19 Gerd Moellmann <gerd@gnu.org>
8602
8603 * xfaces.c (Finternal_set_lisp_face_attribute): Add :bold
8604 and :italic for compatibility.
8605 (Finternal_set_lisp_face_attribute_from_resource): Handle
8606 :bold and :italic. Handle boolean resource values for
8607 :underline and :italic.
8608
8609 * xfns.c (display_x_get_resource): Make it externally visible.
8610
8611 * xfaces.c (lface_from_symbol): Take a frame as parameter.
8612 If that frame is non-null, return the frame-local face.
8613 (Finternal_make_lisp_face): Additional frame argument.
8614 (lface_attributes): Get face attributes from global and frame-local
8615 definitions.
8616 (Finternal_lisp_face_equal_p): Additional frame argument.
8617 (merge_lisp_face_vector_with_property): Ditto.
8618 (Frealize_basic_faces): Removed.
8619 (Finternal_get_lisp_face_attribute): Additional frame argument.
8620 (Finternal_lisp_face_p): Ditto.
8621 (load_color) [MSDOS]: Removed because it isn't clear how
8622 to do this for MS-DOS.
8623
8624 * xfaces.c (lface_from_symbol): Get global face definition
8625 from face-global-alist.
8626
8627 * xfaces.c (Finternal_set_lisp_face_attribute): Allow `t'
8628 as values for :underline and :inverse-video.
8629 (Finternal_set_lisp_face_attribute): Allow nil values.
8630
86311998-04-17 Gerd Moellmann <gerd@gnu.org>
8632
8633 * xfaces.c (Finternal_make_lisp_face): Return Lisp face vector.
8634
8635 * xfaces.c (syms_of_xfaces): Add Vall_faces.
8636 (Finternal_make_lisp_face): Add new face to Vall_faces.
8637
8638 * xdisp.c (echo_area_display): Remove code recomputing faces.
8639 (redisplay_internal): Ditto.
8640 (init_iterator): Do it here.
8641
8642 * xfaces.c (choose_face_font): Check that swidth doesn't change
8643 for subusequent attributes.
8644 (xlfd_point_size): Return int.
8645
8646 * xdisp.c (redisplay_internal, echo_area-display): If realized
8647 faces have been cleared, call recompute_basic_faces.
8648
8649 * xfaces.c (recompute_basic_faces): Free realized faces. Reset
8650 face_attributes_changed_p.
8651 (remove_all_realized_faces): Remove all realized faces on
8652 all frames.
8653 (Finternal_set_lisp_face_attribute): Call remove_all_realized_faces.
8654
8655 * xdisp.c (redisplay_internal): If face attributes have been
8656 changed since the last redisplay, recompute basic faces.
8657 (echo_area_display): Ditto.
8658
8659 * xfaces.c (clear_face_gcs): Renamed from clear_realized_face_cache.
8660
8661 * xfaces.c (min_char_bounds): If face cache not yet present,
8662 don't try to get font dimensions from faces.
8663
8664 * xterm.c (x_frame_mode_line_height): If face cache not present
8665 set, return default height.
8666
8667 * alloc.c (mark_face_cache): Check for null faces. Correct
8668 index bug.
8669
8670 * dispextern.h (struct face): Renamed from struct rface. Member
8671 underline renamed underline_p. Make it a bit-field.
8672
8673 * xfaces.c (init_frame_faces): Allocate face cache.
8674 (free_frame_faces): Free face cache.
8675 (recompute_basic_faces): Realize basic faces only if face cache is
8676 allocated, i.e. after init_frame_faces has been called.
8677
8678 * frame.c (make_frame): Initialze face cache with null.
8679
8680 * xfaces.c (same_size_fonts): Removed.
8681
8682 * xterm.c (x_set_glyph_string_gc): Add post-condition
8683 s->gc != 0.
8684 (x_set_mouse_face_gc): Ditto.
8685 (x_set_mode_line_face_gc): Ditto.
8686
8687 * xfaces.c (realize_default_face): Return int. Value is
8688 zero if frame params don't contain enough information to
8689 realize the default face.
8690 (realize_basic_faces): Ditto.
8691 (init_frame_faces): Realize basic faces.
8692
8693 * xfns.c (x_set_font): First store real font name in frame
8694 parameters, then call recompute_basic_faces.
8695
8696 * xfaces.c (recompute_basic_faces): Call realize_basic_faces.
8697
86981998-04-16 Gerd Moellmann <gerd@gnu.org>
8699
8700 * xfaces.c (syms_of_xfaces): Correct calls to defsubr.
8701
8702 * xfns.c (Fx_face_fixed_p): Removed.
8703 (Fx_list_fonts): Moved to xfaces.c.
8704
8705 * xfaces.c (compute_face_at_buffer_pos): Renamed to
8706 face_at_buffer_position. Parameter charset removed; always
8707 compute face for CHARSET_ASCII.
8708 (face_at_string_position): Renamed from
8709 compute_face_at_string_pos. Parameter charset removed; always
8710 compute for CHARSET_ASCII.
8711 (lookup_face_for_charset): Take frame parameter instead of
8712 face_cache.
8713 (lookup_face): Ditto.
8714 (compute_char_face): Renamed from compute_glyph_face.
8715
8716 * xdisp.c (init_iterator): Initialize charset member.
8717 (reseat_iterator_to_string): Ditto.
8718 (get_charset_at_buffer_position): Determine charset at
8719 buffer position in current_buffer.
8720 (reseat_iterator): Call above function.
8721 (compute_face_at_iterator_position): Call
8722 compute_face_at_buffer_pos.
8723 (compute_face_at_iterator_string_position): Call
8724 compute_face_at_string_pos.
8725 (get_face_from_id): Removed.
8726 (get_face_from_cursor_pos): Call compute_face_at_buffer_pos.
8727 Call get_charset_at_buffer_position.
8728 (reseat_iterator): Determine face if charset at pos differs
8729 from iterator's charset.
8730 (reseat_iterator_to_glyph_pos): Removed.
8731
8732 * xfaces.c (compute_face_at_bufpos): Remove parameter charset.
8733 Determine charset from buffer position.
8734 (compute_string_char_face): Renamed to compute_face_at_string_pos.
8735 (compute_face_at_bufpos): Renamed to compute_face_at_buffer_pos.
8736
8737 * dispextern.h (struct display_iterator): Add member charset.
8738
87391998-04-15 Gerd Moellmann <gerd@gnu.org>
8740
8741 * xfaces.c (compute_char_face): Removed.
8742
8743 * xdisp.c (get_overlay_arrow_glyph_row): Use compute_glyph_face
8744 with new parameter list.
8745
8746 * xfaces.c (region_face): Removed.
8747 (allocate_face): Removed.
8748 (copy_face): Ditto.
8749 (face_eql): Removed.
8750 (intern_face): Removed.
8751 (clear_face_cache): Removed.
8752 (load_font): Ditto.
8753 (unload_font): Ditto.
8754 (load_color): Ditto.
8755 (unload_color): Ditto.
8756 (new_computed_face): Ditto.
8757 (intern_computed_face): Ditto.
8758 (ensure_face_ready): Ditto.
8759 (merge_faces): Ditto.
8760 (compute_base_face): Ditto.
8761 (merge_face_list): Ditto.
8762 (Fmake_face_internal): Removed.
8763 (Fset_face_attribute_internal): Ditto.
8764 (face_name_id_number): Removed.
8765 (Fframe_face_alist): Ditto.
8766 (Fset_frame_face_alist): Ditto.
8767 (Finternal_next_face_id): Ditto.
8768
8769 * xterm.h (struct x_output): Remove computed_faces, and
8770 param_faces. Remove macros accessing them.
8771
8772 * xfaces.c: Entirely new face implementation added.
8773
87741998-04-11 Gerd Moellmann <gerd@gnu.org>
8775
8776 * dispextern.h (struct glyph_pos): Member `bufpos' renamed
8777 `charpos'.
8778
87791998-04-10 Gerd Moellmann <gerd@gnu.org>
8780
8781 * xterm.c (x_scroll_bar_move): Clear only regions not covered by
8782 scroll bar window to reduce flickering. Clear entire height.
8783
8784 * xdisp.c (move_iterator_vertically_backward): Set iterator's
8785 current_x and hpos to zero after moving to previous line
8786 start.
8787
87881998-04-03 Gerd Moellmann <gerd@gnu.org>
8789
8790 * frame.h (FRAME_FACE_CACHE): Access to a frame's face cache.
8791
8792 * xfaces.c (xlfd_point_size): Compute relative point size of
8793 fonts from font and frame resolution.
8794 (sort_fonts): New function to sort fonts, temporarily setting
8795 font_frame to the frame in effect.
8796 (xlfd_point_size): Take additional frame parameter to be able
8797 to get at the display's resolution.
8798
8799 * xterm.c (x_setup_relief_colors): Use WHITE_PIX_DEFAULT and
8800 BLACK_PIX_DEFAULT.
8801 (x_setup_relief_color): Use FRAME_X_SCREEN instead of default
8802 screen of display.
8803
88041998-03-31 Gerd Moellmann <gerd@gnu.org>
8805
8806 * xfaces.c (choose_face_fontset): Instantiate fontsets.
8807
8808 * fontset.h: Add external declarations for Vfontset_alias_alist
8809 and Vglobal_fontset_alist.
8810
8811 * xfaces.c (merge_lisp_face_vector_with_property): Simplified.
8812 (realize_default_face): If frame parameters contain an artificial
8813 font name naming a fontset, set the family of the default face to
8814 the fontset name given by the registry.
8815
8816 * Makefile.in (alloc.o): Add dependency to dispextern.h.
8817
88181998-03-22 Gerd Moellmann <gerd@gnu.org>
8819
8820 * alloc.c (mark_object): Add function prototype. Add cast to
8821 Lisp_Object pointer in call to mark_object for symbol names
8822 because this otherwise gives a warning from gcc 2.8.1.
8823 (mark_face_cache): Mark Lisp objects in realized faces.
8824
88251998-03-19 Gerd Moellmann <gerd@gnu.org>
8826
8827 * frame.h (struct frame): Add member face_cache.
8828
8829 * alloc.c (mark_object): Mark face cache.
8830 (mark_face_cache): Mark Lisp faces in face cache of frame.
8831
8832 * frame.c (make_frame): Initialize face_cache.
8833 (Fdelete_frame): Free it.
8834
88351998-03-18 Gerd Moellmann <gerd@gnu.org>
8836
8837 * xfaces.c: Very first skeleton of functions for face realization,
8838 face merging, face cache etc.
8839
8840 * dispextern.h (struct rface): Realized faces. Will replace
8841 struct face when tested.
8842 (struct face_cache): Realized face caches.
8843
8844 * xdisp.c (init_iterator): Initialize area member of display
8845 iterator.
8846
88471998-03-17 Gerd Moellmann <gerd@gnu.org>
8848
8849 * xterm.c (x_append_glyph): Use it->area to store glyphs.
8850
8851 * dispextern.h (struct display_iterator): New member area.
8852
8853 * xterm.c (note_overwritten_text_cursor): Note when the text
8854 cursor of a window is overwritten.
8855
8856 * xdisp.c (set_cursor_from_row): If PT is not found in the
8857 row, display the cursor at the start of the row.
8858
8859 * dispnew.c (direct_output_forward_char): Call
8860 set_cursor_from_row.
8861
8862 * xdisp.c (setup_iterator_overlay_strings_from_glyph_pos): If
8863 position is not in an overlay string, set iterator's position and
8864 method explicitly so.
8865 (set_cursor_from_row): Correct cursor position calculation.
8866 Make it externally visible.
8867 (redisplay_window): Call set_cursor_from_row so that there is only
8868 one place where the cursor position is calculated from a current
8869 row.
8870
8871 * dispextern.h (struct display_iterator): New member
8872 overlay_strings_at_end_processed_p.
8873
8874 * xdisp.c (check_iterator): Perform sanity checks on
8875 display_iterators.
8876 (next_element_from_buffer): Check for overlay strings at ZV.
8877
88781998-03-16 Gerd Moellmann <gerd@gnu.org>
8879
8880 * buffer.c (init_buffer_once): Add left_margin_width and
8881 right_margin_width to buffer_local_flags.
8882
8883 * dispnew.c (margin_glyphs_to_reserve): Function computing
8884 number of glyphs to reserve for a marginal area.
8885 (adjust_glyph_matrix): Call it.
8886 (adjust_frame_glyphs_for_frame_redisplay): Return if frame
8887 is not alive.
8888
8889 * window.c (Fset_window_margins): Allow floats.
8890
8891 * buffer.c (syms_of_buffer): Add buffer-local variables
8892 left-margin-width and right-margin-width. Add defaults
8893 default-left-margin-width and default-right-margin-width.
8894
8895 * buffer.h (struct buffer): New members left_margin_width
8896 and right_margin_width.
8897
8898 * window.c (Fset_window_margins): Make window the last and
8899 optional argument.
8900
8901 * xterm.c (x_draw_glyphs): Compute x-positions for rows with
8902 flag no_marginal_areas_p differently.
8903 (x_clear_end_of_line): Ditto.
8904 (x_draw_glyph_string_relief): Compute width of relief differently
8905 for rows with flag no_marginal_areas_p.
8906
8907 * dispnew.c (update_window_line): Update marginal areas only
8908 for rows that don't have no_marginal_areas_p set.
8909
8910 * xdisp.c (display_mode_line): Set row's flag no_marginal_areas_p.
8911 (display_menu_bar): Ditto.
8912
8913 * dispextern.h (struct glyph_row): New member no_marginal_areas_p.
8914
8915 * dispnew.c (adjust_glyph_matrix): Compute glyph pointers for
8916 marginal areas in window-based redisplay.
8917
8918 * dispextern.h (struct glyph_matrix): New members
8919 left_margin_glyphs and right_margin_glyphs.
8920
89211998-03-15 Gerd Moellmann <gerd@gnu.org>
8922
8923 * minibuf.c (read_minibuf_unwind): Return Lisp_Object.
8924
8925 * charset.c (non_ascii_char_to_string): Use char type parameters
8926 because the function is used that way from outside. Use unsigned
8927 char internally.
8928
8929 * window.c (change_window_height): Return void.
8930 (make_dummy_parent): Return void.
8931 (init_window_once): Return void.
8932 (syms_of_window): Ditto.
8933 (keys_of_window): Ditto.
8934 (delete_window): Correct return with and without value.
8935
8936 * buffer.c (record_buffer): Return void.
8937
8938 * marker.c (unchain_marker): Return void.
8939
8940 * window.c (unshow_buffer): Return void.
8941 (replace_window): Ditto.
8942 (delete_window): Ditto.
8943
8944 * term.c (delete_glyphs_hook): Void return type.
8945 (ring_bell_hook): Ditto.
8946 (set_terminal_window_hook): Ditto.
8947
8948 * sysdep.c (init_sigio): Return void.
8949
8950 * xterm.c (x_set_window_size): Return void.
8951 (x_calc_absolute_position): Ditto.
8952 (x_set_offset): Ditto.
8953 (x_focus_on_frame): Ditto.
8954 (x_unfocus_frame): Ditto.
8955 (x_make_frame_visible): Ditto.
8956 (x_make_frame_invisible): Ditto.
8957 (x_iconify_frame): Ditto.
8958 (x_destroy_window): Ditto.
8959 (x_wm_set_window_state): Ditto.
8960 (x_wm_set_icon_pixmap): Ditto.
8961 (x_wm_set_icon_position): Ditto.
8962 (x_initialize): Ditto.
8963 (x_error_quitter): Ditto.
8964 (x_destroy_window): Use xfree instead of free.
8965
8966 * keyboard.c (clear_waiting_for_input): Return void.
8967
8968 * xterm.c (x_wm_set_size_hint): Return void.
8969 (x_raise_frame): Ditto.
8970 (refreshicon): Ditto.
8971 (x_error_catcher): Ditto.
8972 (x_clear_errors): Ditto.
8973
8974 * keyboard.c (record_asynch_buffer_change): Return void.
8975
8976