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