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