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