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