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