(ensure_echo_area_buffers): If a buffer was killed and a
[bpt/emacs.git] / src / ChangeLog
CommitLineData
ff3d9573
GM
12000-08-07 Gerd Moellmann <gerd@gnu.org>
2
3 * xdisp.c (ensure_echo_area_buffers): If a buffer was killed, and
4 a new buffer is created, make sure echo_area_buffer[] references
5 the new buffer.
6
e0d8827b
EZ
72000-08-07 Eli Zaretskii <eliz@is.elta.co.il>
8
9 * msdos.c (Fmsdos_set_mouse_buttons): Add missing backslashes in
10 the doc string.
11
c6f35378
KH
122000-08-07 Kenichi Handa <handa@etl.go.jp>
13
14 * syntax.c (skip_chars): Fix previous change. Make the handling
15 of unibyte string consistent with that of regex search.
16
1fd4c450
GM
172000-08-05 Gerd Moellmann <gerd@gnu.org>
18
e49aa397
GM
19 * xmenu.c (popup_get_selection): Use xfree instead of free.
20
21 * fileio.c (Finsert_file_contents): Use xfree instead of free.
22
23 * editfns.c (Ftranspose_regions): Use xfree instead of free.
24
25 * callproc.c (child_setup): Use xfree instead of free.
26
27 * sysdep.c (opendir, GetTempDirName, run_mac_command): Use xmalloc
28 instead of malloc.
29 (run_mac_command, closedir): Use `xfree' instead of `free'.
30
31 * keymap.c (current_minor_maps): Use xmalloc instead of malloc.
32
33 * eval.c (error): Use xfree instead of free.
34
1fd4c450
GM
35 * xfaces.c, xfns.c, w32fns.c: Replace `illegal' with `invalid'.
36
37 * fns.c: Replace `illegal' with `invalid'.
e49aa397 38 (Fmake_hash_table, make_hash_table): Allow table size of 0.
1fd4c450 39
82d497fc
KH
402000-08-05 Kenichi Handa <handa@etl.go.jp>
41
42 * syntax.c (skip_chars): Fix handling of multibyte<->unibyte
43 conversion.
44
59f953a2
NF
452000-08-04 Noah Friedman <friedman@splode.com>
46
47 * fns.c (Fmake_hash_table): Add missing `\n\' to end of line in
48 docstring.
49
688351f2
GM
502000-08-04 Gerd Moellmann <gerd@gnu.org>
51
52 * syntax.c (skip_chars): Fix typo in error message.
53
2dad51cc
AS
542000-08-04 Andreas Schwab <schwab@suse.de>
55
56 * m/ia64.h: Moved from s/ia64.h.
57
99bb2c60
KH
582000-08-04 Kenichi Handa <handa@etl.go.jp>
59
082a1df2
KH
60 * process.c (read_process_output): Big simplification. Handle
61 composition and post-read-conversion of coding system correctly.
62 (send_process): Handle composition correctly.
63
64 * callproc.c (Fcall_process): Handle post-read-conversion of
65 coding system if any.
66
99bb2c60
KH
67 * coding.c (decode_coding_iso2022): More strict check for handling
68 single shifting.
082a1df2
KH
69 (coding_restore_composition): Pay attention to the case that
70 cmp_data is not set properly (because of invalid code in the
71 source text).
72 (run_pre_post_conversion_on_str): Include text properties in the
73 resulting string.
74 (decode_coding_string): Set members of coding correctly.
99bb2c60 75
f4988be7
GM
762000-08-03 Gerd Moellmann <gerd@gnu.org>
77
78 * s/ia64.h: New file.
79
80 * widget.c (set_frame_size, update_wm_hints, EmacsFrameSetValues):
81 Use NULL instead of 0 at the end of variable argument list of
82 XtVaGetValues and XtVaSetValues, because 0 fails on systems where
83 sizeof (int) < sizeof (void *).
84
85 * xmenu.c (update_frame_menubar): Use NULL instead of 0 at the end
86 of variable argument lists of XtVaGetValues and XtVaSetValues.
87
88 * xfns.c (Fx_file_dialog): Use NULL instead of 0 at the end of
89 variable argument lists of XtVaGetValues and XtVaSetValues.
90
ead53494
GM
912000-08-02 Gerd Moellmann <gerd@gnu.org>
92
93 * alloc.c (lisp_malloc, lisp_free): Use size_t and POINTER_TYPE.
94 (xrealloc, xmalloc): Use size_t. Some callers adjusted.
95
96 * lisp.h (Fsingle_key_description, xmalloc, xrealloc): Change
97 prototype.
98
99 * keyboard.c (read_char_minibuf_menu_prompt): Add new parameter
100 in call to Fsingle_key_description.
101
102 * keymap.c (Fsingle_key_description): Add parameter NO_ANGLES.
103 Callers changed.
104
1052000-08-02 Colin Walters <walters@cis.ohio-state.edu>
106
107 * window.c (display_buffer_reuse_frames): New variable.
108 (Fdisplay_buffer): If display_buffer_reuse_frames is set, reuse
109 frames displaying BUFFER.
110 (syms_of_window): Define Lisp variable
111 display-buffer-reuse-frames.
112
10b0f752
MB
1132000-08-01 Miles Bader <miles@gnu.org>
114
115 * editfns.c (Fconstrain_to_field): Fix the conditions for deciding
116 when to constrain NEW_POS (they were pretty screwed up before).
117
16425c4a
EZ
1182000-07-31 Eli Zaretskii <eliz@is.elta.co.il>
119
120 * msdos.c (run_msdos_command): Save and restore the master
121 environment, for the case that child_setup signals an error.
122 When mirroring slashes in DOS shell commands, don't fail when
123 argv[2] has embedded blanks.
da288c14
EZ
124 (Fmsdos_set_mouse_buttons, mouse_setup_buttons): New functions.
125 (syms_of_msdos): Defsubr Fmsdos_set_mouse_buttons.
126 (dos_ttraw): Call mouse_setup_buttons.
16425c4a
EZ
127
128 * callproc.c (child_setup) [MSDOS]: malloc pwd_var instead of
129 using alloca; free it after run_msdos_command returns.
130
27f73852
DL
1312000-07-27 Dave Love <fx@gnu.org>
132
133 * s/irix6-5.h (IRIX_FORCE_32_BITS, LD_SWITCH_SYSTEM): Don't
134 define.
135 [_MIPS_SZLONG == 64]: Set up for 64-bit mode -- not currently
136 working.
137
138 * m/iris4d.h (XUINT, XSET, XUNMARK) [_LP64]: Don't define.
139
c0261b5e
EZ
1402000-07-27 Eli Zaretskii <eliz@is.elta.co.il>
141
142 * editfns.c (lisp_time_argument): Fix last change.
143
b548072f
GM
1442000-07-27 Gerd Moellmann <gerd@gnu.org>
145
3ab82477
GM
146 * fns.c (Fdelete): Make it work on vectors and strings in addition
147 to lists.
148
b548072f
GM
149 * fns.c (Qkey_or_value, Qkey_and_value): New variables.
150 (syms_of_fns): Initialize new variables.
151 (sweep_weak_table): Handle weakness `key-or-value' and
152 `key-and-value'.
153 (Fmake_hash_table): Recognize `key-and-value' and `key-or-value'
154 weakness, with t meaning the same as `key-and-value'.
155
91ae8751
KH
1562000-07-27 Kenichi Handa <handa@etl.go.jp>
157
158 * coding.h (struct coding_system): Member safe_charset deleted.
159
160 * coding.c (Qsafe_charsets): This variable deleted.
161 (Qsafe_chars, Vchar_coding_system_table, Qchar_coding_system): New
162 variables.
163 (coding_safe_chars): New function.
164 (CODING_SAFE_CHAR_P): New macro.
165 (CHARSET_OK): New arg C. Call CODING_SAFE_CHAR_P instead of
166 checking safe_charsets member of the coding system. Caller
167 changed.
168 (detect_coding_iso2022): New local variable safe_chars.
169 (DECODE_DESIGNATION): Call CODING_SAFE_CHAR_P instead of checking
170 safe_charsets member of the coding system.
171 (decode_coding_iso2022): New local variable safe_chars.
172 (ENCODE_ISO_CHARACTER_DIMENSION1): Don't check unsafe chars here.
173 (ENCODE_ISO_CHARACTER_DIMENSION2): Likewise.
174 (ENCODE_ISO_CHARACTER): Arguments changed. Caller changed.
175 (ENCODE_UNSAFE_CHARACTER): New macro.
176 (encode_coding_iso2022): New local variable safe_chars. Check
177 unsafe chars.
178 (setup_coding_system): Delete the code to initialize
179 coding->safe_charses
180 (intersection, find_safe_codings): New functions.
181 (Ffind_coding_systems_region_internal): New function.
182 (syms_of_coding): Defsubr it. Initialize Qsafe_chars,
183 Qsafe_cding_system. Make Vchar_coding_system_table a Lisp
184 variable and initialize it.
185
186 * fns.c (char_table_ref_and_index): New function.
187
188 * lisp.h (char_table_ref_and_index): Add prototype.
189
34a7a267
SS
1902000-07-26 Sam Steingold <sds@gnu.org>
191
192 * editfns.c (lisp_time_argument): Added third argument `usec'.
3ab82477 193 (Ffloat_time): New built-in Lisp function.
34a7a267 194
a95cb10a
GM
1952000-07-26 Gerd Moellmann <gerd@gnu.org>
196
3353ef5a
GM
197 * dispextern.h (GLYPH_FROM_CHAR_GLYPH): Use CHARACTERBITS bits
198 for the character code.
199
200 * config.in (HAVE_SOUND): Define only for FreeBSD, NetBSD and
201 GNU/Linux.
202
a95cb10a
GM
203 * xmenu.c (menu_highlight_callback): Call show_help_echo directly
204 if called for a popup menu.
205 (xmenu_show): Store help string in widget values.
206
b4a12321
DL
2072000-07-26 Dave Love <fx@gnu.org>
208
209 * syswait.h: Move some definitions.
210 (HAVE_SYS_WAIT_H): Undef for HPUX7, Convex.
211 [!HAVE_SYS_WAIT_H]: Define things unconditionally. More
212 perspicuous definitions.
213 (WTERMSIG): Fix bit pattern used.
214
13f5ad37
KH
2152000-07-26 Kenichi Handa <handa@etl.go.jp>
216
217 * print.c (print_object): If vector printing is truncated, print
218 "..." to indicate it as well as the case of list printing.
219
070fe99c
GM
2202000-07-25 Gerd Moellmann <gerd@gnu.org>
221
969065c3
GM
222 * xdisp.c (next_element_from_display_vector): Improve comments.
223
224 * lisp.h (GLYPH_MASK_CHAR, GLYPH_MASK_FACE): Use 19 bits
225 for the character code, and the rest for the face id as in 20.x.
226 (FAST_GLYPH_FACE, FAST_MAKE_GLYPH): Changed accordingly.
227
228 * window.c (window_display_table): Cleaned up.
229
070fe99c
GM
230 * syntax.c (Fforward_word): Add last arg nil in call of
231 Fconstrain_to_field.
232
bad77ef7
EZ
2332000-07-25 Eli Zaretskii <eliz@is.elta.co.il>
234
969065c3 235 * fileio.c (Frename_file) [DOS_NT]: If the file names are
bad77ef7
EZ
236 identical but for the letter-case, don't call
237 barf_or_query_if_file_exists.
238
c28da489
MB
2392000-07-25 Miles Bader <miles@gnu.org>
240
241 * editfns.c (find_field): Honor special `boundary' fields.
242 (Qboundary): New variables.
243 (syms_of_editfns): Initialize Qboundary.
244 (Fconstrain_to_field): Add the INHIBIT-CAPTURE-PROPERTY argument.
245 Use scan_buffer instead of find_before_next_newline, because it
246 allows us to detect the boundary case where there's a newline at
247 the search limit.
248 * lisp.h (Fconstrain_to_field): Update external declaration.
249
e3c31fd5
GM
2502000-07-24 Gerd Moellmann <gerd@gnu.org>
251
252 * print.c (temp_output_buffer_setup): Don't call1 Vrun_hooks
253 if that is nil.
c28da489 254
c66c29a2
DL
2552000-07-24 Dave Love <fx@gnu.org>
256
257 * s/sunos4-0.h, s/sol2.h:
258 (LIBS_TERMCAP): Move from m/sparc.h.
259
260 * m/sparc.h (TERMINFO): Moved to system files (probably only
261 relevant for sunos4 judging by its vintage).
262 (BITS_PER_LONG, BITS_PER_EMACS_INT, _LP64): Define conditional on
263 __arch64__.
264
fbe0a958
EZ
2652000-07-24 Eli Zaretskii <eliz@is.elta.co.il>
266
267 * xmenu.c (keymap_panes): Pass the keymap's prompt as the pane
268 name to single_keymap_panes.
269
7d88e5c9
AS
2702000-07-24 Andreas Schwab <schwab@suse.de>
271
272 * fns.c (Fmakehash): Pass Qeql to Fmake_hash_table if TEST is nil.
273
e024b101
GM
2742000-07-24 Gerd Moellmann <gerd@gnu.org>
275
276 * xdisp.c (with_echo_area_buffer): Take additional EMACS_INT
277 parameters instead of using int parameters. Expect FN to accept
278 EMACS_INT parameters.
279 (display_echo_area, resize_echo_area_axactly, current_message)
280 (truncate_echo_area, set_message_1): Call with_echo_area_buffer
281 with new argument list.
282 (resize_mini_window_1): New callback function.
283 (current_message_1, truncate_message_1, set_message_1): Change
284 parameter lists to the new format expected by
285 with_echo_area_buffer.
286
25c1a9ce
KH
2872000-07-24 Kenichi Handa <handa@etl.go.jp>
288
289 * fontset.c (fontset_ref): Remove INLINE declaration.
290 (fontset_ref_via_base): Likewise.
291 (Fset_fontset_font): Convert FAMILY and REGISTRY specifications
292 to downcase.
293
7f987ac0
EZ
2942000-07-23 Eli Zaretskii <eliz@is.elta.co.il>
295
296 * msdos.c (IT_note_mouse_highlight): Process overlays in the
297 correct order of priority. If help echo was found in an overlay,
298 use that overlay as the object in which the help echo was found.
299
e2db3069
MB
3002000-07-22 Miles Bader <miles@gnu.org>
301
302 * textprop.c (Fprevious_single_char_property_change): The initial
303 property value should be from the position preceding POSITION, not
304 following it.
305
5e3203e4
EZ
3062000-07-22 Eli Zaretskii <eliz@is.elta.co.il>
307
308 * coding.c (syms_of_coding): Doc fix for
309 inhibit-iso-escape-detection.
310
62145073
GM
3112000-07-21 Gerd Moellmann <gerd@gnu.org>
312
c20aeb83
GM
313 * xterm.c (note_mouse_highlight): Process overlays in the right
314 order of priority.
34a7a267 315
743934db
GM
316 * keyboard.c (show_help_echo, gen_help_event): Extend comments.
317
318 * xterm.c (note_mouse_highlight): If help-echo was found in an
319 overlay, use that overlay as the object in which the help was
320 found.
321
d1dc7e43 322 * window.c (foreach_window_1): Fix typo reversing an if-condition.
34a7a267 323
62145073
GM
324 * window.c (foreach_window): Instead of a fake variable argument
325 list, take one USER_DATA argument.
326 (foreach_window_1): Likewise, and call callback functions with two
327 args, the window and USER_DATA.
328 (struct check_window_data): New struct.
329 (check_window_containing): Use it.
330 (window_from_coordinates): Set up a struct check_window_data for
331 foreach_window.
332 (add_window_to_list, freeze_window_start): Change parameters
333 according to new calling convention.
334
335 * window.h (foreach_window): Change prototype.
336
337 * buffer.c (Fprevious_overlay_change): Avoid memory leak.
338
3392000-07-21 Eli Zaretskii <eliz@is.elta.co.il>
340
341 * xmenu.c (menu_help_callback): Call show_help_echo with
342 additional arguments OBJECT and POS.
343
11270583
KH
3442000-07-21 Kenichi Handa <handa@etl.go.jp>
345
07b14857
KH
346 * data.c (Faset): Allow storing any multibyte character in a
347 string. Convert unibyte string to multibyte if necessary.
348
11270583
KH
349 * xfns.c (x_encode_text): New function.
350 (x_set_name): Use x_encode_text.
351 (x_set_title): Likewise.
352
353 * xselect.c (lisp_data_to_selection_data): Use x_encode_text.
354
355 * xterm.h (x_encode_text): Add prototype.
356
bc75b4fd
DL
3572000-07-20 Dave Love <fx@gnu.org>
358
359 * ccl.c (Fccl_execute_on_string): Don't check xmalloc return. Use
360 xfree, not free.
361
48c14970
EZ
3622000-07-20 Eli Zaretskii <eliz@is.elta.co.il>
363
364 * msdos.c (help_echo_window): New variable.
365 (syms_of_msdos): Initialize and staticpro it.
366 (IT_note_mode_line_highlight): Set help_echo_window.
367 (IT_note_mouse_highlight): Ditto.
368 (dos_rawgetc): Store help_echo_window in the second event produced
369 for HELP_EVENTs.
370
371 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight):
372 Record the object that generated the help echo and the position of
373 that object in help_echo_object and help_echo_pos. Record that
374 some glyphs in a row are displayed in mouse-face.
375 (IT_update_begin): Don't clear mouse highlight unless one of the
376 enabled glyph rows is marked as being displayed in mouse-face.
377 (dos_rawgetc): Generate 2 events for HELP_EVENT. Pass the object
378 and position recorded in help_echo_object and help_echo_pos to the
379 event queue.
380 (IT_menu_display): Accept a new argument PN: the pane number of
381 the current menu pane. Record the pane number and the item
382 number of the item which has associated help string.
383 (XMenuActivate): Update the prototype for help_callback in
384 function declaration. Call IT_menu_display with the current menu
385 pane number as an additional argument. Call help_callback with
386 two additional arguments: the pane number and the item number of
387 the menu item associated with the help text.
388 (help_echo_object, help_echo_pos): New variables.
389 (syms_of_msdos): Initialize them and staticpro help_echo_object.
390
391 * msdos.h (XMenuActivate): Update prototype.
392
4279296d
GM
3932000-07-19 Gerd Moellmann <gerd@gnu.org>
394
47db06aa
GM
395 * xdisp.c (with_echo_area_buffer): Call FN with more arguments.
396 Add some more prototypes.
397
398 * xterm.c, xterm.h: Add some more prototypes.
399
400 * lisp.h (Fnext_single_char_property_change): Add prototype.
401
402 * dispnew.c (direct_output_for_insert): Remove confusing
403 outer local variable mouse_face_overwritten_p.
404 (glyph_row_slice_p): Put in #ifdef GLYPH_DEBUG.
405
4279296d
GM
406 * alloc.c (allocate_string_data): Don't copy old string contents.
407
670acd62
KH
4082000-07-19 Kenichi Handa <handa@etl.go.jp>
409
410 * coding.c (code_convert_region): Delete text properties before
411 shrinking the conversion region.
412
7cea38bc
GM
4132000-07-18 Gerd Moellmann <gerd@gnu.org>
414
dc1cac59
GM
415 * dispnew.c (update_text_area): Write the whole row if it
416 has mouse-face in it.
417
85a8aca9
GM
418 * xfaces.c (face-alternative-font-family-alist): Remove
419 DEFVAR_LISP; staticpro instead.
420
34a7a267 421 * xmenu.c (menu_help_callback): Call show_help_echo with
7cea38bc
GM
422 new arguments.
423
424 * keyboard.c (show_help_echo): Add parameter WINDOW.
425 (read_char): Call show_help_echo with window extracted from Lisp
426 help event.
427 (gen_help_event): Add parameter WINDOW.
428
429 * keyboard.h (show_help_echo, gen_help_event): Change prototypes.
430
431 * xterm.c (help_echo_window): New variable.
432 (note_mouse_highlight, note_tool_bar_highlight): Set
433 help_echo_window.
434 (XTread_socket): Pass help_echo_window to gen_help_event.
435 (syms_of_xterm): Initialize and staticpro help_echo_window.
436
f8276b77
DL
4372000-07-18 Dave Love <fx@gnu.org>
438
439 * Makefile.in: Fix dependencies of blockinput.h on atimer.h,
440 systime.h.
441
088831a6
GM
4422000-07-18 Gerd Moellmann <gerd@gnu.org>
443
3d6cd763
GM
444 * alloc.c (allocate_string_data): If string had already data
445 assigned, copy old contents to new string data.
446
447 * coding.c (syms_of_coding): Fix typo in spelling of variable
448 `inhibit-iso-escape-detection'.
449
088831a6
GM
450 * alloca.c (free) [emacs && EMACS_FREE]: Define as EMACS_FREE.
451
452 * Makefile.in: Add dependencies on dispextern.h.
453 (alloca.o): Don't define malloc and define EMACS_FREE instead of
454 `free'; both can conflict with system header files.
455
bc8a8d55
KH
4562000-07-18 Kenichi Handa <handa@etl.go.jp>
457
458 * charset.h (MAKE_CHAR): Return reasonable code even if CHARSET is
459 undefined.
460
069f5950
DL
4612000-07-18 Dave Love <fx@gnu.org>
462
463 * window.c (Fwindow_list): Declare arg `window'.
464
aa96c820
KH
4652000-07-18 Kenichi Handa <handa@etl.go.jp>
466
467 * coding.c (setup_coding_system): Don't override the explicitly
468 specified designations.
469
06be8d32
MB
4702000-07-15 Miles Bader <miles@gnu.org>
471
472 * editfns.c (char_property_eq, char_property_stickiness): Renamed
473 from `text_property_eq' and `text_property_stickiness', respectively.
474 (find_field, Fconstrain_to_field, char_property_eq)
475 (char_property_stickiness): Changed to call char-property functions
476 instead of text-property-only ones.
477
478 * textprop.c (Fnext_single_char_property_change): Made a subr (was
479 `next_single_char_property_change'). Do more error checking, and
480 cleanup limit behavior.
481 (Fprevious_single_char_property_change): New function.
482 (syms_of_textprop): Initialize new subrs.
483
484 * xdisp.c (display_prop_end, invisible_text_between_p):
485 Call Fnext_single_char_property_change instead of
486 next_single_char_property_change.
487
3fddcdc3
JR
4882000-07-15 Jason Rumney <jasonr@gnu.org>
489
490 * w32menu.c (w32_menu_show): Call free_menubar_widget_value_tree
491 after menu is finished with.
492 (add_menu_item): Only consider wv->title as a menu title.
493 (w32_menu_display_help): Add OBJECT and POS to show_help_echo.
494
495 * w32fns.c (w32_wnd_proc) [WM_DRAW_ITEM]: Do not try to draw a
496 null title.
497 (FONT_REGEXP): Remove unused macro, and its sub-components.
498 (syms_of_w32fns): Replace underscore in w32-enable-synthesized-fonts.
499
500 * w32term.c (help_echo_object, help_echo_pos): New variables.
501 (note_mode_line_highlight): Store additional information about the
502 help-echo in help_echo_object and help_echo_pos. Check both
503 `local-map' and `keymap' properties for changing the cursor
504 (note_mouse_highlight): Store additional information about the
505 help-echo in help_echo_object and help_echo_pos.
506 (note_tool_bar_highlight): Set help_echo_object to nil and
507 help_echo_pos to -1.
508 (w32_read_socket): Use gen_help_event instead of filling
509 input_events manually.
510 (syms_of_w32term): Staticpro help_echo_object.
511 (x_update_window_end): Add parameter MOUSE_FACE_OVERWRITTEN_P. If
512 set, arrange for a mouse-highlight redisplay in
513 XTframe_up_to_date.
514 (x_clear_mouse_face): New function.
515 (w32_redisplay_interface): Add pointer to x_clear_mouse_face.
516 (x_update_window_begin): No need to turn off the mouse
517 highlight here.
518 (show_mouse_face): Set the mouse_face_p flag of glyph rows
519 depending on whether they contain glyphs highlighted in
520 mouse-face.
521 (x_fill_stretch_glyph_string): Consume runs of stretch
522 glyphs instead of a single one.
523 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
524 with new argument list.
525 (x_set_glyph_string_gc): Make sure the face's GC is valid.
526 (x_append_glyph, x_append_composite_glyph)
527 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
528 changes in struct glyph starting 1999-12-27. See comments for
529 xterm.c on 2000-07-05.
530
178c5d9c
SS
5312000-07-14 Sam Steingold <sds@gnu.org>
532
533 * xfaces.c (realize_x_face): Fix the last patch:
534 check `default_face' before dereferencing.
535
6fe533f6
DL
5362000-07-14 Dave Love <fx@gnu.org>
537
069f5950 538 * syntax.c (back_comment): Add null default in switch (for pcc).
6fe533f6 539
dd7b81cf
KH
5402000-07-14 Kenichi Handa <handa@etl.go.jp>
541
0693904a 542 * xfaces.c (realize_x_face): Make fontset using the base of the
178c5d9c 543 default_face's fontset, not using the default fontset.
0693904a 544
dd7b81cf
KH
545 * coding.c (inhibit_iso_escape_detection): New variable.
546 (syms_of_coding): Make it a Lisp variable.
547 (detect_coding_iso2022): If inhibit_iso_escape_detection is
548 nonzero, ignore ISO2022's escape sequence.
549
d5aa31d8
GM
5502000-07-14 Gerd Moellmann <gerd@gnu.org>
551
e5acf0ca
GM
552 * alloca.c (malloc) [emacs]: Define as xmalloc.
553
bd23a692
GM
554 * xfns.c (Fx_show_tip): If frame parameters contain a position,
555 use that instead of the mouse position. Add parameters DX and DY.
556
557 * dispextern.h (Fx_show_tip): Adjust number of parameters
558 in prototype.
559
9662da0b
GM
560 * keyboard.c (show_help_echo): Add parameters OBJECT and POS.
561 if HELP is a function, call it with OBJECT and POS as parameters
562 to get the help to display.
563 (gen_help_event, kbd_buffer_store_help_event): New functions.
564 (kbd_buffer_get_event): Construct the Lisp help-event differently.
565 (read_char): Call show_help_echo with new parameters.
566
178c5d9c 567 * keyboard.h (gen_help_event, kbd_buffer_store_help_event):
9662da0b
GM
568 Add prototypes.
569
570 * xterm.c (help_echo_object, help_echo_pos): New variables.
571 (note_mode_line_highlight): Store additional information about the
572 help-echo in help_echo_object and help_echo_pos. Check both
573 `local-map' and `keymap' properties for changing the cursor
574 (note_mouse_highlight): Store additional information about the
575 help-echo in help_echo_object and help_echo_pos.
576 (note_tool_bar_highlight): Set help_echo_object to nil and
577 help_echo_pos to -1.
578 (XTread_socket): Use gen_help_event instead of filling
579 input_events manually.
580 (syms_of_xterm): Staticpro help_echo_object.
581
582 * xmenu.c (menu_highlight_callback): Use
583 kbd_buffer_store_help_event instead of setting up and input_event
584 structure manually.
585
586 * xdisp.c (eval_form): GCPRO argument sexpr.
587 (call_function): New function.
588 (handle_single_display_prop): Use call_function and FUNCTIONP
589 instead of checking whether if font_height is a symbol and
590 using eval_form.
591
592 * eval.c (internal_condition_case_2): New function.
593
594 * lisp.h (FUNCTIONP): New macro.
595 (internal_condition_case_2, call_function): Add prototypes.
596
d5aa31d8
GM
597 * xterm.c (construct_mouse_click, x_scroll_bar_to_input_event)
598 (x_scroll_bar_handle_click, SET_SAVED_MENU_EVENT, XTread_socket):
599 Always set `arg' member of input_events.
600 (construct_menu_click): Unused function removed.
601
602 * msdos.c (dos_rawgetc): Always set `arg' member of input_events.
603
604 * w32term.c (construct_mouse_click, construct_mouse_wheel)
605 (construct_drag_n_drop, x_scroll_bar_handle_click)
606 (w32_read_socket): Always set `arg' member of input_events.
607
608 * keyboard.c (show_help_echo): Use eval_form. Add comment.
609
610 * lisp.h (eval_form): Add prototype.
611
612 * xdisp.c (eval_form): Make it externally visible.
613
0f1a9b23
GM
6142000-07-13 Gerd Moellmann <gerd@gnu.org>
615
616 * xterm.c (x_handle_tool_bar_click): Store the frame in the
617 frame_or_window slot of TOOL_BAR_EVENT input events instead of
618 consing. For prefix events, store the frame in the `arg' slot of
619 the event, otherwise store the key there.
620 (XTread_socket): Instead of consing, use the frame_or_window slot
621 of HELP_EVENTs for the frame, and the `arg' slot for the help
622 string.
623
624 * xmenu.c (menu_highlight_callback): Store help string in the
625 `arg' member of the input event; don't cons.
626 (menubar_selection_callback): Use the `arg' slot of input events
627 to queue additional information, instead of consing.
628
629 * msdos.c (dos_rawgetc): Adapt to change of HELP_EVENTs.
630
631 * w32term.c (w32_handle_tool_bar_click): Adapt to changes in
632 TOOL_BAR_EVENTs.
633 (w32_read_socket): Adapt to changes in HELP_EVENTs.
634
635 * w32menu.c (menubar_selection_callback): Use the `arg' slot of
636 input events to queue additional information, instead of consing.
637
638 * keyboard.c (kbd_buffer_gcpro): Renamed from
639 kbd_buffer_frame_or_window. Now used for all Lisp objects
640 referenced from the input queue.
641 (kbd_buffer_store_event): Always use structure assignment for
642 copying input events. Record all Lisp objects referenced from
643 events in kbd_buffer_gcpro.
644 (kbd_buffer_get_event): Construct Lisp `help-echo' events
645 differently from input events. Test for prefix menu_bar_events
646 and TOOL_BAR_EVENTs differently. Reset all slots used by an input
647 event in kbd_buffer_gcpro to nil.
648 (make_lispy_event) <TOOL_BAR_EVENT>: Treat an input event whose
649 frame_or_window is equal to its arg member as prefix events.
650 (stuff_buffered_input): Reset all slots in kbd_buffer_gcpro
651 used by an input event to nil.
652 (init_keyboard): Use two times the size of the input queue
653 for kbd_buffer_gcpro.
654 (syms_of_keyboard): Likewise.
655
656 * emacs.c (handle_USR2_signal, handle_USR1_signal): Use
657 USER_SIGNAL_EVENT.
658
659 * termhooks.h (struct input_event): Add member `arg'.
660 (MENU_BAR_EVENT): Renamed from menu_bar_event.
661 (USER_SIGNAL_EVENT): Renamed from user_signal.
662
663 * xfaces.c (ASET): Remove definition.
664
665 * lisp.h (AREF, ASET, ASIZE): New macros.
666
667 * fontset.c (AREF, ASIZE): Remove definitions.
668
669 * fns.c (AREF): Remove definition.
178c5d9c 670
0f1a9b23
GM
671 * composite.c (AREF): Remove definition.
672
712eaef2
GM
6732000-07-12 Gerd Moellmann <gerd@gnu.org>
674
d8ee7803
GM
675 * dispnew.c (redraw_overlapped_rows): Add missing local.
676 (scrolling_window): Remove debug code.
677
712eaef2
GM
678 * xdisp.c (try_window_reusing_current_matrix, try_window_id):
679 Before scrolling, turn off a mouse-highlight in the window
680 being scrolled.
681
682 * xterm.c (x_update_window_end): Add parameter
683 MOUSE_FACE_OVERWRITTEN_P. If set, arrange for a mouse-highlight
684 redisplay in XTframe_up_to_date.
685 (x_clear_mouse_face): New function.
686 (x_redisplay_interface): Add pointer to x_clear_mouse_face.
687
688 * dispnew.c (make_current): Preserve the mouse_face_p flag of the
689 current glyph row.
690 (update_window_line): Add parameter MOUSE_FACE_OVERWRITTEN_P. Set
691 it when any row is written to that contains glyphs highlighted in
692 mouse-face.
693 (update_window): Call the window update end hook with new
694 parameter MOUSE_FACE_OVERWRITTEN_P.
695 (direct_output_for_insert): Give up if row contains mouse-face.
696
697 * dispextern.h (struct redisplay_interface): Add parameter
698 MOUSE_FACE_OVERWRITTEN_P to update_window_end_hook function.
699 (clear_mouse_face): New function pointer member.
700
02010917
SM
7012000-07-11 Stefan Monnier <monnier@cs.yale.edu>
702
703 * syntax.c (back_comment): Use one switch rather than a few `if's.
704 Obey open_paren_in_column_0_is_defun_start.
705 When reverting to the `slow' method, try to nicely handle the case
706 of nested comments by checking that the comment-starter we found
707 does indeed match the comment-ender.
708 (scan_sexps_forward, scan_sexps_forward):
709 Ignore excessive opening parenthesis rather than throwing an error.
710
d76c03ea
GM
7112000-07-11 Gerd Moellmann <gerd@gnu.org>
712
713 * doc.c (Fsubstitute_command_keys): Handle case that a GC
714 in Fwhere_is_internal or get_keymap_1 relocates string contents.
715
716 * dispnew.c (direct_output_forward_char): Give up if currently
717 displaying a message instead of the minibuffer contents.
718
719 * xterm.c (x_update_window_begin): No need to turn off the mouse
720 highlight here.
721 (show_mouse_face): Set the mouse_face_p flag of glyph rows
722 depending on whether they contain glyphs highlighted in
723 mouse-face.
724
725 * dispnew.c (row_equal_p): Add parameter MOUSE_FACE_P. If set,
726 compare the mouse_face_p flags of both rows.
727
728 * dispextern.h (struct glyph_row): Add flag mouse_face_p.
729
d55ead18
EZ
7302000-07-11 Eli Zaretskii <eliz@is.elta.co.il>
731
732 * keyboard.c (show_help_echo): Accept additional parameter
733 ok_to_overwrite_keystroke_echo.
734 (read_char): Call show_help_echo with a zero
735 ok_to_overwrite_keystroke_echo argument.
736 * keyboard.h (show_help_echo): Update prototype of
737 show_help_echo.
738 * xmenu.c (menu_help_callback): Call show_help_echo with non-zero
739 ok_to_overwrite_keystroke_echo argument.
740 * w32menu.c (w32_menu_display_help): Call show_help_echo with
741 non-zero ok_to_overwrite_keystroke_echo argument.
742
df75b1a3
GM
7432000-07-10 Gerd Moellmann <gerd@gnu.org>
744
4b92c49a
GM
745 * xdisp.c (try_window_id): If changes are all below what is
746 displayed in the window, and point is in the window, we still
747 might have to find point on the display.
748
749 * xterm.c (x_fill_stretch_glyph_string): Consume runs of stretch
750 glyphs instead of a single one.
751 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
752 with new argument list.
753 (x_set_glyph_string_gc): Make sure the face's GC is valid.
754
df75b1a3
GM
755 * keymap.c (get_keymap_1): Add comment that this function can GC.
756 (where_is_internal_2, where_is_internal_1): Add GCPROs, add
757 comment that functions can GC.
758 (Fset_keymap_parent): GCPRO arg KEYMAP.
759
4314cf3e
EZ
7602000-07-10 Eli Zaretskii <eliz@is.elta.co.il>
761
762 * msdos.c (XMenuActivate): After exiting the menu, restore the
763 echo area message and erase it.
764
ab49ce15
KH
7652000-07-10 Kenichi Handa <handa@etl.go.jp>
766
767 * fontset.c (Ffontset_info): Make the return value more compatible
768 with that of Emacs 20.
769
090a072f
GM
7702000-07-07 Gerd Moellmann <gerd@gnu.org>
771
772 * eval.c (Fsignal): Handle case that backtrace_list is null.
773
f92de4a6
KH
7742000-07-07 Kenichi Handa <handa@etl.go.jp>
775
776 * ccl.c (Fccl_execute): Typo fixed.
777
dd8888a1
GM
7782000-07-06 Gerd Moellmann <gerd@gnu.org>
779
e5c81191 780 * window.c (window_loop): Add missing gcpro1 local variable.
178c5d9c 781
dd8888a1
GM
782 * window.c (Fwindow_list): Reverse list at the end.
783 (candidate_window_p): Add parameter OWINDOW. ALL_FRAMES nil
784 means allow windows on OWINDOW's frame, only.
785 (window_loop): Simplified; use Fwindow_list.
786
787 * Makefile.in (TAGS-LISP): Don't pass `$(lispsource)' to make.
788
485266d0
GM
7892000-07-05 Gerd Moellmann <gerd@gnu.org>
790
791 * xterm.c (XTread_socket): Increment handling_signal at the start,
792 decrement it at the end.
793
794 * eval.c (handling_signal): New variable.
795 (Fsignal): Abort if handling_signal is non-zero.
796
797 * lisp.h (handling_signal): External declaration.
178c5d9c 798
485266d0
GM
799 * s/freebsd.h (WAITTYPE, WRETCODE): Put in #if 0.
800
80fcd514
KR
8012000-07-05 Ken Raeburn <raeburn@gnu.org>
802
803 Sound support for NetBSD through "Linux emulation" support:
804 * config.in (HAVE_SOUNDCARD_H): Undef.
805 (HAVE_SOUND): Define if HAVE_SOUNDCARD_H.
806 * Makefile.in (LIBSOUND): New variable.
807 (LIBES): Include it.
808 * sound.c [HAVE_SOUNDCARD_H]: Include <sys/ioctl.h> and
809 <soundcard.h>.
810 (DEFAULT_SOUND_DEVICE): Define to "/dev/dsp" if not defined
811 elsewhere.
812 (vox_open): Use DEFAULT_SOUND_DEVICE.
813 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Define to /dev/audio.
814
d5c5cddd
GM
8152000-07-05 Gerd Moellmann <gerd@gnu.org>
816
817 * print.c (print_error_message): If Vsignaling_function is set,
818 show it in *Messages*.
819
820 * lisp.h (Vsignaling_function): External declaration.
821
822 * eval.c (Vsignaling_function): New variable.
823 (Fsignal): Compute it.
824 (syms_of_eval): Staticpro it.
825
65171e3a
DL
8262000-07-05 Dave Love <fx@gnu.org>
827
828 * syswait.h: Use the autoconf recommended approach. Old code
829 #if'd out in case we need to revert.
830
178c5d9c 831 * config.in (HAVE_SYS_WAIT_H): Added.
65171e3a 832
e2c46326
AI
8332000-07-05 Andrew Innes <andrewi@gnu.org>
834
835 * vm-limit.c (check_memory_limits) [REL_ALLOC]: Use real_morecore
836 when non-NULL instead of __morecore, to take account of buffer
837 memory. This also solves a problem with spurious memory warnings
838 on Windows.
839
840 * ralloc.c: Make real_morecore non-static.
841
842 * eval.c (internal_condition_case): Comment out abort if
843 interrupt_input_blocked is not zero.
844
845 * makefile.nt: Add support for `bootstrap' and related targets.
846 Include minimal debug info in emacs.exe in release build.
847 Remove all dependencies on lisp.h, and fixup some others.
848
849 * w32.c (init_environment): Install code from 20.7 for providing
850 default values for environment variables, based on the
851 executable's own location.
852 (map_w32_filename): Handle filenames that are longer than
853 MAX_PATH.
854 (sys_socket): Install socket inheritance bug fix from 20.7.
855
856 * alloca.c [emacs]: Include lisp.h (needed by atimer.h included
857 here via blockinput.h).
858
a027a91b
SM
8592000-07-05 Stefan Monnier <monnier@cs.yale.edu>
860
e4b31601
SM
861 * w32menu.c (w32_menu_display_help):
862 * xmenu.c (menu_help_callback): Use show_help_echo.
a027a91b
SM
863
864 * keyboard.h (show_help_echo): Declare.
865
866 * keyboard.c (show_help_echo): New function, extracted from read_char.
867 Feval its `msg' argument if it's a cons cell.
868 (read_char): Use it.
4cf8d9d5 869 (follow_key): Pass `autoload' to get_keyelt.
a027a91b 870
178c5d9c 871 * xterm.c (note_mode_line_highlight, note_mouse_highlight)
a027a91b 872 (note_tool_bar_highlight, XTread_socket):
178c5d9c 873 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight)
a027a91b
SM
874 (dos_rawgetc):
875 * w32term.c (note_mode_line_highlight, note_mouse_highlight)
876 (note_tool_bar_highlight, w32_read_socket):
877 Do not gratuitously ignore non-string `help-echo' properties.
878
88d75730
GM
8792000-07-05 Gerd Moellmann <gerd@gnu.org>
880
969f7e79
GM
881 * eval.c (Feval): Put check for interrupt_input_block in #if 0.
882
71201b00
GM
883 * window.c (delete_all_subwindows): Reset Vwindow_list.
884
88d75730
GM
885 * xterm.c (x_append_glyph, x_append_composite_glyph)
886 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
887 changes in struct glyph starting 1999-12-27. Some bit-fields of
888 struct glyph were not set, which made glyphs unequal when compared
889 with GLYPH_EQUAL_P. Redisplay outputs such glyphs, and flickering
890 effects were the result. This also depended on the contents of
891 memory returned by xmalloc. If flickering happens again, activate
892 the code in clear_glyph_row that's in #if 0. If the flickering is
893 gone with that, chances are that it is caused by something
894 similar.
895
896 * dispnew.c (clear_glyph_row): Add debug code in #if 0.
178c5d9c 897
88d75730
GM
898 * dispextern.h: Add some comments.
899
900 * window.c (add_window_to_list): Add parameter LIST.
901 (window_list): Order list so that, for each frame, windows are
902 in canonical order, and so that frames appear in the list in
903 the order given by Vframe_list.
904 (next_window): Reverse the handling of NEXT_P.
905
53654733
GM
9062000-07-04 Gerd Moellmann <gerd@gnu.org>
907
87efd256
GM
908 * window.c (Vwindow_list): New variable.
909 (make_window, delete_window): Set Vwindow_list to nil.
910 (check_window_containing): New function.
911 (window_from_coordinates): Rewritten.
912 (add_window_to_list, window_list, candidate_window_p)
913 (decode_next_window_args, next_window): New functions.
914 (Fnext_window, Fprevious_window): Rewritten in terms of
915 next_window.
916 (Fwindow_list): New function.
917 (Fother_window): Cleaned up.
918 (foreach_window): Add a longer "variable argument list". Let
919 callback function return 0 to indicate that cycling over windows
920 should stop.
921 (foreach_window_1): Likewise.
922 (freeze_window_start): Return int.
923 (init_window): New function.
924 (syms_of_window): Staticpro Vwindow_list and defsubr Swindow_list.
925
926 * emacs.c (handle_USR1_signal, handle_USR2_signal) Clear
927 input_event with bzero.
928 (main): Call init_window.
929
53654733
GM
930 * keymap.c (get_keyelt): Temporarily inhibit GC while evaluating
931 a menu filter.
932
4a8c194f
KH
9332000-07-04 Kenichi Handa <handa@etl.go.jp>
934
935 * composite.h (make_composition_value_copy): Extern it.
936
937 * composite.c (make_composition_value_copy): New function.
938
939 * editfns.c (Fformat): While copying text properties, make each
940 composition property value a copy.
941
942 * fns.c (concat): While copying text properties, make each
943 composition property value a copy.
944
831a6cb0
GM
9452000-07-03 Gerd Moellmann <gerd@gnu.org>
946
2f516940
GM
947 * m/macppc.h (LINKER, LD_SWITCH_MACHINE) [LINUX]: Define.
948
178c5d9c 949 * fns.c (sweep_weak_table): Mark only objects that are not
aee625fa
GM
950 marked already.
951
831a6cb0
GM
952 * frame.c (next_frame, prev_frame): If MINIBUF is a window,
953 include those frames as candidates which have their focus
954 redirected to the minibuffer frame.
955
d9c4f922
SM
9562000-07-03 Stefan Monnier <monnier@cs.yale.edu>
957
958 * fns.c (Fputhash): Return `value' rather than nil.
959
3780bc22
GM
9602000-06-30 Gerd Moellmann <gerd@gnu.org>
961
97d176db
GM
962 * frame.c (next_frame): Don't check focus redirection in case
963 MINIBUF is a window. Doing so excludes frames using MINIBUF
3780bc22
GM
964 unless their focus is redirected, which contradicts the
965 specification of next-frame, and leads to infinite loops in
966 certain situations when cycling through windows with next-window.
967
dca9961d
KH
9682000-06-30 Kenichi Handa <handa@etl.go.jp>
969
970 * coding.c (code_convert_region): Even if the length of text is
971 zero, try to convert it if coding->type is coding_type_ccl.
972 (decode_coding_string, encode_coding_string): Likewise.
973
d5483ab1
GM
9742000-06-28 Gerd Moellmann <gerd@gnu.org>
975
af5c25e1 976 * xdisp.c (try_window_reusing_current_matrix): Don't try to reuse
97d176db 977 the display if windows_or_buffers_changed.
af5c25e1
GM
978
979 * dispnew.c (struct row_entry): New structure.
980 (row_entry_pool, row_entry_pool_size, row_entry_idx, row_table)
981 (row_table_size, old_lines, new_lines, old_lines_size)
982 (new_lines_size, run_pool, runs_size, runs): New variables.
983 (add_row_entry): New function.
984 (scrolling_window): Use data structures allocated with xmalloc and
97d176db 985 held in global variables, instead of allocating them with alloca and
af5c25e1
GM
986 holding them in local variables. Use a larger hash table whose
987 size depends on glyph matrix sizes. Don't use bzero to clear the
988 hash table; instead, clear used slots only.
989
990 * fns.c (next_almost_prime): Make it externally visible.
991
992 * lisp.h (next_almost_prime): Add prototype.
993
d5483ab1
GM
994 * s/isc4-0.h (sigunblock): Define.
995
996 * s/sco5.h (sigunblock): Define.
997
93e40f40
DL
9982000-06-27 Dave Love <fx@gnu.org>
999
1000 * s/osf1.h (C_SWITCH_SYSTEM, LIBS_SYSTEM): Revert last change
1001 (moved to osf5-0.h).
1002 [!NOT_C_CODE]: Protect string.h stuff.
1003
1004 * s/osf5-0.h (C_SWITCH_SYSTEM, WAIT_USE_INT, SYS_SIGLIST_DECLARED)
1005 (sys_siglist, NSIG): Definitions moved here from osf1.h.
1006
3c4b7685
GM
10072000-06-27 Gerd Moellmann <gerd@gnu.org>
1008
97d176db 1009 * xdisp.c (resize_mini_window): Subtract the extra line spacing
3c4b7685
GM
1010 below the last line from the needed window height.
1011
32cad0aa
SM
10122000-06-26 Stefan Monnier <monnier@cs.yale.edu>
1013
1014 * fns.c (Fplist_member): Renamed from Fwidget_plist_member.
1015 (Fwidget_get): Use it.
1016 (syms_of_fns): Defsubr it.
1017
2c69ced2
GM
10182000-06-26 Gerd Moellmann <gerd@gnu.org>
1019
178c5d9c 1020 * xterm.c (xim_initialize) [!USE_XIM]: Don't set up the
1d36487c
GM
1021 display info for XIM.
1022 (xim_open_dpy): Likewise.
1023 (xim_close_dpy): Don't free the display info's XIM.
1024
1025 * xfns.c (x_window) [!USE_XIM]: Don't call create_frame_ic.
1026
1027 * config.in (USE_XIM): New define.
1028
3fc720e4
GM
1029 * keymap.c (get_keyelt): For menu-items containing a `:filter
1030 FILTER', apply FILTER to the menu-item's definition to get the
1031 real definition to use.
1032
1033 * lisp.h (QCfilter): External declaration.
1034
2c69ced2
GM
1035 * xfns.c (Fimage_size): New function.
1036 (syms_of_xfns): Defsubr it.
1037
f978b2a2
AS
10382000-06-26 Andreas Schwab <schwab@suse.de>
1039
1040 * coding.c (decode_coding_string): Re-fetch STRING_BYTES after
1041 Fstring_as_unibyte.
1042
94cc7892
DL
10432000-06-25 Dave Love <fx@gnu.org>
1044
1045 * term.c [!HAVE_TERMCAP_H]: Declare tputs, tgetent, tgetflag,
1046 tgetnum.
1047
1048 * Makefile.in (blockinput.h): Depend on atimer.h.
1049 (atimer.h): Depend on systime.h.
1050
1051 * blockinput.h: Protect against multiple inclusion. Include
1052 atimer.h.
1053
1054 * atimer.h: Protect against multiple inclusion. Include
1055 systime.h.
1056
1057 * lisp.h (swap_in_global_binding): Declare.
1058
b8c24556
KR
10592000-06-24 Ken Raeburn <raeburn@gnu.org>
1060
1061 * process.c (Fopen_network_stream): Turn off atimers for duration
1062 of call to connect. (Patch from Gerd.)
1063
8cf8560b
DL
10642000-06-23 Dave Love <fx@gnu.org>
1065
511c7541
DL
1066 * ralloc.c: Maybe include unistd.h
1067
8cf8560b
DL
1068 * emacs.c (setgrp): Undefine before defining.
1069 (malloc_warning, set_time_zone_rule, index): Prototype.
1070
1071 * systime.h (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use
1072 HAVE_STRUCT_TIMEZONE.
1073
1074 * s/osf1.h: Move string.h hack here from alpha.h and make it
1075 conditional.
1076 (C_SWITCH_SYSTEM): Use _OSF_SOURCE, not -BSD, which clashes with
1077 _XOPEN_SOURCE.
1078 (WAIT_USE_INT, SYS_SIGLIST_DECLARED, sys_siglist, NSIG): Define.
1079 (SOCKLEN_TYPE): Don't define.
1080
1081 * m/alpha.h: Remove string.h hack.
1082
1083 * s/osf5-0.h: New file.
1084
1085 * filelock.c: Use feature tests for fcntl.h, string.h. Don't
1086 include time.h, done by systime.h.
1087 [__FreeBSD__]: Remove redundant includes.
1088
3fc720e4 1089 * callproc.c (setpgrp): Undefine before defining.
8cf8560b
DL
1090 (delete_temp_file): Return Qnil to avoid warning.
1091
1092 * config.in (HAVE_TERM_H, HAVE_STRUCT_TIMEZONE): Add.
1093
1094 * xfaces.c: Include fontset.h dependent on HAVE_WINDOW_SYSTEM, not
1095 HAVE_X_WINDOWS.
1096
1097 * fontset.h (free_face_fontset): Renamed from fs_free_face_fontset.
1098
1099 * composite.h (compose_text): Declare.
1100
1101 * xterm.c: Don't include sys/types.h unconditionally. Don't
1102 protect its inclusion with !USG (following xmenu.c).
1103
ea055732
GM
11042000-06-23 Gerd Moellmann <gerd@gnu.org>
1105
1106 * xfns.c (x_create_tip_frame): Initialize frame's colors like
1107 in x_create_frame.
1108
74b01b80
EZ
11092000-06-23 Eli Zaretskii <eliz@is.elta.co.il>
1110
1111 * coding.c (decode_eol_post_ccl): Special handling for undecided
1112 and inconsistent EOL types.
1113
64f3a166
GM
11142000-06-22 Gerd Moellmann <gerd@gnu.org>
1115
16cf31f7
GM
1116 * xrdb.c (x_load_resources): Add default resource for scroll bar's
1117 trough color and main window's background color.
1118
178c5d9c 1119 * xfns.c (Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events
16cf31f7
GM
1120 differently.
1121
1122 * xterm.h (Xt_app_con): External declaration.
1123
1124 * widget.c (EmacsFrameRealize): Fix typo.
178c5d9c 1125
486a103d
GM
1126 * widget.c (EmacsFrameRealize): Remove SubstructureRedirectMask.
1127
64f3a166
GM
1128 * xdisp.c (handle_stop): Initialize it->add_overlay_start to zero.
1129 (handle_invisible_prop): Record the start of invisible text in
1130 it->add_overlay_start.
1131 (struct overlay_entry): Add member `overlay'.
1132 (handle_overlay_change): Simplify.
1133 (next_overlay_string): After having processed overlay strings at the
1134 end of the buffer, record that fact in
1135 it->overlay_strings_at_end_processed_p.
1136 (compare_overlay_entries): If before- and after-strings come
1137 from the same overlay, let before-strings come first.
1138 (RECORD_OVERLAY_STRING): Record the overlay that strings come from.
1139 (load_overlay_strings): Take it->add_overlay_start into account
1140 when adding overlay strings.
1141
1142 * dispextern.h (struct it): Add member add_overlay_start.
1143
bb746ea6
DL
11442000-06-22 Dave Love <fx@gnu.org>
1145
1146 * s/isc3-0.h (C_SWITCH_SYSTEM): Define _XOPEN_SOURCE=500.
1147
1148 * s/gnu-linux.h (C_SWITCH_SYSTEM): Don't define _XOPEN_SOURCE here.
1149
a8f573f3
KH
11502000-06-22 Kenichi Handa <handa@etl.go.jp>
1151
1152 * ccl.c (ccl_driver) <CCL_End>: Decrement stack_idx only when it
1153 is greater than 0.
1154
9f2bbc92
DL
11552000-06-21 Dave Love <fx@gnu.org>
1156
178c5d9c 1157 * Makefile.in (GETLOADAVG_OBJ): Removed -- LIBOBJS does it.
9f2bbc92 1158
3ee5041c
SM
11592000-06-21 Stefan Monnier <monnier@cs.yale.edu>
1160
1161 * syntax.c (back_comment): Simplify string-parity counting (with
1162 the added benefit of handling multiple string-styles as long as
1163 they are not intertwined).
1164 Jump to the slow code as soon as a comment starter is found in
1165 a "string_lossage" position. Fixes the case: " /* " /* " */.
1166
4c343001
DL
11672000-06-21 Dave Love <fx@gnu.org>
1168
1169 * Makefile.in: Use GETLOADAVG_LIBS.
1170
1171 * config.in: Add HAVE_FCNTL_H, _FILE_OFFSET_BITS,
1172 _LARGEFILE_SOURCE, _LARGE_FILES, _XOPEN_SOURCE.
1173
e6365855
SM
11742000-06-20 Stefan Monnier <monnier@cs.yale.edu>
1175
1176 * syntax.c (describe_syntax): Recognize the `n'estable bit.
1177 (Fforward_comment, scan_lists):
1178 Check the comstyle of single-char comment-starters.
1179 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
1180 we're just at the beginning of the comment (f.ex with (*) ... (*)).
d355bd8a
SM
1181 Check the comstyle of single-char comment-starters.
1182 Clarify control-flow around the Scomment case.
e6365855 1183
5700d2cc
DL
11842000-06-20 Dave Love <fx@gnu.org>
1185
d355bd8a
SM
1186 * fns.c (make_hash_table, maybe_resize_hash_table):
1187 Cast arg of next_almost_prime.
5700d2cc 1188
178c5d9c 1189 * tparam.c [emacs]: Include lisp.h.
5700d2cc
DL
1190
1191 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
1192 and unistd.h.
1193
4a27bdfb
GM
11942000-06-20 Gerd Moellmann <gerd@gnu.org>
1195
a61d762c
GM
1196 * keyboard.c (adjust_point_for_property): Check if display
1197 property should be treated as intangible by looking at its
1198 value.
1199
178c5d9c 1200 * xdisp.c (single_display_prop_intangible_p)
a61d762c
GM
1201 (display_prop_intangible_p): New functions.
1202
1203 * dispextern.h (display_prop_intangible_p): Add prototype.
1204
1205 * xdisp.c (dump_glyph_row): Show type of glyph->object.
178c5d9c 1206
4a27bdfb
GM
1207 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
1208 argument to sigprocmask.
1209
1210 * s/sco5.h (sigblock): Redefined to pass a pointer as second
1211 argument to sigprocmask.
1212
1213 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
1214 sigprocmask_set, and pass a pointer to it to sigprocmask.
1215
1216 * sysdep.c (sigprocmask_set): New variable.
1217
1218 * fileio.c (make_temp_name): Don't use `%s' in string passed to
1219 report_file_error.
1220
427ec082
SS
12212000-06-20 Sam Steingold <sds@gnu.org>
1222
1223 * xrdb.c: Don't declare xmalloc, xrealloc.
1224
8972fe79 12252000-06-20 Stefan Monnier <monnier@cs.yale.edu>
8972fe79
SM
1226
1227 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
1228 (re_comp): Cast gettext return value to avoid complaints when
1229 !HAVE_LIBINTL.
1230
074b6efe
DL
12312000-06-20 Dave Love <fx@gnu.org>
1232
f85c008a
DL
1233 * m/stride.h, m/mips.h: Don't define HAVE_GETWD,
1234 HAVE_GETTIMEOFDAY.
1235
5700d2cc 1236 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
f85c008a 1237
d355bd8a 1238 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
f85c008a
DL
1239
1240 * m/alpha.h: Don't declare xmalloc, xrealloc.
1241
0af4f205
DL
1242 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
1243
1244 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
1245
1246 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
1247
1248 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
1249 HAVE_GETWD.
1250
074b6efe
DL
1251 * keyboard.h (poll_for_input_1): Declare.
1252
1253 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
1254
1255 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
1256
1257 * doprnt.c: Don't declare xmalloc, xrealloc.
1258
1259 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
1260 (getenv, ctime, getwd): Removed.
1261 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
1262
1263 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
1264 x_set_tool_bar_lines.
1265
1266 * config.in: Add HAVE_GETWD. Move some definitions above
1267 machine/system includes.
1268
68a5e97b
KH
12692000-06-20 Kenichi Handa <handa@etl.go.jp>
1270
95417e1e
KH
1271 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
1272
68a5e97b
KH
1273 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
1274 contain information about ENCODING.
1275
1276 * fontset.c (FONTSET_ASCII): Use the first element of char table
1277 for an ASCII font, not defalt slot.
1278 (fontset_ref_via_base): If FONTSET doesn't contain information for
1279 C, try the default fontset.
1280 (make_fontset): Don't copy the default fontset.
1281 (fontset_font_pattern): Likewise.
1282 (accumulate_font_info): If ELT is nil, use the corresponding
1283 element in the default fontset.
1284
3b4fa1b2
DL
12852000-06-19 Dave Love <fx@gnu.org>
1286
943e731c
DL
1287 * syntax.c (Fparse_partial_sexp): Doc fix.
1288
1289 * regex.h: Test PROTOTYPES as well as __STDC__.
1290
3b4fa1b2
DL
1291 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
1292 errno, strerror. Put text after #endif in comment.
1293
1294 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for
1295 pcc).
1296
1297 * xterm.c (x_frame_of_widget): Likewise.
1298
cdf0357b
GM
12992000-06-19 Gerd Moellmann <gerd@gnu.org>
1300
1301 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
1302 to Vfundamental_mode_abbrev_table.
1303
1304 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
1305 bogus objects are marked. This slows down GC by ~80 percent, but
1306 it might be worth trying when debugging GC-related problems.
1307 This feature requires conservative stack marking to be enabled.
1308
1309 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
1310 returns XLookupChars, reset `modifiers' to zero.
1311
998e9f8c
DL
13122000-06-19 Dave Love <fx@gnu.org>
1313
1314 * mktime.c: Unprotoized.
1315
18e21ce8 13162000-06-19 Richard Stallman <rms@gnu.org>
d1504184
GM
1317
1318 * data.c (set_internal): If variable is frame-local,
1319 store the new value immediately into the frame parameter alist.
1320
140c4ac6
KR
13212000-06-19 Ken Raeburn <raeburn@gnu.org>
1322
14358466
KR
1323 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
1324 in the custom handler pointer.
1325
140c4ac6
KR
1326 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
1327 value, or checks for CHAR_META can fail when Lisp_Object is a
1328 union type.
1329 * keymap.c (get_keyelt): Likewise.
1330
10d7bf84
KH
13312000-06-19 Kenichi Handa <handa@etl.go.jp>
1332
1333 * ccl.h (struct ccl_program): New member eol_type.
1334 (struct ccl_spec): New member cr_carryover.
1335
1336 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
1337 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
1338
1339 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
1340 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
1341 (decode_eol_post_ccl): New function.
1342 (decode_coding): Don't detect EOL format here for CCL based coding
1343 systems.
1344 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
1345 decode_eol_post_ccl after running the CCL program.
1346 (code_convert_region): Don't detect EOL format here for CCL based
1347 coding systems.
1348 (decode_coding_string): Likewise.
1349
52e386c2
KR
13502000-06-18 Ken Raeburn <raeburn@gnu.org>
1351
1352 * charset.c (update_charset_table): Use XINT on "iso_final_char"
1353 when treating it as an integer.
1354
1355 * coding.h (encode_coding_string): Declare.
1356
1357 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
1358 it as an integer.
1359
1360 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
1361 "xkeymap" to avoid shadowing the "enum map_type" value that needs
1362 to be passed to get_local_map.
1363
1364 * sound.c (Fplay_sound): Don't call make_number on
1365 Frun_hook_with_args count argument.
1366
1367 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
1368 for lisp objects in X event structure data field, when lisp
1369 objects are represented with unions.
1370 (x_scroll_bar_to_input_event): Ditto.
1371
b357b9d4
KR
13722000-06-16 Ken Raeburn <raeburn@gnu.org>
1373
1374 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
37d034d3
KR
1375 termination of string. Fix sense of test whether
1376 Vline_number_display_limit is an integer.
b357b9d4 1377
a871441d
GM
13782000-06-16 Gerd Moellmann <gerd@gnu.org>
1379
a9021acd
GM
1380 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
1381 only if HAVE_X_WINDOWS.
1382
6344985d
GM
1383 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
1384 of titles.
1385
427ec082 1386 * dispnew.c (update_frame_1): Handle case that cursor vpos is
a871441d
GM
1387 out of bounds.
1388
228b083e
EZ
13892000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
1390
1391 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
1392 of its headers.
1393
c25b53a2
KH
13942000-06-15 Kenichi Handa <handa@etl.go.jp>
1395
1396 * coding.c (decode_coding_emacs_mule): Always set src_base at the
1397 start of the while loop.
1398
a6981b11
GM
13992000-06-15 Gerd Moellmann <gerd@gnu.org>
1400
e9924e52
GM
1401 * atimer.c (alarm_signal_handler): Add forward declaration.
1402
a6981b11
GM
1403 * data.c (set_internal): Remove debug code.
1404
25fa6deb
GM
14052000-06-14 Gerd Moellmann <gerd@gnu.org>
1406
dce6b995
GM
1407 * Makefile.in (bootstrap-temacs): Add `-I../src'.
1408
9f817ea4
GM
1409 * unexec.c (toplevel) [COFF]: Include coff.h.
1410
1411 * s/lynxos.h: New file.
1412
1413 * keymap.c (Fsingle_key_description): Enclose function key and
1414 event symbol names in angle brackets.
1415
8a4e3c0c
GM
1416 * xdisp.c (setup_echo_area_for_printing): Call
1417 message_log_maybe_newline if message_buf_print is not set.
1418
1419 * print.c (printchar, strout): Don't check message_buf_print
427ec082 1420 before calling setup_echo_area_for_printing because that
8a4e3c0c
GM
1421 function does something useful even when message_buf_print is
1422 already set.
1423
25fa6deb
GM
1424 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines): New
1425 variables.
1426 (ensure_echo_area_buffers): Initialize echo buffer's
1427 truncate lines setting to nil.
1428 (with_echo_area_buffer): Don't set the echo buffer's truncate
1429 lines setting here.
8a4e3c0c 1430 (set_message_1): Set it here instead, based on the value
25fa6deb
GM
1431 of message_truncate_lines.
1432 (resize_mini_window): Handle case that lines are truncated.
1433 (syms_of_xdisp): Initialize Qmessage_truncate_lines. DEFVAR_BOOL
1434 message-truncate-lines.
1435
1436 * keyboard.c (read_char): Bind message-truncate-lines to t
1437 while displaying a help-echo.
1438
1439 * lisp.h (Qmessage_truncate_lines): External declaration.
1440
163dcff3
GM
14412000-06-13 Gerd Moellmann <gerd@gnu.org>
1442
1681ead6
GM
1443 * xdisp.c (Vline_number_display_limit): Renamed from
1444 line_number_display_limit.
1445 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
1446 Extend documentation string. Initialize
1447 Vline_number_display_limit to nil meaning no limit.
1448 (decode_mode_spec): Use Vline_number_display_limit with its new
1449 meaning.
1450
163dcff3
GM
1451 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
1452
18e21ce8 14532000-06-13 Richard Stallman <rms@gnu.org>
163dcff3
GM
1454
1455 * frame.c (Fmodify_frame_parameters): Doc fix.
427ec082 1456
163dcff3
GM
1457 * xfns.c (x_set_frame_parameters): Comment fix.
1458
1459 * frame.c (store_frame_param): Call swap_in_global_binding if the
1460 variable's current binding was chosen based on this frame.
1461
1462 * data.c (swap_in_global_binding): New function.
1463
a704139d
EZ
14642000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
1465
1466 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
1467 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
1468
9b6610db
EZ
14692000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
1470
1471 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
1472
c68833d2
JR
14732000-06-12 Jason Rumney <jasonr@gnu.org>
1474
1475 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
1476
1477 * w32.h (EMACS_W32_H): Renamed from _NT_H_
1478
1479 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
1480
1481 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
1482
ed1056b3
GM
14832000-06-12 Gerd Moellmann <gerd@gnu.org>
1484
1485 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
1486 (syms_of_xfaces): Defsubr Sdump_colors.
1487 (x_free_colors): Don't treat b&w specially on default visual.
1488 (x_free_dpy_colors): New function.
1489 (free_face_colors): Don't check visual class; it's done
1490 in x_free_colors.
1491
1492 * xterm.c (x_frame_of_widget): New function.
1493 (x_alloc_nearest_color_for_widget): Use it.
1494 (x_copy_dpy_color): New function.
1495 (x_destroy_window): Free various colors.
1496
5050a2ef
KH
14972000-06-12 Kenichi Handa <handa@etl.go.jp>
1498
1499 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
1500
1501 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
1502
1503 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
1504
1505 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
1506
1507 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
1508
fb1b041d
DL
15092000-06-11 Dave Love <fx@gnu.org>
1510
1511 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
1512
ff96b5f4
EZ
15132000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
1514
1515 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
1516
db8eeecd
GM
15172000-06-11 Gerd Moellmann <gerd@gnu.org>
1518
ed1056b3 1519 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
db8eeecd
GM
1520 to `XEvent *'.
1521
49b71c5f
KH
15222000-06-10 Kenichi Handa <handa@etl.go.jp>
1523
c479bd55
KH
1524 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
1525 (regex_compile): Fix the code for handling the case of single byte
1526 char and multibyte char being mixed in a range within [...].
1527
ff6a65c2
KH
1528 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
1529 and dst_multibyte members of coding.
1530
49b71c5f
KH
1531 * charset.c (update_charset_table): Update the table
1532 bytes_by_char_head.
1533 (init_charset_once): Initialize elements of bytes_by_char_head to
1534 1 except for leading codes for private charases.
1535
1536 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
1537 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte
1538 sequence.
1539
9e80b57d
KR
15402000-06-09 Ken Raeburn <raeburn@gnu.org>
1541
1542 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
1543 access the data it doesn't point to.
1544
f83fe4b4
GM
15452000-06-08 Gerd Moellmann <gerd@gnu.org>
1546
1547 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
db8eeecd 1548 will be translated to a switch-frame event when reading the
f83fe4b4
GM
1549 event queue. This is necessary because Emacs otherwise won't
1550 perform a switch-frame to a new frame until some other event, for
1551 example a keystroke event, forces it to do so. This has various
1552 effects, one visible being that the cursor of a frame created with
1553 C-x 5 2 or switched to with a window manager key binding like
1554 A-TAB stays hollow because selected_window isn't on the newly
1555 focused frame until the switch-frame is performed.
1556
1557 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
1558 generating a switch-frame event if necessary.
1559
1560 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
1561
1562 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
1563 it's an integer.
1564
0890801b
KH
15652000-06-08 Kenichi Handa <handa@etl.go.jp>
1566
1567 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a
1568 charset.
1569
173cbca8
GM
15702000-06-07 Gerd Moellmann <gerd@gnu.org>
1571
3091c2a6
GM
1572 * window.c (displayed_window_lines): Take empty lines at
1573 the bottom of a window into account.
427ec082 1574
f38952fe
GM
1575 * window.c (displayed_window_lines): New function.
1576 (Fmove_to_window_line): Use displayed_window_lines to determine
1577 the number of lines to move, instead of using the window's height.
1578
1579 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
1580 to stop reading, even if the form read sets point to a different
1581 value when evaluated.
1582
427ec082 1583 * xdisp.c (display_line): Fix code deciding in which line to
173cbca8
GM
1584 put the cursor.
1585
6ba6c818
KH
15862000-06-07 Kenichi Handa <handa@etl.go.jp>
1587
1588 * fileio.c (e_write): Free composition data if stored in
1589 coding->cmp_data.
1590
5f1aea9a
GM
15912000-06-06 Gerd Moellmann <gerd@gnu.org>
1592
666852af
GM
1593 * xdisp.c (display_line): Set row's and iterator's
1594 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
1595 Set cursor even if row ends in the middle of a character.
1596 (dump_glyph_row): Print values of new flags.
1597 (redisplay_window) <cursor movement in unchanged window>: When
1598 point has been moved forward, and PT is at the end of the cursor
1599 row, don't place the cursor in the next row if the cursor row ends
1600 in the middle of a character or at ZV.
1601
1602 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
1603 (struct glyph_row): Add starts_in_middle_of_char_p and
1604 ends_in_middle_of_char_p.
1605 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
1606 ends_in_middle_of_char_p flag.
1607 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
1608
d13f3e2e
GM
1609 * term.c (append_glyph): Revert change of 2000-06-06.
1610
1611 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
1612 padding glyph not fitting on line as whole character not
1613 fitting on line.
1614
5f1aea9a
GM
1615 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
1616 this isn't true for images with `:ascent 100'.
1617
10cda9b0
KH
16182000-06-06 Kenichi Handa <handa@etl.go.jp>
1619
ed00559d
KH
1620 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
1621 as modified if it is originally unmodified.
1622
10cda9b0
KH
1623 * term.c (encode_terminal_code): Change the way to check if
1624 terminal coding does any conversion.
1625 (append_glyph): Set glyph->pixel_width correctly.
1626
1627 * xdisp.c (display_line): While checking line continuation, pay
1628 attention to a padding glyph.
1629
1969fae2
GM
16302000-06-05 Gerd Moellmann <gerd@gnu.org>
1631
1632 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
1633
162ccef4
DL
16342000-06-05 Dave Love <fx@gnu.org>
1635
f19f32dd
DL
1636 * xdisp.c: Include fontset.h.
1637
1638 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
1639
1640 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
1641
1642 * dispnew.c: Conditionally include term.h.
1643
1644 * coding.h: Declare code_convert_string_norecord.
1645
1646 * frame.h (struct frame): Use volatile unconditionally.
1647
1648 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
1649
1650 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
1651
1652 * systime.h: Protect against multiple inclusion.
1653 (timezone) [USG5_4]: Define as time_t.
1654
1655 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
1656 (Foptimize_char_table, make_temp_name): Declare.
1657
1658 * Makefile.in (xdisp.o): Depend on fontset.h.
1659
1660 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
1661
1662 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
1663 (Foptimize_char_table, make_temp_name): Declare.
1664
427ec082 1665 * s/irix4-0.h:
162ccef4
DL
1666 * s/irix5-0.h:
1667 * s/netbsd.h: Don't define autoconfiscated MATHERR.
1668
2082fe81
DL
16692000-06-02 Dave Love <fx@gnu.org>
1670
1671 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
1672
dcf671d2
GM
16732000-06-02 Gerd Moellmann <gerd@gnu.org>
1674
1675 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
1969fae2 1676 result face, set flags in that face indicating that colors may not
dcf671d2
GM
1677 be freed.
1678
1679 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
1680 glyph, use the ASCII NUL character to determine the face.
1681
d42122a3
DL
16822000-06-02 Dave Love <fx@gnu.org>
1683
1684 * sysdep.c: Conditionally include stdlib.h, unistd.h.
1685 (VFORK_RETURN_TYPE): Remove.
427ec082 1686
d42122a3
DL
1687 * config.in: Add NO_MATHERR.
1688
dd432f16
DL
16892000-06-01 Dave Love <fx@gnu.org>
1690
90aa4ea8
DL
1691 * cmds.c (internal_self_insert): Don't check
1692 Vbefore_change_function, Vafter_change_function.
1693
1694 * insdel.c (signal_before_change, signal_after_change): Likewise.
1695
1696 * buffer.c (Vbefore_change_function, Vafter_change_function):
1697 Variables and their initializations deleted.
1698
2330c9d4
DL
1699 * callint.c (Fcall_interactively): Doc fix.
1700
dd432f16
DL
1701 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
1702
bf9e8804
DL
17032000-05-31 Dave Love <fx@gnu.org>
1704
1705 * textprop.c: Revert last change -- duplicated.
1706
3694b4ab
GM
17072000-05-31 Gerd Moellmann <gerd@gnu.org>
1708
1709 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
1710 in #if 0.
1711
1712 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
1713
f14156cd
JR
17142000-05-31 Jason Rumney <jasonr@gnu.org>
1715
8119aab8
JR
1716 * search.c (Fre_search_forward, Fre_search_backward)
1717 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
1718
f14156cd
JR
1719 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
1720
4aab9be3
JR
17212000-05-30 Jason Rumney <jasonr@gnu.org>
1722
1723 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
1724 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
1725
1726 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type
1727 member.
1728
1729 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
1730 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
1731 expand a nil default_filename.
1732
1733 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
1734 pointer to glyph_to_pixel_coords, not a frame.
1735
1736 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
1737 coding.h to dependencies.
1738
1739 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
1740
1741 * w32console.c (glyph_to_pixel_coords): Change first parameter to
1742 window pointer to be consistent with w32term.c and xterm.c.
1743
1744 * w32fns.c: Format and doc changes to bring closer to xfns.c.
1745 (VIETNAMESE_CHARSET): Define if not defined in system headers.
1746 (Qline_spacing, Qcenter): New variables.
1747 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
1748 (x_set_line_spacing): New function.
1749 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT
1750 macros.
1751 (x_specified_cursor_type): New function.
1752 (x_set_cursor_type): Use it.
1753 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
1754 and icon strings.
1755 (validate_x_resource_name, x_get_resource_string): Measure lengths
1756 of external strings in bytes.
1757 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
1758 GetTextExtentPoint32 with NULL title.
1759 (Fx_create_frame): Initialize Qline_spacing.
1760 (w32_load_system_font): Initialize font->double_byte_p.
1761 (x_to_w32_charset): Use Vw32_charset_info_alist.
1762 (Image, busy cursor, tooltip functions): Merged changes from
1763 xfns.c. Not yet functional on Windows.
1764
1765 * w32gui.h (W32FontStruct): Add double_byte_p member.
1766
1767 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
1768 (emacs_button_translation): Use it.
1769 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
1770 in `mask' to be set.
1771
1772 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
1773 menu strings.
1774
1775 * w32term.c: Format and doc changes to bring closer to xterm.c.
1776 (w32_char_font_type): New enum.
1777 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
1778 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
1779 (w32_encode_char): New function.
1780 (x_encode_char): Removed.
1781 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
1782 x_encode_char and w32_font_is_double_byte.
1783 (x_produce_image_glyph): Use image_ascent.
1784 (x_produce_glyphs): Use new version of w32_per_char_metric and
1785 handle NULL return value. Allow extra line spacing.
1786 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
1787 (w32_get_glyph_overhangs): Remove unicode_p param. Use
1788 w32_font_type member of glyph instead.
1789 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
1790 (fast_find_position): Make sure not to consider rows not visible
1791 in the window.
1792 (w32_read_socket) [WM_MENUSELECT]: Cannot call
1793 w32_menu_display_help with input blocked, as it can abort.
1794 (x_display_and_set_cursor): Choose cursor depending
1795 on buffer-local value of cursor_type.
1796 (x_draw_bar_cursor): Add parameter WIDTH.
1797
1798 * w32term.h (CP_DEFAULT): Define.
1799 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
1800
10fc3187
GM
18012000-05-30 Gerd Moellmann <gerd@gnu.org>
1802
1803 * search.c (Fre_search_forward, Fre_search_backward)
1804 (Fposix_search_backward, Fposix_search_forward): Doc fix.
1805
d0555360
KH
18062000-05-30 Kenichi Handa <handa@etl.go.jp>
1807
1808 * coding.c (detect_coding_iso2022): Fix code for checking
1809 CODING_CATEGORY_MASK_ISO_8_2.
1810
f1ad044f
SM
18112000-05-29 Stefan Monnier <monnier@cs.yale.edu>
1812
1813 * regex.c (PREFETCH_NOLIMIT): New function.
1814 (re_match_2_internal): Use it and adjust the end_match_2 logic.
1815
84ec3b4b
GM
18162000-05-29 Gerd Moellmann <gerd@gnu.org>
1817
66254a13
GM
1818 * syntax.c (find_defun_start): Move test for
1819 open_paren_in_column_0_is_defun_start outside of the loop.
1820
49e70dec
GM
1821 * xdisp.c (redisplay_window): Really switch buffers when
1822 displaying mode lines, and temporarily set selected_frame to the
1823 frame of the window that's redisplayed.
1824
84ec3b4b
GM
1825 * xfaces.c (free_realized_faces): Block/unblock input.
1826 (free_realized_multibyte_face): Ditto.
1827
869a3a14
DL
18282000-05-29 Dave Love <fx@gnu.org>
1829
1830 * textprop.c (Qkeymap): New variable.
1831 (syms_of_textprop): Intern it.
1832
1833 * keymap.c: Include intervals.h.
1834 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
1835
1836 * Makefile.in (keymap.o): Depend on intervals.h.
1837
1838 * keyboard.c (menu_bar_items, tool_bar_items)
1839 (Fexecute_extended_command): Deal with `keymap' property.
1840 (read_key_sequence): Track map from `keymap' property as well as
1841 `local_map'.
1842
1843 * intervals.c (get_local_map): Extra arg to allow looking for
1844 `keymap' too.
1845
1846 * intervals.h (map_property): New enum.
1847 (get_local_map): Extra arg using it.
1848 (Qkeymap): Declare.
1849
84ec3b4b 1850 * lisp.h (get_local_map): Don't declare here.
869a3a14 1851
89d0c844
KH
18522000-05-29 Kenichi Handa <handa@etl.go.jp>
1853
1854 * Makefile.in (callproc.o): Depend on composite.h.
1855
1856 * callproc.c: Include composite.h.
1857 (Fcall_process): Handle composition correctly.
1858
1859 * coding.h (coding_allocate_composition_data): Extern it.
1860 (coding_restore_composition): Likewise.
1861
1862 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
1863 yet allocated, finish decoding with result
1864 CODING_FINISH_INSUFFICIENT_CMP.
1865 (coding_allocate_composition_data): Make it non-static.
1866 (coding_restore_composition): Likewise.
1867
797a084a
EZ
18682000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
1869
1870 * charset.c (syms_of_charset): Revert last change.
1871
cf872af5
EZ
18722000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
1873
1874 * term.c (produce_glyphs): Treat characters from the eight-bit-*
d7d0dac0
SM
1875 charsets as unibyte, with 1-column screen width. Sent by Kenichi
1876 Handa.
cf872af5 1877
5b1ae051
EZ
18782000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
1879
1880 * charset.c (syms_of_charset): Set width of character sets
1881 eight-bit-control and eight-bit-graphic to 1 column.
1882
34ec9ebe
GM
18832000-05-26 Gerd Moellmann <gerd@gnu.org>
1884
1885 * config.in (HAVE_SPEED_T): New define.
1886
1887 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
1888 `extern speed_t'.
1889
dd854dc2
DL
18902000-05-26 Dave Love <fx@gnu.org>
1891
1892 * coding.c (shrink_decoding_region): Initialize eol_conversion.
1893
1894 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
1895 (Fsubr_arity): New function.
1896 (syms_of_data): Install them.
1897
ba9f8f95
KH
18982000-05-26 Kenichi Handa <handa@etl.go.jp>
1899
0f3e0672
KH
1900 * charset.c (init_charset_once): Set the table bytes_by_char_head
1901 correctly.
1902
cebefb44
KH
1903 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
1904 the default fontset to what Emacs uses by default.
0f3e0672
KH
1905 (check_registry_encoding): This function deleted.
1906 (Fset_fontset_font): Remove the adhoc condition for the default
1907 fontset. Allow cons in FONTNAME.
cebefb44 1908
0f3e0672
KH
1909 * fns.c (map_char_table): Ignore char-table entries for
1910 charsets eight-bit-control and eight-bit-graphic.
ba9f8f95 1911
7a18af49
KR
19122000-05-25 Ken Raeburn <raeburn@gnu.org>
1913
1914 * emacs.c (main): Initialize keyboard syms before initializing
1915 window code, so face names are available.
1916
d2af47df
SM
19172000-05-25 Stefan Monnier <monnier@cs.yale.edu>
1918
1919 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
1920 of an anchor at the beginning of a shy-group.
1921
fc6a6a4e
GM
19222000-05-25 Gerd Moellmann <gerd@gnu.org>
1923
1924 * xdisp.c (handle_invisible_prop): Don't try to skip over
1925 invisible text if end of text is already reached.
1926
005f0d35
DL
19272000-05-25 Dave Love <fx@gnu.org>
1928
02513cdd
DL
1929 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
1930
005f0d35
DL
1931 * coding.c (encode_eol): Add null statement after label.
1932
89f6ca4e
EZ
19332000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
1934
1935 * w16select.c (Fw16_set_clipboard_data): Fix the change from
1936 2000-05-20.
1937
a4e1759e
KH
19382000-05-25 Kenichi Handa <handa@etl.go.jp>
1939
1940 * ccl.c (ccl_driver): Fix previous change.
1941
eacfd7fe
KH
19422000-05-25 Kenichi Handa <handa@etl.go.jp>
1943
46ab33a9
KH
1944 * coding.c (run_pre_post_conversion_on_str): Set point to the
1945 beginning of buffer before calling coding->post_read_conversion.
1946 (decode_coding_string): Give correct args to
1947 run_pre_post_conversion_on_str.
1948 (encode_coding_string): Likewise.
1949
eacfd7fe
KH
1950 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
1951 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
1952 eight-bit-graphic correctly.
1953
f8569325
DL
19542000-05-24 Kenichi HANDA <handa@etl.go.jp>
1955
1956 * fileio.c (Finsert_file_contents): Even if a file is not found,
1957 execute codes for setting up coding system. Call
1958 after-insert-file-functions unconditionally.
1959
04545643
GM
19602000-05-24 Gerd Moellmann <gerd@gnu.org>
1961
1962 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
1963 BSD_PGRPS are not defined.
1964
747d90ea
KH
19652000-05-24 Kenichi Handa <handa@etl.go.jp>
1966
1967 * charset.c (update_charset_table): Accept nil in LONG_NAME and
1968 DESCRIPTION.
1969 (syms_of_charset): Avoid building same strings.
1970
716e3b88
GM
19712000-05-23 Gerd Moellmann <gerd@gnu.org>
1972
1973 * lread.c (Fload): Add a comment about the meaning of
1974 Vuser_init_file being t.
1975
1976 * puresize.h (BASE_PURESIZE): Increase to 675000.
1977
1978 * s/gnu-linux.h (setpgrp): Don't define it here because this
1979 prevents compilation on GNU/Linux systems with glib 2.2.
1980
1981 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
1982 as setpgid.
427ec082 1983
9aeb39fa
EZ
19842000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
1985
1986 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
1987 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
1988 version.
1989 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
1990
29ced61b
KH
19912000-05-23 Kenichi Handa <handa@etl.go.jp>
1992
0574a2ed
KH
1993 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE
1994 unconditionally.
1995
3d80f24d
KH
1996 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
1997
1998 * term.c (encode_terminal_code): Set coding->src_multibyte
1999 properly.
2000
29ced61b
KH
2001 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
2002
d7e00792
KH
20032000-05-22 Kenichi Handa <handa@etl.go.jp>
2004
c9d80d38
KH
2005 * keyboard.c (read_char): Allow character codes 128..255 to be
2006 handled by input-method-function.
2007
d7e00792
KH
2008 * insdel.c (adjust_markers_for_replace): Fix previous change.
2009 (adjust_after_replace): If PREV_TEXT is nil, call
2010 adjust_markers_for_insert, not adjust_markers_for_replace.
2011
087121cc 20122000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
427ec082 2013
087121cc
GM
2014 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
2015 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
2016 [HAVE_GRANDPT]: Define.
2017 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
2018
2019 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
2020 like SYSV_PTYS.
2021
2022 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
2023
2024 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
2025
c9671f81
KH
20262000-05-20 Kenichi Handa <handa@etl.go.jp>
2027
2028 The following changes are to handle 8-bit characters in a
2029 multibyte buffer/string without facing with byte combining
2030 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
2031 eight-bit-graphic (for 0xA0..0xFF) are introduced.
2032
2033 * Makefile.in (fns.o): Depend on charset.h.
2034
2035 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
2036 convert it to unibyte.
2037 (make_string): Use parse_str_as_multibyte, not chars_in_text.
2038
2039 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
2040 apparent char boundary.
2041 (Fset_buffer_multibyte): Convert 8-bit characters in the range
2042 0x80..0x9F to/from multibyte form.
2043
2044 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
2045 to unibyte.
2046
2047 * callproc.c (Fcall_process): Always encode an argument string if
2048 it is multibyte. Setup src_multibyte and dst_multibyte members of
2049 process_coding properly.
ce75fd23 2050
c9671f81
KH
2051 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
2052 SPLIT_NON_ASCII_CHAR.
2053
2054 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
2055 as is.
2056 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
2057
2058 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New
2059 variables.
2060 (SPLIT_CHARACTER_SEQ): This macro deleted.
2061 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is
2062 valid.
2063 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
2064 and eight-bit-graphic.
2065 (char_to_string): Likewise. Signal an error for too large
2066 character code.
2067 (char_printable_p): Return 0 for 8-bit characters.
2068 (update_charset_table): Update iso_charset_table only when a final
2069 character is non-negative.
2070 (find_charset_in_text): Renamed from find_charset_in_str.
2071 Arguments and return value changed. Callers changed.
2072 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
2073 be -1 if CHARSET is used only internally.
2074 (Fmake_char_internal): Handle new charsets; eight-bit-control and
2075 eight-bit-graphic.
2076 (Fcharset_after): Simplified.
2077 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
2078 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
2079 (multibyte_chars_in_text): Simplified by assuming there's no
2080 invalid multibyte sequence.
2081 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
2082 str_as_unibyte): New functions.
2083 (Fstring): Simpified by assuming that byte combining never
2084 happens.
2085 (init_charset_once): Initialization for
2086 LEADING_CODE_8_BIT_CONTROL.
2087 (syms_of_charset): Intern and staticpro Qeight_bit_control and
2088 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
2089 eight-bit-control and eight-bit-graphic.
2090
2091 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL,
2092 CHARSET_8_BIT_GRAPHIC): New macros.
2093 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
2094 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
2095 (CHARSET_REVERSE_CHARSET): Likewise.
2096 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
2097 eight-bit-graphic.
2098 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
2099 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
2100 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
2101 encounter an invalid multibyte sequence.
2102 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
2103 sequence is always valid.
2104 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
2105 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New
2106 macros.
2107 (CHAR_STRING): For 8-bit characters, call char_to_string.
2108 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
2109 multibyte sequence is always valid.
2110 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
2111 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
2112 str_as_unibyte): Extern them.
2113 (BCOPY_SHORT): Fix a bug.
2114 (CHAR_LEN): This macro deleted. Callers changed to use
2115 CHAR_BYTES.
2116 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
2117 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
2118 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
2119
bd4bde7f 2120 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
c9671f81
KH
2121 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
2122 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
2123 EMIT_BYTES): New macros.
2124 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
2125 DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
2126 macros deleted.
2127 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
2128 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
2129 check the validity of multibyte sequence.
2130 (decode_coding_emacs_mule): New function.
2131 (encode_coding_emacs_mule): New macro.
2132 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
2133 the source.
2134 (DECODE_ISO_CHARACTER): Just return a character code.
2135 (DECODE_COMPOSITION_START): Set coding->result instead of result.
2136 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
2137 EMIT_CHAR to produced decoded characters. Exit the loop only by
2138 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
2139 block here.
2140 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
2141 only position codes for an invalid character.
2142 (encode_designation_at_bol): Return new destination pointer. 5th
2143 arg DSTP is changed to DST.
2144 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
2145 from the source by ONE_MORE_CHAR. Don't handle the case of last
2146 block here.
2147 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
2148 macros deleted.
2149 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
2150 detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
2151 TWO_MORE_BYTES to fetch a byte from the source.
2152 (encode_eol): Pay attention to coding->src_multibyte.
2153 (detect_coding, detect_eol): Preserve members src_multibyte and
2154 dst_multibyte.
2155 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
2156 (encoding_buffer_size): Set magnification to 3 for all coding
2157 systems that require encoding.
2158 (ccl_coding_driver): For decoding, be sure that the result is
2159 valid multibyte sequence.
2160 (decode_coding): Initialize coding->errors and coding->result.
2161 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
2162 and raw-text, always call decode_eol. Handle the case of last
2163 block here. If not coding->dst_multibyte, convert the resulting
2164 sequence to unibyte.
2165 (encode_coding): Initialize coding->errors and coding->result.
2166 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
2167 and raw-text, always call encode_eol. Handle the case of last
2168 block here.
2169 (shrink_decoding_region, shrink_encoding_region): Detect cases
2170 that we can't skip data more rigidly.
2171 (code_convert_region): Setup src_multibyte and dst_multibyte
2172 members of coding. For decoding, if the buffer is multibyte,
2173 convert the source sequence to unibyte in advance. For encoding,
2174 if the buffer is multibyte, convert the resulting sequence to
2175 multibyte afterward.
2176 (run_pre_post_conversion_on_str): New function.
2177 (code_convert_string): Deleted and divided into the following two.
2178 (decode_coding_string, encode_coding_string): New functions.
2179 (code_convert_string1, code_convert_string_norecord): Call one of
2180 above.
2181 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
2182 MAKE_NON_ASCII_CHAR.
2183 (Fset_terminal_coding_system_internal,
2184 Fset_safe_terminal_coding_system_internal): Setup src_multibyte
2185 and dst_multibyte members.
2186 (init_coding_once): Initialize iso_code_class with new enum
2187 ISO_control_0 and ISO_control_1.
2188
2189 * coding.h (enum iso_code_class_type): Member ISO_control_code is
2190 devided into ISO_control_0 and ISO_control_1.
2191 (struct coding_system): New members src_multibyte, dst_multibyte,
2192 errors, and result. Delete member fake_multibyte.
2193 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
2194 nonzero.
2195 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
2196 nonzero.
2197
2198 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
2199 (Faset): Likewise.
2200
2201 * editfns.c (Fformat): Be sure to convert 8-bit characters to
2202 multibyte form.
2203 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
2204 combining occurs.
2205 (Ftranspose_region): Delete codes for handling byte combining.
2206
2207 * fileio.c (Finsert_file_contents): Setup src_multibyte and
2208 dst_multibyte members of coding. On handling REPLACE on unibyte
2209 buffer, convert the result of decode_coding to unibyte. On
2210 inserting into a mutibyte buffer, always call code_convert_region.
bd4bde7f 2211 (e_write): Setup coding->src_multibyte according to the
c9671f81
KH
2212 multibyteness of the source (buffer or string).
2213
2214 * fns.c (concat): Handle 8-bit characters correctly.
2215 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
2216 unibyte in the result.
2217 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
2218 valid multibyte form in the result.
2219 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
2220 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
2221 return -1, signal an error.
2222 (base64_encode_1): New arg MULTIBYTE. Get each character by
2223 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
2224 character is found, return -1.
2225 (Fbase64_decode_region): Delete codes for handling byte-combining.
2226 Treat each decoded byte as a unibyte character.
2227 (Fbase64_decode_string): Return unibyte string.
2228 (Fcompare_strings, concat, string_byte_to_char): Use
2229 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
2230 FETCH_STRING_CHAR_ADVANCE.
2231 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
2232 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
2233
2234 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
2235 SPLIT_NON_ASCII_CHAR.
2236 (fontset_ref_via_base, fontset_set): Likewise
2237
2238 * insdel.c (adjust_markers_for_record_delete): Deleted.
2239 (adjust_markers_for_insert): Argument changed. Caller changed.
2240 (adjust_markers_for_replace): Likewise.
2241 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error,
2242 CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
2243 (copy_text): Delete unused local varialbe c_save. For converting
2244 to multibyte, be sure to make all 8-bit characters in valid
2245 multibyte form.
2246 (count_size_as_multibyte): Handle 8-bit characters correctly.
2247 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
2248 adjust_after_replace, replace_range, del_range_2)
2249 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
2250 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
2251 adjust_after_replace, replace_range, del_range_2) Delete codes for
2252 handling byte combining.
2253 (adjust_before_replace): Deleted.
427ec082 2254
c9671f81
KH
2255 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
2256 SPLIT_NON_ASCII_CHAR.
2257 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
2258 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE
2259 unconditionally.
2260 (Fkey_description): Likewise.
2261
2262 * lread.c (read1): On reading multibyte string, be sure to make
2263 all 8-bit chararacters in valid multibyte form.
2264 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
2265
2266 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
2267 unconditionally.
2268
2269 * process.c (Fstart_process): GCPRO current_dir before calling
2270 Ffind_operation_coding_system. Encode arguments here.
2271 (create_process): Don't encode arguments here. Setup
2272 src_multibyte and dst_multibyte members of struct coding.
2273 (read_process_output): Setup src_multibyte and dst_multibyte
2274 members of struct coding. If the output is to multibyte buffer,
2275 always decode the output of the process. Adjust the
2276 representation of 8-bit characters to the multibyteness of the
2277 output.
2278 (send_process): Setup coding->src_multibyte according to the
2279 multibyteness of the source.
2280
2281 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE
2282 unconditionally.
2283 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
2284 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
2285
2286 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of
2287 CHAR_LEN.
2288
2289 * w16select.c (Fw16_set_clipboard_data): Setup members
2290 src_multibyte and dst_multibyte of coding. Adjusted for the
2291 change for find_charset_in_str.
2292 (Fw16_get_clipboard_data): Likewise.
2293
2294 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
2295 dst_multibyte of coding.
2296 (x_to_w32_font): Likewise.
2297
2298 * w32select.c (Fw32_set_clipboard_data): Setup members
2299 src_multibyte and dst_multibyte of coding. Adjusted for the
2300 change for find_charset_in_str.
2301 (Fw32_get_clipboard_data): Likewise.
2302
2303 * xdisp.c (get_next_display_element): Handle 8-bit characters
2304 correctly.
2305 (next_element_from_display_vector): Use CHAR_BYTES instead of
2306 CHAR_LEN.
2307 (disp_char_vector): Use SPLIT_CHAR instead of
2308 SPLIT_NON_ASCII_CHAR.
2309
2310 * xselect.c (selection_data_to_lisp_data): Setup members
2311 src_multibyte and dst_multibyte of coding. Adjusted for the
2312 change for find_charset_in_str.
2313 (lisp_data_to_selection_data): Likewise.
2314
5f64c9e0
GM
23152000-05-19 Gerd Moellmann <gerd@gnu.org>
2316
2b63d473
GM
2317 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed
2318 buffer.
2319
5f64c9e0
GM
2320 * dispextern.h (Vimage_types): Add extern declaration.
2321
2322 * xdisp.c (Vimage_types): Moved here from xfns.c.
2323 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
2324
2325 * xfns.c (Vimages_types): Moved to xdisp.c.
2326 (syms_of_xfns): Move `image-types' to xdisp.c.
2327
2328 * w32fns.c (Vimage_types): Removed.
2329 (syms_of_w32fns): Remove `image-types'.
2330
813086ea
KH
23312000-05-18 Kenichi Handa <handa@etl.go.jp>
2332
2333 * fns.c (map_char_table): Pay attention to character number of
2334 charset. Check the validity of charset at the first level. For
2335 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
2336 the default value.
2337
2338 * fontset.c: Include "buffer.h".
2339 (fs_load_font): If the face has fontset, record the face ID in
2340 that fontset.
2341 (Finternal_char_font): New function.
2342 (accumulate_font_info): New function.
2343 (Ffontset_info): Rewritten for the new fontset implementation.
2344 (syms_of_fontset): Register Vdefault_fontset in the first element
2345 of Vfontset_table. Include Vdefault_fontset in
2346 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
2347 function.
2348
bdaebbf0
DL
23492000-05-16 Dave Love <fx@gnu.org>
2350
2351 * m/iris5d.h: Deleted -- unused.
2352
cb613bb8
GM
23532000-05-16 Gerd Moellmann <gerd@gnu.org>
2354
b15f3b77
GM
2355 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
2356 `invalid' instead of `illegal'.
2357
2358 * indent.c (Fmove_to_column): When ending within a tab, insert
2359 spaces first so that markers at the end of the tab get adjusted.
2360
835c1b36
GM
2361 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
2362 buffer list that wasn't selected in that frame.
2363
cb613bb8
GM
2364 * filelock.c (get_boot_time): To obtain an 8 char file name, which
2365 is needed on mescaline, use a 2 char prefix, and call
2366 make_temp_name with second arg non-zero.
2367
2368 * fileio.c (make_temp_name): New function, extracted from
2369 Fmake_temp_name.
2370 (Fmake_temp_name): Use it.
2371
f685bea9
EZ
23722000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
2373
2374 * window.c (coordinates_in_window): Subtract 1 when computing
2375 right_x.
2376
a1b8d58b
GM
23772000-05-15 Gerd Moellmann <gerd@gnu.org>
2378
2379 * Makefile.in (lisp): Add env.elc.
2380
2381 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
2382
a265079f
GM
23832000-05-12 Gerd Moellmann <gerd@gnu.org>
2384
2385 * search.c (Freplace_match): Handle case of `\N' in the
2386 replacement when there's no group N.
2387
da4496b6
GM
23882000-05-11 Gerd Moellmann <gerd@gnu.org>
2389
0ace421a
GM
2390 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
2391 of the message to message_dolog.
2392
1172eb8d
GM
2393 * keyboard.c (read_char): Don't clear current message for help
2394 events; let the code handling help events handle this. Change
2395 code detecting help events that should be ignored.
2396
da4496b6
GM
2397 * xdisp.c (handle_single_display_prop): Don't try to set PT if
2398 we're interating over a string.
2399
0623e40f
DL
24002000-05-09 Dave Love <fx@gnu.org>
2401
2402 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
2403 that offset before writing. Move gcpro region past call of
2404 Ffile_regular_p.
2405
bae2503b
DL
24062000-05-04 Dave Love <fx@gnu.org>
2407
2408 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
2409
ec82fb2f
GM
24102000-05-04 Gerd Moellmann <gerd@gnu.org>
2411
2412 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
2413 of inserted characters when BUF equals the current buffer, and PT
2414 is in front of or equal to FROM.
2415
cbf18892
GM
24162000-05-03 Gerd Moellmann <gerd@gnu.org>
2417
4ff40dd0
GM
2418 * xdisp.c (handle_single_display_prop): If display property value
2419 is invalid, or something not supported on the frame, restore
2420 iterator's position to what it was initially. Make sure to return
2421 0 for invalid and unsupported property values.
2422
cbf18892
GM
2423 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
2424 that x_per_char_metric returns null.
2425
1b0672c3
GM
24262000-05-02 Gerd Moellmann <gerd@gnu.org>
2427
576da55d
GM
2428 * xterm.h (struct face): Add forward declaration.
2429 (struct image): Ditto.
2430 (image_ascent): Add prototype.
2431
2432 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
2433 (x_draw_image_relief, x_draw_image_foreground_1): Call function
2434 image_ascent instead of using IMAGE_ASCENT.
2435
2436 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
2437 (IMAGE_ASCENT): Removed.
2438
2439 * xfns.c (Qcenter): New variable.
2440 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
2441 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
2442 (image_ascent): New function.
2443 (lookup_image): Recognize `:ascent center'.
2444 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
2445 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
2446 (xbm_load): Don't set image's ascent here.
2447 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
2448 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
2449 check ascent values here.
2450 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
2451 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
2452 (syms_of_xfns): Initialize Qcenter.
2453
1b0672c3
GM
2454 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
2455 to the limits, increase the limits.
2456
0d7811ed
KH
24572000-05-01 Kenichi Handa <handa@etl.go.jp>
2458
2459 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
2460 Check Vfont_encoding_alist against the full name of the opened
2461 font.
2462
a943a5ca
GM
24632000-04-28 Gerd Moellmann <gerd@gnu.org>
2464
2465 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
2466 taller than the window.
2467
5dba1e29
KH
24682000-04-28 Kenichi Handa <handa@etl.go.jp>
2469
2470 * xfaces.c (realize_x_face): Fix the argument of the second
2471 xassert. BASE_FACE may not be a face for ASCII.
2472
353964e3
GM
24732000-04-27 Gerd Moellmann <gerd@gnu.org>
2474
c76e04a8
GM
2475 * print.c (print_object): Treat print-length < 0 as nil.
2476
2477 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
2478
2479 * s/freebsd.h (TERMCAP_OBJ): Removed.
2480 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
2481
2482 * lread.c (read1): Don't treat period followed by certain
2483 characters as symbol start.
2484
2485 * xfns.c (slurp_file): New function.
2486 (xbm_image_p): Handle case of in-memory XBM files.
2487 (xbm_scan): Rewritten to work on memory buffers instead of files.
2488 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
2489 Work on memory buffers instead of files. If DATA is null test
2490 if buffer looks like an in-memory XBM file.
2491 (xbm_load_image): Renamed from xbm_load_image_file. Work on
2492 memory buffers instead of files.
2493 (xbm_file_p): New function.
2494 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
2495
353964e3
GM
2496 * lread.c (end_of_file_error): New function.
2497 (read1): Call it instead of signaling `end-of-file' directly.
2498
427ec082 2499 * print.c (print_error_message): Print data of `end-of-file'
353964e3
GM
2500 with Fprinc instead of Fprin1.
2501
24d744ac
KR
25022000-04-26 Ken Raeburn <raeburn@gnu.org>
2503
2504 * window.c (freeze_window_start): Check that minibuffer scroll
2505 window isn't nil before extracting the window structure pointer
2506 from it.
2507
2508 * undo.c (record_delete): If we hit the end of the undo list, stop
2509 picking elements apart.
2510
7464346d
GM
25112000-04-26 Gerd Moellmann <gerd@gnu.org>
2512
2513 * xdisp.c (display_line): If lines are continued, restore
2514 iterator's ascent/descent information to the values before the
2515 first glyph not fitting on the line.
2516
612839b6
GM
25172000-04-25 Gerd Moellmann <gerd@gnu.org>
2518
2519 * xdisp.c (try_window_id) <all changes above window start>: Adjust
2520 positions in glyph matrix. Don't compute new window end
2521 positions.
2522
2523 * dispnew.c (increment_matrix_positions): Renamed from
2524 increment_glyph_matrix_buffer_positions.
2525 (increment_row_positions): Renamed from
2526 increment_glyph_row_buffer_positions.
2527
2528 * dispextern.h: Change names of renamed functions from dispnew.c
2529 in prototypes.
2530
cc181e95
GM
25312000-04-24 Gerd Moellmann <gerd@gnu.org>
2532
abfcc168
GM
2533 * fileio.c (Fdo_auto_save): Create directories for auto-save
2534 list file if necessary.
2535
cc181e95
GM
2536 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
2537 from buffer or frame.
2538 (automatic_hscrolling_p): New variable.
2539 (hscroll_windows): Scroll windows horizontally only if automatic
2540 hscrolling is allowed.
2541 (syms_of_xdisp): New variable `automatic-hscrolling'.
2542
2543 * frame.h (struct frame): Add member extra_line_spacing.
2544
2545 * xfns.c (x_set_line_spacing): New function.
2546 (Fx_create_frame): Set line spacing from resources.
2547 (Qline_spacing): New variable.
2548 (syms_of_xfns): Initialize Qline_spacing.
427ec082 2549
cc181e95
GM
2550 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
2551
2552 * buffer.c (init_buffer_once): Handle extra_line_spacing.
2553 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
abfcc168 2554 (reset_buffer): Don't initialize extra2 and extra3. Initialize
cc181e95
GM
2555 extra_line_spacing from default value.
2556 (init_buffer_once): Initialize default value of extra_line_spacing.
2557
2558 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
2559 and extra3.
2560
2561 * xterm.c (x_produce_glyphs): Remove reference to struct it's
2562 prompt_width. Add extra line spacing.
2563
2564 * term.c (produce_glyphs): Remove reference to struct it's
2565 prompt_width.
2566
2567 * dispextern.h (struct it): Remove member prompt_width, add
2568 extra_line_spacing.
2569
58827478
GM
25702000-04-22 Gerd Moellmann <gerd@gnu.org>
2571
2572 * dispnew.c (update_frame_line): When writing a whole line, make
2573 sure cursor is in the right row afterwards, otherwise a use of
2574 capability `ch' in cmgoto might leave the cursor in the row below.
2575
25a87f42
GM
25762000-04-21 Gerd Moellmann <gerd@gnu.org>
2577
2578 * lisp.h (struct Lisp_Buffer_Cons): Remove.
2579
2580 * keyboard.c (timer_check): Fix typo in comment.
2581
54edf5c2
KH
25822000-04-21 Kenichi Handa <handa@etl.go.jp>
2583
2584 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
2585 name change: ch -> character.
2586
3a64eef5
GM
25872000-04-20 Gerd Moellmann <gerd@gnu.org>
2588
2589 * keyboard.c (echo_message_buffer): New variable.
2590 (echo_now): Set echo_message_buffer to the echo area buffer used
2591 to display the echo.
2592 (cancel_echoing): Reset echo_message_buffer to nil.
2593 (read_char): Code rewritten that handles canceling an echo or
2594 echoing a dash, respectively.
2595
2596 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
2597 directory doesn't exist.
2598
6142fdcb
DL
25992000-04-19 Dave Love <fx@gnu.org>
2600
2601 * fns.c (syms_of_fns): Defsubr mapc.
a9cacab7
DL
2602 (concat): Don't allow numeric args.
2603 (Fconcat): Doc change.
6142fdcb 2604
ac6b5352
SM
26052000-04-19 Stefan Monnier <monnier@cs.yale.edu>
2606
2607 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
2608 instead define end_match(1|2) more carefully.
2609 Use GET_CHAR_BEFORE_2 for `begline'.
2610
cb9215e4
GM
26112000-04-19 Gerd Moellmann <gerd@gnu.org>
2612
5e3dac3f
GM
2613 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
2614 on 64-bit systems where NULL is defined as `0'.
2615
2616 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
2617 the `variable argument list' to make it work on Alpha.
2618
cb9215e4
GM
2619 * m/alpha.h (_LP64) [!_LP64]: Define.
2620 (ORDINARY_LINK): Define for NetBSD.
2621
2622 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
427ec082 2623
f532dca0
DL
26242000-04-19 Dave Love <fx@gnu.org>
2625
c750667e
DL
2626 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
2627 change.
2628
2629 * Makefile.in (LIBS): Don't use.
2630 (GETLOADAVG_OBJ): Define again.
2631 (otherobj): Add GETLOADAVG_OBJ.
2632
f532dca0
DL
2633 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
2634
1c7e22fd
GM
26352000-04-18 Gerd Moellmann <gerd@gnu.org>
2636
f6d3257b
GM
2637 * lread.c (read_filtered_event): Cancel and start busy cursor.
2638
427ec082 2639 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
1c7e22fd
GM
2640 that the per-character metrics may be null.
2641
e10f64e7
GM
26422000-04-17 Gerd Moellmann <gerd@gnu.org>
2643
0daee095
GM
2644 * buffer.c (clone_per_buffer_values): New function.
2645 (Fmake_indirect_buffer): Add optional argument CLONE. Call
2646 clone_per_buffer_values if CLONE is not nil.
2647
e10f64e7
GM
2648 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
2649
38687d43
DL
26502000-04-16 Dave Love <fx@gnu.org>
2651
2652 * Makefile.in: Remove obsolete localcpp stuff.
2653 (GETLOADAVG_OBJ): Don't define.
2654 (obj): Move LIBOBJS...
2655 (otherobj): ... to here.
2656 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
2657 whitespace-only lines after the continuation (Irix).
2658
c21c7262
GM
26592000-04-14 Gerd Moellmann <gerd@gnu.org>
2660
2661 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
2662
2663 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
2664
314767c0
DL
26652000-04-14 Dave Love <fx@gnu.org>
2666
2667 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
2668 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
2669 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
2670 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
2671 NLIST_STRUCT.
2672
2673 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
2674 autoconfiscated HAVE_GETLOADAVG.
2675
2676 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
2677 BROKEN_MKTIME.
2678
a2522dca
GM
26792000-04-14 Gerd Moellmann <gerd@gnu.org>
2680
2681 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
2682 (fill_in_lock_file_name): Avoid existing files that aren't
2683 links.
2684
33744b5d
DL
26852000-04-14 Dave Love <fx@gnu.org>
2686
c21c7262 2687 * Makefile.in (LIBS, LIBOBJS): New variable.
33744b5d
DL
2688 (INTERVAL_SRC): Convert to make variable.
2689 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
2690 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
2691 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
2692 add LIBOBJS.
2693 (SOME_MACHINE_OBJECTS): Remove interval stuff.
2694 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
2695 (shortlisp): Add facemenu, float-sup, frame.
2696 (SOME_MACHINE_LISP): Remove them from here.
2697 (LIBES): Change unused LDLIBS to autoconf LIBS.
2698
2699 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
2700
9d3d5916
KH
27012000-04-14 Kenichi Handa <handa@etl.go.jp>
2702
2703 * composite.c (update_compositions): If FROM and TO are not in a
2704 valid range, do nothing.
2705
198e3c7a
GM
27062000-04-13 Gerd Moellmann <gerd@gnu.org>
2707
2708 * tparam.c (tparam1): Abort when encountering an unknown
2709 `%'-specifier.
2710
2711 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as
2712 terminfo.o.
2713
2714 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
2715 as TERMCAP_OBJ.
2716
055a28c9
EZ
27172000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
2718
2719 * fileio.c (a_write): Remove redundant semi-colons.
2720 (e_write): Return -1 if failed to write all the data.
2721 This fixes the changes made at 1999-12-15.
2722
f5c75033
DL
27232000-04-12 Dave Love <fx@gnu.org>
2724
2725 * fns.c (mapcar1): Test for null vals to support mapc.
2726 (Fmapc): New function.
2727
0c3cfc51
EZ
27282000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
2729
2730 * msdos.c (NUM_MOUSE_BUTTONS): Define.
2731 (IT_frame_up_to_date): Support the buffer local value of
2732 cursor-type, if defined.
2733
33465a31
DL
27342000-04-10 Dave Love <fx@gnu.org>
2735
2736 * editfns.c (preceding-char, following-char): Doc fix.
2737
6ed56568
KR
27382000-04-10 Ken Raeburn <raeburn@gnu.org>
2739
2740 * Makefile.in (temacs): Revert 2000-03-12 change.
2741
7cf80d4e
JR
27422000-04-10 Jason Rumney <jasonr@gnu.org>
2743
2744 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
2745
34f3f342
GM
27462000-04-10 Gerd Moellmann <gerd@gnu.org>
2747
1a1b1895
GM
2748 * xdisp.c (setup_echo_area_for_printing): Choose an echo
2749 area buffer, if it's not set up yet.
2750
34f3f342
GM
2751 * indent.c (compute_motion): Set immediate_quit.
2752
be0dbdab
GM
27532000-04-09 Gerd Moellmann <gerd@gnu.org>
2754
c45be9ac
GM
2755 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New
2756 variable.
2757 (realize_tty_face): Suppress boldness if colors are the inverse of
2758 the default colors, and tty_suppress_bold_inverse_default_colors_p
2759 is set.
2760 (Ftty_suppress_bold_inverse_default_colors): New function.
2761 (syms_of_xfaces): Defsubr it.
2762
be0dbdab
GM
2763 * buffer.c (Frestore_buffer_modified_p): New function.
2764 (syms_of_buffer): Defsubr it.
2765
e8413c3b
KR
27662000-04-08 Ken Raeburn <raeburn@gnu.org>
2767
87f67317
KR
2768 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
2769 charset id (int) argument, not a charset (Lisp_Object).
2770
e8413c3b
KR
2771 * coding.h (code_convert_string): Declare.
2772 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
2773 object, as the fourth argument to code_convert_string.
2774
2775 * fontset.c (make_fontset_for_ascii_face): Use XINT on return
2776 value.
2777 (Fset_fontset_font): Use EQ to compare lisp objects.
2778
7c752c80
KR
27792000-04-05 Ken Raeburn <raeburn@gnu.org>
2780
c0333abc
KR
2781 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
2782 a pointer that looks like a lisp object.
2783 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
2784 zero, instead see whether it's an integer object, since they can't
2785 have intervals.
2786 (GET_INTERVAL_OBJECT): Simply assign to the destination.
2787
7c752c80
KR
2788 * dispnew.c (allocate_matrices_for_frame_redisplay,
2789 direct_output_forward_char): Use X(U)INT and make_number as needed
2790 to convert between (unsigned) int values and lisp integers.
2791 * keyboard.c (read_key_sequence): Likewise.
2792 * lread.c (substitute_object_recurse): Likewise.
2793 * fns.c (concat, hash_lookup, hash_remove): Likewise.
2794 * minibuf.c (do_completion, Fminibuffer_complete_word,
2795 Fminibuffer_completion_help): Likewise.
2796 * term.c (produce_special_glyphs): Likewise.
2797
2798 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
2799 * print.c (print_preprocess, print_object): Likewise.
2800
2801 * search.c (compile_pattern): Use NILP when checking for nil.
2802
74e49b38
KR
2803 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
2804 __OPTIMIZE__]: Provide a GNU C macro version that handles
2805 lisp-object unions.
2806 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
2807 field, to better cope with ENABLE_CHECKING and calls that modify a
2808 Lisp_Object using its old value.
2809
685e5ed2
GM
28102000-04-04 Gerd Moellmann <gerd@gnu.org>
2811
c407c570
GM
2812 * window.c (compare_window_configurations): Signal an error
2813 if parameters C1 or C2 aren't window configurations.
2814
685e5ed2
GM
2815 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
2816 AFTER_POTENTIAL_GC calls around calls to functions that can
2817 signal an error and thus invoke the debugger.
2818
587a49ab
GM
28192000-04-03 Gerd Moellmann <gerd@gnu.org>
2820
62f20204
GM
2821 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
2822 an error if decoding fails.
2823
587a49ab
GM
2824 * keyboard.c (lispy_mouse_names): Variable removed.
2825 (Vlispy_mouse_stem): New variable.
2826 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
2827 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
2828 for any mouse button number. Increase size of mouse_syms and
2829 button_down_location as needed. Call modify_event_symbol with
2830 different arguments.
2831 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
2832 Call modify_event_symbol with different arguments.
2833 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
2834 for any button number. Call modify_event_symbol with different
2835 arguments.
2836 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
2837 Accept a string for NAME_ALIST_OR_STEM.
2838
2839 * lisp.h (larger_vector): Add prototype.
2840
2841 * fns.c (larger_vector): Make externally visible.
2842
2843 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
2844
2d1675e4
SM
28452000-04-02 Stefan Monnier <monnier@cs.yale.edu>
2846
2847 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
2848 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
2849 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
2850 we are between str1 and str2.
2851 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
2852 (PATFETCH): Use `TRANSLATE'.
2853 (PATFETCH_RAW): Fetch multibyte char if applicable.
2854 (PATUNFETCH): Remove.
2855 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
2856 When writing a char, write it directly into the pattern buffer rather
2857 than going needlessly through a temp char-array.
2858 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
2859 multibyte magic and remove the useless `#ifdef emacs'.
2860 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
2861 buffer.
2862
2863 * regex.h (struct re_pattern_buffer): Make field `multibyte'
2864 conditional on `emacs'.
2865
2866 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
2867
cc2d8c6b
KR
28682000-04-01 Ken Raeburn <raeburn@gnu.org>
2869
2870 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
2871 non-union-type versions of XMARK and friends here, because XMARK
2872 and friends won't work on an integer field if NO_UNION_TYPE is not
2873 defined.
2874 (make_number): Define as a function if it's not defined as a
2875 macro.
2876
09654086
KR
2877 * composite.c (run_composite_function): Use NILP when checking for
2878 nil.
2879 (syms_of_composite): Delete local var NARGS, pass an int as first
2880 argument to Fmake_hash_table.
2881
2387b382
KR
2882 * editfns.c (text_property_stickiness): Use NILP to test
2883 Lisp_Object boolean value.
2884 (Fmessage_or_box): Don't use NILP to test int variable.
c01fbf95
KR
2885 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
2886 problems reading from and changing the same lisp value in an
2887 XSETSTRING call.
2888
27660e89
GM
28892000-04-01 Gerd Moellmann <gerd@gnu.org>
2890
2891 * term.c (TN_no_color_video): New variable.
2892 (term_init): Intitialize TN_no_color_video.
2893 (enum no_color_bit): New enumeration.
2894 (MAY_USE_WITH_COLORS_P): New macro.
2895 (turn_on_face): Use it to determine if attributes may be used
2896 combined with colors.
2897
3578db3c
KR
28982000-04-01 Ken Raeburn <raeburn@gnu.org>
2899
2900 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
2901 with int lvalues via casts; instead, just yield lisp object
2902 lvalues.
2903 (enlarge_window): Variable sizep now points to Lisp_Object. Use
2904 proper accessor macros.
2905 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
2906 (grow_mini_window): Fix typo getting int value of root->height.
2907
6fc556fd
KR
2908 * xdisp.c (compute_string_pos): Fix order of arguments to
2909 string_pos_nchars_ahead.
2910 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
2911 count arg to variable-arg routines like Frun_hook_with_args and
2912 Fformat.
587a49ab
GM
2913 (back_to_previous_visible_line_start)
2914 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
6fc556fd
KR
2915 fixed-arg routines like Fget_char_property and Fmake_string.
2916 (reconsider_clip_changes): Use XINT when comparing integer lisp
2917 objects, or passing them as int arguments.
587a49ab
GM
2918 (mark_window_display_accurate, insert_left_trunc_glyphs)
2919 (append_space, extend_face_to_end_of_line): Use make_number when
6fc556fd
KR
2920 storing or passing integer values as lisp objects.
2921 (set_cursor_from_row, highlight_trailing_whitespace): Use
2922 INTEGERP, not implicit test against zero, for glyph object.
2923 (try_window_id): Don't use make_number when we want an int value.
2924
2925 * xfaces.c (xlfd_symbolic_value): Make last argument a
2926 Lisp_Object, to be consistent with callers.
2927 (Fbitmap_spec_p): Use XINT to get numeric value of height.
2928 (lface_hash): Apply XFASTINT to lisp values before folding in.
2929
2930 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
2931 fill in window width and height. Pass an int, not a lisp object,
2932 as first arg to Finsert.
2933
6e7b2457
GM
29342000-04-01 Gerd Moellmann <gerd@gnu.org>
2935
610d841e
GM
2936 * xfaces.c (realize_basic_faces): Block input while realizing
2937 the faces.
2938
6e7b2457
GM
2939 * keyboard.c (lispy_mouse_names): Add additional mouse names.
2940
2941 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
2942
aa110c0c
GM
29432000-03-31 Gerd Moellmann <gerd@gnu.org>
2944
2945 * xterm.c (x_produce_glyphs): When displaying unibyte text
610d841e 2946 or ASCII, handle case that per-char metric is null.
aa110c0c 2947
8801a864
KR
29482000-03-30 Ken Raeburn <raeburn@gnu.org>
2949
c6129d7e
KR
2950 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
2951
8801a864
KR
2952 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW,
2953 XSUBR, XBUFFER): Verify correct object type before returning
2954 pointer, using eassert.
2955 * frame.h (XFRAME): Likewise.
2956
2957 * buffer.c (Frename_buffer, Fset_buffer_multibyte,
2958 swap_out_buffer_local_variables, Fmove_overlay): Don't apply
2959 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong
2960 type.
2961 * data.c (set_internal): Likewise.
2962 * dispextern.h (WINDOW_WANTS_MODELINE_P,
2963 WINDOW_WANTS_HEADER_LINE_P): Likewise.
2964 * fileio.c (auto_save_1): Likewise.
2965 * insdel.c (check_markers): Likewise.
2966 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
2967 * undo.c (record_insert): Likewise.
2968 * vmsproc.c (child_sig): Likewise.
2969 * window.c (unshow_buffer, window_loop): Likewise.
2970 * xterm.c (x_erase_phys_cursor): Likewise.
2971
8e7af858
GM
29722000-03-30 Gerd Moellmann <gerd@gnu.org>
2973
2974 * xfns.c (free_image_cache): Free the cache structure itself
2975 last, after all its members have been freed.
2976
2977 * lisp.h (xstrdup): Add prototype.
2978
2979 * alloc.c (xstrdup): Moved here from xfaces.c.
2980 (allocating_for_lisp): Variable removed.
2981 (lisp_malloc): Block input around the calls to malloc and
2982 mem_insert.
2983
2984 * xfaces.c (realize_tty_face): Use find_symbol_value instead
2985 of Fsymbol_value.
2986 (xstrdup): Moved to alloc.c.
2987
e0b8c689
KR
29882000-03-29 Ken Raeburn <raeburn@gnu.org>
2989
b96f9fb7
KR
2990 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
2991
2992 * emacs.c (main): Fix sense of no-loadup test.
2993
e0b8c689
KR
2994 * config.in (ENABLE_CHECKING): Undef.
2995
2996 * lisp.h (struct interval): Replace "parent" field with a union of
2997 interval pointer and Lisp_Object; add new bitfield to use as
2998 discriminant. Change other flag fields to bitfields.
2999 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
3000 is defined and the supplied test fails, print a message and
3001 abort.
3002 (eassert): New macro. Use CHECK to provide an assert-like
3003 facility.
3004
3005 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
3006 pointers; abort if the value looks like a lisp object.
3007 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT,
3008 SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
3009 Modify for new interval parent definition.
3010
3011 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE,
3012 UNMARK_BALANCE_INTERVALS): Update references that need an
3013 addressable lisp object in the interval structure.
3014 (die): New function.
3015 (suppress_checking): New variable.
3016
3017 * intervals.c (interval_start_pos): Just return 0 if there's no
3018 parent object.
3019
f83c5440
GM
30202000-03-29 Gerd Moellmann <gerd@gnu.org>
3021
3022 * lread.c (read1): Accept `.' (period) as symbol start like in CL
3023 and earlier Emacs versions.
3024
3025 * keyboard.c (Ftop_level): Cancel busy-cursor.
3026
3027 * eval.c (call_debugger): Cancel busy-cursor.
3028
fdce64ff
KH
30292000-03-29 Kenichi Handa <handa@etl.go.jp>
3030
3031 * search.c (Freplace_match): Adjust multibyteness of the current
3032 buffer and NEWTEXT. Free allocated memory before signaling an
3033 error.
3034
f6a3f532
SM
30352000-03-28 Stefan Monnier <monnier@cs.yale.edu>
3036
3037 * regex.c (analyse_first): New function obtained by ripping out most
3038 of re_compile_fastmap and generalizing it a little bit so that it
3039 can also just return whether a given (sub)pattern can match the empty
3040 string or not.
3041 (regex_compile): Use `analyse_first' to decide whether the loop-check
3042 needs to be done or not for *, +, *? and +? (the loop check is costly
3043 for non-greedy repetition).
3044 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
3045
e9b309ac
DL
30462000-03-28 Dave Love <fx@gnu.org>
3047
bb15bd9a
DL
3048 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k,
3049 alpha.
3050
e9b309ac
DL
3051 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
3052
ed0767d8
SM
30532000-03-27 Stefan Monnier <monnier@cs.yale.edu>
3054
3055 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
3056 an expression.
3057 (enum re_opcode_t): Update description of succeed_n.
3058 (PATFETCH): Always define.
3059 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
3060 operators, char classes, shy-groups and intervals).
3061 Optimize special cases of intervals so as to only use succeed_n and
3062 jump_n when really needed.
3063 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
3064 that we don't have to handle the special cases any more.
3065 Simplify on_failure_jump handling as well.
3066
e11e7e46
JR
30672000-03-28 Jason Rumney <jasonr@gnu.org>
3068
3069 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
3070
88faab89
GM
30712000-03-27 Gerd Moellmann <gerd@gnu.org>
3072
182ff242
GM
3073 * s/freebsd.h (GC_SETJMP_WORKS): Define.
3074
3075 * s/msdos.h (GC_SETJMP_WORKS): Define.
427ec082 3076
182ff242
GM
3077 * alloc.c (mark_maybe_object): New function.
3078 (mark_memory): Use it.
3079 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
3080 (setjmp_tested_p, longjmp_done): New variables.
3081 (test_setjmp): New function.
3082 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
3083 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
3084
c1005d06
GM
3085 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
3086 to DEC_TEXT_POS and INC_TEXT_POS.
3087
3088 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
3089 with parameter MULTIBYTE_P.
3090
427ec082 3091 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter
c1005d06
GM
3092 MULTIBYTE_P.
3093
7439e5b9 3094 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
182ff242
GM
3095 buffers because it looks for multibyte character byte sequences
3096 which don't exist in unibyte text.
7439e5b9 3097
d9c545da
GM
3098 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
3099
11fd416e 3100 * xfaces.c (register_color, unregister_color, unregister_colors)
d9c545da
GM
3101 [DEBUG_X_COLORS]: New functions.
3102 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
3103
3104 * xfns.c (x_set_cursor_color): Get color reference counts right.
3105
3106 * xterm.c (x_copy_color): New function.
3107 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
3108
3109 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
3110 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
3111 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
3112 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
3113 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
3114 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
3115 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
3116 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
3117 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
3118 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
3119
11fd416e
GM
3120 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
3121 names for handling per-buffer variables.
d9c545da
GM
3122
3123 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
3124 instead of MAX_BUFFER_LOCAL_VARS.
3125 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
3126
3127 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
3128
88faab89
GM
3129 * xfns.c (x_specified_cursor_type): New function.
3130 (x_set_cursor_type): Use it.
3131
3132 * buffer.h (struct buffer): Add cursor_type.
3133
d80f42b7
SM
31342000-03-26 Stefan Monnier <monnier@cs.yale.edu>
3135
3136 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
427ec082 3137 (print_partial_compiled_pattern, re_compile_fastmap): Handle new
88faab89 3138 opcode.
d80f42b7
SM
3139 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
3140 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
3141 executing it as well as when popping it off the stack to find infinite
3142 loops in non-greedy repetition operators.
3143
89e80928
GM
31442000-03-26 Gerd Moellmann <gerd@gnu.org>
3145
3d4ff2dd
GM
3146 * doc.c (Qfunction_documentation): New variable.
3147 (syms_of_doc): Initialize Qfunction_documentation.
3148 (Fdocumentation): If FUNCTION is a symbol with non-nil
3149 `function-documentation' property, return a documentation derived
3150 from that.
3151
bd96bd79
GM
3152 * buffer.c (syms_of_buffer): Add default-cursor-type.
3153 (init_buffer_once): Don't let cursor_type have a local value
3154 in every buffer.
3155
19d1bc27
GM
3156 * xterm.c (x_display_and_set_cursor): Choose cursor depending
3157 on buffer-local value of cursor_type.
3158 (x_draw_bar_cursor): Add parameter WIDTH.
3159
3160 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
3161 (init_buffer_once): Set default cursor_type value to t.
3162 Mark cursor_type as local everywhere.
3163 (syms_of_buffer): New per-buffer variable cursor-type.
3164
89e80928
GM
3165 * buffer.h (struct buffer): Remove member local_var_flags,
3166 add local_flags.
3167 (MAX_BUFFER_LOCAL_VARS): New macro.
3168 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
3169 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
3170 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
3171 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
3172
3173 * print.c (print_object): Use new macros for per-buffer
3174 variables.
3175
3176 * category.c (Fset_category_table): Use new macros for per-buffer
3177 variables.
3178
3179 * buffer.c (buffer_permanent_local_flags): Make a char array.
3180 (max_buffer_local_idx): New variable.
3181 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
3182 for new handling of per-buffer variables.
3183 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
3184 (init_buffer_once): Initialize per-buffer vars differently.
3185 Set max_buffer_local_idx.
3186
3187 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
3188 variables.
3189
3190 * lread.c (defvar_per_buffer): Use new macros for per-buffer
3191 variables.
3192
3193 * data.c (do_symval_forwarding, store_symval_forwarding)
3194 (find_symbol_value, set_internal, default_value, Fset_default)
3195 (Fkill_local_variable, Flocal_variable_p): Use new macros for
3196 per-buffer variables.
3197
3198 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
3199
9a0dd3dc
GM
32002000-03-24 Gerd Moellmann <gerd@gnu.org>
3201
b68c375f
GM
3202 * xterm.c (x_term_init): Unblock input around call1 of
3203 Qvendor_specific_keysyms.
3204
9a0dd3dc
GM
3205 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
3206 (find_defun_start): Consider an open parenthesis in column 0
3207 a defun start only if open_paren_in_column_0_is_defun_start is set.
3208 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
3209
7973e637
SM
32102000-03-24 Stefan Monnier <monnier@cs.yale.edu>
3211
3212 * eval.c (Fautoload): Add entry in load-history (if after dump).
3213 * lread.c (load-history): Update docstring.
3214
39210e90
GM
32152000-03-24 Gerd Moellmann <gerd@gnu.org>
3216
3217 * indent.c (Fvertical_motion): Always use the current buffer.
3218 Temporarily change the window's buffer, if necessary.
3219
72db3ab5
GM
32202000-03-23 Gerd Moellmann <gerd@gnu.org>
3221
3222 * xterm.c (fast_find_position): Make sure not to consider rows
3223 not visible in the window.
3224
990b2375
SM
32252000-03-22 Stefan Monnier <monnier@cs.yale.edu>
3226
3227 * regex.c (enum syntaxcode): Provide default for non-Emacs.
3228 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
3229
ff4df011
JR
32302000-03-22 Jason Rumney <jasonr@gnu.org>
3231
3232 * w32menu.c (single_submenu): Set help string to NULL if none.
3233 (w32_menu_show): Set help string correctly.
3234 (add-menu-item): Set help string in MIIM_DATA for menu item.
3235 Load SetMenuItemInfoA explicitly.
3236 (w32_menu_display_help): New function.
427ec082 3237
ff4df011
JR
3238 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
3239 (QCdata): Moved to xdisp.c.
3240
3241 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
3242 (Vw32_charset_to_codepage_alist): Removed.
3243 (Vw32_charset_info_alist): New variable.
3244 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312,
3245 chinesebig5, oem, easteurope, turkish, baltic, russian, arabic,
3246 greek, hebrew, thai, johab, mac, unicode]): New symbols.
3247 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
3248 with TODO comment.
3249 (w32_codepage_for_font): Use Vw32_charset_info_alist.
3250 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
3251 Define Vw32_charset_info_alist and w32_charset symbols.
3252
32532000-03-22 Jason Rumney <jasonr@gnu.org>
3254
3255 * makefile.nt (w32bdf.obj): Update dependencies.
3256
3257 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
3258
3259 * w32fns.c: Include fontset.h after dispextern.h.
3260 (Fx_create_frame): Do not create fontset.
3261 (w32_load_system_font): Doc fix.
3262 (Fx_close_connection): Free full_name if it is not shared.
3263
3264 * w32term.c: Include fontset.h after dispextern.h.
3265 (x_get_glyph_face_and_encoding): New parameter two_byte_p. Callers
3266 updated.
3267 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
3268 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
3269 (w32_font_is_double_byte): New function, needs body.
3270 (x_append_glyph): Set glyph->glyph_not_available_p.
3271 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
3272 it->charset. If it->multibyte_p is zero and it->c is a multibyte
3273 character, convert it to a unibyte character.
3274 (struct glyph_string): Delete member `charset'.
3275 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
3276 calculating it is found.
3277 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
3278 the case that per char metric is not available correctly.
3279 (x_fill_glyph_string): Handle the case that the specific glyph is
3280 not available correctly.
3281 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
3282 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
3283 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
3284 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
3285 fontset. Don't call FS_LOAD_FONT.
3286
439d5cb4
KR
32872000-03-22 Ken Raeburn <raeburn@gnu.org>
3288
3289 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
3290 (INT_LISPLIKE): New macro.
3291 (NULL_INTERVAL_P): Use it.
3292 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT,
3293 SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT,
3294 GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
3295
3296 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
3297 explicit references to "parent" field of struct interval and
3298 associated unclean type conversions.
3299 * intervals.c (create_root_interval, root_interval, rotate_right,
3300 rotate_left, balance_possible_root_interval, split_interval_right,
3301 split_interval_left, interval_start_pos, find_interval,
3302 next_interval, previous_interval, update_interval,
3303 adjust_intervals_for_insertion, delete_node, delete_interval,
3304 adjust_intervals_for_deletion, merge_interval_right,
3305 merge_interval_left, reproduce_tree, graft_intervals_into_buffer,
3306 copy_intervals_to_string): Likewise.
3307 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
3308 Likewise.
3309 * syntax.c (update_syntax_table): Likewise.
3310
3311 * intervals.c (reproduce_tree_obj): New function, like
3312 reproduce_tree but takes a Lisp_Object for the parent. Declare
3313 with prototype.
3314 (graft_intervals_into_buffer): Use it when appropriate.
3315 (reproduce_tree): Declare with prototype.
3316 (balance_possible_root_interval): Check that the parent is a lisp
3317 object before trying to examine its type.
3318
ee1c5b21
GM
33192000-03-22 Gerd Moellmann <gerd@gnu.org>
3320
3321 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
3322 as strings only if both are known to be strings.
3323
3324 * s/openbsd.h (LIBS_TERMCAP): Undef.
3325
1fb352e0
SM
33262000-03-21 Stefan Monnier <monnier@cs.yale.edu>
3327
3328 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
3329 definitions for non-Emacs compilation.
3330 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
3331 outside of `#ifdef emacs'.
3332 (print_partial_compiled_pattern): Update.
3333 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
3334 (re_compile_fastmap): Merge handling of charset and charset_not (for
3335 emacs and non-emacs compilation as well).
3336 Similarly for (not)categoryspec and (not)syntaxspec.
3337 Don't use the fastmap when reaching `anychar' since the added
3338 complexity is not justified.
3339 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
3340 and (not)syntaxspec. Merge (not)categoryspec.
3341
fdaa1f77
KH
33422000-03-22 Kenichi Handa <handa@etl.go.jp>
3343
ff1a0d8e
KH
3344 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P,
3345 FACE_FOR_CHAR): Define them differently for the configuration of
3346 --without-x.
fdaa1f77 3347
d152fb46
DL
33482000-03-21 Dave Love <fx@gnu.org>
3349
3350 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
3351 doc string.
3352
d2cafc8c
GM
33532000-03-21 Gerd Moellmann <gerd@gnu.org>
3354
3355 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
3356 (lface_fully_specified_p): Don't check contents of
3357 LFACE_FONT_INDEX because that attribute is optional.
3358 (realize_x_face): Remove now unwarranted xassert.
3359
9111d4b5
KH
33602000-03-21 Kenichi HANDA <handa@etl.go.jp>
3361
3362 The following changes are to make font selection based on
3363 characters, not charset. In addition, they recover fontset
3364 facilities while utilizing the new font selection mechanism.
3365
6c4bfdc0
KH
3366 * Makefile.in (fontset.o): Depend on dispextern.h.
3367
3368 * alloc.c (mark_face_cache): Don't mark face->registry.
3369
9111d4b5
KH
3370 * dispextern.h (struct glyph): New member glyph_not_available_p.
3371 Use 22 bits for face_id.
3372 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
3373 (struct face): Delete member registry, new member ascii_face.
3374 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
3375 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
3376 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
3377 (struct it): Delete member charset, new member
3378 glyph_not_available_p.
3379
3380 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
3381 (struct fontset_info, struct fontset_data): Structs removed.
3382 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset,
3383 Vglobale_fontset_alist, font_idx_temp): Externs removed.
3384 (fs_load_font, fs_query_fontset): Adjusted for new argument.
3385 (fs_free_face_fontset, fontset_font_pattern,
3386 face_suitable_for_char_p, face_for_char,
3387 make_fontset_for_ascii_face): Extern them.
3388 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
3389 (FS_LOAD_FACE_FONT): New macro.
3390
3391 * fontset.c: All codes rewritten or adjusted for the change of
3392 fontset implementation. Now fontset is represented by char table.
3393 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl): Variables
3394 removed.
3395 (my_strcasecmp): Function removed.
3396 (Vfontset_table, next_fontset_id, Vdefault_fontset): New
3397 variables.
3398 (AREF, ASIZE): New macros.
3399 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME,
3400 FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF,
3401 FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
3402 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset,
3403 fontset_id_valid_p, font_family_registry, fontset_name,
3404 fontset_ascii, free_face_fontset, face_suitable_for_char_p,
3405 face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
3406 New functions.
3407 (fs_load_font): New arg FACE. Caller changed.
3408 (fs_query_fontset): Argument changed. Caller changed.
3409 (Fquery_fontset): call fs_query_fontset.
3410 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
3411 Functions removed.
3412 (clear_fontset_elements, check_registry_encoding,
3413 check_fontset_name): New functions.
3414 (syms_of_fontset): Set char-table-extra-slots property of fontset
3415 to 3. Staticpro and initialize Vfontset_table and
3416 Vdefault_fontset. Defsubr fontset_font and fontset_list.
3417
3418 * frame.h (struct frame): Member `fontset_data' removed.
3419 (FRAME_FONTSET_DATA): Macro removed.
3420
3421 * frame.c (make_frame): Don't allocate f->fontset_data.
3422 (Fdelete_frame): Don't free f->fontset_data.
3423
6c4bfdc0
KH
3424 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
3425
9111d4b5
KH
3426 * xdisp.c (charset_at_position): Function removed.
3427 (init_iterator): Don't set member charset of struct `it'.
3428 (handle_face_prop, reseat_to_string, set_iterator_to_next,
3429 next_element_from_display_vector, insert_left_trunc_glyphs):
3430 Likewise.
3431 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
3432 FACE_FOR_CHARSET.
3433 (get_next_display_element, append_space,
3434 extend_face_to_end_of_line): Likewise.
3435
3436 * xfaces.c (Qx_charset_registry, Vface_default_registry):
3437 Variables removed.
3438 (clear_font_table, frame_update_line_height, load_face_font):
3439 Adjusted for the change of fontset implementation.
3440 (load_face_fontset_font): Function removed.
3441 (pixel_point_size): New function.
3442 (font_list): Argument type changed. Caller changed.
3443 (LFACE_FONT): New macro.
3444 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
3445 (set_lface_from_font_name): Type of arg FONTNAME is changed to
3446 Lisp_Object. Determine the font name by actually loading a font
3447 by the specified pattern. Set LFACE_FONT (lface) to the specified
3448 pattern. Even if a font is not found, don't try alternatives.
3449 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
3450 (set_font_frame_param): If `font' is specified in lface, use it.
3451 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
3452 (lface_same_font_attributes_p): Likewise.
3453 (make_realized_face): Arguent changed. Caller changed. Set
3454 face->ascii_face to face itself.
3455 (free_realized_face): Free face->fontset if face is for ASCII.
3456 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p,
3457 deduce_unibyte_registry, x_charset_registry): Functions removed.
3458 (free_realized_multibyte_face): New function.
3459 (lookup_face, lookup_named_face, lookup_derived_face): Argument
3460 changed. Caller changed.
3461 (try_font_list): Argument type changed.
3462 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
3463 (choose_face_font): Argument changed. Handle fontset properly.
3464 (choose_face_fontset_font): Function removed.
3465 (realize_default_face, realize_named_face): Don't remove the
3466 former face here.
3467 (realize_face): Argument changed. Caller changed. Remove face
3468 with the arg former_face_id in advance. Load font for the new
3469 face.
3470 (realize_x_face): Argument changed. Caller changed. For a
3471 multibyte character, share fontset with base_face. For a single
3472 byte character, make a new realized fontset. Don't load a font
3473 here.
3474 (realize_tty_face): Argument changed. Caller changed.
3475 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
3476 (face_at_buffer_position): Don't check multibyte_p for returning
3477 DEFAULT_FACE_ID.
3478 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
3479 FACE_SUITABLE_FOR_CHARSET_P.
3480 (syms_of_xfaces): Remove code for Qx_charset_registry and
3481 Vface_default_registry.
3482
6c4bfdc0
KH
3483 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
3484 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
9111d4b5
KH
3485 (x_per_char_metric): Don't try FONT->default_char. Even if
3486 pcm->width is zero, glyph bits may exist.
3487 (x_encode_char): Always initialize char2b->byte1.
3488 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
3489 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller
3490 changed.
3491 (x_append_glyph): Set glyph->glyph_not_available_p.
3492 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
3493 it->charset. Handle the case that per char metric is not
3494 available. If it->multibyte_p is zero and it->c is a multibyte
3495 character, convert it to a unibyte character.
3496 (struct glyph_string): Delete member `charset'.
3497 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
3498 the case that per char metric is not available correctly.
3499 (x_fill_glyph_string): Handle the case that the specific glyph is
3500 not available correctly.
3501 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
3502 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
3503 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
3504 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
3505 fontset. Don't call FS_LOAD_FONT.
3506
3507 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
3508 (x_create_tip_frame): Likewise.
3509 (Fx_close_connection): Free full_name of font_info.
3510
3511 * fns.c (optimize_sub_char_table): New function.
3512 (Foptimize_char_table): New function.
3513 (syms_of_fns): Defsubr Soptimize_char_table.
3514
b33dd3b0
GM
35152000-03-20 Gerd Moellmann <gerd@gnu.org>
3516
3517 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
3518 only if buffer is displayed in some window.
3519
3520 * xdisp.c (handle_single_display_prop): Initialize local `value'.
3521 (try_window_reusing_current_matrix): Don't call scroll run
3522 function if run's current and desired position are the same;
3523 this prevents cursor flickering.
3524
4e8a9132
SM
35252000-03-19 Stefan Monnier <monnier@cs.yale.edu>
3526
3527 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
3528
3529 * regex.c (RE_STRING_CHAR): New macro.
3530 (GET_CHAR_AFER_2): Remove.
3531 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
3532 (enum re_opcode_t): Remove on_failure_jump_exclusive.
3533 (print_partial_compiled_pattern, re_compile_fastmap)
3534 (re_match_2_internal): Remove on_failure_jump_exclusive.
3535 (regex_compile): Turn optimizable P+ loops into PP*, so that the
3536 optimization only need to work for * (ie. can use of_keep_string_jump).
3537 Remove the special case for .*\n since it is now covered by the general
3538 optimization.
3539 (re_search_2): Don't bother with `room'.
3540 (skip_one_char): New function.
3541 (skip_noops): Simplify since `memory' is not needed any more.
3542 (mutually_exclusive_p): Restructure slightly to use `switch' and
3543 add handling for "all" remaining cases.
3544 (re_match_2_internal): Change on_failure_jump_smart to use
3545 on_failure_keep_string_jump (and redirect the end-of-loop jump)
3546 rather than on_failure_jump_exclusive.
3547
2136fdd4
GM
35482000-03-19 Gerd Moellmann <gerd@gnu.org>
3549
3550 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
3551 number of bits per RGB because it's everywhere used as the depth
3552 of the visual.
3553
3554 * term.c (calculate_costs): Remove code dealing with X frames.
3555
18e21ce8 35562000-03-19 Richard M. Stallman <rms@gnu.org>
e53ae11c
RS
3557
3558 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
3559
d7b511c4
GM
35602000-03-18 Gerd Moellmann <gerd@gnu.org>
3561
3562 * lread.c (read_integer): Unread the last char not consumed.
3563
16b5d424
GM
35642000-03-17 Gerd Moellmann <gerd@gnu.org>
3565
3566 * xterm.c (x_update_window_cursor): Don't update in frames
d7b511c4 3567 which are in the process of being deleted.
16b5d424 3568
1fa28578
GM
35692000-03-16 Gerd Moellmann <gerd@gnu.org>
3570
83488cce
GM
3571 * Makefile.in (mostlyclean): Add `*.core'.
3572 (clean): Add `bootstrap-emacs'.
3573
1fa28578
GM
3574 * lread.c (read_integer): New function.
3575 (read1): Support read syntax #o, #x, #b, #r.
3576
99633e97
SM
35772000-03-15 Stefan Monnier <monnier@cs.yale.edu>
3578
1fa28578
GM
3579 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
3580 make sure POINTER_TO_OFFSET gives the same value before and after
3581 PREFETCH. Use `dfail' to guarantee "atomic" matching.
99633e97
SM
3582 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
3583 (debug): Now only active if > 0 rather than if != 0.
3584 (DEBUG_*): Update for the new meaning of `debug'.
1fa28578
GM
3585 (print_partial_compiled_pattern): Add missing `succeed' case. Use
3586 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
3587 in `succeed_n', `jump_n' and `set_number_at'.
99633e97
SM
3588 (store_op1, store_op2, insert_op1, insert_op2)
3589 (at_begline_loc_p, at_endline_loc_p): Add prototype.
1fa28578
GM
3590 (group_in_compile_stack): Move to after its arg's types are
3591 declared and add a prototype.
99633e97 3592 (PATFETCH): Define in terms of PATFETCH_RAW.
1fa28578
GM
3593 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)'
3594 wrapper.
99633e97 3595 (QUIT): Redefine as a nop except for NTemacs.
1fa28578
GM
3596 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
3597 indentation of the greedy-op and shy-group code.
99633e97
SM
3598 (at_(beg|end)line_loc_p): Fix argument's types.
3599 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
3600 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
3601 (MATCHING_IN_FIRST_STRING): Remove.
1fa28578
GM
3602 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
3603 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
3604 QUIT unconditionally.
99633e97 3605
699238d9
GM
36062000-03-15 Gerd Moellmann <gerd@gnu.org>
3607
3608 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
3609 a sole completion.
3610
3611 * process.c (send_process): Add a hint that the function
3612 can call Lisp code to its comment.
3613
3614 * lread.c (load_dangerous_libraries): New variable.
3615 (Vbytecomp_version_regexp): New variable.
3616 (safe_to_load_p): New function.
3617 (Fload): Handle files not compiled with Emacs specially.
3618 (syms_of_lread): New Lisp variable load-dangerous-libraries.
3619
34e23e5a
GM
36202000-03-14 Gerd Moellmann <gerd@gnu.org>
3621
9c763cca
GM
3622 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
3623
3624 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
3625 support functions only if HAVE_X11R6_XIM is defined.
3626 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
3627
3628 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
3629
3630 * xfns.c (X_I18N_INHIBITED): Don't define.
3631 (create_frame_xic): Remove conditional compilation on
3632 X_I18N_INHIBITED.
3633 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
3634
3635 * config.in (HAVE_X_I18N): Moved here from xterm.h.
3636 (HAVE_X11R6_XIM): Define.
3637
3638 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
3639
34e23e5a
GM
3640 * xterm.c (x_term_init): Add support for X resource `synchronous'.
3641 If set, call XSynchronize.
3642
66f0296e
SM
36432000-03-13 Stefan Monnier <monnier@cs.yale.edu>
3644
34e23e5a
GM
3645 * regex.c: Declare a new type `re_char' used throughout the code
3646 for the string char type. It's `const unsigned char' to match the
3647 rest of Emacs. Consistently make sure all pointers to strings use
3648 it and make sure all pointers into the pattern use `unsigned
3649 char'.
66f0296e 3650 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
34e23e5a
GM
3651 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
3652 code duplication.
66f0296e
SM
3653
3654 * charset.h (GET_CHAR_AFTER_2): Remove.
3655 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
3656
854a025c
KR
36572000-03-12 Ken Raeburn <raeburn@gnu.org>
3658
3659 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
3660 variable before the invocation of YMF_PASS_LDFLAGS, in case both
3661 of them try to use backquotes.
3662
b9d2c7e2
DL
36632000-03-12 Dave Love <fx@gnu.org>
3664
3665 * unexelf.c: Restore changes of 1999-10-19.
3666 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
3667 fix its type and alignment; copy it from current process.
3668
5e5dff44
GM
36692000-03-12 Gerd Moellmann <gerd@gnu.org>
3670
9b2f3c38
GM
3671 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
3672 has been found. Fix bug not computing timer's predecessor.
3673
427ec082 3674 * fileio.c (Fread_file_name): Handle case that DIR contains a
9172b88d
GM
3675 file name.
3676
e1cff360
GM
3677 * window.c (Fsave_window_excursion): Doc fix.
3678
5e5dff44
GM
3679 * xfns.c (x_defined_color): Rewritten to use
3680 x_allocate_nearest_color.
3681
e411ce4b
EZ
36822000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
3683
3684 * msdos.c (vga_installed): New function, code moved from
3685 dos_set_window_size.
3686 (Qbar, Qcursor_type, outside_cursor): New variables.
3687 (syms_of_msdos): Intern and staticpro them.
3688 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
3689 shape used outside Emacs when called for the first time.
3690 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
3691 cursor shape used outside Emacs.
3692 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
3693 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
3694 type has changed.
3695 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
3696 parameters specify the cursor. Make qreverse a global
3697 variable (renamed to Qreverse).
3698
80460654
GM
36992000-03-09 Gerd Moellmann <gerd@gnu.org>
3700
3701 * fns.c (Fy_or_n_p): Cancel busy-cursor.
3702
95cd4c40
SM
37032000-03-08 Stefan Monnier <monnier@cs.yale.edu>
3704
3705 This is a big redesign of failure-stack and register handling, prompted
3706 by bugs revealed when trying to add shy-groups. Overall, what happened
3707 is that loops are now structured a little differently, groups can be
3708 shy and the code is a little simpler.
3709
3710 * regex.h: Update the copyright.
3711 (RE_SHY_GROUPS): New value.
3712 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
3713 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
3714
80460654
GM
3715 * regex.c (enum re_opcode_t): Remove jump_past_alt,
3716 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
3717 on_failure_jump_(exclusive, loop and smart). Also fix the comment
3718 for (start|stop)_memory since they now only take one argument (the
3719 second has becomes unnecessary).
3720 (print_partial_compiled_pattern): Adjust for changes in
3721 re_opcode_t.
3722 (print_compiled_pattern): Use %ld to printf long ints and flush to
3723 make debugging a little easier.
95cd4c40
SM
3724 (union fail_stack_elt): Make the integer unsigned.
3725 (struct fail_stack_type): Add a `frame' element.
3726 (INIT_FAIL_STACK): Init `frame' as well.
3727 (POP_PATTERN_OP): New macro for re_compile_fastmap.
3728 (DEBUG_PUSH, DEBUG_POP): Remove.
3729 (NUM_REG_ITEMS): Remove.
3730 (NUM_NONREG_ITEMS): Adjust.
80460654
GM
3731 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
3732 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
95cd4c40 3733 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
80460654
GM
3734 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP): New
3735 macros.
3736 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
3737 address pushed is not the destination of the jump but the source
3738 of it instead.
95cd4c40
SM
3739 (NUM_FAILURE_ITEMS): Remove.
3740 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
80460654
GM
3741 registers before the actual failure point). Don't hardcode any
3742 meaning for str==NULL anymore.
95cd4c40 3743 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
80460654
GM
3744 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
3745 Remove.
95cd4c40
SM
3746 (REG_UNSET_VALUE): Use NULL (why not?).
3747 (compile_range): Remove declaration since it doesn't exist.
3748 (struct compile_stack_elt_t): Remove inner_group_offset.
3749 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
3750 (regex_grow_registers): Remove dead code.
3751 (FIXUP_ALT_JUMP): New macro.
80460654
GM
3752 (regex_compile): Add shy-groups Change loops to use
3753 on_failure_jump_smart&jump instead of
3754 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
3755 initial (dummy_failure_)jump. Remove c1_base (looks like unused
3756 variable to me). Use `jump' instead of `jump_past_alt' and don't
3757 bother with push_dummy_failure in alternatives since it is now
3758 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
3759 emacs' for (re)allocating the stack.
3760 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
3761 from loop when bufp->can_be_null rather than jumping to `done'.
3762 Avoid jumping backwards so as to ensure termination. Use
3763 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
3764 backreferences. Remove dead code in handling of `anychar'.
95cd4c40 3765 (skip_noops, mutually_exclusive_p): New functions taken from the
80460654
GM
3766 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
3767 improve mutually_exclusive_p to handle ".+\n".
3768 (lowest_active_reg, highest_active_reg,
3769 NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
3770 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
3771 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
3772 variables. Push register (in `start_memory') on the stack rather
3773 than storing it in old_reg(start|end). Remove the cycle detection
3774 from `stop_memory', replaced by the use of on_failure_jump_loop
3775 for greedy loops. Add code for the new on_failure_jump_<foo>.
3776 Remove ad-hoc code in `on_failure_jump' to push more registers in
3777 the case of a loop. Take out code from `maybe_pop_jump' into
3778 separate functions and adapt it to the semantics of
3779 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
3780 and push_dummy_failure. Remove dummy_failure handling and
3781 handling of `failures to jump to on_failure_jump' (this last one
3782 was already dead code, it seems).
3783 (group_match_null_string_p, alt_match_null_string_p)
3784 (common_op_match_null_string_p): Remove.
95cd4c40 3785
7397acc4
DL
37862000-03-08 Dave Love <fx@gnu.org>
3787
3788 * config.in: Don't depend on __STDC__ for volatile.
3789 Add POINTER_TYPE, PTR, PROTOTYPES.
3790
3791 * hftctl.c, strftime.c: Use PROTOTYPES.
3792 * eval.c (find_handler_clause): Likewise.
3793
3794 * mem-limits.h: Use POINTER_TYPE.
3795
3796 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
3797 (memory_warnings): Declare using POINTER_TYPE.
3798
5e91ff9e
GM
37992000-03-08 Gerd Moellmann <gerd@gnu.org>
3800
feab4fba
GM
3801 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
3802
25edb08f
GM
3803 * xdisp.c (display_echo_area): Temporarily inhibit garbage
3804 collection.
3805
5e91ff9e
GM
3806 * xfns.c: Remove obsolete code in #if 0.
3807 (Fx_focus_frame): New function.
3808
a735b7e1
KH
38092000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
3810
3811 * coding.c (coding_category_name): Add coding-category-utf-8,
3812 coding-category-utf-16-be, coding-category-utf-16-le.
3813 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
3814 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
3815 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
3816 (detect_coding_utf_8): New function.
3817 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
3818 UTF_16_LOW_SURROGATE_P): New macros.
3819 (detect_coding_utf_16): New function
3820 (detect_coding_mask): When priorities are specified, skip any
3821 categories that have `nil' coding-system. Fix bug of returning
3822 wrong mask when PRIORITIES is specified and detect_coding_XXX()
3823 returns a mask not set in PRIORITIES.
3824 (detect_eol_type_in_2_octet_form): New function.
3825 (detect_eol): selects detect_eol_type_XXX to call according to
3826 cooding->category_idx.
3827 (detect_coding_system): Remove `nil' coding-system in the result.
3828 (Fupdate_coding_systems_internal): Update all coding-categories.
3829
3830 * coding.h (CODING_CATEGORY_IDX_UTF_8,
3831 CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE): New
3832 macros.
3833 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY,
3834 CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
3835 CODING_CATEGORY_IDX_UTF_16_LE.
3836 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE,
3837 CODING_CATEGORY_MASK_UTF_16_LE): New macros.
3838 (CODING_CATEGORY_MASK_ANY): Include the above macros.
3839 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
3840
9994cc69
GM
38412000-03-07 Gerd Moellmann <gerd@gnu.org>
3842
e9b4e5ff
GM
3843 * doc.c (Fdocumentation_property): If value is not a string,
3844 and doesn't refer to etc/DOC, evaluate it to obtain a string.
3845
f7daf1e1
GM
3846 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
3847 close the display with XtCloseDisplay. This caused a bus error
3848 on OpenWindows.
3849
9994cc69
GM
3850 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
3851 complete but not unique.
3852
4336c705
GM
38532000-03-06 Gerd Moellmann <gerd@gnu.org>
3854
18bb0684
GM
3855 * process.c (send_process): Remove local variable `procname' that
3856 might become invalid when a GC happens. Instead, access the
3857 process name slot directly.
3858
4336c705
GM
3859 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
3860 orig_height if set.
3861
3862 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
3863 orig_height if set.
3864
515d0d0e
EZ
38652000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
3866
3867 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
3868 glyph matrices have been freed.
3869
100b3cbb
GM
38702000-03-05 Gerd Moellmann <gerd@gnu.org>
3871
50df5e5a 3872 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
6178bc23 3873 (bootstrap-temacs): Set LC_ALL to C like for temacs.
50df5e5a
GM
3874
3875 * xfns.c (QCdata): Moved to xdisp.c.
3876
3877 * xdisp.c (QCdata): Moved here from xfns.c.
3878 (syms_of_xdisp): Initialize QCdata.
3879
3880 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
3881
3882 * window.c (coordinates_in_window): Use
3883 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
3884 FRAME_INTERNAL_BORDER_WIDTH.
3885
100b3cbb 3886 * xdisp.c (try_window_id): Recompute unchanged information if
4336c705 3887 it is obviously invalid.
100b3cbb
GM
3888
3889 * xterm.c (x_term_init): Create a colormap if not using the
3890 default visual.
3891
3892 * xterm.h (select_visual): Change prototype.
3893
3894 * xfns.c (select_visual): Rewritten. Recognize user-specified
3895 visual classes.
3896 (visual_classes): New variable.
3897
64d739c4
GM
38982000-03-04 Gerd Moellmann <gerd@gnu.org>
3899
3900 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
3901 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
3902 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
3903 (x_decode_color): Don't handle allocation of white and black
3904 specially.
3905 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
3906 XtNcolormap resources.
3907 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
3908 (Fx_create_frame): Initialize color members of x_output structure.
3909 (xpm_load): Pass colormap to XPM lib.
3910
3911 * xfaces.c (x_free_colors): Access colormap of frame using
3912 FRAME_X_COLORMAP. Be paranoid about freeing black and white
3913 when default colormap is used.
3914
3915 * xterm.c (x_term_init): Set Colormap member of x_display_info
3916 structure. Copy colormap if resource `privateColormap' is
3917 specified (PseudoColor only).
3918 (x_setup_relief_color): Access colormap of frame using
3919 FRAME_X_COLORMAP.
3920
3921 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
3922 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
3923
c3cee013
JR
39242000-03-04 Jason Rumney <jasonr@gnu.org>
3925
3926 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
3927 other non-platform-specific equivalents.
64d739c4 3928 [WINDOWSNT]: Include w32term.h, fontset.h and define X
c3cee013
JR
3929 specific functions and macros as their w32 equivalents where
3930 non-platform-specifics are not available.
3931 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
3932 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
3933 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
3934 (frame_update_line_height): Use macros to access f->output_data.
3935 (defined_color): Remove FIXME comments; fixed.
3936 (x_face_list_fonts, prepare_face_for_display): Put X specifics
3937 into #ifdef blocks. Add WINDOWSNT blocks.
3938 (Fx_list_fonts): Use macros for accessing font data.
3939 (set_lface_from_font_name): Different default fonts for X and
3940 WINDOWSNT.
3941 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
3942 scalable for backward compatibility.
64d739c4 3943 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
c3cee013
JR
3944 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
3945
64d739c4 3946 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
c3cee013
JR
3947 syms_of_w32faces.
3948
3949 * makefile.nt (w32faces.obj): Remove.
3950 (xfaces.obj): Add.
3951
807cc41c
JR
39522000-03-03 Jason Rumney <jasonr@gnu.org>
3953
3954 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
3955 correct parameters.
3956
0007072a
KR
39572000-03-03 Ken Raeburn <raeburn@gnu.org>
3958
3959 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
3960 standard ELF definitions here if the system header does not.
3961
71a6ba55
GM
39622000-03-03 Gerd Moellmann <gerd@gnu.org>
3963
3964 * xterm.c (PER_CHAR_METRIC): Removed.
3965 (x_per_char_metric_1, x_default_char): New functions.
3966 (x_per_char_metric): If font's default char is invalid, return
3967 metrics of a suitably chosen usable default char.
3968 (x_draw_glyph_string_foreground): If font has an invalid default
64d739c4
GM
3969 char, replace occurrences of unprintable chars with a suitably
3970 chosen usable default char.
71a6ba55 3971
900fa1f1
GM
39722000-03-02 Gerd Moellmann <gerd@gnu.org>
3973
42f55fe0
GM
3974 * xterm.c (note_mouse_highlight): Return quickly if frame's
3975 glyph matrices have been freed.
3976
3977 * dispnew.c (free_glyphs): Block input while freeing matrices.
3978
900fa1f1
GM
3979 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
3980
3981 * xterm.c (x_alloc_lighter_color, x_setup_relief_color): Use
3982 x_free_colors.
3983
3984 * dispextern.h (x_free_colors): Add prototype.
3985
3986 * xfaces.c (x_free_colors): New function.
3987 (unload_color, free_face_colors): Use it.
3988
2f950292
EZ
39892000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
3990
3991 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
3992
3993 * window.c [MSDOS]: Include msdos.h.
3994
54d04320
DL
39952000-03-02 Dave Love <fx@gnu.org>
3996
3997 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
3998
3999 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
4000 set C_OPTIMIZE_SWITCH for gcc.
4001
0ba93ac4
KH
40022000-03-02 Kenichi Handa <handa@etl.go.jp>
4003
4004 * coding.c (coding_save_composition): Be sure to allocate
4005 composition data area in coding even if there's no composition in
4006 the current run.
4007
a2bc11d4
JR
40082000-03-01 Jason Rumney <jasonr@gnu.org>
4009
4010 * w32term.c: Equivalent changes to those made to xterm.c on
4011 2000-02-25 and 2000-02-24.
4012
4013 * w32fns.c: Equivalent changes to those made to xfns.c on
4014 2000-02-25 and 2000-02-21.
4015
4016 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
4017 correct line-end convention is followed.
4018
4019 * w32menu.c [HAVE_BOXES]: Remove #undef.
4020 (single_keymap_panes): Remove code for simulating checkmarks.
4021 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
4022 Remove code for drawing simulated checkmarks.
4023 (w32_menu_show): make unibyte help string correctly.
4024 (add_menu_item): draw standard Windows checkmarks. Draw radio
4025 buttons as radio buttons if possible.
4026
72d19d75
GM
40272000-03-01 Gerd Moellmann <gerd@gnu.org>
4028
2df636f4
GM
4029 * sysdep.c (start_of_text): Don't define this function for NetBSD
4030 with ELF.
4031
427ec082 4032 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
2df636f4
GM
4033 Don't define.
4034 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
4035 (LINKER): Don't undef if __NetBSD__ is defined.
4036
4037 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
4038
4039 * fileio.c [__NetBSD__]: Define `unix'.
4040
72d19d75
GM
4041 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
4042
ed4d0512
GM
40432000-02-29 Gerd Moellmann <gerd@gnu.org>
4044
50b1039f
GM
4045 * atimer.c (start_atimer): Don't abort when timers are stopped.
4046 (append_atimer_lists): New function.
4047 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
4048 arbitrary lists of stopped and running atimers.
4049
ed4d0512
GM
4050 * atimer.c (cancel_atimer): Handle canceling an atimer when
4051 some timers are stopped.
4052
4053 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
4054 after canceling it.
4055
4056 * fns.c (maybe_resize_hash_table): Handle case of new size
4057 coming out as being the same as old size.
4058
387023ee
JR
40592000-02-27 Jason Rumney <jasonr@gnu.org>
4060
4061 * makefile.nt: Add atimer.h to dependencies.
4062 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
4063 * w32console.c: Only disable window system features for dispextern.h
4064 (initialize_w32_display): Build a display info for the console.
4065 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
4066 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
4067 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
4068 as 2 button mice.
4069 * w32gui.h (struct W32FontStruct): Revert last change after change
4070 to xdisp.c.
4071 * w32menu.c (single_submenu): Set up help string.
4072 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
4073 (w32_dialog_show): Set up help string.
4074 * w32term.c (w32_display_info_for_display): Remove unused function.
4075 (w32_draw_bitmap): Use pre-built bitmaps.
4076 (w32_initialize_display_info): New function to initialize parts of
4077 display info that are common to both GUI and console frames.
4078 (w32_term_init): Use w32_initialize_display_info. Do not set
4079 Vw32_num_mouse_buttons here, as it is not called for console
4080 frames. Build bitmaps for indicating truncated lines etc.
4081 (x_delete_display): Destroy pre-built bitmaps.
4082 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
4083 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
4084
4516715a
DL
40852000-02-27 Dave Love <fx@gnu.org>
4086
4087 * lisp.h: Add a bunch of prototypes.
4088
171ca836
KH
40892000-02-26 Kenichi Handa <handa@etl.go.jp>
4090
4091 * keyboard.c (read_char): Set `usec' correctly.
4092
4013921d
KH
40932000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
4094
4095 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
4096 `lambda', set reg[RRR] to the map index.
4097 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
4098 reg[RRR] to 0. Otherwise, set it to -1.
4099
9244a058
GM
41002000-02-25 Gerd Moellmann <gerd@gnu.org>
4101
2df636f4 4102 * emacs.c (main): Remove code snippet commented out with `//'.
9244a058 4103
18e21ce8 41042000-02-25 Richard M. Stallman <rms@gnu.org>
427ec082 4105
f43d79c1
GM
4106 * fileio.c (Ffile_symlink_p): If result starts with a `/'
4107 and contains a `:', prepend `/:'.
4108
4109 * window.c (select_window_1): If selected_window is nil,
4110 don't "swap out" the buffer's point.
4111 (Fset_window_configuration): Set selected_window to nil
4112 before calling Fselect_window.
4113 (unshow_buffer): Don't set point in buffer from window's point
4114 if another more recently selected window also shows the buffer.
4115
bed0c171
GM
41162000-02-25 Gerd Moellmann <gerd@gnu.org>
4117
449c3c52
GM
4118 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
4119
f5b58615
GM
4120 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
4121 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
4122 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay): New
4123 variables.
4124 (DEFAULT_BUSY_CURSOR_DELAY): New define.
4125 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
4126 (hide_busy_cursor): New functions.
4127 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
4128
4129 * minibuf.c (read_minibuf): Cancel busy-cursor.
4130
4131 * keyboard.c (command_loop_1): Call start_busy_cursor before
4132 Fcommand_execute and cancel_busy_cursor after it.
4133 (timer_check): Remove busy-cursor code.
4134 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
4135 cursor timer.
4136
4137 * process.c (wait_reading_process_input): Remove busy-cursor code.
4138
4139 * eval.c (Fsignal): Call cancel_busy_cursor instead of
4140 Fx_hide_busy_cursor.
4141
4142 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
4143 Remove prototyoes.
4144 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
4145
4146 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
4147
4148 * xterm.c (XTread_socket): Remove busy-cursor code.
4149
4eb8436f
GM
4150 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
4151 (build_frame_matrix_from_leaf_window): Put code handling
4152 glyph row's not being a slice of a frame row in #if 0.
4153 (sync_window_with_frame_matrix_rows): New function.
4154 (frame_row_to_window): New function.
4155 (mirror_line_dance): Handle copies between windows.
4156
3cb65b0e
GM
4157 * lread.c (Fload): Use `xfree' instead of `free'.
4158 (init_obarray): Use `xmalloc' instead of `malloc'.
4159
bed0c171
GM
4160 * window.c (Fset_window_buffer): Set WINDOW to the window
4161 after decoding.
2add4349
GM
4162 (coordinates_in_window): Take frame's internal border width
4163 into account.
bed0c171 4164
42088c12
GM
41652000-02-24 Gerd Moellmann <gerd@gnu.org>
4166
4167 * xterm.c (x_display_and_set_cursor): Display cursor of
4168 non-selected windows depending on the setting of
4169 cursor_in_non_selected_windows.
4170
4171 * xdisp.c (cursor_in_non_selected_windows): New variable.
4172 (syms_of_xdisp): DEFVAR_BOOL it.
4173
d1e103b2
GM
41742000-02-23 Gerd Moellmann <gerd@gnu.org>
4175
723e779c
GM
4176 * data.c (Fstring_to_number): If number is greater than what
4177 fits into an integer, return a float.
4178
d1e103b2
GM
4179 * eval.c (specbind): Remove references to
4180 keyword_symbols_constant_flag.
4181
4182 * data.c (keyword_symbols_constant_flag): Removed.
4183 (Fmakunbound, set_internal, syms_of_data): Remove references to
4184 keyword_symbols_constant_flag.
4185
4186 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
4187
214f877f
KH
41882000-02-23 Kenichi Handa <handa@etl.go.jp>
4189
4190 * syntax.c (multibyte_syntax_as_symbol): New variable.
4191 (syms_of_syntax): Declare it as a Lisp variable.
4192 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
4193 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
4194 nonzero, treat all multibyte characters as symbol.
42088c12 4195 (init_syntax_once): Give syntax `word' to all multibyte
214f877f
KH
4196 characters.
4197
130adcb7
EZ
41982000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
4199
3cb65b0e 4200 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
d7d0dac0 4201 a deleted frame.
130adcb7 4202
17cbbf95
GM
42032000-02-21 Gerd Moellmann <gerd@gnu.org>
4204
4205 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
4206
4207 * xfns.c (x_window_to_frame, x_any_window_to_frame)
4208 (x_non_menubar_window_to_frame): Check the busy-cursor window.
4209
beb0bc36
DL
42102000-02-21 Dave Love <fx@gnu.org>
4211
4212 * frame.c (Vmouse_position_function): New variable.
4213 (Fmouse_position): Use it.
4214 (syms_of_frame): Install it.
4215
4216 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
4217
1d92afcd
GM
42182000-02-20 Gerd Moellmann <gerd@gnu.org>
4219
4220 * fileio.c (Finsert_file_contents): Unbind the binding of
4221 standard-output done by temp_output_buffer_setup.
329eed9f
GM
4222
4223 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
4224 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
4225 (specbind, unbind_to): Handle most common case of non-constant
4226 symbol with trivial value specially.
4227
4228 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
4229
18e21ce8 42302000-02-20 Richard M. Stallman <rms@gnu.org>
2d06696f
RS
4231
4232 * data.c (Fmake_variable_buffer_local): Doc fix.
4233 Init found_for_buffer to 0.
4234 (Fmake_variable_frame_local): If the variable has already
4235 been buffer-local, set the check_frame field.
4236
1d4311c3
EZ
42372000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
4238
4239 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
4240 produced for CODING_MODE_LAST_BLOCK requires.
4241
2dc95ddd
DL
42422000-02-18 Dave Love <fx@gnu.org>
4243
4244 * keyboard.c (echo_keystrokes): Remove declaration.
4245 (Vecho_keystrokes) New variable.
4246 (read_char, record_menu_key, read_key_sequence): Use it to allow
4247 use of float value.
4248 (syms_of_keyboard): Change Vecho_keystrokes declaration.
4249
4250 * lread.c: Undef feature selection macros before defining.
4251
f0930f35
GM
42522000-02-18 Gerd Moellmann <gerd@gnu.org>
4253
4254 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
4255 for symbols other than the symbol in question.
4256
e3d4de90
DL
42572000-02-17 Dave Love <fx@gnu.org>
4258
4259 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
4260
0b378936
GM
42612000-02-17 Gerd Moellmann <gerd@gnu.org>
4262
d621caf7
GM
4263 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
4264
0b378936
GM
4265 * alloc.c (enum mem_type): Compile unconditionally.
4266
3b451f74
EZ
42672000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
4268
4269 * xfaces.c (tty_defined_color): Don't return faulire indication
4270 for unspecified-fg and unspecified-bg pseudo-colors.
4271
10689a01
GM
42722000-02-17 Gerd Moellmann <gerd@gnu.org>
4273
1216f5e4
GM
4274 * alloc.c (mark_object): Don't mark symbol names in pure space.
4275 (gc_sweep): Don't unmark symbol names in pure space.
4276
4277 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
4278 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
4279 [GC_MARK_STACK]: New defines.
427ec082 4280 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
1216f5e4
GM
4281 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
4282
4283 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
4284
4285 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
4286 allocate_buffer instead of xmalloc.
4287
4288 * alloc.c (toplevel): Include setjmp.h.
4289 (PURE_POINTER_P): New define.
4290 (enum mem_type) [GC_MARK_STACK]: New enumeration.
4291 (Vdead) [GC_MARK_STACK]: New variable.
4292 (lisp_malloc): Add parameter TYPE, call mem_insert if
4293 GC_MARK_STACK is defined.
4294 (allocate_buffer): New function.
427ec082 4295 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
1216f5e4
GM
4296 (free_float) [GC_MARK_STACK]: Set type to Vdead.
4297 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
4298 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
4299 (MEM_NIL) [GC_MARK_STACK]: New define.
4300 (struct mem_node) [GC_MARK_STACK]: New structure.
4301 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
4302 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
4303 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
4304 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
4305 (mark_stack) [GC_MARK_STACK]: New functions.
4306 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
4307 (clear_marks): Removed.
4308 (gc_sweep): Set free conses' car, free floats' type, free
4309 symbols' function to Vdead. Use lisp_free to free buffers.
4310 (init_alloc_once): Initialize Vdead.
4311 (survives_gc_p): Return non-zero for pure objects.
4312
4313 * alloc.c: Add comments throughout the file.
4314
2503c8b1
GM
4315 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
4316 that unblocks alarms.
4317
8389e1e2
GM
4318 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
4319 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
4320 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
4321
10689a01 4322 * frame.c (make_frame): Set frame initiallly to `garbaged'.
427ec082 4323
bfc17d18
KH
43242000-02-17 Kenichi Handa <handa@etl.go.jp>
4325
4a09dee0
KH
4326 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
4327 avoid infinite error signaling. Allocate sufficient memory for
4328 eol_str in the case that eoltype is Lisp_Int.
bfc17d18 4329
2b927d02
SM
43302000-02-17 Stefan Monnier <monnier@cs.yale.edu>
4331
4332 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
4333 depends on the previous behavior.
4334
b49cb764
GM
43352000-02-16 Gerd Moellmann <gerd@gnu.org>
4336
4337 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
4338
99e95407
GM
43392000-02-15 Gerd Moellmann <gerd@gnu.org>
4340
4341 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
4342
4343 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
b49cb764 4344 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
99e95407
GM
4345 write(2).
4346
6ffd3cf7
RS
43472000-02-15 Richard M. Stallman <rms@gnu.org>
4348
4349 * data.c (set_internal): Don't make variable buffer-local
4350 if within a let-binding for the same buffer.
4351 (let_shadows_buffer_binding_p): New function.
4352
4353 * eval.c (specbind): For buffer-local value,
4354 record the current buffer also.
4355 (unbind_to): Cope with that change.
4356
cad53475
GM
43572000-02-15 Gerd Moellmann <gerd@gnu.org>
4358
4359 * window.c (Fsave_window_excursion): Doc fix.
4360
1aa963c8
SM
43612000-02-15 Stefan Monnier <monnier@cs.yale.edu>
4362
4363 * syntax.c (back_comment): Make sure we only consider comment-starters
4364 of the relevant style and return -1 in case of a failure to find the
4365 beginning of the comment.
4366 (Fforward_comment): If back_comment fails, go back to the position just
4367 after the comment-end.
4368 (scan_lists): Add comment describing a very minor bug.
4369
b9b84fd3
SM
43702000-02-14 Stefan Monnier <monnier@cs.yale.edu>
4371
4372 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
4373 `completion-regexp-list' in the docstring.
4374
3a28db80
DL
43752000-02-14 Dave Love <fx@gnu.org>
4376
4377 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
4378
fb4a568d
SM
43792000-02-14 Stefan Monnier <monnier@cs.yale.edu>
4380
4381 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
4382 to Emacs' syntax. Also fix the comment about set/not-set meanings
4383 since Emacs syntax is not the value 0 any more.
4384 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
4385 since it's now part of RE_SYNTAX_EMACS.
4386
1063ebb5
DL
43872000-02-12 Dave Love <fx@gnu.org>
4388
4389 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on
4390 Alpha.
4391
fb07a302
GM
43922000-02-12 Gerd Moellmann <gerd@gnu.org>
4393
4394 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
4395
aaf2320c
DL
43962000-02-12 Dave Love <fx@gnu.org>
4397
4398 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
4399
4400 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
fb07a302
GM
4401 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
4402 * s/hpux.h: Don't define HAVE_VFORK.
aaf2320c
DL
4403
4404 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
4405
4406 * s/nextstep.h: Don't define HAVE_ALLOCA.
4407
4408 * config.in: Add vfork bits.
4409
eedf8bde
GM
44102000-02-12 Gerd Moellmann <gerd@gnu.org>
4411
4412 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
4413 unwind function to undo the effect of stopping atimers.
4414
4415 * keyboard.c (bind_polling_period): Stop all timers except
4416 poll_timer.
4417
4418 * atimer.c (stopped_atimers): New variable.
4419 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
4420 New functions.
4421
4422 * atimer.h (stop_other_atimers, run_all_atimers)
4423 (unwind_stop_other_atimers): Add function prototypes.
427ec082 4424
eedf8bde
GM
4425 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
4426
8476c2f8
KR
44272000-02-11 Ken Raeburn <raeburn@gnu.org>
4428
4429 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
4430 library may depend on jpeg.
4431 (atimer.o): Depends on atimer.c.
4432
0e85e4a3
KH
44332000-02-11 Kenichi Handa <handa@etl.go.jp>
4434
4435 * insdel.c (del_range_1): Call update_compositions.
4436 (del_range_both): Call update_compositions just once..
4437
97fa0cc8
DL
44382000-02-10 Dave Love <fx@gnu.org>
4439
4440 * xfns.c (create_frame_xic): Fix initialization of automatic
4441 aggregates for pcc.
4442
25566a3c
KH
44432000-02-09 Kenichi Handa <handa@etl.go.jp>
4444
4445 * ccl.c (CCL_MAKE_CHAR): New macro.
4446 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
4447 registers by CCL_MAKE_CHAR before calling translate_char.
4448 <CCL_TranslateCharacterConstTbl> Likewise.
4449
69da54ba
DL
44502000-02-08 Dave Love <fx@gnu.org>
4451
4452 * lread.c (__EXTENSIONS__): Define.
4453
f7136ee8
GM
44542000-02-08 Gerd Moellmann <gerd@gnu.org>
4455
4456 * puresize.h (BASE_PURESIZE): Increase to 650000.
4457
7768790b
EZ
44582000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
4459
4460 * msdos.c (XMenuActivate): Turn off the cursor after displaying
4461 the help message.
4462
38fd211b
EZ
44632000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
4464
4465 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
4466 md, mh, mb, mr, and me to the fake termcap entry.
4467
66e4690f
KR
44682000-02-06 Ken Raeburn <raeburn@gnu.org>
4469
4470 * sound.c (sound_cleanup): Don't call device close routine if the
4471 function pointer is null.
4472
a75dfea0
AI
44732000-02-06 Andrew Innes <andrewi@gnu.org>
4474
4475 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
4476 around image definitions and prototypes.
4477 (gamma_correct) [WINDOWSNT]: New prototype.
4478
4479 * w32term.c (x_make_frame_visible): Replace call to
4480 input_poll_signal with poll_for_input.
4481
4482 * window.c [WINDOWSNT]: Include w32term.h.
4483
4484 * xdisp.c [WINDOWSNT]: Include w32term.h.
4485
4486 * makefile.nt: Add dependencies on w32gui.h.
4487 (OBJ1): Include atimer.obj.
4488 ($(BLD)\atimer.obj): New dependency rule.
4489
4490 * w32.c (sigmask): New function (does nothing).
4491 (sigunblock): Ditto.
4492
4493 * frame.c [WINDOWSNT]: Include w32term.h.
4494
4495 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
4496
4497 * lread.c (syms_of_lread): Fix literal newlines.
4498
4499 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
4500 the string constant limit (2048 bytes) in MSVC.
4501 (main): Ditto.
4502
59ddecde
GM
45032000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
4504
4505 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit
4506 area.
4507 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
4508 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
4509 dispatch the event.
4510
07590973
DL
45112000-02-04 Dave Love <fx@gnu.org>
4512
4513 * fileio.c: Remove some unused vars.
4514 (_GNU_SOURCE): Define (for euidaccess).
4515
4516 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
4517
4518 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
4519 gcpro1, gcpro2.
4520 (read_minibuf): Deal with allow_props correctly.
4521
649351f9
EZ
45222000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
4523
4524 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
4525
66e4690f 45262000-02-03 Ken Raeburn <raeburn@gnu.org>
f1b9c7c1
KR
4527
4528 * search.c (compile_pattern): If a cache entry has a nil regexp,
4529 fill in that entry instead of clobbering a previously cached
4530 string regexp.
4531
66e4690f 45322000-02-02 Ken Raeburn <raeburn@gnu.org>
15c9cf81
KR
4533
4534 * puresize.h (BASE_PURESIZE): Increase to 610000.
4535
d240a249
GM
45362000-02-02 Gerd Moellmann <gerd@gnu.org>
4537
4538 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
4539 can GC.
4540
ca91fb26
KH
45412000-02-02 Kenichi Handa <handa@etl.go.jp>
4542
25660570
KH
4543 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
4544 instead of incrementing ic directly.
4545 <CCL_WriteExprConst> Likewise.
4546 <ccl_set_expr>: Set ic to jump_address.
4547
ca91fb26
KH
4548 * fileio.c (e_write): Fix the handling of
4549 CODING_FINISH_INSUFFICIENT_SRC.
4550
2ede9689
DL
45512000-02-01 Dave Love <fx@gnu.org>
4552
4553 * editfns.c (Fpropertize): Doc fix.
4554
4555 * process.c (Fstart_process): Doc fix.
4556
4557 * eval.c: Fix various doc strings not to duplicate information
4558 from help-manyarg-func-alist.
4559
4560 * window.c (Fset_window_margins): Don't make interactive. Doc
4561 fix.
4562
4563 * doc.c (Vhelp_manyarg_func_alist): New variable.
4564 (Fdocumentation): Use it.
4565 (syms_of_doc): Define it.
4566
b6680a0e
GM
45672000-01-31 Gerd Moellmann <gerd@gnu.org>
4568
2cb750ba
GM
4569 * xterm.c (xim_open_dpy): Remove unused local variable.
4570
74e9213b
GM
4571 * emacs.c (USAGE): Use term `display options' instead of `X
4572 options'.
4573
4574 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
4575 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
4576
b6680a0e
GM
4577 * fns.c (sweep_weak_table): New function.
4578 (sweep_weak_hash_tables): Use it. Keep on marking until there
4579 is no more change.
4580
994c5afe
GM
45812000-01-30 Gerd Moellmann <gerd@gnu.org>
4582
4583 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
4584 that XTread_socket does not crash by trying to call XNoOp on a
4585 closed display.
427ec082 4586
f00276e3
JR
45872000-01-30 Jason Rumney <jasonr@gnu.org>
4588
4589 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
4590 Change selected_frame to SELECTED_FRAME ().
4591 (w32_console_mouse_position): Remove #ifndef MULE from around
4592 `insist' parameter.
4593
4594 * makefile.nt: Remove dosfns.obj.
4595
4596 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
4597
4598 * w32fns.c (w32_defined_color): Check for valid frame before
4599 applying gamma correction. Eliminate dependency on frame elsewhere.
4600 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
4601 (w32_to_x_font): Use resx and resy not height_in and width_in.
4602 (x_to_w32_font): Doc fix.
4603 (xlfd_strip_height): New function to strip and return font height.
4604 (w32_font_match): Compare height separately from rest of xlfd
4605 spec, using xlfd_strip_height.
4606
4607 * w32term.c (w32_term_init): Swap resx and height_in, resy and
4608 width_in. Use w32_defined_color in place of defined_color.
4609
4610 * w32faces.c: Merge more of DOS and X specifics in preparation for
4611 merge with xfaces.c.
4612 (defined_color): Remove FIXME comment.
4613 (tty_color_name): Provide w32-specific function.
4614 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
4615
4616 * w32console.c (turn_on_face, turn_off_face): Removed.
4617 (w32_face_attributes): New function.
4618 (Global_variables): Reduce scope where possible.
4619 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
4620 fill attribute.
4621 (hl_mode): Don't modify text attributes.
4622 (write_glyphs): Don't do anything if len <= 0. Use
4623 w32_face_attributes to get attributes for drawing. Write
4624 terminating codes using char_attr_normal.
4625 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
4626 (update_begin, update_end): Likewise.
4627 (vga_stdcolor_name): New function.
4628 (initialize_w32_display): Remove char_attr_reverse and char_attr.
4629 (Fset_screen_color): Remove char_attr_reverse.
4630
b08e8bb2
GM
46312000-01-29 Gerd Moellmann <gerd@gnu.org>
4632
4633 * xfns.c (xic_set_preeditarea): Take window parameter and
4634 window-relative pixel-positions.
4635
4636 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
4637 is its frame's selected window.
4638 (xim_instantiate_callback): Likewise.
4639
4640 * xfns.c (x_create_im): Removed.
4641 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
4642 (supported_xim_styles): Renamed from supported_styles.
4643 (best_xim_style): Renamed from best_style.
4644 (create_frame_xic): Renamed from xic_create_frame.
4645 (free_frame_xic): Renamed from xic_destroy_frame.
427ec082 4646
b08e8bb2
GM
46472000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
4648
4649 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
4650 our frames, call XFilterEvent with 2nd parameter `None'.
4651 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
4652 returning XBufferOverflow.
4653 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status
4654 area.
4655 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
4656 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
4657 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
4658 (xim_initialize, xim_close)
4659 [HAVE_X_I18N && HAVE_X11R6]: New functions.
4660 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
4661 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
4662 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
4663
4664 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
4665 and `xim_styles'.
4666 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
4667 `xic_style' and `xic_xfs'.
4668 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
4669 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
4670 (FRAME_XIM): Removed.
4671
4672 * xfns.c (supported_styles): New variable.
4673 (DEFAULT_STYLE, DEFAULT_FONT): New macros
4674 (xic_create_xfontset, best_style, xic_create_frame)
4675 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
4676 (xic_set_xfontset): New functions.
4677
142e109c
DL
46782000-01-28 Dave Love <fx@gnu.org>
4679
4680 * s/irix6-5.h: Revert last change after change to irix5-0.h.
4681
4682 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
4683
b02786f9
GM
46842000-01-28 Gerd Moellmann <gerd@gnu.org>
4685
d060bc9f
GM
4686 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
4687 for *scratch* if it already existed.
4688
b02786f9
GM
4689 * emacs.c (USAGE): New macro.
4690 (main): Use it to display usage information.
4691
2c52d7e4
EZ
46922000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
4693
4694 Support for the menu-help feature:
4695
4696 * msdos.h: Change prototypes of XMenuAddSelection and
4697 XMenuActivate.
4698
4699 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
4700 part of the line to the termscript file.
4701 (IT_clear_to_end): Clear the entire line, not just its beginning.
4702 (menu_help_message, prev_menu_help_message): New variables.
4703 (IT_menu_make_room): Make room for the help_text member.
4704 (IT_menu_display): New argument disp_help; all callers changed.
4705 If disp_help is non-zero, store the help text of the active menu
4706 item in menu_help_message.
4707 (XMenuAddPane): Initialize the help_text member to NULL.
4708 (XMenuAddSelection): New argument help_text. Store it in the
4709 XMenu structure.
4710 (XMenuActivate): New argument help_callback. If the value of
4711 menu_help_message has changed since the last time, display the
4712 menu help message text while waiting for the mouse to move. Clear
4713 the echo area before exiting.
4714 (XMenuDestroy): Free the help_text member.
4715
ffe0bcd1
GM
47162000-01-27 Gerd Moellmann <gerd@gnu.org>
4717
4718 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
4719 XMenuAddSelection. Pass help callback to XMenuActivate.
4720 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
4721
50dbd23f
EZ
47222000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
4723
4724 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
4725 and EMACS_SET_USECS.
4726
f5941bf8
GM
47272000-01-26 Dave Love <fx@gnu.org>
4728
6c67ddee
DL
4729 * editfns.c (Fchar_after, Fchar_before): Doc fix.
4730
f5941bf8
GM
4731 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
4732 an error may be signalled.
4733
9e49c990
GM
47342000-01-26 Gerd Moellmann <gerd@gnu.org>
4735
fc3cb460
GM
4736 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
4737 LD_SWITCH_SYSTEM inherited from irix5-0.h.
4738
9e49c990
GM
4739 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
4740
d0c037d8
GM
47412000-01-25 Gerd Moellmann <gerd@gnu.org>
4742
4743 * charset.c (Fstring): If there is a multibyte char among
4744 the args, always return a multibyte string.
4745
e12489f9
GM
47462000-01-25 Gerd Moellmann <gerd@gnu.org>
4747
4748 * sysdep.c (sys_select): Turn atimers off and on instead of
4749 recording and restoring old alarm handler
4750
4751 * process.c (toplevel): Include atimer.h.
4752 (create_process_1): Rewritten.
4753 (create_process): Use atimers instead of alarm.
4754 (wait_reading_process_input) [hpux]: Turn atimers off instead
4755 of turning off SIGALRM.
4756 (wait_reading_process_input): Turn off atimers instead off
4757 calling stop_polling.
4758
4759 * emacs.c (main): Call init_atimer.
4760
4761 * keyboard.c (toplevel): Include systime.h and atimer.h.
4762 (polling_for_input): Removed because unused.
4763 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
4764 (poll_timer): New variable.
4765 (poll_for_input, poll_for_input_1): New functions.
4766 (start_polling, stop_polling): Rewritten.
4767
4768 * keyboard.h (polling_for_input): Removed.
427ec082 4769
e12489f9
GM
4770 * atimer.h, atimer.c: New files.
4771
4772 * Makefile.in (obj): Add atimer.o.
4773 (atimer.o): New target.
4774
4775 * blockinput.h (pending_atimers): Add extern declaration.
4776 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
4777
4778 * lisp.h (popup_activated_flag): Add extern declaration.
4779
4780 * xmenu.c (popup_activated_flag): Make externally visible.
4781 (popup_activate_callback) [USE_MOTIF]: Increment
4782 popup_activated_flag.
4783 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
4784
4785 * xterm.c (toplevel): Include atimer.h.
4786 (toolkit_scroll_bar_interaction): New variable.
4787 (Fxt_process_timeouts): Removed.
4788 (x_process_timeouts): New function.
4789 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
4790 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
4791 (x_make_frame_visible): Call poll_for_input_1 instead of
4792 input_poll_signal. Don't call alarm.
4793 (x_initialize): Install timer calling x_process_timeouts.
427ec082 4794
1e5279b9
DL
47952000-01-24 Dave Love <fx@gnu.org>
4796
6c67ddee 4797 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
1e5279b9
DL
4798 Don't use -cckr -- apparently not now necessary.
4799
edf6aeb8
EZ
48002000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
4801
4802 * msdos.c (IT_menu_display): Truncate long menu lines at the right
4803 screen boundary.
4804
9badad41
JR
48052000-01-23 Jason Rumney <jasonr@gnu.org>
4806
4807 * w32fns.c (w32_defined_color): Apply gamma correction before
4808 trying to map to the palette.
4809 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
4810 to w32_clear_rect.
4811
4812 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
4813 here. Callers changed to always pass real device context.
4814 (w32_draw_bitmap): Likewise.
4815 (w32_get_glyph_overhangs): Likewise.
4816 (w32_draw_box_rect): Make use of s->hdc rather than getting a new
4817 one.
4818 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
4819 pfnSetScrollInfo and SetScrollRange.
4820 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
4821 back into MULE characters after decoding them.
4822 (x_get_glyph_face_and_encoding): Likewise.
4823 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
4824 GetCharABCWidthsW fails, since this is defined on Windows 9x.
4825 (x_produce_glyphs): Calculate per char metrics for a character
4826 that we know exists in default font when font_not_found_p is true.
4827
63bd786b
JR
48282000-01-22 Jason Rumney <jasonr@gnu.org>
4829
4830 * makefile.nt (intervals.obj, composite.obj): New modules.
4831 (composite.h): Added as dependency where appropriate.
4832
4833 * w32gui.h (XGCValue): New struct for emulating X GCs.
4834
4835 * w32term.h (XCharStruct): New struct for emulating X.
4836
4837 * w32console.c (turn_on_face, turn_off_face): New functions.
4838 (change_line_highlight): New prototype for new redisplay.
4839 (write_glyphs): Support multibyte text. Support faces.
4840
4841 * w32faces.c: Complete rewrite for new redisplay based on new
4842 xfaces.c.
4843
4844 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
4845 throughout. struct frame * in place of FRAME_PTR.
4846 Skeleton support for images, toolbars, tooltips from xfns.c.
4847 (Fx_create_frame): Use system default for default scroll bar
4848 width.
4849 (w32_get_arg): Renamed from x_get_arg.
4850 (Fx_file_dialog): New function.
4851 (w32_list_fonts): Check cache before asking system.
4852 (Vw32_enable_synthesized_fonts): New variable.
4853 (Vw32_enable_italics): Obsolete, removed.
4854
4855 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
4856 Use SELECTED_FRAME macro.
4857
4858 * w32menu.c: Add skeleton support for help strings on menus.
4859 (add_menu_item): Native checkbox and radio support added, but not
4860 yet enabled due to bugs.
4861 (push_menu_item): Add parameters type, selection and help.
4862 Callers updated.
4863 Formatting changes to reduce unnecessary diffs with xmenu.c.
4864
4865 * w32select.c (Fw32_set_clipboard_data): Update call to
4866 find_charset_in_str.
4867
4868 * w32term.c: Complete rewrite for new redisplay based on new
4869 xterm.c with necessary sections merged back in from old w32term.c.
4870
6ffd3cf7 48712000-01-21 Richard M. Stallman <rms@gnu.org>
b50c9214
RS
4872
4873 * data.c (set_internal): Further fix in same criterion.
4874
6ffd3cf7 48752000-01-20 Richard M. Stallman <rms@gnu.org>
8cc95642
RS
4876
4877 * data.c (set_internal): Fix the criteria for whether
4878 to swap out the old cached binding.
4879
60af03f1
DL
48802000-01-19 Dave Love <fx@gnu.org>
4881
4882 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
4883
f9be074f
KH
48842000-01-18 Kenichi Handa <handa@etl.go.jp>
4885
4886 * regex.c (re_compile_fastmap): While checking a range table for
4887 `charset', skip flag bits for a character class correctly.
4888
52b8dbf9
GM
48892000-01-17 Gerd Moellmann <gerd@gnu.org>
4890
d36100c9
GM
4891 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
4892
52b8dbf9
GM
4893 * xfns.c (x_window): Call lw_create_widget with new parameter
4894 list.
4895
4896 * widget.c (EmacsFrameSetCharSize): Change size of children first
4897 because of problems with main window geometry management under
4898 Lesstif.
4899
4900 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
4901 MENU_ITEMS_ITEM_.*.
4902 (MENU_ITEMS_ITEM_HELP): New enumerator.
4903 (push_menu_item): Add parameter HELP. Record help in menu_items.
4904 (single_menu_item, single_submenu, list_of_items): Call
4905 push_menu_item with new parameter.
4906 (single_submenu): Set help string in widget value.
4907 (menu_highlight_callback): New function.
4908 (set_frame_menubar): Call lw_create_widget with new
4909 parameter list.
4910 (xmenu_show, xdialog_show): Ditto.
4911
3139018f
GM
49122000-01-13 Gerd Moellmann <gerd@gnu.org>
4913
4914 * sound.c (Fplay_sound): Improve doc string.
4915
83c8f461
RS
49162000-01-11 Richard M. Stallman <rms@gnu.org>
4917
4918 * lisp.h (set_internal): Enter the new arg.
4919
4920 * eval.c (specbind): Record buffer-local variables specially,
4921 indicating which buffer's binding was saved.
4922 (unbind_to): Restore buffer-local variables specially
4923 in the proper buffer.
4924
4925 * data.c (set_internal): New arg BUF.
427ec082 4926
83c8f461
RS
4927 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
4928 * data.c (Fset): Pass new arg to set_internal.
4929 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
427ec082 4930
1fab1775
GM
49312000-01-11 Gerd Moellmann <gerd@gnu.org>
4932
4933 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload,
4934 xprintsym.
4935
83c8f461 49362000-01-11 Richard M. Stallman <rms@gnu.org>
6f59462e
RS
4937
4938 * minibuf.c (Ftry_completion): Doc fix.
4939
7a85e4df
GM
49402000-01-11 Gerd Moellmann <gerd@gnu.org>
4941
4942 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
4943 vector, too.
4944
a970dae4
AS
49452000-01-11 Andreas Schwab <schwab@suse.de>
4946
4947 * coding.c (code_convert_region): Initialize total_skip.
4948
c65d14ee
DL
49492000-01-08 Dave Love <fx@gnu.org>
4950
4951 * eval.c (Fuser_variable_p): Check customizability too.
4952
834938d2
GM
49532000-01-07 Gerd Moellmann <gerd@gnu.org>
4954
4955 * minibuf.c (Fcompleting_read): Doc fix.
4956
e0303cd6
GM
49572000-01-05 Gerd Moellmann <gerd@gnu.org>
4958
8a26744b
GM
4959 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
4960 -L /usr/local/lib.
4961
e0303cd6
GM
4962 * xfns.c (x_create_im): New function to set IM and IC of a frame.
4963 Check that input style is supported before trying to create an
4964 IC for it.
4965 (x_window): Call x_create_im.
427ec082 4966
2e471eb5
GM
49672000-01-04 Gerd Moellmann <gerd@gnu.org>
4968
560a7bd2
GM
4969 * xfns.c (current_gif_memory_src): New variable.
4970 (gif_load): Record the address of the current memory source
4971 in current_gif_memory_src.
4972 (gif_read_from_memory): Use current_gif_memory_src.
4973
f9ee84a3
GM
4974 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
4975 macros statement form.
4976
d1299cde
GM
4977 * sound.c (struct sound): Renamed from struct sound_file.
4978 (struct sound): Add members `data' and `header_size'.
4979 (enum sound_attr): Add SOUND_DATA.
4980 (current_sound, current_sound_device): Variables renamed from
4981 sound_file and sound_device.
4982 (parse_sound): Parse :data.
4983 (parse_sound): Handle sound data in strings.
4984 (find_sound_type): Function renamed from find_sound_file_type.
427ec082 4985 (wav_init, au_init): Fail if sound's header_size is smaller than
d1299cde
GM
4986 needed header size.
4987 (wav_play, au_play): Play sounds from string data.
4988
2e471eb5
GM
4989 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
4990
4991 * lisp.h: Add prototype for allocate_string_data.
4992
4993 * alloc.c (Fgarbage_collect): Return number of live and free
4994 strings.
4995
4996 * alloc.c (mark_buffer): Remove code in #if 0.
4997 (gc_sweep): Ditto.
4998 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
4999 (strings_consed): New variable.
5000 (allocate_string): Set it.
5001 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
5002 (Fmemory_use_counts): Return strings_consed. Use Flist.
5003
5004 * alloc.c: General cleanup in comments etc. Remove conditional
5005 compilation for `standalone'.
5006
5007 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
5008
5009 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
5010 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
5011 (DONT_COPY_FLAG): Removed.
5012 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
5013 (struct sdata, struct sblock): New
5014 (struct string_block): Rewritten.
5015 (STRINGS_IN_STRING_BLOCK): New macro.
5016 (oldest_sblock, current_sblock, total_strings, total_free_strings)
5017 (large_sblocks, string_blocks, string_free_list): New variables.
5018 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
5019 (init_strings): Rewritten.
5020 (allocate_string, allocate_string_data, compact_small_strings)
5021 (free_large_strings, sweep_strings): New functions.
5022 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
5023 (struct string_block_head, current_string_block)
5024 (first_string_block, large_string_blocks, STRING_FULLSIZE)
5025 (STRING_PAD): Removed.
5026 (make_uninit_multibyte_string, make_pure_string): Rewritten.
5027 (Fgarbage_collect): Don't set mark bit in large strings.
5028 (mark_object): Mark strings differently. Mark symbol names
5029 differently.
5030 (survives_gc_p): Test marked strings differently.
427ec082 5031 (gc_sweep): Sweep strings differently, unmark strings in
2e471eb5
GM
5032 symbol names.
5033 (compact_strings): Removed.
5034
42608ba8
EZ
50352000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
5036
5037 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
5038 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
5039
e0a09e1a
KH
50402000-01-04 Kenichi Handa <handa@etl.go.jp>
5041
dd9f0750 5042 * fileio.c (Finsert_file_contents): Signal error if visiting file
427ec082 5043 in a non-empty buffer.
dd9f0750 5044
3c0f3b15 5045 * term.c (encode_terminal_code): Fix the previous change.
e0a09e1a 5046
44cd3ae5
GM
50472000-01-03 Gerd Moellmann <gerd@gnu.org>
5048
5049 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
5050 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
5051
5052 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
5053
c182a70f
EZ
50542000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
5055
5056 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
5057 need to test for MSDOS frames.
5058
24480d5b
EZ
50592000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
5060
5061 * dosfns.c (unspecified_colors): Remove.
5062 (msdos_stdcolor_idx): Use global variables unspecified_fg and
5063 unspecified_bg.
5064 (msdos_stdcolor_name): Return strings for unspecified fore- and
5065 back-ground colors.
5066
5067 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
aaf2320c 5068 (syms_of_xfaces): Remove their staticpro's.
24480d5b
EZ
5069 (tty_color_name): Return Lisp strings for unspecified fore- and
5070 back-ground colors.
5071 (Finternal_set_lisp_face_attribute): Remove the special treatment
5072 for Qunspecified_{f,b}g.
5073 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp
5074 string.
5075
047f434a
GM
50762000-01-03 Gerd Moellmann <gerd@gnu.org>
5077
5078 * xdisp.c (reseat_at_next_visible_line_start): Position before
5079 newline only if ending up on a newline.
5080 (next_element_from_ellipsis): Return success. Handle case of
5081 displaying no ellipsis. Fix case of ellipsis defined in display
5082 table.
5083 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
5084 returns 0.
5085
d684c676
EZ
50862000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
5087
5088 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
5089 (Fcolor_supported_p): Renamed from face-color-supported-p.
5090
5fe1d139
EZ
50912000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
5092
5093 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
5094 list of colors renamed to tty-defined-color-alist.
5095 (tty_color_name): Pass the frame to tty-color-by-index.
5096 (realize_tty_face): tty-color-alist is now a function which
5097 accepts the frame as argument.
5098
5099 * term.c (Ftty_display_color_p): Accept an optional argument
5100 FRAME.
5101
816be8b8
EZ
51022000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
5103
5104 * term.c (insert_glyphs): Pass glyph, not &glyph, to
5105 encode_terminal_code.
5106
b635321e
EZ
51072000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
5108
5109 * dispnew.c (mode_line_string): Support termcap frames as well.
5110
9b784e96
GM
51112000-01-01 Gerd Moellmann <gerd@gnu.org>
5112
27189709
GM
5113 * syntax.c (Fforward_word): Undo previous change.
5114
5115 * editfns.c (Fconstrain_to_field): Don't constrain if
5116 inhibit-field-text-motion is non-nil.
5117 (Fline_beginning_position): Undo previous change.
5118 (Fline_end_position): Ditto.
5119
5120 * syntax.c (Fforward_word): Notice field boundaries only if
5121 inhibit-field-text-motion is nil.
5122
5123 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
5124
5125 * editfns.c (Vinhibit_field_text_motion): New variable.
5126 (inhibit-field-text-motion): New DEFVAR_LISP.
5127 (Fline_beginning_position, Fline_end_position): Notice field
5128 boundaries only if inhibit-field-text-motion is nil.
5129
45158a91
GM
5130 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
5131 All calls adjusted.
5132 (x_build_heuristic_mask): Likewise.
5133 (xbm_load_image_from_file): Change error output.
5134 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
5135 (gif_load, gs_load, x_kill_gs_process): Ditto.
5136
9b784e96
GM
5137 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
5138 color indices when accessing raster pixels.
63cec32f
GM
5139 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
5140 one of :file or :data.
5141 (enum pbm_keyword_index): Add PBM_DATA.
5142 (pbm_format): Add :data.
5143 (pbm_image_p): Allow either :file or :data.
5144 (pbm_read_file): New function.
5145 (pbm_scan_number): Rewritten to read from string.
5146 (pbm_load): Support :data.
9b784e96 5147
5ad6a5fb
GM
51481999-12-31 Gerd Moellmann <gerd@gnu.org>
5149
5150 * xfns.c: New image functions adapted to Emacs conventions.
5151 (png_load, tiff_load, jpeg_load, gif_load): Always GCPRO local
5152 variable `file'.
5153
63448a4d
WP
51541999-12-31 William M. Perry <wmperry@aventail.com>
5155
5156 * xfns.c (jpeg_format): Added the :data keyword
5157 (jpeg_image_p): JPEG is valid with :file _or_ :data
5158 (jpeg_memory_src): Defined new JPEG image source to read from a
5159 memory buffer.
5160 (jpeg_load): Pay attention to the :data keyword if specified.
5161 Instantiates a jpeg_memory_src instead of jpeg_stdio_src if
5162 found.
5163 (png_format): Added the :data keyword
5164 (png_image_p): PNG is valid with :file _or_ :data
5165 (png_read_from_memory): New PNG read function to read from a
5166 memory buffer.
5167 (png_load): Pay attention to the :data keyword if specified. Uses
5168 png_set_read_fn() instead of png_init_io() if specified.
5169 (tiff_format): Added the :data keyword for TIFF images.
5170 (tiff_image_p): TIFF is valid with :file _or_ :data
5171 (tiff_read_from_memory): Defined new TIFF I/O functions to read
5172 from a memory buffer.
5173 (tiff_load): Pay attention to the :data keyword if specified.
5174 Uses TIFFClientOpen() instead of TIFFOpen() if specified.
5175 (gif_format): Added the :data keyword
5176 (gif_image_p): GIF is valid with :file _or_ :data
5177 (gif_read_from_memory): New GIF input function to read from a
5178 memory buffer.
c65d14ee 5179 (gif_load): Pay attention to the :data keyword. Uses DGifOpen()
63448a4d
WP
5180 instead of DGifOpenFileName() if specified.
5181
c880678e
GM
51821999-12-31 Gerd Moellmann <gerd@gnu.org>
5183
5184 * xdisp.c (next_element_from_buffer): Change assertion at the end
5185 because it doesn't hold when there's an overlay string at the end
5186 from which we deliver an image.
5187
8ccb9a54
EZ
51881999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
5189
5190 * msdos.c (IT_update_begin): Don't dereference members of struct
5191 window for deleted windows.
5192
12ce2351
GM
51931999-12-30 Gerd Moellmann <gerd@gnu.org>
5194
a915c648
GM
5195 * abbrev.c (Fexpand_abbrev): If expanding an abbrev which has only
5196 a hook, and the hook has a non-nil `no-self-insert' property, let
5197 the return value of the hook specify whether an expansion took
5198 place. If it returns nil, no expansion has been performed.
5199
12ce2351
GM
5200 * xterm.c (x_make_frame_visible): Wait for frame becoming visible
5201 differently.
5202
04ee4f45
EZ
52031999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
5204
5205 * msdos.c (IT_write_glyphs): Track last changes to struct glyph.
5206
7f4bc0c3
EZ
52071999-12-29 Eli Zaretskii <eliz@is.elta.co.il>
5208
5209 * dispnew.c (mode_line_string): Support MS-DOS frames.
5210
dac204bc
GM
52111999-12-29 Gerd Moellmann <gerd@gnu.org>
5212
5213 * eval.c (syms_of_eval): Initialize debugger_may_continue.
5214
7b712ad8
KH
52151999-12-29 Kenichi Handa <handa@etl.go.jp>
5216
5217 * process.c (read_process_output): Fix the args CHARPOS and LENINS
5218 to signal_after_change.
5219
adb9900f
EZ
52201999-12-28 Eli Zaretskii <eliz@is.elta.co.il>
5221
41ad069b
EZ
5222 * msdos.c (dos_set_window_size) [__DJGPP__ > 1]: If the frame
5223 dimensions changed, invalidate the mouse highlight info.
5224 (disable_mouse_highlight, help_echo, previous_help_echo): New
5225 variables.
5226 (IT_set_mouse_pointer, show_mouse_face, clear_mouse_face)
5227 (fast_find_position, IT_note_mode_line_highlight)
5228 (IT_note_mouse_highlight): New functions.
5229 (IT_update_begin): If the redisplay affects the window where the
5230 mouse highlight is, clear the highlight. If the frame where the
5231 highlight was displayed was killed, invalidate the highlight
5232 info.
5233 (IT_update_end): Reset the highlight flag. Reset the mouse
5234 highlight-defer flag.
5235 (IT_frame_up_to_date): New function, if mouse highlight was
5236 deferred due to GC, do it now.
5237 (internal_terminal_init): Initialize mouse-highlight related
5238 members of the_only_x_display. Assign IT_frame_up_to_date to
5239 frame_up_to_date_hook.
5240 (dos_rawgetc): If the mouse moved, update mouse highlight. If
5241 help_echo changed value, generate a HELP_EVENT event.
5242 (syms_of_msdos): Staticpro help_echo and previous_help_echo.
5243
adb9900f
EZ
5244 * msdos.h (struct display_info): New.
5245 (struct x_output): Add the display_info member.
5246 (FRAME_X_DISPLAY_INFO): New macro.
5247
481b5054
GM
52481999-12-28 Gerd Moellmann <gerd@gnu.org>
5249
5250 * xdisp.c (try_window_id): Compute BEG_UNCHANGED and END_UNCHANGED
5251 if MODIFF > 1.
6448a6b3 5252 (dump_glyph_row): Adapt to changes in struct glyph.
481b5054
GM
5253
5254 * buffer.c (modify_overlay): Always compute unchanged info.
5255
a2882b0d
KH
52561999-12-27 Kenichi Handa <handa@etl.go.jp>
5257
5258 * dispextern.h (FACE_FROM_ID): Cast the arg ID to `unsigned'.
5259
89ba5b5f
KH
52601999-12-27 Kenichi Handa <handa@etl.go.jp>
5261
5262 The following changes are to use more bits for face IDs.
5263
5264 * lisp.h (GLYPH): Defined as `int', not `unsigned int'. Now the
5265 lowest 8 bits are single byte character code, the bits above are
5266 face ID.
481b5054 5267 (GLYPH_MASK_FACE, GLYPH_MASK_CHAR): Adjusted for the change
89ba5b5f 5268 above.
481b5054
GM
5269 (FAST_MAKE_GLYPH, FSST_GLYPH_FACE): Likewise.
5270 (GLYPH_MASK_REV_DIR, GLYPH_MASK_PADDING): Macros deleted.
89ba5b5f
KH
5271
5272 * charset.h (CHAR_BYTES): Use ((1 << CHARACTERBITS) - 1) instead
5273 of GLYPH_MASK_CHAR.
5274
5275 * charset.c (char_bytes): Use ((1 << CHARACTERBITS) - 1) instead
5276 of GLYPH_MASK_CHAR.
5277
5278 * dispextern.h (struct glyph): Make face_id and padding_p the top
5279 level members. Change members in union `u'.
5280 (GLYPH_EQUAL_P): Check also members face_id and padding_p.
5281 (GLYPH_CHAR_AND_FACE_EQUAL_P): New macro.
5282 (SET_CHAR_GLYPH): Adjusted for the change of struct glyph.
5283 (CHAR_GLYPH_PADDING_P): Likewise.
5284 (GLYPH_FROM_CHAR_GLYPH): Likewise. Always return -1 for multibyte
5285 characters.
5286
481b5054 5287 * dispnew.c (line_hash_code, direct_output_for_insert): Adjusted
89ba5b5f
KH
5288 for the change of struct glyph.
5289 (line_draw_cost): Adjusted for the change of
5290 GLYPH_FROM_CHAR_GLYPH.
5291 (count_match): Use macro GLYPH_CHAR_AND_FACE_EQUAL_P.
5292
5293 * term.c (encode_terminal_code): Adjusted for the change of struct
5294 glyph and GLYPH_FROM_CHAR_GLYPH.
481b5054 5295 (write_glyphs, insert_glyphs, append_glyph): Adjusted for the
89ba5b5f
KH
5296 change of struct glyph.
5297
5298 * xdisp.c: All codes adjusted for the change of struct glyph.
5299
5300 * xterm.c: All codes adjusted for the change of struct glyph.
5301
5bcd116c
KH
53021999-12-27 Kenichi Handa <handa@etl.go.jp>
5303
5304 * composite.h (struct composition): Change the order of declaring
5305 members to reduce the byte size of the structure.
5306
f21b06b7
GM
53071999-12-25 Gerd Moellmann <gerd@gnu.org>
5308
5309 * search.c (looking_at_1): Reset immediate_quit before modifying
5310 global data.
5311
e36557c9
KH
53121999-12-24 Kenichi Handa <handa@etl.go.jp>
5313
5314 * process.c (read_process_output): Fix the arg FROM to
5315 update_compositions.
5316
83c8f461 53171999-12-22 Richard M. Stallman <rms@gnu.org>
f7c9e039
RS
5318
5319 * search.c (Freplace_match): For nonliteral replacement in buffer,
5320 construct all the new text first, then insert all at once.
5321
0b863bd9
DL
53221999-12-22 Dave Love <fx@gnu.org>
5323
5324 * xfns.c (Fx_show_tip): Gcpro `timeout' too.
5325
6d8e8ef3
GM
53261999-12-22 Gerd Moellmann <gerd@gnu.org>
5327
28d7281d
GM
5328 * xfns.c (Fx_create_frame): Move x_default_parameter calls that
5329 lead to size changes to after the X window has been created.
5330
e22ef6eb 5331 * xfaces.c (realize_x_face): Don't use uninitialized local
6d8e8ef3
GM
5332 variable in xassert.
5333
8affcced
KH
53341999-12-22 Kenichi Handa <handa@etl.go.jp>
5335
5336 * xfaces.c (face_color_supported_p): Check by tty_defined_color
6d8e8ef3 5337 only when the frame is not for a window system.
8affcced 5338
f2be1146
GM
53391999-12-22 Gerd Moellmann <gerd@gnu.org>
5340
deca1348
GM
5341 * buffer.c (Fset_buffer_multibyte): Arrange for a thorough
5342 redisplay after changing the multibyteness of a buffer.
5343
f2be1146
GM
5344 * xterm.c (XTread_socket): At the beginning of the loop, pass the
5345 frame's X window to XFilterEvent instead of None because that's
5346 the X window for which the IC was created. This makes dead
5347 accents work when the pointer is not in Emacs' frame.
5348 (XTread_socket) <KeyPress>: Don't call XFilterEvent here.
5349
a744a2ec
DL
53501999-12-20 Dave Love <fx@gnu.org>
5351
5352 * xfns.c (Fx_show_tip): Add missing UNGCPRO.
5353
9e6985ed
GM
53541999-12-19 Gerd Moellmann <gerd@gnu.org>
5355
5356 * eval.c (debugger_may_continue): New variable.
5357 (syms_of_eval): Add a DEFVAR_BOOL for it.
5358 (call_debugger): Bind it.
5359
3b620731
EZ
53601999-12-19 Eli Zaretskii <eliz@is.elta.co.il>
5361
5362 * msdos.c (IT_set_face): Don't swap face colors when highlight or
5363 fp->tty_reverse_p is set, unless the computed colors are identical
5364 to frame colors. Print both original and computed colors to
5365 termscript file.
5366 (IT_write_glyphs): Track the changes in handling of composite
5367 characters.
5368 (IT_set_frame_parameters): Don't set frame colors from
5369 unspecified-fg and unspecified-bg pseudo-colors.
5370
0f9a51c4
DL
53711999-12-17 Dave Love <fx@gnu.org>
5372
5373 * data.c (Fkeywordp): New function.
5374 (syms_of_data): Install it.
5375
363e4e42
EZ
53761999-12-16 Eli Zaretskii <eliz@is.elta.co.il>
5377
5378 * xfaces.c (tty_defined_color): Fix last change.
5379
cfad01b4
GM
53801999-12-15 Gerd Moellmann <gerd@gnu.org>
5381
5382 * xdisp.c (redisplay_window) <optional new window start>: Check
5383 that window start is in [BEGV..ZV].
5384
f9d2fdc4
EZ
53851999-12-15 Eli Zaretskii <eliz@is.elta.co.il>
5386
5387 * dispextern.h (FACE_TTY_DEFAULT_FG_COLOR)
5388 (FACE_TTY_DEFAULT_BG_COLOR): New macros.
5389
5390 * xfaces.c (Qunspecified_fg, Qunspecified_bg): New variables.
5391 (syms_of_xfaces): Initialize and staticpro them.
5392 (tty_defined_color): If the color name is unspecified-fg or
5393 unspecified-bg, return FACE_TTY_DEFAULT_FG_COLOR and
5394 FACE_TTY_DEFAULT_BG_COLOR, respectively, as the pixel value.
5395 (tty_color_name): If the color pixel value is either
5396 FACE_TTY_DEFAULT_FG_COLOR or FACE_TTY_DEFAULT_BG_COLOR, return
5397 Qunspecified_fg or Qunspecified_bg, respectively.
5398 (Finternal_set_lisp_face_attribute): Allow values Qunspecified_fg
5399 and Qunspecified_bg for foreground and background colors.
5400 (realize_default_face): If the foreground and background colors
5401 are not specified, default to Qunspecified_fg and Qunspecified_bg.
5402 (realize_tty_face): By default, set the face colors to
5403 FACE_TTY_DEFAULT_FG_COLOR and FACE_TTY_DEFAULT_BG_COLOR.
5404 [MSDOS]: Handle FACE_TTY_DEFAULT_FG_COLOR and
5405 FACE_TTY_DEFAULT_BG_COLOR when face colors are not defined.
5406 Reverse the colors if the default colors were reversed.
5407
5408 * dispnew.c (init_display): Initialize the frame pixels of the
5409 initial frame to FACE_TTY_DEFAULT_FG_COLOR and
5410 FACE_TTY_DEFAULT_BG_COLOR.
5411
5412 * term.c (turn_on_face): If the default fore- and background
5413 colors are reversed, enter inverse video mode. Don't send color
5414 escape sequences for unspecified foreground and background colors.
5415 (turn_off_face): Handle unspecified-fg and unspecified-bg colors.
5416
5417 * dosfns.c (unspecified_colors): New variable.
5418 (msdos_stdcolor_idx): Handle unspecified-fg and unspecified-bg
5419 color names, return FACE_TTY_DEFAULT_FG_COLOR and
5420 FACE_TTY_DEFAULT_BG_COLOR, respectively.
5421 (msdos_stdcolor_name): Handle FACE_TTY_DEFAULT_FG_COLOR and
5422 FACE_TTY_DEFAULT_BG_COLOR, return Qunspecified_fg and
5423 Qunspecified_bg, respectively.
5424
5425 * msdos.c (IT_set_face): Support FACE_TTY_DEFAULT_FG_COLOR and
5426 FACE_TTY_DEFAULT_BG_COLOR as pixel values.
5427
e19539f1
KH
54281999-12-15 Kenichi Handa <handa@etl.go.jp>
5429
5430 * coding.c (code_convert_region): Fix the secoding arg to
5431 update_compositions.
5432
5ec14d3c
KH
54331999-12-15 Kenichi Handa <handa@etl.go.jp>
5434
5435 The following changes are for the new composition mechanism. We
5436 have deleted `composition' charset and composite characters,
5437 instead introduced a special text property `composition'.
5438
5439 * Makefile.in (INTERVAL_SRC): Include composite.h.
5440 (INTERVAL_OBJ): Include composite.o.
5441 (SOME_MACHINE_OBJECTS): Include composite.o.
5442 (casefiddle.o) (dispnew.o) (indent.o) (process.o) (search.o)
5443 (syntax.o) (window.o) (xdisp.o) (xfaces.o) (xterm.o) (print.o):
5444 Depend on composite.h.
5445 (doc.o): Depend on charset.h.
5446 (keyboard.o) (textprop.o) (intervals.o): Depend on INTERVAL_SRC.
5447 (composite.o): New target.
427ec082 5448
5ec14d3c
KH
5449 * alloc.c (Fmake_string): Adjusted for the change of CHAR_STRING.
5450
5451 * callproc.c (Fcall_process): Call code_convert_string to encode
5452 arguments. Use CODING_REQUIRE_DECODING to check if the process
5453 output should be decoded.
5454
5455 * casefiddle.c: Include composite.h.
5456 (casify_object): Use MAX_MULTIBYTE_LENGTH to allocate memory for a
5457 multibyte character. Adjusted for the change of CHAR_STRING.
5458 (casify_region): Likewise. Call update_compositions.
5459
5460 * category.h (CATEGORY_SET): Delete codes for a composite
5461 character.
5462
5463 * category.c (word_boundary_p): Delete codes for a composite
5464 character.
5465 (Fmake_category_table): New function.
5466 (syms_of_category): Defsubr it.
5467
5468 * ccl.c (CCL_WRITE_CHAR): Adjusted for the change of CHAR_STRING.
5469 (ccl_driver): Delete codes for a composite character.
5470
5471 * charset.h: In this entry, just `Modified' means that codes for a
5472 composite character is deleted.
5473 (LEADING_CODE_COMPOSITION) (CHARSET_COMPOSITION)
5474 (charset_composition) (MIN_CHAR_COMPOSITION)
5475 (MAX_CHAR_COMPOSITION) (GENERIC_COMPOSITION_CHAR)
5476 (COMPOSITE_CHAR_P) (MAKE_COMPOSITE_CHAR) (COMPOSITE_CHAR_ID)
5477 (PARSE_COMPOSITE_SEQ) (PARSE_CHARACTER_SEQ): Deleted.
5478 (MAX_CHAR) (CHARSET_VALID_P) (CHARSET_DEFINED_P) (CHARSET_AT)
5479 (FIRST_CHARSET_AT) (SAME_CHARSET_P) (MAKE_NON_ASCII_CHAR)
5480 (PARSE_MULTIBYTE_SEQ) (SPLIT_NON_ASCII_CHAR) (CHAR_PRINTABLE_P):
5481 Modified.
5482 (SPLIT_STRING): Call split_string, not split_non_ascii_string.
5483 (CHAR_STRING): Delete WORKBUF argument. Call char_string, not
5484 non_ascii_char_to_string.
5485 (STRING_CHAR): Call string_to_char, not string_to_non_ascii_char.
5486 (STRING_CHAR_AND_LENGTH): Likewise.
5487 (FETCH_CHAR_ADVANCE): New macro.
5488 (MAX_COMPONENT_COUNT) (struct cmpchar_info): Deleted.
5489 (MAX_MULTIBYTE_LENGTH): New macro.
5490 (MAX_LENGTH_OF_MULTI_BYTE_FORM): Deleted.
5491 (find_charset_in_str): Argument adjusted.
5492 (CHAR_LEN): Modified.
427ec082 5493
5ec14d3c
KH
5494 * charset.c: In this entry, just `Modified' means that codes for a
5495 composite character is deleted.
5496 (Qcomposition) (leading_code_composition)
5497 (charset_composition) (min_composite_char) (cmpchar_table)
5498 (cmpchar_table_size) (n_cmpchars): Deleted.
5499 (SPLIT_COMPOSITE_SEQ): Deleted.
5500 (SPLIT_MULTIBYTE_SEQ): Modified.
5501 (char_to_string): Renamed from non_ascii_char_to_string.
5502 Modified.
5503 (string_to_char): Renamed from string_to_non_ascii_char.
5504 (split_string): Renamed from split_non_ascii_string.
5505 (char_printable_p) (Fsplit_char)
5506 (Ffind_charset_region) (Ffind_charset_string) (char_valid_p)
5507 (char_bytes) (Fchar_width) (strwidth): Modified.
5508 (find_charset_in_str): Argument CMPCHARP deleted. Modified.
5509 (Fstring): Adjusted for the change of CHAR_STRING. Modified.
5510 (hash_string) (CMPCHAR_HASH_TABLE_SIZE) (cmpchar_hash_table)
5511 (CMPCHAR_HASH_SIZE) (CMPCHAR_HASH_USED) (CMPCHAR_HASH_CMPCHAR_ID)
5512 (str_cmpchar_id) (cmpchar_component) (Fcmpcharp)
5513 (Fcmpchar_component) (Fcmpchar_cmp_rule) (Fcmpchar_cmp_rule_p)
5514 (Fcmpchar_cmp_count): Deleted.
5515 (Fcompose_string): Implemented by Emacs Lisp in composite.el.
5516 (init_charset_once): Modified.
5517 (syms_of_charset): Modified.
5518
5519 * cmds.c (internal_self_insert): Adjusted for the change of
5520 CHAR_STRING.
5521
5522 * coding.h (emacs_code_class_type): Delete the member
5523 EMACS_leading_code_composition.
5524 (COMPOSING_NO) (COMPOSING_WITH_RULE_HEAD) (COMPOSING_NO_RULE_HEAD)
5525 (COMPOSING_WITH_RULE_TAIL) (COMPOSING_NO_RULE_TAIL)
5526 (COMPOSING_WITH_RULE_RULE) (COMPOSING_HEAD_P)
5527 (COMPOSING_WITH_RULE_P): Macros deleted.
5528 (COMPOSITION_DATA_SIZE) (COMPOSITION_DATA_MAX_BUNCH_LENGTH): New
5529 macros.
5530 (struct composition_data): New structure.
5531 (CODING_FINISH_INSUFFICIENT_CMP): New macro.
5532 (struct coding_system): New members composition_rule_follows,
5533 cmp_data, cmp_data_start, cmp_data_index.
5534 (coding_save_composition) (coding_free_composition_data)
5535 (coding_adjust_composition_offset): Extern them.
5536
5537 * coding.c: Include composite.h.
5538 (DECODE_CHARACTER_ASCII): Don't handle composition here.
5539 (DECODE_CHARACTER_DIMENSION1): Likewise. Don't check the validity
5540 of multibyte code here.
5541 (DECODE_CHARACTER_DIMENSION2): Likewise.
5542 (detect_coding_emacs_mule): Change the case label from
5543 EMACS_leading_code_composition to 0x80.
5544 (detect_coding_iso2022): Handle new composition sequence.
5545 (DECODE_ISO_CHARACTER): Likewise.
5546 (check_composing_code): Deleted.
5547 (coding_allocate_composition_data): New function.
5548 (CODING_ADD_COMPOSITION_START) (CODING_ADD_COMPOSITION_END)
5549 (CODING_ADD_COMPOSITION_COMPONENT) (DECODE_COMPOSITION_START)
5550 (DECODE_COMPOSITION_END) (DECODE_COMPOSITION_RULE): New macros.
5551 (decode_coding_iso2022): Handle new composition sequence.
5552 (ENCODE_ISO_CHARACTER): Don't check composition here.
5553 (ENCODE_COMPOSITION_RULE) (ENCODE_COMPOSITION_START): New macros.
5554 (ENCODE_COMPOSITION_NO_RULE_START)
5555 (ENCODE_COMPOSITION_WITH_RULE_START): Deleted.
5556 (ENCODE_COMPOSITION_END): Handle new composition sequence.
5557 (ENCODE_COMPOSITION_FAKE_START): New macro.
5558 (encode_coding_iso2022): Handle new composition sequence.
5559 (ENCODE_SJIS_BIG5_CHARACTER): Delete superfluous `;' at the tail.
5560 (encode_coding_sjis_big5): Ignore composition.
5561 (setup_coding_system): Initialize new members of struct
5562 coding_system. Enable composition only when the coding system has
5563 `composition' property t.
5564 (coding_free_composition_data) (coding_adjust_composition_offset)
5565 (coding_save_composition) (coding_restore_composition): New
5566 functions.
5567 (code_convert_region): Call coding_save_composition for encoding
5568 and coding_allocate_composition_data for decoding. Don't skip
5569 ASCII characters if we handle composition on encoding. Call
5570 signal_after_change with Check_BORDER.
5571 (code_convert_string): Call coding_save_composition for encoding
5572 and coding_allocate_composition_data for decoding. Don't skip
5573 ASCII characters if we handle composition on encoding.
5574 (code_convert_string1): Set Vlast_coding_system_used after calling
5575 code_convert_string.
5576 (code_convert_string_norecord): Disable composition.
5577 (Fset_terminal_coding_system_internal): Likewise.
5578 (Fset_safe_terminal_coding_system_internal): Likewise.
5579 (Fset_keyboard_coding_system_internal): Likewise.
5580 (init_coding_once): Set emacs_code_class[0x80] to
5581 EMACS_invalid_code.
5582
5583 * composite.h: New file.
5584
5585 * composite.c: New file.
5586
5587 * data.c (Faref): Delete codes for a composite character..
5588 (Faset): Likewise. Adjusted for the change of CHAR_STRING.
5589
5590 * dispextern.h (enum glyph_type): New member COMPOSITE_GLYPH.
5591 (struct glyph): Add new sub-structure cmp to the union `u'.
5592 (enum display_element_type): New member IT_COMPOSITION.
5593 (enum prop_idx): New member COMPOSITION_PROP_IDX.
5594 (struct it): New members cmp_id, cmp_len.
5595
5596 * dispnew.c (direct_output_forward_char): Check point moving into
5597 or out of a composition. If so, give up direct method.
5598
5599 * doprnt.c (doprnt1): Adjusted for the change of CHAR_STRING.
5600
5601 * editfns.c (Fchar_to_string): Adjusted for the change of
5602 CHAR_STRING.
5603 (general_insert_function): Likewise.
5604 (Finsert_char): Likewise.
5605 (Fsubst_char_in_region): Likewise. Call update_compositions.
5606 (Ftranslate_region): Call update_compositions.
5607 (Ftranspose_regions): Call update_compositions.
5608
5609 * emacs.c (main): Call syms_of_composite.
5610
5611 * fileio.c (Fsubstitute_in_file_name): Adjusted for the change of
5612 CHAR_STRING.
5613 (Finsert_file_contents): Set Vlast_coding_system_used before
5614 calling signal_after_change. Call update_compositions if some
5615 texts are inserted..
5616 (Fwrite_region): Adjusted for the change of a_write and e_write.
5617 (a_write): Argument changed. Work based on character position,
5618 not byte position.
5619 (e_write): Argument changed. Handle new way of composition.
5620
5621 * fns.c (Flength): The length of char-table is MAX_CHAR.
5622 (concat): Adjusted for the change of CHAR_STRING.
5623 (Ffillarray): Adjusted for the change of CHAR_STRING.
5624 (Fset_char_table_default): Delete codes for a composite character.
5625 (hash_put): Return hash index.
5626
5627 * fontset.h (struct font_info): New member vertical_centering.
5628 (Vvertical_centering_font_regexp): Extern it.
5629
5630 * fontset.c (Vvertical_centering_font_regexp): New variable.
5631 (syms_of_fontset): Declare it as a Lisp variable and initialize.
5632 Set Vignore_relative_composition to nil.
5633 (fs_load_font): Initialize `vertical_centering' of struct
5634 font_info.
5635
5636 * indent.c (check_composition): New function.
5637 (MULTIBYTE_BYTES_WIDTH): Call STRING_CHAR_AND_LENGTH with
5638 MAX_MULTIBYTE_LENGTH, not MAX_LENGTH_OF_MULTI_BYTE_FORM.
5639 (current_column_1): Handle new way of composition.
5640 (Fmove_to_column): Likewise.
5641 (compute_motion): Likewise.
5642
5643 * insdel.c (copy_text): Adjusted for the change of CHAR_STRING.
5644 (insert_char): Likewise.
5645 (insert): Call update_compositions.
5646 (insert_and_inherit): Likewise.
5647 (insert_before_markers): Likewise.
5648 (insert_before_markers_and_inherit): Likewise.
5649 (insert_from_string): Likewise.
5650 (insert_from_string_before_markers): Likewise.
5651 (insert_from_buffer): Likewise.
5652 (replace_range): Likewise.
5653 (count_combining_composition): Deleted.
5654 (count_combining_before): Delete codes for a composite character.
5655 (count_combining_after): Likewise.
5656 (del_range_1): Call update_compositions.
5657 (del_range_byte): Likewise.
5658 (del_range_both): Likewise.
5659 (Fcombine_after_change_execute): Likewise.
5660
5661 * intervals.h: Include composite.h.
5662 (get_property_and_range): Extern it.
5663 (Vtext_property_default_nonsticky): Extern it.
427ec082 5664
5ec14d3c
KH
5665 * intervals.c (adjust_intervals_for_insertion): To check stickines
5666 of properties, pay attention to text-property-default-nonsticky.
5667 (merge_properties_sticky): Likewise.
5668 (get_property_and_range): New function.
5669
5670 * keyboard.c (Vdisable_point_adjustment): New variable.
5671 (Vglobal_disable_point_adjustment): New variable.
5672 (syms_of_keyboard): Declare them as Lisp variables.
5673 (command_loop_1): Check them and call adjust_point_for_property if
5674 necessary.
5675 (adjust_point_for_property): New function.
5676
5677 * keymap.c (push_key_description): Adjusted for the change of
5678 CHAR_STRING.
5679 (Ftext_char_description): Likewise.
5680
5681 * lisp.h (QCtest, QCweakness, Qequal): Extern them.
5682 (hash_put): Adjusted for the change of the definition.
5683 (signal_after_change): Likewise.
5684 (check_point_in_composition): Extern it.
5685
5686 * lread.c (readchar): Adjusted for the change of CHAR_STRING.
5687 Delete a code that handles an invalid too-long multibyte sequence
5688 because we are now sure that we never encounter with such a
5689 sequence.
5690 (read_multibyte): Use macro MAX_MULTIBYTE_LENGTH, not
5691 MAX_LENGTH_OF_MULTI_BYTE_FORM.
5692 (init_obarray): Likewise.
5693 (read1): Likewise. Adjusted for the change of CHAR_STRING.
5694
5695 * print.c (printchar): Adjusted for the change of CHAR_STRING.
5696
5697 * process.c: Include composite.h.
5698 (read_process_output): Call update_compositions.
5699
5700 * regex.c (regex_compile): Adjusted for the change of CHAR_STRING.
5701
5702 * search.c (search_buffer): Adjusted for the change of CHAR_STRING.
5703
5704 * syntax.h (SYNTAX_ENTRY_INT): Delete codes for a composite
5705 character.
5706
5707 * term.c (encode_terminal_code): Delete codes for a composite
5708 character. Adjusted for the change of CHAR_STRING.
5709 (produce_glyphs): When called, it->what can be IT_COMPOSITION.
5710 Delete codes for a composite character.
5711
5712 * textprop.c (Vtext_property_default_nonsticky): New variable
5713 (syms_of_textprop): Declare it as a Lisp variable.
5714
5715 * window.c (Frecenter): Clear all caches of compositions.
5716
5717 * xdisp.c (it_props): Add an entry for composition.
5718 (face_before_or_after_it_pos): For composition, check face of a
5719 character after the composition.
5720 (handle_composition_prop): New function.
5721 (get_next_display_element): Adjusted for the change of
5722 CHAR_STRING.
5723 (set_iterator_to_next): Handle the case that it->method ==
5724 next_element_from_composition.
5725 (next_element_from_composition): New function.
5726 (message_dolog): Adjusted for the change of CHAR_STRING.
5727 (set_message_1): Likewise.
5728 (check_point_in_composition): New function.
5729 (reconsider_clip_changes): If point moved into or out of
5730 composition, set b->clip_changed to 1 to force updating of the
5731 screen.
5732 (disp_char_vector): Delete codes for a composite character.
5733 (decode_mode_spec_coding): Adjusted for the change of CHAR_STRING.
5734
5735 * xfaces.c (choose_face_fontset_font): Delete codes for a
5736 composite character.
5737 (realize_x_face): Likewise. Change a place to set local variable
5738 `f' to avoid a bug of GCC 2.8.1 on Solaris.
5739
5740 * xfns.c: Include intervals.h.
5741 (syms_of_xfns): Make `display' property nonsticky by default.
5742
5743 * xselect.c (lisp_data_to_selection_data): Adjusted for the change
5744 for find_charset_in_str.
5745
5746 * xterm.h (struct x_output): Change member font_baseline to
5747 baseline_offset.
5748
5749 * xterm.c (x_append_glyph): Setup members of struct glyph properly
5750 for composition.
5751 (x_append_composite_glyph): New function.
5752 (VCENTER_BASELINE_OFFSET): New macro.
5753 (x_produce_glyphs): If it->what == IT_COMPOSITION, setup members
5754 of struct it for the composition. Cache pixel offsets in the
5755 struct composition. Delete codes for a composite character.
5756 Handle Vignore_relative_composition in composition code.
5757 (struct glyph_string): Delete member cmpcharp, add new member cmp.
5758 (x_set_cursor_gc): Check s->cmp, not s->cmpcharp.
5759 (x_compute_glyph_string_overhangs): Likewise.
5760 (x_get_glyph_overhangs): Delete codes for a composite character.
5761 (x_right_overwritten): Check s->cmp, not s->cmpcharp.
5762 (x_draw_glyph_string_background): Likewise. Delete codes for
5763 checking s->gidx for a composition.
5764 (x_draw_glyph_string_foreground): Delete code for a composite
5765 character.
5766 (x_draw_composite_glyph_string_foreground): New function.
5767 (x_draw_glyph_string_box): Check s->cmp, not s->cmpcharp.
5768 (x_draw_glyph_string): Handle the case of COMPOSITE_GLYPH.
5769 (struct work): Deleted.
5770 (x_fill_composite_glyph_string): Argument changed. Mostly
5771 rewritten for that.
5772 (x_fill_glyph_string): Don't check CHARSET_COMPOSITION.
5773 (BUILD_CHAR_GLYPH_STRINGS): Don't handle composition here.
5774 (BUILD_COMPOSITE_GLYPH_STRING): New macro.
5775 (BUILD_GLYPH_STRINGS): For composition, call
5776 BUILD_COMPOSITE_GLYPH_STRING.
5777 (x_new_font): Initialize f->output_data.x->baseline_offset, not
5778 f->output_data.x->font_baseline.
5779
c3c60f13
GM
57801999-12-14 Gerd Moellmann <gerd@gnu.org>
5781
5782 * xterm.c (show_mouse_face): Don't use updated_area, use
5783 TEXT_AREA.
5784
83c8f461 57851999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
5786
5787 * minibuf.c (Fall_completions): Doc fix.
5788
83c8f461 57891999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
5790
5791 * macros.c (Fstart_kbd_macro): Handle case where last-kbd-macro
5792 has been changed by the Lisp code.
5793
d8eccf12
GM
57941999-12-12 Gerd Moellmann <gerd@gnu.org>
5795
5796 * xfns.c: Indentation fixes.
5797
ae56feae
SM
57981999-12-10 Stefan Monnier <monnier@cs.yale.edu>
5799
5800 * xterm.c (x_initialize): Only setup xaw3d_* if they've been declared.
5801
dfa1c6ae
GM
58021999-12-10 Gerd Moellmann <gerd@gnu.org>
5803
5804 * frame.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL)
5805 [!MSDOS && !WINDOWSNT && !macintosh]: Moved here from xterm.h.
5806
5807 * xterm.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL): Moved
5808 to frame.h.
5809
ec18280f
SM
58101999-12-09 Stefan Monnier <monnier@cs.yale.edu>
5811
5812 * keyboard.c (Qratio): New symbol.
5813 (scroll_bar_parts): Add `Qratio' to it.
5814 (syms_of_keyboard): Init `Qratio'.
5815 * termhooks.h (scroll_bar_part): Add `scroll_bar_move_ratio'.
5816 * xterm.c (#includes): Allow compilation with only Xaw.
5817 (xaw3d_arrow_scroll, xaw3d_pick_top): New variables.
5818 (xt_action_hook): Replace XAW3D by XAW.
5819 (xaw3d_jump_callback): Renamed to xaw_jump_callback.
5820 (xaw_jump_callback): Renamed from xaw3d_jump_callback.
5821 Determine epsilon dynamically and don't try to be too clever.
5822 (xaw3d_scroll_callback): Renamed to xaw_scroll_callback.
5823 (xaw_scroll_callback): Renamed from xaw3d_scroll_callback.
5824 Handle both Xaw3d with arrow-scrollbars and with Xaw-style
5825 scrollbar (using `ratio').
5826 (x_create_toolkit_scroll_bar): Try to detect which style of Xaw3d
5827 scrollbar we have so as to set it up more optimally and to fix
5828 xaw3d_arrow_scroll and xaw3d_pick_top.
5829 (x_set_toolkit_scroll_bar_thumb): Try to maintain 2 spare pixels at the
5830 bottom of the Xaw3d scrollbar, to work around its tendency to refuse
5831 shrinking the thumb. Also make sure that `XawScrollbarSetThumb'
5832 is not ignored, using a major gross hack.
5833 (x_initialize): Init default values for xaw3d_arrow_scroll and
5834 xaw3d_pick_top.
5835
83b6d970
DL
58361999-12-09 Dave Love <fx@gnu.org>
5837
5838 * frame.h: (PIX_TYPE) [! HAVE_X_WINDOWS]: Define PIX_TYPE.
5839
3648c842
GM
58401999-12-08 Gerd Moellmann <gerd@gnu.org>
5841
5842 * eval.c: Remove conditional compilation on `standalone'.
5843 (call_debugger): When entering the debugger while redisplaying,
5844 reset redisplaying_p, and go back to the top-level if the debugger
5845 returns.
5846
05e71564
GM
58471999-12-07 Gerd Moellmann <gerd@gnu.org>
5848
5849 * xfaces.c (x_set_menu_resources_from_menu_face): Make sure
5850 basic faces are realized before trying to use face `menu'.
5851
5852 * window.c (delete_window): Block input for the time window
5853 matrices are being changed.
5854
b46cd536
DL
58551999-12-07 Dave Love <fx@gnu.org>
5856
5857 * lread.c (Fintern_soft): Fix newlines in doc string.
5858
96acb1f7
GM
58591999-12-07 Alexandre Oliva <oliva@dcc.unicamp.br>
5860
5861 * unexelf.c: Include <syms.h>, not <sym.h> on IRIX. Removed
5862 duplicate definition of ElfW.
5863 (find_section): Copied from unexsgi.c.
5864 (unexec): Use find_section. Adjust whitespace. Initialize
5865 new_data2_offset based on old_data, not sbss (this fixes a bug on
5866 IRIX6). Change #ifdef __mips to __sgi, since it's IRIX-specific.
5867 Adjust test for presence of .mdebug section to the new return
5868 value of find_section.
427ec082 5869
96acb1f7
GM
58701999-12-07 Gerd Moellmann <gerd@gnu.org>
5871
5872 * unexelf.c: Merge changes from 20.5.
5873 (unexec): Handle .lit4 and .lit8 unconditionally.
5874
5875 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexelf.o instead of
5876 unexsgi.o again.
427ec082 5877
96acb1f7
GM
5878 * m/iris5d.h (UNEXEC): Likewise.
5879
7dae4502
SM
58801999-12-06 Stefan Monnier <monnier@cs.yale.edu>
5881
5882 * editfns.c (Fdelete_and_extract_region): New function.
05e71564
GM
5883 (syms_of_editfns): Register it.
5884 * insdel.c (del_range): Update del_range_1 call.
7dae4502
SM
5885 (del_range_1, del_range_2): Add a ret_string argument to
5886 request that the deleted text be returned.
5887 (del_range_byte, del_range_both): Update del_range_2 call.
05e71564 5888 * lisp.h (del_range_1, del_range_2): Change prototype
7dae4502
SM
5889 * casefiddle.c (casify_region): Update del_range_1 call.
5890 * coding.c (code_convert_region): Update del_range_2 call.
5891 * fileio.c (Finsert_file_contents): Update del_range_2 call.
5892
397e4fae
GM
58931999-12-06 Gerd Moellmann <gerd@gnu.org>
5894
5895 * xfaces.c (set_lface_from_font_name): Fix incomplete merge.
5896
3d973f71
GM
58971999-12-04 Hrvoje Niksic <hniksic@iskon.hr>
5898
5899 * lread.c (Fintern_soft): Accept a symbol argument.
427ec082 5900
740e985f
EZ
59011999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
5902
5903 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Reduce to 40000.
809f3d51
EZ
5904
5905 * insdel.c (adjust_markers_for_delete): Fix last change.
5906
2d764c78
EZ
59071999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
5908
5909 Changes for automatic remapping of X colors on terminal frames:
5910
5911 * xfaces.c (XColor) [!HAVE_X_WINDOWS]: Provide a typedef for non-X
5912 frames.
5913 (Vface_tty_color_alist): Remove.
5914 (tty_defined_color): New function.
5915 (defined_color): Rewrite to support any type of frame.
5916 (tty_color_name): New function.
5917 (face_color_supported_p, Fface_color_gray_p,
5918 Fface_color_supported_p): Support non-X frames.
5919 (load_color): Enclose the color name in quotes, in the log
5920 messages. Remove DOS-specific version of load_color.
5921 (realize_tty_face): Take the supported colors from
5922 tty-color-alist. Support translation of X colors to the closest
5923 tty color, for both MSDOS and tty frames.
5924 [MSDOS]: Don't invert face colors if they were taken from the
5925 frame colors.
5926 (Fface_register_tty_color, Fface_clear_tty_colors): Remove.
5927
5928 * frame.h (struct x_output) [!MSDOS, !WINDOWSNT, !HAVE_X_WINDOWS]:
5929 Define a mostly empty surrogate.
5930 (tty_display): Declare.
5931
5932 * frame.c (make_terminal_frame) [!macintosh]: Don't use
5933 tty_display.
5934 (Fframe_parameters): Don't invert colors of non-FRAME_WINDOW_P
5935 frames when the frame's param_alist includes 'reverse.
5936 (tty_display): Define.
5937 (make_terminal_frame) [!MSDOS]: Assign &tty_display to the
5938 output_data.x member.
5939 (Fframe_parameters): Return foreground and background color names
5940 on tty frames as well, in addition to MSDOS frames.
5941
5942 * msdos.h (DisplayWidth, DisplayHeight): Changes for Lisp_Object
5943 selected_frame.
5944 (struct x_output): Remove unused members; document who uses each
5945 member.
5946 (FRAME_PARAM_FACES, FRAME_N_PARAM_FACES, FRAME_DEFAULT_PARAM_FACE,
5947 FRAME_MODE_LINE_PARAM_FACE, FRAME_COMPUTED_FACES,
5948 FRAME_N_COMPUTED_FACES, FRAME_SIZE_COMPUTED_FACES,
5949 FRAME_DEFAULT_FACE, FRAME_MODE_LINE_FACE, unload_color): Remove
5950 unused macro definintions.
5951
5952 * msdos.c (IT_set_frame_parameters): Don't call
5953 recompute_basic_faces, the next redisplay will, anyway.
5954 (x_current_display): Remove unused variable.
5955 Many functions: changes for Lisp_object selected_frame.
5956 (IT_set_face): If the tty_reverse_p flag is set for the face,
5957 reverse the foreground and background colors.
5958 (Fmsdos_remember_default_colors): New function.
5959 (syms_of_msdos): Defsubr it.
5960 (IT_set_frame_parameters): Use initial_screen_colors[] when
5961 creating a new frame. If the frame parameters include 'reverse,
5962 swap the foreground and background colors.
5963 (internal_terminal_init): Initialize initial_screen_colors to -1.
5964 (syms_of_msdos): Add DEFVAR_BOOL for x-stretch-cursor, to shut up
5965 cus-start.el.
5966
5967 * Makefile.in (lisp, shortlisp): Add lisp/term/tty-colors.elc.
5968
5969 * xfns.c (x_defined_color): Rename from defined_color. All
5970 callers changed.
5971 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
5972 all callers changed.
5973 (Fxw_color_values): Renamed from Fx_color_values; all callers
5974 changed.
5975 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
5976 callers changed.
5977 (x_window_to_frame, x_any_window_to_frame,
5978 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
5979 x_top_window_to_frame): Use !FRAME_X_P instead of
5980 f->output_data.nothing.
5981 * xterm.h (x_defined_color): Rename from defined_color.
5982
5983 * w32fns.c (x_window_to_frame): Use FRAME_W32_P instead of
5984 f->output_data.nothing.
5985 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
5986 all callers changed.
5987 (Fxw_color_values): Renamed from Fx_color_values; all callers
5988 changed.
5989 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
5990 callers changed.
5991
5992 * dispextern.h (tty_color_name): Add prototype.
5993
5994 * xmenu.c (menubar_id_to_frame): Use FRAME_WINDOW_P instead of
5995 f->output_data.nothing.
5996 * w32menu.c (menubar_id_to_frame): Likewise.
5997 * w32term.h (w32_output): Declare.
5998
5999 * dosfns.c (Qmsdos_color_translate): Remove.
6000 (msdos_stdcolor_name): Now returns a Lisp_Object.
6001 * dosfns.h (Qmsdos_color_translate): Remove.
6002
6003 * s/msdos.h (INTERNAL_TERMINAL): Add entries for color support.
6004
b3e5232e
KH
60051999-12-06 Kenichi Handa <handa@etl.go.jp>
6006
6007 * fileio.c (decide_coding_unwind): Renamed from
6008 set_auto_coding_unwind.
6009 (Finsert_file_contents): Make single unwind protect to call both
6010 Vset_auto_coding_function and Ffind_operation_coding_system.
6011
6012 * insdel.c (adjust_markers_for_delete): Make it non-static.
6013
db0e466c
SM
60141999-12-04 Stefan Monnier <monnier@cs.yale.edu>
6015
6016 * regex.c (regex_compile): Recognize *?, +? and ?? as non-greedy
6017 operators and handle them properly.
6018 * regex.h (RE_ALL_GREEDY): New option.
6019 (RE_UNMATCHED_RIGHT_PAREN_ORD): Moved to the end where alphabetic
6020 sorting would put it.
6021 (RE_SYNTAX_AWK, RE_SYNTAX_GREP, RE_SYNTAX_EGREP)
6022 (_RE_SYNTAX_POSIX_COMMON): Use the new option to keep old behavior.
6023
22afa6e8
DL
60241999-12-04 Dave Love <d.love@dl.ac.uk>
6025
6026 * m/arm.h: New file.
6027
40afb967
DL
60281999-12-03 Dave Love <fx@gnu.org>
6029
6030 * editfns.c (Fmessage_or_box): Use use_dialog_box.
6031
ddf8eff5
GM
60321999-12-02 Gerd Moellmann <gerd@gnu.org>
6033
6034 * s/usg5-4.h (LIBS_SYSTEM): Add -lgen because that's needed
6035 for building with Motif.
6036
6037 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexsgi.o instead of
6038 unexelf.o.
427ec082 6039
ddf8eff5
GM
6040 * m/iris5d.h (UNEXEC): Use unexsgi.o instead of unexelf.o.
6041
fa09a82d
DL
60421999-12-01 Dave Love <fx@gnu.org>
6043
6044 * emacs.c (main): Set LANG=C iff AX3_2 defined.
6045
ddf8eff5
GM
60461999-11-28 Gerd Moellmann <gerd@gnu.org>
6047
6048 * systime.h (EMACS_TIME_CMP, EMACS_TIME_EQ, EMACS_TIME_NE)
6049 (EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT,EMACS_TIME_LE): New
6050 macros.
6051
6052 * config.in (HAVE_SETITIMER, HAVE_UALARM): New.
6053
fa09a82d
DL
60541999-11-28 eliz <eliz@dlpx1>
6055
6056 * emacs.c (synchronize_locale): Avoid compiler warnings about
6057 pointer type mismatch.
6058
f9632fc8
GM
60591999-11-28 Gerd Moellmann <gerd@gnu.org>
6060
717d0121
GM
6061 * window.c (Fwindow_end): Don't call temp_set_pt_both with
6062 out of range position.
6063
427ec082 6064 * xterm.c (XTread_socket) <ClientMessage, Xatom_Scrollbar>:
f9632fc8
GM
6065 Switch off busy-cursor by setting inhibit_busy_cursor to 2.
6066
59c65f1e
EZ
60671999-11-28 Eli Zaretskii <eliz@is.elta.co.il>
6068
613a8346
EZ
6069 * charset.c (Fmake_char_internal): Print the charset ID when
6070 signalling an error.
6071
59c65f1e
EZ
6072 * emacs.c (synchronize_locale): Avoid compiler warnings about
6073 pointer type mismatch.
6074
83c8f461 60751999-11-26 Richard M. Stallman <rms@gnu.org>
d01f3570
RS
6076
6077 * editfns.c (Fdelete_field): Make it noninteractive. Return nil.
6078
18df9369
GM
60791999-11-26 Gerd Moellmann <gerd@gnu.org>
6080
65a3ccf7
GM
6081 * puresize.h (BASE_PURESIZE): Increase to 550000.
6082
b3b98592
GM
6083 * textprop.c (set_text_properties): New function. Like
6084 Fset_text_properties, but with additional parameter
6085 SIGNAL_AFTER_CHANGE_P. If that is nil, don't signal after
6086 changes.
6087 (Fset_text_properties): Use it.
6088
6089 * insdel.c (insert_1_both): Call set_text_properties with last
6090 parameter nil so that no after changes will be signaled.
6091
6092 * lisp.h: Add prototype for set_text_properties.
6093
18df9369
GM
6094 * xfaces.c (set_lface_from_font_name): Fix previous change.
6095 (recompute_basic_faces): Change assert to abort.
6096
71a8e74b
DL
60971999-11-25 Dave Love <fx@gnu.org>
6098
6099 * fns.c (Fnthcdr, Fnreverse): Inline cdr.
6100 (Fmember, Fdelq, Fdelete): Inline car.
6101 (Fy_or_n_p): Doc fix.
6102
bc6a5782
GM
61031999-11-25 Gerd Moellmann <gerd@gnu.org>
6104
3221576b 6105 * xfaces.c (set_lface_from_font_name): New parameter may_fail_p.
18df9369 6106 Callers changed. If specified font name is bogus, and may_fail_p
3221576b
GM
6107 is not set, try to use a reasonable default.
6108
bc6a5782
GM
6109 * dispnew.c (direct_output_for_insert): Set glyph row's
6110 displays_text_p flag. Correct window's window_end_vpos if
6111 necessary.
6112
0c8559bb
PE
61131999-11-25 Paul Eggert <eggert@twinsun.com>
6114
6115 * emacs.c (fixup_locale): Don't bother to record initial locale.
6116 (synchronize_locale): If the desired locale is nil,
6117 treat it as if it were the empty string,
6118 so that we set the locale from the environment.
6119
35737351
KH
61201999-11-25 Kenichi Handa <handa@etl.go.jp>
6121
6122 * fileio.c (Finsert_file_contents): Set buffer-file-coding-system
6123 of the current buffer via Fset.
6124
5562b47f
DL
61251999-11-24 Dave Love <fx@gnu.org>
6126
5562b47f
DL
6127 * xfaces.c: Don't duplicate Qmode_line definition done elsewhere.
6128
6129 * xfns.c: Don't duplicate Qdisplay definition done elsewhere.
6130
00da0e4a
GM
61311999-11-24 Gerd Moellmann <gerd@gnu.org>
6132
6133 * lisp.h (enum pvec_type): Put PVEC_FLAG in #if 0.
6134
6135 * emacs.c (PVEC_FLAG): New variable.
6136
b1775dc1
GM
61371999-11-23 Gerd Moellmann <gerd@gnu.org>
6138
6139 * unexaix.c (unexec): Use unsigned instead of uintptr_t because
6140 that fails on IBM PowerPC, AIX 4.2.
427ec082 6141
08de6200
EZ
61421999-11-22 Eli Zaretskii <eliz@is.elta.co.il>
6143
6144 * buffer.c (syms_of_buffer): Add %z, %Z, %m and %& to the doc
6145 string of mode-line-format. Remove the obsolete %t.
6146
02fda8ff
GM
61471999-11-22 Gerd Moellmann <gerd@gnu.org>
6148
f2fa858f
GM
6149 * dispnew.c (direct_output_for_insert): Increment glyph positions
6150 for glyphs from buffer text only.
6151
02fda8ff
GM
6152 * emacs.c (gdb_valbits, gdb_gctypebits, gdb_emacs_intbits)
6153 (gdb_data_seg_bits): New variables.
427ec082 6154
02fda8ff
GM
6155 * lisp.h (enum gdb_lisp_params): Put in #if 0, since it doesn't
6156 work on systems not allowing enumerators > INT_MAX, and it
6157 won't work if EMACS_INT is long long.
6158
1b0d24e7
PE
61591999-11-22 Paul Eggert <eggert@twinsun.com>
6160
6161 Port to SunOS 4.1.x again. Help out with Alpha port.
6162 Rename messages-locale to system-messages-locale,
6163 and likewise for time-locale.
427ec082 6164
1b0d24e7
PE
6165 * callproc.c (strerror): Remove decl.
6166 * fileio.c (strerror): Likewise.
6167 * process.c (strerror): Likewise.
6168 * emacs.c (strerror): Likewise.
6169 (Vsystem_messages_locale): Renamed from Vmessages_locale.
6170 All uses changed.
6171 (Vprevious_system_messages_locale): Likewise, from
6172 Vprevious_messages_locale.
6173 (Vsystem_time_locale): Likewise, from Vtime_locale.
6174 (Vprevious_system_time_locale): Likewise, from Vprevious_time_locale.
6175 (ABORT_RETURN_TYPE): New macro.
6176 (abort): Return type is now ABORT_RETURN_TYPE.
6177 (main): Always invoke init_signals, even if POSIX_SIGNALS is not
6178 defined.
6179 (syms_of_emacs): messages-locale -> system-messages-locale,
6180 previous-messages-locale -> previous-system-messages-locale,
6181 time-locale -> system-time-locale,
6182 previous-time-locale -> previous-system-time-locale.
6183
6184 * gmalloc.c (PP, __ptr_t): Assume ANSI C if STDC_HEADERS is defined.
6185 (const): Do not define; that's config.h's job.
6186 (<limits.h>): Include if HAVE_LIMITS_H is defined.
6187 (CHAR_BIT): Move test for definedness outside of limits.h condition.
6188 (<stddef.h>): Include if STDC_HEADERS is defined.
6189 (FREE_RETURN_TYPE): New macro.
6190 (free): Return type is now FREE_RETURN_TYPE.
6191
6192 * lisp.h (synchronize_system_time_locale): Renamed from
6193 synchronize_time_locale. All uses changed.
6194 (synchronize_system_messages_locale): Likewise, from
6195 synchronize_messages_locale.
6196
6197 * m/alpha.h (malloc, realloc, calloc): Remove decls;
6198 stdlib.h now does this.
6199
6200 * process.c (sys_siglist): Remove.
6201
6202 * s/sunos4-0.h (ABORT_RETURN_TYPE, FREE_RETURN_TYPE):
6203 New macros.
6204
6205 * syntax.c (scan_sexps_forward): Use abort, not assert.
6206
6207 * sysdep.c (my_sys_siglist): New var.
6208 (sys_siglist): New macro. Remove old initialized vars of same name.
6209 (init_signals): Initialize sys_siglist.
6210
6211 * xfns.c (abort): Remove decl; stdlib.h now does this.
6212
0dcd5b54
DL
62131999-11-18 Dave Love <fx@gnu.org>
6214
946173ad
DL
6215 * filelock.c: Add forward declaration for get_boot_time_1.
6216
0dcd5b54
DL
6217 * dispnew.c (Finternal_show_cursor_p): Fix doc string.
6218
71447e8f
GM
62191999-11-18 Gerd Moellmann <gerd@gnu.org>
6220
6221 * buffer.h (struct buffer_text): Add comment about moving
6222 buffer text if REL_ALLOC is defined.
6223
eeedff63
KH
62241999-11-18 Kenichi Handa <handa@etl.go.jp>
6225
6226 * lisp.h (KEY_DESCRIPTION_SIZE): New macro.
6227
6228 * keyboard.c (echo_char): Use KEY_DESCRIPTION_SIZE to check free
6229 memory for push_key_description.
6230
6231 * keymap.c (Fsingle_key_description): Use KEY_DESCRIPTION_SIZE to
6232 allocate memory for push_key_description.
6233 (describe_buffer_bindings): Likewise.
6234
5d7e4a2c
GM
62351999-11-17 Gerd Moellmann <gerd@gnu.org>
6236
6237 * xfns.c (Fx_show_busy_cursor): Doc-fix.
6238 (Fx_hide_busy_cursor): Ditto.
6239
62401999-11-17 Marco Walther <walther@siemens-pyramid.com>
6241
6242 * unexsni.c (unexec): Handle .rel.dyn section.
6243
b5b41e02
DL
62441999-11-16 Dave Love <fx@gnu.org>
6245
6246 * doc.c (Fdocumentation): Remove gcpro here too.
6247
e35b6123
GM
62481999-11-16 Gerd Moellmann <gerd@gnu.org>
6249
6250 * keyboard.c (command_loop_1): Remove no_redisplay.
6251
83c8f461 62521999-11-16 Richard M. Stallman <rms@gnu.org>
0a14b9bb
GM
6253
6254 * print.c (PRINTPREPARE): Don't call setup_echo_area_for_printing
6255 in noninteractive.
6256
b05d3bee
GM
62571999-11-14 Gerd Moellmann <gerd@gnu.org>
6258
5bcfeb49
GM
6259 * xdisp.c (ensure_echo_area_buffers): New.
6260 (with_echo_area_buffer): Use it.
6261 (setup_echo_area_for_printing): Ditto.
6262
b05d3bee
GM
6263 * buffer.c (indicate-empty-lines): Doc-fix.
6264
9b2e6e4c
GM
62651999-11-12 Gerd Moellmann <gerd@gnu.org>
6266
e7f90eab
GM
6267 * term.c (term_init): If "op" isn't available, don't support color
6268 because we can't switch back to the default foreground and
6269 background.
6270
9b2e6e4c
GM
6271 * doc.c (Fdocumentation_property): Remove GCPRO because
6272 Fsubstitute_command_keys gcpro's the string.
6273
1bf21027
KH
62741999-11-12 Kenichi Handa <handa@etl.go.jp>
6275
6276 * editfns.c (Ftranslate_region): Check the buffer multibyteness.
6277
3bc6df53
GM
62781999-11-11 Gerd Moellmann <gerd@gnu.org>
6279
6280 * print.c, keymap.c, indent.c, insdel.c, keyboard.c, intervals.c,
6281 lread.c, textprop.c, undo.c, emacs.c, lisp.h, intervals.h,
6282 buffer.h, config.in, Makefile.in: Remove USE_TEXT_PROPERTIES.
6283
35a5514b
GM
62841999-11-10 Gerd Moellmann <gerd@gnu.org>
6285
6286 * xfns.c (QCuser_data): Removed.
6287 (syms_of_xfns): Initialization of QCuser_data removed.
6288 (parse_image_spec): Don't handle :user-data specially. Allow
6289 unknown keys. Remove parameter ALLOW_OTHER_KEYS.
6290 (xbm_image_p, xbm_load, xpm_image_p, pbm_image_p, png_image_p)
6291 (tiff_image_p, jpeg_image_p, gif_image_p, gs_image_p): Call
6292 parse_image_spec accordingly.
6293
83c8f461 62941999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
6295
6296 * cmds.c (Fbeginning_of_line): Doc fix.
6297 (Fend_of_line): Doc fix.
6298
6299 * editfns.c (Fline_beginning_position): If N is not 1,
6300 pass t to Fconstrain_to_field for ESCAPE-FROM-EDGE.
6301
6302 * syntax.c (Fforward_word): Handle fields even if would have hit
6303 an edge of the buffer. Return nil if affected by fields.
6304
83c8f461 63051999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
6306
6307 * editfns.c (preceding_pos): Function deleted.
6308 (text_property_stickiness): Decrement POS directly.
6309 Fix a confusion that used PT instead of POS.
6310
6311 * editfns.c (find_field): Properly handle the case
6312 of a field boundary where `field' inherits from neither side.
6313
6314 * editfns.c (Ffield_beginning, Ffield_end): Doc fixes.
6315 (Ferase_field, Ffield_string, Ffield_string_no_properties): Doc fixes.
6316
fa9aabf6
GM
63171999-11-08 Gerd Moellmann <gerd@gnu.org>
6318
6319 * bytecode.c (Fbyte_code) <BinsertN, Bcall>: Do the
6320 BEFORE_POTENTIAL_GC before DISCARD.
6321
4015b3c0
GM
63221999-11-07 Gerd Moellmann <gerd@gnu.org>
6323
033a5fa3
GM
6324 * alloc.c (Fgarbage_collect): Call unmark_byte_stack.
6325
6326 * lisp.h: Add prototype for unmark_byte_stack.
6327
6328 * bytecode.c (mark_byte_stack): Use XMARKBIT and XMARK.
6329 (unmark_byte_stack): Renamed from relocate_byte_pcs. Use
6330 XUNMARK.
6331
55b064bd
GM
6332 * xdisp.c (resize_mini_window): Fix computation of needed
6333 mini-window height.
6334
6335 * alloc.c, buffer.c, editfns.c, xdisp.c: Remove conditional
6336 compilation on USE_TEXT_PROPERTIES.
01e9b9df 6337
4015b3c0 6338 * Fbyte_code: Use block statements in cases and declare v1 and v2
60af03f1 6339 locally there. Rearrange case statements so that those most
4015b3c0
GM
6340 frequently executed come first. Avoid goto's in frequently
6341 executed cases.
6342
fe512f27
GM
63431999-11-05 Gerd Moellmann <gerd@gnu.org>
6344
dd59e217
GM
6345 * bytecode.c (Fbyte_code): Use BEFORE_POTENTIAL_GC and
6346 AFTER_POTENTIAL_GC around internal_catch.
6347
bcf28080
GM
6348 * alloc.c (Fgarbage_collect): Call mark_byte_stack and
6349 relocate_byte_pcs.
6350 (init_alloc_once, init_alloc): Set byte_stack_list to null.
6351
6352 * eval.c (struct catchtag): Add member byte_stack.
6353 (internal_catch, Fcondition_case, internal_condition_case)
dd59e217 6354 (internal_condition_case_1): Save value of byte_stack_list in
bcf28080
GM
6355 catchtag.
6356 (unwind_to_catch): Restore byte_stack_list from catchtag.
6357
6358 * lisp.h: Add prototypes for new functions in bytecode.c.
6359 Add extern declaration for byte_stack_list.
6360
6361 * bytecode.c (struct byte_stack): New.
6362 (byte_stack_list, mark_byte_stack, relocate_byte_pcs): New
6363 (BEFORE_POTENTIAL_GC, AFTER_POTENTIAL_GC): New.
6364 (FETCH, PUSH, POP, DISCARD, TOP, MAYBE_GC): Rewritten.
6365 (HANDLE_RELOCATION): Removed.
6366 (Fbyte_code): Use byte_stack structures.
6367
4d59c34c
GM
6368 * filelock.c (Ffile_locked_p): Make FILENAME a required argument.
6369
fe512f27
GM
6370 * buffer.c (syms_of_buffer): Extend documentation of
6371 mode-line-format.
6372
60b64cd6
GM
63731999-11-04 Gerd Moellmann <gerd@gnu.org>
6374
6375 * editfns.c (Fdelete_field): Renamed from Ferase_field.
6376
6377 * minibuf.c (do_completion, Fminibuffer_complete_word): Use
6378 Ferase_field instead of Fdelete_field.
6379
b51b619b
GM
63801999-11-03 Gerd Moellmann <gerd@gnu.org>
6381
6382 * dispnew.c (Finternal_show_cursor): Change it to set the
6383 cursor on/off, not toggle its state.
6384 (Finternal_show_cursor_p): New.
6385 (syms_of_display): Defsubr Sinternal_show_cursor_p.
6386
5865af0d
DL
63871999-11-03 Dave Love <fx@gnu.org>
6388
6389 * charset.c (split_non_ascii_string): Define return value.
6390
82a700f3
GM
63911999-11-03 Gerd Moellmann <gerd@gnu.org>
6392
edfef199
GM
6393 * minibuf.c (string_to_object): New.
6394 (read_minibuf_noninteractive): New.
6395 (read_minibuf): Call read_minibuf_noninteractive if
6396 noninteractive. Use string_to_object.
6397
82a700f3
GM
6398 * doc.c (Fdocumentation_property): Fix bug bypassing UNGCPRO.
6399
b5540f0d
DL
64001999-11-02 Dave Love <fx@gnu.org>
6401
e69dcd60
DL
6402 * gnu-linux.h: Use SIGCHLD, not SIGCLD (not in glibc 2.1).
6403
827a1788
DL
6404 * process.c: Define _GNU_SOURCE before config.h to get strsignal
6405 declared with glibc2.
b5540f0d 6406
a69a6e61
GM
64071999-11-02 Gerd Moellmann <gerd@gnu.org>
6408
6409 * lisp.h (QUIT): Give it statement form.
6410
87e21fbd
DL
64111999-11-02 Dave Love <fx@gnu.org>
6412
6413 * eval.c (init_eval): Conditionalize declaration of gcpro_level.
6414
1b335865
GM
64151999-11-02 Gerd Moellmann <gerd@gnu.org>
6416
9fb5e03d
GM
6417 * xfns.c (QCuser_data): New.
6418 (syms_of_xfns): Initialize QCuser_data.
6419 (parse_image_spec): Ignore :user-data DATA properties.
6420
1b335865
GM
6421 * xdisp.c (display_line): Set charpos of first glyph in blank
6422 lines not corresponding to any text to -1, even if no glyphs are
6423 filled in in that line.
6424
e76f1c44
GM
64251999-11-01 Gerd Moellmann <gerd@gnu.org>
6426
427ec082 6427 * xfns.c (png_load) [PNG_READ_sRGB_SUPPORTED]: Put code using
36fcd3d9
GM
6428 png_get_sRGB in #ifdef.
6429
111259b4
GM
6430 * dispnew.c (Finternal_show_cursor): Renamed from Fshow_cursor.
6431 (syms_of_display): Use the new name.
6432
dd5c96e8
GM
6433 * textprop.c (verify_interval_modification): Signal text-read-only
6434 instead of calling error.
6435
db8878fb
GM
6436 * data.c (Qtext_read_only): New built-in error.
6437 (syms_of_data): Initialize it.
6438
6439 * lisp.h: Add extern declaration for Qtext_read_only.
6440
e76f1c44
GM
6441 * syntax.c: Remove whitespace after open or in front of closing
6442 parentheses.
6443
83c8f461 64441999-11-01 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
6445
6446 * Makefile.in (w16select.o, sound.o): Don't depend on lisp.h.
6447
7843e09c
GM
64481999-10-31 Gerd Moellmann <gerd@gnu.org>
6449
575ed805
GM
6450 * xdisp.c (resize_mini_window): Compute needed height differently.
6451
7843e09c
GM
6452 * fns.c (Flength): Unroll loop over lists.
6453
6454 * xdisp.c (append_space): Return non-zero if space was appended.
6455 (display_line): Set charpos of first glyph to -1 only if that
6456 glyph is the space added by append_glyph.
6457
83c8f461 64581999-10-30 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
6459
6460 * print.c (strout): Consider `noninteractive' and use stdout
6461 only when PRINTCHARFUN is t.
6462
6463 * lisp.h (struct gcpro) [DEBUG_GCPRO]: New field `level'.
6464 (gcpro_level): Declare it extern.
6465 [DEBUG_GCPRO] (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5):
6466 Alternate definitions that set `level' and increment `gcpro_level'.
6467 [DEBUG_GCPRO] (UNGCPRO): Alternate definition that checks gcpro_level.
6468
6469 * eval.c [DEBUG_GCPRO] (gcpro_level): New variable.
6470 (init_eval) [DEBUG_GCPRO]: Initialize it.
6471 (unwind_to_catch) [DEBUG_GCPRO]: Set gcpro_level
6472 from remaining gcprolist.
6473
3636f7a3
KH
64741999-10-29 Kenichi Handa <handa@etl.go.jp>
6475
6476 * coding.c (code_convert_region): Update `dst' correctly.
6477
a2ad7096
GM
64781999-10-28 Gerd Moellmann <gerd@gnu.org>
6479
6480 * fns.c (Fmemq, Fassq, Frassq, assq_no_quit, Fassoc)
6481 (Frassoc): Rewritten.
6482
1e3196e8
GM
64831999-10-27 Noah Friedman <friedman@splode.com>
6484
6485 * s/gnu-linux.h [HAVE_DEV_PTMX]: Redefine FIRST_PTY_LETTER to 'z'.
6486 Define PTY_NAME_SPRINTF.
6487 Redefine PTY_TTY_NAME_SPRINTF.
6488 * config.in: Add undef for HAVE_DEV_PTMX.
6489
83c8f461 64901999-10-26 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
6491
6492 * regex.c (POP_FAILURE_POINT): Use failure_id.integer
6493 as arg to DEBUG_POP and DEBUG_PRINT.
6494
83c8f461 64951999-10-27 Richard M. Stallman <rms@gnu.org>
17dbfaad
GM
6496
6497 * data.c (Qad_activate_internal): Renamed from Qad_activate.
6498 (Ffset): Call Qad_activate_internal.
6499 (syms_of_data): Initialize Qad_activate_internal.
6500
26922151
GM
65011999-10-27 Gerd Moellmann <gerd@gnu.org>
6502
6503 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing if
6504 Vterminal_frame is selected and Vwindow_system is non-nil.
6505
67a5596f
GM
65061999-10-26 Gerd Moellmann <gerd@gnu.org>
6507
2bea706b
GM
6508 * xdisp.c (echo_area_display): Put previous change in #if 0.
6509
67a5596f
GM
6510 * emacs.c (standard_args): Add `file' as synonym for `visit',
6511 `execute' as synonym for `eval'.
6512 (main): Add new options to usage message.
6513
81dc5de5
GM
65141999-10-25 Gerd Moellmann <gerd@gnu.org>
6515
6516 * data.c (Qhash_table): New.
6517 (Ftype_of): Return it for hash tables.
6518 (syms_of_data): Initialize Qhash_table.
6519
83c8f461 65201999-10-25 Richard M. Stallman <rms@gnu.org>
bd3c545d
GM
6521
6522 * regex.c (POP_FAILURE_POINT): Extract failure_id as an integer.
6523
66e4690f 65241999-10-24 Ken Raeburn <raeburn@gnu.org>
3a7093d8 6525
7539e11f
KR
6526 * alloc.c: Undef HIDE_LISP_IMPLEMENTATION before including
6527 lisp.h.
6528
6529 * buffer.c (Fbuffer_list, Fget_file_buffer, get_truename_buffer,
6530 Fbuffer_local_variables, Fother_buffer, record_buffer,
6531 set_buffer_internal_1, Fbury_buffer, Fkill_all_local_variables,
6532 swap_out_buffer_local_variables, overlays_at, overlays_in,
6533 overlay_touches_p, overlay_strings, recenter_overlay_lists,
6534 fix_overlays_in_range, fix_overlays_before, Foverlay_get,
6535 Foverlay_put, report_overlay_modification, evaporate_overlays):
6536 Use XCAR, XCDR, and XFLOAT_DATA instead of explicit member
6537 references.
6538 * data.c (Fcar, Fcar_safe, Fcdr, Fcdr_safe, Fsetcar, Fsetcdr,
6539 swap_in_symval_forwarding, set_internal, default_value,
6540 Fset_default, Fmake_variable_buffer_local, Fmake_local_variable,
6541 Fmake_variable_frame_local, Flocal_variable_p,
6542 Flocal_variable_if_set_p, arithcompare, Fzerop, cons_to_long,
6543 Fnumber_to_string, float_arith_driver, Fadd1, Fsub1): Likewise.
6544 * dispnew.c (Fframe_or_buffer_changed_p): Likewise.
6545 * emacs.c (main): Likewise.
6546 * fontset.c (fs_load_font, fs_register_fontset,
6547 CACHED_FONTSET_NAME, CACHED_FONTSET_REGEX, Fquery_fontset,
6548 Fnew_fontset, Fset_fontset_font): Likewise.
6549 * frame.c (do_switch_frame, next_frame, prev_frame,
6550 other_visible_frames, Fdelete_frame, Fvisible_frame_list):
6551 Likewise.
6552 * keyboard.c (read_char, help_char_p, event_to_kboard,
6553 kbd_buffer_get_event, timer_start_idle, timer_check,
6554 make_lispy_event, apply_modifiers, reorder_modifiers,
6555 Fevent_convert_list, lucid_event_type_list_p, menu_bar_items,
6556 menu_bar_one_keymap, menu_item_eval_property_1, parse_menu_item,
6557 tool_bar_items, read_char_x_menu_prompt, read_key_sequence,
6558 Fcommand_execute, Fexecute_extended_command): Likewise.
6559 * minibuf.c (read_minibuf, get_minibuffer, Ftry_completion,
6560 Fall_completions): Likewise.
6561 * window.c (Fset_window_margins): Likewise.
6562
6563 * callint.c (quotify_args): Don't explicitly use struct
6564 Lisp_Cons, use Lisp_Object and XCAR/XCDR instead.
6565
3a7093d8
KR
6566 * s/netbsd.h (HAVE_GETLOADAVG): Define as 1.
6567 (UNEXEC, START_FILES, LIB_STANDARD, LIB_GCC): Define ELF versions,
6568 if __ELF__ is defined.
6569
2a3d7146
GM
65701999-10-24 Gerd Moellmann <gerd@gnu.org>
6571
6572 * window.c (Fnext_window): Add a QUIT in the loop.
6573
8ac52782
GM
65741999-10-23 Gerd Moellmann <gerd@gnu.org>
6575
427ec082 6576 * Makefile.in (bootstrap, bootstrap-emacs, bootstrap-temacs):
8ac52782
GM
6577 New targets.
6578
05f0d15a
DL
65791999-10-22 Dave Love <fx@gnu.org>
6580
6581 * emacs.c (main): Enable profiling conditional on __linux also.
6582
882fb0e6
GM
65831999-10-20 Gerd Moellmann <gerd@gnu.org>
6584
6585 * xrdb.c (x_load_resources): Set default resources for resource
6586 classes instead of for the specific Emacs.
6587
b5f5bc31
GM
65881999-10-19 Gerd Moellmann <gerd@gnu.org>
6589
66f4dd69
GM
6590 * s/freebsd.h (HAVE_GETLOADAVG): Define as 1 because config.h
6591 defines it that way.
427ec082 6592
b5f5bc31
GM
6593 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing
6594 if selected_frame is equal to Vterminal_frame.
6595
68c45bf0 65961999-10-19 Paul Eggert <eggert@twinsun.com>
427ec082 6597
68c45bf0 6598 Add support for large files, 64-bit Solaris, system locale codings.
427ec082 6599
68c45bf0
PE
6600 * Makefile.in (emacs): Set the LC_ALL environment variable to "C"
6601 when dumping, so that the dumped Emacs doesn't have stray locale info.
6602 (dired.o): Depend on systime.h.
6603 (editfns.o): Depend on coding.h.
6604
6605 * alloc.c, buffer.c, callproc.c, ccl.c, charset.c, coding.c, data.c,
6606 dispnew.c, editfns.c, emacs.c, filelock.c, floatfns.c, hftctl.c,
6607 keyboard.c, process.c, sysdep.c, unexelf.c, unexhp9k800.c,
6608 unexsunos4.c, vmsfns.c, vmsgmalloc.c, w32faces.c, w32menu.c, w32term.c,
6609 w32xfns.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
6610 Include <config.h> before any system include files.
6611
6612 * alloc.c, buffer.c, ccl.c, data.c, editfns.c, emacs.c, eval.c,
6613 fileio.c, filelock.c, frame.c, insdel.c, keymap.c, lread.c,
6614 m/alpha.h, print.c, search.c, sysdep.c, xdisp.c, xfaces.c, xfns.c,
6615 xmenu.c, xterm.c:
6616 Do not include <stdlib.h>, as <config.h> does this now.
6617
6618 * callproc.c (Fcall_process):
6619 Synchronize messages locale before invoking strerror.
6620 Decode resulting string with locale-coding-system.
6621
6622 * coding.c (Vlocale_coding_system): New var.
6623 (syms_of_coding): Adjust to above change.
6624 (emacs_strerror): New function.
6625
6626 * coding.h (emacs_strerror, Vlocale_coding_system): New decls.
427ec082 6627
68c45bf0
PE
6628 * config.in (HAVE_STDIO_EXT_H, HAVE_TM_GMTOFF, HAVE___FPENDING,
6629 HAVE_FTELLO, HAVE_GETLOADAVG, HAVE_MBLEN, HAVE_MBRLEN,
6630 HAVE_STRSIGNAL): New macros.
6631 (BITS_PER_LONG): Default to 64 if _LP64 is defined.
6632 <stdlib.h>: Include if HAVE_STDLIB_H is defined and NOT_C_CODE isn't.
6633
6634 * dired.c: Include "systime.h".
6635 (Ffile_attributes): Do not cast s.st_size to int; this loses
6636 information if int is 32 bits but st_size and EMACS_INT are larger.
6637 Treat large device numbers like large inode numbers.
6638
6639 * dispnew.c (PENDING_OUTPUT_COUNT): Use __fpending if available.
6640
6641 * editfns.c: Include coding.h.
6642 (emacs_strftime): Remove decl.
6643 (emacs_strftimeu): New decl.
6644 (emacs_memftimeu): Renamed from emacs_memftime; new arg UT.
6645 Use emacs_strftimeu instead of emacs_strftime.
6646 (Fformat_time_string): Convert format string using
6647 Vlocale_coding_system, and convert result back. Synchronize time
6648 locale before invoking lower level function. Invoke
6649 emacs_memftimeu, passing ut, instead of emacs_memftime.
427ec082 6650
68c45bf0
PE
6651 * emacs.c: Include <locale.h> if HAVE_SETLOCALE is defined.
6652 (Vmessages_locale, Vprevious_messages_locale, Vtime_locale,
6653 Vprevious_time_locale): New variables.
6654 (main): Invoke setlocale early, so that initial error messages are
6655 localized properly. But skip locale-setting if LC_ALL is "C".
6656 Fix up locale when it's safe to do so.
6657 (fixup_locale): Moved here from xterm.c.
6658 (synchronize_locale, synchronize_time_locale,
6659 synchronize_messages_locale): New functions.
6660 (syms_of_emacs): Accommodate above changes.
6661
6662 * fileio.c (report_file_error): Convert strerror output according
6663 to Vlocale_coding_system.
6664 (Finsert_file_contents): Check for arithmetic overflow in
6665 computations that depend on file size. Report IO errors
6666 with emacs_strerror, not strerror.
6667
6668 * fns.c (Fgethash): Declare dflt parameter.
6669
6670 * gmalloc.c: Do not define const to nothing if HAVE_CONFIG_H
6671 is defined; that's config.h's job.
6672
6673 * lisp.h (EMACS_INT, BITS_PER_EMACS_INT, EMACS_UINT): If _LP64,
6674 default these values to long, BITS_PER_LONG, and unsigned long.
6675 (VALBITS, MARKBIT, XINT): Do not assume 32-bit EMACS_INT.
6676 (PNTR_COMPARISON_TYPE): Default to EMACS_UINT, not to unsigned int.
6677 (code_convert_string_norecord, fixup_locale,
6678 synchronize_messages_locale, synchronize_time_locale,
6679 emacs_open, emacs_close, emacs_read, emacs_write): New decls.
6680 All Emacs callers of open, close, read, write changed to use
6681 emacs_open, emacs_close, emacs_read, emacs_write.
6682
6683 * lread.c (file_offset, file_tell): New macros. All uses of ftell
6684 changed to file_tell.
6685 (saved_doc_string_position, prev_saved_doc_string_position): Now
6686 of type file_offset.
6687 (init_lread): Do not fix locale here; fixup_locale now does this.
6688
6689 * m/amdahl.h, s/usg5-4.h:
6690 (NSIG): Remove.
6691 (NSIG_MINIMUM): New macro.
6692
6693 * m/cydra5.h, m/dpx2.h, m/mips.h, m/pfa50.h, m/sps7.h, m/stride.h,
6694 m/ustation.h, s/gnu-linux.h, s/hpux.h, s/iris3-5.h, s/iris3-6.h,
6695 s/umips.h, s/usg5-4.h:
6696 (SIGIO): Do not undef.
6697 (BROKEN_SIGIO): New macro.
6698
6699 * m/ustation.h:
6700 (SIGTSTP): Do not undef.
6701 (BROKEN_SIGTSTP): New macro.
6702
6703 * s/gnu-linux.h:
6704 (SIGPOLL, SIGURG): Do not undef.
6705 (BROKEN_SIGPOLL, BROKEN_SIGURG): New macros.
6706
6707 * s/ptx4.h:
6708 (SIGINFO): Do not undef.
6709 (BROKEN_SIGINFO): New macros.
427ec082 6710
68c45bf0
PE
6711 * m/delta.h, s/ptx.h, s/template.h: Doc fix.
6712
6713 * mktime.c, strftime.c: Update to glibc 2.1.2 version, with
6714 some Emacs-related changes merged.
6715
6716 * print.c (float_to_string): Prepend "-" to representation of a
6717 NaN if the NaN is negative.
6718
6719 * process.c (sys_siglist): Omit if HAVE_STRSIGNAL.
6720 (wait_reading_process_input): Use emacs_strerror, not strerror.
427ec082 6721
68c45bf0
PE
6722 * process.c (status_message, sigchld_handler): Synchronize locale,
6723 then use strsignal istead of sys_siglist.
6724 * w32proc.c (sys_wait): Likewise.
427ec082 6725
68c45bf0
PE
6726 * s/aix3-1.h, s/bsd4-1.h, s/dgux.h, s/gnu-linux.h, s/hiuxmpp.h,
6727 s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/osf1.h, s/rtu.h,
6728 s/sunos4-1.h, s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h,
6729 s/usg5-2.h, s/usg5-3.h, s/xenix.h:
6730 (open, close, read, write, INTERRUPTIBLE_OPEN,
6731 INTERRUPTIBLE_CLOSE, INTERRUPTIBLE_IO): Remove.
6732
6733 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): New macros.
6734
6735 * sysdep.c (sys_read, sys_write, read, write, sys_close, close,
6736 sys_open, open): Remove.
6737 (emacs_open, emacs_close, emacs_read, emacs_write): Always define;
6738 the old INTERRUPTIBLE_OPEN, INTERRUPTIBLE_CLOSE, and INTERRUPTIBLE_IO
6739 macros are no longer used.
6740 (emacs_open): Renamed from sys_open. Merge BSD4_1 version.
6741 (emacs_close): Renamed from sys_close.
6742 (emacs_read): Renamed from sys_read.
6743 (emacs_write): Renamed from sys_write.
6744 (sys_siglist): Do not declare if HAVE_STRSIGNAL.
6745 (dup2): Do not print error on failure; the real dup2 doesn't.
6746 (strsignal): New function, defined if !HAVE_STRSIGNAL.
6747
6748 * syssignal.h (SIGINFO): Undef if defined and if BROKEN_SIGINFO
6749 is defined.
6750 (SIGIO, SIGPOLL, SIGTSTP, SIGURG): Likewise.
6751 (NSIG): If less than NSIG_MINIMUM, define to NSIG_MINIMUM.
6752 (strsignal): Declare if !HAVE_STRSIGNAL.
6753
6754 * unexelf.c (ElfBitsW, ELFSIZE, ElfExpandBitsW): New macros.
6755 (ElfW): Define in terms of ElfExpandBitsW.
6756
6757 * w32proc.c (sys_siglist): Remove decl.
6758
6759 * xdisp.c (decode_mode_spec): 3rd arg is int, not char, to comply
6760 with ANSI C.
6761 (display_string): Declare face_string_pos arg.
6762
6763 * xfns.c (Fx_show_tip): Declare timeout param.
6764
6765 * xterm.c: No need to include locale.h.
6766 (x_alloc_lighter_color, x_setup_relief_color):
6767 Pass arg as double, not float, for compatibility with ANSI C.
6768 (fixup_locale): Move to emacs.c.
6769 (x_term_init): Do not setlocale or fixup locale; the main program
6770 does this now.
6771
2f0b74ea
DL
67721999-10-18 Dave Love <fx@gnu.org>
6773
6774 * doc.c (Fdocumentation_property): Gcpro `tem'.
6775
471aa4a0
KH
67761999-10-18 Kenichi Handa <handa@etl.go.jp>
6777
6778 * lread.c (Fload): Calculate bytes of filename correctly.
6779 (openp): Likewise.
6780
aca2020b
KH
67811999-10-18 Keisuke Nishida <kxn30@po.cwru.edu>
6782
6783 * print.c (print_preprocess): In case print-circle is nil,
6784 add OBJ to Vprint_number_table only when OBJ is a symbol.
6785
1f5fe392 67861999-10-18 Kenichi Handa <handa@etl.go.jp>
b843d1ae
KH
6787
6788 * coding.c (code_convert_string): Add record_unwind_protect to
6789 assure setting inhibit_pre_post_conversion back to zero. Take
6790 care of the multibyteness of the working buffer.
6791
6792 * coding.c (inhibit_pre_post_conversion): New variable.
6793 (setup_coding_system): If inhibit_pre_post_conversion is nonzero,
6794 ignore post-read-conversion and pre-write-conversion property of
6795 the coding system.
6796 (code_convert_region_unwind): New function.
6797 (code_convert_region): Set inhibit_pre_post_conversion to 1 while
6798 running pre-write-conversion and post-read-conversion.
6799 (code_convert_string): Likewise.
6800
cd876a91
GM
68011999-10-17 Miles Bader <miles@gnu.org>
6802
6803 * editfns.c: Doc fix.
6804
68051999-10-17 Miles Bader <miles@gnu.org>
6806
6807 * editfns.c (Fconstrain_to_field): Make sure we don't violate the
6808 argument preconditions of find_before_next_newline in the case
6809 where both ONLY_IN_LINE and ESCAPE_FROM_EDGE are set and OLD_POS
6810 was indeed at the edge.
6811
68121999-10-17 Miles Bader <miles@gnu.org>
6813
6814 * minibuf.c (Fminibuffer_complete_and_exit): Supply value for new
6815 ESCAPE_FROM_EDGE parameter to Ffield_beginning.
6816
6817 * editfns.c (text_property_eq, text_property_stickiness): Don't
6818 use initializers for auto variables of type Lisp_Object.
6819 (find_field): Likewise. Use braces around nested ifs.
6820 (Fline_end_position): Store the raw eol in a variable, so that the
6821 final expression doesn't look so ugly.
6822 (Fconstrain_to_field): Doc fix.
6823 (preceding_pos): Renamed from `preceeding_pos'.
6824 (text_property_stickiness, find_field): Call preceding_pos,
6825 not preceeding_pos.
6826
68271999-10-17 Miles Bader <miles@gnu.org>
6828
6829 * editfns.c (Ffield_string_no_properties): New function.
6830 (text_property_stickiness, preceeding_pos): New functions.
6831 (Ffield_string): Remove PROPS parameter.
6832 (find_field): Add MERGE_AT_BOUNDARY parameter.
6833 Rewrite to use stickiness of `field' property to resolve
6834 ambiguous cases.
6835 (Ffield_beginning, Ffield_end): Add ESCAPE_FROM_EDGE parameter.
6836 (Fconstrain_to_field): Likewise.
6837 (syms_of_editfns): Init Sfield_string_no_properties.
427ec082 6838 (Ffield_string, Ferase_field, Ffield_end):
cd876a91
GM
6839 Supply new MERGE_AT_BOUNDARY argument to find_field.
6840 (Fline_beginning_position, Fline_end_position): Supply new
6841 ESCAPE_FROM_EDGE parameter to Fconstrain_to_field.
6842 Pass a value of Qt for the ONLY_IN_LINE argument to
6843 Fconstrain_to_field (only matters if N != 1).
6844 * syntax.c (Fforward_word): Supply new ESCAPE_FROM_EDGE parameter
6845 to Fconstrain_to_field.
6846
6847 * minibuf.c (Fminibuffer_complete_word): Use
6848 Ffield_beginning to find the prompt end.
6849
68501999-10-17 Miles Bader <miles@gnu.org>
6851
6852 * editfns.c (Fconstrain_to_field): Add get/set-current-point
6853 behavior when NEW_POS is nil.
6854 (find_field): Use XSETFASTINT instead of make_number.
6855 * minibuf.c (Fminibuffer_complete_and_exit): Test for an empty
6856 input string by seeing where the field begins, instead of
6857 looking at text-properties.
6858
68591999-10-17 Miles Bader <miles@gnu.org>
6860
6861 * editfns.c (Qfield): New variable.
6862 (find_field, Ferase_field, Ffield_string,
6863 Ffield_beginning, Ffield_end, Fconstrain_to_field): New functions.
6864 (Fline_beginning_position, Fline_end_position): Constrain to any field.
6865 (make_buffer_string_both): Remove minibuffer-prompt hack.
6866 (syms_of_editfns): Initialize Qfield, and subr entries for
6867 field functions above.
6868 * minibuf.c (read_minibuf): Don't save minibuffer prompt length on
6869 minibuf_save_list.
6870 Don't initialize minibuffer prompt length.
6871 Wrap prompt text-properties around the entire prompt.
6872 Add 'prompt text-property to prompt.
6873 Get final value with Ffield_string instead of make_buffer_string.
6874 (read_minibuf_unwind): Don't restore minibuffer prompt length from
6875 minibuf_save_list.
6876 (do_completion): Get minibuffer input with Ffield_string
6877 instead of Fbuffer_string.
6878 Erase minibuffer input with Ferase_field instead of erase_buffer.
6879 (Fminibuffer_complete_and_exit): Likewise.
6880 Test whether buffer is empty by looking for the 'prompt text
6881 property at the end.
6882 Set prompt length by looking for the end of the prompt text property,
6883 and save prompt length for later use (since there is no longer a
6884 buffer variable to get it from).
6885 (Fminibuffer_prompt_width, Fminibuffer_prompt_end): Functions removed.
6886 (syms_of_minibuf): Remove initializations of
6887 Sminibuffer_prompt_width and Sminibuffer_prompt_end.
6888 * buffer.h (struct buffer): Remove prompt_end_charpos field.
427ec082 6889 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer, Fkill_buffer):
cd876a91
GM
6890 Don't initialize prompt_end_charpos field.
6891 * syntax.c (Fforward_word): Likewise.
6892 Constrain to any field.
6893
3f6f7508
GM
68941999-10-16 Gerd Moellmann <gerd@gnu.org>
6895
6896 * window.c (enum save_restore_action): New.
6897 (save_restore_orig_size): Change parameter list. Add
6898 functionality to check for valid orig_top and orig_height members
6899 in a window tree.
6900 (grow_mini_window): Call save_restore_orig_size with new parameter
6901 list.
6902 (shrink_mini_window): Restore old window sizes only if old
6903 size information is valid in all windows in a window tree.
427ec082 6904
06482119
GM
69051999-10-15 Gerd Moellmann <gerd@gnu.org>
6906
2710454d
GM
6907 * xmenu.c (set_frame_menubar): Don't call
6908 x_set_menu_resources_from_menu_face here.
6909 (update_frame_menubar): Call x_set_menu_resources_from_menu_face.
6910
06482119
GM
6911 * xfns.c (gif_load): Fix handling of interlaced GIFs.
6912
17fa2837
DL
69131999-10-14 Dave Love <fx@gnu.org>
6914
6915 * xdisp.c (handle_fontified_prop): GCPRO `pos'.
6916
45f93416
GM
69171999-10-14 Gerd Moellmann <gerd@gnu.org>
6918
6919 * process.c (Fopen_network_stream): Don't loop if gethostbyname
6920 fails and h_errno is TRY_AGAIN.
6921
c765b723
DL
69221999-10-13 Dave Love <fx@gnu.org>
6923
6924 * filelock.c (lock_file): Move gcpro of `fn'.
6925
dace7f4e
GM
69261999-10-10 Gerd Moellmann <gerd@gnu.org>
6927
6928 * keyboard.c (auto-save-interval): Fix documentation.
427ec082 6929
83c8f461 69301999-10-09 Richard M. Stallman <rms@gnu.org>
73fb36f1
RS
6931
6932 * print.c (print): When removing objects from Vprint_number_table,
6933 only scan the newly added objects.
6934 (print_preprocess): If OBJ is a gensym, and print-continuous-numbering,
6935 unconditionally force it to stay in the table.
6936
85177c86
GM
69371999-10-09 Gerd Moellmann <gerd@gnu.org>
6938
6939 * xfns.c (prepare_image_for_display): Don't try to load image if
6940 loading it failed before.
6941 (lookup_image, prepare_image_for_display): Remember if loading the
6942 image failed.
6943 (xpm_load): Add missing UNBLOCK_INPUT.
6944
6945 * dispextern.h (struct image): New member load_failed_p.
6946
11e4de5d
SM
69471999-10-08 Stefan Monnier <monnier@cs.yale.edu>
6948
f28eba7b 6949 * fileio.c (Fmake_temp_name): Add a reference to `make-temp-file'
11e4de5d
SM
6950 in the docstring.
6951
f1da8f06
GM
69521999-10-08 Gerd Moellmann <gerd@gnu.org>
6953
6954 * xterm.c (XTread_socket) <ClientMessage, WM_TAKE_FOCUS>:
6955 Don't call XSetInputFocus because that can generate additional
6956 FocusIn events.
427ec082 6957
c37bbd4f
GM
69581999-10-07 Jeffrey C Honig <jch@bsdi.com>
6959
6960 * bsdos4.h [HAVE_LIBNCURSES]: Define TERMINFO and LIBS_TERMCAP.
6961
83c8f461 69621999-10-07 Richard M. Stallman <rms@gnu.org>
78cc5c64
GM
6963
6964 * process.c (wait_reading_process_input): When trying to suck
6965 input from one process, for accept-process-output,
6966 exit that loop if we get EAGAIN or EWOULDBLOCK.
6967
577d9e2f
GM
69681999-10-07 Gerd Moellmann <gerd@gnu.org>
6969
6970 * xfaces.c (Qbitmap_spec_p): Replaces Qpixmap_spec_p.
6971 (Fbitmap_spec_p): Replaces Fpixmap_spec_p.
6972 (load_pixmap): Use Fbitmap_spec_p and Qbitmap_spec_p instead of
6973 Fpixmap_spec_p and Qpixmap_spec_p.
6974 (load_face_colors, check_lface_attrs,
6975 merge_face_vector_with_property,
6976 Finternal_set_lisp_face_attribute): Use Fbitmap_spec_p.
6977 (syms_of_xfaces): Initialize Qbitmap_spec_p, defsubr
6978 Fbitmap_spec_p.
6979
f5737ad2
GM
69801999-10-07 Gerd Moellmann <gerd@gnu.org>
6981
6982 * xdisp.c (display_menu_bar): Use MENU_FACE_ID instead of
6983 MODE_LINE_FACE_ID.
6984
6985 * xfaces.c (toplevel) [USE_MOTIF]: Include some Motif headers.
6986 (struct x_resources) [USE_X_TOOLKIT]: New.
6987 (xm_apply_resources, xm_set_menu_resources_from_menu_face)
6988 [USE_MOTIF]: New.
6989 (xl_apply_resources, xl_set_menu_resources_from_menu_face)
6990 [USE_LUCID]: New.
6991 (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]: New.
6992 (Qmenu): New.
6993 (syms_of_xfaces): Initialize Qmenu.
6994 (realize_basic_faces): Realize face `menu'.
6995 (resolve_face_name): New.
6996 (lface_from_face_name): Use it.
6997 (Finternal_set_lisp_face_attribute): Ditto.
6998 (Fpixmap_spec_p): Rewritten. Extend doc string.
6999
7000 * xmenu.c (set_frame_menubar, xmenu_show): Call
7001 x_set_menu_resources_from_menu_face.
7002
7003 * dispextern.h (enum face_id): Add MENU_FACE_ID.
7004 (toplevel): Include X11/Intrinsic.h.
7005
6a1aa823
DL
70061999-10-03 Ken'ichi Handa <handa@gnu.org>
7007
7008 * coding.c (DECODE_CHARACTER_ASCII): Decode ASCII invocated to GR
7009 correctly.
7010
26901792
DL
70111999-09-30 Kenichi Handa <handa@etl.go.jp>
7012
7013 * category.c (modify_lower_category_set): Set default value of
7014 TABLE correctly.
7015
7016 * minibuf.c (Fminibuffer_complete_word): Calculate string byte
7017 size correctly.
7018
70191999-09-29 Gerd Moellmann <gerd@gnu.org>
7020
7021 * editfns.c (Fpropertize): Renamed from Fproperties.
7022
70231999-09-29 Gerd Moellmann <gerd@gnu.org>
7024
7025 * xdisp.c (resize_mini_window): Do nothing if frame is an X
7026 frame that hasn't been initialized yet.
7027
83c8f461 70281999-09-28 Richard M. Stallman <rms@gnu.org>
a04f1a93
PR
7029
7030 * keymap.c (Fsingle_key_description): Make tem big enough.
7031 (describe_buffer_bindings): Make buf big enough.
7032
83c8f461 70331999-09-27 Richard M. Stallman <rms@gnu.org>
d177c583
PR
7034
7035 * intervals.c (get_local_map): Use indirect_function,
7036 not Findirect_function.
7037
26901792
DL
70381999-09-27 Dave Love <fx@gnu.org>
7039
7040 * cm.h: Remove unneeded declaration of ospeed.
7041
70421999-09-26 Gerd Moellmann <gerd@gnu.org>
7043
7044 * lisp.h (toplevel): Add prototype for
7045 next_single_char_property_change.
7046
7047 * textprop.c (next_single_char_property_change): New.
7048
7049 * xdisp.c (display_prop_end, invisible_text_between_p): Use
7050 next_single_char_property_change.
7051
70521999-09-25 Gerd Moellmann <gerd@gnu.org>
7053
7054 * editfns.c (Fproperties): New.
7055 (syms_of_editfns): Defsubr it.
7056
7057 * xfns.c (lookup_image): Set image's timestamp because it's
7058 used when we look it up.
7059
70601999-09-23 Gerd Moellmann <gerd@gnu.org>
7061
7062 * window.c (enlarge_window): Add window parameter instead of using
7063 selected_window.
7064 (Fdisplay_buffer): Call it with window parameter instead of
7065 setting selected_window.
7066 (Fenlarge_window, Fshrink_window): Ditto.
7067 (shrink_mini_window): If there is no recorded height and position
7068 info, resize mini-window to height 1.
7069
7070 * xfns.c (image_error): Use add_to_log.
7071
7072 * xfaces.c (load_pixmap): Call add_to_log without frame parameter.
7073 (load_face_font_or_fontset, load_color,
7074 merge_face_vector_with_property): Ditto.
7075
7076 * dispextern.h: Add prototype for add_to_log.
7077
7078 * xfaces.c (add_to_log): Move to xdisp.c.
7079
7080 * xdisp.c (add_to_log): Moved from xfaces.c. Remove frame
7081 parameter.
7082
70831999-09-23 Gerd Moellmann <gerd@gnu.org>
7084
7085 * xterm.c (XTread_socket) <MotionNotify>: Change #ifdef
7086 USE_X_TOOLKIT to #ifdef USE_TOOLKIT_SCROLL_BARS.
7087
7088 * xdisp.c (resize_mini_window): Use grow_mini_window and
7089 shrink_mini_window.
7090
7091 * window.c (window_min_size): Add parameter ignore_fixed_p.
7092 (change_window_height): Call window_min_size with new parameter.
7093 (shrink_window_lowest_first, save_restore_orig_size,
7094 grow_mini_window, shrink_mini_window): New.
7095 (make_window, replace_window): Initialize orig_top and
7096 orig_height.
7097 (enlarge_window): Renamed from change_window_height. Make it
7098 static.
7099 (Fdisplay_buffer, Fenlage_window, Fshrink_window): Call
7100 enlarge_window instead of change_window_height.
7101
7102 * window.h (struct window): New members orig_top, orig_height.
7103 (toplevel): Add prototypes for grow_mini_window and
7104 shrink_mini_window. Remove prototype for change_window_height.
7105
71061999-09-21 Eli Zaretskii <eliz@gnu.org>
7107
7108 * frame.c (frame_name_fnn_p): Fix previous change.
7109
71101999-09-20 Gerd Moellmann <gerd@gnu.org>
7111
7112 * minibuf.c (toplevel): Move include of stdio.h to other includes.
7113
7114 * dispnew.c (direct_output_for_insert): Cast arguments to
7115 safe_bcopy to char *.
7116
7117 * lread.c (readchar): Remove unused variables.
7118 (read_filtered_event, read1, Fmapatoms): Ditto.
7119 (toplevel): Include intervals.h.
7120
7121 * eval.c (Fsignal): Remove unused variables.
7122 (Fcommandp, do_autoload): Ditto.
7123
7124 * lisp.h: Add prototype for safe_bcopy, fatal.
7125
7126 * editfns.c (init_editfns): Remove unused variables.
7127 (Fgoto_char, Fchar_after, Fformat): Ditto.
7128 (message_text, message_length): Put in #ifndef HAVE_MENUS.
7129
7130 * data.c (find_symbol_value): Remove unused variables.
7131 (Faref, Fstring_to_number): Ditto.
7132 (toplevel): Include stdio.h.
7133 (Fnumber_to_string): Cast XINT to long for %ld.
7134
7135 * casefiddle.c (casify_object): Remove unused variables.
7136 (casify_region): Ditto.
7137
427ec082 7138 * filelock.c (get_boot_time): Put local variable used in
26901792
DL
7139 conditinally compiled section in #ifdef.
7140 (toplevel): Include stdio.h.
7141
7142 * keymap.c (Flookup_key, Faccessible_keymaps, describe_vector,
7143 keys_of_keymap, syms_of_keymap): Remove unused variables.
7144
71451999-09-20 Gerd Moellmann <gerd@gnu.org>
7146
7147 * xdisp.c (sync_frame_with_window_matrix_rows): Disable frame rows
7148 whose corresponding window rows have been disabled in
7149 try_window_id.
7150
71511999-09-20 Gerd Moellmann <gerd@gnu.org>
7152
7153 * xdisp.c (compute_window_start_on_continuation_line): Handle case
7154 that window start is out of range.
7155 (handle_display_prop, handle_single_display_prop): Replace
7156 marginal area specifications like `left-margin' with `(margin
7157 left-margin)'.
7158 (Qmargin): New.
7159 (syms_of_xdisp): Initialize Qmargin.
7160
71611999-09-19 Gerd Moellmann <gerd@gnu.org>
7162
7163 * syntax.c (update_syntax_table, find_defun_start, back_comment,
7164 describe_syntax, skip_chars): Remove unused variables.
7165 (back_comment, forw_comment): Add braces to if-statement with
7166 if-else as dependent statement.
7167
7168 * process.c (list_processes_1): Remove unused variables.
7169 (Fopen_network_stream, create_process): Add parentheses to
7170 conditional expressions.
7171 (create_process): Put declaration of sigchld in #if 0.
7172 (Fopen_network_stream): Removed unused variables.
7173 (Fopen_network_stream, wait_reading_process_input,
7174 wait_reading_process_input, send_process, send_process): Ditto.
7175 (toplevel): Add prototypes for set_waiting_for_input and
7176 keyboard_bit_set.
7177
7178 * abbrev.c (Fexpand_abbrev): Remove unused variables.
7179
7180 * textprop.c (Fset_text_properties): Remove unused variables.
7181 (text_property_list, verify_interval_modification,
7182 interval_has_all_properties): Ditto.
7183
7184 * callproc.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
7185 (Fcall_process): Remove unused variable.
7186
7187 * keyboard.c (Frecursive_edit): Remove unused variable.
7188 (command_loop_1, safe_run_hooks, kbd_buffer_get_event,
7189 timer_check, make_lispy_event, menu_bar_items,
7190 menu_bar_one_keymap, menu_bar_item, parse_menu_item,
7191 parse_tool_bar_item, read_char_x_menu_prompt, read_key_sequence,
7192 kbd_buffer_get_event, make_lispy_event, read_char_x_menu_prompt,
7193 read_key_sequence): Ditto. Fread_key_sequence,
7194 Fread_key_sequence_vector, Fsuspend_emacs): Ditto.
7195 (read_key_sequence) [GOBBLE_FIRST_EVENT]: Put local variables only
7196 used when GOBBLE_FIRST_EVENT is defined in #ifdef
7197 (Fexecute_extended_command): Cast XINT to long for %ld.
7198 (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
7199 (toplevel): Include sys/types.h.
7200
7201 * lisp.h (RETURN_UNGCPRO): Use do-while (0) idiom.
7202 (toplevel): Add prototypes for stuff_char, and
7203 code_convert_string_norecord.
7204
72051999-09-19 Gerd Moellmann <gerd@gnu.org>
7206
7207 * buffer.h: Add prototype for r_re_alloc.
7208
7209 * insdel.c (copy_text): Removed unused variables.
7210 (count_combining_after, count_combining_after, insert_1_both,
7211 insert_from_string_1, insert_from_buffer_1, check_markers): Ditto.
7212 (adjust_after_replace, replace_range): Add parentheses to logical
7213 expressions. Remove unused variables.
7214 (CHECK_BYTE_COMBINING_FOR_INSERT): Add parentheses to logical
7215 expression.
7216
7217 * alloc.c (Fgarbage_collect): Remove unused variable.
7218 (compact_strings): Add parentheses around assignments in
7219 conditional context.
7220 (toplevel): Put declaration of unused function clear_marks
7221 in #if 0 like its definition.
7222
7223 * lisp.h: Add prototype for shrink_regexp_cache,
7224 sweep_weak_hash_tables.
7225
72261999-09-19 Dave Love <fx@gnu.org>
7227
7228 * process.c (Fopen_network_stream): Use strerror, not gai_strerror.
7229
7230 * doc.c (read_bytecode_char): Declare arg.
7231
7232 * lisp.h: Declare Fcurrent_message, Fmake_temp_name,
7233 read_bytecode_char, Fx_hide_busy_cursor, getloadavg.
7234
72351999-09-18 Richard Stallman <rms@gnu.org>
7236
7237 * xdisp.c (echo_area_display): Turn off code that returned
7238 without doing anything when using a terminal frame.
7239
83c8f461 72401999-09-17 Richard M. Stallman <rms@gnu.org>
27271329
PR
7241
7242 * unexelf.c (unexec): Don't get confused by a short section
7243 just before the bss section.
7244
26901792
DL
72451999-09-16 Gerd Moellmann <gerd@gnu.org>
7246
7247 * emacs.c (main): Remove unused variables.
7248 (sort_args, Fkill_emacs, Fkill_emacs): Ditto.
7249
7250 * lisp.h: Add prototype for uninterrupt_malloc, memory_warnings,
7251 init_fileio_once, syms_of_sound, init_xfns, init_fns
7252 init_sound, check_message_stack.
7253
7254 * emacs.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
7255
7256 * intervals.c (rotate_right, rotate_left): Add braces to avoid
7257 ambiguous else warning.
7258 (split_interval_left): Remove unused variables.
7259 (previous_interval, adjust_intervals_for_deletion,
7260 set_point_both, set_point_both, set_intervals_multibyte_1): Ditto.
7261 (icount, idepth, zero_length): Move into #if 0 section below
7262 original position where these are used.
7263
7264 * buffer.h [REL_ALLOC]: Add prototypes for r_alloc and r_alloc_free.
7265
7266 * buffer.c (Fkill_buffer): Remove unused variables.
7267 (Fkill_buffer, overlays_at, overlays_in, recenter_overlay_lists,
7268 fix_overlays_in_range, Fmove_overlay, Fprevious_overlay_change,
7269 init_buffer_once, (syms_of_buffer): Ditto.
7270
7271 * xrdb.c (get_fallback): Remove unused variable.
7272 (x_load_resources): Ditto. Put local variable used for Motif only
7273 in #ifdef USE_MOTIF.
7274
72751999-09-16 Gerd Moellmann <gerd@gnu.org>
7276
7277 * minibuf.c (read_minibuf): Remove unused variables.
7278 (read_minibuf, Fread_buffer, scmp, Fcompleting_read): Ditto.
7279 (do_completion): Move assignment out of conditional context.
7280 (Fdisplay_completion_list): Add parentheses to conditional expression.
7281
7282 * cm.c (toplevel) [HAVE_TERMCAP_H]: Include termcap.h.
7283
7284 * lisp.h: Add prototype for no_switch_window.
7285
7286 * window.c (Fset_window_buffer): Remove unused variables.
7287 (Fset_window_margins): Ditto.
7288
7289 * xdisp.c (resize_mini_window): Temporarily set the selected
7290 window's or Vminibuf_scroll_window's height to "fixed" around
7291 the call the change_window_height.
7292
7293 * window.c (window_fixed_size_p): Check window's height_fixed_p
7294 flag.
7295
7296 * window.h (struct window): New member height_fixed_p.
7297
7298 * dispnew.c (direct_output_forward_char): Don't use this method
7299 if showing a message or a message was just cleared because we
7300 might need to resize the mini-window.
7301
73021999-09-16 Gerd Moellmann <gerd@gnu.org>
7303
7304 * frame.c (Fdelete_frame): Correct local variable pointing to
7305 selected frame after selecting new frame.
7306
73071999-09-15 Richard Stallman <rms@gnu.org>
7308
7309 * puresize.h (BASE_PURESIZE): Increase to 525000.
7310
7311 * filelock.c (Vtemporary_file_directory): New variable.
7312 (syms_of_filelock): Set up Lisp variable.
7313
73141999-09-15 Gerd Moellmann <gerd@gnu.org>
7315
7316 * term.c (OUTPUT_IF, OUTPUT1_IF): Use do-while.
7317 (encode_terminal_code): Remove unused variables.
7318 (turn_off_face): Ditto.
7319 (toplevel): Include termcap.h if HAVE_TERMCAP_H.
7320
7321 * dispnew.c (update_frame_line): If writing whole desired line,
7322 don't clear to end of line if already at the end.
7323
73241999-09-15 Gerd Moellmann <gerd@gnu.org>
7325
7326 * xdisp.c (resize_mini_window): Don't report changed window
7327 height if it actually hasn't changed.
7328
427ec082 7329 * widget.c (set_frame_size, EmacsFrameSetCharSize): Remove
26901792
DL
7330 unused variables.
7331 (mark_shell_size_user_specified): Put in #if 0 because not used.
7332 (create_frame_gcs): Put in #if 0 because currently unused.
7333 (first_frame_p): Ditto.
7334
7335 * xmenu.c (single_menu_item, Fx_popup_menu, Fx_popup_menu,
7336 single_submenu, update_frame_menubar, set_frame_menubar,
7337 free_frame_menubar, xmenu_show, xdialog_show): Remove unused
7338 variables.
7339
7340 * print.c (PRINTFULLP): Removed because it is no longer used and
7341 is misleading.
7342 (Ferror_message_string): Remove unused variables.
7343 (print_object): Cast argument of sprintf to long for `%ld'
7344 specifier. Remove unused variable.
7345
73461999-09-14 Gerd Moellmann <gerd@gnu.org>
7347
7348 * sound.c (Fplay_sound): Remove usused variables.
7349 (be2hs): Put in #if 0 because it's currently not used.
7350
73511999-09-14 Ken Raeburn <raeburn@gnu.org>
7352
7353 * print.c (Ferror_message_string, print_error_message,
7354 print_object): Use XCAR, XCDR and XFLOAT_DATA instead of explicit
7355 member access.
7356
73571999-09-14 Gerd Moellmann <gerd@gnu.org>
7358
7359 * frame.h (CHECK_FRAME, CHECK_LIVE_FRAME): Put code in do-while.
7360
7361 * frame.c (Fnext_frame): Remove unused variable(s).
7362 (Fprevious_frame, Fmouse_pixel_position, frame_name_fnn_p): Ditto.
7363 (store_frame_param): Add parentheses to conditional expression.
7364 (Fmodify_frame_parameters): Remove unused variables.
7365 (Fmodify_frame_parameters, Fset_frame_size, Fset_frame_position):
7366 Ditto.
7367
7368 * xfns.c (x_set_background_color): Remove unused variable(s).
7369 (x_set_border_pixel): Ditto.
7370 (x_set_menu_bar_lines): Put local variable used only for
7371 non-toolkit case in #ifdef/#endif.
7372 (x_figure_window_size): Remove unused variable(s).
427ec082 7373 (x_figure_window_size, x_window, lookup_image,
26901792
DL
7374 xbm_read_bitmap_file_data, x_build_heuristic_mask, pbm_load,
7375 png_load, jpeg_load, gif_load, x_create_tip_frame,
7376 x_create_tip_frame, Fx_show_tip, x_set_border_pixel): Ditto.
7377
7378 * xterm.c (x_scroll_bar_handle_click): Compile only if
7379 not USE_TOOLKIT_SCROLL_BARS.
7380 (x_scroll_bar_set_handle, x_scroll_bar_note_movement): Ditto.
7381
7382 * dispextern.h: Add prototypes for gamma_correct and
7383 x_kill_gs_process.
7384
7385 * xterm.c (x_produce_glyphs): Remove unused variable(s).
7386 (x_alloc_nearest_color_for_widget, note_tool_bar_highlight,
7387 x_set_toolkit_scroll_bar_thumb): Ditto.
7388 (x_scroll_bar_create): Move local variable to the
7389 conditionally compiled section of code where it is used.
7390 (x_scroll_bar_create): Remove unused variable(s).
7391 (x_scroll_bar_remove, XTread_socket): Ditto.
7392 (XTread_socket) <ConfigureNotify>: Move variables used for
7393 non-toolkit case into conditionally compiled section of code.
7394
7395 * window.h (freeze_window_starts): Fix typo in prototype.
7396
7397 * xdisp.c (display_echo_area_1, try_window_id): Remove unused
7398 variable(s).
7399
7400 * lisp.h: Add prototype for debug_print.
7401
7402 * dispextern.h (xassert) [GLYPH_DEBUG]: Change definition
7403 to use do-while.
7404
7405 * fns.c (SXHASH_COMBINE): Add missing parentheses.
7406 (Fchar_table_range, Fset_char_table_default, mapcar1,
7407 Fyes_or_no_p, sweep_weak_hash_tables): Remove unused variable(s).
7408
7409 * lisp.h: Add prototype for getloadavg.
7410
74111999-09-14 Andreas Schwab <schwab@gnu.org>
7412
7413 * process.c (Fopen_network_stream): Avoid socket decriptor leak.
7414
7415 * lisp.h: Declare close_file_unwind.
7416
74171999-09-14 Richard Stallman <rms@gnu.org>
7418
7419 * filelock.c (get_boot_time): Make the temp name in the proper dir.
7420
74211999-09-13 Gerd Moellmann <gerd@gnu.org>
7422
7423 * xdisp.c (redisplay_window): Make sure start_at_line_beg
7424 is always set correctly.
7425
74261999-09-13 Dave Love <fx@gnu.org>
7427
7428 * xdisp.c (move_it_in_display_line_to): Make type consistent with
7429 declaration.
7430
74311999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
7432
7433 * xdisp.c (QCfile): Move here from xfns.c.
7434 (syms_of_xdisp): Initialize it.
7435 (message2_nolog): Change for Lisp_Object selected_frame.
7436 (message3_nolog, message_with_string, message,
7437 setup_echo_area_for_printing, truncate_echo_area,
7438 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
7439
74401999-09-13 Dave Love <fx@gnu.org>
7441
7442 * xterm.c: Don't continue #define args for benefit of old cc.
7443 (xt_action_hook): Indent #error for benefit of K&R cc.
7444
74451999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
7446
7447 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
7448 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
7449 (XRINGBELL): Removed.
7450
74511999-09-13 Dave Love <fx@gnu.org>
7452
7453 * xfns.c (x_put_x_image): Make type consistent with declaration.
7454
7455 * fns.c (Fmake_hash_table): Fix string continuation.
7456
74571999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
7458
7459 * xfns.c (QCfile): Moved to xdisp.c.
7460 (syms_of_xfns): Don't initialize QCfile.
7461 (check_x_frame): Change for Lisp_Object selected_frame.
7462 (check_x_display_info, x_get_resource_string): Ditto.
7463
74641999-09-13 Gerd Moellmann <gerd@gnu.org>
7465
7466 * minibuf.c (choose_minibuf_frame): Don't try to set the
7467 mini-buffer window's buffer, if the buffer is invalid.
7468
7469 * xfns.c (QCfile): Moved to xdisp.c.
7470 (syms_of_xfns): Don't initialize QCfile.
7471
7472 * xdisp.c (QCfile): Move here from xfns.c.
7473 (syms_of_xdisp): Initialize it.
7474
7475 * lisp.h (selected_frame): Add external declaration.
7476
7477 * xselect.c (x_own_selection): Change for Lisp_Object selected_frame.
7478 (Fx_store_cut_buffer_internal): Ditto.
7479 (Fx_rotate_cut_buffers_internal): Ditto.
7480
7481 * xfaces.c (frame_or_selected_frame): Change for Lisp_Object
7482 selected_frame.
7483 (Finternal_set_lisp_face_attribute): Ditto.
7484 (Finternal_get_lisp_face_attribute): Ditto.
7485 (Finternal_lisp_face_empty_p): Ditto.
7486 (Fdump_face): Ditto.
7487
7488 * term.c (OUTPUT): Change for Lisp_Object selected_frame.
7489 (OUTPUT_IF, ring_bell, set_terminal_modes, reset_terminal_modes,
7490 set_terminal_window, set_scroll_region, reassert_line_highlight,
7491 change_line_highlight, cursor_to, raw_cursor_to, clear_to_end,
7492 clear_end_of_line, clear_end_of_line_raw, clear_end_of_line_raw,
7493 encode_terminal_code, write_glyphs, term_init): Ditto.
7494
7495 * sysdep.c (reset_sys_modes): Change for Lisp_Object selected_frame.
7496 (kbd_input_ast, read_input_waiting): Ditto.
7497
7498 * minibuf.c (choose_minibuf_frame): Change for Lisp_Object
7499 selected_frame.
7500 (read_minibuf): Ditto.
7501
7502 * keyboard.c (command_loop_1): Change for Lisp_Object
7503 selected_frame.
7504 (cmd_error_internal, command_loop_1, read_char,
7505 kbd_buffer_get_event, read_avail_input,
7506 read_char_minibuf_menu_prompt, read_key_sequence, Fsuspend_emacs,
7507 interrupt_signal, quit_throw_to_read_char): Ditto.
7508
7509 * fontset.c (Ffont_info): Change for Lisp_Object selected_frame.
7510 (Ffontset_info): DItto.
7511
7512 * emacs.c (handle_USR1_signal): Change for Lisp_Object selected_frame.
7513
7514 * dispnew.c (selected_frame): Make it a Lisp_Object.
7515 (adjust_frame_glyphs_initially): Change for Lisp_Object selected_frame.
7516 (direct_output_for_insert, direct_output_forward_char,
7517 init_display): Ditto.
7518
7519 * data.c (swap_in_symval_forwarding): Change for Lisp_Object
7520 selected_frame.
7521 (set_internal): Ditto.
7522
7523 * buffer.c (Fother_buffer): Change for Lisp_Object selected_frame.
7524 (record_buffer): Ditto.
7525
7526 * frame.c (Fmake_terminal_frame): Use SELECTED_FRAME.
7527 (do_switch_frame): Change for Lisp_Object selected_frame.
7528 (Fselected_frame): Ditto.
7529 (Fframe_first_window): Use SELECTED_FRAME.
7530 (Fframe_root_window): Change for Lisp_Object selected_frame.
7531 (Fframe_selected_window, Fset_frame_selected_window, Fnext_frame,
7532 Fprevious_frame, other_visible_frames, Fdelete_frame,
7533 Fmouse_position, Fmouse_pixel_position, Fmake_frame_visible,
7534 Fmake_frame_invisible, Ficonify_frame, Fraise_frame, Flower_frame,
7535 Fframe_parameters, Fmodify_frame_parameters, Fframe_char_height,
7536 Fframe_char_width, Fframe_pixel_height, Fframe_pixel_width,
7537 Fset_frame_height, Fset_frame_width): Ditto.
7538
75391999-09-13 Gerd Moellmann <gerd@gnu.org>
7540
7541 * xdisp.c (message2_nolog): Change for Lisp_Object selected_frame.
7542 (message3_nolog, message_with_string, message,
7543 setup_echo_area_for_printing, truncate_echo_area,
7544 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
7545
7546 * xmenu.c (Fx_popup_menu): Change for Lisp_Object selected_frame.
7547 (Fx_popup_dialog): Ditto.
7548
7549 * xfns.c (check_x_frame): Change for Lisp_Object selected_frame.
7550 (check_x_display_info, x_get_resource_string): Ditto.
7551
7552 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
7553 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
7554 (XRINGBELL): Removed.
7555
7556 * window.c (Fminibuffer_window): Change for Lisp_Object
7557 selected_frame.
7558 (Fwindow_at, Fprevious_window, window_loop, select_window_1,
7559 display_buffer_1, Fdisplay_buffer, temp_output_buffer_show,
7560 Fcurrent_window_configuration, init_window_once): Ditto.
7561
7562 * frame.h (SELECTED_FRAME): New.
7563
75641999-09-12 Ken Raeburn <raeburn@gnu.org>
7565
7566 * category.c (word_boundary_p): Use XCAR and XCDR.
7567 * ccl.c (ccl_driver, resolve_symbol_ccl_program,
7568 Fregister_code_conversion_map): Likewise.
7569 * coding.c (setup_coding_system, detect_coding_system,
7570 Ffind_operation_coding_system, Fset_coding_priority_internal):
7571 Likewise.
7572 * doc.c (get_doc_string, Fdocumentation,
7573 store_function_docstring): Likewise.
7574 * editfns.c (save_restriction_restore): Likewise.
7575 * eval.c (Fcond, Fmacroexpand, Fcondition_case, wants_debugger,
7576 skip_debugger, find_handler_clause, Fautoload, Fapply,
7577 run_hook_with_args, run_hook_list_with_args, Ffetch_bytecode):
7578 Likewise.
7579 * fileio.c (Ffind_file_name_handler, Finsert_file_contents,
7580 Fwrite_region, do_auto_save_unwind, Fdo_auto_save,
7581 Fread_file_name): Likewise.
7582 * filelock.c (unlock_all_files): Likewise.
7583 * insdel.c (Fcombine_after_change_execute): Likewise.
7584 * intervals.c (adjust_intervals_for_insertion): Likewise.
7585 * keymap.c (get_keymap_1, Fkeymap_parent, Fset_keymap_parent,
7586 Fset_keymap_parent, fix_submap_inheritance, access_keymap,
7587 store_in_keymap, Fcopy_keymap, define_as_prefix,
7588 current_minor_maps, Faccessible_keymaps,
7589 accessible_keymaps_char_table, Fkey_description,
7590 Fwhere_is_internal, where_is_internal_2, where_is_internal_1,
7591 describe_buffer_bindings, describe_map_tree, shadow_lookup,
7592 describe_map): Likewise.
7593 * lread.c (Fload, load_unwind, close_load_descs, read_vector,
7594 read_list, init_lread): Likewise.
7595 * search.c (Fmatch_data): Likewise.
7596 * sunfns.c (Fsun_menu_internal): Likewise.
7597 * syntax.c (describe_syntax): Likewise.
7598 * undo.c (record_insert, record_delete, Fundo_boundary,
7599 truncate_undo_list): Likewise.
7600 * vmsproc.c (child_sig): Likewise.
7601
7602 * editfns.c (Fformat): Use XFLOAT_DATA.
7603
76041999-09-12 Gerd Moellmann <gerd@gnu.org>
7605
7606 * keyboard.c (command_loop_1): Resize mini-window to the
7607 exact size of a message displayed, if any.
7608
7609 * xdisp.c (resize_mini_window): Add parameter exact_p. Resize
7610 to exact size if exact_p is non-zero.
7611 (display_echo_area_1): Call resize_mini_window with
7612 new parameter.
7613 (redisplay_internal): Ditto.
7614 (resize_echo_area_axactly): New.
7615
7616 * minibuf.c (read_minibuf_unwind): Call resize_mini_window with
7617 new parameter.
7618
7619 * dispextern.h: Change prototype of resize_mini_window.
7620 Add prototype for resize_echo_area_axactly.
7621
7622 * xfaces.c (Fx_family_fonts): Replaces Fx_font_list.
7623 (syms_of_xfaces): Defsubr accordingly.
7624
7625 * xdisp.c (hscroll_window_tree): Choose cursor row from
7626 desired or current matrix.
7627 (redisplay_internal): Hscroll before updating.
7628
76291999-09-12 Gerd Moellmann <gerd@gnu.org>
7630
7631 * syntax.c (Fforward_word): Use prompt_end_charpos instead
7632 of minibuffer_prompt_length.
7633
7634 * minibuf.c (read_minibuf): Use prompt_end_charpos instead
7635 of minibuffer_prompt_length.
7636 (read_minibuf_unwind): Ditto.
7637 (Fminibuffer_complete_and_exit): Ditto.
7638 (Fminibuffer_complete_word): Ditto.
7639 (Fminibuffer_prompt_end): Ditto.
7640
7641 * editfns.c (Fbuffer_string): Use prompt_end_charpos instead
7642 of minibuffer_prompt_length.
7643 (Fline_beginning_position): Ditto.
7644
7645 * buffer.c (Fget_buffer_create): Use prompt_end_charpos instead
7646 of minibuffer_prompt_length.
7647 (Fmake_indirect_buffer): Ditto.
7648 (Fkill_buffer): Ditto.
7649 (Ferase_buffer): Ditto.
7650
7651 * buffer.h (prompt_end_charpos): Replaces
7652 minibuffer_prompt_length.
7653
427ec082 7654 * minibuf.c (read_minibuf): Return mini-buffer contents
26901792
DL
7655 without the prompt.
7656
7657 * editfns.c (make_buffer_string_both): Take out the code
7658 to handle mini-buffer prompts.
7659 (Fbuffer_string): Handle the prompt here, instead.
7660
7661 * xfaces.c (lface_from_face_name): Resolve face aliases.
7662 (Qmode_line): Replaces Qmodeline.
7663 (realize_basic_faces): Use Qmode_line.
7664 (syms_of_xfaces): Initialize Qmode_line.
7665
76661999-09-12 Gerd Moellmann <gerd@gnu.org>
7667
7668 * minibuf.c (read_minibuf): Set minibuf_prompt_width to the
7669 current column after inserting prompt.
7670 (Fminibuffer_prompt_width): Return minibuf_prompt_width.
7671
7672 * xfaces.c (Qframe_update_face_colors): New.
7673 (syms_of_xfaces): Initialize call.
7674 (update_face_from_frame_parameter): Call that function when
7675 the frame's background changes.
7676
76771999-09-12 Richard Stallman <rms@gnu.org>
7678
7679 * insdel.c (del_range_1): Don't treat minibuffer prompt specially.
7680
76811999-09-12 Ken Raeburn <raeburn@gnu.org>
7682
7683 * alloc.c (Fcons, pure_cons, Fpurecopy, Fgarbage_collect,
7684 mark_object, mark_buffer): Use XCAR and XCDR.
7685 * bytecode.c (Fbyte_code): Likewise.
7686 * callint.c (Fcall_interactively, Fprefix_numeric_value):
7687 Likewise.
7688 * callproc.c (Fcall_process, Fcall_process_region, child_setup,
7689 getenv_internal): Likewise.
7690 * dired.c (file_name_completion): Likewise.
7691 * fns.c (Fsafe_length, concat, Fcopy_alist, Fmember, Fmemq, Fassq,
7692 assq_no_quit, Fassoc, Frassq, Frassoc, Fdelq, Fdelete, Freverse,
7693 Fplist_get, Fplist_put, internal_equal, mapcar1): Likewise.
7694 * indent.c (Fcompute_motion): Likewise.
7695 * process.c (decode_status, Fprocess_status, Fprocess_exit_status,
7696 list_processes_1, Fstart_process, Fopen_network_stream,
7697 wait_reading_process_input, read_process_output_call,
7698 kill_buffer_processes, sigchld_handler, exec_sentinel_unwind,
7699 status_notify, wait_reading_process_input): Likewise.
7700 * textprop.c (PLIST_ELT_P, property_value, set_properties,
7701 extend_property_ranges): Likewise.
7702 * w32faces.c (Fpixmap_spec_p, merge_face_list): Likewise.
7703 * w32fns.c (x_window_to_frame, x_set_frame_parameters,
7704 x_report_frame_params, x_set_cursor_type, x_icon_type,
7705 x_figure_window_size, Fx_create_frame, w32_load_system_font,
7706 w32_load_font, enum_font_cb2, w32_list_bdf_fonts, w32_list_fonts,
7707 w32_list_synthesized_fonts, w32_find_ccl_program, Fx_list_fonts,
7708 Fw32_find_bdf_fonts, w32_find_bdf_fonts_in_dir,
7709 x_display_info_for_name, Fx_display_list): Likewise.
7710 * w32menu.c (menubar_id_to_frame, single_keymap_panes,
7711 Fx_popup_menu, Fx_popup_dialog): Likewise.
7712 * w32proc.c (Fw32_set_keyboard_layout): Likewise.
7713 * w32term.c (x_window_to_scroll_bar, w32_read_socket,
7714 w32_term_init, x_delete_display): Likewise.
7715 * xfns.c (x_window_to_frame, x_any_window_to_frame,
7716 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
7717 x_top_window_to_frame, x_set_frame_parameters,
7718 x_report_frame_params, x_set_cursor_type, x_icon_type,
7719 x_figure_window_size, Fx_create_frame, x_display_info_for_name,
7720 Fx_display_list, x_create_tip_frame): Likewise.
7721 * xmenu.c (menubar_id_to_frame, single_keymap_panes,
7722 Fx_popup_menu, Fx_popup_dialog): Likewise.
7723 * xselect.c (x_own_selection, x_get_local_selection,
7724 x_handle_selection_request, x_handle_selection_clear,
7725 x_clear_frame_selections, wait_for_property_change_unwind,
7726 wait_for_property_change, x_handle_property_notify,
7727 copy_multiple_data, x_get_foreign_selection,
7728 lisp_data_to_selection_data, clean_local_selection_data,
7729 x_handle_selection_notify, Fx_get_selection_internal,
7730 x_disown_buffer_selections): Likewise.
7731 * xterm.c (x_window_to_scroll_bar, XTread_socket, x_list_fonts,
7732 x_load_font, x_find_ccl_program, x_term_init, x_delete_display):
7733 Likewise.
7734
7735 * alloc.c (make_float, make_pure_float, Fpurecopy): Use
7736 XFLOAT_DATA.
7737 * bytecode.c (Fbyte_code): Likewise.
7738 * floatfns.c (extract_float, Fexpt, Fabs, rounding_driver,
7739 fmod_float): Likewise.
7740
77411999-09-11 Richard Stallman <rms@gnu.org>
7742
7743 * xdisp.c (run_window_scroll_functions): If hook functions switch
7744 buffers, switch back after.
7745
77461999-09-11 Ken Raeburn <raeburn@gnu.org>
7747
7748 * charset.h (GET_TRANSLATION_TABLE): Use XCDR.
7749 * frame.h (FOR_EACH_FRAME): Use XCAR and XCDR.
7750 (PIXEL_X_FROM_CANON_X, PIXEL_Y_FROM_CANON_Y): Use XFLOAT_DATA.
7751 * keyboard.h (EVENT_HEAD, EVENT_START, EVENT_END, POSN_WINDOW,
7752 POSN_BUFFER_POSN, POSN_WINDOW_POSN, POSN_TIMESTAMP): Use XCAR and
7753 XCDR.
7754 * syntax.h (SYNTAX, SYNTAX_WITH_FLAGS, SYNTAX_MATCH): Use XCAR and
7755 XCDR.
7756
77571999-09-10 Richard Stallman <rms@gnu.org>
7758
7759 * xterm.c (XTread_socket): In XSetInputFocus, use RevertToParent,
7760 not RevertToPointerRoot.
7761 (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
7762 Fix the code to clear around the scroll bar.
7763
77641999-09-10 Keisuke Nishida <kxn30@po.cwru.edu>
7765
7766 * print.c: Support print-circle and related features.
7767 (Vprint_gensym_alist): Removed.
7768 (Vprint_circle, Vprint_continuous_numbering, print_number_index
7769 Vprint_number_table): New variables.
7770 (PRINT_NUMBER_OBJECT, PRINT_NUMBER_STATUS): New macros.
7771 (PRINTPREPARE, PRINTFINISH): Don't set Vprint_gensym_alist.
7772 (print, print_preprocess, print_preprocess_string, print_object):
7773 New/modified functions with print-circle feature. Use
7774 Vprint_number_table instead of Vprint_gensym_alist for print-gensym.
7775 (syms_of_print): Defined new Lisp variables `print-circle',
7776 `print-continuous-numbering', `print-number-table'.
7777
77781999-09-10 Gerd Moellmann <gerd@gnu.org>
7779
7780 * xfns.c (x_build_heuristic_mask): Accept a list `(R G B)'
7781 as background color specification instead of an integer.
7782 (image-cache-eviction-delay): Replaces image-eviction-seconds.
7783 (Vimage_cache_eviction_delay): Replaces Vimage_eviction_seconds.
7784 (clear_image_cache, syms_of_xfns): Use it.
7785 (Qpostscript): Replaces Qghostscript.
7786 (gs_type): Use it.
7787 (gs_image_p): Ditto.
7788 (syms_of_xfns): Initialize Qpostscript.
7789
77901999-09-10 Richard Stallman <rms@gnu.org>
7791
7792 * buffer.c (Ferase_buffer): Don't erase the minibuffer prompt.
7793
77941999-09-09 Richard Stallman <rms@gnu.org>
7795
7796 * editfns.c (Fline_beginning_position): Handle minibuffer prompt here.
7797
7798 * cmds.c (Fbeginning_of_line): Don't handle minibuffer prompt here.
7799
78001999-09-09 Gerd Moellmann <gerd@gnu.org>
7801
7802 * fns.c (Fmakehash): Accept just one optional argument TEST.
7803
7804 * xfns.c (QCindex): New.
7805 (syms_of_xfns): Initialize QCindex.
7806 (gif_load): Use it instead of `:image'.
7807
78081999-09-09 Richard Stallman <rms@gnu.org>
7809
7810 * fileio.c (Fwrite_region): Finish renaming CONFIRM to MUSTBENEW.
7811 (Fwrite_region) [DOS_NT]: Handle `excl' here too.
7812
78131999-09-08 Gerd Moellmann <gerd@gnu.org>
7814
7815 * xdisp.c (Qwhen): Replaces QCwhen.
7816 (syms_of_xdisp): Initialized it instead of QCwhen.
7817 (handle_single_display_prop): Use it instead of QCwhen.
7818
78191999-09-08 Ken'ichi Handa <handa@gnu.org>
7820
7821 * charset.c (translate_char): Reset MSBs of arguments of
7822 MAKE_CHAR.
7823 (CHAR_COMPONENTS_VALID_P): Fix for ASCII.
7824
78251999-09-08 Lars Magne Ingebrigtsen <larsi@gnus.org>
7826
7827 * editfns.c (Fbufsize): Accept an extra BUFFER parameter.
7828
7829 * fns.c (Fbase64_decode_region): Don't place point outside of the
7830 current accessible portion.
7831
78321999-09-07 Richard Stallman <rms@gnu.org>
7833
7834 * keymap.c (fix_submap_inheritance): Do nothing if the proper
7835 parent is an ancestor of SUBMAP; otherwise, add it as the
7836 ultimate ancestor.
7837
78381999-09-07 Gerd Moellmann <gerd@gnu.org>
7839
7840 * xdisp.c (handle_single_display_prop): Change conditional
7841 display property to `:when FORM . VALUE'.
7842
78431999-09-07 Richard Stallman <rms@gnu.org>
7844
7845 * fileio.c (Fwrite_region): Doc fix.
7846
78471999-09-07 Stefan Monnier <monnier@cs.yale.edu>
7848
7849 * fileio.c (Qexcl): New variable.
7850 (report_file_error): Handle EEXIST specially.
7851 (Fwrite_region): Special handling for CONFIRM = `excl'.
7852 (syms_of_fileio): Initialize Qexcl.
7853
78541999-09-07 Gerd Moellmann <gerd@gnu.org>
7855
7856 * xfns.c (x_set_foreground_color): Call
7857 update_face_from_frame_parameter.
7858 (x_set_background_color): Ditto.
7859 (x_set_mouse_color): Ditto.
7860 (x_set_cursor_color): Ditto.
7861 (x_set_border_color): Ditto.
7862 (x_set_scroll_bar_foreground): Ditto.
7863 (x_set_scroll_bar_background): Ditto.
7864
7865 * xfaces.c (recompute_basic_faces): Clear face cache.
7866 (Finternal_set_lisp_face_attribute): Modify frame parameters
7867 if attributes of certain faces are changed.
7868 (update_face_from_frame_parameter): New.
7869
7870 * xfaces.c (realize_basic_faces): Realize new basic faces.
7871
7872 * dispextern.h (SCROLL_BAR_FACE_ID, BORDER_FACE_ID,
7873 CURSOR_FACE_ID, MOUSE_FACE_ID): New.
7874
7875 * xfaces.c (Qscroll_bar, Qcursor, Qborder, Qmouse): New.
7876 (syms_of_xfaces): Intialize new symbols.
7877
7878 * fns.c (Fmakehash): Take one argument, test, make all the
7879 rest keyword arguments.
7880
7881 * window.c (Fset_window_margins): Make window the first argument.
7882 (set_window_buffer): Call Fset_window_margins with window as first
7883 argument.
7884
78851999-09-07 Gerd Moellmann <gerd@gnu.org>
7886
7887 * xfaces.c (Qfringe): Replaces Qmargin.
7888
78891999-09-07 Kenichi Handa <handa@etl.go.jp>
7890
7891 * charset.h: Lots of comments fixed.
7892 (PARSE_MULTIBYTE_SEQ): Make it work also for ASCII string.
7893 (STRING_CHAR_AND_CHAR_LENGTH): This macro removed.
7894
7895 * charset.c : Lots of comments fixed.
7896 (SPLIT_MULTIBYTE_SEQ): Make it work also for ASCII string.
7897 (CHAR_COMPONENTS_VALID_P): Name changed from
7898 CHAR_COMPONENT_VALID_P. Caller changed.
7899
79001999-09-06 Richard Stallman <rms@gnu.org>
7901
7902 * insdel.c (syms_of_insdel): Define Lisp variable
7903 inhibit-modification-hooks.
7904
79051999-09-06 Michael Sperber [Mr. Preprocessor] <sperber@informatik.uni-tuebingen.de>
7906
7907 * s/aix4-2.h (ALIGN_DATA_RELOC): Undefined to support new
7908 unexaix.c.
7909
7910 * s/aix3-1.h (ALIGN_DATA_RELOC): Defined to support new unexaix.c.
7911
79121999-09-06 Dave Love <fx@gnu.org>
7913
7914 * unexaix.c: New version incorporating Michael Sperber's changes
7915 from XEmacs. Should solve problems on AIX 4.3.
7916
7917 * lread.c (Vbyte_boolean_vars): New variable.
7918 (defvar_bool, syms_of_lread): Use it.
7919
79201999-09-05 Richard Stallman <rms@gnu.org>
7921
7922 * minibuf.c (read_minibuf): Put all three properties on the
7923 same range, the whole prompt.
7924
79251999-09-05 Gerd Moellmann <gerd@gnu.org>
7926
7927 * sound.c (Qplay_sound_functions): Replaces Qplay_sound_hook.
7928 (Fplay_sound, syms_of_sound): Use it.
7929 (parse_sound): Allow float volume values in the range [0, 1].
7930 (Fplay_sound): Ditto.
7931
7932 * window.c (Fset_window_vscroll): Make window the first argument,
7933 amount to scroll the second. Take non-negative vscroll as
7934 argument.
7935 (Fwindow_vscroll): Return non-negative vscroll.
7936
7937 * xfns.c (Fx_show_tip): Improve documentation.
7938
79391999-09-05 Gerd Moellmann <gerd@gnu.org>
7940
7941 * buffer.c, buffer.h, dispextern.h, dispnew.c, keyboard.c,
7942 window.c, xdisp.c, xfaces.c, xterm.c, keyboard.h: Change
7943 `top-line' and `top_line' to `header-line' and `header_line'.
7944 Likewise for similar spellings.
7945
79461999-09-05 Gerd Moellmann <gerd@gnu.org>
7947
7948 * xdisp.c (row_containing_pos): New.
7949 (try_window_id): Use it.
7950
7951 * alloc.c, dispextern.h, dispnew.c, frame.c, frame.h, keyboard.c,
7952 lisp.h, termhooks.h, window.c xdisp.c, xfaces.c, xfns.c, xterm.c:
7953 Change spelling of `toolbar' to `tool_bar' or `tool-bar'.
7954 Likewise for upper-case etc.
7955
79561999-09-05 Gerd Moellmann <gerd@gnu.org>
7957
7958 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
7959 Fix reference to renamed variable.
7960
79611999-09-04 Gerd Moellmann <gerd@gnu.org>
7962
7963 * window.c (Qwindow_size_fixed): Replaces Qfixed_window_size.
427ec082 7964 (window_fixed_size_p): Use Qwindow_size_fixed instead of
26901792
DL
7965 Qfixed_window_size.
7966 (syms_of_window): Ditto.
7967
7968 * fns.c (Fmakehash): Exchange optional test and size arguments.
7969
79701999-09-03 Gerd Moellmann <gerd@gnu.org>
7971
7972 * xterm.c (XTset_vertical_scroll_bar): Block input when clearing
7973 under newly created scroll bar.
7974 (expose_window): If window is not yet fully initialized, do
7975 nothing. This can happen when toolkit scroll bars are used and a
7976 window is split. Reconfiguring the scroll bars will generate an
7977 expose for a newly created window.
7978
7979 * frame.h (struct frame): New member `gamma'.
7980
7981 * xfns.c: Include math.h. Add extern declaration for atof in case
7982 we don't see one.
7983 (Qscreen_gamma): New.
7984 (struct x_frame_parm_table): Add prototypes, add
7985 x_set_screen_gamma.
7986 (gamma_correct): New function.
7987 (defined_color): Call it.
7988 (x_set_screen_gamma): New.
7989 (x_set_title): Add parameter old_value.
7990 (RES_TYPE_FLOAT): New.
7991 (x_get_arg): Handle RES_TYPE_FLOAT.
7992 (Fx_create_frame): Call x_default_parameter for `screen-gamma'.
7993 (lookup_pixel_color): Change call to x_alloc_nearest_color to
7994 new prototype.
7995 (lookup_rgb_color): Ditto.
7996 (syms_of_xfns): Initialize Qscreen_gamma.
7997
7998 * xterm.c (x_alloc_nearest_color_for_widget) [USE_X_TOOLKIT]:
7999 New. Allocate color for lwlib widgets.
8000 (x_alloc_nearest_color): Change parameter list include the
8001 frame on which to allocate colors. Gamma-correct colors.
8002 (x_alloc_lighter_color): Call x_alloc_lighter_color with new
8003 parameter list.
8004
8005 * xterm.h: Change protorype of x_alloc_nearest_color.
8006
80071999-09-03 Richard Stallman <rms@gnu.org>
8008
8009 * callproc.c: Delete the system-independent include of stdlib.h
8010 (leaving only the one in the WINDOWSNT conditional).
8011
80121999-09-03 Andrew Choi <choi@cs.hku.hk>
8013
8014 * callproc.c (call-process) [macintosh]: Call mac_run_command in
8015 sysdep.c. The Mac code is modeled after the DOS code.
427ec082 8016
26901792
DL
8017 * dispextern.h [macintosh]: Include macterm.h to define substitute X
8018 Window types and macros.
8019
8020 * frame.h: Do nothing if included a second time.
8021 (enum output_method): Add mac_output frame type.
8022 (union output_data): Add new alternative `mac'.
8023 (FRAME_MAC_P): New macro.
427ec082 8024
26901792
DL
8025 * frame.c (Fframep) [macintosh]: Handle mac frame type.
8026 (syms_of_frame_1): Initialize Qmac.
8027 (make_terminal_frame) [macintosh]: Initialize output_data.mac fields.
8028 (Fmake_terminal_frame) [macintosh]: Add an alternate error check.
8029 (Fmodify_frame_parameters) [macintosh]: Call
8030 mac_set_frame_parameter in macterm.c.
427ec082 8031
26901792
DL
8032 * keyboard.c [macintosh]: Set KBD_BUFFER_SIZE to a smaller value
8033 (512) because Mac compilers limit local data of a function to 32K.
427ec082 8034
26901792
DL
8035 * make-docfiles.c: Correctly handle input files with Mac-style
8036 eol's.
427ec082 8037
26901792 8038 * sysdep.c: Define numerous routines to emulate Unix system calls.
427ec082 8039
26901792
DL
8040 * xfaces.c: on MacOS, define the set of colors listed in rgb.txt
8041 file of an X Window environment.
427ec082 8042
26901792
DL
8043 * xfaces.c: on MacOS, define the Lisp functions x-display-color-p,
8044 x-display-grayscale, x-color-defined-p, and x-color-values.
427ec082 8045
26901792
DL
8046 * sysdep.c [macintosh] (stat, fstat, mkdir, rmdir, utime, access)
8047 (open, creat, unlink, read, write, rename, fopen, pause, alarm)
8048 (signal, sleep, gmtime, localtime, ctime, time, index, mktemp)
8049 (getpwuid, getpwnam, dup, dup2, isatty, getgid, getegid, getuid)
8050 (geteuid, getpid, getenv, uname, opendir, closedir, readdir, getwd.):
8051 New functions, replacing POSIX features.
427ec082 8052
26901792
DL
8053 * sysdep.c [macintosh] (Mac2UnixPathname, Unix2MacPathname, CheckAlarm)
8054 (InitMyPasswd, GetTempDirName, mystrchr, mystrtok, mystrcpy):
8055 (InitEmacsPasswdDir, run_mac_command): New subroutines.
8056
8057 * sysdep.c [macintosh] (targetTicks, alarm_signal_func, myPasswdName)
8058 (myPasswd, emacsPasswdDir, emacsPasswd, myPasswdInited, mask)
8059 (myPasswdDir, TempDirName, sys_siglist): New variables.
8060
8061 * sysdep.c [macintosh] (execvp, wait, croak, fork, kill, sigsetmask)
8062 (sigblock, request_sigio, unrequest_sigio, setpgrp, pipe, symlink)
8063 (link, lstat, readlink, umask, chmod, sbrk, fsync, ioctl):
8064 Define empty stubs so Emacs will link.
8065
80661999-09-03 Gerd Moellmann <gerd@gnu.org>
8067
8068 * xdisp.c: Use XCAR and XCDR instead of XCONS.
8069
8070 * window.h: New member frozen_window_start_p.
8071
8072 * window.c (foreach_window, foreach_window_1): New.
8073 (freeze_window_start, freeze_window_starts): New.
8074 (make_window): Initialize frozen_window_start_p.
8075 (replace_window): Ditto.
8076 (Fset_window_point): Remove references to deleted variables.
8077 (Fset_window_start): Ditto.
8078
8079 * xdisp.c (Vresize_mini_config, resize_mini_frame,
8080 resize_mini_initial_height): Removed.
8081 (syms_of_xdisp): Remove references to these variables.
8082 (resize_mini_window): Don't save window configuration, freeze
8083 window starts instead. Enlarge window until displaying an empty
8084 buffer, then shrink it. Make the function externally visible.
8085 (redisplay_window): Treat frozen window start like forced start,
8086 but accept point outside of the window.
8087
8088 * dispextern.h: Add function prototype for resize_mini_window.
8089
8090 * minibuf.c (read_minibuf_unwind): Resize mini-window when
8091 reaching minibuf_level 0.
8092
8093 * lisp.h: Remove extern declarations for variables deleted from
8094 xdisp.c.
8095
8096 * dispnew.c (adjust_frame_glyphs): Remove reference to
8097 Vresize_mini_config.
8098
80991999-09-03 Gerd Moellmann <gerd@gnu.org>
8100
8101 * xfns.c (x_set_scroll_bar_width): Change conditional compilation
8102 to USE_TOOLKIT_SCROLL_BARS.
8103
8104 * xterm.c (x_scroll_bar_create): Don't clear under scroll bar
8105 here.
8106 (XTset_vertical_scroll_bar): Clarify position computations. Clear
8107 under newly created scroll bar. Put toolkit scroll bars in the
8108 middle of the area reserved for the scroll bar.
8109
81101999-09-03 Kenichi Handa <handa@etl.go.jp>
8111
8112 The following changes are for the new handling of mulitbyte
8113 sequence. Now, except for a composite character, no multibyte
8114 character in string/buffer has trailing garbage bytes. For
8115 instance, the length of string "\201\300\300" is now 2, the first
8116 character is Latin-1 A-grave, the second is raw \300.
8117
8118 * charset.h (MAKE_NON_ASCII_CHAR): Handle the case that C1 or C2
8119 are negative.
8120 (MAKE_CHAR): Don't set MSBs of C1 and C2 to 0.
8121 (VALID_MULTIBYTE_CHAR_P): This macro deleted.
8122 (PARSE_COMPOSITE_SEQ): New macro.
8123 (PARSE_CHARACTER_SEQ): New macro.
427ec082 8124 (PARSE_MULTIBYTE_SEQ): New macro.
26901792
DL
8125 (CHAR_PRINTABLE_P): New macro.
8126 (STRING_CHAR): Adjusted for the change of string_to_non_ascii_char.
8127 (STRING_CHAR_AND_LENGTH): Likewise.
8128 (STRING_CHAR_AND_CHAR_LENGTH): Define it as STRING_CHAR_AND_LENGTH.
8129 (INC_POS): Use the macro PARSE_MULTIBYTE_SEQ.
8130 (DEC_POS, BUF_INC_POS, BUF_DEC_POS): Likewise,
8131
8132 * charset.c (SPLIT_COMPOSITE_SEQ): New macro.
8133 (SPLIT_CHARACTER_SEQ): New macro.
8134 (SPLIT_MULTIBYTE_SEQ): New macro.
8135 (CHAR_COMPONENT_VALID_P): New macro.
8136 (non_ascii_char_to_string): Generate a multibyte sequence as far
8137 as possible.
8138 (string_to_non_ascii_char): The 4th arg exclude_tail_garbage is
8139 deleted. Caller changed. Use the macro SPLIT_MULTIBYTE_SEQ.
8140 (split_non_ascii_string): Likewise.
8141 (multibyte_form_length): Use the macro PARSE_MULTIBYTE_SEQ.
8142 (char_printable_p): New function.
8143 (translate_char): Check character by NATNUMP instead of INTEGERP.
8144 (unibyte_char_to_multibyte): Call char_valid_p instead of
8145 VALID_MULTIBYTE_CHAR_P.
8146 (Fmake_char_internal): Check the arguments more rigidly.
8147 (Fcharset_after): Use the macro SPLIT_MULTIBYTE_SEQ.
8148 (char_valid_p): Check the validity by CHAR_COMPONENT_VALID_P.
8149 (Fmultibyte_char_to_unibyte): Check the validity of character by
8150 CHAR_VALID_P.
8151 (chars_in_text): Call multibyte_chars_in_text.
8152 (multibyte_chars_in_text): Use the macro PARSE_MULTIBYTE_SEQ.
8153 (Fcompose_string): Use the macro STRING_CHAR_AND_LENGTH instead of
8154 STRING_CHAR_AND_CHAR_LENGTH (which is obsolete now).
8155
8156 * data.c (Faset): Adjust the way to check byte-combining
8157 possibility for the new handling of multibyte sequence.
8158
8159 * editfns.c (Fsubst_char_in_region): Likewise.
8160
8161 * fns.c (count_combining): Use the macro PARSE_MULTIBYTE_SEQ.
8162 (string_char_to_byte): Likewise.
8163 (string_byte_to_char): Likewise.
8164
8165 * indent.c (MULTIBYTE_BYTES_WIDTH): Delete the 2nd arg C. Use the
8166 macro STRING_CHAR_AND_LENGTH. Caller changed.
8167
8168 * insdel.c (count_combining_composition): New function.
8169 (count_combining_before): Adjust the way to check byte-combining
8170 possibility for the new handling of multibyte sequence. Call
8171 count_combining_composition for a composite character.
8172 (count_combining_after): Likewise.
8173
8174 * print.c (print_string): Use the macro STRING_CHAR_AND_LENGTH.
8175 (print): Likewise.
8176
8177 * dispextern.h (struct it): Change the size of the member
8178 `ctl_chars'.
8179
8180 * xdisp.c (get_next_display_element): Display incomplete multibyte
8181 sequence (e.g. \222\300) by octal form.
8182
81831999-09-02 Gerd Moellmann <gerd@gnu.org>
8184
8185 * xterm.h (VERTICAL_SCROLL_BAR_WIDTH_TRIM): Change from 2 to 0.
8186
8187 * fns.c (Fhash_table_weakness): Replaces Fhash_table_weak.
8188 (cmpfn_eql, sxhash): Use XFLOAT_DATA.
8189
81901999-09-02 Gerd Moellmann <gerd@gnu.org>
8191
8192 * buffer.c (set_buffer_internal): Never set
8193 windows_or_buffers_changed.
8194
8195 * xdisp.c (try_window_id): Reset first_unchanged_at_end_row
8196 if we have displayed to the bottom of the window.
8197
8198 * syntax.c (Fforward_word): Stop at a mini-buffer prompt end
8199 in both directions. Extend documentation.
8200
82011999-09-01 Gerd Moellmann <gerd@gnu.org>
8202
8203 * minibuf.c (read_minibuf): Flush display after setting cursor to
8204 column 0.
8205
82061999-08-31 Gerd Moellmann <gerd@gnu.org>
8207
8208 * s/freebsd.h (__FreeBSD_version): Don't define it if it is
8209 already defined. This avoids a warning from buffer.c.
8210
82111999-08-30 Gerd Moellmann <gerd@gnu.org>
8212
8213 * xterm.h (FRAME_X_FLAGS_AREA_COLS): Define it as the total width
8214 of both margins.
8215 (FRAME_X_FLAGS_AREA_WIDTH): Likewise.
8216 (FRAME_X_LEFT_FLAGS_AREA_WIDTH): New.
8217 (FRAME_X_RIGHT_FLAGS_AREA_WIDTH): New.
8218
8219 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add in FRAME_FLAGS_AREA_COLS
8220 once instead of twice.
8221 (FRAME_LEFT_FLAGS_AREA_WIDTH): New.
8222
8223 * xterm.c: Remove unused bitmaps.
8224 (continued_bits, continuation_bits, overlay_bits): Change images.
8225 (x_draw_vertical_border): Use FRAME_X_RIGHT_FLAGS_AREA_WIDTH
8226 instead of FRAME_X_FLAGS_AREA_WIDTH.
8227 (x_after_update_window_line): Ditto.
8228 (x_draw_bitmap): Likewise.
8229 (x_draw_row_bitmaps): Likewise.
8230 (x_draw_glyph_string_box): Likewise.
8231 (x_draw_glyphs): Likewise.
8232 (x_scroll_run): Likewise.
8233 (expose_window_tree): Likewise.
8234 (note_mode_line_highlight): Likewise.
8235 (XTset_vertical_scroll_bar): Likewise.
8236 (x_clip_to_row): Likewise.
8237 (x_set_window_size): Likewise.
8238
8239 * xfns.c (x_figure_window_size): Use FRAME_FLAGS_AREA_COLS instead
8240 of 2 * that value.
8241
8242 * xdisp.c (window_box_width): Use FRAME_FLAGS_AREA_COLS instead of
8243 2 * that value.
8244 (window_box_left): Use FRAME_LEFT_FLAGS_AREA_WIDTH instead of
8245 FRAME_FLAGS_AREA_WIDTH.
8246
8247 * window.c (coordinates_in_window): Use
8248 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
8249 (window_internal_width): Subtract FRAME_FLAGS_AREA_WIDTH once
8250 instead of twice.
8251
427ec082 8252 * widget.c (set_frame_size): Set flags_area_extra to
26901792
DL
8253 FRAME_FLAGS_AREA_WIDTH instead of 2 * that width.
8254 (EmacsFrameSetCharSize): Ditto.
8255
8256 * dispnew.c (mode_line_string): Add FRAME_LEFT_FLAGS_AREA_WIDTH
8257 instead of FRAME_FLAGS_AREA_WIDTH.
8258
8259 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract
8260 FRAME_FLAGS_AREA_COLS once.
8261 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Add
8262 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
8263
82641999-08-30 Gerd Moellmann <gerd@gnu.org>
8265
8266 * freebsd.h (C_SWITCH_SYSTEM): Added to let configure find headers
8267 in /usr/X11R6/include which are checked for with AC_CHECK_HEADER.
8268
82691999-08-30 Gerd Moellmann <gerd@gnu.org>
8270
8271 * fns.c (QCweakness): Replaces QCweak.
8272 (Fmake_hash_table): Ditto.
8273 (Fmakehash): Ditto.
8274 (syms_of_fns): Ditto.
8275
82761999-08-29 Richard Stallman <rms@gnu.org>
8277
8278 * search.c (compile_pattern_1): Enable RE_CHAR_CLASSES for regexp.
8279
8280 * sysdep.c (read_input_waiting): Pass read_socket_hook just 4 args.
8281
8282 * syntax.h (SYNTAX_COMMENT_NESTED, SYNTAX_FLAGS_COMMENT_NESTED):
8283 Add support for nested comments.
8284
d7d0dac0
SM
8285 * syntax.c (Fforward_comment, scan_lists, scan_sexps_forward):
8286 Consolidate the forward comment code into the new `forw_comment'.
8287 (forw_comment): New subroutine. Added support for nested comments.
8288 (lisp_parse_state, back_comment, Fmodify_syntax_entry)
8289 (Fparse_partial_sexp): Add support for nested comments.
26901792
DL
8290
82911999-08-28 Ken Raeburn <raeburn@gnu.org>
8292
8293 * lisp.h (struct Lisp_Cons, XCAR, XCDR, struct Lisp_Float): Change
8294 names of structure elements if HIDE_LISP_IMPLEMENTATION is
8295 defined, to help detect code that uses knowledge of the Lisp
8296 internals that it shouldn't have.
8297 (XFLOAT_DATA): New macro.
8298
82991999-08-25 Gerd Moellmann <gerd@gnu.org>
8300
8301 * syntax.c (Fforward_word): If in a mini-buffer and moving
8302 backwards, stop in front of the prompt to prevent accidentially
8303 moving into the read-only prompt.
8304
8305 * window.c (Frecenter): Clear frame if called with nil or no arg.
8306
8307 * xdisp.c (resize_mini_window): Don't resize if
8308 Vmax_mini_window_height is nil. Otherwise, use a default if
8309 Vmax_mini_window_height is not ot a number.
8310 (syms_of_xdisp): Extend documentation of Vmax_mini_window_height.
8311
83121999-08-25 Alexandre Oliva <oliva@dcc.unicamp.br>
8313
8314 * unexelf.c: Merge IRIX debugging info patch from unexsgi.c
8315 * m/iris4d.h: Use unexelf for IRIX 5.*.
8316 * m/iris5d.h: Use unexelf for IRIX 6.*.
8317 * unexsgi.c: Deleted.
8318
8319 * unexelf.c: Auto-detect .sbss section.
8320 (round_up): Make it static.
8321 (unexec): Declare alignment as Elf Word. Skip ``Program
8322 segment above .bss'' test on MIPS without .sbss.
8323 Copy sections .got and .sdata1 sections. Adjust offsets in
8324 sections .sdata, .lit4, .lit8, .got and .sdata1.
8325
83261999-08-25 Gerd Moellmann <gerd@gnu.org>
8327
8328 * xdisp.c (try_window_id): Remove typo.
8329
83301999-08-24 Gerd Moellmann <gerd@gnu.org>
8331
8332 * xdisp.c (try_window_id): Recognize case that PT == ZV and in
8333 unchanged text at the bottom when computing the cursor position.
8334 (message3_nolog): Raise frame only if minibuffer_auto_raise is
8335 set.
8336
8337 * lisp.h (PVEC_TYPE_MASK): Add the bit for hash tables.
8338
83391999-08-24 Gerd Moellmann <gerd@gnu.org>
8340
8341 * xfaces.c (Qmargin): Replacement for Qbitmap_area.
8342 (realize_basic_faces): Replace Qmargin for Qbitmap_area.
8343 (syms_of_xfaces): Ditto.
8344
8345 * window.c (Fset_window_point): Reset Vresize_mini_config.
8346 (Fset_window_start): Ditto.
8347 (set_window_buffer): Ditto.
8348
8349 * dispnew.c (adjust_frame_glyphs): Reset Vresize_mini_config.
8350
8351 * xdisp.c (redisplay_window): Don't ever test just_this_one_p
8352 before calling try_window.
8353 (echo_area_display): If height has changed, update other windows.
8354 (resize_mini_frame, resize_mini_initial_height): New.
8355 (resize_mini_window): Save/restore window configuration
8356 differently.
8357
427ec082 8358 * lisp.h (Vresize_mini_config, resize_mini_frame,
26901792
DL
8359 resize_mini_initial_height): Add extern declarations.
8360
8361 * xterm.c (expose_window_tree): Fix typo CANON_Y_UNIT to
8362 CANON_X_UNIT.
8363
8364 * xfns.c [HAVE_JPEG]: Work around a warning about HAVE_STDLIB_H
8365 being redefined in jconfig.h.
8366
83671999-08-23 Ken'ichi Handa <handa@gnu.org>
8368
8369 * coding.h: Include "ccl.h" instead of "../src/ccl.h".
8370
83711999-08-22 Gerd Moellmann <gerd@gnu.org>
8372
8373 * alloc.c (mark_glyph_matrix): Mark strings only.
8374
8375 * xdisp.c (redisplay_internal): Clear garbaged frames after
8376 resizing mini-window.
8377
83781999-08-22 Gerd Moellmann <gerd@gnu.org>
8379
8380 * xdisp.c (unwind_with_echo_area_buffer): Use
8381 set_buffer_internal_1 instead of set_buffer_internal.
8382 (with_echo_area_buffer): Ditto.
8383
8384 * buffer.c (set_buffer_internal): Set windows_or_buffers_changed
8385 only if buffer is displayed somewhere.
8386
8387 * buffer.h (BUF_COMPUTE_UNCHANGED): New.
8388
8389 * insdel.c (gap_left): Use BUF_COMPUTE_UNCHANGED.
8390 (gap_right): Ditto.
8391 (modify_region): Ditto.
8392
8393 * buffer.c (modify_overlay): Use BUF_COMPUTE_UNCHANGED.
8394
8395 * xdisp.c (Vresize_mini_config): New.
8396 (resize_mini_window): Use it to save restore original window
8397 configuration
8398 (syms_of_xdisp): Initialize it.
8399
8400 * buffer.h (struct buffer): Add prevent_redisplay_optimizations_p.
8401
8402 * dispextern.h (struct glyph_matrix): Add buffer, begv, and zv.
8403
8404 * xdisp.c (reconsider_clip_changes): New.
8405 (redisplay_internal, redisplay_window): Call it.
8406 (mark_window_display_accurate, redisplay_internal): Set current
8407 matrix' buffer, begv, zv.
8408
8409 * window.c (Fset_window_hscroll): Set
8410 prevent_redisplay_optimizations_p instead of clip_changed.
8411 (Fset_window_hscroll): Ditto.
8412 (temp_output_buffer_show): Ditto.
8413 (Fset_window_vscroll): Ditto.
8414
8415 * buffer.c (reset_buffer): Set clip_changed to 0 and
8416 prevent_redisplay_optimizations_p to 1.
8417 (Fget_buffer_create): Set prevent_redisplay_optimizations_p to 1.
8418
8419 * buffer.h (BUF_UNCHANGED_MODIFIED, UNCHANGED_MODIFIED,
8420 BUF_OVERLAY_UNCHANGED_MODIFIED, OVERLAY_UNCHANGED_MODIFIED,
8421 BUF_BEG_UNCHANGED, BEG_UNCHANGED, BUF_END_UNCHANGED,
8422 END_UNCHANGED): New.
8423 (struct buffer_text): Add beg_unchanged, end_unchanged,
8424 unchanged_modified, overlay_unchanged_modified.
8425
8426 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
8427 overlay_unchanged_modified): Removed.
8428 (with_echo_area_unwind_data): Don't save beg/end_unchanged.
8429 (unwind_with_echo_area_buffer): Don't restore them.
8430 (debug_beg_unchanged, debug_end_unchanged) [GLYPH_DEBUG]: Removed.
8431 (text_outside_line_unchanged_p, redisplay_internal,
8432 try_scrolling): Use/set buffer-specific beg/end_unchanged.
8433 (redisplay_window): Let try_window_id be called if more than one
8434 window is displayed. Use/set buffer-specific beg/end_unchanged.
8435 (get_last_unchanged_at_beg_row, get_first_unchanged_at_end_row,
8436 try_window_id):
8437 Use buffer-specific beg/end_unchanged.
8438
8439 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
8440 overlay_unchanged_modified): Remove extern declarations.
8441
8442 * keyboard.c (command_loop_1): Set beg/end_unchanged per
8443 buffer.
8444
8445 * insdel.c (gap_left): Compute beg/end_unchanged per buffer.
8446 (gap_right): Ditto.
8447 (adjust_after_replace): Likewise.
8448 (replace_range, del_range_2, modify_region): Likewise.
8449
8450 * dispnew.c (direct_output_for_insert): Set beg_unchanged
8451 and unchanged_modified per buffer.
8452
8453 * coding.c (code_convert_region): Compute beg/end_unchanged per
8454 buffer.
8455
8456 * buffer.c (modify_overlay): Compute beg/end_unchanged
8457 per buffer.
427ec082 8458 (Fget_buffer_create): Initialize new members of the buffer
26901792
DL
8459 structure.
8460
84611999-08-22 Gerd Moellmann <gerd@gnu.org>
8462
8463 * lisp.h: Add prototype for copy_hash_table and Fcopy_hash_table.
8464
8465 * fns.c (Qkey, Qvalue): Renamed from Qkey_weak, and Qvalue_weak.
8466 (Qkey_value_weak): Removed.
8467 (make_hash_table): Use nil, `key', `value', t for weakness.
8468 (Fmake_hash_table): Ditto.
8469 (copy_hash_table): New.
8470 (Fcopy_hash_table): New.
8471
84721999-08-22 Gerd Moellmann <gerd@gnu.org>
8473
8474 * xfns.c: Call change_frame_size and do_pending_window_change with
d7d0dac0 8475 new parameter.
26901792
DL
8476
84771999-08-21 Gerd Moellmann <gerd@gnu.org>
8478
8479 * xdisp.c (resize_mini_window): Do it for truncate-lines t as
8480 well.
427ec082 8481 (redisplay_internal): Resize mini-window only if text might
26901792
DL
8482 have changed.
8483 (display_echo_area): Reset displayed echo_area_buffer to nil
8484 at the end if we're displaying a nil message.
8485
84861999-08-21 Gerd Moellmann <gerd@gnu.org>
427ec082 8487
26901792
DL
8488 * fns.c (hash_lookup): Test with EQ before calling key comparion
8489 function.
8490 (hash_remove): Ditto.
8491 (cmpfn_eq): Removed.
8492 (cmpfn_eql): Don't test with EQ.
8493 (cmpfn_equal): Ditto.
8494 (make_hash_table): Set comparison function for `eq' to null.
8495
8496 * buffer.c, cmds.c, editfns.c, indent.c, insdel.c, buffer.h:
8497 Remove conditional compilation on NO_PROMPT_IN_BUFFER.
8498
8499 * dispextern.h (NO_PROMPT_IN_BUFFER): Removed.
8500
8501 * window.c, widget.c, process.c, keyboard.c, frame.c, xdisp.c,
8502 xterm.c: Call change_frame_size and do_pending_window_change with
8503 new parameter.
8504
8505 * dispnew.c (do_pending_window_change): Add parameter `safe'.
8506 (change_frame_size): Ditto.
8507 (change_frame_size_1): Ditto. Deley size changes if redisplaying
8508 and not called from a safe place.
8509 (window_change_signal): Call change_frame_size with new parameter.
8510
8511 * dispextern.h: Change prototypes for do_pending_window_change
8512 and change_frame_size.
8513
8514 * xfaces.c (face_at_buffer_position): Don't xassert that
427ec082 8515 window's buffers equals current_buffer; this is not the
26901792
DL
8516 case during echo area display.
8517
85181999-08-21 Gerd Moellmann <gerd@gnu.org>
8519
8520 * xdisp.c, minibuf.c: Remove conditional compilation on
8521 NO_PROMPT_IN_BUFFER.
8522
8523 * minibuf.c (Fminibuffer_prompt_end): New.
8524 (syms_of_minibuf): Defsubr it. Remove
8525 minibuffer-prompt-in-buffer.
8526 (Fminibuffer_prompt_width): Return 0 if not in mini-buffer.
8527 Extend documentation.
8528
8529 * xdisp.c (get_next_display_element): Display \r as ^M.
8530
8531 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Clear
8532 under scroll bar widget.
8533
85341999-08-21 Gerd Moellmann <gerd@gnu.org>
8535
8536 * xdisp.c (minibuffer_scroll_overlap): Removed because not used
8537 anywhere.
8538 (unwind_redisplay): Return nil.
8539 (clear_garbaged_frames): New.
8540 (redisplay_internal): Use it.
8541 (echo_area_display): Ditto.
8542 (resize_mini_window): Mew.
8543 (display_echo_area_1): Use it to resize echo area window.
8544 (redisplay_internal): Use it to resize active mini-window.
8545
8546 * dispextern.h, lisp.h: Add function prototypes.
8547
427ec082 8548 * dispnew.c (set_window_cursor_after_update): Do the
26901792
DL
8549 cursor_in_echo_area case only for a mini-window showing
8550 a message. Don't let cursor end up after the end of a row.
8551
8552 * xdisp.c (echo_area_glyphs, echo_area_message,
8553 echo_area_glyphs_length, previous_echo_glyphs,
8554 previous_echo_area_message, previous_echo_area_glyphs_length):
8555 Removed.
8556 (Vmessage_stack, echo_area_buffer, echo_buffer,
8557 display_last_displayed_message_p, Vwith_echo_area_save_vector): New.
8558 (message2_nolog): Use set_message and clear_message.
8559 (message3): Rename parameter len to nbytes to make clear what
8560 it is.
8561 (message3_nolog): Ditto. Use set_message and clear_message.
8562 (update_echo_area): Rewritten.
8563 (with_echo_area_buffer): New.
8564 (with_echo_area_buffer_unwind_data, unwind_with_area_buffer): New.
8565 (setup_echo_area_for_printing): New.
8566 (display_echo_area, display_echo_area_1): New.
8567
8568 (current_message, current_message_1): New.
427ec082 8569 (push_message, restore_message, pop_message,
26901792
DL
8570 check_message_stack): New.
8571 (truncate_echo_area): Rewritten.
8572 (truncate_message_1): New.
8573 (set_message, set_message_1, clear_message): New.
8574 (echo_area_display): Rewritten.
8575 (redisplay_internal): Check for needed echo area update
8576 differently.
8577 (redisplay_preserve_echo_area): Rewritten.
427ec082 8578 (redisplay_window): Check for mini-window displaying echo area
26901792
DL
8579 message differently.
8580 (syms_of_xdisp): Initialize Vmessage_stack and echo area buffers.
8581 Remove initialzation of removed variables.
8582 (init_xdisp): Remove references to removed variables.
8583
8584 * dispnew.c (adjust_frame_message_buffer): Removed references
8585 to echo_area_glyphs and previous_echo_glyphs.
8586 (direct_output_for_insert): Check for mini-window displaying
8587 echo area message differently.
8588 (update_frame): Likewise.
8589 (set_window_cursor_after_update): Likewise. In echo area,
8590 don't try to set cursor on rows that aren't enabled.
8591
8592 * print.c: Remove conditional compilation on `standalone'.
8593 (glyph_len, str_to_glyph_cpy, str_to_glyph_ncpy,
427ec082 8594 glyph_to_str_cpy): Remove that section because GLYPHs are no
26901792
DL
8595 longer used in that way.
8596 (PRINTDECLARE): Add multibyte.
8597 (PRINTPREPARE, PRINTFINISH): Handle printcharfun t differently.
8598 (printbufidx): Removed.
8599 (printchar, strout): Rewritten.
8600
8601 * keyboard.c (ok_to_echo_at_next_pause): Make it a pointer to
8602 a struct kboard.
8603 (echo_kboard): New.
8604 (echo_now): Set echo_kboard to the current kboard.
8605 (cancel_echoing): Set echo_kboard to null.
8606 (cmd_error_internal): Use clear_message, remove references
8607 to echo_area_glyphs and echo_area_message.
8608 (command_loop_1): Check for echo area messages differently.
8609 (read_char): Likewise.
8610 (record_menu_key): Use clear_message.
8611 (Fexecute_extended_command): Check for echo area messages
8612 differently. Use push_message, restore_message, pop_message.
8613
8614 * alloc.c (Fgarbage_collect): Use push_message, restore_message,
8615 pop_message.
8616
8617 * emacs.c (shut_down_emacs): Call check_message_stack.
8618
8619 * lisp.h: Add function prototypes and extern declarations for
8620 new functions and variables.
8621
8622 * fileio.c (Fdo_auto_save): Use push_message, restore_message,
8623 pop_message.
8624
427ec082 8625 * minibuf.c (read_minibuf): Use clear_message instead of
26901792
DL
8626 setting echo_area_glyphs.
8627 (Fminibuffer_completion_help): Ditto.
8628
8629 * editfns.c (Fcurrent_message): Rewritten.
8630
8631 * frame.c, window.h: Remove references to echo_area_glyphs
8632 and previous_echo_glyphs.
8633
86341999-08-21 Dave Love <fx@gnu.org>
8635
8636 * aix3-2-5.h (C_DEBUG_SWITCH): Use -g -O.
8637 * aix4-1.h: Likewise.
8638
8639 * irix6-5.h (C_DEBUG_SWITCH): Set for debug and optimize.
8640
86411999-08-20 Gerd Moellmann <gerd@gnu.org>
8642
8643 * xfns.c: Remove tiff34 prefix from include.
8644
86451999-08-20 Dave Love <fx@gnu.org>
8646
8647 * cm.c: Revert previous change.
8648
86491999-08-19 Gerd Moellmann <gerd@gnu.org>
8650
8651 * xterm.c (XTset_vertical_scroll_bar): Fix previous change. Clear
8652 under scroll bar with width FRAME_SCROLL_BAR_COLS.
8653
86541999-08-18 Dave Love <fx@gnu.org>
8655
8656 * callproc.c, filelock.c, insdel.c, sysdep.c, xmenu.c: Use
8657 stdlib.h.
8658
8659 * doprnt.c: Use stdlib.h, unistd.h.
8660
8661 * config.in: Add HAVE_TERMCAP_H.
8662
8663 * cm.c: Use termcap.h.
8664
86651999-08-18 Gerd Moellmann <gerd@gnu.org>
8666
8667 * xfns.c (x_window) [USE_X_TOOLKIT]: Remove test for
8668 FRAME_X_WINDOW (f) being null at the of the function. If widgets
8669 cannot be created we will already have crashed earlier. Call
8670 lw_set_main_areas with a null menu-bar widget, so that we have
8671 a reasonable default.
8672 (Fx_create_frame): Rearranged so that Lisp errors during frame
8673 initialization cause less damage. Initialize menu bar widget
8674 here.
8675
86761999-08-18 Gerd Moellmann <gerd@gnu.org>
427ec082 8677
26901792
DL
8678 * dispnew.c (update_frame_line): Fix previous change. If writing
8679 whole line clear to end of frame.
8680
86811999-08-17 Gerd Moellmann <gerd@gnu.org>
8682
8683 * window.c (Fcoordinates_in_window_p): Return `left-bitmap-area'
8684 and `right-bitmap-area' if position is in the bitmap areas. This
8685 avoids an error when clicking on the bitmap areas. Instead, they
8686 are currently treated like clicks inside the window.
8687 (coordinates_in_window): Return 5 and 6 for bitmap areas.
8688 (Qleft_bitmap_area, Qright_bitmap_area): New.
8689 (syms_of_window): Initialize new symbols.
8690
8691 * dispnew.c (update_frame_line): If writing whole line,
8692 don't write trailing spaces unless we must.
8693
8694 * xdisp.c (unwind_redisplay): New. Resets flag redisplaying_p.
8695 (redisplay_internal): Register unwind_redisplay with
8696 register_unwind_protect.
8697 (try_window_reusing_current_matrix): If new start > old start,
8698 give up if start pos of first reusable row is not equal to new
8699 start.
8700
8701 * eval.c (Fsignal): Don't reset redisplaying_p here.
8702
8703 * xterm.c (expose_area): If row extends face to end of line,
8704 write the whole line.
8705
87061999-08-16 Gerd Moellmann <gerd@gnu.org>
8707
8708 * dispextern.h (struct it): Remove member
8709 show_trailing_whitespace_p.
8710
8711 * dispnew.c (direct_output_for_insert): Use
8712 Vshow_trailing_whitespace instead of former iterator member
8713 show_trailing_whitespace_p.
8714 (direct_output_forward_char): Don't do it if hightlighting
8715 trailing whitespace.
8716
8717 * xdisp.c (Qshow_trailing_whitespace): Removed.
8718 (Vshow_trailing_whitespace): Added.
8719 (init_iterator): Remove initialization code for
8720 show_trailing_whitespace_p.
8721 (redisplay_internal): Don't try cursor movement in this_line
8722 if showing trailing whitespace.
8723 (redisplay_window): Likewise for cursor movement in current
8724 matrix and try_window_id.
8725 (try_window_reusing_current_matrix): Likewise.
8726 (trailing_whitespace_p): Return 0 if trailing whitespace is
8727 in front of point.
8728 (display_line): Use Vshow_trailing_whitespace instead of
8729 former iterator member show_trailing_whitespace_p.
8730 (syms_of_xdisp): Add DEFVAR_LISP for show-trailing-whitespace.
8731
87321999-08-16 Gerd Moellmann <gerd@gnu.org>
8733
8734 * window.c (Fpos_visible_in_window_p): Rewritten.
8735
8736 * xfaces.c (add_to_log): Renamed from display_message.
8737 Don't display messages in echo area.
8738
8739 * xterm.c (x_draw_glyph_string_box): Use the background width
8740 of the glyph string for the width of the box.
8741
87421999-08-16 Stefan Monnier <monnier@cs.yale.edu>
8743
8744 * syntax.c (Fforward_comment): Set comstyle for Scomment_fence.
8745
87461999-08-16 Geoff Voelker <voelker@cs.washington.edu>
8747
8748 * xfns.c, w32fns.c (x_set_frame_parameters): Set foreground and
8749 background first, and then set other parameters that might
8750 depend upon their new values.
8751
87521999-08-15 Gerd Moellmann <gerd@gnu.org>
8753
8754 * xfaces.c (Vfont_list_limit): New.
8755 (syms_of_xfaces): Make it a user-variable.
8756 (DEFAULT_FONT_LIST_LIMIT): New.
8757 (sorted_font_list): If Vfont_list_limit is an integer > 0, list
8758 maximally that number of fonts, otherwise use
8759 DEFAULT_FONT_LIST_LIMIT.
427ec082 8760 (Fx_font_family_list): Bind `font-list-limit' to higher values
26901792
DL
8761 until we have all fonts.
8762 (Fxfont_list): Additionally return the full names of fonts and
8763 their registry and encoding.
8764
427ec082 8765 * xterm.c (XTset_vertical_scroll_bar) [USE_TOOLKIT_SCROLL_BARS]:
26901792
DL
8766 Simplify clearing "under" scroll bar.
8767
8768 * window.c (Qfixed_window_size): New.
8769 (syms_of_window): Initialiaze it.
8770 (check_all_windows): Add return type void.
8771 (window_fixed_size_p): New. Return non-zero if window
8772 is fixed-size.
8773 (window_min_size_1): New.
8774 (window_min_size): Handle fixed-size windows.
8775 (size_window): New. Rewritten combination of set_window_height and
8776 set_window_width that handles fixed-size windows.
8777 (set_window_height): Call it.
8778 (set_window_width): Call it.
8779 (Fsplit_window): Give an error on attempt to split a fixed-size
8780 window.
8781 (change_window_height): Partly rewritten to handle fixed-size
8782 windows.
8783
87841999-08-13 Wolfgang Rupprecht <wolfgang@wsrcc.com>
8785
8786 * process.c (Fopen_network_stream): Fix previous change.
8787
87881999-08-13 Karl Heuer <kwzh@gnu.org>
8789
8790 * xdisp.c (line_number_display_limit_width): New var.
8791 (decode_mode_spec): Use it instead of hardcoded value.
8792 (syms_of_xdisp): Defvar it.
8793
87941999-08-13 Richard M. Stallman <rms@gnu.org>
8795
8796 * eval.c (run_hook_list_with_args): Gcpro `globals'.
8797 (run_hook_with_args): Likewise.
8798
8799 * window.h (struct window): New field too_small_ok.
8800
427ec082 8801 * window.c (set_window_height, set_window_width):
26901792
DL
8802 If window starts out "too small", set its too_small_ok flag.
8803 If window's too_small_ok flag is set, don't delete it
8804 unless it is so small it would cause a crash.
8805
88061999-08-13 Gerd Moellmann <gerd@gnu.org>
8807
8808 * window.c (MINSIZE): Removed.
8809 (window_min_size): New.
8810 (set_window_height): Use window_min_size.
8811 (change_window_height): Ditto.
8812
88131999-08-12 Gerd Moellmann <gerd@gnu.org>
8814
8815 * indent.c (vmotion): Don't add in mini-buffer prompt width
8816 if prompts are inserted into mini-buffer.
8817
88181999-08-12 Wolfgang Rupprecht <wolfgang@wsrcc.com>
8819
8820 * config.in: Add HAVE_GETADDRINFO.
8821 * process.c (Fopen_network_stream): Use getaddrinfo.
8822
88231999-08-11 Gerd Moellmann <gerd@gnu.org>
8824
8825 * xdisp.c (get_overlay_arrow_glyph_row): Set the charpos of
8826 glyphs to -1.
8827
8828 * xdisp.c (face_before_or_after_it_pos): If position after
8829 or before iterator's current position in the buffer is out
8830 of bounds, return the iterator's original face id.
8831
8832 * dispnew.c (mirror_make_current): If desired row isn't enabled,
8833 just swap glyphs pointers between current and desired row.
8834 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Copy
8835 desired matrix method string to current matrix.
8836
88371999-08-11 Kenichi Handa <handa@etl.go.jp>
8838
8839 * lisp.h (CHAR_MODIFIER_MASK): New macro.
8840
8841 * lread.c (read_escape): For Control modifier, pay attention to
8842 multibyte character.
8843 (read1): Likewise. Singal error or a multibyte character which
8844 has a modifer bit. Check validity of Shift modifer.
8845
8846 * charset.c (non_ascii_char_to_string): Handle modifier bits as
8847 the same as Lisp reader.
8848
88491999-08-10 Richard M. Stallman <rms@gnu.org>
8850
8851 * charset.h (BCOPY_SHORT): Fix typo `unsigined'.
8852
88531999-08-10 Alexandre Oliva <oliva@dcc.unicamp.br>
8854
8855 * unexelf.c [__linux__ && __alpha__] (HAS_SBSS_SECTION): Define.
8856
88571999-08-10 Eli Zaretskii <eliz@gnu.org>
8858
8859 * msdos.c (IT_set_face): Abort if the default face is not realized
8860 and cached.
8861 (IT_write_glyphs): Reset the screen face to the default face
8862 before writing glyphs.
8863
8864 * xfaces.c (realize_default_face) [MSDOS]: Don't take default
8865 colors from the frame here.
8866 (realize_tty_face) [MSDOS]: Do it here. Update the face
8867 attributes with the actual name of the color taken from the
8868 frame.
8869
8870 * dosfns.c (msdos_stdcolor_name): Remove const from return value.
8871 * dosfns.h (msdos_stdcolor_name): Ditto for the prototype.
8872
8873 * frame.c (Fframe_parameters): Swap foreground and background
8874 colors returned in frame parameters if the frame has reverse in
8875 its parameter alist.
8876 (Fmake_terminal_frame): Make a unique copy of face_alist for
8877 each frame.
8878
88791999-08-07 Richard Stallman <rms@gnu.org>
8880
8881 * buffer.c (Fprevious_overlay_change): Just return
8882 the answer obtained from overlays_at.
8883
8884 * xfns.c (xpm_load) [!XpmAllocCloseColors]:
8885 Use XpmCloseness and attrs.closeness instead.
8886
88871999-08-06 Richard Stallman <rms@gnu.org>
8888
8889 * lread.c (Feval_buffer): New arg DO_ALLOW_PRINT.
8890
88911999-08-06 Geoff Voelker <voelker@cs.washington.edu>
8892
427ec082 8893 * dired.c (directory_files_internal, Fdirectory_files_and_attributes,
26901792
DL
8894 Ffile_attributes_lessp): New functions.
8895 (Fdirectory_files): Use directory_files_internal.
8896 (syms_of_dired): Initialize Fdirectory_files_and_attributes,
8897 Ffile_attributes_lessp.
8898
8899 * w32.c (stat): Check for directory ending in separator when
8900 doing readdir fast path.
8901
8902 * w32fns.c (x_set_icon_type): Support setting frame icons.
8903 * w32term.c (x_bitmap_icon): New function.
8904 (x_make_frame_visible, x_iconify_frame): Invoke x_bitmap_icon.
427ec082 8905
26901792
DL
89061999-08-06 Gerd Moellmann <gerd@gnu.org>
8907
8908 * xdisp.c (set_iterator_to_next): After delivering a character
8909 from a display vector, restore face and charset to what they were
8910 before the display vector was processed.
8911
89121999-08-06 Gerd Moellmann <gerd@gnu.org>
8913
8914 * xdisp.c (reseat_at_next_visible_line_start): New parameter
8915 on_newline_p.
8916 (set_iterator_to_next): After delivering last char
427ec082 8917 from display vector, reseat on next visible line start if
26901792
DL
8918 dpvec_char_len < 0.
8919 (next_element_from_buffer): Set dpvec_char_len to -1 for
8920 selective display.
8921
89221999-08-06 Gerd Moellmann <gerd@gnu.org>
8923
8924 * xdisp.c (compute_line_metrics): If first line's physical ascent
8925 is larger than its logical ascent, use the physical ascent, and
8926 make the row taller. Set row's overlapping_p flag.
8927
8928 * dispnew.c (redraw_overlapping_rows): Use flag overlapping_p.
8929 (direct_output_for_insert): Ditto.
8930
8931 * dispextern.h (struct glyph_row): Add overlapping_p.
8932
8933 * xterm.c (x_draw_phys_cursor_glyph): Redraw overlaps.
8934
8935 * dispextern.h (MATRIX_ROW_OVERLAPS_PRED_P): New.
8936 (MATRIX_ROW_OVERLAPS_SUCC_P): New.
8937
8938 * dispnew.c (direct_output_for_insert): Don't use this method if
8939 row is overlapped by others.
8940 (update_text_area): Write full line if current line is overlapped.
8941 (redraw_overlapped_rows): New.
8942 (update_window): Call it.
8943 (redraw_overlapping_rows): New.
8944 (update_window): Call it.
8945 (scrolling_window): Make sure overlapped_p flag in current rows is
8946 unchanged.
8947 (row_equal_p): Take rows overlapped_p flag into account.
8948
8949 * dispextern.h (struct glyph_row): Add flag overlapped_p.
8950
8951 * xterm.c (x_fix_overlapping_area): New.
8952 (x_redisplay_interface): Add x_fix_overlapping_area.
8953
8954 * dispnew.c (adjust_glyphs): Block input while adjusting matrices.
8955
89561999-08-06 Gerd Moellmann <gerd@gnu.org>
8957
8958 * xterm.c (x_draw_glyphs): Add parameter overlaps_p.
8959 (struct glyph_string): Add member for_overlaps_p.
8960 (x_get_glyph_string_clip_rect): If glyph string draws foreground
8961 of overlapping rows, clip to window bottom.
8962 (x_fill_glyph_string): Add parameter overlaps_p.
8963 (x_fill_composite_glyph_string): Ditto.
8964 (BUILD_GLYPH_STRINGS): Ditto.
8965 (BUILD_CHAR_GLYPH_STRINGS): Ditto.
8966 (x_draw_glyph_string): Don't draw anything but the foreground
8967 if glyph string draws row overlaps.
8968
8969 * dispnew.c (direct_output_for_insert): Don't use this
8970 optimization for rows that overlap others.
8971 (update_window_line): Return non-zero if display has changed.
8972 (update_text_area): Ditto.
8973 (update_window): Record if display has been changed.
8974
8975 * dispextern.h (MATRIX_ROW_OVERLAPPING_P): New.
8976
8977 * dispextern.h (struct redisplay_interface): Add
8978 fix_overlapping_area.
8979
8980 * xterm.c (x_append_glyph): Set glyph flag overlaps_vertically_p.
8981
8982 * dispextern.h (struct glyph): Add overlaps_vertically_p.
8983
8984 * xterm.c (x_produce_image_glyph): Compute iterator's physical
8985 ascent and descent.
8986 (x_produce_stretch_glyph): Ditto.
8987 (x_produce_glyphs): Ditto.
8988
8989 * xdisp.c (init_iterator): Reset physical line height info
8990 after producing special glyphs.
8991 (display_toolbar_line): Set physical line height info.
8992 (compute_line_metrics): Ditto.
8993 (display_line): Ditto.
8994 (display_string): Ditto.
8995
8996 * term.c (produce_glyphs): Set iterator's physical height
8997 information.
8998
8999 * dispnew.c (blank_row): Compute glyph row's physical height.
9000 (row_equal_p): Take physical row heights into account.
9001 (direct_output_for_insert): Ditto.
9002 (update_text_area): Ditto.
9003
9004 * dispextern.h (struct glyph_row): Add phys_ascent and
9005 phys_height.
9006 (struct it): Add phys_ascent, phys_descent, max_phys_ascent,
9007 max_phys_descent.
9008
90091999-08-04 Stefan Monnier <monnier@cs.yale.edu>
9010
9011 * buffer.c (switch_to_buffer_1): New subroutine, taken out from
9012 Fswitch_to_buffer.
9013 (no_switch_buffer): New function.
9014 (Fswitch_to_buffer): Call them. Don't get confused
9015 by "same-window" buffers in a dedicated frame.
9016
9017 * window.c (display-buffer): Don't get confused
9018 by "same-window" buffers in a dedicated frame.
9019
90201999-08-04 Andreas Schwab <schwab@gnu.org>
9021
9022 * insdel.c (insert_from_string_1): Check gap size against number
9023 of outgoing bytes, not incoming bytes.
9024
90251999-08-03 Tom Breton <tob@world.std.com>
9026
9027 * lread.c (read1): Added circular reading code to #N=.
9028 (SUBSTITUTE): New macro.
9029 (seen_list): New variable.
9030 (substitute_object_in_subtree): New function.
9031 (substitute_object_recurse): New function.
9032 (substitute_in_interval): New function.
9033
90341999-08-02 Eli Zaretskii <eliz@gnu.org>
9035
9036 * Makefile.in (frame.o, sysdep.o, xfaces.o): Depend on dosfns.h.
9037
9038 * frame.c (make_terminal_frame): Don't call init_frame_faces if
9039 noninteractive, for termcap frames as well.
9040
9041 * sysdep.c (init_sys_modes): Call init_frame_faces for termcap
9042 frames.
9043
90441999-08-01 Richard Stallman <rms@gnu.org>
9045
9046 * fns.c (internal_equal): Correct overlay comparison.
9047
83c8f461 90481999-07-31 Richard M. Stallman <rms@gnu.org>
26901792 9049
427ec082 9050 * xfns.c (x_set_internal_border_width):
26901792
DL
9051 Call do_pending_window_change. Don't block input, don't call XFlush.
9052 (x_set_vertical_scroll_bars): Call do_pending_window_change.
9053 (x_set_scroll_bar_width, x_set_font): Likewise.
9054
9055 * frame.c (Fset_frame_height): Call do_pending_window_change.
9056 (Fset_frame_width, Fset_frame_size): Likewise.
9057
9058 * xterm.c (x_set_window_size): When calling change_frame_size,
9059 specify 1 for DELAY.
9060
9061 * widget.c (EmacsFrameSetCharSize): Don't call
9062 do_pending_window_change here.
9063
90641999-07-30 Dave Love <fx@gnu.org>
9065
9066 * config.in: Add HAVE_STDLIB_H.
9067
90681999-07-30 Richard M. Stallman <rms@gnu.org>
9069
9070 * process.c (create_process): Detect failure of `pipe'.
9071
90721999-07-30 Keisuke Nishida <kei@psn.net>
9073
9074 * alloc.c (allocate_vectorlike): Add missing increment.
9075
9076 * data.c (Fdefalias): Call Ffset instead of duplicating code.
9077
9078 * keymap.c (get_keymap_1, get_keyelt): Check the type of OBJECT
9079 before calling indirect_function.
9080
90811999-07-30 Eli Zaretskii <eliz@gnu.org>
9082
9083 * dispextern.h (load_color, lookup_derived_face): Declare
9084 prototypes.
9085
9086 * dispnew.c (init_display) [MSDOS]: Don't initialize frame faces,
9087 it will be done later.
9088
9089 * frame.c (make_terminal_frame) [MSDOS]: Don't call
9090 init_frame_faces if non-interactive.
9091 (Fframe_parameters) [MSDOS]: Replace indexing into colornames[]
9092 array with a call to msdos_stdcolor_name. The font name is now
9093 "ms-dos", consistent with realize_tty_face.
9094
9095 * keyboard.c (cmd_error_internal): Don't kill Emacs if this is an
9096 MSDOS frame.
9097
9098 * window.c (Fset_window_configuration) [MSDOS]: Don't call
9099 x_set_toolbar_lines.
9100
9101 * xfaces.c (load_color): Remove static from definition and remove
9102 prototype.
9103 [MSDOS]: Add a DOS-specific version of load_color.
9104 (lookup_face): Replace FRAME_TERMCAP_P with !FRAME_WINDOW_P.
9105 (lookup_derived_face): New function.
9106 (realize_default_face): Support MSDOS frames.
9107 [MSDOS]: If fore/background colors are unspecified, inherit them
9108 from the frame.
9109 (realize_face): Support MSDOS frames.
9110 (realize_tty_face): Support MSDOS frames.
9111 [MSDOS]: If the face color is not in Vface_tty_color_alist, call
9112 load_color to try to find a suitable approximation. If the face
9113 is inverse-video, swap the foreground and background colors.
9114
9115 * dosfns.c (msdos_stdcolor_name, msdos_stdcolor_idx): New
9116 functions.
9117
9118 * dosfns.h (msdos_stdcolor_name, msdos_stdcolor_idx): Declare.
9119
9120 * msdos.h: Remove redundant declarations (most of them are now in
9121 dispextern.h).
9122
9123 * msdos.c (IT_set_face): Rewritten for the new redisplay engine.
9124 Use default frame colors if the face doesn't specify them; invert
9125 the colors if highlight is ON.
9126 (IT_write_glyphs): Rewritten for the new redisplay engine.
9127 (IT_change_line_highlight): Add (unused) parameter Y, since that's
9128 how the hook is called by term.c.
9129 (IT_copy_glyphs): New function, copies an area of the display in
9130 video RAM.
9131 (IT_insert_glyphs): Rewritten to DTRT instead of aborting, since
9132 redisplay now calls it even if char_ins_del_ok is zero.
9133 (IT_set_frame_parameters): Prototype changed. Calls the new
9134 load_color. Puts the new fore/background colors into the default
9135 face on current frame.
9136 (IT_menu_display): Rewritten to handle the new struct glyph
9137 instead of a char array.
9138 (XMenuActivate): Call lookup_derived_face to create and use
9139 special faces for the pop-up and drop-down menus.
9140
91411999-07-29 Gerd Moellmann <gerd@gnu.org>
9142
9143 * xterm.c (x_set_toolkit_scroll_bar_thumb): Don't call
9144 XawScrollbarSetThumb if thumb parameters haven't changed because
9145 that function apparently isn't optimized for this case.
9146
91471999-07-29 Eli Zaretskii <eliz@gnu.org>
9148
9149 * msdos.c (getdefdir): Don't return failure indication when
9150 _fixpath sets errno to ENOSYS.
9151
91521999-07-28 Gerd Moellmann <gerd@gnu.org>
9153
9154 * xdisp.c (string_char_and_length): New. Use it everywhere
9155 instead of STRING_CHAR_AND_LENGTH in xdisp.c.
9156
91571999-07-28 Kenichi Handa <handa@etl.go.jp>
9158
9159 * fns.c (count_combining): New function.
9160 (struct textprop_rec): New structure.
9161 (concat): Copy text properties correctly when byte combining
9162 occurs.
9163
91641999-07-28 Gerd Moellmann <gerd@gnu.org>
9165
9166 * xterm.c (x_setup_relief_color): Don't try smart color allocation
9167 if display is mono.
9168 (x_draw_row_bitmaps): If face has stipple, don't switch
9169 to foreground color for clearing areas, and set the fill style.
9170
9171 * xfaces.c (load_face_colors): Load background color if setting
9172 stipple, too.
427ec082 9173 (prepare_face_for_display): Use FillOpaqueStippled instead of
26901792
DL
9174 FillStippled.
9175
91761999-07-26 Ken'ichi Handa <handa@gnu.org>
9177
9178 * xterm.c (x_find_ccl_program): Add casting.
9179
9180 * w32fns.c (w32_find_ccl_program): Add casting.
9181
91821999-07-27 Gerd Moellmann <gerd@gnu.org>
9183
9184 * dispextern.h (struct glyph_row): Flag internal_border_p removed.
9185
9186 * xfns.c (x_create_tip_frame): Don't set bitmapIcon resource
9187 because this will try to access a nonexisting widget.
9188
91891999-07-26 Markus Rost <rost@gnu.org>
9190
427ec082 9191 * fns.c (Fgethash): Fix order of variables (patch by gerd).
26901792
DL
9192 (Fputhash): Ditto.
9193 (Fremhash): Ditto.
9194
91951999-07-26 Gerd Moellmann <gerd@gnu.org>
427ec082 9196
26901792
DL
9197 * widget.c (EmacsFrameSetCharSize): Don't add XtNborderWidth
9198 value to frame width and height.
9199
9200 * xterm.c (x_get_glyph_string_clip_rect): Take internal border
9201 into account for full-width windows. Don't add scroll bar width
9202 to width of clip rect.
9203 (x_draw_glyph_string_box): Add 1 to right x of full width lines.
9204 (x_set_glyph_string_background_width): Add 1 to background width.
9205 (x_draw_glyphs): Take internal border into account for full-width
9206 lines.
9207
92081999-07-26 Richard M. Stallman <rms@gnu.org>
9209
9210 * xfns.c (x_set_mouse_color): Always unload the old color.
9211 Don't allow nil as color value.
427ec082 9212 (x_set_cursor_color, x_set_background_color, x_set_foreground_color):
26901792
DL
9213 Always unload the old color.
9214
9215 * indent.c (Fmove_to_column): Extend end of line only if FORCE is t.
9216
92171999-07-26 Karl Heuer <kwzh@gnu.org>
9218
9219 * fns.c (Fy_or_n_p): Doc fix.
9220
92211999-07-26 Kenichi Handa <handa@etl.go.jp>
9222
9223 * ccl.h (setup_ccl_program): The type is changed to `int'.
9224
9225 * ccl.c (ccl_driver) <CCL_Call>: Now CCL program ID to call may be
9226 stored in the following CCL code. Adjusted for the change of
9227 Vccl_program_table.
9228 (resolve_symbol_ccl_program): Adjusted for the new style of
9229 embedded symbols (SYMBOL . PROP) in CCL compiled code. Return Qt
9230 is resolving failed.
9231 (ccl_get_compiled_code): New function.
9232 (setup_ccl_program): Function type changed from `void' to `int'.
9233 Resolve symbols in CCL_PROG.
9234 (Fccl_program_p): New function.
9235 (Fccl_execute): Get compiled CCL code by just calling
9236 setup_ccl_program.
9237 (Fccl_execute_on_string): Likewise.
9238 (Fregister_ccl_program): Adjusted for the change of
9239 Vccl_program_table.
9240
9241 * coding.c (setup_coding_system): Get compiled CCL code by just
9242 calling setup_ccl_program.
9243
9244 * xterm.c (x_find_ccl_program): Get compiled CCL code by just
9245 calling setup_ccl_program.
9246
9247 * w32fns.c (w32_find_ccl_program): Get compiled CCL code by just
9248 calling setup_ccl_program.
9249
92501999-07-23 Gerd Moellmann <gerd@gnu.org>
9251
9252 * xfaces.c (frame_update_line_height): Just use the height of the
9253 frame's fontset or font, instead of taking face fonts into
9254 account.
9255
9256 * xdisp.c (get_next_display_element): Display DEL as `^?'.
9257
92581999-07-23 Richard M. Stallman <rms@gnu.org>
9259
9260 * window.c (Fsplit_window): For default size, round up for left window.
9261
92621999-07-21 Joe Ramey <ramey@ti.com>
9263
d7d0dac0 9264 * filelock.c (lock_if_free): Return -1 if check_lock_owner
26901792
DL
9265 has returned -1 (lockfile exists but is not a symlink?).
9266
92671999-07-20 Gerd Moellmann <gerd@gnu.org>
9268
9269 * xterm.c (x_draw_bar_cursor): Use scratch_cursor_gc to
9270 because of a change in cursor_gc made in 20.4.
9271
92721999-07-19 Gerd Moellmann <gerd@gnu.org>
9273
9274 * xterm.c (x_calc_absolute_position): Subtract menu bar height
9275 for YNegative, if using X toolkit.
9276
427ec082 9277 * xfns.c (x_real_positions): Don't subtract window borders
26901792
DL
9278 from positions returned.
9279
92801999-07-17 Gerd Moellmann <gerd@gnu.org>
9281
9282 * xrdb.c (x_load_resources): Set double-click time defaults
9283 for Motif list boxes from double-click-time.
9284
9285 * fns.c (Vhash_table_tests): Remvoed.
9286 (Qhash_table_test): New.
9287 (syms_of_fns): Initialize Qhash_table_test.
9288 (Fmake_hash_table): Look up user-defined tests in symbol prop
9289 `hash-table-test'.
9290 (Fdefine_hash_table_test): Store test and hash function as
9291 symbol prop `hash-table-test'.
9292 (make_hash_table): Add parameters user_test and user_hash.
9293
9294 * window.c (set_window_buffer): Set window margins for tty
9295 frames, too.
9296 (Fset_window_margins): Ditto.
9297
9298 * term.c (append_glyph): Use glyph area of iterator instead of
9299 always TEXT_AREA.
9300
9301 * dispnew.c (update_frame_1): Add left margin width to cursor
9302 hpos.
9303 (direct_output_for_insert): Ditto.
9304 (direct_output_forward_char): Ditto.
9305
9306 * dispnew.c (adjust_glyph_matrix): Set glyph matrix' top_line_p.
9307
9308 * dispextern.h (struct glyph_matrix): Add top_line_p.
9309
93101999-07-16 Gerd Moellmann <gerd@gnu.org>
9311
9312 * frame.h (FRAME_WINDOW_REDISPLAY_P): Removed. Use FRAME_WINDOW_P
9313 instead.
9314
9315 * fns.c (cmpfn_eq): Add hash code parameters.
9316 (cmpfn_eql): Ditto.
9317 (cmpfn_equal): Ditto, and compare hash codes before calling Fequal.
9318 (cmpfn_user_defined): Likewise.
9319
93201999-07-15 Gerd Moellmann <gerd@gnu.org>
9321
9322 * lisp.h (DEFAULT_REHASH_THRESHOLD): Changed to 0.8.
9323
9324 * fns.c (maybe_resize_hash_table): Correct computation of
9325 index vector size.
9326 (make_hash_table): Ditto.
9327 (Fmakehash): New.
9328
9329 * xdisp.c (echo_area_display): Don't call redraw_garbaged_frames.
9330
9331 * alloc.c (gc_sweep): Call sweep_weak_hash_tables.
9332 (survives_gc_p): Make it externally visible.
9333 (mark_object): Ditto.
9334
9335 * fns.c (remove_hash_entry): Removed.
9336 (sweep_weak_hash_tables): New.
9337
9338 * print.c (print): Print more information about hash tables.
9339
9340 * xfns.c (image_spec_hash): Removed.
9341 (lookup_image): Use sxhash instead of image_spec_hash.
9342 (image_spec_equal_p): Removed.
9343 (lookup_image): Use Fequal instead of image_spec_equal_p.
9344
93451999-07-14 Gerd Moellmann <gerd@gnu.org>
9346
9347 * lisp.h (P_): Moved to top of file.
9348
9349 * fns.c (make_hash_table): Set new members.
9350
9351 * alloc.c (mark_object): Mark hash table's user_hash_function.
9352 Mark index vector for weak hash tables.
9353
9354 * lisp.h (struct Lisp_Hash_Table): Add user_cmp_function,
9355 user_hash_function, cmpfn, and hashfn.
9356
9357 * fns.c (build_hash): Removed.
9358 (hash_test): Removed.
9359 (cmpfn_eq, cmpfn_eql, cmpfn_equal, cmpfn_user_defined): New.
9360 (hashfn_eq, hashfn_eql, hashfn_equal, hashfn_user_defined): New.
9361
93621999-07-13 Gerd Moellmann <gerd@gnu.org>
9363
9364 * alloc.c (survives_gc_p): New.
9365
9366 * print.c (print): Add hash table handling.
9367
9368 * alloc.c (mark_object): Add code to mark hash tables.
9369
9370 * lisp.h (GC_HASH_TABLE_P): New.
9371
9372 * emacs.c (main): Call init_fns.
9373
9374 * fns.c (init_fns): New.
9375
9376 * fns.c: Add hash table implementation.
9377
9378 * lisp.h (PVEC_HASH_TABLE): New.
9379 (struct Lisp_Hash_Table): New.
9380 (XHASH_TABLE): New.
9381 (XSET_HASH_TABLE): New.
9382 (HASH_TABLE_P): New.
9383 (CHECK_HASH_TABLE): New.
9384 (DEFAULT_HASH_SIZE): New.
9385 (DEFAULT_REHASH_THRESHOLD): New.
9386 (DEFAULT_REHASH_SIZE): New.
9387
9388 * xterm.c (x_draw_glyphs): Add parameters real_start and real_end.
9389 (x_write_glyphs): Compute overwritten cursor using real start
9390 and end positions of display.
9391 (x_insert_glyphs): Ditto.
9392
93931999-07-10 Gerd Moellmann <gerd@gnu.org>
9394
9395 * keyboard.c (read_char): Use message3_nolog to show help-echo.
9396
9397 * dispnew.c (blank_row): Add y-position as parameter. Compute
9398 visible height.
9399
9400 * xdisp.c (next_element_from_string): Give padding spaces
9401 a position of -1.
9402
427ec082 9403 * dispnew.c (adjust_glyph_matrix): Some work to support
26901792
DL
9404 marginals areas on tty frames in a future version.
9405 (allocate_matrices_for_frame_redisplay): Ditto.
9406
9407 * xdisp.c (display_line): At ZV, set glyph row's displays_text_p
9408 to zero if number of glyphs in the row is <= 1.
9409
94101999-07-09 Gerd Moellmann <gerd@gnu.org>
9411
9412 * dispnew.c (buffer_posn_from_coords): Take left marginal area
9413 into account.
9414
9415 * xdisp.c (handle_display_prop): Don't reset area if handing
9416 a property from a string that came from a `display' property.
9417 (handle_single_display_prop): Don't handle recursive `display'
9418 properties.
9419 (handle_single_display_prop): Handle some display property
9420 forms for terminal frames.
9421 (Qimage): Moved here from xfns.c.
9422
9423 * dispextern.h (struct it): New field string_from_display_prop_p.
9424
9425 * xterm.c (x_clip_to_row): Don't let clip_rect include top
9426 line.
9427
94281999-07-08 Gerd Moellmann <gerd@gnu.org>
9429
9430 * xdisp.c (handle_single_display_prop): Handle `:when FORM'.
9431
9432 * window.c (set_window_buffer): Set window's vscroll to zero.
9433
9434 * xdisp.c (QCwhen): New.
9435 (display_prop_end): New.
9436 (handle_single_display_prop): Use it.
9437 (debug_method_add): Print buffer name if tracing.
9438 (try_window_reusing_current_matrix): Compute visible height
9439 of reused rows. Fix cursor position calculation in case of
9440 top-line.
9441
9442 * dispextern.h (struct redisplay_interface): Add parameter
9443 cursor_on_p to update_window_end_hook.
9444
9445 * xterm.c (x_update_window_end): Add parameter cursor_on_p.
9446
94471999-07-07 Gerd Moellmann <gerd@gnu.org>
9448
427ec082 9449 * xdisp.c (redisplay_internal): Ensure that redisplayinp_p
26901792
DL
9450 doesn't become negative when decrementing it.
9451
9452 * eval.c (Fsignal): Reset redisplaying_p to zero.
9453
9454 * xdisp.c (try_window_reusing_current_matrix): Call hooks
9455 for window update.
9456 (try_window_id): Ditto.
9457
9458 * xterm.c (x_clear_end_of_line): Handle top-line correctly.
9459 (x_scroll_run): Ditto.
9460 (any_help_event_p): New.
9461 (x_initialize): Set it to zero.
9462 (XTread_socket): Clear help echo only if any_help_event_p.
9463
9464 * xdisp.c (init_iterator): Set top_line_p.
9465 (start_display): Use correct initial y if top-line is present.
9466 (make_cursor_line_fully_visible): Bug fixes for top-line.
9467 (try_scrolling): Ditto.
9468 (try_window_reusing_current_matrix): Ditto.
9469
9470 * dispextern.h (struct it): Add top_line_p.
9471
9472 * dispnew.c (shift_glyph_matrix): Move some computations out
9473 of the loop.
9474
427ec082 9475 * dispnew.c (margin_glyphs_to_reserve): Use NUMBERP and
26901792
DL
9476 XFLOATINT.
9477
94781999-07-06 Gerd Moellmann <gerd@gnu.org>
9479
9480 * dispnew.c (update_frame_1): When setting cursor in echo area,
9481 skip only over padding spaces at the end.
9482
9483 * xfaces.c (realize_tty_face): Set face's font_name field to
9484 "tty".
9485
9486 * term.c (update_end): Turn cursor on only if selected window's
9487 cursor_off_p flag is not set.
9488
94891999-07-05 Gerd Moellmann <gerd@gnu.org>
9490
9491 * term.c (TS_cursor_visible): Renamed from TS_visual_mode.
9492 (TS_cursor_normal): Renamed from TS_end_visual_mode.
9493 (TS_cursor_invisible): New.
9494 (term_init): Initialize TS_cursor_invisible.
9495 (tty_hide_cursor): New.
9496 (tty_show_cursor): New.
9497 (update_end): Show tty cursor.
9498 (update_begin): Hide tty cursor to prevent cursor flickering
9499 during redisplays triggered by timers (stealth fontification).
9500
9501 * keyboard.c (make_lispy_event) <TOOLBAR_EVENT>: Apply modifiers.
9502
9503 * xterm.c (XTread_socket) [USE_MOTIF] <KeyPress>: Catch events
9504 in scroll bars.
9505 (x_handle_toolbar_click): Set modifier bits.
9506
95071999-07-04 Gerd Moellmann <gerd@gnu.org>
9508
9509 * keyboard.c (kbd_store_ptr): Declare it as a volatile pointer
9510 instead of a pointer to a volatile input_event.
427ec082 9511 (kbd_buffer_store_event): Remove volatile modifier from
26901792
DL
9512 declaration of local variable `sp'.
9513 (Fdiscard_input): Don't cast when assigning kbd_store_ptr
9514 to kbd_fetch_ptr.
9515
95161999-07-03 Gerd Moellmann <gerd@gnu.org>
9517
9518 * xdisp.c (try_window_id): Set beg_unchanged and end_unchanged
9519 only if buffer is modified. Return quickly if changes are
9520 above window start.
9521
95221999-07-02 Gerd Moellmann <gerd@gnu.org>
9523
9524 * dispextern.h (HSCROLL_WINDOWS): Removed.
9525
9526 * xdisp.c (mark_window_display_accurate): Don't set
9527 w->region_showing.
9528 (redisplay_internal): Don't call redraw_garbaged_frames.
9529
95301999-07-01 Gerd Moellmann <gerd@gnu.org>
9531
9532 * xdisp.c (echo_area_display): Don't display truncation marks
9533 for messages because 20.4 doesn't do it either.
9534 (redisplay_window): Case same window start. Instead of giving
9535 up when cursor is partially visible, make it fully visible.
9536 (mark_window_display_accurate): Some cleanup. Record window's
9537 last cursor information.
9538 (debug_method_add): Improved.
9539 (redisplay_internal): Record last cursor info only if not
9540 consider_all_windows_p.
9541
9542 * dispnew.c (update_window): Update top line after scrolling.
9543 (blank_row): Renamed from make_empty_enabled_row.
9544 (increment_glyph_row_buffer_positions): Increment positions
9545 in buffers, only.
9546
9547 * window.c (Fcoordinates_in_window_p): Add top-line to doc
9548 string.
9549
95501999-06-30 Gerd Moellmann <gerd@gnu.org>
9551
9552 * dispnew.c (update_window): Check that updated row is visible.
9553
9554 * xterm.c (x_draw_row_bitmaps): Check for invisible rows at
9555 top of window differently.
9556
9557 * xdisp.c (try_window_reusing_current_matrix): Don't do it
9558 if region is showing.
9559
9560 * dispnew.c (adjust_glyph_matrix): Check w->vscroll when
9561 avoiding matrix reallocation. Set window_vscroll in matrix.
9562
9563 * dispextern.h (struct glyph_matrix): Add member window_vscroll.
9564
26901792
DL
9565 * xdisp.c (debug_method_add): New.
9566 (debug_redisplay_method): Removed.
9567 (try_window_reusing_current_matrix): Handle case where old
9568 window start is the same as new window start.
9569
9570 * dispextern.h (struct glyph_matrix) [GLYPH_DEBUG]: Make `method'
9571 an array instead of a pointer.
9572
26901792
DL
9573 * xfns.c (Fx_show_tip): Undo previous change.
9574
9575 * xterm.c (x_append_glyph): Clear glyph->u.val.
9576
9577 * dispextern.h (struct glyph): Increase size of face_id bit-field
9578 for CHAR_GLYPH to 12.
9579
95801999-06-29 Gerd Moellmann <gerd@gnu.org>
9581
9582 * xfaces.c (x_charset_registry): Make it externally visible.
9583
95841999-06-28 Gerd Moellmann <gerd@gnu.org>
9585
427ec082 9586 * dispnew.c (update_window): Use mode_line_p flag of rows
26901792
DL
9587 instead of WINDOW_WANTS_MODELINE_P.
9588
9589 * xterm.c (clear_mouse_face): Make externally visible.
9590
9591 * xfns.c (Fx_show_tip): Clear mouse face before showing tip.
9592
9593 * xterm.c (expose_line): Handle exposure of top-lines.
9594
9595 * xterm.c (XTframe_up_to_date): Don't call note_mouse_highlight
9596 if mouse_face_mouse_frame is null.
9597
9598 * xdisp.c (redisplay_window): If window is echo_area_window,
9599 and update_mode_line is set, update menubar and toolbar.
9600
9601 * dispnew.c (space_glyph): Set its charpos to -1.
9602 (update_frame_1): Ignore trailing padding spaces.
9603
9604 * xdisp.c (next_element_from_c_string): Set position of padding
9605 glyphs to -1.
9606
96071999-06-27 Gerd Moellmann <gerd@gnu.org>
9608
9609 * xfns.c (x_laplace_read_row): Use XQueryColors instead of
9610 XQueryColor.
9611
9612 * xdisp.c (display_menu_bar): Remove unwarranted assertion.
9613 (set_cursor_from_row): Skip over glyphs having a null object at
9614 the start of rows.
9615 (insert_left_trunc_glyphs): Use charpos < 0 to indicate truncation
9616 glyphs.
9617 (handle_invisible_prop): Compute next change only when needed.
9618 (handle_face_prop): Don't correct DEFAULT_FACE_ID if in the mode
9619 line.
9620
96211999-06-26 Gerd Moellmann <gerd@gnu.org>
9622
9623 * xrdb.c (x_load_resources): Don't set resource for double-click
9624 time.
9625
9626 * xdisp.c (try_window_id): Return quickly if all changes are
9627 below the window's current matrix end.
9628
9629 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): Remove window
9630 parameter.
9631
9632 * xdisp.c (try_window_reusing_current_matrix): Set no_scrolling_p
9633 in desired not in current matrix.
9634 (try_window_reusing_current_matrix): Rotate matrices starting
9635 at start_vpos instead of 0.
9636
9637 * xterm.c (expose_window): Use window_text_bottom_y.
9638 (fast_find_position): Ditto.
9639
9640 * xdisp.c (redisplay_window): Use window_text_bottom_y.
9641 (try_window_reusing_current_matrix): Ditto.
9642 (get_last_unchanged_at_beg_row): Ditto.
9643 (init_iterator): Ditto.
9644
9645 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate one
9646 more row.
9647 (check_matrix_invariants): Use window_text_bottom_y.
9648 (update_window): Ditto.
9649 (scrolling_window): Ditto.
9650
9651 * xdisp.c (window_text_bottom_y): New.
9652
96531999-06-25 Gerd Moellmann <gerd@gnu.org>
9654
9655 * xterm.c (XTread_socket): Set mouse_face_frame to zero after
9656 clearing mouse face.
9657 (XTread_socket) <EnterNotify> [LESSTIF_VERSION]: If
9658 event.xcrossing.focus is not set, and focus is in the menu bar,
9659 set focus frame as if event.xcrossing.focus were set.
9660
96611999-06-24 Gerd Moellmann <gerd@gnu.org>
9662
9663 * keyboard.c (make_lispy_event): Handle mouse on top lines.
9664 * keyboard.c (make_lispy_movement): Ditto.
9665
9666 * window.c (coordinates_in_window): Return 4 if on top line.
9667 (Fcoordinates_in_window_p): Return `top-line' if on top line.
9668
9669 * xdisp.c (window_box_height): Subtract top line height.
9670 (window_box): Add top line height to top y position if top line
9671 exists.
9672 (init_iterator): If base_face_id is TOP_LINE_FACE_ID, set row to
9673 the top line row of the window. Set initial y-position to
9674 window's top line height plus delta.
9675 (start_display): Choose start glyph row depending on whether
9676 window has a top line.
9677 (try_scrolling): Take top line height into account for aggressive
9678 scrolling.
9679 (compute_window_start_on_continuation_line): Take top line into
9680 account.
427ec082 9681 (redisplay_window): Ditto. If top line height has changed,
26901792
DL
9682 trigger a new redisplay.
9683 (try_window_reusing_current_matrix): Take top line into account.
9684 (find_last_row_displaying_text): Ditto.
9685 (get_last_unchanged_at_beg_row): DItto.
9686 (try_window_id): Ditto.
9687 (compute_line_metrics): Ditto.
9688
9689 * dispnew.c (shift_glyph_matrix): Compute visible row height
9690 taking top line of window into account.
9691 (update_window): Update top line. If scrolling_window detects
9692 that all rows are equal, only set cursor.
9693 (update_window_line): Call after_update_window_line_hook if
9694 mode_line_p flag of rows has changed.
9695 (scrolling_window): Add parameter top_line_p. Return -1 if
9696 all rows are equal.
9697 (mode_line_string): Add parameter mode_line_p. Handle strings
9698 in top lines.
9699
9700 * dispextern.h (MATRIX_TOP_LINE_ROW): New.
9701 (MATRIX_FIRST_TEXT_ROW): New.
9702 (MATRIX_ROW_PARTIALLY_VISIBLE_P): Use row's visible_height.
9703 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_TOP_P): New.
9704 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_BOTTOM_P): New.
9705 (MATRIX_TOP_LINE_HEIGHT): New.
9706 (CURRENT_MODE_LINE_HEIGHT): Use estimate_mode_line_height.
9707 (CURRENT_TOP_LINE_HEIGHT): New.
9708 (DESIRED_TOP_LINE_HEIGHT): New.
9709 (WINDOW_DISPLAY_TOP_LINE_HEIGHT): New.
9710 (WINDOW_DISPLAY_HEIGHT_NO_MODE_LINE): Replaces
9711 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
9712 (WINDOW_DISPLAY_TEXT_HEIGHT): New.
9713
9714 * xterm.c (x_after_update_window_line): Don't draw bitmaps for top
9715 lines.
9716 (x_draw_row_bitmaps): Take top line into account when clearing
9717 bitmap area.
9718 (x_estimate_mode_line_height): Replacement for
9719 x_frame_mode_line_height.
9720 (x_get_glyph_string_clip_rect): Take top line into account.
9721 (x_clear_end_of_line): Ditto.
9722 (note_mode_line_highlight): Add parameter mode_line_p. Handle
9723 top lines.
9724 (note_mouse_highlight): Call note_mode_line_highlight for top lines.
9725 (x_erase_phys_cursor): Take top line into account.
9726
9727 * xdisp.c (window_box_height): Subtract top line height if
9728 window wants a top line.
9729 (display_mode_lines): New.
9730 (redisplay_window): Call it.
9731 (display_mode_line): Add parameters face_id and format.
9732
9733 * dispextern.h (CURRENT_TOP_LINE_HEIGHT): New.
9734 (MATRIX_TOP_LINE_HEIGHT): New.
9735
9736 * xterm.c (x_frame_mode_line_height): Add parameter face_id.
9737
9738 * term.c (estimate_mode_line_height): Renamed from
9739 frame_mode_line_height. Add parameter face_id.
9740 (estimate_mode_line_height_hook): Renamed from
9741 frame_mode_line_height_hook.
9742 (produce_special_glyphs_hook): Removed.
9743 (produce_glyphs_hook): Removed.
9744
97451999-06-23 Gerd Moellmann <gerd@gnu.org>
9746
9747 * dispextern.h (WINDOW_WANTS_TOP_LINE_P): New.
9748 (struct glyph_row): Add mode_line_p.
9749
9750 * xfaces.c (realize_basic_faces): Realize face `top-line'.
9751 (Qtop_line): New.
9752 (syms_of_xfaces): Initialize Qtop_line.
9753
9754 * dispextern.h (TOP_LINE_FACE_ID): New.
9755
9756 * buffer.c (init_buffer_once): Set default for
9757 top_line_format to nil.
9758 (init_buffer_once): Init top_line_format.
9759 (default-top-line-format): New.
9760 (top-line-format): New buffer-local variable.
9761
9762 * buffer.h: Add top_line_format.
9763
9764 * xdisp.c (overlay_arrow_changed_p): Removed because not used.
9765
97661999-06-17 Dave Love <fx@gnu.org>
9767
9768 * xfns.c: Move the PNG section before the JPEG one to avoid
9769 problems surrounding setjmp.h/png.h on GNU/Linux.
427ec082 9770
26901792
DL
97711999-06-17 Gerd Moellmann <gerd@gnu.org>
9772
9773 * xfns.c (x_kill_gs_process): Don't free colors.
9774
97751999-06-17 Dave Love <fx@gnu.org>
9776
9777 * s/gnu-linux.h: Zap spurious ~.
9778
97791999-06-16 Gerd Moellmann <gerd@gnu.org>
9780
9781 * xfns.c (gif_load): Improve multi-image support.
9782
97831999-06-15 Gerd Moellmann <gerd@gnu.org>
9784
9785 * xfns.c (gif_load): Support multi-image files.
9786
9787 * Makefile.in (LIBGIF): Use libungif.
9788
9789 * configure.in (HAVE_GIF): Use libungif instead of libgif
9790 because the former doesn't contain patented compression code.
9791
9792 * xdisp.c (compute_window_start_on_continuation_line): Don't
9793 do it if line start is too far away from window start.
9794
97951999-06-14 Gerd Moellmann <gerd@gnu.org>
9796
9797 * buffer.c (init_buffer_once): Set buffer_local_flags for
9798 scroll_*_aggressively.
9799 (syms_of_buffer): Add DEFVAR_PER_BUFFER for scroll-*-aggressively.
9800 (init_buffer_once): Set defaults for these variables.
9801 (syms_of_buffer): Add default-scroll-*-aggressively.
9802
9803 * buffer.h (scroll_up_aggressively): New.
9804 (scroll_down_aggressively): New.
9805
9806 * Makefile.in (LIBPNG): Add -lz -lm in case we're linking with
9807 a static PNG library.
9808
9809 * configure.in (HAVE_PNG): Add -lz -lm when checking for PNG lib
9810 in case it's a static library.
9811
9812 * Makefile.in (ctagsfiles): Split so that files starting
9813 with an `x' are found before files starting with `w32'.
9814 (ctagsfiles1): New.
9815 (ctagsfiles2): New.
9816 (TAGS): Use ctagsfiles[12] instead of ctagsfiles.
9817
9818 * xdisp.c (compute_window_start_on_continuation_line): New.
9819 (redisplay_window): Use it.
9820 (INFINITY): New.
9821 (reseat_to_string): Use it.
9822 (hscroll_window_tree): Ditto.
9823 (compute_window_start_on_continuation_line): Ditto.
9824 (redisplay_window): Don't force display with a new window start.
9825
98261999-06-06 Gerd Moellmann <gerd@gnu.org>
9827
9828 * xfns.c (x_report_frame_params): Don't report `outer-window-id'
9829 if widget not present.
9830
9831 * xdisp.c (prepare_menu_bars): Ignore tooltip frame.
9832
98331999-06-04 Gerd Moellmann <gerd@gnu.org>
9834
9835 * xfaces.c (recompute_basic_faces)[GLYPH_DEBUG]: Check return
9836 value of realize_basic_faces.
9837 (load_face_font_or_fontset): Store full font name in face.
9838 (realize_default_face): Use full font name.
9839
26901792
DL
9840 * xterm.c (x_produce_glyphs): Set member char_to_display.
9841 (x_append_glyph): Store char_to_display in glyphs.
9842
9843 * dispextern.h (struct it): Add char_to_display.
9844
9845 * xfns.c (x_set_font): Don't call face-set-after-frame-default
9846 if faces haven't been initialized.
9847 (Fx_create_frame): Call face-set-after-frame-default after
9848 faces have been initialized, and widget has been created.
9849
9850 * puresize.h (BASE_PURESIZE): Increased.
9851
98521999-06-01 Gerd Moellmann <gerd@gnu.org>
9853
9854 * xfaces.c (set_lface_from_font_name): Add parameter force_p.
9855 (Finternal_set_lisp_face_attribute): If frame is t when
9856 :font attribute is set, use the selected frame.
9857 (clear_face_cache): Add parameter clear_fonts_p.
9858 (Fclear_face_cache): Add optional parameter thorougly.
9859
9860 * xfaces.c (face_numeric_value): Return -1 if symbol is not
9861 in table.
9862 (Fclear_face_cache): New.
9863 (choose_face_fontset_font): If fontset doesn't contain font
9864 pattern for the given charset, use CHARSET_ASCII.
9865 (Finternal_set_lisp_face_attribute): Fix handling of nil
9866 stipple attribute.
9867 (Finternal_set_lisp_face_attribute): Fix handling of changing
9868 font-related face attributes of the default face.
9869 (set_lface_from_font_name): Set only attributes that aren't
9870 specified.
9871
98721999-05-31 Gerd Moellmann <gerd@gnu.org>
9873
9874 * xfaces.c (SCALABLE_FONTS): Define this to enable scalable
9875 font support.
9876 (Vscalable_fonts_allowed) [SCALABLE_FONTS]: New.
9877 (x_face_list_fonts): Add parameter scalable_fonts_p. Handle
9878 scalable fonts depending on the setting of SCALABLE_FONTS.
9879 (first_font_matching): List more than one font to find the
9880 first non-scalable matching font.
9881 (sorted_font_list): Let x_face_list_fonts return scalable fonts
9882 depending on SCALABLE_FONTS.
9883 (better_font_p): New parameter compare_pt_p. If zero, don't
9884 compare point sizes of fonts.
9885 (exact_face_match_p) [SCALABLE_FONTS]: New.
9886 (build_scalable_font_name) [SCALABLE_FONTS]: New.
9887 (may_use_scalable_font_p) [SCALABLE_FONTS]: New.
9888 (best_matching_font) [SCALABLE_FONTS]: Handle scalable fonts.
9889 (syms_of_xfaces): Add scalable-fonts-allowed.
9890
98911999-05-26 Gerd Moellmann <gerd@gnu.org>
9892
9893 * xfns.c (png_load): Let PNG lib handle gamma. Construct
9894 mask only if image contains simple transparency information.
9895 Otherwise, combine image with frame background color.
9896
9897 * configure.in (--with-png, HAVE_PNG): New.
9898
9899 * config.in (HAVE_PNG): New.
9900
9901 * Makefile.in: Add PNG library.
9902
9903 * xfns.c: Add PNG support.
9904
99051999-05-25 Gerd Moellmann <gerd@gnu.org>
9906
9907 * xdisp.c (init_xdisp): Initialize echo_area_message and
9908 previous_echo_area_message to nil.
9909
9910 * keyboard.c (read_char): Rename local variable echo_area_message
9911 because it shadows the global one.
9912
99131999-05-05 Gerd Moellmann <gerd@gnu.org>
9914
9915 * xterm.c (note_mode_line_highlight): Restructured.
9916
9917 * window.c (coordinates_in_window): Handle windows that don't have
9918 a mode line because their buffer's mode-line-format is nil.
9919 Recognize the mode line under x positions that correspond to
9920 flags areas and left scroll bar.
9921
99221999-05-02 Dave Love <fx@gnu.org>
9923
9924 * xterm.c (note_mouse_highlight): Separate help-echo processing
9925 from check on mouse-face so that it works generally.
9926
99271999-04-21 Gerd Moellmann <gerd@gnu.org>
9928
9929 * sound.c (Fplay_sound): Run hook play-sound-hook.
9930 (Qplay_sound_hook): New.
9931
99321999-04-20 Gerd Moellmann <gerd@gnu.org>
9933
9934 * xdisp.c (update_echo_area): Handle echo_area_message.
9935
99361999-04-19 Gerd Moellmann <gerd@gnu.org>
9937
9938 * editfns.c (Fmessage): Use message3.
9939
9940 * print.c (printchar): Set echo_area_message to nil.
9941 (strout): Ditto.
9942
9943 * minibuf.c (read_minibuf): Reset echo message strings to nil.
9944 (Fminibuffer_completion_help): Ditto.
9945
9946 * keyboard.c (cmd_error_internal): Set echo_areA_message.
9947 (command_loop_1): Test echo_areA_message.
9948 (read_char): Ditto.
9949 (record_menu_key): Set echo_area_message to nil.
9950 (Fexecute_extended_command): Test echo_area_message.
9951 (Fexecute_extended_command): Handle echo_area_message.
9952
9953 * fileio.c (Fdo_auto_save): Handle the case that echo_area_message
9954 is set.
9955
9956 * editfns.c (Fcurrent_message): If echo_area_message is set,
9957 return a substring of that string.
9958
9959 * dispnew.c (direct_output_for_insert): Test echo_area_message
9960 in addition to echo_area_glyphs.
9961 (set_window_cursor_after_update): Ditto.
9962 (update_frame_1): Ditto.
9963
9964 * alloc.c (Fgarbage_collect): Use message3_nolog to display
9965 old Lisp message string.
9966
9967 * xdisp.c (echo_area_message): New.
9968 (previous_echo_area_message): New.
9969 (syms_of_xdisp): Initialize and staticpro new variables.
9970 (echo_area_display): Display echo_area_message if set.
9971 (message2_nolog): Set echo_area_message and
9972 previous_echo_area_message.
9973 (echo_area_display): Set previous_echo_area_message.
9974 (redisplay_internal): Display echo area if echo_area_message
9975 or previous_echo_area_message are set.
9976 (redisplay_preserve_echo_area): Test/set echo_area_message and
9977 previous_echo_area_message.
9978 (redisplay_window): Test echo_area_message.
9979 (message3_nolog): New.
9980 (message3): New.
9981
9982 * editfns.c (Fformat): Add text properties to the result string
9983 from properties of the format string and properties of string
9984 arguments.
9985
9986 * textprop.c (text_property_list): New.
9987 (add_text_properties_from_list): New.
9988 (extend_property_ranges): New.
9989
99901999-03-29 Gerd Moellmann <gerd@gnu.org>
9991
9992 * xfaces.c (Qraised, Qsunken, QCshadow): Removed.
9993 (QCline_width, QCstyle, Qpressed_button, Qreleased_button): New.
9994 Use these symbols for the box face attribute instead of the
9995 removed ones.
9996
99971999-03-12 Gerd Moellmann <gerd@gnu.org>
9998
9999 * xfaces.c (realize_tty_face): Don't set alt_char_p of face.
10000 Correct wrong test for slant.
10001
100021999-03-10 Gerd Moellmann <gerd@gnu.org>
10003
10004 * xfaces.c: Use `unspecified' for unspecified face attributes,
10005 use t and nil for on/off.
10006
100071999-03-06 Gerd Moellmann <gerd@gnu.org>
10008
10009 * buffer.c (syms_of_buffer): Extend doc string of
10010 mode-line-format.
10011
10012 * xfaces.c (x_face_list_fonts): New parameter try_alternatives_p.
10013 (first_font_matching): New.
10014 (set_lface_from_font_name): Use it if font name is a pattern.
10015 (font_field_wildcard_p): Removed.
10016
10017 * dispnew.c (shift_glyph_matrix): Add `window' parameter.
10018 Recompute visible height of rows.
10019
10020 * xterm.c (note_mouse_highlight): Reorder code for help-echo.
10021 Don't accept non-strings for help-echo from overlays.
10022
100231999-03-04 Dave Love <fx@gnu.org>
10024
10025 * xterm.c (note_mouse_highlight): Check overlays for help-text
10026 property.
10027 (XTread_socket): Fix compiler warning.
427ec082 10028
26901792
DL
100291999-03-05 Gerd Moellmann <gerd@gnu.org>
10030
427ec082 10031 * xterm.c (note_mouse_highlight): Don't restrict number of
26901792
DL
10032 overlay to 10. Call overlays_at so that it doesn't try to
10033 extend the vector.
10034
10035 * xdisp.c (compute_line_metrics): Compute glyph row's visible
10036 height.
10037
10038 * dispnew.c (row_equal_p): Compare visible row height, only.
10039 (update_text_area): Draw whole line if visible heights of
10040 rows differ.
10041 (update_window_line): Call after_update_window_line_hook
10042 if visible row height has changed.
10043
10044 * dispextern.h (MATRIX_ROW_VISIBLE_HEIGHT): Removed.
10045 (struct glyph_row): New member visible_height.
10046
10047 * xfaces.c (font_field_wildcard_p): New.
10048 (set_lface_from_font_name): Remove parameter force_p. Accept
10049 font names containing wildcards.
10050
100511999-03-04 Gerd Moellmann <gerd@gnu.org>
10052
10053 * xterm.c (x_after_update_window_line): Clear internal border
10054 when windows_or_buffers_changed.
10055
10056 * dispextern.h (WINDOW_WANTS_MODELINE_P): Return zero if window's
10057 buffer has a nil mode_line_format.
10058
100591999-03-03 Gerd Moellmann <gerd@gnu.org>
10060
10061 * xterm.c (x_setup_relief_colors): Use either background color
10062 or specified color.
10063
10064 * xfaces.c (realize_x_face): Set face->use_box_color_for_shadows_p.
10065
10066 * dispextern.h (struct face): Add use_box_color_for_shadows_p.
10067
10068 * xterm.c (x_draw_box_rect): New.
10069 (x_draw_glyph_string_box): Renamed from
10070 x_draw_glyph_string_relief. Call x_draw_box_rect.
10071
10072 * xfns.c (QCrelief): New.
10073 (syms_of_xfns): Initialize it.
10074
10075 * dispextern.h (struct glyph): Rename left_shadow_p to
10076 left_box_line_p, right_shadow_p to right_box_line_p.
10077 (MAX_RELIEF_THICKNESS): Removed.
10078 (struct it): Rename members having `relief' in their names
10079 to contain `box' instead.
10080
10081 * xfaces.c (realize_x_face): Handle new box attribute values.
10082 (QCrelief, Qbox): Removed.
10083 (QCshadow, QCcolor, Qraised, Qsunken): New.
10084 (syms_of_xfaces): Initialize new symbols.
10085
100861999-03-02 Gerd Moellmann <gerd@gnu.org>
10087
10088 * dispextern.h (LFACE_RELIEF_INDEX): Removed.
10089
10090 * xfaces.c (LFACE_RELIEF): Removed.
10091 (merge_face_vector_with_property): Remove handling of `:relief'.
10092 (Finternal_set_lisp_face_attribute): Ditto.
10093 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
10094 (Finternal_get_lisp_face_attribute): Ditto.
10095 (realize_default_face): Ditto.
10096 (lface_hash): Don't compute hash from relief.
10097
10098 * dispextern.h (struct face): Replace member `relief' by
10099 `box_line_width'. Add member `box'.
10100 (face_box_type): New.
10101
10102 * xterm.c (x_produce_glyphs): If face has overline, add overline
10103 thickness + 1 to ascent.
10104
101051999-03-01 Gerd Moellmann <gerd@gnu.org>
10106
10107 * xterm.c (x_draw_glyph_string): Draw underline, overline,
10108 strike-through, and boxes.
10109 (x_draw_glyph_string_underline): Removed.
10110
10111 * xfaces.c (QCoverline, QCstrike_through, QCbox): New.
10112 (Qoverline, Qstrike_through, Qbox): New.
10113 (syms_of_xfaces): Define these symbols.
10114 (check_lface_attrs): Add checks for overline, strike-through,
10115 and box.
10116 (Finternal_set_lisp_face_attribute): Set new attributes.
10117 (LFACE_OVERLINE, LFACE_STRIKE_THROUGH, LFACE_BOX): New.
10118 (load_color): Handle new attributes.
10119 (realize_x_face): Ditto.
10120 (merge_face_vector_with_property): Ditto.
10121 (free_face_colors): Ditto.
10122 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
10123 (Finternal_get_lisp_face_attribute): Ditto.
10124 (Finternal_lisp_face_attribute_values): Ditto.
10125
10126 * dispextern.h (lface_attribute_index): Add enumerators for
10127 overstrike, strike-through, and box.
10128 (struct face): Add members for overline, strike-through, and
10129 box.
10130
101311999-02-17 Dave Love <fx@gnu.org>
10132
10133 * s/gnu-linux.h s/gnu.h s/irix5-0.h s/netbsd.h s/sco4.h s/sco5.h
10134 s/template.h (NARROWPROTO): Define on the basis of relevant X cf
10135 files.
10136
101371999-02-16 Gerd Moellmann <gerd@gnu.org>
10138
10139 * keyboard.c (toolbar_items): Call access_keymap with third
10140 parameter 1, so that we don't get inherited toolbar item
10141 definitions.
10142
10143 * xdisp.c (redisplay_internal): In optimization 1, don't decrement
10144 the window end vpos when in empty first line of window.
10145
101461999-02-15 Gerd Moellmann <gerd@gnu.org>
10147
10148 * xfaces.c (set_font_frame_param): New.
10149 (Finternal_set_lisp_face_attribute): Call it.
10150
10151Sun Feb 14 10:54:02 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
10152
10153 * xfaces.c (Finternal_set_lisp_face_attribute_from_resource):
10154 Accept specifications of color for underline.
10155
101561999-02-13 Gerd Moellmann <gerd@gnu.org>
10157
10158 * xfaces.c (Finternal_set_lisp_face_attribute): If parameter
10159 `frame' is t, operate on face defaults for new frames. If it
10160 is nil, operate on the selected frame.
10161
101621999-02-12 Gerd Moellmann <gerd@gnu.org>
10163
10164 * dispnew.c (check_matrix_invariants): Put it in #if 0.
10165 (update_window): Put the call to check_matrix_invariants in #if 0.
10166
10167Sun Feb 7 09:58:49 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
10168
10169 * dispextern.h: Remove all else block of UNDERLINE_COLOR.
10170 Remove definition of UNDERLINE_COLOR.
10171
10172Mon Jan 4 04:43:41 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
10173
10174 * xfaces.c (free_face_colors): Free the color for underline.
10175
10176 * xterm.c (x_draw_glyph_string_underline): Set the color for underline
10177 to the GC.
10178
10179Sun Jan 3 08:41:10 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
10180
10181 * dispextern.h (UNDERLINE_COLOR): Defined.
10182 (struct face): Added two new members.
10183 underline_color, underline_defaulted_p.
10184
427ec082 10185 * xfaces.c (merge_face_vector_with_property):
26901792 10186 (check_lface_attrs): Accept the string value for underline.
427ec082 10187 (Finternal_set_lisp_face_attribute): Likewise.
26901792
DL
10188
10189 * xfaces.c (load_color): Change the last argument type to enum
10190 lface_attribute_index from int. And addec code for underling coloring.
10191 (load_face_colors): Pass LFACE_*_INDEX to load_color.
427ec082 10192
26901792
DL
101931999-02-12 Gerd Moellmann <gerd@gnu.org>
10194
10195 * xfns.c (Fx_image_header): Removed.
10196
101971999-02-07 Gerd Moellmann <gerd@gnu.org>
10198
10199 * xterm.c: Don't include <bitmaps/gray>.
10200 (x_term_init): Use gray_bitmap_width and gray_bitmap_height.
10201
10202 * xfns.c (Fx_image_header): Add missing `\n\'.
10203 (gray_bitmap_width, gray_bitmap_height, gray_bitmap_bits): New.
10204
102051999-02-01 Gerd Moellmann <gerd@gnu.org>
10206
10207 * xterm.c (x_scroll_bar_create): Set background pixel from
10208 specified scroll bar color.
10209 (x_scroll_bar_set_handle): Use scroll bar foreground color.
10210
10211 * xfns.c (x_set_scroll_bar_foreground): Remove all scroll bars.
10212 (x_set_scroll_bar_background): Ditto.
10213
10214 * xterm.c (x_create_toolkit_scroll_bar): Set scroll bar colors.
10215
10216 * xfns.c (x_default_scroll_bar_color_parameter): New.
10217 (Fx_create_frame): Call it.
10218
102191999-01-31 Gerd Moellmann <gerd@gnu.org>
10220
10221 * xfns.c (Fx_create_frame): Initialize scroll bar pixel color
427ec082 10222 values in x_output structure.
26901792
DL
10223 (Qscroll_bar_foreground, Qscroll_bar_background): New.
10224 (syms_of_xfns): Initialize these symbols.
10225
10226 * xterm.h (struct x_output): Add scroll bar pixel colors.
10227
10228 * xfns.c (x_frame_parms): Add entries for scroll bar colors.
10229 (x_set_scroll_bar_foreground): New.
10230 (x_set_scroll_bar_background): New.
10231
26901792
DL
102321999-01-12 Gerd Moellmann <gerd@gnu.org>
10233
10234 * xdisp.c (handle_single_display_prop): New.
10235 (handle_display_prop): Call it.
10236 (handle_raise_prop): Removed.
10237 (handle_height_prop): Removed.
10238 (handle_space_width_prop): Removed.
10239 (handle_face_prop): Remove handling of raised text.
10240 (handle_display_prop): Do it here.
10241
10242 * dispextern.h (DISPLAY_PROP_IDX): Replaces GLYPH_PROP_IDX.
10243 (RAISE_PROP_IDX): Removed.
10244 (HEIGHT_PROP_IDX): Removed.
10245 (SPACE_WIDTH_PROP_IDX): Removed.
10246
10247 * xdisp.c (Qdisplay): Replaces Qglyph.
10248 (handle_display_prop): Formerly handle_glyph_prop.
10249
102501999-01-11 Gerd Moellmann <gerd@gnu.org>
10251
10252 * xdisp.c (reseat_to_string): Set position in display vector to -1.
10253 (handle_stop): Set position in display vector to -1. Don't
10254 check overlay strings when set up to deliver characters from a
10255 display vector.
10256 (set_iterator_to_next): At the end of a run of characters from a
10257 display vector, check whether the display vector display replaces
10258 the display of a character.
10259
102601999-01-05 Gerd Moellmann <gerd@gnu.org>
10261
10262 * xfaces.c (init_frame_faces): Don't realize faces if frame's
10263 X window hasn't been created yet.
10264
102651998-12-06 Gerd Moellmann <gerd@gnu.org>
10266
10267 * sound.c: New.
10268
102691998-12-04 Gerd Moellmann <gerd@gnu.org>
10270
10271 * config.in (HAVE_SOUND): New.
10272
10273 * emacs.c (main): Call syms_of_sound and init_sound.
10274
10275 * Makefile.in (obj): Add sound.o.
10276
10277 * configure.in: Add checks for machine/soundcard.h and sys/soundcard.h.
10278
10279 * config.in (HAVE_MACHINE_SOUNDCARD_H): New.
10280 (HAVE_SYS_SOUNDCARD_H): New.
10281
102821998-12-03 Gerd Moellmann <gerd@gnu.org>
10283
10284 * buffer.h (struct buffer): indicate_empty_lines renamed from
10285 indicate_zv_lines.
10286
10287 * buffer.c (indicate-empty-lines): Renamed from indicate_zv_lines.
10288 (default-indicate-zv-lines): Likewise.
10289
10290 * dispextern.h (struct glyph_row): Rename indicate_zv_line_p
10291 to indicate_empty_line_p.
10292
10293 * xdisp.c (reseat_at_next_visible_line_start): Reset method
10294 to next_element_from_buffer.
10295
10296 * frame.c (make_frame): Set n_current_toolbar_items to 0.
10297
10298 * xdisp.c (handle_face_prop): Allow symbols of the form `N+'
10299 and `N-'.
10300
10301 * xfns.c (xbm_scan): New.
10302 (xbm_read_hexint): Removed.
10303 (xbm_read_bitmap_file_data): Use xbm_scan.
10304
10305 * fileio.c (Finsert_file_contents): Prevent redisplay optimizations.
10306
103071998-12-02 Gerd Moellmann <gerd@gnu.org>
10308
10309 * xfns.c (xbm_read_hexint): New.
10310 (xbm_read_bitmap_file_data): New.
10311 (xbm_load_image_from_file): Call xbm_read_bitmap_file_data
10312 instead of XReadBitmapFileData.
10313
10314 * xdisp.c (handle_raise_prop): Compute voffset from current font.
10315
10316 * xfaces.c (face_with_height): New.
10317
10318 * xdisp.c (eval_handler): Renamed from eval_mode_handler.
10319 (eval_form): Renamed from eval_mode_element.
10320 (handle_face_prop): Use it.
10321 (Qheight): Replaces Qsmaller.
10322 (handle_height_prop): Replaces handle_smaller_prop.
427ec082 10323 (handle_face_prop): If iterator's font_height is not an
26901792
DL
10324 integer, evaluate it to get the font height to use.
10325
10326 * dispextern.h (HEIGHT_PROP_IDX): Replaces SMALLER_PROP_IDX.
10327 (struct it): Use `font_height' instead of `smaller'.
10328
103291998-12-01 Gerd Moellmann <gerd@gnu.org>
10330
10331 * xdisp.c (reseat_1): New.
10332 (reseat): Call it.
10333 (move_it_vertically_backward): Ditto.
10334 (redisplay_window): Don't abort when cursor not found in recenter.
10335
103361998-11-30 Gerd Moellmann <gerd@gnu.org>
10337
10338 * xdisp.c (reseat_at_next_visible_line_start): When not
10339 currently delivering display elements from the current buffer,
10340 restore buffer position first.
10341 (init_from_display_pos): Don't set IT's position from the
10342 position passed to this function.
10343
103441998-11-28 Gerd Moellmann <gerd@gnu.org>
10345
10346 * config.in (PROTO): Removed.
10347
10348 * xterm.h: Change PROTO to P_.
10349
103501998-11-26 Gerd Moellmann <gerd@gnu.org>
10351
10352 * xterm.c (take_vertical_position_into_account): New.
10353 (x_produce_image_glyph): Call it.
10354 (x_produce_stretch_glyph): Ditto.
10355 (x_produce_glyphs): Ditto.
10356 (x_fill_glyph_string): Adjust base line for glyph's voffset.
10357 (x_fill_composite_glyph_string): Ditto.
10358 (x_fill_image_glyph_string): Ditto.
10359 (x_fill_stretch_glyph_string): Ditto.
10360
10361 * xdisp.c (display_line): Always compute row height from
10362 max_ascent and max_descent.
10363
10364 * dispextern.h (struct glyph): Add voffset.
10365 (struct it): Replace height by descent, max_height by max_descent.
10366
10367 * xterm.c (x_append_glyph): Set voffset
10368 (x_append_stretch_glyph): Ditto.
10369 (x_produce_image_glyph): Ditto.
10370 (x_produce_glyphs): Take voffset into account.
10371 (x_produce_image_glyph): Ditto.
10372 (x_produce_stretch_glyph): Ditto.
10373
10374 * dispextern.h (struct it): Add voffset.
10375 * xdisp.c (push_it): Save voffset.
10376 (pop_it): Restore it.
10377
10378 * xdisp.c (it_props): Add entry for `raise'.
10379 (handle_raise_prop): New.
10380
10381 * dispextern.h (RAISE_PROP_IDX): New.
10382
10383 * xdisp.c (Qraise): New.
10384 (syms_of_xdisp): Define Qraised.
10385
10386 * xterm.c (x_scroll_bar_move): Clear to the left and right
10387 of toolkit scroll bars differently.
10388 (x_scroll_bar_move): Removed.
10389 (XTset_vertical_scroll_bar): Move code from x_scroll_bar_move here.
10390
10391 * dispextern.h: Make it compilable --with-x=no.
10392 * alloc.c: Ditto.
10393 * emacs.c: Ditto.
10394 * dispnew.c: Ditto.
10395 * keyboard.c: Ditto.
10396 * term.c: Ditto.
10397 * xdisp.c: Ditto.
10398 * xfaces.c: Ditto.
10399 * xfns.c: Ditto.
10400 * xmenu.c: Ditto.
10401
104021998-11-25 Gerd Moellmann <gerd@gnu.org>
10403
10404 * xterm.c (XTread_socket): Cancel help-echo when leaving frame.
10405
104061998-11-24 Gerd Moellmann <gerd@gnu.org>
10407
10408 * xterm.c (x_set_toolkit_scroll_bar_thumb): When dragging,
10409 update slider size, only.
10410 (xm_scroll_callback): Set dragging member of the scroll bar.
10411 (xt_action_hook): Reset last_scroll_bar_part.
10412 (XTredeem_scroll_bar): Reset bar->dragging to nil.
10413
26901792
DL
10414 * xfns.c (Fx_hide_busy_cursor): Don't try to hide busy cursor
10415 window on newly created frames that don't have one.
10416
104171998-11-23 Gerd Moellmann <gerd@gnu.org>
10418
10419 * xdisp.c (restore_overlay_strings): Removed.
10420 (restore_dpvec): Removed.
10421 (init_from_display_pos): Inline both functions above.
10422
10423 * xfns.c (IMAGE_NON_NEGATIVE_INTEGER_VALUE): New.
10424 (parse_image_spec): Handle it.
10425 (xbm_format): Use it.
10426 (xpm_format): Ditto.
10427 (pbm_format): Ditto.
10428 (jpeg_format): Ditto.
10429 (tiff_format): Ditto.
10430 (gif_format): Ditto.
10431 (gs_format): Ditto.
10432
10433 * xdisp.c (set_window_cursor): Removed.
10434 (redisplay_internal): Case cursor motion in cursor line of
10435 selected window; use set_cursor_from_row.
10436
104371998-11-22 Gerd Moellmann <gerd@gnu.org>
10438
10439 * widget.c (EmacsFrameSetCharSize): Take widget's border width
10440 into account.
10441
104421998-11-21 Gerd Moellmann <gerd@gnu.org>
10443
10444 * xterm.c (expose_frame): Redraw menu bar window.
10445
10446 * xdisp.c (display_menu_bar): Record hpos instead of x-position
10447 in menu item.
10448
10449 * dispnew.c (change_frame_size_1): Use FRAME_TOP_MARGIN instead
10450 of FRAME_TOOLBAR_LINES. Use `f' instead of `frame'.
10451
10452 * widget.c (set_frame_size): Use FRAME_SCROLL_BAR_COLS
10453 to determine vertical_scroll_bar_extra.
10454 (EmacsFrameSetCharSize): Ditto.
10455 * xfns.c (x_figure_window_size): Ditto.
10456
10457 * xterm.c (x_draw_row_bitmaps): Draw in `bitmap-area' face.
10458 (x_draw_bitmap): Ditto.
10459
10460 * dispextern.h (face_id): New id BITMAP_AREA_FACE_ID.
10461 * xfaces.c (realize_basic_faces): Realize it.
10462
104631998-11-20 Gerd Moellmann <gerd@gnu.org>
10464
10465 * xmenu.c (xmenu_show): Add workaround for remaining button grab
427ec082 10466 under LessTif Use the widget of the frame as parent for the
26901792
DL
10467 menu, again.
10468
104691998-11-19 Gerd Moellmann <gerd@gnu.org>
10470
10471 * xterm.c (XTread_socket): Inhibit busy cursor for EnterNotify.
10472 When EnterNotify, don't generate a mouse movement event if
10473 notification is from a busy-cursor child window.
10474
10475 * xterm.h (struct x_output): Add busy_window, remove cursor.
10476
10477 * xfns.c (Fx_show_busy_cursor): Formerly Fx_display_busy_cursor.
10478 Use a transparent window to display the busy-cursor.
10479 (Fx_hide_busy_cursor): Formerly Fx_undisplay_busy_cursor.
10480
104811998-11-17 Gerd Moellmann <gerd@gnu.org>
10482
10483 * xdisp.c (check_window_end): New, for debugging.
10484 (CHECK_WINDOW_END): New.
10485 (try_window_id): Use it.
10486
10487 * xterm.c (process_expose_from_menu): Return int.
10488
10489 * keyboard.c (kbd_buffer_get_event): Set flag to prevent recording
10490 TOOLBAR_EVENT events in last_nonmenu_event.
10491
104921998-11-16 Gerd Moellmann <gerd@gnu.org>
10493
10494 * xdisp.c (redisplay_window): If windows_or_buffers_changed,
10495 window end isn't reliable, so set window_end_valid to nil.
10496 (redisplay_internal): If overlay arrow has changed, set
10497 windows_or_buffers_changed to redisplay thoroughly.
10498
10499 * dispnew.c (adjust_glyph_matrix): Invalidate window end, if
10500 necessary.
10501
10502 * xfns.c (file_dialog_cb): New.
10503 (Fx_file_dialog): New.
10504 * fileio.c (Fread_file_name): Call it.
10505
427ec082 10506 * xrdb.c (x_load_resources): Add default resoures for file
26901792
DL
10507 selection dialog.
10508
105091998-11-14 Gerd Moellmann <gerd@gnu.org>
10510
10511 * xterm.c (note_mouse_highlight): Don't highlight when popup
10512 is active.
10513
26901792
DL
10514 * keyboard.c (timer_check): Inhibit busy cursor around calls to
10515 timer-event-handler. This busy cursor tends to be anoying if
10516 fontifying stealthily.
10517
10518 * dispnew.c (direct_output_for_insert): Give up if current row
10519 contains trailing whitespace.
10520
105211998-11-13 Gerd Moellmann <gerd@gnu.org>
10522
10523 * dispextern.h (prop_idx): Add FONTIFIED_PROP_IDX.
10524
10525 * xdisp.c (handle_fontified_prop): New.
10526 (Vfontification_functions): New.
10527 (Qfontification_functions): New.
10528 (it_props): Add handle_fontified_prop.
10529
105301998-11-12 Gerd Moellmann <gerd@gnu.org>
10531
10532 * xmenu.c (xmenu_show): Use the frame's edit_widget as parent.
10533 Otherwise, under LessTif, after the popup has gone, all button
10534 press events come in for the frame's widget, and release events
10535 come in for the edit_widget.
10536 * xterm.c (XTread_socket): Remove workaround for that problem.
10537 (x_set_toolkit_scroll_bar_thumb): Add workaround for LessTif
10538 XmScrollBarSetValues.
10539 (SET_SAVED_MENU_EVENT): Give it statement form.
10540
26901792
DL
10541 * xfaces.c (display_message): If waiting_for_input, don't display
10542 the message.
10543
10544 * window.c (scroll_command): If not acting on current_buffer,
10545 make redisplay consider all windows.
10546
10547 * xfns.c (Fx_hide_tip): Return t if tooltip was open.
10548
10549 * xdisp.c (handle_glyph_prop): Set it->object for images to
10550 the object having the glyph property.
10551
10552 * xterm.c (x_draw_row_bitmaps): Don't draw if row is completely
10553 invisible.
10554
105551998-11-11 Gerd Moellmann <gerd@gnu.org>
10556
10557 * xterm.h (struct x_display_info): Add gray pixmap. * xterm.c
10558 (x_term_init): Create the gray pixmap.
10559 (x_setup_relief_color): Use it.
10560 (x_get_glyph_string_clip_rect): Draw a toolbar window over the
10561 internal border at the top of a frame.
10562 (x_init_glyph_string): Likewise.
427ec082 10563 (x_draw_glyph_string_relief): Correct right x by 1 pixel for
26901792
DL
10564 full-width lines.
10565 (XTflash): Don't flash the toolbar window.
10566
10567 * xterm.c (XTread_socket): Workaround for LessTif popup menus
10568 in case of ButtonPress events.
10569
105701998-11-10 Gerd Moellmann <gerd@gnu.org>
10571
10572 * xrdb.c (x_load_resources): Add grey background colors as
10573 defaults for menus, scroll bars, and dialogs.
10574
10575 * insdel.c (prepare_to_modify_buffer): Move setting
10576 windows_or_buffers_changed from modify_region here.
10577
10578 * xfns.c (Fx_show_tip): Inhibit redisplay.
10579 (Fx_hide_tip): Ditto.
10580 (Fx_image_header): New.
10581
105821998-11-09 Gerd Moellmann <gerd@gnu.org>
10583
10584 * dispnew.c (clear_window_matrices): Set window_end_valid to nil
10585 when clearing current window matrices.
10586
105871998-11-08 Gerd Moellmann <gerd@gnu.org>
10588
10589 * xdisp.c (handle_glyph_prop): Don't set an iterator's buffer
10590 position from a string position. Use the right end position
10591 if the property spans a whole overlay string.
10592
105931998-11-07 Gerd Moellmann <gerd@gnu.org>
10594
10595 * xmenu.c (menubar_selection_callback): Remove workaround for
10596 Lesstif not calling XmNpopdownCallback because it doesn't
10597 handle the case where users don't select any menu item.
10598
26901792
DL
10599 * insdel.c (modify_region): Set windows_or_buffers_changed.
10600
10601 * buffer.c (set_buffer_internal): Don't set
10602 windows_or_buffers_changed.
10603
26901792
DL
10604 * xmenu.c (HAVE_BOXES): Define if USE_X_TOOLKIT.
10605
26901792
DL
10606 * xmenu.c (menubar_selection_callback): Add workaround for
10607 Lesstif not calling XmNpopdownCallback.
10608
10609 * xdisp.c (eval_mode_element): New.
10610 (eval_mode_handler): New.
10611 (display_mode_element): Use eval_mode_element.
10612
10613 * xdisp.c (display_mode_element): Allow `(:eval FORM)'.
10614 Remove code looking at text props of default value.
10615
10616 * xmenu.c (HAVE_BOXES): Define if using Lucid menus.
10617
26901792
DL
106181998-11-06 Gerd Moellmann <gerd@gnu.org>
10619
427ec082 10620 * xmenu.c (single_submenu): Set button_type of menu to
26901792
DL
10621 BUTTON_TYPE_NONE.
10622 (single_submenu): Likewise for panes and menu items.
10623 (set_frame_menubar): Set button_type of menu bar to none.
10624 (xmenu_show): Likewise.
10625 (single_submenu): Set widget values selected slot.
10626 (xmenu_show): Likewise.
10627
26901792
DL
10628 * xmenu.c (push_menu_item): Add parameters `type' and
10629 `selected'. Store it in menu_items.
10630 (MENU_ITEMS_ITEM_TYPE): New.
10631 (MENU_ITEMS_ITEM_SELECTED): New.
10632 (MENU_ITEMS_ITEM_LENGTH): Increase by two.
10633
10634 * xfns.c (clear_image_cache): Get the current time, before
10635 doing anything.
10636 (cache_image): Set prev pointer of next image.
10637 (clear_image_cache): Clear current matrices if any image was
10638 freed.
10639
10640 * xterm.c (XTread_socket): Set inhibit_busy_cursor.
10641
10642 * xfns.c (x_set_cursor): New.
10643 (Fx_display_busy_cursor): New.
10644 (Fx_undisplay_busy_cursor): New.
10645
10646 * xterm.h (struct x_output): Add busy_cursor.
10647
10648 * xfns.c (Vx_busy_pointer_shape): New.
10649 (x_set_mouse_color): Create busy cursor.
10650
10651 * process.c (wait_reading_process_input): Show and hide busy
10652 cursor.
10653
10654 * keyboard.c (command_loop_1): Display busy cursor.
10655
10656 * eval.c (Fsignal): Hide busy cursor.
10657
10658 * buffer.c (set_buffer_internal): Don't set
10659 windows_or_buffers_changed.
10660
10661 * xterm.c (redo_mouse_highlight): New.
10662
106631998-11-04 Gerd Moellmann <gerd@gnu.org>
10664
26901792
DL
10665 * xfns.c (x_create_x_image_and_pixmap): Add depth parameter.
10666 (x_build_heuritic_mask): New.
10667 (lookup_image): Call it.
10668
10669 * xterm.c (note_toolbar_highlight): Always set up help_echo.
10670 (previous_help_echo): New.
10671 (XTread_socket): Generate help event with nil message when
10672 leaving a region with help-echo.
10673 (note_mouse_highlight): Handle `help-echo' over text.
10674 (XTread_socket): Dispatch VisibilityNotify, CirculateNotify,
10675 CirculateRequest.
10676 (clear_mouse_face): Don't clear if tooltip is shown.
10677 (XTread_socket): Redo mouse-highlight after tooltip is gone.
10678 Avoid SET_FRAME_GARBAGED when tooltip is mapped.
10679
10680 * keyboard.c (Vshow_help_function): New.
10681 (read_char): Use it.
10682
106831998-11-03 Gerd Moellmann <gerd@gnu.org>
10684
10685 * xfns.c (x_create_tip_frame): New.
10686 (Fx_show_tip): New.
10687 (Fx_hide_tip): New.
10688
427ec082 10689 * xterm.c (x_destroy_window): Handle case that we don't have
26901792
DL
10690 a widget.
10691
10692 * dispextern.h (struct glyph_row): Rename no_marginal_areas_p
10693 to full_width_p. Add internal_border_p.
10694
106951998-11-02 Gerd Moellmann <gerd@gnu.org>
10696
10697 * xterm.c (note_mode_line_highlight): Check the charpos of
10698 the glyph under the mouse pointer before accessing text
10699 properties at that position.
10700
107011998-11-01 Gerd Moellmann <gerd@gnu.org>
10702
10703 * xterm.c (x_draw_image_relief): Handle toolbar_button_relief.
10704
10705 * xdisp.c (auto-raise-toolbar-buttons): New.
10706 (build_desired_toolbar_string): Handle the flag.
10707 (toolbar-button-margin): New.
10708 (toolbar-button-relief): New.
10709 (build_desired_toolbar_string): Use margin and relief.
10710
10711 * xterm.c (x_set_toolkit_scroll_bar_thumb): Remove workaround
10712 for FreeBSD.
10713 (note_mode_line_highlight): New.
10714 (note_mouse_highlight): Call it.
10715
107161998-10-31 Gerd Moellmann <gerd@gnu.org>
10717
10718 * s/freebsd.h (NARROWPROTO): New.
10719
10720 * xdisp.c (display_string): New parameter face_string.
10721 (display_mode_element): When displaying a symbol with a string
10722 value, use text properties from the symbol's default value, maybe.
10723
10724 * xrdb.c (x_load_resources): Add font defaults for menus and
10725 dialogs.
10726
107271998-10-30 Gerd Moellmann <gerd@gnu.org>
10728
10729 * xfns.c (Fx_create_frame): Try 12pt Courier font first.
10730
107311998-10-29 Gerd Moellmann <gerd@gnu.org>
10732
10733 * xterm.c (x_produce_glyphs): Fix bug causing glyphs to be
10734 produced for characters with codes < 32 under certain
10735 circumstances.
10736
10737 * xdisp.c (redisplay_window): Handle values of PT in front
10738 of invisible, intangible text.
427ec082 10739 (try_window_id): Set overlay_arrow_seen to zero before
26901792
DL
10740 displaying lines.
10741 (display_mode_element): Assign to glyphs written for a mode
10742 line spec `%x' as object the Lisp format string, as position
10743 the position of the `%' in that string.
10744 (display_string): If displaying a C string, optionally get
10745 the face to use from a Lisp string.
10746
10747 * xterm.c (expose_window_tree): Include mode line height.
10748
10749 * xfns.c (Fx_create_frame): Add toolbar height to frame height.
10750
107511998-10-27 Gerd Moellmann <gerd@gnu.org>
10752
10753 * xterm.c (note_mouse_highlight): Change mouse pointer shape
10754 over mode line.
10755
107561998-10-26 Gerd Moellmann <gerd@gnu.org>
10757
10758 * window.c (coordinates_in_window): Use CURRENT_MODE_LINE_HEIGHT.
10759
10760 * xdisp.c (redisplay_window): If mode line height has changed,
10761 arrange for a thorough immediate redisplay using the correct mode
10762 line height.
10763 (window_box_height): Use CURRENT_MODE_LINE_HEIGHT.
10764
10765 * dispextern.h (MATRIX_MODE_LINE_HEIGHT): New.
10766 (CURRENT_MODE_LINE_HEIGHT): New.
10767 (DESIRED_MODE_LINE_HEIGHT): New.
10768
10769 * keyboard.c (make_lispy_event): Add string and string position
10770 info to mouse-click events.
10771 (read_key_sequence): Handle `local-map' property of mode line
10772 strings.
10773
10774 * keyboard.h (POSN_STRING): New.
10775
107761998-10-25 Gerd Moellmann <gerd@gnu.org>
10777
10778 * dispnew.c (mode_line_string): Mew.
10779
10780 * xterm.c (xt_action_hook): New.
10781 (x_create_toolkit_scroll_bar): Add action hook.
10782 (xm_scroll_callback): Implement dragging.
10783
10784 * keyboard.c (Qend_scroll): New.
10785 (scroll_bar_parts): Add it.
10786
10787 * termhooks.h (scroll_bar_end_scroll): New.
10788
10789 * xterm.c (XTread_socket): Bug fix.
10790
107911998-10-24 Gerd Moellmann <gerd@gnu.org>
10792
10793 * xdisp.c (redisplay_window): Finish scroll bars after
10794 redisplaying toolbar.
10795
10796 * keyboard.c (scroll_bar_parts): Add Qtop and Qbottom.
10797 (syms_of_keyboard): Add Qbottom.
10798
10799 * termhooks.h (scroll_bar_to_top): New.
10800 (scroll_bar_to_bottom): New.
10801
10802 * xdisp.c (redisplay_window): Always resize toolbar window if
10803 auto_resize_toolbar_p is non-zero.
10804 (auto_resize_toolbar_p): Renamed from auto_resize_toolbar.
10805 (window_box): New.
10806 (window_box_height): New.
10807 (window_box_width): New.
10808 (window_box_left): New.
10809 (window_box_right): New.
10810 (window_box_edges): New.
10811
108121998-10-23 Gerd Moellmann <gerd@gnu.org>
10813
10814 * xterm.c (x_set_toolkit_scroll_bar_thumb): Kluge for call to
10815 XawScrollbarSetThumb in FreeBSD.
10816 (x_create_toolkit_scroll_bar): Set resource "beNiceToColormap"
10817 to true.
10818
10819 * window.c (get_phys_cursor_glyph): Return null if cursor vpos
10820 is out of range.
10821
10822 * xterm.c (x_create_toolkit_scroll_bar): Set scroll_bar_pixel.
10823 (x_term_init): Initialize it.
10824
10825 * xterm.h (struct x_display_info): Add scroll_bar_pixel.
10826
10827 * xterm.c (x_create_toolkit_scroll_bar): Set LessTif scroll bar's
10828 cursor.
10829
108301998-10-22 Gerd Moellmann <gerd@gnu.org>
10831
10832 * keyboard.c (make_lispy_event): Handle scroll_bar_click
10833 differently when using toolkit scroll bars.
10834
10835 * xterm.c (x_send_scroll_bar_event): New.
10836 (x_scroll_bar_to_input_event): New.
10837 (xaw3d_scroll_callback): New.
10838 (xaw3d_jump_callback): New.
10839 (xm_scroll_callback): New.
10840 (x_toolkit_scroll_p): New.
10841 (XTread_socket): Handle scroll bar client message.
10842 (x_term_init): Initialize Xatom_Scrollbar.
10843 (x_scroll_bar_create): Set cursor.
10844 (xm_scroll_callback):
10845 (x_create_toolkit_scroll_bar): New.
10846 (x_set_toolkit_scroll_bar_thumb): New.
10847 (x_scroll_bar_create): Call x_create_toolkit_scroll_bar.
10848 (XTset_vertical_scroll_bar): Call x_set_toolkit_scroll_bar_thumb.
10849
10850 * xterm.h (struct x_display_info): Add Xatom_Scrollbar.
10851
108521998-10-21 Gerd Moellmann <gerd@gnu.org>
10853
10854 * xterm.c (x_scroll_bar_remove): Handle toolkit scroll bars.
10855 (XTread_socket): Don't handle mouse button events for scroll bars
10856 if using toolkit scroll bars.
10857 (XTset_vertical_scroll_bar): Set thumb size and position for
10858 Athena scroll bar.
10859
10860 * xterm.h (scroll_bar): Add x_widget_low and x_widget_high.
10861
10862 * xterm.c (XTread_socket): Dispatch expose event to widget
10863 if using toolkit scroll bars.
10864 (x_scroll_bar_expose): Make no-op for toolkit scroll bars.
427ec082 10865 (x_scroll_bar_create): Create and show a scroll bar widget
26901792
DL
10866 if using toolkit scroll bars.
10867 (x_scroll_bar_move): Handle tookit scroll bars.
10868
10869 * Makefile.in (LIBW): Use Xaw3d if present.
10870
10871 * configure.in (USE_TOOLKIT_SCROLL_BARS): New.
10872 (HAVE_XAW3D): New.
427ec082 10873
26901792
DL
10874 * config.in (USE_TOOLKIT_SCROLL_BARS): New.
10875 (HAVE_XAW3D): New.
10876
427ec082 10877 * xterm.c (XTset_vertical_scroll_bar): Correct position of
26901792
DL
10878 right vertical scroll bar.
10879
108801998-10-20 Gerd Moellmann <gerd@gnu.org>
10881
10882 * xfns.c (xpm_load): Support reading XPM images from string
10883 buffers containing data in the same format as an XPM file.
10884 Support `:color-symbols'.
10885 (xpm_format): Add `:data'.
10886 (xpm_keyword_index): Add XPM_DATA.
10887 (syms_of_xfns): Add `:color-symbols'.
10888 (xpm_keyword_index): Add XPM_COLOR_SYMBOLS.
10889 (xpm_valid_color_symbols_p): New.
10890 (xpm_image_p): Call it.
10891
10892 * xdisp.c (build_desired_toolbar_string): Add `:algorithm'
10893 attribute to the image if item is not enabled.
10894
10895 * xfns.c (x_laplace): New.
10896 (x_laplace_read_row): New.
10897 (x_laplace_write_row): New.
10898 (lookup_image): Handle common image attributes here. New
10899 attribute `:algorithm'.
10900
10901 * xfaces.c (clear_face_cache): Call clear_image_cache.
10902
10903 * xterm.c (x_inverted_image_mask): Removed.
10904 (x_draw_image_foreground_1): New.
10905 (x_draw_image_glyph_string): Draw images with mask to a temporary
10906 pixmap to reduce flickering.
10907
10908 * xdisp.c (redisplay_toolbar): Handle auto-resize-toolbars.
10909 (display_toolbar_line): Remove parameter `margin'.
10910
109111998-10-19 Gerd Moellmann <gerd@gnu.org>
10912
10913 * xdisp.c (toolbar_lines_needed): New.
10914 (auto-resize-toolbars): New.
10915
10916 * xfns.c (cache_image): Correct call to xrealloc.
10917
10918 * dispnew.c (Fset_toolbar_height): Removed.
10919
10920 * xdisp.c (init_xdisp): Use FRAME_TOP_MARGIN instead of
10921 FRAME_MENU_BAR_LINES.
10922
10923 * window.c (Fdelete_other_windows): Use FRAME_TOP_MARGIN
10924 instead of FRAME_MENU_BAR_LINES.
10925 (check_frame_size): Ditto.
10926
10927 * dispnew.c (adjust_frame_glyphs_initially): Use FRAME_TOP_MARGIN
10928 instead of FRAME_MENU_BAR_LINES.
10929 (adjust_frame_glyphs_for_frame_redisplay): Ditto.
10930 (build_frame_matrix): Ditto.
10931 (change_frame_size_1): Ditto.
10932
10933 * frame.h (FRAME_TOOLBAR_LINES): New.
10934 (FRAME_TOP_MARGIN): New.
10935
10936 * window.c (struct save_window_data): Add frame_toolbar_lines.
10937 (Fset_window_configuration): Handle toolbar lines.
10938 (Fcurrent_window_configuration): Save toolbar lines.
10939
10940 * frame.c (syms_of_frame_1): Add Qtoolbar_lines.
10941
10942 * xfns.c (Fx_create_frame): Add default parameter for toolbar.
10943
10944 * frame.h (struct frame): Rename top_margin to toolbar_lines.
10945
10946 * xfns.c (x_frame_parms): Add `toolbar-lines'.
10947 (x_set_toolbar_lines): New.
10948
10949 * keyboard.c (cmd_error_internal): Bug fix.
10950
10951 * xterm.c: Remove double include of syssignal.h.
10952
109531998-10-18 Gerd Moellmann <gerd@gnu.org>
10954
10955 * xterm.c (x_toolbar_item): New.
10956 (x_handle_toolbar_click): Use it.
10957 (note_toolbar_highlight): Use it.
10958
10959 * keyboard.c (syms_of_keyboard): Staticpro toolbar_item_properties
10960 and toolbar_items_vectors.
10961
10962 * xterm.c (help_echo): New.
10963 (draw_glyphs_face): Add DRAW_IMAGE_RAISED and DRAW_IMAGE_SUNKEN.
10964 (x_set_glyph_string_gc): Handle them.
10965 (x_after_update_window_line): Don't do anything in pseudo-windows.
10966 (x_produce_image_glyph): Take image margin and face relief into
10967 account.
10968 (x_get_glyph_string_clip_rect): Handle pseudo-windows.
10969 (x_draw_glyph_string_background): Optimize case when face has
10970 relief.
10971 (x_setup_relief_color): Take frame instead of glyph string
10972 parameter.
10973 (x_draw_relief_rect): New.
10974 (x_draw_glyph_string_relief): Call it.
10975 (x_draw_image_glyph_string_foreground): Handle margin and image
10976 relief.
10977 (x_draw_image_glyph_string_background): Ditto.
10978 (expose_frame): Redraw toolbar window.
10979 (expose_window): Don't draw cursor for pseudo-windows.
10980 (x_y_to_hpos_vpos): Handle pseudo-windows.
10981 (frame_to_window_pixel_xy): New.
10982 (note_mouse_highlight): Call note_toolbar_highlight.
10983 (x_handle_toolbar_click): New.
10984 (note_toolbar_highlight): New.
10985 (show_mouse_face): Change int parameter `hl' to parameter of
10986 type enum draw_glyphs_face. Handle image highlighting.
10987 (XTread_socket): Return a HELP_EVENT input event if help_echo is
10988 non-nil. Use x_handle_toolbar_click.
10989
10990 * termhooks.h (event_kind): Add HELP_EVENT, TOOLBAR_EVENT.
10991
10992 * xfns.c (image_value_type): Add IMAGE_INTEGER_VALUE,
10993 IMAGE_BOOL_VALUE.
10994 (parse_image_spec): Handle them.
10995 (image_spec_value): Additional parameter found.
427ec082 10996 (free_image): Remove image from the vector `images' of the
26901792
DL
10997 image cache.
10998 (clear_image_cache): Additional parameter force_p.
10999 (Fclear_image_cache): New.
11000 (x_find_image_file): New.
11001 (xbm_load): Handle `:margin' and `:relief'. Use
11002 x_find_image_file.
11003 (xpm_load): Likewise.
11004 (pbm_load): Likewise.
11005 (jpeg_load): Likewise.
11006 (tiff_load): Likewise.
11007 (gif_load): Likewise.
11008
11009 * keyboard.c (Qhelp_echo): New symbol.
11010 (read_char): Handle `toolbar' and `help_echo' events.
11011 (kbd_buffer_get_event): Handle HELP_ECHO input event.
11012 (make_lispy_event): Handle TOOLBAR_EVENT.
11013 (toolbar_items): New.
11014 (process_toolbar_item): New.
11015 (PROP): New.
11016 (init_toolbar_items): New.
11017 (append_toolbar_item): New.
11018 (read_char_x_menu_prompt): Handle `toolbar' event.
11019 (read_key_sequence): Ditto.
11020
11021 * xfaces.c (Qtoolbar): New.
11022 (realize_basic_faces): Realize `toolbar' face.
11023 (face_at_string_position): Remove parameter modeline_p, add
11024 base_face_id.
11025
11026 * xfns.c (xbm_load_image_from_file): Don't use Xmu function
11027 to read data.
11028
110291998-10-17 Gerd Moellmann <gerd@gnu.org>
11030
11031 * xdisp.c (init_iterator): Replace parameter modeline_p with
11032 base_face_id.
11033 (next_element_from_string): Call get_next_display_element
11034 recursively after handling text properties.
11035 (prepare_menu_bars): Call update_toolbar.
11036 (update_toolbar): New.
11037 (build_desired_toolbar_string): New.
11038 (display_toolbar_line): New.
11039 (redisplay_toolbar): New.
11040 (toolbar_item_info): New.
11041 (redisplay_window): Call redisplay_toolbar.
11042 (Fdump_toolbar_row): New. Defined if compiled with GLYPH_DEBUG.
11043
11044 * dispnew.c (clear_current_matrices): Clear matrices of toolbar
11045 window.
11046 (clear_desired_matrices): Ditto.
11047 (adjust_frame_glyphs_for_window_redisplay): Make toolbar window.
11048 (free_glyphs): Free matrices of toolbar window.
11049 (update_frame): Update toolbar window.
11050 (change_frame_size_1): Take toolbar into account.
11051 (Fset_toolbar_height): New.
11052
11053 * dispextern.h (struct it): Remove member modeline_p, add
11054 base_face_id.
11055 (struct image): Add members relief and margin.
11056 (IMAGE_ASCENT): Include margin in height.
11057
110581998-10-14 Gerd Moellmann <gerd@gnu.org>
11059
11060 * xfns.c (Fclear_image_cache): New.
11061
11062 * xfaces.c (realize_basic_faces): Realize toolbar face.
11063 (face_at_string_position): Remove parameter modeline_p, add
11064 base_face_id.
11065
11066 * dispextern.h (enum face_id): Add TOOLBAR_FACE_ID.
11067
110681998-10-13 Gerd Moellmann <gerd@gnu.org>
11069
11070 * keyboard.c (syms_of_keyboard): Intern `:help'.
11071
110721998-10-12 Gerd Moellmann <gerd@gnu.org>
11073
11074 * xterm.c (note_toolbar_highlight): New.
11075 (note_mouse_highlight): Call it.
11076
11077 * window.c (window_from_coordinates): Additional parameter toolbar_p.
11078 (coordinates_in_window): Handle toolbar window.
11079
11080 * keyboard.c (toolbar_items): New.
11081 (process_toolbar_item): New.
11082 (parse_toolbar_item): New.
11083 (init_toolbar_items): New.
11084 (append_toolbar_item): New.
11085
11086 * dispextern.h (enum toolbar_item_idx): New.
11087 (enum toolbar_item_image): New.
11088
11089 * frame.h (struct frame): Add toolbar-related members.
11090
11091 * xfaces.c (face_at_string_position): Remove assertion that
11092 current_buffer == window's buffer. This is not the case when
11093 called for the toolbar window.
11094
11095 * frame.c (make_frame): Initialize toolbar members.
11096
11097 * alloc.c (mark_object): Mark toolbar data of frames.
11098
11099 * frame.h (struct frame): Add toolbar-related members
11100 toolbar_window, desired_toolbar_items, current_toolbar_items,
11101 desired_toolbar_string, current_toolbar_string,
11102 n_desired_toolbar_items, n_current_toolbar_items. Add
11103 window_height.
11104
11105 * xterm.c (x_after_update_window_line): Don't draw bitmap
11106 areas for pseudo-windows.
11107 (expose_frame): Handle toolbar window.
11108 (expose_window): Don't do cursor stuff for pseudo-windows.
11109
11110 * xdisp.c (display_menu_bar): Correct calls to init_iterator.
11111
111121998-10-11 Gerd Moellmann <gerd@gnu.org>
11113
11114 * frame.c (make_frame): Initialize toolbar_window.
11115
11116 * alloc.c (mark_object): Make the toolbar window.
11117
11118 * dispnew.c (update_frame): Update frame's toolbar_window.
11119 (clear_current_matrices): Likewise.
11120 (clear_desired_matrices): Likewise.
11121 (adjust_frame_glyphs_for_window_redisplay): Make toolbar_window.
11122 (free_glyphs): Free the toolbar window and its matrices.
11123
11124 * frame.h (struct frame): Add toolbar_window.
11125
11126 * xterm.c (x_draw_glyph_string_relief): Handle mouse-face
11127 with relief.
11128
111291998-10-10 Gerd Moellmann <gerd@gnu.org>
11130
427ec082 11131 * dispnew.c (buffer_posn_from_coords): Don't screw up if
26901792
DL
11132 window start is not in the range BEGV..ZV.
11133
111341998-10-09 Gerd Moellmann <gerd@gnu.org>
11135
11136 * xdisp.c (try_scrolling): Experimentally handle the case
11137 that scroll-preserve-screen-position is set to `always'.
11138
11139 * window.c (Vscroll_preserve_screen_position): Replacement for
11140 scroll_preserve_screen_position.
11141
111421998-10-08 Gerd Moellmann <gerd@gnu.org>
11143
11144 * dispnew.c: Don't initialize auto structs; the HP/UX compiler
11145 doesn't like it.
11146 * xdisp.c: Ditto.
11147
11148 * xdisp.c (make_cursor_line_fully_visible): Adjust this_line_y.
11149
111501998-10-06 Gerd Moellmann <gerd@gnu.org>
11151
427ec082 11152 * minibuf.c (Fminibuffer_complete_word): Fix computation of
26901792
DL
11153 i_byte when prompts are inserted into minibuffers.
11154
11155 * dispextern.h (FRAME_INTERNAL_BORDER_WIDTH_SAFE): New.
11156 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Use it.
11157 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y): Ditto.
11158
111591998-10-04 Gerd Moellmann <gerd@gnu.org>
11160
11161 * xdisp.c (make_cursor_line_fully_visible): New.
11162 (try_scrolling): New.
11163 (redisplay_window): Move scrolling code to try_scrolling.
11164 (make_cursor_line_fully_visible): Handle case of window too small
11165 to show a single line.
11166 (redisplay_window): Case forced window start---use
11167 make_cursor_line_fully_visible.
11168 (redisplay_window): Case cursor movement via current matrix.
11169 If ending up on a partially visible line, make it fully visible
11170 instead of recentering.
11171 (try_scrolling): Additional parameter scroll_smoothly.
11172
11173 * xterm.c (x_draw_bitmap): Don't XClearArea under the pixmap.
11174
111751998-09-28 Gerd Moellmann <gerd@gnu.org>
11176
11177 * window.c (window_scroll_pixel_based): Bug fix: vpos used
11178 instead of y-position for scroll-preserved-screen-position.
11179
111801998-09-07 Gerd Moellmann <gerd@gnu.org>
11181
11182 * dispnew.c (update_frame_line): If current row is not enabled,
11183 write the whole line.
11184
111851998-09-06 Gerd Moellmann <gerd@gnu.org>
11186
11187 * lisp.h (HAVE_FACES): Removed.
11188
11189 * dispextern.h (HAVE_FACES): Removed.
11190
11191 * config.in (HAVE_FACES): Removed.
11192
11193 * dispnew.c (HAVE_FACES): Removed.
11194
11195 * xdisp.c (HAVE_FACES): Removed.
11196
11197 * xfaces.c (HAVE_FACES): Removed.
11198
111991998-09-05 Gerd Moellmann <gerd@gnu.org>
11200
11201 * xdisp.c (init_iterator): If face_change_count is non-zero,
11202 free realized faces.
11203
11204 * xfaces.c (free_all_realized_faces): Make it externally visible.
11205 (Finternal_set_lisp_face_attribute): Increment
11206 windows_or_buffers_changed.
11207
11208 * dispnew.c (direct_output_for_insert): Give up if
11209 face_change_count is non-zero.
11210 (direct_output_forward_char): Ditto.
11211
11212 * xfaces.c (face_change_count): New.
11213
112141998-09-04 Gerd Moellmann <gerd@gnu.org>
11215
11216 * xterm.c (x_draw_bar_cursor): Don't draw if cursor hpos is out
11217 of range.
11218
112191998-09-03 Gerd Moellmann <gerd@gnu.org>
11220
11221 * term.c (Ftty_display_color_p): New.
11222
112231998-09-02 Gerd Moellmann <gerd@gnu.org>
11224
11225 * xfaces.c (Ftty_defined_colors): New.
11226
11227 * xterm.c (x_produce_glyphs): Fix computation of
11228 contains_overlapping_glyphs_p for ASCII.
11229
11230 * dispnew.c (Fshow_cursor): Don't change cursor state while
11231 redisplaying.
11232 (direct_output_for_insert): If a glyph with lbearing or rbearing
11233 is among the new glyphs, set row flag contains_overlapping_glyph_p.
11234
112351998-09-01 Gerd Moellmann <gerd@gnu.org>
11236
11237 * term.c (OUTPUT_IF): Make replacement text have statement form.
11238 (OUTPUT1_IF): Ditto.
11239 (TS_italic_mode, TS_end_italic_mode): Removed.
11240 (TS_bold_mode): Removed.
11241 (TS_underscore_mode, TS_end_underscore_mode): Removed.
11242 (TS_enter_bold_mode, TS_enter_dim_mode, TS_enter_blink_mode): New.
11243 (TS_enter_reverse_mode): New.
11244 (TS_enter_underline_mode, TS_exit_underline_mode): New.
11245 (TN_magic_cookie_glitch_ul): New.
11246 (TS_enter_alt_charset_mode, TS_exit_alt_charset_mode): New.
11247 (TS_exit_attribute_mode): New.
11248 (TN_max_colors, TN_max_pairs, TS_orig_pairs): New.
11249 (TS_set_foreground, TS_set_background): New.
11250 (reset_terminal_modes): Switch colors back to default.
11251 (write_glyphs): Turn face on before writing text, turn it off
11252 afterwards.
11253 (insert_glyphs): Ditto.
11254 (term_init): Initialize new terminal capability variables.
11255 (turn_on_face): Turn a face on.
11256 (turn_off_face): Turn a face off.
11257
11258 * lisp.h (MAKE_GLYPH): Remove test for frame type.
11259 (GLYPH_CHAR): Ditto.
11260 (GLYPH_FACE): Ditto.
11261
11262 * xfaces.c (Vface_tty_color_alist): New.
11263 (face-register-tty-color): New.
11264 (face-clear-tty-colors): New.
11265
11266 * dispextern.h (FACE_TTY_DEFAULT_COLOR): New.
11267 (struct it): Remove member faces_p since we now always have faces.
11268
112691998-08-31 Gerd Moellmann <gerd@gnu.org>
11270
11271 * dispextern.h (struct face): Add tty appearance flags.
11272
11273 * xdisp.c (init_iterator): Always handle faces.
11274 (extend_face_to_end_of_line): Handle tty frames.
11275
11276 * dispnew.c (clear_glyph_matrix): Allow a null matrix to be
11277 passed in.
11278
112791998-08-30 Gerd Moellmann <gerd@gnu.org>
11280
11281 * xfaces.c (realize_default_face): Use empty strings to indicate
11282 that the face should use the default foreground/background
427ec082 11283 color of the terminal. Fill font-related attributes with
26901792
DL
11284 appropriate values for tty frames.
11285
11286 * emacs.c (main): Call syms_of_xfaces before init_window_once.
11287
11288 * xfaces.c (realize_default_face): If face `default' is not
11289 yet known, create it.
11290
11291 * frame.c (make_terminal_frame): Call init_frame_faces
11292 unconditionally.
11293
11294 * xfaces.c (init_frame_faces): Make it work for tty frames.
11295 (free_frame_faces): Ditto.
11296 (clear_face_cache): Ditto.
11297 (recompute_basic_faces): Ditto.
11298 (Fframe_face_alist): Ditto.
11299 (free_realized_face): Ditto.
11300 (prepare_face_for_display): Ditto.
11301 (clear_face_gcs): Ditto.
11302 (lookup_face): Ditto.
11303 (smaller_face): Ditto.
11304 (realize_default_face): Ditto.
11305 (realize_face): Ditto.
11306 (realize_face): Dispatch to functions depending on the frame type.
11307 (realize_x_face): X way of realizing faces.
11308 (realize_tty_face): TTY way of realizing faces.
11309
113101998-08-29 Gerd Moellmann <gerd@gnu.org>
11311
11312 * xfaces.c (realize_face): Remove parameter unibyte_registry,
11313 compute it instead.
11314 (lookup_face): Remove local variable unibyte_registry.
11315
113161998-08-22 Gerd Moellmann <gerd@gnu.org>
11317
11318 * xterm.c (x_draw_glyph_string_relief): Draw top and bottom lines
11319 1 pixel longer.
11320
427ec082 11321 * xdisp.c (face_before_or_after_it_pos): Fix computation
26901792
DL
11322 of face in buffer.
11323
11324 * editfns.c (make_buffer_string_both): If prompt in buffer,
11325 prevent start > end.
11326
11327 * indent.c (Fvertical_motion): Set current_buffer to window's
11328 buffer if it isn't already.
11329
113301998-08-21 Gerd Moellmann <gerd@gnu.org>
11331
11332 * dispextern.h (GLYPH_DEBUG): Use default 0.
11333
11334 * xdisp.c (it_props): New member `smaller'.
11335 (init_iterator): Initialize it.
11336 (Qsmaller): New.
11337 (push_it): Save value of `smaller' value on the stack.
11338 (pop_it): Restore `smaller' from the stack.
11339 (handle_smaller_prop): New.
11340 (handle_face_prop): Use `smaller' text property to select a
11341 suitable face.
11342
11343 * dispextern.h (SMALLER_PROP_IDX): New.
11344 (struct it): Add member `smaller'.
11345
11346 * xfaces.c (smaller_face): New.
11347
11348 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add bitmap area widths.
11349
11350 * dispnew.c (allocate_matrices_for_window_redisplay): Compute
11351 total pixel width of window differently.
11352
11353 * xdisp.c (init_iterator): Compute width of mode line differently.
11354
11355 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract width
11356 of bitmap areas.
11357
11358 * window.c (Fsplit_window): Include width of bitmap areas in
11359 window width.
11360 (window_internal_width): Subtract width of bitmap areas from
11361 total width.
11362
113631998-08-18 Gerd Moellmann <gerd@gnu.org>
11364
11365 * xdisp.c: Functions reordered for better readability.
11366
11367 * dispnew.c (update_text_area): Handle glyphs with arbitrary
11368 lbearing.
11369 (update_window_tree): Parameter no_scrolling_p removed.
11370 (update_single_window): Ditto.
11371
11372 * xterm.c (x_get_char_font_and_encoding): Renamed to
11373 x_get_char_face_and_encoding.
11374
11375 * dispnew.c (update_text_area): Don't call get_glyph_overhangs
11376 if end of current row reached.
11377
11378 * xterm.c (x_get_glyph_face_and_encoding): New.
11379 (x_get_glyph_overhangs): Call it.
11380
11381 * xdisp.c (Qshow_trailing_whitespace): New.
11382 (Qtrailing_whitespace): New.
11383 (enum prop_handled): New.
11384 (struct props, it_props): New.
11385 (next_overlay_change): New. Works like Fnext_overlay_change
11386 but doesn't use xmalloc.
11387 (handle_stop): Restructured.
11388 (face_before_or_after_it_pos): Case iteration over a string: fix
11389 handling of face before current position.
11390
113911998-08-16 Gerd Moellmann <gerd@gnu.org>
11392
11393 * dispnew.c (adjust_glyph_matrix): Don't optimize matrix
11394 reallocation matrix if fonts_changed_p.
11395 (update_text_area): Handle glyphs with lbearing.
11396
113971998-08-14 Gerd Moellmann <gerd@gnu.org>
11398
11399 * xdisp.c (struct props): New.
11400 (it_props): New.
11401 (compute_prop_info): New.
11402 (handle_stop): New.
11403
11404 * textprop.c (validate_interval_range): Make it externally
11405 visible.
11406
11407 * dispnew.c (direct_output_for_insert): Remove calls
11408 to compute_stop_pos.
11409
11410 * dispextern.h (struct it): Remove check_charpos,
11411 next_overlay_pos. Add what_changes.
11412
114131998-08-10 Gerd Moellmann <gerd@gnu.org>
11414
11415 * xterm.c (note_mouse_highlight): Set BEGV_BYTE, ZV_BYTE.
11416
11417 * xfaces.c (Vx_unibyte_registry_and_encoding): Removed. Use
11418 face_default_registry instead.
11419
11420 * syntax.c (scan_sexps_forward): Set up syntax table before
11421 jumping to initial state label.
11422
114231998-08-09 Gerd Moellmann <gerd@gnu.org>
11424
11425 * dispnew.c (check_matrix_invariants): Handle case of row end pos
11426 >= ZV specially.
11427
114281998-08-08 Gerd Moellmann <gerd@gnu.org>
11429
11430 * xdisp.c (redisplay_window): Case cursor movement---if cursor
11431 ends up in partially visible row, try to scroll. Case forced
11432 window start---handle windows not tall enough to show a single
11433 line.
11434
11435 * window.h (struct window): Member dy renamed vscroll.
11436
11437 * xterm.c (x_list_fonts): Re-activate suppression of scalable
11438 fonts.
11439 (x_draw_stretch_glyph_string): Set clipping if using GC that
11440 hasn't set it yet.
11441
11442 * xdisp.c (redisplay_window): Case forced window start -
11443 don't let cursor end on partially visible row. Use desired
11444 matrix to find a suitable PT if it doesn't appear.
11445 (decode_mode_spec): Merged with 20.2.97.
11446 (try_window_reusing_current_matrix): Give up if old or
11447 new display is vscrolled.
11448 (redisplay_window): Reset vscrolling if forced window start,
11449 or if recentering.
11450
114511998-08-06 Gerd Moellmann <gerd@gnu.org>
11452
11453 * xfaces.c (realize_default_face): Use the fontset name instead of
11454 the alias for the family attribute of the default face because we
11455 can't easily determine a good alias from fontset-alias-alist.
11456 (face_fontset): Use Fquery_fontset to find the fontset.
11457 (font_list): Additional pattern parameter.
11458 (try_font_list): Ditto.
11459 (set_lface_from_font_name): Set face family from font foundry
11460 and family.
11461 (font_list): If family contains a hyphen, build pattern differently.
11462
114631998-08-05 Gerd Moellmann <gerd@gnu.org>
11464
11465 * xfaces.c (free_realized_faces): Increment windows_or_buffers_-
11466 changed instead of setting the frame garbaged.
11467
11468 * xfaces.c (lface_equal_p): Don't assume equal Lisp types for
11469 all attribute values. This is wrong if values are unspecified,
11470 i.e. nil.
11471
11472 * xdisp.c (try_window_id): Give up if window start changed.
11473
11474 * xfaces.c (make_realized_face): Store registry as Lisp object.
11475 (load_face_font_or_fontset): Compute registry of a face
11476 differently. Make it `eq' to Vx_unibyte_registry_and_encoding if
11477 possible.
11478
11479 * dispextern.h (FACE_SUITABLE_FOR_CHARSET_P): Compare registries
11480 differently.
11481
11482 * alloc.c (mark_face_cache): Mark the registry member of faces.
11483
11484 * dispextern.h (struct face): Make registry a Lisp string.
11485
114861998-08-04 Gerd Moellmann <gerd@gnu.org>
11487
11488 * xterm.c (x_get_char_font_and_encoding): Additional parameter
11489 multibyte_p. Handle unibyte text.
11490 (x_append_glyph): Set the multibyte_p flag of glyphs.
11491 (x_produce_image_glyph): Ditto.
11492 (x_append_stretch_glyph): Ditto.
11493 (x_produce_glyphs): Handle unibyte text like ASCII.
11494
11495 * xdisp.c (push_it): Save the multibyte flag of an iterator on the
11496 stack.
11497 (pop_it): Restore it.
11498 (face_before_or_after_it_pos): Handle the case that the string or
11499 buffer is unibyte.
11500 (get_overlay_strings): Set the multibyte flag of the iterator if
11501 the new overlay string is multibyte.
11502 (get_glyph_property): Likewise.
11503 (get_next_display_element): Don't check for charset changes in
11504 unibyte text.
11505 (append_space): Compute face differently for unibyte text.
11506 (extend_face_to_end_of_line): Don't return quickly if face has
11507 stipple.
11508
11509 * xfaces.c (load_face_font_or_fontset): Store registry and
11510 encoding of the font in the registry member of the face.
11511 (make_realized_face): Additional parameter `registry'.
11512 (free_realized_face): Free the registry of a realized face.
11513 (face_suitable_for_charset_p): Function form of the macro
11514 with the same name in uppercase.
11515 (lookup_face): Use Vx_unibyte_registry_and_encoding if charset < 0.
11516 (choose_face_font): New parameter unibyte_registry.
11517 (choose_face_fontset_font): Ditto.
11518 (realize_default_face): Remember the registry and encoding of
11519 the specified frame font in Vx_unibyte_registry_and_encoding.
11520 (face_at_buffer_position): Handle unibyte.
11521 (face_at_string_position): Likewise.
427ec082 11522 (realize_face): New parameter unibyte_registry.
26901792
DL
11523 (compute_char_face): Handle the unibyte case.
11524
11525 * dispextern.h (struct glyph): Add bit multibyte_p.
11526 (struct face): New member registry holding the registry and
11527 encoding of the X font of the face.
11528 (FACE_UNIBYTE_P): Value is non-zero if face is for unibye text.
11529 (enum face_id): Add BASIC_FACE_ID_SENTINEL.
11530 (FACE_SUITABLE_FOR_CHARSET_P): Handle charset < 0 meansing unibyte
11531 text.
11532 (struct iterator_stack_entry): Add multibyte_p.
11533
11534 * xdisp.c (string_pos): Use string_char_to_byte.
11535 (char_charset): Removed.
11536
115371998-08-03 Gerd Moellmann <gerd@gnu.org>
11538
11539 * xterm.c (x_draw_image_glyph_string_foreground): Draw a
11540 rectangle for a block cursor over an image without a mask.
11541 (x_stretch_block_cursor): Added. Non-zero means don't draw
11542 a block cursor over a stretch as wide as that stretch.
11543 (x_draw_stretch_glyph_string): Use it.
11544 (x_draw_hollow_cursor): Ditto.
11545
11546 * minibuf.c (read_minibuf): Use minibuf_prompt instead of prompt.
11547 (read_minibuf): Add front-sticky text property for prompt.
11548
11549 * xdisp.c (char_charset): Return charset of a character,
11550 depending on whether or not multi-byte characters are enabled.
11551
11552 * xfaces.c (Fset_face_charset_registry): Removed.
11553 (x_charset_registry): Determine registry from charset plist.
11554
115551998-08-02 Gerd Moellmann <gerd@gnu.org>
11556
11557 * xdisp.c (get_next_display_element): Don't check for charset
11558 changes if multi-byte characters are not enabled.
427ec082 11559
26901792 11560 * xdisp.c (echo_area_display): Use the flush function from the
427ec082 11561 redisplay interface.
26901792
DL
11562 * keyboard.c (detect_input_pending_run_timers): Likewise.
11563
11564 * dispextern.h (produce_*glyphs_hook): Removed.
11565 * term.c (produce_*glyphs): Ditto.
11566 (cursor_to): Remove pixel position parameters.
11567
11568 * dispnew.c: Remove hooks for window-based redisplay, introduce
11569 a redisplay interface structure.
11570
11571 * xterm.c (x_per_char_metric): Return default char metrics if per
11572 char metric exists but contains a zero width. Adobe Courier seems
11573 to contain such characters.
11574
11575 * xdisp.c (compute_line_metrics): Compute the width of rows
11576 without stopping at glyphs with zero width.
11577
115781998-08-01 Gerd Moellmann <gerd@gnu.org>
11579
11580 * xdisp.c (display_mode_line): If nothing was displayed at all,
11581 display a space.
11582 (hscroll_window_tree): Don't subtract 1 from target point if equal
11583 to ZV and window is not the selected window.
11584
11585 * dispnew.c (check_matrix_invariants): Remove check for window
11586 start at BEGV or after newline. This happens in rare cases
11587 intentionally.
11588
115891998-07-31 Gerd Moellmann <gerd@gnu.org>
11590
11591 * xfaces.c (x_charset_registry): Use STRING_BYTES.
11592 (syms_of_xfaces): Add Vface_default_registry.
11593 (x_charset_registry): Use it.
11594
11595 * xdisp.c (run_window_scroll_functions): Run window scroll functions.
11596 (redisplay_window): Use it.
11597
11598 * dispnew.c (update_text_area): Handle lbearing of deleted text
11599 by backing up one character.
11600
116011998-07-30 Gerd Moellmann <gerd@gnu.org>
11602
427ec082 11603 * dispnew.c (adjust_glyph_matrix): Use a different check to
26901792
DL
11604 decide to do nothing.
11605
11606 * xfaces.c (face_at_string_position): Additional parameter
11607 mode_line_p. If non-zero, merge with the mode line face
11608 instead of the default face.
11609 * dispextern.h (struct it): Add mode_line_p.
11610 * xdisp.c (init_iterator): Set it.
11611 (compute_face_in_string): Use it.
11612 (face_before_or_after_it_pos): Handle strings.
11613 (get_next_display_element): Don't look for relief end in C strings.
11614 (next_element_from_string): Deliver string position instead of
11615 buffer position.
11616
11617 * xterm.c (x_flush): Flush X output buffer.
11618 (XTflash): Use it.
11619
11620 * xfaces.c (lface_from_face_name): Renamed from lface_from_symbol.
11621 Allow strings as face names.
11622
11623 * xfns.c (forall_images_in_image_cache): Check that frame is
11624 alive.
11625
11626 * widget.c (EmacsFrameDestroy): Remove call to free_frame_faces;
11627 it's also called from x_destroy_window. Since this function is
11628 called from X, freeing stuff allocated with xmalloc is dangerous
11629 here, anyway.
11630
11631 * xfaces.c (free_realized_faces): Don't clear current matrices
11632 of a frame being destroyed.
11633
427ec082 11634 * frame.c (make_frame): Call set_window_buffer instead of
26901792
DL
11635 Fset_window_buffer.
11636
11637 * window.c (set_window_buffer): Extracted from Fset_window_buffer,
11638 with an additional argument specifying whether or not hooks may
11639 be called.
11640 (Fset_window_buffer): Call it.
11641
11642 * dispnew.c (clear_desired_matrices): Check that frame has
11643 a valid root window before clearing matrices in the window tree.
11644 (clear_current_matrices): Ditto.
11645 (clear_window_matrices): If GLYPH_DEBUG, check that hchild and
11646 vchild are valid windows if not nil.
11647
11648 * xfaces.c (merge_face_vector_with_property): Allow :reverse-video
11649 for :inverse-video.
11650 (Finternal_set_lisp_face_attribute): Ditto.
11651 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
11652 (Finternal_get_lisp_face_attribute): Ditto.
11653 (Finternal_lisp_face_attribute_values): Ditto.
11654 (syms_of_xfaces): Define the symbol `:reverse-video'.
11655
11656 * xdisp.c (get_glyph_property): Renamed from
11657 fill_iterator_from_glyph_property.
11658 (next_element_from_buffer): Handle case that no `glyph' property
11659 was found correctly.
11660 (display_line): Extend face to end of line only if we have faces.
11661
116621998-07-29 Gerd Moellmann <gerd@gnu.org>
11663
11664 * dispnew.c (Fshow_cursor): Renamed from blink_cursor. Take
11665 additional window argument.
11666
11667 * xdisp.c (reseat_at_previous_visible_line_start): Renamed from
11668 set_iterator_to_previous_visible_line_start.
11669 (reseat_at_next_visible_line_start): Likewise.
11670 (compute_stop_pos): Renamed from set_iterator_stop_pos.
11671 (face_before_or_after_it_pos): Renamed from get_face_at_it_pos.
11672 (compute_face_in_buffer): Renamed from
11673 compute_face_at_iterator_position.
11674 (compute_face_in_string): Renamed from
11675 compute_face_at_iterator_string_position.
11676 (get_space_width): Renamed from get_iterator_space_width.
11677 (next_overlay_string): Renamed from
11678 set_iterator_to_next_overlay_string.
11679 (get_overlay_strings): Renamed from
11680 get_overlay_strings_at_iterator_position.
11681 (restore_overlay_strings): Renamed from
11682 setup_overlay_strings_from_glyph_pos.
11683 (restore_dpvec): Renamed from setup_iterator_dpvec_from_glyph_pos.
11684 (init_from_display_pos): Renamed from init_iterator_from_glyph_pos.
11685 (init_to_row_start): Renamed from init_iterator_to_row_start.
11686 (init_to_row_end): Formerly init_iterator_to_next_row_start.
11687
11688 * xterm.c: Merge with 20.2.97.
11689 (x_produce_glyphs): Use x_append_stretch_glyph for tabs.
11690
11691 * dispextern.h (struct glyph): Replace text_pos position with
11692 simple charpos.
11693
11694 * xdisp.c (this_line_start_pos): Use struct text_pos.
11695 (this_line_end_pos): Renamed from .*endpos; use struct text_pos.
11696 (enum move_it_result): Renamed from move_iterator_result.
11697 (string_pos_nchars_ahead): Compute text_pos in a string from a
11698 known text_pos plus a character delta.
11699 (string_pos): Compute text_pos in string from charpos.
11700 (c_string_pos): Likewise for a C string.
11701 (number_of_chars): Return number of characters in a possibly
11702 multi-byte C string.
11703 (check_it): Renamed from check_iterator. Check that charpos and
11704 bytepos are in sync.
11705 (push_it): Renamed from save_iterator_settings.
11706 (pop_it): Renamed from restore_iterator_settings.
11707 (move_it_.*): Renamed from move_iterator_.*.
11708 (charset_at_position): Take charpos/bytepos into account.
11709 (back_to_previous_line_start): Set iterator to previous line start.
11710 (forward_to_next_line_start): Set iterator to next line start.
427ec082 11711 (back_to_previous_visible_line_start): Renamed from
26901792
DL
11712 move_iterator_previous_visible_line_start.
11713 (set_iterator_to_next_visible_line_start): Handle charpos/bytepos.
11714 (get_face_at_it_pos): Renamed from get_face_from_cursor_pos.
11715 Handle charpos/bytepos.
11716 (compute_face_at_iterator_position): Handle charpos/bytepos.
11717 (compute_face_at_iterator_string_position): Likewise.
11718 (get_iterator_space_width): Likewise.
11719 (load_overlay_strings): Likewise.
11720 (get_overlay_strings_at_iterator_position): Likewise.
11721 (reseat_iterator): Take a text_pos position argument.
11722 (setup_iterator_overlay_strings_from_glyph_pos): Handle charpos/
11723 bytepos.
11724 (init_iterator): Take additional bytepos parameter.
11725 (reseat_iterator_to_string): Handle charpos/bytepos.
11726 (start_display): Take a text_pos parameter. Handle charpos/bytepos.
11727 (next_element_from_string): Handle charpos/bytepos.
11728 (next_element_from_c_string): Likewise.
11729 (fill_iterator_from_glyph_property): Likewise.
11730 (next_element_from_buffer): Likewise.
11731 (set_iterator_to_next): Increment charpos and bytepos of an iterator.
11732 (move_iterator_in_display_line_to): Handle charpos/bytepos.
11733 (move_it_to): Likewise.
11734 (move_it_vertically_backward): Likewise.
11735 (move_it_vertically): Likewise.
11736 (move_it_by_lines): Likewise.
11737 (hscroll_window_tree): Likewise.
11738 (redisplay_internal): Likewise.
11739 (set_cursor_from_row): Likewise.
11740 (redisplay_window): Likewise.
11741 (try_window): Take a text_pos parameter. Handle charpos/bytepos.
11742 (try_window_reusing_current_matrix): Handle charpos/bytepos.
11743 (get_first_unchanged_at_end_row): Compute and return delta_bytes.
11744 (try_window_id): Handle charpos/bytepos.
11745 (Ftrace_redisplay_toggle): Return Qnil.
11746 (get_overlay_arrow_glyph_row): Handle charpos/bytepos.
11747 (insert_left_trunc_glyphs): Likewise.
11748
11749 * dispnew.c: `Merge' with 20.2.97 (it's really too different to
11750 do a real merge).
11751 (increment_glyph_matrix_buffer_positions): Add parameter delta_bytes.
11752 (increment_glyph_row_buffer_positions): Ditto.
11753 (copy_glyph_row_contents): Ditto.
11754 (check_matrix_invariants): Add additional checks for charpos/
11755 bytepos consistency.
11756 (direct_output_for_insert): Changed for charpos/bytepos.
427ec082 11757 (buffer_posn_from_coords): Likewise. Put code dealing with
26901792
DL
11758 `direction-reversed' in #if 0.
11759
11760 * xterm.h: Merge with 20.2.97.
427ec082 11761
26901792
DL
11762 * frame.h: Merge with 20.2.97.
11763
11764 * window.h: Merge with 20.2.97. Add window_end_bytepos.
11765
11766 * dispextern.h (MATRIX_ROW_START_CHARPOS): Get charpos of a row
11767 start.
11768 (MATRIX_ROW_START_BYTEPOS): Likewise for the byte position.
11769 (MATRIX_ROW_END_CHARPOS): Likewise for the row end.
11770 (MATRIX_ROW_END_BYTEPOS): Likewise for the row end byte position.
11771 (struct it): Various members renamed from .*pos to .*charpos.
11772 (IT_CHARPOS): Access current buffer character position of an
11773 iterator.
11774 (IT_BYTEPOS): Access current buffer byte position of an iterator.
11775 (IT_STRING_CHARPOS): Access current string character position of
11776 an iterator.
11777 (IT_STRING_BYTEPOS): Access current string byte position of
11778 an iterator.
11779 (globally): Add function prototypes from 20.2.97.
11780
11781 * everywhere: Use P_ instead of PROTO for function prototypes
11782 because everyone else seems to use P_.
11783
11784 * dispextern.h (struct text_pos): Structure describing a charpos/
11785 bytepos position in text.
11786 (BYTEPOS): Access the byte position part of a text_pos.
11787 (CHARPOS): Likewise for the character position.
11788 (SET_TEXT_POS): Set a text_pos from a character and byte position.
11789 (INC_TEXT_POS, DEC_TEXT_POS): Increment/decrement a text position.
11790 (SET_TEXT_POS_FROM_MARKER): Set a text_pos from a marker.
11791 (SET_MARKER_FROM_TEXT_POS): Set a marker from a text_pos.
11792 (TEXT_POS_EQUAL_P): Compare two text_pos structures for equality.
11793 (struct display_pos): Renamed from glyph_pos. Use struct text_pos
11794 for buffer and string positions.
11795 (struct glyph): Use text_pos.
11796 (struct it): Renamed from display_iterator. Use text_pos.
11797
117981998-07-23 Gerd Moellmann <gerd@gnu.org>
11799
11800 * xfns.c (x_kill_gs_process): Get image colors from XImage of a
11801 pixmap.
11802
118031998-07-21 Gerd Moellmann <gerd@gnu.org>
11804
11805 * dispextern.h (struct glyph_row): New flag indicate_zv_line_p.
11806 * xterm.c (x_draw_row_bitmaps): Use it.
11807 * dispnew.c (row_equal_p): Ditto.
11808 (update_window_line): Ditto.
11809
11810 * xfns.c (prepare_image_for_display): Don't set loading_failed_p
11811 flag of images.
11812
11813 * dispextern.h (struct image): Removed member loading_failed_p.
11814 It's probably better to have the chance to try to load an image
11815 again.
11816
118171998-07-20 Gerd Moellmann <gerd@gnu.org>
11818
11819 * xterm.c (x_draw_bitmap): Draw bitmap for empty lines ending
11820 at ZV if `indicate-zv-lines' is non-nil.
11821 (x_draw_row_bitmaps): Compute bitmap for `indicate-zv-lines'.
11822
11823 * dispnew.c (row_equal_p): Compare displays_text_p and
11824 ends_at_zv_p flags of rows.
11825 (update_window_line): Ditto.
11826
11827 * buffer.h (struct buffer): New member indicate_zv_lines.
11828
11829 * buffer.c (init_buffer_once): Add default for `indicate-zv-lines'.
11830 (init_buffer_once): New variable `default-indicate-zv-lines'.
11831 (syms_of_buffer): New buffer-local varianle `indicate-zv-lines'.
11832
11833 * xdisp.c (redisplay_window): Don't try moving the cursor
11834 if current glyph row w->last_cursor.vpos isn't enabled.
11835
11836 * xterm.c (bitmap_type): Add ZV_LINE_BITMAP.
11837
11838 * window.c (Fset_window_vscroll): Allow only negative scroll
11839 values. Others don't seem to make sense, and this way it's easy
11840 to restore a vscroll of zero.
11841
11842 * xterm.c (x_inverted_image_mask): Check that pixmap could be
11843 allocated.
11844 (x_draw_image_glyph_string_background): Don't clip if pixmap
11845 could not be created.
11846
11847 * xfns.c (xbm_load_image_from_file): Check that pixmap could
11848 be created.
11849 (xbm_load): Ditto.
11850 (gs_load): Ditto.
11851
11852 * xterm.c (x_get_glyph_overhangs): Take image and stretch
11853 glyphs into account.
11854
11855 * xfaces.c (realize_default_face): Don't set font family of
11856 the default face from the fontset alias name for `fontset-startup'.
11857
11858 * xfns.c (gs_load): Pass frame's pixel foreground and background
11859 color to the Lisp loader.
11860
118611998-07-19 Gerd Moellmann <gerd@gnu.org>
11862
11863 * xfns.c (tiff_image_p, tiff_load): Support TIFF images via
11864 libtiff34.
11865
11866 * configure.in (--with-tiff, HAVE_TIFF): Added.
11867
11868 * config.in (HAVE_TIFF): Added.
11869
11870 * Makefile.in (LIBTIFF): Added.
11871
11872 * xfns.c (jpeg_image_p, jpeg_load): Support JPEG images.
11873
11874 * Makefile.in (LIBJPEG): Added.
11875
11876 * xfns.c (resource_types): Enumerators renamed to RES_TYPE_NUMBER,
11877 RES_TYPE_BOOLEAN etc. because of conflict of `boolean' with
11878 jpeglib.h.
11879
427ec082 11880 * configure.in (HAVE_JPEG, --with-jpeg): Added. On systems
26901792
DL
11881 where the library is installed in /usr/local/lib, e.g. FreeBSD,
11882 configure must be run with `--x-includes=/usr/X11R6/include:
11883 /usr/local/include --x-libraries=/usr/X11R6/lib:/usr/local/lib'.
11884
118851998-07-18 Gerd Moellmann <gerd@gnu.org>
11886
11887 * config.in (HAVE_JPEG): Added.
11888
11889 * xfns.c (ct_init): Initialize color table used to map RGB colors
11890 from images to X pixel colors.
11891 (ct_free): Free color table.
11892 (ct_lookup): Look an RGB color up.
11893 (ct_allocated_colors): Get vector of allocated colors.
427ec082 11894 (pbm_image_p): Test if image specification is a valid PPM
26901792
DL
11895 image specification.
11896 (pbm_scan_number): Scan a decimal ASCII number from a file.
11897 (pbm_load): Load a PPM image.
11898
11899 * window.c (Fset_window_vscroll): Adjust glyph matrix if
11900 necessary. Take canonical character units as parameter.
11901 (Fwindow_vscroll): Return canonical character units.
11902
11903 * dispnew.c (allocate_matrices_for_window_redisplay): Add negative
11904 w->dy to display height for which glyph rows must be allocated.
11905
119061998-07-17 Gerd Moellmann <gerd@gnu.org>
11907
11908 * xfaces.c (face_at_string_position): Merge in region face
11909 so that it won't overwrite the font in the region.
11910 (face_at_buffer_position): Ditto.
11911 (realize_basic_faces): Don't realize region face.
11912
11913 * dispextern.h (enum face_id): REGION_FACE_ID removed.
11914
11915 * xterm.c (x_set_glyph_string_background_width): Don't let
11916 cursor face extend to end of line.
11917
11918 * xdisp.c (append_space): If adding space of default face,
11919 make sure glyph ist produced with right face.
11920
11921 * xterm.c (x_clear_glyph_string_rect): Draw a rectangle in the
11922 background color of a glyph string.
11923 (x_draw_glyph_string_background): Call it.
11924 (x_draw_glyph_string_bg_rect): Ditto.
11925 (x_draw_stretch_glyph_string): Ditto.
11926
119271998-07-15 Gerd Moellmann <gerd@gnu.org>
11928
11929 * xdisp.c (init_iterator): Initialize it->current_y to the
11930 window's vscroll w->dy.
11931
11932 * window.c (Fwindow_vscroll): Return number of pixels window
11933 is vscrolled smoothly.
11934 (Fset_window_vscroll): Set the number.
11935
11936 * xdisp.c (move_iterator_to): Recognize case MOVE_TO_POS and
11937 to_pos in truncated part of a line.
11938
119391998-07-14 Gerd Moellmann <gerd@gnu.org>
11940
11941 * xdisp.c (move_iterator_in_display_line_to): If very first glyph
11942 doesn't fit on the line, truncate it, despite truncate_lines nil.
11943 (display_line): Ditto.
11944
11945 * xfns.c: Experimental support for Ghostscript images.
11946
11947 * xterm.c (x_term_init): Initialize new atoms DONE and PAGE.
11948 (XTread_socket): React on events from Ghostscript.
11949 (expose_frame): If width or height are zero, redraw entire frame.
11950 (XTread_socket): Call expose_frame after receiving event from
11951 Ghostscript.
11952
11953 * xterm.h (struct x_display_info): Add atoms DONE and PAGE
11954 for Ghostscript support.
11955
11956 * xdisp.c (redisplay_internal): Return quickly if called
11957 recursively.
11958
11959 * alloc.c (NSTATICS): Increased to 1024.
11960
119611998-07-08 Gerd Moellmann <gerd@gnu.org>
11962
11963 * xterm.c (x_append_stretch_glyph): Append a stretch glyph to an
11964 iterator's glyph row.
11965 (x_produce_stretch_glyph): Call it.
11966 (x_produce_glyphs): Handle `space-width' property; call
11967 x_append_stretch_glyph.
11968
11969 * xdisp.c (syms_of_xdisp): Add symbol `space-width' used as a text
11970 property.
11971 (get_iterator_space_width): Determine value of `space-width'
11972 property at iterator's position.
11973 (reseat_iterator): Call it.
11974 (next_element_from_string): Ditto.
11975 (next_element_from_buffer): Ditto.
11976 (init_iterator): Initialize space_width of iterator.
11977 (redisplay_internal): Don't goto end_of_redisplay if PT hasn't
11978 moved, but cursor blinks.
11979 (redisplay_internal): Set w->last_cursor_off_p after update.
11980
11981 * dispextern.h (enum iterator_prop_idx): Add SPACE_WIDTH_PROP_IDX.
11982 (struct display_iterator): Add new member space_width.
11983
11984 * window.h (struct window): Add last_cursor_off_p.
11985
119861998-07-07 Gerd Moellmann <gerd@gnu.org>
11987
11988 * Saved.
11989
11990 * window.c (Fpos_visible_in_window_p): Case window not up to
11991 date---return nil if iterator hasn't reached position.
11992
119931998-07-06 Gerd Moellmann <gerd@gnu.org>
11994
11995 * xdisp.c (text_outside_line_unchanged_p): Fix case that
11996 overlays have changed.
11997 (redisplay_window): Case cursor movement. Don't try it if
11998 last_cursor.vpos is out of range.
11999
12000 * xdisp.c (set_cursor_from_row): Set this_line_.* variables. This
12001 way, the display optimization for the line containing the cursor
12002 is used more frequently, esp. when we have a blinking cursor.
12003 (display_line): Don't set this_line_.* variables.
12004
12005 * xterm.c (x_redraw_cursor): Removed.
12006 (x_display_and_set_cursor): Set cursor type depending on
12007 cursor_off_p flag of window.
12008
12009 * dispnew.c (redraw_cursor_hook): Removed.
12010 (Fblink_cursor): Additional parameter on_p to set the cursor_off_p
12011 member of the selected window.
12012
12013 * xfaces.c (Fface_font): Added for compatibility with 20.2.
12014
12015 * xterm.c (x_y_to_hpos_vpos): Return null if not over text.
12016 Return glyph area under x/y.
12017 (note_mouse_highlight): Use x_y_to_hpos_vpos in its new form.
12018
12019 * keyboard.c (detect_input_pending_run_timers): Call gobble_input
12020 after redisplaying.
12021
120221998-07-05 Gerd Moellmann <gerd@gnu.org>
12023
12024 * xdisp.c (text_outside_line_unchanged_p): Test if changes
12025 are all outside of a line of text.
12026 (redisplay_internal): Use it.
12027
120281998-06-30 Gerd Moellmann <gerd@gnu.org>
12029
12030 * xdisp.c (next_element_from_buffer): After skipping over
12031 invisible text, look for the `glyph' property.
12032 (set_iterator_stop_pos): Ignore check positions in front
12033 of an iterator's current position.
12034
12035 * xterm.c (show_mouse_face): Don't act on rows that don't exist
12036 anymore or which are marked as not having valid contents.
12037
12038 * xfaces.c (Finternal_set_lisp_face_attribute): Don't free
12039 realized faces if new attribute value is equal to old value.
12040
120411998-06-29 Gerd Moellmann <gerd@gnu.org>
12042
12043 * xfaces.c (Finternal_make_lisp_face): Increment
12044 lface_id_to_name_size when lface_id_to_name is reallocated.
12045
120461998-06-27 Gerd Moellmann <gerd@gnu.org>
12047
12048 * xdisp.c (set_iterator_stop_pos): Compute initial stop_pos
12049 as minimum of endpos and overlay_pos.
12050 (load_overlay_strings): Set next_overlay_pos of iterator to
12051 -1 if we don't have to check for more overlay strings.
12052
120531998-05-09 Gerd Moellmann <gerd@gnu.org>
12054
12055 * xdisp.c (set_iterator_to_next_visible_line_start): Don't
12056 do anything if iterator is at ZV because scan_buffer doesn't
12057 work otherwise.
12058
12059 * xterm.c (x_encode_char): Inline it.
12060 (x_get_char_font_and_encoding): Simplified.
12061 (x_per_char_metric): Inline it.
12062
12063 * xterm.c (x_draw_glyph_string_relief): Use clipping.
12064
12065 * xdisp.c (get_next_display_element): Check for end of relief
12066 face moved here from next_element_from_buffer.
12067
12068 * xterm.c (x_produce_image_glyph): Add relief thickness.
12069 (x_produce_stretch_glyph): Ditto.
12070
120711998-05-08 Gerd Moellmann <gerd@gnu.org>
12072
12073 * xdisp.c (fill_iterator_from_glyph_property): Handle glyph
12074 property value (space :width WIDTH :height HEIGHT :ascent ASCENT).
12075
12076 * xterm.c (x_produce_stretch_glyph): Produce a stretch glyph
12077 from a glyph property.
12078 (x_produce_glyphs): Use it.
12079
12080 * xdisp.c (set_iterator_to_next): Handle next_element_from_stretch.
12081
427ec082 12082 * xterm.c (x_produce_image_glyph): Add to current_x only if
26901792
DL
12083 in text area.
12084 (x_produce_glyphs): Ditto.
12085
427ec082 12086 * xdisp.c (display_line): Compute row height from glyphs in
26901792
DL
12087 marginal areas.
12088
427ec082 12089 * xterm.c (x_draw_image_glyph_string_background): Draw
26901792 12090 background of an image glyph string.
427ec082 12091 (x_draw_glyph_string_bg_rect): Draw a rectangular region of
26901792
DL
12092 the background of a glyph string.
12093 (x_draw_image_glyph_string_foreground): Draw the foreground of
12094 an image glyph string.
12095 (x_inverted_image_mask): Return the inverted mask of an image.
12096
12097 * xfns.c (x_draw_image): Removed.
12098
12099 * dispextern.h (struct image_type): Remove drawing function.
12100
12101 * xfaces.c (load_face_colors): Swap colors if face is inverse.
12102
12103 * xdisp.c (get_next_display_element): In marginal areas, translate
12104 newlines, tabs, etc. like normal control characters.
12105
12106 * xfaces.c (Fface_color_supported_p): Transpose parameters frame
12107 and color.
12108 (free_realized_faces): Set frame garbaged.
12109
12110 * xfaces.c (syms_of_xfaces): Add defsubr for
12111 internal-lisp-face-attribute-values.
12112
121131998-05-07 Gerd Moellmann <gerd@gnu.org>
12114
12115 * xterm.c (x_produce_image_glyph): Don't add glyph if area is
12116 full.
12117 (x_produce_image_glyph): Set IT->nglyphs to 1.
12118 (x_draw_image_glyph_string): Use inverted mask to draw background.
12119
12120 * dispextern.h (struct image_type): Additional clipping rect
12121 parameters for drawing functions.
12122
427ec082 12123 * xterm.c (x_get_glyph_string_clip_rect): Get clip rect for
26901792
DL
12124 a glyph string.
12125 (x_draw_image_glyph_string): Use it and pass the rect to the
12126 image drawing function.
12127
12128 * xdisp.c (fill_iterator_from_glyph_property): Use position of
12129 first character with `glyph' property as image position. Set
12130 iterator back to that position as long as the image hasn't been
12131 consumed with set_iterator_to_next.
12132 (set_cursor_from_row): Accept when glyph with given position is
12133 not found in the row. Set cursor x to end of line in that case,
12134 so that we can hscroll.
12135 (redisplay_internal): Correct computation of delta by which
12136 positions have changed in redisplay optimization for cursor
12137 row of selected window.
12138
12139 * xdisp.c (display_line): Remove start_pos.
427ec082 12140 (display_line): Fix bug preventing display optimization for
26901792
DL
12141 cursor line of selected window.
12142 (next_element_from_buffer): Avoid XSETBUFFER, use it->w->buffer
12143 instead.
12144
12145 * dispnew.c (update_text_area): Use GLYPH_EQUAL_P.
12146 (update_text_area): Take glyph pixel width into account
12147 when trying to find a resync point.
12148 (row_equal_p): Compare glyphs in all areas.
12149
121501998-05-06 Gerd Moellmann <gerd@gnu.org>
12151
12152 * xterm.c (x_produce_glyphs): Don't add glyph if area is full.
12153
12154 * dispextern.h (struct glyph_row): Use unsigned hash value.
12155
12156 * xdisp.c (display_line): Simplified and made faster by setting
12157 the cursor with set_cursor_from_row.
12158 (set_cursor_from_row): Handle rows of desired matrix.
12159
121601998-05-05 Gerd Moellmann <gerd@gnu.org>
12161
12162 * xdisp.c (set_cursor_from_row): Don't put cursor on glyphs
12163 with type != CHAR_GLYPH.
12164 (fill_iterator_from_glyph_property): Return void. Set
12165 method to next_element_from_image.
12166 (next_element_from_image): Dummy function for delivering a
12167 single image id.
12168 (set_iterator_to_next): Add method next_element_from_image.
12169 (redisplay_window): When recentering, and cursor vpos is -1
12170 after display, assume middle of window is in first line displayed
12171 in window, and display again.
427ec082 12172 (fill_iterator_from_glyph_property): Assign image glyph
26901792
DL
12173 the position of the first character having the glyph property.
12174
12175 * dispextern.h (IMAGE_ASCENT): Compute ascent of image.
12176 * xfns.c (x_draw_image): Use it.
12177 * xterm.c (x_produce_image_glyph): Use it.
12178
12179 * xterm.c (x_produce_image_glyph): Set iterator's pixel_width.
12180
12181 * Makefile.in: Extraneous #define of LIBXPM removed.
12182
12183 * xterm.c (x_produce_glyphs): Produce a STRETCH_GLYPH for tabs.
427ec082 12184 (x_fill_stretch_glyph_string): Fill a glyph string from a
26901792
DL
12185 stretch glyph.
12186 (x_compute_glyph_string_overhangs): Compute overhangs only
12187 for text glyph strings.
12188 (x_draw_stretch_glyph_string): Draw a stretch glyph string.
12189 (x_draw_glyph_string): Call it.
12190
12191 * dispextern.h (glyph_type): Add STRETCH_GLYPH.
12192 (struct glyph): Add sub-structure for stretchable glyphs.
12193 (GLYPH_EQUAL_P): Compare glyph type and u.val.
12194
12195 * xdisp.c (get_overlay_arrow_glyph_row): Put face code into
12196 #ifdef HAVE_FACES.
12197
12198 * xterm.c (x_produce_glyphs): Use ASCII face for spaces of a TAB.
12199
12200 * xdisp.c (fill_iterator_from_glyph_property): Renamed from
12201 setup_iterator_from_glyph_property. Don't do it for terminal
12202 frames.
12203
12204 * xterm.c (x_produce_image_glyph): Produce glyph for image
12205 that can't be loaded.
12206
12207 * xfns.c (lookup_image): If image can't be loaded, set its
12208 width and height so that we can draw a rectangle.
12209 (x_draw_image): Draw a rectangle for images that don't have
12210 a pixmap.
12211 (make_image): Set hash value.
12212 (image_spec_equal_p): Use image_spec_value.
12213
12214 * xterm.c (expose_frame): Don't try to redraw if basic faces
12215 haven't benn realized yet.
427ec082 12216 (x_draw_image_glyph_string): Fill background only if image
26901792
DL
12217 is not as tall as row.
12218
122191998-05-04 Gerd Moellmann <gerd@gnu.org>
12220
12221 * Makefile.in (LIBXPM): If not already defined, define to -lXpm.
12222 (LIBX)[HAVE_X11]: Add LIBXPM.
12223
12224 * xfns.c (xpm_image_p): Implementation of image type functions
12225 for XPM.
12226 (xpm_load): Ditto.
12227
12228 * dispextern.h (struct image): Add mask pixmap for XPM.
12229
12230 * xfns.c (x_draw_image): Handle images with masks.
12231
12232 * configure.in: --with-xpm added. Code detecting -lXpm added.
12233
12234 * config.in: Add HAVE_XPM.
12235
12236 * xfns.c (xbm_draw): Removed.
12237 (x_draw_image): Default implementation for drawing images.
12238 (xbm_keyword_index): Remove XBM_DEPTH.
12239 (xbm_format): Remove `:depth'.
12240 (xbm_image_spec_from_file): Removed to reduce consing.
427ec082 12241 (xbm_load_image_from_file): Added for the same reason.
26901792 12242
427ec082 12243 * xterm.c (x_fill_image_glyph_string): Don't set ybase of
26901792
DL
12244 glyph string.
12245 (x_draw_image_glyph_string): Pass ybase to image draw function.
12246
12247 * xfns.c (make_image): Set default baseline.
12248
12249 * xterm.c (x_produce_image_glyph): Compute ascent of image
12250 from its height and baseline percentage.
12251
12252 * xfns.c (xbm_keyword_index): Add XBM_BASELINE.
12253 (xbm_format): Add description for `:baseline'.
12254 (xbm_image_spec_from_file): Add keywords from original spec to
12255 result.
12256 (xbm_load): Set baseline of image.
12257 (xbm_image_p): Check range for baseline.
12258
12259 * dispextern.h (struct image): Add member baseline.
12260
12261 * xdisp.c (dump_glyph_matrix): Handle image glyphs.
12262
12263 * term.c (produce_glyphs): Change assertion to allow DISP_IMAGE.
12264
12265 * xdisp.c (get_next_display_element): Do character translations
12266 only if delivering characters.
12267
122681998-05-03 Gerd Moellmann <gerd@gnu.org>
12269
427ec082 12270 * dispextern.h (ITERATOR_AT_END_OF_LINE_P): Test for
26901792
DL
12271 DISP_CHARACTER.
12272
12273 * xterm.c (x_produce_image_glyph): Poduce image glyphs.
12274 (x_produce_glyphs): Call x_produce_glyphs for DISP_IMAGE.
12275
122761998-05-02 Gerd Moellmann <gerd@gnu.org>
12277
12278 * xfns.c (prepare_image_for_display): Set image timestamp.
12279 (clear_image_cache): Clear images if image's timestamp +
12280 Vimage_eviction_seconds is > now.
12281 (syms_of_xfns): New variables image-eviction-seconds, and
12282 image-types.
12283 (add_image_format): Add to image-types.
12284 (xbm_load): Support new image spec format.
12285 (x_alloc_image_color): Allocate a color for an image.
12286
12287 * dispextern.h (struct image): Add timestamp.
12288
12289 * xfns.c (xbm_image_p): Allow bool-vectors, vectors of strings and
12290 vectors of bool-vectors.
12291 (xbm_lisp_object_from_file): Build new format image spec.
12292
122931998-05-01 Gerd Moellmann <gerd@gnu.org>
12294
12295 * xfaces.c (init_frame_faces): Initialize image cache.
12296 (free_frame_faces): Free it.
12297
12298 * xterm.c (x_delete_display): Don't free image cache.
12299
12300 * emacs.c (main): Call init_xfns.
12301
123021998-04-30 Gerd Moellmann <gerd@gnu.org>
12303
12304 * alloc.c (mark_object): Mark objects in image cache.
12305
427ec082 12306 * xfns.c (x_set_internal_border_width): Correct call to
26901792
DL
12307 widget_store_internal_border_width.
12308
12309 * widget.c (widget_store_internal_border): Return void.
12310
12311 * xfns.c (x_destroy_bitmap): Use xfree instead of free. Return
12312 void.
12313 (init_x_parm_symbols): Return void.
12314 (x_report_frame_params): Ditto.
12315 (x_set_border_pixel): Ditto.
12316 (syms_of_xfns): Ditto.
12317 (x_destroy_all_bitmaps): Use xfree instead of free.
12318
12319 * xterm.h (FRAME_X_IMAGE_CACHE): Access the image cache of a frame.
12320
12321 * xterm.c (x_term_init): Initialize image_cache of display info.
12322 (x_delete_display): Free image cache.
12323
12324 * xterm.h (struct x_display_info): Add image_cache.
12325
12326 * xfns.c (make_image_cache): Allocate a new image cache.
12327 (free_image_cache): Free an image cache.
12328 (make_image): Allocate an image.
12329 (free_image): Free an image.
12330
12331 * dispextern.h (struct image): Structure describing an image.
12332 (struct image_cache): Structure describing an image cache.
12333
123341998-04-29 Gerd Moellmann <gerd@gnu.org>
12335
12336 * xdisp.c (check_iterator_glyph_property): Return int. Value is
12337 non-zero if iterator is filled with something to return.
12338 (next_element_from_buffer): Immediately return if
12339 setup_iterator_from_glyph_prop has filled iterator with pixmap.
12340 (next_element_from_string): Likewise.
12341
12342 * xfaces.c (load_pixmap): Allow to pass null for W_PTR and H_PTR.
12343
12344 * dispextern.h (struct glyph): Add pixmap_id.
12345 (display_element_type): Add DISP_PIXMAP.
12346
12347 * xmenu.c (popup_get_selection): Use xmalloc/xfree instead of
12348 malloc/free.
12349
12350 * xfaces.c (clear_font_table): Free fonts not used by fontsets.
12351 (clear_face_cache): Call it.
12352
12353 * xterm.c (x_query_font): Don't look at empty font table slots.
12354 (x_compute_min_glyph_bounds): Likewise.
12355 (x_term_init): Initialize font_table to null.
12356 (x_load_font): Change allocation of font_info structures so
12357 that it is possible to free fonts.
12358
427ec082 12359 * xfns.c (Fx_close_connection): Use xfree instead of free.
26901792
DL
12360 Only free fonts from filled font table entries.
12361
12362 * xfaces.c (best_matching_font): Support use of scalable fonts.
12363 (Fface_scalable_fonts_mode): Toggle use of scalable fonts.
12364
12365 * xterm.h (struct x_display_info): Remove screen_dpi, add resx
12366 and resy.
12367 * xterm.c (x_term_init): Compute resx and resy.
12368
12369 * xfaces.c (split_font_name): Don't reject scalable fonts.
12370
427ec082 12371 * xterm.c (x_list_fonts): Set code exclusing scalable fonts
26901792
DL
12372 in #if 0.
12373
12374 * xfaces.c (xlfd_point_size): Return 0 for fonts whose real
12375 point size cannot be determined.
12376
12377 * xterm.h (FRAME_SMALLEST_CHAR_WIDTH): Return smallest character
12378 width over all fonts on a frame.
12379 (FRAME_SMALLEST_FONT_HEIGHT): Likewise for font height.
12380 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Use these
12381 macros.
12382
12383 * xterm.c (x_font_min_bounds): Moved here from xfaces.c.
12384 (x_compute_min_char_bounds): Formerly min_char_bounds in xfaces.c.
12385 (x_load_font): Use x_compute_min_char_bounds.
12386
12387 * xterm.h (struct x_display_info): New members smallest_char_width
12388 and smallest_font_height.
12389
123901998-04-28 Gerd Moellmann <gerd@gnu.org>
12391
12392 * dispextern.h (PREPARE_FACE_FOR_DISPLAY): Call function with
12393 the same name if GC of face is zero.
12394
12395 * dispextern.h (struct face): Member non_ascii_gc removed.
12396
12397 * xterm.c (x_get_char_font_and_encoding): Return face's font
427ec082 12398 for characters < 0177 in default face. Prepare face for
26901792
DL
12399 display before returning it.
12400 (x_produce_glyphs): Use it->charset.
12401 (x_get_char_font_and_encoding): Simplified.
12402 (x_encode_char): Remove parameter `font'.
12403
12404 * xfaces.c (choose_face_font): If registry from charset symbol
12405 doesn't contain a `-', make it a pattern by appending "*-*".
12406
12407 * xdisp.c (check_iterator_glyph_property): Adjust limit for
12408 glyph_check_pos computation to character boundary.
12409
124101998-04-27 Gerd Moellmann <gerd@gnu.org>
12411
12412 * fontset.h (FONT_INFO_FROM_ID): Return null if ID is invalid.
12413
12414 * xfaces.c (ascii_face_of_lisp_face): Get the id of the realized
12415 ASCII face for a given Lisp face id.
12416
12417 * xdisp.c (set_iterator_stop_pos): Take glyph_check_pos into
12418 account.
427ec082 12419 (reseat_iterator): Set glyph_check_pos. Handle case where
26901792
DL
12420 new position is < original position.
12421 (check_iterator_glyph_property): Handle glyph property in strings.
12422 (next_element_from_string): Call above function.
12423 (next_element_from_display_vector): Handle faces in glyphs.
12424 (get_next_display_element): Set face_id of glyphs for
12425 control chars to zero.
12426
12427 * Makefile.in (term.o): Add dependency on dispextern.h.
12428
12429 * xdisp.c (syms_of_xdisp): Add symbol `glyph'.
12430 (display_line): Handle marginal areas.
12431 (move_iterator_in_display_line_to): Likewise.
12432
12433 * xfaces.c (Finternal_make_lisp_face): Assign Lisp faces an id.
12434
12435 * xfaces.c (face_at_buffer_position): Don't merge with nil
12436 text property.
12437 (face_at_string_position): Ditto.
12438
12439 * dispextern.h (struct display_iterator): Use a stack of saved
12440 values instead of saving check positions etc. individually.
12441
12442 * xdisp.c (set_iterator_to_next): If end of Lisp string reached,
12443 maybe pop the iterator's stack.
12444 (save_iterator_settings): Push a value on iterator's stack.
12445 (get_overlay_strings_at_iterator_position): Use it.
12446 (restore_iterator_settings): Pop the stack.
12447 (set_iterator_to_next_overlay_string): Use it.
12448
12449 * xfaces.c (try_font_list): Use alternative font families.
12450
124511998-04-26 Gerd Moellmann <gerd@gnu.org>
12452
12453 * xfaces.c (Fset_face_font_sort_order): Set the order in which
12454 font selection matches fonts.
12455 (Fface_font_sort_order): Return the font sort order.
12456 (best_matching_font): Find best matching font based on sort order.
12457 (cmp_font_names): Sort by given sort order.
12458
12459 * dispextern.h (struct display_iterator): New member faces_p.
12460 * xdisp.c (init_iterator): Initialize it->faces_p.
12461 (compute_face_at_iterator_string_position): Use it.
12462 (compute_face_at_iterator_position): Use it.
12463 (init_iterator): Use it.
12464 (display_mode_line): Ditto.
12465
12466 * xdisp.c (get_next_display_element): Put code choosing a face
12467 when the charset changes in #ifdef HAVE_FACES.
12468
427ec082 12469 * dispextern.h (FACE_FOR_CHARSET): Replacement for function
26901792
DL
12470 lookup_face_for_charset.
12471
12472 * xfaces.c (free_font_names): Renamed from free_split_font_names.
12473 (free_all_realized_faces): Renamed from remove_all_realized_faces.
12474
124751998-04-25 Gerd Moellmann <gerd@gnu.org>
12476
12477 * xfaces.c (best_matching_font): Return the name of the best
12478 matching font in an array of font_name structures.
12479 (choose_face_font): Use it.
12480 (choose_face_fontset_font): Use it.
12481 (find_best_weight_font): If final font found has same weight as
12482 the font we started with, return the original font because it is a
12483 better match for the resolution of the display.
12484 (find_best_slant_font): Likewise.
12485 (merge_face_vector_with_property): Check more invalid attribute
12486 values.
12487 (lface_suitable_for_charset_p): Replaced by a macro with the same
12488 name in upper-case.
12489
124901998-04-24 Gerd Moellmann <gerd@gnu.org>
12491
12492 * dispextern.h (struct face): Member
12493 fontset_chosen_for_realization_p removed.
12494
12495 * xfaces.c (cache_face): If face->fontset >= 0, add face to the
12496 end of the collision list, so that we find more specific faces
12497 first.
12498 (lookup_face_for_charset): Look up a new face if face->fontset >=
12499 0, and charset != CHARSET_COMPOSITION.
12500
12501 * xfaces.c (split_font_name): Return zero if point size of font
12502 couldn't be computed.
12503 (realize_default_face): Use ASCII font of a fontset to determine
12504 font-related attributes of the default face.
12505 (face_fontset): Return fontset id for face family.
12506 (font_list): Additional parameter font_pattern. If non-nil,
12507 return fonts matching that pattern.
12508
125091998-04-23 Gerd Moellmann <gerd@gnu.org>
12510
12511 * xfaces.c (choose_face_fontset): If new fontset cannot be
12512 constructed, or fontset name cannot be split, return the id of the
12513 standard fontset.
12514
12515 * xterm.c (XTframe_up_to_date): Check that frame is an X frame.
12516 When Emacs starts, it may be called for the initial frame which
12517 isn't an X frame.
12518
12519 * dispextern.h (struct face): New members foreground_defaulted_p,
12520 background_defaulted_p.
12521 (struct face): Members `mask' and `cache' removed.
12522
12523 * xfaces.c (load_color): Set them.
12524 (free_face_colors): Check them.
427ec082 12525 (xlfd_point_size): Return -1 if resolution or point size of
26901792
DL
12526 font unknown.
12527
12528 * xfaces.c (free_font): Removed.
12529 (load_face_font_or_fontset): Renamed from load_font.
12530 (load_face_font_or_fontset): Use message2 instead of signalling.
12531 (load_color): Likewise.
12532 (load_pixmap): Likewise.
12533
12534 * xterm.h (struct x_display_info): Add screen_dpi.
12535 * xterm.c (x_term_init): Initialize it.
12536 * xfaces.c (xlfd_point_size): Use it.
12537 (split_font_name): Compute numeric XLFD_RESY.
427ec082 12538 (cmp_font_names): Make fonts with an y-resolution more
26901792
DL
12539 similar to that of the frame appear first in the result.
12540
12541 * xfaces.c (cache_face): If fontset_chosen_for_realization_p
12542 is set for the face to cache, add it to the end of the collision
12543 list.
12544 (try_font_list): If fonts for given family and registry cannot
12545 be found, first try to keep the registry, and choose a different
12546 family.
12547 (choose_face_font): Allow nfonts == 0.
12548 (try_font_list): Give up if no font matches given registry.
12549
125501998-04-22 Gerd Moellmann <gerd@gnu.org>
12551
12552 * xterm.c (x_get_char_font_and_encoding): Get font_info from
12553 font info id of the face.
12554
12555 * xfaces.c (load_font): Set font_info_id.
12556 (realize_face): Ditto.
12557
12558 * dispextern.h (struct face): Change member font_info to
12559 font_info_id.
12560
12561 * fontset.h (FONT_INFO_ID): Build an ID from a font_info pointer.
12562 (FONT_INFO_FROM_ID): Get a font_info pointer from an ID.
12563
12564 * xdisp.c (extend_face_to_end_of_line): If IT's current charset
12565 isn't ASCII, get the ASCII face before adding a space.
12566 (append_space): Likewise.
12567 (insert_left_trunc_glyphs): Initialize truncate_it's charset
12568 to -1 so that it will compute the right face for the truncation
12569 glyphs.
12570
12571 * xfaces.c (realize_face): Set
12572 face->fontset_chosen_for_realization_p.
12573 (lookup_face_for_charset): If fontset wasn't specified originally
12574 and new charset != CHARSET_COMPOSITION, get a new face for that
12575 charset.
12576
12577 * dispextern.h (struct face): New member
12578 fontset_chosen_for_realization_p_specified_p. Set to 1 when
12579 realize_face has chosen a fontset to display composite characters
12580 for a Lisp face not specifying a fontset.
12581
12582 * xdisp.c (extend_face_to_end_of_line): Move tests for default
12583 face and line already filled here. Don't do anything if current
12584 face hasn't a relief or has a background equal to the frame
12585 background.
12586
12587 * xfaces.c (split_font_name): Additional parameter numeric_p.
12588 Don't compute numeric values if it is non-zero.
12589 (choose_face_fontset): Call split_font_name with numeric_p == 0.
427ec082 12590 (choose_face_fontset): Print a message if fontset contains a
26901792
DL
12591 font whose name cannot be split into fields.
12592
125931998-04-21 Gerd Moellmann <gerd@gnu.org>
12594
427ec082 12595 * xfaces.c (try_font_list): Try to load a list of fonts,
26901792
DL
12596 possibly using less restrictive patterns.
12597 (choose_face_font): Use it.
12598
12599 * xterm.c (x_get_char_font_and_encoding): For charset !=
12600 CHARSET_ASCII use font_info of face if face hasn't a fontset set.
12601
12602 * dispextern.h (struct face): New member font_info.
12603
12604 * xfaces.c (load_font): Use FS_LOAD_FONT to load fonts for faces
12605 specifying a fontset as well as those not having a fontset.
12606 (free_font): Make it empty.
12607 (realize_face): Use changed load_font.
12608
12609 * xterm.c (x_get_char_font_and_encoding): If face doesn't
12610 fit for charset, get the right one.
12611
12612 * xfaces.c (load_font): Take frame and name parameter, return
12613 font.
12614 (free_font): Likewise.
12615 (split_font_name): Compute numeric values for height, swidth etc.
12616 (cmp_font_names): Use them.
12617 (find_best_width_font): Ditto.
12618 (find_best_height_font): Ditto.
12619 (find_best_weight_font): Ditto.
12620 (find_best_slant_font): Ditto.
12621 (lface_hash): Add weight, slant, swidth and relief to hash value.
12622 (lface_equal_p): Make it faster.
12623 (lface_from_symbol): Use assq_no_quit.
12624 (Fnote_default_face_changed): Removed.
12625 (cmp_font_names): Use strcmp instead of xstricmp.
12626 (face_charset_registries): Removed.
12627
126281998-04-20 Gerd Moellmann <gerd@gnu.org>
12629
12630 * frame.h (CHECK_FRAME): Give this macro a statement form.
12631 (CHECK_LIVE_FRAME): Ditto.
12632
12633 * xfaces.c (find_best_width_font): Find the best matching font
12634 for a given width.
12635 (find_best_height_font): Likewise for height.
12636 (find_best_weight_font): Likewise for weight.
12637 (find_best_slant_font): Likewise for slant.
12638 (choose_face_font): Use them.
12639 (get_lface_attributes): Always return frame-local face attrs.
427ec082 12640 (Finternal_merge_in_global_face): Merge local face with
26901792
DL
12641 global face attributes.
12642
12643 * xfaces.c (check_lface_attrs, check_lface): Check consistency of
12644 Lisp face attributes.
12645
126461998-04-19 Gerd Moellmann <gerd@gnu.org>
12647
12648 * xfaces.c (Finternal_set_lisp_face_attribute): Add :bold
12649 and :italic for compatibility.
12650 (Finternal_set_lisp_face_attribute_from_resource): Handle
427ec082 12651 :bold and :italic. Handle boolean resource values for
26901792
DL
12652 :underline and :italic.
12653
12654 * xfns.c (display_x_get_resource): Make it externally visible.
12655
12656 * xfaces.c (lface_from_symbol): Take a frame as parameter.
12657 If that frame is non-null, return the frame-local face.
12658 (Finternal_make_lisp_face): Additional frame argument.
12659 (lface_attributes): Get face attributes from global and frame-local
12660 definitions.
12661 (Finternal_lisp_face_equal_p): Additional frame argument.
12662 (merge_lisp_face_vector_with_property): Ditto.
12663 (Frealize_basic_faces): Removed.
12664 (Finternal_get_lisp_face_attribute): Additional frame argument.
12665 (Finternal_lisp_face_p): Ditto.
12666 (load_color) [MSDOS]: Removed because it isn't clear how
12667 to do this for MS-DOS.
12668
12669 * xfaces.c (lface_from_symbol): Get global face definition
12670 from face-global-alist.
12671
12672 * xfaces.c (Finternal_set_lisp_face_attribute): Allow `t'
12673 as values for :underline and :inverse-video.
12674 (Finternal_set_lisp_face_attribute): Allow nil values.
12675
126761998-04-17 Gerd Moellmann <gerd@gnu.org>
12677
12678 * xfaces.c (Finternal_make_lisp_face): Return Lisp face vector.
12679
12680 * xfaces.c (syms_of_xfaces): Add Vall_faces.
12681 (Finternal_make_lisp_face): Add new face to Vall_faces.
12682
12683 * xdisp.c (echo_area_display): Remove code recomputing faces.
12684 (redisplay_internal): Ditto.
12685 (init_iterator): Do it here.
12686
12687 * xfaces.c (choose_face_font): Check that swidth doesn't change
12688 for subusequent attributes.
12689 (xlfd_point_size): Return int.
12690
12691 * xdisp.c (redisplay_internal, echo_area-display): If realized
12692 faces have been cleared, call recompute_basic_faces.
12693
12694 * xfaces.c (recompute_basic_faces): Free realized faces. Reset
12695 face_attributes_changed_p.
427ec082 12696 (remove_all_realized_faces): Remove all realized faces on
26901792
DL
12697 all frames.
12698 (Finternal_set_lisp_face_attribute): Call remove_all_realized_faces.
12699
12700 * xdisp.c (redisplay_internal): If face attributes have been
12701 changed since the last redisplay, recompute basic faces.
12702 (echo_area_display): Ditto.
12703
12704 * xfaces.c (clear_face_gcs): Renamed from clear_realized_face_cache.
12705
12706 * xfaces.c (min_char_bounds): If face cache not yet present,
12707 don't try to get font dimensions from faces.
12708
12709 * xterm.c (x_frame_mode_line_height): If face cache not present
12710 set, return default height.
12711
12712 * alloc.c (mark_face_cache): Check for null faces. Correct
12713 index bug.
12714
12715 * dispextern.h (struct face): Renamed from struct rface. Member
12716 underline renamed underline_p. Make it a bit-field.
12717
12718 * xfaces.c (init_frame_faces): Allocate face cache.
12719 (free_frame_faces): Free face cache.
12720 (recompute_basic_faces): Realize basic faces only if face cache is
12721 allocated, i.e. after init_frame_faces has been called.
12722
12723 * frame.c (make_frame): Initialze face cache with null.
12724
12725 * xfaces.c (same_size_fonts): Removed.
12726
427ec082 12727 * xterm.c (x_set_glyph_string_gc): Add post-condition
26901792
DL
12728 s->gc != 0.
12729 (x_set_mouse_face_gc): Ditto.
12730 (x_set_mode_line_face_gc): Ditto.
12731
427ec082
SS
12732 * xfaces.c (realize_default_face): Return int. Value is
12733 zero if frame params don't contain enough information to
26901792
DL
12734 realize the default face.
12735 (realize_basic_faces): Ditto.
12736 (init_frame_faces): Realize basic faces.
12737
12738 * xfns.c (x_set_font): First store real font name in frame
12739 parameters, then call recompute_basic_faces.
12740
12741 * xfaces.c (recompute_basic_faces): Call realize_basic_faces.
12742
127431998-04-16 Gerd Moellmann <gerd@gnu.org>
12744
12745 * xfaces.c (syms_of_xfaces): Correct calls to defsubr.
12746
12747 * xfns.c (Fx_face_fixed_p): Removed.
12748 (Fx_list_fonts): Moved to xfaces.c.
12749
12750 * xfaces.c (compute_face_at_buffer_pos): Renamed to
12751 face_at_buffer_position. Parameter charset removed; always
12752 compute face for CHARSET_ASCII.
12753 (face_at_string_position): Renamed from
12754 compute_face_at_string_pos. Parameter charset removed; always
12755 compute for CHARSET_ASCII.
427ec082 12756 (lookup_face_for_charset): Take frame parameter instead of
26901792
DL
12757 face_cache.
12758 (lookup_face): Ditto.
12759 (compute_char_face): Renamed from compute_glyph_face.
12760
12761 * xdisp.c (init_iterator): Initialize charset member.
12762 (reseat_iterator_to_string): Ditto.
12763 (get_charset_at_buffer_position): Determine charset at
12764 buffer position in current_buffer.
12765 (reseat_iterator): Call above function.
12766 (compute_face_at_iterator_position): Call
12767 compute_face_at_buffer_pos.
12768 (compute_face_at_iterator_string_position): Call
12769 compute_face_at_string_pos.
12770 (get_face_from_id): Removed.
12771 (get_face_from_cursor_pos): Call compute_face_at_buffer_pos.
12772 Call get_charset_at_buffer_position.
12773 (reseat_iterator): Determine face if charset at pos differs
12774 from iterator's charset.
12775 (reseat_iterator_to_glyph_pos): Removed.
12776
12777 * xfaces.c (compute_face_at_bufpos): Remove parameter charset.
12778 Determine charset from buffer position.
12779 (compute_string_char_face): Renamed to compute_face_at_string_pos.
12780 (compute_face_at_bufpos): Renamed to compute_face_at_buffer_pos.
12781
12782 * dispextern.h (struct display_iterator): Add member charset.
12783
127841998-04-15 Gerd Moellmann <gerd@gnu.org>
12785
12786 * xfaces.c (compute_char_face): Removed.
12787
12788 * xdisp.c (get_overlay_arrow_glyph_row): Use compute_glyph_face
12789 with new parameter list.
12790
12791 * xfaces.c (region_face): Removed.
12792 (allocate_face): Removed.
12793 (copy_face): Ditto.
12794 (face_eql): Removed.
12795 (intern_face): Removed.
12796 (clear_face_cache): Removed.
12797 (load_font): Ditto.
12798 (unload_font): Ditto.
12799 (load_color): Ditto.
12800 (unload_color): Ditto.
12801 (new_computed_face): Ditto.
12802 (intern_computed_face): Ditto.
12803 (ensure_face_ready): Ditto.
12804 (merge_faces): Ditto.
12805 (compute_base_face): Ditto.
12806 (merge_face_list): Ditto.
12807 (Fmake_face_internal): Removed.
12808 (Fset_face_attribute_internal): Ditto.
12809 (face_name_id_number): Removed.
12810 (Fframe_face_alist): Ditto.
12811 (Fset_frame_face_alist): Ditto.
12812 (Finternal_next_face_id): Ditto.
12813
12814 * xterm.h (struct x_output): Remove computed_faces, and
12815 param_faces. Remove macros accessing them.
12816
12817 * xfaces.c: Entirely new face implementation added.
12818
128191998-04-11 Gerd Moellmann <gerd@gnu.org>
12820
12821 * dispextern.h (struct glyph_pos): Member `bufpos' renamed
12822 `charpos'.
12823
128241998-04-10 Gerd Moellmann <gerd@gnu.org>
12825
12826 * xterm.c (x_scroll_bar_move): Clear only regions not covered by
12827 scroll bar window to reduce flickering. Clear entire height.
12828
12829 * xdisp.c (move_iterator_vertically_backward): Set iterator's
12830 current_x and hpos to zero after moving to previous line
12831 start.
12832
128331998-04-03 Gerd Moellmann <gerd@gnu.org>
12834
12835 * frame.h (FRAME_FACE_CACHE): Access to a frame's face cache.
12836
12837 * xfaces.c (xlfd_point_size): Compute relative point size of
12838 fonts from font and frame resolution.
12839 (sort_fonts): New function to sort fonts, temporarily setting
12840 font_frame to the frame in effect.
12841 (xlfd_point_size): Take additional frame parameter to be able
12842 to get at the display's resolution.
12843
12844 * xterm.c (x_setup_relief_colors): Use WHITE_PIX_DEFAULT and
12845 BLACK_PIX_DEFAULT.
12846 (x_setup_relief_color): Use FRAME_X_SCREEN instead of default
12847 screen of display.
12848
128491998-03-31 Gerd Moellmann <gerd@gnu.org>
12850
12851 * xfaces.c (choose_face_fontset): Instantiate fontsets.
12852
12853 * fontset.h: Add external declarations for Vfontset_alias_alist
12854 and Vglobal_fontset_alist.
12855
12856 * xfaces.c (merge_lisp_face_vector_with_property): Simplified.
12857 (realize_default_face): If frame parameters contain an artificial
12858 font name naming a fontset, set the family of the default face to
12859 the fontset name given by the registry.
12860
12861 * Makefile.in (alloc.o): Add dependency to dispextern.h.
12862
128631998-03-22 Gerd Moellmann <gerd@gnu.org>
12864
12865 * alloc.c (mark_object): Add function prototype. Add cast to
12866 Lisp_Object pointer in call to mark_object for symbol names
12867 because this otherwise gives a warning from gcc 2.8.1.
12868 (mark_face_cache): Mark Lisp objects in realized faces.
12869
128701998-03-19 Gerd Moellmann <gerd@gnu.org>
12871
12872 * frame.h (struct frame): Add member face_cache.
12873
12874 * alloc.c (mark_object): Mark face cache.
12875 (mark_face_cache): Mark Lisp faces in face cache of frame.
12876
12877 * frame.c (make_frame): Initialize face_cache.
12878 (Fdelete_frame): Free it.
12879
128801998-03-18 Gerd Moellmann <gerd@gnu.org>
12881
12882 * xfaces.c: Very first skeleton of functions for face realization,
12883 face merging, face cache etc.
12884
12885 * dispextern.h (struct rface): Realized faces. Will replace
12886 struct face when tested.
12887 (struct face_cache): Realized face caches.
12888
12889 * xdisp.c (init_iterator): Initialize area member of display
12890 iterator.
12891
128921998-03-17 Gerd Moellmann <gerd@gnu.org>
12893
12894 * xterm.c (x_append_glyph): Use it->area to store glyphs.
12895
12896 * dispextern.h (struct display_iterator): New member area.
12897
12898 * xterm.c (note_overwritten_text_cursor): Note when the text
12899 cursor of a window is overwritten.
12900
12901 * xdisp.c (set_cursor_from_row): If PT is not found in the
12902 row, display the cursor at the start of the row.
12903
12904 * dispnew.c (direct_output_forward_char): Call
12905 set_cursor_from_row.
12906
12907 * xdisp.c (setup_iterator_overlay_strings_from_glyph_pos): If
12908 position is not in an overlay string, set iterator's position and
12909 method explicitly so.
427ec082 12910 (set_cursor_from_row): Correct cursor position calculation.
26901792
DL
12911 Make it externally visible.
12912 (redisplay_window): Call set_cursor_from_row so that there is only
12913 one place where the cursor position is calculated from a current
12914 row.
12915
12916 * dispextern.h (struct display_iterator): New member
12917 overlay_strings_at_end_processed_p.
12918
12919 * xdisp.c (check_iterator): Perform sanity checks on
12920 display_iterators.
12921 (next_element_from_buffer): Check for overlay strings at ZV.
12922
129231998-03-16 Gerd Moellmann <gerd@gnu.org>
12924
12925 * buffer.c (init_buffer_once): Add left_margin_width and
12926 right_margin_width to buffer_local_flags.
12927
12928 * dispnew.c (margin_glyphs_to_reserve): Function computing
12929 number of glyphs to reserve for a marginal area.
12930 (adjust_glyph_matrix): Call it.
12931 (adjust_frame_glyphs_for_frame_redisplay): Return if frame
12932 is not alive.
12933
12934 * window.c (Fset_window_margins): Allow floats.
12935
12936 * buffer.c (syms_of_buffer): Add buffer-local variables
12937 left-margin-width and right-margin-width. Add defaults
12938 default-left-margin-width and default-right-margin-width.
12939
12940 * buffer.h (struct buffer): New members left_margin_width
12941 and right_margin_width.
12942
12943 * window.c (Fset_window_margins): Make window the last and
12944 optional argument.
12945
12946 * xterm.c (x_draw_glyphs): Compute x-positions for rows with
12947 flag no_marginal_areas_p differently.
12948 (x_clear_end_of_line): Ditto.
12949 (x_draw_glyph_string_relief): Compute width of relief differently
12950 for rows with flag no_marginal_areas_p.
12951
12952 * dispnew.c (update_window_line): Update marginal areas only
12953 for rows that don't have no_marginal_areas_p set.
12954
12955 * xdisp.c (display_mode_line): Set row's flag no_marginal_areas_p.
12956 (display_menu_bar): Ditto.
12957
12958 * dispextern.h (struct glyph_row): New member no_marginal_areas_p.
12959
12960 * dispnew.c (adjust_glyph_matrix): Compute glyph pointers for
12961 marginal areas in window-based redisplay.
12962
12963 * dispextern.h (struct glyph_matrix): New members
12964 left_margin_glyphs and right_margin_glyphs.
12965
129661998-03-15 Gerd Moellmann <gerd@gnu.org>
12967
12968 * minibuf.c (read_minibuf_unwind): Return Lisp_Object.
12969
12970 * charset.c (non_ascii_char_to_string): Use char type parameters
12971 because the function is used that way from outside. Use unsigned
12972 char internally.
12973
12974 * window.c (change_window_height): Return void.
12975 (make_dummy_parent): Return void.
12976 (init_window_once): Return void.
12977 (syms_of_window): Ditto.
12978 (keys_of_window): Ditto.
12979 (delete_window): Correct return with and without value.
12980
12981 * buffer.c (record_buffer): Return void.
12982
12983 * marker.c (unchain_marker): Return void.
12984
12985 * window.c (unshow_buffer): Return void.
12986 (replace_window): Ditto.
12987 (delete_window): Ditto.
12988
12989 * term.c (delete_glyphs_hook): Void return type.
12990 (ring_bell_hook): Ditto.
12991 (set_terminal_window_hook): Ditto.
12992
12993 * sysdep.c (init_sigio): Return void.
12994
12995 * xterm.c (x_set_window_size): Return void.
12996 (x_calc_absolute_position): Ditto.
12997 (x_set_offset): Ditto.
12998 (x_focus_on_frame): Ditto.
12999 (x_unfocus_frame): Ditto.
13000 (x_make_frame_visible): Ditto.
13001 (x_make_frame_invisible): Ditto.
13002 (x_iconify_frame): Ditto.
13003 (x_destroy_window): Ditto.
13004 (x_wm_set_window_state): Ditto.
13005 (x_wm_set_icon_pixmap): Ditto.
13006 (x_wm_set_icon_position): Ditto.
13007 (x_initialize): Ditto.
13008 (x_error_quitter): Ditto.
13009 (x_destroy_window): Use xfree instead of free.
13010
13011 * keyboard.c (clear_waiting_for_input): Return void.
13012
13013 * xterm.c (x_wm_set_size_hint): Return void.
13014 (x_raise_frame): Ditto.
13015 (refreshicon): Ditto.
13016 (x_error_catcher): Ditto.
13017 (x_clear_errors): Ditto.
13018
13019 * keyboard.c (record_asynch_buffer_change): Return void.
13020
bb6677a8
GM
13021 The first line of the following paragraph was garbled for an
13022 unknown reason. It couldn't be fully reconstructed.
178c5d9c 13023
bb6677a8 13024 * xterm.c (XTread_socket, XTset_terminal_window): Ditto.
26901792
DL
13025 (x_lower_frame): Ditto.
13026 (x_scroll_bar_clear): Ditto.
13027 (XTflash): Add default case in switch for -Wall.
13028 (construct_mouse_click): Return Qnil.
13029 (cancel_mouse_face): Return void.
13030 (x_queue_event): Use xmalloc instead of malloc.
13031 (x_unqueue_events): Use xfree instead of free.
13032
13033 * ccl.c (ccl_driver): Return int.
13034
13035 * keyboard.c (stop_polling): Return void.
13036 (start_polling): Ditto.
13037
13038 * term.c (keys): Add braces in initializer list for -Wall.
13039
13040 * sysdep.c (tabs_safe_p): Return int.
13041 (init_baud_rate): Return void.
13042
13043 * xterm.c (x_draw_bitmap): Add default case.
13044 (x_setup_relief_colors): Use DefaultScreen instead of
13045 DefaultScreenOfDisplay.
13046 (x_delete_glyphs): Return void.
13047 (construct_menu_click): Put in #if 0 because it isn't called.
13048
13049 * xdisp.c (load_overlay_strings): Remove extraneous argument
13050 in call to qsort.
13051 (get_overlay_arrow_glyph_row): Add missing return value.
13052
13053 * window.c (set_window_height): Return void.
13054 (set_window_width): Ditto.
13055
13056 * sysdep.c (request_sigio): Return void.
13057 (unrequest_sigio): Ditto.
13058 (get_frame_size): Ditto.
13059
13060 * scroll.c (scroll_cost): Return int.
13061 (do_line_insertion_deletion_costs): Return void.
13062
13063 * frame.c (Fdelete_frame): Use xfree instead of free.
13064
13065 * fileio.c (report_file_error): Return void.
13066
13067 * dispnew.c: Make compilable with -Wall.
13068 * term.c: Ditto.
13069
13070 * charset.h (CHAR_LEN): Moved here from dispextern.h.
13071
130721998-03-14 Gerd Moellmann <gerd@gnu.org>
13073
13074 * xterm.c (x_scroll_bar_move): Clear under scroll bar if height is
13075 increased.
13076 (x_setup_relief_color): Free color only for appropriate visual
13077 classes.
13078
13079 * xterm.c (expose_window): Fix calculation of intersection of mode
13080 line rectangle with exposed rectangle.
13081
13082 * xdisp.c (redisplay_window): Don't do cursor movement based
13083 on current matrix if w->last_point is not valid.
13084
130851998-03-09 Gerd Moellmann <gerd@gnu.org>
13086
13087 * xterm.c (expose_line): Redraw mode line and menu lines
13088 differently because they reach into the scroll bar area.
13089
13090 * xdisp.c (redisplay_window): If redisplaying with same window
13091 start, don't accept cursor on partially visible line.
13092
130931998-03-08 Gerd Moellmann <gerd@gnu.org>
13094
13095 * xterm.c (x_set_glyph_string_clipping): Set clip rectangle
13096 for wider mode lines.
13097 (x_draw_glyph_string_relief): Use larger rectangle for mode lines.
13098
13099 * xdisp.c (init_iterator): Increase last_visible_x by vertical
13100 scroll bar width for mode lines.
13101
13102 * dispnew.c (allocate_matrices_for_window_redisplay): Include
13103 vertical scroll bar width in width calculation so that we can
13104 display mode lines wider.
13105
13106 * xdisp.c (redisplay_window): Restore buffers before returning
13107 when fonts have changed.
13108
13109 * dispnew.c (update_window): Mark invisible rows in the current
13110 matrix invalid.
13111
13112 * xdisp.c (try_window_id): Force update of first row displayed
13113 at window end.
13114 (dump_glyph_matrix): Extracted from Fdump_glyph_matrix.
13115
131161998-03-05 Gerd Moellmann <gerd@gnu.org>
13117
13118 * dispextern.h (struct glyph_row): Member max_ascent renamed
13119 ascent. Member max_descent replaced by height.
13120 (struct display_iterator): Member max_descent replaced by height.
13121 (MATRIX_ROW_PIXEL_HEIGHT): Removed.
13122
13123 * xterm.c (x_alloc_lighter_color): Don't free colors if visual
13124 class makes it unnecessary or dangerous.
13125
13126 * xdisp.c (redisplay_window): Case only point has changed, and
13127 point has moved forward. Move forward over overlay strings.
13128 (display_line): Don't set cursor if first glyph from PT is part of
13129 a continuation line.
13130
131311998-02-21 Gerd Moellmann <gerd@gnu.org>
13132
13133 * xdisp.c (start_display): When computing continuation lines
13134 width, add current_x to the continuation lines width because
13135 move_iterator_to will stop in front of the buffer position moved
13136 to.
13137
131381998-02-20 Gerd Moellmann <gerd@gnu.org>
13139
13140 * xdisp.c (redisplay_window): Don't try try_window_id if
13141 windows_or_buffers_changed.
13142
13143 * xterm.c (x_alloc_lighter_color): Try both factor and delta to
13144 determine a color.
13145 (x_setup_relief_color): Allocate/ change one relief.
13146 (x_setup_relief_colors): Call above function.
13147
13148 * xterm.h (struct relief): New structure type holding relief info:
13149 GCs, colors, and whether colors are allocated.
13150
427ec082 13151 * xterm.c (x_alloc_lighter_color): If multiplying by factor
26901792
DL
13152 produces the same color, try adding a delta to RGB values.
13153 (x_setup_relief_colors): Free color cells.
13154
427ec082 13155 * xterm.h (struct x_output): New members white_relief_pixel,
26901792
DL
13156 black_relief_pixel holding the foreground colors allocated for
13157 relief GCs. New members white_allocated_p, black_allocated_p.
13158
13159 * xterm.c (x_scroll_run): Don't set updated_window to null.
13160 This resets updated_window when called from scrolling_window.
13161
13162 * dispextern.h (scroll_run_hook): Renamed from line_dance_hook.
427ec082 13163
26901792
DL
13164 * xterm.c (x_scroll_run): Additional window parameter. Set
13165 and reset updated_window.
13166
13167 * dispnew.c (line_dance_hook): Additional window parameter.
13168
13169 * xdisp.c (try_window_reusing_current_matrix): Don't call
13170 update_window_begin/end here. The end function would display the
13171 cursor on a wrong position and the additional functionality of
13172 update_window_begin is not needed anyway. Just set
13173 updated_window.
13174 (try_window_id): Ditto.
13175
13176 * dispnew.c (Fblink_cursor): Remove call to detect_input_pending.
13177 Don't redraw cursor during redisplay.
13178
13179 * xterm.c (x_scroll_run): Renamed from do_line_dance.
13180
13181 * xdisp.c (redisplay_window): For window-based redisplay, alway
13182 try try_window_id.
13183
13184 * xterm.c (struct glyph_string): New member two_byte_p that is
13185 non-zero if 16-bit drawing functions must be used.
13186 (x_fill_composite_glyph_string): Set it.
13187 (x_fill_glyph_string): Set it.
13188 (x_draw_glyph_string_foreground): Use it.
13189 (x_draw_vertical_border): Make line 1 pixel less tall.
13190 (x_draw_row_bitmaps): Decrease width of area cleared on the left
13191 side by 1 pixel if window is not right-most hasn't vertical scroll
13192 bars.
13193 (x_draw_phys_cursor_glyph): Do nothing if phys_cursor.hpos is
13194 out of bounds.
13195 (x_draw_glyph_string_foreground): Use XDrawImageStringX if
13196 hl == DRAW_CURSOR.
13197
13198 * xdisp.c (start_display): Check that window start is at line
13199 start if GLYPH_DEBUG != 0.
13200
13201 * window.c (window_scroll_pixel_based): Move assertion to
13202 start_display.
13203
132041998-02-19 Gerd Moellmann <gerd@gnu.org>
13205
427ec082 13206 * xterm.c (x_redraw_cursor): Don't redraw the cursor if the
26901792
DL
13207 frame hasn't the focus.
13208
13209 * window.c (make_window): Initialize dy.
13210 (replace_window): Ditto.
13211
13212 * window.h (window): New member dy specifying the amount by which
13213 a window is scrolled "smoothly".
13214
13215 * xterm.c (x_set_glyph_string_clipping): Don't use glyph string's
427ec082 13216 y-position because it can be negative.
26901792
DL
13217 (x_draw_row_bitmaps): Don't clear with negative y-position like
13218 above.
13219 (x_clear_end_of_line): Same theme as above.
13220
13221 * xterm.c (x_alloc_nearest_color): Allocate a color or, if no
13222 exact match exists, the nearest existing color. Patterned after
13223 defined_color.
13224 (x_alloc_lighter_color): Allocate a color that is lighter or
13225 darker than a given color by a specified factor.
427ec082 13226 (x_setup_relief_colors): Set up relief line colors based on
26901792
DL
13227 the background color of a glyph string face.
13228 (x_draw_glyph_string_relief): Call x_setup_relief_colors.
13229
13230 * xfns.c (x_make_gc): Don't allocate relief GCs.
13231 * widget.c (create_frame_gcs): Don't allocate relief GCs.
13232 (setup_frame_gcs): Don't change relief GCs.
13233
13234 * xterm.h (struct x_output): New member relief_background giving
13235 the background pixel color for which relief GCs can be used.
13236 Set by x_setup_relief_colors.
13237
13238 * xterm.c (x_draw_glyph_string_relief): Draw relief differently
13239 for mode and menu lines.
13240
13241 * xdisp.c (set_next_iterator_stop_pos): No longer static.
13242
13243 * dispnew.c (direct_output_for_insert): Call
13244 set_next_iterator_stop_pos after having changed it2.endpos.
13245
132461998-02-17 Gerd Moellmann <gerd@gnu.org>
13247
13248 * dispnew.c (update_window): Work on selected_window, only.
13249
13250 * xterm.c (x_erase_phys_cursor): Return quickly if physical cursor
13251 hpos is >= number of glyphs in the cursor row.
13252
13253 * xdisp.c (try_window_id): Bug fix; update_window_end was not
13254 called.
13255
132561998-02-16 Gerd Moellmann <gerd@gnu.org>
13257
13258 * xdisp.c (init_iterator): Increase last_visible_x for mode lines
13259 and menu lines.
13260
13261 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate
13262 enough glyphs to display a mode line or menu line which draws over
13263 flags areas.
13264
13265 * xterm.c (XTset_vertical_scroll_bar): Use
13266 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT instead of
13267 VERTICAL_SCROLL_BAR_PIXEL_HEIGHT.
427ec082 13268 (x_draw_glyphs): Draw over flags areas when drawing a mode line
26901792
DL
13269 or menu.
13270 (x_set_glyph_string_clipping): Set clipping differently if drawing
13271 a mode line or menu line.
13272
13273 * xterm.h (VERTICAL_SCROLL_BAR_PIXEL_HEIGHT): Removed.
13274
13275 * xterm.c (expose_line): Don't draw bitmaps for mode lines and
13276 menu lines.
13277 (x_scroll_bar_create): Don't clear flags areas.
13278 (x_draw_row_bitmaps): Clear visible row height, only.
13279
13280 * dispnew.c (Fblink_cursor): Moved here from xdisp.c.
13281
132821998-02-15 Gerd Moellmann <gerd@gnu.org>
13283
13284 * dispnew.c (direct_output_for_insert): When checking for tabs in
13285 the line, set it2.endpos to ZV.
427ec082 13286
26901792
DL
13287 * window.h (struct window): New member cursor_off_p.
13288 * xterm.c (x_redraw_cursor): Implementation of redraw_cursor_hook
13289 for X.
13290 * dispnew.c (redraw_cursor_hook): If non-null, function that can
13291 be called to display or erase the cursor.
13292 * xdisp.c (Fblink_cursor): Blink the cursor of a specified window
13293 or selected_window.
13294
13295 * xterm.h (text_cursor_kinds): Enumerators changed to uppercase.
13296
13297 * dispnew.c (update_window_line): Special handling of inverse
13298 lines in #if 0 removed.
13299
13300 * xterm.c (x_write_glyphs): Renamed from XTwrite_glyphs.
13301 (x_insert_glyphs): Renamed from XTinsert_glyphs.
13302 (x_clear_frame): Renamed from XTclear_frame.
13303 (x_clear_end_of_line): Renamed from XTclear_end_of_line.
13304 (x_ins_del_lines): Renamed from XTins_del_lines.
13305 (x_change_line_height): Renamed from XTchange_line_height.
13306 (x_delete_glyphs): Renamed from XTdelete_glyphs.
13307 (x_clear_cursor): Renamed from clear_cursor.
13308 (x_update_begin): Renamed from XTupdate_begin.
13309 (x_update_end): Renamed from XTupdate_end.
13310 (x_update_window_begin): Renamed from XTupdate_window_begin.
13311 (x_update_window_end): Renamed from XTupdate_window_end.
13312 (x_frame_mode_line_height): Renamed from XTframe_mode_line_height.
13313 (x_produce_glyphs): Renamed from XTproduce_glyphs.
13314 (x_produce_special_glyphs): Renamed from XTproduce_special_glyphs.
13315 (x_produce_special_glyphs): Implementation in #if 0 removed.
13316
13317 * xdisp.c (Fdump_redisplay_state): Display row's fill_line_p
13318 flag in the dump.
13319
13320 * dispnew.c (update_text_area): Handling of glyphs with pixel
13321 width zero removed. Decrement desired stop pos if desired row
13322 fills its line.
13323
13324 * xterm.c (x_fill_glyph_string): Handling of glyphs with pixel
13325 width zero removed.
13326 (BUILD_GLYPH_STRINGS): Set glyph string flag
13327 extends_to_end_of_line_p based on row's flag fill_line_p and face
13328 background and stipple. Make sure it works for composite characters.
13329
13330 * xdisp.c (extend_face_to_end_of_line): Set the glyph row flag
13331 fill_line_p. For window-based redisplay, add a space only if
13332 the row is empty so that we know the face to draw.
13333
13334 * dispextern.h (struct glyph_row): New flag fill_line_p. Non-zero
13335 means draw the face of the last glyph in the text area to the
13336 right end of the text area.
13337
13338 * xdisp.c (init_iterator): Show region in window mini-buffer
13339 window refers to.
13340
427ec082 13341 * dispextern.h (struct display_iterator): Redundant member
26901792
DL
13342 region_showing_p removed. Test for region_beg > 0 instead.
13343
13344 * dispnew.c (update_text_area): Clear to end of line if cursor is
13345 beyond the end of the desired line. Necessary because we don't
13346 have a phys_cursor_glyph with which to erase the cursor. We don't
13347 have one because this method of drawing a cursor doesn't work with
13348 lbearing/rbearing.
13349
13350 * xterm.c (XTinsert_glyphs): Block input.
13351
133521998-02-14 Gerd Moellmann <gerd@gnu.org>
13353
13354 * xterm.c (x_set_cursor_gc): Don't use cursor_gc for composite
13355 glyph strings.
13356 (x_draw_glyph_string_background): Fill background with background
13357 pixel for the first glyph of a composite character.
13358
13359 * xdisp.c (try_window): Change return type to int. Value is zero
13360 if fonts were loaded during redisplay.
13361 (redisplay_window): Return if fonts have been loaded during
13362 redisplay.
13363 (append_space): New parameter default_face_p.
13364
133651998-02-13 Gerd Moellmann <gerd@gnu.org>
13366
13367 * dispnew.c (adjust_glyph_matrix): In case of optimizing C-x 2,
13368 don't let a partially visible line in a current matrix stay
13369 enabled.
13370
133711998-02-09 Gerd Moellmann <gerd@gnu.org>
13372
13373 * minibuf.c (read_minibuf): Put access to minibuffer_prompt_length
13374 in #if PROMPT_IN_BUFFER.
13375
13376 * xdisp.c (display_line): If row ends in ZV, make the space
13377 that is added to place the cursor on it appear in default face.
13378
427ec082 13379 * xterm.c (expose_area): New function redrawing a single
26901792
DL
13380 glyph row area.
13381 (expose_line): Use it to redraw all areas of a row.
13382
13383 * dispextern.h (move_operation_enum): New enum
13384 move_operation_enum.
13385
13386 * window.c (window_scroll_pixel_based): Remove now unnecessary
13387 code that made sure that it->current_y doesn't become negative.
13388
13389 * xdisp.c (move_iterator_in_display_line_to): New parameter
13390 op. Special meaning of to_pos <= 0 and to_x < 0 removed.
13391 (move_iterator_to): Ditto.
13392
13393 * dispextern.h (struct glyph_matrix): New member window_width.
13394
13395 * dispnew.c (adjust_glyph_matrix): Set window_width. Optimize
13396 case of changing window height.
13397
13398 * xterm.c (x_draw_row_bitmaps): Don't clear vertical window
427ec082 13399 border to the left.
26901792
DL
13400
13401 * dispextern.h (struct glyph_row): Remove right_to_left_p. RMS
13402 says this aspect of Emacs is currently redesigned.
13403
13404 * xterm.c (x_clip_to_row): Subtract 1 from clip width if we
13405 have to draw a vertical border.
13406
13407 * window.c (window_scroll_pixel_based): When scrolling down by
13408 screen-fulls, make sure it.current_y doesn't get negative because
13409 this would confuse move_iterator_vertically.
13410
13411 * xdisp.c (move_iterator_vertically_backward): Bug fix for
13412 the case continuation lines are involved.
13413 (try_window_id): Don't set the cursor into scroll margins.
13414
134151998-02-08 Gerd Moellmann <gerd@gnu.org>
13416
13417 * xterm.c (x_append_glyph): Don't compute left_overhang and
13418 right_overhang.
13419 (XTproduce_glyphs): left_overhang and right_overhang removed.
13420 Set it->glyph_row->contains_overlapping_glyphs_p.
13421
13422 * xdisp.c (Fdump_redisplay_state): Output of glyph->left_overhang
13423 and right_overhang removed.
13424
13425 * dispextern.h (struct glyph_row): New member
13426 contains_overlapping_glyphs_p used to optimize glyph drawing.
13427 (struct display_iterator): left_overhang and right_overhang
13428 removed.
13429 (struct glyph): Ditto.
13430
13431 * xterm.c (x_draw_relief): Removed.
13432 (x_draw_bitmap): Renamed from draw_bitmap.
13433 (x_draw_glyphs): Completely new implementation of draw_glyphs
13434 capable of handling arbitrary lbearing and rbearing values.
13435 Several sub-functions not mentioned here.
13436
134371998-01-30 Gerd Moellmann <gerd@gnu.org>
13438
13439 * xterm.c (x_erase_phys_cursor): Clear area under the cursor only
427ec082 13440 if displaying hollow box cursor. draw_glyphs should handle
26901792
DL
13441 other cases.
13442 (draw_glyphs): Move start to the left and end to the right if they
427ec082 13443 overlap with previous or following characters.
26901792 13444 (draw_glyphs): If background is cleared for hl == DRAW_CURSOR,
427ec082 13445 make sure XDrawString uses function GXset. Otherwise the
26901792
DL
13446 character under the cursor would be invisible.
13447 (x_draw_bar_cursor): Don't draw over previous character if it
13448 has right_overhang.
13449
13450 * window.c (get_phys_cursor_glyph): Return the glyph under a
13451 window's physical cursor.
427ec082 13452
26901792
DL
13453 * xterm.c (x_draw_hollow_cursor): Use get_phys_cursor_glyph.
13454 (x_draw_bar_cursor): Ditto.
13455 (x_erase_phys_cursor): Ditto.
13456 (x_phys_cursor_in_rect_p): Ditto.
13457 (x_display_and_set_cursor): Remove reference to w->phys_cursor_glyph.
13458
13459 * window.c (make_window): Remove reference to phys_cursor_glyph.
13460 (replace_window): Ditto.
13461
13462 * window.h (struct window): Remove phys_cursor_glyph. There is
427ec082 13463 now always a glyph present for placing the cursor on it in
26901792
DL
13464 each glyph row, even at the end of a line.
13465
13466 * xdisp.c (append_space): Function to add a space to an iterators
13467 glyph row.
13468 (display_line): Add spaces at the end of lines that are used to
13469 place the cursor on them.
13470 (compute_line_metrics): If row consists of a space only that was
427ec082 13471 added to place the cursor on it, use that space's height as the
26901792
DL
13472 line height.
13473
134741998-01-29 Gerd Moellmann <gerd@gnu.org>
13475
13476 * xdisp.c (Fdump_redisplay_state): Dump left and right overhang of
13477 glyphs.
13478
134791998-01-28 Gerd Moellmann <gerd@gnu.org>
13480
13481 * xterm.c (x_append_glyph): Set overhang of glyph from iterator.
13482 (XTproduce_glyphs): Set it->left_overhang and it->right_overhang.
13483
13484 * dispextern.h (struct glyph): Add left_overhang and
427ec082 13485 right_overhang.
26901792
DL
13486 (struct display_iterator): Ditto.
13487
13488 * dispnew.c (direct_output_for_insert): Give up if newly inserted
13489 glyphs have different ascent or descent than original row.
13490
13491 * xdisp.c (compute_line_metrics): Compute row->max_ascent and
13492 row->max_descent only if unknown.
13493 (display_line): Compute row->max_ascent and row->max_descent.
13494 (display_string): Ditto.
13495
13496 * window.h (struct window): New members phys_cursor_ascent and
427ec082 13497 phys_cursor_descent.
26901792
DL
13498
13499 * xterm.c (x_phys_cursor_in_rect_p): Use them.
13500 (x_draw_hollow_cursor): Ditto.
13501 (x_erase_phys_cursor): Ditto.
13502 (x_display_and_set_cursor): Set them.
13503 (x_append_glyph): Don't set glyph members that were removed.
13504
13505 * dispextern.h (struct glyph): Members ascent, descent,
13506 contributes_to_line_height_p removed.
13507
135081998-01-25 Gerd Moellmann <gerd@gnu.org>
13509
13510 * dispextern.h (DEFAULT_FACE_ID, MODE_LINE_FACE_ID): Symbolic
13511 names for face ids of frame default face and mode line face.
13512
13513 * xdisp.c (compute_face_at_iterator_string_position): If
13514 displaying a mode line use MODE_LINE_FACE_ID instead of
13515 DEFAULT_FACE_ID.
13516
13517 * xdisp.c (reseat_iterator_to_string): Additional parameter start.
13518 (display_string): Ditto, additional parameter lisp_string.
13519 (display_line): Call display_string with Lisp mini-buffer prompt
13520 string.
13521 (display_menu_bar): Call display_string with Lisp string.
13522 (display_mode_element): Ditto.
13523 (next_element_from_string): Make it work for non-overlay Lisp
13524 strings with field width and precision.
13525
13526 * minibuf.c (minibuffer-prompt-in-buffer): Bound if
13527 PROMPT_IN_BUFFER.
13528
13529 * xfaces.c (compute_string_char_face): Fix face computation
13530 for overlay strings.
13531
13532 * xdisp.c (struct overlay_entry): Add member after_string_p.
13533 (load_overlay_strings): Simplify.
13534
13535 * window.c (delete_window): Defer glyph matrix adjustment.
13536 (Fsplit_window): Ditto.
13537 (change_window_height): Ditto.
13538 (Fset_window_configuration): Ditto.
13539 (Fset_window_margins): Ditto.
13540 * frame.c (set_menu_bar_lines): Ditto.
13541 (Fmake_terminal_frame): Ditto.
13542 * dispnew.c (change_frame_size_1): Ditto.
13543
135441998-01-24 Gerd Moellmann <gerd@gnu.org>
13545
13546 * xdisp.c (move_iterator_vertically_backward): Change algorithm.
13547
427ec082 13548 * dispnew.c (direct_output_for_insert): Give up if start
26901792
DL
13549 position has overlay strings.
13550
13551 * xdisp.c (display_line): Don't set cursor if row ends in middle
13552 of overlay string.
13553 (Fdump_redisplay_state): Print complete row start and end
13554 position.
13555 (redisplay_window): Cursor movement when matrix hasn't changed---
13556 if PT < last_point, maybe move forward if row ends at PT and
13557 in middle of char.
13558
13559 * minibuf.c (read_minibuf): Save the value of
13560 minibuffer_prompt_length in minibuf_save_list.
13561 (read_minibuf_unwind): Restore minibuffer_prompt_length.
13562
13563 * xdisp.c (redisplay_window): Add assertion for cursor movement
13564 case, PT < last_point.
13565 (move_iterator_in_display_line_to): If to_pos specified, move
13566 over before-strings.
13567
13568 * dispextern.h (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Test
13569 start.string_index > 0.
13570
13571 * xdisp.c (redisplay_internal): Adjust glyphs if fonts_changed_p
13572 is set. Retry redisplay if fonts_changed_p is set before update.
13573
13574 * xterm.c (x_load_font): Set fonts_changed_p.
13575
13576 * xfaces.c (Fset_face_attribute_internal): Set fonts_changed_p.
13577
13578 * dispnew.c (adjust_glyphs_for_font_change): Removed.
13579
13580 * xdisp.c (try_window): Check fonts_changed_p.
13581 (try_window_reusing_current_matrix): Ditto.
13582 (try_window_id): Ditto.
13583
13584 * dispnew.c (adjust_glyphs_for_font_change): Set fonts_changed_p.
13585 (fonts_changed_p): Flag indicating a font change since the last
13586 glyph matrix adjustment.
13587
13588 * xterm.c (x_per_char_metric): Use font->max_bounds as
13589 char metric of the font's default char if the default char
13590 hasn't per char metric itself.
13591
13592 * xfaces.c (Fset_face_attribute_internal): Adjust glyphs
13593 for font change.
13594 (min_char_bounds): Check face->font != NULL.
427ec082 13595 (font_min_bounds): Return minimum font metrics. Capture the
26901792
DL
13596 case of invalid min_bounds contents.
13597 (min_char_bounds): Call font_min_bounds.
13598
135991998-01-22 Gerd Moellmann <gerd@gnu.org>
13600
13601 * xdisp.c (start_display): Don't set it->prompt_width if
13602 PROMPT_IN_BUFFER.
13603 (move_iterator_in_display_line_to): Ditto.
13604 (display_line): Don't display prompt via display_string if
13605 PROMPT_IN_BUFFER.
13606
13607 * minibuf.c (Fminibuffer_prompt_width): Return value from
13608 current_buffer if PROMPT_IN_BUFFER.
427ec082 13609 (read_minibuf): If PROMPT_IN_BUFFER, insert prompt into
26901792
DL
13610 mini-buffer and make it read-only.
13611 (Fminibuffer_complete_and_exit): If PROMPT_IN_BUFFER, use
13612 minibuffer_prompt_length instead of BEGV.
13613 (Fminibuffer_complete_word): Ditto.
13614 (Fminibuffer_complete_word): Ditto.
13615
13616 * insdel.c (del_range_1): If PROMPT_IN_BUFFER, and start position
13617 is less than mini-buffer prompt width, use prompt width as start.
13618
13619 * editfns.c (make_buffer_string): If PROMPT_IN_BUFFER, and start
13620 position is less than mini-buffer prompt width, use the prompt
13621 width as start.
13622
13623 * cmds.c (Fbeginning_of_line): If PROMPT_IN_BUFFER, set point to
13624 end of prompt if applied to a mini-buffer and BEG reached.
13625
136261998-01-21 Gerd Moellmann <gerd@gnu.org>
13627
13628 * editfns.c (make_buffer_string): If PROMPT_IN_BUFFER, add prompt
13629 length to start position.
13630
13631 * buffer.c (Fget_buffer_create): Initialize
13632 minibuffer_prompt_length.
13633 (Fmake_indirect_buffer): Ditto.
13634 (Fkill_buffer): Ditto.
13635
13636 * buffer.h (struct buffer): Add member minibuffer_prompt_length
13637 if PROMPT_IN_BUFFER.
13638
136391998-01-19 Gerd Moellmann <gerd@gnu.org>
13640
13641 * xdisp.c (next_element_from_string): Make it work for arbitrary
13642 Lisp strings.
13643 (set_iterator_to_next): Advance to next overlay string only
13644 if it->string is an overlay string.
13645
13646 * dispextern.h (struct display_iterator):
13647 next_ovstr_face_check_pos renamed next_string_face_check_pos.
13648
427ec082 13649 * xfaces.c (compute_string_char_face): Compute face for
26901792
DL
13650 arbitrary Lisp string. Renamed from compute_overlay_string_char_face.
13651
13652 * xdisp.c (next_element_from_string): Renamed from
13653 next_element_from_overlay_string.
427ec082 13654 (compute_face_at_iterator_string_position): Renamed from
26901792
DL
13655 compute_face_at_iterator_overlay_string_position.
13656
13657 * dispextern.h (struct display_iterator): Member overlay_string
13658 renamed string.
13659
13660 * xdisp.c (next_element_from_c_string): Renamed from
13661 next_element_from_string.
13662
13663 * dispextern.h (struct glyph_pos): Reversed meaning of
13664 overlay_string_index and string_index.
13665
13666 * xdisp.c (next_element_from_overlay_string): Fix bug that made
13667 this function always return the first character of an overlay
13668 string.
13669
136701998-01-18 Gerd Moellmann <gerd@gnu.org>
13671
13672 * xdisp.c (reseat_iterator): Set next_invisible_check_pos only if
13673 forced or new pos > next_invisible_check_pos.
13674 (redisplay_window): Don't try same window start if PT < window
13675 start.
13676 (move_iterator_vertically): Bug fix satisfying post-condition
13677 when ZV is reached and no newline in front.
13678 (move_iterator_vertically_backward): New implementation.
13679 (move_iterator_vertically_backward): Bug fixes.
13680
13681 * xterm.c (XTmouse_position): Change call to min_char_bounds.
13682 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Ditto.
13683 (adjust_glyphs_for_font_change): Always adjust.
13684
13685 * dispnew.c (struct dim): Use int.
13686
13687 * xfaces.c (Fset_face_attribute_internal): Set face->font_name;
13688 (allocate_face): Initialize it.
13689 (load_font): Use XLoadQueryFont again instead of x_load_font.
13690 (unload_font): Use XFreeFont again.
13691 (min_char_bounds): Iterate over fonts of faces. Use frame's
13692 font sizes as default. Remove parameter except_last_font_p.
13693
13694 * dispextern.h (struct face): Add font_name.
13695
136961998-01-17 Gerd Moellmann <gerd@gnu.org>
13697
13698 * xdisp.c (move_iterator_vertically): Check post-condition. Move
13699 to start of line if ending at ZV and no newline in front.
13700 (move_iterator_to): If to_y specified, always first move to x = 0,
13701 so that move stops at line start instead of line end. This is
13702 probably what callers would expect to happen.
13703
13704 * window.c (window_scroll_pixel_based): Pixel-based scrolling that
13705 can handle different line heights.
13706 (window_scroll_line_based): Formerly window_scroll.
13707 (window_scroll): Call both.
13708
13709 * xdisp.c (start_display): Exclude code if PROMPT_IN_BUFFER.
13710 (move_iterator_in_display_line_to): Ditto.
13711 (display_line): Ditto.
13712
13713 * minibuf.c (read_minibuf): Conditionally insert prompt into
13714 buffer instead of handling prompts specially. Change other
13715 functions accordingly. All such code is in #if PROMPT_IN_BUFFER.
13716
13717 * dispnew.c (adjust_glyph_matrix): Optimize the handling of C-x 2,
13718 upper window. Optimize calls to xrealloc if same width.
13719
13720 * xdisp.c (redisplay_window): Don't use
13721 try_window_reusing_current_matrix if window scroll functions
13722 exist.
13723
13724 * dispextern.h (struct display_iterator): Member
13725 redisplay_end_trigger_p removed.
13726
13727 * dispextern.h (WINDOW_DISPLAY_PIXEL_HEIGHT_WITHOUT_MODE_LINE):
13728 Renamed to WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
13729
137301998-01-16 Gerd Moellmann <gerd@gnu.org>
13731
13732 * xdisp.c (move_iterator_by_lines): Optimize for truncate-lines
13733 nil. Optimize truncate-lines t and moving backward.
13734 (move_iterator_to_previous_visible_line_start): Contains the heart
13735 of the previous set_iterator_to_previous_visible_line_end. Don't
13736 reseat the iterator. Used by move_iterator_by_lines.
13737 (set_iterator_to_previous_visible_line_start): Call function
13738 above.
13739 (move_iterator_in_display_line_to): Check TO_POS before doing
13740 anything else. Otherwise to_pos == PT would move to x of PT+1.
13741
13742 * indent.c (Fvertical_motion): Use display_iterator.
13743
13744 * xdisp.c (move_iterator_by_lines): New function moving by screen
13745 lines.
13746 (redisplay_window): Use it.
13747 (move_iterator_to): Correct branch of to_vpos specified.
13748 (move_iterator_vertically_backward): Increment nlines after having
13749 backed up over some lines because the last line was not backed up
13750 over.
13751 (move_iterator_via_matrix): Look for it->pos in the matrix, and
13752 calculate it->vpos and it->current_y relative to this row.
427ec082 13753 (move_iterator_via_matrix): Set in #if 0. It doesn't seem to
26901792
DL
13754 have a big effect and it is complex.
13755 (move_iterator_to): Call to move_iterator_via_matrix in #if 0.
13756
137571998-01-15 Gerd Moellmann <gerd@gnu.org>
13758
13759 * xterm.c (x_draw_relief): Simplify drawing and draw so that lines
13760 join nicely. Lines with widths > 2 don't join nicely under X.
13761 * xterm.h (struct x_output): Remove member relief_gc_line_width.
13762 * widget.c (setup_frame_gcs): Initialize relief GC's to line
13763 width 1; remove references to relief_gc_line_width.
13764 * xfns.c (x_make_gc): Ditto.
13765
13766 * xfaces.c (Fset_face_attribute_internal): Set frame garbaged
13767 if relief changes.
13768 (Fset_face_attribute_internal): Use XINT instead of XFASTINT
13769 to get a relief because they can be negative.
13770
13771 * xterm.c (x_draw_relief): Correct line drawing positions. Pixel
13772 positions are for the middle of lines under X.
13773
13774 * xdisp.c (try_window_id): Always search for the cursor by setting
13775 w->cursor.vpos = -1. Search in unchanged rows at the top and
13776 bottom if cursor not found in displayed lines.
427ec082 13777 (display_mode_line): First extend face, then set right shadow
26901792
DL
13778 flag. Otherwise the wrong glyph gets the right shadow.
13779
13780 * dispnew.c (direct_output_for_insert): Give up if line contains
13781 a tab. The number of spaces inserted for a tab changes if we
13782 insert glyphs in front of it.
13783
13784 * xterm.c (x_list_fonts): Changes undone because the Lisp
13785 implementation for make-face-smaller, make-face-larger, and
13786 make-face-fixed can do without them.
13787
13788 * xfns.c (Fx_list_fonts): Original x-list-fonts from x-list-font.c
13789 inserted.
13790
13791 * xdisp.c (try_window_id): First compute beg_unchanged, then
13792 compare with window start pos.
13793
13794 * xfns.c (Fx_face_fixed_p): Determine whether a face has a
13795 fixed-width font.
13796 (syms_of_xfns): defsubr for x-face-fixed-p.
13797
13798 * xterm.c (x_erase_phys_cursor): If row containing cursor is not
13799 enabled, don't do anything because this row will be newly drawn
13800 anyway and because we can additionally no longer determine the row
13801 height.
13802
13803 * xdisp.c (display_line): Bug fix cursor positioning.
13804
13805 * xfns.c (x-list-fonts): Copied from x-list-fonts.c; #include
13806 removed. x-list-fonts.c is now obsolete.
13807 (Qfixed, Qvariable): Moved here from xfaces.c.
13808
138091998-01-14 Gerd Moellmann <gerd@gnu.org>
13810
13811 * xdisp.c (display_line): Set row->ends_at_zv_p based on
13812 FETCH_BYTE for truncated lines.
13813 (display_line): Set cursor differently.
13814 (display_line): Fixed bug setting last_pos_on_this_line wrong
13815 for truncated lines.
13816
13817 * dispnew.c (adjust_glyph_matrix): Always adjust for frame-based
13818 redisplay.
13819
13820 * window.c (Fsplit_window): Adjust glyphs before setting buffer.
13821
13822 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Add
13823 assertion that character dimensions are not zero.
13824
13825 * xterm.c (x_load_font): adjust_glyphs_for_font_change while
13826 input is blocked.
13827
13828 * xdisp.c (decode_mode_spec): Faster implementation of line number
13829 display.
13830
13831 * xterm.c (x_draw_row_bitmaps): Clear flags area before drawing
13832 bitmaps if bitmaps don't fill the entire area.
13833 (draw_bitmap): Draw bitmaps horizontally centered in flags area.
13834
427ec082 13835 * xterm.h (FRAME_FLAGS_BITMAP_HEIGHT): Macro giving the
26901792
DL
13836 pixel height of flags bitmaps.
13837
13838 * frame.h (FRAME_FLAGS_AREA_COLS): Use FRAME_X_FLAGS_AREA_COLS.
13839 (FRAME_FLAGS_AREA_WIDTH): Ditto.
13840
13841 * xterm.h (FRAME_FLAGS_BITMAP_WIDTH): Macro giving the width
13842 in pixels of a flags area of a frame.
13843 (FRAME_X_FLAGS_AREA_WIDTH): Removed.
13844 (FRAME_X_FLAGS_AREA_COLS): Macro giving the number of columns
13845 occupied by a flags area.
13846
138471998-01-13 Gerd Moellmann <gerd@gnu.org>
13848
13849 * xdisp.c (hscroll_window_tree): Remove test for non-nil
13850 window_end_valid.
13851
13852 * dispnew.c (adjust_glyph_matrix): Check redisplay_p if
13853 GLYPH_DEBUG != 0.
13854
13855 * xdisp.c (display_line): Correct wrong calculation of row->x for
13856 the case of nglyphs == 1.
13857 (hscroll_window_tree): Renamed from hscroll_windows.
13858 (hscroll_windows): New function calling hscroll_window_tree that
13859 clears desired matrices on a frame when hscroll has been changed.
13860 (redisplay_p): Global flag set during redisplay.
13861 (redisplay_internal): Set and clear redisplay_p.
13862
13863 * xfaces.c (min_char_bounds): Add assertion that width and height
13864 are not zero at the end. Initialize *height and *width to -1,
13865 instead of using BITS_PER_SHORT. If font has min_bounds.width
13866 zero, use its max_bounds.width.
13867
13868 * x-list-font.c (Fx_list_fonts): Check INTEGERP or FLOATP for
13869 width and height.
13870
138711998-01-12 Gerd Moellmann <gerd@acm.org>
13872
13873 * dispnew.c (adjust_glyph_matrix): Do nothing if sizes haven't
13874 changed. Don't clear desired matrices.
13875
13876 * xdisp.c (hscroll_windows): Compute pt after setting
13877 current_buffer.
13878 (redisplay_window): Don't do cursor movement based on current
13879 matrix if just_this_one_p is zero.
13880
13881 * x-list-font.c (Fx_list_fonts): Additional parameter fixed.
427ec082 13882 specifying that fixed-width, variable-width fonts or both
26901792
DL
13883 should be returned.
13884
13885 * xfaces.c (Qfixed, Qvariable): Symbols for use by x-list-fonts.
13886 (syms_of_xfaces): Initialize them.
13887
13888 * xterm.c (x_list_fonts): Include auto-scaled fonts. Extend
13889 cached information.
13890
138911998-01-11 Gerd Moellmann <gerd@acm.org>
13892
13893 * xdisp.c (display_mode_line): Extend face to end of line.
13894
13895 * xdisp.c (echo_area_display): Don't call display_string with
13896 echo_area_glyphs_length == 0 which would mean infinite precision.
13897 (redisplay_internal): Adjust window_end_vpos if necessary.
13898
138991998-01-07 Gerd Moellmann <gerd@acm.org>
13900
13901 * xdisp.c (display_line): Set it->ends_at_zv_p differently.
13902
139031998-01-05 Gerd Moellmann <gerd@acm.org>
13904
13905 * xdisp.c (get_row_start_continuation_line_width): Removed.
13906 (init_iterator_to_row_start): Set it.current_x from row.
13907 (try_window_id): Set it.continuation_lines_width directly from
13908 row.
13909
13910 * xdisp.c (hscroll_windows): Use w->pointm if window is not
13911 selected_window.
13912 (hscroll_windows): Center cursor in window.
13913 (hscroll_windows): Call move_iterator_in_display_line_to.
13914
139151998-01-04 Gerd Moellmann <gerd@acm.org>
13916
13917 * xdisp.c (hscroll_windows): Check hscroll < 0.
13918 (redisplay_window): Allow quick cursor movement if overlay arrow
13919 but frame uses window-based redisplay.
13920 (display_line): Take special case for nglyphs == 1 out of #if 0.
13921 (display_line): Set row->ends_at_zv_p after the loop displaying
13922 glyphs because ZV can be in truncated text.
13923 (hscroll_windows): Use init_iterator_to_row_start.
13924
13925 * dispnew.c (scrolling_window): Calculation of overlapping
13926 runs fixed.
13927 (row_equal_p): Compare continued_p and continuation_line_p.
13928
139291998-01-02 Gerd Moellmann <gerd@acm.org>
13930
13931 * xterm.c (x_get_mode_line_face_gc): Renamed from
13932 x_get_modeline_face_gc.
13933
13934 * xdisp.c (TEXT_PROP_DISTANCE_LIMIT): Max. distance from current
13935 buffer position to look for text properties.
13936 (get_face_from_cursor_pos): Use it.
13937 (compute_face_at_iterator_position): Use it.
13938 (next_element_from_buffer): Use it.
13939
13940 * dispnew.c (scrolling_window): Decrement run's y-position
13941 when extending it backwards.
13942
13943 * xterm.c (do_line_dance): Don't ever copy more than window height.
13944
139451998-01-01 Gerd Moellmann <gerd@acm.org>
13946
13947 * xdisp.c (redisplay_window): Cursor motion in unchanged
13948 matrix---use MATRIX_ROW_.*_IN_MIDDLE_OF_CHAR_P.
13949 (init_iterator_to_next_row_start): Special handling of lines
13950 ending in middle of char removed.
13951 (hscroll_windows): Hscroll windows only if window_end_valid is not
13952 nil.
13953 (try_window_reusing_current_matrix): Call hscroll_windows.
13954 (init_iterator_to_row_start): Initialize iterator for display
13955 starting at a position given by a glyph_row->start.
13956 (redisplay_window): Don't use vmotion because it gives wrong
13957 results if lines are continued and variable width fonts are used.
13958
427ec082 13959 * dispextern.h (struct glyph_pos): New member dpvec_index.
26901792
DL
13960 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test if row ends in the
13961 the middle of a character.
427ec082 13962 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Test if row starts in
26901792
DL
13963 the middle of a character.
13964
13965 * xdisp.c (set_iterator_to_next): Increment it->dpvec_index, reset
13966 it.
13967 (next_element_from_display_vector): Use it->dpvec_index.
13968 (reseat_iterator): Reset it.
13969 (init_iterator): Reset it.
13970 (setup_iterator_dpvec_from_glyph_pos): Set up it->dpvec and
13971 it->pos.dpvec_index from a glyph_pos structure.
13972 (init_iterator_from_glyph_pos): Call the function above.
13973 (reseat_iterator_to_glyph_pos): Ditto.
13974
13975 * dispnew.c (direct_output_forward_char): Don't use this method at
13976 overlay boundaries or near invisible text.
13977 (direct_output_forward_char): Step through glyph row to find
13978 cursor position.
13979
427ec082 13980 * xterm.c (x_get_cursor_gc): Don't return cursor_gc for font ==
26901792
DL
13981 frame font if line height differs from font height.
13982
13983 * xdisp.c (set_iterator_to_next): Renamed from
13984 move_iterator_forward to avoid confusion with other move_.*
13985 functions.
13986
13987 * dispextern.h (FACE_RELIEF_P): Renamed from FACE_3D_P.
13988
139891997-12-31 Gerd Moellmann <gerd@acm.org>
13990
13991 * xterm.c (x_get_cursor_gc): Renamed from x_cursor_gc to use the
13992 same naming convention as for other GC functions.
13993 (draw_glyphs): Don't fill background when drawing a cursor and
13994 font height is less than line height.
13995
139961997-12-30 Gerd Moellmann <gerd@acm.org>
13997
13998 * xdisp.c (init_display_iterator.*): Renamed to shorter names
13999 init_iterator_.*.
14000
14001 * xdisp.c (move_iterator_forward): Restore it->len from
14002 it->dpvec_char_len if dpend reached.
14003 (get_next_display_element): Don't consume translated char
14004 prematurely.
14005 (display_line): Don't set this_.* variables if row is continued.
14006 (start_display): Move to start of continuation line if ending
14007 up at end of continued line.
14008
14009 * dispextern.h (struct display_iterator): New member dpvec_char_len.
14010
14011 * xdisp.c (move_iterator_in_display_line_to): Check TO_POS after
14012 checking TO_X and continuation lines.
14013 (get_last_unchanged_at_beg_row): If first_changed_pos is the end
14014 of a continued line, don't consider this line as unchanged because
14015 it may no longer be continued.
14016
140171997-12-29 Gerd Moellmann <gerd@acm.org>
14018
14019 * xdisp.c (try_window_id): Catch the case that moving over
14020 continuation lines moves first_unchanged_at_end_row to a row not
14021 displaying text.
14022
14023 * dispextern.h (struct glyph_row): New member
14024 continuation_lines_width. Member continuation_line_p removed.
427ec082 14025 (MATRIX_ROW_CONTINUATION_LINE_P): Non-zero if row displays a
26901792
DL
14026 continuation line.
14027 * xdisp.c (display_line): Set row->continuation_lines_width.
14028 (get_row_start_continuation_line_width): Set continuation lines
14029 width of iterator from continuation lines width of glyph row.
14030 (get_row_start_continuation_line_width): Make it inline.
14031 (set_window_cursor): Make it inline.
14032 (try_window_id): Use MATRIX_ROW_CONTINUATION_LINE_P.
14033 (Fdump_redisplay_state): Ditto.
427ec082 14034
26901792
DL
14035 * dispnew.c (update_window_line): Use MATRIX_ROW_CONTINUATION_LINE_P.
14036 * xterm.c (x_draw_row_bitmaps): Use MATRIX_ROW_CONTINUATION_LINE_P.
14037
14038 * xdisp.c (try_window_id): Set it.hpos and it.current_x to zero
14039 after determining the continuation lines width for
14040 last_unchanged_at_beg_row.
14041
14042 * xterm.c (x_draw_row_bitmaps): Let overlay arrow have precedence.
14043
14044 * xdisp.c (display_mode_line): Handle 3D faces only on frames
14045 which support faces.
14046 (init_display_iterator): Ditto.
14047 (move_iterator_via_matrix): Skip over truncation glyph at the row
14048 start on terminal frames.
14049 (hscroll_windows): Choose hscroll margin differently for window
14050 system and terminal frames.
14051
140521997-12-28 Gerd Moellmann <gerd@acm.org>
14053
14054 * xdisp.c (hscroll_windows): Change hscroll of windows.
14055 (redisplay_internal): Call it.
14056
427ec082 14057 * dispnew.c (direct_output_for_insert): Give up if a glyph
26901792
DL
14058 doesn't fit completely on the line.
14059 (direct_output_forward_char): Give up for non-ASCII chars.
14060 (direct_output_forward_char): Set redisplay_performed_directly_p.
14061
14062 * dispextern.h (struct display_iterator): Make first_visible_x
14063 and last_visible_x ints; this is for very long truncated lines.
14064
14065 * xdisp.c (move_iterator_in_display_line_to): Separate check for
14066 MOVE_X_REACHED only if it->nglyphs == 0. This fixes cursor
14067 positioning problems with the mouse.
14068 (move_iterator_in_display_line_to): Truncate lines if it->current_x
14069 >= it->last_visible_x instead of >.
14070 (display_line): Ditto.
14071
14072 * xterm.c (draw_glyphs): Draw rectangles if font could not be
14073 loaded.
14074 (XTproduce_glyphs): Calculate pixel_width for composite chars and
14075 non-ASCII chars differently. Always produce 1 glyph for composite
14076 chars. If font not found, use CHARSET_WIDTH to calculate width of
14077 non-ASCII chars.
14078 (x_get_char_font_and_encoding): Return null if font could not be
14079 loaded. Reset font to null if fontset could not be loaded.
14080 (draw_glyphs): Fill background if font not found.
14081 (draw_glyphs): Unused parameter just_foreground_p removed. New
14082 parameter composite_glyph.
14083 (draw_glyphs): Use enumeration for parameter hl.
427ec082 14084 (draw_glyphs): Pass a display area relative x-position to
26901792
DL
14085 draw_glyphs when calling it recursively for composite chars.
14086
140871997-12-27 Gerd Moellmann <gerd@acm.org>
14088
14089 * xterm.c: Patches from handa.etl.go.jp integrated.
14090 (draw_glyphs): Don't rely on x_get_char_font_and_encoding to
14091 find a font_info.
14092
14093 * xdisp.c (move_iterator_in_display_line_to): Check to_x
14094 for nglyphs == 1.
14095
14096 * xterm.c (x_draw_relief): Draw relief lines.
14097 (draw_glyphs): Call x_draw_relief.
14098
140991997-12-26 Gerd Moellmann <gerd@acm.org>
14100
14101 * xfns.c (x_make_gc): Create relief GC's.
14102
14103 * widget.c (create_frame_gcs): Create GC's for relief drawing.
14104 (setup_frame_gcs): Initialize them.
14105 (EmacsFrameDestroy): Free them.
14106
427ec082 14107 * xdisp.c (try_window_id): Get continuation lines width if
26901792
DL
14108 last_unchanged_at_beg_row is continued or a continuation line.
14109 (move_iterator_via_matrix): Don't do it for mini-buffer windows.
427ec082 14110 (redisplay_window): Case point has changed, and it has not
26901792
DL
14111 moved off the frame. Don't increment row if PT equals the row
14112 end if the row ends in ZV.
14113
14114 * xterm.c (x_draw_row_bitmaps): New function to draw bitmaps.
14115 (expose_line): Call it.
14116 (x_after_update_window_line): Call it.
14117
14118 * xdisp.c (display_line): Reset continuation_lines_width when ZV
14119 reached.
14120
14121 * xterm.c (x_after_update_window_line): Draw continuation line
14122 bitmap.
14123
14124 * dispnew.c (update_window_line): Call
14125 after_update_window_line_hook when row's continuation_line_p
14126 changes.
14127
14128 * xterm.c (draw_bitmap): Draw new bitmap CONTINUATION_LINE_BITMAP.
14129
14130 * xdisp.c (display_line): Handle continued lines on window system
14131 frames differently since continuation glyphs are not displayed.
14132 (move_iterator_in_display_line_to): Ditto.
14133 (move_iterator_in_display_line_to): Take the mini-buffer prompt
14134 into account.
14135 (move_iterator_vertically_backward): Handle dy == 0 specially.
14136 (redisplay_window): Catch the case of small windows when
14137 recentering where moving back window_height/2 moves us beyond the
14138 top of the display area of the window.
14139
141401997-12-18 Gerd Moellmann <gerd@acm.org>
14141
14142 * xdisp.c (move_iterator_vertically_backward): Unused parameter
14143 dvpos removed.
14144
141451997-12-17 Gerd Moellmann <gerd@acm.org>
14146
14147 * dispnew.c (direct_output_forward_char): Correct new cursor
14148 x-position.
14149
141501997-12-16 Gerd Moellmann <gerd@acm.org>
14151
14152 * xterm.c (x_after_update_window_line): Remove unused parameters.
14153 (XTclear_end_of_line): Clear to display_height instead of
14154 display_height - 1.
14155
14156 * dispnew.c (set_frame_matrix_frame): Make it INLINE.
427ec082 14157 (update_window_line): Call after_update_window_line_hook if
26901792
DL
14158 rows have different y-positions, or different height.
14159
141601997-12-14 Gerd Moellmann <gerd@acm.org>
14161
14162 * frame.h (FRAME_MODE_LINE_PIXEL_HEIGHT): Removed.
14163
14164 * window.c (coordinates_in_window): Call frame_mode_line_height.
14165
14166 * xterm.c (x_draw_3d_border): Removed.
14167 (x_draw_row_borders): Removed.
14168
14169 * dispnew.c (update_window): References to
14170 FRAME_MODE_LINE_BORDER_WIDTH removed.
14171
14172 * xterm.h (FRAME_MODE_LINE_BORDER_WIDTH): Removed.
14173 (FRAME_MODE_LINE_HEIGHT): Removed.
14174
14175 * xterm.c (draw_3d_borders_p): Removed.
14176 (draw_glyphs): Ditto.
14177 (XTwrite_glyphs): Ditto.
14178 (expose_line): Ditto.
14179 (x_initialize): Ditto.
14180
14181 * dispextern.h (WINDOW_DISPLAY_MODE_LINE_HEIGHT): Call
14182 frame_mode_line_height.
14183
14184 * term.c (frame_mode_line_height): Get the pixel height of a
14185 frame's mode line.
14186 (frame_mode_line_height_hook): Hook to implement system dependent
427ec082
SS
14187 versions.
14188
26901792
DL
14189 * xterm.c (x_initialize): Set the hook.
14190 (XTframe_mode_line_height): X version of frame_mode_line_height.
14191
14192 * xdisp.c (echo_area_display): Call gobble_input to flush the X
14193 output buffer.
14194 (display_string): Don't add right truncation mark if line ends in
14195 padding space.
14196 (init_display_iterator): If called with modeline_p non-zero, set
14197 face_id to 1, which is the id of the mode line face.
14198
14199 * keyboard.c (cmd_error_internal): Write to stderr if selected
14200 frame is Vterminal_frame under X. This is the case when a font
14201 cannot be loaded when Emacs starts. Replace test for
14202 FRAME_MESSAGE_BUF with test for glyphs_initialized_p.
14203
14204 * xfaces.c (compute_overlay_string_char_face): Compute the
14205 face of a character in an overlay string.
14206 * xterm.h (compute_overlay_string_char_face): Prototype.
427ec082 14207 * xdisp.c (compute_face_at_iterator_overlay_string_position):
26901792
DL
14208 Use it.
14209
14210 * xdisp.c (set_iterator_to_next_overlay_string): Formerly
14211 set_iterator_to_next_overlay.
14212 (struct overlay_entry): Structure used to sort overlay strings.
14213 (compare_overlay_entries): Compare overlay strings.
14214 (load_iterator_with_overlay_strings): Load a chunk of overlay
14215 strings.
14216 (get_overlay_strings_at_iterator_position): Call it.
14217 (next_element_from_overlay_string): Set it->object to the overlay
14218 string. Prepare for setting it->position to a string position.
14219 (get_overlay_strings_at_iterator_position): Renamed from
14220 get_overlays_at_iterator_position.
14221 (setup_iterator_overlay_strings_from_glyph_pos): Changed to load
14222 chunks of overlay strings.
14223 (load_overlay_strings): Renamed from load_iterator_overlay_strings.
14224
14225 * dispextern.h (struct display_iterator): New vector
14226 overlay_strings and new member n_overlay_strings---formerly
427ec082
SS
14227 overlays and n_overlays.
14228 (struct glyph_pos): Remove after_string_p; overlay_index
26901792
DL
14229 renamed to string_index.
14230
142311997-12-13 Gerd Moellmann <gerd@acm.org>
14232
14233 * xdisp.c (copy_iterator): Increment n_iterator_overlay_vectors
14234 when allocating a vector.
14235 (release_iterator): Removed.
14236 (restore_iterator): Removed.
14237 (copy_iterator): Removed.
14238
142391997-12-08 Gerd Moellmann <gerd@acm.org>
14240
14241 * xdisp.c (redisplay_window): Use make_empty_enabled_row for
14242 clearing a mini-buffer window that is not active.
14243 (redisplay_window): Do not scroll one line too early when last
14244 window line is completely visible.
14245 (init_display_iterator): Leave some room to display the cursor
14246 after the last glyph on a continued line.
14247
14248 * xterm.h (struct x_output): trunc_area_extra renamed
14249 flags_areas_extra.
14250 (FRAME_X_FLAGS_AREA_WIDTH): Renamed from FRAME_X_TRUNC_WIDTH.
14251
14252 * dispnew.c (update_window_line): Call
14253 after_update_window_line_hook when current row is not enabled
14254 which is the case after a frame has been cleared.
14255
14256 * xdisp.c (display_mode_line): Reset row flags for truncation
14257 on right side for the mode line.
14258
14259 * xterm.c (bitmap_type): Type of bitmap to display in flags
14260 area of frame.
14261 (x_after_update_window_line): Use the enum.
14262 (draw_bitmap): Ditto.
14263
142641997-12-07 Gerd Moellmann <gerd@acm.org>
14265
14266 * xterm.c (x_clip_to_row): Include width of both flag areas.
14267 (do_line_dance): Ditto.
14268 (expose_window_tree): Ditto.
14269 * dispnew.c (update_window_line): Call
14270 after_update_window_line_hook for right truncation and continuation.
14271 * xdisp.c (init_display_iterator): Don't subtract width of
14272 continuation glyphs for window-based redisplay.
14273 * xterm.c (draw_bitmap): Draw continuation bitmap.
14274 * widget.c (set_frame_size): Double trunc_area_extra.
14275 (EmacsFrameSetCharSize): Ditto.
14276 * xfns.c (x_figure_window_size): Ditto.
14277 * xterm.c (x_set_window_size): Ditto.
14278 (x_after_update_window_line): Draw right truncation mark.
14279
14280 * xterm.c (draw_glyphs): Bug fix buffer overrun.
14281
14282 * window.h: Include blocker around dispextern.h removed.
14283
14284 * eval.c (Feval): Check interrupt_input_block == 0.
427ec082 14285
26901792
DL
14286 * dispextern.h (struct display_iterator): Former ovstr made a
14287 Lisp_Object overlay_string. New next_ovstr_face_check_pos and
14288 next_ovstr_invisble_check_pos; check at these positions for
14289 face changes and changes in invisible text property.
14290 (struct glyph_pos): Former ovlen now overlay_string_index.
14291
14292 * xdisp.c (setup_iterator_overlays_from_glyph_pos): Set
14293 overlay_string.
14294 (set_iterator_to_next_overlay_string): Set overlay_string and
14295 pos.overlay_string_index.
14296 (get_overlays_at_iterator_position): Use overlay_string and
14297 overlay_string_index.
14298 (next_element_from_overlay_string): Use overlay_string and
14299 overlay_string_index.
14300 (move_iterator_forward): Increment overlay_string_index.
14301 (try_window_id): Use overlay_string and overlay_string_index.
14302 (move_iterator_forward): At end of dpvec, maybe use method
14303 next_element_from_overlay_string for the case a character from an
14304 overlay string was translated via a display table.
14305 (reseat_iterator_to_string): Take a Lisp string.
14306 (display_string): Pass a Lisp string to reseat_iterator_to_string.
14307 (compute_face_at_iterator_overlay_string_position): Compute face
14308 based on text properties for an overlay string.
14309 (next_element_from_overlay_string): Check invisible and face text
14310 properties.
178c5d9c 14311
26901792
DL
14312 (set_iterator_to_next_overlay_string): Restore face id before
14313 overlay strings when no more overlay strings are found to return.
14314 Initialize next_ovstr_.*check_pos for each new overlay string
178c5d9c 14315
bb6677a8
GM
14316 A line in the following paragraph was garbled for an unknown
14317 reason. It couldn't be fully reconstructed.
178c5d9c 14318
bb6677a8 14319 (compute_base_face): Made public.
26901792
DL
14320 (merge_face_list): Ditto.
14321 (intern_computed_face): Ditto.
14322
427ec082 14323 * xdisp.c (redisplay_window): Cursor movement in unchanged
26901792
DL
14324 window if PT > w->last_point. Goto try_to_scroll if bottom Y
14325 of row is > instead of >= last_y.
14326
14327 * buffer.h (overlays_at): Function prototype.
14328
14329 * xdisp.c (reseat_iterator_to_string): Clear iterator position.
14330 * dispextern.h (GET_NEXT_DISPLAY_ELEMENT): Removed.
14331
427ec082 14332 * xdisp.c (release_iterator): Release dynamically allocated
26901792
DL
14333 memory of a display_iterator.
14334 (copy_iterator): Copy an iterator.
14335 (restore_iterator): Restore an iterator from a backup copy.
14336 (global): Use the functions above.
14337 * window.c (Fpos_visible_in_window_p): Call release_iterator.
14338 * dispnew.c (direct_output_for_insert): Call release_iterator.
14339
14340 * dispextern.h (struct display_iterator): Allocate overlays
14341 vector dynamically.
14342
143431997-12-06 Gerd Moellmann <gerd@acm.org>
14344
14345 * Makefile.in (window.o): Depends on dispextern.h.
14346
14347 * buffer.c (overlays_at): Make it work when extending vectors
14348 and an initial vector of zero size.
14349
14350 * xdisp.c (set_iterator_to_previous_visible_line_end): Renamed
14351 from set_cursor_to_previous_visible_line_end.
14352 (set_iterator_to_next_visible_line_start): Renamed from
14353 set_cursor_to_next_visible_line_end.
14354 (set_next_iterator_stop_pos): Renamed from set_next_stop_pos.
14355 (compute_face_at_iterator_position): Renamed from
14356 compute_cursor_face.
14357 (set_iterator_to_next_overlay_string): Renamed from
14358 cursor_to_next_overlay_string.
14359 (get_overlays_at_iterator_position): Renamed from
14360 get_overlays_for_cursor.
14361 (reseat_iterator): Renamed from reseat_cursor.
14362 (setup_iterator_overlays_from_glyph_pos): Renamed from
14363 setup_overlays_from_pos.
14364 (init_string_iterator): Renamed from init_string_cursor.
14365 (get_next_display_element): Renamed from next_display_element.
14366 (move_iterator_forward): Renamed from advance_display_cursor.
427ec082 14367 (get_overlays_at_iterator_position): Allocate overlays vector
26901792
DL
14368 dynamically.
14369
14370 * xdisp.c: display_cursor renamed display_iterator.
14371 * dispextern.h: Ditto.
14372 * dispnew.c: Ditto.
14373
143741997-12-01 Gerd Moellmann <gerd@acm.org>
14375
14376 * window.c (mark_window_cursors_off): Function comment added.
14377 (window_topmost_p, window_rightmost_p): Removed because not used.
14378
143791997-11-30 Gerd Moellmann <gerd@acm.org>
14380
14381 * emacs.c (main): Function prototypes removed in profiling code.
14382 Use safe_bcopy as start of text.
14383
14384 * dispnew.c (update_frame_line): update_line -> update_frame_line;
14385 mirrored_make_current -> make_current.
14386
14387 * xdisp.c: (store_frame_title_char): New function to store a
14388 single character for the frame title with re-allocation of
14389 frame_title_buf.
14390 (init_xdisp): Intialize frame_title_.* variables to null.
14391
14392 * dispnew.c (quit_error_check): Removed.
14393
14394 * eval.c (Fsignal): Call to quit_error_check removed.
14395 * keyboard.c (quit_throw_to_read_char): Ditto.
14396
143971997-11-23 Gerd Moellmann <gerd@acm.org>
14398
14399 * xfaces.c (Fset_face_attribute_internal): Allow nil relief
14400 to mean a zero relief.
14401
26901792
DL
144021997-11-19 Gerd Moellmann <gerd@acm.org>
14403
14404 * dispnew.c (new_glyph_matrix): Increment glyph_matrix_count
14405 unconditionally.
14406 (glyph_matrix_count, glyph_pool_count): Define unconditionally.
14407 (free_glyph_matrix): Decrement glyph_matrix_count unconditionally.
14408 (check_glyph_memory): Define function body unconditionally.
14409
144101997-11-17 Gerd Moellmann <gerd@acm.org>
14411
14412 * dispnew.c (scrolling_window): Alternative version of this
14413 function removed.
14414
144151997-11-16 Gerd Moellmann <gerd@acm.org>
14416
14417 * dispnew.c (make_empty_enabled_row): Make an empty, enabled row
14418 of height CANON_Y_UNIT.
14419 * dispextern.h: Prototype for that function.
427ec082 14420 * xdisp.c (echo_area_display): Don't use display_string to
26901792
DL
14421 produce empty rows. Use make_empty_enabled_row instead.
14422
14423 * dispnew.c (scrolling_window): New version using diff-like
14424 algorithm activated.
427ec082 14425
26901792
DL
144261997-11-15 Gerd Moellmann <gerd@acm.org>
14427
14428 * dispnew.c (clear_current_matrices): Clear matrix of menu_bar_window
14429 (clear_desired_matrices): Ditto.
14430 (adjust_frame_glyphs_for_window_redisplay): Use FRAME_WINDOW_WIDTH
14431 for menu_bar_window.
14432
14433 * alloc.c (mark_object): Mark menu_bar_window of frames.
14434
14435 * xterm.c (XTupdate_window_end): Don't display cursor if
14436 pseudo_window_p.
14437
14438 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Don't
14439 set mini_p.
14440 (update_window): Don't set cursor if pseudo_window_p.
14441
14442 * dispextern.h (WINDOW_WANTS_MODELINE_P): Test pseudo_window_p.
14443
14444 * window.h (struct window): New flag pseudo_window_p set to
14445 1 for windows that aren't really part of the window tree, like
14446 menu_bar_window's of frames.
14447 * window.c (make_window): Initialize it.
14448 (replace_window): Ditto.
14449 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Ditto.
14450
14451 * frame.c (make_frame): Initialize menu_bar_window to nil.
14452
14453 * xterm.c (XTget_display_info): FACE_SHADOW_THICKNESS renamed
14454 FACE_RELIEF
14455
14456 * xfaces.c (copy_face): shadow_thickness -> relief.
14457 (face_eql): Ditto.
14458 (merge_faces): Ditto.
14459 (compute_base_face): Ditto.
14460 (Fset_face_attribute_internal): Ditto.
14461 * dispextern.h (struct face): Ditto.
14462
14463 * dispnew.c (update_frame): Update menu_bar_window of the frame if
14464 it is non-nil.
14465
14466 * xdisp.c (display_menu_bar): Display the menu bar in
14467 f->menu_bar_window if appropriate.
14468 (display_mode_line): Use MATRIX_MODE_LINE_ROW.
14469
14470 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Allocate
14471 dummy window and window matrices for f->menu_bar_window.
14472 (free_glyphs): Free the dummy window and its glyph matrices.
14473
14474 * frame.h (struct frame): New member menu_bar_window.
14475
144761997-11-09 Gerd Moellmann <gerd@acm.org>
14477
14478 * dispnew.c (scrolling_window): New version with diff-like
14479 algorithm.
14480
14481 * xdisp.c (try_window_reusing_current_matrix): If new_start >
14482 old_start always start displaying at start of
14483 first_row_to_display. The previous scheme failed if the last row
14484 was fully visible.
14485
14486 * dispnew.c (update_window): Remove cost calculations. Remove
14487 redundant preempt_count calculations.
14488
14489 * xterm.c (x_clip_to_row): Set clipping for non-text rows
14490 differently.
14491
14492 * dispnew.c (update_window): Use WINDOW_WANTS_MODELINE_P.
14493
427ec082 14494 * window.c (syms_of_window): Functions for marginal areas if
26901792
DL
14495 WITH_MARGINAL_AREAS is defined.
14496
427ec082 14497 * xdisp.c (try_window_reusing_current_matrix): Trace fprintf
26901792
DL
14498 removed.
14499
14500 * dispnew.c (scrolling): Call line_hash_code because hash values
14501 are not set in the frame matrix.
14502
14503 * xdisp.c (try_window_id): Fix scrolling for terminal frames.
14504 (redisplay_window): Check line_ins_del_ok before calling
14505 try_window_id.
14506 (try_window_reusing_current_matrix): Give up for terminal frames
14507 if window is not full width or we cannot insert/delete lines.
14508 (try_window_reusing_current_matrix): Fixed scrolling for terminal
14509 frames.
14510
14511 * alloc.c (mark_glyph_matrix): Bug fix - pass pointer to
14512 Lisp_Object to mark_object.
14513
14514 * xdisp.c (sync_frame_with_window_matrix_rows): Make frame and
14515 window rows have the same glyph pointers.
14516 (try_window_id): Call it.
14517
14518 * alloc.c (mark_glyph_matrix): Function to mark Lisp objects in
14519 a glyph matrix.
14520 (mark_object): Call it.
14521
14522 * xdisp.c (insert_left_trunc_glyphs): Use 0 object in glyphs for
14523 truncations.
14524 (display_line): Ditto.
14525 (display_line): Ditto for DISP_CONTINUATION.
14526 (display_line): Truncation on right: test current_x >
14527 last_visible_x.
14528 (skip_in_display_line_to): Ditto.
14529 (skip_via_matrix): Stop skipping in glyph row at face extending
14530 glyphs or at padding spaces.
14531
14532 * dispnew.c (fill_up_glyph_row_with_spaces): Comment extended.
14533
14534 * xdisp.c (display_line): Use glyph->object == 0 for padding
14535 glyphs.
14536 (redisplay_window): Don't let cursor move over padding
14537 spaces.
14538
14539 * dispextern.h (struct glyph): Fix comment for object.
14540
145411997-11-08 Gerd Moellmann <gerd@acm.org>
14542
14543 * dispextern.h (WINDOW_WANTS_MODELINE_P): Non-zero if a window
14544 has a mode line.
14545 * xdisp.c (redisplay_window): Use it.
14546 (display_mode_line): Check that window wants mode line.
14547
145481997-11-03 Gerd Moellmann <gerd@acm.org>
14549
14550 * xdisp.c (display_menu_bar): Enable menu bar rows.
14551
14552 * xterm.c (x_draw_hollow_cursor): X positions based on text area.
14553 (x_erase_phys_cursor): Ditto.
14554 (x_draw_bar_cursor): Ditto.
14555
145561997-11-02 Gerd Moellmann <gerd@acm.org>
14557
14558 * dispnew.c (update_marginal_area): Update a marginal area.
14559 (update_text_area): Update text area.
14560 (update_window_line): Call both.
14561
14562 * xterm.c (XTclear_end_of_line): Translate coordinates area
14563 dependent.
14564
14565 * dispnew.c (updated_area): Row area being updated in
14566 update_window_line.
14567 (update_window_line): Set it.
14568 (update_marginal_area): Clear to end of line if not in text area.
14569
14570 * window.c (Fset_window_margins): Increment
14571 windows_or_buffer_changed. Adjust glyphs.
14572
14573 * dispextern.h (WINDOW_TEXT_TO_FRAME_PIXEL_X): Convert text
14574 area X coordinates to frame coordinates.
427ec082 14575 (WINDOW_DISPLAY_LEFT_AREA_PIXEL_WIDTH): Width of left marginal area.
26901792
DL
14576 (WINDOW_DISPLAY_RIGHT_AREA_PIXEL_WIDTH): Same for right area.
14577 (WINDOW_DISPLAY_TEXT_AREA_PIXEL_WIDTH): Same for text area.
14578
14579 * xterm.c (draw_glyphs): Use text area width as display width.
14580
14581 * xdisp.c (init_display_info): Subtract widths of marginal areas
14582 from last_visible_x.
14583
14584 * alloc.c (mark_object): Mark objects in glyphs only if they are
14585 overlays. Mark only if current_matrix != 0. Activate the code.
14586
14587 * window.c (Fset_window_margins): Set margins.
14588 (Fwindow_margins): Return margin area widths.
14589 (syms_of_window): Add defsubr's.
14590
14591 * window.h (struct window): left_margin_width, right_margin_width.
14592
14593 * xfns.c (x_set_trunc_area_width): Set truncation pixel width
14594 and cols.
14595
14596 * frame.h (FRAME_TRUNC_COLS): Number of columns occupied by
14597 truncation/overlay arrow area.
14598 (struct frame): trunc_area_pixel_width, and _cols.
14599
14600 * window.c (Fsplit_window): Use it.
14601
14602 * window.c (Fsplit_window): Set cursor vpos to -1 after
14603 splitting.
14604 (Fsplit_window): SUbtract/add FRAME_TRUNC_WIDTH for horizontally
14605 split windows.
14606
14607 * dispnew.c (set_window_cursor_after_update): Accept out
427ec082 14608 of bounds cursor positions.
26901792
DL
14609
14610 * xdisp.c (redisplay_internal): Check that after cursor motion
14611 within line, PT is on same line.
14612
14613 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Don't subtract
14614 FRAME_TRUNC_WIDTH.
14615
14616 * xterm.h (struct x_output): trunc_area_extra.
14617 (CHAR_TO_PIXEL_WIDTH): Add in trunc_area_extra.
14618 (PIXEL_TO_CHAR_WIDTH): Subtract it.
14619 * widget.c (set_frame_size): Set it.
14620 (EmacsFrameSetCharSize): Ditto.
14621 * xfns.c (x_figure_window_size): Ditto.
14622 * xterm.c (x_set_window_size): Ditto.
14623
14624 * dispnew.c (check_matrix_invariants): First try to check window
14625 ends (in #if 0).
14626
14627 * xdisp.c (try_window_reusing_current_matrix): Try window
14628 redisplay with different window start.
14629
146301997-11-01 Gerd Moellmann <gerd@acm.org>
14631
14632 * window.c (make_window): Set window_end_pos/vpos.
14633 (Fsplit_window): Zero last_cursor, window_end_valid.
14634 (Fset_window_buffer): Set window_end_vpos, zero last_cursor.
14635
14636 * dispnew.c (check_matrix_invariants): Check window_end_pos/vpos.
14637
146381997-10-31 Gerd Moellmann <gerd@acm.org>
14639
14640 * window.c (make_window): Initialize last_cursor.
14641 (replace_window): Ditto.
14642
146431997-10-29 Gerd Moellmann <gerd@acm.org>
14644
14645 * window.h: New member last_cursor.
14646 * dispnew.c (direct_output_for_insert): Set it.
14647 (direct_output_forward_char): Ditto.
14648 * xdisp.c (redisplay_internal): Ditto.
14649
146501997-10-28 Gerd Moellmann <gerd@acm.org>
14651
14652 * xdisp.c (redisplay_internal): Optimization 1 change partially
14653 reverted. Check this again later.
14654 (skip_via_matrix): Remove redundent test for
427ec082 14655 MATRIX_ROW_DISPLAYS_TEXT_P.
26901792
DL
14656
146571997-10-27 Gerd Moellmann <gerd@acm.org>
14658
14659 * dispnew.c (update_window_line): Call
14660 after_update_window_line_hook only for interesting constellations.
14661 (free_glyph_matrix): Fix memory leak.
14662
14663 * window.h: Include blocker WINDOW_H_INCLUDED, include
14664 dispextern.h.
14665 (struct window): phys_cursor_glyph as struct glyph. * window.c
14666 (make_window): Initialize it.
427ec082 14667 (replace_window): Ditto.
26901792
DL
14668 * dispnew.c (free_window_matrices): Remove freeing of
14669 phys_cursor_glyph.
14670 (check_matrix_invariants): Renamed from check_current_matrix_...
14671 * xterm.c: All references to phys_cursor_glyph changed.
14672
14673 * dispextern.h (DISPEXTERN_H_INCLUDED: New include blocker.
14674
14675 * xfaces.c: Comment update.
14676
14677 * window.h (struct window): Make phys_cursor_glyph a struct glyph
14678 pointer. Remove phys_cursor_ascent, descent, etc.
14679 * dispnew.c (free_window_matrices): Free it.
14680 * window.c (make_window): Allocate it.
14681 (replace_window): Ditto.
14682 * xterm.c (x_draw_phys_cursor_glyph): Draw it.
14683 (x_display_and_set_cursor): Fill it.
14684 (x_phys_cursor_in_rect_p): Use it.
14685 (x_draw_hollow_cursor): Ditto.
14686 (x_draw_bar_cursor): Ditto.
14687 (x_erase_phys_cursor): Ditto.
14688
14689 * xdisp.c (skip_in_display_line_to): Use SET_INFO_FROM_CURSOR.
14690
14691 * xterm.c (XTget_display_info): Handle 3D facess.
14692 (draw_glyphs): Ditto.
14693
14694 * xdisp.c (Fdump_redisplay_state): Change interactive spec to "p".
14695
14696 * xfaces.c (Fset_face_attribute_internal): New face attribute
14697 shadow-thickness.
14698 (copy_face): Handle shadow_thickness.
14699 (face_eql): Ditto.
14700 (merge_faces): Ditto.
14701 (compute_base_face): Ditto.
14702
14703 * dispextern.h (struct display_cursor): New member start_of_3d_run_p.
14704 (struct display_info): Ditto.
14705 (SET_INFO_FROM_CURSOR): Transfer it to display_info.
14706 * xdisp.c (compute_cursor_face): Set it.
14707 (advance_display_cursor): Clear it.
14708
14709 * xdisp.c (init_string_cursor): Initialize face_id to -1.
14710 (init_string_cursor): Init face_id to zero.
14711
14712 * dispextern.h (struct face): New member shadow_thickness.
14713
427ec082 14714 * xdisp.c (compute_cursor_face): Set limit for text property
26901792
DL
14715 search to 100.
14716
14717 * dispnew.c (update_window_line): Try to resynch with current line
14718 to prevent mode line flickering.
14719
147201997-10-26 Gerd Moellmann <gerd@acm.org>
14721
427ec082 14722 * dispnew.c (set_window_cursor_after_update): React again
26901792
DL
14723 on cursor_in_echo_area >= 0.
14724
14725 * xdisp.c (echo_area_display): Clear desired matrix before
14726 displaying into it.
14727 (display_menu_bar): Clear glyph row instead of hoping it is not
14728 enabled. This is safer.
14729
14730 * dispnew.c (check_current_matrix_invariants): Check only
14731 visible rows.
14732
14733 * xdisp.c (try_window_id): Handle window end setting in case of
14734 display to end of window, but only non-text lines displayed.
14735
14736 * dispnew.c (check_current_matrix_invariants): Check nrows for zero.
14737 (check_current_matrix_invariants): Check used counts.
14738
14739 * Revisiob v114.
14740
14741 * dispnew.c (scrolling): Use hash codes from rows.
14742
14743 * xdisp.c (Fdump_redisplay_state): Dump current matrix.
14744
14745 * dispnew.c (scrolling_window): Invalidate conflicting runs.
14746
147471997-10-25 Gerd Moellmann <gerd@acm.org>
14748
14749 * dispextern.h (struct glyph_matrix): Flag no_scrolling_p.
14750 * dispnew.c (update_window): Use it.
14751 (clear_glyph_matrix): Clear it.
14752 * xdisp.c (try_window_id): Set it.
14753
14754 * dispextern.h (struct glyph_row): New flag ends_at_zv_p.
14755
14756 * xdisp.c (redisplay_internal): Increment glyph positions differently.
14757
14758 * dispextern.h: More comments etc.
14759
147601997-10-24 Gerd Moellmann <gerd@acm.org>
14761
14762 * dispnew.c (set_window_cursor_after_update): Set cursor
14763 for cursor_in_echo_area == 0 to (0, 0).
14764
14765 * dispextern.h (struct glyph_row): New flags continuation_line_p
14766 and displays_text_p.
14767 (MATRIX_ROW_DISPLAYS_TEXT_P): Use displays_text_p.
14768 * xdisp.c (display_line): Set them.
14769 (try_window_id): Move to start of continuation line to find out
14770 continuation_line_width.
14771 (first_unchanged_current_row): Don't retract row if continued,
14772 truncated etc.
14773
14774 * xterm.c: Map X coordinates.
14775
147761997-10-23 Gerd Moellmann <gerd@acm.org>
14777
14778 * dispnew.c (buffer_posn_from_coords): Translate X for right to
14779 left text.
14780
14781 * xdisp.c (display_line): Set right_to_left_p after clearing the row.
14782
14783 * xterm.c (XTclear_end_of_line): Respect right_to_left_p.
14784
f28eba7b 14785 * xdisp.c (try_window_id): Clear desired matrix if not successul.
26901792
DL
14786
14787 * xdisp.c (try_window_id): Call update_window_begin_hook/end_hook.
14788
14789 * dispnew.c (update_window_begin_hook, update_winodw_end_hook):
14790 Set this to functions to be called before/after window updates.
14791 (direct_output_for_insert): Call them.
14792 (update_window): Ditto.
14793 (update_frame): Call update_begin/ update_end for windows.
14794
14795 * xterm.c (XTupdate_window_begin): Called before window updates.
14796 (XTupdate_end): Called after window updates.
14797 (x_initialize): Set hooks to above.
14798
14799 * xdisp.c (init_display_info): Initialize c and len of
14800 display_info.
14801
14802 * xterm.c (x_get_char_font_and_encoding): Bug fix. Don't load
14803 fonts more than once.
14804
148051997-10-22 Gerd Moellmann <gerd@acm.org>
14806
14807 * xdisp.c (display_line): Handle most common case of current_x <
14808 last_visible_x separately.
14809
14810 * dispextern.h (display_element_type): DISP_ELLIPSIS removed.
14811
14812 * dispnew.c (update_window_line): Compare pixel widths of glyphs
14813 so that face extending space doesn't compare equal to normal space
14814 with same face.
14815
14816 * xdisp.c (display_line): Make sure we have a position for
14817 a line end in an otherwise blank line if face is extended.
14818
14819 * dispnew.c (direct_output_for_insert): Increment row end position.
14820
427ec082 14821 * window.c (Fpos_visible_in_window_p): Use old meaning of
26901792
DL
14822 window_end_pos.
14823
14824 * xdisp.c (init_display_cursor_from_glyph_pos): New.
14825
14826 * dispextern.h (MATRIX_ROW_FIRST_POS): Use row start.
14827
14828 * dispnew.c (increment_glyph_row_buffer_positions): Adjust
14829 start and end positions in rows.
14830 (increment_glyph_row_buffer_positions): Stop adjusting at
14831 glyphs with positions <= 0.
14832
14833 * dispextern.h (struct glyph_pos): Structure desribing a text
427ec082 14834 position including position in overlay.
26901792
DL
14835 (struct glyph_row): Use it for start and end positions.
14836 (struct display_cursor): Use it.
14837 * xdisp.c: Use it.
14838 (display_line): Set row start and end positions.
14839
14840 * dispnew.c (copy_row_except_pointers): Use bcopy and struct
14841 assignment.
14842
148431997-10-21 Gerd Moellmann <gerd@acm.org>
14844
14845 * dispnew.c (update_window): Add scrolling_window again. It's
14846 necessary for scroll_step != 0.
14847
14848 * xdisp.c (redisplay_window): Use vmotion for scroll_step
14849 scrolling.
14850
14851 * xdisp.c (last_unchanged_current_row): Use window_end_vpos.
14852
14853 * xterm.c (XTupdate_end): Flush only for messages.
14854
14855 * xdisp.c (try_window_id): Assert last_unchanged_row >=
14856 first_unchanged_row.
14857
14858 * xterm.c (XTupdate_end): Flush if miniwindow.
14859
14860 * dispnew.c (matrix_row_last_pos): New function.
14861 * dispextern.h (MATRIX_ROW_LAST_POS): Call it.
427ec082 14862 Large comment moved to xdisp.c.
26901792
DL
14863
14864 * xdisp.c (redisplay_window): Bug fix: PT set to value > Z.
14865 (skip_via_matrix): Check window_end_valid instead of
14866 display_completed.
14867
14868 * dispnew.c (scroll_glyph_matrix_range): Bug fix.
14869 (update_window): scrolling_window commented out. It has negative
14870 effect most of the time.
14871
14872 * xdisp.c (try_window_id): Correct parameters to
14873 scroll_glyph_matrix_range.
14874
427ec082 14875 * xterm.c (XTupdate_end): XFlush commented out.
26901792
DL
14876
14877 * window.h: Comments for window_end_pos/vpos.
14878
f28eba7b 14879 * xdisp.c (skip_to): Assert current_buffer is the buffer
26901792
DL
14880 of the window in which we are skipping.
14881
14882 * dispnew.c (update_window_line): Optimized clear_end_of_line.
14883
14884 * xterm.c (draw_glyphs): Bug fix. Return window relative X
14885 reached.
14886
148871997-10-20 Gerd Moellmann <gerd@acm.org>
14888
14889 * dispextern.h (MATRIX_ROW_LAST_POS): Go back one glyph if this is
14890 a face extending glyph.
14891
427ec082 14892 * xdisp.c (try_window_id): Check if point will appear.
26901792
DL
14893 (set_cursor_from_row): Set cursor position from a glyph row.
14894
14895 * dispnew.c (update_window_line): Write entire line if hash
14896 codes of lines differ.
14897
14898 * dispextern.h (MATRIX_ROW_EXTENDS_FACE_P): Value is non-zero
14899 if glyph row has an infinite width glyph at its end.
14900
14901 * xdisp.c (last_unchanged_current_row): Respect partially visible
14902 lines when looking for the last row displaying text.
14903 (try_window_id): Handle partially visible lines better.
14904
149051997-10-19 Gerd Moellmann <gerd@acm.org>
14906
14907 * dispnew.c (update_window): Remove unused variable.
14908 (update_window_line): Simplified.
14909
14910 * xterm.c (x_get_char_font_and_encoding): Handle most common
14911 case at the beginning.
14912
14913 * xdisp.c (advance_display_cursor): Dispatch on method and
14914 order if statements by expected call frequency. Fixed unclosed
14915 comment.
14916
14917 * xdisp.c (try_window_id): New implementation.
14918
14919 * dispnew.c (increment_glyph_row_buffer_positions): Capture
14920 rows displaying a line end, only.
14921
149221997-10-18 Gerd Moellmann <gerd@acm.org>
14923
14924 * window.c (Fpos_visible_in_window_p): Remove use of window_end_vpos.
14925
149261997-10-14 Gerd Moellmann <gerd@acm.org>
14927
14928 * xdisp.c (display_line): Mark empty lines not corresponding to
14929 text with position -1.
14930
14931 * xterm.c (x_erase_phys_cursor): Don't bother to erase cursor if
14932 not within window matrix bounds.
14933
14934 * dispextern.h (struct display_cursor): New member REGION_SHOWING_P.
14935 (struct display_info): NGLYPHS_TO_IGNORE removed.
14936 * xdisp.c: References to NGLYPHS_TO_IGNORE removed.
14937 * term.c: Ditto.
14938 * xterm.c: Ditto.
14939
14940 * xdisp.c (init_display_cursor): Set it.
14941 (display_line): Use it to set W->REGION_SHOWING.
14942
14943 * xdisp.c (skip_via_matrix): Check for overlay arrow.
14944
14945 * region-cache.h: functino prototypes with PROTO.
14946
14947 * dispnew.c (buffer_posn_from_coords): Use -1 as skip position.
14948
14949 * xdisp.c (skip_via_matrix): Check for rows that don't contain
14950 a position.
14951
427ec082 14952 * xterm.c (XTmouse_position): Calculate LAST_MOUSE_GLYPH
26901792
DL
14953 rectangle based on minimum character bounds.
14954
f28eba7b 14955 * keyboard.c (make_lispy_event): Mouse clicks; don't do frame
26901792
DL
14956 glyph position calculations.
14957 (make_lispy_movement): Use buffer_posn_from_coords and window
14958 relative coordinates.
14959
14960 * xterm.c (construct_mouse_click): Remove #if 0 case.
14961
14962 * dispextern.h (MATRIX_ROW_BOTTOM_Y): Return bottom pixel y of
14963 given row.
14964
427ec082
SS
14965 * xdisp.c (skip_via_matrix): Skip using current matrix if up to
14966 date.
26901792
DL
14967 (skip_to): Use it.
14968 (redisplay_window): Remove code skipping using current matrix.
14969
149701997-10-13 Gerd Moellmann <gerd@acm.org>
14971
14972 * xdisp.c (redisplay_window): Use available current matrix to
14973 skip faster when only point is moved withing the window.
14974
427ec082 14975 * intervals.c: Include stdio.h.
26901792
DL
14976 (find_interval): Trace to stderr to catch some nasty error
14977 that did not yet occur again with tracing.
14978 (set_point): Ditto.
14979
14980 * dispnew.c (shift_glyph_matrix): Experimental code for handling
14981 cursor positioning on partially visible lines.
14982 (set_window_cursor_after_update): Ditto.
14983
f28eba7b 14984 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): Bug fix.
26901792
DL
14985
14986 * window.h (struct window): start_y removed.
14987
14988 * window.c (make_window): start_y removed.
14989 (replace_window): Ditto.
14990
427ec082 14991 * xdisp.c (last_max_ascent, last_max_descent): Ascent and
26901792
DL
14992 descent values of the last line processed by skip_to.
14993 (redisplay_window): Use them.
14994 (skip_to): Set them.
14995
14996 * dispextern.h (struct display_cursor): New member METHOD.
14997
14998 * xdisp.c: Use function member METHOD.
14999
15000 * xdisp.c (set_next_stop_pos): Determine next position at which to
15001 check for face properties, invisible text properties, and overlays.
15002 (compute_cursor_face): Use it.
15003 (get_overlays_for_cursor): Ditto.
15004 (reseat_cursor): Ditto.
15005 (next_display_element): Ditto.
15006
15007Sun Aug 24 08:50:52 1997 Gerd Moellmann <gerd@acm.org>
15008
15009 * termhooks.h: Some hooks with prototypes.
15010
15011 * term.c: Some hooks with function prototypes.
427ec082 15012
26901792
DL
15013 * xdisp.c (reseat_cursor): Additional argument force_p. Avoid
15014 computing face if possible.
15015
15016 * xdisp.c (next_display_element): Use face from glyph from display
15017 table only if != 0.
15018
15019 * emacs.c: FreeBSD headers for profiling removed.
15020
427ec082
SS
15021 * dispnew.c (direct_output_for_insert): Don't use PT-1 for
15022 display cursor, use DEC_POS instread.
26901792
DL
15023
15024 * xfaces.c (load_font): Use x_load_font to load fonts so that
427ec082 15025 all fonts are in the font table.
26901792
DL
15026 (unload_font): Don't XFreeFont.
15027
15028 * dispnew.c (row_equal_p): Compare ascent, descent and visible
15029 row height.
15030
15031 * xterm.c (draw_glyphs): Use 8-bit functions if possible.
15032 (x_erase_phys_cursor): Clear only visible part of row.
15033 (x_draw_bar_cursor): Set clipping.
15034 (x_draw_hollow_cursor): Ditto.
15035 (x_display_and_set_cursor): Remove clipping.
15036 (expose_window_tree): Take trunc border into account.
15037 (x_phys_cursor_in_rect_p): Test if phys_cursor intersects a rect.
15038 (expose_window): Use it.
15039
15040 * xdisp.c (display_string): Catch case that we are called with
d7d0dac0 15041 current_x already beyond max_x.
26901792
DL
15042 (global): Fix usage of FRAME_WINDOW_P <-> FRAME_WINDOW_REDISPLAY_P.
15043 (init_display_info): Subtract vertical border glyph from
d7d0dac0 15044 last_visible_x.
26901792
DL
15045
15046 * scroll.c (scrolling_window_1): Removed.
15047
15048 * dispnew.c (adjust_frame_glyphs): Split into two functions,
15049 based on redisplay method used.
15050 (adjust_frame_glyphs_for_frame_redisplay): Part for frame
15051 based redisplay.
15052 (adjust_frame_glyphs_for_window_redisplay): Part for purely
15053 window based redisplay.
15054
15055 * frame.h (FRAME_WINDOW_REDISPLAY_P): Changed to not depend
15056 on data structures.
15057
15058 * dispnew.c (adjust_glyph_matrix): Additional parameter W.
15059 Handle own storage for purely window based redisplay.
15060 (allocate_matrices_for_frame_redisplay): Formerly part of
427ec082 15061 allocate_matrices.
26901792
DL
15062 (allocate_matrices_for_window_redisplay): Ditto.
15063
15064 * dispextern.h (struct glyph_matrix): window_top_y,
15065 window_height.
15066
15067 * dispnew.c (allocate_matrices_for_window_redisplay): Detect
15068 and optimize some common cases of window changes.
15069
15070 * emacs.c (main): Remove own profiling code because 0.95 now
15071 has it in.
15072
15073Fri Aug 22 18:46:43 1997 Gerd Moellmann <gerd@acm.org>
15074
d7d0dac0 15075 * xterm.c (XTupdate_end): Draw horizontal border at right position.
26901792
DL
15076 (expose_window): Draw vertical border.
15077 (XTclear_end_of_line): Accept width <= 0 and height <= 0 but
15078 don't do anything.
15079
15080 * xdisp.c (redisplay_internal): Set update_mode_line if paused
15081 for non full width windows only if not window redisplay.
15082
15083 * dispnew.c (update_window_tree): Or paused_p return of called
15084 functions.
15085
15086 * xterm.c (x_display_and_set_cursor): Return if hpos/vpos outside
15087 of window.
15088
15089 * window.c (Fset_window_configuration): adjust_glyphs being
15090 called twice.
15091 (Fset_window_configuration): Set frame garbaged if not all
15092 leaf windows reused.
15093
150941997-08-21 Gerd Moellmann <gerd@acm.org>
15095
15096 * dispnew.c (clear_glyph_matrix): Additional argument specifiying
15097 that rows should really be cleared. Used for current matrices.
15098
d7d0dac0
SM
15099 * dispnew.c (scrolling_window): Bug fix.
15100 (line_dance_hook): Formerly line_dance_fn, take only one parameter.
26901792
DL
15101
15102 * dispextern.h (struct run): Remove current_vpos.
15103
15104 * xterm.c (do_line_dance): Only one parameter.
15105
f28eba7b 15106 * xdisp.c (display_line): Set continued_p.
26901792
DL
15107
15108 * dispextern.h (struct glyph_row): New flag continued_p.
15109 Fix truncated_on_left_p and truncated_on_right_p to be bits.
427ec082 15110 (struct glyph_row):
26901792
DL
15111
15112Thu Aug 21 14:37:34 1997 Gerd Moellmann <gerd@acm.org>
15113
15114 * xdisp.c (skip_vertically_backward): Avoid negative vpos values
15115 when calling skip_to for continued lines.
15116
15117 * dispnew.c (change_frame_size_1): Set frame garbaged.
15118
15119 * xterm.c (expose_window): Check enabled_p of rows.
15120
15121 * xdisp.c (redisplay_internal): Compare line heights before and
15122 now for redisplay optimization 2 (hit).
15123 (display_line): Set this_line_pixel_height.
15124
15125 * xterm.c (x_draw_row_borders): Use FRAME_MODE_LINE_HEIGHT height
15126 value.
15127 (x_clip_to_row): Use MATRIX_ROW_VISIBLE_HEIGHT. Simplified.
15128 (do_line_dance): Simplified and pixel corrected.
15129
15130 * dispnew.c (scrolling_window): Simplified.
15131
15132 * xterm.c (x_draw_3d_border): Inset rectangle by line width.
15133
15134 * dispnew.c (update_window): Add FRAME_MODE_LINE_BORDER_WIDTH
15135 to mode line row->x.
15136
15137Wed Aug 20 11:23:28 1997 Gerd Moellmann <gerd@acm.org>
15138
15139 * xterm.c (x_get_char_font_and_encoding): Don't let fontset
15140 override font of face.
15141 (draw_glyphs): Correct return value.
15142 (XTclear_end_of_line): Compare differently with output cursor
15143 position.
15144 (x_draw_hollow_cursor): 2 parameters, window and row.
15145
15146 * dispnew.c (update_window_line): If rows have different height
15147 or y, write entire line.
15148
f28eba7b 15149 * xdisp.c (compute_line_metrics): Reset max_ascent and max_descent
26901792
DL
15150 of info struct.
15151
427ec082 15152 * xfaces.c (Fset_face_attribute_internal): Don't call
26901792
DL
15153 frame_update_line_height.
15154 (merge_faces): Don't use default font if new font has different
15155 size.
15156
15157Tue Aug 19 14:38:05 1997 Gerd Moellmann <gerd@acm.org>
15158
15159 * xterm.c (x_display_and_set_cursor): Use FONT_WIDTH if width
d7d0dac0 15160 unknown. Some fonts have min_width zero.
26901792 15161 (draw_glyphs): Don't draw underlines to the end of the display
d7d0dac0 15162 line if face is merely extended to that point.
26901792 15163 (draw_glyphs): Don't assume background is filled if
d7d0dac0 15164 just_foreground_p but extending to end of line.
26901792
DL
15165
15166 * xterm.c (XTclear_end_of_line): Clip only to display_height - 1
15167 for partially visible last lines.
15168 (x_clip_to_row): Ditto.
15169 (x_clip_to_row): Clip to display_height-1 if y + line_height >
15170 display_height since line_height is really a line distance.
15171 (x_display_and_set_cursor): If cursor on padding glyph, use
15172 min_bounds pixel width.
15173
15174Mon Aug 18 09:39:18 1997 Gerd Moellmann <gerd@acm.org>
15175
15176 * xterm.c (x_clip_to_row): Height value was 1 too large.
15177 (XTclear_end_of_line): Clip to display area.
15178
15179 * xfns.c (x_figure_window_sizes): Add trunc border width
15180 to frame pixel width.
15181
15182 * xdisp.c (next_display_element): Don't display overlay strings
15183 within invisible text.
427ec082 15184 (skip_vertically_backward): Skip display lines.
26901792
DL
15185
15186Sat Aug 16 13:13:32 1997 Gerd Moellmann <gerd@acm.org>
15187
15188 * xdisp.c (x_consider_frame_titie): Don't pad with blanks.
15189
15190 * xdisp.c (next_display_element): Next invisible
15191 text check position computed differently.
15192
15193 * dispextern.h (struct display_cursor): last_invisible_text_pos
15194 and display_ellipsis_for_invisible_p removed.
15195
15196 * xdisp.c (next_display_element): Set last_invisible_text_pos
15197 to the last position at which invisible text was found. Don't
15198 decrement cursor.pos for newlines and cr with ellipsis. Set
427ec082 15199 dpvec for `...' due to invisible text directly.
26901792
DL
15200 (redisplay_internal): Don't assert that cursor is at PT after
15201 skip_to. It may be in invisible text.
15202
427ec082 15203 * keyboard.c (make_lispy_event): For mouse clicks, use
26901792
DL
15204 x_y_to_hpos_vpos.
15205
427ec082 15206 * xdisp.c (next_display_element): Call get_overlays_for_cursor when
26901792
DL
15207 next_overlay_pos is reached. Use limit cursor.pos + 100 when
15208 checking for invisible text.
15209
15210 * xterm.h (WINDOW_COL_PIXEL_X etc.) Removed.
15211
15212 * dispextern.h (WINDOW_TO_FRAME_HPOS/VPOS): Moved to dispnew.c
15213
d7d0dac0 15214 * xfns.c (x_contour_region): Use pixel coordinates from window
26901792
DL
15215 cursor instead of WINDOW_TO_FRAME_H/VPOS.
15216
15217 * dispextern.h (FRAME_TO_WINDOW_HPOS, FRAME_TO_WINDOW_VPOS):
15218 Removed.
15219
15220 * dispnew.c (frame_to_window_hpos, frame_to_window_vpos): Removed.
15221
15222 * xterm.c (x_y_to_hpos_vpos): Get hpos/vpos from window relative
15223 pixel coordinates.
15224 (note_mouse_highlight): Use it.
15225
15226 * xdisp.c (echo_area_display): Ignore calls for terminal frames
15227 under a window system.
15228
427ec082 15229 * dispnew.c (adjust_frame_glyphs): Call redraw_frame if
26901792 15230 necessary.
427ec082 15231 (update_window_line): Add width of face padding glyph to
26901792
DL
15232 displayed widths of rows.
15233
15234 * xterm.c (x_display_and_set_cursor): Set clipping after
15235 erasing cursor.
427ec082
SS
15236
15237 * window.c (Fset_window_configuration): Free only those
26901792
DL
15238 window matrices not reused.
15239 (get_leaf_windows): Build vector of leaf windows.
15240 Corrupted archive restored from v77.
15241
f28eba7b 15242 * xdisp.c (display_string): Stop at >= last_visible_x if truncating
26901792
DL
15243 like display_line does.
15244
15245 * xdisp.c (display_mode_line): Don't hscroll mode line.
15246
15247 * xterm.c (draw_glyphs): Wrong run_width computed for horiz. split
15248 windows.
15249 (x_scroll_bar_create): #3039 Clear area below scroll bar to remove
15250 garbage between mode lines when splitting windows horiz.
15251
15252 * dispnew.c (direct_output_for_insert): Bug fix.
15253
15254 * dispextern.h (struct display_cursor): New member string_length.
15255
15256 * xdisp.c (next_display_element): Return padding spaces.
f28eba7b 15257 (init_string_cursor): Take precision and field_width
26901792
DL
15258 (display_string): Use string cursor, skip over invisible text.
15259
15260Thu Aug 14 10:41:41 1997 Gerd Moellmann <gerd@acm.org>
15261
15262 * xterm.c (x_clip_to_row): Clip to partially visible lines.
15263 (x_display_and_set_cursor): Call it.
15264 (draw_glyphs): Call it
15265 (draw_bitmap): Call it.
15266
427ec082 15267 * dispnew.c (adjust_frame_glyphs): Optimize frame garbaging.
26901792
DL
15268 (allocate_leaf_matrix): Return flags.
15269 (row_equal_p): Compare enabled_p.
15270
15271 * xterm.c (x_erase_phys_cursor): Set phys_cursor_on_p to 0
15272 for type == -1.
15273
15274 * xterm.c (x_display_and_set_cursor): Bar cursor 1 pixel taller.
427ec082 15275 (draw_glyphs): Clip height one pixel taller.
26901792 15276
427ec082 15277 * dispnew.c (direct_output_for_insert): Give up for hscrolled
26901792
DL
15278 mini window.
15279
f28eba7b 15280 * xdisp.c (display_line): Don't scroll mini prompt.
26901792 15281
427ec082
SS
15282 * xdisp.c (echo_area_display): Call update_single_window if
15283 possible.
26901792
DL
15284
15285 * dispnew.c (update_window_line): Call scrolling_window.
f28eba7b 15286 (scrolling_window): Work on enabled desired lines only.
26901792
DL
15287 (update_single_window): Update a single window like update_frame
15288 does for all windows.
427ec082 15289 (update_window, update_window_tree): Additional argument
26901792
DL
15290 no_scrolling_p.
15291 (update_frame): Pass no_scrolling_p to update_window_tree.
15292 (update_window): Don't call scrolling_window if no_scrolling_p.
15293
15294 * xterm.c (x_erase_phys_cursor): Do nothing if type == -1.
427ec082
SS
15295 Erase under hollow cursor.
15296 (x_display_and_set_cursor): Do nothing if cursor glyph row
26901792
DL
15297 not enabled. Draw bar cursor 1 pixel smaller.
15298
f28eba7b 15299 * dispnew.c (adjust_frame_glyphs): Don't set frame garbaged
26901792
DL
15300 since update will follow soon.
15301
15302 * xdisp.c (echo_area_display): Unitialized variable.
15303
f28eba7b 15304 * xterm.c (draw_bitmap): Previously draw_truncation; draw
26901792
DL
15305 overlay arrow bitmap.
15306
f28eba7b 15307 * xdisp.c (display_line): For truncated lines, consider everything
427ec082 15308 up to the final \n as part of the line for cursor positioning.
26901792 15309
f28eba7b
SM
15310 * xterm.c (draw_truncation): Take FRAME_X_TRUNC_WIDTH into account.
15311 (x_after_update_window_line): Clear trunc marks.
26901792
DL
15312
15313 * xterm.h (FRAME_X_TRUNC_WIDTH).
15314
f28eba7b 15315 * frame.h (FRAME_TRUNC_WIDTH): Width of area at the left margin
26901792
DL
15316 of a window reserved for truncation mark.
15317
427ec082 15318 * dispextern.h: Take FRAME_TRUNC_WIDTH into account.
26901792
DL
15319
15320 * dispnew.c (update_window_line): Call after_update_windwo_line-
427ec082 15321 hook.
26901792
DL
15322
15323 * xdisp.c (display_line): Set overlay_arrow_p in row.
15324
15325 * dispextern.h (struct glyph_row): New flag overlay_arrow_p.
15326
15327 * xterm.c (x_after_update_window_line): Draw truncation marks.
15328
15329 * xdisp.c (display_line): Insert truncation for lines with
15330 current_x > 0.
15331
15332 * xterm.c (x_draw_row_borders): Convert y to frame coords.
15333 Correct y by 1.
15334 (x_display_cursor): Use default font width if width not
427ec082 15335 known.
26901792 15336
f28eba7b 15337 * xdisp.c (echo_area_display): Set row->y.
26901792
DL
15338
15339 * dispnew.c (set_window_cursor_after_update): Don't assume
15340 all rows are enabled.
15341
15342 * xdisp.c (skip_in_display_line_to): Test cursor.position instead
15343 of cursor.pos.
15344 (skip_in_display_line_to): Check cursor.position after call to
15345 next_display_element.
15346
427ec082 15347 * dispextern.h (CURSOR_AT_P): Test if cursor has reached
26901792
DL
15348 buffer position.
15349
15350 * xdisp.c (display_line): Set row->y here.
15351 (skip_in_display_line_to): Test for to_pos after all glyphs
15352 have been added to hpos so that hpos is at the end of all
15353 glyphs for to_pos.
15354 (start_display): Remove assertion.
15355
d7d0dac0 15356 * dispnew.c (direct_output_forward_char): Bug fix, = instead of ==.
26901792
DL
15357 (update_window): Don't set row->y here.
15358
15359 * xdisp.c (next_display_element): Don't translate control chars
15360 from display table entries.
15361
427ec082 15362 * dispnew.c (direct_output_for_insert): Set cursor before
26901792
DL
15363 update end to prevent cursor flickering. Revert changes to
15364 setting cursor.endpos.
15365
15366Wed Aug 13 10:46:12 1997 Gerd Moellmann <gerd@acm.org>
15367
15368 * dispnew.c (direct_output_for_insert): Don't set cursor.endpos
15369 to PT because this prevents multi-byte characters from being
15370 recognized.
15371
427ec082
SS
15372 * xdisp.c (skip_to, display_line): Advance cursor at end of
15373 truncated line.
26901792
DL
15374
15375 * xterm.c (x_draw_3d_borders): Use CapRound. Struct rect
15376 replaced by XRectangle.
15377
d7d0dac0 15378 * dispnew.c (scrolling_window): New method.
26901792
DL
15379
15380 * xterm.c (do_line_dance): New implementation, new method.
427ec082 15381
26901792
DL
15382 * xdisp.c (draw_glyphs): Draw truncation bitmaps. Clip to
15383 visible part of line.
15384
15385 * dispnew.c (update_window_line): Fill inverse video lines
15386 with infinite width space.
15387 (update_window): Handle completely empty matrices.
15388 (set_window_cursor_after_update): Bug fix.
15389
427ec082 15390 * xterm.c (draw_glyphs): Stop drawing at right window end.
26901792
DL
15391
15392 * dispnew.c (update_window_line): Don't ignore spaces, don't
15393 fill with spaces.
15394
15395 * xdisp.c (compute_line_metrics): Stop adding glyph widths with
15396 the first glyph having width 0.
15397
15398 * xterm.c (draw_glyphs): Let a glyph pixel with of 0 denote
427ec082 15399 a glyph that extends to the end of the line.
26901792
DL
15400
15401 * xdisp.c (display_line): Insert one padding glyph
15402
15403 * xdisp.c (skip_in_display_line_to): Don't subtract shift left
15404 amount from info.current_x.
15405 (display_line): Ditto.
15406
15407 * dispnew.c (direct_output_for_insert): Correct use of cursor.x.
15408 (change_frame_size_1): Correct cursor.x if frame gets too small.
15409 (update_window_line): Start at row->x.
15410
15411 * xdisp.c (redisplay_internal): Correct cursor.x (everwhere
15412 in xdisp.c).
15413
15414 * xterm.c (set_output_cursor): Use window relative X/Y.
15415 (global): Use window relative output cursor x/y.
15416 (draw_glyphs): Remove y param. Pass window relative x/y.
15417
15418 * dispnew.c (update_window): Start rows at start_y.
15419 (update_window): Don't try scrolling because it wouldn't work
15420 with variable height lines, anyway.
15421
15422 * dispextern.h (struct glyph_row): Remove shift_left_by,
15423 add x.
15424
15425 * window.h: (struct window): New member start_y.
15426
15427 * window.c (replace_window): Initialize start_y.
15428 (make_window): Ditto.
15429
15430Tue Aug 12 14:53:04 1997 Gerd Moellmann <gerd@acm.org>
15431
15432 * xterm.c (draw_glyphs): Clip rows that would paint over
427ec082 15433 the mode line.
26901792 15434
427ec082
SS
15435 * dispnew.c (update_window): Take mode line border into
15436 account.
26901792
DL
15437
15438 * xterm.h (FRAME_MODE_LINE_BORDER_WIDTH): Number of pixels
427ec082 15439 of border around mode line.
26901792
DL
15440
15441 * xterm.c (x_draw_row_borders): Bug fix.
15442 (x_erase_phys_cursor): Set pyhs_cursor.x/y before calling
15443 drawing functions.
15444
15445 * xterm.c (x_draw_row_border): Experimental; draw 3d borders
427ec082 15446 around modeline instead of inverting it.
26901792 15447
427ec082 15448 * xterm.c (glyph_to_pixel_coords): Use current matrix.
26901792
DL
15449
15450 * dispnew.c (buffer_posn_from_coords): Use SKIP_TO. Now takes
15451 window relative pixel coordinates as arguments.
15452
15453 * keyboard.c (make_lispy_event): Use BUFFER_POSN_FROM_COORDS
15454 with window relative pixel coordinates. Use GLYPH_TO_PIXEL_-
15455 COORDS mit new arguments.
15456
15457Mon Aug 11 12:32:34 1997 Gerd Moellmann <gerd@acm.org>
15458
15459 * xdisp.c (start_display): Use SKIP_TO instead of SKIP_IN-
427ec082 15460 DISPLAY_LINE.
26901792
DL
15461
15462 * keyboard.c (make_lispy_event): WINDOW_FROM_COORDINATES with
15463 pixel coords.
15464 (make_lispy_movement): Same.
15465
15466 * xterm.c (note_mouse_highlight): Use WINDOW_FROM_COORDINATES
15467 with new parameter meaning.
15468
15469 * window.c (Fcoordinates_in_window_p): Convert Lisp params
15470 from canon units to pixels.
15471 (coordinates_in_window): Pixel based.
15472 (Fcoordinates_in_window_p): Convert result pixel values back
15473 to canonical units.
15474
15475 * window.h: phys_cursor_ascent + descent instead of height.
15476
15477 * xterm.c (XTget_char_info): Use per char metrics for multi-byte
d7d0dac0 15478 chars with charset width 1.
26901792
DL
15479
15480 * dispnew.c (direct_output_for_insert): Set updated_row.
15481
15482Sat Aug 9 12:11:44 1997 Gerd Moellmann <gerd@acm.org>
15483
15484 * dispextern.h (struct glyph): Padding flag removed.
15485
15486Tue Aug 5 09:59:08 1997 Gerd Moellmann <gerd@acm.org>
15487
15488 * sysdep.c (reset_sys_modes): cursor_to with 4 params.
15489
15490 * keyboard.c (interrupt_signal): Cursor_to with 4 params.
15491
15492 * dispnew.c (update_window_line): Use pixels.
15493
15494 * xdisp.c (compute_line_metrics): Correct pixel_width by
15495 shift_left_by.
15496
15497 * dispextern.h (struct glyph_row): FIRST_SHIFTED_LEFT_GLYPH
427ec082 15498 removed. Remove references to it everywhere. Reverse_p in
26901792
DL
15499 glyph_row -> right_to_left_p. Change references to it.
15500
15501Mon Aug 4 18:09:27 1997 Gerd Moellmann <gerd@acm.org>
15502
15503 * dispnew.c (direct_output_for_insert): Use INSERT_GLYPHS.
15504
15505 * xterm.c (XTinsert_glyphs): Implement it.
15506
15507 * term.c (insert_glyphs): UPDATING_FRAME may be NULL in case
15508 of a call from DIRECT_OUTPUT_FOR_INSERT.
15509
15510 * window.h (struct cursor_pos): Keeps both matrix positions
15511 and pixel positions.
15512 (struct window): Use it.
15513
15514 * dispnew.c (direct_output_for_insert): New version.
15515
15516 * xdisp.c (redisplay_internal): Don't do anything if it has
15517 already be done directly.
15518
15519 * keyboard.c (command_loop_1): Call DIRECT_OUTPUT_FOR_INSERT
15520 for any character.
15521
15522Thu Jul 31 15:39:10 1997 Gerd Moellmann <gerd@acm.org>
15523
15524 * xdisp.c (echo_area_display): Use new DISPLAY_STRING.
15525
15526Wed Jul 30 12:18:03 1997 Gerd Moellmann <gerd@acm.org>
15527
15528 * dispextern.h (struct glyph_row): MAX_ASCENT, MAX_DESCENT.
15529 (struct glyph): ASCENT, DESCENT.
15530 (MATRIX_ROW_PIXEL_HEIGHT): Pixel height of row.
15531 (GLYPH_PIXEL_HEIGHT): Pixel height of glyph.
15532
15533 * xterm.c (XTget_display_info): Correct tab computation.
15534
15535 * term.c (get_display_info): Correct tab computation.
15536
15537 * dispextern.h (struct display_cursor): WHAT_FOUND, SOURCE_OBJECT.
15538 Renamed from CHAR_CURSOR.
15539
15540Tue Jul 29 12:52:40 1997 Gerd Moellmann <gerd@acm.org>
15541
15542 * xdisp.c (display_text_line): Mostly pixel oriented.
15543
15544 * dispextern.h (struct glyph): BOX_WIDTH -> PIXEL_WIDTH.
15545
15546 * term.c (append_intermediate_glyph): Generate padding glyphs.
15547
15548 * xdisp.c (display_text_line): More into final direction.
15549
15550 * xterm.c (XTget_char_info): Use WHAT field of CHAR_INFO.
15551 (XTget_char_info): Use tabs as multiples of spaces.
15552
15553 * term.c (get_char_info): Use WHAT field of CHAR_INFO.
15554 Use tabs as multiples of spaces.
15555
15556 * dispextern.h (struct char_info ): WHAT field.
15557
15558 * term.c (encode_terminal_code): Don't use GLYPH_CHAR, use
d7d0dac0 15559 FAST_GLYPH_CHAR instead because GLYPH_CHAR won't remove faces.
26901792
DL
15560
15561Mon Jul 28 14:23:06 1997 Gerd Moellmann <gerd@acm.org>
15562
15563 * dispnew.c (init_char_info): Correct TAB_WIDTH to a reasonable
15564 value.
15565 (init_char_info): Initialize with glyph row.
15566
15567 * term.c (get_char_info): Check WANT_ELLIPSIS_P.
15568
15569 * xterm.c (XTget_char_info): Check WANT_ELLIPSIS_P.
15570
15571 * dispextern.h (struct char_info ): GLYPH_ROW for intermediate
15572 glyphs.
15573
15574 * dispnew.c (init_char_info): Init GLYPH_ROW to NULL. CHAR_CURSOR
15575 moved to xdisp.c.
15576
15577 * xdisp.c (display_text_line): Use CHAR_CURSOR.
15578
15579 * xterm.c (x_append_intermediate_glyph): Intermediate glyph
15580 generation.
15581 (XTget_char_info): Ditto.
15582
15583 * term.c (get_char_info): Intermediate glyph generation.
15584 (append_intermediate_glyph): Ditto.
15585
15586Sun Jul 27 18:57:24 1997 Gerd Moellmann <gerd@acm.org>
15587
427ec082 15588 * dispnew.c (compute_char_cursor_face): Compute the face for a
26901792
DL
15589 CHAR_CURSOR.
15590 (init_char_cursor): Initialize a CHAR_CURSOR.
15591 (get_char_and_advance): Get next character to display.
15592
15593 * dispextern.h (struct char_cursor): Cursor for iterating over
15594 display text of CURRENT_BUFFER.
15595
15596Sat Jul 26 13:33:03 1997 Gerd Moellmann <gerd@acm.org>
15597
15598 * term.c (get_char_info): Set MAX_PIXEL_WIDTH in CHAR_INFO.
15599
15600 * dispextern.h (struct char_info ): Use LISP_CHAR_TABLE for DP.
15601 New member MAX_PIXEL_HEIGHT.
15602
15603 * xterm.c (x_per_char_metric): Get per character metrics.
15604 (XTget_char_info): More cases covered.
15605
15606 * term.c (get_char_and_info): Get next character and character
15607 display information.
15608 (get_char_info): Get character display information.
15609
15610 * dispextern.h: Character display information.
15611
427ec082 15612 * xterm.c (x_get_char_font_and_encoding): Get font and
26901792
DL
15613 encode character.
15614 (XTget_char_info): Get display information about a character.
15615
15616Wed Jul 23 16:50:18 1997 Gerd Moellmann <gerd@acm.org>
15617
15618 * dispextern.h (WINDOW_DISPLAY_MODE_LINE_HEIGHT): Height is
15619 zero if window is mini-window.
15620
15621 * xdisp.c: Include xterm.h or w32term.h for FRAME_LINE_HEIGHT.
15622 (try_window): DISPLAY_TEXT_LINE as long as Y < DISPLAY_HEIGHT.
15623
427ec082 15624 * dispnew.c (assign_row): Assign row pixel height.
26901792
DL
15625 (clear_glyph_row): Clear pixel height.
15626 (update_window): Use PIXEL_HEIGHT.
15627
15628 * xdisp.c (display_string): Set row pixel height temporarily.
15629 (display_text_line): Ditto.
15630
427ec082 15631 * dispextern.h (GLYPH_PIXEL_WIDTH):
26901792
DL
15632 (GLYPH_PIXEL_HEIGHT): Get glyph pixel dimension.
15633
427ec082 15634 * frame.h (FRAME_DEFAULT_PIXEL_LINE_HEIGHT): Get height of
26901792
DL
15635 line in default font.
15636 (FRAME_DEFAULT_GLYPH_PIXEL_WIDTH): Get width of character
15637 in default font.
15638 (FRAME_MODE_LINE_PIXEL_HEIGHT): Get height of mode line.
15639
15640 * xterm.h (FRAME_MODE_LINE_HEIGHT): Return height of mode line
15641 in pixels.
15642
15643 * dispnew.c (allocate_leaf_matrix): Use window pixel macros.
15644
15645 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH):
427ec082
SS
15646 (WINDOW_DISPLAY_PIXEL_HEIGHT):
15647 (WINDOW_DISPLAY_MODE_LINE_HEIGHT):
15648 (WINDOW_DISPLAY_PIXEL_HEIGHT_WITHOUT_MODE_LINE):
15649 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X):
15650 (WINDOW_DISPLAY_RIGHT_EDGE_PIXEL_X):
15651 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y):
26901792
DL
15652 (WINDOW_DISPLAY_BOTTOM_EDGE_PIXEL_Y): Macros to get various
15653 pixel values related to windows.
15654
15655Mon Jul 21 12:22:02 1997 Gerd Moellmann <gerd@acm.org>
15656
15657 * xterm.c (XTflash): Flash last line of frame.
15658
15659 * dispextern.h (cursor_in_echo_area): Extern declaration.
15660
15661 * xterm.c (dumpglyphs): 8-bit version to test if my Xserver
d7d0dac0 15662 freezes stem from 16-bit functions.
26901792
DL
15663
15664 * xterm.c (x_display_and_set_cursor): Don't display hollow
15665 cursor in mini windows.
15666
15667 * window.c (replace_window): Initialize PHYS_CURSOR_TYPE.
15668 (make_window): Ditto.
15669
15670 * xterm.c (x_erase_phys_cursor): Erase cursor image.
15671 (x_display_and_set_cursor): Merged version of X_DISPLAY_BOX_CURSOR
15672 and X_DISPLAY_BAR_CURSOR.
15673 (x_display_cursor): Use it.
15674 (x_update_window_cursor): Use it.
15675
15676 * xdisp.c (display_text_line): Set cursor for window even if not
d7d0dac0 15677 selected.
26901792
DL
15678
15679 * xterm.c (x_display_bar_cursor): Use HPOS and VPOS instead
15680 of X and Y to denote matrix positions.
15681 (x_display_cursor): Ditto.
15682
15683 * dispnew.c (scrolling_window): Scrolling for windows.
15684
15685Wed Jul 16 13:37:51 1997 Gerd Moellmann <gerd@acm.org>
15686
15687 * dispnew.c (build_frame_matrix): Work on windows with update
15688 flag set.
15689 (build_frame_matrix_from_window_tree): Ditto.
15690 (build_frame_matrix_from_leaf_window): Ditto.
15691
15692 * xdisp.c (echo_area_display): Set MUST_BE_UPDATED_P instead of
15693 building frame matrix.
427ec082 15694 (redisplay_internal): Set window update flags instead of
26901792
DL
15695 building frame matrix.
15696
15697 * minibuf.c (read_minibuf): Set MUST_BE_UPDATED_P instead of
15698 building frame matrix.
15699
15700 * window.c (make_window): Initialize new members.
15701 (replace_window): Ditto.
15702
15703 * xfns.c (Fx_create_frame): Don't set PHYS_CURSOR_X to -1.
15704 I don't believe this is really necessary.
15705
15706 * dispnew.c (build_frame_matrix_from_leaf_window): Determine
427ec082 15707 border glyph once.
26901792
DL
15708
15709Tue Jul 15 13:58:33 1997 Gerd Moellmann <gerd@acm.org>
15710
427ec082 15711 * window.c (mark_window_cursors_off): Mark all cursors in
26901792
DL
15712 window tree off.
15713
427ec082 15714 * xterm.c (x_display_box_cursor): Window paraemter. Use
26901792
DL
15715 window matrix.
15716 (glyph_to_pixel_pos): Convert matrix pos -> pixels.
15717 (pixel_to_glyph_pos): Convert pixel pos -> matrix pos.
15718 (x_update_cursor): Work on windows.
15719 (x_display_bar_cursor): Ditto.
15720 (x_draw_single_glyph): Ditto.
15721
15722 * xterm.h: Prototype for X_DISPLAY_CURSOR.
15723
15724 * xterm.c (XTcursor_to): Void return type. Test for
d7d0dac0 15725 UPDATED_WINDOW. Call x_display_cursor with window.
26901792 15726 (x_display_cursor): Void return type. Window instead of frame
d7d0dac0 15727 parameter.
26901792 15728
d7d0dac0 15729 * window.h (WINDOW_RIGHTMOST_P, WINDOW_TOPMOST_P): Use functions below.
26901792
DL
15730
15731 * window.c (window_rightmost_p, window_topmost_p): Based on
15732 window tree.
15733
15734 * dispnew.c (adjust_frame_message_buffer): Allocate with
d7d0dac0 15735 FRAME_MESSAGE_BUF_SIZE.
26901792
DL
15736
15737 * window.h: PHYS_CURSOR_.* added.
15738
15739 * frame.h (struct frame): Cursor information removed.
15740
15741 * frame.h (FRAME_SCROLL_BAR_WIDTH): Removed because unused.
15742 (FRAME_WINDOW_WIDTH_ARG): Don't add scroll bar width.
15743
15744 * window.h (WINDOW_LEFT_MARGIN): Remove FRAME_LEFT_SCROLL_BAR.
15745
15746 * window.c (window_internal_width): Scroll bars no longer
15747 part of window.
15748
d7d0dac0 15749 * xterm.c (XTclear_end_of_line): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
26901792 15750
d7d0dac0 15751 * xfns.c (x_set_scroll_bar_width): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
26901792
DL
15752
15753 * xdisp.c (echo_area_display): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
15754 (redisplay_internal): Ditto.
15755 (redisplay_window): Ditto.
15756 (redisplay_window): Ditto.
15757 (display_text_line): Ditto.
15758 (display_mode_line): Ditto.
15759
15760 * minibuf.c (read_minibuf): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
15761
15762 * dispnew.c (set_cursor_to): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
15763 (direct_output_for_insert): Ditto.
15764 (direct_output_forward_char): Ditto.
15765 (update_frame_1): Ditto.
15766
15767Mon Jul 14 12:30:03 1997 Gerd Moellmann <gerd@acm.org>
15768
15769 * dispnew.c (updated_window): Set by UPDATE_WINDOW to the window
d7d0dac0 15770 being updated.
26901792
DL
15771 (update_window): Set and clear it.
15772
15773 * dispnew.c (update_window_line, update_window, scrolling_window):
15774 First versions.
15775
15776 * dispnew.c (build_frame_matrix_from_leaf_window): Add vertical
15777 bar for window borders.
15778 (fill_up_glyph_row_area_with_spaces): Fill an area of a row
15779 with spaces.
15780 (fill_up_glyph_row_with_spaces): Call above function.
15781
15782 * xdisp.c (display_text_line): Don't add vertical bar for
15783 window borders.
15784 (display_string): Ditto.
15785
15786 * window.c (make_window): Init CURSOR_VPOS/HPOS.
15787 (replace_window): Ditto.
15788
15789 * xterm.c (XTwrite_glyphs): Use selected window cursor position.
15790
15791 * xfns.c (Fx_contour_region): Use selected window cursor position.
15792 (Fx_uncontour_region): Ditto.
15793 (Fx_select_region): Ditto.
15794
15795 * frame.c (make_frame): Remove CURSOR_X/Y.
15796
15797 * xdisp.c (redisplay_internal): Use window cursor position.
15798
15799 * dispnew.c (update_frame_1): Use cursor position of selected
15800 window.
15801 (change_frame_size_1): Ditto.
15802
15803 * xterm.c (XTupdate_begin): Set CURS_X/Y from selected window.
15804 (XTwrite_glyphs): Use cursor position of selected window.
15805
d7d0dac0 15806 * xfns.c (x_set_scroll_bar_width): Set cursor pos of selected window.
26901792
DL
15807
15808 * dispnew.c (set_cursor_to): Set window cursor position.
15809 (direct_output_for_insert): Use window cursor position.
15810 (init_display): Don't use frame cursor position.
15811
15812 * window.h: CURSOR_VPOS/HPOS added.
15813
15814 * frame.h (struct frame): CURSOR_X/Y removed.
15815 (FRAME_CURSOR_X): Removed.
15816 (FRAME_CURSOR_Y): Ditto.
15817
15818 * dispnew.c (direct_output_for_insert): LAST_POINT_X removed.
15819 (direct_output_forward_char): Ditto.
15820
d7d0dac0 15821 * xdisp.c (redisplay_internal): LAST_POINT_X and LAST_POINT_Y removed.
26901792
DL
15822
15823 * window.c (make_window): LAST_POINT_X and LAST_POINT_Y removed.
15824
15825 * window.h: LAST_POINT_X and LAST_POINT_Y removed.
15826
15827Sun Jul 13 14:18:24 1997 Gerd Moellmann <gerd@acm.org>
15828
15829 * xdisp.c: Bug fixes using SET_CURSOR with HPOS 0 instead
15830 of FRAME_LEFT_SCROLL_BAR_WIDTH.
15831
15832 * dispextern.h: Changed function names.
15833
15834 * dispnew.c (scrolling): Don't call SCROLLING_1 if WINDOW_SIZE
15835 < 2.
15836 (clear_window_matrices): Formerly two functions for desired
15837 and current matrix.
15838 (update_frame_1): Call CLEAR_DESIRED_MATRICES.
15839 (update_frame): Return return value from UPDATE_FRAME_1.
15840
15841Sat Jul 12 12:58:48 1997 Gerd Moellmann <gerd@acm.org>
15842
15843 * xdisp.c (try_window): Set WINDOW_END_VPOS with window relative
15844 LAST_TEXT_VPOS.
15845
15846 * frame.c (set_menu_bar_lines): Adjust matrices.
15847
15848 * dispnew.c (set_cursor_to): Set cursor position.
15849
15850 * minibuf.c (read_minibuf): Build frame matrix.
15851
15852 * xdisp.c (this_line_start_hpos): Renamed to
d7d0dac0
SM
15853 THIS_LINE_START_WINDOW_HPOS to make it clear that this is window
15854 relative.
26901792
DL
15855 (this_line_vpos): Renamed to THIS_LINE_WINDOW_VPOS for the same
15856 reason.
15857
427ec082 15858 * dispnew.c (build_frame_matrix): Don't clear rows of the
26901792
DL
15859 menu bar.
15860 (clear_window_records): Clear window rows.
15861 (clear_frame_records): Clear window and frame rows.
15862 (clear_glyph_matrix): Set all rows of a matrix to empty.
15863
d7d0dac0
SM
15864 * xdisp.c (echo_area_display): Parameter UPDATE_FRAME_P.
15865 Update frame if set.
26901792
DL
15866 (message2_nolog): Pass 1 to ECHO_AREA_DISPLAY. UPDATE_FRAME
15867 removed.
15868 (redisplay_internal): Pass 0 to ECHO_AREA_DISPLAY.
15869 (redisplay_internal): Build frame matrix before UPDATE_FRAME.
15870
15871 * dispnew.c (assign_row): Assign one glyph row to another.
15872 (mirrored_make_current): Use it.
15873 (mirror_make_current): Use it.
15874 (update_line): Rely on MIRRORED_MAKE_CURRENT to set flags and
15875 used counters for the current glyph row.
427ec082 15876
26901792
DL
15877
15878Fri Jul 11 13:16:50 1997 Gerd Moellmann <gerd@acm.org>
15879
15880 * lisp.h: Prototype for SCAN_BUFFER.
15881
15882 * xdisp.c (redisplay_windows): Simplified.
15883
15884 * dispnew.c (window_to_frame_vpos): Convert window to frame vpos
15885 with debug checks.
15886 (window_to_frame_hpos): Convert window to frame hpos with checks.
15887 (frame_to_window_vpos): Convert frame to window vpos with checks.
15888 (frame_to_window_hpos): Convert frame to window hpos with checks.
15889
15890 * dispextern.h: PRESERVE_OTHER_COLUMNS removed.
15891
15892 * dispnew.c: PRESERVE_OTHER_COLUMNS removed.
15893
15894 * xdisp.c (redisplay_internal): Another instance of
15895 DISPLAY_TEXT_LINE with window relative VPOS.
15896 (redisplay_internal): Remove PRESERVE_OTHER_COLUMNS.
15897
15898 * dispnew.c (init_desired_glyphs): Do it on window matrices,
15899 only.
15900
15901 * xdisp.c (try_window_id): Use CANCEL_WINDOW_LINE.
15902 (redisplay_internal): Ditto.
15903
15904 * dispnew.c (cancel_window_line): Use window matrix. Changed
15905 name to CANCEL_WINDOW_LINE.
15906
15907 * xdisp.c (try_window_id): Use DISPLAY_TEXT_LINE with window
15908 relative VPOS.
15909
427ec082
SS
15910 * dispextern.h (WINDOW_TO_FRAME_VPOS): Convert window vpos
15911 to frame vpos.
26901792
DL
15912 (WINDOW_TO_FRAME_HPOS): Convert window hpos to frame hpos.
15913 (FRAME_TO_WINDOW_VPOS): Convert frame vpos to window vpos.
15914 (FRAME_TO_WINDOW_HPOS): Convert frame hpos to window hpos.
15915
15916 * xdisp.c (try_window_id): Use ADJUST_WINDOW_CHARSTARTS with
15917 window relative VPOS.
15918 (redisplay_internal): Use ADJUST_WINDOW_CHARSTARTS with window
15919 relative VPOS.
15920
15921 * dispnew.c (adjust_window_charstarts): Use INCREMENT_GLYPH_-
15922 MATRIX_BUFFER_POSITIONS.
15923
15924 * xdisp.c (try_window_id): Use SCROLL_FULL_WIDTH_WINDOW.
15925
15926 * dispextern.h: Prototype for SCROLL_FULL_WIDTH_WINDOW.
15927
427ec082 15928 * dispnew.c (scroll_frame_lines): Make it work on window
26901792
DL
15929 matrix. Change name to scroll_full_width_window.
15930
15931 * xdisp.c (message2_nolog): Don't fwrite NULL message If
d7d0dac0 15932 NONINTERACTIVE.
26901792
DL
15933
15934Mon Jul 7 14:44:38 1997 Gerd Moellmann <gerd@acm.org>
15935
15936 * dispnew.c (init_desired_glyphs): Clear both frame matrix
427ec082 15937 and window matrices.
26901792
DL
15938 (adjust_window_charstarts): Use window matrix.
15939 (cancel_my_columns): Use window matrix.
15940 (direct_output_for_insert): Use window matrix, only.
15941
15942 * xdisp.c (display_glyphs): Extracted code from DISPLAY_STRING.
15943 (display_string): Call display_glyphs.
15944 (display_menu_bar_string): Display a string in a menu bar line.
15945 (display_menu_bar): Use DISPLAY_MENU_BAR_STRING.
15946 (display_text_line): Use window matrix.
15947 (try_window): Use window relative positions.
15948
15949Sun Jul 6 17:02:26 1997 Gerd Moellmann <gerd@acm.org>
15950
15951 * dispnew.c (adjust_frame_glyphs): Allocate window matrices from
d7d0dac0 15952 (0, 0).
26901792 15953 (allocate_leaf_matrix): Add FRAME_MENU_BAR_LINES to the height of
d7d0dac0 15954 top-most windows.
26901792
DL
15955
15956 * window.h (WINDOW_TOPMOST_P): Added.
15957
15958 * xdisp.c (echo_area_display): Use PREPARE_DESIRED_ROW.
15959 (redisplay_window): Ditto.
15960 (display_text_line): Ditto.
15961 (display_menu_bar): Ditto.
15962 (display_mode_line): Ditto.
15963 (display_mode_line): Use window matrix.
15964 (display_string): Use window matrix.
15965 (display_mode_element): Ditto.
15966 (echo_area_display): Don't display if frame has no pools yet.
15967 (echo_area_display): Work with window matrix for mini window.
15968 (redisplay_window): Use window marix for mini window.
15969 (display_text_line): Assume HPOS and VPOS are window relative and
d7d0dac0 15970 use that for DISPLAY_STRING.
26901792
DL
15971
15972 * dispextern.h: Prototype for prepare_desired_row.
15973
d7d0dac0 15974 * dispnew.c (prepare_desired_row): Replacement for GET_DISPLAY_LINE.
26901792
DL
15975
15976 * dispnew.c (adjust_window_charstarts): Always allocate window
15977 matrices.
15978 (clear_glyph_row): Only reset used counters and flags.
15979
15980Sat Jul 5 14:55:44 1997 Gerd Moellmann <gerd@acm.org>
15981
15982 * dispnew.c (scroll_frame_lines): Don't assume first scolled
427ec082 15983 line is non-empty.
26901792
DL
15984 (realloc_glyph_pool): Don't add 1 to the pool size.
15985 (adjust_glyph_matrix): Don't add 1 to pointers to glyph areas.
15986
15987 * dispnew.c (line_hash_code): Don't use null-glyph end marker.
15988 (line_draw_cost): Ditto.
15989 (update_line): Ditto.
15990 (update_line): Use SPACE_GLYPH.
15991 (count_blanks): Additional parameter LEN.
15992
15993 * xdisp.c (display_text_line): Use SPACE_GLYPH.
15994 (display_text_line): Don't add null-glyph end marker.
15995 (display_string): Use SPACE_GLYPH.
15996 (display_string): Don't use null-glyph end marker.
15997
15998 * term.c (clear_end_of_line): Use SPACE_GLYPH.
15999
16000 * dispnew.c (clear_glyph_row): Don't use null-glyph end markers.
16001 (fill_up_glyph_row_with_spaces): Ditto.
16002 (preserve_other_columns): Add SPACE_GLYPH at then end of desired
16003 rows, instead of null-glyphs.
16004 (direct_output_for_insert): Don't add null-glyph end marker.
16005
16006 * scroll.c (do_direct_scrolling): Change algorithm to construct
d7d0dac0 16007 vector of lines assigned. Call MIRRORED_LINE_DANCE:
26901792
DL
16008 (do_scrolling): Ditto.
16009
16010 * dispnew.c (mirror_line_dance): Mirror line assignments in a
d7d0dac0 16011 frame matrix in window matrices.
26901792 16012 (mirrored_line_dance): Do line assignments during scrolling.
d7d0dac0 16013 Maybe do corresponding assignments in window matrices.
26901792 16014 (check_window_matrix_pointers): Check that window rows and frame
d7d0dac0 16015 rows agree about glyph pointers.
26901792
DL
16016 (check_matrix_pointers): Ditto.
16017 (mirrored_make_current): Make a row of a desired matrix current;
d7d0dac0 16018 maybe mirror the operation in window matrices.
26901792 16019 (mirror_make_current): Make window desired matrix row current when
d7d0dac0 16020 frame matrix row was made current.
26901792
DL
16021
16022Fri Jul 4 13:27:46 1997 Gerd Moellmann <gerd@acm.org>
16023
16024 * dispnew.c (check_matrix_pointer_lossage): Check against
16025 pointer lossage in matrices.
16026 (get_glyph_matrix_row): Removed.
16027
16028 * scroll.c (do_scrolling): Simplified.
16029 (do_direct_scrolling): Simplified.
16030 (scrolling_1): Pass CURRENT_MATRIX instead of FRAME to
d7d0dac0 16031 DO_.*SCROLLING.
427ec082 16032
26901792
DL
16033
16034 * dispnew.c (ins_del_glyph_rows): Insert/delete rows in a matrix.
16035 (rotate_vector): Removed.
16036 (rotate_pointers): Removed.
16037 (scroll_frame_lines): Simplified.
16038
16039Thu Jul 3 13:54:21 1997 Gerd Moellmann <gerd@acm.org>
16040
16041 * dispextern.h (MATRIX_ROW_SWAP_CONTENTS): Removed.
16042
16043 * dispnew.c (increment_glyph_matrix_buffer_positions): Does
16044 what the name says.
16045 (clear_glyph_row): Make a glyph row structure empty.
16046 (make_matrix_row_current): Make a glyph row current.
16047 (make_window_matrix_row_current): Perform analogous row swaps
16048 for window matrices.
16049 (update_line): Call make_matrix_row_current.
16050
16051Wed Jul 2 13:43:35 1997 Gerd Moellmann <gerd@acm.org>
16052
16053 * dispextern.h (SET_MATRIX_ROW_ENABLED_P): Better macro name.
16054 (SET_MATRIX_ROW_INVERSE_P): Better name and HIGHLIGHT_P ->
16055 INVERSE_P.
16056 (MATRIX_ROW_INVERSE_P): Former MATRIX_ROW_HIGHLIGHT_P.
16057 (struct glyph_row): HIGHLIGHT_P -> INVERSE_P
16058
16059 * all files: use above new names.
16060
16061 * dispnew.c (scroll_frame_lines): Simplified. Use
d7d0dac0 16062 SCROLL_GLYPH_MATRIX.
26901792 16063 (make_glyph_row_empty): Mark a glyph row empty.
427ec082 16064 (increment_glyph_row_buffer_positions): Increment
26901792
DL
16065 buffer positions in a glyph row.
16066 (increment_glyph_matrix_buffer_positions): Increment buffer
16067 positions in a range of rows.
16068 (scroll_glyph_matrix): Scroll a glyph matrix.
16069 (swap_glyphs_in_rows): Swap glyphs between rows.
16070 (swap_glyph_pointers): Swap pointers between rows.
16071 (glyph_row_slice_p): Return 1 if one row is a slice of another.
16072 (init_display): Initialize SPACE_GLYPH.
16073 (fill_up_glyph_row_areas_with_spaces): Fill up areas with
427ec082 16074 spaces.
26901792
DL
16075
16076Tue Jul 1 13:49:55 1997 Gerd Moellmann <gerd@acm.org>
16077
16078 * xterm.c (dumprectangle): Use vectors in glyph rows.
16079
16080 * xdisp.c (display_text_line): Use vectors in glyph rows.
16081 (display_string): Ditto.
16082
16083 * scroll.c (do_scrolling): Use vectors in glyph rows.
16084 (do_direct_scrolling): Ditto.
16085
16086 * alloc.c (mark_object): Use vectors in glyph rows.
16087 Mark for all frame types.
16088
16089 * dispnew.c (adjust_glyph_matrix): Use vectors to glyphs in
16090 glyph rows.
16091 (get_glyph_matrix_row): Ditto.
16092 (matrix_row): Ditto.
16093 (rotate_pointers): Ditto.
16094 (scroll_frame_lines): Ditto.
16095 (preserve_other_columns): Ditto.
16096 (cancel_my_columns): Ditto.
16097 (update_line): Ditto.
16098 (direct_output_for_insert): Ditto.
16099
16100 * dispextern.h (struct glyph_row): Use a vector of pointers
d7d0dac0 16101 instead of individual members. Use a vector of used counters.
26901792
DL
16102 (MATRIX_ROW_SWAP_CONTENTS): Use vectors.
16103 (MATRIX_ROW_GLYPH_START): Ditto.
16104 (MATRIX_ROW_GLYPH_END): Ditto.
16105 (MATRIX_ROW_USED): Ditto.
16106 (MATRIX_ROW_SET_USED): Ditto.
16107
16108 * dispnew.c (line_hash_code): Simplified.
16109
16110Mon Jun 30 20:39:38 1997 Gerd Moellmann <gerd@acm.org>
16111
16112 * dispnew.c: Prototype for ROTATE_VECTOR, ROTATE_POINTERS,
16113 CHANGE_FRAME_SIZE_1
16114 (preserve_other_columns): Void return.
16115 (cancel_my_columns): Void return type.
16116 (scrolling): Int return type.
16117 (do_pending_window_change): Void return type.
16118 (change_frame_size): Ditto.
16119 (bitch_at_user): Ditto.
16120 (init_display): Ditto.
16121 (syms_of_display): Ditto.
16122
16123 * dispextern.h: add prototypes for REDRAW_FRAME,
d7d0dac0
SM
16124 REDRAW_GARBAGED_FRAMES, CANCEL_LINE, CLEAR_FRAME_RECORDS,
16125 INIT_DESIRED_GLYPHS, SCROLL_FRAME_LINES, PRESERVE_OTHER_COLUMNS,
16126 ADJUST_WINDOW_CHARSTARTS, CANCEL_MY_COLUMNS,
16127 DIRECT_OUTPUT_FOR_INSERT, DIRECT_OUTPUT_FORWARD_CHAR,
16128 UPDATE_FRAME, SCROLLING, BUFFER_POSN_FROM_COORDS,
16129 DO_PENDING_WINDOW_CHANGE, CHANGE_FRAME_SIZE, BITCH_AT_USER,
26901792 16130 SIT_FOR, INIT_DISPLAY, SYMS_OF_DISPLAY,
427ec082 16131
26901792 16132 * dispnew.c (redraw_frame): FRAME_PTR -> struct frame. Return
d7d0dac0 16133 void.
26901792
DL
16134 (cancel_line): Return void.
16135 (clear_frame_records): Return void.
427ec082 16136
26901792
DL
16137 * dispextern.h (struct glyph): Remove GLYPH, add bit-fields.
16138 (SET_CHAR_GLYPH): Fill a character glyph.
16139 (SET_CHAR_GLYPH_FROM_GLYPH): Set a character glyph from a GLYPH.
16140 (GLYPH_FROM_CHAR_GLYPH): Construct a GLYPH from a character
427ec082 16141 glyph.
26901792
DL
16142 (CHAR_GLYPH_CHAR_CODE): Return character code of a glyph.
16143 (SET_CHAR_GLYPH_CHAR_CODE): Set character code of a glyph.
16144 (CHAR_GLYPH_FACE_ID): Return face id of a glyph.
16145 (SET_CHAR_GLYPH_FACE_ID): Set face id of a glyph.
16146 (CHAR_GLYPH_PADDING_P): Return padding flag of a glyph.
16147 (SET_CHAR_GLYPH_PADDING_P): Set padding flag.
16148 (CHAR_GLYPH_REVERSE_P): Return reversed flag.
16149 (SET_CHAR_GLYPH_REVERSE_P): Set reversed flag.
16150 (MATRIX_ROW_SWAP_CONTENTS): Swap pointers between rows.
16151
16152 * term.c (reassert_line_highlight): Check CHARS_WASTED == 0.
16153
16154 * window.h (struct window): Add comment that no Lisp data may
d7d0dac0 16155 come below CURRENT_MATRIX.
26901792
DL
16156
16157 * alloc.c (mark_object): Change window mark code to stop with
d7d0dac0 16158 member CURRENT_MATRIX.
26901792
DL
16159
16160Sat Jun 28 13:54:55 1997 Gerd Moellmann <gerd@acm.org>
16161
16162 * scroll.c (do_scrolling): Change algorithm to use pointers.
16163 (do_direct_scrolling): Ditto.
16164
16165 * dispnew.c (get_glyph_matrix_row): Use pointers stored in rows.
16166 (new_glyph_pool): Formerly new_FRAME_GLYPH_MATRIX.
16167 (free_glyph_pool): Formerly FREE_FRAME_GLYPH_MATRIX
16168 (realloc_glyph_pool): Formerly REALLOC_FRAME_GLYPH_MATRIX.
d7d0dac0 16169 Returns 1 if pool changed.
26901792
DL
16170 (matrix_row): Additional check for lost pointers to glyph rows.
16171 (compute_matrices): Additional parameter DIM_P set means that no
d7d0dac0
SM
16172 allocation should take place. Addtional parameter
16173 ANY_WINDOWS_CHANGED_P set if any windows matrix has changed.
26901792 16174 (compute_leaf_matrix): Additional parameter CHANGED_P set to 1
d7d0dac0
SM
16175 when window matrix changes. Additional parameter DIM_ONLY_P set
16176 to 1 to indicate that no allocation should take place.
26901792 16177 (adjust_frame_glyphs): Construct new glyph pools and glyph
d7d0dac0 16178 matrices. Optimize frame redraws.
26901792
DL
16179 (free_glyphs): Free pools.
16180 (check_glyph_memory): Check pools not freed.
16181 (rotate_pointers): Rotate pointers in a vector of glyph rows.
16182 (scroll_frame_lines): Change algorithm to use pointers.
16183 (update_line): Ditto.
16184
16185 * dispextern.h (struct glyph_row): Use pointers to areas in a row.
16186 (global): All macro names changed from prefix FRAME_MATRIX to
d7d0dac0 16187 MATRIX.
26901792
DL
16188
16189Fri Jun 27 14:51:15 1997 Gerd Moellmann <gerd@acm.org>
16190
16191 * dispextern.h (struct glyph_pool): Replacement for former
16192 FRAME_GLYPH_MATRIX.
16193 (struct glyph_matrix): No longer contains sizes of allocated
16194 areas.
16195
16196 * xdisp.c (redisplay_internal): Don't redisplay if frame has
16197 no glyph pools.
16198
16199 * frame.c (make_frame): Initialize pools.
16200
16201Thu Jun 26 00:00:55 1997 Gerd Moellmann <gerd@acm.org>
16202
427ec082 16203 * scroll.c (do_direct_scrolling): Don't assume that the
26901792
DL
16204 line moving algorithm has no intermediate steps.
16205 (do_scrolling): Ditto.
16206
16207 * Makefile.in (alloc.o): Add dependency dispextern.h.
16208
16209 * alloc.c: Include dispextern.h for glyph definitions.
16210
16211 * dispnew.c (get_glyph_matrix_row): Return 1 if ROW_INDEX
16212 is legal, return 0 otherwise.
16213
16214 * window.h: Add comment that windows are marked specially.
16215
16216 * alloc.c (mark_object): Mark windows specially.
16217
16218
16219Wed Jun 25 15:22:58 1997 Gerd Moellmann <gerd@acm.org>
16220
16221 * dispextern.h (struct glyph): Add member OBJECT
16222 referencing a Lisp object from which a glyph was drawn.
16223 Member TEXT_POSITION renamed POSITION.
16224 * xterm.c, xdisp.c, dispnew.c: Rename TEXT_POSITION -> POSITION.
16225
16226 * alloc.c: Include dispextern.h
16227 (mark_object): Mark objects referenced from glyphs.
16228
f28eba7b 16229 * frame.c (make_frame): Initialize DECODE_MODE_SPEC_BUFFER.
26901792
DL
16230
16231 * scroll.c (do_direct_scrolling): Remove TEMP_MATRIX.
16232 (do_scrolling): Ditto.
16233
427ec082 16234 * frame.h (struct frame): TEMP_MATRIX removed.
26901792
DL
16235 DECODE_MODE_SPEC_BUFFER added.
16236
16237 * window.h: TEMP_MATRIX removed.
16238
16239 * scroll.c: OPHYS_LINES removed.
16240
16241 * dispnew.c: OPHYS_LINES and OPHYS_LINES_LENGTH removed.
16242 FRAME_PTR -> struct frame *.
16243
16244 * termhooks.h: Prototypes for INSERT_GLYPHS_HOOK,
16245 WRITE_GLYPHS_HOOK, DELETE_GLYPHS_HOOK,
16246
16247 * term.c: Prototypes for INSERT_GLYPHS_HOOK,
16248 WRITE_GLYPHS_HOOK, DELETE_GLYPHS_HOOK,
16249
16250 * xdisp.c (redisplay_internal): Remove call to VERIFY_CHARSTARTS.
16251 (do_verify_charstarts): Removed.
16252
16253 * frame.c (Fmake_terminal_frame): Adjust glyphs.
16254 (Fdelete_frame): Free glyphs.
16255 (make_frame): Initialize matrix fields in frame.
16256
f28eba7b 16257 * config.in (PROTO): Added.
26901792 16258
f28eba7b 16259 * emacs.c (shut_down_emacs): Check glyph memory.
26901792
DL
16260
16261 * window.c (Fdelete_window): Free window matrices.
16262 (Fset_window_configuration): Ditto.
16263 (Fdelete_window): Adjust glyphs.
16264 (Fsplit_window): Ditto.
16265 (change_window_height): Ditto.
16266 (Fset_window_configuration): Ditto.
16267 (make_window): Initialize DESIRED_MATRIX and CURRENT_MATRIX.
16268 (replace_window): Reset DESIRED_MATRIX and CURRENT_MATRIX
16269
16270 * Makefile.in (window.o): Add dependency window.c -> dispextern.h
16271
16272 * window.c: Include dispextern.h
16273
16274 * scroll.c (do_scrolling): Use new glyphs.
16275 (do_direct_scrolling): Ditto.
16276
16277 * xdisp.c: Some function prototypes.
16278 (redisplay_internal): Don't do anything if matrices not yet set.
16279 (redisplay_internal): Use new glyphs.
16280 (try_window_id): Ditto.
16281 (copy_part_of_rope): Ditto.
16282 (display_text_line): Ditto.
16283 (display_menu_bar): Ditto.
16284 (display_mode_line): Ditto.
16285 (display_string): Ditto.
16286
16287 * xterm.c: Prototypes for some local functions.
16288 (dumpglyphs): Use new glyphs.
16289 (XTwrite_glyphs): Ditto.
16290 (dumprectangle): Ditto.
16291 (note_mouse_highlight): Ditto.
16292 (fast_find_position): Ditto.
16293 (show_mouse_face): Ditto.
16294 (x_draw_single_glyph): Ditto.
16295 (x_display_bar_cursor): Ditto.
16296 (x_display_box_cursor): Ditto.
16297 (x_new_font): Adjust glyphs when font change.
16298
16299 * term.c (clear_end_of_line): Use new glyphs.
16300 (write_glyphs): Ditto.
16301 (insert_glyphs): Ditto.
16302
16303 * Makefile.in (term.o): term.c depends on dispextern.h
16304
16305 * term.c: Include dispextern.h
16306
16307 * dispnew.c (direct_output_forward_char): Old glyph functions
427ec082 16308 removed, new inserted.
26901792
DL
16309 (line_hash_code): Use new glyphs.
16310 (line_draw_cost): Ditto
16311 (cancel_line): Ditto
16312 (clear_frame_records): Ditto.
16313 (init_desired_glyphs): Ditto.
16314 (get_display_line): Ditto
16315 (scroll_frame_lines): Ditto.
16316 (preserve_other_columns): Ditto.
16317 (adjust_window_charstarts): Ditto.
16318 (cancel_my_columns): Ditto.
16319 (direct_output_for_insert): Ditto.
16320 (update_frame): Ditto.
16321 (quit_error_check): Made empty.
16322 (scrolling): Use new glyphs.
16323 (count_blanks): Ditto.
16324 (count_match): Ditto.
16325 (update_line): Ditto.
16326 (init_display): Adjust glyphs initially.
16327 (change_frame_size_1): Adjust glyphs.
16328
16329 * dispextern.h: Old glyphs removed, new added.
16330
16331 * xfaces.c (min_char_bounds): Get smallest char in loaded fonts.
16332
16333 * xterm.h: Prototype for min_char_bounds.
16334
16335 * window.h (struct window): Remove old glyphs, add new.
16336
16337 * frame.h (struct frame): Remove old glyphs, add new.
427ec082 16338
26901792
DL
163391999-07-20 Dave Love <fx@gnu.org>
16340
16341 * buffer.c (syms_of_buffer): Make
16342 default-enable-multibyte-characters a user variable.
16343
163441999-07-14 Richard Stallman <rms@gnu.org>
16345
16346 * Version 20.4 released.
16347
163481999-07-14 Richard Stallman <rms@gnu.org>
16349
16350 * filelock.c (lock_file): Do nothing if purifying.
16351
163521999-07-10 Richard Stallman <rms@gnu.org>
16353
16354 * xterm.c (x_display_bar_cursor): Use the cursor-color
16355 to display the bar, not the cursor foreground pixel.
16356
163571999-07-09 Andrew Innes <andrewi@gnu.org>
16358
16359 * w32console.c (w32_use_full_screen_buffer): New variable.
16360 (syms_of_ntterm): Register it.
16361 (initialize_w32_display): Set initial frame size accordingly,
16362 respecting the LINES and COLUMNS environment variables if set.
16363
16364 * w32inevt.c (w32_console_read_socket): Use it.
16365
163661999-07-07 Kenichi Handa <handa@etl.go.jp>
16367
16368 * callproc.c (Fcall_process): Decide coding system for decoding
16369 after we set to the target buffer. If the output goes to a
16370 unibyte buffer, suppress character code conversion.
16371
16372 * fileio.c (Finsert_file_contents): If reading into a unibyte
16373 buffer, suppress character code conversion.
16374
16375 * process.c (create_process): If the output goes to a unibyte
16376 buffer, suppress character code conversion.p
16377
163781999-07-07 Andreas Schwab <schwab@gnu.org>
16379
16380 * xdisp.c (line-number-display-limit): Doc fix.
16381
163821999-07-05 Richard Stallman <rms@gnu.org>
16383
16384 * callproc.c (Fcall_process): Don't use initializer on coding_systems.
16385 (Fcall_process_region): Likewise.
16386
163871999-07-01 Markus Rost <markus.rost@mathematik.uni-regensburg.de>
16388
16389 * callproc.c (init_callproc): Set exec_directory if
16390 installation_directory is non-nil, without a test of exec_path.
16391
163921999-07-01 Andrew Innes <andrewi@gnu.org>
16393
16394 * w32xfns.c (drain_message_queue): New function.
16395
16396 * w32term.h (drain_message_queue): Add extern.
16397
16398 * w32proc.c (sys_select): Call MsgWaitForMultipleObjects instead
16399 of WaitForMultipleObjects when user input is allowed, so we can
16400 handle incoming window messages. Call drain_message_queue when
16401 there are messages waiting; this ensures that windows created
16402 indirectly from the lisp thread get processed properly, and don't
16403 hang other applications by failing to respond to broadcasts.
16404
164051999-07-01 Andreas Schwab <schwab@gnu.org>
16406
16407 * callint.c (Fcall_interactively): Ignore first element of
16408 event-symbol-elements property.
16409
164101999-07-01 Richard Stallman <rms@gnu.org>
16411
16412 * fileio.c (Fread_file_name): Check type of DEFAULT_FILENAME.
16413
164141999-07-01 Kenichi Handa <handa@etl.go.jp>
16415
16416 * minibuf.c (read_minibuf): Set the multibyteness of the
16417 minibuffer before inserting `initial' string.
16418
164191999-06-30 Richard Stallman <rms@gnu.org>
16420
16421 * xfns.c (x_make_gc): Turn off GCStipple when setting up cursor_gc.
16422
164231999-06-29 Richard M. Stallman <rms@gnu.org>
16424
16425 * emacs.c [DOUG_LEA_MALLOC] (malloc_initialize_hook):
16426 Move the handling of MALLOC_CHECK_ envvar here.
16427 (main): Moved from here.
16428
164291999-06-29 Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>
16430
16431 * emacs.c [DOUG_LEA_MALLOC] (malloc_initialize_hook): New
16432 function, assigned to the global __malloc_initialize_hook pointer.
16433 (main): Move malloc_set_state call into malloc_initialize_hook
16434 so that it happens as early as possible.
16435
164361999-06-27 Richard M. Stallman <rms@gnu.org>
16437
16438 * keyboard.c (read_key_sequence): Properly reinitialize
16439 fkey_map after translating thru Vkey_translation_map.
16440 After translating thru Vfunction_key_map, don't reset
16441 keytrans-start to 0.
16442
164431999-06-24 Geoff Voelker <voelker@cs.washington.edu>
16444
16445 * w32.c (get_emacs_configuration): Use GetVersionEx to
16446 handle NT5.0 correctly. Include build number in configuration.
16447 w32heap.c (osinfo_cache): New variable.
16448 (cache_system_info): Initialize osinfo_cache.
16449 w32heap.h (osinfo_cache): Declare.
16450
164511999-06-24 Richard M. Stallman <rms@gnu.org>
16452
16453 * casefiddle.c (casify_object): Use make_multibyte_string
16454 if we casify a multibyte string.
16455
164561999-06-22 Ken'ichi Handa <handa@gnu.org>
16457
16458 * fileio.c: (Finsert_file_contents): In the case of REPLACE, call
16459 del_range_byte instead of del_range_1, set `inserted' to the
16460 number of characters actually inserted.
16461
164621999-06-17 Dave Love <fx@gnu.org>
16463
16464 * coding.c (decode_coding_sjis_big5): Avoid compiler warning.
16465
164661999-06-18 Paul Eggert <eggert@twinsun.com>
16467
16468 * filelock.c (BOOT_TIME_FILE): New macro.
16469 (get_boot_time): Use it instead of hardwiring the file name.
16470 Check BOOT_TIME_FILE only after inspecting the kernel directly.
16471
164721999-06-17 Dave Love <fx@gnu.org>
16473
16474 * xdisp.c (invalid_eol_type): Make it unsigned.
16475
164761999-06-17 Karl Heuer <kwzh@gnu.org>
16477
16478 * process.c (send_process): Delete unsafe/redundant assignment.
16479
164801999-06-17 Jason Rumney <jasonr@gnu.org>
16481
16482 * w32term.c (dumprectangle): Handle wide characters properly.
16483
164841999-06-16 Andrew Innes <andrewi@gnu.org>
16485
16486 * s/ms-w32.h (strerror): Override the default implementation of
16487 strerror, so we can map winsock error codes.
16488
16489 * w32.c (sys_strerror): New function.
16490
16491 * w32fns.c (w32_to_x_weight): Return "demibold" instead of "semibold".
16492
164931999-06-15 Ken'ichi Handa <handa@gnu.org>
16494
16495 * buffer.c (syms_of_buffer): Don't make
16496 enable-multibyte-characters customizable.
16497
164981999-06-15 Richard M. Stallman <rms@gnu.org>
16499
16500 * editfns.c (Fuser_full_name): Doc fix.
16501
165021999-06-14 Tak Ota <ota@atc.sel.sony.com>
16503
16504 * w32bdf.c: (clear_cached_bitmap_slots): Remove.
16505 (get_bitmap_with_cache): Check if CreateBitmap failed.
16506 Adjust cache size dynamically so cache is never larger than the
16507 system limit of GDI resources.
16508 Do cache clearing inline. Move global variables to local scope.
16509
16510
165111999-06-13 Wolfgang Glas <Wolfgang.Glas@hfm.tu-graz.ac.at>
16512
16513 * unexsgi.c (unexec): Dump the .rodata section from memory
16514 under IRIX6.5 in order to be able to unexec with gcc.
16515
165161999-06-11 Greg Hudson <ghudson@MIT.EDU>
16517
16518 * indent.c (compute_motion): Fix boundary case.
16519
165201999-06-11 Jason Rumney <jasonr@altavista.net>
16521
16522 * w32term.c (cancel_mouse_face): New function. See equiv
16523 changes to xterm.c on 1996-10-31.
16524 (x_set_window_size): Use cancel_mouse_face.
d7d0dac0
SM
16525 (w32_read_socket): Use cancel_mouse_face.
16526 Update frame position when size is restored.
26901792
DL
16527
165281999-06-04 Richard M. Stallman <rms@gnu.org>
16529
16530 * lread.c (Vuser_init_file): New variable.
16531 (syms_of_lread): Set up Lisp variable.
16532 (Fload): Store the file name there, if var was t before.
16533
165341999-06-04 Paul Eggert <eggert@twinsun.com>
16535
16536 * filelock.c (get_boot_time): Don't look at /proc/uptime; it
16537 doesn't work if the system date is changed, or if the system
16538 is suspended. Look at the last-modified time of
16539 /var/run/random-seed instead.
16540
165411999-06-03 Ken'ichi Handa <handa@gnu.org>
16542
16543 * coding.c (ENCODE_SJIS_BIG5_CHARACTER): Encode charset
16544 japanese-jisx0208-1978 correctly.
16545
165461999-06-03 Andrew Innes <andrewi@gnu.org>
16547
16548 * unexw32.c (get_section_info) [_ALPHA_]: Force as much bss data
16549 as possible to be dumped, for safety.
16550
165511999-06-02 Ken'ichi Handa <handa@gnu.org>
16552
16553 * coding.c (ENCODE_SJIS_BIG5_CHARACTER): Encode charset
16554 latin-jisx0201 correctly.
16555
165561999-05-26 Ken'ichi Handa <handa@gnu.org>
16557
16558 * charset.h (Vcharset_table): Comment fixed.
16559
165601999-05-24 Richard Stallman <rms@gnu.org>
16561
16562 * coding.c (syms_of_coding): Doc fix.
16563
16564 * buffer.c (syms_of_buffer): Doc fix.
16565
16566 * filelock.c (lock_if_free): After deleting a stale lock,
16567 try again to lock the file.
16568
165691999-05-22 Andrew Innes <andrewi@gnu.org>
16570
16571 * w32inevt.c (maybe_generate_resize_event): Detect changes in the
16572 console window size.
16573 (w32_console_read_socket): Call maybe_generate_resize_event
16574 whenever input events are received, since we don't get told when
16575 the window size changes (as opposed to the buffer size, which we
16576 don't care about).
16577
16578 * w32console.c (clear_frame): Remember that the window width might
16579 be smaller than the screen buffer width.
16580 (write_glyphs): Remove redundant variable attrs. Use
16581 FillConsoleOutputAttribute instead of WriteConsoleOutputAttribute.
16582
165831999-05-20 Andrew Innes <andrewi@gnu.org>
16584
16585 * w32term.c (w32_read_socket): Reset the grabbed flag when a frame gains or
16586 loses focus.
16587
16588 * w32fns.c (w32_wnd_proc): Ensure mouse capture is released if
16589 frame loses focus, and that mouse button state is reset. Ditto
16590 when the menu bar is activated.
16591
165921999-05-18 Richard Stallman <rms@gnu.org>
16593
16594 * abbrev.c (Fdefine_abbrev): Doc fix.
16595
165961999-05-13 Paul Eggert <eggert@twinsun.com>
16597
16598 * filelock.c: Fix performance bug on hosts with large
16599 /var/adm/wtmp files with no boot records.
16600
16601 (boot_time_initialized): New var.
16602 (init_filelock): Initialize it.
16603 (get_boot_time): Use it, instead of nonzero boot_time,
16604 to test whether boot_time is initialized.
16605 Don't invoke utmp routines when dumping.
16606
16607 (get_boot_time): First, try to get the boot time from the
16608 current utmp file, as this can be much faster. Don't try to
16609 get the boot time from utmp and/or wtmp more than once.
16610
16611 (get_boot_time_1): When passed null pointer, don't invoke utmpname.
16612 New arg LATEST. All uses changed.
16613
166141999-05-15 Andrew Innes <andrewi@gnu.org>
16615
16616 * w32term.c (dumpglyphs): Use correct colours for drawing
16617 rectangles in place of missing fonts, and make them the right
16618 size.
16619
166201999-05-14 Dave Love <fx@gnu.org>
16621
16622 * syntax.c (Fparse_partial_sexp): Correct test for element 8 to be
16623 non-nil.
16624
166251999-05-11 Andrew Innes <andrewi@gnu.org>
16626
16627 * w32fns.c (x_to_w32_charset): Reinstall VIETNAMESE_CHARSET
16628 definition.
16629 (w32_wnd_proc): Reinstall debugging output.
16630 (w32_wnd_proc): Reinstall SetForegroundWindow change.
16631 (syms_of_w32fns): Reinstall new initializer for
16632 Vw32_phantom_key_code.
16633
16634 * w32fns.c (x_to_w32_charset): Do partial matching of charset
16635 names for most non-European charsets, to cope with wildcards or
16636 missing spec dates.
16637 (Fw32_send_sys_command): Post WM_SYSCOMMAND rather than sending it
16638 to avoid deadlock when activating the menu bar.
16639
166401999-05-10 Ken'ichi Handa <handa@gnu.org>
16641
16642 * search.c (boyer_moore): Get charset base value of `untranslated'
16643 by masking by ~CHAR_FIELD3_MASK (instead of ~0xff).
16644
166451999-05-10 Andreas Schwab <schwab@gnu.org>
16646
16647 * fileio.c (Fread_file_name): Correct handling of dollars in file
16648 names. Protect dollars in strings put on the file-name-history.
16649 Substitute homedir by `~' also in default_filename.
16650
16651 * xdisp.c (try_window_id): Fix computation of tab_offset when
16652 backing up over a character that is splitted across lines.
16653
166541999-05-08 Kenichi HANDA <handa@etl.go.jp>
16655
16656 * coding.c (code_convert_region): If eol format is inconsistent,
16657 change coding->symbol to the sibling coding system of Unix like
16658 eol format.
16659
166601999-05-09 Richard M. Stallman <rms@gnu.org>
16661
16662 * s/irix5-2.h (NO_WTMP_FILE): Define it.
16663
16664 * filelock.c (get_boot_time): Handle NO_WTMP_FILE.
16665
166661999-05-05 Andrew Innes <andrewi@gnu.org>
16667
16668 * w32fns.c (w32_strict_painting): New variable.
16669 (w32_wnd_proc): Use it to select repaint rules.
16670 (syms_of_w32fns): Defvar it.
16671
166721999-05-04 Andrew Innes <andrewi@gnu.org>
16673
16674 * w32fns.c (x_to_w32_charset): Fix typo: want to map all Japanese
16675 charsets to the standard Windows charset for Japanese.
16676
166771999-05-04 Ken'ichi Handa <handa@gnu.org>
16678
16679 * xterm.c (x_load_font): Fix typo (`>' -> `=').
16680
16681 * ccl.h (struct ccl_program): New member stack_idx.
16682
16683 * ccl.c (ccl_prog_stack_struct): Declare it as static.
16684 (ccl_driver): Setup stack_idx and ccl_prog correctly. Update them
16685 before returing.
16686 (setup_ccl_program): Initialize ccl->stack_idx to 0.
16687
166881999-05-03 Jason Rumney <jasonr@altavista.net>
16689
16690 * w32term.c (dumpglyphs): Always fill background for italic fonts.
16691
166921999-05-03 Eli Zaretskii <eliz@is.elta.co.il>
16693
16694 * dired.c (make_time): Make argument type be time_t.
16695
166961999-05-02 Eli Zaretskii <eliz@is.elta.co.il>
16697
16698 * msdos.c (unibyte_display_via_language_environment): Add extern.
16699
83c8f461 167001999-05-02 Richard M. Stallman <rms@gnu.org>
26901792
DL
16701
16702 * xdisp.c (display_text_line): Convert unibyte char to multibyte
16703 if unibyte_display_via_language_environment is set.
16704 (unibyte_display_via_language_environment):
16705 Variable moved from xfns.c and elsewhere.
16706 (syms_of_xfns): Set up Lisp var.
16707
16708 * xfns.c (unibyte_display_via_language_environment):
16709 Variable moved to xdisp.c.
16710 (syms_of_xfns): Don't set up Lisp var here.
16711
16712 * msdos.c (unibyte_display_via_language_environment):
16713 Variable moved to xdisp.c.
16714 (syms_of_msdos): Don't set up Lisp var here.
16715
16716 * w32fns.c (unibyte_display_via_language_environment):
16717 Variable moved to xdisp.c.
16718 (syms_of_w32fns): Don't set up Lisp var here.
16719
167201999-05-02 Andrew Innes <andrewi@gnu.org>
16721
16722 * s/ms-w32.h (HAVE_FSYNC): New macro.
16723 (fsync): Map to _commit.
16724 (ftruncate): Map to _chsize.
16725
16726 * w32term.c (dumpglyphs): On Windows NT, do output in Unicode even
16727 for ASCII, if enabled, to avoid memory allocation overhead for
16728 implicit Unicode conversion. Also, recognize that ASCII and
16729 Latin-1 have a trivial conversion to Unicode, so x_2byte_buffer
16730 already contains the Unicode characters in that case.
16731 (construct_drag_n_drop): Remove old code that was
16732 trashing the drop location.
16733
16734 * w32select.c (Fw32_set_clipboard_data): Undo last change to add
16735 nlines to encoding_buffer_size (real bug was in a ccl program in
16736 lisp/international/coding.el).
16737
16738 * w32reg.c (w32_get_string_resource): Check for name in current
16739 user area, and if not found look in the local machine area.
16740
16741 * w32fns.c (w32_list_bdf_fonts): Initialize n_fonts.
16742 (Fw32_shell_execute): New function; used to support browse-url.
16743 (syms_of_w32fns): Register it.
16744 (w32_load_system_font): Force max width to be average
16745 char width for fixed-pitch fonts, to avoid unnecessary redisplay
16746 slowdown.
16747 (x_to_w32_charset): Define VIETNAMESE_CHARSET if not
16748 already defined.
16749 (syms_of_w32fns): Set Vw32_phantom_key_code to 255.
16750
16751 * unexw32.c (get_section_info): Dump back the entire EMDATA
16752 section if we can put Emacs' initialized data in a separate
16753 section, otherwise use the my_begdata/my_edata method.
16754
16755 * makefile.nt ($(BLD)\w32term.obj): Add dependency on w32heap.h.
16756
16757 * coding.c (decode_eol): Set produced/consumed values to zero if
16758 src_bytes is <= 0 on entry.
16759
167601999-05-02 Jason Rumney <jasonr@altavista.net>
16761
16762 * w32term.c (w32_write_glyphs, w32_clear_end_of_line,
16763 w32_clear_frame, clear_cursor, x_display_bar_cursor,
16764 x_display_box_cursor, x_set_window_size): Use phys_cursor_on
16765 field in frame.
16766 (do_line_dance): Updated WRT xterm.c. Use macros where possible.
16767 (dumprectangle): Take into account the width of a left-side
16768 scroll bar.
16769
16770 * w32proc.c (sys_kill): Attach to current foreground thread
16771 when grabbing focus; necessary on NT 5.0.
16772
16773 * w32fns.c (w32_wnd_proc) [WM_PAINT]: Use rectangle from
16774 GetUpdateRect rather than BeginPaint.
16775 (w32_wnd_proc): Attach to current foreground thread
16776 when grabbing focus; necessary on NT 5.0.
16777 (w32_wnd_proc) [W32_DEBUG_DISPLAY]: Add output for
16778 debugging display messages.
16779 (w32_to_x_charset): Put wildcard last in unknown charsets to avoid
16780 false matching.
16781
167821999-05-02 Kenichi HANDA <handa@etl.go.jp>
16783
16784 * coding.c (setup_raw_text_coding_system): Call
16785 setup_coding_system to initialize the fields of struct
16786 coding_system correctly.
427ec082 16787
26901792
DL
167881999-04-26 Kenichi HANDA <handa@etl.go.jp>
16789
16790 * xterm.c (x_list_fonts): Fix previous change.
16791
167921999-04-26 Richard Stallman <rms@gnu.org>
16793
16794 * config.in (HAVE_LIBXP): Add #undef.
16795 * Makefile.in (LIB_MOTIF_EXTRA): Check HAVE_LIBXP.
16796
167971999-04-12 Ken'ichi Handa <handa@gnu.org>
16798
16799 * xterm.c (x_list_fonts): Trap X errors so that Emacs doesn't die
16800 by them.
16801
168021999-04-12 Karl Heuer <kwzh@gnu.org>
16803
16804 * s/freebsd.h (BSD_SYSTEM): Define for FreeBSD 4 as with FreeBSD 3.
16805
168061999-04-11 Ken'ichi Handa <handa@gnu.org>
16807
16808 * fontset.c (Fset_fontset_font): Fix previous change.
16809
168101999-04-09 Ken'ichi Handa <handa@gnu.org>
16811
16812 * fontset.c (Fquery_fontset): Check for fontset aliases here.
16813 (Fnew_fontset, Fset_fontset_font): Don't check for them here.
16814
168151999-04-08 Richard Stallman <rms@gnu.org>
16816
16817 * process.c (Faccept_process_output): Check validity of PROCESS.
16818
168191999-04-08 Eli Zaretskii <eliz@gnu.org>
16820
16821 * msdos.c (jp_kbd_translate_table): Fix the other \ key.
16822
168231999-04-07 Richard Stallman <rms@gnu.org>
16824
16825 * xfns.c (x_set_font): Fix error message.
16826
16827 * fontset.c (Fquery_fontset): Don't check for fontset aliases here.
16828 (Fnew_fontset, Fset_fontset_font): Check for them here.
16829 (Ffontset_info, Fnew_fontset, Fset_fontset_font):
16830 Fix error message syntax.
16831
16832 * buffer.c (Fmake_indirect_buffer): Copy multibyte status
16833 from the base buffer.
16834 (Fset_buffer_multibyte): Copy new multibyte status
16835 into the buffer's indirect buffers.
16836
168371999-04-07 Ken'ichi Handa <handa@gnu.org>
16838
16839 * fns.c (base64_encode_1): Don't add unnecessary newline at the
16840 tail.
16841
168421999-04-06 Richard Stallman <rms@gnu.org>
16843
16844 * dired.c (Ffile_attributes): Doc fix.
16845
16846 * keymap.c (Faccessible_keymaps): Really initialize i_byte.
16847 Convert 0200 to meta only in a unibyte string.
16848 (Fkey_description): Likewise.
16849
16850 * eval.c (do_autoload): Preserve match data.
16851
168521999-04-06 Kenichi HANDA <handa@etl.go.jp>
16853
16854 * w32fns.c (x_to_w32_font): Provide sufficient buffer to
16855 encode_coding to avoid carryover.
16856
16857 * coding.c: Add comments for decode_coding and encode_coding.
16858
16859 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix bug of handling
16860 a composite character by skipping its leading code.
16861 <CCL_WriteMultibyteChar2>: Handle non-ascii single byte character
16862 correctly.
16863
16864 * coding.c: Add comments for decode_coding and encode_coding.
16865
16866 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix bug of handling
16867 a composite character by skipping its leading code.
16868 <CCL_WriteMultibyteChar2>: Handle non-ascii single byte character
16869 correctly.
16870
168711999-04-06 Eli Zaretskii <eliz@gnu.org>
16872
16873 * msdos.c (dos_rawgetc): Don't zero out c if private translation
16874 table was used.
16875 (jp_kbd_translate_table): Support C-\.
16876 (it_kbd_translate_table): Map `>' correctly.
16877 (it_keyboard): Add `>'.
16878
168791999-04-06 Richard Stallman <rms@gnu.org>
16880
16881 * intervals.c (graft_intervals_into_buffer): Turn off
16882 inhibit_modification_hooks around calling Fset_text_properties.
16883
168841999-04-05 Kenichi HANDA <handa@etl.go.jp>
16885
16886 * xterm.c (dumpglyphs): Be sure to fill the whole background of
16887 glyphs.
16888
168891999-04-05 Eli Zaretskii <eliz@gnu.org>
16890
16891 * msdos.c (jp_kbd_translate_table): Fix last change.
16892
168931999-04-04 Eli Zaretskii <eliz@gnu.org>
16894
16895 * msdos.c (struct kbd_translate): New struct, for key translation
16896 tables private to certain national keyboard layouts.
16897 (struct dos_keyboard_map): Add a pointer to a private translation
16898 table.
16899 (jp_kbd_translate_table): Private table for the Japanese
16900 keyboard.
16901 (jp_keyboard): Japanese keyboard layout.
16902 (it_kbd_translate_table): Private table for the Italian keyboard.
16903 (it_keyboard): Use it_kbd_translate_table.
16904 (keyboard_layout_list): Add the Japanese keyboard.
16905 (dos_rawgetc): Use the keyboard-private translation table, if
16906 available.
16907 (abort) [__DJGPP_MINOR__ >= 2]: Raise SIGABRT.
16908
169091999-04-02 Kenichi HANDA <handa@etl.go.jp>
16910
16911 * xdisp.c (redisplay_window): When we call compute_motion with
16912 HPOS got from w->last_point_x, call it with DID_MOTION 1.
16913 (display_text_line): Stop the loop for processing overlay strings
16914 when we reach the right edge of the window.
16915
83c8f461 169161999-03-31 Richard M. Stallman <rms@gnu.org>
26901792
DL
16917
16918 * doc.c (get_doc_string): When UNIBYTE and DEFINITION are 0,
16919 let the data control whether string is unibyte.
16920
169211999-03-30 Richard M. Stallman <rms@gnu.org>
16922
16923 * macros.c (Fexecute_kbd_macro): Save real_this_command.
16924 (pop_kbd_macro): Restore the saved real_this_command.
16925 (Fcall_last_kbd_macro): Set real_this_command to the macro.
16926
169271999-03-26 Richard M. Stallman <rms@gnu.org>
16928
16929 * buffer.c (Fset_buffer_modified_p): Don't lock or unlock
16930 if buffer-file-name is nil.
16931
169321999-03-25 Jason Rumney <jasonr@altavista.net>
16933
16934 * w32select.c (Fw32_set_clipboard_data): Take into account line
16935 ends when calculating clipboard storage needed for non-ASCII text.
16936
169371999-03-25 Andrew Innes <andrewi@gnu.org>
16938
16939 * makefile.nt (PREPARED_HEADERS): Change name of paths.h to epaths.h.
16940 (epaths.h): Renamed from paths.h.
427ec082
SS
16941 (clean):
16942 ($(BLD)\filelock.obj):
16943 ($(BLD)\lread.obj):
26901792
DL
16944 ($(BLD)\w32fns.obj): Renamed paths.h to epaths.h.
16945
169461999-03-23 Ken'ichi Handa <handa@gnu.org>
16947
16948 * coding.c (encode_coding_iso2022): Initialize dummy arguments to
16949 ENCODE_ISO_CHARACTER for the previous change on this macro.
16950
169511999-03-23 Kenichi Handa <handa@etl.go.jp>
16952
16953 * xdisp.c (decode_mode_spec_coding): Handle integer value in
16954 eoltype correctly for backward compatibility.
16955
169561999-03-20 Kenichi HANDA <handa@etl.go.jp>
16957
16958 * coding.c (ENCODE_ISO_CHARACTER): Check validity of CHARSET. If
16959 invalid, produce the buffer internal byte sequence without encoding.
16960
169611999-03-19 Karl Heuer <kwzh@gnu.org>
16962
16963 * editfns.c (Fformat): Accept %i format.
16964
169651999-03-17 Karl Heuer <kwzh@gnu.org>
16966
16967 * filelock.c (get_boot_time): Test tempname, not filename.
16968
169691999-03-17 Jason Rumney <jasonr@altavista.net>
16970
e5619f6b
JR
16971 * w32bdf.h: Merged patches from Meadow; introduce bitmap cache to
16972 speed display.
16973
16974 * w32bdf.c: Merged patches from Meadow; introduce bitmap cache to
16975 speed display.
16976 (get_cached_font_char, cache_char_offset, get_bitmap_with_cache)
16977 New functions.
16978 (w32_free_bdf_font, seek_char, w32_get_bdf_glyph, w32_BDF_TextOut)
16979 Use bitmap cache.
26901792
DL
16980
16981 * w32fns.c (enum_font_cb2): Set the font height to be the
16982 character height, not the cell height.
16983 (Fw32_select_font): Initialize font dialog with current default font.
16984 (Vw32_system_coding_system): New variable.
16985 (w32_strict_filenames): Add comment.
16986 (w32_to_x_font): Decode font name using Vw32_system_coding_system.
427ec082 16987 (x_to_w32_font): Encode font name using Vw32_system_coding_system.
26901792
DL
16988 (syms_of_w32fns): Add w32-system-coding-system.
16989
169901999-03-15 Richard M. Stallman <rms@gnu.org>
16991
16992 * xterm.c (XTread_socket) <ConfigureNotify>:
16993 If cursor pos is outside the new frame size, mark cursor as off.
16994
169951999-03-14 Ken'ichi Handa <handa@gnu.org>
16996
16997 * xdisp.c (try_window_id): Initialize val.ovstring_chars_done to 0.
16998
16999 * xterm.c (x_load_font): Trap X errors so that Emacs doesn't die
17000 by them.
17001
170021999-03-14 Richard M. Stallman <rms@gnu.org>
17003
17004 * macros.c (Fexecute_kbd_macro): Initialize executing_macro_iterations
17005 at beginning.
17006
170071999-03-14 Jason Rumney <jasonr@altavista.net>
17008
17009 * w32fns.c (w32_strict_fontnames): New variable.
17010 (Fx_create_frame): Formatting fix.
17011 (w32_load_system_font): Keep trying to load non-existant font
17012 if w32_strict_fontnames is nil. Formatting fix.
17013 (syms_of_w32fns): Add w32-strict-fontnames.
17014
17015 * w32term.c (W32_TEXTOUT): Do not multiply nchars by charset_dim.
17016 (dumpglyphs): Formatting fixes.
17017
170181999-03-14 Geoff Voelker <voelker@cs.washington.edu>
17019
17020 * w32fns.c (w32_wnd_proc): Handle WM_GETMINMAXINFO message.
17021
170221999-03-10 Karl Heuer <kwzh@gnu.org>
17023
17024 * puresize.h (BASE_PURESIZE): Increase to 505000.
17025
170261999-03-09 Richard M. Stallman <rms@gnu.org>
17027
17028 * emacs.c (main) [CLASH_DETECTION]: Call init_filelock.
17029
17030 * filelock.c (init_filelock): New function.
17031
170321999-03-09 Dave Love <fx@gnu.org>
17033
17034 * fileio.c (Ffile_directory_p): Doc fix.
17035
83c8f461 170361999-03-05 Richard M. Stallman <rms@gnu.org>
26901792
DL
17037
17038 * coding.c (setup_coding_system): Check for CODING_SYSTEM = nil.
17039
170401999-03-08 Richard M. Stallman <rms@gnu.org>
17041
17042 * filelock.c (get_boot_time): Reduce scope of #ifdef BOOT_TIME
17043 to only the part that uses get_boot_time_1.
17044
170451999-03-07 Dave Love <fx@gnu.org>
17046
17047 * fileio.c (Finsert_file_contents): Use xfree.
17048
170491999-03-06 Kenichi Handa <handa@etl.go.jp>
17050
17051 * Makefile.in (callproc.o, coding.o, fileio.o, msdos.o, process.o,
17052 term.o, xselect.o): Depend on ccl.h.
17053
170541999-03-05 Geoff Voelker <voelker@cs.washington.edu>
17055
17056 * makefile.nt: Remove common multiple file compilation commands.
17057
170581999-03-04 Takeshi YAMADA <yamada@cslab.kecl.ntt.co.jp>
17059
17060 * fns.c (Fbase64_encode_string): Allocate sufficient memory for
17061 newlines added when the arg NO-LINE-BREAK is nil.
17062
170631999-03-04 Karl Heuer <kwzh@gnu.org>
17064
17065 * search.c (Fstring_match, Fposix_string_match): Doc fix.
17066
17067 * buffer.c (syms_of_buffer): Doc fix for case-fold-search.
17068
170691999-03-04 Dave Love <fx@gnu.org>
17070
17071 * term.c (term_init): Use xmalloc, not malloc.
17072
17073 * callproc.c (Fcall_process): Use xmalloc, xfree.
17074
170751999-03-03 Andreas Schwab <schwab@gnu.org>
17076
17077 * eval.c (Fdefconst): Doc fix.
17078
170791999-03-01 Kenichi Handa <handa@etl.go.jp>
17080
17081 * coding.c: Comment for ISO 2022 encoding mechanism modified.
17082
170831999-03-01 Eli Zaretskii <eliz@gnu.org>
17084
17085 * w16select.c (get_clipboard_data): Always stop at the first null byte.
17086
170871999-02-28 Richard M. Stallman <rms@gnu.org>
17088
17089 * filelock.c (get_boot_time): Support FreeBSD way to read boot-time.
17090
17091 * cmds.c (internal_self_insert): Calculate column properly
17092 in overwrite-of-tab case.
17093
170941999-02-27 Andreas Schwab <schwab@gnu.org>
17095
17096 * emacs.c (main) [DOUG_LEA_MALLOC]: Don't use unsetenv, it calls
17097 malloc in glibc 2.1.
17098
170991999-02-26 Richard Stallman <rms@gnu.org>
17100
17101 * Makefile.in: paths.h and paths.in renamed to epaths.h and epaths.in.
17102
17103 * epaths.in: Renamed from paths.in.
17104 This avoids a conflict with a system header file paths.h on GNU/Linux.
17105
17106 * callproc.c, lread.c, w32fns.c, xfns.c, xrdb.c:
17107 Use epaths.h istead of paths.h.
17108
171091999-02-26 Andreas Schwab <schwab@gnu.org>
17110
17111 * emacs.c (main) [DOUG_LEA_MALLOC]: Work around a bug in glibc's
17112 malloc.
17113
171141999-02-25 Dave Love <fx@gnu.org>
17115
17116 * buffer.c (syms_of_buffer): Doc fix for enable-multibyte-characters.
17117
171181999-02-25 Richard Stallman <rms@gnu.org>
17119
17120 * filelock.c (get_boot_time): Use WTMP_FILE for file name.
17121 (WTMP_FILE): Default definition in case not defined.
17122 (get_boot_time_1): Test that file exists before trying to read it.
427ec082 17123
26901792
DL
171241999-02-25 Ken'ichi Handa <handa@gnu.org>
17125
17126 * keymap.c (push_key_description): If enable-multibyte-characters
17127 is nil and C is single byte, push C as is.
17128
171291999-02-24 Kenichi Handa <handa@etl.go.jp>
17130
17131 * keymap.c (push_key_description): If enable-multibyte-characters
17132 is non-nil, try to convert unibyte character to multibyte. For
17133 invalid multibyte character, show all bits by octal form.
17134 (Fsingle_key_description): Check the validity of charset for a
17135 generic character.
17136
171371999-02-23 Richard M. Stallman <rms@gnu.org>
17138
17139 * fileio.c (Ffile_regular_p): Undo previous change.
17140
17141 * eval.c (Fdefconst): Doc fix.
17142
17143 * filelock.c (get_boot_time): Don't use BUFSIZ.
17144
171451999-02-22 Andrew Innes <andrewi@gnu.org>
17146
17147 * makefile.nt ($(BLD)\w32bdf.obj): Add missing continuation character.
17148 (EXTRA_LINK): Do version test with strings.
17149
171501999-02-22 Andreas Schwab <schwab@gnu.org>
17151
17152 * fns.c (Fbase64_encode_string): Fix last change.
17153
17154 * termhooks.h (event_kind): Add user_signal.
17155
17156 * keyboard.c (Qusr1_signal, Qusr2_signal): New variables.
17157 (syms_of_keyboard): Initialize them.
17158 (lispy_user_signals): New variable.
17159 (make_lispy_event): Handle user_signal event type.
17160
17161 * emacs.c: Don't define Qusr1_signal and Qusr2_signal.
17162 (syms_of_emacs): Don't initialize them.
17163 (handle_USR1_signal, handle_USR2_signal): Set event type to
17164 user_signal instead of non_ascii_keystroke, and use plain integers
17165 as code instead of Lisp symbols.
17166
171671999-02-21 Eli Zaretskii <eliz@delysid.gnu.org>
17168
17169 * fileio.c: (lstat) [!S_ISLNK]: Use stat instead of lstat.
17170
171711999-02-21 Richard Stallman <rms@gnu.org>
17172
17173 * filelock.c (get_boot_time_1): Put this in #ifdef BOOT_TIME.
17174
17175 * print.c (print_error_message): Don't crash if (cdr data)
17176 is not a list.
17177
171781999-02-21 Eli Zaretskii <eliz@gnu.org>
17179
17180 * fileio.c (lstat) [!S_ISLNK]: Use stat instead of lstat.
17181
171821999-02-20 Andrew Innes <andrewi@gnu.org>
17183
17184 * vm-limit.c (memory_warnings) [WINDOWSNT]: Reset lim_data on each
17185 run, since size can vary from run to run.
17186
17187 * makefile.nt (EXTRA_LINK, LINK_FLAGS): Ensure base relocation
17188 data is included, to enable profiling.
17189 ($(EMACS)): Map file not needed for emacs.exe.
17190
17191 * emacs.c (main): [!SYSTEM_MALLOC]: Call realloc and free as well
17192 as malloc before calling uninterrupt_malloc, for consistency.
17193 This also enables profiling to work on WINDOWSNT.
17194
171951999-02-18 Richard Stallman <rms@gnu.org>
17196
17197 * Makefile.in (emacs.o): Depend on termhooks.h.
17198 (filelock.o): Depend on systime.h.
17199
172001999-02-18 Ken'ichi Handa <handa@gnu.org>
17201
17202 * coding.c (Fdecode_sjis_char): Use %x for formatting error message.
17203 (Fdecode_big5_char): Likewise.
17204
172051999-02-17 Richard Stallman <rms@gnu.org>
17206
17207 * insdel.c (adjust_markers_for_replace): When doing an insertion
17208 (replacing a region of zero length), handle markers at the
17209 insertion point properly.
17210
172111999-02-17 Andrew Innes <andrewi@gnu.org>
17212
17213 * w32fns.c (Vw32_quit_key): New variable.
17214 (post_character_message): Use it.
17215 (syms_of_w32fns): DEFVAR it.
17216
172171999-02-16 MORIOKA Tomohiko <morioka@jaist.ac.jp>
17218
17219 * fns.c (Fbase64_encode_string): New optional argument `NO_LINE_BREAK'.
17220
172211999-02-16 Richard Stallman <rms@gnu.org>
17222
17223 * filelock.c (within_one_second): New function.
17224 (current_lock_owner): Use that.
17225 (get_boot_time): Use /proc/uptime if available.
17226 Otherwise, if nothing found in wtmp, try wtmp.1.gz and so on.
17227 (get_boot_time_1): New subroutine taken from get_boot_time.
427ec082 17228
26901792
DL
172291999-02-16 Richard Stallman <rms@gnu.org>
17230
17231 * emacs.c (Qusr1_signal, Qusr2_signal): New variables.
17232 (syms_of_emacs): Init and staticpro them.
17233 (handle_USR1_signal): Don't run any code, just queue up an event.
17234 (handle_USR2_signal): Likewise.
17235
172361999-02-16 Eli Zaretskii <eliz@gnu.org>
17237
17238 * dired.c (Ffile_attributes): If the file's size doesn't fit in
17239 an integer, return it as a float. Doc string fixed.
17240
172411999-02-16 Richard Stallman <rms@gnu.org>
17242
17243 * emacs.c (Qusr1_signal, Qusr2_signal): New variables.
17244 (syms_of_emacs): Init and staticpro them.
17245 (handle_USR1_signal): Don't run any code, just queue up an event.
17246 (handle_USR2_signal): Likewise.
17247
172481999-02-15 Kenichi Handa <handa@etl.go.jp>
17249
17250 * coding.c (Fdecode_sjis_char, Fencode_sjis_char): Handle
17251 ASCII correctly. Signal error on invalid characters.
17252 (Fdecode_big5_char, Fencode_big5_char): Likewise.
17253
172541999-02-15 Eli Zaretskii <eliz@gnu.org>
17255
17256 * w16select.c (get_clipboard_data): Work around a bug in Windows95
17257 DOS box which doubles the reported size of text in the clipboard.
17258
172591999-02-15 Kenichi Handa <handa@etl.go.jp>
17260
17261 * coding.c (decode_coding_iso2022): Don't set
17262 coding->composed_chars to 0 here.
17263 (setup_coding_system): Set coding->composed_chars to 0 here.
17264
172651999-02-10 Richard Stallman <rms@gnu.org>
17266
17267 * fileio.c (Ffile_regular_p): Use lstat.
17268
172691999-02-09 Richard Stallman <rms@gnu.org>
17270
17271 * unexelf.c (HAS_SBSS_SECTION): Define this in some cases.
17272 (unexec): Test this instead of specific systems.
17273
17274 * m/macppc.h: New file.
17275
172761999-02-08 Dave Love <fx@gnu.org>
17277
17278 * fns.c (Fyes_or_no_p, Fy_or_n_p): Doc fix.
17279
172801999-02-08 Ken'ichi Handa <handa@gnu.org>
17281
17282 * coding.c (ccl_coding_driver): On encoding, coding->produced_char
17283 should be set to coding->produced.
17284
172851999-02-07 Paul Fisher <rao@gnu.org>
17286
17287 * fns.c (IS_BASE64_IGNORABLE, READ_QUADRUPLET_BYTE): New macros.
17288 (base64_decode_1): Use READ_QUADRUPLET_BYTE.
17289
172901999-02-07 Markus Rost <markus.rost@mathematik.uni-regensburg.de>
17291
17292 * editfns.c (Fformat): Doc fix.
17293
172941999-02-06 Richard Stallman <rms@gnu.org>
17295
17296 * process.c (syms_of_process): defsubr it.
17297 (Fprocess_running_child_p): New function.
17298
172991999-02-05 Andrew Innes <andrewi@gnu.org>
17300
17301 * w32term.c (construct_drag_n_drop): Call DraqQueryPoint before
17302 recording drop position.
17303
173041999-02-05 Ken'ichi Handa <handa@gnu.org>
17305
17306 * coding.c (encode_coding_iso2022): Before writing out an invalid
17307 code, reset graphic planes and registers if necessary.
17308
17309 * term.c (encode_terminal_code): Fix previous change.
17310
173111999-02-04 Eli Zaretskii <eliz@gnu.org>
17312
17313 * w16select.c (last_clipboard_text, clipboard_storage_size): New
17314 static variables.
17315 (set_clipboard_data): Save a copy of the text we put into
17316 clipboard in last_clipboard_text.
17317 (get_clipboard_data): If the clipboard text is identical to what
17318 last_clipboard_text holds, pretend there's no data in the clipboard.
17319
173201999-02-03 Richard Stallman <rms@gnu.org>
17321
17322 * s/gnu.h (NLIST_STRUCT): Add #undef.
17323
173241999-02-03 Eli Zaretskii <eliz@gnu.org>
17325
17326 * w16select.c (Fw16_set_clipboard_data): When the text needs to be
17327 encoded, set its pointer and size as returned by encode_coding.
17328
173291999-02-02 Ken'ichi Handa <handa@gnu.org>
17330
17331 * fns.c (Fset_char_table_default): To handle the case that CH is
17332 an ASCII char, use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
17333
173341999-02-02 Andrew Innes <andrewi@gnu.org>
17335
17336 * w32fns.c (syms_of_w32fns): Change default value of
17337 w32-mouse-move-interval to 0, so that the mouse wheel/rocker on
17338 some mice works properly.
17339
173401999-02-02 Eli Zaretskii <eliz@gnu.org>
17341
17342 * w16select.c (set_clipboard_data): Correctly null-terminate the
17343 string to be put into the Windows clipboard. Use xbuf_addr.
17344
173451999-02-01 Richard Stallman <rms@gnu.org>
17346
17347 * buffer.c (Fset_buffer_multibyte): Error if buffer is indirect.
17348
173491999-01-31 Richard Stallman <rms@gnu.org>
17350
17351 * process.c (process_send_signal): If CURRENT_GROUP is `lambda'
17352 then don't send the signal if the shell owns the terminal.
17353 (Finterrupt_process): Doc change.
427ec082 17354
26901792
DL
173551999-01-31 Andrew Innes <andrewi@gnu.org>
17356
17357 * unexw32.c: (ROUND_UP_DST_AND_ZERO): New macro.
17358 (copy_executable_and_dump_data): Use it to ensure alignment slop
17359 is zeroed.
17360
173611999-01-30 Andrew Innes <andrewi@gnu.org>
17362
17363 * w32.c (init_environment): Change argv[0] to contain the full
17364 path to Emacs.
17365
17366 * emacs.c (main) [WINDOWSNT]: Pass argv to init_environment.
17367
173681999-01-29 Ken'ichi Handa <handa@gnu.org>
17369
17370 * xterm.c (x_new_fontset): For ASCII font, don't use the font name
17371 returned by x_new_font (the resolved one) but use the font name
17372 set in the fontset specification.
17373 (x_load_font): For the height of font, if normarl ascent and
17374 descent value are larger than those in max_bounds field, use the
17375 former.
17376
173771999-01-28 Eli Zaretskii <eliz@gnu.org>
17378
17379 * xdisp.c (decode_mode_spec_coding): Fix previous change.
17380
173811999-01-27 Geoff Voelker <voelker@cs.washington.edu>
17382
17383 * makefile.nt: Use full path to temacs.exe when dumping.
17384
173851999-01-27 Jason Rumney <jasonr@altavista.net>
17386
17387 * w32fns.c (w32_load_system_font): Do not load unlisted fonts if
17388 list was reliable.
17389 (enum_fontex_cb1, enum_fontex_cb2): New functions.
17390 (w32_list_bdf_fonts): New parameter; max_names. Callers updated.
17391 (w32_list_synthesized_fonts): New function.
17392 (w32_list_fonts): Use maxnames. Use EnumFontFamiliesEx when
17393 available instead of EnumFontFamilies. List synthesized fonts if
17394 Vw32_enable_italics is non-nil.
427ec082 17395
26901792
DL
173961999-01-27 Richard Stallman <rms@gnu.org>
17397
17398 * s/ptx4.h (SETUP_SLAVE_PTY): Use the ptem module if it exists.
17399 Don't complain if ttcompat does not exist.
17400
17401 * w32fns.c (x_set_frame_parameters): gcpro as needed.
17402
174031999-01-27 Andrew Innes <andrewi@gnu.org>
17404
17405 * w32fns.c (w32_wnd_proc): Fix bug introduced by previous change;
17406 the lwindow, rwindow and apps keys could not be used as function
17407 keys, because they were being passed to TranslateMessage which
17408 ignores them. Also, key was being changed to SPC.
17409
17410 * makefile.nt: Do make version comparison as strings.
17411
174121999-01-27 Eli Zaretskii <eliz@gnu.org>
17413
17414 * coding.c (syms_of_coding): eol-mnemonic-* variables are now
17415 strings, not characters.
17416
17417 * coding.h: Likewise.
17418
17419 * xdisp.c (decode_mode_spec_coding): Display the EOL type as a
17420 string.
17421
174221999-01-26 Dave Love <fx@gnu.org>
17423
17424 * emacs.c (main): Up-date copyright.
17425
174261999-01-25 Dave Love <fx@gnu.org>
17427
17428 * coding.c (syms_of_coding): Doc fix for inhibit-eol-conversion.
17429
174301999-01-25 Andreas Schwab <schwab@gnu.org>
17431
17432 * eval.c (Fsignal): Move comment to avoid confusing make-docfile.
17433
174341999-01-23 Richard M. Stallman <rms@borg.ai.mit.edu>
17435
17436 * xfns.c (x_set_frame_parameters): gcpro as needed.
17437
17438 * window.c (Fset_window_point): If WINDOW is selected but the
17439 current buffer is not its buffer, don't use Fgoto_char.
17440
174411999-01-22 Richard M. Stallman <rms@gnu.org>
17442
17443 * syntax.c (scan_sexps_forward): Delete duplicate code
17444 to set prev_from_syntax, above start of main loop.
17445 At startinstring, check syntax when checking for a match.
17446
174471999-01-22 Jason Rumney <jasonr@altavista.net>
17448
17449 * w32bdf.c: New file.
17450 * w32bdf.h: New file.
17451 * makefile.nt: Add w32bdf.c and w32bdf.h.
17452
17453 * w32gui.h: Include w32bdf.h.
17454 (W32FontStruct) Add bdf element.
17455
17456 * w32term.h (FONT_WIDTH, FONT_HEIGHT, FONT_BASE, FONT_MAX_WIDTH):
17457 Support BDF fonts.
17458
17459 * w32term.c (W32_TEXTOUT): New macro.
17460 (dumpglyphs): Support BDF fonts. Use W32_TEXTOUT macro.
17461 Simplify baseline calculation. Detect SJIS by font, not glyph.
17462 Call SetTextAlign.
17463 (syms_of_w32term): Remove "jisx0212-sjis" from
17464 w32-charset-to-codepage-alist.
17465 Replace "ksc5601" with "ksc5601.1987" in w32-charset-to-codepage-alist.
17466 Add "ksc5601.1992' to w32-charset-to-codepage-alist.
427ec082 17467
26901792
DL
17468 * w32fns.c (Vw32_bdf_filename_alist): New variable.
17469 (x_destroy_bitmap): Returns void not int.
17470 (x_set_border_pixel): Returns void.
17471 (w32_load_bdf_font): New function.
17472 (w32_load_system_font): New function, was w32_load_font. List
17473 fonts before loading. Explicitly set encoding for SJIS fonts.
17474 Set default_ascent to 0 as comment indicates.
17475 (w32_load_font): Call w32_load_system_font and w32_load_bdf_font.
17476 (w32_unload_font): Support BDF fonts.
17477 (w32_to_x_charset): Fix mappings to avoid wildcard mismatches.
17478 Autodetect whether to use koi8-r instead of iso8859-5.
17479 Associate "ksc5601.1987" with HANGUEL_CHARSET.
17480 Associate "ksc5601.1992" with JOHAB_CHARSET.
17481 (x_to_w32_charset): Make consistent with w32_to_x_charset.
17482 (w32_to_x_font): Add resolution.
17483 (x_to_w32_font): Use font resolution to calculate height if supplied.
17484 (w32_font_match): Handle wildcards anywhere within field.
17485 (enumfont_t): Remove unused head pointer.
17486 (enum_font_cb2): Dereference elfLogFont.
17487 (w32_list_bdf_fonts): New function.
17488 (w32_list_fonts): Use one_w32_dispay_info instead of insisting on
17489 valid frame. Remove MessageBox. Support BDF fonts.
17490 (Fw32_find_bdf_fonts): New function.
17491 (syms_of_w32fns): Add Vw32_bdf_filename_alist and
17492 Sw32_find_bdf_fonts.
17493
174941999-01-21 Andrew Innes <andrewi@gnu.org>
17495
17496 * makefile.nt (temacs): Use del to delete file, not rm.
17497
174981999-01-19 Richard Stallman <rms@psilocin.ai.mit.edu>
17499
17500 * keyboard.c (read_key_sequence): Fix previous change.
17501
17502 * xterm.c (same_x_server): Detect treat ":0" and "unix:0"
17503 as the same. Treat "myname:0" as the same as those two.
17504
175051999-01-19 Jason Rumney <jasonr@altavista.net>
17506
17507 * w32fns.c (x_to_w32_charset): Add iso8859-9.
17508 (w32_to_x_charset): Fix charset mappings.
17509
17510 * w32term.c: Remove codepage macros. Remove redundant BIG5 macros.
17511 (dumpglyphs): Move definitions out of block containing goto.
17512 Remove redundant code for BIG5.
17513 Use w32_codepage_for_font instead of
17514 w32_codepage_for_charset. Add cast to int where float
17515 operation is assigned to int.
17516 (Vw32_charset_to_codepage_alist): New variable.
17517 (w32_codepage_for_charset): Removed.
427ec082
SS
17518 (w32_codepage_for_font): New function, replacing
17519 w32_codepage_for_charset.
26901792
DL
17520 (syms_of_w32term): Add and initialize
17521 w32-charset-to-codepage-alist.
17522
175231999-01-17 Richard Stallman <rms@psilocin.ai.mit.edu>
17524
17525 * xselect.c (x_handle_selection_clear): Don't clear the
17526 selection if Emacs still owns it through a different display.
17527
175281999-01-17 Andrew Innes <andrewi@gnu.org>
17529
17530 * w32proc.c: (w32_executable_type): Relax the check to identify
17531 cygwin-compiled applications, because the exact dll name varies
17532 with release. Now only require the name to start "cygwin".
17533
17534 * w32heap.h: (ROUND_UP):
17535 (ROUND_DOWN): New macros.
17536 (need_to_recreate_heap): Renamed to using_dynamic_heap.
17537 (init_heap): New extern.
17538 (data_region_size):
17539 (recreate_heap):
17540 (read_in_bss):
17541 (map_in_heap):
17542 (round_to_next):
17543 (w32_fatal_reload_error):
17544 (get_section_size): Obsolete externs removed.
17545
17546 * w32heap.c: (RVA_TO_PTR): Redefine to convert RVA to address in
17547 current process.
17548 (round_to_next): Obsolete function removed.
17549 (preload_heap_section): New variable.
17550 (data_region_size): Obsolete variable removed.
17551 (allocate_heap): Modified to determine end of static heap section
17552 used during preload, and use that as initial base address for
17553 dynamic heap instead of hard-coded value.
17554 (sbrk): Remove call to allocate_heap; handled by init_heap. Skip
17555 calls to commit or decommit pages when allocating from static heap
17556 section during preload.
17557 (recreate_heap): Obsolete function removed.
17558 (init_heap): New function to initialize internal sbrk heap
17559 variables. Uses static heap section during preload, otherwise
17560 calls allocate_heap to reserve a heap region dynamically.
17561 (round_heap): Use ROUND_UP macro instead of round_to_next.
17562
17563 * unexw32.c: Major rewrite to support cleaner method of dumping; a
17564 static "bss" section is used for heap space during preload, and
17565 bss data is now written to the proper section area when dumping.
17566 (need_to_recreate_heap): Renamed to using_dynamic_heap.
17567 (heap_index_in_executable): Obsolete variable removed.
17568 (data_section): New variable.
17569 (data_start_va): Renamed to data_start.
17570 (data_start_file): Obsolete variable removed.
17571 (bss_section):
17572 (extra_bss_size):
17573 (bss_section_static):
17574 (bss_start_static):
17575 (bss_size_static):
17576 (extra_bss_size_static):
17577 (heap_section): New variables.
17578 (_start): Remove code based on old unexec method. Call init_heap
17579 to initialize sbrk heap.
17580 (close_file_data): Update size of file when closing, so that
17581 unexec doesn't have to work out exact size in advance.
17582 (get_bss_info_from_map_file):
17583 (get_section_size): Obsolete functions removed.
17584 (rva_to_section): Fix minor bug, and add a work-around for a bug
17585 in very old linkers.
17586 (offset_to_section):
17587 (relocate_offset): New functions.
17588 (OFFSET_TO_RVA):
17589 (RVA_TO_OFFSET):
17590 (RVA_TO_SECTION_OFFSET):
17591 (PTR_TO_RVA):
17592 (PTR_TO_OFFSET):
17593 (OFFSET_TO_PTR): New macros.
17594 (get_section_info): Modify to support new unexec method;
17595 determines address ranges in process that need dumping, and COFF
17596 sections where data will be dumped. Allows for static and global
17597 bss data to be in separate ranges. No longer relies on knowledge
17598 of section names.
17599 (copy_executable_and_dump_data_section): Renamed
17600 copy_executable_and_dump_data. Completely rewritten to copy
17601 executable section by section, so that raw data areas can be
17602 expanded to hold dumped data as necessary. Allows for bss data to
17603 be in same section as initialized data. Reduces size of static
17604 heap section to that used during preload.
17605 (dump_bss_and_heap):
17606 (w32_fatal_reload_error):
17607 (read_in_bss):
17608 (map_in_heap): Obsolete functions removed.
17609 (unexec): Rounds off preload heap to nearest page rather than
17610 virtual allocation unit. Modified to match other changes.
17611
17612 * mem-limits.h: (get_lim_data): Use reserved_heap_size instead of
17613 data_region_size.
17614
17615 * makefile.nt: (TEMACS_TMP): New macro.
17616 ($(TEMACS)): Output to TEMACS_TMP from link, use post-link
17617 processor to add static heap section in support of new unexec.
17618
17619 * lastfile.c: Include config.h to pick up data layout pragmas.
17620 [WINDOWSNT]: Remove explicit pragma.
17621
176221999-01-12 Kenichi Handa <handa@etl.go.jp>
17623
17624 * coding.c (Fdecode_sjis_char): Decode Japanese Katakana character
17625 correctly.
17626 (Fencode_sjis_char): Encode Japanese Katakana character correctly.
17627
176281999-01-11 Dave Love <fx@gnu.org>
17629
17630 * coding.c (syms_of_coding): Doc fix for inhibit-eol-conversion.
17631
176321999-01-11 Richard Stallman <rms@psilocin.ai.mit.edu>
17633
17634 * keyboard.c (read_key_sequence): In key-translation-map and
17635 function-key-map, handle symbol with array as fn def.
17636 In function-key-map, handle symbol with keymap as fn def,
17637 and autoloaded definitions.
427ec082 17638
26901792
DL
17639 * puresize.h (BASE_PURESIZE): Increment to 500000.
17640
17641 * print.c (Qtemp_buffer_setup_hook): New variable.
17642 (syms_of_print): Init and staticpro that.
17643 (temp_output_buffer_setup): Run Qtemp_buffer_setup_hook.
17644
176451999-01-11 Kenichi Handa <handa@etl.go.jp>
17646
17647 * insdel.c (del_range_1): Call signal_after_change.
17648 (del_range_byte): Likewise.
17649 (del_range_both): Likewise.
17650 (del_range_2): Don't call signal_after_change.
17651
17652 * xdisp.c (message_dolog): Use insert_1_both to avoid running any
17653 Lisp code here.
17654
176551999-01-07 Richard Stallman <rms@psilocin.ai.mit.edu>
17656
17657 * eval.c (find_handler_clause): If SIG is nil (memory full error),
17658 never run the debugger, and don't bother checking the args
17659 to see whether the debugger should be run.
17660
176611999-01-06 Richard Stallman <rms@psilocin.ai.mit.edu>
17662
17663 * keyboard.c (read_key_sequence):
17664 Tell get_keyelt to look handle autoloads.
17665 Handle symbols defined as keymaps, and autoloaded keymaps.
17666
176671999-01-06 Kenichi Handa <handa@etl.go.jp>
17668
17669 * search.c (search_buffer): Fix previous change.
17670
176711999-01-06 Eli Zaretskii <eliz@gnu.org>
17672
17673 * w16select.c (set_clipboard_data): Terminate the text with a null
17674 character. Don't allow to put binary data into the clipboard.
17675 Return zero in case of success, 1 or 2 otherwise.
17676 (get_clipboard_data): Only bail out if the null character is in
17677 the last 32-byte chunk of clipboard data
17678 (Fw16_set_clipboard_data): Make ok and put_status be unsigned. If
17679 they save binary data, print a message in the echo area saying the
17680 text was not put into the clipboard.
17681
17682 * msdos.c (IT_write_glyphs): Move constant expression out of the loop.
17683
176841999-01-06 Andreas Schwab <schwab@gnu.org>
17685
17686 * systty.h [__GLIBC__ >= 2]: Check __FAVOR_BSD instead of
17687 _BSD_SOURCE, the latter is always defined.
17688
176891999-01-05 Richard Stallman <rms@psilocin.ai.mit.edu>
17690
17691 * fns.c (Frequire): Don't fail to unbind bindings.
17692
176931999-01-02 Richard Stallman <rms@psilocin.ai.mit.edu>
17694
17695 * emacs.c (main) [DOUG_LEA_MALLOC]: Don't call r_alloc_reinit.
17696
17697 * charset.c (Ffind_charset_region): Fix doc typo.
17698
176991998-12-31 Eli Zaretskii <eliz@mescaline.gnu.org>
17700
17701 * msdos.c (IT_write_glyphs): Convert unibyte characters to
17702 multibyte in unibyte buffers only.
17703
17704 * keymap.c (Fdefine_prefix_command): Accept a third argument NAME
17705 and pass it to Fmake_sparse_keymap.
17706
177071998-12-29 Richard Stallman <rms@psilocin.ai.mit.edu>
17708
17709 * alloc.c (MMAP_MAX_AREAS): New macro.
17710 (allocate_vectorlike, make_uninit_multibyte_string): Use that.
17711 (init_alloc_once): Use that.
17712
17713 * s/gnu-linux.h [DOUG_LEA_MALLOC] (REL_ALLOC): Undefine it.
17714
17715 * alloc.c (lisp_malloc, lisp_free): New functions.
17716 Use them instead of malloc, xmalloc, and xfree, for Lisp objects.
17717 Don't set allocating_for_lisp in the callers; let lisp_malloc do it.
17718 (n_interval_blocks, n_float_blocks): New variable.
17719 (n_cons_blocks, n_vectors, n_symbol_blocks): New variable.
17720 (n_marker_blocks, n_string_blocks): New variable.
17721 (init_intervals, make_interval): Set a count variable.
17722 Use lisp_malloc instead of setting allocating_for_lisp.
17723 (init_float, make_float, init_cons, Fcons): Likewise.
17724 (allocate_vectorlike, init_symbol, Fmake_symbol): Likewise
17725 (init_marker, allocate_misc, init_strings): Likewise.
17726 (make_uninit_multibyte_string): Likewise.
17727 (gc_sweep, compact_strings): Decrement the count variables.
17728
17729 * alloc.c (uninterrupt_malloc): Don't store Emacs's hooks
17730 into the old_..._hook variables.
17731
177321998-12-28 Richard Stallman <rms@psilocin.ai.mit.edu>
17733
17734 * keyboard.c: In each active map, for each menu bar item, use only
17735 the first submap.
17736 (menu_bar_one_keymap): Initialize menu_bar_one_keymap_changed_items.
17737 (menu_bar_item): Update and test menu_bar_one_keymap_changed_items.
17738 (syms_of_keyboard): Staticpro and init it.
17739
427ec082 17740 * xmenu.c (single_keymap_panes):
26901792
DL
17741
177421998-12-28 Andrew Innes <andrewi@delysid.gnu.org>
17743
17744 * w32fns.c (w32_msg_pump): Ignore WM_NULL message posted to thread
17745 by complete_deferred_msg.
17746 (post_character_message): Cancel all deferred messages when
17747 quit_char is typed, in order to break out of potential deadlocks.
17748 (cancel_all_deferred_msgs): New function.
17749 (complete_deferred_msg): Don't abort if msg not found; may have
17750 been cancelled.
17751 (Fw32_reconstruct_hot_key): Use pre-interned symbols.
17752 (Fw32_send_sys_command): Wait for system command to
17753 complete before returning.
427ec082 17754
26901792
DL
17755 * w32term.c (x_iconify_frame): Wait for frame to be iconified; do
17756 not set async_iconified flag though.
17757
17758 * w32proc.c: (Vw32_start_process_inherit_error_mode): New variable.
17759 (create_child): Use it.
17760 (syms_of_ntproc): Defvar it. Also fix docstrings for
17761 w32-start-process-share-console and w32-start-process-show-window.
17762
17763 * unexw32.c (_start): Force system calls accessing unmounted
17764 devices to fail without prompting.
17765
177661998-12-26 Richard Stallman <rms@psilocin.ai.mit.edu>
17767
17768 * emacs.c (main): Call memory_warnings and uninterrupt_malloc
17769 even when starting the dumped Emacs.
17770
17771 * keymap.c (Fsingle_key_description): Handle (control ?x) etc.
17772 (Fkey_description): Handle lists like vectors.
17773
177741998-12-21 Kenichi Handa <handa@etl.go.jp>
17775
17776 * callint.c (Fcall_interactively) <'C'>: Give Fread_char Qnil
17777 because of the change of the second argument of Fread_char.
17778
17779 * charset.c (Fcharset_after): Check range. If POS is out of
17780 range, return nil.
17781
17782 * keyboard.c (read_char): Don't bind input-method-exit-on-first-char.
17783
17784 * lread.c (Fread_char): Change the meaning of the second argument.
17785 (Fread_event): Likewise.
17786 (Fread_char_exclusive): Likewise.
17787
17788 * print.c (printchar): Fix previous change.
17789
17790 * process.c (read_process_output): Decide the multibyteness of
17791 string given to a process filter by a coding system used for
17792 decoding the process output.
17793
177941998-12-21 Eli Zaretskii <eliz@mescaline.gnu.org>
17795
17796 * xterm.c (dumpglyphs): Don't convert 7-bit ASCII characters via
17797 nonascii-translation-table.
17798 * msdos.c (IT_write_glyphs): Likewise.
17799 * fns.c (concat): Likewise.
17800 * charset.c (unibyte_char_to_multibyte): Likewise.
17801 * insdel.c (copy_text, count_size_as_multibyte): Likewise.
17802
178031998-12-21 Andreas Schwab <schwab@delysid.gnu.org>
17804
17805 * doc.c (Fdocumentation): Change the doc string for prefix
17806 commands to make it a complete sentence in one line.
17807
178081998-12-16 Petri Kaurinkoski <Petri.Kaurinkoski@hut.fi>
17809
17810 * s/irix6-5.h: New file.
17811 * s/irix6-0.h (IRIX6): Define this symbol.
17812 * s/usg5-4.h (TIOCSIGSEND): Don't define this if irix6.
17813 (bcopy, bcmp, bzero): Likewise.
17814 * m/iris4d.h (LIBS_MACHINE): Leave this blank if irix6.5.
17815 (C_SWITCH_MACHINE): New value for irix6.5.
17816
178171998-12-15 Richard Stallman <rms@gnu.org>
17818
17819 * fns.c (Fbase64_decode_region, Fbase64_decode_string):
17820 Do free malloc'd memory even in case of failure. Use xfree, not free.
17821 (Fbase64_encode_region, Fbase64_encode_string): Use xfree, not free.
17822 (base64_decode_1): Don't fail for short lines.
17823
17824 * print.c (printchar): Outputting multibyte characters
17825 to echo area always makes it multibyte.
17826
17827 * search.c (search_buffer): Don't use Boyer-Moore
17828 to search for an invalid multibyte code.
17829 In unibyte case, no need to check whether there are translations
17830 in more than one charset; just set charset_base to 0.
17831
178321998-12-15 Ken'ichi Handa <handa@delysid.gnu.org>
17833
17834 * print.c (printchar): Cancel previous change.
17835
178361998-12-15 Kenichi Handa <handa@etl.go.jp>
17837
17838 * callproc.c: Include "ccl.h".
17839 (Fcall_process): Doc-string modified. Set CODING_MODE_LAST_BLOCK
17840 bit in argument_coding.mode to tell encoding procedure to flush
17841 data. While encoding arguments, if argument_coding uses CCL
17842 program, initialize it again after encoding.
17843 (Fcall_process_region): Doc-string modified. Handle the case that
17844 NARGS is 3.
17845
17846 * ccl.c (CCL_SUCCESS): Don't set ccl->ic.
17847 (ccl_driver) <CCL_End>: Pretend that all source text is consumed.
17848 Set `ic' to the head of this command.
17849 (ccl_driver) <CCL_ReadMultibyteChar2>: Return a single byte 8-bit
17850 code for an invalid code.
17851 (setup_ccl_program): If the arg VEC is nil, skip setting ups
17852 based on VEC.
17853
17854 * charset.c (Qunknown): New variable.
17855 (init_charset_once): Intern and staticpro Qunknown. Initialize
17856 all elements of Vcharset_symbol_table to Qunknown.
17857 (find_charset_in_str): New arg MULTIBYTE. If it is zero, check
17858 unibyte characters only. For an invalid composition sequence, set
17859 CHARSETS[1] to 1.
17860 (Ffind_charset_region): Call find_charset_in_str with an
17861 appropriate MULTIBYTE arg. If undefined charsets are found,
17862 include `unknown' is the return value.
17863 (Ffind_charset_string): Likewise.
17864 (Fsplit_char): If CHAR is invalid, return `(unknown CHAR)'.
17865 (str_cmpchar_id): Max composite character code should be less than
17866 GENERIC_COMPOSITION_CHAR.
17867
17868 * charset.h (find_charset_in_str): Update declaration.
17869
17870 * coding.c (DECODE_DESIGNATION): Jump to label_invalid_code if
17871 final_char is invalid.
17872 (decode_coding): If coding->type is coding_type_ccl, call
17873 ccl_coding_driver even if SRC_BYTES is zero.
17874 (code_convert_region): Update `inserted' correctly after calling
17875 coding->post_read_conversion. Even after the code converter
17876 consumed all source text, call it once more if it is
17877 coding_type_ccl to flush out data.
17878
17879 * fileio.c (Finsert_file_contents): Even if INSERTED is zero, if
17880 CODING is handled by CCL program, call code_convert_region.
17881
17882 * fns.c (string_char_to_byte): Handle invalid multibyte sequence
17883 correctly.
17884 (string_byte_to_char): Likesize.
17885
17886 * print.c (printchar): When outputting a multibyte character to
17887 echo area, always set message_enable_multibyte to 1.
17888
17889 * process.c (read_process_output): If NBYTES is zero and
17890 CODING_MODE_LAST_BLOCK bit is not yet set in coding->mode, set it
17891 and try decoding again.
17892 (Fprocess_send_eof): If the coding system of PROCESS
17893 requires flushing, call send_process with null-string at first.
17894
17895 * w16select.c (Fw16_set_clipboard_data): Call find_charset_in_str
17896 with MULTIBYTE arg 0.
17897 * w32select.c (Fw32_set_clipboard_data): Likewise.
17898 * xselect.c (lisp_data_to_selection_data): Likewise.
17899
179001998-11-30 Richard Stallman <rms@psilocin.ai.mit.edu>
17901
17902 * search.c (Freplace_match): Set OPOINT clearly for the case
17903 where point is in the middle of the text to be replaced.
17904
17905 * xdisp.c (display_text_line): When handling HPOS < 0 after loop,
17906 if compute_motion fails to advance at all, don't back it up.
17907
179081998-12-10 Geoff Voelker <voelker@cs.washington.edu>
17909
17910 * w32.c (w32_get_long_filename): Handle root dirs correctly.
17911
427ec082 17912 * s/ms-w32.h (LOCALTIME_CACHE): Define.
26901792
DL
17913
179141998-12-09 Richard Stallman <rms@gnu.org>
17915
17916 * insdel.c (insert_from_buffer_1): Properly count the size
17917 of output from conversion to multibyte even when input
17918 is split across the gap.
17919
179201998-12-09 Karl Heuer <kwzh@gnu.org>
17921
17922 * keyboard.c: Doc fixes.
17923
17924 * s/irix4-0.h (C_SWITCH_SYSTEM) [!__GNUC__]: Increase space.
17925
179261998-12-08 Andrew Innes <andrewi@harlequin.co.uk>
17927
17928 * w32select.c (Fw32_get_clipboard_data): Do not delete isolated CR
17929 characters, only convert CRLF to LF.
17930
179311998-12-08 Geoff Voelker <voelker@cs.washington.edu>
17932
17933 * makefile.nt: Do string comparision of _NMAKE_VER.
17934
179351998-12-06 Eli Zaretskii <eliz@mescaline.gnu.org>
17936
17937 * Makefile.in (msdos.o): Depend on termchar.h, charset.h,
17938 coding.h, and disptab.h
17939
17940 * msdos.c (Vdos_unsupported_char_glyph): New variable.
17941 (syms_of_msdos): DEFVAR_LISP it.
17942 (IT_insert_glyphs, IT_delete_glyphs): New functions which abort Emacs.
17943 (internal_terminal_init): Set up insert_glyphs_hook and
17944 delete_glyphs_hook to call them. Explicitly set char_ins_del_ok to 0.
17945 (unibyte_display_via_language_environment): New variable.
17946 (syms_of_msdos): Devfar it.
17947 (IT_write_glyphs): Honor glyph aliasing via Vglyph_table.
17948 Encode the character codes of the glyphs according to the
17949 terminal_coding in effect.
17950
179511998-12-04 Andreas Schwab <schwab@delysid.gnu.org>
17952
17953 * fns.c (Fstring_as_unibyte): Doc fix.
17954
179551998-12-03 Andreas Schwab <schwab@delysid.gnu.org>
17956
17957 * charset.h: Declare char_valid_p.
17958
179591998-12-03 Eli Zaretskii <eliz@mescaline.gnu.org>
17960
17961 * dosfns.c (dos_cleanup): Flush and fsync the termscript stream.
17962
17963 * msdos.c (init_environment): Record the time we started up.
17964 (IT_reset_terminal_modes): Don't restore the screen if we exit too
17965 fast after startup (aka crash).
17966
179671998-12-02 Geoff Voelker <voelker@cs.washington.edu>
17968
17969 * w32.c (check_windows_init_file): Use decode_env_path when
17970 using EMACSLOADPATH.
17971
179721998-12-02 Jason Rumney <jasonr@altavista.net>
17973
17974 * w32term.c (dumpglyphs): Use unsigned char arrays.
17975 Use FONT_MAX_WIDTH to detect and fudge proportional fonts
17976 for various languages.
17977 Compensate for fonts that have underhangs (e.g., Thai).
17978
17979 * w32term.h (FONT_MAX_WIDTH): New macro.
17980
179811998-12-02 Andrew Innes <andrewi@harlequin.co.uk>
17982
17983 * keyboard.c (Qlanguage_change): New variable.
17984 (syms_of_keyboard): Init it.
17985 (kbd_buffer_get_event) [WINDOWSNT]: Generate language-change events.
17986 (lispy_function_keys) [HAVE_NTGUI]: Remove names for modifier
17987 keys; add name for Escape key; extend to 256 elements.
17988 (parse_modifiers): Make non-static.
17989
17990 * keyboard.h (parse_modifiers): Declare prototype.
17991
17992 * termhooks.h (event_kind) [WINDOWSNT]: Define language_change_event.
17993
17994 * w32fns.c (w32_last_error): Fix cut+paste error.
17995 (Vw32_phantom_key_code): New variable.
17996 (Qhyper, Qsuper, Qmeta, Qalt, Qctrl, Qcontrol, Qshift): New variables.
17997 (syms_of_w32fns): Init and register them.
17998 (reset_modifiers): Use a more precise test for whether Emacs has
17999 keyboard focus. Synchronize state of all keys that can be used as
18000 modifiers, to overcome problems arising from hot-keys.
18001 (w32_key_to_modifier): Be careful not to call intern() to avoid
18002 requiring thread synchronization.
18003 (w32_msg_pump): Handle new WM_EMACS_TOGGLE_LOCK_KEY message.
18004 (w32_wnd_proc): Ensure lock key indicator lights are updated
18005 promptly on Windows 9x, by passing key events on to the system.
18006 (w32_wnd_proc): Use Vw32_phantom_key_code to stop system
18007 responding to Windows key events when not wanted.
18008 (w32_wnd_proc): Undo the mapping of Ctrl-Pause into cancel and
18009 Ctrl-NumLock into pause by the system.
18010 (w32_wnd_proc): Don't translate key combinations containing any
18011 modifiers other than shift (and capslock).
18012 (w32_wnd_proc): Reset modifier key states when receiving focus (we
18013 can't determine the key states until we have keyboard focus).
18014 (Fw32_toggle_lock_key): New function.
18015 (syms_of_w32fns): Defsubr it.
18016
18017 * w32inevt.c (key_event): Use Vw32_phantom_key_code. Undo the
18018 mapping of Ctrl-Pause into cancel, and Ctrl-NumLock into pause.
18019 (w32_console_toggle_lock_key): New function.
18020
18021 * w32term.h (WM_EMACS_TOGGLE_LOCK_KEY): New define.
18022
180231998-11-30 Richard Stallman <rms@psilocin.ai.mit.edu>
18024
18025 * search.c (Freplace_match): Set OPOINT clearly for the case
18026 where point is in the middle of the text to be replaced.
18027
18028 * xdisp.c (display_text_line): When handling HPOS < 0 after loop,
18029 if compute_motion fails to advance at all, don't back it up.
18030
180311998-11-28 Richard Stallman <rms@psilocin.ai.mit.edu>
18032
18033 * xfns.c (Qouter_window_id): New variable.
18034 (syms_of_xfns): Initialize it.
18035 (x_report_frame_params): Set up outer-window-id parameter.
18036
18037 * keymap.c (Fsingle_key_description): Fix previous change.
18038
180391998-11-26 Ken'ichi Handa <handa@delysid.gnu.org>
18040
18041 * lisp.h (Frequire): Update declaration.
18042
180431998-11-26 Kenichi Handa <handa@etl.go.jp>
18044
18045 * ccl.c (ccl_driver) <CCL_TranslateCharacter>: Don't suppress MSB
18046 if the charset is ascii.
18047 (ccl_driver) <CCL_TranslateCharacterConstTbl>: Likewise.
18048
18049 * charset.c (non_ascii_char_to_string): If C has modifier bits,
18050 make an appropriate one byte string.
18051 (char_bytes): Handle the case that C is a single byte char or has
18052 modifier bits.
18053
18054 * charset.h (CHAR_BYTES): If C has modifier bits, return 1.
18055
18056 * cmds.c (internal_self_insert): If C has modifier bits, insert
18057 appropriate one byte char.
18058
180591998-11-25 Richard Stallman <rms@psilocin.ai.mit.edu>
18060
18061 * fns.c (Fstring_as_unibyte, Fstring_as_multibyte):
18062 Clear text properties in the new string.
18063
180641998-11-24 Felix Lee <flee@cygnus.com>
18065
18066 * process.c (read_process_output): Call signal_after_change.
18067
180681998-11-24 Richard Stallman <rms@psilocin.ai.mit.edu>
18069
18070 * buffer.c (syms_of_buffer): Doc fix.
18071
18072 * keyboard.c (syms_of_keyboard): Doc fix.
18073
180741998-11-22 Richard Stallman <rms@psilocin.ai.mit.edu>
18075
18076 * frame.c (Fset_mouse_position): Doc fix.
18077
180781998-11-20 Richard Stallman <rms@psilocin.ai.mit.edu>
18079
18080 * keymap.c (Fmake_keymap): Doc fix.
18081
180821998-11-17 Kenichi Handa <handa@etl.go.jp>
18083
18084 * category.c (word_boundary_p): If C1 or C2 are composite
18085 characters, test their first components.
18086
180871998-11-16 Richard Stallman <rms@sucrose.ai.mit.edu>
18088
18089 * window.c (temp_output_buffer_show): Around temp-buffer-show-hook,
18090 don't do save-excursion, just restore selected window.
18091
18092 * window.c (window_loop): For UNSHOW_BUFFER,
18093 always do consider minibuffer windows.
427ec082 18094
26901792
DL
180951998-11-16 Kenichi Handa <handa@etl.go.jp>
18096
18097 * charset.h (SINGLE_BYTE_CHAR_P): Check if C is negative or not.
18098
18099 * charset.c (non_ascii_char_to_string): If C is negative, signal error.
18100
18101 * lisp.h (CHAR_TABLE_REF): Check if IDX is negative or not.
18102
18103 * s/bsdos4.h: New file.
18104
181051998-11-16 Kenichi Handa <handa@etl.go.jp>
18106
18107 * Makefile.in (abbrev.o): Depend on charset.h
18108 (bytecode.o): Depend on charset.h.
18109
18110 * bytecode.c: Include charset.h.
18111
18112 * abbrev.c: Include charset.h.
18113
18114 * syntax.h (SYNTAX_ENTRY_INT): For a composite character, check
18115 the first component.
18116
181171998-11-13 Ehud Karni <ehud@unix.simonwiesel.co.il>
18118
18119 * m/aviion-intel.h (LIBS_MACHINE): Delete redundant definition.
18120
181211998-11-11 Richard Stallman <rms@gnu.org>
18122
18123 * xterm.c (XTread_socket): Fix previous change in case F == 0.
18124
18125 * s/dgux5-4-3.h (BSD_PGRPS): Add #undef.
18126
18127 * s/dgux4.h (BROKEN_FIONREAD): #undef commented out.
18128 (INTERRUPT_INPUT): #define commented out.
18129
18130 * m/aviion-intel.h: New file.
18131
181321998-11-11 Eli Zaretskii <eliz@delysid.gnu.org>
18133
18134 * fns.c (MAX_ALLOCA): New macro.
18135 (Fbase64_encode_region, Fbase64_encode_string,
18136 Fbase64_decode_region, Fbase64_decode_string): Don't allocate
18137 more than MAX_ALLOCA bytes with alloca; otherwise use xmalloc.
18138
181391998-11-11 Ken'ichi Handa <handa@delysid.gnu.org>
18140
18141 * insdel.c (byte_combining_error): Error message improved.
18142
18143 * charset.c (char_valid_p): Handle a composite character correctly.
18144
181451998-11-11 Kenichi Handa <handa@etl.go.jp>
18146
18147 * charset.c (str_cmpchar_id): Check the byte sequence for
18148 composition more rigidly.
18149 (Fcompose_string): Allow DEL to be composed. Signal error if STR
18150 contains an invalid multibyte sequence.
18151
18152 * xterm.c (x_list_fonts): Don't change the value of maxnames.
18153
181541998-11-10 Andrew Innes <andrewi@harlequin.co.uk>
18155
18156 * w32term.h (struct w32_display_info): New element faked_key.
427ec082
SS
18157 (WM_EMACS_SETKEYBOARDLAYOUT):
18158 (WM_EMACS_REGISTER_HOT_KEY):
26901792 18159 (WM_EMACS_UNREGISTER_HOT_KEY): New message definitions.
427ec082
SS
18160 (LEFT_WIN_PRESSED):
18161 (RIGHT_WIN_PRESSED):
26901792
DL
18162 (APPS_PRESSED): New console keyboard modifier flags.
18163
18164 * w32term.c (convert_to_key_event): Removed.
18165 (is_dead_key): Copied to w32fns.c.
18166 (w32_read_socket): Generate language_change_event. Modify to work
18167 with keyboard handling changes in w32_wnd_proc.
18168
18169 * w32proc.c (sys_kill): Set extended key flag when faking
18170 Ctrl-Break keystrokes.
18171 (Fw32_get_locale_info): Allow LONGFORM parameter to specify an
18172 arbitrary locale property using a numerical index.
18173 (Vw32_valid_codepages): New variable.
427ec082
SS
18174 (enum_codepage_fn):
18175 (Fw32_get_valid_codepages):
18176 (Fw32_get_console_codepage):
18177 (Fw32_set_console_codepage):
18178 (Fw32_get_console_output_codepage):
18179 (Fw32_set_console_output_codepage):
18180 (Fw32_get_codepage_charset):
18181 (Fw32_get_valid_keyboard_layouts):
18182 (Fw32_get_keyboard_layout):
26901792
DL
18183 (Fw32_set_keyboard_layout): New functions, exposing Windows locale
18184 handling functions.
18185 (syms_of_ntproc): Register them.
18186
18187 * w32inevt.c: Include w32term.h and w32heap.h.
18188 (map_keypad_keys):
18189 (Vw32_enable_caps_lock):
18190 (Vw32_enable_num_lock):
18191 (Vw32_pass_lwindow_to_system):
18192 (Vw32_pass_rwindow_to_system):
18193 (Vw32_lwindow_modifier):
18194 (Vw32_rwindow_modifier):
18195 (Vw32_apps_modifier):
18196 (Vw32_scroll_lock_modifier):
18197 (w32_key_to_modifier): Add externs.
18198 (w32_kbd_mods_to_emacs): Recognize Windows keys, Apps key, and
18199 Scroll Lock as potential modifiers; exclude numpad keys from
18200 effect by CapsLock; act on Vw32_enable_caps_lock; remove obsolete
18201 code.
18202 (is_dead_key): Copy from w32fns.c.
18203 (w32_kbd_patch_key): Comment attempt to improve handling of
18204 dead-keys, and system bug relating to same on Windows NT. Work
18205 around the bug by calling ToUnicode and then converting to the
18206 correct codepage.
18207 (map_virt_key): Removed obsolete variable.
18208 (lispy_function_keys): Add extern.
18209 (key_event): Major rework of keyboard input handling: optionally
18210 recognize Windows keys and Apps key as modifiers; optionally treat
18211 NumLock, CapsLock and ScrollLock as function keys; let system
18212 translate keystrokes to characters to avoid system bugs relating
18213 to dead-key handling; preserve shift distinction for control
18214 characters. Remove some obsolete code.
18215
18216 * makefile.nt ($(BLD)\w32inevt.obj): Add dependencies on w32term.h
18217 and w32heap.h.
18218
18219 * w32fns.c (Vw32_pass_optional_keys_to_system): Variable removed.
18220 (Vw32_pass_lwindow_to_system):
18221 (Vw32_pass_rwindow_to_system):
18222 (Vw32_lwindow_modifier):
18223 (Vw32_rwindow_modifier):
18224 (Vw32_apps_modifier):
18225 (Vw32_enable_num_lock):
18226 (Vw32_enable_caps_lock):
18227 (Vw32_scroll_lock_modifier): New variables.
18228 (modifier_set): Return toggle state for Scroll Lock.
18229 (w32_key_to_modifier): New function. Returns chosen modifier bit
18230 for given key.
18231 (w32_get_modifiers): Returns modifier flags for
18232 non-keyboard input events.
18233 (construct_console_modifiers): Renamed from construct_modifiers;
18234 recognize Windows and Apps keys as modifiers.
18235 (w32_get_key_modifiers): New function. Returns modifier flags for
18236 keyboard input events.
18237 (map_keypad_keys): Make non-static. Use second arg as extended
18238 flag.
18239 (w32_grabbed_keys): New variable.
18240 (HOTKEY, HOTKEY_ID, HOTKEY_VK_CODE, HOTKEY_MODIFIERS): New macros.
18241 (register_hot_keys):
18242 (unregister_hot_keys):
18243 (lookup_vk_code):
18244 (w32_parse_hot_key):
18245 (Fw32_register_hot_key):
18246 (Fw32_unregister_hot_key):
18247 (Fw32_registered_hot_keys):
18248 (Fw32_reconstruct_hot_key): New functions to support hotkeys.
18249 (post_character_message): New function.
18250 (w32_msg_pump): Handle new messages for using hotkeys and changing
18251 keyboard layout/language.
18252 (w32_wnd_proc): Major rework of keyboard input handling:
18253 optionally recognize Windows keys and Apps key as modifiers;
18254 optionally treat NumLock, CapsLock and ScrollLock as function
18255 keys; let system translate keystrokes to characters to avoid
18256 system bugs relating to dead-key handling; preserve shift
18257 distinction for control characters; forward keyboard
18258 layout/language changes to lisp; detect and convert hot-key events
18259 to normal keystrokes.
18260 (syms_of_w32fns): Register new functions and variables.
18261 (w32_last_error): New function for use in debugging.
18262
182631998-11-10 Kenichi Handa <handa@etl.go.jp>
18264
18265 * category.h (CATEGORY_SET): Adjusted for the change of
18266 cmpchar_component.
18267 (CATEGORY_SET): Likewise.
18268
18269 * charset.c (cmpchar_component): New arg NOERROR. Check
18270 composition char ID more strictly.
18271 (Fcmpchar_component): Call cmpchar_component with NOERROR arg zero.
18272 (Fcmpchar_cmp_rule): If CHARACTER should be composed relatively,
18273 return 255.
18274 (Fcompose_string): Signal error if STR contains a rule-based
18275 composition character.
18276
18277 * charset.h (cmpchar_component): Proto-type adjusted.
18278
182791998-11-09 Kenichi Handa <handa@etl.go.jp>
18280
18281 * charset.c (string_to_non_ascii_char): Return correct length for
18282 a charset of dimension 2 and composition character.
18283
182841998-11-08 Richard Stallman <rms@sucrose.ai.mit.edu>
18285
18286 * keymap.c (Fsingle_key_description): Handle generic characters.
18287
18288 * process.c (Fprocess_status): Doc fix.
18289
182901998-11-06 Ken'ichi Handa <handa@delysid.gnu.org>
18291
18292 * charset.c (init_charset_once): Fix previous change.
18293
182941998-11-06 Kenichi Handa <handa@etl.go.jp>
18295
18296 * charset.c (string_to_non_ascii_char): Fix previous change.
18297 (char_valid_p): Check the validity of CHARSET by CHARSET_DEFINED_P.
18298
18299 * charset.h (SPLIT_NON_ASCII_CHAR): Check dimension of an invalid
18300 character correctly.
18301 (STRING_CHAR): Handle an invalid charater correctly.
18302
183031998-11-05 Kenichi Handa <handa@etl.go.jp>
18304
18305 * charset.c (string_to_non_ascii_char): Fix previous change.
18306
18307 * charset.h (MAKE_NON_ASCII_CHAR): Check validity of CHARSET.
18308
18309 * editfns.c (Fstring_to_char): Don't return a multibyte character
18310 if STRING is a unibyte string.
18311
18312 * indent.c (MULTIBYTE_BYTES_WIDTH): Check validity of a multibyte
18313 character.
18314
18315 * xdisp.c (display_text_line): Check validity of a multibyte character.
18316 (display_string): Likewise. Handle an invalid character correctly.
18317
183181998-11-05 Karl Heuer <kwzh@gnu.org>
18319
18320 * insdel.c (Fcombine_after_change_execute): Return nil, not junk.
18321 If nothing to do, return immediately.
18322 (syms_of_insdel): Initialize combine_after_change_buffer.
18323
183241998-11-05 Richard Stallman <rms@gnu.org>
18325
18326 * xterm.c (XTread_socket): ButtonPress clears f->mouse_moved.
18327
183281998-11-04 Geoff Voelker <voelker@cs.washington.edu>
18329
18330 * w32term.c (w32_enable_unicode_output): Rename from
18331 w32_no_unicode_output.
18332 (w32_use_unicode_for_codepage, syms_of_w32term): Use new name
18333 and new semantics.
18334
183351998-11-04 Jason Rumney <jasonr@altavista.net>
18336
18337 * w32fns.c (w32_list_fonts): Report an error if a frame has not
18338 been created yet.
18339
18340 * w32term.c (dumpglyphs): Use FRAME_FONT for w32_fill_area.
18341
183421998-11-04 Kenichi Handa <handa@etl.go.jp>
18343
18344 * charset.c (string_to_non_ascii_char): Change the check for the
18345 varidity of multibyte form.
18346 (update_charset_table): Check validity of BYTES. Don't set
18347 bytes_by_char_head here.
18348 (init_charset_once): Set bytes_by_char_head completely.
18349
18350 * frame.c (do_switch_frame): Cancel previous change.
18351
18352 * print.c (print_string): Check validity of a character.
18353 (print): Likewise.
18354
18355 * sysdep.c [nec_ews_svr4]: Extern *_sobuf.
18356
18357 * m/ews4800.h, s/ux4800.h: New files.
18358
183591998-11-03 Theodore Jump <tjump@tertius.com>
18360
18361 * makefile.nt: Compile multiple source files when possible.
18362
18363 * w32faces.c (Qmouse_face): Replace definition with extern decl.
427ec082 18364
26901792
DL
183651998-11-03 Andrew Innes <andrewi@delysid.gnu.org>
18366
18367 * w32.c (stat): GetFileInformationByHandle can legitimately fail,
18368 so don't rely on it succeeding.
18369
18370 * w32fns.c (x_to_w32_font): Specify DEFAULT_CHARSET in the w32
18371 LOGFONT struct if x font doesn't specify the charset.
18372 (x_to_w32_charset): Change >= to == when testing results of
18373 stricmp.
18374
183751998-11-02 Richard Stallman <rms@sucrose.ai.mit.edu>
18376
18377 * fns.c (Frequire): New arg NOERROR.
18378
183791998-11-02 Andrew Innes <andrewi@harlequin.co.uk>
18380
18381 * fileio.c (Fsubstitute_in_file_name) [DOS_NT]: Fix typo.
18382
183831998-10-31 Richard Stallman <rms@psilocin.ai.mit.edu>
18384
18385 * xfaces.c (Qmouse_face): Replace definition with extern decl.
18386 (syms_of_xfaces): Initialization deleted.
18387
18388 * textprop.c (Qmouse_face): Variable definition moved here.
18389 (syms_of_textprop): Initialize it.
18390
18391 * data.c (set_internal): For built-in maybe-local vars,
18392 when BINDFLAG is set, do not mark them as local.
18393
183941998-10-31 Ken'ichi Handa <handa@delysid.gnu.org>
18395
18396 * insdel.c (replace_range): Fix previous change.
18397
183981998-10-31 Kenichi Handa <handa@etl.go.jp>
18399
18400 * editfns.c (Fsubst_char_in_region): Fix previous change.
18401 (Ftranslate_region): Fix previous change.
18402
18403 * fns.c (Fbase64_decode_region): Fix previous change.
18404
18405 * frame.c (do_switch_frame): Update minibuf_window if necessary.
18406
18407 * insdel.c (byte_combining_error): New function.
18408 (CHECK_BYTE_COMBINING_FOR_INSERT): Call byte_combining_error.
18409 (insert_from_string_1): Set *(GPT_ADDR) to 0 before calling
18410 CHECK_BYTE_COMBINING_FOR_INSERT.
18411 (insert_from_buffer_1): Likewise.
18412 (adjust_after_replace): Check the posibility of inhibitted byte
18413 combining correctly.
18414 (replace_range): Before signaling an error for inhibitted byte
18415 combining, recover the buffer in a safe state.
18416 (del_range_2): Check the posibility of inhibitted byte combining
18417 correctly.
18418
184191998-10-30 Andreas Schwab <schwab@delysid.gnu.org>
18420
18421 * xselect.c (Vselection_coding_system): Doc fix.
18422
18423 * fns.c (Fbase64_encode_region): Use SET_PT_BOTH instead of SET_PT
18424 when we have both char and byte position. Fix type clashes.
18425
18426 * eval.c (Fsignal): Use a separate format string when passing
18427 error message string to fatal, in case it contains %'s.
18428
18429 * editfns.c (Fchar_after): Fix type clashes.
18430
18431 * charset.c (Fchar_bytes): Doc fix.
18432 (char_bytes): Fix returned value to match returned type.
18433 (syms_of_charset): Fix type clash in initialisation of
18434 Vauto_fill_chars.
18435
184361998-10-29 Geoff Voelker <voelker@cs.washington.edu>
18437
18438 * w32console.c (initialize_w32_display): Use buffer coords
18439 instead of buffer size (which may be larger than the window).
18440
18441 * fileio.c (init_fileio_once): New function.
18442
18443 * emacs.c (main): Invoke init_fileio_once.
18444
184451998-10-28 Paul Eggert <eggert@twinsun.com>
18446
18447 * xterm.c (XTread_socket): Check the returned value of
18448 XmbLookupString more carefully.
18449
184501998-10-28 Kenichi Handa <handa@etl.go.jp>
18451
18452 * coding.c (DECODE_CHARACTER_ASCII): Check validity of inserted code.
18453 (DECODE_CHARACTER_DIMENSION1): Likewise.
18454 (DECODE_CHARACTER_DIMENSION2): Likewise.
18455 (decode_coding_sjis_big5): Check the 2nd byte of SJIS correctly.
18456
18457 * editfns.c (Fsubst_char_in_region): Fix previous change.
18458 (Ftranslate_region): Fix previous change.
18459
18460 * insdel.c (check_markers): Check if markers are at character boundry.
18461 (adjust_markers_for_insert): Fix previous change.
18462 (count_combining_before): Don't limit the check at BEGV.
18463 (count_combining_after): Don't limit the check at ZV.
18464 (CHECK_BYTE_COMBINING_FOR_INSERT): New macro.
18465 (insert_1_both): Call CHECK_BYTE_COMBINING_FOR_INSERT.
18466 (insert_from_string_1): Likewise.
18467 (insert_from_buffer_1): Likewise.
18468 (adjust_after_replace): Inhibit bytes combined across region
18469 boundary. Update end_unchanged correctly.
18470 (replace_range): Call CHECK_BYTE_COMBINING_FOR_INSERT. Update
18471 end_unchanged correctly.
18472 (del_range_2): Inhibit bytes combined across region boundary.
18473 Update end_unchanged correctly.
18474
184751998-10-27 Geoff Voelker <voelker@cs.washington.edu>
18476
18477 * w32.c (check_windows_init_file): Also look in load path specified
18478 in environment.
18479
18480 * w32console.c (Fset_message_beep): Recognize 'silent.
18481 (w32_sys_ring_bell): Do nothing for the 'silent sound.
427ec082 18482
26901792
DL
18483 * w32fns.c (w32_color_map_lookup): Remove duplicate definition.
18484
18485 * w32select.c (Vnext_selection_coding_system): New variable.
18486 (syms_of_w32select): DEFVAR_LISP it.
18487 (Fw32_set_clipboard_data): Use Vnext_selection_coding_system if
18488 non-nil. Always convert multibyte strings.
18489 (Fw32_get_clipboard_data): Use Vnext_selection_coding_system if
18490 non-nil. Always convert a string that includes non-ASCII characters.
427ec082 18491
26901792
DL
184921998-10-27 Richard Stallman <rms@psilocin.ai.mit.edu>
18493
18494 * fns.c (Fbase64_decode_string): Doc fix.
18495 (Fbase64_decode_region, Fbase64_encode_string Fbase64_encode_region):
18496 Likewise.
18497
184981998-10-27 Dave Love <fx@gnu.org>
18499
18500 * fns.c (Fbase64_decode_region, Fbase64_encode_region): Fix
18501 newline in doc string.
18502
185031998-10-27 Kenichi Handa <handa@etl.go.jp>
18504
18505 * editfns.c (Fsubst_char_in_region): Correctly handle the case
18506 that byte combining before happens.
18507 (Ftranslate_region): Likewise.
18508
18509 * insdel.c (adjust_after_replace): Correctly handle the case that
18510 both byte combining before and byte combining after happen.
18511 (replace_range): Likewise.
18512
185131998-10-26 Kenichi Handa <handa@etl.go.jp>
18514
18515 * category.c (syms_of_category): Doc-string modified.
18516
18517 * coding.c (code_convert_region): Kill the work buffer created by
18518 pre-write-conversion.
18519
185201998-10-25 Jason Rumney <jasonr@altavista.net>
18521
18522 * emacs.c (main) [HAVE_NTGUI]: Invoke syms_of_fontset().
18523
185241998-10-23 Kenichi Handa <handa@etl.go.jp>
18525
18526 * coding.c (code_convert_region): While preserving the orignal
18527 point, pay attention to the byte combining problem.
18528
18529 * fns.c (Fbase64_decode_region): Pay attention to the byte
18530 combining problem.
18531
18532 * insdel.c (adjust_markers_for_insert): Adjust markers by taking
18533 combined_before_bytes and combined_after_bytes into account.
18534 (count_combining_after): Handle the case that LENGTH is zero.
18535 (adjust_after_replace): Record deletion at correct buffer
18536 position. Handle the case that LEN is zero.
18537 (replace_range): Record deletion at correct buffer position.
18538 (del_range_2): Call adjust_makers_for_replace to adjust makers for
18539 combined bytes.
18540
185411998-10-21 Richard Stallman <rms@psilocin.ai.mit.edu>
18542
18543 * alloc.c (Fgarbage_collect): Block input around most of the function.
427ec082 18544
26901792
DL
185451998-10-21 Kenichi Handa <handa@etl.go.jp>
18546
18547 * coding.c (setup_coding_system): Fix setting up
18548 coding->spec.ccl.valid_codes for CCL based coding system.
18549 (code_convert_region): Set point to FROM before inserting the
18550 result of pre-write-funciton. Preserve original point.
18551 (code_convert_string): If coding->type is coding_type_ccl, do
18552 conversion even if the length of conversion region is zero.
18553
18554 * fontset.c: Include frame.h before fontset.h.
427ec082 18555 (list_fonts_func): Fix prototype.
26901792
DL
18556
18557 * frame.c: Include frame.h before fontset.h.
18558
18559 * xterm.c: Likewise.
18560
185611998-10-21 Jason Rumney <jasonr@altavista.net>
18562
18563 * x-list-font.c (Fx_list_fonts): Access frame parameters throught
18564 general macros. Don't call x_list_font directory, instead call a
18565 function set in list_fonts_func.
18566
18567 * fontset.h (list_fonts_func): Fix prototype.
18568
185691998-10-20 Jason Rumney <jasonr@altavista.net>
18570
18571 * makefile.nt (w32fns.c): Add x-list-font.c to dependancies.
18572
18573 * w32faces.c: Update comments referring to obsolete structs.
18574 (allocate_face, copy_face, face_eql, load_font,
18575 Fpixmap_spec_p, free_frame_faces, new_computed_face,
18576 frame_update_line_height, merge_faces, compute_base_face,
18577 Fset_face_attribute_internal): Use fontset support based on xfaces.c.
18578
18579 * w32fns.c: (Vx_pixel_size_width): New global variable.
18580 (unibyte_display_via_language_environment): New global variable.
18581 (x_set_font): Add support for setting fontsets.
18582 (Fx_create_frame): Add check_w32(). Initialize fontsets. Fix
18583 font names to match xlfd-tight-regexp.
18584 (w32_load_font): Rewrite based on x_load_font.
18585 (x_to_w32_charset, w32_to_x_charset): Add character sets. Use
18586 `iso8859-1' rather than `ansi'.
18587 (w32_to_x_font): Remove `-' from font name. Remove the `-' off the
18588 end. Move charset into `charset registry' field.
18589 (enum_font_cb2): Check charsets match. Include width in font list.
18590 (w32_list_fonts): Rewrite based on x_list_fonts.
18591 Moved from w32term.c to have access to enumfont_t struct.
18592 (Fx_list_fonts): w32 specific version eliminated. Include
18593 `x-list-fonts.c'.
18594 (w32_get_font_info, w32_query_font, w32_find_ccl_program): New
18595 functions for fontset support - adapted from x_ equivalents.
18596 (syms_of_w32fns): New lisp variables initialised. Function
18597 pointers for fontset.c set up.
18598
427ec082 18599 * w32term.c: Include fontset.h. Define codepage macros.
26901792
DL
18600 Add ENCODE_BIG5 macro from coding.c.
18601 (w32_no_unicode_output): New variable.
18602 (w32_codepage_for_charset, w32_use_unicode_for_codepage): New
18603 functions.
18604 (BUILD_WCHAR_T, BYTE1, BYTE2): New macros.
18605 (dumpglyphs): Rewrite based on xterm.c equivalent.
18606 (x_new_font): Use functionality provided in fontset.c.
18607 (x_new_fontset): New function based on the one in xterm.c.
18608 (syms_of_w32term): Add w32-no-unicode-output flag.
18609
427ec082 18610 * w32term.h: Remove redundant font_info struct definition.
26901792
DL
18611 (Vx_pixel_size_width_font_regexp,
18612 unibyte_display_via_language_environment): Declare variables.
427ec082 18613 (w32_list_fonts, w32_get_font_info, w32_query_font, w32_load_font):
26901792
DL
18614 Declare functions.
18615 (w32_output): New fields font_baseline and fontset.
18616 (FRAME_FONTSET, FRAME_W32_FONT_TABLE): New macros.
18617
18618 * w32xfns.c: Include charset.h and fontset.h.
18619
186201998-10-20 Richard Stallman <rms@psilocin.ai.mit.edu>
18621
18622 * syntax.c (syms_of_syntax): Fix the setup of Qscan_error.
18623
186241998-10-20 Eli Zaretskii <eliz@mescaline.gnu.org>
18625
18626 * msdos.c (mouse_init): Reset the button press/release info of the
18627 mouse driver.
18628 (mouse_preempted): New variable.
18629 (dos_rawgetc): Don't generate mouse events if mouse is preempted.
18630 (XMenuActivate): Preempt the mouse during menu-handling loop.
18631 Release the current time slice while idling in the menu-handling
18632 loop. Leave the loop only if the user pressed, then released the
18633 same button. Discard all mouse events that are pending in the
18634 event queue before exiting.
18635
186361998-10-19 Richard Stallman <rms@psilocin.ai.mit.edu>
18637
18638 * editfns.c (Fformat): Increase buffer size for floating format.
18639
186401998-10-17 Kenichi Handa <handa@etl.go.jp>
18641
18642 * charset.c (Vauto_fill_chars, Qauto_fill_chars): New variables.
18643 (syms_of_charset): Staticpro and initialize Qauto_fill_chars.
18644 Declare auto-fill-chars as a Lisp variable and initialize it.
18645
18646 * charset.h (Vauto_fill_chars): Extern it.
18647
18648 * cmds.c (internal_self_insert): Check Vauto_fill_chars.
18649
186501998-10-16 Kenichi Handa <handa@etl.go.jp>
18651
18652 * casefiddle.c (casify_object): Use make_string instead of
18653 make_specified_string to cope with byte-combining situation.
18654
18655 * coding.c (decode_coding_iso2022): Set coding->fake_multibyte to
18656 1 when encountered with a code of the range 0x80..0x9F.
18657
186581998-10-14 Eli Zaretskii <eliz@mescaline.gnu.org>
18659
18660 * callproc.c (Fcall_process) [MSDOS]: Use $TMPDIR instead of
18661 trying $TMP and $TEMP, since the former is always set in msdos.c.
18662 (Fcall_process_region) [DOS_NT]: When looking for a place to put
18663 the temporary files, check $TMPDIR as well.
18664
186651998-10-14 Richard Stallman <rms@psilocin.ai.mit.edu>
18666
427ec082 18667 * process.c (exec_sentinel, read_process_output):
26901792
DL
18668 Restore waiting_for_user_input_p after running Lisp code.
18669
18670 * keyboard.c (parse_menu_item): Avoid initialization for Lisp_Object.
18671 (command_loop): Likewise.
18672
186731998-10-14 Kenichi HANDA <handa@etl.go.jp>
18674
18675 * data.c (Faset): Fix previous change.
18676
18677 * fns.c (Ffillarray): Fix previous change.
18678
18679 * insdel.c (adjust_markers_for_combining): This function deleted.
18680 (adjust_markers_for_replace): Correctly adjust marker positions.
18681 Don't record these adjustment because they were recorded already.
18682 (combine_bytes): Don't adjust markers here.
18683
186841998-10-13 Richard Stallman <rms@psilocin.ai.mit.edu>
18685
18686 * minibuf.c (Fdisplay_completion_list): Put on mouse-face properties.
18687
186881998-10-12 Richard Stallman <rms@psilocin.ai.mit.edu>
18689
18690 * keyboard.c (Fclear_this_command_keys): New function.
18691 (syms_of_keyboard): defsubr it.
18692
18693 * macros.c (Fexecute_kbd_macro): Set real_this_command.
18694
186951998-10-12 Kenichi Handa <handa@etl.go.jp>
18696
18697 * ccl.c (CCL_DECODE_SJIS, CCL_ENCODE_SJIS): Swap the definitions.
18698
18699 * charset.c (Fstring): Call make_string instead of
18700 make_string_from_bytes.
18701 (Ffind_charset_region): Include `composition' in the returned list
18702 if the region contains any composite characters.
18703 (Ffind_charset_string): Include `composition' in the returned list
18704 if the string contains any composite characters.
18705 (find_charset_in_str): Handle CMPCHARP arg correctly.
18706
18707 * coding.c (shrink_decoding_region): If a charset other than ascii
18708 is initially designated to G0, don't shrink the region.
18709 (shrink_encoding_region): Likewise.
18710
18711 * data.c (Faset): If ARRAY is a multibyte string, pay attention to
18712 byte-combining situation.
18713
18714 * fns.c (clear_string_char_byte_cache): New function.
18715 (Ffillarray): Handle multibyte string correctly.
18716
18717 * lisp.h (clear_string_char_byte_cache): Extern it.
18718
18719 * xselect.c (lisp_data_to_selection_data): Call
18720 find_charset_in_str with CMPCHARP arg 0.
18721 * w16select.c (Fw16_set_clipboard_data): Likewise.
18722 * w32select.c (Fw32_set_clipboard_data): Likewise.
18723
187241998-10-11 Richard Stallman <rms@psilocin.ai.mit.edu>
18725
18726 * keyboard.c (parse_menu_item): For top level of menu bar,
18727 accept ordinary commands, and treat them just like a keymap.
18728
187291998-10-11 Richard Stallman <rms@sucrose.ai.mit.edu>
18730
18731 * xdisp.c (redisplay_window): Clear w->window_end_valid
18732 before running the window-scroll-functions hook, if appropriate.
18733
187341998-10-10 Richard Stallman <rms@psilocin.ai.mit.edu>
18735
18736 * data.c (Fstring_to_number): Don't recognize floating point
18737 if base is not 10.
18738
18739 * window.c (window_loop): New alternative CHECK_ALL_WINDOWS.
18740 (check_all_windows): New function for debugging tests.
18741 (syms_of_window): Initialize it.
18742
18743 * window.c (Qwindow_configuration_p): New variable.
18744 (Fwindow_configuration_frame): New function.
18745 (syms_of_window): defsubr it.
18746 (Fset_window_configuration): Return t if frame is live.
18747 Use Qwindow_configuration_p.
18748
18749 * xfns.c (check_x_display_info): Don't use selected_frame
18750 if it is dead.
18751
187521998-10-09 Geoff Voelker <voelker@cs.washington.edu>
18753
18754 * w32fns.c (x_create_bitmap_from_file): Skip special files.
18755
187561998-10-08 Kenichi Handa <handa@etl.go.jp>
18757
18758 * buffer.h (inhibit_modification_hooks): Extern it.
18759
18760 * buffer.c (inhibit_modification_hooks): New variable.
18761 (init_buffer_once): Initialize inhibit_modification_hooks to 0.
18762
18763 * charset.c (invalid_character): Prepend `0' to octal
18764 representation. Give error sufficient args.
18765
18766 * coding.c (code_convert_region): Set inhibit_modification_hooks
18767 to 1 before calling Fset_text_properties.
18768
18769 * insdel.c (signal_before_change): If inhibit_modification_hooks
18770 is nonzero, do nothing.
18771 (signal_after_change): Likewise.
18772
187731998-10-08 Emilio Lopes <Emilio.Lopes@Physik.TU-Muenchen.DE>
18774
18775 * process.c: Doc fixes.
18776
187771998-10-08 Richard Stallman <rms@sucrose.ai.mit.edu>
18778
18779 * syntax.c (scan_lists): Bring FROM back into range BEGV...ZV.
18780
187811998-10-07 Geoff Voelker <voelker@cs.washington.edu>
18782
18783 * w32.c (init_ntproc): Check for Windows init file.
18784 (term_ntproc): Do not check for it here.
18785
187861998-09-28 Kenichi Handa <handa@etl.go.jp>
18787
18788 * coding.c (check_composing_code): Fix previous change. Now it
18789 alwasy returns 0 or -1.
18790 (decode_coding_iso2022): Adjusted for the above change.
18791 (encode_coding_iso2022): When encoding the last block, flush out
18792 tailing garbage bytes.
18793 (setup_coding_system): Delete unnecessary code.
18794 (shrink_decoding_region): Check translation table. If ASCII
18795 should be translated, give up shrinking.
18796 (shrink_encoding_region): Likewise.
18797 (SHRINK_CONVERSION_REGION_THRESHHOLD): New macro.
18798 (SHRINK_CONVERSION_REGION): New macro.
18799 (code_convert_region): Call SHRINK_CONVERSION_REGION. Delete text
18800 properties here.
18801 (code_convert_region): In the case of encoding, always calulate
18802 correct character number.
18803 (code_convert_string): Call SHRINK_CONVERSION_REGION.
18804 (code_convert_region1): Don't delete text properties here.
18805
18806 * insdel.c (adjust_after_replace): Don't delete text properties here.
18807
18808 * term.c (encode_terminal_code): Handle raw 8-bit codes correctly.
18809
188101998-09-27 Richard Stallman <rms@psilocin.ai.mit.edu>
18811
18812 * emacs.c (sort_args): Fill extra space with NULL ptrs.
18813
188141998-09-26 Kenichi Handa <handa@etl.go.jp>
18815
18816 * coding.h (struct coding_system): New member composed_chars.
18817
18818 * coding.c (check_composing_code): If the current composing
18819 sequence doesn't end properly, return -1.
18820 (DECODE_CHARACTER_ASCII): Update coding->composed_chars.
18821 (DECODE_CHARACTER_DIMENSION1): Likewise.
18822 (decode_coding_iso2022): Check validity of a composing sequence.
18823 (code_convert_string): If the length of text to be converted is
18824 shrunk to zero, don't perform code conversion.
18825 (shrink_decoding_region): Fix previous change.
18826
18827 * editfns.c (Fformat): Check format control characters.
18828
188291998-09-25 Kenichi Handa <handa@etl.go.jp>
18830
18831 * coding.c (decode_eol): While decoding DOS-like eol, handle a
18832 single CR code correctly.
18833 (shrink_decoding_region) <CODING_CATEGORY_IDX_ISO_7 or
18834 CODING_CATEGORY_IDX_ISO_7_TIGHT>: Skip also 8-bit codes.
18835
188361998-09-23 Geoff Voelker <voelker@cs.washington.edu>
18837
18838 * w32fns.c (w32_color_map_lookup): New function.
18839 (x_to_w32_color): Approximate colors ending in numbers if necessary.
18840
188411998-09-22 Kenichi Handa <handa@etl.go.jp>
18842
18843 * ccl.c (ccl_driver): Report correct CCL program counter on error.
18844
18845 * xmenu.c (single_submenu) [! HAVE_MULTILINGUAL_MENU]: Make
18846 strings unibyte.
18847 (xmenu_show) [! HAVE_MULTILINGUAL_MENU]: Likewise.
18848
188491998-09-22 Kenichi Handa <handa@etl.go.jp>
18850
18851 * callint.c (Fcall_interactively): Don't use input method when
18852 reading a character in the case of `c' code letter.
18853
188541998-09-21 Dave Love <fx@gnu.org>
18855
18856 * editfns.c (Fsave_restriction): Doc fix.
18857
188581998-09-21 Richard Stallman <rms@gnu.org>
18859
18860 * lread.c (build_load_history): Do add to Vload_history
18861 even when dumping Emacs.
18862
188631998-09-18 Kenichi Handa <handa@etl.go.jp>
18864
18865 * ccl.c (CCL_WRITE_CHAR): Don't use bcopy.
18866 (ccl_driver): If BUFFER-MAGNIFICATION of the CCL program is 0,
18867 cause error if the program is going to output some bytes. When
18868 outputing a string to notify an error, check the case that
18869 DST_BYTES is zero.
18870
427ec082 18871 * coding.h (CODING_FINISH_INTERRUPT): New macro.
26901792
DL
18872
18873 * coding.c (ccl_coding_driver): If ccl_driver is interrupted by a
18874 user or the CCL program executed an invalid command, return
18875 CODING_FINISH_INTERRUPT.
18876 (code_convert_region): Pay attention to the converters return
18877 value CODING_FINISH_NORMAL and CODING_FINISH_INTERRUPT.
18878
188791998-09-16 Kenichi Handa <handa@etl.go.jp>
18880
18881 * coding.c (code_convert_region): Update beg_unchanged and
18882 end_unchanged after we delete the source text.
18883
18884 * insdel.c (adjust_markers_for_replace): Don't adjust a byte
18885 position if it is FROM.
18886 (adjust_markers_for_combining): New function.
18887 (combine_bytes): Call adjust_markers_for_combining instead of
18888 adjust_markers_for_replace.
18889 (adjust_after_replace): Record deletion of combining after bytes
18890 with the correct position.
18891 (replace_range): Likewise. Record the actual deletion after
18892 recoding deletions of combining bytes.
18893
18894 * xdisp.c (message_log_check_duplicate): Count byte length of the
18895 latest message correctly.
18896
188971998-09-12 Richard Stallman <rms@gnu.org>
18898
18899 * xdisp.c (redisplay_internal): Use TEMP_SET_PT_BOTH
18900 instead of SET_PT_BOTH.
18901 (try_window_id, display_text_line): Likewise.
18902
189031998-09-12 Karl Heuer <kwzh@gnu.org>
18904
18905 * data.c (Fmake_local_variable): Doc fix.
18906
189071998-09-10 Dave Love <fx@gnu.org>
18908
18909 * print.c (Fwith_output_to_temp_buffer): Doc fix.
18910
189111998-09-10 Richard Stallman <rms@gnu.org>
18912
18913 * s/irix6-0.h (TIOCSIGSEND): Add #undef.
18914 (bcopy, bcmp, bzero): Add #undef.
18915
18916 * keyboard.c (command_loop_1): When switching to selected window's bfr,
18917 first exit if selected frame is dead (no live frames remain).
18918 (read_key_sequence): Likewise.
18919
189201998-09-10 Karl Heuer <kwzh@gnu.org>
18921
18922 * emacs.c (main): Mention --display and --eval in help.
18923
189241998-09-07 Paul Eggert <eggert@twinsun.com>
18925
18926 * editfns.c (emacs_memftime): New function.
18927 (Fformat_time_string): Use it to handle null bytes in formats
18928 correctly.
18929
189301998-09-08 Kenichi Handa <handa@etl.go.jp>
18931
18932 * charset.c (Ffind_charset_region): Optimization for unibyte buffer.
18933 (Ffind_charset_string): For unibyte string, return (ascii).
18934
18935 * editfns.c (Fsubst_char_in_region): Call replace_range with the
18936 arg MARKERS 1.
18937
18938 * insdel.c (adjust_after_replace): Don't add combining bytes to
18939 the args given to adjust_point. Handle correctly the case that
18940 there are both before and after combining bytes.
18941 (replace_range): Likewise.
18942
189431998-09-07 Lars Magne Ingebrigtsen <larsi@gnus.org>
18944
18945 * fns.c (base64_decode_1, base64_encode_1): New functions.
18946 (Fbase64_decode_string, Fbase64_encode_string): New functions.
18947 (Fbase64_decode_region, Fbase64_encode_region): New functions.
18948
189491998-09-07 Karl Heuer <kwzh@gnu.org>
18950
18951 * eval.c (error): After enlarging buffer, write to it, not to buf.
18952
18953 * fns.c (Fwidget_put): Return VALUE instead of garbage.
18954
189551998-09-07 Kenichi Handa <handa@etl.go.jp>
18956
18957 * charset.h (STRING_CHAR_AND_LENGTH): Return correct value in
18958 ACTUAL_LEN even if LEN is too short to have a valid multibyte form.
18959 (STRING_CHAR_AND_CHAR_LENGTH): Likewise.
18960
18961 * coding.c (ccl_coding_driver): Always calculate correct mulibyte
18962 chars in produced byte sequence.
18963 (Ffind_operation_coding_system): Doc-string fixed.
18964
18965 * insdel.c (count_combining_after): Check also preceding bytes at
18966 POS if all characters in STRING are not character head.
18967
189681998-09-06 Paul Eggert <eggert@twinsun.com>
18969
18970 * editfns.c (Fformat_time_string, Fdecode_time, Fcurrent_time_zone):
18971 Don't assume that localtime and gmtime return non-NULL.
18972
189731998-09-06 Lars Magne Ingebrigtsen <larsi@gnus.org>
18974
18975 * fns.c (Fbase64_decode_string, Fbase64_encode_string,
18976 base64_decode_1, Fbase64_decode_region, Fbase64_encode_region):
18977 New functions.
18978
189791998-09-06 Richard Stallman <rms@gnu.org>
18980
18981 * editfns.c (Fformat): Detect incomplete format spec at string's end.
18982
18983 * lread.c (Fload): Handle case where openp finds a magic file
18984 but it has no `load' handler or that handler calls `load'.
18985 If FOUND != FILE, find FOUND's handler even if inhibited for FILE.
18986
189871998-09-04 Dave Love <fx@gnu.org>
18988
18989 * buffer.c (enable-multibyte-characters): Doc fix.
18990
189911998-09-02 Geoff Voelker <voelker@cs.washington.edu>
18992
18993 * w32heap.c (allocate_heap): Define NTHEAP_PROBE_BASE by default.
18994
189951998-09-01 Kenichi Handa <handa@etl.go.jp>
18996
18997 * editfns.c (Ftranspose_regions): Use BYTE_POS_ADDR to get an
18998 address in buffer from byte-position.
18999
190001998-09-01 Eli Zaretskii <eliz@delysid.gnu.org>
19001
19002 * w16select.c (Vnext_selection_coding_system): New variable.
19003 (syms_of_win16select): DEFVAR_LISP it. No need to staticpro
19004 Vselection_coding_system.
19005 (Fw16_set_clipboard_data): Always convert multibyte strings. Use
19006 Vnext_selection_coding_system if non-nil.
19007 (Fw16_get_clipboard_data): Always convert a string that includes
19008 non-ASCII characters. Use Vnext_selection_coding_system if
19009 non-nil.
19010
190111998-08-31 Andrew Innes <andrewi@harlequin.co.uk>
19012
19013 * w32fns.c (w32_wnd_proc): Always zero button_state when releasing
19014 mouse capture.
19015
190161998-08-31 Kenichi Handa <handa@etl.go.jp>
19017
19018 * xterm.c (x_load_font): If SIZE is 0, don't use a name
19019 x_list_font returns.
19020
190211998-08-31 Paul Eggert <eggert@twinsun.com>
19022
19023 * lread.c (read1): Don't assume that atof ("-0.0") yields +0.0.
19024 Handle leading '-' uniformly for zeros, infinities, and NaNs.
19025
190261998-08-31 Eli Zaretskii <eliz@delysid.gnu.org>
19027
19028 * msdos.c (IT_cmgoto): When tracking echo area messages with the
19029 cursor, save and restore previous cursor position in the
19030 minibuffer.
19031
190321998-08-31 Kenichi Handa <handa@etl.go.jp>
19033
19034 * charset.c (unibyte_char_to_multibyte):
19035 Vnonacii_translation_table will convert a 7-bit charcater.
19036 (multibyte_char_to_unibyte): Handle the case that
19037 Vnonacii_translation_table converts a multibyte charcater to a
19038 unibyte charcter of less than 128.
19039 (init_charset_once): Initialize nonascii_insert_offset and
19040 Vnonacii_translation_table.
19041
19042 * coding.c (decode_coding): Even if SRC_BYTES is zero, try
19043 processing if CODING requires flushing.
19044 (encode_coding): Likewise.
19045 (code_convert_region): Likewise.
19046 (code_convert_string): Likewise.
19047
19048 * fns.c (concat): If Vnonascii_translation_table is non-nil, try
19049 to convert a character less than 160 to multibyte.
19050 * insdel.c (copy_text): Likewise.
19051 (count_size_as_multibyte): Likewise.
19052 * xterm.c (dumpglyphs): Likewise.
19053
190541998-08-29 Paul Eggert <eggert@twinsun.com>
19055
19056 * data.c (arith_driver, float_arith_driver): Compute (- x) by
19057 using negation, not subtraction; this makes a difference with
19058 IEEE floating point arithmetic (and also if integer arithmetic
19059 is ones' complement or signed-magnitude!).
19060
190611998-08-29 Karl Heuer <kwzh@gnu.org>
19062
19063 * xfns.c (x_create_bitmap_from_file): Fail immediately if magic.
19064
190651998-08-28 Ken'ichi Handa <handa@delysid.gnu.org>
19066
19067 * charset.c (Fchar_bytes): Add \n\ in doc-string.
19068
190691998-08-28 Paul Eggert <eggert@twinsun.com>
19070
19071 * s/sol2-4.h (NOT_USING_MOTIF): New macro.
19072 (LD_SWITCH_SYSTEM_TEMACS): Put /usr/dt/lib in the link library
19073 path only if we're not building with Motif.
19074
190751998-08-28 Kenichi Handa <handa@etl.go.jp>
19076
19077 * insdel.c (adjust_after_replace): Fix the code to record undo
19078 information for the case that `before combining' happens. Remove
19079 text properties which are added to the new text by
19080 offset_intervals.
19081
19082 * coding.c (code_convert_region1): Remove all text properties of
19083 the region.
19084
190851998-08-28 Kenichi Handa <handa@etl.go.jp>
19086
19087 * charset.h (CHAR_BYTES): New macro.
19088
19089 * charset.c (Fchar_bytes): Now always return 1.
19090 (char_bytes): New function.
19091
19092 * editfns.c (Fposition_bytes): If the arg POSITION is out of
19093 range, return nil.
19094 (Fbyte_to_position): If the arg BYTEPOS is out of range, return
19095 nil.
19096
19097 * data.c (Faset): Use macro CHAR_BYTES instead of Fchar_bytes.
19098 * fns.c (concat): Likewise.
19099 * insdel.c (count_size_as_multibyte): Likewise.
19100 * xdisp.c (message_dolog): Likewise.
19101
191021998-08-27 Kenichi Handa <handa@etl.go.jp>
19103
19104 * coding.c (detect_coding_iso2022): Handle ESC N and ESC O
19105 correctly. They are for SS2 and SS3 respectively.
19106 (ccl_coding_driver): Fix previous change.
19107
191081998-08-26 Paul Eggert <eggert@twinsun.com>
19109
19110 * xterm.c (fixup_locale): New function. For now, it resets
19111 LC_TIME to "C" (reverting the 1998-08-07 change), and also
19112 resets LC_MESSAGES to "C".
19113 (x_term_init): Use it to fix up the locale after setlocale
19114 (LC_ALL, "").
19115
191161998-08-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
19117
19118 * xterm.c (x_calc_absolute_position): Cast argument to XFree, in
19119 case it was prototyped the old way.
19120
191211998-08-25 Kenichi Handa <handa@etl.go.jp>
19122
19123 * xterm.c (x_list_fonts): Work-around for the case XGetAtomName
19124 returns a null string. This happens when dxpc 3.7 is being used.
19125
191261998-08-24 Andreas Schwab <schwab@delysid.gnu.org>
19127
19128 * keyboard.c (input-method-previous-message): Doc fix.
19129
19130 * coding.c (file-coding-system-alist,
19131 select-safe-coding-system-function): Doc fix.
19132
191331998-08-23 Kenichi HANDA <handa@etl.go.jp>
19134
19135 * coding.c (detect_coding_iso2022): Don't check the byte length of
19136 succeeding codes (0xa0..0xFF) if the codes follows single shift
19137 code (SS2 or SS3).
19138
191391998-08-21 Ken'ichi Handa <handa@delysid.gnu.org>
19140
19141 * coding.c (detect_coding_system): If detect_eol_type returns
19142 CODING_EOL_INCONSISTENT, set eol_type to CODING_EOL_UNDECIDED
19143 correctly.
19144
19145See ChangeLog.7 for earlier changes.