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