*** empty log message ***
[bpt/emacs.git] / src / ChangeLog
CommitLineData
f4988be7
GM
12000-08-03 Gerd Moellmann <gerd@gnu.org>
2
3 * s/ia64.h: New file.
4
5 * widget.c (set_frame_size, update_wm_hints, EmacsFrameSetValues):
6 Use NULL instead of 0 at the end of variable argument list of
7 XtVaGetValues and XtVaSetValues, because 0 fails on systems where
8 sizeof (int) < sizeof (void *).
9
10 * xmenu.c (update_frame_menubar): Use NULL instead of 0 at the end
11 of variable argument lists of XtVaGetValues and XtVaSetValues.
12
13 * xfns.c (Fx_file_dialog): Use NULL instead of 0 at the end of
14 variable argument lists of XtVaGetValues and XtVaSetValues.
15
ead53494
GM
162000-08-02 Gerd Moellmann <gerd@gnu.org>
17
18 * alloc.c (lisp_malloc, lisp_free): Use size_t and POINTER_TYPE.
19 (xrealloc, xmalloc): Use size_t. Some callers adjusted.
20
21 * lisp.h (Fsingle_key_description, xmalloc, xrealloc): Change
22 prototype.
23
24 * keyboard.c (read_char_minibuf_menu_prompt): Add new parameter
25 in call to Fsingle_key_description.
26
27 * keymap.c (Fsingle_key_description): Add parameter NO_ANGLES.
28 Callers changed.
29
302000-08-02 Colin Walters <walters@cis.ohio-state.edu>
31
32 * window.c (display_buffer_reuse_frames): New variable.
33 (Fdisplay_buffer): If display_buffer_reuse_frames is set, reuse
34 frames displaying BUFFER.
35 (syms_of_window): Define Lisp variable
36 display-buffer-reuse-frames.
37
10b0f752
MB
382000-08-01 Miles Bader <miles@gnu.org>
39
40 * editfns.c (Fconstrain_to_field): Fix the conditions for deciding
41 when to constrain NEW_POS (they were pretty screwed up before).
42
16425c4a
EZ
432000-07-31 Eli Zaretskii <eliz@is.elta.co.il>
44
45 * msdos.c (run_msdos_command): Save and restore the master
46 environment, for the case that child_setup signals an error.
47 When mirroring slashes in DOS shell commands, don't fail when
48 argv[2] has embedded blanks.
da288c14
EZ
49 (Fmsdos_set_mouse_buttons, mouse_setup_buttons): New functions.
50 (syms_of_msdos): Defsubr Fmsdos_set_mouse_buttons.
51 (dos_ttraw): Call mouse_setup_buttons.
16425c4a
EZ
52
53 * callproc.c (child_setup) [MSDOS]: malloc pwd_var instead of
54 using alloca; free it after run_msdos_command returns.
55
27f73852
DL
562000-07-27 Dave Love <fx@gnu.org>
57
58 * s/irix6-5.h (IRIX_FORCE_32_BITS, LD_SWITCH_SYSTEM): Don't
59 define.
60 [_MIPS_SZLONG == 64]: Set up for 64-bit mode -- not currently
61 working.
62
63 * m/iris4d.h (XUINT, XSET, XUNMARK) [_LP64]: Don't define.
64
c0261b5e
EZ
652000-07-27 Eli Zaretskii <eliz@is.elta.co.il>
66
67 * editfns.c (lisp_time_argument): Fix last change.
68
b548072f
GM
692000-07-27 Gerd Moellmann <gerd@gnu.org>
70
3ab82477
GM
71 * fns.c (Fdelete): Make it work on vectors and strings in addition
72 to lists.
73
b548072f
GM
74 * fns.c (Qkey_or_value, Qkey_and_value): New variables.
75 (syms_of_fns): Initialize new variables.
76 (sweep_weak_table): Handle weakness `key-or-value' and
77 `key-and-value'.
78 (Fmake_hash_table): Recognize `key-and-value' and `key-or-value'
79 weakness, with t meaning the same as `key-and-value'.
80
91ae8751
KH
812000-07-27 Kenichi Handa <handa@etl.go.jp>
82
83 * coding.h (struct coding_system): Member safe_charset deleted.
84
85 * coding.c (Qsafe_charsets): This variable deleted.
86 (Qsafe_chars, Vchar_coding_system_table, Qchar_coding_system): New
87 variables.
88 (coding_safe_chars): New function.
89 (CODING_SAFE_CHAR_P): New macro.
90 (CHARSET_OK): New arg C. Call CODING_SAFE_CHAR_P instead of
91 checking safe_charsets member of the coding system. Caller
92 changed.
93 (detect_coding_iso2022): New local variable safe_chars.
94 (DECODE_DESIGNATION): Call CODING_SAFE_CHAR_P instead of checking
95 safe_charsets member of the coding system.
96 (decode_coding_iso2022): New local variable safe_chars.
97 (ENCODE_ISO_CHARACTER_DIMENSION1): Don't check unsafe chars here.
98 (ENCODE_ISO_CHARACTER_DIMENSION2): Likewise.
99 (ENCODE_ISO_CHARACTER): Arguments changed. Caller changed.
100 (ENCODE_UNSAFE_CHARACTER): New macro.
101 (encode_coding_iso2022): New local variable safe_chars. Check
102 unsafe chars.
103 (setup_coding_system): Delete the code to initialize
104 coding->safe_charses
105 (intersection, find_safe_codings): New functions.
106 (Ffind_coding_systems_region_internal): New function.
107 (syms_of_coding): Defsubr it. Initialize Qsafe_chars,
108 Qsafe_cding_system. Make Vchar_coding_system_table a Lisp
109 variable and initialize it.
110
111 * fns.c (char_table_ref_and_index): New function.
112
113 * lisp.h (char_table_ref_and_index): Add prototype.
114
34a7a267
SS
1152000-07-26 Sam Steingold <sds@gnu.org>
116
117 * editfns.c (lisp_time_argument): Added third argument `usec'.
3ab82477 118 (Ffloat_time): New built-in Lisp function.
34a7a267 119
a95cb10a
GM
1202000-07-26 Gerd Moellmann <gerd@gnu.org>
121
3353ef5a
GM
122 * dispextern.h (GLYPH_FROM_CHAR_GLYPH): Use CHARACTERBITS bits
123 for the character code.
124
125 * config.in (HAVE_SOUND): Define only for FreeBSD, NetBSD and
126 GNU/Linux.
127
a95cb10a
GM
128 * xmenu.c (menu_highlight_callback): Call show_help_echo directly
129 if called for a popup menu.
130 (xmenu_show): Store help string in widget values.
131
b4a12321
DL
1322000-07-26 Dave Love <fx@gnu.org>
133
134 * syswait.h: Move some definitions.
135 (HAVE_SYS_WAIT_H): Undef for HPUX7, Convex.
136 [!HAVE_SYS_WAIT_H]: Define things unconditionally. More
137 perspicuous definitions.
138 (WTERMSIG): Fix bit pattern used.
139
13f5ad37
KH
1402000-07-26 Kenichi Handa <handa@etl.go.jp>
141
142 * print.c (print_object): If vector printing is truncated, print
143 "..." to indicate it as well as the case of list printing.
144
070fe99c
GM
1452000-07-25 Gerd Moellmann <gerd@gnu.org>
146
969065c3
GM
147 * xdisp.c (next_element_from_display_vector): Improve comments.
148
149 * lisp.h (GLYPH_MASK_CHAR, GLYPH_MASK_FACE): Use 19 bits
150 for the character code, and the rest for the face id as in 20.x.
151 (FAST_GLYPH_FACE, FAST_MAKE_GLYPH): Changed accordingly.
152
153 * window.c (window_display_table): Cleaned up.
154
070fe99c
GM
155 * syntax.c (Fforward_word): Add last arg nil in call of
156 Fconstrain_to_field.
157
bad77ef7
EZ
1582000-07-25 Eli Zaretskii <eliz@is.elta.co.il>
159
969065c3 160 * fileio.c (Frename_file) [DOS_NT]: If the file names are
bad77ef7
EZ
161 identical but for the letter-case, don't call
162 barf_or_query_if_file_exists.
163
c28da489
MB
1642000-07-25 Miles Bader <miles@gnu.org>
165
166 * editfns.c (find_field): Honor special `boundary' fields.
167 (Qboundary): New variables.
168 (syms_of_editfns): Initialize Qboundary.
169 (Fconstrain_to_field): Add the INHIBIT-CAPTURE-PROPERTY argument.
170 Use scan_buffer instead of find_before_next_newline, because it
171 allows us to detect the boundary case where there's a newline at
172 the search limit.
173 * lisp.h (Fconstrain_to_field): Update external declaration.
174
e3c31fd5
GM
1752000-07-24 Gerd Moellmann <gerd@gnu.org>
176
177 * print.c (temp_output_buffer_setup): Don't call1 Vrun_hooks
178 if that is nil.
c28da489 179
c66c29a2
DL
1802000-07-24 Dave Love <fx@gnu.org>
181
182 * s/sunos4-0.h, s/sol2.h:
183 (LIBS_TERMCAP): Move from m/sparc.h.
184
185 * m/sparc.h (TERMINFO): Moved to system files (probably only
186 relevant for sunos4 judging by its vintage).
187 (BITS_PER_LONG, BITS_PER_EMACS_INT, _LP64): Define conditional on
188 __arch64__.
189
fbe0a958
EZ
1902000-07-24 Eli Zaretskii <eliz@is.elta.co.il>
191
192 * xmenu.c (keymap_panes): Pass the keymap's prompt as the pane
193 name to single_keymap_panes.
194
7d88e5c9
AS
1952000-07-24 Andreas Schwab <schwab@suse.de>
196
197 * fns.c (Fmakehash): Pass Qeql to Fmake_hash_table if TEST is nil.
198
e024b101
GM
1992000-07-24 Gerd Moellmann <gerd@gnu.org>
200
201 * xdisp.c (with_echo_area_buffer): Take additional EMACS_INT
202 parameters instead of using int parameters. Expect FN to accept
203 EMACS_INT parameters.
204 (display_echo_area, resize_echo_area_axactly, current_message)
205 (truncate_echo_area, set_message_1): Call with_echo_area_buffer
206 with new argument list.
207 (resize_mini_window_1): New callback function.
208 (current_message_1, truncate_message_1, set_message_1): Change
209 parameter lists to the new format expected by
210 with_echo_area_buffer.
211
25c1a9ce
KH
2122000-07-24 Kenichi Handa <handa@etl.go.jp>
213
214 * fontset.c (fontset_ref): Remove INLINE declaration.
215 (fontset_ref_via_base): Likewise.
216 (Fset_fontset_font): Convert FAMILY and REGISTRY specifications
217 to downcase.
218
7f987ac0
EZ
2192000-07-23 Eli Zaretskii <eliz@is.elta.co.il>
220
221 * msdos.c (IT_note_mouse_highlight): Process overlays in the
222 correct order of priority. If help echo was found in an overlay,
223 use that overlay as the object in which the help echo was found.
224
e2db3069
MB
2252000-07-22 Miles Bader <miles@gnu.org>
226
227 * textprop.c (Fprevious_single_char_property_change): The initial
228 property value should be from the position preceding POSITION, not
229 following it.
230
5e3203e4
EZ
2312000-07-22 Eli Zaretskii <eliz@is.elta.co.il>
232
233 * coding.c (syms_of_coding): Doc fix for
234 inhibit-iso-escape-detection.
235
62145073
GM
2362000-07-21 Gerd Moellmann <gerd@gnu.org>
237
c20aeb83
GM
238 * xterm.c (note_mouse_highlight): Process overlays in the right
239 order of priority.
34a7a267 240
743934db
GM
241 * keyboard.c (show_help_echo, gen_help_event): Extend comments.
242
243 * xterm.c (note_mouse_highlight): If help-echo was found in an
244 overlay, use that overlay as the object in which the help was
245 found.
246
d1dc7e43 247 * window.c (foreach_window_1): Fix typo reversing an if-condition.
34a7a267 248
62145073
GM
249 * window.c (foreach_window): Instead of a fake variable argument
250 list, take one USER_DATA argument.
251 (foreach_window_1): Likewise, and call callback functions with two
252 args, the window and USER_DATA.
253 (struct check_window_data): New struct.
254 (check_window_containing): Use it.
255 (window_from_coordinates): Set up a struct check_window_data for
256 foreach_window.
257 (add_window_to_list, freeze_window_start): Change parameters
258 according to new calling convention.
259
260 * window.h (foreach_window): Change prototype.
261
262 * buffer.c (Fprevious_overlay_change): Avoid memory leak.
263
2642000-07-21 Eli Zaretskii <eliz@is.elta.co.il>
265
266 * xmenu.c (menu_help_callback): Call show_help_echo with
267 additional arguments OBJECT and POS.
268
11270583
KH
2692000-07-21 Kenichi Handa <handa@etl.go.jp>
270
07b14857
KH
271 * data.c (Faset): Allow storing any multibyte character in a
272 string. Convert unibyte string to multibyte if necessary.
273
11270583
KH
274 * xfns.c (x_encode_text): New function.
275 (x_set_name): Use x_encode_text.
276 (x_set_title): Likewise.
277
278 * xselect.c (lisp_data_to_selection_data): Use x_encode_text.
279
280 * xterm.h (x_encode_text): Add prototype.
281
bc75b4fd
DL
2822000-07-20 Dave Love <fx@gnu.org>
283
284 * ccl.c (Fccl_execute_on_string): Don't check xmalloc return. Use
285 xfree, not free.
286
48c14970
EZ
2872000-07-20 Eli Zaretskii <eliz@is.elta.co.il>
288
289 * msdos.c (help_echo_window): New variable.
290 (syms_of_msdos): Initialize and staticpro it.
291 (IT_note_mode_line_highlight): Set help_echo_window.
292 (IT_note_mouse_highlight): Ditto.
293 (dos_rawgetc): Store help_echo_window in the second event produced
294 for HELP_EVENTs.
295
296 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight):
297 Record the object that generated the help echo and the position of
298 that object in help_echo_object and help_echo_pos. Record that
299 some glyphs in a row are displayed in mouse-face.
300 (IT_update_begin): Don't clear mouse highlight unless one of the
301 enabled glyph rows is marked as being displayed in mouse-face.
302 (dos_rawgetc): Generate 2 events for HELP_EVENT. Pass the object
303 and position recorded in help_echo_object and help_echo_pos to the
304 event queue.
305 (IT_menu_display): Accept a new argument PN: the pane number of
306 the current menu pane. Record the pane number and the item
307 number of the item which has associated help string.
308 (XMenuActivate): Update the prototype for help_callback in
309 function declaration. Call IT_menu_display with the current menu
310 pane number as an additional argument. Call help_callback with
311 two additional arguments: the pane number and the item number of
312 the menu item associated with the help text.
313 (help_echo_object, help_echo_pos): New variables.
314 (syms_of_msdos): Initialize them and staticpro help_echo_object.
315
316 * msdos.h (XMenuActivate): Update prototype.
317
4279296d
GM
3182000-07-19 Gerd Moellmann <gerd@gnu.org>
319
47db06aa
GM
320 * xdisp.c (with_echo_area_buffer): Call FN with more arguments.
321 Add some more prototypes.
322
323 * xterm.c, xterm.h: Add some more prototypes.
324
325 * lisp.h (Fnext_single_char_property_change): Add prototype.
326
327 * dispnew.c (direct_output_for_insert): Remove confusing
328 outer local variable mouse_face_overwritten_p.
329 (glyph_row_slice_p): Put in #ifdef GLYPH_DEBUG.
330
4279296d
GM
331 * alloc.c (allocate_string_data): Don't copy old string contents.
332
670acd62
KH
3332000-07-19 Kenichi Handa <handa@etl.go.jp>
334
335 * coding.c (code_convert_region): Delete text properties before
336 shrinking the conversion region.
337
7cea38bc
GM
3382000-07-18 Gerd Moellmann <gerd@gnu.org>
339
dc1cac59
GM
340 * dispnew.c (update_text_area): Write the whole row if it
341 has mouse-face in it.
342
85a8aca9
GM
343 * xfaces.c (face-alternative-font-family-alist): Remove
344 DEFVAR_LISP; staticpro instead.
345
34a7a267 346 * xmenu.c (menu_help_callback): Call show_help_echo with
7cea38bc
GM
347 new arguments.
348
349 * keyboard.c (show_help_echo): Add parameter WINDOW.
350 (read_char): Call show_help_echo with window extracted from Lisp
351 help event.
352 (gen_help_event): Add parameter WINDOW.
353
354 * keyboard.h (show_help_echo, gen_help_event): Change prototypes.
355
356 * xterm.c (help_echo_window): New variable.
357 (note_mouse_highlight, note_tool_bar_highlight): Set
358 help_echo_window.
359 (XTread_socket): Pass help_echo_window to gen_help_event.
360 (syms_of_xterm): Initialize and staticpro help_echo_window.
361
f8276b77
DL
3622000-07-18 Dave Love <fx@gnu.org>
363
364 * Makefile.in: Fix dependencies of blockinput.h on atimer.h,
365 systime.h.
366
088831a6
GM
3672000-07-18 Gerd Moellmann <gerd@gnu.org>
368
3d6cd763
GM
369 * alloc.c (allocate_string_data): If string had already data
370 assigned, copy old contents to new string data.
371
372 * coding.c (syms_of_coding): Fix typo in spelling of variable
373 `inhibit-iso-escape-detection'.
374
088831a6
GM
375 * alloca.c (free) [emacs && EMACS_FREE]: Define as EMACS_FREE.
376
377 * Makefile.in: Add dependencies on dispextern.h.
378 (alloca.o): Don't define malloc and define EMACS_FREE instead of
379 `free'; both can conflict with system header files.
380
bc8a8d55
KH
3812000-07-18 Kenichi Handa <handa@etl.go.jp>
382
383 * charset.h (MAKE_CHAR): Return reasonable code even if CHARSET is
384 undefined.
385
069f5950
DL
3862000-07-18 Dave Love <fx@gnu.org>
387
388 * window.c (Fwindow_list): Declare arg `window'.
389
aa96c820
KH
3902000-07-18 Kenichi Handa <handa@etl.go.jp>
391
392 * coding.c (setup_coding_system): Don't override the explicitly
393 specified designations.
394
06be8d32
MB
3952000-07-15 Miles Bader <miles@gnu.org>
396
397 * editfns.c (char_property_eq, char_property_stickiness): Renamed
398 from `text_property_eq' and `text_property_stickiness', respectively.
399 (find_field, Fconstrain_to_field, char_property_eq)
400 (char_property_stickiness): Changed to call char-property functions
401 instead of text-property-only ones.
402
403 * textprop.c (Fnext_single_char_property_change): Made a subr (was
404 `next_single_char_property_change'). Do more error checking, and
405 cleanup limit behavior.
406 (Fprevious_single_char_property_change): New function.
407 (syms_of_textprop): Initialize new subrs.
408
409 * xdisp.c (display_prop_end, invisible_text_between_p):
410 Call Fnext_single_char_property_change instead of
411 next_single_char_property_change.
412
3fddcdc3
JR
4132000-07-15 Jason Rumney <jasonr@gnu.org>
414
415 * w32menu.c (w32_menu_show): Call free_menubar_widget_value_tree
416 after menu is finished with.
417 (add_menu_item): Only consider wv->title as a menu title.
418 (w32_menu_display_help): Add OBJECT and POS to show_help_echo.
419
420 * w32fns.c (w32_wnd_proc) [WM_DRAW_ITEM]: Do not try to draw a
421 null title.
422 (FONT_REGEXP): Remove unused macro, and its sub-components.
423 (syms_of_w32fns): Replace underscore in w32-enable-synthesized-fonts.
424
425 * w32term.c (help_echo_object, help_echo_pos): New variables.
426 (note_mode_line_highlight): Store additional information about the
427 help-echo in help_echo_object and help_echo_pos. Check both
428 `local-map' and `keymap' properties for changing the cursor
429 (note_mouse_highlight): Store additional information about the
430 help-echo in help_echo_object and help_echo_pos.
431 (note_tool_bar_highlight): Set help_echo_object to nil and
432 help_echo_pos to -1.
433 (w32_read_socket): Use gen_help_event instead of filling
434 input_events manually.
435 (syms_of_w32term): Staticpro help_echo_object.
436 (x_update_window_end): Add parameter MOUSE_FACE_OVERWRITTEN_P. If
437 set, arrange for a mouse-highlight redisplay in
438 XTframe_up_to_date.
439 (x_clear_mouse_face): New function.
440 (w32_redisplay_interface): Add pointer to x_clear_mouse_face.
441 (x_update_window_begin): No need to turn off the mouse
442 highlight here.
443 (show_mouse_face): Set the mouse_face_p flag of glyph rows
444 depending on whether they contain glyphs highlighted in
445 mouse-face.
446 (x_fill_stretch_glyph_string): Consume runs of stretch
447 glyphs instead of a single one.
448 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
449 with new argument list.
450 (x_set_glyph_string_gc): Make sure the face's GC is valid.
451 (x_append_glyph, x_append_composite_glyph)
452 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
453 changes in struct glyph starting 1999-12-27. See comments for
454 xterm.c on 2000-07-05.
455
178c5d9c
SS
4562000-07-14 Sam Steingold <sds@gnu.org>
457
458 * xfaces.c (realize_x_face): Fix the last patch:
459 check `default_face' before dereferencing.
460
6fe533f6
DL
4612000-07-14 Dave Love <fx@gnu.org>
462
069f5950 463 * syntax.c (back_comment): Add null default in switch (for pcc).
6fe533f6 464
dd7b81cf
KH
4652000-07-14 Kenichi Handa <handa@etl.go.jp>
466
0693904a 467 * xfaces.c (realize_x_face): Make fontset using the base of the
178c5d9c 468 default_face's fontset, not using the default fontset.
0693904a 469
dd7b81cf
KH
470 * coding.c (inhibit_iso_escape_detection): New variable.
471 (syms_of_coding): Make it a Lisp variable.
472 (detect_coding_iso2022): If inhibit_iso_escape_detection is
473 nonzero, ignore ISO2022's escape sequence.
474
d5aa31d8
GM
4752000-07-14 Gerd Moellmann <gerd@gnu.org>
476
e5acf0ca
GM
477 * alloca.c (malloc) [emacs]: Define as xmalloc.
478
bd23a692
GM
479 * xfns.c (Fx_show_tip): If frame parameters contain a position,
480 use that instead of the mouse position. Add parameters DX and DY.
481
482 * dispextern.h (Fx_show_tip): Adjust number of parameters
483 in prototype.
484
9662da0b
GM
485 * keyboard.c (show_help_echo): Add parameters OBJECT and POS.
486 if HELP is a function, call it with OBJECT and POS as parameters
487 to get the help to display.
488 (gen_help_event, kbd_buffer_store_help_event): New functions.
489 (kbd_buffer_get_event): Construct the Lisp help-event differently.
490 (read_char): Call show_help_echo with new parameters.
491
178c5d9c 492 * keyboard.h (gen_help_event, kbd_buffer_store_help_event):
9662da0b
GM
493 Add prototypes.
494
495 * xterm.c (help_echo_object, help_echo_pos): New variables.
496 (note_mode_line_highlight): Store additional information about the
497 help-echo in help_echo_object and help_echo_pos. Check both
498 `local-map' and `keymap' properties for changing the cursor
499 (note_mouse_highlight): Store additional information about the
500 help-echo in help_echo_object and help_echo_pos.
501 (note_tool_bar_highlight): Set help_echo_object to nil and
502 help_echo_pos to -1.
503 (XTread_socket): Use gen_help_event instead of filling
504 input_events manually.
505 (syms_of_xterm): Staticpro help_echo_object.
506
507 * xmenu.c (menu_highlight_callback): Use
508 kbd_buffer_store_help_event instead of setting up and input_event
509 structure manually.
510
511 * xdisp.c (eval_form): GCPRO argument sexpr.
512 (call_function): New function.
513 (handle_single_display_prop): Use call_function and FUNCTIONP
514 instead of checking whether if font_height is a symbol and
515 using eval_form.
516
517 * eval.c (internal_condition_case_2): New function.
518
519 * lisp.h (FUNCTIONP): New macro.
520 (internal_condition_case_2, call_function): Add prototypes.
521
d5aa31d8
GM
522 * xterm.c (construct_mouse_click, x_scroll_bar_to_input_event)
523 (x_scroll_bar_handle_click, SET_SAVED_MENU_EVENT, XTread_socket):
524 Always set `arg' member of input_events.
525 (construct_menu_click): Unused function removed.
526
527 * msdos.c (dos_rawgetc): Always set `arg' member of input_events.
528
529 * w32term.c (construct_mouse_click, construct_mouse_wheel)
530 (construct_drag_n_drop, x_scroll_bar_handle_click)
531 (w32_read_socket): Always set `arg' member of input_events.
532
533 * keyboard.c (show_help_echo): Use eval_form. Add comment.
534
535 * lisp.h (eval_form): Add prototype.
536
537 * xdisp.c (eval_form): Make it externally visible.
538
0f1a9b23
GM
5392000-07-13 Gerd Moellmann <gerd@gnu.org>
540
541 * xterm.c (x_handle_tool_bar_click): Store the frame in the
542 frame_or_window slot of TOOL_BAR_EVENT input events instead of
543 consing. For prefix events, store the frame in the `arg' slot of
544 the event, otherwise store the key there.
545 (XTread_socket): Instead of consing, use the frame_or_window slot
546 of HELP_EVENTs for the frame, and the `arg' slot for the help
547 string.
548
549 * xmenu.c (menu_highlight_callback): Store help string in the
550 `arg' member of the input event; don't cons.
551 (menubar_selection_callback): Use the `arg' slot of input events
552 to queue additional information, instead of consing.
553
554 * msdos.c (dos_rawgetc): Adapt to change of HELP_EVENTs.
555
556 * w32term.c (w32_handle_tool_bar_click): Adapt to changes in
557 TOOL_BAR_EVENTs.
558 (w32_read_socket): Adapt to changes in HELP_EVENTs.
559
560 * w32menu.c (menubar_selection_callback): Use the `arg' slot of
561 input events to queue additional information, instead of consing.
562
563 * keyboard.c (kbd_buffer_gcpro): Renamed from
564 kbd_buffer_frame_or_window. Now used for all Lisp objects
565 referenced from the input queue.
566 (kbd_buffer_store_event): Always use structure assignment for
567 copying input events. Record all Lisp objects referenced from
568 events in kbd_buffer_gcpro.
569 (kbd_buffer_get_event): Construct Lisp `help-echo' events
570 differently from input events. Test for prefix menu_bar_events
571 and TOOL_BAR_EVENTs differently. Reset all slots used by an input
572 event in kbd_buffer_gcpro to nil.
573 (make_lispy_event) <TOOL_BAR_EVENT>: Treat an input event whose
574 frame_or_window is equal to its arg member as prefix events.
575 (stuff_buffered_input): Reset all slots in kbd_buffer_gcpro
576 used by an input event to nil.
577 (init_keyboard): Use two times the size of the input queue
578 for kbd_buffer_gcpro.
579 (syms_of_keyboard): Likewise.
580
581 * emacs.c (handle_USR2_signal, handle_USR1_signal): Use
582 USER_SIGNAL_EVENT.
583
584 * termhooks.h (struct input_event): Add member `arg'.
585 (MENU_BAR_EVENT): Renamed from menu_bar_event.
586 (USER_SIGNAL_EVENT): Renamed from user_signal.
587
588 * xfaces.c (ASET): Remove definition.
589
590 * lisp.h (AREF, ASET, ASIZE): New macros.
591
592 * fontset.c (AREF, ASIZE): Remove definitions.
593
594 * fns.c (AREF): Remove definition.
178c5d9c 595
0f1a9b23
GM
596 * composite.c (AREF): Remove definition.
597
712eaef2
GM
5982000-07-12 Gerd Moellmann <gerd@gnu.org>
599
d8ee7803
GM
600 * dispnew.c (redraw_overlapped_rows): Add missing local.
601 (scrolling_window): Remove debug code.
602
712eaef2
GM
603 * xdisp.c (try_window_reusing_current_matrix, try_window_id):
604 Before scrolling, turn off a mouse-highlight in the window
605 being scrolled.
606
607 * xterm.c (x_update_window_end): Add parameter
608 MOUSE_FACE_OVERWRITTEN_P. If set, arrange for a mouse-highlight
609 redisplay in XTframe_up_to_date.
610 (x_clear_mouse_face): New function.
611 (x_redisplay_interface): Add pointer to x_clear_mouse_face.
612
613 * dispnew.c (make_current): Preserve the mouse_face_p flag of the
614 current glyph row.
615 (update_window_line): Add parameter MOUSE_FACE_OVERWRITTEN_P. Set
616 it when any row is written to that contains glyphs highlighted in
617 mouse-face.
618 (update_window): Call the window update end hook with new
619 parameter MOUSE_FACE_OVERWRITTEN_P.
620 (direct_output_for_insert): Give up if row contains mouse-face.
621
622 * dispextern.h (struct redisplay_interface): Add parameter
623 MOUSE_FACE_OVERWRITTEN_P to update_window_end_hook function.
624 (clear_mouse_face): New function pointer member.
625
02010917
SM
6262000-07-11 Stefan Monnier <monnier@cs.yale.edu>
627
628 * syntax.c (back_comment): Use one switch rather than a few `if's.
629 Obey open_paren_in_column_0_is_defun_start.
630 When reverting to the `slow' method, try to nicely handle the case
631 of nested comments by checking that the comment-starter we found
632 does indeed match the comment-ender.
633 (scan_sexps_forward, scan_sexps_forward):
634 Ignore excessive opening parenthesis rather than throwing an error.
635
d76c03ea
GM
6362000-07-11 Gerd Moellmann <gerd@gnu.org>
637
638 * doc.c (Fsubstitute_command_keys): Handle case that a GC
639 in Fwhere_is_internal or get_keymap_1 relocates string contents.
640
641 * dispnew.c (direct_output_forward_char): Give up if currently
642 displaying a message instead of the minibuffer contents.
643
644 * xterm.c (x_update_window_begin): No need to turn off the mouse
645 highlight here.
646 (show_mouse_face): Set the mouse_face_p flag of glyph rows
647 depending on whether they contain glyphs highlighted in
648 mouse-face.
649
650 * dispnew.c (row_equal_p): Add parameter MOUSE_FACE_P. If set,
651 compare the mouse_face_p flags of both rows.
652
653 * dispextern.h (struct glyph_row): Add flag mouse_face_p.
654
d55ead18
EZ
6552000-07-11 Eli Zaretskii <eliz@is.elta.co.il>
656
657 * keyboard.c (show_help_echo): Accept additional parameter
658 ok_to_overwrite_keystroke_echo.
659 (read_char): Call show_help_echo with a zero
660 ok_to_overwrite_keystroke_echo argument.
661 * keyboard.h (show_help_echo): Update prototype of
662 show_help_echo.
663 * xmenu.c (menu_help_callback): Call show_help_echo with non-zero
664 ok_to_overwrite_keystroke_echo argument.
665 * w32menu.c (w32_menu_display_help): Call show_help_echo with
666 non-zero ok_to_overwrite_keystroke_echo argument.
667
df75b1a3
GM
6682000-07-10 Gerd Moellmann <gerd@gnu.org>
669
4b92c49a
GM
670 * xdisp.c (try_window_id): If changes are all below what is
671 displayed in the window, and point is in the window, we still
672 might have to find point on the display.
673
674 * xterm.c (x_fill_stretch_glyph_string): Consume runs of stretch
675 glyphs instead of a single one.
676 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
677 with new argument list.
678 (x_set_glyph_string_gc): Make sure the face's GC is valid.
679
df75b1a3
GM
680 * keymap.c (get_keymap_1): Add comment that this function can GC.
681 (where_is_internal_2, where_is_internal_1): Add GCPROs, add
682 comment that functions can GC.
683 (Fset_keymap_parent): GCPRO arg KEYMAP.
684
4314cf3e
EZ
6852000-07-10 Eli Zaretskii <eliz@is.elta.co.il>
686
687 * msdos.c (XMenuActivate): After exiting the menu, restore the
688 echo area message and erase it.
689
ab49ce15
KH
6902000-07-10 Kenichi Handa <handa@etl.go.jp>
691
692 * fontset.c (Ffontset_info): Make the return value more compatible
693 with that of Emacs 20.
694
090a072f
GM
6952000-07-07 Gerd Moellmann <gerd@gnu.org>
696
697 * eval.c (Fsignal): Handle case that backtrace_list is null.
698
f92de4a6
KH
6992000-07-07 Kenichi Handa <handa@etl.go.jp>
700
701 * ccl.c (Fccl_execute): Typo fixed.
702
dd8888a1
GM
7032000-07-06 Gerd Moellmann <gerd@gnu.org>
704
e5c81191 705 * window.c (window_loop): Add missing gcpro1 local variable.
178c5d9c 706
dd8888a1
GM
707 * window.c (Fwindow_list): Reverse list at the end.
708 (candidate_window_p): Add parameter OWINDOW. ALL_FRAMES nil
709 means allow windows on OWINDOW's frame, only.
710 (window_loop): Simplified; use Fwindow_list.
711
712 * Makefile.in (TAGS-LISP): Don't pass `$(lispsource)' to make.
713
485266d0
GM
7142000-07-05 Gerd Moellmann <gerd@gnu.org>
715
716 * xterm.c (XTread_socket): Increment handling_signal at the start,
717 decrement it at the end.
718
719 * eval.c (handling_signal): New variable.
720 (Fsignal): Abort if handling_signal is non-zero.
721
722 * lisp.h (handling_signal): External declaration.
178c5d9c 723
485266d0
GM
724 * s/freebsd.h (WAITTYPE, WRETCODE): Put in #if 0.
725
80fcd514
KR
7262000-07-05 Ken Raeburn <raeburn@gnu.org>
727
728 Sound support for NetBSD through "Linux emulation" support:
729 * config.in (HAVE_SOUNDCARD_H): Undef.
730 (HAVE_SOUND): Define if HAVE_SOUNDCARD_H.
731 * Makefile.in (LIBSOUND): New variable.
732 (LIBES): Include it.
733 * sound.c [HAVE_SOUNDCARD_H]: Include <sys/ioctl.h> and
734 <soundcard.h>.
735 (DEFAULT_SOUND_DEVICE): Define to "/dev/dsp" if not defined
736 elsewhere.
737 (vox_open): Use DEFAULT_SOUND_DEVICE.
738 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Define to /dev/audio.
739
d5c5cddd
GM
7402000-07-05 Gerd Moellmann <gerd@gnu.org>
741
742 * print.c (print_error_message): If Vsignaling_function is set,
743 show it in *Messages*.
744
745 * lisp.h (Vsignaling_function): External declaration.
746
747 * eval.c (Vsignaling_function): New variable.
748 (Fsignal): Compute it.
749 (syms_of_eval): Staticpro it.
750
65171e3a
DL
7512000-07-05 Dave Love <fx@gnu.org>
752
753 * syswait.h: Use the autoconf recommended approach. Old code
754 #if'd out in case we need to revert.
755
178c5d9c 756 * config.in (HAVE_SYS_WAIT_H): Added.
65171e3a 757
e2c46326
AI
7582000-07-05 Andrew Innes <andrewi@gnu.org>
759
760 * vm-limit.c (check_memory_limits) [REL_ALLOC]: Use real_morecore
761 when non-NULL instead of __morecore, to take account of buffer
762 memory. This also solves a problem with spurious memory warnings
763 on Windows.
764
765 * ralloc.c: Make real_morecore non-static.
766
767 * eval.c (internal_condition_case): Comment out abort if
768 interrupt_input_blocked is not zero.
769
770 * makefile.nt: Add support for `bootstrap' and related targets.
771 Include minimal debug info in emacs.exe in release build.
772 Remove all dependencies on lisp.h, and fixup some others.
773
774 * w32.c (init_environment): Install code from 20.7 for providing
775 default values for environment variables, based on the
776 executable's own location.
777 (map_w32_filename): Handle filenames that are longer than
778 MAX_PATH.
779 (sys_socket): Install socket inheritance bug fix from 20.7.
780
781 * alloca.c [emacs]: Include lisp.h (needed by atimer.h included
782 here via blockinput.h).
783
a027a91b
SM
7842000-07-05 Stefan Monnier <monnier@cs.yale.edu>
785
e4b31601
SM
786 * w32menu.c (w32_menu_display_help):
787 * xmenu.c (menu_help_callback): Use show_help_echo.
a027a91b
SM
788
789 * keyboard.h (show_help_echo): Declare.
790
791 * keyboard.c (show_help_echo): New function, extracted from read_char.
792 Feval its `msg' argument if it's a cons cell.
793 (read_char): Use it.
4cf8d9d5 794 (follow_key): Pass `autoload' to get_keyelt.
a027a91b 795
178c5d9c 796 * xterm.c (note_mode_line_highlight, note_mouse_highlight)
a027a91b 797 (note_tool_bar_highlight, XTread_socket):
178c5d9c 798 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight)
a027a91b
SM
799 (dos_rawgetc):
800 * w32term.c (note_mode_line_highlight, note_mouse_highlight)
801 (note_tool_bar_highlight, w32_read_socket):
802 Do not gratuitously ignore non-string `help-echo' properties.
803
88d75730
GM
8042000-07-05 Gerd Moellmann <gerd@gnu.org>
805
969f7e79
GM
806 * eval.c (Feval): Put check for interrupt_input_block in #if 0.
807
71201b00
GM
808 * window.c (delete_all_subwindows): Reset Vwindow_list.
809
88d75730
GM
810 * xterm.c (x_append_glyph, x_append_composite_glyph)
811 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
812 changes in struct glyph starting 1999-12-27. Some bit-fields of
813 struct glyph were not set, which made glyphs unequal when compared
814 with GLYPH_EQUAL_P. Redisplay outputs such glyphs, and flickering
815 effects were the result. This also depended on the contents of
816 memory returned by xmalloc. If flickering happens again, activate
817 the code in clear_glyph_row that's in #if 0. If the flickering is
818 gone with that, chances are that it is caused by something
819 similar.
820
821 * dispnew.c (clear_glyph_row): Add debug code in #if 0.
178c5d9c 822
88d75730
GM
823 * dispextern.h: Add some comments.
824
825 * window.c (add_window_to_list): Add parameter LIST.
826 (window_list): Order list so that, for each frame, windows are
827 in canonical order, and so that frames appear in the list in
828 the order given by Vframe_list.
829 (next_window): Reverse the handling of NEXT_P.
830
53654733
GM
8312000-07-04 Gerd Moellmann <gerd@gnu.org>
832
87efd256
GM
833 * window.c (Vwindow_list): New variable.
834 (make_window, delete_window): Set Vwindow_list to nil.
835 (check_window_containing): New function.
836 (window_from_coordinates): Rewritten.
837 (add_window_to_list, window_list, candidate_window_p)
838 (decode_next_window_args, next_window): New functions.
839 (Fnext_window, Fprevious_window): Rewritten in terms of
840 next_window.
841 (Fwindow_list): New function.
842 (Fother_window): Cleaned up.
843 (foreach_window): Add a longer "variable argument list". Let
844 callback function return 0 to indicate that cycling over windows
845 should stop.
846 (foreach_window_1): Likewise.
847 (freeze_window_start): Return int.
848 (init_window): New function.
849 (syms_of_window): Staticpro Vwindow_list and defsubr Swindow_list.
850
851 * emacs.c (handle_USR1_signal, handle_USR2_signal) Clear
852 input_event with bzero.
853 (main): Call init_window.
854
53654733
GM
855 * keymap.c (get_keyelt): Temporarily inhibit GC while evaluating
856 a menu filter.
857
4a8c194f
KH
8582000-07-04 Kenichi Handa <handa@etl.go.jp>
859
860 * composite.h (make_composition_value_copy): Extern it.
861
862 * composite.c (make_composition_value_copy): New function.
863
864 * editfns.c (Fformat): While copying text properties, make each
865 composition property value a copy.
866
867 * fns.c (concat): While copying text properties, make each
868 composition property value a copy.
869
831a6cb0
GM
8702000-07-03 Gerd Moellmann <gerd@gnu.org>
871
2f516940
GM
872 * m/macppc.h (LINKER, LD_SWITCH_MACHINE) [LINUX]: Define.
873
178c5d9c 874 * fns.c (sweep_weak_table): Mark only objects that are not
aee625fa
GM
875 marked already.
876
831a6cb0
GM
877 * frame.c (next_frame, prev_frame): If MINIBUF is a window,
878 include those frames as candidates which have their focus
879 redirected to the minibuffer frame.
880
d9c4f922
SM
8812000-07-03 Stefan Monnier <monnier@cs.yale.edu>
882
883 * fns.c (Fputhash): Return `value' rather than nil.
884
3780bc22
GM
8852000-06-30 Gerd Moellmann <gerd@gnu.org>
886
97d176db
GM
887 * frame.c (next_frame): Don't check focus redirection in case
888 MINIBUF is a window. Doing so excludes frames using MINIBUF
3780bc22
GM
889 unless their focus is redirected, which contradicts the
890 specification of next-frame, and leads to infinite loops in
891 certain situations when cycling through windows with next-window.
892
dca9961d
KH
8932000-06-30 Kenichi Handa <handa@etl.go.jp>
894
895 * coding.c (code_convert_region): Even if the length of text is
896 zero, try to convert it if coding->type is coding_type_ccl.
897 (decode_coding_string, encode_coding_string): Likewise.
898
d5483ab1
GM
8992000-06-28 Gerd Moellmann <gerd@gnu.org>
900
af5c25e1 901 * xdisp.c (try_window_reusing_current_matrix): Don't try to reuse
97d176db 902 the display if windows_or_buffers_changed.
af5c25e1
GM
903
904 * dispnew.c (struct row_entry): New structure.
905 (row_entry_pool, row_entry_pool_size, row_entry_idx, row_table)
906 (row_table_size, old_lines, new_lines, old_lines_size)
907 (new_lines_size, run_pool, runs_size, runs): New variables.
908 (add_row_entry): New function.
909 (scrolling_window): Use data structures allocated with xmalloc and
97d176db 910 held in global variables, instead of allocating them with alloca and
af5c25e1
GM
911 holding them in local variables. Use a larger hash table whose
912 size depends on glyph matrix sizes. Don't use bzero to clear the
913 hash table; instead, clear used slots only.
914
915 * fns.c (next_almost_prime): Make it externally visible.
916
917 * lisp.h (next_almost_prime): Add prototype.
918
d5483ab1
GM
919 * s/isc4-0.h (sigunblock): Define.
920
921 * s/sco5.h (sigunblock): Define.
922
93e40f40
DL
9232000-06-27 Dave Love <fx@gnu.org>
924
925 * s/osf1.h (C_SWITCH_SYSTEM, LIBS_SYSTEM): Revert last change
926 (moved to osf5-0.h).
927 [!NOT_C_CODE]: Protect string.h stuff.
928
929 * s/osf5-0.h (C_SWITCH_SYSTEM, WAIT_USE_INT, SYS_SIGLIST_DECLARED)
930 (sys_siglist, NSIG): Definitions moved here from osf1.h.
931
3c4b7685
GM
9322000-06-27 Gerd Moellmann <gerd@gnu.org>
933
97d176db 934 * xdisp.c (resize_mini_window): Subtract the extra line spacing
3c4b7685
GM
935 below the last line from the needed window height.
936
32cad0aa
SM
9372000-06-26 Stefan Monnier <monnier@cs.yale.edu>
938
939 * fns.c (Fplist_member): Renamed from Fwidget_plist_member.
940 (Fwidget_get): Use it.
941 (syms_of_fns): Defsubr it.
942
2c69ced2
GM
9432000-06-26 Gerd Moellmann <gerd@gnu.org>
944
178c5d9c 945 * xterm.c (xim_initialize) [!USE_XIM]: Don't set up the
1d36487c
GM
946 display info for XIM.
947 (xim_open_dpy): Likewise.
948 (xim_close_dpy): Don't free the display info's XIM.
949
950 * xfns.c (x_window) [!USE_XIM]: Don't call create_frame_ic.
951
952 * config.in (USE_XIM): New define.
953
3fc720e4
GM
954 * keymap.c (get_keyelt): For menu-items containing a `:filter
955 FILTER', apply FILTER to the menu-item's definition to get the
956 real definition to use.
957
958 * lisp.h (QCfilter): External declaration.
959
2c69ced2
GM
960 * xfns.c (Fimage_size): New function.
961 (syms_of_xfns): Defsubr it.
962
f978b2a2
AS
9632000-06-26 Andreas Schwab <schwab@suse.de>
964
965 * coding.c (decode_coding_string): Re-fetch STRING_BYTES after
966 Fstring_as_unibyte.
967
94cc7892
DL
9682000-06-25 Dave Love <fx@gnu.org>
969
970 * term.c [!HAVE_TERMCAP_H]: Declare tputs, tgetent, tgetflag,
971 tgetnum.
972
973 * Makefile.in (blockinput.h): Depend on atimer.h.
974 (atimer.h): Depend on systime.h.
975
976 * blockinput.h: Protect against multiple inclusion. Include
977 atimer.h.
978
979 * atimer.h: Protect against multiple inclusion. Include
980 systime.h.
981
982 * lisp.h (swap_in_global_binding): Declare.
983
b8c24556
KR
9842000-06-24 Ken Raeburn <raeburn@gnu.org>
985
986 * process.c (Fopen_network_stream): Turn off atimers for duration
987 of call to connect. (Patch from Gerd.)
988
8cf8560b
DL
9892000-06-23 Dave Love <fx@gnu.org>
990
511c7541
DL
991 * ralloc.c: Maybe include unistd.h
992
8cf8560b
DL
993 * emacs.c (setgrp): Undefine before defining.
994 (malloc_warning, set_time_zone_rule, index): Prototype.
995
996 * systime.h (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use
997 HAVE_STRUCT_TIMEZONE.
998
999 * s/osf1.h: Move string.h hack here from alpha.h and make it
1000 conditional.
1001 (C_SWITCH_SYSTEM): Use _OSF_SOURCE, not -BSD, which clashes with
1002 _XOPEN_SOURCE.
1003 (WAIT_USE_INT, SYS_SIGLIST_DECLARED, sys_siglist, NSIG): Define.
1004 (SOCKLEN_TYPE): Don't define.
1005
1006 * m/alpha.h: Remove string.h hack.
1007
1008 * s/osf5-0.h: New file.
1009
1010 * filelock.c: Use feature tests for fcntl.h, string.h. Don't
1011 include time.h, done by systime.h.
1012 [__FreeBSD__]: Remove redundant includes.
1013
3fc720e4 1014 * callproc.c (setpgrp): Undefine before defining.
8cf8560b
DL
1015 (delete_temp_file): Return Qnil to avoid warning.
1016
1017 * config.in (HAVE_TERM_H, HAVE_STRUCT_TIMEZONE): Add.
1018
1019 * xfaces.c: Include fontset.h dependent on HAVE_WINDOW_SYSTEM, not
1020 HAVE_X_WINDOWS.
1021
1022 * fontset.h (free_face_fontset): Renamed from fs_free_face_fontset.
1023
1024 * composite.h (compose_text): Declare.
1025
1026 * xterm.c: Don't include sys/types.h unconditionally. Don't
1027 protect its inclusion with !USG (following xmenu.c).
1028
ea055732
GM
10292000-06-23 Gerd Moellmann <gerd@gnu.org>
1030
1031 * xfns.c (x_create_tip_frame): Initialize frame's colors like
1032 in x_create_frame.
1033
74b01b80
EZ
10342000-06-23 Eli Zaretskii <eliz@is.elta.co.il>
1035
1036 * coding.c (decode_eol_post_ccl): Special handling for undecided
1037 and inconsistent EOL types.
1038
64f3a166
GM
10392000-06-22 Gerd Moellmann <gerd@gnu.org>
1040
16cf31f7
GM
1041 * xrdb.c (x_load_resources): Add default resource for scroll bar's
1042 trough color and main window's background color.
1043
178c5d9c 1044 * xfns.c (Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events
16cf31f7
GM
1045 differently.
1046
1047 * xterm.h (Xt_app_con): External declaration.
1048
1049 * widget.c (EmacsFrameRealize): Fix typo.
178c5d9c 1050
486a103d
GM
1051 * widget.c (EmacsFrameRealize): Remove SubstructureRedirectMask.
1052
64f3a166
GM
1053 * xdisp.c (handle_stop): Initialize it->add_overlay_start to zero.
1054 (handle_invisible_prop): Record the start of invisible text in
1055 it->add_overlay_start.
1056 (struct overlay_entry): Add member `overlay'.
1057 (handle_overlay_change): Simplify.
1058 (next_overlay_string): After having processed overlay strings at the
1059 end of the buffer, record that fact in
1060 it->overlay_strings_at_end_processed_p.
1061 (compare_overlay_entries): If before- and after-strings come
1062 from the same overlay, let before-strings come first.
1063 (RECORD_OVERLAY_STRING): Record the overlay that strings come from.
1064 (load_overlay_strings): Take it->add_overlay_start into account
1065 when adding overlay strings.
1066
1067 * dispextern.h (struct it): Add member add_overlay_start.
1068
bb746ea6
DL
10692000-06-22 Dave Love <fx@gnu.org>
1070
1071 * s/isc3-0.h (C_SWITCH_SYSTEM): Define _XOPEN_SOURCE=500.
1072
1073 * s/gnu-linux.h (C_SWITCH_SYSTEM): Don't define _XOPEN_SOURCE here.
1074
a8f573f3
KH
10752000-06-22 Kenichi Handa <handa@etl.go.jp>
1076
1077 * ccl.c (ccl_driver) <CCL_End>: Decrement stack_idx only when it
1078 is greater than 0.
1079
9f2bbc92
DL
10802000-06-21 Dave Love <fx@gnu.org>
1081
178c5d9c 1082 * Makefile.in (GETLOADAVG_OBJ): Removed -- LIBOBJS does it.
9f2bbc92 1083
3ee5041c
SM
10842000-06-21 Stefan Monnier <monnier@cs.yale.edu>
1085
1086 * syntax.c (back_comment): Simplify string-parity counting (with
1087 the added benefit of handling multiple string-styles as long as
1088 they are not intertwined).
1089 Jump to the slow code as soon as a comment starter is found in
1090 a "string_lossage" position. Fixes the case: " /* " /* " */.
1091
4c343001
DL
10922000-06-21 Dave Love <fx@gnu.org>
1093
1094 * Makefile.in: Use GETLOADAVG_LIBS.
1095
1096 * config.in: Add HAVE_FCNTL_H, _FILE_OFFSET_BITS,
1097 _LARGEFILE_SOURCE, _LARGE_FILES, _XOPEN_SOURCE.
1098
e6365855
SM
10992000-06-20 Stefan Monnier <monnier@cs.yale.edu>
1100
1101 * syntax.c (describe_syntax): Recognize the `n'estable bit.
1102 (Fforward_comment, scan_lists):
1103 Check the comstyle of single-char comment-starters.
1104 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
1105 we're just at the beginning of the comment (f.ex with (*) ... (*)).
d355bd8a
SM
1106 Check the comstyle of single-char comment-starters.
1107 Clarify control-flow around the Scomment case.
e6365855 1108
5700d2cc
DL
11092000-06-20 Dave Love <fx@gnu.org>
1110
d355bd8a
SM
1111 * fns.c (make_hash_table, maybe_resize_hash_table):
1112 Cast arg of next_almost_prime.
5700d2cc 1113
178c5d9c 1114 * tparam.c [emacs]: Include lisp.h.
5700d2cc
DL
1115
1116 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
1117 and unistd.h.
1118
4a27bdfb
GM
11192000-06-20 Gerd Moellmann <gerd@gnu.org>
1120
a61d762c
GM
1121 * keyboard.c (adjust_point_for_property): Check if display
1122 property should be treated as intangible by looking at its
1123 value.
1124
178c5d9c 1125 * xdisp.c (single_display_prop_intangible_p)
a61d762c
GM
1126 (display_prop_intangible_p): New functions.
1127
1128 * dispextern.h (display_prop_intangible_p): Add prototype.
1129
1130 * xdisp.c (dump_glyph_row): Show type of glyph->object.
178c5d9c 1131
4a27bdfb
GM
1132 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
1133 argument to sigprocmask.
1134
1135 * s/sco5.h (sigblock): Redefined to pass a pointer as second
1136 argument to sigprocmask.
1137
1138 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
1139 sigprocmask_set, and pass a pointer to it to sigprocmask.
1140
1141 * sysdep.c (sigprocmask_set): New variable.
1142
1143 * fileio.c (make_temp_name): Don't use `%s' in string passed to
1144 report_file_error.
1145
427ec082
SS
11462000-06-20 Sam Steingold <sds@gnu.org>
1147
1148 * xrdb.c: Don't declare xmalloc, xrealloc.
1149
8972fe79 11502000-06-20 Stefan Monnier <monnier@cs.yale.edu>
8972fe79
SM
1151
1152 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
1153 (re_comp): Cast gettext return value to avoid complaints when
1154 !HAVE_LIBINTL.
1155
074b6efe
DL
11562000-06-20 Dave Love <fx@gnu.org>
1157
f85c008a
DL
1158 * m/stride.h, m/mips.h: Don't define HAVE_GETWD,
1159 HAVE_GETTIMEOFDAY.
1160
5700d2cc 1161 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
f85c008a 1162
d355bd8a 1163 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
f85c008a
DL
1164
1165 * m/alpha.h: Don't declare xmalloc, xrealloc.
1166
0af4f205
DL
1167 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
1168
1169 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
1170
1171 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
1172
1173 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
1174 HAVE_GETWD.
1175
074b6efe
DL
1176 * keyboard.h (poll_for_input_1): Declare.
1177
1178 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
1179
1180 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
1181
1182 * doprnt.c: Don't declare xmalloc, xrealloc.
1183
1184 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
1185 (getenv, ctime, getwd): Removed.
1186 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
1187
1188 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
1189 x_set_tool_bar_lines.
1190
1191 * config.in: Add HAVE_GETWD. Move some definitions above
1192 machine/system includes.
1193
68a5e97b
KH
11942000-06-20 Kenichi Handa <handa@etl.go.jp>
1195
95417e1e
KH
1196 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
1197
68a5e97b
KH
1198 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
1199 contain information about ENCODING.
1200
1201 * fontset.c (FONTSET_ASCII): Use the first element of char table
1202 for an ASCII font, not defalt slot.
1203 (fontset_ref_via_base): If FONTSET doesn't contain information for
1204 C, try the default fontset.
1205 (make_fontset): Don't copy the default fontset.
1206 (fontset_font_pattern): Likewise.
1207 (accumulate_font_info): If ELT is nil, use the corresponding
1208 element in the default fontset.
1209
3b4fa1b2
DL
12102000-06-19 Dave Love <fx@gnu.org>
1211
943e731c
DL
1212 * syntax.c (Fparse_partial_sexp): Doc fix.
1213
1214 * regex.h: Test PROTOTYPES as well as __STDC__.
1215
3b4fa1b2
DL
1216 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
1217 errno, strerror. Put text after #endif in comment.
1218
1219 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for
1220 pcc).
1221
1222 * xterm.c (x_frame_of_widget): Likewise.
1223
cdf0357b
GM
12242000-06-19 Gerd Moellmann <gerd@gnu.org>
1225
1226 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
1227 to Vfundamental_mode_abbrev_table.
1228
1229 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
1230 bogus objects are marked. This slows down GC by ~80 percent, but
1231 it might be worth trying when debugging GC-related problems.
1232 This feature requires conservative stack marking to be enabled.
1233
1234 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
1235 returns XLookupChars, reset `modifiers' to zero.
1236
998e9f8c
DL
12372000-06-19 Dave Love <fx@gnu.org>
1238
1239 * mktime.c: Unprotoized.
1240
18e21ce8 12412000-06-19 Richard Stallman <rms@gnu.org>
d1504184
GM
1242
1243 * data.c (set_internal): If variable is frame-local,
1244 store the new value immediately into the frame parameter alist.
1245
140c4ac6
KR
12462000-06-19 Ken Raeburn <raeburn@gnu.org>
1247
14358466
KR
1248 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
1249 in the custom handler pointer.
1250
140c4ac6
KR
1251 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
1252 value, or checks for CHAR_META can fail when Lisp_Object is a
1253 union type.
1254 * keymap.c (get_keyelt): Likewise.
1255
10d7bf84
KH
12562000-06-19 Kenichi Handa <handa@etl.go.jp>
1257
1258 * ccl.h (struct ccl_program): New member eol_type.
1259 (struct ccl_spec): New member cr_carryover.
1260
1261 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
1262 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
1263
1264 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
1265 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
1266 (decode_eol_post_ccl): New function.
1267 (decode_coding): Don't detect EOL format here for CCL based coding
1268 systems.
1269 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
1270 decode_eol_post_ccl after running the CCL program.
1271 (code_convert_region): Don't detect EOL format here for CCL based
1272 coding systems.
1273 (decode_coding_string): Likewise.
1274
52e386c2
KR
12752000-06-18 Ken Raeburn <raeburn@gnu.org>
1276
1277 * charset.c (update_charset_table): Use XINT on "iso_final_char"
1278 when treating it as an integer.
1279
1280 * coding.h (encode_coding_string): Declare.
1281
1282 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
1283 it as an integer.
1284
1285 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
1286 "xkeymap" to avoid shadowing the "enum map_type" value that needs
1287 to be passed to get_local_map.
1288
1289 * sound.c (Fplay_sound): Don't call make_number on
1290 Frun_hook_with_args count argument.
1291
1292 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
1293 for lisp objects in X event structure data field, when lisp
1294 objects are represented with unions.
1295 (x_scroll_bar_to_input_event): Ditto.
1296
b357b9d4
KR
12972000-06-16 Ken Raeburn <raeburn@gnu.org>
1298
1299 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
37d034d3
KR
1300 termination of string. Fix sense of test whether
1301 Vline_number_display_limit is an integer.
b357b9d4 1302
a871441d
GM
13032000-06-16 Gerd Moellmann <gerd@gnu.org>
1304
a9021acd
GM
1305 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
1306 only if HAVE_X_WINDOWS.
1307
6344985d
GM
1308 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
1309 of titles.
1310
427ec082 1311 * dispnew.c (update_frame_1): Handle case that cursor vpos is
a871441d
GM
1312 out of bounds.
1313
228b083e
EZ
13142000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
1315
1316 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
1317 of its headers.
1318
c25b53a2
KH
13192000-06-15 Kenichi Handa <handa@etl.go.jp>
1320
1321 * coding.c (decode_coding_emacs_mule): Always set src_base at the
1322 start of the while loop.
1323
a6981b11
GM
13242000-06-15 Gerd Moellmann <gerd@gnu.org>
1325
e9924e52
GM
1326 * atimer.c (alarm_signal_handler): Add forward declaration.
1327
a6981b11
GM
1328 * data.c (set_internal): Remove debug code.
1329
25fa6deb
GM
13302000-06-14 Gerd Moellmann <gerd@gnu.org>
1331
dce6b995
GM
1332 * Makefile.in (bootstrap-temacs): Add `-I../src'.
1333
9f817ea4
GM
1334 * unexec.c (toplevel) [COFF]: Include coff.h.
1335
1336 * s/lynxos.h: New file.
1337
1338 * keymap.c (Fsingle_key_description): Enclose function key and
1339 event symbol names in angle brackets.
1340
8a4e3c0c
GM
1341 * xdisp.c (setup_echo_area_for_printing): Call
1342 message_log_maybe_newline if message_buf_print is not set.
1343
1344 * print.c (printchar, strout): Don't check message_buf_print
427ec082 1345 before calling setup_echo_area_for_printing because that
8a4e3c0c
GM
1346 function does something useful even when message_buf_print is
1347 already set.
1348
25fa6deb
GM
1349 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines): New
1350 variables.
1351 (ensure_echo_area_buffers): Initialize echo buffer's
1352 truncate lines setting to nil.
1353 (with_echo_area_buffer): Don't set the echo buffer's truncate
1354 lines setting here.
8a4e3c0c 1355 (set_message_1): Set it here instead, based on the value
25fa6deb
GM
1356 of message_truncate_lines.
1357 (resize_mini_window): Handle case that lines are truncated.
1358 (syms_of_xdisp): Initialize Qmessage_truncate_lines. DEFVAR_BOOL
1359 message-truncate-lines.
1360
1361 * keyboard.c (read_char): Bind message-truncate-lines to t
1362 while displaying a help-echo.
1363
1364 * lisp.h (Qmessage_truncate_lines): External declaration.
1365
163dcff3
GM
13662000-06-13 Gerd Moellmann <gerd@gnu.org>
1367
1681ead6
GM
1368 * xdisp.c (Vline_number_display_limit): Renamed from
1369 line_number_display_limit.
1370 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
1371 Extend documentation string. Initialize
1372 Vline_number_display_limit to nil meaning no limit.
1373 (decode_mode_spec): Use Vline_number_display_limit with its new
1374 meaning.
1375
163dcff3
GM
1376 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
1377
18e21ce8 13782000-06-13 Richard Stallman <rms@gnu.org>
163dcff3
GM
1379
1380 * frame.c (Fmodify_frame_parameters): Doc fix.
427ec082 1381
163dcff3
GM
1382 * xfns.c (x_set_frame_parameters): Comment fix.
1383
1384 * frame.c (store_frame_param): Call swap_in_global_binding if the
1385 variable's current binding was chosen based on this frame.
1386
1387 * data.c (swap_in_global_binding): New function.
1388
a704139d
EZ
13892000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
1390
1391 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
1392 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
1393
9b6610db
EZ
13942000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
1395
1396 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
1397
c68833d2
JR
13982000-06-12 Jason Rumney <jasonr@gnu.org>
1399
1400 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
1401
1402 * w32.h (EMACS_W32_H): Renamed from _NT_H_
1403
1404 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
1405
1406 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
1407
ed1056b3
GM
14082000-06-12 Gerd Moellmann <gerd@gnu.org>
1409
1410 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
1411 (syms_of_xfaces): Defsubr Sdump_colors.
1412 (x_free_colors): Don't treat b&w specially on default visual.
1413 (x_free_dpy_colors): New function.
1414 (free_face_colors): Don't check visual class; it's done
1415 in x_free_colors.
1416
1417 * xterm.c (x_frame_of_widget): New function.
1418 (x_alloc_nearest_color_for_widget): Use it.
1419 (x_copy_dpy_color): New function.
1420 (x_destroy_window): Free various colors.
1421
5050a2ef
KH
14222000-06-12 Kenichi Handa <handa@etl.go.jp>
1423
1424 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
1425
1426 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
1427
1428 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
1429
1430 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
1431
1432 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
1433
fb1b041d
DL
14342000-06-11 Dave Love <fx@gnu.org>
1435
1436 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
1437
ff96b5f4
EZ
14382000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
1439
1440 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
1441
db8eeecd
GM
14422000-06-11 Gerd Moellmann <gerd@gnu.org>
1443
ed1056b3 1444 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
db8eeecd
GM
1445 to `XEvent *'.
1446
49b71c5f
KH
14472000-06-10 Kenichi Handa <handa@etl.go.jp>
1448
c479bd55
KH
1449 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
1450 (regex_compile): Fix the code for handling the case of single byte
1451 char and multibyte char being mixed in a range within [...].
1452
ff6a65c2
KH
1453 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
1454 and dst_multibyte members of coding.
1455
49b71c5f
KH
1456 * charset.c (update_charset_table): Update the table
1457 bytes_by_char_head.
1458 (init_charset_once): Initialize elements of bytes_by_char_head to
1459 1 except for leading codes for private charases.
1460
1461 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
1462 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte
1463 sequence.
1464
9e80b57d
KR
14652000-06-09 Ken Raeburn <raeburn@gnu.org>
1466
1467 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
1468 access the data it doesn't point to.
1469
f83fe4b4
GM
14702000-06-08 Gerd Moellmann <gerd@gnu.org>
1471
1472 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
db8eeecd 1473 will be translated to a switch-frame event when reading the
f83fe4b4
GM
1474 event queue. This is necessary because Emacs otherwise won't
1475 perform a switch-frame to a new frame until some other event, for
1476 example a keystroke event, forces it to do so. This has various
1477 effects, one visible being that the cursor of a frame created with
1478 C-x 5 2 or switched to with a window manager key binding like
1479 A-TAB stays hollow because selected_window isn't on the newly
1480 focused frame until the switch-frame is performed.
1481
1482 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
1483 generating a switch-frame event if necessary.
1484
1485 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
1486
1487 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
1488 it's an integer.
1489
0890801b
KH
14902000-06-08 Kenichi Handa <handa@etl.go.jp>
1491
1492 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a
1493 charset.
1494
173cbca8
GM
14952000-06-07 Gerd Moellmann <gerd@gnu.org>
1496
3091c2a6
GM
1497 * window.c (displayed_window_lines): Take empty lines at
1498 the bottom of a window into account.
427ec082 1499
f38952fe
GM
1500 * window.c (displayed_window_lines): New function.
1501 (Fmove_to_window_line): Use displayed_window_lines to determine
1502 the number of lines to move, instead of using the window's height.
1503
1504 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
1505 to stop reading, even if the form read sets point to a different
1506 value when evaluated.
1507
427ec082 1508 * xdisp.c (display_line): Fix code deciding in which line to
173cbca8
GM
1509 put the cursor.
1510
6ba6c818
KH
15112000-06-07 Kenichi Handa <handa@etl.go.jp>
1512
1513 * fileio.c (e_write): Free composition data if stored in
1514 coding->cmp_data.
1515
5f1aea9a
GM
15162000-06-06 Gerd Moellmann <gerd@gnu.org>
1517
666852af
GM
1518 * xdisp.c (display_line): Set row's and iterator's
1519 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
1520 Set cursor even if row ends in the middle of a character.
1521 (dump_glyph_row): Print values of new flags.
1522 (redisplay_window) <cursor movement in unchanged window>: When
1523 point has been moved forward, and PT is at the end of the cursor
1524 row, don't place the cursor in the next row if the cursor row ends
1525 in the middle of a character or at ZV.
1526
1527 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
1528 (struct glyph_row): Add starts_in_middle_of_char_p and
1529 ends_in_middle_of_char_p.
1530 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
1531 ends_in_middle_of_char_p flag.
1532 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
1533
d13f3e2e
GM
1534 * term.c (append_glyph): Revert change of 2000-06-06.
1535
1536 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
1537 padding glyph not fitting on line as whole character not
1538 fitting on line.
1539
5f1aea9a
GM
1540 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
1541 this isn't true for images with `:ascent 100'.
1542
10cda9b0
KH
15432000-06-06 Kenichi Handa <handa@etl.go.jp>
1544
ed00559d
KH
1545 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
1546 as modified if it is originally unmodified.
1547
10cda9b0
KH
1548 * term.c (encode_terminal_code): Change the way to check if
1549 terminal coding does any conversion.
1550 (append_glyph): Set glyph->pixel_width correctly.
1551
1552 * xdisp.c (display_line): While checking line continuation, pay
1553 attention to a padding glyph.
1554
1969fae2
GM
15552000-06-05 Gerd Moellmann <gerd@gnu.org>
1556
1557 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
1558
162ccef4
DL
15592000-06-05 Dave Love <fx@gnu.org>
1560
f19f32dd
DL
1561 * xdisp.c: Include fontset.h.
1562
1563 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
1564
1565 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
1566
1567 * dispnew.c: Conditionally include term.h.
1568
1569 * coding.h: Declare code_convert_string_norecord.
1570
1571 * frame.h (struct frame): Use volatile unconditionally.
1572
1573 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
1574
1575 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
1576
1577 * systime.h: Protect against multiple inclusion.
1578 (timezone) [USG5_4]: Define as time_t.
1579
1580 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
1581 (Foptimize_char_table, make_temp_name): Declare.
1582
1583 * Makefile.in (xdisp.o): Depend on fontset.h.
1584
1585 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
1586
1587 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
1588 (Foptimize_char_table, make_temp_name): Declare.
1589
427ec082 1590 * s/irix4-0.h:
162ccef4
DL
1591 * s/irix5-0.h:
1592 * s/netbsd.h: Don't define autoconfiscated MATHERR.
1593
2082fe81
DL
15942000-06-02 Dave Love <fx@gnu.org>
1595
1596 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
1597
dcf671d2
GM
15982000-06-02 Gerd Moellmann <gerd@gnu.org>
1599
1600 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
1969fae2 1601 result face, set flags in that face indicating that colors may not
dcf671d2
GM
1602 be freed.
1603
1604 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
1605 glyph, use the ASCII NUL character to determine the face.
1606
d42122a3
DL
16072000-06-02 Dave Love <fx@gnu.org>
1608
1609 * sysdep.c: Conditionally include stdlib.h, unistd.h.
1610 (VFORK_RETURN_TYPE): Remove.
427ec082 1611
d42122a3
DL
1612 * config.in: Add NO_MATHERR.
1613
dd432f16
DL
16142000-06-01 Dave Love <fx@gnu.org>
1615
90aa4ea8
DL
1616 * cmds.c (internal_self_insert): Don't check
1617 Vbefore_change_function, Vafter_change_function.
1618
1619 * insdel.c (signal_before_change, signal_after_change): Likewise.
1620
1621 * buffer.c (Vbefore_change_function, Vafter_change_function):
1622 Variables and their initializations deleted.
1623
2330c9d4
DL
1624 * callint.c (Fcall_interactively): Doc fix.
1625
dd432f16
DL
1626 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
1627
bf9e8804
DL
16282000-05-31 Dave Love <fx@gnu.org>
1629
1630 * textprop.c: Revert last change -- duplicated.
1631
3694b4ab
GM
16322000-05-31 Gerd Moellmann <gerd@gnu.org>
1633
1634 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
1635 in #if 0.
1636
1637 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
1638
f14156cd
JR
16392000-05-31 Jason Rumney <jasonr@gnu.org>
1640
8119aab8
JR
1641 * search.c (Fre_search_forward, Fre_search_backward)
1642 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
1643
f14156cd
JR
1644 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
1645
4aab9be3
JR
16462000-05-30 Jason Rumney <jasonr@gnu.org>
1647
1648 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
1649 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
1650
1651 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type
1652 member.
1653
1654 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
1655 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
1656 expand a nil default_filename.
1657
1658 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
1659 pointer to glyph_to_pixel_coords, not a frame.
1660
1661 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
1662 coding.h to dependencies.
1663
1664 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
1665
1666 * w32console.c (glyph_to_pixel_coords): Change first parameter to
1667 window pointer to be consistent with w32term.c and xterm.c.
1668
1669 * w32fns.c: Format and doc changes to bring closer to xfns.c.
1670 (VIETNAMESE_CHARSET): Define if not defined in system headers.
1671 (Qline_spacing, Qcenter): New variables.
1672 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
1673 (x_set_line_spacing): New function.
1674 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT
1675 macros.
1676 (x_specified_cursor_type): New function.
1677 (x_set_cursor_type): Use it.
1678 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
1679 and icon strings.
1680 (validate_x_resource_name, x_get_resource_string): Measure lengths
1681 of external strings in bytes.
1682 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
1683 GetTextExtentPoint32 with NULL title.
1684 (Fx_create_frame): Initialize Qline_spacing.
1685 (w32_load_system_font): Initialize font->double_byte_p.
1686 (x_to_w32_charset): Use Vw32_charset_info_alist.
1687 (Image, busy cursor, tooltip functions): Merged changes from
1688 xfns.c. Not yet functional on Windows.
1689
1690 * w32gui.h (W32FontStruct): Add double_byte_p member.
1691
1692 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
1693 (emacs_button_translation): Use it.
1694 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
1695 in `mask' to be set.
1696
1697 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
1698 menu strings.
1699
1700 * w32term.c: Format and doc changes to bring closer to xterm.c.
1701 (w32_char_font_type): New enum.
1702 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
1703 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
1704 (w32_encode_char): New function.
1705 (x_encode_char): Removed.
1706 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
1707 x_encode_char and w32_font_is_double_byte.
1708 (x_produce_image_glyph): Use image_ascent.
1709 (x_produce_glyphs): Use new version of w32_per_char_metric and
1710 handle NULL return value. Allow extra line spacing.
1711 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
1712 (w32_get_glyph_overhangs): Remove unicode_p param. Use
1713 w32_font_type member of glyph instead.
1714 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
1715 (fast_find_position): Make sure not to consider rows not visible
1716 in the window.
1717 (w32_read_socket) [WM_MENUSELECT]: Cannot call
1718 w32_menu_display_help with input blocked, as it can abort.
1719 (x_display_and_set_cursor): Choose cursor depending
1720 on buffer-local value of cursor_type.
1721 (x_draw_bar_cursor): Add parameter WIDTH.
1722
1723 * w32term.h (CP_DEFAULT): Define.
1724 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
1725
10fc3187
GM
17262000-05-30 Gerd Moellmann <gerd@gnu.org>
1727
1728 * search.c (Fre_search_forward, Fre_search_backward)
1729 (Fposix_search_backward, Fposix_search_forward): Doc fix.
1730
d0555360
KH
17312000-05-30 Kenichi Handa <handa@etl.go.jp>
1732
1733 * coding.c (detect_coding_iso2022): Fix code for checking
1734 CODING_CATEGORY_MASK_ISO_8_2.
1735
f1ad044f
SM
17362000-05-29 Stefan Monnier <monnier@cs.yale.edu>
1737
1738 * regex.c (PREFETCH_NOLIMIT): New function.
1739 (re_match_2_internal): Use it and adjust the end_match_2 logic.
1740
84ec3b4b
GM
17412000-05-29 Gerd Moellmann <gerd@gnu.org>
1742
66254a13
GM
1743 * syntax.c (find_defun_start): Move test for
1744 open_paren_in_column_0_is_defun_start outside of the loop.
1745
49e70dec
GM
1746 * xdisp.c (redisplay_window): Really switch buffers when
1747 displaying mode lines, and temporarily set selected_frame to the
1748 frame of the window that's redisplayed.
1749
84ec3b4b
GM
1750 * xfaces.c (free_realized_faces): Block/unblock input.
1751 (free_realized_multibyte_face): Ditto.
1752
869a3a14
DL
17532000-05-29 Dave Love <fx@gnu.org>
1754
1755 * textprop.c (Qkeymap): New variable.
1756 (syms_of_textprop): Intern it.
1757
1758 * keymap.c: Include intervals.h.
1759 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
1760
1761 * Makefile.in (keymap.o): Depend on intervals.h.
1762
1763 * keyboard.c (menu_bar_items, tool_bar_items)
1764 (Fexecute_extended_command): Deal with `keymap' property.
1765 (read_key_sequence): Track map from `keymap' property as well as
1766 `local_map'.
1767
1768 * intervals.c (get_local_map): Extra arg to allow looking for
1769 `keymap' too.
1770
1771 * intervals.h (map_property): New enum.
1772 (get_local_map): Extra arg using it.
1773 (Qkeymap): Declare.
1774
84ec3b4b 1775 * lisp.h (get_local_map): Don't declare here.
869a3a14 1776
89d0c844
KH
17772000-05-29 Kenichi Handa <handa@etl.go.jp>
1778
1779 * Makefile.in (callproc.o): Depend on composite.h.
1780
1781 * callproc.c: Include composite.h.
1782 (Fcall_process): Handle composition correctly.
1783
1784 * coding.h (coding_allocate_composition_data): Extern it.
1785 (coding_restore_composition): Likewise.
1786
1787 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
1788 yet allocated, finish decoding with result
1789 CODING_FINISH_INSUFFICIENT_CMP.
1790 (coding_allocate_composition_data): Make it non-static.
1791 (coding_restore_composition): Likewise.
1792
797a084a
EZ
17932000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
1794
1795 * charset.c (syms_of_charset): Revert last change.
1796
cf872af5
EZ
17972000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
1798
1799 * term.c (produce_glyphs): Treat characters from the eight-bit-*
d7d0dac0
SM
1800 charsets as unibyte, with 1-column screen width. Sent by Kenichi
1801 Handa.
cf872af5 1802
5b1ae051
EZ
18032000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
1804
1805 * charset.c (syms_of_charset): Set width of character sets
1806 eight-bit-control and eight-bit-graphic to 1 column.
1807
34ec9ebe
GM
18082000-05-26 Gerd Moellmann <gerd@gnu.org>
1809
1810 * config.in (HAVE_SPEED_T): New define.
1811
1812 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
1813 `extern speed_t'.
1814
dd854dc2
DL
18152000-05-26 Dave Love <fx@gnu.org>
1816
1817 * coding.c (shrink_decoding_region): Initialize eol_conversion.
1818
1819 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
1820 (Fsubr_arity): New function.
1821 (syms_of_data): Install them.
1822
ba9f8f95
KH
18232000-05-26 Kenichi Handa <handa@etl.go.jp>
1824
0f3e0672
KH
1825 * charset.c (init_charset_once): Set the table bytes_by_char_head
1826 correctly.
1827
cebefb44
KH
1828 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
1829 the default fontset to what Emacs uses by default.
0f3e0672
KH
1830 (check_registry_encoding): This function deleted.
1831 (Fset_fontset_font): Remove the adhoc condition for the default
1832 fontset. Allow cons in FONTNAME.
cebefb44 1833
0f3e0672
KH
1834 * fns.c (map_char_table): Ignore char-table entries for
1835 charsets eight-bit-control and eight-bit-graphic.
ba9f8f95 1836
7a18af49
KR
18372000-05-25 Ken Raeburn <raeburn@gnu.org>
1838
1839 * emacs.c (main): Initialize keyboard syms before initializing
1840 window code, so face names are available.
1841
d2af47df
SM
18422000-05-25 Stefan Monnier <monnier@cs.yale.edu>
1843
1844 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
1845 of an anchor at the beginning of a shy-group.
1846
fc6a6a4e
GM
18472000-05-25 Gerd Moellmann <gerd@gnu.org>
1848
1849 * xdisp.c (handle_invisible_prop): Don't try to skip over
1850 invisible text if end of text is already reached.
1851
005f0d35
DL
18522000-05-25 Dave Love <fx@gnu.org>
1853
02513cdd
DL
1854 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
1855
005f0d35
DL
1856 * coding.c (encode_eol): Add null statement after label.
1857
89f6ca4e
EZ
18582000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
1859
1860 * w16select.c (Fw16_set_clipboard_data): Fix the change from
1861 2000-05-20.
1862
a4e1759e
KH
18632000-05-25 Kenichi Handa <handa@etl.go.jp>
1864
1865 * ccl.c (ccl_driver): Fix previous change.
1866
eacfd7fe
KH
18672000-05-25 Kenichi Handa <handa@etl.go.jp>
1868
46ab33a9
KH
1869 * coding.c (run_pre_post_conversion_on_str): Set point to the
1870 beginning of buffer before calling coding->post_read_conversion.
1871 (decode_coding_string): Give correct args to
1872 run_pre_post_conversion_on_str.
1873 (encode_coding_string): Likewise.
1874
eacfd7fe
KH
1875 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
1876 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
1877 eight-bit-graphic correctly.
1878
f8569325
DL
18792000-05-24 Kenichi HANDA <handa@etl.go.jp>
1880
1881 * fileio.c (Finsert_file_contents): Even if a file is not found,
1882 execute codes for setting up coding system. Call
1883 after-insert-file-functions unconditionally.
1884
04545643
GM
18852000-05-24 Gerd Moellmann <gerd@gnu.org>
1886
1887 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
1888 BSD_PGRPS are not defined.
1889
747d90ea
KH
18902000-05-24 Kenichi Handa <handa@etl.go.jp>
1891
1892 * charset.c (update_charset_table): Accept nil in LONG_NAME and
1893 DESCRIPTION.
1894 (syms_of_charset): Avoid building same strings.
1895
716e3b88
GM
18962000-05-23 Gerd Moellmann <gerd@gnu.org>
1897
1898 * lread.c (Fload): Add a comment about the meaning of
1899 Vuser_init_file being t.
1900
1901 * puresize.h (BASE_PURESIZE): Increase to 675000.
1902
1903 * s/gnu-linux.h (setpgrp): Don't define it here because this
1904 prevents compilation on GNU/Linux systems with glib 2.2.
1905
1906 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
1907 as setpgid.
427ec082 1908
9aeb39fa
EZ
19092000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
1910
1911 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
1912 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
1913 version.
1914 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
1915
29ced61b
KH
19162000-05-23 Kenichi Handa <handa@etl.go.jp>
1917
0574a2ed
KH
1918 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE
1919 unconditionally.
1920
3d80f24d
KH
1921 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
1922
1923 * term.c (encode_terminal_code): Set coding->src_multibyte
1924 properly.
1925
29ced61b
KH
1926 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
1927
d7e00792
KH
19282000-05-22 Kenichi Handa <handa@etl.go.jp>
1929
c9d80d38
KH
1930 * keyboard.c (read_char): Allow character codes 128..255 to be
1931 handled by input-method-function.
1932
d7e00792
KH
1933 * insdel.c (adjust_markers_for_replace): Fix previous change.
1934 (adjust_after_replace): If PREV_TEXT is nil, call
1935 adjust_markers_for_insert, not adjust_markers_for_replace.
1936
087121cc 19372000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
427ec082 1938
087121cc
GM
1939 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
1940 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
1941 [HAVE_GRANDPT]: Define.
1942 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
1943
1944 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
1945 like SYSV_PTYS.
1946
1947 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
1948
1949 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
1950
c9671f81
KH
19512000-05-20 Kenichi Handa <handa@etl.go.jp>
1952
1953 The following changes are to handle 8-bit characters in a
1954 multibyte buffer/string without facing with byte combining
1955 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
1956 eight-bit-graphic (for 0xA0..0xFF) are introduced.
1957
1958 * Makefile.in (fns.o): Depend on charset.h.
1959
1960 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
1961 convert it to unibyte.
1962 (make_string): Use parse_str_as_multibyte, not chars_in_text.
1963
1964 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
1965 apparent char boundary.
1966 (Fset_buffer_multibyte): Convert 8-bit characters in the range
1967 0x80..0x9F to/from multibyte form.
1968
1969 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
1970 to unibyte.
1971
1972 * callproc.c (Fcall_process): Always encode an argument string if
1973 it is multibyte. Setup src_multibyte and dst_multibyte members of
1974 process_coding properly.
ce75fd23 1975
c9671f81
KH
1976 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
1977 SPLIT_NON_ASCII_CHAR.
1978
1979 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
1980 as is.
1981 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
1982
1983 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New
1984 variables.
1985 (SPLIT_CHARACTER_SEQ): This macro deleted.
1986 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is
1987 valid.
1988 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
1989 and eight-bit-graphic.
1990 (char_to_string): Likewise. Signal an error for too large
1991 character code.
1992 (char_printable_p): Return 0 for 8-bit characters.
1993 (update_charset_table): Update iso_charset_table only when a final
1994 character is non-negative.
1995 (find_charset_in_text): Renamed from find_charset_in_str.
1996 Arguments and return value changed. Callers changed.
1997 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
1998 be -1 if CHARSET is used only internally.
1999 (Fmake_char_internal): Handle new charsets; eight-bit-control and
2000 eight-bit-graphic.
2001 (Fcharset_after): Simplified.
2002 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
2003 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
2004 (multibyte_chars_in_text): Simplified by assuming there's no
2005 invalid multibyte sequence.
2006 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
2007 str_as_unibyte): New functions.
2008 (Fstring): Simpified by assuming that byte combining never
2009 happens.
2010 (init_charset_once): Initialization for
2011 LEADING_CODE_8_BIT_CONTROL.
2012 (syms_of_charset): Intern and staticpro Qeight_bit_control and
2013 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
2014 eight-bit-control and eight-bit-graphic.
2015
2016 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL,
2017 CHARSET_8_BIT_GRAPHIC): New macros.
2018 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
2019 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
2020 (CHARSET_REVERSE_CHARSET): Likewise.
2021 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
2022 eight-bit-graphic.
2023 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
2024 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
2025 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
2026 encounter an invalid multibyte sequence.
2027 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
2028 sequence is always valid.
2029 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
2030 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New
2031 macros.
2032 (CHAR_STRING): For 8-bit characters, call char_to_string.
2033 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
2034 multibyte sequence is always valid.
2035 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
2036 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
2037 str_as_unibyte): Extern them.
2038 (BCOPY_SHORT): Fix a bug.
2039 (CHAR_LEN): This macro deleted. Callers changed to use
2040 CHAR_BYTES.
2041 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
2042 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
2043 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
2044
bd4bde7f 2045 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
c9671f81
KH
2046 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
2047 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
2048 EMIT_BYTES): New macros.
2049 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
2050 DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
2051 macros deleted.
2052 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
2053 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
2054 check the validity of multibyte sequence.
2055 (decode_coding_emacs_mule): New function.
2056 (encode_coding_emacs_mule): New macro.
2057 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
2058 the source.
2059 (DECODE_ISO_CHARACTER): Just return a character code.
2060 (DECODE_COMPOSITION_START): Set coding->result instead of result.
2061 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
2062 EMIT_CHAR to produced decoded characters. Exit the loop only by
2063 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
2064 block here.
2065 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
2066 only position codes for an invalid character.
2067 (encode_designation_at_bol): Return new destination pointer. 5th
2068 arg DSTP is changed to DST.
2069 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
2070 from the source by ONE_MORE_CHAR. Don't handle the case of last
2071 block here.
2072 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
2073 macros deleted.
2074 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
2075 detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
2076 TWO_MORE_BYTES to fetch a byte from the source.
2077 (encode_eol): Pay attention to coding->src_multibyte.
2078 (detect_coding, detect_eol): Preserve members src_multibyte and
2079 dst_multibyte.
2080 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
2081 (encoding_buffer_size): Set magnification to 3 for all coding
2082 systems that require encoding.
2083 (ccl_coding_driver): For decoding, be sure that the result is
2084 valid multibyte sequence.
2085 (decode_coding): Initialize coding->errors and coding->result.
2086 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
2087 and raw-text, always call decode_eol. Handle the case of last
2088 block here. If not coding->dst_multibyte, convert the resulting
2089 sequence to unibyte.
2090 (encode_coding): Initialize coding->errors and coding->result.
2091 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
2092 and raw-text, always call encode_eol. Handle the case of last
2093 block here.
2094 (shrink_decoding_region, shrink_encoding_region): Detect cases
2095 that we can't skip data more rigidly.
2096 (code_convert_region): Setup src_multibyte and dst_multibyte
2097 members of coding. For decoding, if the buffer is multibyte,
2098 convert the source sequence to unibyte in advance. For encoding,
2099 if the buffer is multibyte, convert the resulting sequence to
2100 multibyte afterward.
2101 (run_pre_post_conversion_on_str): New function.
2102 (code_convert_string): Deleted and divided into the following two.
2103 (decode_coding_string, encode_coding_string): New functions.
2104 (code_convert_string1, code_convert_string_norecord): Call one of
2105 above.
2106 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
2107 MAKE_NON_ASCII_CHAR.
2108 (Fset_terminal_coding_system_internal,
2109 Fset_safe_terminal_coding_system_internal): Setup src_multibyte
2110 and dst_multibyte members.
2111 (init_coding_once): Initialize iso_code_class with new enum
2112 ISO_control_0 and ISO_control_1.
2113
2114 * coding.h (enum iso_code_class_type): Member ISO_control_code is
2115 devided into ISO_control_0 and ISO_control_1.
2116 (struct coding_system): New members src_multibyte, dst_multibyte,
2117 errors, and result. Delete member fake_multibyte.
2118 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
2119 nonzero.
2120 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
2121 nonzero.
2122
2123 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
2124 (Faset): Likewise.
2125
2126 * editfns.c (Fformat): Be sure to convert 8-bit characters to
2127 multibyte form.
2128 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
2129 combining occurs.
2130 (Ftranspose_region): Delete codes for handling byte combining.
2131
2132 * fileio.c (Finsert_file_contents): Setup src_multibyte and
2133 dst_multibyte members of coding. On handling REPLACE on unibyte
2134 buffer, convert the result of decode_coding to unibyte. On
2135 inserting into a mutibyte buffer, always call code_convert_region.
bd4bde7f 2136 (e_write): Setup coding->src_multibyte according to the
c9671f81
KH
2137 multibyteness of the source (buffer or string).
2138
2139 * fns.c (concat): Handle 8-bit characters correctly.
2140 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
2141 unibyte in the result.
2142 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
2143 valid multibyte form in the result.
2144 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
2145 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
2146 return -1, signal an error.
2147 (base64_encode_1): New arg MULTIBYTE. Get each character by
2148 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
2149 character is found, return -1.
2150 (Fbase64_decode_region): Delete codes for handling byte-combining.
2151 Treat each decoded byte as a unibyte character.
2152 (Fbase64_decode_string): Return unibyte string.
2153 (Fcompare_strings, concat, string_byte_to_char): Use
2154 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
2155 FETCH_STRING_CHAR_ADVANCE.
2156 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
2157 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
2158
2159 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
2160 SPLIT_NON_ASCII_CHAR.
2161 (fontset_ref_via_base, fontset_set): Likewise
2162
2163 * insdel.c (adjust_markers_for_record_delete): Deleted.
2164 (adjust_markers_for_insert): Argument changed. Caller changed.
2165 (adjust_markers_for_replace): Likewise.
2166 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error,
2167 CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
2168 (copy_text): Delete unused local varialbe c_save. For converting
2169 to multibyte, be sure to make all 8-bit characters in valid
2170 multibyte form.
2171 (count_size_as_multibyte): Handle 8-bit characters correctly.
2172 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
2173 adjust_after_replace, replace_range, del_range_2)
2174 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
2175 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
2176 adjust_after_replace, replace_range, del_range_2) Delete codes for
2177 handling byte combining.
2178 (adjust_before_replace): Deleted.
427ec082 2179
c9671f81
KH
2180 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
2181 SPLIT_NON_ASCII_CHAR.
2182 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
2183 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE
2184 unconditionally.
2185 (Fkey_description): Likewise.
2186
2187 * lread.c (read1): On reading multibyte string, be sure to make
2188 all 8-bit chararacters in valid multibyte form.
2189 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
2190
2191 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
2192 unconditionally.
2193
2194 * process.c (Fstart_process): GCPRO current_dir before calling
2195 Ffind_operation_coding_system. Encode arguments here.
2196 (create_process): Don't encode arguments here. Setup
2197 src_multibyte and dst_multibyte members of struct coding.
2198 (read_process_output): Setup src_multibyte and dst_multibyte
2199 members of struct coding. If the output is to multibyte buffer,
2200 always decode the output of the process. Adjust the
2201 representation of 8-bit characters to the multibyteness of the
2202 output.
2203 (send_process): Setup coding->src_multibyte according to the
2204 multibyteness of the source.
2205
2206 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE
2207 unconditionally.
2208 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
2209 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
2210
2211 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of
2212 CHAR_LEN.
2213
2214 * w16select.c (Fw16_set_clipboard_data): Setup members
2215 src_multibyte and dst_multibyte of coding. Adjusted for the
2216 change for find_charset_in_str.
2217 (Fw16_get_clipboard_data): Likewise.
2218
2219 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
2220 dst_multibyte of coding.
2221 (x_to_w32_font): Likewise.
2222
2223 * w32select.c (Fw32_set_clipboard_data): Setup members
2224 src_multibyte and dst_multibyte of coding. Adjusted for the
2225 change for find_charset_in_str.
2226 (Fw32_get_clipboard_data): Likewise.
2227
2228 * xdisp.c (get_next_display_element): Handle 8-bit characters
2229 correctly.
2230 (next_element_from_display_vector): Use CHAR_BYTES instead of
2231 CHAR_LEN.
2232 (disp_char_vector): Use SPLIT_CHAR instead of
2233 SPLIT_NON_ASCII_CHAR.
2234
2235 * xselect.c (selection_data_to_lisp_data): Setup members
2236 src_multibyte and dst_multibyte of coding. Adjusted for the
2237 change for find_charset_in_str.
2238 (lisp_data_to_selection_data): Likewise.
2239
5f64c9e0
GM
22402000-05-19 Gerd Moellmann <gerd@gnu.org>
2241
2b63d473
GM
2242 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed
2243 buffer.
2244
5f64c9e0
GM
2245 * dispextern.h (Vimage_types): Add extern declaration.
2246
2247 * xdisp.c (Vimage_types): Moved here from xfns.c.
2248 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
2249
2250 * xfns.c (Vimages_types): Moved to xdisp.c.
2251 (syms_of_xfns): Move `image-types' to xdisp.c.
2252
2253 * w32fns.c (Vimage_types): Removed.
2254 (syms_of_w32fns): Remove `image-types'.
2255
813086ea
KH
22562000-05-18 Kenichi Handa <handa@etl.go.jp>
2257
2258 * fns.c (map_char_table): Pay attention to character number of
2259 charset. Check the validity of charset at the first level. For
2260 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
2261 the default value.
2262
2263 * fontset.c: Include "buffer.h".
2264 (fs_load_font): If the face has fontset, record the face ID in
2265 that fontset.
2266 (Finternal_char_font): New function.
2267 (accumulate_font_info): New function.
2268 (Ffontset_info): Rewritten for the new fontset implementation.
2269 (syms_of_fontset): Register Vdefault_fontset in the first element
2270 of Vfontset_table. Include Vdefault_fontset in
2271 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
2272 function.
2273
bdaebbf0
DL
22742000-05-16 Dave Love <fx@gnu.org>
2275
2276 * m/iris5d.h: Deleted -- unused.
2277
cb613bb8
GM
22782000-05-16 Gerd Moellmann <gerd@gnu.org>
2279
b15f3b77
GM
2280 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
2281 `invalid' instead of `illegal'.
2282
2283 * indent.c (Fmove_to_column): When ending within a tab, insert
2284 spaces first so that markers at the end of the tab get adjusted.
2285
835c1b36
GM
2286 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
2287 buffer list that wasn't selected in that frame.
2288
cb613bb8
GM
2289 * filelock.c (get_boot_time): To obtain an 8 char file name, which
2290 is needed on mescaline, use a 2 char prefix, and call
2291 make_temp_name with second arg non-zero.
2292
2293 * fileio.c (make_temp_name): New function, extracted from
2294 Fmake_temp_name.
2295 (Fmake_temp_name): Use it.
2296
f685bea9
EZ
22972000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
2298
2299 * window.c (coordinates_in_window): Subtract 1 when computing
2300 right_x.
2301
a1b8d58b
GM
23022000-05-15 Gerd Moellmann <gerd@gnu.org>
2303
2304 * Makefile.in (lisp): Add env.elc.
2305
2306 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
2307
a265079f
GM
23082000-05-12 Gerd Moellmann <gerd@gnu.org>
2309
2310 * search.c (Freplace_match): Handle case of `\N' in the
2311 replacement when there's no group N.
2312
da4496b6
GM
23132000-05-11 Gerd Moellmann <gerd@gnu.org>
2314
0ace421a
GM
2315 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
2316 of the message to message_dolog.
2317
1172eb8d
GM
2318 * keyboard.c (read_char): Don't clear current message for help
2319 events; let the code handling help events handle this. Change
2320 code detecting help events that should be ignored.
2321
da4496b6
GM
2322 * xdisp.c (handle_single_display_prop): Don't try to set PT if
2323 we're interating over a string.
2324
0623e40f
DL
23252000-05-09 Dave Love <fx@gnu.org>
2326
2327 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
2328 that offset before writing. Move gcpro region past call of
2329 Ffile_regular_p.
2330
bae2503b
DL
23312000-05-04 Dave Love <fx@gnu.org>
2332
2333 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
2334
ec82fb2f
GM
23352000-05-04 Gerd Moellmann <gerd@gnu.org>
2336
2337 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
2338 of inserted characters when BUF equals the current buffer, and PT
2339 is in front of or equal to FROM.
2340
cbf18892
GM
23412000-05-03 Gerd Moellmann <gerd@gnu.org>
2342
4ff40dd0
GM
2343 * xdisp.c (handle_single_display_prop): If display property value
2344 is invalid, or something not supported on the frame, restore
2345 iterator's position to what it was initially. Make sure to return
2346 0 for invalid and unsupported property values.
2347
cbf18892
GM
2348 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
2349 that x_per_char_metric returns null.
2350
1b0672c3
GM
23512000-05-02 Gerd Moellmann <gerd@gnu.org>
2352
576da55d
GM
2353 * xterm.h (struct face): Add forward declaration.
2354 (struct image): Ditto.
2355 (image_ascent): Add prototype.
2356
2357 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
2358 (x_draw_image_relief, x_draw_image_foreground_1): Call function
2359 image_ascent instead of using IMAGE_ASCENT.
2360
2361 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
2362 (IMAGE_ASCENT): Removed.
2363
2364 * xfns.c (Qcenter): New variable.
2365 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
2366 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
2367 (image_ascent): New function.
2368 (lookup_image): Recognize `:ascent center'.
2369 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
2370 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
2371 (xbm_load): Don't set image's ascent here.
2372 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
2373 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
2374 check ascent values here.
2375 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
2376 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
2377 (syms_of_xfns): Initialize Qcenter.
2378
1b0672c3
GM
2379 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
2380 to the limits, increase the limits.
2381
0d7811ed
KH
23822000-05-01 Kenichi Handa <handa@etl.go.jp>
2383
2384 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
2385 Check Vfont_encoding_alist against the full name of the opened
2386 font.
2387
a943a5ca
GM
23882000-04-28 Gerd Moellmann <gerd@gnu.org>
2389
2390 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
2391 taller than the window.
2392
5dba1e29
KH
23932000-04-28 Kenichi Handa <handa@etl.go.jp>
2394
2395 * xfaces.c (realize_x_face): Fix the argument of the second
2396 xassert. BASE_FACE may not be a face for ASCII.
2397
353964e3
GM
23982000-04-27 Gerd Moellmann <gerd@gnu.org>
2399
c76e04a8
GM
2400 * print.c (print_object): Treat print-length < 0 as nil.
2401
2402 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
2403
2404 * s/freebsd.h (TERMCAP_OBJ): Removed.
2405 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
2406
2407 * lread.c (read1): Don't treat period followed by certain
2408 characters as symbol start.
2409
2410 * xfns.c (slurp_file): New function.
2411 (xbm_image_p): Handle case of in-memory XBM files.
2412 (xbm_scan): Rewritten to work on memory buffers instead of files.
2413 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
2414 Work on memory buffers instead of files. If DATA is null test
2415 if buffer looks like an in-memory XBM file.
2416 (xbm_load_image): Renamed from xbm_load_image_file. Work on
2417 memory buffers instead of files.
2418 (xbm_file_p): New function.
2419 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
2420
353964e3
GM
2421 * lread.c (end_of_file_error): New function.
2422 (read1): Call it instead of signaling `end-of-file' directly.
2423
427ec082 2424 * print.c (print_error_message): Print data of `end-of-file'
353964e3
GM
2425 with Fprinc instead of Fprin1.
2426
24d744ac
KR
24272000-04-26 Ken Raeburn <raeburn@gnu.org>
2428
2429 * window.c (freeze_window_start): Check that minibuffer scroll
2430 window isn't nil before extracting the window structure pointer
2431 from it.
2432
2433 * undo.c (record_delete): If we hit the end of the undo list, stop
2434 picking elements apart.
2435
7464346d
GM
24362000-04-26 Gerd Moellmann <gerd@gnu.org>
2437
2438 * xdisp.c (display_line): If lines are continued, restore
2439 iterator's ascent/descent information to the values before the
2440 first glyph not fitting on the line.
2441
612839b6
GM
24422000-04-25 Gerd Moellmann <gerd@gnu.org>
2443
2444 * xdisp.c (try_window_id) <all changes above window start>: Adjust
2445 positions in glyph matrix. Don't compute new window end
2446 positions.
2447
2448 * dispnew.c (increment_matrix_positions): Renamed from
2449 increment_glyph_matrix_buffer_positions.
2450 (increment_row_positions): Renamed from
2451 increment_glyph_row_buffer_positions.
2452
2453 * dispextern.h: Change names of renamed functions from dispnew.c
2454 in prototypes.
2455
cc181e95
GM
24562000-04-24 Gerd Moellmann <gerd@gnu.org>
2457
abfcc168
GM
2458 * fileio.c (Fdo_auto_save): Create directories for auto-save
2459 list file if necessary.
2460
cc181e95
GM
2461 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
2462 from buffer or frame.
2463 (automatic_hscrolling_p): New variable.
2464 (hscroll_windows): Scroll windows horizontally only if automatic
2465 hscrolling is allowed.
2466 (syms_of_xdisp): New variable `automatic-hscrolling'.
2467
2468 * frame.h (struct frame): Add member extra_line_spacing.
2469
2470 * xfns.c (x_set_line_spacing): New function.
2471 (Fx_create_frame): Set line spacing from resources.
2472 (Qline_spacing): New variable.
2473 (syms_of_xfns): Initialize Qline_spacing.
427ec082 2474
cc181e95
GM
2475 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
2476
2477 * buffer.c (init_buffer_once): Handle extra_line_spacing.
2478 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
abfcc168 2479 (reset_buffer): Don't initialize extra2 and extra3. Initialize
cc181e95
GM
2480 extra_line_spacing from default value.
2481 (init_buffer_once): Initialize default value of extra_line_spacing.
2482
2483 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
2484 and extra3.
2485
2486 * xterm.c (x_produce_glyphs): Remove reference to struct it's
2487 prompt_width. Add extra line spacing.
2488
2489 * term.c (produce_glyphs): Remove reference to struct it's
2490 prompt_width.
2491
2492 * dispextern.h (struct it): Remove member prompt_width, add
2493 extra_line_spacing.
2494
58827478
GM
24952000-04-22 Gerd Moellmann <gerd@gnu.org>
2496
2497 * dispnew.c (update_frame_line): When writing a whole line, make
2498 sure cursor is in the right row afterwards, otherwise a use of
2499 capability `ch' in cmgoto might leave the cursor in the row below.
2500
25a87f42
GM
25012000-04-21 Gerd Moellmann <gerd@gnu.org>
2502
2503 * lisp.h (struct Lisp_Buffer_Cons): Remove.
2504
2505 * keyboard.c (timer_check): Fix typo in comment.
2506
54edf5c2
KH
25072000-04-21 Kenichi Handa <handa@etl.go.jp>
2508
2509 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
2510 name change: ch -> character.
2511
3a64eef5
GM
25122000-04-20 Gerd Moellmann <gerd@gnu.org>
2513
2514 * keyboard.c (echo_message_buffer): New variable.
2515 (echo_now): Set echo_message_buffer to the echo area buffer used
2516 to display the echo.
2517 (cancel_echoing): Reset echo_message_buffer to nil.
2518 (read_char): Code rewritten that handles canceling an echo or
2519 echoing a dash, respectively.
2520
2521 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
2522 directory doesn't exist.
2523
6142fdcb
DL
25242000-04-19 Dave Love <fx@gnu.org>
2525
2526 * fns.c (syms_of_fns): Defsubr mapc.
a9cacab7
DL
2527 (concat): Don't allow numeric args.
2528 (Fconcat): Doc change.
6142fdcb 2529
ac6b5352
SM
25302000-04-19 Stefan Monnier <monnier@cs.yale.edu>
2531
2532 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
2533 instead define end_match(1|2) more carefully.
2534 Use GET_CHAR_BEFORE_2 for `begline'.
2535
cb9215e4
GM
25362000-04-19 Gerd Moellmann <gerd@gnu.org>
2537
5e3dac3f
GM
2538 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
2539 on 64-bit systems where NULL is defined as `0'.
2540
2541 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
2542 the `variable argument list' to make it work on Alpha.
2543
cb9215e4
GM
2544 * m/alpha.h (_LP64) [!_LP64]: Define.
2545 (ORDINARY_LINK): Define for NetBSD.
2546
2547 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
427ec082 2548
f532dca0
DL
25492000-04-19 Dave Love <fx@gnu.org>
2550
c750667e
DL
2551 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
2552 change.
2553
2554 * Makefile.in (LIBS): Don't use.
2555 (GETLOADAVG_OBJ): Define again.
2556 (otherobj): Add GETLOADAVG_OBJ.
2557
f532dca0
DL
2558 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
2559
1c7e22fd
GM
25602000-04-18 Gerd Moellmann <gerd@gnu.org>
2561
f6d3257b
GM
2562 * lread.c (read_filtered_event): Cancel and start busy cursor.
2563
427ec082 2564 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
1c7e22fd
GM
2565 that the per-character metrics may be null.
2566
e10f64e7
GM
25672000-04-17 Gerd Moellmann <gerd@gnu.org>
2568
0daee095
GM
2569 * buffer.c (clone_per_buffer_values): New function.
2570 (Fmake_indirect_buffer): Add optional argument CLONE. Call
2571 clone_per_buffer_values if CLONE is not nil.
2572
e10f64e7
GM
2573 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
2574
38687d43
DL
25752000-04-16 Dave Love <fx@gnu.org>
2576
2577 * Makefile.in: Remove obsolete localcpp stuff.
2578 (GETLOADAVG_OBJ): Don't define.
2579 (obj): Move LIBOBJS...
2580 (otherobj): ... to here.
2581 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
2582 whitespace-only lines after the continuation (Irix).
2583
c21c7262
GM
25842000-04-14 Gerd Moellmann <gerd@gnu.org>
2585
2586 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
2587
2588 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
2589
314767c0
DL
25902000-04-14 Dave Love <fx@gnu.org>
2591
2592 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
2593 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
2594 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
2595 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
2596 NLIST_STRUCT.
2597
2598 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
2599 autoconfiscated HAVE_GETLOADAVG.
2600
2601 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
2602 BROKEN_MKTIME.
2603
a2522dca
GM
26042000-04-14 Gerd Moellmann <gerd@gnu.org>
2605
2606 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
2607 (fill_in_lock_file_name): Avoid existing files that aren't
2608 links.
2609
33744b5d
DL
26102000-04-14 Dave Love <fx@gnu.org>
2611
c21c7262 2612 * Makefile.in (LIBS, LIBOBJS): New variable.
33744b5d
DL
2613 (INTERVAL_SRC): Convert to make variable.
2614 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
2615 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
2616 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
2617 add LIBOBJS.
2618 (SOME_MACHINE_OBJECTS): Remove interval stuff.
2619 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
2620 (shortlisp): Add facemenu, float-sup, frame.
2621 (SOME_MACHINE_LISP): Remove them from here.
2622 (LIBES): Change unused LDLIBS to autoconf LIBS.
2623
2624 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
2625
9d3d5916
KH
26262000-04-14 Kenichi Handa <handa@etl.go.jp>
2627
2628 * composite.c (update_compositions): If FROM and TO are not in a
2629 valid range, do nothing.
2630
198e3c7a
GM
26312000-04-13 Gerd Moellmann <gerd@gnu.org>
2632
2633 * tparam.c (tparam1): Abort when encountering an unknown
2634 `%'-specifier.
2635
2636 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as
2637 terminfo.o.
2638
2639 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
2640 as TERMCAP_OBJ.
2641
055a28c9
EZ
26422000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
2643
2644 * fileio.c (a_write): Remove redundant semi-colons.
2645 (e_write): Return -1 if failed to write all the data.
2646 This fixes the changes made at 1999-12-15.
2647
f5c75033
DL
26482000-04-12 Dave Love <fx@gnu.org>
2649
2650 * fns.c (mapcar1): Test for null vals to support mapc.
2651 (Fmapc): New function.
2652
0c3cfc51
EZ
26532000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
2654
2655 * msdos.c (NUM_MOUSE_BUTTONS): Define.
2656 (IT_frame_up_to_date): Support the buffer local value of
2657 cursor-type, if defined.
2658
33465a31
DL
26592000-04-10 Dave Love <fx@gnu.org>
2660
2661 * editfns.c (preceding-char, following-char): Doc fix.
2662
6ed56568
KR
26632000-04-10 Ken Raeburn <raeburn@gnu.org>
2664
2665 * Makefile.in (temacs): Revert 2000-03-12 change.
2666
7cf80d4e
JR
26672000-04-10 Jason Rumney <jasonr@gnu.org>
2668
2669 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
2670
34f3f342
GM
26712000-04-10 Gerd Moellmann <gerd@gnu.org>
2672
1a1b1895
GM
2673 * xdisp.c (setup_echo_area_for_printing): Choose an echo
2674 area buffer, if it's not set up yet.
2675
34f3f342
GM
2676 * indent.c (compute_motion): Set immediate_quit.
2677
be0dbdab
GM
26782000-04-09 Gerd Moellmann <gerd@gnu.org>
2679
c45be9ac
GM
2680 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New
2681 variable.
2682 (realize_tty_face): Suppress boldness if colors are the inverse of
2683 the default colors, and tty_suppress_bold_inverse_default_colors_p
2684 is set.
2685 (Ftty_suppress_bold_inverse_default_colors): New function.
2686 (syms_of_xfaces): Defsubr it.
2687
be0dbdab
GM
2688 * buffer.c (Frestore_buffer_modified_p): New function.
2689 (syms_of_buffer): Defsubr it.
2690
e8413c3b
KR
26912000-04-08 Ken Raeburn <raeburn@gnu.org>
2692
87f67317
KR
2693 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
2694 charset id (int) argument, not a charset (Lisp_Object).
2695
e8413c3b
KR
2696 * coding.h (code_convert_string): Declare.
2697 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
2698 object, as the fourth argument to code_convert_string.
2699
2700 * fontset.c (make_fontset_for_ascii_face): Use XINT on return
2701 value.
2702 (Fset_fontset_font): Use EQ to compare lisp objects.
2703
7c752c80
KR
27042000-04-05 Ken Raeburn <raeburn@gnu.org>
2705
c0333abc
KR
2706 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
2707 a pointer that looks like a lisp object.
2708 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
2709 zero, instead see whether it's an integer object, since they can't
2710 have intervals.
2711 (GET_INTERVAL_OBJECT): Simply assign to the destination.
2712
7c752c80
KR
2713 * dispnew.c (allocate_matrices_for_frame_redisplay,
2714 direct_output_forward_char): Use X(U)INT and make_number as needed
2715 to convert between (unsigned) int values and lisp integers.
2716 * keyboard.c (read_key_sequence): Likewise.
2717 * lread.c (substitute_object_recurse): Likewise.
2718 * fns.c (concat, hash_lookup, hash_remove): Likewise.
2719 * minibuf.c (do_completion, Fminibuffer_complete_word,
2720 Fminibuffer_completion_help): Likewise.
2721 * term.c (produce_special_glyphs): Likewise.
2722
2723 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
2724 * print.c (print_preprocess, print_object): Likewise.
2725
2726 * search.c (compile_pattern): Use NILP when checking for nil.
2727
74e49b38
KR
2728 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
2729 __OPTIMIZE__]: Provide a GNU C macro version that handles
2730 lisp-object unions.
2731 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
2732 field, to better cope with ENABLE_CHECKING and calls that modify a
2733 Lisp_Object using its old value.
2734
685e5ed2
GM
27352000-04-04 Gerd Moellmann <gerd@gnu.org>
2736
c407c570
GM
2737 * window.c (compare_window_configurations): Signal an error
2738 if parameters C1 or C2 aren't window configurations.
2739
685e5ed2
GM
2740 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
2741 AFTER_POTENTIAL_GC calls around calls to functions that can
2742 signal an error and thus invoke the debugger.
2743
587a49ab
GM
27442000-04-03 Gerd Moellmann <gerd@gnu.org>
2745
62f20204
GM
2746 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
2747 an error if decoding fails.
2748
587a49ab
GM
2749 * keyboard.c (lispy_mouse_names): Variable removed.
2750 (Vlispy_mouse_stem): New variable.
2751 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
2752 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
2753 for any mouse button number. Increase size of mouse_syms and
2754 button_down_location as needed. Call modify_event_symbol with
2755 different arguments.
2756 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
2757 Call modify_event_symbol with different arguments.
2758 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
2759 for any button number. Call modify_event_symbol with different
2760 arguments.
2761 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
2762 Accept a string for NAME_ALIST_OR_STEM.
2763
2764 * lisp.h (larger_vector): Add prototype.
2765
2766 * fns.c (larger_vector): Make externally visible.
2767
2768 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
2769
2d1675e4
SM
27702000-04-02 Stefan Monnier <monnier@cs.yale.edu>
2771
2772 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
2773 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
2774 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
2775 we are between str1 and str2.
2776 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
2777 (PATFETCH): Use `TRANSLATE'.
2778 (PATFETCH_RAW): Fetch multibyte char if applicable.
2779 (PATUNFETCH): Remove.
2780 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
2781 When writing a char, write it directly into the pattern buffer rather
2782 than going needlessly through a temp char-array.
2783 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
2784 multibyte magic and remove the useless `#ifdef emacs'.
2785 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
2786 buffer.
2787
2788 * regex.h (struct re_pattern_buffer): Make field `multibyte'
2789 conditional on `emacs'.
2790
2791 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
2792
cc2d8c6b
KR
27932000-04-01 Ken Raeburn <raeburn@gnu.org>
2794
2795 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
2796 non-union-type versions of XMARK and friends here, because XMARK
2797 and friends won't work on an integer field if NO_UNION_TYPE is not
2798 defined.
2799 (make_number): Define as a function if it's not defined as a
2800 macro.
2801
09654086
KR
2802 * composite.c (run_composite_function): Use NILP when checking for
2803 nil.
2804 (syms_of_composite): Delete local var NARGS, pass an int as first
2805 argument to Fmake_hash_table.
2806
2387b382
KR
2807 * editfns.c (text_property_stickiness): Use NILP to test
2808 Lisp_Object boolean value.
2809 (Fmessage_or_box): Don't use NILP to test int variable.
c01fbf95
KR
2810 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
2811 problems reading from and changing the same lisp value in an
2812 XSETSTRING call.
2813
27660e89
GM
28142000-04-01 Gerd Moellmann <gerd@gnu.org>
2815
2816 * term.c (TN_no_color_video): New variable.
2817 (term_init): Intitialize TN_no_color_video.
2818 (enum no_color_bit): New enumeration.
2819 (MAY_USE_WITH_COLORS_P): New macro.
2820 (turn_on_face): Use it to determine if attributes may be used
2821 combined with colors.
2822
3578db3c
KR
28232000-04-01 Ken Raeburn <raeburn@gnu.org>
2824
2825 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
2826 with int lvalues via casts; instead, just yield lisp object
2827 lvalues.
2828 (enlarge_window): Variable sizep now points to Lisp_Object. Use
2829 proper accessor macros.
2830 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
2831 (grow_mini_window): Fix typo getting int value of root->height.
2832
6fc556fd
KR
2833 * xdisp.c (compute_string_pos): Fix order of arguments to
2834 string_pos_nchars_ahead.
2835 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
2836 count arg to variable-arg routines like Frun_hook_with_args and
2837 Fformat.
587a49ab
GM
2838 (back_to_previous_visible_line_start)
2839 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
6fc556fd
KR
2840 fixed-arg routines like Fget_char_property and Fmake_string.
2841 (reconsider_clip_changes): Use XINT when comparing integer lisp
2842 objects, or passing them as int arguments.
587a49ab
GM
2843 (mark_window_display_accurate, insert_left_trunc_glyphs)
2844 (append_space, extend_face_to_end_of_line): Use make_number when
6fc556fd
KR
2845 storing or passing integer values as lisp objects.
2846 (set_cursor_from_row, highlight_trailing_whitespace): Use
2847 INTEGERP, not implicit test against zero, for glyph object.
2848 (try_window_id): Don't use make_number when we want an int value.
2849
2850 * xfaces.c (xlfd_symbolic_value): Make last argument a
2851 Lisp_Object, to be consistent with callers.
2852 (Fbitmap_spec_p): Use XINT to get numeric value of height.
2853 (lface_hash): Apply XFASTINT to lisp values before folding in.
2854
2855 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
2856 fill in window width and height. Pass an int, not a lisp object,
2857 as first arg to Finsert.
2858
6e7b2457
GM
28592000-04-01 Gerd Moellmann <gerd@gnu.org>
2860
610d841e
GM
2861 * xfaces.c (realize_basic_faces): Block input while realizing
2862 the faces.
2863
6e7b2457
GM
2864 * keyboard.c (lispy_mouse_names): Add additional mouse names.
2865
2866 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
2867
aa110c0c
GM
28682000-03-31 Gerd Moellmann <gerd@gnu.org>
2869
2870 * xterm.c (x_produce_glyphs): When displaying unibyte text
610d841e 2871 or ASCII, handle case that per-char metric is null.
aa110c0c 2872
8801a864
KR
28732000-03-30 Ken Raeburn <raeburn@gnu.org>
2874
c6129d7e
KR
2875 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
2876
8801a864
KR
2877 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW,
2878 XSUBR, XBUFFER): Verify correct object type before returning
2879 pointer, using eassert.
2880 * frame.h (XFRAME): Likewise.
2881
2882 * buffer.c (Frename_buffer, Fset_buffer_multibyte,
2883 swap_out_buffer_local_variables, Fmove_overlay): Don't apply
2884 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong
2885 type.
2886 * data.c (set_internal): Likewise.
2887 * dispextern.h (WINDOW_WANTS_MODELINE_P,
2888 WINDOW_WANTS_HEADER_LINE_P): Likewise.
2889 * fileio.c (auto_save_1): Likewise.
2890 * insdel.c (check_markers): Likewise.
2891 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
2892 * undo.c (record_insert): Likewise.
2893 * vmsproc.c (child_sig): Likewise.
2894 * window.c (unshow_buffer, window_loop): Likewise.
2895 * xterm.c (x_erase_phys_cursor): Likewise.
2896
8e7af858
GM
28972000-03-30 Gerd Moellmann <gerd@gnu.org>
2898
2899 * xfns.c (free_image_cache): Free the cache structure itself
2900 last, after all its members have been freed.
2901
2902 * lisp.h (xstrdup): Add prototype.
2903
2904 * alloc.c (xstrdup): Moved here from xfaces.c.
2905 (allocating_for_lisp): Variable removed.
2906 (lisp_malloc): Block input around the calls to malloc and
2907 mem_insert.
2908
2909 * xfaces.c (realize_tty_face): Use find_symbol_value instead
2910 of Fsymbol_value.
2911 (xstrdup): Moved to alloc.c.
2912
e0b8c689
KR
29132000-03-29 Ken Raeburn <raeburn@gnu.org>
2914
b96f9fb7
KR
2915 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
2916
2917 * emacs.c (main): Fix sense of no-loadup test.
2918
e0b8c689
KR
2919 * config.in (ENABLE_CHECKING): Undef.
2920
2921 * lisp.h (struct interval): Replace "parent" field with a union of
2922 interval pointer and Lisp_Object; add new bitfield to use as
2923 discriminant. Change other flag fields to bitfields.
2924 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
2925 is defined and the supplied test fails, print a message and
2926 abort.
2927 (eassert): New macro. Use CHECK to provide an assert-like
2928 facility.
2929
2930 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
2931 pointers; abort if the value looks like a lisp object.
2932 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT,
2933 SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
2934 Modify for new interval parent definition.
2935
2936 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE,
2937 UNMARK_BALANCE_INTERVALS): Update references that need an
2938 addressable lisp object in the interval structure.
2939 (die): New function.
2940 (suppress_checking): New variable.
2941
2942 * intervals.c (interval_start_pos): Just return 0 if there's no
2943 parent object.
2944
f83c5440
GM
29452000-03-29 Gerd Moellmann <gerd@gnu.org>
2946
2947 * lread.c (read1): Accept `.' (period) as symbol start like in CL
2948 and earlier Emacs versions.
2949
2950 * keyboard.c (Ftop_level): Cancel busy-cursor.
2951
2952 * eval.c (call_debugger): Cancel busy-cursor.
2953
fdce64ff
KH
29542000-03-29 Kenichi Handa <handa@etl.go.jp>
2955
2956 * search.c (Freplace_match): Adjust multibyteness of the current
2957 buffer and NEWTEXT. Free allocated memory before signaling an
2958 error.
2959
f6a3f532
SM
29602000-03-28 Stefan Monnier <monnier@cs.yale.edu>
2961
2962 * regex.c (analyse_first): New function obtained by ripping out most
2963 of re_compile_fastmap and generalizing it a little bit so that it
2964 can also just return whether a given (sub)pattern can match the empty
2965 string or not.
2966 (regex_compile): Use `analyse_first' to decide whether the loop-check
2967 needs to be done or not for *, +, *? and +? (the loop check is costly
2968 for non-greedy repetition).
2969 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
2970
e9b309ac
DL
29712000-03-28 Dave Love <fx@gnu.org>
2972
bb15bd9a
DL
2973 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k,
2974 alpha.
2975
e9b309ac
DL
2976 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
2977
ed0767d8
SM
29782000-03-27 Stefan Monnier <monnier@cs.yale.edu>
2979
2980 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
2981 an expression.
2982 (enum re_opcode_t): Update description of succeed_n.
2983 (PATFETCH): Always define.
2984 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
2985 operators, char classes, shy-groups and intervals).
2986 Optimize special cases of intervals so as to only use succeed_n and
2987 jump_n when really needed.
2988 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
2989 that we don't have to handle the special cases any more.
2990 Simplify on_failure_jump handling as well.
2991
e11e7e46
JR
29922000-03-28 Jason Rumney <jasonr@gnu.org>
2993
2994 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
2995
88faab89
GM
29962000-03-27 Gerd Moellmann <gerd@gnu.org>
2997
182ff242
GM
2998 * s/freebsd.h (GC_SETJMP_WORKS): Define.
2999
3000 * s/msdos.h (GC_SETJMP_WORKS): Define.
427ec082 3001
182ff242
GM
3002 * alloc.c (mark_maybe_object): New function.
3003 (mark_memory): Use it.
3004 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
3005 (setjmp_tested_p, longjmp_done): New variables.
3006 (test_setjmp): New function.
3007 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
3008 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
3009
c1005d06
GM
3010 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
3011 to DEC_TEXT_POS and INC_TEXT_POS.
3012
3013 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
3014 with parameter MULTIBYTE_P.
3015
427ec082 3016 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter
c1005d06
GM
3017 MULTIBYTE_P.
3018
7439e5b9 3019 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
182ff242
GM
3020 buffers because it looks for multibyte character byte sequences
3021 which don't exist in unibyte text.
7439e5b9 3022
d9c545da
GM
3023 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
3024
11fd416e 3025 * xfaces.c (register_color, unregister_color, unregister_colors)
d9c545da
GM
3026 [DEBUG_X_COLORS]: New functions.
3027 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
3028
3029 * xfns.c (x_set_cursor_color): Get color reference counts right.
3030
3031 * xterm.c (x_copy_color): New function.
3032 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
3033
3034 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
3035 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
3036 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
3037 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
3038 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
3039 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
3040 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
3041 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
3042 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
3043 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
3044
11fd416e
GM
3045 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
3046 names for handling per-buffer variables.
d9c545da
GM
3047
3048 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
3049 instead of MAX_BUFFER_LOCAL_VARS.
3050 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
3051
3052 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
3053
88faab89
GM
3054 * xfns.c (x_specified_cursor_type): New function.
3055 (x_set_cursor_type): Use it.
3056
3057 * buffer.h (struct buffer): Add cursor_type.
3058
d80f42b7
SM
30592000-03-26 Stefan Monnier <monnier@cs.yale.edu>
3060
3061 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
427ec082 3062 (print_partial_compiled_pattern, re_compile_fastmap): Handle new
88faab89 3063 opcode.
d80f42b7
SM
3064 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
3065 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
3066 executing it as well as when popping it off the stack to find infinite
3067 loops in non-greedy repetition operators.
3068
89e80928
GM
30692000-03-26 Gerd Moellmann <gerd@gnu.org>
3070
3d4ff2dd
GM
3071 * doc.c (Qfunction_documentation): New variable.
3072 (syms_of_doc): Initialize Qfunction_documentation.
3073 (Fdocumentation): If FUNCTION is a symbol with non-nil
3074 `function-documentation' property, return a documentation derived
3075 from that.
3076
bd96bd79
GM
3077 * buffer.c (syms_of_buffer): Add default-cursor-type.
3078 (init_buffer_once): Don't let cursor_type have a local value
3079 in every buffer.
3080
19d1bc27
GM
3081 * xterm.c (x_display_and_set_cursor): Choose cursor depending
3082 on buffer-local value of cursor_type.
3083 (x_draw_bar_cursor): Add parameter WIDTH.
3084
3085 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
3086 (init_buffer_once): Set default cursor_type value to t.
3087 Mark cursor_type as local everywhere.
3088 (syms_of_buffer): New per-buffer variable cursor-type.
3089
89e80928
GM
3090 * buffer.h (struct buffer): Remove member local_var_flags,
3091 add local_flags.
3092 (MAX_BUFFER_LOCAL_VARS): New macro.
3093 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
3094 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
3095 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
3096 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
3097
3098 * print.c (print_object): Use new macros for per-buffer
3099 variables.
3100
3101 * category.c (Fset_category_table): Use new macros for per-buffer
3102 variables.
3103
3104 * buffer.c (buffer_permanent_local_flags): Make a char array.
3105 (max_buffer_local_idx): New variable.
3106 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
3107 for new handling of per-buffer variables.
3108 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
3109 (init_buffer_once): Initialize per-buffer vars differently.
3110 Set max_buffer_local_idx.
3111
3112 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
3113 variables.
3114
3115 * lread.c (defvar_per_buffer): Use new macros for per-buffer
3116 variables.
3117
3118 * data.c (do_symval_forwarding, store_symval_forwarding)
3119 (find_symbol_value, set_internal, default_value, Fset_default)
3120 (Fkill_local_variable, Flocal_variable_p): Use new macros for
3121 per-buffer variables.
3122
3123 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
3124
9a0dd3dc
GM
31252000-03-24 Gerd Moellmann <gerd@gnu.org>
3126
b68c375f
GM
3127 * xterm.c (x_term_init): Unblock input around call1 of
3128 Qvendor_specific_keysyms.
3129
9a0dd3dc
GM
3130 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
3131 (find_defun_start): Consider an open parenthesis in column 0
3132 a defun start only if open_paren_in_column_0_is_defun_start is set.
3133 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
3134
7973e637
SM
31352000-03-24 Stefan Monnier <monnier@cs.yale.edu>
3136
3137 * eval.c (Fautoload): Add entry in load-history (if after dump).
3138 * lread.c (load-history): Update docstring.
3139
39210e90
GM
31402000-03-24 Gerd Moellmann <gerd@gnu.org>
3141
3142 * indent.c (Fvertical_motion): Always use the current buffer.
3143 Temporarily change the window's buffer, if necessary.
3144
72db3ab5
GM
31452000-03-23 Gerd Moellmann <gerd@gnu.org>
3146
3147 * xterm.c (fast_find_position): Make sure not to consider rows
3148 not visible in the window.
3149
990b2375
SM
31502000-03-22 Stefan Monnier <monnier@cs.yale.edu>
3151
3152 * regex.c (enum syntaxcode): Provide default for non-Emacs.
3153 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
3154
ff4df011
JR
31552000-03-22 Jason Rumney <jasonr@gnu.org>
3156
3157 * w32menu.c (single_submenu): Set help string to NULL if none.
3158 (w32_menu_show): Set help string correctly.
3159 (add-menu-item): Set help string in MIIM_DATA for menu item.
3160 Load SetMenuItemInfoA explicitly.
3161 (w32_menu_display_help): New function.
427ec082 3162
ff4df011
JR
3163 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
3164 (QCdata): Moved to xdisp.c.
3165
3166 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
3167 (Vw32_charset_to_codepage_alist): Removed.
3168 (Vw32_charset_info_alist): New variable.
3169 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312,
3170 chinesebig5, oem, easteurope, turkish, baltic, russian, arabic,
3171 greek, hebrew, thai, johab, mac, unicode]): New symbols.
3172 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
3173 with TODO comment.
3174 (w32_codepage_for_font): Use Vw32_charset_info_alist.
3175 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
3176 Define Vw32_charset_info_alist and w32_charset symbols.
3177
31782000-03-22 Jason Rumney <jasonr@gnu.org>
3179
3180 * makefile.nt (w32bdf.obj): Update dependencies.
3181
3182 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
3183
3184 * w32fns.c: Include fontset.h after dispextern.h.
3185 (Fx_create_frame): Do not create fontset.
3186 (w32_load_system_font): Doc fix.
3187 (Fx_close_connection): Free full_name if it is not shared.
3188
3189 * w32term.c: Include fontset.h after dispextern.h.
3190 (x_get_glyph_face_and_encoding): New parameter two_byte_p. Callers
3191 updated.
3192 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
3193 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
3194 (w32_font_is_double_byte): New function, needs body.
3195 (x_append_glyph): Set glyph->glyph_not_available_p.
3196 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
3197 it->charset. If it->multibyte_p is zero and it->c is a multibyte
3198 character, convert it to a unibyte character.
3199 (struct glyph_string): Delete member `charset'.
3200 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
3201 calculating it is found.
3202 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
3203 the case that per char metric is not available correctly.
3204 (x_fill_glyph_string): Handle the case that the specific glyph is
3205 not available correctly.
3206 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
3207 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
3208 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
3209 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
3210 fontset. Don't call FS_LOAD_FONT.
3211
439d5cb4
KR
32122000-03-22 Ken Raeburn <raeburn@gnu.org>
3213
3214 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
3215 (INT_LISPLIKE): New macro.
3216 (NULL_INTERVAL_P): Use it.
3217 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT,
3218 SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT,
3219 GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
3220
3221 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
3222 explicit references to "parent" field of struct interval and
3223 associated unclean type conversions.
3224 * intervals.c (create_root_interval, root_interval, rotate_right,
3225 rotate_left, balance_possible_root_interval, split_interval_right,
3226 split_interval_left, interval_start_pos, find_interval,
3227 next_interval, previous_interval, update_interval,
3228 adjust_intervals_for_insertion, delete_node, delete_interval,
3229 adjust_intervals_for_deletion, merge_interval_right,
3230 merge_interval_left, reproduce_tree, graft_intervals_into_buffer,
3231 copy_intervals_to_string): Likewise.
3232 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
3233 Likewise.
3234 * syntax.c (update_syntax_table): Likewise.
3235
3236 * intervals.c (reproduce_tree_obj): New function, like
3237 reproduce_tree but takes a Lisp_Object for the parent. Declare
3238 with prototype.
3239 (graft_intervals_into_buffer): Use it when appropriate.
3240 (reproduce_tree): Declare with prototype.
3241 (balance_possible_root_interval): Check that the parent is a lisp
3242 object before trying to examine its type.
3243
ee1c5b21
GM
32442000-03-22 Gerd Moellmann <gerd@gnu.org>
3245
3246 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
3247 as strings only if both are known to be strings.
3248
3249 * s/openbsd.h (LIBS_TERMCAP): Undef.
3250
1fb352e0
SM
32512000-03-21 Stefan Monnier <monnier@cs.yale.edu>
3252
3253 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
3254 definitions for non-Emacs compilation.
3255 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
3256 outside of `#ifdef emacs'.
3257 (print_partial_compiled_pattern): Update.
3258 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
3259 (re_compile_fastmap): Merge handling of charset and charset_not (for
3260 emacs and non-emacs compilation as well).
3261 Similarly for (not)categoryspec and (not)syntaxspec.
3262 Don't use the fastmap when reaching `anychar' since the added
3263 complexity is not justified.
3264 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
3265 and (not)syntaxspec. Merge (not)categoryspec.
3266
fdaa1f77
KH
32672000-03-22 Kenichi Handa <handa@etl.go.jp>
3268
ff1a0d8e
KH
3269 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P,
3270 FACE_FOR_CHAR): Define them differently for the configuration of
3271 --without-x.
fdaa1f77 3272
d152fb46
DL
32732000-03-21 Dave Love <fx@gnu.org>
3274
3275 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
3276 doc string.
3277
d2cafc8c
GM
32782000-03-21 Gerd Moellmann <gerd@gnu.org>
3279
3280 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
3281 (lface_fully_specified_p): Don't check contents of
3282 LFACE_FONT_INDEX because that attribute is optional.
3283 (realize_x_face): Remove now unwarranted xassert.
3284
9111d4b5
KH
32852000-03-21 Kenichi HANDA <handa@etl.go.jp>
3286
3287 The following changes are to make font selection based on
3288 characters, not charset. In addition, they recover fontset
3289 facilities while utilizing the new font selection mechanism.
3290
6c4bfdc0
KH
3291 * Makefile.in (fontset.o): Depend on dispextern.h.
3292
3293 * alloc.c (mark_face_cache): Don't mark face->registry.
3294
9111d4b5
KH
3295 * dispextern.h (struct glyph): New member glyph_not_available_p.
3296 Use 22 bits for face_id.
3297 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
3298 (struct face): Delete member registry, new member ascii_face.
3299 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
3300 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
3301 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
3302 (struct it): Delete member charset, new member
3303 glyph_not_available_p.
3304
3305 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
3306 (struct fontset_info, struct fontset_data): Structs removed.
3307 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset,
3308 Vglobale_fontset_alist, font_idx_temp): Externs removed.
3309 (fs_load_font, fs_query_fontset): Adjusted for new argument.
3310 (fs_free_face_fontset, fontset_font_pattern,
3311 face_suitable_for_char_p, face_for_char,
3312 make_fontset_for_ascii_face): Extern them.
3313 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
3314 (FS_LOAD_FACE_FONT): New macro.
3315
3316 * fontset.c: All codes rewritten or adjusted for the change of
3317 fontset implementation. Now fontset is represented by char table.
3318 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl): Variables
3319 removed.
3320 (my_strcasecmp): Function removed.
3321 (Vfontset_table, next_fontset_id, Vdefault_fontset): New
3322 variables.
3323 (AREF, ASIZE): New macros.
3324 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME,
3325 FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF,
3326 FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
3327 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset,
3328 fontset_id_valid_p, font_family_registry, fontset_name,
3329 fontset_ascii, free_face_fontset, face_suitable_for_char_p,
3330 face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
3331 New functions.
3332 (fs_load_font): New arg FACE. Caller changed.
3333 (fs_query_fontset): Argument changed. Caller changed.
3334 (Fquery_fontset): call fs_query_fontset.
3335 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
3336 Functions removed.
3337 (clear_fontset_elements, check_registry_encoding,
3338 check_fontset_name): New functions.
3339 (syms_of_fontset): Set char-table-extra-slots property of fontset
3340 to 3. Staticpro and initialize Vfontset_table and
3341 Vdefault_fontset. Defsubr fontset_font and fontset_list.
3342
3343 * frame.h (struct frame): Member `fontset_data' removed.
3344 (FRAME_FONTSET_DATA): Macro removed.
3345
3346 * frame.c (make_frame): Don't allocate f->fontset_data.
3347 (Fdelete_frame): Don't free f->fontset_data.
3348
6c4bfdc0
KH
3349 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
3350
9111d4b5
KH
3351 * xdisp.c (charset_at_position): Function removed.
3352 (init_iterator): Don't set member charset of struct `it'.
3353 (handle_face_prop, reseat_to_string, set_iterator_to_next,
3354 next_element_from_display_vector, insert_left_trunc_glyphs):
3355 Likewise.
3356 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
3357 FACE_FOR_CHARSET.
3358 (get_next_display_element, append_space,
3359 extend_face_to_end_of_line): Likewise.
3360
3361 * xfaces.c (Qx_charset_registry, Vface_default_registry):
3362 Variables removed.
3363 (clear_font_table, frame_update_line_height, load_face_font):
3364 Adjusted for the change of fontset implementation.
3365 (load_face_fontset_font): Function removed.
3366 (pixel_point_size): New function.
3367 (font_list): Argument type changed. Caller changed.
3368 (LFACE_FONT): New macro.
3369 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
3370 (set_lface_from_font_name): Type of arg FONTNAME is changed to
3371 Lisp_Object. Determine the font name by actually loading a font
3372 by the specified pattern. Set LFACE_FONT (lface) to the specified
3373 pattern. Even if a font is not found, don't try alternatives.
3374 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
3375 (set_font_frame_param): If `font' is specified in lface, use it.
3376 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
3377 (lface_same_font_attributes_p): Likewise.
3378 (make_realized_face): Arguent changed. Caller changed. Set
3379 face->ascii_face to face itself.
3380 (free_realized_face): Free face->fontset if face is for ASCII.
3381 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p,
3382 deduce_unibyte_registry, x_charset_registry): Functions removed.
3383 (free_realized_multibyte_face): New function.
3384 (lookup_face, lookup_named_face, lookup_derived_face): Argument
3385 changed. Caller changed.
3386 (try_font_list): Argument type changed.
3387 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
3388 (choose_face_font): Argument changed. Handle fontset properly.
3389 (choose_face_fontset_font): Function removed.
3390 (realize_default_face, realize_named_face): Don't remove the
3391 former face here.
3392 (realize_face): Argument changed. Caller changed. Remove face
3393 with the arg former_face_id in advance. Load font for the new
3394 face.
3395 (realize_x_face): Argument changed. Caller changed. For a
3396 multibyte character, share fontset with base_face. For a single
3397 byte character, make a new realized fontset. Don't load a font
3398 here.
3399 (realize_tty_face): Argument changed. Caller changed.
3400 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
3401 (face_at_buffer_position): Don't check multibyte_p for returning
3402 DEFAULT_FACE_ID.
3403 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
3404 FACE_SUITABLE_FOR_CHARSET_P.
3405 (syms_of_xfaces): Remove code for Qx_charset_registry and
3406 Vface_default_registry.
3407
6c4bfdc0
KH
3408 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
3409 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
9111d4b5
KH
3410 (x_per_char_metric): Don't try FONT->default_char. Even if
3411 pcm->width is zero, glyph bits may exist.
3412 (x_encode_char): Always initialize char2b->byte1.
3413 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
3414 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller
3415 changed.
3416 (x_append_glyph): Set glyph->glyph_not_available_p.
3417 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
3418 it->charset. Handle the case that per char metric is not
3419 available. If it->multibyte_p is zero and it->c is a multibyte
3420 character, convert it to a unibyte character.
3421 (struct glyph_string): Delete member `charset'.
3422 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
3423 the case that per char metric is not available correctly.
3424 (x_fill_glyph_string): Handle the case that the specific glyph is
3425 not available correctly.
3426 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
3427 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
3428 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
3429 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
3430 fontset. Don't call FS_LOAD_FONT.
3431
3432 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
3433 (x_create_tip_frame): Likewise.
3434 (Fx_close_connection): Free full_name of font_info.
3435
3436 * fns.c (optimize_sub_char_table): New function.
3437 (Foptimize_char_table): New function.
3438 (syms_of_fns): Defsubr Soptimize_char_table.
3439
b33dd3b0
GM
34402000-03-20 Gerd Moellmann <gerd@gnu.org>
3441
3442 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
3443 only if buffer is displayed in some window.
3444
3445 * xdisp.c (handle_single_display_prop): Initialize local `value'.
3446 (try_window_reusing_current_matrix): Don't call scroll run
3447 function if run's current and desired position are the same;
3448 this prevents cursor flickering.
3449
4e8a9132
SM
34502000-03-19 Stefan Monnier <monnier@cs.yale.edu>
3451
3452 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
3453
3454 * regex.c (RE_STRING_CHAR): New macro.
3455 (GET_CHAR_AFER_2): Remove.
3456 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
3457 (enum re_opcode_t): Remove on_failure_jump_exclusive.
3458 (print_partial_compiled_pattern, re_compile_fastmap)
3459 (re_match_2_internal): Remove on_failure_jump_exclusive.
3460 (regex_compile): Turn optimizable P+ loops into PP*, so that the
3461 optimization only need to work for * (ie. can use of_keep_string_jump).
3462 Remove the special case for .*\n since it is now covered by the general
3463 optimization.
3464 (re_search_2): Don't bother with `room'.
3465 (skip_one_char): New function.
3466 (skip_noops): Simplify since `memory' is not needed any more.
3467 (mutually_exclusive_p): Restructure slightly to use `switch' and
3468 add handling for "all" remaining cases.
3469 (re_match_2_internal): Change on_failure_jump_smart to use
3470 on_failure_keep_string_jump (and redirect the end-of-loop jump)
3471 rather than on_failure_jump_exclusive.
3472
2136fdd4
GM
34732000-03-19 Gerd Moellmann <gerd@gnu.org>
3474
3475 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
3476 number of bits per RGB because it's everywhere used as the depth
3477 of the visual.
3478
3479 * term.c (calculate_costs): Remove code dealing with X frames.
3480
18e21ce8 34812000-03-19 Richard M. Stallman <rms@gnu.org>
e53ae11c
RS
3482
3483 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
3484
d7b511c4
GM
34852000-03-18 Gerd Moellmann <gerd@gnu.org>
3486
3487 * lread.c (read_integer): Unread the last char not consumed.
3488
16b5d424
GM
34892000-03-17 Gerd Moellmann <gerd@gnu.org>
3490
3491 * xterm.c (x_update_window_cursor): Don't update in frames
d7b511c4 3492 which are in the process of being deleted.
16b5d424 3493
1fa28578
GM
34942000-03-16 Gerd Moellmann <gerd@gnu.org>
3495
83488cce
GM
3496 * Makefile.in (mostlyclean): Add `*.core'.
3497 (clean): Add `bootstrap-emacs'.
3498
1fa28578
GM
3499 * lread.c (read_integer): New function.
3500 (read1): Support read syntax #o, #x, #b, #r.
3501
99633e97
SM
35022000-03-15 Stefan Monnier <monnier@cs.yale.edu>
3503
1fa28578
GM
3504 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
3505 make sure POINTER_TO_OFFSET gives the same value before and after
3506 PREFETCH. Use `dfail' to guarantee "atomic" matching.
99633e97
SM
3507 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
3508 (debug): Now only active if > 0 rather than if != 0.
3509 (DEBUG_*): Update for the new meaning of `debug'.
1fa28578
GM
3510 (print_partial_compiled_pattern): Add missing `succeed' case. Use
3511 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
3512 in `succeed_n', `jump_n' and `set_number_at'.
99633e97
SM
3513 (store_op1, store_op2, insert_op1, insert_op2)
3514 (at_begline_loc_p, at_endline_loc_p): Add prototype.
1fa28578
GM
3515 (group_in_compile_stack): Move to after its arg's types are
3516 declared and add a prototype.
99633e97 3517 (PATFETCH): Define in terms of PATFETCH_RAW.
1fa28578
GM
3518 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)'
3519 wrapper.
99633e97 3520 (QUIT): Redefine as a nop except for NTemacs.
1fa28578
GM
3521 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
3522 indentation of the greedy-op and shy-group code.
99633e97
SM
3523 (at_(beg|end)line_loc_p): Fix argument's types.
3524 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
3525 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
3526 (MATCHING_IN_FIRST_STRING): Remove.
1fa28578
GM
3527 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
3528 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
3529 QUIT unconditionally.
99633e97 3530
699238d9
GM
35312000-03-15 Gerd Moellmann <gerd@gnu.org>
3532
3533 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
3534 a sole completion.
3535
3536 * process.c (send_process): Add a hint that the function
3537 can call Lisp code to its comment.
3538
3539 * lread.c (load_dangerous_libraries): New variable.
3540 (Vbytecomp_version_regexp): New variable.
3541 (safe_to_load_p): New function.
3542 (Fload): Handle files not compiled with Emacs specially.
3543 (syms_of_lread): New Lisp variable load-dangerous-libraries.
3544
34e23e5a
GM
35452000-03-14 Gerd Moellmann <gerd@gnu.org>
3546
9c763cca
GM
3547 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
3548
3549 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
3550 support functions only if HAVE_X11R6_XIM is defined.
3551 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
3552
3553 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
3554
3555 * xfns.c (X_I18N_INHIBITED): Don't define.
3556 (create_frame_xic): Remove conditional compilation on
3557 X_I18N_INHIBITED.
3558 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
3559
3560 * config.in (HAVE_X_I18N): Moved here from xterm.h.
3561 (HAVE_X11R6_XIM): Define.
3562
3563 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
3564
34e23e5a
GM
3565 * xterm.c (x_term_init): Add support for X resource `synchronous'.
3566 If set, call XSynchronize.
3567
66f0296e
SM
35682000-03-13 Stefan Monnier <monnier@cs.yale.edu>
3569
34e23e5a
GM
3570 * regex.c: Declare a new type `re_char' used throughout the code
3571 for the string char type. It's `const unsigned char' to match the
3572 rest of Emacs. Consistently make sure all pointers to strings use
3573 it and make sure all pointers into the pattern use `unsigned
3574 char'.
66f0296e 3575 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
34e23e5a
GM
3576 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
3577 code duplication.
66f0296e
SM
3578
3579 * charset.h (GET_CHAR_AFTER_2): Remove.
3580 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
3581
854a025c
KR
35822000-03-12 Ken Raeburn <raeburn@gnu.org>
3583
3584 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
3585 variable before the invocation of YMF_PASS_LDFLAGS, in case both
3586 of them try to use backquotes.
3587
b9d2c7e2
DL
35882000-03-12 Dave Love <fx@gnu.org>
3589
3590 * unexelf.c: Restore changes of 1999-10-19.
3591 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
3592 fix its type and alignment; copy it from current process.
3593
5e5dff44
GM
35942000-03-12 Gerd Moellmann <gerd@gnu.org>
3595
9b2f3c38
GM
3596 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
3597 has been found. Fix bug not computing timer's predecessor.
3598
427ec082 3599 * fileio.c (Fread_file_name): Handle case that DIR contains a
9172b88d
GM
3600 file name.
3601
e1cff360
GM
3602 * window.c (Fsave_window_excursion): Doc fix.
3603
5e5dff44
GM
3604 * xfns.c (x_defined_color): Rewritten to use
3605 x_allocate_nearest_color.
3606
e411ce4b
EZ
36072000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
3608
3609 * msdos.c (vga_installed): New function, code moved from
3610 dos_set_window_size.
3611 (Qbar, Qcursor_type, outside_cursor): New variables.
3612 (syms_of_msdos): Intern and staticpro them.
3613 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
3614 shape used outside Emacs when called for the first time.
3615 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
3616 cursor shape used outside Emacs.
3617 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
3618 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
3619 type has changed.
3620 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
3621 parameters specify the cursor. Make qreverse a global
3622 variable (renamed to Qreverse).
3623
80460654
GM
36242000-03-09 Gerd Moellmann <gerd@gnu.org>
3625
3626 * fns.c (Fy_or_n_p): Cancel busy-cursor.
3627
95cd4c40
SM
36282000-03-08 Stefan Monnier <monnier@cs.yale.edu>
3629
3630 This is a big redesign of failure-stack and register handling, prompted
3631 by bugs revealed when trying to add shy-groups. Overall, what happened
3632 is that loops are now structured a little differently, groups can be
3633 shy and the code is a little simpler.
3634
3635 * regex.h: Update the copyright.
3636 (RE_SHY_GROUPS): New value.
3637 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
3638 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
3639
80460654
GM
3640 * regex.c (enum re_opcode_t): Remove jump_past_alt,
3641 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
3642 on_failure_jump_(exclusive, loop and smart). Also fix the comment
3643 for (start|stop)_memory since they now only take one argument (the
3644 second has becomes unnecessary).
3645 (print_partial_compiled_pattern): Adjust for changes in
3646 re_opcode_t.
3647 (print_compiled_pattern): Use %ld to printf long ints and flush to
3648 make debugging a little easier.
95cd4c40
SM
3649 (union fail_stack_elt): Make the integer unsigned.
3650 (struct fail_stack_type): Add a `frame' element.
3651 (INIT_FAIL_STACK): Init `frame' as well.
3652 (POP_PATTERN_OP): New macro for re_compile_fastmap.
3653 (DEBUG_PUSH, DEBUG_POP): Remove.
3654 (NUM_REG_ITEMS): Remove.
3655 (NUM_NONREG_ITEMS): Adjust.
80460654
GM
3656 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
3657 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
95cd4c40 3658 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
80460654
GM
3659 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP): New
3660 macros.
3661 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
3662 address pushed is not the destination of the jump but the source
3663 of it instead.
95cd4c40
SM
3664 (NUM_FAILURE_ITEMS): Remove.
3665 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
80460654
GM
3666 registers before the actual failure point). Don't hardcode any
3667 meaning for str==NULL anymore.
95cd4c40 3668 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
80460654
GM
3669 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
3670 Remove.
95cd4c40
SM
3671 (REG_UNSET_VALUE): Use NULL (why not?).
3672 (compile_range): Remove declaration since it doesn't exist.
3673 (struct compile_stack_elt_t): Remove inner_group_offset.
3674 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
3675 (regex_grow_registers): Remove dead code.
3676 (FIXUP_ALT_JUMP): New macro.
80460654
GM
3677 (regex_compile): Add shy-groups Change loops to use
3678 on_failure_jump_smart&jump instead of
3679 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
3680 initial (dummy_failure_)jump. Remove c1_base (looks like unused
3681 variable to me). Use `jump' instead of `jump_past_alt' and don't
3682 bother with push_dummy_failure in alternatives since it is now
3683 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
3684 emacs' for (re)allocating the stack.
3685 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
3686 from loop when bufp->can_be_null rather than jumping to `done'.
3687 Avoid jumping backwards so as to ensure termination. Use
3688 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
3689 backreferences. Remove dead code in handling of `anychar'.
95cd4c40 3690 (skip_noops, mutually_exclusive_p): New functions taken from the
80460654
GM
3691 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
3692 improve mutually_exclusive_p to handle ".+\n".
3693 (lowest_active_reg, highest_active_reg,
3694 NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
3695 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
3696 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
3697 variables. Push register (in `start_memory') on the stack rather
3698 than storing it in old_reg(start|end). Remove the cycle detection
3699 from `stop_memory', replaced by the use of on_failure_jump_loop
3700 for greedy loops. Add code for the new on_failure_jump_<foo>.
3701 Remove ad-hoc code in `on_failure_jump' to push more registers in
3702 the case of a loop. Take out code from `maybe_pop_jump' into
3703 separate functions and adapt it to the semantics of
3704 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
3705 and push_dummy_failure. Remove dummy_failure handling and
3706 handling of `failures to jump to on_failure_jump' (this last one
3707 was already dead code, it seems).
3708 (group_match_null_string_p, alt_match_null_string_p)
3709 (common_op_match_null_string_p): Remove.
95cd4c40 3710
7397acc4
DL
37112000-03-08 Dave Love <fx@gnu.org>
3712
3713 * config.in: Don't depend on __STDC__ for volatile.
3714 Add POINTER_TYPE, PTR, PROTOTYPES.
3715
3716 * hftctl.c, strftime.c: Use PROTOTYPES.
3717 * eval.c (find_handler_clause): Likewise.
3718
3719 * mem-limits.h: Use POINTER_TYPE.
3720
3721 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
3722 (memory_warnings): Declare using POINTER_TYPE.
3723
5e91ff9e
GM
37242000-03-08 Gerd Moellmann <gerd@gnu.org>
3725
feab4fba
GM
3726 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
3727
25edb08f
GM
3728 * xdisp.c (display_echo_area): Temporarily inhibit garbage
3729 collection.
3730
5e91ff9e
GM
3731 * xfns.c: Remove obsolete code in #if 0.
3732 (Fx_focus_frame): New function.
3733
a735b7e1
KH
37342000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
3735
3736 * coding.c (coding_category_name): Add coding-category-utf-8,
3737 coding-category-utf-16-be, coding-category-utf-16-le.
3738 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
3739 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
3740 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
3741 (detect_coding_utf_8): New function.
3742 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
3743 UTF_16_LOW_SURROGATE_P): New macros.
3744 (detect_coding_utf_16): New function
3745 (detect_coding_mask): When priorities are specified, skip any
3746 categories that have `nil' coding-system. Fix bug of returning
3747 wrong mask when PRIORITIES is specified and detect_coding_XXX()
3748 returns a mask not set in PRIORITIES.
3749 (detect_eol_type_in_2_octet_form): New function.
3750 (detect_eol): selects detect_eol_type_XXX to call according to
3751 cooding->category_idx.
3752 (detect_coding_system): Remove `nil' coding-system in the result.
3753 (Fupdate_coding_systems_internal): Update all coding-categories.
3754
3755 * coding.h (CODING_CATEGORY_IDX_UTF_8,
3756 CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE): New
3757 macros.
3758 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY,
3759 CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
3760 CODING_CATEGORY_IDX_UTF_16_LE.
3761 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE,
3762 CODING_CATEGORY_MASK_UTF_16_LE): New macros.
3763 (CODING_CATEGORY_MASK_ANY): Include the above macros.
3764 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
3765
9994cc69
GM
37662000-03-07 Gerd Moellmann <gerd@gnu.org>
3767
e9b4e5ff
GM
3768 * doc.c (Fdocumentation_property): If value is not a string,
3769 and doesn't refer to etc/DOC, evaluate it to obtain a string.
3770
f7daf1e1
GM
3771 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
3772 close the display with XtCloseDisplay. This caused a bus error
3773 on OpenWindows.
3774
9994cc69
GM
3775 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
3776 complete but not unique.
3777
4336c705
GM
37782000-03-06 Gerd Moellmann <gerd@gnu.org>
3779
18bb0684
GM
3780 * process.c (send_process): Remove local variable `procname' that
3781 might become invalid when a GC happens. Instead, access the
3782 process name slot directly.
3783
4336c705
GM
3784 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
3785 orig_height if set.
3786
3787 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
3788 orig_height if set.
3789
515d0d0e
EZ
37902000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
3791
3792 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
3793 glyph matrices have been freed.
3794
100b3cbb
GM
37952000-03-05 Gerd Moellmann <gerd@gnu.org>
3796
50df5e5a 3797 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
6178bc23 3798 (bootstrap-temacs): Set LC_ALL to C like for temacs.
50df5e5a
GM
3799
3800 * xfns.c (QCdata): Moved to xdisp.c.
3801
3802 * xdisp.c (QCdata): Moved here from xfns.c.
3803 (syms_of_xdisp): Initialize QCdata.
3804
3805 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
3806
3807 * window.c (coordinates_in_window): Use
3808 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
3809 FRAME_INTERNAL_BORDER_WIDTH.
3810
100b3cbb 3811 * xdisp.c (try_window_id): Recompute unchanged information if
4336c705 3812 it is obviously invalid.
100b3cbb
GM
3813
3814 * xterm.c (x_term_init): Create a colormap if not using the
3815 default visual.
3816
3817 * xterm.h (select_visual): Change prototype.
3818
3819 * xfns.c (select_visual): Rewritten. Recognize user-specified
3820 visual classes.
3821 (visual_classes): New variable.
3822
64d739c4
GM
38232000-03-04 Gerd Moellmann <gerd@gnu.org>
3824
3825 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
3826 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
3827 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
3828 (x_decode_color): Don't handle allocation of white and black
3829 specially.
3830 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
3831 XtNcolormap resources.
3832 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
3833 (Fx_create_frame): Initialize color members of x_output structure.
3834 (xpm_load): Pass colormap to XPM lib.
3835
3836 * xfaces.c (x_free_colors): Access colormap of frame using
3837 FRAME_X_COLORMAP. Be paranoid about freeing black and white
3838 when default colormap is used.
3839
3840 * xterm.c (x_term_init): Set Colormap member of x_display_info
3841 structure. Copy colormap if resource `privateColormap' is
3842 specified (PseudoColor only).
3843 (x_setup_relief_color): Access colormap of frame using
3844 FRAME_X_COLORMAP.
3845
3846 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
3847 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
3848
c3cee013
JR
38492000-03-04 Jason Rumney <jasonr@gnu.org>
3850
3851 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
3852 other non-platform-specific equivalents.
64d739c4 3853 [WINDOWSNT]: Include w32term.h, fontset.h and define X
c3cee013
JR
3854 specific functions and macros as their w32 equivalents where
3855 non-platform-specifics are not available.
3856 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
3857 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
3858 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
3859 (frame_update_line_height): Use macros to access f->output_data.
3860 (defined_color): Remove FIXME comments; fixed.
3861 (x_face_list_fonts, prepare_face_for_display): Put X specifics
3862 into #ifdef blocks. Add WINDOWSNT blocks.
3863 (Fx_list_fonts): Use macros for accessing font data.
3864 (set_lface_from_font_name): Different default fonts for X and
3865 WINDOWSNT.
3866 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
3867 scalable for backward compatibility.
64d739c4 3868 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
c3cee013
JR
3869 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
3870
64d739c4 3871 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
c3cee013
JR
3872 syms_of_w32faces.
3873
3874 * makefile.nt (w32faces.obj): Remove.
3875 (xfaces.obj): Add.
3876
807cc41c
JR
38772000-03-03 Jason Rumney <jasonr@gnu.org>
3878
3879 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
3880 correct parameters.
3881
0007072a
KR
38822000-03-03 Ken Raeburn <raeburn@gnu.org>
3883
3884 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
3885 standard ELF definitions here if the system header does not.
3886
71a6ba55
GM
38872000-03-03 Gerd Moellmann <gerd@gnu.org>
3888
3889 * xterm.c (PER_CHAR_METRIC): Removed.
3890 (x_per_char_metric_1, x_default_char): New functions.
3891 (x_per_char_metric): If font's default char is invalid, return
3892 metrics of a suitably chosen usable default char.
3893 (x_draw_glyph_string_foreground): If font has an invalid default
64d739c4
GM
3894 char, replace occurrences of unprintable chars with a suitably
3895 chosen usable default char.
71a6ba55 3896
900fa1f1
GM
38972000-03-02 Gerd Moellmann <gerd@gnu.org>
3898
42f55fe0
GM
3899 * xterm.c (note_mouse_highlight): Return quickly if frame's
3900 glyph matrices have been freed.
3901
3902 * dispnew.c (free_glyphs): Block input while freeing matrices.
3903
900fa1f1
GM
3904 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
3905
3906 * xterm.c (x_alloc_lighter_color, x_setup_relief_color): Use
3907 x_free_colors.
3908
3909 * dispextern.h (x_free_colors): Add prototype.
3910
3911 * xfaces.c (x_free_colors): New function.
3912 (unload_color, free_face_colors): Use it.
3913
2f950292
EZ
39142000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
3915
3916 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
3917
3918 * window.c [MSDOS]: Include msdos.h.
3919
54d04320
DL
39202000-03-02 Dave Love <fx@gnu.org>
3921
3922 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
3923
3924 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
3925 set C_OPTIMIZE_SWITCH for gcc.
3926
0ba93ac4
KH
39272000-03-02 Kenichi Handa <handa@etl.go.jp>
3928
3929 * coding.c (coding_save_composition): Be sure to allocate
3930 composition data area in coding even if there's no composition in
3931 the current run.
3932
a2bc11d4
JR
39332000-03-01 Jason Rumney <jasonr@gnu.org>
3934
3935 * w32term.c: Equivalent changes to those made to xterm.c on
3936 2000-02-25 and 2000-02-24.
3937
3938 * w32fns.c: Equivalent changes to those made to xfns.c on
3939 2000-02-25 and 2000-02-21.
3940
3941 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
3942 correct line-end convention is followed.
3943
3944 * w32menu.c [HAVE_BOXES]: Remove #undef.
3945 (single_keymap_panes): Remove code for simulating checkmarks.
3946 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
3947 Remove code for drawing simulated checkmarks.
3948 (w32_menu_show): make unibyte help string correctly.
3949 (add_menu_item): draw standard Windows checkmarks. Draw radio
3950 buttons as radio buttons if possible.
3951
72d19d75
GM
39522000-03-01 Gerd Moellmann <gerd@gnu.org>
3953
2df636f4
GM
3954 * sysdep.c (start_of_text): Don't define this function for NetBSD
3955 with ELF.
3956
427ec082 3957 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
2df636f4
GM
3958 Don't define.
3959 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
3960 (LINKER): Don't undef if __NetBSD__ is defined.
3961
3962 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
3963
3964 * fileio.c [__NetBSD__]: Define `unix'.
3965
72d19d75
GM
3966 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
3967
ed4d0512
GM
39682000-02-29 Gerd Moellmann <gerd@gnu.org>
3969
50b1039f
GM
3970 * atimer.c (start_atimer): Don't abort when timers are stopped.
3971 (append_atimer_lists): New function.
3972 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
3973 arbitrary lists of stopped and running atimers.
3974
ed4d0512
GM
3975 * atimer.c (cancel_atimer): Handle canceling an atimer when
3976 some timers are stopped.
3977
3978 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
3979 after canceling it.
3980
3981 * fns.c (maybe_resize_hash_table): Handle case of new size
3982 coming out as being the same as old size.
3983
387023ee
JR
39842000-02-27 Jason Rumney <jasonr@gnu.org>
3985
3986 * makefile.nt: Add atimer.h to dependencies.
3987 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
3988 * w32console.c: Only disable window system features for dispextern.h
3989 (initialize_w32_display): Build a display info for the console.
3990 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
3991 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
3992 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
3993 as 2 button mice.
3994 * w32gui.h (struct W32FontStruct): Revert last change after change
3995 to xdisp.c.
3996 * w32menu.c (single_submenu): Set up help string.
3997 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
3998 (w32_dialog_show): Set up help string.
3999 * w32term.c (w32_display_info_for_display): Remove unused function.
4000 (w32_draw_bitmap): Use pre-built bitmaps.
4001 (w32_initialize_display_info): New function to initialize parts of
4002 display info that are common to both GUI and console frames.
4003 (w32_term_init): Use w32_initialize_display_info. Do not set
4004 Vw32_num_mouse_buttons here, as it is not called for console
4005 frames. Build bitmaps for indicating truncated lines etc.
4006 (x_delete_display): Destroy pre-built bitmaps.
4007 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
4008 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
4009
4516715a
DL
40102000-02-27 Dave Love <fx@gnu.org>
4011
4012 * lisp.h: Add a bunch of prototypes.
4013
171ca836
KH
40142000-02-26 Kenichi Handa <handa@etl.go.jp>
4015
4016 * keyboard.c (read_char): Set `usec' correctly.
4017
4013921d
KH
40182000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
4019
4020 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
4021 `lambda', set reg[RRR] to the map index.
4022 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
4023 reg[RRR] to 0. Otherwise, set it to -1.
4024
9244a058
GM
40252000-02-25 Gerd Moellmann <gerd@gnu.org>
4026
2df636f4 4027 * emacs.c (main): Remove code snippet commented out with `//'.
9244a058 4028
18e21ce8 40292000-02-25 Richard M. Stallman <rms@gnu.org>
427ec082 4030
f43d79c1
GM
4031 * fileio.c (Ffile_symlink_p): If result starts with a `/'
4032 and contains a `:', prepend `/:'.
4033
4034 * window.c (select_window_1): If selected_window is nil,
4035 don't "swap out" the buffer's point.
4036 (Fset_window_configuration): Set selected_window to nil
4037 before calling Fselect_window.
4038 (unshow_buffer): Don't set point in buffer from window's point
4039 if another more recently selected window also shows the buffer.
4040
bed0c171
GM
40412000-02-25 Gerd Moellmann <gerd@gnu.org>
4042
449c3c52
GM
4043 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
4044
f5b58615
GM
4045 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
4046 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
4047 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay): New
4048 variables.
4049 (DEFAULT_BUSY_CURSOR_DELAY): New define.
4050 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
4051 (hide_busy_cursor): New functions.
4052 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
4053
4054 * minibuf.c (read_minibuf): Cancel busy-cursor.
4055
4056 * keyboard.c (command_loop_1): Call start_busy_cursor before
4057 Fcommand_execute and cancel_busy_cursor after it.
4058 (timer_check): Remove busy-cursor code.
4059 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
4060 cursor timer.
4061
4062 * process.c (wait_reading_process_input): Remove busy-cursor code.
4063
4064 * eval.c (Fsignal): Call cancel_busy_cursor instead of
4065 Fx_hide_busy_cursor.
4066
4067 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
4068 Remove prototyoes.
4069 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
4070
4071 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
4072
4073 * xterm.c (XTread_socket): Remove busy-cursor code.
4074
4eb8436f
GM
4075 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
4076 (build_frame_matrix_from_leaf_window): Put code handling
4077 glyph row's not being a slice of a frame row in #if 0.
4078 (sync_window_with_frame_matrix_rows): New function.
4079 (frame_row_to_window): New function.
4080 (mirror_line_dance): Handle copies between windows.
4081
3cb65b0e
GM
4082 * lread.c (Fload): Use `xfree' instead of `free'.
4083 (init_obarray): Use `xmalloc' instead of `malloc'.
4084
bed0c171
GM
4085 * window.c (Fset_window_buffer): Set WINDOW to the window
4086 after decoding.
2add4349
GM
4087 (coordinates_in_window): Take frame's internal border width
4088 into account.
bed0c171 4089
42088c12
GM
40902000-02-24 Gerd Moellmann <gerd@gnu.org>
4091
4092 * xterm.c (x_display_and_set_cursor): Display cursor of
4093 non-selected windows depending on the setting of
4094 cursor_in_non_selected_windows.
4095
4096 * xdisp.c (cursor_in_non_selected_windows): New variable.
4097 (syms_of_xdisp): DEFVAR_BOOL it.
4098
d1e103b2
GM
40992000-02-23 Gerd Moellmann <gerd@gnu.org>
4100
723e779c
GM
4101 * data.c (Fstring_to_number): If number is greater than what
4102 fits into an integer, return a float.
4103
d1e103b2
GM
4104 * eval.c (specbind): Remove references to
4105 keyword_symbols_constant_flag.
4106
4107 * data.c (keyword_symbols_constant_flag): Removed.
4108 (Fmakunbound, set_internal, syms_of_data): Remove references to
4109 keyword_symbols_constant_flag.
4110
4111 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
4112
214f877f
KH
41132000-02-23 Kenichi Handa <handa@etl.go.jp>
4114
4115 * syntax.c (multibyte_syntax_as_symbol): New variable.
4116 (syms_of_syntax): Declare it as a Lisp variable.
4117 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
4118 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
4119 nonzero, treat all multibyte characters as symbol.
42088c12 4120 (init_syntax_once): Give syntax `word' to all multibyte
214f877f
KH
4121 characters.
4122
130adcb7
EZ
41232000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
4124
3cb65b0e 4125 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
d7d0dac0 4126 a deleted frame.
130adcb7 4127
17cbbf95
GM
41282000-02-21 Gerd Moellmann <gerd@gnu.org>
4129
4130 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
4131
4132 * xfns.c (x_window_to_frame, x_any_window_to_frame)
4133 (x_non_menubar_window_to_frame): Check the busy-cursor window.
4134
beb0bc36
DL
41352000-02-21 Dave Love <fx@gnu.org>
4136
4137 * frame.c (Vmouse_position_function): New variable.
4138 (Fmouse_position): Use it.
4139 (syms_of_frame): Install it.
4140
4141 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
4142
1d92afcd
GM
41432000-02-20 Gerd Moellmann <gerd@gnu.org>
4144
4145 * fileio.c (Finsert_file_contents): Unbind the binding of
4146 standard-output done by temp_output_buffer_setup.
329eed9f
GM
4147
4148 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
4149 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
4150 (specbind, unbind_to): Handle most common case of non-constant
4151 symbol with trivial value specially.
4152
4153 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
4154
18e21ce8 41552000-02-20 Richard M. Stallman <rms@gnu.org>
2d06696f
RS
4156
4157 * data.c (Fmake_variable_buffer_local): Doc fix.
4158 Init found_for_buffer to 0.
4159 (Fmake_variable_frame_local): If the variable has already
4160 been buffer-local, set the check_frame field.
4161
1d4311c3
EZ
41622000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
4163
4164 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
4165 produced for CODING_MODE_LAST_BLOCK requires.
4166
2dc95ddd
DL
41672000-02-18 Dave Love <fx@gnu.org>
4168
4169 * keyboard.c (echo_keystrokes): Remove declaration.
4170 (Vecho_keystrokes) New variable.
4171 (read_char, record_menu_key, read_key_sequence): Use it to allow
4172 use of float value.
4173 (syms_of_keyboard): Change Vecho_keystrokes declaration.
4174
4175 * lread.c: Undef feature selection macros before defining.
4176
f0930f35
GM
41772000-02-18 Gerd Moellmann <gerd@gnu.org>
4178
4179 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
4180 for symbols other than the symbol in question.
4181
e3d4de90
DL
41822000-02-17 Dave Love <fx@gnu.org>
4183
4184 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
4185
0b378936
GM
41862000-02-17 Gerd Moellmann <gerd@gnu.org>
4187
d621caf7
GM
4188 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
4189
0b378936
GM
4190 * alloc.c (enum mem_type): Compile unconditionally.
4191
3b451f74
EZ
41922000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
4193
4194 * xfaces.c (tty_defined_color): Don't return faulire indication
4195 for unspecified-fg and unspecified-bg pseudo-colors.
4196
10689a01
GM
41972000-02-17 Gerd Moellmann <gerd@gnu.org>
4198
1216f5e4
GM
4199 * alloc.c (mark_object): Don't mark symbol names in pure space.
4200 (gc_sweep): Don't unmark symbol names in pure space.
4201
4202 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
4203 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
4204 [GC_MARK_STACK]: New defines.
427ec082 4205 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
1216f5e4
GM
4206 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
4207
4208 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
4209
4210 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
4211 allocate_buffer instead of xmalloc.
4212
4213 * alloc.c (toplevel): Include setjmp.h.
4214 (PURE_POINTER_P): New define.
4215 (enum mem_type) [GC_MARK_STACK]: New enumeration.
4216 (Vdead) [GC_MARK_STACK]: New variable.
4217 (lisp_malloc): Add parameter TYPE, call mem_insert if
4218 GC_MARK_STACK is defined.
4219 (allocate_buffer): New function.
427ec082 4220 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
1216f5e4
GM
4221 (free_float) [GC_MARK_STACK]: Set type to Vdead.
4222 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
4223 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
4224 (MEM_NIL) [GC_MARK_STACK]: New define.
4225 (struct mem_node) [GC_MARK_STACK]: New structure.
4226 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
4227 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
4228 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
4229 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
4230 (mark_stack) [GC_MARK_STACK]: New functions.
4231 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
4232 (clear_marks): Removed.
4233 (gc_sweep): Set free conses' car, free floats' type, free
4234 symbols' function to Vdead. Use lisp_free to free buffers.
4235 (init_alloc_once): Initialize Vdead.
4236 (survives_gc_p): Return non-zero for pure objects.
4237
4238 * alloc.c: Add comments throughout the file.
4239
2503c8b1
GM
4240 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
4241 that unblocks alarms.
4242
8389e1e2
GM
4243 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
4244 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
4245 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
4246
10689a01 4247 * frame.c (make_frame): Set frame initiallly to `garbaged'.
427ec082 4248
bfc17d18
KH
42492000-02-17 Kenichi Handa <handa@etl.go.jp>
4250
4a09dee0
KH
4251 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
4252 avoid infinite error signaling. Allocate sufficient memory for
4253 eol_str in the case that eoltype is Lisp_Int.
bfc17d18 4254
2b927d02
SM
42552000-02-17 Stefan Monnier <monnier@cs.yale.edu>
4256
4257 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
4258 depends on the previous behavior.
4259
b49cb764
GM
42602000-02-16 Gerd Moellmann <gerd@gnu.org>
4261
4262 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
4263
99e95407
GM
42642000-02-15 Gerd Moellmann <gerd@gnu.org>
4265
4266 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
4267
4268 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
b49cb764 4269 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
99e95407
GM
4270 write(2).
4271
6ffd3cf7
RS
42722000-02-15 Richard M. Stallman <rms@gnu.org>
4273
4274 * data.c (set_internal): Don't make variable buffer-local
4275 if within a let-binding for the same buffer.
4276 (let_shadows_buffer_binding_p): New function.
4277
4278 * eval.c (specbind): For buffer-local value,
4279 record the current buffer also.
4280 (unbind_to): Cope with that change.
4281
cad53475
GM
42822000-02-15 Gerd Moellmann <gerd@gnu.org>
4283
4284 * window.c (Fsave_window_excursion): Doc fix.
4285
1aa963c8
SM
42862000-02-15 Stefan Monnier <monnier@cs.yale.edu>
4287
4288 * syntax.c (back_comment): Make sure we only consider comment-starters
4289 of the relevant style and return -1 in case of a failure to find the
4290 beginning of the comment.
4291 (Fforward_comment): If back_comment fails, go back to the position just
4292 after the comment-end.
4293 (scan_lists): Add comment describing a very minor bug.
4294
b9b84fd3
SM
42952000-02-14 Stefan Monnier <monnier@cs.yale.edu>
4296
4297 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
4298 `completion-regexp-list' in the docstring.
4299
3a28db80
DL
43002000-02-14 Dave Love <fx@gnu.org>
4301
4302 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
4303
fb4a568d
SM
43042000-02-14 Stefan Monnier <monnier@cs.yale.edu>
4305
4306 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
4307 to Emacs' syntax. Also fix the comment about set/not-set meanings
4308 since Emacs syntax is not the value 0 any more.
4309 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
4310 since it's now part of RE_SYNTAX_EMACS.
4311
1063ebb5
DL
43122000-02-12 Dave Love <fx@gnu.org>
4313
4314 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on
4315 Alpha.
4316
fb07a302
GM
43172000-02-12 Gerd Moellmann <gerd@gnu.org>
4318
4319 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
4320
aaf2320c
DL
43212000-02-12 Dave Love <fx@gnu.org>
4322
4323 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
4324
4325 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
fb07a302
GM
4326 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
4327 * s/hpux.h: Don't define HAVE_VFORK.
aaf2320c
DL
4328
4329 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
4330
4331 * s/nextstep.h: Don't define HAVE_ALLOCA.
4332
4333 * config.in: Add vfork bits.
4334
eedf8bde
GM
43352000-02-12 Gerd Moellmann <gerd@gnu.org>
4336
4337 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
4338 unwind function to undo the effect of stopping atimers.
4339
4340 * keyboard.c (bind_polling_period): Stop all timers except
4341 poll_timer.
4342
4343 * atimer.c (stopped_atimers): New variable.
4344 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
4345 New functions.
4346
4347 * atimer.h (stop_other_atimers, run_all_atimers)
4348 (unwind_stop_other_atimers): Add function prototypes.
427ec082 4349
eedf8bde
GM
4350 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
4351
8476c2f8
KR
43522000-02-11 Ken Raeburn <raeburn@gnu.org>
4353
4354 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
4355 library may depend on jpeg.
4356 (atimer.o): Depends on atimer.c.
4357
0e85e4a3
KH
43582000-02-11 Kenichi Handa <handa@etl.go.jp>
4359
4360 * insdel.c (del_range_1): Call update_compositions.
4361 (del_range_both): Call update_compositions just once..
4362
97fa0cc8
DL
43632000-02-10 Dave Love <fx@gnu.org>
4364
4365 * xfns.c (create_frame_xic): Fix initialization of automatic
4366 aggregates for pcc.
4367
25566a3c
KH
43682000-02-09 Kenichi Handa <handa@etl.go.jp>
4369
4370 * ccl.c (CCL_MAKE_CHAR): New macro.
4371 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
4372 registers by CCL_MAKE_CHAR before calling translate_char.
4373 <CCL_TranslateCharacterConstTbl> Likewise.
4374
69da54ba
DL
43752000-02-08 Dave Love <fx@gnu.org>
4376
4377 * lread.c (__EXTENSIONS__): Define.
4378
f7136ee8
GM
43792000-02-08 Gerd Moellmann <gerd@gnu.org>
4380
4381 * puresize.h (BASE_PURESIZE): Increase to 650000.
4382
7768790b
EZ
43832000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
4384
4385 * msdos.c (XMenuActivate): Turn off the cursor after displaying
4386 the help message.
4387
38fd211b
EZ
43882000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
4389
4390 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
4391 md, mh, mb, mr, and me to the fake termcap entry.
4392
66e4690f
KR
43932000-02-06 Ken Raeburn <raeburn@gnu.org>
4394
4395 * sound.c (sound_cleanup): Don't call device close routine if the
4396 function pointer is null.
4397
a75dfea0
AI
43982000-02-06 Andrew Innes <andrewi@gnu.org>
4399
4400 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
4401 around image definitions and prototypes.
4402 (gamma_correct) [WINDOWSNT]: New prototype.
4403
4404 * w32term.c (x_make_frame_visible): Replace call to
4405 input_poll_signal with poll_for_input.
4406
4407 * window.c [WINDOWSNT]: Include w32term.h.
4408
4409 * xdisp.c [WINDOWSNT]: Include w32term.h.
4410
4411 * makefile.nt: Add dependencies on w32gui.h.
4412 (OBJ1): Include atimer.obj.
4413 ($(BLD)\atimer.obj): New dependency rule.
4414
4415 * w32.c (sigmask): New function (does nothing).
4416 (sigunblock): Ditto.
4417
4418 * frame.c [WINDOWSNT]: Include w32term.h.
4419
4420 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
4421
4422 * lread.c (syms_of_lread): Fix literal newlines.
4423
4424 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
4425 the string constant limit (2048 bytes) in MSVC.
4426 (main): Ditto.
4427
59ddecde
GM
44282000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
4429
4430 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit
4431 area.
4432 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
4433 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
4434 dispatch the event.
4435
07590973
DL
44362000-02-04 Dave Love <fx@gnu.org>
4437
4438 * fileio.c: Remove some unused vars.
4439 (_GNU_SOURCE): Define (for euidaccess).
4440
4441 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
4442
4443 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
4444 gcpro1, gcpro2.
4445 (read_minibuf): Deal with allow_props correctly.
4446
649351f9
EZ
44472000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
4448
4449 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
4450
66e4690f 44512000-02-03 Ken Raeburn <raeburn@gnu.org>
f1b9c7c1
KR
4452
4453 * search.c (compile_pattern): If a cache entry has a nil regexp,
4454 fill in that entry instead of clobbering a previously cached
4455 string regexp.
4456
66e4690f 44572000-02-02 Ken Raeburn <raeburn@gnu.org>
15c9cf81
KR
4458
4459 * puresize.h (BASE_PURESIZE): Increase to 610000.
4460
d240a249
GM
44612000-02-02 Gerd Moellmann <gerd@gnu.org>
4462
4463 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
4464 can GC.
4465
ca91fb26
KH
44662000-02-02 Kenichi Handa <handa@etl.go.jp>
4467
25660570
KH
4468 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
4469 instead of incrementing ic directly.
4470 <CCL_WriteExprConst> Likewise.
4471 <ccl_set_expr>: Set ic to jump_address.
4472
ca91fb26
KH
4473 * fileio.c (e_write): Fix the handling of
4474 CODING_FINISH_INSUFFICIENT_SRC.
4475
2ede9689
DL
44762000-02-01 Dave Love <fx@gnu.org>
4477
4478 * editfns.c (Fpropertize): Doc fix.
4479
4480 * process.c (Fstart_process): Doc fix.
4481
4482 * eval.c: Fix various doc strings not to duplicate information
4483 from help-manyarg-func-alist.
4484
4485 * window.c (Fset_window_margins): Don't make interactive. Doc
4486 fix.
4487
4488 * doc.c (Vhelp_manyarg_func_alist): New variable.
4489 (Fdocumentation): Use it.
4490 (syms_of_doc): Define it.
4491
b6680a0e
GM
44922000-01-31 Gerd Moellmann <gerd@gnu.org>
4493
2cb750ba
GM
4494 * xterm.c (xim_open_dpy): Remove unused local variable.
4495
74e9213b
GM
4496 * emacs.c (USAGE): Use term `display options' instead of `X
4497 options'.
4498
4499 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
4500 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
4501
b6680a0e
GM
4502 * fns.c (sweep_weak_table): New function.
4503 (sweep_weak_hash_tables): Use it. Keep on marking until there
4504 is no more change.
4505
994c5afe
GM
45062000-01-30 Gerd Moellmann <gerd@gnu.org>
4507
4508 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
4509 that XTread_socket does not crash by trying to call XNoOp on a
4510 closed display.
427ec082 4511
f00276e3
JR
45122000-01-30 Jason Rumney <jasonr@gnu.org>
4513
4514 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
4515 Change selected_frame to SELECTED_FRAME ().
4516 (w32_console_mouse_position): Remove #ifndef MULE from around
4517 `insist' parameter.
4518
4519 * makefile.nt: Remove dosfns.obj.
4520
4521 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
4522
4523 * w32fns.c (w32_defined_color): Check for valid frame before
4524 applying gamma correction. Eliminate dependency on frame elsewhere.
4525 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
4526 (w32_to_x_font): Use resx and resy not height_in and width_in.
4527 (x_to_w32_font): Doc fix.
4528 (xlfd_strip_height): New function to strip and return font height.
4529 (w32_font_match): Compare height separately from rest of xlfd
4530 spec, using xlfd_strip_height.
4531
4532 * w32term.c (w32_term_init): Swap resx and height_in, resy and
4533 width_in. Use w32_defined_color in place of defined_color.
4534
4535 * w32faces.c: Merge more of DOS and X specifics in preparation for
4536 merge with xfaces.c.
4537 (defined_color): Remove FIXME comment.
4538 (tty_color_name): Provide w32-specific function.
4539 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
4540
4541 * w32console.c (turn_on_face, turn_off_face): Removed.
4542 (w32_face_attributes): New function.
4543 (Global_variables): Reduce scope where possible.
4544 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
4545 fill attribute.
4546 (hl_mode): Don't modify text attributes.
4547 (write_glyphs): Don't do anything if len <= 0. Use
4548 w32_face_attributes to get attributes for drawing. Write
4549 terminating codes using char_attr_normal.
4550 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
4551 (update_begin, update_end): Likewise.
4552 (vga_stdcolor_name): New function.
4553 (initialize_w32_display): Remove char_attr_reverse and char_attr.
4554 (Fset_screen_color): Remove char_attr_reverse.
4555
b08e8bb2
GM
45562000-01-29 Gerd Moellmann <gerd@gnu.org>
4557
4558 * xfns.c (xic_set_preeditarea): Take window parameter and
4559 window-relative pixel-positions.
4560
4561 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
4562 is its frame's selected window.
4563 (xim_instantiate_callback): Likewise.
4564
4565 * xfns.c (x_create_im): Removed.
4566 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
4567 (supported_xim_styles): Renamed from supported_styles.
4568 (best_xim_style): Renamed from best_style.
4569 (create_frame_xic): Renamed from xic_create_frame.
4570 (free_frame_xic): Renamed from xic_destroy_frame.
427ec082 4571
b08e8bb2
GM
45722000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
4573
4574 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
4575 our frames, call XFilterEvent with 2nd parameter `None'.
4576 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
4577 returning XBufferOverflow.
4578 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status
4579 area.
4580 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
4581 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
4582 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
4583 (xim_initialize, xim_close)
4584 [HAVE_X_I18N && HAVE_X11R6]: New functions.
4585 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
4586 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
4587 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
4588
4589 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
4590 and `xim_styles'.
4591 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
4592 `xic_style' and `xic_xfs'.
4593 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
4594 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
4595 (FRAME_XIM): Removed.
4596
4597 * xfns.c (supported_styles): New variable.
4598 (DEFAULT_STYLE, DEFAULT_FONT): New macros
4599 (xic_create_xfontset, best_style, xic_create_frame)
4600 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
4601 (xic_set_xfontset): New functions.
4602
142e109c
DL
46032000-01-28 Dave Love <fx@gnu.org>
4604
4605 * s/irix6-5.h: Revert last change after change to irix5-0.h.
4606
4607 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
4608
b02786f9
GM
46092000-01-28 Gerd Moellmann <gerd@gnu.org>
4610
d060bc9f
GM
4611 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
4612 for *scratch* if it already existed.
4613
b02786f9
GM
4614 * emacs.c (USAGE): New macro.
4615 (main): Use it to display usage information.
4616
2c52d7e4
EZ
46172000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
4618
4619 Support for the menu-help feature:
4620
4621 * msdos.h: Change prototypes of XMenuAddSelection and
4622 XMenuActivate.
4623
4624 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
4625 part of the line to the termscript file.
4626 (IT_clear_to_end): Clear the entire line, not just its beginning.
4627 (menu_help_message, prev_menu_help_message): New variables.
4628 (IT_menu_make_room): Make room for the help_text member.
4629 (IT_menu_display): New argument disp_help; all callers changed.
4630 If disp_help is non-zero, store the help text of the active menu
4631 item in menu_help_message.
4632 (XMenuAddPane): Initialize the help_text member to NULL.
4633 (XMenuAddSelection): New argument help_text. Store it in the
4634 XMenu structure.
4635 (XMenuActivate): New argument help_callback. If the value of
4636 menu_help_message has changed since the last time, display the
4637 menu help message text while waiting for the mouse to move. Clear
4638 the echo area before exiting.
4639 (XMenuDestroy): Free the help_text member.
4640
ffe0bcd1
GM
46412000-01-27 Gerd Moellmann <gerd@gnu.org>
4642
4643 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
4644 XMenuAddSelection. Pass help callback to XMenuActivate.
4645 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
4646
50dbd23f
EZ
46472000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
4648
4649 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
4650 and EMACS_SET_USECS.
4651
f5941bf8
GM
46522000-01-26 Dave Love <fx@gnu.org>
4653
6c67ddee
DL
4654 * editfns.c (Fchar_after, Fchar_before): Doc fix.
4655
f5941bf8
GM
4656 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
4657 an error may be signalled.
4658
9e49c990
GM
46592000-01-26 Gerd Moellmann <gerd@gnu.org>
4660
fc3cb460
GM
4661 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
4662 LD_SWITCH_SYSTEM inherited from irix5-0.h.
4663
9e49c990
GM
4664 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
4665
d0c037d8
GM
46662000-01-25 Gerd Moellmann <gerd@gnu.org>
4667
4668 * charset.c (Fstring): If there is a multibyte char among
4669 the args, always return a multibyte string.
4670
e12489f9
GM
46712000-01-25 Gerd Moellmann <gerd@gnu.org>
4672
4673 * sysdep.c (sys_select): Turn atimers off and on instead of
4674 recording and restoring old alarm handler
4675
4676 * process.c (toplevel): Include atimer.h.
4677 (create_process_1): Rewritten.
4678 (create_process): Use atimers instead of alarm.
4679 (wait_reading_process_input) [hpux]: Turn atimers off instead
4680 of turning off SIGALRM.
4681 (wait_reading_process_input): Turn off atimers instead off
4682 calling stop_polling.
4683
4684 * emacs.c (main): Call init_atimer.
4685
4686 * keyboard.c (toplevel): Include systime.h and atimer.h.
4687 (polling_for_input): Removed because unused.
4688 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
4689 (poll_timer): New variable.
4690 (poll_for_input, poll_for_input_1): New functions.
4691 (start_polling, stop_polling): Rewritten.
4692
4693 * keyboard.h (polling_for_input): Removed.
427ec082 4694
e12489f9
GM
4695 * atimer.h, atimer.c: New files.
4696
4697 * Makefile.in (obj): Add atimer.o.
4698 (atimer.o): New target.
4699
4700 * blockinput.h (pending_atimers): Add extern declaration.
4701 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
4702
4703 * lisp.h (popup_activated_flag): Add extern declaration.
4704
4705 * xmenu.c (popup_activated_flag): Make externally visible.
4706 (popup_activate_callback) [USE_MOTIF]: Increment
4707 popup_activated_flag.
4708 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
4709
4710 * xterm.c (toplevel): Include atimer.h.
4711 (toolkit_scroll_bar_interaction): New variable.
4712 (Fxt_process_timeouts): Removed.
4713 (x_process_timeouts): New function.
4714 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
4715 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
4716 (x_make_frame_visible): Call poll_for_input_1 instead of
4717 input_poll_signal. Don't call alarm.
4718 (x_initialize): Install timer calling x_process_timeouts.
427ec082 4719
1e5279b9
DL
47202000-01-24 Dave Love <fx@gnu.org>
4721
6c67ddee 4722 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
1e5279b9
DL
4723 Don't use -cckr -- apparently not now necessary.
4724
edf6aeb8
EZ
47252000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
4726
4727 * msdos.c (IT_menu_display): Truncate long menu lines at the right
4728 screen boundary.
4729
9badad41
JR
47302000-01-23 Jason Rumney <jasonr@gnu.org>
4731
4732 * w32fns.c (w32_defined_color): Apply gamma correction before
4733 trying to map to the palette.
4734 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
4735 to w32_clear_rect.
4736
4737 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
4738 here. Callers changed to always pass real device context.
4739 (w32_draw_bitmap): Likewise.
4740 (w32_get_glyph_overhangs): Likewise.
4741 (w32_draw_box_rect): Make use of s->hdc rather than getting a new
4742 one.
4743 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
4744 pfnSetScrollInfo and SetScrollRange.
4745 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
4746 back into MULE characters after decoding them.
4747 (x_get_glyph_face_and_encoding): Likewise.
4748 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
4749 GetCharABCWidthsW fails, since this is defined on Windows 9x.
4750 (x_produce_glyphs): Calculate per char metrics for a character
4751 that we know exists in default font when font_not_found_p is true.
4752
63bd786b
JR
47532000-01-22 Jason Rumney <jasonr@gnu.org>
4754
4755 * makefile.nt (intervals.obj, composite.obj): New modules.
4756 (composite.h): Added as dependency where appropriate.
4757
4758 * w32gui.h (XGCValue): New struct for emulating X GCs.
4759
4760 * w32term.h (XCharStruct): New struct for emulating X.
4761
4762 * w32console.c (turn_on_face, turn_off_face): New functions.
4763 (change_line_highlight): New prototype for new redisplay.
4764 (write_glyphs): Support multibyte text. Support faces.
4765
4766 * w32faces.c: Complete rewrite for new redisplay based on new
4767 xfaces.c.
4768
4769 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
4770 throughout. struct frame * in place of FRAME_PTR.
4771 Skeleton support for images, toolbars, tooltips from xfns.c.
4772 (Fx_create_frame): Use system default for default scroll bar
4773 width.
4774 (w32_get_arg): Renamed from x_get_arg.
4775 (Fx_file_dialog): New function.
4776 (w32_list_fonts): Check cache before asking system.
4777 (Vw32_enable_synthesized_fonts): New variable.
4778 (Vw32_enable_italics): Obsolete, removed.
4779
4780 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
4781 Use SELECTED_FRAME macro.
4782
4783 * w32menu.c: Add skeleton support for help strings on menus.
4784 (add_menu_item): Native checkbox and radio support added, but not
4785 yet enabled due to bugs.
4786 (push_menu_item): Add parameters type, selection and help.
4787 Callers updated.
4788 Formatting changes to reduce unnecessary diffs with xmenu.c.
4789
4790 * w32select.c (Fw32_set_clipboard_data): Update call to
4791 find_charset_in_str.
4792
4793 * w32term.c: Complete rewrite for new redisplay based on new
4794 xterm.c with necessary sections merged back in from old w32term.c.
4795
6ffd3cf7 47962000-01-21 Richard M. Stallman <rms@gnu.org>
b50c9214
RS
4797
4798 * data.c (set_internal): Further fix in same criterion.
4799
6ffd3cf7 48002000-01-20 Richard M. Stallman <rms@gnu.org>
8cc95642
RS
4801
4802 * data.c (set_internal): Fix the criteria for whether
4803 to swap out the old cached binding.
4804
60af03f1
DL
48052000-01-19 Dave Love <fx@gnu.org>
4806
4807 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
4808
f9be074f
KH
48092000-01-18 Kenichi Handa <handa@etl.go.jp>
4810
4811 * regex.c (re_compile_fastmap): While checking a range table for
4812 `charset', skip flag bits for a character class correctly.
4813
52b8dbf9
GM
48142000-01-17 Gerd Moellmann <gerd@gnu.org>
4815
d36100c9
GM
4816 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
4817
52b8dbf9
GM
4818 * xfns.c (x_window): Call lw_create_widget with new parameter
4819 list.
4820
4821 * widget.c (EmacsFrameSetCharSize): Change size of children first
4822 because of problems with main window geometry management under
4823 Lesstif.
4824
4825 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
4826 MENU_ITEMS_ITEM_.*.
4827 (MENU_ITEMS_ITEM_HELP): New enumerator.
4828 (push_menu_item): Add parameter HELP. Record help in menu_items.
4829 (single_menu_item, single_submenu, list_of_items): Call
4830 push_menu_item with new parameter.
4831 (single_submenu): Set help string in widget value.
4832 (menu_highlight_callback): New function.
4833 (set_frame_menubar): Call lw_create_widget with new
4834 parameter list.
4835 (xmenu_show, xdialog_show): Ditto.
4836
3139018f
GM
48372000-01-13 Gerd Moellmann <gerd@gnu.org>
4838
4839 * sound.c (Fplay_sound): Improve doc string.
4840
83c8f461
RS
48412000-01-11 Richard M. Stallman <rms@gnu.org>
4842
4843 * lisp.h (set_internal): Enter the new arg.
4844
4845 * eval.c (specbind): Record buffer-local variables specially,
4846 indicating which buffer's binding was saved.
4847 (unbind_to): Restore buffer-local variables specially
4848 in the proper buffer.
4849
4850 * data.c (set_internal): New arg BUF.
427ec082 4851
83c8f461
RS
4852 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
4853 * data.c (Fset): Pass new arg to set_internal.
4854 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
427ec082 4855
1fab1775
GM
48562000-01-11 Gerd Moellmann <gerd@gnu.org>
4857
4858 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload,
4859 xprintsym.
4860
83c8f461 48612000-01-11 Richard M. Stallman <rms@gnu.org>
6f59462e
RS
4862
4863 * minibuf.c (Ftry_completion): Doc fix.
4864
7a85e4df
GM
48652000-01-11 Gerd Moellmann <gerd@gnu.org>
4866
4867 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
4868 vector, too.
4869
a970dae4
AS
48702000-01-11 Andreas Schwab <schwab@suse.de>
4871
4872 * coding.c (code_convert_region): Initialize total_skip.
4873
c65d14ee
DL
48742000-01-08 Dave Love <fx@gnu.org>
4875
4876 * eval.c (Fuser_variable_p): Check customizability too.
4877
834938d2
GM
48782000-01-07 Gerd Moellmann <gerd@gnu.org>
4879
4880 * minibuf.c (Fcompleting_read): Doc fix.
4881
e0303cd6
GM
48822000-01-05 Gerd Moellmann <gerd@gnu.org>
4883
8a26744b
GM
4884 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
4885 -L /usr/local/lib.
4886
e0303cd6
GM
4887 * xfns.c (x_create_im): New function to set IM and IC of a frame.
4888 Check that input style is supported before trying to create an
4889 IC for it.
4890 (x_window): Call x_create_im.
427ec082 4891
2e471eb5
GM
48922000-01-04 Gerd Moellmann <gerd@gnu.org>
4893
560a7bd2
GM
4894 * xfns.c (current_gif_memory_src): New variable.
4895 (gif_load): Record the address of the current memory source
4896 in current_gif_memory_src.
4897 (gif_read_from_memory): Use current_gif_memory_src.
4898
f9ee84a3
GM
4899 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
4900 macros statement form.
4901
d1299cde
GM
4902 * sound.c (struct sound): Renamed from struct sound_file.
4903 (struct sound): Add members `data' and `header_size'.
4904 (enum sound_attr): Add SOUND_DATA.
4905 (current_sound, current_sound_device): Variables renamed from
4906 sound_file and sound_device.
4907 (parse_sound): Parse :data.
4908 (parse_sound): Handle sound data in strings.
4909 (find_sound_type): Function renamed from find_sound_file_type.
427ec082 4910 (wav_init, au_init): Fail if sound's header_size is smaller than
d1299cde
GM
4911 needed header size.
4912 (wav_play, au_play): Play sounds from string data.
4913
2e471eb5
GM
4914 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
4915
4916 * lisp.h: Add prototype for allocate_string_data.
4917
4918 * alloc.c (Fgarbage_collect): Return number of live and free
4919 strings.
4920
4921 * alloc.c (mark_buffer): Remove code in #if 0.
4922 (gc_sweep): Ditto.
4923 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
4924 (strings_consed): New variable.
4925 (allocate_string): Set it.
4926 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
4927 (Fmemory_use_counts): Return strings_consed. Use Flist.
4928
4929 * alloc.c: General cleanup in comments etc. Remove conditional
4930 compilation for `standalone'.
4931
4932 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
4933
4934 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
4935 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
4936 (DONT_COPY_FLAG): Removed.
4937 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
4938 (struct sdata, struct sblock): New
4939 (struct string_block): Rewritten.
4940 (STRINGS_IN_STRING_BLOCK): New macro.
4941 (oldest_sblock, current_sblock, total_strings, total_free_strings)
4942 (large_sblocks, string_blocks, string_free_list): New variables.
4943 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
4944 (init_strings): Rewritten.
4945 (allocate_string, allocate_string_data, compact_small_strings)
4946 (free_large_strings, sweep_strings): New functions.
4947 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
4948 (struct string_block_head, current_string_block)
4949 (first_string_block, large_string_blocks, STRING_FULLSIZE)
4950 (STRING_PAD): Removed.
4951 (make_uninit_multibyte_string, make_pure_string): Rewritten.
4952 (Fgarbage_collect): Don't set mark bit in large strings.
4953 (mark_object): Mark strings differently. Mark symbol names
4954 differently.
4955 (survives_gc_p): Test marked strings differently.
427ec082 4956 (gc_sweep): Sweep strings differently, unmark strings in
2e471eb5
GM
4957 symbol names.
4958 (compact_strings): Removed.
4959
42608ba8
EZ
49602000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
4961
4962 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
4963 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
4964
e0a09e1a
KH
49652000-01-04 Kenichi Handa <handa@etl.go.jp>
4966
dd9f0750 4967 * fileio.c (Finsert_file_contents): Signal error if visiting file
427ec082 4968 in a non-empty buffer.
dd9f0750 4969
3c0f3b15 4970 * term.c (encode_terminal_code): Fix the previous change.
e0a09e1a 4971
44cd3ae5
GM
49722000-01-03 Gerd Moellmann <gerd@gnu.org>
4973
4974 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
4975 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
4976
4977 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
4978
c182a70f
EZ
49792000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
4980
4981 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
4982 need to test for MSDOS frames.
4983
24480d5b
EZ
49842000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
4985
4986 * dosfns.c (unspecified_colors): Remove.
4987 (msdos_stdcolor_idx): Use global variables unspecified_fg and
4988 unspecified_bg.
4989 (msdos_stdcolor_name): Return strings for unspecified fore- and
4990 back-ground colors.
4991
4992 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
aaf2320c 4993 (syms_of_xfaces): Remove their staticpro's.
24480d5b
EZ
4994 (tty_color_name): Return Lisp strings for unspecified fore- and
4995 back-ground colors.
4996 (Finternal_set_lisp_face_attribute): Remove the special treatment
4997 for Qunspecified_{f,b}g.
4998 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp
4999 string.
5000
047f434a
GM
50012000-01-03 Gerd Moellmann <gerd@gnu.org>
5002
5003 * xdisp.c (reseat_at_next_visible_line_start): Position before
5004 newline only if ending up on a newline.
5005 (next_element_from_ellipsis): Return success. Handle case of
5006 displaying no ellipsis. Fix case of ellipsis defined in display
5007 table.
5008 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
5009 returns 0.
5010
d684c676
EZ
50112000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
5012
5013 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
5014 (Fcolor_supported_p): Renamed from face-color-supported-p.
5015
5fe1d139
EZ
50162000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
5017
5018 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
5019 list of colors renamed to tty-defined-color-alist.
5020 (tty_color_name): Pass the frame to tty-color-by-index.
5021 (realize_tty_face): tty-color-alist is now a function which
5022 accepts the frame as argument.
5023
5024 * term.c (Ftty_display_color_p): Accept an optional argument
5025 FRAME.
5026
816be8b8
EZ
50272000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
5028
5029 * term.c (insert_glyphs): Pass glyph, not &glyph, to
5030 encode_terminal_code.
5031
b635321e
EZ
50322000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
5033
5034 * dispnew.c (mode_line_string): Support termcap frames as well.
5035
9b784e96
GM
50362000-01-01 Gerd Moellmann <gerd@gnu.org>
5037
27189709
GM
5038 * syntax.c (Fforward_word): Undo previous change.
5039
5040 * editfns.c (Fconstrain_to_field): Don't constrain if
5041 inhibit-field-text-motion is non-nil.
5042 (Fline_beginning_position): Undo previous change.
5043 (Fline_end_position): Ditto.
5044
5045 * syntax.c (Fforward_word): Notice field boundaries only if
5046 inhibit-field-text-motion is nil.
5047
5048 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
5049
5050 * editfns.c (Vinhibit_field_text_motion): New variable.
5051 (inhibit-field-text-motion): New DEFVAR_LISP.
5052 (Fline_beginning_position, Fline_end_position): Notice field
5053 boundaries only if inhibit-field-text-motion is nil.
5054
45158a91
GM
5055 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
5056 All calls adjusted.
5057 (x_build_heuristic_mask): Likewise.
5058 (xbm_load_image_from_file): Change error output.
5059 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
5060 (gif_load, gs_load, x_kill_gs_process): Ditto.
5061
9b784e96
GM
5062 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
5063 color indices when accessing raster pixels.
63cec32f
GM
5064 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
5065 one of :file or :data.
5066 (enum pbm_keyword_index): Add PBM_DATA.
5067 (pbm_format): Add :data.
5068 (pbm_image_p): Allow either :file or :data.
5069 (pbm_read_file): New function.
5070 (pbm_scan_number): Rewritten to read from string.
5071 (pbm_load): Support :data.
9b784e96 5072
5ad6a5fb
GM
50731999-12-31 Gerd Moellmann <gerd@gnu.org>
5074
5075 * xfns.c: New image functions adapted to Emacs conventions.
5076 (png_load, tiff_load, jpeg_load, gif_load): Always GCPRO local
5077 variable `file'.
5078
63448a4d
WP
50791999-12-31 William M. Perry <wmperry@aventail.com>
5080
5081 * xfns.c (jpeg_format): Added the :data keyword
5082 (jpeg_image_p): JPEG is valid with :file _or_ :data
5083 (jpeg_memory_src): Defined new JPEG image source to read from a
5084 memory buffer.
5085 (jpeg_load): Pay attention to the :data keyword if specified.
5086 Instantiates a jpeg_memory_src instead of jpeg_stdio_src if
5087 found.
5088 (png_format): Added the :data keyword
5089 (png_image_p): PNG is valid with :file _or_ :data
5090 (png_read_from_memory): New PNG read function to read from a
5091 memory buffer.
5092 (png_load): Pay attention to the :data keyword if specified. Uses
5093 png_set_read_fn() instead of png_init_io() if specified.
5094 (tiff_format): Added the :data keyword for TIFF images.
5095 (tiff_image_p): TIFF is valid with :file _or_ :data
5096 (tiff_read_from_memory): Defined new TIFF I/O functions to read
5097 from a memory buffer.
5098 (tiff_load): Pay attention to the :data keyword if specified.
5099 Uses TIFFClientOpen() instead of TIFFOpen() if specified.
5100 (gif_format): Added the :data keyword
5101 (gif_image_p): GIF is valid with :file _or_ :data
5102 (gif_read_from_memory): New GIF input function to read from a
5103 memory buffer.
c65d14ee 5104 (gif_load): Pay attention to the :data keyword. Uses DGifOpen()
63448a4d
WP
5105 instead of DGifOpenFileName() if specified.
5106
c880678e
GM
51071999-12-31 Gerd Moellmann <gerd@gnu.org>
5108
5109 * xdisp.c (next_element_from_buffer): Change assertion at the end
5110 because it doesn't hold when there's an overlay string at the end
5111 from which we deliver an image.
5112
8ccb9a54
EZ
51131999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
5114
5115 * msdos.c (IT_update_begin): Don't dereference members of struct
5116 window for deleted windows.
5117
12ce2351
GM
51181999-12-30 Gerd Moellmann <gerd@gnu.org>
5119
a915c648
GM
5120 * abbrev.c (Fexpand_abbrev): If expanding an abbrev which has only
5121 a hook, and the hook has a non-nil `no-self-insert' property, let
5122 the return value of the hook specify whether an expansion took
5123 place. If it returns nil, no expansion has been performed.
5124
12ce2351
GM
5125 * xterm.c (x_make_frame_visible): Wait for frame becoming visible
5126 differently.
5127
04ee4f45
EZ
51281999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
5129
5130 * msdos.c (IT_write_glyphs): Track last changes to struct glyph.
5131
7f4bc0c3
EZ
51321999-12-29 Eli Zaretskii <eliz@is.elta.co.il>
5133
5134 * dispnew.c (mode_line_string): Support MS-DOS frames.
5135
dac204bc
GM
51361999-12-29 Gerd Moellmann <gerd@gnu.org>
5137
5138 * eval.c (syms_of_eval): Initialize debugger_may_continue.
5139
7b712ad8
KH
51401999-12-29 Kenichi Handa <handa@etl.go.jp>
5141
5142 * process.c (read_process_output): Fix the args CHARPOS and LENINS
5143 to signal_after_change.
5144
adb9900f
EZ
51451999-12-28 Eli Zaretskii <eliz@is.elta.co.il>
5146
41ad069b
EZ
5147 * msdos.c (dos_set_window_size) [__DJGPP__ > 1]: If the frame
5148 dimensions changed, invalidate the mouse highlight info.
5149 (disable_mouse_highlight, help_echo, previous_help_echo): New
5150 variables.
5151 (IT_set_mouse_pointer, show_mouse_face, clear_mouse_face)
5152 (fast_find_position, IT_note_mode_line_highlight)
5153 (IT_note_mouse_highlight): New functions.
5154 (IT_update_begin): If the redisplay affects the window where the
5155 mouse highlight is, clear the highlight. If the frame where the
5156 highlight was displayed was killed, invalidate the highlight
5157 info.
5158 (IT_update_end): Reset the highlight flag. Reset the mouse
5159 highlight-defer flag.
5160 (IT_frame_up_to_date): New function, if mouse highlight was
5161 deferred due to GC, do it now.
5162 (internal_terminal_init): Initialize mouse-highlight related
5163 members of the_only_x_display. Assign IT_frame_up_to_date to
5164 frame_up_to_date_hook.
5165 (dos_rawgetc): If the mouse moved, update mouse highlight. If
5166 help_echo changed value, generate a HELP_EVENT event.
5167 (syms_of_msdos): Staticpro help_echo and previous_help_echo.
5168
adb9900f
EZ
5169 * msdos.h (struct display_info): New.
5170 (struct x_output): Add the display_info member.
5171 (FRAME_X_DISPLAY_INFO): New macro.
5172
481b5054
GM
51731999-12-28 Gerd Moellmann <gerd@gnu.org>
5174
5175 * xdisp.c (try_window_id): Compute BEG_UNCHANGED and END_UNCHANGED
5176 if MODIFF > 1.
6448a6b3 5177 (dump_glyph_row): Adapt to changes in struct glyph.
481b5054
GM
5178
5179 * buffer.c (modify_overlay): Always compute unchanged info.
5180
a2882b0d
KH
51811999-12-27 Kenichi Handa <handa@etl.go.jp>
5182
5183 * dispextern.h (FACE_FROM_ID): Cast the arg ID to `unsigned'.
5184
89ba5b5f
KH
51851999-12-27 Kenichi Handa <handa@etl.go.jp>
5186
5187 The following changes are to use more bits for face IDs.
5188
5189 * lisp.h (GLYPH): Defined as `int', not `unsigned int'. Now the
5190 lowest 8 bits are single byte character code, the bits above are
5191 face ID.
481b5054 5192 (GLYPH_MASK_FACE, GLYPH_MASK_CHAR): Adjusted for the change
89ba5b5f 5193 above.
481b5054
GM
5194 (FAST_MAKE_GLYPH, FSST_GLYPH_FACE): Likewise.
5195 (GLYPH_MASK_REV_DIR, GLYPH_MASK_PADDING): Macros deleted.
89ba5b5f
KH
5196
5197 * charset.h (CHAR_BYTES): Use ((1 << CHARACTERBITS) - 1) instead
5198 of GLYPH_MASK_CHAR.
5199
5200 * charset.c (char_bytes): Use ((1 << CHARACTERBITS) - 1) instead
5201 of GLYPH_MASK_CHAR.
5202
5203 * dispextern.h (struct glyph): Make face_id and padding_p the top
5204 level members. Change members in union `u'.
5205 (GLYPH_EQUAL_P): Check also members face_id and padding_p.
5206 (GLYPH_CHAR_AND_FACE_EQUAL_P): New macro.
5207 (SET_CHAR_GLYPH): Adjusted for the change of struct glyph.
5208 (CHAR_GLYPH_PADDING_P): Likewise.
5209 (GLYPH_FROM_CHAR_GLYPH): Likewise. Always return -1 for multibyte
5210 characters.
5211
481b5054 5212 * dispnew.c (line_hash_code, direct_output_for_insert): Adjusted
89ba5b5f
KH
5213 for the change of struct glyph.
5214 (line_draw_cost): Adjusted for the change of
5215 GLYPH_FROM_CHAR_GLYPH.
5216 (count_match): Use macro GLYPH_CHAR_AND_FACE_EQUAL_P.
5217
5218 * term.c (encode_terminal_code): Adjusted for the change of struct
5219 glyph and GLYPH_FROM_CHAR_GLYPH.
481b5054 5220 (write_glyphs, insert_glyphs, append_glyph): Adjusted for the
89ba5b5f
KH
5221 change of struct glyph.
5222
5223 * xdisp.c: All codes adjusted for the change of struct glyph.
5224
5225 * xterm.c: All codes adjusted for the change of struct glyph.
5226
5bcd116c
KH
52271999-12-27 Kenichi Handa <handa@etl.go.jp>
5228
5229 * composite.h (struct composition): Change the order of declaring
5230 members to reduce the byte size of the structure.
5231
f21b06b7
GM
52321999-12-25 Gerd Moellmann <gerd@gnu.org>
5233
5234 * search.c (looking_at_1): Reset immediate_quit before modifying
5235 global data.
5236
e36557c9
KH
52371999-12-24 Kenichi Handa <handa@etl.go.jp>
5238
5239 * process.c (read_process_output): Fix the arg FROM to
5240 update_compositions.
5241
83c8f461 52421999-12-22 Richard M. Stallman <rms@gnu.org>
f7c9e039
RS
5243
5244 * search.c (Freplace_match): For nonliteral replacement in buffer,
5245 construct all the new text first, then insert all at once.
5246
0b863bd9
DL
52471999-12-22 Dave Love <fx@gnu.org>
5248
5249 * xfns.c (Fx_show_tip): Gcpro `timeout' too.
5250
6d8e8ef3
GM
52511999-12-22 Gerd Moellmann <gerd@gnu.org>
5252
28d7281d
GM
5253 * xfns.c (Fx_create_frame): Move x_default_parameter calls that
5254 lead to size changes to after the X window has been created.
5255
e22ef6eb 5256 * xfaces.c (realize_x_face): Don't use uninitialized local
6d8e8ef3
GM
5257 variable in xassert.
5258
8affcced
KH
52591999-12-22 Kenichi Handa <handa@etl.go.jp>
5260
5261 * xfaces.c (face_color_supported_p): Check by tty_defined_color
6d8e8ef3 5262 only when the frame is not for a window system.
8affcced 5263
f2be1146
GM
52641999-12-22 Gerd Moellmann <gerd@gnu.org>
5265
deca1348
GM
5266 * buffer.c (Fset_buffer_multibyte): Arrange for a thorough
5267 redisplay after changing the multibyteness of a buffer.
5268
f2be1146
GM
5269 * xterm.c (XTread_socket): At the beginning of the loop, pass the
5270 frame's X window to XFilterEvent instead of None because that's
5271 the X window for which the IC was created. This makes dead
5272 accents work when the pointer is not in Emacs' frame.
5273 (XTread_socket) <KeyPress>: Don't call XFilterEvent here.
5274
a744a2ec
DL
52751999-12-20 Dave Love <fx@gnu.org>
5276
5277 * xfns.c (Fx_show_tip): Add missing UNGCPRO.
5278
9e6985ed
GM
52791999-12-19 Gerd Moellmann <gerd@gnu.org>
5280
5281 * eval.c (debugger_may_continue): New variable.
5282 (syms_of_eval): Add a DEFVAR_BOOL for it.
5283 (call_debugger): Bind it.
5284
3b620731
EZ
52851999-12-19 Eli Zaretskii <eliz@is.elta.co.il>
5286
5287 * msdos.c (IT_set_face): Don't swap face colors when highlight or
5288 fp->tty_reverse_p is set, unless the computed colors are identical
5289 to frame colors. Print both original and computed colors to
5290 termscript file.
5291 (IT_write_glyphs): Track the changes in handling of composite
5292 characters.
5293 (IT_set_frame_parameters): Don't set frame colors from
5294 unspecified-fg and unspecified-bg pseudo-colors.
5295
0f9a51c4
DL
52961999-12-17 Dave Love <fx@gnu.org>
5297
5298 * data.c (Fkeywordp): New function.
5299 (syms_of_data): Install it.
5300
363e4e42
EZ
53011999-12-16 Eli Zaretskii <eliz@is.elta.co.il>
5302
5303 * xfaces.c (tty_defined_color): Fix last change.
5304
cfad01b4
GM
53051999-12-15 Gerd Moellmann <gerd@gnu.org>
5306
5307 * xdisp.c (redisplay_window) <optional new window start>: Check
5308 that window start is in [BEGV..ZV].
5309
f9d2fdc4
EZ
53101999-12-15 Eli Zaretskii <eliz@is.elta.co.il>
5311
5312 * dispextern.h (FACE_TTY_DEFAULT_FG_COLOR)
5313 (FACE_TTY_DEFAULT_BG_COLOR): New macros.
5314
5315 * xfaces.c (Qunspecified_fg, Qunspecified_bg): New variables.
5316 (syms_of_xfaces): Initialize and staticpro them.
5317 (tty_defined_color): If the color name is unspecified-fg or
5318 unspecified-bg, return FACE_TTY_DEFAULT_FG_COLOR and
5319 FACE_TTY_DEFAULT_BG_COLOR, respectively, as the pixel value.
5320 (tty_color_name): If the color pixel value is either
5321 FACE_TTY_DEFAULT_FG_COLOR or FACE_TTY_DEFAULT_BG_COLOR, return
5322 Qunspecified_fg or Qunspecified_bg, respectively.
5323 (Finternal_set_lisp_face_attribute): Allow values Qunspecified_fg
5324 and Qunspecified_bg for foreground and background colors.
5325 (realize_default_face): If the foreground and background colors
5326 are not specified, default to Qunspecified_fg and Qunspecified_bg.
5327 (realize_tty_face): By default, set the face colors to
5328 FACE_TTY_DEFAULT_FG_COLOR and FACE_TTY_DEFAULT_BG_COLOR.
5329 [MSDOS]: Handle FACE_TTY_DEFAULT_FG_COLOR and
5330 FACE_TTY_DEFAULT_BG_COLOR when face colors are not defined.
5331 Reverse the colors if the default colors were reversed.
5332
5333 * dispnew.c (init_display): Initialize the frame pixels of the
5334 initial frame to FACE_TTY_DEFAULT_FG_COLOR and
5335 FACE_TTY_DEFAULT_BG_COLOR.
5336
5337 * term.c (turn_on_face): If the default fore- and background
5338 colors are reversed, enter inverse video mode. Don't send color
5339 escape sequences for unspecified foreground and background colors.
5340 (turn_off_face): Handle unspecified-fg and unspecified-bg colors.
5341
5342 * dosfns.c (unspecified_colors): New variable.
5343 (msdos_stdcolor_idx): Handle unspecified-fg and unspecified-bg
5344 color names, return FACE_TTY_DEFAULT_FG_COLOR and
5345 FACE_TTY_DEFAULT_BG_COLOR, respectively.
5346 (msdos_stdcolor_name): Handle FACE_TTY_DEFAULT_FG_COLOR and
5347 FACE_TTY_DEFAULT_BG_COLOR, return Qunspecified_fg and
5348 Qunspecified_bg, respectively.
5349
5350 * msdos.c (IT_set_face): Support FACE_TTY_DEFAULT_FG_COLOR and
5351 FACE_TTY_DEFAULT_BG_COLOR as pixel values.
5352
e19539f1
KH
53531999-12-15 Kenichi Handa <handa@etl.go.jp>
5354
5355 * coding.c (code_convert_region): Fix the secoding arg to
5356 update_compositions.
5357
5ec14d3c
KH
53581999-12-15 Kenichi Handa <handa@etl.go.jp>
5359
5360 The following changes are for the new composition mechanism. We
5361 have deleted `composition' charset and composite characters,
5362 instead introduced a special text property `composition'.
5363
5364 * Makefile.in (INTERVAL_SRC): Include composite.h.
5365 (INTERVAL_OBJ): Include composite.o.
5366 (SOME_MACHINE_OBJECTS): Include composite.o.
5367 (casefiddle.o) (dispnew.o) (indent.o) (process.o) (search.o)
5368 (syntax.o) (window.o) (xdisp.o) (xfaces.o) (xterm.o) (print.o):
5369 Depend on composite.h.
5370 (doc.o): Depend on charset.h.
5371 (keyboard.o) (textprop.o) (intervals.o): Depend on INTERVAL_SRC.
5372 (composite.o): New target.
427ec082 5373
5ec14d3c
KH
5374 * alloc.c (Fmake_string): Adjusted for the change of CHAR_STRING.
5375
5376 * callproc.c (Fcall_process): Call code_convert_string to encode
5377 arguments. Use CODING_REQUIRE_DECODING to check if the process
5378 output should be decoded.
5379
5380 * casefiddle.c: Include composite.h.
5381 (casify_object): Use MAX_MULTIBYTE_LENGTH to allocate memory for a
5382 multibyte character. Adjusted for the change of CHAR_STRING.
5383 (casify_region): Likewise. Call update_compositions.
5384
5385 * category.h (CATEGORY_SET): Delete codes for a composite
5386 character.
5387
5388 * category.c (word_boundary_p): Delete codes for a composite
5389 character.
5390 (Fmake_category_table): New function.
5391 (syms_of_category): Defsubr it.
5392
5393 * ccl.c (CCL_WRITE_CHAR): Adjusted for the change of CHAR_STRING.
5394 (ccl_driver): Delete codes for a composite character.
5395
5396 * charset.h: In this entry, just `Modified' means that codes for a
5397 composite character is deleted.
5398 (LEADING_CODE_COMPOSITION) (CHARSET_COMPOSITION)
5399 (charset_composition) (MIN_CHAR_COMPOSITION)
5400 (MAX_CHAR_COMPOSITION) (GENERIC_COMPOSITION_CHAR)
5401 (COMPOSITE_CHAR_P) (MAKE_COMPOSITE_CHAR) (COMPOSITE_CHAR_ID)
5402 (PARSE_COMPOSITE_SEQ) (PARSE_CHARACTER_SEQ): Deleted.
5403 (MAX_CHAR) (CHARSET_VALID_P) (CHARSET_DEFINED_P) (CHARSET_AT)
5404 (FIRST_CHARSET_AT) (SAME_CHARSET_P) (MAKE_NON_ASCII_CHAR)
5405 (PARSE_MULTIBYTE_SEQ) (SPLIT_NON_ASCII_CHAR) (CHAR_PRINTABLE_P):
5406 Modified.
5407 (SPLIT_STRING): Call split_string, not split_non_ascii_string.
5408 (CHAR_STRING): Delete WORKBUF argument. Call char_string, not
5409 non_ascii_char_to_string.
5410 (STRING_CHAR): Call string_to_char, not string_to_non_ascii_char.
5411 (STRING_CHAR_AND_LENGTH): Likewise.
5412 (FETCH_CHAR_ADVANCE): New macro.
5413 (MAX_COMPONENT_COUNT) (struct cmpchar_info): Deleted.
5414 (MAX_MULTIBYTE_LENGTH): New macro.
5415 (MAX_LENGTH_OF_MULTI_BYTE_FORM): Deleted.
5416 (find_charset_in_str): Argument adjusted.
5417 (CHAR_LEN): Modified.
427ec082 5418
5ec14d3c
KH
5419 * charset.c: In this entry, just `Modified' means that codes for a
5420 composite character is deleted.
5421 (Qcomposition) (leading_code_composition)
5422 (charset_composition) (min_composite_char) (cmpchar_table)
5423 (cmpchar_table_size) (n_cmpchars): Deleted.
5424 (SPLIT_COMPOSITE_SEQ): Deleted.
5425 (SPLIT_MULTIBYTE_SEQ): Modified.
5426 (char_to_string): Renamed from non_ascii_char_to_string.
5427 Modified.
5428 (string_to_char): Renamed from string_to_non_ascii_char.
5429 (split_string): Renamed from split_non_ascii_string.
5430 (char_printable_p) (Fsplit_char)
5431 (Ffind_charset_region) (Ffind_charset_string) (char_valid_p)
5432 (char_bytes) (Fchar_width) (strwidth): Modified.
5433 (find_charset_in_str): Argument CMPCHARP deleted. Modified.
5434 (Fstring): Adjusted for the change of CHAR_STRING. Modified.
5435 (hash_string) (CMPCHAR_HASH_TABLE_SIZE) (cmpchar_hash_table)
5436 (CMPCHAR_HASH_SIZE) (CMPCHAR_HASH_USED) (CMPCHAR_HASH_CMPCHAR_ID)
5437 (str_cmpchar_id) (cmpchar_component) (Fcmpcharp)
5438 (Fcmpchar_component) (Fcmpchar_cmp_rule) (Fcmpchar_cmp_rule_p)
5439 (Fcmpchar_cmp_count): Deleted.
5440 (Fcompose_string): Implemented by Emacs Lisp in composite.el.
5441 (init_charset_once): Modified.
5442 (syms_of_charset): Modified.
5443
5444 * cmds.c (internal_self_insert): Adjusted for the change of
5445 CHAR_STRING.
5446
5447 * coding.h (emacs_code_class_type): Delete the member
5448 EMACS_leading_code_composition.
5449 (COMPOSING_NO) (COMPOSING_WITH_RULE_HEAD) (COMPOSING_NO_RULE_HEAD)
5450 (COMPOSING_WITH_RULE_TAIL) (COMPOSING_NO_RULE_TAIL)
5451 (COMPOSING_WITH_RULE_RULE) (COMPOSING_HEAD_P)
5452 (COMPOSING_WITH_RULE_P): Macros deleted.
5453 (COMPOSITION_DATA_SIZE) (COMPOSITION_DATA_MAX_BUNCH_LENGTH): New
5454 macros.
5455 (struct composition_data): New structure.
5456 (CODING_FINISH_INSUFFICIENT_CMP): New macro.
5457 (struct coding_system): New members composition_rule_follows,
5458 cmp_data, cmp_data_start, cmp_data_index.
5459 (coding_save_composition) (coding_free_composition_data)
5460 (coding_adjust_composition_offset): Extern them.
5461
5462 * coding.c: Include composite.h.
5463 (DECODE_CHARACTER_ASCII): Don't handle composition here.
5464 (DECODE_CHARACTER_DIMENSION1): Likewise. Don't check the validity
5465 of multibyte code here.
5466 (DECODE_CHARACTER_DIMENSION2): Likewise.
5467 (detect_coding_emacs_mule): Change the case label from
5468 EMACS_leading_code_composition to 0x80.
5469 (detect_coding_iso2022): Handle new composition sequence.
5470 (DECODE_ISO_CHARACTER): Likewise.
5471 (check_composing_code): Deleted.
5472 (coding_allocate_composition_data): New function.
5473 (CODING_ADD_COMPOSITION_START) (CODING_ADD_COMPOSITION_END)
5474 (CODING_ADD_COMPOSITION_COMPONENT) (DECODE_COMPOSITION_START)
5475 (DECODE_COMPOSITION_END) (DECODE_COMPOSITION_RULE): New macros.
5476 (decode_coding_iso2022): Handle new composition sequence.
5477 (ENCODE_ISO_CHARACTER): Don't check composition here.
5478 (ENCODE_COMPOSITION_RULE) (ENCODE_COMPOSITION_START): New macros.
5479 (ENCODE_COMPOSITION_NO_RULE_START)
5480 (ENCODE_COMPOSITION_WITH_RULE_START): Deleted.
5481 (ENCODE_COMPOSITION_END): Handle new composition sequence.
5482 (ENCODE_COMPOSITION_FAKE_START): New macro.
5483 (encode_coding_iso2022): Handle new composition sequence.
5484 (ENCODE_SJIS_BIG5_CHARACTER): Delete superfluous `;' at the tail.
5485 (encode_coding_sjis_big5): Ignore composition.
5486 (setup_coding_system): Initialize new members of struct
5487 coding_system. Enable composition only when the coding system has
5488 `composition' property t.
5489 (coding_free_composition_data) (coding_adjust_composition_offset)
5490 (coding_save_composition) (coding_restore_composition): New
5491 functions.
5492 (code_convert_region): Call coding_save_composition for encoding
5493 and coding_allocate_composition_data for decoding. Don't skip
5494 ASCII characters if we handle composition on encoding. Call
5495 signal_after_change with Check_BORDER.
5496 (code_convert_string): Call coding_save_composition for encoding
5497 and coding_allocate_composition_data for decoding. Don't skip
5498 ASCII characters if we handle composition on encoding.
5499 (code_convert_string1): Set Vlast_coding_system_used after calling
5500 code_convert_string.
5501 (code_convert_string_norecord): Disable composition.
5502 (Fset_terminal_coding_system_internal): Likewise.
5503 (Fset_safe_terminal_coding_system_internal): Likewise.
5504 (Fset_keyboard_coding_system_internal): Likewise.
5505 (init_coding_once): Set emacs_code_class[0x80] to
5506 EMACS_invalid_code.
5507
5508 * composite.h: New file.
5509
5510 * composite.c: New file.
5511
5512 * data.c (Faref): Delete codes for a composite character..
5513 (Faset): Likewise. Adjusted for the change of CHAR_STRING.
5514
5515 * dispextern.h (enum glyph_type): New member COMPOSITE_GLYPH.
5516 (struct glyph): Add new sub-structure cmp to the union `u'.
5517 (enum display_element_type): New member IT_COMPOSITION.
5518 (enum prop_idx): New member COMPOSITION_PROP_IDX.
5519 (struct it): New members cmp_id, cmp_len.
5520
5521 * dispnew.c (direct_output_forward_char): Check point moving into
5522 or out of a composition. If so, give up direct method.
5523
5524 * doprnt.c (doprnt1): Adjusted for the change of CHAR_STRING.
5525
5526 * editfns.c (Fchar_to_string): Adjusted for the change of
5527 CHAR_STRING.
5528 (general_insert_function): Likewise.
5529 (Finsert_char): Likewise.
5530 (Fsubst_char_in_region): Likewise. Call update_compositions.
5531 (Ftranslate_region): Call update_compositions.
5532 (Ftranspose_regions): Call update_compositions.
5533
5534 * emacs.c (main): Call syms_of_composite.
5535
5536 * fileio.c (Fsubstitute_in_file_name): Adjusted for the change of
5537 CHAR_STRING.
5538 (Finsert_file_contents): Set Vlast_coding_system_used before
5539 calling signal_after_change. Call update_compositions if some
5540 texts are inserted..
5541 (Fwrite_region): Adjusted for the change of a_write and e_write.
5542 (a_write): Argument changed. Work based on character position,
5543 not byte position.
5544 (e_write): Argument changed. Handle new way of composition.
5545
5546 * fns.c (Flength): The length of char-table is MAX_CHAR.
5547 (concat): Adjusted for the change of CHAR_STRING.
5548 (Ffillarray): Adjusted for the change of CHAR_STRING.
5549 (Fset_char_table_default): Delete codes for a composite character.
5550 (hash_put): Return hash index.
5551
5552 * fontset.h (struct font_info): New member vertical_centering.
5553 (Vvertical_centering_font_regexp): Extern it.
5554
5555 * fontset.c (Vvertical_centering_font_regexp): New variable.
5556 (syms_of_fontset): Declare it as a Lisp variable and initialize.
5557 Set Vignore_relative_composition to nil.
5558 (fs_load_font): Initialize `vertical_centering' of struct
5559 font_info.
5560
5561 * indent.c (check_composition): New function.
5562 (MULTIBYTE_BYTES_WIDTH): Call STRING_CHAR_AND_LENGTH with
5563 MAX_MULTIBYTE_LENGTH, not MAX_LENGTH_OF_MULTI_BYTE_FORM.
5564 (current_column_1): Handle new way of composition.
5565 (Fmove_to_column): Likewise.
5566 (compute_motion): Likewise.
5567
5568 * insdel.c (copy_text): Adjusted for the change of CHAR_STRING.
5569 (insert_char): Likewise.
5570 (insert): Call update_compositions.
5571 (insert_and_inherit): Likewise.
5572 (insert_before_markers): Likewise.
5573 (insert_before_markers_and_inherit): Likewise.
5574 (insert_from_string): Likewise.
5575 (insert_from_string_before_markers): Likewise.
5576 (insert_from_buffer): Likewise.
5577 (replace_range): Likewise.
5578 (count_combining_composition): Deleted.
5579 (count_combining_before): Delete codes for a composite character.
5580 (count_combining_after): Likewise.
5581 (del_range_1): Call update_compositions.
5582 (del_range_byte): Likewise.
5583 (del_range_both): Likewise.
5584 (Fcombine_after_change_execute): Likewise.
5585
5586 * intervals.h: Include composite.h.
5587 (get_property_and_range): Extern it.
5588 (Vtext_property_default_nonsticky): Extern it.
427ec082 5589
5ec14d3c
KH
5590 * intervals.c (adjust_intervals_for_insertion): To check stickines
5591 of properties, pay attention to text-property-default-nonsticky.
5592 (merge_properties_sticky): Likewise.
5593 (get_property_and_range): New function.
5594
5595 * keyboard.c (Vdisable_point_adjustment): New variable.
5596 (Vglobal_disable_point_adjustment): New variable.
5597 (syms_of_keyboard): Declare them as Lisp variables.
5598 (command_loop_1): Check them and call adjust_point_for_property if
5599 necessary.
5600 (adjust_point_for_property): New function.
5601
5602 * keymap.c (push_key_description): Adjusted for the change of
5603 CHAR_STRING.
5604 (Ftext_char_description): Likewise.
5605
5606 * lisp.h (QCtest, QCweakness, Qequal): Extern them.
5607 (hash_put): Adjusted for the change of the definition.
5608 (signal_after_change): Likewise.
5609 (check_point_in_composition): Extern it.
5610
5611 * lread.c (readchar): Adjusted for the change of CHAR_STRING.
5612 Delete a code that handles an invalid too-long multibyte sequence
5613 because we are now sure that we never encounter with such a
5614 sequence.
5615 (read_multibyte): Use macro MAX_MULTIBYTE_LENGTH, not
5616 MAX_LENGTH_OF_MULTI_BYTE_FORM.
5617 (init_obarray): Likewise.
5618 (read1): Likewise. Adjusted for the change of CHAR_STRING.
5619
5620 * print.c (printchar): Adjusted for the change of CHAR_STRING.
5621
5622 * process.c: Include composite.h.
5623 (read_process_output): Call update_compositions.
5624
5625 * regex.c (regex_compile): Adjusted for the change of CHAR_STRING.
5626
5627 * search.c (search_buffer): Adjusted for the change of CHAR_STRING.
5628
5629 * syntax.h (SYNTAX_ENTRY_INT): Delete codes for a composite
5630 character.
5631
5632 * term.c (encode_terminal_code): Delete codes for a composite
5633 character. Adjusted for the change of CHAR_STRING.
5634 (produce_glyphs): When called, it->what can be IT_COMPOSITION.
5635 Delete codes for a composite character.
5636
5637 * textprop.c (Vtext_property_default_nonsticky): New variable
5638 (syms_of_textprop): Declare it as a Lisp variable.
5639
5640 * window.c (Frecenter): Clear all caches of compositions.
5641
5642 * xdisp.c (it_props): Add an entry for composition.
5643 (face_before_or_after_it_pos): For composition, check face of a
5644 character after the composition.
5645 (handle_composition_prop): New function.
5646 (get_next_display_element): Adjusted for the change of
5647 CHAR_STRING.
5648 (set_iterator_to_next): Handle the case that it->method ==
5649 next_element_from_composition.
5650 (next_element_from_composition): New function.
5651 (message_dolog): Adjusted for the change of CHAR_STRING.
5652 (set_message_1): Likewise.
5653 (check_point_in_composition): New function.
5654 (reconsider_clip_changes): If point moved into or out of
5655 composition, set b->clip_changed to 1 to force updating of the
5656 screen.
5657 (disp_char_vector): Delete codes for a composite character.
5658 (decode_mode_spec_coding): Adjusted for the change of CHAR_STRING.
5659
5660 * xfaces.c (choose_face_fontset_font): Delete codes for a
5661 composite character.
5662 (realize_x_face): Likewise. Change a place to set local variable
5663 `f' to avoid a bug of GCC 2.8.1 on Solaris.
5664
5665 * xfns.c: Include intervals.h.
5666 (syms_of_xfns): Make `display' property nonsticky by default.
5667
5668 * xselect.c (lisp_data_to_selection_data): Adjusted for the change
5669 for find_charset_in_str.
5670
5671 * xterm.h (struct x_output): Change member font_baseline to
5672 baseline_offset.
5673
5674 * xterm.c (x_append_glyph): Setup members of struct glyph properly
5675 for composition.
5676 (x_append_composite_glyph): New function.
5677 (VCENTER_BASELINE_OFFSET): New macro.
5678 (x_produce_glyphs): If it->what == IT_COMPOSITION, setup members
5679 of struct it for the composition. Cache pixel offsets in the
5680 struct composition. Delete codes for a composite character.
5681 Handle Vignore_relative_composition in composition code.
5682 (struct glyph_string): Delete member cmpcharp, add new member cmp.
5683 (x_set_cursor_gc): Check s->cmp, not s->cmpcharp.
5684 (x_compute_glyph_string_overhangs): Likewise.
5685 (x_get_glyph_overhangs): Delete codes for a composite character.
5686 (x_right_overwritten): Check s->cmp, not s->cmpcharp.
5687 (x_draw_glyph_string_background): Likewise. Delete codes for
5688 checking s->gidx for a composition.
5689 (x_draw_glyph_string_foreground): Delete code for a composite
5690 character.
5691 (x_draw_composite_glyph_string_foreground): New function.
5692 (x_draw_glyph_string_box): Check s->cmp, not s->cmpcharp.
5693 (x_draw_glyph_string): Handle the case of COMPOSITE_GLYPH.
5694 (struct work): Deleted.
5695 (x_fill_composite_glyph_string): Argument changed. Mostly
5696 rewritten for that.
5697 (x_fill_glyph_string): Don't check CHARSET_COMPOSITION.
5698 (BUILD_CHAR_GLYPH_STRINGS): Don't handle composition here.
5699 (BUILD_COMPOSITE_GLYPH_STRING): New macro.
5700 (BUILD_GLYPH_STRINGS): For composition, call
5701 BUILD_COMPOSITE_GLYPH_STRING.
5702 (x_new_font): Initialize f->output_data.x->baseline_offset, not
5703 f->output_data.x->font_baseline.
5704
c3c60f13
GM
57051999-12-14 Gerd Moellmann <gerd@gnu.org>
5706
5707 * xterm.c (show_mouse_face): Don't use updated_area, use
5708 TEXT_AREA.
5709
83c8f461 57101999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
5711
5712 * minibuf.c (Fall_completions): Doc fix.
5713
83c8f461 57141999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
5715
5716 * macros.c (Fstart_kbd_macro): Handle case where last-kbd-macro
5717 has been changed by the Lisp code.
5718
d8eccf12
GM
57191999-12-12 Gerd Moellmann <gerd@gnu.org>
5720
5721 * xfns.c: Indentation fixes.
5722
ae56feae
SM
57231999-12-10 Stefan Monnier <monnier@cs.yale.edu>
5724
5725 * xterm.c (x_initialize): Only setup xaw3d_* if they've been declared.
5726
dfa1c6ae
GM
57271999-12-10 Gerd Moellmann <gerd@gnu.org>
5728
5729 * frame.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL)
5730 [!MSDOS && !WINDOWSNT && !macintosh]: Moved here from xterm.h.
5731
5732 * xterm.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL): Moved
5733 to frame.h.
5734
ec18280f
SM
57351999-12-09 Stefan Monnier <monnier@cs.yale.edu>
5736
5737 * keyboard.c (Qratio): New symbol.
5738 (scroll_bar_parts): Add `Qratio' to it.
5739 (syms_of_keyboard): Init `Qratio'.
5740 * termhooks.h (scroll_bar_part): Add `scroll_bar_move_ratio'.
5741 * xterm.c (#includes): Allow compilation with only Xaw.
5742 (xaw3d_arrow_scroll, xaw3d_pick_top): New variables.
5743 (xt_action_hook): Replace XAW3D by XAW.
5744 (xaw3d_jump_callback): Renamed to xaw_jump_callback.
5745 (xaw_jump_callback): Renamed from xaw3d_jump_callback.
5746 Determine epsilon dynamically and don't try to be too clever.
5747 (xaw3d_scroll_callback): Renamed to xaw_scroll_callback.
5748 (xaw_scroll_callback): Renamed from xaw3d_scroll_callback.
5749 Handle both Xaw3d with arrow-scrollbars and with Xaw-style
5750 scrollbar (using `ratio').
5751 (x_create_toolkit_scroll_bar): Try to detect which style of Xaw3d
5752 scrollbar we have so as to set it up more optimally and to fix
5753 xaw3d_arrow_scroll and xaw3d_pick_top.
5754 (x_set_toolkit_scroll_bar_thumb): Try to maintain 2 spare pixels at the
5755 bottom of the Xaw3d scrollbar, to work around its tendency to refuse
5756 shrinking the thumb. Also make sure that `XawScrollbarSetThumb'
5757 is not ignored, using a major gross hack.
5758 (x_initialize): Init default values for xaw3d_arrow_scroll and
5759 xaw3d_pick_top.
5760
83b6d970
DL
57611999-12-09 Dave Love <fx@gnu.org>
5762
5763 * frame.h: (PIX_TYPE) [! HAVE_X_WINDOWS]: Define PIX_TYPE.
5764
3648c842
GM
57651999-12-08 Gerd Moellmann <gerd@gnu.org>
5766
5767 * eval.c: Remove conditional compilation on `standalone'.
5768 (call_debugger): When entering the debugger while redisplaying,
5769 reset redisplaying_p, and go back to the top-level if the debugger
5770 returns.
5771
05e71564
GM
57721999-12-07 Gerd Moellmann <gerd@gnu.org>
5773
5774 * xfaces.c (x_set_menu_resources_from_menu_face): Make sure
5775 basic faces are realized before trying to use face `menu'.
5776
5777 * window.c (delete_window): Block input for the time window
5778 matrices are being changed.
5779
b46cd536
DL
57801999-12-07 Dave Love <fx@gnu.org>
5781
5782 * lread.c (Fintern_soft): Fix newlines in doc string.
5783
96acb1f7
GM
57841999-12-07 Alexandre Oliva <oliva@dcc.unicamp.br>
5785
5786 * unexelf.c: Include <syms.h>, not <sym.h> on IRIX. Removed
5787 duplicate definition of ElfW.
5788 (find_section): Copied from unexsgi.c.
5789 (unexec): Use find_section. Adjust whitespace. Initialize
5790 new_data2_offset based on old_data, not sbss (this fixes a bug on
5791 IRIX6). Change #ifdef __mips to __sgi, since it's IRIX-specific.
5792 Adjust test for presence of .mdebug section to the new return
5793 value of find_section.
427ec082 5794
96acb1f7
GM
57951999-12-07 Gerd Moellmann <gerd@gnu.org>
5796
5797 * unexelf.c: Merge changes from 20.5.
5798 (unexec): Handle .lit4 and .lit8 unconditionally.
5799
5800 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexelf.o instead of
5801 unexsgi.o again.
427ec082 5802
96acb1f7
GM
5803 * m/iris5d.h (UNEXEC): Likewise.
5804
7dae4502
SM
58051999-12-06 Stefan Monnier <monnier@cs.yale.edu>
5806
5807 * editfns.c (Fdelete_and_extract_region): New function.
05e71564
GM
5808 (syms_of_editfns): Register it.
5809 * insdel.c (del_range): Update del_range_1 call.
7dae4502
SM
5810 (del_range_1, del_range_2): Add a ret_string argument to
5811 request that the deleted text be returned.
5812 (del_range_byte, del_range_both): Update del_range_2 call.
05e71564 5813 * lisp.h (del_range_1, del_range_2): Change prototype
7dae4502
SM
5814 * casefiddle.c (casify_region): Update del_range_1 call.
5815 * coding.c (code_convert_region): Update del_range_2 call.
5816 * fileio.c (Finsert_file_contents): Update del_range_2 call.
5817
397e4fae
GM
58181999-12-06 Gerd Moellmann <gerd@gnu.org>
5819
5820 * xfaces.c (set_lface_from_font_name): Fix incomplete merge.
5821
3d973f71
GM
58221999-12-04 Hrvoje Niksic <hniksic@iskon.hr>
5823
5824 * lread.c (Fintern_soft): Accept a symbol argument.
427ec082 5825
740e985f
EZ
58261999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
5827
5828 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Reduce to 40000.
809f3d51
EZ
5829
5830 * insdel.c (adjust_markers_for_delete): Fix last change.
5831
2d764c78
EZ
58321999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
5833
5834 Changes for automatic remapping of X colors on terminal frames:
5835
5836 * xfaces.c (XColor) [!HAVE_X_WINDOWS]: Provide a typedef for non-X
5837 frames.
5838 (Vface_tty_color_alist): Remove.
5839 (tty_defined_color): New function.
5840 (defined_color): Rewrite to support any type of frame.
5841 (tty_color_name): New function.
5842 (face_color_supported_p, Fface_color_gray_p,
5843 Fface_color_supported_p): Support non-X frames.
5844 (load_color): Enclose the color name in quotes, in the log
5845 messages. Remove DOS-specific version of load_color.
5846 (realize_tty_face): Take the supported colors from
5847 tty-color-alist. Support translation of X colors to the closest
5848 tty color, for both MSDOS and tty frames.
5849 [MSDOS]: Don't invert face colors if they were taken from the
5850 frame colors.
5851 (Fface_register_tty_color, Fface_clear_tty_colors): Remove.
5852
5853 * frame.h (struct x_output) [!MSDOS, !WINDOWSNT, !HAVE_X_WINDOWS]:
5854 Define a mostly empty surrogate.
5855 (tty_display): Declare.
5856
5857 * frame.c (make_terminal_frame) [!macintosh]: Don't use
5858 tty_display.
5859 (Fframe_parameters): Don't invert colors of non-FRAME_WINDOW_P
5860 frames when the frame's param_alist includes 'reverse.
5861 (tty_display): Define.
5862 (make_terminal_frame) [!MSDOS]: Assign &tty_display to the
5863 output_data.x member.
5864 (Fframe_parameters): Return foreground and background color names
5865 on tty frames as well, in addition to MSDOS frames.
5866
5867 * msdos.h (DisplayWidth, DisplayHeight): Changes for Lisp_Object
5868 selected_frame.
5869 (struct x_output): Remove unused members; document who uses each
5870 member.
5871 (FRAME_PARAM_FACES, FRAME_N_PARAM_FACES, FRAME_DEFAULT_PARAM_FACE,
5872 FRAME_MODE_LINE_PARAM_FACE, FRAME_COMPUTED_FACES,
5873 FRAME_N_COMPUTED_FACES, FRAME_SIZE_COMPUTED_FACES,
5874 FRAME_DEFAULT_FACE, FRAME_MODE_LINE_FACE, unload_color): Remove
5875 unused macro definintions.
5876
5877 * msdos.c (IT_set_frame_parameters): Don't call
5878 recompute_basic_faces, the next redisplay will, anyway.
5879 (x_current_display): Remove unused variable.
5880 Many functions: changes for Lisp_object selected_frame.
5881 (IT_set_face): If the tty_reverse_p flag is set for the face,
5882 reverse the foreground and background colors.
5883 (Fmsdos_remember_default_colors): New function.
5884 (syms_of_msdos): Defsubr it.
5885 (IT_set_frame_parameters): Use initial_screen_colors[] when
5886 creating a new frame. If the frame parameters include 'reverse,
5887 swap the foreground and background colors.
5888 (internal_terminal_init): Initialize initial_screen_colors to -1.
5889 (syms_of_msdos): Add DEFVAR_BOOL for x-stretch-cursor, to shut up
5890 cus-start.el.
5891
5892 * Makefile.in (lisp, shortlisp): Add lisp/term/tty-colors.elc.
5893
5894 * xfns.c (x_defined_color): Rename from defined_color. All
5895 callers changed.
5896 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
5897 all callers changed.
5898 (Fxw_color_values): Renamed from Fx_color_values; all callers
5899 changed.
5900 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
5901 callers changed.
5902 (x_window_to_frame, x_any_window_to_frame,
5903 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
5904 x_top_window_to_frame): Use !FRAME_X_P instead of
5905 f->output_data.nothing.
5906 * xterm.h (x_defined_color): Rename from defined_color.
5907
5908 * w32fns.c (x_window_to_frame): Use FRAME_W32_P instead of
5909 f->output_data.nothing.
5910 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
5911 all callers changed.
5912 (Fxw_color_values): Renamed from Fx_color_values; all callers
5913 changed.
5914 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
5915 callers changed.
5916
5917 * dispextern.h (tty_color_name): Add prototype.
5918
5919 * xmenu.c (menubar_id_to_frame): Use FRAME_WINDOW_P instead of
5920 f->output_data.nothing.
5921 * w32menu.c (menubar_id_to_frame): Likewise.
5922 * w32term.h (w32_output): Declare.
5923
5924 * dosfns.c (Qmsdos_color_translate): Remove.
5925 (msdos_stdcolor_name): Now returns a Lisp_Object.
5926 * dosfns.h (Qmsdos_color_translate): Remove.
5927
5928 * s/msdos.h (INTERNAL_TERMINAL): Add entries for color support.
5929
b3e5232e
KH
59301999-12-06 Kenichi Handa <handa@etl.go.jp>
5931
5932 * fileio.c (decide_coding_unwind): Renamed from
5933 set_auto_coding_unwind.
5934 (Finsert_file_contents): Make single unwind protect to call both
5935 Vset_auto_coding_function and Ffind_operation_coding_system.
5936
5937 * insdel.c (adjust_markers_for_delete): Make it non-static.
5938
db0e466c
SM
59391999-12-04 Stefan Monnier <monnier@cs.yale.edu>
5940
5941 * regex.c (regex_compile): Recognize *?, +? and ?? as non-greedy
5942 operators and handle them properly.
5943 * regex.h (RE_ALL_GREEDY): New option.
5944 (RE_UNMATCHED_RIGHT_PAREN_ORD): Moved to the end where alphabetic
5945 sorting would put it.
5946 (RE_SYNTAX_AWK, RE_SYNTAX_GREP, RE_SYNTAX_EGREP)
5947 (_RE_SYNTAX_POSIX_COMMON): Use the new option to keep old behavior.
5948
22afa6e8
DL
59491999-12-04 Dave Love <d.love@dl.ac.uk>
5950
5951 * m/arm.h: New file.
5952
40afb967
DL
59531999-12-03 Dave Love <fx@gnu.org>
5954
5955 * editfns.c (Fmessage_or_box): Use use_dialog_box.
5956
ddf8eff5
GM
59571999-12-02 Gerd Moellmann <gerd@gnu.org>
5958
5959 * s/usg5-4.h (LIBS_SYSTEM): Add -lgen because that's needed
5960 for building with Motif.
5961
5962 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexsgi.o instead of
5963 unexelf.o.
427ec082 5964
ddf8eff5
GM
5965 * m/iris5d.h (UNEXEC): Use unexsgi.o instead of unexelf.o.
5966
fa09a82d
DL
59671999-12-01 Dave Love <fx@gnu.org>
5968
5969 * emacs.c (main): Set LANG=C iff AX3_2 defined.
5970
ddf8eff5
GM
59711999-11-28 Gerd Moellmann <gerd@gnu.org>
5972
5973 * systime.h (EMACS_TIME_CMP, EMACS_TIME_EQ, EMACS_TIME_NE)
5974 (EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT,EMACS_TIME_LE): New
5975 macros.
5976
5977 * config.in (HAVE_SETITIMER, HAVE_UALARM): New.
5978
fa09a82d
DL
59791999-11-28 eliz <eliz@dlpx1>
5980
5981 * emacs.c (synchronize_locale): Avoid compiler warnings about
5982 pointer type mismatch.
5983
f9632fc8
GM
59841999-11-28 Gerd Moellmann <gerd@gnu.org>
5985
717d0121
GM
5986 * window.c (Fwindow_end): Don't call temp_set_pt_both with
5987 out of range position.
5988
427ec082 5989 * xterm.c (XTread_socket) <ClientMessage, Xatom_Scrollbar>:
f9632fc8
GM
5990 Switch off busy-cursor by setting inhibit_busy_cursor to 2.
5991
59c65f1e
EZ
59921999-11-28 Eli Zaretskii <eliz@is.elta.co.il>
5993
613a8346
EZ
5994 * charset.c (Fmake_char_internal): Print the charset ID when
5995 signalling an error.
5996
59c65f1e
EZ
5997 * emacs.c (synchronize_locale): Avoid compiler warnings about
5998 pointer type mismatch.
5999
83c8f461 60001999-11-26 Richard M. Stallman <rms@gnu.org>
d01f3570
RS
6001
6002 * editfns.c (Fdelete_field): Make it noninteractive. Return nil.
6003
18df9369
GM
60041999-11-26 Gerd Moellmann <gerd@gnu.org>
6005
65a3ccf7
GM
6006 * puresize.h (BASE_PURESIZE): Increase to 550000.
6007
b3b98592
GM
6008 * textprop.c (set_text_properties): New function. Like
6009 Fset_text_properties, but with additional parameter
6010 SIGNAL_AFTER_CHANGE_P. If that is nil, don't signal after
6011 changes.
6012 (Fset_text_properties): Use it.
6013
6014 * insdel.c (insert_1_both): Call set_text_properties with last
6015 parameter nil so that no after changes will be signaled.
6016
6017 * lisp.h: Add prototype for set_text_properties.
6018
18df9369
GM
6019 * xfaces.c (set_lface_from_font_name): Fix previous change.
6020 (recompute_basic_faces): Change assert to abort.
6021
71a8e74b
DL
60221999-11-25 Dave Love <fx@gnu.org>
6023
6024 * fns.c (Fnthcdr, Fnreverse): Inline cdr.
6025 (Fmember, Fdelq, Fdelete): Inline car.
6026 (Fy_or_n_p): Doc fix.
6027
bc6a5782
GM
60281999-11-25 Gerd Moellmann <gerd@gnu.org>
6029
3221576b 6030 * xfaces.c (set_lface_from_font_name): New parameter may_fail_p.
18df9369 6031 Callers changed. If specified font name is bogus, and may_fail_p
3221576b
GM
6032 is not set, try to use a reasonable default.
6033
bc6a5782
GM
6034 * dispnew.c (direct_output_for_insert): Set glyph row's
6035 displays_text_p flag. Correct window's window_end_vpos if
6036 necessary.
6037
0c8559bb
PE
60381999-11-25 Paul Eggert <eggert@twinsun.com>
6039
6040 * emacs.c (fixup_locale): Don't bother to record initial locale.
6041 (synchronize_locale): If the desired locale is nil,
6042 treat it as if it were the empty string,
6043 so that we set the locale from the environment.
6044
35737351
KH
60451999-11-25 Kenichi Handa <handa@etl.go.jp>
6046
6047 * fileio.c (Finsert_file_contents): Set buffer-file-coding-system
6048 of the current buffer via Fset.
6049
5562b47f
DL
60501999-11-24 Dave Love <fx@gnu.org>
6051
5562b47f
DL
6052 * xfaces.c: Don't duplicate Qmode_line definition done elsewhere.
6053
6054 * xfns.c: Don't duplicate Qdisplay definition done elsewhere.
6055
00da0e4a
GM
60561999-11-24 Gerd Moellmann <gerd@gnu.org>
6057
6058 * lisp.h (enum pvec_type): Put PVEC_FLAG in #if 0.
6059
6060 * emacs.c (PVEC_FLAG): New variable.
6061
b1775dc1
GM
60621999-11-23 Gerd Moellmann <gerd@gnu.org>
6063
6064 * unexaix.c (unexec): Use unsigned instead of uintptr_t because
6065 that fails on IBM PowerPC, AIX 4.2.
427ec082 6066
08de6200
EZ
60671999-11-22 Eli Zaretskii <eliz@is.elta.co.il>
6068
6069 * buffer.c (syms_of_buffer): Add %z, %Z, %m and %& to the doc
6070 string of mode-line-format. Remove the obsolete %t.
6071
02fda8ff
GM
60721999-11-22 Gerd Moellmann <gerd@gnu.org>
6073
f2fa858f
GM
6074 * dispnew.c (direct_output_for_insert): Increment glyph positions
6075 for glyphs from buffer text only.
6076
02fda8ff
GM
6077 * emacs.c (gdb_valbits, gdb_gctypebits, gdb_emacs_intbits)
6078 (gdb_data_seg_bits): New variables.
427ec082 6079
02fda8ff
GM
6080 * lisp.h (enum gdb_lisp_params): Put in #if 0, since it doesn't
6081 work on systems not allowing enumerators > INT_MAX, and it
6082 won't work if EMACS_INT is long long.
6083
1b0d24e7
PE
60841999-11-22 Paul Eggert <eggert@twinsun.com>
6085
6086 Port to SunOS 4.1.x again. Help out with Alpha port.
6087 Rename messages-locale to system-messages-locale,
6088 and likewise for time-locale.
427ec082 6089
1b0d24e7
PE
6090 * callproc.c (strerror): Remove decl.
6091 * fileio.c (strerror): Likewise.
6092 * process.c (strerror): Likewise.
6093 * emacs.c (strerror): Likewise.
6094 (Vsystem_messages_locale): Renamed from Vmessages_locale.
6095 All uses changed.
6096 (Vprevious_system_messages_locale): Likewise, from
6097 Vprevious_messages_locale.
6098 (Vsystem_time_locale): Likewise, from Vtime_locale.
6099 (Vprevious_system_time_locale): Likewise, from Vprevious_time_locale.
6100 (ABORT_RETURN_TYPE): New macro.
6101 (abort): Return type is now ABORT_RETURN_TYPE.
6102 (main): Always invoke init_signals, even if POSIX_SIGNALS is not
6103 defined.
6104 (syms_of_emacs): messages-locale -> system-messages-locale,
6105 previous-messages-locale -> previous-system-messages-locale,
6106 time-locale -> system-time-locale,
6107 previous-time-locale -> previous-system-time-locale.
6108
6109 * gmalloc.c (PP, __ptr_t): Assume ANSI C if STDC_HEADERS is defined.
6110 (const): Do not define; that's config.h's job.
6111 (<limits.h>): Include if HAVE_LIMITS_H is defined.
6112 (CHAR_BIT): Move test for definedness outside of limits.h condition.
6113 (<stddef.h>): Include if STDC_HEADERS is defined.
6114 (FREE_RETURN_TYPE): New macro.
6115 (free): Return type is now FREE_RETURN_TYPE.
6116
6117 * lisp.h (synchronize_system_time_locale): Renamed from
6118 synchronize_time_locale. All uses changed.
6119 (synchronize_system_messages_locale): Likewise, from
6120 synchronize_messages_locale.
6121
6122 * m/alpha.h (malloc, realloc, calloc): Remove decls;
6123 stdlib.h now does this.
6124
6125 * process.c (sys_siglist): Remove.
6126
6127 * s/sunos4-0.h (ABORT_RETURN_TYPE, FREE_RETURN_TYPE):
6128 New macros.
6129
6130 * syntax.c (scan_sexps_forward): Use abort, not assert.
6131
6132 * sysdep.c (my_sys_siglist): New var.
6133 (sys_siglist): New macro. Remove old initialized vars of same name.
6134 (init_signals): Initialize sys_siglist.
6135
6136 * xfns.c (abort): Remove decl; stdlib.h now does this.
6137
0dcd5b54
DL
61381999-11-18 Dave Love <fx@gnu.org>
6139
946173ad
DL
6140 * filelock.c: Add forward declaration for get_boot_time_1.
6141
0dcd5b54
DL
6142 * dispnew.c (Finternal_show_cursor_p): Fix doc string.
6143
71447e8f
GM
61441999-11-18 Gerd Moellmann <gerd@gnu.org>
6145
6146 * buffer.h (struct buffer_text): Add comment about moving
6147 buffer text if REL_ALLOC is defined.
6148
eeedff63
KH
61491999-11-18 Kenichi Handa <handa@etl.go.jp>
6150
6151 * lisp.h (KEY_DESCRIPTION_SIZE): New macro.
6152
6153 * keyboard.c (echo_char): Use KEY_DESCRIPTION_SIZE to check free
6154 memory for push_key_description.
6155
6156 * keymap.c (Fsingle_key_description): Use KEY_DESCRIPTION_SIZE to
6157 allocate memory for push_key_description.
6158 (describe_buffer_bindings): Likewise.
6159
5d7e4a2c
GM
61601999-11-17 Gerd Moellmann <gerd@gnu.org>
6161
6162 * xfns.c (Fx_show_busy_cursor): Doc-fix.
6163 (Fx_hide_busy_cursor): Ditto.
6164
61651999-11-17 Marco Walther <walther@siemens-pyramid.com>
6166
6167 * unexsni.c (unexec): Handle .rel.dyn section.
6168
b5b41e02
DL
61691999-11-16 Dave Love <fx@gnu.org>
6170
6171 * doc.c (Fdocumentation): Remove gcpro here too.
6172
e35b6123
GM
61731999-11-16 Gerd Moellmann <gerd@gnu.org>
6174
6175 * keyboard.c (command_loop_1): Remove no_redisplay.
6176
83c8f461 61771999-11-16 Richard M. Stallman <rms@gnu.org>
0a14b9bb
GM
6178
6179 * print.c (PRINTPREPARE): Don't call setup_echo_area_for_printing
6180 in noninteractive.
6181
b05d3bee
GM
61821999-11-14 Gerd Moellmann <gerd@gnu.org>
6183
5bcfeb49
GM
6184 * xdisp.c (ensure_echo_area_buffers): New.
6185 (with_echo_area_buffer): Use it.
6186 (setup_echo_area_for_printing): Ditto.
6187
b05d3bee
GM
6188 * buffer.c (indicate-empty-lines): Doc-fix.
6189
9b2e6e4c
GM
61901999-11-12 Gerd Moellmann <gerd@gnu.org>
6191
e7f90eab
GM
6192 * term.c (term_init): If "op" isn't available, don't support color
6193 because we can't switch back to the default foreground and
6194 background.
6195
9b2e6e4c
GM
6196 * doc.c (Fdocumentation_property): Remove GCPRO because
6197 Fsubstitute_command_keys gcpro's the string.
6198
1bf21027
KH
61991999-11-12 Kenichi Handa <handa@etl.go.jp>
6200
6201 * editfns.c (Ftranslate_region): Check the buffer multibyteness.
6202
3bc6df53
GM
62031999-11-11 Gerd Moellmann <gerd@gnu.org>
6204
6205 * print.c, keymap.c, indent.c, insdel.c, keyboard.c, intervals.c,
6206 lread.c, textprop.c, undo.c, emacs.c, lisp.h, intervals.h,
6207 buffer.h, config.in, Makefile.in: Remove USE_TEXT_PROPERTIES.
6208
35a5514b
GM
62091999-11-10 Gerd Moellmann <gerd@gnu.org>
6210
6211 * xfns.c (QCuser_data): Removed.
6212 (syms_of_xfns): Initialization of QCuser_data removed.
6213 (parse_image_spec): Don't handle :user-data specially. Allow
6214 unknown keys. Remove parameter ALLOW_OTHER_KEYS.
6215 (xbm_image_p, xbm_load, xpm_image_p, pbm_image_p, png_image_p)
6216 (tiff_image_p, jpeg_image_p, gif_image_p, gs_image_p): Call
6217 parse_image_spec accordingly.
6218
83c8f461 62191999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
6220
6221 * cmds.c (Fbeginning_of_line): Doc fix.
6222 (Fend_of_line): Doc fix.
6223
6224 * editfns.c (Fline_beginning_position): If N is not 1,
6225 pass t to Fconstrain_to_field for ESCAPE-FROM-EDGE.
6226
6227 * syntax.c (Fforward_word): Handle fields even if would have hit
6228 an edge of the buffer. Return nil if affected by fields.
6229
83c8f461 62301999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
6231
6232 * editfns.c (preceding_pos): Function deleted.
6233 (text_property_stickiness): Decrement POS directly.
6234 Fix a confusion that used PT instead of POS.
6235
6236 * editfns.c (find_field): Properly handle the case
6237 of a field boundary where `field' inherits from neither side.
6238
6239 * editfns.c (Ffield_beginning, Ffield_end): Doc fixes.
6240 (Ferase_field, Ffield_string, Ffield_string_no_properties): Doc fixes.
6241
fa9aabf6
GM
62421999-11-08 Gerd Moellmann <gerd@gnu.org>
6243
6244 * bytecode.c (Fbyte_code) <BinsertN, Bcall>: Do the
6245 BEFORE_POTENTIAL_GC before DISCARD.
6246
4015b3c0
GM
62471999-11-07 Gerd Moellmann <gerd@gnu.org>
6248
033a5fa3
GM
6249 * alloc.c (Fgarbage_collect): Call unmark_byte_stack.
6250
6251 * lisp.h: Add prototype for unmark_byte_stack.
6252
6253 * bytecode.c (mark_byte_stack): Use XMARKBIT and XMARK.
6254 (unmark_byte_stack): Renamed from relocate_byte_pcs. Use
6255 XUNMARK.
6256
55b064bd
GM
6257 * xdisp.c (resize_mini_window): Fix computation of needed
6258 mini-window height.
6259
6260 * alloc.c, buffer.c, editfns.c, xdisp.c: Remove conditional
6261 compilation on USE_TEXT_PROPERTIES.
01e9b9df 6262
4015b3c0 6263 * Fbyte_code: Use block statements in cases and declare v1 and v2
60af03f1 6264 locally there. Rearrange case statements so that those most
4015b3c0
GM
6265 frequently executed come first. Avoid goto's in frequently
6266 executed cases.
6267
fe512f27
GM
62681999-11-05 Gerd Moellmann <gerd@gnu.org>
6269
dd59e217
GM
6270 * bytecode.c (Fbyte_code): Use BEFORE_POTENTIAL_GC and
6271 AFTER_POTENTIAL_GC around internal_catch.
6272
bcf28080
GM
6273 * alloc.c (Fgarbage_collect): Call mark_byte_stack and
6274 relocate_byte_pcs.
6275 (init_alloc_once, init_alloc): Set byte_stack_list to null.
6276
6277 * eval.c (struct catchtag): Add member byte_stack.
6278 (internal_catch, Fcondition_case, internal_condition_case)
dd59e217 6279 (internal_condition_case_1): Save value of byte_stack_list in
bcf28080
GM
6280 catchtag.
6281 (unwind_to_catch): Restore byte_stack_list from catchtag.
6282
6283 * lisp.h: Add prototypes for new functions in bytecode.c.
6284 Add extern declaration for byte_stack_list.
6285
6286 * bytecode.c (struct byte_stack): New.
6287 (byte_stack_list, mark_byte_stack, relocate_byte_pcs): New
6288 (BEFORE_POTENTIAL_GC, AFTER_POTENTIAL_GC): New.
6289 (FETCH, PUSH, POP, DISCARD, TOP, MAYBE_GC): Rewritten.
6290 (HANDLE_RELOCATION): Removed.
6291 (Fbyte_code): Use byte_stack structures.
6292
4d59c34c
GM
6293 * filelock.c (Ffile_locked_p): Make FILENAME a required argument.
6294
fe512f27
GM
6295 * buffer.c (syms_of_buffer): Extend documentation of
6296 mode-line-format.
6297
60b64cd6
GM
62981999-11-04 Gerd Moellmann <gerd@gnu.org>
6299
6300 * editfns.c (Fdelete_field): Renamed from Ferase_field.
6301
6302 * minibuf.c (do_completion, Fminibuffer_complete_word): Use
6303 Ferase_field instead of Fdelete_field.
6304
b51b619b
GM
63051999-11-03 Gerd Moellmann <gerd@gnu.org>
6306
6307 * dispnew.c (Finternal_show_cursor): Change it to set the
6308 cursor on/off, not toggle its state.
6309 (Finternal_show_cursor_p): New.
6310 (syms_of_display): Defsubr Sinternal_show_cursor_p.
6311
5865af0d
DL
63121999-11-03 Dave Love <fx@gnu.org>
6313
6314 * charset.c (split_non_ascii_string): Define return value.
6315
82a700f3
GM
63161999-11-03 Gerd Moellmann <gerd@gnu.org>
6317
edfef199
GM
6318 * minibuf.c (string_to_object): New.
6319 (read_minibuf_noninteractive): New.
6320 (read_minibuf): Call read_minibuf_noninteractive if
6321 noninteractive. Use string_to_object.
6322
82a700f3
GM
6323 * doc.c (Fdocumentation_property): Fix bug bypassing UNGCPRO.
6324
b5540f0d
DL
63251999-11-02 Dave Love <fx@gnu.org>
6326
e69dcd60
DL
6327 * gnu-linux.h: Use SIGCHLD, not SIGCLD (not in glibc 2.1).
6328
827a1788
DL
6329 * process.c: Define _GNU_SOURCE before config.h to get strsignal
6330 declared with glibc2.
b5540f0d 6331
a69a6e61
GM
63321999-11-02 Gerd Moellmann <gerd@gnu.org>
6333
6334 * lisp.h (QUIT): Give it statement form.
6335
87e21fbd
DL
63361999-11-02 Dave Love <fx@gnu.org>
6337
6338 * eval.c (init_eval): Conditionalize declaration of gcpro_level.
6339
1b335865
GM
63401999-11-02 Gerd Moellmann <gerd@gnu.org>
6341
9fb5e03d
GM
6342 * xfns.c (QCuser_data): New.
6343 (syms_of_xfns): Initialize QCuser_data.
6344 (parse_image_spec): Ignore :user-data DATA properties.
6345
1b335865
GM
6346 * xdisp.c (display_line): Set charpos of first glyph in blank
6347 lines not corresponding to any text to -1, even if no glyphs are
6348 filled in in that line.
6349
e76f1c44
GM
63501999-11-01 Gerd Moellmann <gerd@gnu.org>
6351
427ec082 6352 * xfns.c (png_load) [PNG_READ_sRGB_SUPPORTED]: Put code using
36fcd3d9
GM
6353 png_get_sRGB in #ifdef.
6354
111259b4
GM
6355 * dispnew.c (Finternal_show_cursor): Renamed from Fshow_cursor.
6356 (syms_of_display): Use the new name.
6357
dd5c96e8
GM
6358 * textprop.c (verify_interval_modification): Signal text-read-only
6359 instead of calling error.
6360
db8878fb
GM
6361 * data.c (Qtext_read_only): New built-in error.
6362 (syms_of_data): Initialize it.
6363
6364 * lisp.h: Add extern declaration for Qtext_read_only.
6365
e76f1c44
GM
6366 * syntax.c: Remove whitespace after open or in front of closing
6367 parentheses.
6368
83c8f461 63691999-11-01 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
6370
6371 * Makefile.in (w16select.o, sound.o): Don't depend on lisp.h.
6372
7843e09c
GM
63731999-10-31 Gerd Moellmann <gerd@gnu.org>
6374
575ed805
GM
6375 * xdisp.c (resize_mini_window): Compute needed height differently.
6376
7843e09c
GM
6377 * fns.c (Flength): Unroll loop over lists.
6378
6379 * xdisp.c (append_space): Return non-zero if space was appended.
6380 (display_line): Set charpos of first glyph to -1 only if that
6381 glyph is the space added by append_glyph.
6382
83c8f461 63831999-10-30 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
6384
6385 * print.c (strout): Consider `noninteractive' and use stdout
6386 only when PRINTCHARFUN is t.
6387
6388 * lisp.h (struct gcpro) [DEBUG_GCPRO]: New field `level'.
6389 (gcpro_level): Declare it extern.
6390 [DEBUG_GCPRO] (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5):
6391 Alternate definitions that set `level' and increment `gcpro_level'.
6392 [DEBUG_GCPRO] (UNGCPRO): Alternate definition that checks gcpro_level.
6393
6394 * eval.c [DEBUG_GCPRO] (gcpro_level): New variable.
6395 (init_eval) [DEBUG_GCPRO]: Initialize it.
6396 (unwind_to_catch) [DEBUG_GCPRO]: Set gcpro_level
6397 from remaining gcprolist.
6398
3636f7a3
KH
63991999-10-29 Kenichi Handa <handa@etl.go.jp>
6400
6401 * coding.c (code_convert_region): Update `dst' correctly.
6402
a2ad7096
GM
64031999-10-28 Gerd Moellmann <gerd@gnu.org>
6404
6405 * fns.c (Fmemq, Fassq, Frassq, assq_no_quit, Fassoc)
6406 (Frassoc): Rewritten.
6407
1e3196e8
GM
64081999-10-27 Noah Friedman <friedman@splode.com>
6409
6410 * s/gnu-linux.h [HAVE_DEV_PTMX]: Redefine FIRST_PTY_LETTER to 'z'.
6411 Define PTY_NAME_SPRINTF.
6412 Redefine PTY_TTY_NAME_SPRINTF.
6413 * config.in: Add undef for HAVE_DEV_PTMX.
6414
83c8f461 64151999-10-26 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
6416
6417 * regex.c (POP_FAILURE_POINT): Use failure_id.integer
6418 as arg to DEBUG_POP and DEBUG_PRINT.
6419
83c8f461 64201999-10-27 Richard M. Stallman <rms@gnu.org>
17dbfaad
GM
6421
6422 * data.c (Qad_activate_internal): Renamed from Qad_activate.
6423 (Ffset): Call Qad_activate_internal.
6424 (syms_of_data): Initialize Qad_activate_internal.
6425
26922151
GM
64261999-10-27 Gerd Moellmann <gerd@gnu.org>
6427
6428 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing if
6429 Vterminal_frame is selected and Vwindow_system is non-nil.
6430
67a5596f
GM
64311999-10-26 Gerd Moellmann <gerd@gnu.org>
6432
2bea706b
GM
6433 * xdisp.c (echo_area_display): Put previous change in #if 0.
6434
67a5596f
GM
6435 * emacs.c (standard_args): Add `file' as synonym for `visit',
6436 `execute' as synonym for `eval'.
6437 (main): Add new options to usage message.
6438
81dc5de5
GM
64391999-10-25 Gerd Moellmann <gerd@gnu.org>
6440
6441 * data.c (Qhash_table): New.
6442 (Ftype_of): Return it for hash tables.
6443 (syms_of_data): Initialize Qhash_table.
6444
83c8f461 64451999-10-25 Richard M. Stallman <rms@gnu.org>
bd3c545d
GM
6446
6447 * regex.c (POP_FAILURE_POINT): Extract failure_id as an integer.
6448
66e4690f 64491999-10-24 Ken Raeburn <raeburn@gnu.org>
3a7093d8 6450
7539e11f
KR
6451 * alloc.c: Undef HIDE_LISP_IMPLEMENTATION before including
6452 lisp.h.
6453
6454 * buffer.c (Fbuffer_list, Fget_file_buffer, get_truename_buffer,
6455 Fbuffer_local_variables, Fother_buffer, record_buffer,
6456 set_buffer_internal_1, Fbury_buffer, Fkill_all_local_variables,
6457 swap_out_buffer_local_variables, overlays_at, overlays_in,
6458 overlay_touches_p, overlay_strings, recenter_overlay_lists,
6459 fix_overlays_in_range, fix_overlays_before, Foverlay_get,
6460 Foverlay_put, report_overlay_modification, evaporate_overlays):
6461 Use XCAR, XCDR, and XFLOAT_DATA instead of explicit member
6462 references.
6463 * data.c (Fcar, Fcar_safe, Fcdr, Fcdr_safe, Fsetcar, Fsetcdr,
6464 swap_in_symval_forwarding, set_internal, default_value,
6465 Fset_default, Fmake_variable_buffer_local, Fmake_local_variable,
6466 Fmake_variable_frame_local, Flocal_variable_p,
6467 Flocal_variable_if_set_p, arithcompare, Fzerop, cons_to_long,
6468 Fnumber_to_string, float_arith_driver, Fadd1, Fsub1): Likewise.
6469 * dispnew.c (Fframe_or_buffer_changed_p): Likewise.
6470 * emacs.c (main): Likewise.
6471 * fontset.c (fs_load_font, fs_register_fontset,
6472 CACHED_FONTSET_NAME, CACHED_FONTSET_REGEX, Fquery_fontset,
6473 Fnew_fontset, Fset_fontset_font): Likewise.
6474 * frame.c (do_switch_frame, next_frame, prev_frame,
6475 other_visible_frames, Fdelete_frame, Fvisible_frame_list):
6476 Likewise.
6477 * keyboard.c (read_char, help_char_p, event_to_kboard,
6478 kbd_buffer_get_event, timer_start_idle, timer_check,
6479 make_lispy_event, apply_modifiers, reorder_modifiers,
6480 Fevent_convert_list, lucid_event_type_list_p, menu_bar_items,
6481 menu_bar_one_keymap, menu_item_eval_property_1, parse_menu_item,
6482 tool_bar_items, read_char_x_menu_prompt, read_key_sequence,
6483 Fcommand_execute, Fexecute_extended_command): Likewise.
6484 * minibuf.c (read_minibuf, get_minibuffer, Ftry_completion,
6485 Fall_completions): Likewise.
6486 * window.c (Fset_window_margins): Likewise.
6487
6488 * callint.c (quotify_args): Don't explicitly use struct
6489 Lisp_Cons, use Lisp_Object and XCAR/XCDR instead.
6490
3a7093d8
KR
6491 * s/netbsd.h (HAVE_GETLOADAVG): Define as 1.
6492 (UNEXEC, START_FILES, LIB_STANDARD, LIB_GCC): Define ELF versions,
6493 if __ELF__ is defined.
6494
2a3d7146
GM
64951999-10-24 Gerd Moellmann <gerd@gnu.org>
6496
6497 * window.c (Fnext_window): Add a QUIT in the loop.
6498
8ac52782
GM
64991999-10-23 Gerd Moellmann <gerd@gnu.org>
6500
427ec082 6501 * Makefile.in (bootstrap, bootstrap-emacs, bootstrap-temacs):
8ac52782
GM
6502 New targets.
6503
05f0d15a
DL
65041999-10-22 Dave Love <fx@gnu.org>
6505
6506 * emacs.c (main): Enable profiling conditional on __linux also.
6507
882fb0e6
GM
65081999-10-20 Gerd Moellmann <gerd@gnu.org>
6509
6510 * xrdb.c (x_load_resources): Set default resources for resource
6511 classes instead of for the specific Emacs.
6512
b5f5bc31
GM
65131999-10-19 Gerd Moellmann <gerd@gnu.org>
6514
66f4dd69
GM
6515 * s/freebsd.h (HAVE_GETLOADAVG): Define as 1 because config.h
6516 defines it that way.
427ec082 6517
b5f5bc31
GM
6518 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing
6519 if selected_frame is equal to Vterminal_frame.
6520
68c45bf0 65211999-10-19 Paul Eggert <eggert@twinsun.com>
427ec082 6522
68c45bf0 6523 Add support for large files, 64-bit Solaris, system locale codings.
427ec082 6524
68c45bf0
PE
6525 * Makefile.in (emacs): Set the LC_ALL environment variable to "C"
6526 when dumping, so that the dumped Emacs doesn't have stray locale info.
6527 (dired.o): Depend on systime.h.
6528 (editfns.o): Depend on coding.h.
6529
6530 * alloc.c, buffer.c, callproc.c, ccl.c, charset.c, coding.c, data.c,
6531 dispnew.c, editfns.c, emacs.c, filelock.c, floatfns.c, hftctl.c,
6532 keyboard.c, process.c, sysdep.c, unexelf.c, unexhp9k800.c,
6533 unexsunos4.c, vmsfns.c, vmsgmalloc.c, w32faces.c, w32menu.c, w32term.c,
6534 w32xfns.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
6535 Include <config.h> before any system include files.
6536
6537 * alloc.c, buffer.c, ccl.c, data.c, editfns.c, emacs.c, eval.c,
6538 fileio.c, filelock.c, frame.c, insdel.c, keymap.c, lread.c,
6539 m/alpha.h, print.c, search.c, sysdep.c, xdisp.c, xfaces.c, xfns.c,
6540 xmenu.c, xterm.c:
6541 Do not include <stdlib.h>, as <config.h> does this now.
6542
6543 * callproc.c (Fcall_process):
6544 Synchronize messages locale before invoking strerror.
6545 Decode resulting string with locale-coding-system.
6546
6547 * coding.c (Vlocale_coding_system): New var.
6548 (syms_of_coding): Adjust to above change.
6549 (emacs_strerror): New function.
6550
6551 * coding.h (emacs_strerror, Vlocale_coding_system): New decls.
427ec082 6552
68c45bf0
PE
6553 * config.in (HAVE_STDIO_EXT_H, HAVE_TM_GMTOFF, HAVE___FPENDING,
6554 HAVE_FTELLO, HAVE_GETLOADAVG, HAVE_MBLEN, HAVE_MBRLEN,
6555 HAVE_STRSIGNAL): New macros.
6556 (BITS_PER_LONG): Default to 64 if _LP64 is defined.
6557 <stdlib.h>: Include if HAVE_STDLIB_H is defined and NOT_C_CODE isn't.
6558
6559 * dired.c: Include "systime.h".
6560 (Ffile_attributes): Do not cast s.st_size to int; this loses
6561 information if int is 32 bits but st_size and EMACS_INT are larger.
6562 Treat large device numbers like large inode numbers.
6563
6564 * dispnew.c (PENDING_OUTPUT_COUNT): Use __fpending if available.
6565
6566 * editfns.c: Include coding.h.
6567 (emacs_strftime): Remove decl.
6568 (emacs_strftimeu): New decl.
6569 (emacs_memftimeu): Renamed from emacs_memftime; new arg UT.
6570 Use emacs_strftimeu instead of emacs_strftime.
6571 (Fformat_time_string): Convert format string using
6572 Vlocale_coding_system, and convert result back. Synchronize time
6573 locale before invoking lower level function. Invoke
6574 emacs_memftimeu, passing ut, instead of emacs_memftime.
427ec082 6575
68c45bf0
PE
6576 * emacs.c: Include <locale.h> if HAVE_SETLOCALE is defined.
6577 (Vmessages_locale, Vprevious_messages_locale, Vtime_locale,
6578 Vprevious_time_locale): New variables.
6579 (main): Invoke setlocale early, so that initial error messages are
6580 localized properly. But skip locale-setting if LC_ALL is "C".
6581 Fix up locale when it's safe to do so.
6582 (fixup_locale): Moved here from xterm.c.
6583 (synchronize_locale, synchronize_time_locale,
6584 synchronize_messages_locale): New functions.
6585 (syms_of_emacs): Accommodate above changes.
6586
6587 * fileio.c (report_file_error): Convert strerror output according
6588 to Vlocale_coding_system.
6589 (Finsert_file_contents): Check for arithmetic overflow in
6590 computations that depend on file size. Report IO errors
6591 with emacs_strerror, not strerror.
6592
6593 * fns.c (Fgethash): Declare dflt parameter.
6594
6595 * gmalloc.c: Do not define const to nothing if HAVE_CONFIG_H
6596 is defined; that's config.h's job.
6597
6598 * lisp.h (EMACS_INT, BITS_PER_EMACS_INT, EMACS_UINT): If _LP64,
6599 default these values to long, BITS_PER_LONG, and unsigned long.
6600 (VALBITS, MARKBIT, XINT): Do not assume 32-bit EMACS_INT.
6601 (PNTR_COMPARISON_TYPE): Default to EMACS_UINT, not to unsigned int.
6602 (code_convert_string_norecord, fixup_locale,
6603 synchronize_messages_locale, synchronize_time_locale,
6604 emacs_open, emacs_close, emacs_read, emacs_write): New decls.
6605 All Emacs callers of open, close, read, write changed to use
6606 emacs_open, emacs_close, emacs_read, emacs_write.
6607
6608 * lread.c (file_offset, file_tell): New macros. All uses of ftell
6609 changed to file_tell.
6610 (saved_doc_string_position, prev_saved_doc_string_position): Now
6611 of type file_offset.
6612 (init_lread): Do not fix locale here; fixup_locale now does this.
6613
6614 * m/amdahl.h, s/usg5-4.h:
6615 (NSIG): Remove.
6616 (NSIG_MINIMUM): New macro.
6617
6618 * m/cydra5.h, m/dpx2.h, m/mips.h, m/pfa50.h, m/sps7.h, m/stride.h,
6619 m/ustation.h, s/gnu-linux.h, s/hpux.h, s/iris3-5.h, s/iris3-6.h,
6620 s/umips.h, s/usg5-4.h:
6621 (SIGIO): Do not undef.
6622 (BROKEN_SIGIO): New macro.
6623
6624 * m/ustation.h:
6625 (SIGTSTP): Do not undef.
6626 (BROKEN_SIGTSTP): New macro.
6627
6628 * s/gnu-linux.h:
6629 (SIGPOLL, SIGURG): Do not undef.
6630 (BROKEN_SIGPOLL, BROKEN_SIGURG): New macros.
6631
6632 * s/ptx4.h:
6633 (SIGINFO): Do not undef.
6634 (BROKEN_SIGINFO): New macros.
427ec082 6635
68c45bf0
PE
6636 * m/delta.h, s/ptx.h, s/template.h: Doc fix.
6637
6638 * mktime.c, strftime.c: Update to glibc 2.1.2 version, with
6639 some Emacs-related changes merged.
6640
6641 * print.c (float_to_string): Prepend "-" to representation of a
6642 NaN if the NaN is negative.
6643
6644 * process.c (sys_siglist): Omit if HAVE_STRSIGNAL.
6645 (wait_reading_process_input): Use emacs_strerror, not strerror.
427ec082 6646
68c45bf0
PE
6647 * process.c (status_message, sigchld_handler): Synchronize locale,
6648 then use strsignal istead of sys_siglist.
6649 * w32proc.c (sys_wait): Likewise.
427ec082 6650
68c45bf0
PE
6651 * s/aix3-1.h, s/bsd4-1.h, s/dgux.h, s/gnu-linux.h, s/hiuxmpp.h,
6652 s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/osf1.h, s/rtu.h,
6653 s/sunos4-1.h, s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h,
6654 s/usg5-2.h, s/usg5-3.h, s/xenix.h:
6655 (open, close, read, write, INTERRUPTIBLE_OPEN,
6656 INTERRUPTIBLE_CLOSE, INTERRUPTIBLE_IO): Remove.
6657
6658 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): New macros.
6659
6660 * sysdep.c (sys_read, sys_write, read, write, sys_close, close,
6661 sys_open, open): Remove.
6662 (emacs_open, emacs_close, emacs_read, emacs_write): Always define;
6663 the old INTERRUPTIBLE_OPEN, INTERRUPTIBLE_CLOSE, and INTERRUPTIBLE_IO
6664 macros are no longer used.
6665 (emacs_open): Renamed from sys_open. Merge BSD4_1 version.
6666 (emacs_close): Renamed from sys_close.
6667 (emacs_read): Renamed from sys_read.
6668 (emacs_write): Renamed from sys_write.
6669 (sys_siglist): Do not declare if HAVE_STRSIGNAL.
6670 (dup2): Do not print error on failure; the real dup2 doesn't.
6671 (strsignal): New function, defined if !HAVE_STRSIGNAL.
6672
6673 * syssignal.h (SIGINFO): Undef if defined and if BROKEN_SIGINFO
6674 is defined.
6675 (SIGIO, SIGPOLL, SIGTSTP, SIGURG): Likewise.
6676 (NSIG): If less than NSIG_MINIMUM, define to NSIG_MINIMUM.
6677 (strsignal): Declare if !HAVE_STRSIGNAL.
6678
6679 * unexelf.c (ElfBitsW, ELFSIZE, ElfExpandBitsW): New macros.
6680 (ElfW): Define in terms of ElfExpandBitsW.
6681
6682 * w32proc.c (sys_siglist): Remove decl.
6683
6684 * xdisp.c (decode_mode_spec): 3rd arg is int, not char, to comply
6685 with ANSI C.
6686 (display_string): Declare face_string_pos arg.
6687
6688 * xfns.c (Fx_show_tip): Declare timeout param.
6689
6690 * xterm.c: No need to include locale.h.
6691 (x_alloc_lighter_color, x_setup_relief_color):
6692 Pass arg as double, not float, for compatibility with ANSI C.
6693 (fixup_locale): Move to emacs.c.
6694 (x_term_init): Do not setlocale or fixup locale; the main program
6695 does this now.
6696
2f0b74ea
DL
66971999-10-18 Dave Love <fx@gnu.org>
6698
6699 * doc.c (Fdocumentation_property): Gcpro `tem'.
6700
471aa4a0
KH
67011999-10-18 Kenichi Handa <handa@etl.go.jp>
6702
6703 * lread.c (Fload): Calculate bytes of filename correctly.
6704 (openp): Likewise.
6705
aca2020b
KH
67061999-10-18 Keisuke Nishida <kxn30@po.cwru.edu>
6707
6708 * print.c (print_preprocess): In case print-circle is nil,
6709 add OBJ to Vprint_number_table only when OBJ is a symbol.
6710
1f5fe392 67111999-10-18 Kenichi Handa <handa@etl.go.jp>
b843d1ae
KH
6712
6713 * coding.c (code_convert_string): Add record_unwind_protect to
6714 assure setting inhibit_pre_post_conversion back to zero. Take
6715 care of the multibyteness of the working buffer.
6716
6717 * coding.c (inhibit_pre_post_conversion): New variable.
6718 (setup_coding_system): If inhibit_pre_post_conversion is nonzero,
6719 ignore post-read-conversion and pre-write-conversion property of
6720 the coding system.
6721 (code_convert_region_unwind): New function.
6722 (code_convert_region): Set inhibit_pre_post_conversion to 1 while
6723 running pre-write-conversion and post-read-conversion.
6724 (code_convert_string): Likewise.
6725
cd876a91
GM
67261999-10-17 Miles Bader <miles@gnu.org>
6727
6728 * editfns.c: Doc fix.
6729
67301999-10-17 Miles Bader <miles@gnu.org>
6731
6732 * editfns.c (Fconstrain_to_field): Make sure we don't violate the
6733 argument preconditions of find_before_next_newline in the case
6734 where both ONLY_IN_LINE and ESCAPE_FROM_EDGE are set and OLD_POS
6735 was indeed at the edge.
6736
67371999-10-17 Miles Bader <miles@gnu.org>
6738
6739 * minibuf.c (Fminibuffer_complete_and_exit): Supply value for new
6740 ESCAPE_FROM_EDGE parameter to Ffield_beginning.
6741
6742 * editfns.c (text_property_eq, text_property_stickiness): Don't
6743 use initializers for auto variables of type Lisp_Object.
6744 (find_field): Likewise. Use braces around nested ifs.
6745 (Fline_end_position): Store the raw eol in a variable, so that the
6746 final expression doesn't look so ugly.
6747 (Fconstrain_to_field): Doc fix.
6748 (preceding_pos): Renamed from `preceeding_pos'.
6749 (text_property_stickiness, find_field): Call preceding_pos,
6750 not preceeding_pos.
6751
67521999-10-17 Miles Bader <miles@gnu.org>
6753
6754 * editfns.c (Ffield_string_no_properties): New function.
6755 (text_property_stickiness, preceeding_pos): New functions.
6756 (Ffield_string): Remove PROPS parameter.
6757 (find_field): Add MERGE_AT_BOUNDARY parameter.
6758 Rewrite to use stickiness of `field' property to resolve
6759 ambiguous cases.
6760 (Ffield_beginning, Ffield_end): Add ESCAPE_FROM_EDGE parameter.
6761 (Fconstrain_to_field): Likewise.
6762 (syms_of_editfns): Init Sfield_string_no_properties.
427ec082 6763 (Ffield_string, Ferase_field, Ffield_end):
cd876a91
GM
6764 Supply new MERGE_AT_BOUNDARY argument to find_field.
6765 (Fline_beginning_position, Fline_end_position): Supply new
6766 ESCAPE_FROM_EDGE parameter to Fconstrain_to_field.
6767 Pass a value of Qt for the ONLY_IN_LINE argument to
6768 Fconstrain_to_field (only matters if N != 1).
6769 * syntax.c (Fforward_word): Supply new ESCAPE_FROM_EDGE parameter
6770 to Fconstrain_to_field.
6771
6772 * minibuf.c (Fminibuffer_complete_word): Use
6773 Ffield_beginning to find the prompt end.
6774
67751999-10-17 Miles Bader <miles@gnu.org>
6776
6777 * editfns.c (Fconstrain_to_field): Add get/set-current-point
6778 behavior when NEW_POS is nil.
6779 (find_field): Use XSETFASTINT instead of make_number.
6780 * minibuf.c (Fminibuffer_complete_and_exit): Test for an empty
6781 input string by seeing where the field begins, instead of
6782 looking at text-properties.
6783
67841999-10-17 Miles Bader <miles@gnu.org>
6785
6786 * editfns.c (Qfield): New variable.
6787 (find_field, Ferase_field, Ffield_string,
6788 Ffield_beginning, Ffield_end, Fconstrain_to_field): New functions.
6789 (Fline_beginning_position, Fline_end_position): Constrain to any field.
6790 (make_buffer_string_both): Remove minibuffer-prompt hack.
6791 (syms_of_editfns): Initialize Qfield, and subr entries for
6792 field functions above.
6793 * minibuf.c (read_minibuf): Don't save minibuffer prompt length on
6794 minibuf_save_list.
6795 Don't initialize minibuffer prompt length.
6796 Wrap prompt text-properties around the entire prompt.
6797 Add 'prompt text-property to prompt.
6798 Get final value with Ffield_string instead of make_buffer_string.
6799 (read_minibuf_unwind): Don't restore minibuffer prompt length from
6800 minibuf_save_list.
6801 (do_completion): Get minibuffer input with Ffield_string
6802 instead of Fbuffer_string.
6803 Erase minibuffer input with Ferase_field instead of erase_buffer.
6804 (Fminibuffer_complete_and_exit): Likewise.
6805 Test whether buffer is empty by looking for the 'prompt text
6806 property at the end.
6807 Set prompt length by looking for the end of the prompt text property,
6808 and save prompt length for later use (since there is no longer a
6809 buffer variable to get it from).
6810 (Fminibuffer_prompt_width, Fminibuffer_prompt_end): Functions removed.
6811 (syms_of_minibuf): Remove initializations of
6812 Sminibuffer_prompt_width and Sminibuffer_prompt_end.
6813 * buffer.h (struct buffer): Remove prompt_end_charpos field.
427ec082 6814 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer, Fkill_buffer):
cd876a91
GM
6815 Don't initialize prompt_end_charpos field.
6816 * syntax.c (Fforward_word): Likewise.
6817 Constrain to any field.
6818
3f6f7508
GM
68191999-10-16 Gerd Moellmann <gerd@gnu.org>
6820
6821 * window.c (enum save_restore_action): New.
6822 (save_restore_orig_size): Change parameter list. Add
6823 functionality to check for valid orig_top and orig_height members
6824 in a window tree.
6825 (grow_mini_window): Call save_restore_orig_size with new parameter
6826 list.
6827 (shrink_mini_window): Restore old window sizes only if old
6828 size information is valid in all windows in a window tree.
427ec082 6829
06482119
GM
68301999-10-15 Gerd Moellmann <gerd@gnu.org>
6831
2710454d
GM
6832 * xmenu.c (set_frame_menubar): Don't call
6833 x_set_menu_resources_from_menu_face here.
6834 (update_frame_menubar): Call x_set_menu_resources_from_menu_face.
6835
06482119
GM
6836 * xfns.c (gif_load): Fix handling of interlaced GIFs.
6837
17fa2837
DL
68381999-10-14 Dave Love <fx@gnu.org>
6839
6840 * xdisp.c (handle_fontified_prop): GCPRO `pos'.
6841
45f93416
GM
68421999-10-14 Gerd Moellmann <gerd@gnu.org>
6843
6844 * process.c (Fopen_network_stream): Don't loop if gethostbyname
6845 fails and h_errno is TRY_AGAIN.
6846
c765b723
DL
68471999-10-13 Dave Love <fx@gnu.org>
6848
6849 * filelock.c (lock_file): Move gcpro of `fn'.
6850
dace7f4e
GM
68511999-10-10 Gerd Moellmann <gerd@gnu.org>
6852
6853 * keyboard.c (auto-save-interval): Fix documentation.
427ec082 6854
83c8f461 68551999-10-09 Richard M. Stallman <rms@gnu.org>
73fb36f1
RS
6856
6857 * print.c (print): When removing objects from Vprint_number_table,
6858 only scan the newly added objects.
6859 (print_preprocess): If OBJ is a gensym, and print-continuous-numbering,
6860 unconditionally force it to stay in the table.
6861
85177c86
GM
68621999-10-09 Gerd Moellmann <gerd@gnu.org>
6863
6864 * xfns.c (prepare_image_for_display): Don't try to load image if
6865 loading it failed before.
6866 (lookup_image, prepare_image_for_display): Remember if loading the
6867 image failed.
6868 (xpm_load): Add missing UNBLOCK_INPUT.
6869
6870 * dispextern.h (struct image): New member load_failed_p.
6871
11e4de5d
SM
68721999-10-08 Stefan Monnier <monnier@cs.yale.edu>
6873
f28eba7b 6874 * fileio.c (Fmake_temp_name): Add a reference to `make-temp-file'
11e4de5d
SM
6875 in the docstring.
6876
f1da8f06
GM
68771999-10-08 Gerd Moellmann <gerd@gnu.org>
6878
6879 * xterm.c (XTread_socket) <ClientMessage, WM_TAKE_FOCUS>:
6880 Don't call XSetInputFocus because that can generate additional
6881 FocusIn events.
427ec082 6882
c37bbd4f
GM
68831999-10-07 Jeffrey C Honig <jch@bsdi.com>
6884
6885 * bsdos4.h [HAVE_LIBNCURSES]: Define TERMINFO and LIBS_TERMCAP.
6886
83c8f461 68871999-10-07 Richard M. Stallman <rms@gnu.org>
78cc5c64
GM
6888
6889 * process.c (wait_reading_process_input): When trying to suck
6890 input from one process, for accept-process-output,
6891 exit that loop if we get EAGAIN or EWOULDBLOCK.
6892
577d9e2f
GM
68931999-10-07 Gerd Moellmann <gerd@gnu.org>
6894
6895 * xfaces.c (Qbitmap_spec_p): Replaces Qpixmap_spec_p.
6896 (Fbitmap_spec_p): Replaces Fpixmap_spec_p.
6897 (load_pixmap): Use Fbitmap_spec_p and Qbitmap_spec_p instead of
6898 Fpixmap_spec_p and Qpixmap_spec_p.
6899 (load_face_colors, check_lface_attrs,
6900 merge_face_vector_with_property,
6901 Finternal_set_lisp_face_attribute): Use Fbitmap_spec_p.
6902 (syms_of_xfaces): Initialize Qbitmap_spec_p, defsubr
6903 Fbitmap_spec_p.
6904
f5737ad2
GM
69051999-10-07 Gerd Moellmann <gerd@gnu.org>
6906
6907 * xdisp.c (display_menu_bar): Use MENU_FACE_ID instead of
6908 MODE_LINE_FACE_ID.
6909
6910 * xfaces.c (toplevel) [USE_MOTIF]: Include some Motif headers.
6911 (struct x_resources) [USE_X_TOOLKIT]: New.
6912 (xm_apply_resources, xm_set_menu_resources_from_menu_face)
6913 [USE_MOTIF]: New.
6914 (xl_apply_resources, xl_set_menu_resources_from_menu_face)
6915 [USE_LUCID]: New.
6916 (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]: New.
6917 (Qmenu): New.
6918 (syms_of_xfaces): Initialize Qmenu.
6919 (realize_basic_faces): Realize face `menu'.
6920 (resolve_face_name): New.
6921 (lface_from_face_name): Use it.
6922 (Finternal_set_lisp_face_attribute): Ditto.
6923 (Fpixmap_spec_p): Rewritten. Extend doc string.
6924
6925 * xmenu.c (set_frame_menubar, xmenu_show): Call
6926 x_set_menu_resources_from_menu_face.
6927
6928 * dispextern.h (enum face_id): Add MENU_FACE_ID.
6929 (toplevel): Include X11/Intrinsic.h.
6930
6a1aa823
DL
69311999-10-03 Ken'ichi Handa <handa@gnu.org>
6932
6933 * coding.c (DECODE_CHARACTER_ASCII): Decode ASCII invocated to GR
6934 correctly.
6935
26901792
DL
69361999-09-30 Kenichi Handa <handa@etl.go.jp>
6937
6938 * category.c (modify_lower_category_set): Set default value of
6939 TABLE correctly.
6940
6941 * minibuf.c (Fminibuffer_complete_word): Calculate string byte
6942 size correctly.
6943
69441999-09-29 Gerd Moellmann <gerd@gnu.org>
6945
6946 * editfns.c (Fpropertize): Renamed from Fproperties.
6947
69481999-09-29 Gerd Moellmann <gerd@gnu.org>
6949
6950 * xdisp.c (resize_mini_window): Do nothing if frame is an X
6951 frame that hasn't been initialized yet.
6952
83c8f461 69531999-09-28 Richard M. Stallman <rms@gnu.org>
a04f1a93
PR
6954
6955 * keymap.c (Fsingle_key_description): Make tem big enough.
6956 (describe_buffer_bindings): Make buf big enough.
6957
83c8f461 69581999-09-27 Richard M. Stallman <rms@gnu.org>
d177c583
PR
6959
6960 * intervals.c (get_local_map): Use indirect_function,
6961 not Findirect_function.
6962
26901792
DL
69631999-09-27 Dave Love <fx@gnu.org>
6964
6965 * cm.h: Remove unneeded declaration of ospeed.
6966
69671999-09-26 Gerd Moellmann <gerd@gnu.org>
6968
6969 * lisp.h (toplevel): Add prototype for
6970 next_single_char_property_change.
6971
6972 * textprop.c (next_single_char_property_change): New.
6973
6974 * xdisp.c (display_prop_end, invisible_text_between_p): Use
6975 next_single_char_property_change.
6976
69771999-09-25 Gerd Moellmann <gerd@gnu.org>
6978
6979 * editfns.c (Fproperties): New.
6980 (syms_of_editfns): Defsubr it.
6981
6982 * xfns.c (lookup_image): Set image's timestamp because it's
6983 used when we look it up.
6984
69851999-09-23 Gerd Moellmann <gerd@gnu.org>
6986
6987 * window.c (enlarge_window): Add window parameter instead of using
6988 selected_window.
6989 (Fdisplay_buffer): Call it with window parameter instead of
6990 setting selected_window.
6991 (Fenlarge_window, Fshrink_window): Ditto.
6992 (shrink_mini_window): If there is no recorded height and position
6993 info, resize mini-window to height 1.
6994
6995 * xfns.c (image_error): Use add_to_log.
6996
6997 * xfaces.c (load_pixmap): Call add_to_log without frame parameter.
6998 (load_face_font_or_fontset, load_color,
6999 merge_face_vector_with_property): Ditto.
7000
7001 * dispextern.h: Add prototype for add_to_log.
7002
7003 * xfaces.c (add_to_log): Move to xdisp.c.
7004
7005 * xdisp.c (add_to_log): Moved from xfaces.c. Remove frame
7006 parameter.
7007
70081999-09-23 Gerd Moellmann <gerd@gnu.org>
7009
7010 * xterm.c (XTread_socket) <MotionNotify>: Change #ifdef
7011 USE_X_TOOLKIT to #ifdef USE_TOOLKIT_SCROLL_BARS.
7012
7013 * xdisp.c (resize_mini_window): Use grow_mini_window and
7014 shrink_mini_window.
7015
7016 * window.c (window_min_size): Add parameter ignore_fixed_p.
7017 (change_window_height): Call window_min_size with new parameter.
7018 (shrink_window_lowest_first, save_restore_orig_size,
7019 grow_mini_window, shrink_mini_window): New.
7020 (make_window, replace_window): Initialize orig_top and
7021 orig_height.
7022 (enlarge_window): Renamed from change_window_height. Make it
7023 static.
7024 (Fdisplay_buffer, Fenlage_window, Fshrink_window): Call
7025 enlarge_window instead of change_window_height.
7026
7027 * window.h (struct window): New members orig_top, orig_height.
7028 (toplevel): Add prototypes for grow_mini_window and
7029 shrink_mini_window. Remove prototype for change_window_height.
7030
70311999-09-21 Eli Zaretskii <eliz@gnu.org>
7032
7033 * frame.c (frame_name_fnn_p): Fix previous change.
7034
70351999-09-20 Gerd Moellmann <gerd@gnu.org>
7036
7037 * minibuf.c (toplevel): Move include of stdio.h to other includes.
7038
7039 * dispnew.c (direct_output_for_insert): Cast arguments to
7040 safe_bcopy to char *.
7041
7042 * lread.c (readchar): Remove unused variables.
7043 (read_filtered_event, read1, Fmapatoms): Ditto.
7044 (toplevel): Include intervals.h.
7045
7046 * eval.c (Fsignal): Remove unused variables.
7047 (Fcommandp, do_autoload): Ditto.
7048
7049 * lisp.h: Add prototype for safe_bcopy, fatal.
7050
7051 * editfns.c (init_editfns): Remove unused variables.
7052 (Fgoto_char, Fchar_after, Fformat): Ditto.
7053 (message_text, message_length): Put in #ifndef HAVE_MENUS.
7054
7055 * data.c (find_symbol_value): Remove unused variables.
7056 (Faref, Fstring_to_number): Ditto.
7057 (toplevel): Include stdio.h.
7058 (Fnumber_to_string): Cast XINT to long for %ld.
7059
7060 * casefiddle.c (casify_object): Remove unused variables.
7061 (casify_region): Ditto.
7062
427ec082 7063 * filelock.c (get_boot_time): Put local variable used in
26901792
DL
7064 conditinally compiled section in #ifdef.
7065 (toplevel): Include stdio.h.
7066
7067 * keymap.c (Flookup_key, Faccessible_keymaps, describe_vector,
7068 keys_of_keymap, syms_of_keymap): Remove unused variables.
7069
70701999-09-20 Gerd Moellmann <gerd@gnu.org>
7071
7072 * xdisp.c (sync_frame_with_window_matrix_rows): Disable frame rows
7073 whose corresponding window rows have been disabled in
7074 try_window_id.
7075
70761999-09-20 Gerd Moellmann <gerd@gnu.org>
7077
7078 * xdisp.c (compute_window_start_on_continuation_line): Handle case
7079 that window start is out of range.
7080 (handle_display_prop, handle_single_display_prop): Replace
7081 marginal area specifications like `left-margin' with `(margin
7082 left-margin)'.
7083 (Qmargin): New.
7084 (syms_of_xdisp): Initialize Qmargin.
7085
70861999-09-19 Gerd Moellmann <gerd@gnu.org>
7087
7088 * syntax.c (update_syntax_table, find_defun_start, back_comment,
7089 describe_syntax, skip_chars): Remove unused variables.
7090 (back_comment, forw_comment): Add braces to if-statement with
7091 if-else as dependent statement.
7092
7093 * process.c (list_processes_1): Remove unused variables.
7094 (Fopen_network_stream, create_process): Add parentheses to
7095 conditional expressions.
7096 (create_process): Put declaration of sigchld in #if 0.
7097 (Fopen_network_stream): Removed unused variables.
7098 (Fopen_network_stream, wait_reading_process_input,
7099 wait_reading_process_input, send_process, send_process): Ditto.
7100 (toplevel): Add prototypes for set_waiting_for_input and
7101 keyboard_bit_set.
7102
7103 * abbrev.c (Fexpand_abbrev): Remove unused variables.
7104
7105 * textprop.c (Fset_text_properties): Remove unused variables.
7106 (text_property_list, verify_interval_modification,
7107 interval_has_all_properties): Ditto.
7108
7109 * callproc.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
7110 (Fcall_process): Remove unused variable.
7111
7112 * keyboard.c (Frecursive_edit): Remove unused variable.
7113 (command_loop_1, safe_run_hooks, kbd_buffer_get_event,
7114 timer_check, make_lispy_event, menu_bar_items,
7115 menu_bar_one_keymap, menu_bar_item, parse_menu_item,
7116 parse_tool_bar_item, read_char_x_menu_prompt, read_key_sequence,
7117 kbd_buffer_get_event, make_lispy_event, read_char_x_menu_prompt,
7118 read_key_sequence): Ditto. Fread_key_sequence,
7119 Fread_key_sequence_vector, Fsuspend_emacs): Ditto.
7120 (read_key_sequence) [GOBBLE_FIRST_EVENT]: Put local variables only
7121 used when GOBBLE_FIRST_EVENT is defined in #ifdef
7122 (Fexecute_extended_command): Cast XINT to long for %ld.
7123 (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
7124 (toplevel): Include sys/types.h.
7125
7126 * lisp.h (RETURN_UNGCPRO): Use do-while (0) idiom.
7127 (toplevel): Add prototypes for stuff_char, and
7128 code_convert_string_norecord.
7129
71301999-09-19 Gerd Moellmann <gerd@gnu.org>
7131
7132 * buffer.h: Add prototype for r_re_alloc.
7133
7134 * insdel.c (copy_text): Removed unused variables.
7135 (count_combining_after, count_combining_after, insert_1_both,
7136 insert_from_string_1, insert_from_buffer_1, check_markers): Ditto.
7137 (adjust_after_replace, replace_range): Add parentheses to logical
7138 expressions. Remove unused variables.
7139 (CHECK_BYTE_COMBINING_FOR_INSERT): Add parentheses to logical
7140 expression.
7141
7142 * alloc.c (Fgarbage_collect): Remove unused variable.
7143 (compact_strings): Add parentheses around assignments in
7144 conditional context.
7145 (toplevel): Put declaration of unused function clear_marks
7146 in #if 0 like its definition.
7147
7148 * lisp.h: Add prototype for shrink_regexp_cache,
7149 sweep_weak_hash_tables.
7150
71511999-09-19 Dave Love <fx@gnu.org>
7152
7153 * process.c (Fopen_network_stream): Use strerror, not gai_strerror.
7154
7155 * doc.c (read_bytecode_char): Declare arg.
7156
7157 * lisp.h: Declare Fcurrent_message, Fmake_temp_name,
7158 read_bytecode_char, Fx_hide_busy_cursor, getloadavg.
7159
71601999-09-18 Richard Stallman <rms@gnu.org>
7161
7162 * xdisp.c (echo_area_display): Turn off code that returned
7163 without doing anything when using a terminal frame.
7164
83c8f461 71651999-09-17 Richard M. Stallman <rms@gnu.org>
27271329
PR
7166
7167 * unexelf.c (unexec): Don't get confused by a short section
7168 just before the bss section.
7169
26901792
DL
71701999-09-16 Gerd Moellmann <gerd@gnu.org>
7171
7172 * emacs.c (main): Remove unused variables.
7173 (sort_args, Fkill_emacs, Fkill_emacs): Ditto.
7174
7175 * lisp.h: Add prototype for uninterrupt_malloc, memory_warnings,
7176 init_fileio_once, syms_of_sound, init_xfns, init_fns
7177 init_sound, check_message_stack.
7178
7179 * emacs.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
7180
7181 * intervals.c (rotate_right, rotate_left): Add braces to avoid
7182 ambiguous else warning.
7183 (split_interval_left): Remove unused variables.
7184 (previous_interval, adjust_intervals_for_deletion,
7185 set_point_both, set_point_both, set_intervals_multibyte_1): Ditto.
7186 (icount, idepth, zero_length): Move into #if 0 section below
7187 original position where these are used.
7188
7189 * buffer.h [REL_ALLOC]: Add prototypes for r_alloc and r_alloc_free.
7190
7191 * buffer.c (Fkill_buffer): Remove unused variables.
7192 (Fkill_buffer, overlays_at, overlays_in, recenter_overlay_lists,
7193 fix_overlays_in_range, Fmove_overlay, Fprevious_overlay_change,
7194 init_buffer_once, (syms_of_buffer): Ditto.
7195
7196 * xrdb.c (get_fallback): Remove unused variable.
7197 (x_load_resources): Ditto. Put local variable used for Motif only
7198 in #ifdef USE_MOTIF.
7199
72001999-09-16 Gerd Moellmann <gerd@gnu.org>
7201
7202 * minibuf.c (read_minibuf): Remove unused variables.
7203 (read_minibuf, Fread_buffer, scmp, Fcompleting_read): Ditto.
7204 (do_completion): Move assignment out of conditional context.
7205 (Fdisplay_completion_list): Add parentheses to conditional expression.
7206
7207 * cm.c (toplevel) [HAVE_TERMCAP_H]: Include termcap.h.
7208
7209 * lisp.h: Add prototype for no_switch_window.
7210
7211 * window.c (Fset_window_buffer): Remove unused variables.
7212 (Fset_window_margins): Ditto.
7213
7214 * xdisp.c (resize_mini_window): Temporarily set the selected
7215 window's or Vminibuf_scroll_window's height to "fixed" around
7216 the call the change_window_height.
7217
7218 * window.c (window_fixed_size_p): Check window's height_fixed_p
7219 flag.
7220
7221 * window.h (struct window): New member height_fixed_p.
7222
7223 * dispnew.c (direct_output_forward_char): Don't use this method
7224 if showing a message or a message was just cleared because we
7225 might need to resize the mini-window.
7226
72271999-09-16 Gerd Moellmann <gerd@gnu.org>
7228
7229 * frame.c (Fdelete_frame): Correct local variable pointing to
7230 selected frame after selecting new frame.
7231
72321999-09-15 Richard Stallman <rms@gnu.org>
7233
7234 * puresize.h (BASE_PURESIZE): Increase to 525000.
7235
7236 * filelock.c (Vtemporary_file_directory): New variable.
7237 (syms_of_filelock): Set up Lisp variable.
7238
72391999-09-15 Gerd Moellmann <gerd@gnu.org>
7240
7241 * term.c (OUTPUT_IF, OUTPUT1_IF): Use do-while.
7242 (encode_terminal_code): Remove unused variables.
7243 (turn_off_face): Ditto.
7244 (toplevel): Include termcap.h if HAVE_TERMCAP_H.
7245
7246 * dispnew.c (update_frame_line): If writing whole desired line,
7247 don't clear to end of line if already at the end.
7248
72491999-09-15 Gerd Moellmann <gerd@gnu.org>
7250
7251 * xdisp.c (resize_mini_window): Don't report changed window
7252 height if it actually hasn't changed.
7253
427ec082 7254 * widget.c (set_frame_size, EmacsFrameSetCharSize): Remove
26901792
DL
7255 unused variables.
7256 (mark_shell_size_user_specified): Put in #if 0 because not used.
7257 (create_frame_gcs): Put in #if 0 because currently unused.
7258 (first_frame_p): Ditto.
7259
7260 * xmenu.c (single_menu_item, Fx_popup_menu, Fx_popup_menu,
7261 single_submenu, update_frame_menubar, set_frame_menubar,
7262 free_frame_menubar, xmenu_show, xdialog_show): Remove unused
7263 variables.
7264
7265 * print.c (PRINTFULLP): Removed because it is no longer used and
7266 is misleading.
7267 (Ferror_message_string): Remove unused variables.
7268 (print_object): Cast argument of sprintf to long for `%ld'
7269 specifier. Remove unused variable.
7270
72711999-09-14 Gerd Moellmann <gerd@gnu.org>
7272
7273 * sound.c (Fplay_sound): Remove usused variables.
7274 (be2hs): Put in #if 0 because it's currently not used.
7275
72761999-09-14 Ken Raeburn <raeburn@gnu.org>
7277
7278 * print.c (Ferror_message_string, print_error_message,
7279 print_object): Use XCAR, XCDR and XFLOAT_DATA instead of explicit
7280 member access.
7281
72821999-09-14 Gerd Moellmann <gerd@gnu.org>
7283
7284 * frame.h (CHECK_FRAME, CHECK_LIVE_FRAME): Put code in do-while.
7285
7286 * frame.c (Fnext_frame): Remove unused variable(s).
7287 (Fprevious_frame, Fmouse_pixel_position, frame_name_fnn_p): Ditto.
7288 (store_frame_param): Add parentheses to conditional expression.
7289 (Fmodify_frame_parameters): Remove unused variables.
7290 (Fmodify_frame_parameters, Fset_frame_size, Fset_frame_position):
7291 Ditto.
7292
7293 * xfns.c (x_set_background_color): Remove unused variable(s).
7294 (x_set_border_pixel): Ditto.
7295 (x_set_menu_bar_lines): Put local variable used only for
7296 non-toolkit case in #ifdef/#endif.
7297 (x_figure_window_size): Remove unused variable(s).
427ec082 7298 (x_figure_window_size, x_window, lookup_image,
26901792
DL
7299 xbm_read_bitmap_file_data, x_build_heuristic_mask, pbm_load,
7300 png_load, jpeg_load, gif_load, x_create_tip_frame,
7301 x_create_tip_frame, Fx_show_tip, x_set_border_pixel): Ditto.
7302
7303 * xterm.c (x_scroll_bar_handle_click): Compile only if
7304 not USE_TOOLKIT_SCROLL_BARS.
7305 (x_scroll_bar_set_handle, x_scroll_bar_note_movement): Ditto.
7306
7307 * dispextern.h: Add prototypes for gamma_correct and
7308 x_kill_gs_process.
7309
7310 * xterm.c (x_produce_glyphs): Remove unused variable(s).
7311 (x_alloc_nearest_color_for_widget, note_tool_bar_highlight,
7312 x_set_toolkit_scroll_bar_thumb): Ditto.
7313 (x_scroll_bar_create): Move local variable to the
7314 conditionally compiled section of code where it is used.
7315 (x_scroll_bar_create): Remove unused variable(s).
7316 (x_scroll_bar_remove, XTread_socket): Ditto.
7317 (XTread_socket) <ConfigureNotify>: Move variables used for
7318 non-toolkit case into conditionally compiled section of code.
7319
7320 * window.h (freeze_window_starts): Fix typo in prototype.
7321
7322 * xdisp.c (display_echo_area_1, try_window_id): Remove unused
7323 variable(s).
7324
7325 * lisp.h: Add prototype for debug_print.
7326
7327 * dispextern.h (xassert) [GLYPH_DEBUG]: Change definition
7328 to use do-while.
7329
7330 * fns.c (SXHASH_COMBINE): Add missing parentheses.
7331 (Fchar_table_range, Fset_char_table_default, mapcar1,
7332 Fyes_or_no_p, sweep_weak_hash_tables): Remove unused variable(s).
7333
7334 * lisp.h: Add prototype for getloadavg.
7335
73361999-09-14 Andreas Schwab <schwab@gnu.org>
7337
7338 * process.c (Fopen_network_stream): Avoid socket decriptor leak.
7339
7340 * lisp.h: Declare close_file_unwind.
7341
73421999-09-14 Richard Stallman <rms@gnu.org>
7343
7344 * filelock.c (get_boot_time): Make the temp name in the proper dir.
7345
73461999-09-13 Gerd Moellmann <gerd@gnu.org>
7347
7348 * xdisp.c (redisplay_window): Make sure start_at_line_beg
7349 is always set correctly.
7350
73511999-09-13 Dave Love <fx@gnu.org>
7352
7353 * xdisp.c (move_it_in_display_line_to): Make type consistent with
7354 declaration.
7355
73561999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
7357
7358 * xdisp.c (QCfile): Move here from xfns.c.
7359 (syms_of_xdisp): Initialize it.
7360 (message2_nolog): Change for Lisp_Object selected_frame.
7361 (message3_nolog, message_with_string, message,
7362 setup_echo_area_for_printing, truncate_echo_area,
7363 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
7364
73651999-09-13 Dave Love <fx@gnu.org>
7366
7367 * xterm.c: Don't continue #define args for benefit of old cc.
7368 (xt_action_hook): Indent #error for benefit of K&R cc.
7369
73701999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
7371
7372 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
7373 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
7374 (XRINGBELL): Removed.
7375
73761999-09-13 Dave Love <fx@gnu.org>
7377
7378 * xfns.c (x_put_x_image): Make type consistent with declaration.
7379
7380 * fns.c (Fmake_hash_table): Fix string continuation.
7381
73821999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
7383
7384 * xfns.c (QCfile): Moved to xdisp.c.
7385 (syms_of_xfns): Don't initialize QCfile.
7386 (check_x_frame): Change for Lisp_Object selected_frame.
7387 (check_x_display_info, x_get_resource_string): Ditto.
7388
73891999-09-13 Gerd Moellmann <gerd@gnu.org>
7390
7391 * minibuf.c (choose_minibuf_frame): Don't try to set the
7392 mini-buffer window's buffer, if the buffer is invalid.
7393
7394 * xfns.c (QCfile): Moved to xdisp.c.
7395 (syms_of_xfns): Don't initialize QCfile.
7396
7397 * xdisp.c (QCfile): Move here from xfns.c.
7398 (syms_of_xdisp): Initialize it.
7399
7400 * lisp.h (selected_frame): Add external declaration.
7401
7402 * xselect.c (x_own_selection): Change for Lisp_Object selected_frame.
7403 (Fx_store_cut_buffer_internal): Ditto.
7404 (Fx_rotate_cut_buffers_internal): Ditto.
7405
7406 * xfaces.c (frame_or_selected_frame): Change for Lisp_Object
7407 selected_frame.
7408 (Finternal_set_lisp_face_attribute): Ditto.
7409 (Finternal_get_lisp_face_attribute): Ditto.
7410 (Finternal_lisp_face_empty_p): Ditto.
7411 (Fdump_face): Ditto.
7412
7413 * term.c (OUTPUT): Change for Lisp_Object selected_frame.
7414 (OUTPUT_IF, ring_bell, set_terminal_modes, reset_terminal_modes,
7415 set_terminal_window, set_scroll_region, reassert_line_highlight,
7416 change_line_highlight, cursor_to, raw_cursor_to, clear_to_end,
7417 clear_end_of_line, clear_end_of_line_raw, clear_end_of_line_raw,
7418 encode_terminal_code, write_glyphs, term_init): Ditto.
7419
7420 * sysdep.c (reset_sys_modes): Change for Lisp_Object selected_frame.
7421 (kbd_input_ast, read_input_waiting): Ditto.
7422
7423 * minibuf.c (choose_minibuf_frame): Change for Lisp_Object
7424 selected_frame.
7425 (read_minibuf): Ditto.
7426
7427 * keyboard.c (command_loop_1): Change for Lisp_Object
7428 selected_frame.
7429 (cmd_error_internal, command_loop_1, read_char,
7430 kbd_buffer_get_event, read_avail_input,
7431 read_char_minibuf_menu_prompt, read_key_sequence, Fsuspend_emacs,
7432 interrupt_signal, quit_throw_to_read_char): Ditto.
7433
7434 * fontset.c (Ffont_info): Change for Lisp_Object selected_frame.
7435 (Ffontset_info): DItto.
7436
7437 * emacs.c (handle_USR1_signal): Change for Lisp_Object selected_frame.
7438
7439 * dispnew.c (selected_frame): Make it a Lisp_Object.
7440 (adjust_frame_glyphs_initially): Change for Lisp_Object selected_frame.
7441 (direct_output_for_insert, direct_output_forward_char,
7442 init_display): Ditto.
7443
7444 * data.c (swap_in_symval_forwarding): Change for Lisp_Object
7445 selected_frame.
7446 (set_internal): Ditto.
7447
7448 * buffer.c (Fother_buffer): Change for Lisp_Object selected_frame.
7449 (record_buffer): Ditto.
7450
7451 * frame.c (Fmake_terminal_frame): Use SELECTED_FRAME.
7452 (do_switch_frame): Change for Lisp_Object selected_frame.
7453 (Fselected_frame): Ditto.
7454 (Fframe_first_window): Use SELECTED_FRAME.
7455 (Fframe_root_window): Change for Lisp_Object selected_frame.
7456 (Fframe_selected_window, Fset_frame_selected_window, Fnext_frame,
7457 Fprevious_frame, other_visible_frames, Fdelete_frame,
7458 Fmouse_position, Fmouse_pixel_position, Fmake_frame_visible,
7459 Fmake_frame_invisible, Ficonify_frame, Fraise_frame, Flower_frame,
7460 Fframe_parameters, Fmodify_frame_parameters, Fframe_char_height,
7461 Fframe_char_width, Fframe_pixel_height, Fframe_pixel_width,
7462 Fset_frame_height, Fset_frame_width): Ditto.
7463
74641999-09-13 Gerd Moellmann <gerd@gnu.org>
7465
7466 * xdisp.c (message2_nolog): Change for Lisp_Object selected_frame.
7467 (message3_nolog, message_with_string, message,
7468 setup_echo_area_for_printing, truncate_echo_area,
7469 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
7470
7471 * xmenu.c (Fx_popup_menu): Change for Lisp_Object selected_frame.
7472 (Fx_popup_dialog): Ditto.
7473
7474 * xfns.c (check_x_frame): Change for Lisp_Object selected_frame.
7475 (check_x_display_info, x_get_resource_string): Ditto.
7476
7477 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
7478 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
7479 (XRINGBELL): Removed.
7480
7481 * window.c (Fminibuffer_window): Change for Lisp_Object
7482 selected_frame.
7483 (Fwindow_at, Fprevious_window, window_loop, select_window_1,
7484 display_buffer_1, Fdisplay_buffer, temp_output_buffer_show,
7485 Fcurrent_window_configuration, init_window_once): Ditto.
7486
7487 * frame.h (SELECTED_FRAME): New.
7488
74891999-09-12 Ken Raeburn <raeburn@gnu.org>
7490
7491 * category.c (word_boundary_p): Use XCAR and XCDR.
7492 * ccl.c (ccl_driver, resolve_symbol_ccl_program,
7493 Fregister_code_conversion_map): Likewise.
7494 * coding.c (setup_coding_system, detect_coding_system,
7495 Ffind_operation_coding_system, Fset_coding_priority_internal):
7496 Likewise.
7497 * doc.c (get_doc_string, Fdocumentation,
7498 store_function_docstring): Likewise.
7499 * editfns.c (save_restriction_restore): Likewise.
7500 * eval.c (Fcond, Fmacroexpand, Fcondition_case, wants_debugger,
7501 skip_debugger, find_handler_clause, Fautoload, Fapply,
7502 run_hook_with_args, run_hook_list_with_args, Ffetch_bytecode):
7503 Likewise.
7504 * fileio.c (Ffind_file_name_handler, Finsert_file_contents,
7505 Fwrite_region, do_auto_save_unwind, Fdo_auto_save,
7506 Fread_file_name): Likewise.
7507 * filelock.c (unlock_all_files): Likewise.
7508 * insdel.c (Fcombine_after_change_execute): Likewise.
7509 * intervals.c (adjust_intervals_for_insertion): Likewise.
7510 * keymap.c (get_keymap_1, Fkeymap_parent, Fset_keymap_parent,
7511 Fset_keymap_parent, fix_submap_inheritance, access_keymap,
7512 store_in_keymap, Fcopy_keymap, define_as_prefix,
7513 current_minor_maps, Faccessible_keymaps,
7514 accessible_keymaps_char_table, Fkey_description,
7515 Fwhere_is_internal, where_is_internal_2, where_is_internal_1,
7516 describe_buffer_bindings, describe_map_tree, shadow_lookup,
7517 describe_map): Likewise.
7518 * lread.c (Fload, load_unwind, close_load_descs, read_vector,
7519 read_list, init_lread): Likewise.
7520 * search.c (Fmatch_data): Likewise.
7521 * sunfns.c (Fsun_menu_internal): Likewise.
7522 * syntax.c (describe_syntax): Likewise.
7523 * undo.c (record_insert, record_delete, Fundo_boundary,
7524 truncate_undo_list): Likewise.
7525 * vmsproc.c (child_sig): Likewise.
7526
7527 * editfns.c (Fformat): Use XFLOAT_DATA.
7528
75291999-09-12 Gerd Moellmann <gerd@gnu.org>
7530
7531 * keyboard.c (command_loop_1): Resize mini-window to the
7532 exact size of a message displayed, if any.
7533
7534 * xdisp.c (resize_mini_window): Add parameter exact_p. Resize
7535 to exact size if exact_p is non-zero.
7536 (display_echo_area_1): Call resize_mini_window with
7537 new parameter.
7538 (redisplay_internal): Ditto.
7539 (resize_echo_area_axactly): New.
7540
7541 * minibuf.c (read_minibuf_unwind): Call resize_mini_window with
7542 new parameter.
7543
7544 * dispextern.h: Change prototype of resize_mini_window.
7545 Add prototype for resize_echo_area_axactly.
7546
7547 * xfaces.c (Fx_family_fonts): Replaces Fx_font_list.
7548 (syms_of_xfaces): Defsubr accordingly.
7549
7550 * xdisp.c (hscroll_window_tree): Choose cursor row from
7551 desired or current matrix.
7552 (redisplay_internal): Hscroll before updating.
7553
75541999-09-12 Gerd Moellmann <gerd@gnu.org>
7555
7556 * syntax.c (Fforward_word): Use prompt_end_charpos instead
7557 of minibuffer_prompt_length.
7558
7559 * minibuf.c (read_minibuf): Use prompt_end_charpos instead
7560 of minibuffer_prompt_length.
7561 (read_minibuf_unwind): Ditto.
7562 (Fminibuffer_complete_and_exit): Ditto.
7563 (Fminibuffer_complete_word): Ditto.
7564 (Fminibuffer_prompt_end): Ditto.
7565
7566 * editfns.c (Fbuffer_string): Use prompt_end_charpos instead
7567 of minibuffer_prompt_length.
7568 (Fline_beginning_position): Ditto.
7569
7570 * buffer.c (Fget_buffer_create): Use prompt_end_charpos instead
7571 of minibuffer_prompt_length.
7572 (Fmake_indirect_buffer): Ditto.
7573 (Fkill_buffer): Ditto.
7574 (Ferase_buffer): Ditto.
7575
7576 * buffer.h (prompt_end_charpos): Replaces
7577 minibuffer_prompt_length.
7578
427ec082 7579 * minibuf.c (read_minibuf): Return mini-buffer contents
26901792
DL
7580 without the prompt.
7581
7582 * editfns.c (make_buffer_string_both): Take out the code
7583 to handle mini-buffer prompts.
7584 (Fbuffer_string): Handle the prompt here, instead.
7585
7586 * xfaces.c (lface_from_face_name): Resolve face aliases.
7587 (Qmode_line): Replaces Qmodeline.
7588 (realize_basic_faces): Use Qmode_line.
7589 (syms_of_xfaces): Initialize Qmode_line.
7590
75911999-09-12 Gerd Moellmann <gerd@gnu.org>
7592
7593 * minibuf.c (read_minibuf): Set minibuf_prompt_width to the
7594 current column after inserting prompt.
7595 (Fminibuffer_prompt_width): Return minibuf_prompt_width.
7596
7597 * xfaces.c (Qframe_update_face_colors): New.
7598 (syms_of_xfaces): Initialize call.
7599 (update_face_from_frame_parameter): Call that function when
7600 the frame's background changes.
7601
76021999-09-12 Richard Stallman <rms@gnu.org>
7603
7604 * insdel.c (del_range_1): Don't treat minibuffer prompt specially.
7605
76061999-09-12 Ken Raeburn <raeburn@gnu.org>
7607
7608 * alloc.c (Fcons, pure_cons, Fpurecopy, Fgarbage_collect,
7609 mark_object, mark_buffer): Use XCAR and XCDR.
7610 * bytecode.c (Fbyte_code): Likewise.
7611 * callint.c (Fcall_interactively, Fprefix_numeric_value):
7612 Likewise.
7613 * callproc.c (Fcall_process, Fcall_process_region, child_setup,
7614 getenv_internal): Likewise.
7615 * dired.c (file_name_completion): Likewise.
7616 * fns.c (Fsafe_length, concat, Fcopy_alist, Fmember, Fmemq, Fassq,
7617 assq_no_quit, Fassoc, Frassq, Frassoc, Fdelq, Fdelete, Freverse,
7618 Fplist_get, Fplist_put, internal_equal, mapcar1): Likewise.
7619 * indent.c (Fcompute_motion): Likewise.
7620 * process.c (decode_status, Fprocess_status, Fprocess_exit_status,
7621 list_processes_1, Fstart_process, Fopen_network_stream,
7622 wait_reading_process_input, read_process_output_call,
7623 kill_buffer_processes, sigchld_handler, exec_sentinel_unwind,
7624 status_notify, wait_reading_process_input): Likewise.
7625 * textprop.c (PLIST_ELT_P, property_value, set_properties,
7626 extend_property_ranges): Likewise.
7627 * w32faces.c (Fpixmap_spec_p, merge_face_list): Likewise.
7628 * w32fns.c (x_window_to_frame, x_set_frame_parameters,
7629 x_report_frame_params, x_set_cursor_type, x_icon_type,
7630 x_figure_window_size, Fx_create_frame, w32_load_system_font,
7631 w32_load_font, enum_font_cb2, w32_list_bdf_fonts, w32_list_fonts,
7632 w32_list_synthesized_fonts, w32_find_ccl_program, Fx_list_fonts,
7633 Fw32_find_bdf_fonts, w32_find_bdf_fonts_in_dir,
7634 x_display_info_for_name, Fx_display_list): Likewise.
7635 * w32menu.c (menubar_id_to_frame, single_keymap_panes,
7636 Fx_popup_menu, Fx_popup_dialog): Likewise.
7637 * w32proc.c (Fw32_set_keyboard_layout): Likewise.
7638 * w32term.c (x_window_to_scroll_bar, w32_read_socket,
7639 w32_term_init, x_delete_display): Likewise.
7640 * xfns.c (x_window_to_frame, x_any_window_to_frame,
7641 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
7642 x_top_window_to_frame, x_set_frame_parameters,
7643 x_report_frame_params, x_set_cursor_type, x_icon_type,
7644 x_figure_window_size, Fx_create_frame, x_display_info_for_name,
7645 Fx_display_list, x_create_tip_frame): Likewise.
7646 * xmenu.c (menubar_id_to_frame, single_keymap_panes,
7647 Fx_popup_menu, Fx_popup_dialog): Likewise.
7648 * xselect.c (x_own_selection, x_get_local_selection,
7649 x_handle_selection_request, x_handle_selection_clear,
7650 x_clear_frame_selections, wait_for_property_change_unwind,
7651 wait_for_property_change, x_handle_property_notify,
7652 copy_multiple_data, x_get_foreign_selection,
7653 lisp_data_to_selection_data, clean_local_selection_data,
7654 x_handle_selection_notify, Fx_get_selection_internal,
7655 x_disown_buffer_selections): Likewise.
7656 * xterm.c (x_window_to_scroll_bar, XTread_socket, x_list_fonts,
7657 x_load_font, x_find_ccl_program, x_term_init, x_delete_display):
7658 Likewise.
7659
7660 * alloc.c (make_float, make_pure_float, Fpurecopy): Use
7661 XFLOAT_DATA.
7662 * bytecode.c (Fbyte_code): Likewise.
7663 * floatfns.c (extract_float, Fexpt, Fabs, rounding_driver,
7664 fmod_float): Likewise.
7665
76661999-09-11 Richard Stallman <rms@gnu.org>
7667
7668 * xdisp.c (run_window_scroll_functions): If hook functions switch
7669 buffers, switch back after.
7670
76711999-09-11 Ken Raeburn <raeburn@gnu.org>
7672
7673 * charset.h (GET_TRANSLATION_TABLE): Use XCDR.
7674 * frame.h (FOR_EACH_FRAME): Use XCAR and XCDR.
7675 (PIXEL_X_FROM_CANON_X, PIXEL_Y_FROM_CANON_Y): Use XFLOAT_DATA.
7676 * keyboard.h (EVENT_HEAD, EVENT_START, EVENT_END, POSN_WINDOW,
7677 POSN_BUFFER_POSN, POSN_WINDOW_POSN, POSN_TIMESTAMP): Use XCAR and
7678 XCDR.
7679 * syntax.h (SYNTAX, SYNTAX_WITH_FLAGS, SYNTAX_MATCH): Use XCAR and
7680 XCDR.
7681
76821999-09-10 Richard Stallman <rms@gnu.org>
7683
7684 * xterm.c (XTread_socket): In XSetInputFocus, use RevertToParent,
7685 not RevertToPointerRoot.
7686 (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
7687 Fix the code to clear around the scroll bar.
7688
76891999-09-10 Keisuke Nishida <kxn30@po.cwru.edu>
7690
7691 * print.c: Support print-circle and related features.
7692 (Vprint_gensym_alist): Removed.
7693 (Vprint_circle, Vprint_continuous_numbering, print_number_index
7694 Vprint_number_table): New variables.
7695 (PRINT_NUMBER_OBJECT, PRINT_NUMBER_STATUS): New macros.
7696 (PRINTPREPARE, PRINTFINISH): Don't set Vprint_gensym_alist.
7697 (print, print_preprocess, print_preprocess_string, print_object):
7698 New/modified functions with print-circle feature. Use
7699 Vprint_number_table instead of Vprint_gensym_alist for print-gensym.
7700 (syms_of_print): Defined new Lisp variables `print-circle',
7701 `print-continuous-numbering', `print-number-table'.
7702
77031999-09-10 Gerd Moellmann <gerd@gnu.org>
7704
7705 * xfns.c (x_build_heuristic_mask): Accept a list `(R G B)'
7706 as background color specification instead of an integer.
7707 (image-cache-eviction-delay): Replaces image-eviction-seconds.
7708 (Vimage_cache_eviction_delay): Replaces Vimage_eviction_seconds.
7709 (clear_image_cache, syms_of_xfns): Use it.
7710 (Qpostscript): Replaces Qghostscript.
7711 (gs_type): Use it.
7712 (gs_image_p): Ditto.
7713 (syms_of_xfns): Initialize Qpostscript.
7714
77151999-09-10 Richard Stallman <rms@gnu.org>
7716
7717 * buffer.c (Ferase_buffer): Don't erase the minibuffer prompt.
7718
77191999-09-09 Richard Stallman <rms@gnu.org>
7720
7721 * editfns.c (Fline_beginning_position): Handle minibuffer prompt here.
7722
7723 * cmds.c (Fbeginning_of_line): Don't handle minibuffer prompt here.
7724
77251999-09-09 Gerd Moellmann <gerd@gnu.org>
7726
7727 * fns.c (Fmakehash): Accept just one optional argument TEST.
7728
7729 * xfns.c (QCindex): New.
7730 (syms_of_xfns): Initialize QCindex.
7731 (gif_load): Use it instead of `:image'.
7732
77331999-09-09 Richard Stallman <rms@gnu.org>
7734
7735 * fileio.c (Fwrite_region): Finish renaming CONFIRM to MUSTBENEW.
7736 (Fwrite_region) [DOS_NT]: Handle `excl' here too.
7737
77381999-09-08 Gerd Moellmann <gerd@gnu.org>
7739
7740 * xdisp.c (Qwhen): Replaces QCwhen.
7741 (syms_of_xdisp): Initialized it instead of QCwhen.
7742 (handle_single_display_prop): Use it instead of QCwhen.
7743
77441999-09-08 Ken'ichi Handa <handa@gnu.org>
7745
7746 * charset.c (translate_char): Reset MSBs of arguments of
7747 MAKE_CHAR.
7748 (CHAR_COMPONENTS_VALID_P): Fix for ASCII.
7749
77501999-09-08 Lars Magne Ingebrigtsen <larsi@gnus.org>
7751
7752 * editfns.c (Fbufsize): Accept an extra BUFFER parameter.
7753
7754 * fns.c (Fbase64_decode_region): Don't place point outside of the
7755 current accessible portion.
7756
77571999-09-07 Richard Stallman <rms@gnu.org>
7758
7759 * keymap.c (fix_submap_inheritance): Do nothing if the proper
7760 parent is an ancestor of SUBMAP; otherwise, add it as the
7761 ultimate ancestor.
7762
77631999-09-07 Gerd Moellmann <gerd@gnu.org>
7764
7765 * xdisp.c (handle_single_display_prop): Change conditional
7766 display property to `:when FORM . VALUE'.
7767
77681999-09-07 Richard Stallman <rms@gnu.org>
7769
7770 * fileio.c (Fwrite_region): Doc fix.
7771
77721999-09-07 Stefan Monnier <monnier@cs.yale.edu>
7773
7774 * fileio.c (Qexcl): New variable.
7775 (report_file_error): Handle EEXIST specially.
7776 (Fwrite_region): Special handling for CONFIRM = `excl'.
7777 (syms_of_fileio): Initialize Qexcl.
7778
77791999-09-07 Gerd Moellmann <gerd@gnu.org>
7780
7781 * xfns.c (x_set_foreground_color): Call
7782 update_face_from_frame_parameter.
7783 (x_set_background_color): Ditto.
7784 (x_set_mouse_color): Ditto.
7785 (x_set_cursor_color): Ditto.
7786 (x_set_border_color): Ditto.
7787 (x_set_scroll_bar_foreground): Ditto.
7788 (x_set_scroll_bar_background): Ditto.
7789
7790 * xfaces.c (recompute_basic_faces): Clear face cache.
7791 (Finternal_set_lisp_face_attribute): Modify frame parameters
7792 if attributes of certain faces are changed.
7793 (update_face_from_frame_parameter): New.
7794
7795 * xfaces.c (realize_basic_faces): Realize new basic faces.
7796
7797 * dispextern.h (SCROLL_BAR_FACE_ID, BORDER_FACE_ID,
7798 CURSOR_FACE_ID, MOUSE_FACE_ID): New.
7799
7800 * xfaces.c (Qscroll_bar, Qcursor, Qborder, Qmouse): New.
7801 (syms_of_xfaces): Intialize new symbols.
7802
7803 * fns.c (Fmakehash): Take one argument, test, make all the
7804 rest keyword arguments.
7805
7806 * window.c (Fset_window_margins): Make window the first argument.
7807 (set_window_buffer): Call Fset_window_margins with window as first
7808 argument.
7809
78101999-09-07 Gerd Moellmann <gerd@gnu.org>
7811
7812 * xfaces.c (Qfringe): Replaces Qmargin.
7813
78141999-09-07 Kenichi Handa <handa@etl.go.jp>
7815
7816 * charset.h: Lots of comments fixed.
7817 (PARSE_MULTIBYTE_SEQ): Make it work also for ASCII string.
7818 (STRING_CHAR_AND_CHAR_LENGTH): This macro removed.
7819
7820 * charset.c : Lots of comments fixed.
7821 (SPLIT_MULTIBYTE_SEQ): Make it work also for ASCII string.
7822 (CHAR_COMPONENTS_VALID_P): Name changed from
7823 CHAR_COMPONENT_VALID_P. Caller changed.
7824
78251999-09-06 Richard Stallman <rms@gnu.org>
7826
7827 * insdel.c (syms_of_insdel): Define Lisp variable
7828 inhibit-modification-hooks.
7829
78301999-09-06 Michael Sperber [Mr. Preprocessor] <sperber@informatik.uni-tuebingen.de>
7831
7832 * s/aix4-2.h (ALIGN_DATA_RELOC): Undefined to support new
7833 unexaix.c.
7834
7835 * s/aix3-1.h (ALIGN_DATA_RELOC): Defined to support new unexaix.c.
7836
78371999-09-06 Dave Love <fx@gnu.org>
7838
7839 * unexaix.c: New version incorporating Michael Sperber's changes
7840 from XEmacs. Should solve problems on AIX 4.3.
7841
7842 * lread.c (Vbyte_boolean_vars): New variable.
7843 (defvar_bool, syms_of_lread): Use it.
7844
78451999-09-05 Richard Stallman <rms@gnu.org>
7846
7847 * minibuf.c (read_minibuf): Put all three properties on the
7848 same range, the whole prompt.
7849
78501999-09-05 Gerd Moellmann <gerd@gnu.org>
7851
7852 * sound.c (Qplay_sound_functions): Replaces Qplay_sound_hook.
7853 (Fplay_sound, syms_of_sound): Use it.
7854 (parse_sound): Allow float volume values in the range [0, 1].
7855 (Fplay_sound): Ditto.
7856
7857 * window.c (Fset_window_vscroll): Make window the first argument,
7858 amount to scroll the second. Take non-negative vscroll as
7859 argument.
7860 (Fwindow_vscroll): Return non-negative vscroll.
7861
7862 * xfns.c (Fx_show_tip): Improve documentation.
7863
78641999-09-05 Gerd Moellmann <gerd@gnu.org>
7865
7866 * buffer.c, buffer.h, dispextern.h, dispnew.c, keyboard.c,
7867 window.c, xdisp.c, xfaces.c, xterm.c, keyboard.h: Change
7868 `top-line' and `top_line' to `header-line' and `header_line'.
7869 Likewise for similar spellings.
7870
78711999-09-05 Gerd Moellmann <gerd@gnu.org>
7872
7873 * xdisp.c (row_containing_pos): New.
7874 (try_window_id): Use it.
7875
7876 * alloc.c, dispextern.h, dispnew.c, frame.c, frame.h, keyboard.c,
7877 lisp.h, termhooks.h, window.c xdisp.c, xfaces.c, xfns.c, xterm.c:
7878 Change spelling of `toolbar' to `tool_bar' or `tool-bar'.
7879 Likewise for upper-case etc.
7880
78811999-09-05 Gerd Moellmann <gerd@gnu.org>
7882
7883 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
7884 Fix reference to renamed variable.
7885
78861999-09-04 Gerd Moellmann <gerd@gnu.org>
7887
7888 * window.c (Qwindow_size_fixed): Replaces Qfixed_window_size.
427ec082 7889 (window_fixed_size_p): Use Qwindow_size_fixed instead of
26901792
DL
7890 Qfixed_window_size.
7891 (syms_of_window): Ditto.
7892
7893 * fns.c (Fmakehash): Exchange optional test and size arguments.
7894
78951999-09-03 Gerd Moellmann <gerd@gnu.org>
7896
7897 * xterm.c (XTset_vertical_scroll_bar): Block input when clearing
7898 under newly created scroll bar.
7899 (expose_window): If window is not yet fully initialized, do
7900 nothing. This can happen when toolkit scroll bars are used and a
7901 window is split. Reconfiguring the scroll bars will generate an
7902 expose for a newly created window.
7903
7904 * frame.h (struct frame): New member `gamma'.
7905
7906 * xfns.c: Include math.h. Add extern declaration for atof in case
7907 we don't see one.
7908 (Qscreen_gamma): New.
7909 (struct x_frame_parm_table): Add prototypes, add
7910 x_set_screen_gamma.
7911 (gamma_correct): New function.
7912 (defined_color): Call it.
7913 (x_set_screen_gamma): New.
7914 (x_set_title): Add parameter old_value.
7915 (RES_TYPE_FLOAT): New.
7916 (x_get_arg): Handle RES_TYPE_FLOAT.
7917 (Fx_create_frame): Call x_default_parameter for `screen-gamma'.
7918 (lookup_pixel_color): Change call to x_alloc_nearest_color to
7919 new prototype.
7920 (lookup_rgb_color): Ditto.
7921 (syms_of_xfns): Initialize Qscreen_gamma.
7922
7923 * xterm.c (x_alloc_nearest_color_for_widget) [USE_X_TOOLKIT]:
7924 New. Allocate color for lwlib widgets.
7925 (x_alloc_nearest_color): Change parameter list include the
7926 frame on which to allocate colors. Gamma-correct colors.
7927 (x_alloc_lighter_color): Call x_alloc_lighter_color with new
7928 parameter list.
7929
7930 * xterm.h: Change protorype of x_alloc_nearest_color.
7931
79321999-09-03 Richard Stallman <rms@gnu.org>
7933
7934 * callproc.c: Delete the system-independent include of stdlib.h
7935 (leaving only the one in the WINDOWSNT conditional).
7936
79371999-09-03 Andrew Choi <choi@cs.hku.hk>
7938
7939 * callproc.c (call-process) [macintosh]: Call mac_run_command in
7940 sysdep.c. The Mac code is modeled after the DOS code.
427ec082 7941
26901792
DL
7942 * dispextern.h [macintosh]: Include macterm.h to define substitute X
7943 Window types and macros.
7944
7945 * frame.h: Do nothing if included a second time.
7946 (enum output_method): Add mac_output frame type.
7947 (union output_data): Add new alternative `mac'.
7948 (FRAME_MAC_P): New macro.
427ec082 7949
26901792
DL
7950 * frame.c (Fframep) [macintosh]: Handle mac frame type.
7951 (syms_of_frame_1): Initialize Qmac.
7952 (make_terminal_frame) [macintosh]: Initialize output_data.mac fields.
7953 (Fmake_terminal_frame) [macintosh]: Add an alternate error check.
7954 (Fmodify_frame_parameters) [macintosh]: Call
7955 mac_set_frame_parameter in macterm.c.
427ec082 7956
26901792
DL
7957 * keyboard.c [macintosh]: Set KBD_BUFFER_SIZE to a smaller value
7958 (512) because Mac compilers limit local data of a function to 32K.
427ec082 7959
26901792
DL
7960 * make-docfiles.c: Correctly handle input files with Mac-style
7961 eol's.
427ec082 7962
26901792 7963 * sysdep.c: Define numerous routines to emulate Unix system calls.
427ec082 7964
26901792
DL
7965 * xfaces.c: on MacOS, define the set of colors listed in rgb.txt
7966 file of an X Window environment.
427ec082 7967
26901792
DL
7968 * xfaces.c: on MacOS, define the Lisp functions x-display-color-p,
7969 x-display-grayscale, x-color-defined-p, and x-color-values.
427ec082 7970
26901792
DL
7971 * sysdep.c [macintosh] (stat, fstat, mkdir, rmdir, utime, access)
7972 (open, creat, unlink, read, write, rename, fopen, pause, alarm)
7973 (signal, sleep, gmtime, localtime, ctime, time, index, mktemp)
7974 (getpwuid, getpwnam, dup, dup2, isatty, getgid, getegid, getuid)
7975 (geteuid, getpid, getenv, uname, opendir, closedir, readdir, getwd.):
7976 New functions, replacing POSIX features.
427ec082 7977
26901792
DL
7978 * sysdep.c [macintosh] (Mac2UnixPathname, Unix2MacPathname, CheckAlarm)
7979 (InitMyPasswd, GetTempDirName, mystrchr, mystrtok, mystrcpy):
7980 (InitEmacsPasswdDir, run_mac_command): New subroutines.
7981
7982 * sysdep.c [macintosh] (targetTicks, alarm_signal_func, myPasswdName)
7983 (myPasswd, emacsPasswdDir, emacsPasswd, myPasswdInited, mask)
7984 (myPasswdDir, TempDirName, sys_siglist): New variables.
7985
7986 * sysdep.c [macintosh] (execvp, wait, croak, fork, kill, sigsetmask)
7987 (sigblock, request_sigio, unrequest_sigio, setpgrp, pipe, symlink)
7988 (link, lstat, readlink, umask, chmod, sbrk, fsync, ioctl):
7989 Define empty stubs so Emacs will link.
7990
79911999-09-03 Gerd Moellmann <gerd@gnu.org>
7992
7993 * xdisp.c: Use XCAR and XCDR instead of XCONS.
7994
7995 * window.h: New member frozen_window_start_p.
7996
7997 * window.c (foreach_window, foreach_window_1): New.
7998 (freeze_window_start, freeze_window_starts): New.
7999 (make_window): Initialize frozen_window_start_p.
8000 (replace_window): Ditto.
8001 (Fset_window_point): Remove references to deleted variables.
8002 (Fset_window_start): Ditto.
8003
8004 * xdisp.c (Vresize_mini_config, resize_mini_frame,
8005 resize_mini_initial_height): Removed.
8006 (syms_of_xdisp): Remove references to these variables.
8007 (resize_mini_window): Don't save window configuration, freeze
8008 window starts instead. Enlarge window until displaying an empty
8009 buffer, then shrink it. Make the function externally visible.
8010 (redisplay_window): Treat frozen window start like forced start,
8011 but accept point outside of the window.
8012
8013 * dispextern.h: Add function prototype for resize_mini_window.
8014
8015 * minibuf.c (read_minibuf_unwind): Resize mini-window when
8016 reaching minibuf_level 0.
8017
8018 * lisp.h: Remove extern declarations for variables deleted from
8019 xdisp.c.
8020
8021 * dispnew.c (adjust_frame_glyphs): Remove reference to
8022 Vresize_mini_config.
8023
80241999-09-03 Gerd Moellmann <gerd@gnu.org>
8025
8026 * xfns.c (x_set_scroll_bar_width): Change conditional compilation
8027 to USE_TOOLKIT_SCROLL_BARS.
8028
8029 * xterm.c (x_scroll_bar_create): Don't clear under scroll bar
8030 here.
8031 (XTset_vertical_scroll_bar): Clarify position computations. Clear
8032 under newly created scroll bar. Put toolkit scroll bars in the
8033 middle of the area reserved for the scroll bar.
8034
80351999-09-03 Kenichi Handa <handa@etl.go.jp>
8036
8037 The following changes are for the new handling of mulitbyte
8038 sequence. Now, except for a composite character, no multibyte
8039 character in string/buffer has trailing garbage bytes. For
8040 instance, the length of string "\201\300\300" is now 2, the first
8041 character is Latin-1 A-grave, the second is raw \300.
8042
8043 * charset.h (MAKE_NON_ASCII_CHAR): Handle the case that C1 or C2
8044 are negative.
8045 (MAKE_CHAR): Don't set MSBs of C1 and C2 to 0.
8046 (VALID_MULTIBYTE_CHAR_P): This macro deleted.
8047 (PARSE_COMPOSITE_SEQ): New macro.
8048 (PARSE_CHARACTER_SEQ): New macro.
427ec082 8049 (PARSE_MULTIBYTE_SEQ): New macro.
26901792
DL
8050 (CHAR_PRINTABLE_P): New macro.
8051 (STRING_CHAR): Adjusted for the change of string_to_non_ascii_char.
8052 (STRING_CHAR_AND_LENGTH): Likewise.
8053 (STRING_CHAR_AND_CHAR_LENGTH): Define it as STRING_CHAR_AND_LENGTH.
8054 (INC_POS): Use the macro PARSE_MULTIBYTE_SEQ.
8055 (DEC_POS, BUF_INC_POS, BUF_DEC_POS): Likewise,
8056
8057 * charset.c (SPLIT_COMPOSITE_SEQ): New macro.
8058 (SPLIT_CHARACTER_SEQ): New macro.
8059 (SPLIT_MULTIBYTE_SEQ): New macro.
8060 (CHAR_COMPONENT_VALID_P): New macro.
8061 (non_ascii_char_to_string): Generate a multibyte sequence as far
8062 as possible.
8063 (string_to_non_ascii_char): The 4th arg exclude_tail_garbage is
8064 deleted. Caller changed. Use the macro SPLIT_MULTIBYTE_SEQ.
8065 (split_non_ascii_string): Likewise.
8066 (multibyte_form_length): Use the macro PARSE_MULTIBYTE_SEQ.
8067 (char_printable_p): New function.
8068 (translate_char): Check character by NATNUMP instead of INTEGERP.
8069 (unibyte_char_to_multibyte): Call char_valid_p instead of
8070 VALID_MULTIBYTE_CHAR_P.
8071 (Fmake_char_internal): Check the arguments more rigidly.
8072 (Fcharset_after): Use the macro SPLIT_MULTIBYTE_SEQ.
8073 (char_valid_p): Check the validity by CHAR_COMPONENT_VALID_P.
8074 (Fmultibyte_char_to_unibyte): Check the validity of character by
8075 CHAR_VALID_P.
8076 (chars_in_text): Call multibyte_chars_in_text.
8077 (multibyte_chars_in_text): Use the macro PARSE_MULTIBYTE_SEQ.
8078 (Fcompose_string): Use the macro STRING_CHAR_AND_LENGTH instead of
8079 STRING_CHAR_AND_CHAR_LENGTH (which is obsolete now).
8080
8081 * data.c (Faset): Adjust the way to check byte-combining
8082 possibility for the new handling of multibyte sequence.
8083
8084 * editfns.c (Fsubst_char_in_region): Likewise.
8085
8086 * fns.c (count_combining): Use the macro PARSE_MULTIBYTE_SEQ.
8087 (string_char_to_byte): Likewise.
8088 (string_byte_to_char): Likewise.
8089
8090 * indent.c (MULTIBYTE_BYTES_WIDTH): Delete the 2nd arg C. Use the
8091 macro STRING_CHAR_AND_LENGTH. Caller changed.
8092
8093 * insdel.c (count_combining_composition): New function.
8094 (count_combining_before): Adjust the way to check byte-combining
8095 possibility for the new handling of multibyte sequence. Call
8096 count_combining_composition for a composite character.
8097 (count_combining_after): Likewise.
8098
8099 * print.c (print_string): Use the macro STRING_CHAR_AND_LENGTH.
8100 (print): Likewise.
8101
8102 * dispextern.h (struct it): Change the size of the member
8103 `ctl_chars'.
8104
8105 * xdisp.c (get_next_display_element): Display incomplete multibyte
8106 sequence (e.g. \222\300) by octal form.
8107
81081999-09-02 Gerd Moellmann <gerd@gnu.org>
8109
8110 * xterm.h (VERTICAL_SCROLL_BAR_WIDTH_TRIM): Change from 2 to 0.
8111
8112 * fns.c (Fhash_table_weakness): Replaces Fhash_table_weak.
8113 (cmpfn_eql, sxhash): Use XFLOAT_DATA.
8114
81151999-09-02 Gerd Moellmann <gerd@gnu.org>
8116
8117 * buffer.c (set_buffer_internal): Never set
8118 windows_or_buffers_changed.
8119
8120 * xdisp.c (try_window_id): Reset first_unchanged_at_end_row
8121 if we have displayed to the bottom of the window.
8122
8123 * syntax.c (Fforward_word): Stop at a mini-buffer prompt end
8124 in both directions. Extend documentation.
8125
81261999-09-01 Gerd Moellmann <gerd@gnu.org>
8127
8128 * minibuf.c (read_minibuf): Flush display after setting cursor to
8129 column 0.
8130
81311999-08-31 Gerd Moellmann <gerd@gnu.org>
8132
8133 * s/freebsd.h (__FreeBSD_version): Don't define it if it is
8134 already defined. This avoids a warning from buffer.c.
8135
81361999-08-30 Gerd Moellmann <gerd@gnu.org>
8137
8138 * xterm.h (FRAME_X_FLAGS_AREA_COLS): Define it as the total width
8139 of both margins.
8140 (FRAME_X_FLAGS_AREA_WIDTH): Likewise.
8141 (FRAME_X_LEFT_FLAGS_AREA_WIDTH): New.
8142 (FRAME_X_RIGHT_FLAGS_AREA_WIDTH): New.
8143
8144 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add in FRAME_FLAGS_AREA_COLS
8145 once instead of twice.
8146 (FRAME_LEFT_FLAGS_AREA_WIDTH): New.
8147
8148 * xterm.c: Remove unused bitmaps.
8149 (continued_bits, continuation_bits, overlay_bits): Change images.
8150 (x_draw_vertical_border): Use FRAME_X_RIGHT_FLAGS_AREA_WIDTH
8151 instead of FRAME_X_FLAGS_AREA_WIDTH.
8152 (x_after_update_window_line): Ditto.
8153 (x_draw_bitmap): Likewise.
8154 (x_draw_row_bitmaps): Likewise.
8155 (x_draw_glyph_string_box): Likewise.
8156 (x_draw_glyphs): Likewise.
8157 (x_scroll_run): Likewise.
8158 (expose_window_tree): Likewise.
8159 (note_mode_line_highlight): Likewise.
8160 (XTset_vertical_scroll_bar): Likewise.
8161 (x_clip_to_row): Likewise.
8162 (x_set_window_size): Likewise.
8163
8164 * xfns.c (x_figure_window_size): Use FRAME_FLAGS_AREA_COLS instead
8165 of 2 * that value.
8166
8167 * xdisp.c (window_box_width): Use FRAME_FLAGS_AREA_COLS instead of
8168 2 * that value.
8169 (window_box_left): Use FRAME_LEFT_FLAGS_AREA_WIDTH instead of
8170 FRAME_FLAGS_AREA_WIDTH.
8171
8172 * window.c (coordinates_in_window): Use
8173 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
8174 (window_internal_width): Subtract FRAME_FLAGS_AREA_WIDTH once
8175 instead of twice.
8176
427ec082 8177 * widget.c (set_frame_size): Set flags_area_extra to
26901792
DL
8178 FRAME_FLAGS_AREA_WIDTH instead of 2 * that width.
8179 (EmacsFrameSetCharSize): Ditto.
8180
8181 * dispnew.c (mode_line_string): Add FRAME_LEFT_FLAGS_AREA_WIDTH
8182 instead of FRAME_FLAGS_AREA_WIDTH.
8183
8184 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract
8185 FRAME_FLAGS_AREA_COLS once.
8186 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Add
8187 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
8188
81891999-08-30 Gerd Moellmann <gerd@gnu.org>
8190
8191 * freebsd.h (C_SWITCH_SYSTEM): Added to let configure find headers
8192 in /usr/X11R6/include which are checked for with AC_CHECK_HEADER.
8193
81941999-08-30 Gerd Moellmann <gerd@gnu.org>
8195
8196 * fns.c (QCweakness): Replaces QCweak.
8197 (Fmake_hash_table): Ditto.
8198 (Fmakehash): Ditto.
8199 (syms_of_fns): Ditto.
8200
82011999-08-29 Richard Stallman <rms@gnu.org>
8202
8203 * search.c (compile_pattern_1): Enable RE_CHAR_CLASSES for regexp.
8204
8205 * sysdep.c (read_input_waiting): Pass read_socket_hook just 4 args.
8206
8207 * syntax.h (SYNTAX_COMMENT_NESTED, SYNTAX_FLAGS_COMMENT_NESTED):
8208 Add support for nested comments.
8209
d7d0dac0
SM
8210 * syntax.c (Fforward_comment, scan_lists, scan_sexps_forward):
8211 Consolidate the forward comment code into the new `forw_comment'.
8212 (forw_comment): New subroutine. Added support for nested comments.
8213 (lisp_parse_state, back_comment, Fmodify_syntax_entry)
8214 (Fparse_partial_sexp): Add support for nested comments.
26901792
DL
8215
82161999-08-28 Ken Raeburn <raeburn@gnu.org>
8217
8218 * lisp.h (struct Lisp_Cons, XCAR, XCDR, struct Lisp_Float): Change
8219 names of structure elements if HIDE_LISP_IMPLEMENTATION is
8220 defined, to help detect code that uses knowledge of the Lisp
8221 internals that it shouldn't have.
8222 (XFLOAT_DATA): New macro.
8223
82241999-08-25 Gerd Moellmann <gerd@gnu.org>
8225
8226 * syntax.c (Fforward_word): If in a mini-buffer and moving
8227 backwards, stop in front of the prompt to prevent accidentially
8228 moving into the read-only prompt.
8229
8230 * window.c (Frecenter): Clear frame if called with nil or no arg.
8231
8232 * xdisp.c (resize_mini_window): Don't resize if
8233 Vmax_mini_window_height is nil. Otherwise, use a default if
8234 Vmax_mini_window_height is not ot a number.
8235 (syms_of_xdisp): Extend documentation of Vmax_mini_window_height.
8236
82371999-08-25 Alexandre Oliva <oliva@dcc.unicamp.br>
8238
8239 * unexelf.c: Merge IRIX debugging info patch from unexsgi.c
8240 * m/iris4d.h: Use unexelf for IRIX 5.*.
8241 * m/iris5d.h: Use unexelf for IRIX 6.*.
8242 * unexsgi.c: Deleted.
8243
8244 * unexelf.c: Auto-detect .sbss section.
8245 (round_up): Make it static.
8246 (unexec): Declare alignment as Elf Word. Skip ``Program
8247 segment above .bss'' test on MIPS without .sbss.
8248 Copy sections .got and .sdata1 sections. Adjust offsets in
8249 sections .sdata, .lit4, .lit8, .got and .sdata1.
8250
82511999-08-25 Gerd Moellmann <gerd@gnu.org>
8252
8253 * xdisp.c (try_window_id): Remove typo.
8254
82551999-08-24 Gerd Moellmann <gerd@gnu.org>
8256
8257 * xdisp.c (try_window_id): Recognize case that PT == ZV and in
8258 unchanged text at the bottom when computing the cursor position.
8259 (message3_nolog): Raise frame only if minibuffer_auto_raise is
8260 set.
8261
8262 * lisp.h (PVEC_TYPE_MASK): Add the bit for hash tables.
8263
82641999-08-24 Gerd Moellmann <gerd@gnu.org>
8265
8266 * xfaces.c (Qmargin): Replacement for Qbitmap_area.
8267 (realize_basic_faces): Replace Qmargin for Qbitmap_area.
8268 (syms_of_xfaces): Ditto.
8269
8270 * window.c (Fset_window_point): Reset Vresize_mini_config.
8271 (Fset_window_start): Ditto.
8272 (set_window_buffer): Ditto.
8273
8274 * dispnew.c (adjust_frame_glyphs): Reset Vresize_mini_config.
8275
8276 * xdisp.c (redisplay_window): Don't ever test just_this_one_p
8277 before calling try_window.
8278 (echo_area_display): If height has changed, update other windows.
8279 (resize_mini_frame, resize_mini_initial_height): New.
8280 (resize_mini_window): Save/restore window configuration
8281 differently.
8282
427ec082 8283 * lisp.h (Vresize_mini_config, resize_mini_frame,
26901792
DL
8284 resize_mini_initial_height): Add extern declarations.
8285
8286 * xterm.c (expose_window_tree): Fix typo CANON_Y_UNIT to
8287 CANON_X_UNIT.
8288
8289 * xfns.c [HAVE_JPEG]: Work around a warning about HAVE_STDLIB_H
8290 being redefined in jconfig.h.
8291
82921999-08-23 Ken'ichi Handa <handa@gnu.org>
8293
8294 * coding.h: Include "ccl.h" instead of "../src/ccl.h".
8295
82961999-08-22 Gerd Moellmann <gerd@gnu.org>
8297
8298 * alloc.c (mark_glyph_matrix): Mark strings only.
8299
8300 * xdisp.c (redisplay_internal): Clear garbaged frames after
8301 resizing mini-window.
8302
83031999-08-22 Gerd Moellmann <gerd@gnu.org>
8304
8305 * xdisp.c (unwind_with_echo_area_buffer): Use
8306 set_buffer_internal_1 instead of set_buffer_internal.
8307 (with_echo_area_buffer): Ditto.
8308
8309 * buffer.c (set_buffer_internal): Set windows_or_buffers_changed
8310 only if buffer is displayed somewhere.
8311
8312 * buffer.h (BUF_COMPUTE_UNCHANGED): New.
8313
8314 * insdel.c (gap_left): Use BUF_COMPUTE_UNCHANGED.
8315 (gap_right): Ditto.
8316 (modify_region): Ditto.
8317
8318 * buffer.c (modify_overlay): Use BUF_COMPUTE_UNCHANGED.
8319
8320 * xdisp.c (Vresize_mini_config): New.
8321 (resize_mini_window): Use it to save restore original window
8322 configuration
8323 (syms_of_xdisp): Initialize it.
8324
8325 * buffer.h (struct buffer): Add prevent_redisplay_optimizations_p.
8326
8327 * dispextern.h (struct glyph_matrix): Add buffer, begv, and zv.
8328
8329 * xdisp.c (reconsider_clip_changes): New.
8330 (redisplay_internal, redisplay_window): Call it.
8331 (mark_window_display_accurate, redisplay_internal): Set current
8332 matrix' buffer, begv, zv.
8333
8334 * window.c (Fset_window_hscroll): Set
8335 prevent_redisplay_optimizations_p instead of clip_changed.
8336 (Fset_window_hscroll): Ditto.
8337 (temp_output_buffer_show): Ditto.
8338 (Fset_window_vscroll): Ditto.
8339
8340 * buffer.c (reset_buffer): Set clip_changed to 0 and
8341 prevent_redisplay_optimizations_p to 1.
8342 (Fget_buffer_create): Set prevent_redisplay_optimizations_p to 1.
8343
8344 * buffer.h (BUF_UNCHANGED_MODIFIED, UNCHANGED_MODIFIED,
8345 BUF_OVERLAY_UNCHANGED_MODIFIED, OVERLAY_UNCHANGED_MODIFIED,
8346 BUF_BEG_UNCHANGED, BEG_UNCHANGED, BUF_END_UNCHANGED,
8347 END_UNCHANGED): New.
8348 (struct buffer_text): Add beg_unchanged, end_unchanged,
8349 unchanged_modified, overlay_unchanged_modified.
8350
8351 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
8352 overlay_unchanged_modified): Removed.
8353 (with_echo_area_unwind_data): Don't save beg/end_unchanged.
8354 (unwind_with_echo_area_buffer): Don't restore them.
8355 (debug_beg_unchanged, debug_end_unchanged) [GLYPH_DEBUG]: Removed.
8356 (text_outside_line_unchanged_p, redisplay_internal,
8357 try_scrolling): Use/set buffer-specific beg/end_unchanged.
8358 (redisplay_window): Let try_window_id be called if more than one
8359 window is displayed. Use/set buffer-specific beg/end_unchanged.
8360 (get_last_unchanged_at_beg_row, get_first_unchanged_at_end_row,
8361 try_window_id):
8362 Use buffer-specific beg/end_unchanged.
8363
8364 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
8365 overlay_unchanged_modified): Remove extern declarations.
8366
8367 * keyboard.c (command_loop_1): Set beg/end_unchanged per
8368 buffer.
8369
8370 * insdel.c (gap_left): Compute beg/end_unchanged per buffer.
8371 (gap_right): Ditto.
8372 (adjust_after_replace): Likewise.
8373 (replace_range, del_range_2, modify_region): Likewise.
8374
8375 * dispnew.c (direct_output_for_insert): Set beg_unchanged
8376 and unchanged_modified per buffer.
8377
8378 * coding.c (code_convert_region): Compute beg/end_unchanged per
8379 buffer.
8380
8381 * buffer.c (modify_overlay): Compute beg/end_unchanged
8382 per buffer.
427ec082 8383 (Fget_buffer_create): Initialize new members of the buffer
26901792
DL
8384 structure.
8385
83861999-08-22 Gerd Moellmann <gerd@gnu.org>
8387
8388 * lisp.h: Add prototype for copy_hash_table and Fcopy_hash_table.
8389
8390 * fns.c (Qkey, Qvalue): Renamed from Qkey_weak, and Qvalue_weak.
8391 (Qkey_value_weak): Removed.
8392 (make_hash_table): Use nil, `key', `value', t for weakness.
8393 (Fmake_hash_table): Ditto.
8394 (copy_hash_table): New.
8395 (Fcopy_hash_table): New.
8396
83971999-08-22 Gerd Moellmann <gerd@gnu.org>
8398
8399 * xfns.c: Call change_frame_size and do_pending_window_change with
d7d0dac0 8400 new parameter.
26901792
DL
8401
84021999-08-21 Gerd Moellmann <gerd@gnu.org>
8403
8404 * xdisp.c (resize_mini_window): Do it for truncate-lines t as
8405 well.
427ec082 8406 (redisplay_internal): Resize mini-window only if text might
26901792
DL
8407 have changed.
8408 (display_echo_area): Reset displayed echo_area_buffer to nil
8409 at the end if we're displaying a nil message.
8410
84111999-08-21 Gerd Moellmann <gerd@gnu.org>
427ec082 8412
26901792
DL
8413 * fns.c (hash_lookup): Test with EQ before calling key comparion
8414 function.
8415 (hash_remove): Ditto.
8416 (cmpfn_eq): Removed.
8417 (cmpfn_eql): Don't test with EQ.
8418 (cmpfn_equal): Ditto.
8419 (make_hash_table): Set comparison function for `eq' to null.
8420
8421 * buffer.c, cmds.c, editfns.c, indent.c, insdel.c, buffer.h:
8422 Remove conditional compilation on NO_PROMPT_IN_BUFFER.
8423
8424 * dispextern.h (NO_PROMPT_IN_BUFFER): Removed.
8425
8426 * window.c, widget.c, process.c, keyboard.c, frame.c, xdisp.c,
8427 xterm.c: Call change_frame_size and do_pending_window_change with
8428 new parameter.
8429
8430 * dispnew.c (do_pending_window_change): Add parameter `safe'.
8431 (change_frame_size): Ditto.
8432 (change_frame_size_1): Ditto. Deley size changes if redisplaying
8433 and not called from a safe place.
8434 (window_change_signal): Call change_frame_size with new parameter.
8435
8436 * dispextern.h: Change prototypes for do_pending_window_change
8437 and change_frame_size.
8438
8439 * xfaces.c (face_at_buffer_position): Don't xassert that
427ec082 8440 window's buffers equals current_buffer; this is not the
26901792
DL
8441 case during echo area display.
8442
84431999-08-21 Gerd Moellmann <gerd@gnu.org>
8444
8445 * xdisp.c, minibuf.c: Remove conditional compilation on
8446 NO_PROMPT_IN_BUFFER.
8447
8448 * minibuf.c (Fminibuffer_prompt_end): New.
8449 (syms_of_minibuf): Defsubr it. Remove
8450 minibuffer-prompt-in-buffer.
8451 (Fminibuffer_prompt_width): Return 0 if not in mini-buffer.
8452 Extend documentation.
8453
8454 * xdisp.c (get_next_display_element): Display \r as ^M.
8455
8456 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Clear
8457 under scroll bar widget.
8458
84591999-08-21 Gerd Moellmann <gerd@gnu.org>
8460
8461 * xdisp.c (minibuffer_scroll_overlap): Removed because not used
8462 anywhere.
8463 (unwind_redisplay): Return nil.
8464 (clear_garbaged_frames): New.
8465 (redisplay_internal): Use it.
8466 (echo_area_display): Ditto.
8467 (resize_mini_window): Mew.
8468 (display_echo_area_1): Use it to resize echo area window.
8469 (redisplay_internal): Use it to resize active mini-window.
8470
8471 * dispextern.h, lisp.h: Add function prototypes.
8472
427ec082 8473 * dispnew.c (set_window_cursor_after_update): Do the
26901792
DL
8474 cursor_in_echo_area case only for a mini-window showing
8475 a message. Don't let cursor end up after the end of a row.
8476
8477 * xdisp.c (echo_area_glyphs, echo_area_message,
8478 echo_area_glyphs_length, previous_echo_glyphs,
8479 previous_echo_area_message, previous_echo_area_glyphs_length):
8480 Removed.
8481 (Vmessage_stack, echo_area_buffer, echo_buffer,
8482 display_last_displayed_message_p, Vwith_echo_area_save_vector): New.
8483 (message2_nolog): Use set_message and clear_message.
8484 (message3): Rename parameter len to nbytes to make clear what
8485 it is.
8486 (message3_nolog): Ditto. Use set_message and clear_message.
8487 (update_echo_area): Rewritten.
8488 (with_echo_area_buffer): New.
8489 (with_echo_area_buffer_unwind_data, unwind_with_area_buffer): New.
8490 (setup_echo_area_for_printing): New.
8491 (display_echo_area, display_echo_area_1): New.
8492
8493 (current_message, current_message_1): New.
427ec082 8494 (push_message, restore_message, pop_message,
26901792
DL
8495 check_message_stack): New.
8496 (truncate_echo_area): Rewritten.
8497 (truncate_message_1): New.
8498 (set_message, set_message_1, clear_message): New.
8499 (echo_area_display): Rewritten.
8500 (redisplay_internal): Check for needed echo area update
8501 differently.
8502 (redisplay_preserve_echo_area): Rewritten.
427ec082 8503 (redisplay_window): Check for mini-window displaying echo area
26901792
DL
8504 message differently.
8505 (syms_of_xdisp): Initialize Vmessage_stack and echo area buffers.
8506 Remove initialzation of removed variables.
8507 (init_xdisp): Remove references to removed variables.
8508
8509 * dispnew.c (adjust_frame_message_buffer): Removed references
8510 to echo_area_glyphs and previous_echo_glyphs.
8511 (direct_output_for_insert): Check for mini-window displaying
8512 echo area message differently.
8513 (update_frame): Likewise.
8514 (set_window_cursor_after_update): Likewise. In echo area,
8515 don't try to set cursor on rows that aren't enabled.
8516
8517 * print.c: Remove conditional compilation on `standalone'.
8518 (glyph_len, str_to_glyph_cpy, str_to_glyph_ncpy,
427ec082 8519 glyph_to_str_cpy): Remove that section because GLYPHs are no
26901792
DL
8520 longer used in that way.
8521 (PRINTDECLARE): Add multibyte.
8522 (PRINTPREPARE, PRINTFINISH): Handle printcharfun t differently.
8523 (printbufidx): Removed.
8524 (printchar, strout): Rewritten.
8525
8526 * keyboard.c (ok_to_echo_at_next_pause): Make it a pointer to
8527 a struct kboard.
8528 (echo_kboard): New.
8529 (echo_now): Set echo_kboard to the current kboard.
8530 (cancel_echoing): Set echo_kboard to null.
8531 (cmd_error_internal): Use clear_message, remove references
8532 to echo_area_glyphs and echo_area_message.
8533 (command_loop_1): Check for echo area messages differently.
8534 (read_char): Likewise.
8535 (record_menu_key): Use clear_message.
8536 (Fexecute_extended_command): Check for echo area messages
8537 differently. Use push_message, restore_message, pop_message.
8538
8539 * alloc.c (Fgarbage_collect): Use push_message, restore_message,
8540 pop_message.
8541
8542 * emacs.c (shut_down_emacs): Call check_message_stack.
8543
8544 * lisp.h: Add function prototypes and extern declarations for
8545 new functions and variables.
8546
8547 * fileio.c (Fdo_auto_save): Use push_message, restore_message,
8548 pop_message.
8549
427ec082 8550 * minibuf.c (read_minibuf): Use clear_message instead of
26901792
DL
8551 setting echo_area_glyphs.
8552 (Fminibuffer_completion_help): Ditto.
8553
8554 * editfns.c (Fcurrent_message): Rewritten.
8555
8556 * frame.c, window.h: Remove references to echo_area_glyphs
8557 and previous_echo_glyphs.
8558
85591999-08-21 Dave Love <fx@gnu.org>
8560
8561 * aix3-2-5.h (C_DEBUG_SWITCH): Use -g -O.
8562 * aix4-1.h: Likewise.
8563
8564 * irix6-5.h (C_DEBUG_SWITCH): Set for debug and optimize.
8565
85661999-08-20 Gerd Moellmann <gerd@gnu.org>
8567
8568 * xfns.c: Remove tiff34 prefix from include.
8569
85701999-08-20 Dave Love <fx@gnu.org>
8571
8572 * cm.c: Revert previous change.
8573
85741999-08-19 Gerd Moellmann <gerd@gnu.org>
8575
8576 * xterm.c (XTset_vertical_scroll_bar): Fix previous change. Clear
8577 under scroll bar with width FRAME_SCROLL_BAR_COLS.
8578
85791999-08-18 Dave Love <fx@gnu.org>
8580
8581 * callproc.c, filelock.c, insdel.c, sysdep.c, xmenu.c: Use
8582 stdlib.h.
8583
8584 * doprnt.c: Use stdlib.h, unistd.h.
8585
8586 * config.in: Add HAVE_TERMCAP_H.
8587
8588 * cm.c: Use termcap.h.
8589
85901999-08-18 Gerd Moellmann <gerd@gnu.org>
8591
8592 * xfns.c (x_window) [USE_X_TOOLKIT]: Remove test for
8593 FRAME_X_WINDOW (f) being null at the of the function. If widgets
8594 cannot be created we will already have crashed earlier. Call
8595 lw_set_main_areas with a null menu-bar widget, so that we have
8596 a reasonable default.
8597 (Fx_create_frame): Rearranged so that Lisp errors during frame
8598 initialization cause less damage. Initialize menu bar widget
8599 here.
8600
86011999-08-18 Gerd Moellmann <gerd@gnu.org>
427ec082 8602
26901792
DL
8603 * dispnew.c (update_frame_line): Fix previous change. If writing
8604 whole line clear to end of frame.
8605
86061999-08-17 Gerd Moellmann <gerd@gnu.org>
8607
8608 * window.c (Fcoordinates_in_window_p): Return `left-bitmap-area'
8609 and `right-bitmap-area' if position is in the bitmap areas. This
8610 avoids an error when clicking on the bitmap areas. Instead, they
8611 are currently treated like clicks inside the window.
8612 (coordinates_in_window): Return 5 and 6 for bitmap areas.
8613 (Qleft_bitmap_area, Qright_bitmap_area): New.
8614 (syms_of_window): Initialize new symbols.
8615
8616 * dispnew.c (update_frame_line): If writing whole line,
8617 don't write trailing spaces unless we must.
8618
8619 * xdisp.c (unwind_redisplay): New. Resets flag redisplaying_p.
8620 (redisplay_internal): Register unwind_redisplay with
8621 register_unwind_protect.
8622 (try_window_reusing_current_matrix): If new start > old start,
8623 give up if start pos of first reusable row is not equal to new
8624 start.
8625
8626 * eval.c (Fsignal): Don't reset redisplaying_p here.
8627
8628 * xterm.c (expose_area): If row extends face to end of line,
8629 write the whole line.
8630
86311999-08-16 Gerd Moellmann <gerd@gnu.org>
8632
8633 * dispextern.h (struct it): Remove member
8634 show_trailing_whitespace_p.
8635
8636 * dispnew.c (direct_output_for_insert): Use
8637 Vshow_trailing_whitespace instead of former iterator member
8638 show_trailing_whitespace_p.
8639 (direct_output_forward_char): Don't do it if hightlighting
8640 trailing whitespace.
8641
8642 * xdisp.c (Qshow_trailing_whitespace): Removed.
8643 (Vshow_trailing_whitespace): Added.
8644 (init_iterator): Remove initialization code for
8645 show_trailing_whitespace_p.
8646 (redisplay_internal): Don't try cursor movement in this_line
8647 if showing trailing whitespace.
8648 (redisplay_window): Likewise for cursor movement in current
8649 matrix and try_window_id.
8650 (try_window_reusing_current_matrix): Likewise.
8651 (trailing_whitespace_p): Return 0 if trailing whitespace is
8652 in front of point.
8653 (display_line): Use Vshow_trailing_whitespace instead of
8654 former iterator member show_trailing_whitespace_p.
8655 (syms_of_xdisp): Add DEFVAR_LISP for show-trailing-whitespace.
8656
86571999-08-16 Gerd Moellmann <gerd@gnu.org>
8658
8659 * window.c (Fpos_visible_in_window_p): Rewritten.
8660
8661 * xfaces.c (add_to_log): Renamed from display_message.
8662 Don't display messages in echo area.
8663
8664 * xterm.c (x_draw_glyph_string_box): Use the background width
8665 of the glyph string for the width of the box.
8666
86671999-08-16 Stefan Monnier <monnier@cs.yale.edu>
8668
8669 * syntax.c (Fforward_comment): Set comstyle for Scomment_fence.
8670
86711999-08-16 Geoff Voelker <voelker@cs.washington.edu>
8672
8673 * xfns.c, w32fns.c (x_set_frame_parameters): Set foreground and
8674 background first, and then set other parameters that might
8675 depend upon their new values.
8676
86771999-08-15 Gerd Moellmann <gerd@gnu.org>
8678
8679 * xfaces.c (Vfont_list_limit): New.
8680 (syms_of_xfaces): Make it a user-variable.
8681 (DEFAULT_FONT_LIST_LIMIT): New.
8682 (sorted_font_list): If Vfont_list_limit is an integer > 0, list
8683 maximally that number of fonts, otherwise use
8684 DEFAULT_FONT_LIST_LIMIT.
427ec082 8685 (Fx_font_family_list): Bind `font-list-limit' to higher values
26901792
DL
8686 until we have all fonts.
8687 (Fxfont_list): Additionally return the full names of fonts and
8688 their registry and encoding.
8689
427ec082 8690 * xterm.c (XTset_vertical_scroll_bar) [USE_TOOLKIT_SCROLL_BARS]:
26901792
DL
8691 Simplify clearing "under" scroll bar.
8692
8693 * window.c (Qfixed_window_size): New.
8694 (syms_of_window): Initialiaze it.
8695 (check_all_windows): Add return type void.
8696 (window_fixed_size_p): New. Return non-zero if window
8697 is fixed-size.
8698 (window_min_size_1): New.
8699 (window_min_size): Handle fixed-size windows.
8700 (size_window): New. Rewritten combination of set_window_height and
8701 set_window_width that handles fixed-size windows.
8702 (set_window_height): Call it.
8703 (set_window_width): Call it.
8704 (Fsplit_window): Give an error on attempt to split a fixed-size
8705 window.
8706 (change_window_height): Partly rewritten to handle fixed-size
8707 windows.
8708
87091999-08-13 Wolfgang Rupprecht <wolfgang@wsrcc.com>
8710
8711 * process.c (Fopen_network_stream): Fix previous change.
8712
87131999-08-13 Karl Heuer <kwzh@gnu.org>
8714
8715 * xdisp.c (line_number_display_limit_width): New var.
8716 (decode_mode_spec): Use it instead of hardcoded value.
8717 (syms_of_xdisp): Defvar it.
8718
87191999-08-13 Richard M. Stallman <rms@gnu.org>
8720
8721 * eval.c (run_hook_list_with_args): Gcpro `globals'.
8722 (run_hook_with_args): Likewise.
8723
8724 * window.h (struct window): New field too_small_ok.
8725
427ec082 8726 * window.c (set_window_height, set_window_width):
26901792
DL
8727 If window starts out "too small", set its too_small_ok flag.
8728 If window's too_small_ok flag is set, don't delete it
8729 unless it is so small it would cause a crash.
8730
87311999-08-13 Gerd Moellmann <gerd@gnu.org>
8732
8733 * window.c (MINSIZE): Removed.
8734 (window_min_size): New.
8735 (set_window_height): Use window_min_size.
8736 (change_window_height): Ditto.
8737
87381999-08-12 Gerd Moellmann <gerd@gnu.org>
8739
8740 * indent.c (vmotion): Don't add in mini-buffer prompt width
8741 if prompts are inserted into mini-buffer.
8742
87431999-08-12 Wolfgang Rupprecht <wolfgang@wsrcc.com>
8744
8745 * config.in: Add HAVE_GETADDRINFO.
8746 * process.c (Fopen_network_stream): Use getaddrinfo.
8747
87481999-08-11 Gerd Moellmann <gerd@gnu.org>
8749
8750 * xdisp.c (get_overlay_arrow_glyph_row): Set the charpos of
8751 glyphs to -1.
8752
8753 * xdisp.c (face_before_or_after_it_pos): If position after
8754 or before iterator's current position in the buffer is out
8755 of bounds, return the iterator's original face id.
8756
8757 * dispnew.c (mirror_make_current): If desired row isn't enabled,
8758 just swap glyphs pointers between current and desired row.
8759 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Copy
8760 desired matrix method string to current matrix.
8761
87621999-08-11 Kenichi Handa <handa@etl.go.jp>
8763
8764 * lisp.h (CHAR_MODIFIER_MASK): New macro.
8765
8766 * lread.c (read_escape): For Control modifier, pay attention to
8767 multibyte character.
8768 (read1): Likewise. Singal error or a multibyte character which
8769 has a modifer bit. Check validity of Shift modifer.
8770
8771 * charset.c (non_ascii_char_to_string): Handle modifier bits as
8772 the same as Lisp reader.
8773
87741999-08-10 Richard M. Stallman <rms@gnu.org>
8775
8776 * charset.h (BCOPY_SHORT): Fix typo `unsigined'.
8777
87781999-08-10 Alexandre Oliva <oliva@dcc.unicamp.br>
8779
8780 * unexelf.c [__linux__ && __alpha__] (HAS_SBSS_SECTION): Define.
8781
87821999-08-10 Eli Zaretskii <eliz@gnu.org>
8783
8784 * msdos.c (IT_set_face): Abort if the default face is not realized
8785 and cached.
8786 (IT_write_glyphs): Reset the screen face to the default face
8787 before writing glyphs.
8788
8789 * xfaces.c (realize_default_face) [MSDOS]: Don't take default
8790 colors from the frame here.
8791 (realize_tty_face) [MSDOS]: Do it here. Update the face
8792 attributes with the actual name of the color taken from the
8793 frame.
8794
8795 * dosfns.c (msdos_stdcolor_name): Remove const from return value.
8796 * dosfns.h (msdos_stdcolor_name): Ditto for the prototype.
8797
8798 * frame.c (Fframe_parameters): Swap foreground and background
8799 colors returned in frame parameters if the frame has reverse in
8800 its parameter alist.
8801 (Fmake_terminal_frame): Make a unique copy of face_alist for
8802 each frame.
8803
88041999-08-07 Richard Stallman <rms@gnu.org>
8805
8806 * buffer.c (Fprevious_overlay_change): Just return
8807 the answer obtained from overlays_at.
8808
8809 * xfns.c (xpm_load) [!XpmAllocCloseColors]:
8810 Use XpmCloseness and attrs.closeness instead.
8811
88121999-08-06 Richard Stallman <rms@gnu.org>
8813
8814 * lread.c (Feval_buffer): New arg DO_ALLOW_PRINT.
8815
88161999-08-06 Geoff Voelker <voelker@cs.washington.edu>
8817
427ec082 8818 * dired.c (directory_files_internal, Fdirectory_files_and_attributes,
26901792
DL
8819 Ffile_attributes_lessp): New functions.
8820 (Fdirectory_files): Use directory_files_internal.
8821 (syms_of_dired): Initialize Fdirectory_files_and_attributes,
8822 Ffile_attributes_lessp.
8823
8824 * w32.c (stat): Check for directory ending in separator when
8825 doing readdir fast path.
8826
8827 * w32fns.c (x_set_icon_type): Support setting frame icons.
8828 * w32term.c (x_bitmap_icon): New function.
8829 (x_make_frame_visible, x_iconify_frame): Invoke x_bitmap_icon.
427ec082 8830
26901792
DL
88311999-08-06 Gerd Moellmann <gerd@gnu.org>
8832
8833 * xdisp.c (set_iterator_to_next): After delivering a character
8834 from a display vector, restore face and charset to what they were
8835 before the display vector was processed.
8836
88371999-08-06 Gerd Moellmann <gerd@gnu.org>
8838
8839 * xdisp.c (reseat_at_next_visible_line_start): New parameter
8840 on_newline_p.
8841 (set_iterator_to_next): After delivering last char
427ec082 8842 from display vector, reseat on next visible line start if
26901792
DL
8843 dpvec_char_len < 0.
8844 (next_element_from_buffer): Set dpvec_char_len to -1 for
8845 selective display.
8846
88471999-08-06 Gerd Moellmann <gerd@gnu.org>
8848
8849 * xdisp.c (compute_line_metrics): If first line's physical ascent
8850 is larger than its logical ascent, use the physical ascent, and
8851 make the row taller. Set row's overlapping_p flag.
8852
8853 * dispnew.c (redraw_overlapping_rows): Use flag overlapping_p.
8854 (direct_output_for_insert): Ditto.
8855
8856 * dispextern.h (struct glyph_row): Add overlapping_p.
8857
8858 * xterm.c (x_draw_phys_cursor_glyph): Redraw overlaps.
8859
8860 * dispextern.h (MATRIX_ROW_OVERLAPS_PRED_P): New.
8861 (MATRIX_ROW_OVERLAPS_SUCC_P): New.
8862
8863 * dispnew.c (direct_output_for_insert): Don't use this method if
8864 row is overlapped by others.
8865 (update_text_area): Write full line if current line is overlapped.
8866 (redraw_overlapped_rows): New.
8867 (update_window): Call it.
8868 (redraw_overlapping_rows): New.
8869 (update_window): Call it.
8870 (scrolling_window): Make sure overlapped_p flag in current rows is
8871 unchanged.
8872 (row_equal_p): Take rows overlapped_p flag into account.
8873
8874 * dispextern.h (struct glyph_row): Add flag overlapped_p.
8875
8876 * xterm.c (x_fix_overlapping_area): New.
8877 (x_redisplay_interface): Add x_fix_overlapping_area.
8878
8879 * dispnew.c (adjust_glyphs): Block input while adjusting matrices.
8880
88811999-08-06 Gerd Moellmann <gerd@gnu.org>
8882
8883 * xterm.c (x_draw_glyphs): Add parameter overlaps_p.
8884 (struct glyph_string): Add member for_overlaps_p.
8885 (x_get_glyph_string_clip_rect): If glyph string draws foreground
8886 of overlapping rows, clip to window bottom.
8887 (x_fill_glyph_string): Add parameter overlaps_p.
8888 (x_fill_composite_glyph_string): Ditto.
8889 (BUILD_GLYPH_STRINGS): Ditto.
8890 (BUILD_CHAR_GLYPH_STRINGS): Ditto.
8891 (x_draw_glyph_string): Don't draw anything but the foreground
8892 if glyph string draws row overlaps.
8893
8894 * dispnew.c (direct_output_for_insert): Don't use this
8895 optimization for rows that overlap others.
8896 (update_window_line): Return non-zero if display has changed.
8897 (update_text_area): Ditto.
8898 (update_window): Record if display has been changed.
8899
8900 * dispextern.h (MATRIX_ROW_OVERLAPPING_P): New.
8901
8902 * dispextern.h (struct redisplay_interface): Add
8903 fix_overlapping_area.
8904
8905 * xterm.c (x_append_glyph): Set glyph flag overlaps_vertically_p.
8906
8907 * dispextern.h (struct glyph): Add overlaps_vertically_p.
8908
8909 * xterm.c (x_produce_image_glyph): Compute iterator's physical
8910 ascent and descent.
8911 (x_produce_stretch_glyph): Ditto.
8912 (x_produce_glyphs): Ditto.
8913
8914 * xdisp.c (init_iterator): Reset physical line height info
8915 after producing special glyphs.
8916 (display_toolbar_line): Set physical line height info.
8917 (compute_line_metrics): Ditto.
8918 (display_line): Ditto.
8919 (display_string): Ditto.
8920
8921 * term.c (produce_glyphs): Set iterator's physical height
8922 information.
8923
8924 * dispnew.c (blank_row): Compute glyph row's physical height.
8925 (row_equal_p): Take physical row heights into account.
8926 (direct_output_for_insert): Ditto.
8927 (update_text_area): Ditto.
8928
8929 * dispextern.h (struct glyph_row): Add phys_ascent and
8930 phys_height.
8931 (struct it): Add phys_ascent, phys_descent, max_phys_ascent,
8932 max_phys_descent.
8933
89341999-08-04 Stefan Monnier <monnier@cs.yale.edu>
8935
8936 * buffer.c (switch_to_buffer_1): New subroutine, taken out from
8937 Fswitch_to_buffer.
8938 (no_switch_buffer): New function.
8939 (Fswitch_to_buffer): Call them. Don't get confused
8940 by "same-window" buffers in a dedicated frame.
8941
8942 * window.c (display-buffer): Don't get confused
8943 by "same-window" buffers in a dedicated frame.
8944
89451999-08-04 Andreas Schwab <schwab@gnu.org>
8946
8947 * insdel.c (insert_from_string_1): Check gap size against number
8948 of outgoing bytes, not incoming bytes.
8949
89501999-08-03 Tom Breton <tob@world.std.com>
8951
8952 * lread.c (read1): Added circular reading code to #N=.
8953 (SUBSTITUTE): New macro.
8954 (seen_list): New variable.
8955 (substitute_object_in_subtree): New function.
8956 (substitute_object_recurse): New function.
8957 (substitute_in_interval): New function.
8958
89591999-08-02 Eli Zaretskii <eliz@gnu.org>
8960
8961 * Makefile.in (frame.o, sysdep.o, xfaces.o): Depend on dosfns.h.
8962
8963 * frame.c (make_terminal_frame): Don't call init_frame_faces if
8964 noninteractive, for termcap frames as well.
8965
8966 * sysdep.c (init_sys_modes): Call init_frame_faces for termcap
8967 frames.
8968
89691999-08-01 Richard Stallman <rms@gnu.org>
8970
8971 * fns.c (internal_equal): Correct overlay comparison.
8972
83c8f461 89731999-07-31 Richard M. Stallman <rms@gnu.org>
26901792 8974
427ec082 8975 * xfns.c (x_set_internal_border_width):
26901792
DL
8976 Call do_pending_window_change. Don't block input, don't call XFlush.
8977 (x_set_vertical_scroll_bars): Call do_pending_window_change.
8978 (x_set_scroll_bar_width, x_set_font): Likewise.
8979
8980 * frame.c (Fset_frame_height): Call do_pending_window_change.
8981 (Fset_frame_width, Fset_frame_size): Likewise.
8982
8983 * xterm.c (x_set_window_size): When calling change_frame_size,
8984 specify 1 for DELAY.
8985
8986 * widget.c (EmacsFrameSetCharSize): Don't call
8987 do_pending_window_change here.
8988
89891999-07-30 Dave Love <fx@gnu.org>
8990
8991 * config.in: Add HAVE_STDLIB_H.
8992
89931999-07-30 Richard M. Stallman <rms@gnu.org>
8994
8995 * process.c (create_process): Detect failure of `pipe'.
8996
89971999-07-30 Keisuke Nishida <kei@psn.net>
8998
8999 * alloc.c (allocate_vectorlike): Add missing increment.
9000
9001 * data.c (Fdefalias): Call Ffset instead of duplicating code.
9002
9003 * keymap.c (get_keymap_1, get_keyelt): Check the type of OBJECT
9004 before calling indirect_function.
9005
90061999-07-30 Eli Zaretskii <eliz@gnu.org>
9007
9008 * dispextern.h (load_color, lookup_derived_face): Declare
9009 prototypes.
9010
9011 * dispnew.c (init_display) [MSDOS]: Don't initialize frame faces,
9012 it will be done later.
9013
9014 * frame.c (make_terminal_frame) [MSDOS]: Don't call
9015 init_frame_faces if non-interactive.
9016 (Fframe_parameters) [MSDOS]: Replace indexing into colornames[]
9017 array with a call to msdos_stdcolor_name. The font name is now
9018 "ms-dos", consistent with realize_tty_face.
9019
9020 * keyboard.c (cmd_error_internal): Don't kill Emacs if this is an
9021 MSDOS frame.
9022
9023 * window.c (Fset_window_configuration) [MSDOS]: Don't call
9024 x_set_toolbar_lines.
9025
9026 * xfaces.c (load_color): Remove static from definition and remove
9027 prototype.
9028 [MSDOS]: Add a DOS-specific version of load_color.
9029 (lookup_face): Replace FRAME_TERMCAP_P with !FRAME_WINDOW_P.
9030 (lookup_derived_face): New function.
9031 (realize_default_face): Support MSDOS frames.
9032 [MSDOS]: If fore/background colors are unspecified, inherit them
9033 from the frame.
9034 (realize_face): Support MSDOS frames.
9035 (realize_tty_face): Support MSDOS frames.
9036 [MSDOS]: If the face color is not in Vface_tty_color_alist, call
9037 load_color to try to find a suitable approximation. If the face
9038 is inverse-video, swap the foreground and background colors.
9039
9040 * dosfns.c (msdos_stdcolor_name, msdos_stdcolor_idx): New
9041 functions.
9042
9043 * dosfns.h (msdos_stdcolor_name, msdos_stdcolor_idx): Declare.
9044
9045 * msdos.h: Remove redundant declarations (most of them are now in
9046 dispextern.h).
9047
9048 * msdos.c (IT_set_face): Rewritten for the new redisplay engine.
9049 Use default frame colors if the face doesn't specify them; invert
9050 the colors if highlight is ON.
9051 (IT_write_glyphs): Rewritten for the new redisplay engine.
9052 (IT_change_line_highlight): Add (unused) parameter Y, since that's
9053 how the hook is called by term.c.
9054 (IT_copy_glyphs): New function, copies an area of the display in
9055 video RAM.
9056 (IT_insert_glyphs): Rewritten to DTRT instead of aborting, since
9057 redisplay now calls it even if char_ins_del_ok is zero.
9058 (IT_set_frame_parameters): Prototype changed. Calls the new
9059 load_color. Puts the new fore/background colors into the default
9060 face on current frame.
9061 (IT_menu_display): Rewritten to handle the new struct glyph
9062 instead of a char array.
9063 (XMenuActivate): Call lookup_derived_face to create and use
9064 special faces for the pop-up and drop-down menus.
9065
90661999-07-29 Gerd Moellmann <gerd@gnu.org>
9067
9068 * xterm.c (x_set_toolkit_scroll_bar_thumb): Don't call
9069 XawScrollbarSetThumb if thumb parameters haven't changed because
9070 that function apparently isn't optimized for this case.
9071
90721999-07-29 Eli Zaretskii <eliz@gnu.org>
9073
9074 * msdos.c (getdefdir): Don't return failure indication when
9075 _fixpath sets errno to ENOSYS.
9076
90771999-07-28 Gerd Moellmann <gerd@gnu.org>
9078
9079 * xdisp.c (string_char_and_length): New. Use it everywhere
9080 instead of STRING_CHAR_AND_LENGTH in xdisp.c.
9081
90821999-07-28 Kenichi Handa <handa@etl.go.jp>
9083
9084 * fns.c (count_combining): New function.
9085 (struct textprop_rec): New structure.
9086 (concat): Copy text properties correctly when byte combining
9087 occurs.
9088
90891999-07-28 Gerd Moellmann <gerd@gnu.org>
9090
9091 * xterm.c (x_setup_relief_color): Don't try smart color allocation
9092 if display is mono.
9093 (x_draw_row_bitmaps): If face has stipple, don't switch
9094 to foreground color for clearing areas, and set the fill style.
9095
9096 * xfaces.c (load_face_colors): Load background color if setting
9097 stipple, too.
427ec082 9098 (prepare_face_for_display): Use FillOpaqueStippled instead of
26901792
DL
9099 FillStippled.
9100
91011999-07-26 Ken'ichi Handa <handa@gnu.org>
9102
9103 * xterm.c (x_find_ccl_program): Add casting.
9104
9105 * w32fns.c (w32_find_ccl_program): Add casting.
9106
91071999-07-27 Gerd Moellmann <gerd@gnu.org>
9108
9109 * dispextern.h (struct glyph_row): Flag internal_border_p removed.
9110
9111 * xfns.c (x_create_tip_frame): Don't set bitmapIcon resource
9112 because this will try to access a nonexisting widget.
9113
91141999-07-26 Markus Rost <rost@gnu.org>
9115
427ec082 9116 * fns.c (Fgethash): Fix order of variables (patch by gerd).
26901792
DL
9117 (Fputhash): Ditto.
9118 (Fremhash): Ditto.
9119
91201999-07-26 Gerd Moellmann <gerd@gnu.org>
427ec082 9121
26901792
DL
9122 * widget.c (EmacsFrameSetCharSize): Don't add XtNborderWidth
9123 value to frame width and height.
9124
9125 * xterm.c (x_get_glyph_string_clip_rect): Take internal border
9126 into account for full-width windows. Don't add scroll bar width
9127 to width of clip rect.
9128 (x_draw_glyph_string_box): Add 1 to right x of full width lines.
9129 (x_set_glyph_string_background_width): Add 1 to background width.
9130 (x_draw_glyphs): Take internal border into account for full-width
9131 lines.
9132
91331999-07-26 Richard M. Stallman <rms@gnu.org>
9134
9135 * xfns.c (x_set_mouse_color): Always unload the old color.
9136 Don't allow nil as color value.
427ec082 9137 (x_set_cursor_color, x_set_background_color, x_set_foreground_color):
26901792
DL
9138 Always unload the old color.
9139
9140 * indent.c (Fmove_to_column): Extend end of line only if FORCE is t.
9141
91421999-07-26 Karl Heuer <kwzh@gnu.org>
9143
9144 * fns.c (Fy_or_n_p): Doc fix.
9145
91461999-07-26 Kenichi Handa <handa@etl.go.jp>
9147
9148 * ccl.h (setup_ccl_program): The type is changed to `int'.
9149
9150 * ccl.c (ccl_driver) <CCL_Call>: Now CCL program ID to call may be
9151 stored in the following CCL code. Adjusted for the change of
9152 Vccl_program_table.
9153 (resolve_symbol_ccl_program): Adjusted for the new style of
9154 embedded symbols (SYMBOL . PROP) in CCL compiled code. Return Qt
9155 is resolving failed.
9156 (ccl_get_compiled_code): New function.
9157 (setup_ccl_program): Function type changed from `void' to `int'.
9158 Resolve symbols in CCL_PROG.
9159 (Fccl_program_p): New function.
9160 (Fccl_execute): Get compiled CCL code by just calling
9161 setup_ccl_program.
9162 (Fccl_execute_on_string): Likewise.
9163 (Fregister_ccl_program): Adjusted for the change of
9164 Vccl_program_table.
9165
9166 * coding.c (setup_coding_system): Get compiled CCL code by just
9167 calling setup_ccl_program.
9168
9169 * xterm.c (x_find_ccl_program): Get compiled CCL code by just
9170 calling setup_ccl_program.
9171
9172 * w32fns.c (w32_find_ccl_program): Get compiled CCL code by just
9173 calling setup_ccl_program.
9174
91751999-07-23 Gerd Moellmann <gerd@gnu.org>
9176
9177 * xfaces.c (frame_update_line_height): Just use the height of the
9178 frame's fontset or font, instead of taking face fonts into
9179 account.
9180
9181 * xdisp.c (get_next_display_element): Display DEL as `^?'.
9182
91831999-07-23 Richard M. Stallman <rms@gnu.org>
9184
9185 * window.c (Fsplit_window): For default size, round up for left window.
9186
91871999-07-21 Joe Ramey <ramey@ti.com>
9188
d7d0dac0 9189 * filelock.c (lock_if_free): Return -1 if check_lock_owner
26901792
DL
9190 has returned -1 (lockfile exists but is not a symlink?).
9191
91921999-07-20 Gerd Moellmann <gerd@gnu.org>
9193
9194 * xterm.c (x_draw_bar_cursor): Use scratch_cursor_gc to
9195 because of a change in cursor_gc made in 20.4.
9196
91971999-07-19 Gerd Moellmann <gerd@gnu.org>
9198
9199 * xterm.c (x_calc_absolute_position): Subtract menu bar height
9200 for YNegative, if using X toolkit.
9201
427ec082 9202 * xfns.c (x_real_positions): Don't subtract window borders
26901792
DL
9203 from positions returned.
9204
92051999-07-17 Gerd Moellmann <gerd@gnu.org>
9206
9207 * xrdb.c (x_load_resources): Set double-click time defaults
9208 for Motif list boxes from double-click-time.
9209
9210 * fns.c (Vhash_table_tests): Remvoed.
9211 (Qhash_table_test): New.
9212 (syms_of_fns): Initialize Qhash_table_test.
9213 (Fmake_hash_table): Look up user-defined tests in symbol prop
9214 `hash-table-test'.
9215 (Fdefine_hash_table_test): Store test and hash function as
9216 symbol prop `hash-table-test'.
9217 (make_hash_table): Add parameters user_test and user_hash.
9218
9219 * window.c (set_window_buffer): Set window margins for tty
9220 frames, too.
9221 (Fset_window_margins): Ditto.
9222
9223 * term.c (append_glyph): Use glyph area of iterator instead of
9224 always TEXT_AREA.
9225
9226 * dispnew.c (update_frame_1): Add left margin width to cursor
9227 hpos.
9228 (direct_output_for_insert): Ditto.
9229 (direct_output_forward_char): Ditto.
9230
9231 * dispnew.c (adjust_glyph_matrix): Set glyph matrix' top_line_p.
9232
9233 * dispextern.h (struct glyph_matrix): Add top_line_p.
9234
92351999-07-16 Gerd Moellmann <gerd@gnu.org>
9236
9237 * frame.h (FRAME_WINDOW_REDISPLAY_P): Removed. Use FRAME_WINDOW_P
9238 instead.
9239
9240 * fns.c (cmpfn_eq): Add hash code parameters.
9241 (cmpfn_eql): Ditto.
9242 (cmpfn_equal): Ditto, and compare hash codes before calling Fequal.
9243 (cmpfn_user_defined): Likewise.
9244
92451999-07-15 Gerd Moellmann <gerd@gnu.org>
9246
9247 * lisp.h (DEFAULT_REHASH_THRESHOLD): Changed to 0.8.
9248
9249 * fns.c (maybe_resize_hash_table): Correct computation of
9250 index vector size.
9251 (make_hash_table): Ditto.
9252 (Fmakehash): New.
9253
9254 * xdisp.c (echo_area_display): Don't call redraw_garbaged_frames.
9255
9256 * alloc.c (gc_sweep): Call sweep_weak_hash_tables.
9257 (survives_gc_p): Make it externally visible.
9258 (mark_object): Ditto.
9259
9260 * fns.c (remove_hash_entry): Removed.
9261 (sweep_weak_hash_tables): New.
9262
9263 * print.c (print): Print more information about hash tables.
9264
9265 * xfns.c (image_spec_hash): Removed.
9266 (lookup_image): Use sxhash instead of image_spec_hash.
9267 (image_spec_equal_p): Removed.
9268 (lookup_image): Use Fequal instead of image_spec_equal_p.
9269
92701999-07-14 Gerd Moellmann <gerd@gnu.org>
9271
9272 * lisp.h (P_): Moved to top of file.
9273
9274 * fns.c (make_hash_table): Set new members.
9275
9276 * alloc.c (mark_object): Mark hash table's user_hash_function.
9277 Mark index vector for weak hash tables.
9278
9279 * lisp.h (struct Lisp_Hash_Table): Add user_cmp_function,
9280 user_hash_function, cmpfn, and hashfn.
9281
9282 * fns.c (build_hash): Removed.
9283 (hash_test): Removed.
9284 (cmpfn_eq, cmpfn_eql, cmpfn_equal, cmpfn_user_defined): New.
9285 (hashfn_eq, hashfn_eql, hashfn_equal, hashfn_user_defined): New.
9286
92871999-07-13 Gerd Moellmann <gerd@gnu.org>
9288
9289 * alloc.c (survives_gc_p): New.
9290
9291 * print.c (print): Add hash table handling.
9292
9293 * alloc.c (mark_object): Add code to mark hash tables.
9294
9295 * lisp.h (GC_HASH_TABLE_P): New.
9296
9297 * emacs.c (main): Call init_fns.
9298
9299 * fns.c (init_fns): New.
9300
9301 * fns.c: Add hash table implementation.
9302
9303 * lisp.h (PVEC_HASH_TABLE): New.
9304 (struct Lisp_Hash_Table): New.
9305 (XHASH_TABLE): New.
9306 (XSET_HASH_TABLE): New.
9307 (HASH_TABLE_P): New.
9308 (CHECK_HASH_TABLE): New.
9309 (DEFAULT_HASH_SIZE): New.
9310 (DEFAULT_REHASH_THRESHOLD): New.
9311 (DEFAULT_REHASH_SIZE): New.
9312
9313 * xterm.c (x_draw_glyphs): Add parameters real_start and real_end.
9314 (x_write_glyphs): Compute overwritten cursor using real start
9315 and end positions of display.
9316 (x_insert_glyphs): Ditto.
9317
93181999-07-10 Gerd Moellmann <gerd@gnu.org>
9319
9320 * keyboard.c (read_char): Use message3_nolog to show help-echo.
9321
9322 * dispnew.c (blank_row): Add y-position as parameter. Compute
9323 visible height.
9324
9325 * xdisp.c (next_element_from_string): Give padding spaces
9326 a position of -1.
9327
427ec082 9328 * dispnew.c (adjust_glyph_matrix): Some work to support
26901792
DL
9329 marginals areas on tty frames in a future version.
9330 (allocate_matrices_for_frame_redisplay): Ditto.
9331
9332 * xdisp.c (display_line): At ZV, set glyph row's displays_text_p
9333 to zero if number of glyphs in the row is <= 1.
9334
93351999-07-09 Gerd Moellmann <gerd@gnu.org>
9336
9337 * dispnew.c (buffer_posn_from_coords): Take left marginal area
9338 into account.
9339
9340 * xdisp.c (handle_display_prop): Don't reset area if handing
9341 a property from a string that came from a `display' property.
9342 (handle_single_display_prop): Don't handle recursive `display'
9343 properties.
9344 (handle_single_display_prop): Handle some display property
9345 forms for terminal frames.
9346 (Qimage): Moved here from xfns.c.
9347
9348 * dispextern.h (struct it): New field string_from_display_prop_p.
9349
9350 * xterm.c (x_clip_to_row): Don't let clip_rect include top
9351 line.
9352
93531999-07-08 Gerd Moellmann <gerd@gnu.org>
9354
9355 * xdisp.c (handle_single_display_prop): Handle `:when FORM'.
9356
9357 * window.c (set_window_buffer): Set window's vscroll to zero.
9358
9359 * xdisp.c (QCwhen): New.
9360 (display_prop_end): New.
9361 (handle_single_display_prop): Use it.
9362 (debug_method_add): Print buffer name if tracing.
9363 (try_window_reusing_current_matrix): Compute visible height
9364 of reused rows. Fix cursor position calculation in case of
9365 top-line.
9366
9367 * dispextern.h (struct redisplay_interface): Add parameter
9368 cursor_on_p to update_window_end_hook.
9369
9370 * xterm.c (x_update_window_end): Add parameter cursor_on_p.
9371
93721999-07-07 Gerd Moellmann <gerd@gnu.org>
9373
427ec082 9374 * xdisp.c (redisplay_internal): Ensure that redisplayinp_p
26901792
DL
9375 doesn't become negative when decrementing it.
9376
9377 * eval.c (Fsignal): Reset redisplaying_p to zero.
9378
9379 * xdisp.c (try_window_reusing_current_matrix): Call hooks
9380 for window update.
9381 (try_window_id): Ditto.
9382
9383 * xterm.c (x_clear_end_of_line): Handle top-line correctly.
9384 (x_scroll_run): Ditto.
9385 (any_help_event_p): New.
9386 (x_initialize): Set it to zero.
9387 (XTread_socket): Clear help echo only if any_help_event_p.
9388
9389 * xdisp.c (init_iterator): Set top_line_p.
9390 (start_display): Use correct initial y if top-line is present.
9391 (make_cursor_line_fully_visible): Bug fixes for top-line.
9392 (try_scrolling): Ditto.
9393 (try_window_reusing_current_matrix): Ditto.
9394
9395 * dispextern.h (struct it): Add top_line_p.
9396
9397 * dispnew.c (shift_glyph_matrix): Move some computations out
9398 of the loop.
9399
427ec082 9400 * dispnew.c (margin_glyphs_to_reserve): Use NUMBERP and
26901792
DL
9401 XFLOATINT.
9402
94031999-07-06 Gerd Moellmann <gerd@gnu.org>
9404
9405 * dispnew.c (update_frame_1): When setting cursor in echo area,
9406 skip only over padding spaces at the end.
9407
9408 * xfaces.c (realize_tty_face): Set face's font_name field to
9409 "tty".
9410
9411 * term.c (update_end): Turn cursor on only if selected window's
9412 cursor_off_p flag is not set.
9413
94141999-07-05 Gerd Moellmann <gerd@gnu.org>
9415
9416 * term.c (TS_cursor_visible): Renamed from TS_visual_mode.
9417 (TS_cursor_normal): Renamed from TS_end_visual_mode.
9418 (TS_cursor_invisible): New.
9419 (term_init): Initialize TS_cursor_invisible.
9420 (tty_hide_cursor): New.
9421 (tty_show_cursor): New.
9422 (update_end): Show tty cursor.
9423 (update_begin): Hide tty cursor to prevent cursor flickering
9424 during redisplays triggered by timers (stealth fontification).
9425
9426 * keyboard.c (make_lispy_event) <TOOLBAR_EVENT>: Apply modifiers.
9427
9428 * xterm.c (XTread_socket) [USE_MOTIF] <KeyPress>: Catch events
9429 in scroll bars.
9430 (x_handle_toolbar_click): Set modifier bits.
9431
94321999-07-04 Gerd Moellmann <gerd@gnu.org>
9433
9434 * keyboard.c (kbd_store_ptr): Declare it as a volatile pointer
9435 instead of a pointer to a volatile input_event.
427ec082 9436 (kbd_buffer_store_event): Remove volatile modifier from
26901792
DL
9437 declaration of local variable `sp'.
9438 (Fdiscard_input): Don't cast when assigning kbd_store_ptr
9439 to kbd_fetch_ptr.
9440
94411999-07-03 Gerd Moellmann <gerd@gnu.org>
9442
9443 * xdisp.c (try_window_id): Set beg_unchanged and end_unchanged
9444 only if buffer is modified. Return quickly if changes are
9445 above window start.
9446
94471999-07-02 Gerd Moellmann <gerd@gnu.org>
9448
9449 * dispextern.h (HSCROLL_WINDOWS): Removed.
9450
9451 * xdisp.c (mark_window_display_accurate): Don't set
9452 w->region_showing.
9453 (redisplay_internal): Don't call redraw_garbaged_frames.
9454
94551999-07-01 Gerd Moellmann <gerd@gnu.org>
9456
9457 * xdisp.c (echo_area_display): Don't display truncation marks
9458 for messages because 20.4 doesn't do it either.
9459 (redisplay_window): Case same window start. Instead of giving
9460 up when cursor is partially visible, make it fully visible.
9461 (mark_window_display_accurate): Some cleanup. Record window's
9462 last cursor information.
9463 (debug_method_add): Improved.
9464 (redisplay_internal): Record last cursor info only if not
9465 consider_all_windows_p.
9466
9467 * dispnew.c (update_window): Update top line after scrolling.
9468 (blank_row): Renamed from make_empty_enabled_row.
9469 (increment_glyph_row_buffer_positions): Increment positions
9470 in buffers, only.
9471
9472 * window.c (Fcoordinates_in_window_p): Add top-line to doc
9473 string.
9474
94751999-06-30 Gerd Moellmann <gerd@gnu.org>
9476
9477 * dispnew.c (update_window): Check that updated row is visible.
9478
9479 * xterm.c (x_draw_row_bitmaps): Check for invisible rows at
9480 top of window differently.
9481
9482 * xdisp.c (try_window_reusing_current_matrix): Don't do it
9483 if region is showing.
9484
9485 * dispnew.c (adjust_glyph_matrix): Check w->vscroll when
9486 avoiding matrix reallocation. Set window_vscroll in matrix.
9487
9488 * dispextern.h (struct glyph_matrix): Add member window_vscroll.
9489
26901792
DL
9490 * xdisp.c (debug_method_add): New.
9491 (debug_redisplay_method): Removed.
9492 (try_window_reusing_current_matrix): Handle case where old
9493 window start is the same as new window start.
9494
9495 * dispextern.h (struct glyph_matrix) [GLYPH_DEBUG]: Make `method'
9496 an array instead of a pointer.
9497
26901792
DL
9498 * xfns.c (Fx_show_tip): Undo previous change.
9499
9500 * xterm.c (x_append_glyph): Clear glyph->u.val.
9501
9502 * dispextern.h (struct glyph): Increase size of face_id bit-field
9503 for CHAR_GLYPH to 12.
9504
95051999-06-29 Gerd Moellmann <gerd@gnu.org>
9506
9507 * xfaces.c (x_charset_registry): Make it externally visible.
9508
95091999-06-28 Gerd Moellmann <gerd@gnu.org>
9510
427ec082 9511 * dispnew.c (update_window): Use mode_line_p flag of rows
26901792
DL
9512 instead of WINDOW_WANTS_MODELINE_P.
9513
9514 * xterm.c (clear_mouse_face): Make externally visible.
9515
9516 * xfns.c (Fx_show_tip): Clear mouse face before showing tip.
9517
9518 * xterm.c (expose_line): Handle exposure of top-lines.
9519
9520 * xterm.c (XTframe_up_to_date): Don't call note_mouse_highlight
9521 if mouse_face_mouse_frame is null.
9522
9523 * xdisp.c (redisplay_window): If window is echo_area_window,
9524 and update_mode_line is set, update menubar and toolbar.
9525
9526 * dispnew.c (space_glyph): Set its charpos to -1.
9527 (update_frame_1): Ignore trailing padding spaces.
9528
9529 * xdisp.c (next_element_from_c_string): Set position of padding
9530 glyphs to -1.
9531
95321999-06-27 Gerd Moellmann <gerd@gnu.org>
9533
9534 * xfns.c (x_laplace_read_row): Use XQueryColors instead of
9535 XQueryColor.
9536
9537 * xdisp.c (display_menu_bar): Remove unwarranted assertion.
9538 (set_cursor_from_row): Skip over glyphs having a null object at
9539 the start of rows.
9540 (insert_left_trunc_glyphs): Use charpos < 0 to indicate truncation
9541 glyphs.
9542 (handle_invisible_prop): Compute next change only when needed.
9543 (handle_face_prop): Don't correct DEFAULT_FACE_ID if in the mode
9544 line.
9545
95461999-06-26 Gerd Moellmann <gerd@gnu.org>
9547
9548 * xrdb.c (x_load_resources): Don't set resource for double-click
9549 time.
9550
9551 * xdisp.c (try_window_id): Return quickly if all changes are
9552 below the window's current matrix end.
9553
9554 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): Remove window
9555 parameter.
9556
9557 * xdisp.c (try_window_reusing_current_matrix): Set no_scrolling_p
9558 in desired not in current matrix.
9559 (try_window_reusing_current_matrix): Rotate matrices starting
9560 at start_vpos instead of 0.
9561
9562 * xterm.c (expose_window): Use window_text_bottom_y.
9563 (fast_find_position): Ditto.
9564
9565 * xdisp.c (redisplay_window): Use window_text_bottom_y.
9566 (try_window_reusing_current_matrix): Ditto.
9567 (get_last_unchanged_at_beg_row): Ditto.
9568 (init_iterator): Ditto.
9569
9570 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate one
9571 more row.
9572 (check_matrix_invariants): Use window_text_bottom_y.
9573 (update_window): Ditto.
9574 (scrolling_window): Ditto.
9575
9576 * xdisp.c (window_text_bottom_y): New.
9577
95781999-06-25 Gerd Moellmann <gerd@gnu.org>
9579
9580 * xterm.c (XTread_socket): Set mouse_face_frame to zero after
9581 clearing mouse face.
9582 (XTread_socket) <EnterNotify> [LESSTIF_VERSION]: If
9583 event.xcrossing.focus is not set, and focus is in the menu bar,
9584 set focus frame as if event.xcrossing.focus were set.
9585
95861999-06-24 Gerd Moellmann <gerd@gnu.org>
9587
9588 * keyboard.c (make_lispy_event): Handle mouse on top lines.
9589 * keyboard.c (make_lispy_movement): Ditto.
9590
9591 * window.c (coordinates_in_window): Return 4 if on top line.
9592 (Fcoordinates_in_window_p): Return `top-line' if on top line.
9593
9594 * xdisp.c (window_box_height): Subtract top line height.
9595 (window_box): Add top line height to top y position if top line
9596 exists.
9597 (init_iterator): If base_face_id is TOP_LINE_FACE_ID, set row to
9598 the top line row of the window. Set initial y-position to
9599 window's top line height plus delta.
9600 (start_display): Choose start glyph row depending on whether
9601 window has a top line.
9602 (try_scrolling): Take top line height into account for aggressive
9603 scrolling.
9604 (compute_window_start_on_continuation_line): Take top line into
9605 account.
427ec082 9606 (redisplay_window): Ditto. If top line height has changed,
26901792
DL
9607 trigger a new redisplay.
9608 (try_window_reusing_current_matrix): Take top line into account.
9609 (find_last_row_displaying_text): Ditto.
9610 (get_last_unchanged_at_beg_row): DItto.
9611 (try_window_id): Ditto.
9612 (compute_line_metrics): Ditto.
9613
9614 * dispnew.c (shift_glyph_matrix): Compute visible row height
9615 taking top line of window into account.
9616 (update_window): Update top line. If scrolling_window detects
9617 that all rows are equal, only set cursor.
9618 (update_window_line): Call after_update_window_line_hook if
9619 mode_line_p flag of rows has changed.
9620 (scrolling_window): Add parameter top_line_p. Return -1 if
9621 all rows are equal.
9622 (mode_line_string): Add parameter mode_line_p. Handle strings
9623 in top lines.
9624
9625 * dispextern.h (MATRIX_TOP_LINE_ROW): New.
9626 (MATRIX_FIRST_TEXT_ROW): New.
9627 (MATRIX_ROW_PARTIALLY_VISIBLE_P): Use row's visible_height.
9628 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_TOP_P): New.
9629 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_BOTTOM_P): New.
9630 (MATRIX_TOP_LINE_HEIGHT): New.
9631 (CURRENT_MODE_LINE_HEIGHT): Use estimate_mode_line_height.
9632 (CURRENT_TOP_LINE_HEIGHT): New.
9633 (DESIRED_TOP_LINE_HEIGHT): New.
9634 (WINDOW_DISPLAY_TOP_LINE_HEIGHT): New.
9635 (WINDOW_DISPLAY_HEIGHT_NO_MODE_LINE): Replaces
9636 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
9637 (WINDOW_DISPLAY_TEXT_HEIGHT): New.
9638
9639 * xterm.c (x_after_update_window_line): Don't draw bitmaps for top
9640 lines.
9641 (x_draw_row_bitmaps): Take top line into account when clearing
9642 bitmap area.
9643 (x_estimate_mode_line_height): Replacement for
9644 x_frame_mode_line_height.
9645 (x_get_glyph_string_clip_rect): Take top line into account.
9646 (x_clear_end_of_line): Ditto.
9647 (note_mode_line_highlight): Add parameter mode_line_p. Handle
9648 top lines.
9649 (note_mouse_highlight): Call note_mode_line_highlight for top lines.
9650 (x_erase_phys_cursor): Take top line into account.
9651
9652 * xdisp.c (window_box_height): Subtract top line height if
9653 window wants a top line.
9654 (display_mode_lines): New.
9655 (redisplay_window): Call it.
9656 (display_mode_line): Add parameters face_id and format.
9657
9658 * dispextern.h (CURRENT_TOP_LINE_HEIGHT): New.
9659 (MATRIX_TOP_LINE_HEIGHT): New.
9660
9661 * xterm.c (x_frame_mode_line_height): Add parameter face_id.
9662
9663 * term.c (estimate_mode_line_height): Renamed from
9664 frame_mode_line_height. Add parameter face_id.
9665 (estimate_mode_line_height_hook): Renamed from
9666 frame_mode_line_height_hook.
9667 (produce_special_glyphs_hook): Removed.
9668 (produce_glyphs_hook): Removed.
9669
96701999-06-23 Gerd Moellmann <gerd@gnu.org>
9671
9672 * dispextern.h (WINDOW_WANTS_TOP_LINE_P): New.
9673 (struct glyph_row): Add mode_line_p.
9674
9675 * xfaces.c (realize_basic_faces): Realize face `top-line'.
9676 (Qtop_line): New.
9677 (syms_of_xfaces): Initialize Qtop_line.
9678
9679 * dispextern.h (TOP_LINE_FACE_ID): New.
9680
9681 * buffer.c (init_buffer_once): Set default for
9682 top_line_format to nil.
9683 (init_buffer_once): Init top_line_format.
9684 (default-top-line-format): New.
9685 (top-line-format): New buffer-local variable.
9686
9687 * buffer.h: Add top_line_format.
9688
9689 * xdisp.c (overlay_arrow_changed_p): Removed because not used.
9690
96911999-06-17 Dave Love <fx@gnu.org>
9692
9693 * xfns.c: Move the PNG section before the JPEG one to avoid
9694 problems surrounding setjmp.h/png.h on GNU/Linux.
427ec082 9695
26901792
DL
96961999-06-17 Gerd Moellmann <gerd@gnu.org>
9697
9698 * xfns.c (x_kill_gs_process): Don't free colors.
9699
97001999-06-17 Dave Love <fx@gnu.org>
9701
9702 * s/gnu-linux.h: Zap spurious ~.
9703
97041999-06-16 Gerd Moellmann <gerd@gnu.org>
9705
9706 * xfns.c (gif_load): Improve multi-image support.
9707
97081999-06-15 Gerd Moellmann <gerd@gnu.org>
9709
9710 * xfns.c (gif_load): Support multi-image files.
9711
9712 * Makefile.in (LIBGIF): Use libungif.
9713
9714 * configure.in (HAVE_GIF): Use libungif instead of libgif
9715 because the former doesn't contain patented compression code.
9716
9717 * xdisp.c (compute_window_start_on_continuation_line): Don't
9718 do it if line start is too far away from window start.
9719
97201999-06-14 Gerd Moellmann <gerd@gnu.org>
9721
9722 * buffer.c (init_buffer_once): Set buffer_local_flags for
9723 scroll_*_aggressively.
9724 (syms_of_buffer): Add DEFVAR_PER_BUFFER for scroll-*-aggressively.
9725 (init_buffer_once): Set defaults for these variables.
9726 (syms_of_buffer): Add default-scroll-*-aggressively.
9727
9728 * buffer.h (scroll_up_aggressively): New.
9729 (scroll_down_aggressively): New.
9730
9731 * Makefile.in (LIBPNG): Add -lz -lm in case we're linking with
9732 a static PNG library.
9733
9734 * configure.in (HAVE_PNG): Add -lz -lm when checking for PNG lib
9735 in case it's a static library.
9736
9737 * Makefile.in (ctagsfiles): Split so that files starting
9738 with an `x' are found before files starting with `w32'.
9739 (ctagsfiles1): New.
9740 (ctagsfiles2): New.
9741 (TAGS): Use ctagsfiles[12] instead of ctagsfiles.
9742
9743 * xdisp.c (compute_window_start_on_continuation_line): New.
9744 (redisplay_window): Use it.
9745 (INFINITY): New.
9746 (reseat_to_string): Use it.
9747 (hscroll_window_tree): Ditto.
9748 (compute_window_start_on_continuation_line): Ditto.
9749 (redisplay_window): Don't force display with a new window start.
9750
97511999-06-06 Gerd Moellmann <gerd@gnu.org>
9752
9753 * xfns.c (x_report_frame_params): Don't report `outer-window-id'
9754 if widget not present.
9755
9756 * xdisp.c (prepare_menu_bars): Ignore tooltip frame.
9757
97581999-06-04 Gerd Moellmann <gerd@gnu.org>
9759
9760 * xfaces.c (recompute_basic_faces)[GLYPH_DEBUG]: Check return
9761 value of realize_basic_faces.
9762 (load_face_font_or_fontset): Store full font name in face.
9763 (realize_default_face): Use full font name.
9764
26901792
DL
9765 * xterm.c (x_produce_glyphs): Set member char_to_display.
9766 (x_append_glyph): Store char_to_display in glyphs.
9767
9768 * dispextern.h (struct it): Add char_to_display.
9769
9770 * xfns.c (x_set_font): Don't call face-set-after-frame-default
9771 if faces haven't been initialized.
9772 (Fx_create_frame): Call face-set-after-frame-default after
9773 faces have been initialized, and widget has been created.
9774
9775 * puresize.h (BASE_PURESIZE): Increased.
9776
97771999-06-01 Gerd Moellmann <gerd@gnu.org>
9778
9779 * xfaces.c (set_lface_from_font_name): Add parameter force_p.
9780 (Finternal_set_lisp_face_attribute): If frame is t when
9781 :font attribute is set, use the selected frame.
9782 (clear_face_cache): Add parameter clear_fonts_p.
9783 (Fclear_face_cache): Add optional parameter thorougly.
9784
9785 * xfaces.c (face_numeric_value): Return -1 if symbol is not
9786 in table.
9787 (Fclear_face_cache): New.
9788 (choose_face_fontset_font): If fontset doesn't contain font
9789 pattern for the given charset, use CHARSET_ASCII.
9790 (Finternal_set_lisp_face_attribute): Fix handling of nil
9791 stipple attribute.
9792 (Finternal_set_lisp_face_attribute): Fix handling of changing
9793 font-related face attributes of the default face.
9794 (set_lface_from_font_name): Set only attributes that aren't
9795 specified.
9796
97971999-05-31 Gerd Moellmann <gerd@gnu.org>
9798
9799 * xfaces.c (SCALABLE_FONTS): Define this to enable scalable
9800 font support.
9801 (Vscalable_fonts_allowed) [SCALABLE_FONTS]: New.
9802 (x_face_list_fonts): Add parameter scalable_fonts_p. Handle
9803 scalable fonts depending on the setting of SCALABLE_FONTS.
9804 (first_font_matching): List more than one font to find the
9805 first non-scalable matching font.
9806 (sorted_font_list): Let x_face_list_fonts return scalable fonts
9807 depending on SCALABLE_FONTS.
9808 (better_font_p): New parameter compare_pt_p. If zero, don't
9809 compare point sizes of fonts.
9810 (exact_face_match_p) [SCALABLE_FONTS]: New.
9811 (build_scalable_font_name) [SCALABLE_FONTS]: New.
9812 (may_use_scalable_font_p) [SCALABLE_FONTS]: New.
9813 (best_matching_font) [SCALABLE_FONTS]: Handle scalable fonts.
9814 (syms_of_xfaces): Add scalable-fonts-allowed.
9815
98161999-05-26 Gerd Moellmann <gerd@gnu.org>
9817
9818 * xfns.c (png_load): Let PNG lib handle gamma. Construct
9819 mask only if image contains simple transparency information.
9820 Otherwise, combine image with frame background color.
9821
9822 * configure.in (--with-png, HAVE_PNG): New.
9823
9824 * config.in (HAVE_PNG): New.
9825
9826 * Makefile.in: Add PNG library.
9827
9828 * xfns.c: Add PNG support.
9829
98301999-05-25 Gerd Moellmann <gerd@gnu.org>
9831
9832 * xdisp.c (init_xdisp): Initialize echo_area_message and
9833 previous_echo_area_message to nil.
9834
9835 * keyboard.c (read_char): Rename local variable echo_area_message
9836 because it shadows the global one.
9837
98381999-05-05 Gerd Moellmann <gerd@gnu.org>
9839
9840 * xterm.c (note_mode_line_highlight): Restructured.
9841
9842 * window.c (coordinates_in_window): Handle windows that don't have
9843 a mode line because their buffer's mode-line-format is nil.
9844 Recognize the mode line under x positions that correspond to
9845 flags areas and left scroll bar.
9846
98471999-05-02 Dave Love <fx@gnu.org>
9848
9849 * xterm.c (note_mouse_highlight): Separate help-echo processing
9850 from check on mouse-face so that it works generally.
9851
98521999-04-21 Gerd Moellmann <gerd@gnu.org>
9853
9854 * sound.c (Fplay_sound): Run hook play-sound-hook.
9855 (Qplay_sound_hook): New.
9856
98571999-04-20 Gerd Moellmann <gerd@gnu.org>
9858
9859 * xdisp.c (update_echo_area): Handle echo_area_message.
9860
98611999-04-19 Gerd Moellmann <gerd@gnu.org>
9862
9863 * editfns.c (Fmessage): Use message3.
9864
9865 * print.c (printchar): Set echo_area_message to nil.
9866 (strout): Ditto.
9867
9868 * minibuf.c (read_minibuf): Reset echo message strings to nil.
9869 (Fminibuffer_completion_help): Ditto.
9870
9871 * keyboard.c (cmd_error_internal): Set echo_areA_message.
9872 (command_loop_1): Test echo_areA_message.
9873 (read_char): Ditto.
9874 (record_menu_key): Set echo_area_message to nil.
9875 (Fexecute_extended_command): Test echo_area_message.
9876 (Fexecute_extended_command): Handle echo_area_message.
9877
9878 * fileio.c (Fdo_auto_save): Handle the case that echo_area_message
9879 is set.
9880
9881 * editfns.c (Fcurrent_message): If echo_area_message is set,
9882 return a substring of that string.
9883
9884 * dispnew.c (direct_output_for_insert): Test echo_area_message
9885 in addition to echo_area_glyphs.
9886 (set_window_cursor_after_update): Ditto.
9887 (update_frame_1): Ditto.
9888
9889 * alloc.c (Fgarbage_collect): Use message3_nolog to display
9890 old Lisp message string.
9891
9892 * xdisp.c (echo_area_message): New.
9893 (previous_echo_area_message): New.
9894 (syms_of_xdisp): Initialize and staticpro new variables.
9895 (echo_area_display): Display echo_area_message if set.
9896 (message2_nolog): Set echo_area_message and
9897 previous_echo_area_message.
9898 (echo_area_display): Set previous_echo_area_message.
9899 (redisplay_internal): Display echo area if echo_area_message
9900 or previous_echo_area_message are set.
9901 (redisplay_preserve_echo_area): Test/set echo_area_message and
9902 previous_echo_area_message.
9903 (redisplay_window): Test echo_area_message.
9904 (message3_nolog): New.
9905 (message3): New.
9906
9907 * editfns.c (Fformat): Add text properties to the result string
9908 from properties of the format string and properties of string
9909 arguments.
9910
9911 * textprop.c (text_property_list): New.
9912 (add_text_properties_from_list): New.
9913 (extend_property_ranges): New.
9914
99151999-03-29 Gerd Moellmann <gerd@gnu.org>
9916
9917 * xfaces.c (Qraised, Qsunken, QCshadow): Removed.
9918 (QCline_width, QCstyle, Qpressed_button, Qreleased_button): New.
9919 Use these symbols for the box face attribute instead of the
9920 removed ones.
9921
99221999-03-12 Gerd Moellmann <gerd@gnu.org>
9923
9924 * xfaces.c (realize_tty_face): Don't set alt_char_p of face.
9925 Correct wrong test for slant.
9926
99271999-03-10 Gerd Moellmann <gerd@gnu.org>
9928
9929 * xfaces.c: Use `unspecified' for unspecified face attributes,
9930 use t and nil for on/off.
9931
99321999-03-06 Gerd Moellmann <gerd@gnu.org>
9933
9934 * buffer.c (syms_of_buffer): Extend doc string of
9935 mode-line-format.
9936
9937 * xfaces.c (x_face_list_fonts): New parameter try_alternatives_p.
9938 (first_font_matching): New.
9939 (set_lface_from_font_name): Use it if font name is a pattern.
9940 (font_field_wildcard_p): Removed.
9941
9942 * dispnew.c (shift_glyph_matrix): Add `window' parameter.
9943 Recompute visible height of rows.
9944
9945 * xterm.c (note_mouse_highlight): Reorder code for help-echo.
9946 Don't accept non-strings for help-echo from overlays.
9947
99481999-03-04 Dave Love <fx@gnu.org>
9949
9950 * xterm.c (note_mouse_highlight): Check overlays for help-text
9951 property.
9952 (XTread_socket): Fix compiler warning.
427ec082 9953
26901792
DL
99541999-03-05 Gerd Moellmann <gerd@gnu.org>
9955
427ec082 9956 * xterm.c (note_mouse_highlight): Don't restrict number of
26901792
DL
9957 overlay to 10. Call overlays_at so that it doesn't try to
9958 extend the vector.
9959
9960 * xdisp.c (compute_line_metrics): Compute glyph row's visible
9961 height.
9962
9963 * dispnew.c (row_equal_p): Compare visible row height, only.
9964 (update_text_area): Draw whole line if visible heights of
9965 rows differ.
9966 (update_window_line): Call after_update_window_line_hook
9967 if visible row height has changed.
9968
9969 * dispextern.h (MATRIX_ROW_VISIBLE_HEIGHT): Removed.
9970 (struct glyph_row): New member visible_height.
9971
9972 * xfaces.c (font_field_wildcard_p): New.
9973 (set_lface_from_font_name): Remove parameter force_p. Accept
9974 font names containing wildcards.
9975
99761999-03-04 Gerd Moellmann <gerd@gnu.org>
9977
9978 * xterm.c (x_after_update_window_line): Clear internal border
9979 when windows_or_buffers_changed.
9980
9981 * dispextern.h (WINDOW_WANTS_MODELINE_P): Return zero if window's
9982 buffer has a nil mode_line_format.
9983
99841999-03-03 Gerd Moellmann <gerd@gnu.org>
9985
9986 * xterm.c (x_setup_relief_colors): Use either background color
9987 or specified color.
9988
9989 * xfaces.c (realize_x_face): Set face->use_box_color_for_shadows_p.
9990
9991 * dispextern.h (struct face): Add use_box_color_for_shadows_p.
9992
9993 * xterm.c (x_draw_box_rect): New.
9994 (x_draw_glyph_string_box): Renamed from
9995 x_draw_glyph_string_relief. Call x_draw_box_rect.
9996
9997 * xfns.c (QCrelief): New.
9998 (syms_of_xfns): Initialize it.
9999
10000 * dispextern.h (struct glyph): Rename left_shadow_p to
10001 left_box_line_p, right_shadow_p to right_box_line_p.
10002 (MAX_RELIEF_THICKNESS): Removed.
10003 (struct it): Rename members having `relief' in their names
10004 to contain `box' instead.
10005
10006 * xfaces.c (realize_x_face): Handle new box attribute values.
10007 (QCrelief, Qbox): Removed.
10008 (QCshadow, QCcolor, Qraised, Qsunken): New.
10009 (syms_of_xfaces): Initialize new symbols.
10010
100111999-03-02 Gerd Moellmann <gerd@gnu.org>
10012
10013 * dispextern.h (LFACE_RELIEF_INDEX): Removed.
10014
10015 * xfaces.c (LFACE_RELIEF): Removed.
10016 (merge_face_vector_with_property): Remove handling of `:relief'.
10017 (Finternal_set_lisp_face_attribute): Ditto.
10018 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
10019 (Finternal_get_lisp_face_attribute): Ditto.
10020 (realize_default_face): Ditto.
10021 (lface_hash): Don't compute hash from relief.
10022
10023 * dispextern.h (struct face): Replace member `relief' by
10024 `box_line_width'. Add member `box'.
10025 (face_box_type): New.
10026
10027 * xterm.c (x_produce_glyphs): If face has overline, add overline
10028 thickness + 1 to ascent.
10029
100301999-03-01 Gerd Moellmann <gerd@gnu.org>
10031
10032 * xterm.c (x_draw_glyph_string): Draw underline, overline,
10033 strike-through, and boxes.
10034 (x_draw_glyph_string_underline): Removed.
10035
10036 * xfaces.c (QCoverline, QCstrike_through, QCbox): New.
10037 (Qoverline, Qstrike_through, Qbox): New.
10038 (syms_of_xfaces): Define these symbols.
10039 (check_lface_attrs): Add checks for overline, strike-through,
10040 and box.
10041 (Finternal_set_lisp_face_attribute): Set new attributes.
10042 (LFACE_OVERLINE, LFACE_STRIKE_THROUGH, LFACE_BOX): New.
10043 (load_color): Handle new attributes.
10044 (realize_x_face): Ditto.
10045 (merge_face_vector_with_property): Ditto.
10046 (free_face_colors): Ditto.
10047 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
10048 (Finternal_get_lisp_face_attribute): Ditto.
10049 (Finternal_lisp_face_attribute_values): Ditto.
10050
10051 * dispextern.h (lface_attribute_index): Add enumerators for
10052 overstrike, strike-through, and box.
10053 (struct face): Add members for overline, strike-through, and
10054 box.
10055
100561999-02-17 Dave Love <fx@gnu.org>
10057
10058 * s/gnu-linux.h s/gnu.h s/irix5-0.h s/netbsd.h s/sco4.h s/sco5.h
10059 s/template.h (NARROWPROTO): Define on the basis of relevant X cf
10060 files.
10061
100621999-02-16 Gerd Moellmann <gerd@gnu.org>
10063
10064 * keyboard.c (toolbar_items): Call access_keymap with third
10065 parameter 1, so that we don't get inherited toolbar item
10066 definitions.
10067
10068 * xdisp.c (redisplay_internal): In optimization 1, don't decrement
10069 the window end vpos when in empty first line of window.
10070
100711999-02-15 Gerd Moellmann <gerd@gnu.org>
10072
10073 * xfaces.c (set_font_frame_param): New.
10074 (Finternal_set_lisp_face_attribute): Call it.
10075
10076Sun Feb 14 10:54:02 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
10077
10078 * xfaces.c (Finternal_set_lisp_face_attribute_from_resource):
10079 Accept specifications of color for underline.
10080
100811999-02-13 Gerd Moellmann <gerd@gnu.org>
10082
10083 * xfaces.c (Finternal_set_lisp_face_attribute): If parameter
10084 `frame' is t, operate on face defaults for new frames. If it
10085 is nil, operate on the selected frame.
10086
100871999-02-12 Gerd Moellmann <gerd@gnu.org>
10088
10089 * dispnew.c (check_matrix_invariants): Put it in #if 0.
10090 (update_window): Put the call to check_matrix_invariants in #if 0.
10091
10092Sun Feb 7 09:58:49 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
10093
10094 * dispextern.h: Remove all else block of UNDERLINE_COLOR.
10095 Remove definition of UNDERLINE_COLOR.
10096
10097Mon Jan 4 04:43:41 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
10098
10099 * xfaces.c (free_face_colors): Free the color for underline.
10100
10101 * xterm.c (x_draw_glyph_string_underline): Set the color for underline
10102 to the GC.
10103
10104Sun Jan 3 08:41:10 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
10105
10106 * dispextern.h (UNDERLINE_COLOR): Defined.
10107 (struct face): Added two new members.
10108 underline_color, underline_defaulted_p.
10109
427ec082 10110 * xfaces.c (merge_face_vector_with_property):
26901792 10111 (check_lface_attrs): Accept the string value for underline.
427ec082 10112 (Finternal_set_lisp_face_attribute): Likewise.
26901792
DL
10113
10114 * xfaces.c (load_color): Change the last argument type to enum
10115 lface_attribute_index from int. And addec code for underling coloring.
10116 (load_face_colors): Pass LFACE_*_INDEX to load_color.
427ec082 10117
26901792
DL
101181999-02-12 Gerd Moellmann <gerd@gnu.org>
10119
10120 * xfns.c (Fx_image_header): Removed.
10121
101221999-02-07 Gerd Moellmann <gerd@gnu.org>
10123
10124 * xterm.c: Don't include <bitmaps/gray>.
10125 (x_term_init): Use gray_bitmap_width and gray_bitmap_height.
10126
10127 * xfns.c (Fx_image_header): Add missing `\n\'.
10128 (gray_bitmap_width, gray_bitmap_height, gray_bitmap_bits): New.
10129
101301999-02-01 Gerd Moellmann <gerd@gnu.org>
10131
10132 * xterm.c (x_scroll_bar_create): Set background pixel from
10133 specified scroll bar color.
10134 (x_scroll_bar_set_handle): Use scroll bar foreground color.
10135
10136 * xfns.c (x_set_scroll_bar_foreground): Remove all scroll bars.
10137 (x_set_scroll_bar_background): Ditto.
10138
10139 * xterm.c (x_create_toolkit_scroll_bar): Set scroll bar colors.
10140
10141 * xfns.c (x_default_scroll_bar_color_parameter): New.
10142 (Fx_create_frame): Call it.
10143
101441999-01-31 Gerd Moellmann <gerd@gnu.org>
10145
10146 * xfns.c (Fx_create_frame): Initialize scroll bar pixel color
427ec082 10147 values in x_output structure.
26901792
DL
10148 (Qscroll_bar_foreground, Qscroll_bar_background): New.
10149 (syms_of_xfns): Initialize these symbols.
10150
10151 * xterm.h (struct x_output): Add scroll bar pixel colors.
10152
10153 * xfns.c (x_frame_parms): Add entries for scroll bar colors.
10154 (x_set_scroll_bar_foreground): New.
10155 (x_set_scroll_bar_background): New.
10156
26901792
DL
101571999-01-12 Gerd Moellmann <gerd@gnu.org>
10158
10159 * xdisp.c (handle_single_display_prop): New.
10160 (handle_display_prop): Call it.
10161 (handle_raise_prop): Removed.
10162 (handle_height_prop): Removed.
10163 (handle_space_width_prop): Removed.
10164 (handle_face_prop): Remove handling of raised text.
10165 (handle_display_prop): Do it here.
10166
10167 * dispextern.h (DISPLAY_PROP_IDX): Replaces GLYPH_PROP_IDX.
10168 (RAISE_PROP_IDX): Removed.
10169 (HEIGHT_PROP_IDX): Removed.
10170 (SPACE_WIDTH_PROP_IDX): Removed.
10171
10172 * xdisp.c (Qdisplay): Replaces Qglyph.
10173 (handle_display_prop): Formerly handle_glyph_prop.
10174
101751999-01-11 Gerd Moellmann <gerd@gnu.org>
10176
10177 * xdisp.c (reseat_to_string): Set position in display vector to -1.
10178 (handle_stop): Set position in display vector to -1. Don't
10179 check overlay strings when set up to deliver characters from a
10180 display vector.
10181 (set_iterator_to_next): At the end of a run of characters from a
10182 display vector, check whether the display vector display replaces
10183 the display of a character.
10184
101851999-01-05 Gerd Moellmann <gerd@gnu.org>
10186
10187 * xfaces.c (init_frame_faces): Don't realize faces if frame's
10188 X window hasn't been created yet.
10189
101901998-12-06 Gerd Moellmann <gerd@gnu.org>
10191
10192 * sound.c: New.
10193
101941998-12-04 Gerd Moellmann <gerd@gnu.org>
10195
10196 * config.in (HAVE_SOUND): New.
10197
10198 * emacs.c (main): Call syms_of_sound and init_sound.
10199
10200 * Makefile.in (obj): Add sound.o.
10201
10202 * configure.in: Add checks for machine/soundcard.h and sys/soundcard.h.
10203
10204 * config.in (HAVE_MACHINE_SOUNDCARD_H): New.
10205 (HAVE_SYS_SOUNDCARD_H): New.
10206
102071998-12-03 Gerd Moellmann <gerd@gnu.org>
10208
10209 * buffer.h (struct buffer): indicate_empty_lines renamed from
10210 indicate_zv_lines.
10211
10212 * buffer.c (indicate-empty-lines): Renamed from indicate_zv_lines.
10213 (default-indicate-zv-lines): Likewise.
10214
10215 * dispextern.h (struct glyph_row): Rename indicate_zv_line_p
10216 to indicate_empty_line_p.
10217
10218 * xdisp.c (reseat_at_next_visible_line_start): Reset method
10219 to next_element_from_buffer.
10220
10221 * frame.c (make_frame): Set n_current_toolbar_items to 0.
10222
10223 * xdisp.c (handle_face_prop): Allow symbols of the form `N+'
10224 and `N-'.
10225
10226 * xfns.c (xbm_scan): New.
10227 (xbm_read_hexint): Removed.
10228 (xbm_read_bitmap_file_data): Use xbm_scan.
10229
10230 * fileio.c (Finsert_file_contents): Prevent redisplay optimizations.
10231
102321998-12-02 Gerd Moellmann <gerd@gnu.org>
10233
10234 * xfns.c (xbm_read_hexint): New.
10235 (xbm_read_bitmap_file_data): New.
10236 (xbm_load_image_from_file): Call xbm_read_bitmap_file_data
10237 instead of XReadBitmapFileData.
10238
10239 * xdisp.c (handle_raise_prop): Compute voffset from current font.
10240
10241 * xfaces.c (face_with_height): New.
10242
10243 * xdisp.c (eval_handler): Renamed from eval_mode_handler.
10244 (eval_form): Renamed from eval_mode_element.
10245 (handle_face_prop): Use it.
10246 (Qheight): Replaces Qsmaller.
10247 (handle_height_prop): Replaces handle_smaller_prop.
427ec082 10248 (handle_face_prop): If iterator's font_height is not an
26901792
DL
10249 integer, evaluate it to get the font height to use.
10250
10251 * dispextern.h (HEIGHT_PROP_IDX): Replaces SMALLER_PROP_IDX.
10252 (struct it): Use `font_height' instead of `smaller'.
10253
102541998-12-01 Gerd Moellmann <gerd@gnu.org>
10255
10256 * xdisp.c (reseat_1): New.
10257 (reseat): Call it.
10258 (move_it_vertically_backward): Ditto.
10259 (redisplay_window): Don't abort when cursor not found in recenter.
10260
102611998-11-30 Gerd Moellmann <gerd@gnu.org>
10262
10263 * xdisp.c (reseat_at_next_visible_line_start): When not
10264 currently delivering display elements from the current buffer,
10265 restore buffer position first.
10266 (init_from_display_pos): Don't set IT's position from the
10267 position passed to this function.
10268
102691998-11-28 Gerd Moellmann <gerd@gnu.org>
10270
10271 * config.in (PROTO): Removed.
10272
10273 * xterm.h: Change PROTO to P_.
10274
102751998-11-26 Gerd Moellmann <gerd@gnu.org>
10276
10277 * xterm.c (take_vertical_position_into_account): New.
10278 (x_produce_image_glyph): Call it.
10279 (x_produce_stretch_glyph): Ditto.
10280 (x_produce_glyphs): Ditto.
10281 (x_fill_glyph_string): Adjust base line for glyph's voffset.
10282 (x_fill_composite_glyph_string): Ditto.
10283 (x_fill_image_glyph_string): Ditto.
10284 (x_fill_stretch_glyph_string): Ditto.
10285
10286 * xdisp.c (display_line): Always compute row height from
10287 max_ascent and max_descent.
10288
10289 * dispextern.h (struct glyph): Add voffset.
10290 (struct it): Replace height by descent, max_height by max_descent.
10291
10292 * xterm.c (x_append_glyph): Set voffset
10293 (x_append_stretch_glyph): Ditto.
10294 (x_produce_image_glyph): Ditto.
10295 (x_produce_glyphs): Take voffset into account.
10296 (x_produce_image_glyph): Ditto.
10297 (x_produce_stretch_glyph): Ditto.
10298
10299 * dispextern.h (struct it): Add voffset.
10300 * xdisp.c (push_it): Save voffset.
10301 (pop_it): Restore it.
10302
10303 * xdisp.c (it_props): Add entry for `raise'.
10304 (handle_raise_prop): New.
10305
10306 * dispextern.h (RAISE_PROP_IDX): New.
10307
10308 * xdisp.c (Qraise): New.
10309 (syms_of_xdisp): Define Qraised.
10310
10311 * xterm.c (x_scroll_bar_move): Clear to the left and right
10312 of toolkit scroll bars differently.
10313 (x_scroll_bar_move): Removed.
10314 (XTset_vertical_scroll_bar): Move code from x_scroll_bar_move here.
10315
10316 * dispextern.h: Make it compilable --with-x=no.
10317 * alloc.c: Ditto.
10318 * emacs.c: Ditto.
10319 * dispnew.c: Ditto.
10320 * keyboard.c: Ditto.
10321 * term.c: Ditto.
10322 * xdisp.c: Ditto.
10323 * xfaces.c: Ditto.
10324 * xfns.c: Ditto.
10325 * xmenu.c: Ditto.
10326
103271998-11-25 Gerd Moellmann <gerd@gnu.org>
10328
10329 * xterm.c (XTread_socket): Cancel help-echo when leaving frame.
10330
103311998-11-24 Gerd Moellmann <gerd@gnu.org>
10332
10333 * xterm.c (x_set_toolkit_scroll_bar_thumb): When dragging,
10334 update slider size, only.
10335 (xm_scroll_callback): Set dragging member of the scroll bar.
10336 (xt_action_hook): Reset last_scroll_bar_part.
10337 (XTredeem_scroll_bar): Reset bar->dragging to nil.
10338
26901792
DL
10339 * xfns.c (Fx_hide_busy_cursor): Don't try to hide busy cursor
10340 window on newly created frames that don't have one.
10341
103421998-11-23 Gerd Moellmann <gerd@gnu.org>
10343
10344 * xdisp.c (restore_overlay_strings): Removed.
10345 (restore_dpvec): Removed.
10346 (init_from_display_pos): Inline both functions above.
10347
10348 * xfns.c (IMAGE_NON_NEGATIVE_INTEGER_VALUE): New.
10349 (parse_image_spec): Handle it.
10350 (xbm_format): Use it.
10351 (xpm_format): Ditto.
10352 (pbm_format): Ditto.
10353 (jpeg_format): Ditto.
10354 (tiff_format): Ditto.
10355 (gif_format): Ditto.
10356 (gs_format): Ditto.
10357
10358 * xdisp.c (set_window_cursor): Removed.
10359 (redisplay_internal): Case cursor motion in cursor line of
10360 selected window; use set_cursor_from_row.
10361
103621998-11-22 Gerd Moellmann <gerd@gnu.org>
10363
10364 * widget.c (EmacsFrameSetCharSize): Take widget's border width
10365 into account.
10366
103671998-11-21 Gerd Moellmann <gerd@gnu.org>
10368
10369 * xterm.c (expose_frame): Redraw menu bar window.
10370
10371 * xdisp.c (display_menu_bar): Record hpos instead of x-position
10372 in menu item.
10373
10374 * dispnew.c (change_frame_size_1): Use FRAME_TOP_MARGIN instead
10375 of FRAME_TOOLBAR_LINES. Use `f' instead of `frame'.
10376
10377 * widget.c (set_frame_size): Use FRAME_SCROLL_BAR_COLS
10378 to determine vertical_scroll_bar_extra.
10379 (EmacsFrameSetCharSize): Ditto.
10380 * xfns.c (x_figure_window_size): Ditto.
10381
10382 * xterm.c (x_draw_row_bitmaps): Draw in `bitmap-area' face.
10383 (x_draw_bitmap): Ditto.
10384
10385 * dispextern.h (face_id): New id BITMAP_AREA_FACE_ID.
10386 * xfaces.c (realize_basic_faces): Realize it.
10387
103881998-11-20 Gerd Moellmann <gerd@gnu.org>
10389
10390 * xmenu.c (xmenu_show): Add workaround for remaining button grab
427ec082 10391 under LessTif Use the widget of the frame as parent for the
26901792
DL
10392 menu, again.
10393
103941998-11-19 Gerd Moellmann <gerd@gnu.org>
10395
10396 * xterm.c (XTread_socket): Inhibit busy cursor for EnterNotify.
10397 When EnterNotify, don't generate a mouse movement event if
10398 notification is from a busy-cursor child window.
10399
10400 * xterm.h (struct x_output): Add busy_window, remove cursor.
10401
10402 * xfns.c (Fx_show_busy_cursor): Formerly Fx_display_busy_cursor.
10403 Use a transparent window to display the busy-cursor.
10404 (Fx_hide_busy_cursor): Formerly Fx_undisplay_busy_cursor.
10405
104061998-11-17 Gerd Moellmann <gerd@gnu.org>
10407
10408 * xdisp.c (check_window_end): New, for debugging.
10409 (CHECK_WINDOW_END): New.
10410 (try_window_id): Use it.
10411
10412 * xterm.c (process_expose_from_menu): Return int.
10413
10414 * keyboard.c (kbd_buffer_get_event): Set flag to prevent recording
10415 TOOLBAR_EVENT events in last_nonmenu_event.
10416
104171998-11-16 Gerd Moellmann <gerd@gnu.org>
10418
10419 * xdisp.c (redisplay_window): If windows_or_buffers_changed,
10420 window end isn't reliable, so set window_end_valid to nil.
10421 (redisplay_internal): If overlay arrow has changed, set
10422 windows_or_buffers_changed to redisplay thoroughly.
10423
10424 * dispnew.c (adjust_glyph_matrix): Invalidate window end, if
10425 necessary.
10426
10427 * xfns.c (file_dialog_cb): New.
10428 (Fx_file_dialog): New.
10429 * fileio.c (Fread_file_name): Call it.
10430
427ec082 10431 * xrdb.c (x_load_resources): Add default resoures for file
26901792
DL
10432 selection dialog.
10433
104341998-11-14 Gerd Moellmann <gerd@gnu.org>
10435
10436 * xterm.c (note_mouse_highlight): Don't highlight when popup
10437 is active.
10438
26901792
DL
10439 * keyboard.c (timer_check): Inhibit busy cursor around calls to
10440 timer-event-handler. This busy cursor tends to be anoying if
10441 fontifying stealthily.
10442
10443 * dispnew.c (direct_output_for_insert): Give up if current row
10444 contains trailing whitespace.
10445
104461998-11-13 Gerd Moellmann <gerd@gnu.org>
10447
10448 * dispextern.h (prop_idx): Add FONTIFIED_PROP_IDX.
10449
10450 * xdisp.c (handle_fontified_prop): New.
10451 (Vfontification_functions): New.
10452 (Qfontification_functions): New.
10453 (it_props): Add handle_fontified_prop.
10454
104551998-11-12 Gerd Moellmann <gerd@gnu.org>
10456
10457 * xmenu.c (xmenu_show): Use the frame's edit_widget as parent.
10458 Otherwise, under LessTif, after the popup has gone, all button
10459 press events come in for the frame's widget, and release events
10460 come in for the edit_widget.
10461 * xterm.c (XTread_socket): Remove workaround for that problem.
10462 (x_set_toolkit_scroll_bar_thumb): Add workaround for LessTif
10463 XmScrollBarSetValues.
10464 (SET_SAVED_MENU_EVENT): Give it statement form.
10465
26901792
DL
10466 * xfaces.c (display_message): If waiting_for_input, don't display
10467 the message.
10468
10469 * window.c (scroll_command): If not acting on current_buffer,
10470 make redisplay consider all windows.
10471
10472 * xfns.c (Fx_hide_tip): Return t if tooltip was open.
10473
10474 * xdisp.c (handle_glyph_prop): Set it->object for images to
10475 the object having the glyph property.
10476
10477 * xterm.c (x_draw_row_bitmaps): Don't draw if row is completely
10478 invisible.
10479
104801998-11-11 Gerd Moellmann <gerd@gnu.org>
10481
10482 * xterm.h (struct x_display_info): Add gray pixmap. * xterm.c
10483 (x_term_init): Create the gray pixmap.
10484 (x_setup_relief_color): Use it.
10485 (x_get_glyph_string_clip_rect): Draw a toolbar window over the
10486 internal border at the top of a frame.
10487 (x_init_glyph_string): Likewise.
427ec082 10488 (x_draw_glyph_string_relief): Correct right x by 1 pixel for
26901792
DL
10489 full-width lines.
10490 (XTflash): Don't flash the toolbar window.
10491
10492 * xterm.c (XTread_socket): Workaround for LessTif popup menus
10493 in case of ButtonPress events.
10494
104951998-11-10 Gerd Moellmann <gerd@gnu.org>
10496
10497 * xrdb.c (x_load_resources): Add grey background colors as
10498 defaults for menus, scroll bars, and dialogs.
10499
10500 * insdel.c (prepare_to_modify_buffer): Move setting
10501 windows_or_buffers_changed from modify_region here.
10502
10503 * xfns.c (Fx_show_tip): Inhibit redisplay.
10504 (Fx_hide_tip): Ditto.
10505 (Fx_image_header): New.
10506
105071998-11-09 Gerd Moellmann <gerd@gnu.org>
10508
10509 * dispnew.c (clear_window_matrices): Set window_end_valid to nil
10510 when clearing current window matrices.
10511
105121998-11-08 Gerd Moellmann <gerd@gnu.org>
10513
10514 * xdisp.c (handle_glyph_prop): Don't set an iterator's buffer
10515 position from a string position. Use the right end position
10516 if the property spans a whole overlay string.
10517
105181998-11-07 Gerd Moellmann <gerd@gnu.org>
10519
10520 * xmenu.c (menubar_selection_callback): Remove workaround for
10521 Lesstif not calling XmNpopdownCallback because it doesn't
10522 handle the case where users don't select any menu item.
10523
26901792
DL
10524 * insdel.c (modify_region): Set windows_or_buffers_changed.
10525
10526 * buffer.c (set_buffer_internal): Don't set
10527 windows_or_buffers_changed.
10528
26901792
DL
10529 * xmenu.c (HAVE_BOXES): Define if USE_X_TOOLKIT.
10530
26901792
DL
10531 * xmenu.c (menubar_selection_callback): Add workaround for
10532 Lesstif not calling XmNpopdownCallback.
10533
10534 * xdisp.c (eval_mode_element): New.
10535 (eval_mode_handler): New.
10536 (display_mode_element): Use eval_mode_element.
10537
10538 * xdisp.c (display_mode_element): Allow `(:eval FORM)'.
10539 Remove code looking at text props of default value.
10540
10541 * xmenu.c (HAVE_BOXES): Define if using Lucid menus.
10542
26901792
DL
105431998-11-06 Gerd Moellmann <gerd@gnu.org>
10544
427ec082 10545 * xmenu.c (single_submenu): Set button_type of menu to
26901792
DL
10546 BUTTON_TYPE_NONE.
10547 (single_submenu): Likewise for panes and menu items.
10548 (set_frame_menubar): Set button_type of menu bar to none.
10549 (xmenu_show): Likewise.
10550 (single_submenu): Set widget values selected slot.
10551 (xmenu_show): Likewise.
10552
26901792
DL
10553 * xmenu.c (push_menu_item): Add parameters `type' and
10554 `selected'. Store it in menu_items.
10555 (MENU_ITEMS_ITEM_TYPE): New.
10556 (MENU_ITEMS_ITEM_SELECTED): New.
10557 (MENU_ITEMS_ITEM_LENGTH): Increase by two.
10558
10559 * xfns.c (clear_image_cache): Get the current time, before
10560 doing anything.
10561 (cache_image): Set prev pointer of next image.
10562 (clear_image_cache): Clear current matrices if any image was
10563 freed.
10564
10565 * xterm.c (XTread_socket): Set inhibit_busy_cursor.
10566
10567 * xfns.c (x_set_cursor): New.
10568 (Fx_display_busy_cursor): New.
10569 (Fx_undisplay_busy_cursor): New.
10570
10571 * xterm.h (struct x_output): Add busy_cursor.
10572
10573 * xfns.c (Vx_busy_pointer_shape): New.
10574 (x_set_mouse_color): Create busy cursor.
10575
10576 * process.c (wait_reading_process_input): Show and hide busy
10577 cursor.
10578
10579 * keyboard.c (command_loop_1): Display busy cursor.
10580
10581 * eval.c (Fsignal): Hide busy cursor.
10582
10583 * buffer.c (set_buffer_internal): Don't set
10584 windows_or_buffers_changed.
10585
10586 * xterm.c (redo_mouse_highlight): New.
10587
105881998-11-04 Gerd Moellmann <gerd@gnu.org>
10589
26901792
DL
10590 * xfns.c (x_create_x_image_and_pixmap): Add depth parameter.
10591 (x_build_heuritic_mask): New.
10592 (lookup_image): Call it.
10593
10594 * xterm.c (note_toolbar_highlight): Always set up help_echo.
10595 (previous_help_echo): New.
10596 (XTread_socket): Generate help event with nil message when
10597 leaving a region with help-echo.
10598 (note_mouse_highlight): Handle `help-echo' over text.
10599 (XTread_socket): Dispatch VisibilityNotify, CirculateNotify,
10600 CirculateRequest.
10601 (clear_mouse_face): Don't clear if tooltip is shown.
10602 (XTread_socket): Redo mouse-highlight after tooltip is gone.
10603 Avoid SET_FRAME_GARBAGED when tooltip is mapped.
10604
10605 * keyboard.c (Vshow_help_function): New.
10606 (read_char): Use it.
10607
106081998-11-03 Gerd Moellmann <gerd@gnu.org>
10609
10610 * xfns.c (x_create_tip_frame): New.
10611 (Fx_show_tip): New.
10612 (Fx_hide_tip): New.
10613
427ec082 10614 * xterm.c (x_destroy_window): Handle case that we don't have
26901792
DL
10615 a widget.
10616
10617 * dispextern.h (struct glyph_row): Rename no_marginal_areas_p
10618 to full_width_p. Add internal_border_p.
10619
106201998-11-02 Gerd Moellmann <gerd@gnu.org>
10621
10622 * xterm.c (note_mode_line_highlight): Check the charpos of
10623 the glyph under the mouse pointer before accessing text
10624 properties at that position.
10625
106261998-11-01 Gerd Moellmann <gerd@gnu.org>
10627
10628 * xterm.c (x_draw_image_relief): Handle toolbar_button_relief.
10629
10630 * xdisp.c (auto-raise-toolbar-buttons): New.
10631 (build_desired_toolbar_string): Handle the flag.
10632 (toolbar-button-margin): New.
10633 (toolbar-button-relief): New.
10634 (build_desired_toolbar_string): Use margin and relief.
10635
10636 * xterm.c (x_set_toolkit_scroll_bar_thumb): Remove workaround
10637 for FreeBSD.
10638 (note_mode_line_highlight): New.
10639 (note_mouse_highlight): Call it.
10640
106411998-10-31 Gerd Moellmann <gerd@gnu.org>
10642
10643 * s/freebsd.h (NARROWPROTO): New.
10644
10645 * xdisp.c (display_string): New parameter face_string.
10646 (display_mode_element): When displaying a symbol with a string
10647 value, use text properties from the symbol's default value, maybe.
10648
10649 * xrdb.c (x_load_resources): Add font defaults for menus and
10650 dialogs.
10651
106521998-10-30 Gerd Moellmann <gerd@gnu.org>
10653
10654 * xfns.c (Fx_create_frame): Try 12pt Courier font first.
10655
106561998-10-29 Gerd Moellmann <gerd@gnu.org>
10657
10658 * xterm.c (x_produce_glyphs): Fix bug causing glyphs to be
10659 produced for characters with codes < 32 under certain
10660 circumstances.
10661
10662 * xdisp.c (redisplay_window): Handle values of PT in front
10663 of invisible, intangible text.
427ec082 10664 (try_window_id): Set overlay_arrow_seen to zero before
26901792
DL
10665 displaying lines.
10666 (display_mode_element): Assign to glyphs written for a mode
10667 line spec `%x' as object the Lisp format string, as position
10668 the position of the `%' in that string.
10669 (display_string): If displaying a C string, optionally get
10670 the face to use from a Lisp string.
10671
10672 * xterm.c (expose_window_tree): Include mode line height.
10673
10674 * xfns.c (Fx_create_frame): Add toolbar height to frame height.
10675
106761998-10-27 Gerd Moellmann <gerd@gnu.org>
10677
10678 * xterm.c (note_mouse_highlight): Change mouse pointer shape
10679 over mode line.
10680
106811998-10-26 Gerd Moellmann <gerd@gnu.org>
10682
10683 * window.c (coordinates_in_window): Use CURRENT_MODE_LINE_HEIGHT.
10684
10685 * xdisp.c (redisplay_window): If mode line height has changed,
10686 arrange for a thorough immediate redisplay using the correct mode
10687 line height.
10688 (window_box_height): Use CURRENT_MODE_LINE_HEIGHT.
10689
10690 * dispextern.h (MATRIX_MODE_LINE_HEIGHT): New.
10691 (CURRENT_MODE_LINE_HEIGHT): New.
10692 (DESIRED_MODE_LINE_HEIGHT): New.
10693
10694 * keyboard.c (make_lispy_event): Add string and string position
10695 info to mouse-click events.
10696 (read_key_sequence): Handle `local-map' property of mode line
10697 strings.
10698
10699 * keyboard.h (POSN_STRING): New.
10700
107011998-10-25 Gerd Moellmann <gerd@gnu.org>
10702
10703 * dispnew.c (mode_line_string): Mew.
10704
10705 * xterm.c (xt_action_hook): New.
10706 (x_create_toolkit_scroll_bar): Add action hook.
10707 (xm_scroll_callback): Implement dragging.
10708
10709 * keyboard.c (Qend_scroll): New.
10710 (scroll_bar_parts): Add it.
10711
10712 * termhooks.h (scroll_bar_end_scroll): New.
10713
10714 * xterm.c (XTread_socket): Bug fix.
10715
107161998-10-24 Gerd Moellmann <gerd@gnu.org>
10717
10718 * xdisp.c (redisplay_window): Finish scroll bars after
10719 redisplaying toolbar.
10720
10721 * keyboard.c (scroll_bar_parts): Add Qtop and Qbottom.
10722 (syms_of_keyboard): Add Qbottom.
10723
10724 * termhooks.h (scroll_bar_to_top): New.
10725 (scroll_bar_to_bottom): New.
10726
10727 * xdisp.c (redisplay_window): Always resize toolbar window if
10728 auto_resize_toolbar_p is non-zero.
10729 (auto_resize_toolbar_p): Renamed from auto_resize_toolbar.
10730 (window_box): New.
10731 (window_box_height): New.
10732 (window_box_width): New.
10733 (window_box_left): New.
10734 (window_box_right): New.
10735 (window_box_edges): New.
10736
107371998-10-23 Gerd Moellmann <gerd@gnu.org>
10738
10739 * xterm.c (x_set_toolkit_scroll_bar_thumb): Kluge for call to
10740 XawScrollbarSetThumb in FreeBSD.
10741 (x_create_toolkit_scroll_bar): Set resource "beNiceToColormap"
10742 to true.
10743
10744 * window.c (get_phys_cursor_glyph): Return null if cursor vpos
10745 is out of range.
10746
10747 * xterm.c (x_create_toolkit_scroll_bar): Set scroll_bar_pixel.
10748 (x_term_init): Initialize it.
10749
10750 * xterm.h (struct x_display_info): Add scroll_bar_pixel.
10751
10752 * xterm.c (x_create_toolkit_scroll_bar): Set LessTif scroll bar's
10753 cursor.
10754
107551998-10-22 Gerd Moellmann <gerd@gnu.org>
10756
10757 * keyboard.c (make_lispy_event): Handle scroll_bar_click
10758 differently when using toolkit scroll bars.
10759
10760 * xterm.c (x_send_scroll_bar_event): New.
10761 (x_scroll_bar_to_input_event): New.
10762 (xaw3d_scroll_callback): New.
10763 (xaw3d_jump_callback): New.
10764 (xm_scroll_callback): New.
10765 (x_toolkit_scroll_p): New.
10766 (XTread_socket): Handle scroll bar client message.
10767 (x_term_init): Initialize Xatom_Scrollbar.
10768 (x_scroll_bar_create): Set cursor.
10769 (xm_scroll_callback):
10770 (x_create_toolkit_scroll_bar): New.
10771 (x_set_toolkit_scroll_bar_thumb): New.
10772 (x_scroll_bar_create): Call x_create_toolkit_scroll_bar.
10773 (XTset_vertical_scroll_bar): Call x_set_toolkit_scroll_bar_thumb.
10774
10775 * xterm.h (struct x_display_info): Add Xatom_Scrollbar.
10776
107771998-10-21 Gerd Moellmann <gerd@gnu.org>
10778
10779 * xterm.c (x_scroll_bar_remove): Handle toolkit scroll bars.
10780 (XTread_socket): Don't handle mouse button events for scroll bars
10781 if using toolkit scroll bars.
10782 (XTset_vertical_scroll_bar): Set thumb size and position for
10783 Athena scroll bar.
10784
10785 * xterm.h (scroll_bar): Add x_widget_low and x_widget_high.
10786
10787 * xterm.c (XTread_socket): Dispatch expose event to widget
10788 if using toolkit scroll bars.
10789 (x_scroll_bar_expose): Make no-op for toolkit scroll bars.
427ec082 10790 (x_scroll_bar_create): Create and show a scroll bar widget
26901792
DL
10791 if using toolkit scroll bars.
10792 (x_scroll_bar_move): Handle tookit scroll bars.
10793
10794 * Makefile.in (LIBW): Use Xaw3d if present.
10795
10796 * configure.in (USE_TOOLKIT_SCROLL_BARS): New.
10797 (HAVE_XAW3D): New.
427ec082 10798
26901792
DL
10799 * config.in (USE_TOOLKIT_SCROLL_BARS): New.
10800 (HAVE_XAW3D): New.
10801
427ec082 10802 * xterm.c (XTset_vertical_scroll_bar): Correct position of
26901792
DL
10803 right vertical scroll bar.
10804
108051998-10-20 Gerd Moellmann <gerd@gnu.org>
10806
10807 * xfns.c (xpm_load): Support reading XPM images from string
10808 buffers containing data in the same format as an XPM file.
10809 Support `:color-symbols'.
10810 (xpm_format): Add `:data'.
10811 (xpm_keyword_index): Add XPM_DATA.
10812 (syms_of_xfns): Add `:color-symbols'.
10813 (xpm_keyword_index): Add XPM_COLOR_SYMBOLS.
10814 (xpm_valid_color_symbols_p): New.
10815 (xpm_image_p): Call it.
10816
10817 * xdisp.c (build_desired_toolbar_string): Add `:algorithm'
10818 attribute to the image if item is not enabled.
10819
10820 * xfns.c (x_laplace): New.
10821 (x_laplace_read_row): New.
10822 (x_laplace_write_row): New.
10823 (lookup_image): Handle common image attributes here. New
10824 attribute `:algorithm'.
10825
10826 * xfaces.c (clear_face_cache): Call clear_image_cache.
10827
10828 * xterm.c (x_inverted_image_mask): Removed.
10829 (x_draw_image_foreground_1): New.
10830 (x_draw_image_glyph_string): Draw images with mask to a temporary
10831 pixmap to reduce flickering.
10832
10833 * xdisp.c (redisplay_toolbar): Handle auto-resize-toolbars.
10834 (display_toolbar_line): Remove parameter `margin'.
10835
108361998-10-19 Gerd Moellmann <gerd@gnu.org>
10837
10838 * xdisp.c (toolbar_lines_needed): New.
10839 (auto-resize-toolbars): New.
10840
10841 * xfns.c (cache_image): Correct call to xrealloc.
10842
10843 * dispnew.c (Fset_toolbar_height): Removed.
10844
10845 * xdisp.c (init_xdisp): Use FRAME_TOP_MARGIN instead of
10846 FRAME_MENU_BAR_LINES.
10847
10848 * window.c (Fdelete_other_windows): Use FRAME_TOP_MARGIN
10849 instead of FRAME_MENU_BAR_LINES.
10850 (check_frame_size): Ditto.
10851
10852 * dispnew.c (adjust_frame_glyphs_initially): Use FRAME_TOP_MARGIN
10853 instead of FRAME_MENU_BAR_LINES.
10854 (adjust_frame_glyphs_for_frame_redisplay): Ditto.
10855 (build_frame_matrix): Ditto.
10856 (change_frame_size_1): Ditto.
10857
10858 * frame.h (FRAME_TOOLBAR_LINES): New.
10859 (FRAME_TOP_MARGIN): New.
10860
10861 * window.c (struct save_window_data): Add frame_toolbar_lines.
10862 (Fset_window_configuration): Handle toolbar lines.
10863 (Fcurrent_window_configuration): Save toolbar lines.
10864
10865 * frame.c (syms_of_frame_1): Add Qtoolbar_lines.
10866
10867 * xfns.c (Fx_create_frame): Add default parameter for toolbar.
10868
10869 * frame.h (struct frame): Rename top_margin to toolbar_lines.
10870
10871 * xfns.c (x_frame_parms): Add `toolbar-lines'.
10872 (x_set_toolbar_lines): New.
10873
10874 * keyboard.c (cmd_error_internal): Bug fix.
10875
10876 * xterm.c: Remove double include of syssignal.h.
10877
108781998-10-18 Gerd Moellmann <gerd@gnu.org>
10879
10880 * xterm.c (x_toolbar_item): New.
10881 (x_handle_toolbar_click): Use it.
10882 (note_toolbar_highlight): Use it.
10883
10884 * keyboard.c (syms_of_keyboard): Staticpro toolbar_item_properties
10885 and toolbar_items_vectors.
10886
10887 * xterm.c (help_echo): New.
10888 (draw_glyphs_face): Add DRAW_IMAGE_RAISED and DRAW_IMAGE_SUNKEN.
10889 (x_set_glyph_string_gc): Handle them.
10890 (x_after_update_window_line): Don't do anything in pseudo-windows.
10891 (x_produce_image_glyph): Take image margin and face relief into
10892 account.
10893 (x_get_glyph_string_clip_rect): Handle pseudo-windows.
10894 (x_draw_glyph_string_background): Optimize case when face has
10895 relief.
10896 (x_setup_relief_color): Take frame instead of glyph string
10897 parameter.
10898 (x_draw_relief_rect): New.
10899 (x_draw_glyph_string_relief): Call it.
10900 (x_draw_image_glyph_string_foreground): Handle margin and image
10901 relief.
10902 (x_draw_image_glyph_string_background): Ditto.
10903 (expose_frame): Redraw toolbar window.
10904 (expose_window): Don't draw cursor for pseudo-windows.
10905 (x_y_to_hpos_vpos): Handle pseudo-windows.
10906 (frame_to_window_pixel_xy): New.
10907 (note_mouse_highlight): Call note_toolbar_highlight.
10908 (x_handle_toolbar_click): New.
10909 (note_toolbar_highlight): New.
10910 (show_mouse_face): Change int parameter `hl' to parameter of
10911 type enum draw_glyphs_face. Handle image highlighting.
10912 (XTread_socket): Return a HELP_EVENT input event if help_echo is
10913 non-nil. Use x_handle_toolbar_click.
10914
10915 * termhooks.h (event_kind): Add HELP_EVENT, TOOLBAR_EVENT.
10916
10917 * xfns.c (image_value_type): Add IMAGE_INTEGER_VALUE,
10918 IMAGE_BOOL_VALUE.
10919 (parse_image_spec): Handle them.
10920 (image_spec_value): Additional parameter found.
427ec082 10921 (free_image): Remove image from the vector `images' of the
26901792
DL
10922 image cache.
10923 (clear_image_cache): Additional parameter force_p.
10924 (Fclear_image_cache): New.
10925 (x_find_image_file): New.
10926 (xbm_load): Handle `:margin' and `:relief'. Use
10927 x_find_image_file.
10928 (xpm_load): Likewise.
10929 (pbm_load): Likewise.
10930 (jpeg_load): Likewise.
10931 (tiff_load): Likewise.
10932 (gif_load): Likewise.
10933
10934 * keyboard.c (Qhelp_echo): New symbol.
10935 (read_char): Handle `toolbar' and `help_echo' events.
10936 (kbd_buffer_get_event): Handle HELP_ECHO input event.
10937 (make_lispy_event): Handle TOOLBAR_EVENT.
10938 (toolbar_items): New.
10939 (process_toolbar_item): New.
10940 (PROP): New.
10941 (init_toolbar_items): New.
10942 (append_toolbar_item): New.
10943 (read_char_x_menu_prompt): Handle `toolbar' event.
10944 (read_key_sequence): Ditto.
10945
10946 * xfaces.c (Qtoolbar): New.
10947 (realize_basic_faces): Realize `toolbar' face.
10948 (face_at_string_position): Remove parameter modeline_p, add
10949 base_face_id.
10950
10951 * xfns.c (xbm_load_image_from_file): Don't use Xmu function
10952 to read data.
10953
109541998-10-17 Gerd Moellmann <gerd@gnu.org>
10955
10956 * xdisp.c (init_iterator): Replace parameter modeline_p with
10957 base_face_id.
10958 (next_element_from_string): Call get_next_display_element
10959 recursively after handling text properties.
10960 (prepare_menu_bars): Call update_toolbar.
10961 (update_toolbar): New.
10962 (build_desired_toolbar_string): New.
10963 (display_toolbar_line): New.
10964 (redisplay_toolbar): New.
10965 (toolbar_item_info): New.
10966 (redisplay_window): Call redisplay_toolbar.
10967 (Fdump_toolbar_row): New. Defined if compiled with GLYPH_DEBUG.
10968
10969 * dispnew.c (clear_current_matrices): Clear matrices of toolbar
10970 window.
10971 (clear_desired_matrices): Ditto.
10972 (adjust_frame_glyphs_for_window_redisplay): Make toolbar window.
10973 (free_glyphs): Free matrices of toolbar window.
10974 (update_frame): Update toolbar window.
10975 (change_frame_size_1): Take toolbar into account.
10976 (Fset_toolbar_height): New.
10977
10978 * dispextern.h (struct it): Remove member modeline_p, add
10979 base_face_id.
10980 (struct image): Add members relief and margin.
10981 (IMAGE_ASCENT): Include margin in height.
10982
109831998-10-14 Gerd Moellmann <gerd@gnu.org>
10984
10985 * xfns.c (Fclear_image_cache): New.
10986
10987 * xfaces.c (realize_basic_faces): Realize toolbar face.
10988 (face_at_string_position): Remove parameter modeline_p, add
10989 base_face_id.
10990
10991 * dispextern.h (enum face_id): Add TOOLBAR_FACE_ID.
10992
109931998-10-13 Gerd Moellmann <gerd@gnu.org>
10994
10995 * keyboard.c (syms_of_keyboard): Intern `:help'.
10996
109971998-10-12 Gerd Moellmann <gerd@gnu.org>
10998
10999 * xterm.c (note_toolbar_highlight): New.
11000 (note_mouse_highlight): Call it.
11001
11002 * window.c (window_from_coordinates): Additional parameter toolbar_p.
11003 (coordinates_in_window): Handle toolbar window.
11004
11005 * keyboard.c (toolbar_items): New.
11006 (process_toolbar_item): New.
11007 (parse_toolbar_item): New.
11008 (init_toolbar_items): New.
11009 (append_toolbar_item): New.
11010
11011 * dispextern.h (enum toolbar_item_idx): New.
11012 (enum toolbar_item_image): New.
11013
11014 * frame.h (struct frame): Add toolbar-related members.
11015
11016 * xfaces.c (face_at_string_position): Remove assertion that
11017 current_buffer == window's buffer. This is not the case when
11018 called for the toolbar window.
11019
11020 * frame.c (make_frame): Initialize toolbar members.
11021
11022 * alloc.c (mark_object): Mark toolbar data of frames.
11023
11024 * frame.h (struct frame): Add toolbar-related members
11025 toolbar_window, desired_toolbar_items, current_toolbar_items,
11026 desired_toolbar_string, current_toolbar_string,
11027 n_desired_toolbar_items, n_current_toolbar_items. Add
11028 window_height.
11029
11030 * xterm.c (x_after_update_window_line): Don't draw bitmap
11031 areas for pseudo-windows.
11032 (expose_frame): Handle toolbar window.
11033 (expose_window): Don't do cursor stuff for pseudo-windows.
11034
11035 * xdisp.c (display_menu_bar): Correct calls to init_iterator.
11036
110371998-10-11 Gerd Moellmann <gerd@gnu.org>
11038
11039 * frame.c (make_frame): Initialize toolbar_window.
11040
11041 * alloc.c (mark_object): Make the toolbar window.
11042
11043 * dispnew.c (update_frame): Update frame's toolbar_window.
11044 (clear_current_matrices): Likewise.
11045 (clear_desired_matrices): Likewise.
11046 (adjust_frame_glyphs_for_window_redisplay): Make toolbar_window.
11047 (free_glyphs): Free the toolbar window and its matrices.
11048
11049 * frame.h (struct frame): Add toolbar_window.
11050
11051 * xterm.c (x_draw_glyph_string_relief): Handle mouse-face
11052 with relief.
11053
110541998-10-10 Gerd Moellmann <gerd@gnu.org>
11055
427ec082 11056 * dispnew.c (buffer_posn_from_coords): Don't screw up if
26901792
DL
11057 window start is not in the range BEGV..ZV.
11058
110591998-10-09 Gerd Moellmann <gerd@gnu.org>
11060
11061 * xdisp.c (try_scrolling): Experimentally handle the case
11062 that scroll-preserve-screen-position is set to `always'.
11063
11064 * window.c (Vscroll_preserve_screen_position): Replacement for
11065 scroll_preserve_screen_position.
11066
110671998-10-08 Gerd Moellmann <gerd@gnu.org>
11068
11069 * dispnew.c: Don't initialize auto structs; the HP/UX compiler
11070 doesn't like it.
11071 * xdisp.c: Ditto.
11072
11073 * xdisp.c (make_cursor_line_fully_visible): Adjust this_line_y.
11074
110751998-10-06 Gerd Moellmann <gerd@gnu.org>
11076
427ec082 11077 * minibuf.c (Fminibuffer_complete_word): Fix computation of
26901792
DL
11078 i_byte when prompts are inserted into minibuffers.
11079
11080 * dispextern.h (FRAME_INTERNAL_BORDER_WIDTH_SAFE): New.
11081 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Use it.
11082 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y): Ditto.
11083
110841998-10-04 Gerd Moellmann <gerd@gnu.org>
11085
11086 * xdisp.c (make_cursor_line_fully_visible): New.
11087 (try_scrolling): New.
11088 (redisplay_window): Move scrolling code to try_scrolling.
11089 (make_cursor_line_fully_visible): Handle case of window too small
11090 to show a single line.
11091 (redisplay_window): Case forced window start---use
11092 make_cursor_line_fully_visible.
11093 (redisplay_window): Case cursor movement via current matrix.
11094 If ending up on a partially visible line, make it fully visible
11095 instead of recentering.
11096 (try_scrolling): Additional parameter scroll_smoothly.
11097
11098 * xterm.c (x_draw_bitmap): Don't XClearArea under the pixmap.
11099
111001998-09-28 Gerd Moellmann <gerd@gnu.org>
11101
11102 * window.c (window_scroll_pixel_based): Bug fix: vpos used
11103 instead of y-position for scroll-preserved-screen-position.
11104
111051998-09-07 Gerd Moellmann <gerd@gnu.org>
11106
11107 * dispnew.c (update_frame_line): If current row is not enabled,
11108 write the whole line.
11109
111101998-09-06 Gerd Moellmann <gerd@gnu.org>
11111
11112 * lisp.h (HAVE_FACES): Removed.
11113
11114 * dispextern.h (HAVE_FACES): Removed.
11115
11116 * config.in (HAVE_FACES): Removed.
11117
11118 * dispnew.c (HAVE_FACES): Removed.
11119
11120 * xdisp.c (HAVE_FACES): Removed.
11121
11122 * xfaces.c (HAVE_FACES): Removed.
11123
111241998-09-05 Gerd Moellmann <gerd@gnu.org>
11125
11126 * xdisp.c (init_iterator): If face_change_count is non-zero,
11127 free realized faces.
11128
11129 * xfaces.c (free_all_realized_faces): Make it externally visible.
11130 (Finternal_set_lisp_face_attribute): Increment
11131 windows_or_buffers_changed.
11132
11133 * dispnew.c (direct_output_for_insert): Give up if
11134 face_change_count is non-zero.
11135 (direct_output_forward_char): Ditto.
11136
11137 * xfaces.c (face_change_count): New.
11138
111391998-09-04 Gerd Moellmann <gerd@gnu.org>
11140
11141 * xterm.c (x_draw_bar_cursor): Don't draw if cursor hpos is out
11142 of range.
11143
111441998-09-03 Gerd Moellmann <gerd@gnu.org>
11145
11146 * term.c (Ftty_display_color_p): New.
11147
111481998-09-02 Gerd Moellmann <gerd@gnu.org>
11149
11150 * xfaces.c (Ftty_defined_colors): New.
11151
11152 * xterm.c (x_produce_glyphs): Fix computation of
11153 contains_overlapping_glyphs_p for ASCII.
11154
11155 * dispnew.c (Fshow_cursor): Don't change cursor state while
11156 redisplaying.
11157 (direct_output_for_insert): If a glyph with lbearing or rbearing
11158 is among the new glyphs, set row flag contains_overlapping_glyph_p.
11159
111601998-09-01 Gerd Moellmann <gerd@gnu.org>
11161
11162 * term.c (OUTPUT_IF): Make replacement text have statement form.
11163 (OUTPUT1_IF): Ditto.
11164 (TS_italic_mode, TS_end_italic_mode): Removed.
11165 (TS_bold_mode): Removed.
11166 (TS_underscore_mode, TS_end_underscore_mode): Removed.
11167 (TS_enter_bold_mode, TS_enter_dim_mode, TS_enter_blink_mode): New.
11168 (TS_enter_reverse_mode): New.
11169 (TS_enter_underline_mode, TS_exit_underline_mode): New.
11170 (TN_magic_cookie_glitch_ul): New.
11171 (TS_enter_alt_charset_mode, TS_exit_alt_charset_mode): New.
11172 (TS_exit_attribute_mode): New.
11173 (TN_max_colors, TN_max_pairs, TS_orig_pairs): New.
11174 (TS_set_foreground, TS_set_background): New.
11175 (reset_terminal_modes): Switch colors back to default.
11176 (write_glyphs): Turn face on before writing text, turn it off
11177 afterwards.
11178 (insert_glyphs): Ditto.
11179 (term_init): Initialize new terminal capability variables.
11180 (turn_on_face): Turn a face on.
11181 (turn_off_face): Turn a face off.
11182
11183 * lisp.h (MAKE_GLYPH): Remove test for frame type.
11184 (GLYPH_CHAR): Ditto.
11185 (GLYPH_FACE): Ditto.
11186
11187 * xfaces.c (Vface_tty_color_alist): New.
11188 (face-register-tty-color): New.
11189 (face-clear-tty-colors): New.
11190
11191 * dispextern.h (FACE_TTY_DEFAULT_COLOR): New.
11192 (struct it): Remove member faces_p since we now always have faces.
11193
111941998-08-31 Gerd Moellmann <gerd@gnu.org>
11195
11196 * dispextern.h (struct face): Add tty appearance flags.
11197
11198 * xdisp.c (init_iterator): Always handle faces.
11199 (extend_face_to_end_of_line): Handle tty frames.
11200
11201 * dispnew.c (clear_glyph_matrix): Allow a null matrix to be
11202 passed in.
11203
112041998-08-30 Gerd Moellmann <gerd@gnu.org>
11205
11206 * xfaces.c (realize_default_face): Use empty strings to indicate
11207 that the face should use the default foreground/background
427ec082 11208 color of the terminal. Fill font-related attributes with
26901792
DL
11209 appropriate values for tty frames.
11210
11211 * emacs.c (main): Call syms_of_xfaces before init_window_once.
11212
11213 * xfaces.c (realize_default_face): If face `default' is not
11214 yet known, create it.
11215
11216 * frame.c (make_terminal_frame): Call init_frame_faces
11217 unconditionally.
11218
11219 * xfaces.c (init_frame_faces): Make it work for tty frames.
11220 (free_frame_faces): Ditto.
11221 (clear_face_cache): Ditto.
11222 (recompute_basic_faces): Ditto.
11223 (Fframe_face_alist): Ditto.
11224 (free_realized_face): Ditto.
11225 (prepare_face_for_display): Ditto.
11226 (clear_face_gcs): Ditto.
11227 (lookup_face): Ditto.
11228 (smaller_face): Ditto.
11229 (realize_default_face): Ditto.
11230 (realize_face): Ditto.
11231 (realize_face): Dispatch to functions depending on the frame type.
11232 (realize_x_face): X way of realizing faces.
11233 (realize_tty_face): TTY way of realizing faces.
11234
112351998-08-29 Gerd Moellmann <gerd@gnu.org>
11236
11237 * xfaces.c (realize_face): Remove parameter unibyte_registry,
11238 compute it instead.
11239 (lookup_face): Remove local variable unibyte_registry.
11240
112411998-08-22 Gerd Moellmann <gerd@gnu.org>
11242
11243 * xterm.c (x_draw_glyph_string_relief): Draw top and bottom lines
11244 1 pixel longer.
11245
427ec082 11246 * xdisp.c (face_before_or_after_it_pos): Fix computation
26901792
DL
11247 of face in buffer.
11248
11249 * editfns.c (make_buffer_string_both): If prompt in buffer,
11250 prevent start > end.
11251
11252 * indent.c (Fvertical_motion): Set current_buffer to window's
11253 buffer if it isn't already.
11254
112551998-08-21 Gerd Moellmann <gerd@gnu.org>
11256
11257 * dispextern.h (GLYPH_DEBUG): Use default 0.
11258
11259 * xdisp.c (it_props): New member `smaller'.
11260 (init_iterator): Initialize it.
11261 (Qsmaller): New.
11262 (push_it): Save value of `smaller' value on the stack.
11263 (pop_it): Restore `smaller' from the stack.
11264 (handle_smaller_prop): New.
11265 (handle_face_prop): Use `smaller' text property to select a
11266 suitable face.
11267
11268 * dispextern.h (SMALLER_PROP_IDX): New.
11269 (struct it): Add member `smaller'.
11270
11271 * xfaces.c (smaller_face): New.
11272
11273 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add bitmap area widths.
11274
11275 * dispnew.c (allocate_matrices_for_window_redisplay): Compute
11276 total pixel width of window differently.
11277
11278 * xdisp.c (init_iterator): Compute width of mode line differently.
11279
11280 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract width
11281 of bitmap areas.
11282
11283 * window.c (Fsplit_window): Include width of bitmap areas in
11284 window width.
11285 (window_internal_width): Subtract width of bitmap areas from
11286 total width.
11287
112881998-08-18 Gerd Moellmann <gerd@gnu.org>
11289
11290 * xdisp.c: Functions reordered for better readability.
11291
11292 * dispnew.c (update_text_area): Handle glyphs with arbitrary
11293 lbearing.
11294 (update_window_tree): Parameter no_scrolling_p removed.
11295 (update_single_window): Ditto.
11296
11297 * xterm.c (x_get_char_font_and_encoding): Renamed to
11298 x_get_char_face_and_encoding.
11299
11300 * dispnew.c (update_text_area): Don't call get_glyph_overhangs
11301 if end of current row reached.
11302
11303 * xterm.c (x_get_glyph_face_and_encoding): New.
11304 (x_get_glyph_overhangs): Call it.
11305
11306 * xdisp.c (Qshow_trailing_whitespace): New.
11307 (Qtrailing_whitespace): New.
11308 (enum prop_handled): New.
11309 (struct props, it_props): New.
11310 (next_overlay_change): New. Works like Fnext_overlay_change
11311 but doesn't use xmalloc.
11312 (handle_stop): Restructured.
11313 (face_before_or_after_it_pos): Case iteration over a string: fix
11314 handling of face before current position.
11315
113161998-08-16 Gerd Moellmann <gerd@gnu.org>
11317
11318 * dispnew.c (adjust_glyph_matrix): Don't optimize matrix
11319 reallocation matrix if fonts_changed_p.
11320 (update_text_area): Handle glyphs with lbearing.
11321
113221998-08-14 Gerd Moellmann <gerd@gnu.org>
11323
11324 * xdisp.c (struct props): New.
11325 (it_props): New.
11326 (compute_prop_info): New.
11327 (handle_stop): New.
11328
11329 * textprop.c (validate_interval_range): Make it externally
11330 visible.
11331
11332 * dispnew.c (direct_output_for_insert): Remove calls
11333 to compute_stop_pos.
11334
11335 * dispextern.h (struct it): Remove check_charpos,
11336 next_overlay_pos. Add what_changes.
11337
113381998-08-10 Gerd Moellmann <gerd@gnu.org>
11339
11340 * xterm.c (note_mouse_highlight): Set BEGV_BYTE, ZV_BYTE.
11341
11342 * xfaces.c (Vx_unibyte_registry_and_encoding): Removed. Use
11343 face_default_registry instead.
11344
11345 * syntax.c (scan_sexps_forward): Set up syntax table before
11346 jumping to initial state label.
11347
113481998-08-09 Gerd Moellmann <gerd@gnu.org>
11349
11350 * dispnew.c (check_matrix_invariants): Handle case of row end pos
11351 >= ZV specially.
11352
113531998-08-08 Gerd Moellmann <gerd@gnu.org>
11354
11355 * xdisp.c (redisplay_window): Case cursor movement---if cursor
11356 ends up in partially visible row, try to scroll. Case forced
11357 window start---handle windows not tall enough to show a single
11358 line.
11359
11360 * window.h (struct window): Member dy renamed vscroll.
11361
11362 * xterm.c (x_list_fonts): Re-activate suppression of scalable
11363 fonts.
11364 (x_draw_stretch_glyph_string): Set clipping if using GC that
11365 hasn't set it yet.
11366
11367 * xdisp.c (redisplay_window): Case forced window start -
11368 don't let cursor end on partially visible row. Use desired
11369 matrix to find a suitable PT if it doesn't appear.
11370 (decode_mode_spec): Merged with 20.2.97.
11371 (try_window_reusing_current_matrix): Give up if old or
11372 new display is vscrolled.
11373 (redisplay_window): Reset vscrolling if forced window start,
11374 or if recentering.
11375
113761998-08-06 Gerd Moellmann <gerd@gnu.org>
11377
11378 * xfaces.c (realize_default_face): Use the fontset name instead of
11379 the alias for the family attribute of the default face because we
11380 can't easily determine a good alias from fontset-alias-alist.
11381 (face_fontset): Use Fquery_fontset to find the fontset.
11382 (font_list): Additional pattern parameter.
11383 (try_font_list): Ditto.
11384 (set_lface_from_font_name): Set face family from font foundry
11385 and family.
11386 (font_list): If family contains a hyphen, build pattern differently.
11387
113881998-08-05 Gerd Moellmann <gerd@gnu.org>
11389
11390 * xfaces.c (free_realized_faces): Increment windows_or_buffers_-
11391 changed instead of setting the frame garbaged.
11392
11393 * xfaces.c (lface_equal_p): Don't assume equal Lisp types for
11394 all attribute values. This is wrong if values are unspecified,
11395 i.e. nil.
11396
11397 * xdisp.c (try_window_id): Give up if window start changed.
11398
11399 * xfaces.c (make_realized_face): Store registry as Lisp object.
11400 (load_face_font_or_fontset): Compute registry of a face
11401 differently. Make it `eq' to Vx_unibyte_registry_and_encoding if
11402 possible.
11403
11404 * dispextern.h (FACE_SUITABLE_FOR_CHARSET_P): Compare registries
11405 differently.
11406
11407 * alloc.c (mark_face_cache): Mark the registry member of faces.
11408
11409 * dispextern.h (struct face): Make registry a Lisp string.
11410
114111998-08-04 Gerd Moellmann <gerd@gnu.org>
11412
11413 * xterm.c (x_get_char_font_and_encoding): Additional parameter
11414 multibyte_p. Handle unibyte text.
11415 (x_append_glyph): Set the multibyte_p flag of glyphs.
11416 (x_produce_image_glyph): Ditto.
11417 (x_append_stretch_glyph): Ditto.
11418 (x_produce_glyphs): Handle unibyte text like ASCII.
11419
11420 * xdisp.c (push_it): Save the multibyte flag of an iterator on the
11421 stack.
11422 (pop_it): Restore it.
11423 (face_before_or_after_it_pos): Handle the case that the string or
11424 buffer is unibyte.
11425 (get_overlay_strings): Set the multibyte flag of the iterator if
11426 the new overlay string is multibyte.
11427 (get_glyph_property): Likewise.
11428 (get_next_display_element): Don't check for charset changes in
11429 unibyte text.
11430 (append_space): Compute face differently for unibyte text.
11431 (extend_face_to_end_of_line): Don't return quickly if face has
11432 stipple.
11433
11434 * xfaces.c (load_face_font_or_fontset): Store registry and
11435 encoding of the font in the registry member of the face.
11436 (make_realized_face): Additional parameter `registry'.
11437 (free_realized_face): Free the registry of a realized face.
11438 (face_suitable_for_charset_p): Function form of the macro
11439 with the same name in uppercase.
11440 (lookup_face): Use Vx_unibyte_registry_and_encoding if charset < 0.
11441 (choose_face_font): New parameter unibyte_registry.
11442 (choose_face_fontset_font): Ditto.
11443 (realize_default_face): Remember the registry and encoding of
11444 the specified frame font in Vx_unibyte_registry_and_encoding.
11445 (face_at_buffer_position): Handle unibyte.
11446 (face_at_string_position): Likewise.
427ec082 11447 (realize_face): New parameter unibyte_registry.
26901792
DL
11448 (compute_char_face): Handle the unibyte case.
11449
11450 * dispextern.h (struct glyph): Add bit multibyte_p.
11451 (struct face): New member registry holding the registry and
11452 encoding of the X font of the face.
11453 (FACE_UNIBYTE_P): Value is non-zero if face is for unibye text.
11454 (enum face_id): Add BASIC_FACE_ID_SENTINEL.
11455 (FACE_SUITABLE_FOR_CHARSET_P): Handle charset < 0 meansing unibyte
11456 text.
11457 (struct iterator_stack_entry): Add multibyte_p.
11458
11459 * xdisp.c (string_pos): Use string_char_to_byte.
11460 (char_charset): Removed.
11461
114621998-08-03 Gerd Moellmann <gerd@gnu.org>
11463
11464 * xterm.c (x_draw_image_glyph_string_foreground): Draw a
11465 rectangle for a block cursor over an image without a mask.
11466 (x_stretch_block_cursor): Added. Non-zero means don't draw
11467 a block cursor over a stretch as wide as that stretch.
11468 (x_draw_stretch_glyph_string): Use it.
11469 (x_draw_hollow_cursor): Ditto.
11470
11471 * minibuf.c (read_minibuf): Use minibuf_prompt instead of prompt.
11472 (read_minibuf): Add front-sticky text property for prompt.
11473
11474 * xdisp.c (char_charset): Return charset of a character,
11475 depending on whether or not multi-byte characters are enabled.
11476
11477 * xfaces.c (Fset_face_charset_registry): Removed.
11478 (x_charset_registry): Determine registry from charset plist.
11479
114801998-08-02 Gerd Moellmann <gerd@gnu.org>
11481
11482 * xdisp.c (get_next_display_element): Don't check for charset
11483 changes if multi-byte characters are not enabled.
427ec082 11484
26901792 11485 * xdisp.c (echo_area_display): Use the flush function from the
427ec082 11486 redisplay interface.
26901792
DL
11487 * keyboard.c (detect_input_pending_run_timers): Likewise.
11488
11489 * dispextern.h (produce_*glyphs_hook): Removed.
11490 * term.c (produce_*glyphs): Ditto.
11491 (cursor_to): Remove pixel position parameters.
11492
11493 * dispnew.c: Remove hooks for window-based redisplay, introduce
11494 a redisplay interface structure.
11495
11496 * xterm.c (x_per_char_metric): Return default char metrics if per
11497 char metric exists but contains a zero width. Adobe Courier seems
11498 to contain such characters.
11499
11500 * xdisp.c (compute_line_metrics): Compute the width of rows
11501 without stopping at glyphs with zero width.
11502
115031998-08-01 Gerd Moellmann <gerd@gnu.org>
11504
11505 * xdisp.c (display_mode_line): If nothing was displayed at all,
11506 display a space.
11507 (hscroll_window_tree): Don't subtract 1 from target point if equal
11508 to ZV and window is not the selected window.
11509
11510 * dispnew.c (check_matrix_invariants): Remove check for window
11511 start at BEGV or after newline. This happens in rare cases
11512 intentionally.
11513
115141998-07-31 Gerd Moellmann <gerd@gnu.org>
11515
11516 * xfaces.c (x_charset_registry): Use STRING_BYTES.
11517 (syms_of_xfaces): Add Vface_default_registry.
11518 (x_charset_registry): Use it.
11519
11520 * xdisp.c (run_window_scroll_functions): Run window scroll functions.
11521 (redisplay_window): Use it.
11522
11523 * dispnew.c (update_text_area): Handle lbearing of deleted text
11524 by backing up one character.
11525
115261998-07-30 Gerd Moellmann <gerd@gnu.org>
11527
427ec082 11528 * dispnew.c (adjust_glyph_matrix): Use a different check to
26901792
DL
11529 decide to do nothing.
11530
11531 * xfaces.c (face_at_string_position): Additional parameter
11532 mode_line_p. If non-zero, merge with the mode line face
11533 instead of the default face.
11534 * dispextern.h (struct it): Add mode_line_p.
11535 * xdisp.c (init_iterator): Set it.
11536 (compute_face_in_string): Use it.
11537 (face_before_or_after_it_pos): Handle strings.
11538 (get_next_display_element): Don't look for relief end in C strings.
11539 (next_element_from_string): Deliver string position instead of
11540 buffer position.
11541
11542 * xterm.c (x_flush): Flush X output buffer.
11543 (XTflash): Use it.
11544
11545 * xfaces.c (lface_from_face_name): Renamed from lface_from_symbol.
11546 Allow strings as face names.
11547
11548 * xfns.c (forall_images_in_image_cache): Check that frame is
11549 alive.
11550
11551 * widget.c (EmacsFrameDestroy): Remove call to free_frame_faces;
11552 it's also called from x_destroy_window. Since this function is
11553 called from X, freeing stuff allocated with xmalloc is dangerous
11554 here, anyway.
11555
11556 * xfaces.c (free_realized_faces): Don't clear current matrices
11557 of a frame being destroyed.
11558
427ec082 11559 * frame.c (make_frame): Call set_window_buffer instead of
26901792
DL
11560 Fset_window_buffer.
11561
11562 * window.c (set_window_buffer): Extracted from Fset_window_buffer,
11563 with an additional argument specifying whether or not hooks may
11564 be called.
11565 (Fset_window_buffer): Call it.
11566
11567 * dispnew.c (clear_desired_matrices): Check that frame has
11568 a valid root window before clearing matrices in the window tree.
11569 (clear_current_matrices): Ditto.
11570 (clear_window_matrices): If GLYPH_DEBUG, check that hchild and
11571 vchild are valid windows if not nil.
11572
11573 * xfaces.c (merge_face_vector_with_property): Allow :reverse-video
11574 for :inverse-video.
11575 (Finternal_set_lisp_face_attribute): Ditto.
11576 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
11577 (Finternal_get_lisp_face_attribute): Ditto.
11578 (Finternal_lisp_face_attribute_values): Ditto.
11579 (syms_of_xfaces): Define the symbol `:reverse-video'.
11580
11581 * xdisp.c (get_glyph_property): Renamed from
11582 fill_iterator_from_glyph_property.
11583 (next_element_from_buffer): Handle case that no `glyph' property
11584 was found correctly.
11585 (display_line): Extend face to end of line only if we have faces.
11586
115871998-07-29 Gerd Moellmann <gerd@gnu.org>
11588
11589 * dispnew.c (Fshow_cursor): Renamed from blink_cursor. Take
11590 additional window argument.
11591
11592 * xdisp.c (reseat_at_previous_visible_line_start): Renamed from
11593 set_iterator_to_previous_visible_line_start.
11594 (reseat_at_next_visible_line_start): Likewise.
11595 (compute_stop_pos): Renamed from set_iterator_stop_pos.
11596 (face_before_or_after_it_pos): Renamed from get_face_at_it_pos.
11597 (compute_face_in_buffer): Renamed from
11598 compute_face_at_iterator_position.
11599 (compute_face_in_string): Renamed from
11600 compute_face_at_iterator_string_position.
11601 (get_space_width): Renamed from get_iterator_space_width.
11602 (next_overlay_string): Renamed from
11603 set_iterator_to_next_overlay_string.
11604 (get_overlay_strings): Renamed from
11605 get_overlay_strings_at_iterator_position.
11606 (restore_overlay_strings): Renamed from
11607 setup_overlay_strings_from_glyph_pos.
11608 (restore_dpvec): Renamed from setup_iterator_dpvec_from_glyph_pos.
11609 (init_from_display_pos): Renamed from init_iterator_from_glyph_pos.
11610 (init_to_row_start): Renamed from init_iterator_to_row_start.
11611 (init_to_row_end): Formerly init_iterator_to_next_row_start.
11612
11613 * xterm.c: Merge with 20.2.97.
11614 (x_produce_glyphs): Use x_append_stretch_glyph for tabs.
11615
11616 * dispextern.h (struct glyph): Replace text_pos position with
11617 simple charpos.
11618
11619 * xdisp.c (this_line_start_pos): Use struct text_pos.
11620 (this_line_end_pos): Renamed from .*endpos; use struct text_pos.
11621 (enum move_it_result): Renamed from move_iterator_result.
11622 (string_pos_nchars_ahead): Compute text_pos in a string from a
11623 known text_pos plus a character delta.
11624 (string_pos): Compute text_pos in string from charpos.
11625 (c_string_pos): Likewise for a C string.
11626 (number_of_chars): Return number of characters in a possibly
11627 multi-byte C string.
11628 (check_it): Renamed from check_iterator. Check that charpos and
11629 bytepos are in sync.
11630 (push_it): Renamed from save_iterator_settings.
11631 (pop_it): Renamed from restore_iterator_settings.
11632 (move_it_.*): Renamed from move_iterator_.*.
11633 (charset_at_position): Take charpos/bytepos into account.
11634 (back_to_previous_line_start): Set iterator to previous line start.
11635 (forward_to_next_line_start): Set iterator to next line start.
427ec082 11636 (back_to_previous_visible_line_start): Renamed from
26901792
DL
11637 move_iterator_previous_visible_line_start.
11638 (set_iterator_to_next_visible_line_start): Handle charpos/bytepos.
11639 (get_face_at_it_pos): Renamed from get_face_from_cursor_pos.
11640 Handle charpos/bytepos.
11641 (compute_face_at_iterator_position): Handle charpos/bytepos.
11642 (compute_face_at_iterator_string_position): Likewise.
11643 (get_iterator_space_width): Likewise.
11644 (load_overlay_strings): Likewise.
11645 (get_overlay_strings_at_iterator_position): Likewise.
11646 (reseat_iterator): Take a text_pos position argument.
11647 (setup_iterator_overlay_strings_from_glyph_pos): Handle charpos/
11648 bytepos.
11649 (init_iterator): Take additional bytepos parameter.
11650 (reseat_iterator_to_string): Handle charpos/bytepos.
11651 (start_display): Take a text_pos parameter. Handle charpos/bytepos.
11652 (next_element_from_string): Handle charpos/bytepos.
11653 (next_element_from_c_string): Likewise.
11654 (fill_iterator_from_glyph_property): Likewise.
11655 (next_element_from_buffer): Likewise.
11656 (set_iterator_to_next): Increment charpos and bytepos of an iterator.
11657 (move_iterator_in_display_line_to): Handle charpos/bytepos.
11658 (move_it_to): Likewise.
11659 (move_it_vertically_backward): Likewise.
11660 (move_it_vertically): Likewise.
11661 (move_it_by_lines): Likewise.
11662 (hscroll_window_tree): Likewise.
11663 (redisplay_internal): Likewise.
11664 (set_cursor_from_row): Likewise.
11665 (redisplay_window): Likewise.
11666 (try_window): Take a text_pos parameter. Handle charpos/bytepos.
11667 (try_window_reusing_current_matrix): Handle charpos/bytepos.
11668 (get_first_unchanged_at_end_row): Compute and return delta_bytes.
11669 (try_window_id): Handle charpos/bytepos.
11670 (Ftrace_redisplay_toggle): Return Qnil.
11671 (get_overlay_arrow_glyph_row): Handle charpos/bytepos.
11672 (insert_left_trunc_glyphs): Likewise.
11673
11674 * dispnew.c: `Merge' with 20.2.97 (it's really too different to
11675 do a real merge).
11676 (increment_glyph_matrix_buffer_positions): Add parameter delta_bytes.
11677 (increment_glyph_row_buffer_positions): Ditto.
11678 (copy_glyph_row_contents): Ditto.
11679 (check_matrix_invariants): Add additional checks for charpos/
11680 bytepos consistency.
11681 (direct_output_for_insert): Changed for charpos/bytepos.
427ec082 11682 (buffer_posn_from_coords): Likewise. Put code dealing with
26901792
DL
11683 `direction-reversed' in #if 0.
11684
11685 * xterm.h: Merge with 20.2.97.
427ec082 11686
26901792
DL
11687 * frame.h: Merge with 20.2.97.
11688
11689 * window.h: Merge with 20.2.97. Add window_end_bytepos.
11690
11691 * dispextern.h (MATRIX_ROW_START_CHARPOS): Get charpos of a row
11692 start.
11693 (MATRIX_ROW_START_BYTEPOS): Likewise for the byte position.
11694 (MATRIX_ROW_END_CHARPOS): Likewise for the row end.
11695 (MATRIX_ROW_END_BYTEPOS): Likewise for the row end byte position.
11696 (struct it): Various members renamed from .*pos to .*charpos.
11697 (IT_CHARPOS): Access current buffer character position of an
11698 iterator.
11699 (IT_BYTEPOS): Access current buffer byte position of an iterator.
11700 (IT_STRING_CHARPOS): Access current string character position of
11701 an iterator.
11702 (IT_STRING_BYTEPOS): Access current string byte position of
11703 an iterator.
11704 (globally): Add function prototypes from 20.2.97.
11705
11706 * everywhere: Use P_ instead of PROTO for function prototypes
11707 because everyone else seems to use P_.
11708
11709 * dispextern.h (struct text_pos): Structure describing a charpos/
11710 bytepos position in text.
11711 (BYTEPOS): Access the byte position part of a text_pos.
11712 (CHARPOS): Likewise for the character position.
11713 (SET_TEXT_POS): Set a text_pos from a character and byte position.
11714 (INC_TEXT_POS, DEC_TEXT_POS): Increment/decrement a text position.
11715 (SET_TEXT_POS_FROM_MARKER): Set a text_pos from a marker.
11716 (SET_MARKER_FROM_TEXT_POS): Set a marker from a text_pos.
11717 (TEXT_POS_EQUAL_P): Compare two text_pos structures for equality.
11718 (struct display_pos): Renamed from glyph_pos. Use struct text_pos
11719 for buffer and string positions.
11720 (struct glyph): Use text_pos.
11721 (struct it): Renamed from display_iterator. Use text_pos.
11722
117231998-07-23 Gerd Moellmann <gerd@gnu.org>
11724
11725 * xfns.c (x_kill_gs_process): Get image colors from XImage of a
11726 pixmap.
11727
117281998-07-21 Gerd Moellmann <gerd@gnu.org>
11729
11730 * dispextern.h (struct glyph_row): New flag indicate_zv_line_p.
11731 * xterm.c (x_draw_row_bitmaps): Use it.
11732 * dispnew.c (row_equal_p): Ditto.
11733 (update_window_line): Ditto.
11734
11735 * xfns.c (prepare_image_for_display): Don't set loading_failed_p
11736 flag of images.
11737
11738 * dispextern.h (struct image): Removed member loading_failed_p.
11739 It's probably better to have the chance to try to load an image
11740 again.
11741
117421998-07-20 Gerd Moellmann <gerd@gnu.org>
11743
11744 * xterm.c (x_draw_bitmap): Draw bitmap for empty lines ending
11745 at ZV if `indicate-zv-lines' is non-nil.
11746 (x_draw_row_bitmaps): Compute bitmap for `indicate-zv-lines'.
11747
11748 * dispnew.c (row_equal_p): Compare displays_text_p and
11749 ends_at_zv_p flags of rows.
11750 (update_window_line): Ditto.
11751
11752 * buffer.h (struct buffer): New member indicate_zv_lines.
11753
11754 * buffer.c (init_buffer_once): Add default for `indicate-zv-lines'.
11755 (init_buffer_once): New variable `default-indicate-zv-lines'.
11756 (syms_of_buffer): New buffer-local varianle `indicate-zv-lines'.
11757
11758 * xdisp.c (redisplay_window): Don't try moving the cursor
11759 if current glyph row w->last_cursor.vpos isn't enabled.
11760
11761 * xterm.c (bitmap_type): Add ZV_LINE_BITMAP.
11762
11763 * window.c (Fset_window_vscroll): Allow only negative scroll
11764 values. Others don't seem to make sense, and this way it's easy
11765 to restore a vscroll of zero.
11766
11767 * xterm.c (x_inverted_image_mask): Check that pixmap could be
11768 allocated.
11769 (x_draw_image_glyph_string_background): Don't clip if pixmap
11770 could not be created.
11771
11772 * xfns.c (xbm_load_image_from_file): Check that pixmap could
11773 be created.
11774 (xbm_load): Ditto.
11775 (gs_load): Ditto.
11776
11777 * xterm.c (x_get_glyph_overhangs): Take image and stretch
11778 glyphs into account.
11779
11780 * xfaces.c (realize_default_face): Don't set font family of
11781 the default face from the fontset alias name for `fontset-startup'.
11782
11783 * xfns.c (gs_load): Pass frame's pixel foreground and background
11784 color to the Lisp loader.
11785
117861998-07-19 Gerd Moellmann <gerd@gnu.org>
11787
11788 * xfns.c (tiff_image_p, tiff_load): Support TIFF images via
11789 libtiff34.
11790
11791 * configure.in (--with-tiff, HAVE_TIFF): Added.
11792
11793 * config.in (HAVE_TIFF): Added.
11794
11795 * Makefile.in (LIBTIFF): Added.
11796
11797 * xfns.c (jpeg_image_p, jpeg_load): Support JPEG images.
11798
11799 * Makefile.in (LIBJPEG): Added.
11800
11801 * xfns.c (resource_types): Enumerators renamed to RES_TYPE_NUMBER,
11802 RES_TYPE_BOOLEAN etc. because of conflict of `boolean' with
11803 jpeglib.h.
11804
427ec082 11805 * configure.in (HAVE_JPEG, --with-jpeg): Added. On systems
26901792
DL
11806 where the library is installed in /usr/local/lib, e.g. FreeBSD,
11807 configure must be run with `--x-includes=/usr/X11R6/include:
11808 /usr/local/include --x-libraries=/usr/X11R6/lib:/usr/local/lib'.
11809
118101998-07-18 Gerd Moellmann <gerd@gnu.org>
11811
11812 * config.in (HAVE_JPEG): Added.
11813
11814 * xfns.c (ct_init): Initialize color table used to map RGB colors
11815 from images to X pixel colors.
11816 (ct_free): Free color table.
11817 (ct_lookup): Look an RGB color up.
11818 (ct_allocated_colors): Get vector of allocated colors.
427ec082 11819 (pbm_image_p): Test if image specification is a valid PPM
26901792
DL
11820 image specification.
11821 (pbm_scan_number): Scan a decimal ASCII number from a file.
11822 (pbm_load): Load a PPM image.
11823
11824 * window.c (Fset_window_vscroll): Adjust glyph matrix if
11825 necessary. Take canonical character units as parameter.
11826 (Fwindow_vscroll): Return canonical character units.
11827
11828 * dispnew.c (allocate_matrices_for_window_redisplay): Add negative
11829 w->dy to display height for which glyph rows must be allocated.
11830
118311998-07-17 Gerd Moellmann <gerd@gnu.org>
11832
11833 * xfaces.c (face_at_string_position): Merge in region face
11834 so that it won't overwrite the font in the region.
11835 (face_at_buffer_position): Ditto.
11836 (realize_basic_faces): Don't realize region face.
11837
11838 * dispextern.h (enum face_id): REGION_FACE_ID removed.
11839
11840 * xterm.c (x_set_glyph_string_background_width): Don't let
11841 cursor face extend to end of line.
11842
11843 * xdisp.c (append_space): If adding space of default face,
11844 make sure glyph ist produced with right face.
11845
11846 * xterm.c (x_clear_glyph_string_rect): Draw a rectangle in the
11847 background color of a glyph string.
11848 (x_draw_glyph_string_background): Call it.
11849 (x_draw_glyph_string_bg_rect): Ditto.
11850 (x_draw_stretch_glyph_string): Ditto.
11851
118521998-07-15 Gerd Moellmann <gerd@gnu.org>
11853
11854 * xdisp.c (init_iterator): Initialize it->current_y to the
11855 window's vscroll w->dy.
11856
11857 * window.c (Fwindow_vscroll): Return number of pixels window
11858 is vscrolled smoothly.
11859 (Fset_window_vscroll): Set the number.
11860
11861 * xdisp.c (move_iterator_to): Recognize case MOVE_TO_POS and
11862 to_pos in truncated part of a line.
11863
118641998-07-14 Gerd Moellmann <gerd@gnu.org>
11865
11866 * xdisp.c (move_iterator_in_display_line_to): If very first glyph
11867 doesn't fit on the line, truncate it, despite truncate_lines nil.
11868 (display_line): Ditto.
11869
11870 * xfns.c: Experimental support for Ghostscript images.
11871
11872 * xterm.c (x_term_init): Initialize new atoms DONE and PAGE.
11873 (XTread_socket): React on events from Ghostscript.
11874 (expose_frame): If width or height are zero, redraw entire frame.
11875 (XTread_socket): Call expose_frame after receiving event from
11876 Ghostscript.
11877
11878 * xterm.h (struct x_display_info): Add atoms DONE and PAGE
11879 for Ghostscript support.
11880
11881 * xdisp.c (redisplay_internal): Return quickly if called
11882 recursively.
11883
11884 * alloc.c (NSTATICS): Increased to 1024.
11885
118861998-07-08 Gerd Moellmann <gerd@gnu.org>
11887
11888 * xterm.c (x_append_stretch_glyph): Append a stretch glyph to an
11889 iterator's glyph row.
11890 (x_produce_stretch_glyph): Call it.
11891 (x_produce_glyphs): Handle `space-width' property; call
11892 x_append_stretch_glyph.
11893
11894 * xdisp.c (syms_of_xdisp): Add symbol `space-width' used as a text
11895 property.
11896 (get_iterator_space_width): Determine value of `space-width'
11897 property at iterator's position.
11898 (reseat_iterator): Call it.
11899 (next_element_from_string): Ditto.
11900 (next_element_from_buffer): Ditto.
11901 (init_iterator): Initialize space_width of iterator.
11902 (redisplay_internal): Don't goto end_of_redisplay if PT hasn't
11903 moved, but cursor blinks.
11904 (redisplay_internal): Set w->last_cursor_off_p after update.
11905
11906 * dispextern.h (enum iterator_prop_idx): Add SPACE_WIDTH_PROP_IDX.
11907 (struct display_iterator): Add new member space_width.
11908
11909 * window.h (struct window): Add last_cursor_off_p.
11910
119111998-07-07 Gerd Moellmann <gerd@gnu.org>
11912
11913 * Saved.
11914
11915 * window.c (Fpos_visible_in_window_p): Case window not up to
11916 date---return nil if iterator hasn't reached position.
11917
119181998-07-06 Gerd Moellmann <gerd@gnu.org>
11919
11920 * xdisp.c (text_outside_line_unchanged_p): Fix case that
11921 overlays have changed.
11922 (redisplay_window): Case cursor movement. Don't try it if
11923 last_cursor.vpos is out of range.
11924
11925 * xdisp.c (set_cursor_from_row): Set this_line_.* variables. This
11926 way, the display optimization for the line containing the cursor
11927 is used more frequently, esp. when we have a blinking cursor.
11928 (display_line): Don't set this_line_.* variables.
11929
11930 * xterm.c (x_redraw_cursor): Removed.
11931 (x_display_and_set_cursor): Set cursor type depending on
11932 cursor_off_p flag of window.
11933
11934 * dispnew.c (redraw_cursor_hook): Removed.
11935 (Fblink_cursor): Additional parameter on_p to set the cursor_off_p
11936 member of the selected window.
11937
11938 * xfaces.c (Fface_font): Added for compatibility with 20.2.
11939
11940 * xterm.c (x_y_to_hpos_vpos): Return null if not over text.
11941 Return glyph area under x/y.
11942 (note_mouse_highlight): Use x_y_to_hpos_vpos in its new form.
11943
11944 * keyboard.c (detect_input_pending_run_timers): Call gobble_input
11945 after redisplaying.
11946
119471998-07-05 Gerd Moellmann <gerd@gnu.org>
11948
11949 * xdisp.c (text_outside_line_unchanged_p): Test if changes
11950 are all outside of a line of text.
11951 (redisplay_internal): Use it.
11952
119531998-06-30 Gerd Moellmann <gerd@gnu.org>
11954
11955 * xdisp.c (next_element_from_buffer): After skipping over
11956 invisible text, look for the `glyph' property.
11957 (set_iterator_stop_pos): Ignore check positions in front
11958 of an iterator's current position.
11959
11960 * xterm.c (show_mouse_face): Don't act on rows that don't exist
11961 anymore or which are marked as not having valid contents.
11962
11963 * xfaces.c (Finternal_set_lisp_face_attribute): Don't free
11964 realized faces if new attribute value is equal to old value.
11965
119661998-06-29 Gerd Moellmann <gerd@gnu.org>
11967
11968 * xfaces.c (Finternal_make_lisp_face): Increment
11969 lface_id_to_name_size when lface_id_to_name is reallocated.
11970
119711998-06-27 Gerd Moellmann <gerd@gnu.org>
11972
11973 * xdisp.c (set_iterator_stop_pos): Compute initial stop_pos
11974 as minimum of endpos and overlay_pos.
11975 (load_overlay_strings): Set next_overlay_pos of iterator to
11976 -1 if we don't have to check for more overlay strings.
11977
119781998-05-09 Gerd Moellmann <gerd@gnu.org>
11979
11980 * xdisp.c (set_iterator_to_next_visible_line_start): Don't
11981 do anything if iterator is at ZV because scan_buffer doesn't
11982 work otherwise.
11983
11984 * xterm.c (x_encode_char): Inline it.
11985 (x_get_char_font_and_encoding): Simplified.
11986 (x_per_char_metric): Inline it.
11987
11988 * xterm.c (x_draw_glyph_string_relief): Use clipping.
11989
11990 * xdisp.c (get_next_display_element): Check for end of relief
11991 face moved here from next_element_from_buffer.
11992
11993 * xterm.c (x_produce_image_glyph): Add relief thickness.
11994 (x_produce_stretch_glyph): Ditto.
11995
119961998-05-08 Gerd Moellmann <gerd@gnu.org>
11997
11998 * xdisp.c (fill_iterator_from_glyph_property): Handle glyph
11999 property value (space :width WIDTH :height HEIGHT :ascent ASCENT).
12000
12001 * xterm.c (x_produce_stretch_glyph): Produce a stretch glyph
12002 from a glyph property.
12003 (x_produce_glyphs): Use it.
12004
12005 * xdisp.c (set_iterator_to_next): Handle next_element_from_stretch.
12006
427ec082 12007 * xterm.c (x_produce_image_glyph): Add to current_x only if
26901792
DL
12008 in text area.
12009 (x_produce_glyphs): Ditto.
12010
427ec082 12011 * xdisp.c (display_line): Compute row height from glyphs in
26901792
DL
12012 marginal areas.
12013
427ec082 12014 * xterm.c (x_draw_image_glyph_string_background): Draw
26901792 12015 background of an image glyph string.
427ec082 12016 (x_draw_glyph_string_bg_rect): Draw a rectangular region of
26901792
DL
12017 the background of a glyph string.
12018 (x_draw_image_glyph_string_foreground): Draw the foreground of
12019 an image glyph string.
12020 (x_inverted_image_mask): Return the inverted mask of an image.
12021
12022 * xfns.c (x_draw_image): Removed.
12023
12024 * dispextern.h (struct image_type): Remove drawing function.
12025
12026 * xfaces.c (load_face_colors): Swap colors if face is inverse.
12027
12028 * xdisp.c (get_next_display_element): In marginal areas, translate
12029 newlines, tabs, etc. like normal control characters.
12030
12031 * xfaces.c (Fface_color_supported_p): Transpose parameters frame
12032 and color.
12033 (free_realized_faces): Set frame garbaged.
12034
12035 * xfaces.c (syms_of_xfaces): Add defsubr for
12036 internal-lisp-face-attribute-values.
12037
120381998-05-07 Gerd Moellmann <gerd@gnu.org>
12039
12040 * xterm.c (x_produce_image_glyph): Don't add glyph if area is
12041 full.
12042 (x_produce_image_glyph): Set IT->nglyphs to 1.
12043 (x_draw_image_glyph_string): Use inverted mask to draw background.
12044
12045 * dispextern.h (struct image_type): Additional clipping rect
12046 parameters for drawing functions.
12047
427ec082 12048 * xterm.c (x_get_glyph_string_clip_rect): Get clip rect for
26901792
DL
12049 a glyph string.
12050 (x_draw_image_glyph_string): Use it and pass the rect to the
12051 image drawing function.
12052
12053 * xdisp.c (fill_iterator_from_glyph_property): Use position of
12054 first character with `glyph' property as image position. Set
12055 iterator back to that position as long as the image hasn't been
12056 consumed with set_iterator_to_next.
12057 (set_cursor_from_row): Accept when glyph with given position is
12058 not found in the row. Set cursor x to end of line in that case,
12059 so that we can hscroll.
12060 (redisplay_internal): Correct computation of delta by which
12061 positions have changed in redisplay optimization for cursor
12062 row of selected window.
12063
12064 * xdisp.c (display_line): Remove start_pos.
427ec082 12065 (display_line): Fix bug preventing display optimization for
26901792
DL
12066 cursor line of selected window.
12067 (next_element_from_buffer): Avoid XSETBUFFER, use it->w->buffer
12068 instead.
12069
12070 * dispnew.c (update_text_area): Use GLYPH_EQUAL_P.
12071 (update_text_area): Take glyph pixel width into account
12072 when trying to find a resync point.
12073 (row_equal_p): Compare glyphs in all areas.
12074
120751998-05-06 Gerd Moellmann <gerd@gnu.org>
12076
12077 * xterm.c (x_produce_glyphs): Don't add glyph if area is full.
12078
12079 * dispextern.h (struct glyph_row): Use unsigned hash value.
12080
12081 * xdisp.c (display_line): Simplified and made faster by setting
12082 the cursor with set_cursor_from_row.
12083 (set_cursor_from_row): Handle rows of desired matrix.
12084
120851998-05-05 Gerd Moellmann <gerd@gnu.org>
12086
12087 * xdisp.c (set_cursor_from_row): Don't put cursor on glyphs
12088 with type != CHAR_GLYPH.
12089 (fill_iterator_from_glyph_property): Return void. Set
12090 method to next_element_from_image.
12091 (next_element_from_image): Dummy function for delivering a
12092 single image id.
12093 (set_iterator_to_next): Add method next_element_from_image.
12094 (redisplay_window): When recentering, and cursor vpos is -1
12095 after display, assume middle of window is in first line displayed
12096 in window, and display again.
427ec082 12097 (fill_iterator_from_glyph_property): Assign image glyph
26901792
DL
12098 the position of the first character having the glyph property.
12099
12100 * dispextern.h (IMAGE_ASCENT): Compute ascent of image.
12101 * xfns.c (x_draw_image): Use it.
12102 * xterm.c (x_produce_image_glyph): Use it.
12103
12104 * xterm.c (x_produce_image_glyph): Set iterator's pixel_width.
12105
12106 * Makefile.in: Extraneous #define of LIBXPM removed.
12107
12108 * xterm.c (x_produce_glyphs): Produce a STRETCH_GLYPH for tabs.
427ec082 12109 (x_fill_stretch_glyph_string): Fill a glyph string from a
26901792
DL
12110 stretch glyph.
12111 (x_compute_glyph_string_overhangs): Compute overhangs only
12112 for text glyph strings.
12113 (x_draw_stretch_glyph_string): Draw a stretch glyph string.
12114 (x_draw_glyph_string): Call it.
12115
12116 * dispextern.h (glyph_type): Add STRETCH_GLYPH.
12117 (struct glyph): Add sub-structure for stretchable glyphs.
12118 (GLYPH_EQUAL_P): Compare glyph type and u.val.
12119
12120 * xdisp.c (get_overlay_arrow_glyph_row): Put face code into
12121 #ifdef HAVE_FACES.
12122
12123 * xterm.c (x_produce_glyphs): Use ASCII face for spaces of a TAB.
12124
12125 * xdisp.c (fill_iterator_from_glyph_property): Renamed from
12126 setup_iterator_from_glyph_property. Don't do it for terminal
12127 frames.
12128
12129 * xterm.c (x_produce_image_glyph): Produce glyph for image
12130 that can't be loaded.
12131
12132 * xfns.c (lookup_image): If image can't be loaded, set its
12133 width and height so that we can draw a rectangle.
12134 (x_draw_image): Draw a rectangle for images that don't have
12135 a pixmap.
12136 (make_image): Set hash value.
12137 (image_spec_equal_p): Use image_spec_value.
12138
12139 * xterm.c (expose_frame): Don't try to redraw if basic faces
12140 haven't benn realized yet.
427ec082 12141 (x_draw_image_glyph_string): Fill background only if image
26901792
DL
12142 is not as tall as row.
12143
121441998-05-04 Gerd Moellmann <gerd@gnu.org>
12145
12146 * Makefile.in (LIBXPM): If not already defined, define to -lXpm.
12147 (LIBX)[HAVE_X11]: Add LIBXPM.
12148
12149 * xfns.c (xpm_image_p): Implementation of image type functions
12150 for XPM.
12151 (xpm_load): Ditto.
12152
12153 * dispextern.h (struct image): Add mask pixmap for XPM.
12154
12155 * xfns.c (x_draw_image): Handle images with masks.
12156
12157 * configure.in: --with-xpm added. Code detecting -lXpm added.
12158
12159 * config.in: Add HAVE_XPM.
12160
12161 * xfns.c (xbm_draw): Removed.
12162 (x_draw_image): Default implementation for drawing images.
12163 (xbm_keyword_index): Remove XBM_DEPTH.
12164 (xbm_format): Remove `:depth'.
12165 (xbm_image_spec_from_file): Removed to reduce consing.
427ec082 12166 (xbm_load_image_from_file): Added for the same reason.
26901792 12167
427ec082 12168 * xterm.c (x_fill_image_glyph_string): Don't set ybase of
26901792
DL
12169 glyph string.
12170 (x_draw_image_glyph_string): Pass ybase to image draw function.
12171
12172 * xfns.c (make_image): Set default baseline.
12173
12174 * xterm.c (x_produce_image_glyph): Compute ascent of image
12175 from its height and baseline percentage.
12176
12177 * xfns.c (xbm_keyword_index): Add XBM_BASELINE.
12178 (xbm_format): Add description for `:baseline'.
12179 (xbm_image_spec_from_file): Add keywords from original spec to
12180 result.
12181 (xbm_load): Set baseline of image.
12182 (xbm_image_p): Check range for baseline.
12183
12184 * dispextern.h (struct image): Add member baseline.
12185
12186 * xdisp.c (dump_glyph_matrix): Handle image glyphs.
12187
12188 * term.c (produce_glyphs): Change assertion to allow DISP_IMAGE.
12189
12190 * xdisp.c (get_next_display_element): Do character translations
12191 only if delivering characters.
12192
121931998-05-03 Gerd Moellmann <gerd@gnu.org>
12194
427ec082 12195 * dispextern.h (ITERATOR_AT_END_OF_LINE_P): Test for
26901792
DL
12196 DISP_CHARACTER.
12197
12198 * xterm.c (x_produce_image_glyph): Poduce image glyphs.
12199 (x_produce_glyphs): Call x_produce_glyphs for DISP_IMAGE.
12200
122011998-05-02 Gerd Moellmann <gerd@gnu.org>
12202
12203 * xfns.c (prepare_image_for_display): Set image timestamp.
12204 (clear_image_cache): Clear images if image's timestamp +
12205 Vimage_eviction_seconds is > now.
12206 (syms_of_xfns): New variables image-eviction-seconds, and
12207 image-types.
12208 (add_image_format): Add to image-types.
12209 (xbm_load): Support new image spec format.
12210 (x_alloc_image_color): Allocate a color for an image.
12211
12212 * dispextern.h (struct image): Add timestamp.
12213
12214 * xfns.c (xbm_image_p): Allow bool-vectors, vectors of strings and
12215 vectors of bool-vectors.
12216 (xbm_lisp_object_from_file): Build new format image spec.
12217
122181998-05-01 Gerd Moellmann <gerd@gnu.org>
12219
12220 * xfaces.c (init_frame_faces): Initialize image cache.
12221 (free_frame_faces): Free it.
12222
12223 * xterm.c (x_delete_display): Don't free image cache.
12224
12225 * emacs.c (main): Call init_xfns.
12226
122271998-04-30 Gerd Moellmann <gerd@gnu.org>
12228
12229 * alloc.c (mark_object): Mark objects in image cache.
12230
427ec082 12231 * xfns.c (x_set_internal_border_width): Correct call to
26901792
DL
12232 widget_store_internal_border_width.
12233
12234 * widget.c (widget_store_internal_border): Return void.
12235
12236 * xfns.c (x_destroy_bitmap): Use xfree instead of free. Return
12237 void.
12238 (init_x_parm_symbols): Return void.
12239 (x_report_frame_params): Ditto.
12240 (x_set_border_pixel): Ditto.
12241 (syms_of_xfns): Ditto.
12242 (x_destroy_all_bitmaps): Use xfree instead of free.
12243
12244 * xterm.h (FRAME_X_IMAGE_CACHE): Access the image cache of a frame.
12245
12246 * xterm.c (x_term_init): Initialize image_cache of display info.
12247 (x_delete_display): Free image cache.
12248
12249 * xterm.h (struct x_display_info): Add image_cache.
12250
12251 * xfns.c (make_image_cache): Allocate a new image cache.
12252 (free_image_cache): Free an image cache.
12253 (make_image): Allocate an image.
12254 (free_image): Free an image.
12255
12256 * dispextern.h (struct image): Structure describing an image.
12257 (struct image_cache): Structure describing an image cache.
12258
122591998-04-29 Gerd Moellmann <gerd@gnu.org>
12260
12261 * xdisp.c (check_iterator_glyph_property): Return int. Value is
12262 non-zero if iterator is filled with something to return.
12263 (next_element_from_buffer): Immediately return if
12264 setup_iterator_from_glyph_prop has filled iterator with pixmap.
12265 (next_element_from_string): Likewise.
12266
12267 * xfaces.c (load_pixmap): Allow to pass null for W_PTR and H_PTR.
12268
12269 * dispextern.h (struct glyph): Add pixmap_id.
12270 (display_element_type): Add DISP_PIXMAP.
12271
12272 * xmenu.c (popup_get_selection): Use xmalloc/xfree instead of
12273 malloc/free.
12274
12275 * xfaces.c (clear_font_table): Free fonts not used by fontsets.
12276 (clear_face_cache): Call it.
12277
12278 * xterm.c (x_query_font): Don't look at empty font table slots.
12279 (x_compute_min_glyph_bounds): Likewise.
12280 (x_term_init): Initialize font_table to null.
12281 (x_load_font): Change allocation of font_info structures so
12282 that it is possible to free fonts.
12283
427ec082 12284 * xfns.c (Fx_close_connection): Use xfree instead of free.
26901792
DL
12285 Only free fonts from filled font table entries.
12286
12287 * xfaces.c (best_matching_font): Support use of scalable fonts.
12288 (Fface_scalable_fonts_mode): Toggle use of scalable fonts.
12289
12290 * xterm.h (struct x_display_info): Remove screen_dpi, add resx
12291 and resy.
12292 * xterm.c (x_term_init): Compute resx and resy.
12293
12294 * xfaces.c (split_font_name): Don't reject scalable fonts.
12295
427ec082 12296 * xterm.c (x_list_fonts): Set code exclusing scalable fonts
26901792
DL
12297 in #if 0.
12298
12299 * xfaces.c (xlfd_point_size): Return 0 for fonts whose real
12300 point size cannot be determined.
12301
12302 * xterm.h (FRAME_SMALLEST_CHAR_WIDTH): Return smallest character
12303 width over all fonts on a frame.
12304 (FRAME_SMALLEST_FONT_HEIGHT): Likewise for font height.
12305 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Use these
12306 macros.
12307
12308 * xterm.c (x_font_min_bounds): Moved here from xfaces.c.
12309 (x_compute_min_char_bounds): Formerly min_char_bounds in xfaces.c.
12310 (x_load_font): Use x_compute_min_char_bounds.
12311
12312 * xterm.h (struct x_display_info): New members smallest_char_width
12313 and smallest_font_height.
12314
123151998-04-28 Gerd Moellmann <gerd@gnu.org>
12316
12317 * dispextern.h (PREPARE_FACE_FOR_DISPLAY): Call function with
12318 the same name if GC of face is zero.
12319
12320 * dispextern.h (struct face): Member non_ascii_gc removed.
12321
12322 * xterm.c (x_get_char_font_and_encoding): Return face's font
427ec082 12323 for characters < 0177 in default face. Prepare face for
26901792
DL
12324 display before returning it.
12325 (x_produce_glyphs): Use it->charset.
12326 (x_get_char_font_and_encoding): Simplified.
12327 (x_encode_char): Remove parameter `font'.
12328
12329 * xfaces.c (choose_face_font): If registry from charset symbol
12330 doesn't contain a `-', make it a pattern by appending "*-*".
12331
12332 * xdisp.c (check_iterator_glyph_property): Adjust limit for
12333 glyph_check_pos computation to character boundary.
12334
123351998-04-27 Gerd Moellmann <gerd@gnu.org>
12336
12337 * fontset.h (FONT_INFO_FROM_ID): Return null if ID is invalid.
12338
12339 * xfaces.c (ascii_face_of_lisp_face): Get the id of the realized
12340 ASCII face for a given Lisp face id.
12341
12342 * xdisp.c (set_iterator_stop_pos): Take glyph_check_pos into
12343 account.
427ec082 12344 (reseat_iterator): Set glyph_check_pos. Handle case where
26901792
DL
12345 new position is < original position.
12346 (check_iterator_glyph_property): Handle glyph property in strings.
12347 (next_element_from_string): Call above function.
12348 (next_element_from_display_vector): Handle faces in glyphs.
12349 (get_next_display_element): Set face_id of glyphs for
12350 control chars to zero.
12351
12352 * Makefile.in (term.o): Add dependency on dispextern.h.
12353
12354 * xdisp.c (syms_of_xdisp): Add symbol `glyph'.
12355 (display_line): Handle marginal areas.
12356 (move_iterator_in_display_line_to): Likewise.
12357
12358 * xfaces.c (Finternal_make_lisp_face): Assign Lisp faces an id.
12359
12360 * xfaces.c (face_at_buffer_position): Don't merge with nil
12361 text property.
12362 (face_at_string_position): Ditto.
12363
12364 * dispextern.h (struct display_iterator): Use a stack of saved
12365 values instead of saving check positions etc. individually.
12366
12367 * xdisp.c (set_iterator_to_next): If end of Lisp string reached,
12368 maybe pop the iterator's stack.
12369 (save_iterator_settings): Push a value on iterator's stack.
12370 (get_overlay_strings_at_iterator_position): Use it.
12371 (restore_iterator_settings): Pop the stack.
12372 (set_iterator_to_next_overlay_string): Use it.
12373
12374 * xfaces.c (try_font_list): Use alternative font families.
12375
123761998-04-26 Gerd Moellmann <gerd@gnu.org>
12377
12378 * xfaces.c (Fset_face_font_sort_order): Set the order in which
12379 font selection matches fonts.
12380 (Fface_font_sort_order): Return the font sort order.
12381 (best_matching_font): Find best matching font based on sort order.
12382 (cmp_font_names): Sort by given sort order.
12383
12384 * dispextern.h (struct display_iterator): New member faces_p.
12385 * xdisp.c (init_iterator): Initialize it->faces_p.
12386 (compute_face_at_iterator_string_position): Use it.
12387 (compute_face_at_iterator_position): Use it.
12388 (init_iterator): Use it.
12389 (display_mode_line): Ditto.
12390
12391 * xdisp.c (get_next_display_element): Put code choosing a face
12392 when the charset changes in #ifdef HAVE_FACES.
12393
427ec082 12394 * dispextern.h (FACE_FOR_CHARSET): Replacement for function
26901792
DL
12395 lookup_face_for_charset.
12396
12397 * xfaces.c (free_font_names): Renamed from free_split_font_names.
12398 (free_all_realized_faces): Renamed from remove_all_realized_faces.
12399
124001998-04-25 Gerd Moellmann <gerd@gnu.org>
12401
12402 * xfaces.c (best_matching_font): Return the name of the best
12403 matching font in an array of font_name structures.
12404 (choose_face_font): Use it.
12405 (choose_face_fontset_font): Use it.
12406 (find_best_weight_font): If final font found has same weight as
12407 the font we started with, return the original font because it is a
12408 better match for the resolution of the display.
12409 (find_best_slant_font): Likewise.
12410 (merge_face_vector_with_property): Check more invalid attribute
12411 values.
12412 (lface_suitable_for_charset_p): Replaced by a macro with the same
12413 name in upper-case.
12414
124151998-04-24 Gerd Moellmann <gerd@gnu.org>
12416
12417 * dispextern.h (struct face): Member
12418 fontset_chosen_for_realization_p removed.
12419
12420 * xfaces.c (cache_face): If face->fontset >= 0, add face to the
12421 end of the collision list, so that we find more specific faces
12422 first.
12423 (lookup_face_for_charset): Look up a new face if face->fontset >=
12424 0, and charset != CHARSET_COMPOSITION.
12425
12426 * xfaces.c (split_font_name): Return zero if point size of font
12427 couldn't be computed.
12428 (realize_default_face): Use ASCII font of a fontset to determine
12429 font-related attributes of the default face.
12430 (face_fontset): Return fontset id for face family.
12431 (font_list): Additional parameter font_pattern. If non-nil,
12432 return fonts matching that pattern.
12433
124341998-04-23 Gerd Moellmann <gerd@gnu.org>
12435
12436 * xfaces.c (choose_face_fontset): If new fontset cannot be
12437 constructed, or fontset name cannot be split, return the id of the
12438 standard fontset.
12439
12440 * xterm.c (XTframe_up_to_date): Check that frame is an X frame.
12441 When Emacs starts, it may be called for the initial frame which
12442 isn't an X frame.
12443
12444 * dispextern.h (struct face): New members foreground_defaulted_p,
12445 background_defaulted_p.
12446 (struct face): Members `mask' and `cache' removed.
12447
12448 * xfaces.c (load_color): Set them.
12449 (free_face_colors): Check them.
427ec082 12450 (xlfd_point_size): Return -1 if resolution or point size of
26901792
DL
12451 font unknown.
12452
12453 * xfaces.c (free_font): Removed.
12454 (load_face_font_or_fontset): Renamed from load_font.
12455 (load_face_font_or_fontset): Use message2 instead of signalling.
12456 (load_color): Likewise.
12457 (load_pixmap): Likewise.
12458
12459 * xterm.h (struct x_display_info): Add screen_dpi.
12460 * xterm.c (x_term_init): Initialize it.
12461 * xfaces.c (xlfd_point_size): Use it.
12462 (split_font_name): Compute numeric XLFD_RESY.
427ec082 12463 (cmp_font_names): Make fonts with an y-resolution more
26901792
DL
12464 similar to that of the frame appear first in the result.
12465
12466 * xfaces.c (cache_face): If fontset_chosen_for_realization_p
12467 is set for the face to cache, add it to the end of the collision
12468 list.
12469 (try_font_list): If fonts for given family and registry cannot
12470 be found, first try to keep the registry, and choose a different
12471 family.
12472 (choose_face_font): Allow nfonts == 0.
12473 (try_font_list): Give up if no font matches given registry.
12474
124751998-04-22 Gerd Moellmann <gerd@gnu.org>
12476
12477 * xterm.c (x_get_char_font_and_encoding): Get font_info from
12478 font info id of the face.
12479
12480 * xfaces.c (load_font): Set font_info_id.
12481 (realize_face): Ditto.
12482
12483 * dispextern.h (struct face): Change member font_info to
12484 font_info_id.
12485
12486 * fontset.h (FONT_INFO_ID): Build an ID from a font_info pointer.
12487 (FONT_INFO_FROM_ID): Get a font_info pointer from an ID.
12488
12489 * xdisp.c (extend_face_to_end_of_line): If IT's current charset
12490 isn't ASCII, get the ASCII face before adding a space.
12491 (append_space): Likewise.
12492 (insert_left_trunc_glyphs): Initialize truncate_it's charset
12493 to -1 so that it will compute the right face for the truncation
12494 glyphs.
12495
12496 * xfaces.c (realize_face): Set
12497 face->fontset_chosen_for_realization_p.
12498 (lookup_face_for_charset): If fontset wasn't specified originally
12499 and new charset != CHARSET_COMPOSITION, get a new face for that
12500 charset.
12501
12502 * dispextern.h (struct face): New member
12503 fontset_chosen_for_realization_p_specified_p. Set to 1 when
12504 realize_face has chosen a fontset to display composite characters
12505 for a Lisp face not specifying a fontset.
12506
12507 * xdisp.c (extend_face_to_end_of_line): Move tests for default
12508 face and line already filled here. Don't do anything if current
12509 face hasn't a relief or has a background equal to the frame
12510 background.
12511
12512 * xfaces.c (split_font_name): Additional parameter numeric_p.
12513 Don't compute numeric values if it is non-zero.
12514 (choose_face_fontset): Call split_font_name with numeric_p == 0.
427ec082 12515 (choose_face_fontset): Print a message if fontset contains a
26901792
DL
12516 font whose name cannot be split into fields.
12517
125181998-04-21 Gerd Moellmann <gerd@gnu.org>
12519
427ec082 12520 * xfaces.c (try_font_list): Try to load a list of fonts,
26901792
DL
12521 possibly using less restrictive patterns.
12522 (choose_face_font): Use it.
12523
12524 * xterm.c (x_get_char_font_and_encoding): For charset !=
12525 CHARSET_ASCII use font_info of face if face hasn't a fontset set.
12526
12527 * dispextern.h (struct face): New member font_info.
12528
12529 * xfaces.c (load_font): Use FS_LOAD_FONT to load fonts for faces
12530 specifying a fontset as well as those not having a fontset.
12531 (free_font): Make it empty.
12532 (realize_face): Use changed load_font.
12533
12534 * xterm.c (x_get_char_font_and_encoding): If face doesn't
12535 fit for charset, get the right one.
12536
12537 * xfaces.c (load_font): Take frame and name parameter, return
12538 font.
12539 (free_font): Likewise.
12540 (split_font_name): Compute numeric values for height, swidth etc.
12541 (cmp_font_names): Use them.
12542 (find_best_width_font): Ditto.
12543 (find_best_height_font): Ditto.
12544 (find_best_weight_font): Ditto.
12545 (find_best_slant_font): Ditto.
12546 (lface_hash): Add weight, slant, swidth and relief to hash value.
12547 (lface_equal_p): Make it faster.
12548 (lface_from_symbol): Use assq_no_quit.
12549 (Fnote_default_face_changed): Removed.
12550 (cmp_font_names): Use strcmp instead of xstricmp.
12551 (face_charset_registries): Removed.
12552
125531998-04-20 Gerd Moellmann <gerd@gnu.org>
12554
12555 * frame.h (CHECK_FRAME): Give this macro a statement form.
12556 (CHECK_LIVE_FRAME): Ditto.
12557
12558 * xfaces.c (find_best_width_font): Find the best matching font
12559 for a given width.
12560 (find_best_height_font): Likewise for height.
12561 (find_best_weight_font): Likewise for weight.
12562 (find_best_slant_font): Likewise for slant.
12563 (choose_face_font): Use them.
12564 (get_lface_attributes): Always return frame-local face attrs.
427ec082 12565 (Finternal_merge_in_global_face): Merge local face with
26901792
DL
12566 global face attributes.
12567
12568 * xfaces.c (check_lface_attrs, check_lface): Check consistency of
12569 Lisp face attributes.
12570
125711998-04-19 Gerd Moellmann <gerd@gnu.org>
12572
12573 * xfaces.c (Finternal_set_lisp_face_attribute): Add :bold
12574 and :italic for compatibility.
12575 (Finternal_set_lisp_face_attribute_from_resource): Handle
427ec082 12576 :bold and :italic. Handle boolean resource values for
26901792
DL
12577 :underline and :italic.
12578
12579 * xfns.c (display_x_get_resource): Make it externally visible.
12580
12581 * xfaces.c (lface_from_symbol): Take a frame as parameter.
12582 If that frame is non-null, return the frame-local face.
12583 (Finternal_make_lisp_face): Additional frame argument.
12584 (lface_attributes): Get face attributes from global and frame-local
12585 definitions.
12586 (Finternal_lisp_face_equal_p): Additional frame argument.
12587 (merge_lisp_face_vector_with_property): Ditto.
12588 (Frealize_basic_faces): Removed.
12589 (Finternal_get_lisp_face_attribute): Additional frame argument.
12590 (Finternal_lisp_face_p): Ditto.
12591 (load_color) [MSDOS]: Removed because it isn't clear how
12592 to do this for MS-DOS.
12593
12594 * xfaces.c (lface_from_symbol): Get global face definition
12595 from face-global-alist.
12596
12597 * xfaces.c (Finternal_set_lisp_face_attribute): Allow `t'
12598 as values for :underline and :inverse-video.
12599 (Finternal_set_lisp_face_attribute): Allow nil values.
12600
126011998-04-17 Gerd Moellmann <gerd@gnu.org>
12602
12603 * xfaces.c (Finternal_make_lisp_face): Return Lisp face vector.
12604
12605 * xfaces.c (syms_of_xfaces): Add Vall_faces.
12606 (Finternal_make_lisp_face): Add new face to Vall_faces.
12607
12608 * xdisp.c (echo_area_display): Remove code recomputing faces.
12609 (redisplay_internal): Ditto.
12610 (init_iterator): Do it here.
12611
12612 * xfaces.c (choose_face_font): Check that swidth doesn't change
12613 for subusequent attributes.
12614 (xlfd_point_size): Return int.
12615
12616 * xdisp.c (redisplay_internal, echo_area-display): If realized
12617 faces have been cleared, call recompute_basic_faces.
12618
12619 * xfaces.c (recompute_basic_faces): Free realized faces. Reset
12620 face_attributes_changed_p.
427ec082 12621 (remove_all_realized_faces): Remove all realized faces on
26901792
DL
12622 all frames.
12623 (Finternal_set_lisp_face_attribute): Call remove_all_realized_faces.
12624
12625 * xdisp.c (redisplay_internal): If face attributes have been
12626 changed since the last redisplay, recompute basic faces.
12627 (echo_area_display): Ditto.
12628
12629 * xfaces.c (clear_face_gcs): Renamed from clear_realized_face_cache.
12630
12631 * xfaces.c (min_char_bounds): If face cache not yet present,
12632 don't try to get font dimensions from faces.
12633
12634 * xterm.c (x_frame_mode_line_height): If face cache not present
12635 set, return default height.
12636
12637 * alloc.c (mark_face_cache): Check for null faces. Correct
12638 index bug.
12639
12640 * dispextern.h (struct face): Renamed from struct rface. Member
12641 underline renamed underline_p. Make it a bit-field.
12642
12643 * xfaces.c (init_frame_faces): Allocate face cache.
12644 (free_frame_faces): Free face cache.
12645 (recompute_basic_faces): Realize basic faces only if face cache is
12646 allocated, i.e. after init_frame_faces has been called.
12647
12648 * frame.c (make_frame): Initialze face cache with null.
12649
12650 * xfaces.c (same_size_fonts): Removed.
12651
427ec082 12652 * xterm.c (x_set_glyph_string_gc): Add post-condition
26901792
DL
12653 s->gc != 0.
12654 (x_set_mouse_face_gc): Ditto.
12655 (x_set_mode_line_face_gc): Ditto.
12656
427ec082
SS
12657 * xfaces.c (realize_default_face): Return int. Value is
12658 zero if frame params don't contain enough information to
26901792
DL
12659 realize the default face.
12660 (realize_basic_faces): Ditto.
12661 (init_frame_faces): Realize basic faces.
12662
12663 * xfns.c (x_set_font): First store real font name in frame
12664 parameters, then call recompute_basic_faces.
12665
12666 * xfaces.c (recompute_basic_faces): Call realize_basic_faces.
12667
126681998-04-16 Gerd Moellmann <gerd@gnu.org>
12669
12670 * xfaces.c (syms_of_xfaces): Correct calls to defsubr.
12671
12672 * xfns.c (Fx_face_fixed_p): Removed.
12673 (Fx_list_fonts): Moved to xfaces.c.
12674
12675 * xfaces.c (compute_face_at_buffer_pos): Renamed to
12676 face_at_buffer_position. Parameter charset removed; always
12677 compute face for CHARSET_ASCII.
12678 (face_at_string_position): Renamed from
12679 compute_face_at_string_pos. Parameter charset removed; always
12680 compute for CHARSET_ASCII.
427ec082 12681 (lookup_face_for_charset): Take frame parameter instead of
26901792
DL
12682 face_cache.
12683 (lookup_face): Ditto.
12684 (compute_char_face): Renamed from compute_glyph_face.
12685
12686 * xdisp.c (init_iterator): Initialize charset member.
12687 (reseat_iterator_to_string): Ditto.
12688 (get_charset_at_buffer_position): Determine charset at
12689 buffer position in current_buffer.
12690 (reseat_iterator): Call above function.
12691 (compute_face_at_iterator_position): Call
12692 compute_face_at_buffer_pos.
12693 (compute_face_at_iterator_string_position): Call
12694 compute_face_at_string_pos.
12695 (get_face_from_id): Removed.
12696 (get_face_from_cursor_pos): Call compute_face_at_buffer_pos.
12697 Call get_charset_at_buffer_position.
12698 (reseat_iterator): Determine face if charset at pos differs
12699 from iterator's charset.
12700 (reseat_iterator_to_glyph_pos): Removed.
12701
12702 * xfaces.c (compute_face_at_bufpos): Remove parameter charset.
12703 Determine charset from buffer position.
12704 (compute_string_char_face): Renamed to compute_face_at_string_pos.
12705 (compute_face_at_bufpos): Renamed to compute_face_at_buffer_pos.
12706
12707 * dispextern.h (struct display_iterator): Add member charset.
12708
127091998-04-15 Gerd Moellmann <gerd@gnu.org>
12710
12711 * xfaces.c (compute_char_face): Removed.
12712
12713 * xdisp.c (get_overlay_arrow_glyph_row): Use compute_glyph_face
12714 with new parameter list.
12715
12716 * xfaces.c (region_face): Removed.
12717 (allocate_face): Removed.
12718 (copy_face): Ditto.
12719 (face_eql): Removed.
12720 (intern_face): Removed.
12721 (clear_face_cache): Removed.
12722 (load_font): Ditto.
12723 (unload_font): Ditto.
12724 (load_color): Ditto.
12725 (unload_color): Ditto.
12726 (new_computed_face): Ditto.
12727 (intern_computed_face): Ditto.
12728 (ensure_face_ready): Ditto.
12729 (merge_faces): Ditto.
12730 (compute_base_face): Ditto.
12731 (merge_face_list): Ditto.
12732 (Fmake_face_internal): Removed.
12733 (Fset_face_attribute_internal): Ditto.
12734 (face_name_id_number): Removed.
12735 (Fframe_face_alist): Ditto.
12736 (Fset_frame_face_alist): Ditto.
12737 (Finternal_next_face_id): Ditto.
12738
12739 * xterm.h (struct x_output): Remove computed_faces, and
12740 param_faces. Remove macros accessing them.
12741
12742 * xfaces.c: Entirely new face implementation added.
12743
127441998-04-11 Gerd Moellmann <gerd@gnu.org>
12745
12746 * dispextern.h (struct glyph_pos): Member `bufpos' renamed
12747 `charpos'.
12748
127491998-04-10 Gerd Moellmann <gerd@gnu.org>
12750
12751 * xterm.c (x_scroll_bar_move): Clear only regions not covered by
12752 scroll bar window to reduce flickering. Clear entire height.
12753
12754 * xdisp.c (move_iterator_vertically_backward): Set iterator's
12755 current_x and hpos to zero after moving to previous line
12756 start.
12757
127581998-04-03 Gerd Moellmann <gerd@gnu.org>
12759
12760 * frame.h (FRAME_FACE_CACHE): Access to a frame's face cache.
12761
12762 * xfaces.c (xlfd_point_size): Compute relative point size of
12763 fonts from font and frame resolution.
12764 (sort_fonts): New function to sort fonts, temporarily setting
12765 font_frame to the frame in effect.
12766 (xlfd_point_size): Take additional frame parameter to be able
12767 to get at the display's resolution.
12768
12769 * xterm.c (x_setup_relief_colors): Use WHITE_PIX_DEFAULT and
12770 BLACK_PIX_DEFAULT.
12771 (x_setup_relief_color): Use FRAME_X_SCREEN instead of default
12772 screen of display.
12773
127741998-03-31 Gerd Moellmann <gerd@gnu.org>
12775
12776 * xfaces.c (choose_face_fontset): Instantiate fontsets.
12777
12778 * fontset.h: Add external declarations for Vfontset_alias_alist
12779 and Vglobal_fontset_alist.
12780
12781 * xfaces.c (merge_lisp_face_vector_with_property): Simplified.
12782 (realize_default_face): If frame parameters contain an artificial
12783 font name naming a fontset, set the family of the default face to
12784 the fontset name given by the registry.
12785
12786 * Makefile.in (alloc.o): Add dependency to dispextern.h.
12787
127881998-03-22 Gerd Moellmann <gerd@gnu.org>
12789
12790 * alloc.c (mark_object): Add function prototype. Add cast to
12791 Lisp_Object pointer in call to mark_object for symbol names
12792 because this otherwise gives a warning from gcc 2.8.1.
12793 (mark_face_cache): Mark Lisp objects in realized faces.
12794
127951998-03-19 Gerd Moellmann <gerd@gnu.org>
12796
12797 * frame.h (struct frame): Add member face_cache.
12798
12799 * alloc.c (mark_object): Mark face cache.
12800 (mark_face_cache): Mark Lisp faces in face cache of frame.
12801
12802 * frame.c (make_frame): Initialize face_cache.
12803 (Fdelete_frame): Free it.
12804
128051998-03-18 Gerd Moellmann <gerd@gnu.org>
12806
12807 * xfaces.c: Very first skeleton of functions for face realization,
12808 face merging, face cache etc.
12809
12810 * dispextern.h (struct rface): Realized faces. Will replace
12811 struct face when tested.
12812 (struct face_cache): Realized face caches.
12813
12814 * xdisp.c (init_iterator): Initialize area member of display
12815 iterator.
12816
128171998-03-17 Gerd Moellmann <gerd@gnu.org>
12818
12819 * xterm.c (x_append_glyph): Use it->area to store glyphs.
12820
12821 * dispextern.h (struct display_iterator): New member area.
12822
12823 * xterm.c (note_overwritten_text_cursor): Note when the text
12824 cursor of a window is overwritten.
12825
12826 * xdisp.c (set_cursor_from_row): If PT is not found in the
12827 row, display the cursor at the start of the row.
12828
12829 * dispnew.c (direct_output_forward_char): Call
12830 set_cursor_from_row.
12831
12832 * xdisp.c (setup_iterator_overlay_strings_from_glyph_pos): If
12833 position is not in an overlay string, set iterator's position and
12834 method explicitly so.
427ec082 12835 (set_cursor_from_row): Correct cursor position calculation.
26901792
DL
12836 Make it externally visible.
12837 (redisplay_window): Call set_cursor_from_row so that there is only
12838 one place where the cursor position is calculated from a current
12839 row.
12840
12841 * dispextern.h (struct display_iterator): New member
12842 overlay_strings_at_end_processed_p.
12843
12844 * xdisp.c (check_iterator): Perform sanity checks on
12845 display_iterators.
12846 (next_element_from_buffer): Check for overlay strings at ZV.
12847
128481998-03-16 Gerd Moellmann <gerd@gnu.org>
12849
12850 * buffer.c (init_buffer_once): Add left_margin_width and
12851 right_margin_width to buffer_local_flags.
12852
12853 * dispnew.c (margin_glyphs_to_reserve): Function computing
12854 number of glyphs to reserve for a marginal area.
12855 (adjust_glyph_matrix): Call it.
12856 (adjust_frame_glyphs_for_frame_redisplay): Return if frame
12857 is not alive.
12858
12859 * window.c (Fset_window_margins): Allow floats.
12860
12861 * buffer.c (syms_of_buffer): Add buffer-local variables
12862 left-margin-width and right-margin-width. Add defaults
12863 default-left-margin-width and default-right-margin-width.
12864
12865 * buffer.h (struct buffer): New members left_margin_width
12866 and right_margin_width.
12867
12868 * window.c (Fset_window_margins): Make window the last and
12869 optional argument.
12870
12871 * xterm.c (x_draw_glyphs): Compute x-positions for rows with
12872 flag no_marginal_areas_p differently.
12873 (x_clear_end_of_line): Ditto.
12874 (x_draw_glyph_string_relief): Compute width of relief differently
12875 for rows with flag no_marginal_areas_p.
12876
12877 * dispnew.c (update_window_line): Update marginal areas only
12878 for rows that don't have no_marginal_areas_p set.
12879
12880 * xdisp.c (display_mode_line): Set row's flag no_marginal_areas_p.
12881 (display_menu_bar): Ditto.
12882
12883 * dispextern.h (struct glyph_row): New member no_marginal_areas_p.
12884
12885 * dispnew.c (adjust_glyph_matrix): Compute glyph pointers for
12886 marginal areas in window-based redisplay.
12887
12888 * dispextern.h (struct glyph_matrix): New members
12889 left_margin_glyphs and right_margin_glyphs.
12890
128911998-03-15 Gerd Moellmann <gerd@gnu.org>
12892
12893 * minibuf.c (read_minibuf_unwind): Return Lisp_Object.
12894
12895 * charset.c (non_ascii_char_to_string): Use char type parameters
12896 because the function is used that way from outside. Use unsigned
12897 char internally.
12898
12899 * window.c (change_window_height): Return void.
12900 (make_dummy_parent): Return void.
12901 (init_window_once): Return void.
12902 (syms_of_window): Ditto.
12903 (keys_of_window): Ditto.
12904 (delete_window): Correct return with and without value.
12905
12906 * buffer.c (record_buffer): Return void.
12907
12908 * marker.c (unchain_marker): Return void.
12909
12910 * window.c (unshow_buffer): Return void.
12911 (replace_window): Ditto.
12912 (delete_window): Ditto.
12913
12914 * term.c (delete_glyphs_hook): Void return type.
12915 (ring_bell_hook): Ditto.
12916 (set_terminal_window_hook): Ditto.
12917
12918 * sysdep.c (init_sigio): Return void.
12919
12920 * xterm.c (x_set_window_size): Return void.
12921 (x_calc_absolute_position): Ditto.
12922 (x_set_offset): Ditto.
12923 (x_focus_on_frame): Ditto.
12924 (x_unfocus_frame): Ditto.
12925 (x_make_frame_visible): Ditto.
12926 (x_make_frame_invisible): Ditto.
12927 (x_iconify_frame): Ditto.
12928 (x_destroy_window): Ditto.
12929 (x_wm_set_window_state): Ditto.
12930 (x_wm_set_icon_pixmap): Ditto.
12931 (x_wm_set_icon_position): Ditto.
12932 (x_initialize): Ditto.
12933 (x_error_quitter): Ditto.
12934 (x_destroy_window): Use xfree instead of free.
12935
12936 * keyboard.c (clear_waiting_for_input): Return void.
12937
12938 * xterm.c (x_wm_set_size_hint): Return void.
12939 (x_raise_frame): Ditto.
12940 (refreshicon): Ditto.
12941 (x_error_catcher): Ditto.
12942 (x_clear_errors): Ditto.
12943
12944 * keyboard.c (record_asynch_buffer_change): Return void.
12945
bb6677a8
GM
12946 The first line of the following paragraph was garbled for an
12947 unknown reason. It couldn't be fully reconstructed.
178c5d9c 12948
bb6677a8 12949 * xterm.c (XTread_socket, XTset_terminal_window): Ditto.
26901792
DL
12950 (x_lower_frame): Ditto.
12951 (x_scroll_bar_clear): Ditto.
12952 (XTflash): Add default case in switch for -Wall.
12953 (construct_mouse_click): Return Qnil.
12954 (cancel_mouse_face): Return void.
12955 (x_queue_event): Use xmalloc instead of malloc.
12956 (x_unqueue_events): Use xfree instead of free.
12957
12958 * ccl.c (ccl_driver): Return int.
12959
12960 * keyboard.c (stop_polling): Return void.
12961 (start_polling): Ditto.
12962
12963 * term.c (keys): Add braces in initializer list for -Wall.
12964
12965 * sysdep.c (tabs_safe_p): Return int.
12966 (init_baud_rate): Return void.
12967
12968 * xterm.c (x_draw_bitmap): Add default case.
12969 (x_setup_relief_colors): Use DefaultScreen instead of
12970 DefaultScreenOfDisplay.
12971 (x_delete_glyphs): Return void.
12972 (construct_menu_click): Put in #if 0 because it isn't called.
12973
12974 * xdisp.c (load_overlay_strings): Remove extraneous argument
12975 in call to qsort.
12976 (get_overlay_arrow_glyph_row): Add missing return value.
12977
12978 * window.c (set_window_height): Return void.
12979 (set_window_width): Ditto.
12980
12981 * sysdep.c (request_sigio): Return void.
12982 (unrequest_sigio): Ditto.
12983 (get_frame_size): Ditto.
12984
12985 * scroll.c (scroll_cost): Return int.
12986 (do_line_insertion_deletion_costs): Return void.
12987
12988 * frame.c (Fdelete_frame): Use xfree instead of free.
12989
12990 * fileio.c (report_file_error): Return void.
12991
12992 * dispnew.c: Make compilable with -Wall.
12993 * term.c: Ditto.
12994
12995 * charset.h (CHAR_LEN): Moved here from dispextern.h.
12996
129971998-03-14 Gerd Moellmann <gerd@gnu.org>
12998
12999 * xterm.c (x_scroll_bar_move): Clear under scroll bar if height is
13000 increased.
13001 (x_setup_relief_color): Free color only for appropriate visual
13002 classes.
13003
13004 * xterm.c (expose_window): Fix calculation of intersection of mode
13005 line rectangle with exposed rectangle.
13006
13007 * xdisp.c (redisplay_window): Don't do cursor movement based
13008 on current matrix if w->last_point is not valid.
13009
130101998-03-09 Gerd Moellmann <gerd@gnu.org>
13011
13012 * xterm.c (expose_line): Redraw mode line and menu lines
13013 differently because they reach into the scroll bar area.
13014
13015 * xdisp.c (redisplay_window): If redisplaying with same window
13016 start, don't accept cursor on partially visible line.
13017
130181998-03-08 Gerd Moellmann <gerd@gnu.org>
13019
13020 * xterm.c (x_set_glyph_string_clipping): Set clip rectangle
13021 for wider mode lines.
13022 (x_draw_glyph_string_relief): Use larger rectangle for mode lines.
13023
13024 * xdisp.c (init_iterator): Increase last_visible_x by vertical
13025 scroll bar width for mode lines.
13026
13027 * dispnew.c (allocate_matrices_for_window_redisplay): Include
13028 vertical scroll bar width in width calculation so that we can
13029 display mode lines wider.
13030
13031 * xdisp.c (redisplay_window): Restore buffers before returning
13032 when fonts have changed.
13033
13034 * dispnew.c (update_window): Mark invisible rows in the current
13035 matrix invalid.
13036
13037 * xdisp.c (try_window_id): Force update of first row displayed
13038 at window end.
13039 (dump_glyph_matrix): Extracted from Fdump_glyph_matrix.
13040
130411998-03-05 Gerd Moellmann <gerd@gnu.org>
13042
13043 * dispextern.h (struct glyph_row): Member max_ascent renamed
13044 ascent. Member max_descent replaced by height.
13045 (struct display_iterator): Member max_descent replaced by height.
13046 (MATRIX_ROW_PIXEL_HEIGHT): Removed.
13047
13048 * xterm.c (x_alloc_lighter_color): Don't free colors if visual
13049 class makes it unnecessary or dangerous.
13050
13051 * xdisp.c (redisplay_window): Case only point has changed, and
13052 point has moved forward. Move forward over overlay strings.
13053 (display_line): Don't set cursor if first glyph from PT is part of
13054 a continuation line.
13055
130561998-02-21 Gerd Moellmann <gerd@gnu.org>
13057
13058 * xdisp.c (start_display): When computing continuation lines
13059 width, add current_x to the continuation lines width because
13060 move_iterator_to will stop in front of the buffer position moved
13061 to.
13062
130631998-02-20 Gerd Moellmann <gerd@gnu.org>
13064
13065 * xdisp.c (redisplay_window): Don't try try_window_id if
13066 windows_or_buffers_changed.
13067
13068 * xterm.c (x_alloc_lighter_color): Try both factor and delta to
13069 determine a color.
13070 (x_setup_relief_color): Allocate/ change one relief.
13071 (x_setup_relief_colors): Call above function.
13072
13073 * xterm.h (struct relief): New structure type holding relief info:
13074 GCs, colors, and whether colors are allocated.
13075
427ec082 13076 * xterm.c (x_alloc_lighter_color): If multiplying by factor
26901792
DL
13077 produces the same color, try adding a delta to RGB values.
13078 (x_setup_relief_colors): Free color cells.
13079
427ec082 13080 * xterm.h (struct x_output): New members white_relief_pixel,
26901792
DL
13081 black_relief_pixel holding the foreground colors allocated for
13082 relief GCs. New members white_allocated_p, black_allocated_p.
13083
13084 * xterm.c (x_scroll_run): Don't set updated_window to null.
13085 This resets updated_window when called from scrolling_window.
13086
13087 * dispextern.h (scroll_run_hook): Renamed from line_dance_hook.
427ec082 13088
26901792
DL
13089 * xterm.c (x_scroll_run): Additional window parameter. Set
13090 and reset updated_window.
13091
13092 * dispnew.c (line_dance_hook): Additional window parameter.
13093
13094 * xdisp.c (try_window_reusing_current_matrix): Don't call
13095 update_window_begin/end here. The end function would display the
13096 cursor on a wrong position and the additional functionality of
13097 update_window_begin is not needed anyway. Just set
13098 updated_window.
13099 (try_window_id): Ditto.
13100
13101 * dispnew.c (Fblink_cursor): Remove call to detect_input_pending.
13102 Don't redraw cursor during redisplay.
13103
13104 * xterm.c (x_scroll_run): Renamed from do_line_dance.
13105
13106 * xdisp.c (redisplay_window): For window-based redisplay, alway
13107 try try_window_id.
13108
13109 * xterm.c (struct glyph_string): New member two_byte_p that is
13110 non-zero if 16-bit drawing functions must be used.
13111 (x_fill_composite_glyph_string): Set it.
13112 (x_fill_glyph_string): Set it.
13113 (x_draw_glyph_string_foreground): Use it.
13114 (x_draw_vertical_border): Make line 1 pixel less tall.
13115 (x_draw_row_bitmaps): Decrease width of area cleared on the left
13116 side by 1 pixel if window is not right-most hasn't vertical scroll
13117 bars.
13118 (x_draw_phys_cursor_glyph): Do nothing if phys_cursor.hpos is
13119 out of bounds.
13120 (x_draw_glyph_string_foreground): Use XDrawImageStringX if
13121 hl == DRAW_CURSOR.
13122
13123 * xdisp.c (start_display): Check that window start is at line
13124 start if GLYPH_DEBUG != 0.
13125
13126 * window.c (window_scroll_pixel_based): Move assertion to
13127 start_display.
13128
131291998-02-19 Gerd Moellmann <gerd@gnu.org>
13130
427ec082 13131 * xterm.c (x_redraw_cursor): Don't redraw the cursor if the
26901792
DL
13132 frame hasn't the focus.
13133
13134 * window.c (make_window): Initialize dy.
13135 (replace_window): Ditto.
13136
13137 * window.h (window): New member dy specifying the amount by which
13138 a window is scrolled "smoothly".
13139
13140 * xterm.c (x_set_glyph_string_clipping): Don't use glyph string's
427ec082 13141 y-position because it can be negative.
26901792
DL
13142 (x_draw_row_bitmaps): Don't clear with negative y-position like
13143 above.
13144 (x_clear_end_of_line): Same theme as above.
13145
13146 * xterm.c (x_alloc_nearest_color): Allocate a color or, if no
13147 exact match exists, the nearest existing color. Patterned after
13148 defined_color.
13149 (x_alloc_lighter_color): Allocate a color that is lighter or
13150 darker than a given color by a specified factor.
427ec082 13151 (x_setup_relief_colors): Set up relief line colors based on
26901792
DL
13152 the background color of a glyph string face.
13153 (x_draw_glyph_string_relief): Call x_setup_relief_colors.
13154
13155 * xfns.c (x_make_gc): Don't allocate relief GCs.
13156 * widget.c (create_frame_gcs): Don't allocate relief GCs.
13157 (setup_frame_gcs): Don't change relief GCs.
13158
13159 * xterm.h (struct x_output): New member relief_background giving
13160 the background pixel color for which relief GCs can be used.
13161 Set by x_setup_relief_colors.
13162
13163 * xterm.c (x_draw_glyph_string_relief): Draw relief differently
13164 for mode and menu lines.
13165
13166 * xdisp.c (set_next_iterator_stop_pos): No longer static.
13167
13168 * dispnew.c (direct_output_for_insert): Call
13169 set_next_iterator_stop_pos after having changed it2.endpos.
13170
131711998-02-17 Gerd Moellmann <gerd@gnu.org>
13172
13173 * dispnew.c (update_window): Work on selected_window, only.
13174
13175 * xterm.c (x_erase_phys_cursor): Return quickly if physical cursor
13176 hpos is >= number of glyphs in the cursor row.
13177
13178 * xdisp.c (try_window_id): Bug fix; update_window_end was not
13179 called.
13180
131811998-02-16 Gerd Moellmann <gerd@gnu.org>
13182
13183 * xdisp.c (init_iterator): Increase last_visible_x for mode lines
13184 and menu lines.
13185
13186 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate
13187 enough glyphs to display a mode line or menu line which draws over
13188 flags areas.
13189
13190 * xterm.c (XTset_vertical_scroll_bar): Use
13191 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT instead of
13192 VERTICAL_SCROLL_BAR_PIXEL_HEIGHT.
427ec082 13193 (x_draw_glyphs): Draw over flags areas when drawing a mode line
26901792
DL
13194 or menu.
13195 (x_set_glyph_string_clipping): Set clipping differently if drawing
13196 a mode line or menu line.
13197
13198 * xterm.h (VERTICAL_SCROLL_BAR_PIXEL_HEIGHT): Removed.
13199
13200 * xterm.c (expose_line): Don't draw bitmaps for mode lines and
13201 menu lines.
13202 (x_scroll_bar_create): Don't clear flags areas.
13203 (x_draw_row_bitmaps): Clear visible row height, only.
13204
13205 * dispnew.c (Fblink_cursor): Moved here from xdisp.c.
13206
132071998-02-15 Gerd Moellmann <gerd@gnu.org>
13208
13209 * dispnew.c (direct_output_for_insert): When checking for tabs in
13210 the line, set it2.endpos to ZV.
427ec082 13211
26901792
DL
13212 * window.h (struct window): New member cursor_off_p.
13213 * xterm.c (x_redraw_cursor): Implementation of redraw_cursor_hook
13214 for X.
13215 * dispnew.c (redraw_cursor_hook): If non-null, function that can
13216 be called to display or erase the cursor.
13217 * xdisp.c (Fblink_cursor): Blink the cursor of a specified window
13218 or selected_window.
13219
13220 * xterm.h (text_cursor_kinds): Enumerators changed to uppercase.
13221
13222 * dispnew.c (update_window_line): Special handling of inverse
13223 lines in #if 0 removed.
13224
13225 * xterm.c (x_write_glyphs): Renamed from XTwrite_glyphs.
13226 (x_insert_glyphs): Renamed from XTinsert_glyphs.
13227 (x_clear_frame): Renamed from XTclear_frame.
13228 (x_clear_end_of_line): Renamed from XTclear_end_of_line.
13229 (x_ins_del_lines): Renamed from XTins_del_lines.
13230 (x_change_line_height): Renamed from XTchange_line_height.
13231 (x_delete_glyphs): Renamed from XTdelete_glyphs.
13232 (x_clear_cursor): Renamed from clear_cursor.
13233 (x_update_begin): Renamed from XTupdate_begin.
13234 (x_update_end): Renamed from XTupdate_end.
13235 (x_update_window_begin): Renamed from XTupdate_window_begin.
13236 (x_update_window_end): Renamed from XTupdate_window_end.
13237 (x_frame_mode_line_height): Renamed from XTframe_mode_line_height.
13238 (x_produce_glyphs): Renamed from XTproduce_glyphs.
13239 (x_produce_special_glyphs): Renamed from XTproduce_special_glyphs.
13240 (x_produce_special_glyphs): Implementation in #if 0 removed.
13241
13242 * xdisp.c (Fdump_redisplay_state): Display row's fill_line_p
13243 flag in the dump.
13244
13245 * dispnew.c (update_text_area): Handling of glyphs with pixel
13246 width zero removed. Decrement desired stop pos if desired row
13247 fills its line.
13248
13249 * xterm.c (x_fill_glyph_string): Handling of glyphs with pixel
13250 width zero removed.
13251 (BUILD_GLYPH_STRINGS): Set glyph string flag
13252 extends_to_end_of_line_p based on row's flag fill_line_p and face
13253 background and stipple. Make sure it works for composite characters.
13254
13255 * xdisp.c (extend_face_to_end_of_line): Set the glyph row flag
13256 fill_line_p. For window-based redisplay, add a space only if
13257 the row is empty so that we know the face to draw.
13258
13259 * dispextern.h (struct glyph_row): New flag fill_line_p. Non-zero
13260 means draw the face of the last glyph in the text area to the
13261 right end of the text area.
13262
13263 * xdisp.c (init_iterator): Show region in window mini-buffer
13264 window refers to.
13265
427ec082 13266 * dispextern.h (struct display_iterator): Redundant member
26901792
DL
13267 region_showing_p removed. Test for region_beg > 0 instead.
13268
13269 * dispnew.c (update_text_area): Clear to end of line if cursor is
13270 beyond the end of the desired line. Necessary because we don't
13271 have a phys_cursor_glyph with which to erase the cursor. We don't
13272 have one because this method of drawing a cursor doesn't work with
13273 lbearing/rbearing.
13274
13275 * xterm.c (XTinsert_glyphs): Block input.
13276
132771998-02-14 Gerd Moellmann <gerd@gnu.org>
13278
13279 * xterm.c (x_set_cursor_gc): Don't use cursor_gc for composite
13280 glyph strings.
13281 (x_draw_glyph_string_background): Fill background with background
13282 pixel for the first glyph of a composite character.
13283
13284 * xdisp.c (try_window): Change return type to int. Value is zero
13285 if fonts were loaded during redisplay.
13286 (redisplay_window): Return if fonts have been loaded during
13287 redisplay.
13288 (append_space): New parameter default_face_p.
13289
132901998-02-13 Gerd Moellmann <gerd@gnu.org>
13291
13292 * dispnew.c (adjust_glyph_matrix): In case of optimizing C-x 2,
13293 don't let a partially visible line in a current matrix stay
13294 enabled.
13295
132961998-02-09 Gerd Moellmann <gerd@gnu.org>
13297
13298 * minibuf.c (read_minibuf): Put access to minibuffer_prompt_length
13299 in #if PROMPT_IN_BUFFER.
13300
13301 * xdisp.c (display_line): If row ends in ZV, make the space
13302 that is added to place the cursor on it appear in default face.
13303
427ec082 13304 * xterm.c (expose_area): New function redrawing a single
26901792
DL
13305 glyph row area.
13306 (expose_line): Use it to redraw all areas of a row.
13307
13308 * dispextern.h (move_operation_enum): New enum
13309 move_operation_enum.
13310
13311 * window.c (window_scroll_pixel_based): Remove now unnecessary
13312 code that made sure that it->current_y doesn't become negative.
13313
13314 * xdisp.c (move_iterator_in_display_line_to): New parameter
13315 op. Special meaning of to_pos <= 0 and to_x < 0 removed.
13316 (move_iterator_to): Ditto.
13317
13318 * dispextern.h (struct glyph_matrix): New member window_width.
13319
13320 * dispnew.c (adjust_glyph_matrix): Set window_width. Optimize
13321 case of changing window height.
13322
13323 * xterm.c (x_draw_row_bitmaps): Don't clear vertical window
427ec082 13324 border to the left.
26901792
DL
13325
13326 * dispextern.h (struct glyph_row): Remove right_to_left_p. RMS
13327 says this aspect of Emacs is currently redesigned.
13328
13329 * xterm.c (x_clip_to_row): Subtract 1 from clip width if we
13330 have to draw a vertical border.
13331
13332 * window.c (window_scroll_pixel_based): When scrolling down by
13333 screen-fulls, make sure it.current_y doesn't get negative because
13334 this would confuse move_iterator_vertically.
13335
13336 * xdisp.c (move_iterator_vertically_backward): Bug fix for
13337 the case continuation lines are involved.
13338 (try_window_id): Don't set the cursor into scroll margins.
13339
133401998-02-08 Gerd Moellmann <gerd@gnu.org>
13341
13342 * xterm.c (x_append_glyph): Don't compute left_overhang and
13343 right_overhang.
13344 (XTproduce_glyphs): left_overhang and right_overhang removed.
13345 Set it->glyph_row->contains_overlapping_glyphs_p.
13346
13347 * xdisp.c (Fdump_redisplay_state): Output of glyph->left_overhang
13348 and right_overhang removed.
13349
13350 * dispextern.h (struct glyph_row): New member
13351 contains_overlapping_glyphs_p used to optimize glyph drawing.
13352 (struct display_iterator): left_overhang and right_overhang
13353 removed.
13354 (struct glyph): Ditto.
13355
13356 * xterm.c (x_draw_relief): Removed.
13357 (x_draw_bitmap): Renamed from draw_bitmap.
13358 (x_draw_glyphs): Completely new implementation of draw_glyphs
13359 capable of handling arbitrary lbearing and rbearing values.
13360 Several sub-functions not mentioned here.
13361
133621998-01-30 Gerd Moellmann <gerd@gnu.org>
13363
13364 * xterm.c (x_erase_phys_cursor): Clear area under the cursor only
427ec082 13365 if displaying hollow box cursor. draw_glyphs should handle
26901792
DL
13366 other cases.
13367 (draw_glyphs): Move start to the left and end to the right if they
427ec082 13368 overlap with previous or following characters.
26901792 13369 (draw_glyphs): If background is cleared for hl == DRAW_CURSOR,
427ec082 13370 make sure XDrawString uses function GXset. Otherwise the
26901792
DL
13371 character under the cursor would be invisible.
13372 (x_draw_bar_cursor): Don't draw over previous character if it
13373 has right_overhang.
13374
13375 * window.c (get_phys_cursor_glyph): Return the glyph under a
13376 window's physical cursor.
427ec082 13377
26901792
DL
13378 * xterm.c (x_draw_hollow_cursor): Use get_phys_cursor_glyph.
13379 (x_draw_bar_cursor): Ditto.
13380 (x_erase_phys_cursor): Ditto.
13381 (x_phys_cursor_in_rect_p): Ditto.
13382 (x_display_and_set_cursor): Remove reference to w->phys_cursor_glyph.
13383
13384 * window.c (make_window): Remove reference to phys_cursor_glyph.
13385 (replace_window): Ditto.
13386
13387 * window.h (struct window): Remove phys_cursor_glyph. There is
427ec082 13388 now always a glyph present for placing the cursor on it in
26901792
DL
13389 each glyph row, even at the end of a line.
13390
13391 * xdisp.c (append_space): Function to add a space to an iterators
13392 glyph row.
13393 (display_line): Add spaces at the end of lines that are used to
13394 place the cursor on them.
13395 (compute_line_metrics): If row consists of a space only that was
427ec082 13396 added to place the cursor on it, use that space's height as the
26901792
DL
13397 line height.
13398
133991998-01-29 Gerd Moellmann <gerd@gnu.org>
13400
13401 * xdisp.c (Fdump_redisplay_state): Dump left and right overhang of
13402 glyphs.
13403
134041998-01-28 Gerd Moellmann <gerd@gnu.org>
13405
13406 * xterm.c (x_append_glyph): Set overhang of glyph from iterator.
13407 (XTproduce_glyphs): Set it->left_overhang and it->right_overhang.
13408
13409 * dispextern.h (struct glyph): Add left_overhang and
427ec082 13410 right_overhang.
26901792
DL
13411 (struct display_iterator): Ditto.
13412
13413 * dispnew.c (direct_output_for_insert): Give up if newly inserted
13414 glyphs have different ascent or descent than original row.
13415
13416 * xdisp.c (compute_line_metrics): Compute row->max_ascent and
13417 row->max_descent only if unknown.
13418 (display_line): Compute row->max_ascent and row->max_descent.
13419 (display_string): Ditto.
13420
13421 * window.h (struct window): New members phys_cursor_ascent and
427ec082 13422 phys_cursor_descent.
26901792
DL
13423
13424 * xterm.c (x_phys_cursor_in_rect_p): Use them.
13425 (x_draw_hollow_cursor): Ditto.
13426 (x_erase_phys_cursor): Ditto.
13427 (x_display_and_set_cursor): Set them.
13428 (x_append_glyph): Don't set glyph members that were removed.
13429
13430 * dispextern.h (struct glyph): Members ascent, descent,
13431 contributes_to_line_height_p removed.
13432
134331998-01-25 Gerd Moellmann <gerd@gnu.org>
13434
13435 * dispextern.h (DEFAULT_FACE_ID, MODE_LINE_FACE_ID): Symbolic
13436 names for face ids of frame default face and mode line face.
13437
13438 * xdisp.c (compute_face_at_iterator_string_position): If
13439 displaying a mode line use MODE_LINE_FACE_ID instead of
13440 DEFAULT_FACE_ID.
13441
13442 * xdisp.c (reseat_iterator_to_string): Additional parameter start.
13443 (display_string): Ditto, additional parameter lisp_string.
13444 (display_line): Call display_string with Lisp mini-buffer prompt
13445 string.
13446 (display_menu_bar): Call display_string with Lisp string.
13447 (display_mode_element): Ditto.
13448 (next_element_from_string): Make it work for non-overlay Lisp
13449 strings with field width and precision.
13450
13451 * minibuf.c (minibuffer-prompt-in-buffer): Bound if
13452 PROMPT_IN_BUFFER.
13453
13454 * xfaces.c (compute_string_char_face): Fix face computation
13455 for overlay strings.
13456
13457 * xdisp.c (struct overlay_entry): Add member after_string_p.
13458 (load_overlay_strings): Simplify.
13459
13460 * window.c (delete_window): Defer glyph matrix adjustment.
13461 (Fsplit_window): Ditto.
13462 (change_window_height): Ditto.
13463 (Fset_window_configuration): Ditto.
13464 (Fset_window_margins): Ditto.
13465 * frame.c (set_menu_bar_lines): Ditto.
13466 (Fmake_terminal_frame): Ditto.
13467 * dispnew.c (change_frame_size_1): Ditto.
13468
134691998-01-24 Gerd Moellmann <gerd@gnu.org>
13470
13471 * xdisp.c (move_iterator_vertically_backward): Change algorithm.
13472
427ec082 13473 * dispnew.c (direct_output_for_insert): Give up if start
26901792
DL
13474 position has overlay strings.
13475
13476 * xdisp.c (display_line): Don't set cursor if row ends in middle
13477 of overlay string.
13478 (Fdump_redisplay_state): Print complete row start and end
13479 position.
13480 (redisplay_window): Cursor movement when matrix hasn't changed---
13481 if PT < last_point, maybe move forward if row ends at PT and
13482 in middle of char.
13483
13484 * minibuf.c (read_minibuf): Save the value of
13485 minibuffer_prompt_length in minibuf_save_list.
13486 (read_minibuf_unwind): Restore minibuffer_prompt_length.
13487
13488 * xdisp.c (redisplay_window): Add assertion for cursor movement
13489 case, PT < last_point.
13490 (move_iterator_in_display_line_to): If to_pos specified, move
13491 over before-strings.
13492
13493 * dispextern.h (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Test
13494 start.string_index > 0.
13495
13496 * xdisp.c (redisplay_internal): Adjust glyphs if fonts_changed_p
13497 is set. Retry redisplay if fonts_changed_p is set before update.
13498
13499 * xterm.c (x_load_font): Set fonts_changed_p.
13500
13501 * xfaces.c (Fset_face_attribute_internal): Set fonts_changed_p.
13502
13503 * dispnew.c (adjust_glyphs_for_font_change): Removed.
13504
13505 * xdisp.c (try_window): Check fonts_changed_p.
13506 (try_window_reusing_current_matrix): Ditto.
13507 (try_window_id): Ditto.
13508
13509 * dispnew.c (adjust_glyphs_for_font_change): Set fonts_changed_p.
13510 (fonts_changed_p): Flag indicating a font change since the last
13511 glyph matrix adjustment.
13512
13513 * xterm.c (x_per_char_metric): Use font->max_bounds as
13514 char metric of the font's default char if the default char
13515 hasn't per char metric itself.
13516
13517 * xfaces.c (Fset_face_attribute_internal): Adjust glyphs
13518 for font change.
13519 (min_char_bounds): Check face->font != NULL.
427ec082 13520 (font_min_bounds): Return minimum font metrics. Capture the
26901792
DL
13521 case of invalid min_bounds contents.
13522 (min_char_bounds): Call font_min_bounds.
13523
135241998-01-22 Gerd Moellmann <gerd@gnu.org>
13525
13526 * xdisp.c (start_display): Don't set it->prompt_width if
13527 PROMPT_IN_BUFFER.
13528 (move_iterator_in_display_line_to): Ditto.
13529 (display_line): Don't display prompt via display_string if
13530 PROMPT_IN_BUFFER.
13531
13532 * minibuf.c (Fminibuffer_prompt_width): Return value from
13533 current_buffer if PROMPT_IN_BUFFER.
427ec082 13534 (read_minibuf): If PROMPT_IN_BUFFER, insert prompt into
26901792
DL
13535 mini-buffer and make it read-only.
13536 (Fminibuffer_complete_and_exit): If PROMPT_IN_BUFFER, use
13537 minibuffer_prompt_length instead of BEGV.
13538 (Fminibuffer_complete_word): Ditto.
13539 (Fminibuffer_complete_word): Ditto.
13540
13541 * insdel.c (del_range_1): If PROMPT_IN_BUFFER, and start position
13542 is less than mini-buffer prompt width, use prompt width as start.
13543
13544 * editfns.c (make_buffer_string): If PROMPT_IN_BUFFER, and start
13545 position is less than mini-buffer prompt width, use the prompt
13546 width as start.
13547
13548 * cmds.c (Fbeginning_of_line): If PROMPT_IN_BUFFER, set point to
13549 end of prompt if applied to a mini-buffer and BEG reached.
13550
135511998-01-21 Gerd Moellmann <gerd@gnu.org>
13552
13553 * editfns.c (make_buffer_string): If PROMPT_IN_BUFFER, add prompt
13554 length to start position.
13555
13556 * buffer.c (Fget_buffer_create): Initialize
13557 minibuffer_prompt_length.
13558 (Fmake_indirect_buffer): Ditto.
13559 (Fkill_buffer): Ditto.
13560
13561 * buffer.h (struct buffer): Add member minibuffer_prompt_length
13562 if PROMPT_IN_BUFFER.
13563
135641998-01-19 Gerd Moellmann <gerd@gnu.org>
13565
13566 * xdisp.c (next_element_from_string): Make it work for arbitrary
13567 Lisp strings.
13568 (set_iterator_to_next): Advance to next overlay string only
13569 if it->string is an overlay string.
13570
13571 * dispextern.h (struct display_iterator):
13572 next_ovstr_face_check_pos renamed next_string_face_check_pos.
13573
427ec082 13574 * xfaces.c (compute_string_char_face): Compute face for
26901792
DL
13575 arbitrary Lisp string. Renamed from compute_overlay_string_char_face.
13576
13577 * xdisp.c (next_element_from_string): Renamed from
13578 next_element_from_overlay_string.
427ec082 13579 (compute_face_at_iterator_string_position): Renamed from
26901792
DL
13580 compute_face_at_iterator_overlay_string_position.
13581
13582 * dispextern.h (struct display_iterator): Member overlay_string
13583 renamed string.
13584
13585 * xdisp.c (next_element_from_c_string): Renamed from
13586 next_element_from_string.
13587
13588 * dispextern.h (struct glyph_pos): Reversed meaning of
13589 overlay_string_index and string_index.
13590
13591 * xdisp.c (next_element_from_overlay_string): Fix bug that made
13592 this function always return the first character of an overlay
13593 string.
13594
135951998-01-18 Gerd Moellmann <gerd@gnu.org>
13596
13597 * xdisp.c (reseat_iterator): Set next_invisible_check_pos only if
13598 forced or new pos > next_invisible_check_pos.
13599 (redisplay_window): Don't try same window start if PT < window
13600 start.
13601 (move_iterator_vertically): Bug fix satisfying post-condition
13602 when ZV is reached and no newline in front.
13603 (move_iterator_vertically_backward): New implementation.
13604 (move_iterator_vertically_backward): Bug fixes.
13605
13606 * xterm.c (XTmouse_position): Change call to min_char_bounds.
13607 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Ditto.
13608 (adjust_glyphs_for_font_change): Always adjust.
13609
13610 * dispnew.c (struct dim): Use int.
13611
13612 * xfaces.c (Fset_face_attribute_internal): Set face->font_name;
13613 (allocate_face): Initialize it.
13614 (load_font): Use XLoadQueryFont again instead of x_load_font.
13615 (unload_font): Use XFreeFont again.
13616 (min_char_bounds): Iterate over fonts of faces. Use frame's
13617 font sizes as default. Remove parameter except_last_font_p.
13618
13619 * dispextern.h (struct face): Add font_name.
13620
136211998-01-17 Gerd Moellmann <gerd@gnu.org>
13622
13623 * xdisp.c (move_iterator_vertically): Check post-condition. Move
13624 to start of line if ending at ZV and no newline in front.
13625 (move_iterator_to): If to_y specified, always first move to x = 0,
13626 so that move stops at line start instead of line end. This is
13627 probably what callers would expect to happen.
13628
13629 * window.c (window_scroll_pixel_based): Pixel-based scrolling that
13630 can handle different line heights.
13631 (window_scroll_line_based): Formerly window_scroll.
13632 (window_scroll): Call both.
13633
13634 * xdisp.c (start_display): Exclude code if PROMPT_IN_BUFFER.
13635 (move_iterator_in_display_line_to): Ditto.
13636 (display_line): Ditto.
13637
13638 * minibuf.c (read_minibuf): Conditionally insert prompt into
13639 buffer instead of handling prompts specially. Change other
13640 functions accordingly. All such code is in #if PROMPT_IN_BUFFER.
13641
13642 * dispnew.c (adjust_glyph_matrix): Optimize the handling of C-x 2,
13643 upper window. Optimize calls to xrealloc if same width.
13644
13645 * xdisp.c (redisplay_window): Don't use
13646 try_window_reusing_current_matrix if window scroll functions
13647 exist.
13648
13649 * dispextern.h (struct display_iterator): Member
13650 redisplay_end_trigger_p removed.
13651
13652 * dispextern.h (WINDOW_DISPLAY_PIXEL_HEIGHT_WITHOUT_MODE_LINE):
13653 Renamed to WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
13654
136551998-01-16 Gerd Moellmann <gerd@gnu.org>
13656
13657 * xdisp.c (move_iterator_by_lines): Optimize for truncate-lines
13658 nil. Optimize truncate-lines t and moving backward.
13659 (move_iterator_to_previous_visible_line_start): Contains the heart
13660 of the previous set_iterator_to_previous_visible_line_end. Don't
13661 reseat the iterator. Used by move_iterator_by_lines.
13662 (set_iterator_to_previous_visible_line_start): Call function
13663 above.
13664 (move_iterator_in_display_line_to): Check TO_POS before doing
13665 anything else. Otherwise to_pos == PT would move to x of PT+1.
13666
13667 * indent.c (Fvertical_motion): Use display_iterator.
13668
13669 * xdisp.c (move_iterator_by_lines): New function moving by screen
13670 lines.
13671 (redisplay_window): Use it.
13672 (move_iterator_to): Correct branch of to_vpos specified.
13673 (move_iterator_vertically_backward): Increment nlines after having
13674 backed up over some lines because the last line was not backed up
13675 over.
13676 (move_iterator_via_matrix): Look for it->pos in the matrix, and
13677 calculate it->vpos and it->current_y relative to this row.
427ec082 13678 (move_iterator_via_matrix): Set in #if 0. It doesn't seem to
26901792
DL
13679 have a big effect and it is complex.
13680 (move_iterator_to): Call to move_iterator_via_matrix in #if 0.
13681
136821998-01-15 Gerd Moellmann <gerd@gnu.org>
13683
13684 * xterm.c (x_draw_relief): Simplify drawing and draw so that lines
13685 join nicely. Lines with widths > 2 don't join nicely under X.
13686 * xterm.h (struct x_output): Remove member relief_gc_line_width.
13687 * widget.c (setup_frame_gcs): Initialize relief GC's to line
13688 width 1; remove references to relief_gc_line_width.
13689 * xfns.c (x_make_gc): Ditto.
13690
13691 * xfaces.c (Fset_face_attribute_internal): Set frame garbaged
13692 if relief changes.
13693 (Fset_face_attribute_internal): Use XINT instead of XFASTINT
13694 to get a relief because they can be negative.
13695
13696 * xterm.c (x_draw_relief): Correct line drawing positions. Pixel
13697 positions are for the middle of lines under X.
13698
13699 * xdisp.c (try_window_id): Always search for the cursor by setting
13700 w->cursor.vpos = -1. Search in unchanged rows at the top and
13701 bottom if cursor not found in displayed lines.
427ec082 13702 (display_mode_line): First extend face, then set right shadow
26901792
DL
13703 flag. Otherwise the wrong glyph gets the right shadow.
13704
13705 * dispnew.c (direct_output_for_insert): Give up if line contains
13706 a tab. The number of spaces inserted for a tab changes if we
13707 insert glyphs in front of it.
13708
13709 * xterm.c (x_list_fonts): Changes undone because the Lisp
13710 implementation for make-face-smaller, make-face-larger, and
13711 make-face-fixed can do without them.
13712
13713 * xfns.c (Fx_list_fonts): Original x-list-fonts from x-list-font.c
13714 inserted.
13715
13716 * xdisp.c (try_window_id): First compute beg_unchanged, then
13717 compare with window start pos.
13718
13719 * xfns.c (Fx_face_fixed_p): Determine whether a face has a
13720 fixed-width font.
13721 (syms_of_xfns): defsubr for x-face-fixed-p.
13722
13723 * xterm.c (x_erase_phys_cursor): If row containing cursor is not
13724 enabled, don't do anything because this row will be newly drawn
13725 anyway and because we can additionally no longer determine the row
13726 height.
13727
13728 * xdisp.c (display_line): Bug fix cursor positioning.
13729
13730 * xfns.c (x-list-fonts): Copied from x-list-fonts.c; #include
13731 removed. x-list-fonts.c is now obsolete.
13732 (Qfixed, Qvariable): Moved here from xfaces.c.
13733
137341998-01-14 Gerd Moellmann <gerd@gnu.org>
13735
13736 * xdisp.c (display_line): Set row->ends_at_zv_p based on
13737 FETCH_BYTE for truncated lines.
13738 (display_line): Set cursor differently.
13739 (display_line): Fixed bug setting last_pos_on_this_line wrong
13740 for truncated lines.
13741
13742 * dispnew.c (adjust_glyph_matrix): Always adjust for frame-based
13743 redisplay.
13744
13745 * window.c (Fsplit_window): Adjust glyphs before setting buffer.
13746
13747 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Add
13748 assertion that character dimensions are not zero.
13749
13750 * xterm.c (x_load_font): adjust_glyphs_for_font_change while
13751 input is blocked.
13752
13753 * xdisp.c (decode_mode_spec): Faster implementation of line number
13754 display.
13755
13756 * xterm.c (x_draw_row_bitmaps): Clear flags area before drawing
13757 bitmaps if bitmaps don't fill the entire area.
13758 (draw_bitmap): Draw bitmaps horizontally centered in flags area.
13759
427ec082 13760 * xterm.h (FRAME_FLAGS_BITMAP_HEIGHT): Macro giving the
26901792
DL
13761 pixel height of flags bitmaps.
13762
13763 * frame.h (FRAME_FLAGS_AREA_COLS): Use FRAME_X_FLAGS_AREA_COLS.
13764 (FRAME_FLAGS_AREA_WIDTH): Ditto.
13765
13766 * xterm.h (FRAME_FLAGS_BITMAP_WIDTH): Macro giving the width
13767 in pixels of a flags area of a frame.
13768 (FRAME_X_FLAGS_AREA_WIDTH): Removed.
13769 (FRAME_X_FLAGS_AREA_COLS): Macro giving the number of columns
13770 occupied by a flags area.
13771
137721998-01-13 Gerd Moellmann <gerd@gnu.org>
13773
13774 * xdisp.c (hscroll_window_tree): Remove test for non-nil
13775 window_end_valid.
13776
13777 * dispnew.c (adjust_glyph_matrix): Check redisplay_p if
13778 GLYPH_DEBUG != 0.
13779
13780 * xdisp.c (display_line): Correct wrong calculation of row->x for
13781 the case of nglyphs == 1.
13782 (hscroll_window_tree): Renamed from hscroll_windows.
13783 (hscroll_windows): New function calling hscroll_window_tree that
13784 clears desired matrices on a frame when hscroll has been changed.
13785 (redisplay_p): Global flag set during redisplay.
13786 (redisplay_internal): Set and clear redisplay_p.
13787
13788 * xfaces.c (min_char_bounds): Add assertion that width and height
13789 are not zero at the end. Initialize *height and *width to -1,
13790 instead of using BITS_PER_SHORT. If font has min_bounds.width
13791 zero, use its max_bounds.width.
13792
13793 * x-list-font.c (Fx_list_fonts): Check INTEGERP or FLOATP for
13794 width and height.
13795
137961998-01-12 Gerd Moellmann <gerd@acm.org>
13797
13798 * dispnew.c (adjust_glyph_matrix): Do nothing if sizes haven't
13799 changed. Don't clear desired matrices.
13800
13801 * xdisp.c (hscroll_windows): Compute pt after setting
13802 current_buffer.
13803 (redisplay_window): Don't do cursor movement based on current
13804 matrix if just_this_one_p is zero.
13805
13806 * x-list-font.c (Fx_list_fonts): Additional parameter fixed.
427ec082 13807 specifying that fixed-width, variable-width fonts or both
26901792
DL
13808 should be returned.
13809
13810 * xfaces.c (Qfixed, Qvariable): Symbols for use by x-list-fonts.
13811 (syms_of_xfaces): Initialize them.
13812
13813 * xterm.c (x_list_fonts): Include auto-scaled fonts. Extend
13814 cached information.
13815
138161998-01-11 Gerd Moellmann <gerd@acm.org>
13817
13818 * xdisp.c (display_mode_line): Extend face to end of line.
13819
13820 * xdisp.c (echo_area_display): Don't call display_string with
13821 echo_area_glyphs_length == 0 which would mean infinite precision.
13822 (redisplay_internal): Adjust window_end_vpos if necessary.
13823
138241998-01-07 Gerd Moellmann <gerd@acm.org>
13825
13826 * xdisp.c (display_line): Set it->ends_at_zv_p differently.
13827
138281998-01-05 Gerd Moellmann <gerd@acm.org>
13829
13830 * xdisp.c (get_row_start_continuation_line_width): Removed.
13831 (init_iterator_to_row_start): Set it.current_x from row.
13832 (try_window_id): Set it.continuation_lines_width directly from
13833 row.
13834
13835 * xdisp.c (hscroll_windows): Use w->pointm if window is not
13836 selected_window.
13837 (hscroll_windows): Center cursor in window.
13838 (hscroll_windows): Call move_iterator_in_display_line_to.
13839
138401998-01-04 Gerd Moellmann <gerd@acm.org>
13841
13842 * xdisp.c (hscroll_windows): Check hscroll < 0.
13843 (redisplay_window): Allow quick cursor movement if overlay arrow
13844 but frame uses window-based redisplay.
13845 (display_line): Take special case for nglyphs == 1 out of #if 0.
13846 (display_line): Set row->ends_at_zv_p after the loop displaying
13847 glyphs because ZV can be in truncated text.
13848 (hscroll_windows): Use init_iterator_to_row_start.
13849
13850 * dispnew.c (scrolling_window): Calculation of overlapping
13851 runs fixed.
13852 (row_equal_p): Compare continued_p and continuation_line_p.
13853
138541998-01-02 Gerd Moellmann <gerd@acm.org>
13855
13856 * xterm.c (x_get_mode_line_face_gc): Renamed from
13857 x_get_modeline_face_gc.
13858
13859 * xdisp.c (TEXT_PROP_DISTANCE_LIMIT): Max. distance from current
13860 buffer position to look for text properties.
13861 (get_face_from_cursor_pos): Use it.
13862 (compute_face_at_iterator_position): Use it.
13863 (next_element_from_buffer): Use it.
13864
13865 * dispnew.c (scrolling_window): Decrement run's y-position
13866 when extending it backwards.
13867
13868 * xterm.c (do_line_dance): Don't ever copy more than window height.
13869
138701998-01-01 Gerd Moellmann <gerd@acm.org>
13871
13872 * xdisp.c (redisplay_window): Cursor motion in unchanged
13873 matrix---use MATRIX_ROW_.*_IN_MIDDLE_OF_CHAR_P.
13874 (init_iterator_to_next_row_start): Special handling of lines
13875 ending in middle of char removed.
13876 (hscroll_windows): Hscroll windows only if window_end_valid is not
13877 nil.
13878 (try_window_reusing_current_matrix): Call hscroll_windows.
13879 (init_iterator_to_row_start): Initialize iterator for display
13880 starting at a position given by a glyph_row->start.
13881 (redisplay_window): Don't use vmotion because it gives wrong
13882 results if lines are continued and variable width fonts are used.
13883
427ec082 13884 * dispextern.h (struct glyph_pos): New member dpvec_index.
26901792
DL
13885 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test if row ends in the
13886 the middle of a character.
427ec082 13887 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Test if row starts in
26901792
DL
13888 the middle of a character.
13889
13890 * xdisp.c (set_iterator_to_next): Increment it->dpvec_index, reset
13891 it.
13892 (next_element_from_display_vector): Use it->dpvec_index.
13893 (reseat_iterator): Reset it.
13894 (init_iterator): Reset it.
13895 (setup_iterator_dpvec_from_glyph_pos): Set up it->dpvec and
13896 it->pos.dpvec_index from a glyph_pos structure.
13897 (init_iterator_from_glyph_pos): Call the function above.
13898 (reseat_iterator_to_glyph_pos): Ditto.
13899
13900 * dispnew.c (direct_output_forward_char): Don't use this method at
13901 overlay boundaries or near invisible text.
13902 (direct_output_forward_char): Step through glyph row to find
13903 cursor position.
13904
427ec082 13905 * xterm.c (x_get_cursor_gc): Don't return cursor_gc for font ==
26901792
DL
13906 frame font if line height differs from font height.
13907
13908 * xdisp.c (set_iterator_to_next): Renamed from
13909 move_iterator_forward to avoid confusion with other move_.*
13910 functions.
13911
13912 * dispextern.h (FACE_RELIEF_P): Renamed from FACE_3D_P.
13913
139141997-12-31 Gerd Moellmann <gerd@acm.org>
13915
13916 * xterm.c (x_get_cursor_gc): Renamed from x_cursor_gc to use the
13917 same naming convention as for other GC functions.
13918 (draw_glyphs): Don't fill background when drawing a cursor and
13919 font height is less than line height.
13920
139211997-12-30 Gerd Moellmann <gerd@acm.org>
13922
13923 * xdisp.c (init_display_iterator.*): Renamed to shorter names
13924 init_iterator_.*.
13925
13926 * xdisp.c (move_iterator_forward): Restore it->len from
13927 it->dpvec_char_len if dpend reached.
13928 (get_next_display_element): Don't consume translated char
13929 prematurely.
13930 (display_line): Don't set this_.* variables if row is continued.
13931 (start_display): Move to start of continuation line if ending
13932 up at end of continued line.
13933
13934 * dispextern.h (struct display_iterator): New member dpvec_char_len.
13935
13936 * xdisp.c (move_iterator_in_display_line_to): Check TO_POS after
13937 checking TO_X and continuation lines.
13938 (get_last_unchanged_at_beg_row): If first_changed_pos is the end
13939 of a continued line, don't consider this line as unchanged because
13940 it may no longer be continued.
13941
139421997-12-29 Gerd Moellmann <gerd@acm.org>
13943
13944 * xdisp.c (try_window_id): Catch the case that moving over
13945 continuation lines moves first_unchanged_at_end_row to a row not
13946 displaying text.
13947
13948 * dispextern.h (struct glyph_row): New member
13949 continuation_lines_width. Member continuation_line_p removed.
427ec082 13950 (MATRIX_ROW_CONTINUATION_LINE_P): Non-zero if row displays a
26901792
DL
13951 continuation line.
13952 * xdisp.c (display_line): Set row->continuation_lines_width.
13953 (get_row_start_continuation_line_width): Set continuation lines
13954 width of iterator from continuation lines width of glyph row.
13955 (get_row_start_continuation_line_width): Make it inline.
13956 (set_window_cursor): Make it inline.
13957 (try_window_id): Use MATRIX_ROW_CONTINUATION_LINE_P.
13958 (Fdump_redisplay_state): Ditto.
427ec082 13959
26901792
DL
13960 * dispnew.c (update_window_line): Use MATRIX_ROW_CONTINUATION_LINE_P.
13961 * xterm.c (x_draw_row_bitmaps): Use MATRIX_ROW_CONTINUATION_LINE_P.
13962
13963 * xdisp.c (try_window_id): Set it.hpos and it.current_x to zero
13964 after determining the continuation lines width for
13965 last_unchanged_at_beg_row.
13966
13967 * xterm.c (x_draw_row_bitmaps): Let overlay arrow have precedence.
13968
13969 * xdisp.c (display_mode_line): Handle 3D faces only on frames
13970 which support faces.
13971 (init_display_iterator): Ditto.
13972 (move_iterator_via_matrix): Skip over truncation glyph at the row
13973 start on terminal frames.
13974 (hscroll_windows): Choose hscroll margin differently for window
13975 system and terminal frames.
13976
139771997-12-28 Gerd Moellmann <gerd@acm.org>
13978
13979 * xdisp.c (hscroll_windows): Change hscroll of windows.
13980 (redisplay_internal): Call it.
13981
427ec082 13982 * dispnew.c (direct_output_for_insert): Give up if a glyph
26901792
DL
13983 doesn't fit completely on the line.
13984 (direct_output_forward_char): Give up for non-ASCII chars.
13985 (direct_output_forward_char): Set redisplay_performed_directly_p.
13986
13987 * dispextern.h (struct display_iterator): Make first_visible_x
13988 and last_visible_x ints; this is for very long truncated lines.
13989
13990 * xdisp.c (move_iterator_in_display_line_to): Separate check for
13991 MOVE_X_REACHED only if it->nglyphs == 0. This fixes cursor
13992 positioning problems with the mouse.
13993 (move_iterator_in_display_line_to): Truncate lines if it->current_x
13994 >= it->last_visible_x instead of >.
13995 (display_line): Ditto.
13996
13997 * xterm.c (draw_glyphs): Draw rectangles if font could not be
13998 loaded.
13999 (XTproduce_glyphs): Calculate pixel_width for composite chars and
14000 non-ASCII chars differently. Always produce 1 glyph for composite
14001 chars. If font not found, use CHARSET_WIDTH to calculate width of
14002 non-ASCII chars.
14003 (x_get_char_font_and_encoding): Return null if font could not be
14004 loaded. Reset font to null if fontset could not be loaded.
14005 (draw_glyphs): Fill background if font not found.
14006 (draw_glyphs): Unused parameter just_foreground_p removed. New
14007 parameter composite_glyph.
14008 (draw_glyphs): Use enumeration for parameter hl.
427ec082 14009 (draw_glyphs): Pass a display area relative x-position to
26901792
DL
14010 draw_glyphs when calling it recursively for composite chars.
14011
140121997-12-27 Gerd Moellmann <gerd@acm.org>
14013
14014 * xterm.c: Patches from handa.etl.go.jp integrated.
14015 (draw_glyphs): Don't rely on x_get_char_font_and_encoding to
14016 find a font_info.
14017
14018 * xdisp.c (move_iterator_in_display_line_to): Check to_x
14019 for nglyphs == 1.
14020
14021 * xterm.c (x_draw_relief): Draw relief lines.
14022 (draw_glyphs): Call x_draw_relief.
14023
140241997-12-26 Gerd Moellmann <gerd@acm.org>
14025
14026 * xfns.c (x_make_gc): Create relief GC's.
14027
14028 * widget.c (create_frame_gcs): Create GC's for relief drawing.
14029 (setup_frame_gcs): Initialize them.
14030 (EmacsFrameDestroy): Free them.
14031
427ec082 14032 * xdisp.c (try_window_id): Get continuation lines width if
26901792
DL
14033 last_unchanged_at_beg_row is continued or a continuation line.
14034 (move_iterator_via_matrix): Don't do it for mini-buffer windows.
427ec082 14035 (redisplay_window): Case point has changed, and it has not
26901792
DL
14036 moved off the frame. Don't increment row if PT equals the row
14037 end if the row ends in ZV.
14038
14039 * xterm.c (x_draw_row_bitmaps): New function to draw bitmaps.
14040 (expose_line): Call it.
14041 (x_after_update_window_line): Call it.
14042
14043 * xdisp.c (display_line): Reset continuation_lines_width when ZV
14044 reached.
14045
14046 * xterm.c (x_after_update_window_line): Draw continuation line
14047 bitmap.
14048
14049 * dispnew.c (update_window_line): Call
14050 after_update_window_line_hook when row's continuation_line_p
14051 changes.
14052
14053 * xterm.c (draw_bitmap): Draw new bitmap CONTINUATION_LINE_BITMAP.
14054
14055 * xdisp.c (display_line): Handle continued lines on window system
14056 frames differently since continuation glyphs are not displayed.
14057 (move_iterator_in_display_line_to): Ditto.
14058 (move_iterator_in_display_line_to): Take the mini-buffer prompt
14059 into account.
14060 (move_iterator_vertically_backward): Handle dy == 0 specially.
14061 (redisplay_window): Catch the case of small windows when
14062 recentering where moving back window_height/2 moves us beyond the
14063 top of the display area of the window.
14064
140651997-12-18 Gerd Moellmann <gerd@acm.org>
14066
14067 * xdisp.c (move_iterator_vertically_backward): Unused parameter
14068 dvpos removed.
14069
140701997-12-17 Gerd Moellmann <gerd@acm.org>
14071
14072 * dispnew.c (direct_output_forward_char): Correct new cursor
14073 x-position.
14074
140751997-12-16 Gerd Moellmann <gerd@acm.org>
14076
14077 * xterm.c (x_after_update_window_line): Remove unused parameters.
14078 (XTclear_end_of_line): Clear to display_height instead of
14079 display_height - 1.
14080
14081 * dispnew.c (set_frame_matrix_frame): Make it INLINE.
427ec082 14082 (update_window_line): Call after_update_window_line_hook if
26901792
DL
14083 rows have different y-positions, or different height.
14084
140851997-12-14 Gerd Moellmann <gerd@acm.org>
14086
14087 * frame.h (FRAME_MODE_LINE_PIXEL_HEIGHT): Removed.
14088
14089 * window.c (coordinates_in_window): Call frame_mode_line_height.
14090
14091 * xterm.c (x_draw_3d_border): Removed.
14092 (x_draw_row_borders): Removed.
14093
14094 * dispnew.c (update_window): References to
14095 FRAME_MODE_LINE_BORDER_WIDTH removed.
14096
14097 * xterm.h (FRAME_MODE_LINE_BORDER_WIDTH): Removed.
14098 (FRAME_MODE_LINE_HEIGHT): Removed.
14099
14100 * xterm.c (draw_3d_borders_p): Removed.
14101 (draw_glyphs): Ditto.
14102 (XTwrite_glyphs): Ditto.
14103 (expose_line): Ditto.
14104 (x_initialize): Ditto.
14105
14106 * dispextern.h (WINDOW_DISPLAY_MODE_LINE_HEIGHT): Call
14107 frame_mode_line_height.
14108
14109 * term.c (frame_mode_line_height): Get the pixel height of a
14110 frame's mode line.
14111 (frame_mode_line_height_hook): Hook to implement system dependent
427ec082
SS
14112 versions.
14113
26901792
DL
14114 * xterm.c (x_initialize): Set the hook.
14115 (XTframe_mode_line_height): X version of frame_mode_line_height.
14116
14117 * xdisp.c (echo_area_display): Call gobble_input to flush the X
14118 output buffer.
14119 (display_string): Don't add right truncation mark if line ends in
14120 padding space.
14121 (init_display_iterator): If called with modeline_p non-zero, set
14122 face_id to 1, which is the id of the mode line face.
14123
14124 * keyboard.c (cmd_error_internal): Write to stderr if selected
14125 frame is Vterminal_frame under X. This is the case when a font
14126 cannot be loaded when Emacs starts. Replace test for
14127 FRAME_MESSAGE_BUF with test for glyphs_initialized_p.
14128
14129 * xfaces.c (compute_overlay_string_char_face): Compute the
14130 face of a character in an overlay string.
14131 * xterm.h (compute_overlay_string_char_face): Prototype.
427ec082 14132 * xdisp.c (compute_face_at_iterator_overlay_string_position):
26901792
DL
14133 Use it.
14134
14135 * xdisp.c (set_iterator_to_next_overlay_string): Formerly
14136 set_iterator_to_next_overlay.
14137 (struct overlay_entry): Structure used to sort overlay strings.
14138 (compare_overlay_entries): Compare overlay strings.
14139 (load_iterator_with_overlay_strings): Load a chunk of overlay
14140 strings.
14141 (get_overlay_strings_at_iterator_position): Call it.
14142 (next_element_from_overlay_string): Set it->object to the overlay
14143 string. Prepare for setting it->position to a string position.
14144 (get_overlay_strings_at_iterator_position): Renamed from
14145 get_overlays_at_iterator_position.
14146 (setup_iterator_overlay_strings_from_glyph_pos): Changed to load
14147 chunks of overlay strings.
14148 (load_overlay_strings): Renamed from load_iterator_overlay_strings.
14149
14150 * dispextern.h (struct display_iterator): New vector
14151 overlay_strings and new member n_overlay_strings---formerly
427ec082
SS
14152 overlays and n_overlays.
14153 (struct glyph_pos): Remove after_string_p; overlay_index
26901792
DL
14154 renamed to string_index.
14155
141561997-12-13 Gerd Moellmann <gerd@acm.org>
14157
14158 * xdisp.c (copy_iterator): Increment n_iterator_overlay_vectors
14159 when allocating a vector.
14160 (release_iterator): Removed.
14161 (restore_iterator): Removed.
14162 (copy_iterator): Removed.
14163
141641997-12-08 Gerd Moellmann <gerd@acm.org>
14165
14166 * xdisp.c (redisplay_window): Use make_empty_enabled_row for
14167 clearing a mini-buffer window that is not active.
14168 (redisplay_window): Do not scroll one line too early when last
14169 window line is completely visible.
14170 (init_display_iterator): Leave some room to display the cursor
14171 after the last glyph on a continued line.
14172
14173 * xterm.h (struct x_output): trunc_area_extra renamed
14174 flags_areas_extra.
14175 (FRAME_X_FLAGS_AREA_WIDTH): Renamed from FRAME_X_TRUNC_WIDTH.
14176
14177 * dispnew.c (update_window_line): Call
14178 after_update_window_line_hook when current row is not enabled
14179 which is the case after a frame has been cleared.
14180
14181 * xdisp.c (display_mode_line): Reset row flags for truncation
14182 on right side for the mode line.
14183
14184 * xterm.c (bitmap_type): Type of bitmap to display in flags
14185 area of frame.
14186 (x_after_update_window_line): Use the enum.
14187 (draw_bitmap): Ditto.
14188
141891997-12-07 Gerd Moellmann <gerd@acm.org>
14190
14191 * xterm.c (x_clip_to_row): Include width of both flag areas.
14192 (do_line_dance): Ditto.
14193 (expose_window_tree): Ditto.
14194 * dispnew.c (update_window_line): Call
14195 after_update_window_line_hook for right truncation and continuation.
14196 * xdisp.c (init_display_iterator): Don't subtract width of
14197 continuation glyphs for window-based redisplay.
14198 * xterm.c (draw_bitmap): Draw continuation bitmap.
14199 * widget.c (set_frame_size): Double trunc_area_extra.
14200 (EmacsFrameSetCharSize): Ditto.
14201 * xfns.c (x_figure_window_size): Ditto.
14202 * xterm.c (x_set_window_size): Ditto.
14203 (x_after_update_window_line): Draw right truncation mark.
14204
14205 * xterm.c (draw_glyphs): Bug fix buffer overrun.
14206
14207 * window.h: Include blocker around dispextern.h removed.
14208
14209 * eval.c (Feval): Check interrupt_input_block == 0.
427ec082 14210
26901792
DL
14211 * dispextern.h (struct display_iterator): Former ovstr made a
14212 Lisp_Object overlay_string. New next_ovstr_face_check_pos and
14213 next_ovstr_invisble_check_pos; check at these positions for
14214 face changes and changes in invisible text property.
14215 (struct glyph_pos): Former ovlen now overlay_string_index.
14216
14217 * xdisp.c (setup_iterator_overlays_from_glyph_pos): Set
14218 overlay_string.
14219 (set_iterator_to_next_overlay_string): Set overlay_string and
14220 pos.overlay_string_index.
14221 (get_overlays_at_iterator_position): Use overlay_string and
14222 overlay_string_index.
14223 (next_element_from_overlay_string): Use overlay_string and
14224 overlay_string_index.
14225 (move_iterator_forward): Increment overlay_string_index.
14226 (try_window_id): Use overlay_string and overlay_string_index.
14227 (move_iterator_forward): At end of dpvec, maybe use method
14228 next_element_from_overlay_string for the case a character from an
14229 overlay string was translated via a display table.
14230 (reseat_iterator_to_string): Take a Lisp string.
14231 (display_string): Pass a Lisp string to reseat_iterator_to_string.
14232 (compute_face_at_iterator_overlay_string_position): Compute face
14233 based on text properties for an overlay string.
14234 (next_element_from_overlay_string): Check invisible and face text
14235 properties.
178c5d9c 14236
26901792
DL
14237 (set_iterator_to_next_overlay_string): Restore face id before
14238 overlay strings when no more overlay strings are found to return.
14239 Initialize next_ovstr_.*check_pos for each new overlay string
178c5d9c 14240
bb6677a8
GM
14241 A line in the following paragraph was garbled for an unknown
14242 reason. It couldn't be fully reconstructed.
178c5d9c 14243
bb6677a8 14244 (compute_base_face): Made public.
26901792
DL
14245 (merge_face_list): Ditto.
14246 (intern_computed_face): Ditto.
14247
427ec082 14248 * xdisp.c (redisplay_window): Cursor movement in unchanged
26901792
DL
14249 window if PT > w->last_point. Goto try_to_scroll if bottom Y
14250 of row is > instead of >= last_y.
14251
14252 * buffer.h (overlays_at): Function prototype.
14253
14254 * xdisp.c (reseat_iterator_to_string): Clear iterator position.
14255 * dispextern.h (GET_NEXT_DISPLAY_ELEMENT): Removed.
14256
427ec082 14257 * xdisp.c (release_iterator): Release dynamically allocated
26901792
DL
14258 memory of a display_iterator.
14259 (copy_iterator): Copy an iterator.
14260 (restore_iterator): Restore an iterator from a backup copy.
14261 (global): Use the functions above.
14262 * window.c (Fpos_visible_in_window_p): Call release_iterator.
14263 * dispnew.c (direct_output_for_insert): Call release_iterator.
14264
14265 * dispextern.h (struct display_iterator): Allocate overlays
14266 vector dynamically.
14267
142681997-12-06 Gerd Moellmann <gerd@acm.org>
14269
14270 * Makefile.in (window.o): Depends on dispextern.h.
14271
14272 * buffer.c (overlays_at): Make it work when extending vectors
14273 and an initial vector of zero size.
14274
14275 * xdisp.c (set_iterator_to_previous_visible_line_end): Renamed
14276 from set_cursor_to_previous_visible_line_end.
14277 (set_iterator_to_next_visible_line_start): Renamed from
14278 set_cursor_to_next_visible_line_end.
14279 (set_next_iterator_stop_pos): Renamed from set_next_stop_pos.
14280 (compute_face_at_iterator_position): Renamed from
14281 compute_cursor_face.
14282 (set_iterator_to_next_overlay_string): Renamed from
14283 cursor_to_next_overlay_string.
14284 (get_overlays_at_iterator_position): Renamed from
14285 get_overlays_for_cursor.
14286 (reseat_iterator): Renamed from reseat_cursor.
14287 (setup_iterator_overlays_from_glyph_pos): Renamed from
14288 setup_overlays_from_pos.
14289 (init_string_iterator): Renamed from init_string_cursor.
14290 (get_next_display_element): Renamed from next_display_element.
14291 (move_iterator_forward): Renamed from advance_display_cursor.
427ec082 14292 (get_overlays_at_iterator_position): Allocate overlays vector
26901792
DL
14293 dynamically.
14294
14295 * xdisp.c: display_cursor renamed display_iterator.
14296 * dispextern.h: Ditto.
14297 * dispnew.c: Ditto.
14298
142991997-12-01 Gerd Moellmann <gerd@acm.org>
14300
14301 * window.c (mark_window_cursors_off): Function comment added.
14302 (window_topmost_p, window_rightmost_p): Removed because not used.
14303
143041997-11-30 Gerd Moellmann <gerd@acm.org>
14305
14306 * emacs.c (main): Function prototypes removed in profiling code.
14307 Use safe_bcopy as start of text.
14308
14309 * dispnew.c (update_frame_line): update_line -> update_frame_line;
14310 mirrored_make_current -> make_current.
14311
14312 * xdisp.c: (store_frame_title_char): New function to store a
14313 single character for the frame title with re-allocation of
14314 frame_title_buf.
14315 (init_xdisp): Intialize frame_title_.* variables to null.
14316
14317 * dispnew.c (quit_error_check): Removed.
14318
14319 * eval.c (Fsignal): Call to quit_error_check removed.
14320 * keyboard.c (quit_throw_to_read_char): Ditto.
14321
143221997-11-23 Gerd Moellmann <gerd@acm.org>
14323
14324 * xfaces.c (Fset_face_attribute_internal): Allow nil relief
14325 to mean a zero relief.
14326
26901792
DL
143271997-11-19 Gerd Moellmann <gerd@acm.org>
14328
14329 * dispnew.c (new_glyph_matrix): Increment glyph_matrix_count
14330 unconditionally.
14331 (glyph_matrix_count, glyph_pool_count): Define unconditionally.
14332 (free_glyph_matrix): Decrement glyph_matrix_count unconditionally.
14333 (check_glyph_memory): Define function body unconditionally.
14334
143351997-11-17 Gerd Moellmann <gerd@acm.org>
14336
14337 * dispnew.c (scrolling_window): Alternative version of this
14338 function removed.
14339
143401997-11-16 Gerd Moellmann <gerd@acm.org>
14341
14342 * dispnew.c (make_empty_enabled_row): Make an empty, enabled row
14343 of height CANON_Y_UNIT.
14344 * dispextern.h: Prototype for that function.
427ec082 14345 * xdisp.c (echo_area_display): Don't use display_string to
26901792
DL
14346 produce empty rows. Use make_empty_enabled_row instead.
14347
14348 * dispnew.c (scrolling_window): New version using diff-like
14349 algorithm activated.
427ec082 14350
26901792
DL
143511997-11-15 Gerd Moellmann <gerd@acm.org>
14352
14353 * dispnew.c (clear_current_matrices): Clear matrix of menu_bar_window
14354 (clear_desired_matrices): Ditto.
14355 (adjust_frame_glyphs_for_window_redisplay): Use FRAME_WINDOW_WIDTH
14356 for menu_bar_window.
14357
14358 * alloc.c (mark_object): Mark menu_bar_window of frames.
14359
14360 * xterm.c (XTupdate_window_end): Don't display cursor if
14361 pseudo_window_p.
14362
14363 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Don't
14364 set mini_p.
14365 (update_window): Don't set cursor if pseudo_window_p.
14366
14367 * dispextern.h (WINDOW_WANTS_MODELINE_P): Test pseudo_window_p.
14368
14369 * window.h (struct window): New flag pseudo_window_p set to
14370 1 for windows that aren't really part of the window tree, like
14371 menu_bar_window's of frames.
14372 * window.c (make_window): Initialize it.
14373 (replace_window): Ditto.
14374 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Ditto.
14375
14376 * frame.c (make_frame): Initialize menu_bar_window to nil.
14377
14378 * xterm.c (XTget_display_info): FACE_SHADOW_THICKNESS renamed
14379 FACE_RELIEF
14380
14381 * xfaces.c (copy_face): shadow_thickness -> relief.
14382 (face_eql): Ditto.
14383 (merge_faces): Ditto.
14384 (compute_base_face): Ditto.
14385 (Fset_face_attribute_internal): Ditto.
14386 * dispextern.h (struct face): Ditto.
14387
14388 * dispnew.c (update_frame): Update menu_bar_window of the frame if
14389 it is non-nil.
14390
14391 * xdisp.c (display_menu_bar): Display the menu bar in
14392 f->menu_bar_window if appropriate.
14393 (display_mode_line): Use MATRIX_MODE_LINE_ROW.
14394
14395 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Allocate
14396 dummy window and window matrices for f->menu_bar_window.
14397 (free_glyphs): Free the dummy window and its glyph matrices.
14398
14399 * frame.h (struct frame): New member menu_bar_window.
14400
144011997-11-09 Gerd Moellmann <gerd@acm.org>
14402
14403 * dispnew.c (scrolling_window): New version with diff-like
14404 algorithm.
14405
14406 * xdisp.c (try_window_reusing_current_matrix): If new_start >
14407 old_start always start displaying at start of
14408 first_row_to_display. The previous scheme failed if the last row
14409 was fully visible.
14410
14411 * dispnew.c (update_window): Remove cost calculations. Remove
14412 redundant preempt_count calculations.
14413
14414 * xterm.c (x_clip_to_row): Set clipping for non-text rows
14415 differently.
14416
14417 * dispnew.c (update_window): Use WINDOW_WANTS_MODELINE_P.
14418
427ec082 14419 * window.c (syms_of_window): Functions for marginal areas if
26901792
DL
14420 WITH_MARGINAL_AREAS is defined.
14421
427ec082 14422 * xdisp.c (try_window_reusing_current_matrix): Trace fprintf
26901792
DL
14423 removed.
14424
14425 * dispnew.c (scrolling): Call line_hash_code because hash values
14426 are not set in the frame matrix.
14427
14428 * xdisp.c (try_window_id): Fix scrolling for terminal frames.
14429 (redisplay_window): Check line_ins_del_ok before calling
14430 try_window_id.
14431 (try_window_reusing_current_matrix): Give up for terminal frames
14432 if window is not full width or we cannot insert/delete lines.
14433 (try_window_reusing_current_matrix): Fixed scrolling for terminal
14434 frames.
14435
14436 * alloc.c (mark_glyph_matrix): Bug fix - pass pointer to
14437 Lisp_Object to mark_object.
14438
14439 * xdisp.c (sync_frame_with_window_matrix_rows): Make frame and
14440 window rows have the same glyph pointers.
14441 (try_window_id): Call it.
14442
14443 * alloc.c (mark_glyph_matrix): Function to mark Lisp objects in
14444 a glyph matrix.
14445 (mark_object): Call it.
14446
14447 * xdisp.c (insert_left_trunc_glyphs): Use 0 object in glyphs for
14448 truncations.
14449 (display_line): Ditto.
14450 (display_line): Ditto for DISP_CONTINUATION.
14451 (display_line): Truncation on right: test current_x >
14452 last_visible_x.
14453 (skip_in_display_line_to): Ditto.
14454 (skip_via_matrix): Stop skipping in glyph row at face extending
14455 glyphs or at padding spaces.
14456
14457 * dispnew.c (fill_up_glyph_row_with_spaces): Comment extended.
14458
14459 * xdisp.c (display_line): Use glyph->object == 0 for padding
14460 glyphs.
14461 (redisplay_window): Don't let cursor move over padding
14462 spaces.
14463
14464 * dispextern.h (struct glyph): Fix comment for object.
14465
144661997-11-08 Gerd Moellmann <gerd@acm.org>
14467
14468 * dispextern.h (WINDOW_WANTS_MODELINE_P): Non-zero if a window
14469 has a mode line.
14470 * xdisp.c (redisplay_window): Use it.
14471 (display_mode_line): Check that window wants mode line.
14472
144731997-11-03 Gerd Moellmann <gerd@acm.org>
14474
14475 * xdisp.c (display_menu_bar): Enable menu bar rows.
14476
14477 * xterm.c (x_draw_hollow_cursor): X positions based on text area.
14478 (x_erase_phys_cursor): Ditto.
14479 (x_draw_bar_cursor): Ditto.
14480
144811997-11-02 Gerd Moellmann <gerd@acm.org>
14482
14483 * dispnew.c (update_marginal_area): Update a marginal area.
14484 (update_text_area): Update text area.
14485 (update_window_line): Call both.
14486
14487 * xterm.c (XTclear_end_of_line): Translate coordinates area
14488 dependent.
14489
14490 * dispnew.c (updated_area): Row area being updated in
14491 update_window_line.
14492 (update_window_line): Set it.
14493 (update_marginal_area): Clear to end of line if not in text area.
14494
14495 * window.c (Fset_window_margins): Increment
14496 windows_or_buffer_changed. Adjust glyphs.
14497
14498 * dispextern.h (WINDOW_TEXT_TO_FRAME_PIXEL_X): Convert text
14499 area X coordinates to frame coordinates.
427ec082 14500 (WINDOW_DISPLAY_LEFT_AREA_PIXEL_WIDTH): Width of left marginal area.
26901792
DL
14501 (WINDOW_DISPLAY_RIGHT_AREA_PIXEL_WIDTH): Same for right area.
14502 (WINDOW_DISPLAY_TEXT_AREA_PIXEL_WIDTH): Same for text area.
14503
14504 * xterm.c (draw_glyphs): Use text area width as display width.
14505
14506 * xdisp.c (init_display_info): Subtract widths of marginal areas
14507 from last_visible_x.
14508
14509 * alloc.c (mark_object): Mark objects in glyphs only if they are
14510 overlays. Mark only if current_matrix != 0. Activate the code.
14511
14512 * window.c (Fset_window_margins): Set margins.
14513 (Fwindow_margins): Return margin area widths.
14514 (syms_of_window): Add defsubr's.
14515
14516 * window.h (struct window): left_margin_width, right_margin_width.
14517
14518 * xfns.c (x_set_trunc_area_width): Set truncation pixel width
14519 and cols.
14520
14521 * frame.h (FRAME_TRUNC_COLS): Number of columns occupied by
14522 truncation/overlay arrow area.
14523 (struct frame): trunc_area_pixel_width, and _cols.
14524
14525 * window.c (Fsplit_window): Use it.
14526
14527 * window.c (Fsplit_window): Set cursor vpos to -1 after
14528 splitting.
14529 (Fsplit_window): SUbtract/add FRAME_TRUNC_WIDTH for horizontally
14530 split windows.
14531
14532 * dispnew.c (set_window_cursor_after_update): Accept out
427ec082 14533 of bounds cursor positions.
26901792
DL
14534
14535 * xdisp.c (redisplay_internal): Check that after cursor motion
14536 within line, PT is on same line.
14537
14538 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Don't subtract
14539 FRAME_TRUNC_WIDTH.
14540
14541 * xterm.h (struct x_output): trunc_area_extra.
14542 (CHAR_TO_PIXEL_WIDTH): Add in trunc_area_extra.
14543 (PIXEL_TO_CHAR_WIDTH): Subtract it.
14544 * widget.c (set_frame_size): Set it.
14545 (EmacsFrameSetCharSize): Ditto.
14546 * xfns.c (x_figure_window_size): Ditto.
14547 * xterm.c (x_set_window_size): Ditto.
14548
14549 * dispnew.c (check_matrix_invariants): First try to check window
14550 ends (in #if 0).
14551
14552 * xdisp.c (try_window_reusing_current_matrix): Try window
14553 redisplay with different window start.
14554
145551997-11-01 Gerd Moellmann <gerd@acm.org>
14556
14557 * window.c (make_window): Set window_end_pos/vpos.
14558 (Fsplit_window): Zero last_cursor, window_end_valid.
14559 (Fset_window_buffer): Set window_end_vpos, zero last_cursor.
14560
14561 * dispnew.c (check_matrix_invariants): Check window_end_pos/vpos.
14562
145631997-10-31 Gerd Moellmann <gerd@acm.org>
14564
14565 * window.c (make_window): Initialize last_cursor.
14566 (replace_window): Ditto.
14567
145681997-10-29 Gerd Moellmann <gerd@acm.org>
14569
14570 * window.h: New member last_cursor.
14571 * dispnew.c (direct_output_for_insert): Set it.
14572 (direct_output_forward_char): Ditto.
14573 * xdisp.c (redisplay_internal): Ditto.
14574
145751997-10-28 Gerd Moellmann <gerd@acm.org>
14576
14577 * xdisp.c (redisplay_internal): Optimization 1 change partially
14578 reverted. Check this again later.
14579 (skip_via_matrix): Remove redundent test for
427ec082 14580 MATRIX_ROW_DISPLAYS_TEXT_P.
26901792
DL
14581
145821997-10-27 Gerd Moellmann <gerd@acm.org>
14583
14584 * dispnew.c (update_window_line): Call
14585 after_update_window_line_hook only for interesting constellations.
14586 (free_glyph_matrix): Fix memory leak.
14587
14588 * window.h: Include blocker WINDOW_H_INCLUDED, include
14589 dispextern.h.
14590 (struct window): phys_cursor_glyph as struct glyph. * window.c
14591 (make_window): Initialize it.
427ec082 14592 (replace_window): Ditto.
26901792
DL
14593 * dispnew.c (free_window_matrices): Remove freeing of
14594 phys_cursor_glyph.
14595 (check_matrix_invariants): Renamed from check_current_matrix_...
14596 * xterm.c: All references to phys_cursor_glyph changed.
14597
14598 * dispextern.h (DISPEXTERN_H_INCLUDED: New include blocker.
14599
14600 * xfaces.c: Comment update.
14601
14602 * window.h (struct window): Make phys_cursor_glyph a struct glyph
14603 pointer. Remove phys_cursor_ascent, descent, etc.
14604 * dispnew.c (free_window_matrices): Free it.
14605 * window.c (make_window): Allocate it.
14606 (replace_window): Ditto.
14607 * xterm.c (x_draw_phys_cursor_glyph): Draw it.
14608 (x_display_and_set_cursor): Fill it.
14609 (x_phys_cursor_in_rect_p): Use it.
14610 (x_draw_hollow_cursor): Ditto.
14611 (x_draw_bar_cursor): Ditto.
14612 (x_erase_phys_cursor): Ditto.
14613
14614 * xdisp.c (skip_in_display_line_to): Use SET_INFO_FROM_CURSOR.
14615
14616 * xterm.c (XTget_display_info): Handle 3D facess.
14617 (draw_glyphs): Ditto.
14618
14619 * xdisp.c (Fdump_redisplay_state): Change interactive spec to "p".
14620
14621 * xfaces.c (Fset_face_attribute_internal): New face attribute
14622 shadow-thickness.
14623 (copy_face): Handle shadow_thickness.
14624 (face_eql): Ditto.
14625 (merge_faces): Ditto.
14626 (compute_base_face): Ditto.
14627
14628 * dispextern.h (struct display_cursor): New member start_of_3d_run_p.
14629 (struct display_info): Ditto.
14630 (SET_INFO_FROM_CURSOR): Transfer it to display_info.
14631 * xdisp.c (compute_cursor_face): Set it.
14632 (advance_display_cursor): Clear it.
14633
14634 * xdisp.c (init_string_cursor): Initialize face_id to -1.
14635 (init_string_cursor): Init face_id to zero.
14636
14637 * dispextern.h (struct face): New member shadow_thickness.
14638
427ec082 14639 * xdisp.c (compute_cursor_face): Set limit for text property
26901792
DL
14640 search to 100.
14641
14642 * dispnew.c (update_window_line): Try to resynch with current line
14643 to prevent mode line flickering.
14644
146451997-10-26 Gerd Moellmann <gerd@acm.org>
14646
427ec082 14647 * dispnew.c (set_window_cursor_after_update): React again
26901792
DL
14648 on cursor_in_echo_area >= 0.
14649
14650 * xdisp.c (echo_area_display): Clear desired matrix before
14651 displaying into it.
14652 (display_menu_bar): Clear glyph row instead of hoping it is not
14653 enabled. This is safer.
14654
14655 * dispnew.c (check_current_matrix_invariants): Check only
14656 visible rows.
14657
14658 * xdisp.c (try_window_id): Handle window end setting in case of
14659 display to end of window, but only non-text lines displayed.
14660
14661 * dispnew.c (check_current_matrix_invariants): Check nrows for zero.
14662 (check_current_matrix_invariants): Check used counts.
14663
14664 * Revisiob v114.
14665
14666 * dispnew.c (scrolling): Use hash codes from rows.
14667
14668 * xdisp.c (Fdump_redisplay_state): Dump current matrix.
14669
14670 * dispnew.c (scrolling_window): Invalidate conflicting runs.
14671
146721997-10-25 Gerd Moellmann <gerd@acm.org>
14673
14674 * dispextern.h (struct glyph_matrix): Flag no_scrolling_p.
14675 * dispnew.c (update_window): Use it.
14676 (clear_glyph_matrix): Clear it.
14677 * xdisp.c (try_window_id): Set it.
14678
14679 * dispextern.h (struct glyph_row): New flag ends_at_zv_p.
14680
14681 * xdisp.c (redisplay_internal): Increment glyph positions differently.
14682
14683 * dispextern.h: More comments etc.
14684
146851997-10-24 Gerd Moellmann <gerd@acm.org>
14686
14687 * dispnew.c (set_window_cursor_after_update): Set cursor
14688 for cursor_in_echo_area == 0 to (0, 0).
14689
14690 * dispextern.h (struct glyph_row): New flags continuation_line_p
14691 and displays_text_p.
14692 (MATRIX_ROW_DISPLAYS_TEXT_P): Use displays_text_p.
14693 * xdisp.c (display_line): Set them.
14694 (try_window_id): Move to start of continuation line to find out
14695 continuation_line_width.
14696 (first_unchanged_current_row): Don't retract row if continued,
14697 truncated etc.
14698
14699 * xterm.c: Map X coordinates.
14700
147011997-10-23 Gerd Moellmann <gerd@acm.org>
14702
14703 * dispnew.c (buffer_posn_from_coords): Translate X for right to
14704 left text.
14705
14706 * xdisp.c (display_line): Set right_to_left_p after clearing the row.
14707
14708 * xterm.c (XTclear_end_of_line): Respect right_to_left_p.
14709
f28eba7b 14710 * xdisp.c (try_window_id): Clear desired matrix if not successul.
26901792
DL
14711
14712 * xdisp.c (try_window_id): Call update_window_begin_hook/end_hook.
14713
14714 * dispnew.c (update_window_begin_hook, update_winodw_end_hook):
14715 Set this to functions to be called before/after window updates.
14716 (direct_output_for_insert): Call them.
14717 (update_window): Ditto.
14718 (update_frame): Call update_begin/ update_end for windows.
14719
14720 * xterm.c (XTupdate_window_begin): Called before window updates.
14721 (XTupdate_end): Called after window updates.
14722 (x_initialize): Set hooks to above.
14723
14724 * xdisp.c (init_display_info): Initialize c and len of
14725 display_info.
14726
14727 * xterm.c (x_get_char_font_and_encoding): Bug fix. Don't load
14728 fonts more than once.
14729
147301997-10-22 Gerd Moellmann <gerd@acm.org>
14731
14732 * xdisp.c (display_line): Handle most common case of current_x <
14733 last_visible_x separately.
14734
14735 * dispextern.h (display_element_type): DISP_ELLIPSIS removed.
14736
14737 * dispnew.c (update_window_line): Compare pixel widths of glyphs
14738 so that face extending space doesn't compare equal to normal space
14739 with same face.
14740
14741 * xdisp.c (display_line): Make sure we have a position for
14742 a line end in an otherwise blank line if face is extended.
14743
14744 * dispnew.c (direct_output_for_insert): Increment row end position.
14745
427ec082 14746 * window.c (Fpos_visible_in_window_p): Use old meaning of
26901792
DL
14747 window_end_pos.
14748
14749 * xdisp.c (init_display_cursor_from_glyph_pos): New.
14750
14751 * dispextern.h (MATRIX_ROW_FIRST_POS): Use row start.
14752
14753 * dispnew.c (increment_glyph_row_buffer_positions): Adjust
14754 start and end positions in rows.
14755 (increment_glyph_row_buffer_positions): Stop adjusting at
14756 glyphs with positions <= 0.
14757
14758 * dispextern.h (struct glyph_pos): Structure desribing a text
427ec082 14759 position including position in overlay.
26901792
DL
14760 (struct glyph_row): Use it for start and end positions.
14761 (struct display_cursor): Use it.
14762 * xdisp.c: Use it.
14763 (display_line): Set row start and end positions.
14764
14765 * dispnew.c (copy_row_except_pointers): Use bcopy and struct
14766 assignment.
14767
147681997-10-21 Gerd Moellmann <gerd@acm.org>
14769
14770 * dispnew.c (update_window): Add scrolling_window again. It's
14771 necessary for scroll_step != 0.
14772
14773 * xdisp.c (redisplay_window): Use vmotion for scroll_step
14774 scrolling.
14775
14776 * xdisp.c (last_unchanged_current_row): Use window_end_vpos.
14777
14778 * xterm.c (XTupdate_end): Flush only for messages.
14779
14780 * xdisp.c (try_window_id): Assert last_unchanged_row >=
14781 first_unchanged_row.
14782
14783 * xterm.c (XTupdate_end): Flush if miniwindow.
14784
14785 * dispnew.c (matrix_row_last_pos): New function.
14786 * dispextern.h (MATRIX_ROW_LAST_POS): Call it.
427ec082 14787 Large comment moved to xdisp.c.
26901792
DL
14788
14789 * xdisp.c (redisplay_window): Bug fix: PT set to value > Z.
14790 (skip_via_matrix): Check window_end_valid instead of
14791 display_completed.
14792
14793 * dispnew.c (scroll_glyph_matrix_range): Bug fix.
14794 (update_window): scrolling_window commented out. It has negative
14795 effect most of the time.
14796
14797 * xdisp.c (try_window_id): Correct parameters to
14798 scroll_glyph_matrix_range.
14799
427ec082 14800 * xterm.c (XTupdate_end): XFlush commented out.
26901792
DL
14801
14802 * window.h: Comments for window_end_pos/vpos.
14803
f28eba7b 14804 * xdisp.c (skip_to): Assert current_buffer is the buffer
26901792
DL
14805 of the window in which we are skipping.
14806
14807 * dispnew.c (update_window_line): Optimized clear_end_of_line.
14808
14809 * xterm.c (draw_glyphs): Bug fix. Return window relative X
14810 reached.
14811
148121997-10-20 Gerd Moellmann <gerd@acm.org>
14813
14814 * dispextern.h (MATRIX_ROW_LAST_POS): Go back one glyph if this is
14815 a face extending glyph.
14816
427ec082 14817 * xdisp.c (try_window_id): Check if point will appear.
26901792
DL
14818 (set_cursor_from_row): Set cursor position from a glyph row.
14819
14820 * dispnew.c (update_window_line): Write entire line if hash
14821 codes of lines differ.
14822
14823 * dispextern.h (MATRIX_ROW_EXTENDS_FACE_P): Value is non-zero
14824 if glyph row has an infinite width glyph at its end.
14825
14826 * xdisp.c (last_unchanged_current_row): Respect partially visible
14827 lines when looking for the last row displaying text.
14828 (try_window_id): Handle partially visible lines better.
14829
148301997-10-19 Gerd Moellmann <gerd@acm.org>
14831
14832 * dispnew.c (update_window): Remove unused variable.
14833 (update_window_line): Simplified.
14834
14835 * xterm.c (x_get_char_font_and_encoding): Handle most common
14836 case at the beginning.
14837
14838 * xdisp.c (advance_display_cursor): Dispatch on method and
14839 order if statements by expected call frequency. Fixed unclosed
14840 comment.
14841
14842 * xdisp.c (try_window_id): New implementation.
14843
14844 * dispnew.c (increment_glyph_row_buffer_positions): Capture
14845 rows displaying a line end, only.
14846
148471997-10-18 Gerd Moellmann <gerd@acm.org>
14848
14849 * window.c (Fpos_visible_in_window_p): Remove use of window_end_vpos.
14850
148511997-10-14 Gerd Moellmann <gerd@acm.org>
14852
14853 * xdisp.c (display_line): Mark empty lines not corresponding to
14854 text with position -1.
14855
14856 * xterm.c (x_erase_phys_cursor): Don't bother to erase cursor if
14857 not within window matrix bounds.
14858
14859 * dispextern.h (struct display_cursor): New member REGION_SHOWING_P.
14860 (struct display_info): NGLYPHS_TO_IGNORE removed.
14861 * xdisp.c: References to NGLYPHS_TO_IGNORE removed.
14862 * term.c: Ditto.
14863 * xterm.c: Ditto.
14864
14865 * xdisp.c (init_display_cursor): Set it.
14866 (display_line): Use it to set W->REGION_SHOWING.
14867
14868 * xdisp.c (skip_via_matrix): Check for overlay arrow.
14869
14870 * region-cache.h: functino prototypes with PROTO.
14871
14872 * dispnew.c (buffer_posn_from_coords): Use -1 as skip position.
14873
14874 * xdisp.c (skip_via_matrix): Check for rows that don't contain
14875 a position.
14876
427ec082 14877 * xterm.c (XTmouse_position): Calculate LAST_MOUSE_GLYPH
26901792
DL
14878 rectangle based on minimum character bounds.
14879
f28eba7b 14880 * keyboard.c (make_lispy_event): Mouse clicks; don't do frame
26901792
DL
14881 glyph position calculations.
14882 (make_lispy_movement): Use buffer_posn_from_coords and window
14883 relative coordinates.
14884
14885 * xterm.c (construct_mouse_click): Remove #if 0 case.
14886
14887 * dispextern.h (MATRIX_ROW_BOTTOM_Y): Return bottom pixel y of
14888 given row.
14889
427ec082
SS
14890 * xdisp.c (skip_via_matrix): Skip using current matrix if up to
14891 date.
26901792
DL
14892 (skip_to): Use it.
14893 (redisplay_window): Remove code skipping using current matrix.
14894
148951997-10-13 Gerd Moellmann <gerd@acm.org>
14896
14897 * xdisp.c (redisplay_window): Use available current matrix to
14898 skip faster when only point is moved withing the window.
14899
427ec082 14900 * intervals.c: Include stdio.h.
26901792
DL
14901 (find_interval): Trace to stderr to catch some nasty error
14902 that did not yet occur again with tracing.
14903 (set_point): Ditto.
14904
14905 * dispnew.c (shift_glyph_matrix): Experimental code for handling
14906 cursor positioning on partially visible lines.
14907 (set_window_cursor_after_update): Ditto.
14908
f28eba7b 14909 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): Bug fix.
26901792
DL
14910
14911 * window.h (struct window): start_y removed.
14912
14913 * window.c (make_window): start_y removed.
14914 (replace_window): Ditto.
14915
427ec082 14916 * xdisp.c (last_max_ascent, last_max_descent): Ascent and
26901792
DL
14917 descent values of the last line processed by skip_to.
14918 (redisplay_window): Use them.
14919 (skip_to): Set them.
14920
14921 * dispextern.h (struct display_cursor): New member METHOD.
14922
14923 * xdisp.c: Use function member METHOD.
14924
14925 * xdisp.c (set_next_stop_pos): Determine next position at which to
14926 check for face properties, invisible text properties, and overlays.
14927 (compute_cursor_face): Use it.
14928 (get_overlays_for_cursor): Ditto.
14929 (reseat_cursor): Ditto.
14930 (next_display_element): Ditto.
14931
14932Sun Aug 24 08:50:52 1997 Gerd Moellmann <gerd@acm.org>
14933
14934 * termhooks.h: Some hooks with prototypes.
14935
14936 * term.c: Some hooks with function prototypes.
427ec082 14937
26901792
DL
14938 * xdisp.c (reseat_cursor): Additional argument force_p. Avoid
14939 computing face if possible.
14940
14941 * xdisp.c (next_display_element): Use face from glyph from display
14942 table only if != 0.
14943
14944 * emacs.c: FreeBSD headers for profiling removed.
14945
427ec082
SS
14946 * dispnew.c (direct_output_for_insert): Don't use PT-1 for
14947 display cursor, use DEC_POS instread.
26901792
DL
14948
14949 * xfaces.c (load_font): Use x_load_font to load fonts so that
427ec082 14950 all fonts are in the font table.
26901792
DL
14951 (unload_font): Don't XFreeFont.
14952
14953 * dispnew.c (row_equal_p): Compare ascent, descent and visible
14954 row height.
14955
14956 * xterm.c (draw_glyphs): Use 8-bit functions if possible.
14957 (x_erase_phys_cursor): Clear only visible part of row.
14958 (x_draw_bar_cursor): Set clipping.
14959 (x_draw_hollow_cursor): Ditto.
14960 (x_display_and_set_cursor): Remove clipping.
14961 (expose_window_tree): Take trunc border into account.
14962 (x_phys_cursor_in_rect_p): Test if phys_cursor intersects a rect.
14963 (expose_window): Use it.
14964
14965 * xdisp.c (display_string): Catch case that we are called with
d7d0dac0 14966 current_x already beyond max_x.
26901792
DL
14967 (global): Fix usage of FRAME_WINDOW_P <-> FRAME_WINDOW_REDISPLAY_P.
14968 (init_display_info): Subtract vertical border glyph from
d7d0dac0 14969 last_visible_x.
26901792
DL
14970
14971 * scroll.c (scrolling_window_1): Removed.
14972
14973 * dispnew.c (adjust_frame_glyphs): Split into two functions,
14974 based on redisplay method used.
14975 (adjust_frame_glyphs_for_frame_redisplay): Part for frame
14976 based redisplay.
14977 (adjust_frame_glyphs_for_window_redisplay): Part for purely
14978 window based redisplay.
14979
14980 * frame.h (FRAME_WINDOW_REDISPLAY_P): Changed to not depend
14981 on data structures.
14982
14983 * dispnew.c (adjust_glyph_matrix): Additional parameter W.
14984 Handle own storage for purely window based redisplay.
14985 (allocate_matrices_for_frame_redisplay): Formerly part of
427ec082 14986 allocate_matrices.
26901792
DL
14987 (allocate_matrices_for_window_redisplay): Ditto.
14988
14989 * dispextern.h (struct glyph_matrix): window_top_y,
14990 window_height.
14991
14992 * dispnew.c (allocate_matrices_for_window_redisplay): Detect
14993 and optimize some common cases of window changes.
14994
14995 * emacs.c (main): Remove own profiling code because 0.95 now
14996 has it in.
14997
14998Fri Aug 22 18:46:43 1997 Gerd Moellmann <gerd@acm.org>
14999
d7d0dac0 15000 * xterm.c (XTupdate_end): Draw horizontal border at right position.
26901792
DL
15001 (expose_window): Draw vertical border.
15002 (XTclear_end_of_line): Accept width <= 0 and height <= 0 but
15003 don't do anything.
15004
15005 * xdisp.c (redisplay_internal): Set update_mode_line if paused
15006 for non full width windows only if not window redisplay.
15007
15008 * dispnew.c (update_window_tree): Or paused_p return of called
15009 functions.
15010
15011 * xterm.c (x_display_and_set_cursor): Return if hpos/vpos outside
15012 of window.
15013
15014 * window.c (Fset_window_configuration): adjust_glyphs being
15015 called twice.
15016 (Fset_window_configuration): Set frame garbaged if not all
15017 leaf windows reused.
15018
150191997-08-21 Gerd Moellmann <gerd@acm.org>
15020
15021 * dispnew.c (clear_glyph_matrix): Additional argument specifiying
15022 that rows should really be cleared. Used for current matrices.
15023
d7d0dac0
SM
15024 * dispnew.c (scrolling_window): Bug fix.
15025 (line_dance_hook): Formerly line_dance_fn, take only one parameter.
26901792
DL
15026
15027 * dispextern.h (struct run): Remove current_vpos.
15028
15029 * xterm.c (do_line_dance): Only one parameter.
15030
f28eba7b 15031 * xdisp.c (display_line): Set continued_p.
26901792
DL
15032
15033 * dispextern.h (struct glyph_row): New flag continued_p.
15034 Fix truncated_on_left_p and truncated_on_right_p to be bits.
427ec082 15035 (struct glyph_row):
26901792
DL
15036
15037Thu Aug 21 14:37:34 1997 Gerd Moellmann <gerd@acm.org>
15038
15039 * xdisp.c (skip_vertically_backward): Avoid negative vpos values
15040 when calling skip_to for continued lines.
15041
15042 * dispnew.c (change_frame_size_1): Set frame garbaged.
15043
15044 * xterm.c (expose_window): Check enabled_p of rows.
15045
15046 * xdisp.c (redisplay_internal): Compare line heights before and
15047 now for redisplay optimization 2 (hit).
15048 (display_line): Set this_line_pixel_height.
15049
15050 * xterm.c (x_draw_row_borders): Use FRAME_MODE_LINE_HEIGHT height
15051 value.
15052 (x_clip_to_row): Use MATRIX_ROW_VISIBLE_HEIGHT. Simplified.
15053 (do_line_dance): Simplified and pixel corrected.
15054
15055 * dispnew.c (scrolling_window): Simplified.
15056
15057 * xterm.c (x_draw_3d_border): Inset rectangle by line width.
15058
15059 * dispnew.c (update_window): Add FRAME_MODE_LINE_BORDER_WIDTH
15060 to mode line row->x.
15061
15062Wed Aug 20 11:23:28 1997 Gerd Moellmann <gerd@acm.org>
15063
15064 * xterm.c (x_get_char_font_and_encoding): Don't let fontset
15065 override font of face.
15066 (draw_glyphs): Correct return value.
15067 (XTclear_end_of_line): Compare differently with output cursor
15068 position.
15069 (x_draw_hollow_cursor): 2 parameters, window and row.
15070
15071 * dispnew.c (update_window_line): If rows have different height
15072 or y, write entire line.
15073
f28eba7b 15074 * xdisp.c (compute_line_metrics): Reset max_ascent and max_descent
26901792
DL
15075 of info struct.
15076
427ec082 15077 * xfaces.c (Fset_face_attribute_internal): Don't call
26901792
DL
15078 frame_update_line_height.
15079 (merge_faces): Don't use default font if new font has different
15080 size.
15081
15082Tue Aug 19 14:38:05 1997 Gerd Moellmann <gerd@acm.org>
15083
15084 * xterm.c (x_display_and_set_cursor): Use FONT_WIDTH if width
d7d0dac0 15085 unknown. Some fonts have min_width zero.
26901792 15086 (draw_glyphs): Don't draw underlines to the end of the display
d7d0dac0 15087 line if face is merely extended to that point.
26901792 15088 (draw_glyphs): Don't assume background is filled if
d7d0dac0 15089 just_foreground_p but extending to end of line.
26901792
DL
15090
15091 * xterm.c (XTclear_end_of_line): Clip only to display_height - 1
15092 for partially visible last lines.
15093 (x_clip_to_row): Ditto.
15094 (x_clip_to_row): Clip to display_height-1 if y + line_height >
15095 display_height since line_height is really a line distance.
15096 (x_display_and_set_cursor): If cursor on padding glyph, use
15097 min_bounds pixel width.
15098
15099Mon Aug 18 09:39:18 1997 Gerd Moellmann <gerd@acm.org>
15100
15101 * xterm.c (x_clip_to_row): Height value was 1 too large.
15102 (XTclear_end_of_line): Clip to display area.
15103
15104 * xfns.c (x_figure_window_sizes): Add trunc border width
15105 to frame pixel width.
15106
15107 * xdisp.c (next_display_element): Don't display overlay strings
15108 within invisible text.
427ec082 15109 (skip_vertically_backward): Skip display lines.
26901792
DL
15110
15111Sat Aug 16 13:13:32 1997 Gerd Moellmann <gerd@acm.org>
15112
15113 * xdisp.c (x_consider_frame_titie): Don't pad with blanks.
15114
15115 * xdisp.c (next_display_element): Next invisible
15116 text check position computed differently.
15117
15118 * dispextern.h (struct display_cursor): last_invisible_text_pos
15119 and display_ellipsis_for_invisible_p removed.
15120
15121 * xdisp.c (next_display_element): Set last_invisible_text_pos
15122 to the last position at which invisible text was found. Don't
15123 decrement cursor.pos for newlines and cr with ellipsis. Set
427ec082 15124 dpvec for `...' due to invisible text directly.
26901792
DL
15125 (redisplay_internal): Don't assert that cursor is at PT after
15126 skip_to. It may be in invisible text.
15127
427ec082 15128 * keyboard.c (make_lispy_event): For mouse clicks, use
26901792
DL
15129 x_y_to_hpos_vpos.
15130
427ec082 15131 * xdisp.c (next_display_element): Call get_overlays_for_cursor when
26901792
DL
15132 next_overlay_pos is reached. Use limit cursor.pos + 100 when
15133 checking for invisible text.
15134
15135 * xterm.h (WINDOW_COL_PIXEL_X etc.) Removed.
15136
15137 * dispextern.h (WINDOW_TO_FRAME_HPOS/VPOS): Moved to dispnew.c
15138
d7d0dac0 15139 * xfns.c (x_contour_region): Use pixel coordinates from window
26901792
DL
15140 cursor instead of WINDOW_TO_FRAME_H/VPOS.
15141
15142 * dispextern.h (FRAME_TO_WINDOW_HPOS, FRAME_TO_WINDOW_VPOS):
15143 Removed.
15144
15145 * dispnew.c (frame_to_window_hpos, frame_to_window_vpos): Removed.
15146
15147 * xterm.c (x_y_to_hpos_vpos): Get hpos/vpos from window relative
15148 pixel coordinates.
15149 (note_mouse_highlight): Use it.
15150
15151 * xdisp.c (echo_area_display): Ignore calls for terminal frames
15152 under a window system.
15153
427ec082 15154 * dispnew.c (adjust_frame_glyphs): Call redraw_frame if
26901792 15155 necessary.
427ec082 15156 (update_window_line): Add width of face padding glyph to
26901792
DL
15157 displayed widths of rows.
15158
15159 * xterm.c (x_display_and_set_cursor): Set clipping after
15160 erasing cursor.
427ec082
SS
15161
15162 * window.c (Fset_window_configuration): Free only those
26901792
DL
15163 window matrices not reused.
15164 (get_leaf_windows): Build vector of leaf windows.
15165 Corrupted archive restored from v77.
15166
f28eba7b 15167 * xdisp.c (display_string): Stop at >= last_visible_x if truncating
26901792
DL
15168 like display_line does.
15169
15170 * xdisp.c (display_mode_line): Don't hscroll mode line.
15171
15172 * xterm.c (draw_glyphs): Wrong run_width computed for horiz. split
15173 windows.
15174 (x_scroll_bar_create): #3039 Clear area below scroll bar to remove
15175 garbage between mode lines when splitting windows horiz.
15176
15177 * dispnew.c (direct_output_for_insert): Bug fix.
15178
15179 * dispextern.h (struct display_cursor): New member string_length.
15180
15181 * xdisp.c (next_display_element): Return padding spaces.
f28eba7b 15182 (init_string_cursor): Take precision and field_width
26901792
DL
15183 (display_string): Use string cursor, skip over invisible text.
15184
15185Thu Aug 14 10:41:41 1997 Gerd Moellmann <gerd@acm.org>
15186
15187 * xterm.c (x_clip_to_row): Clip to partially visible lines.
15188 (x_display_and_set_cursor): Call it.
15189 (draw_glyphs): Call it
15190 (draw_bitmap): Call it.
15191
427ec082 15192 * dispnew.c (adjust_frame_glyphs): Optimize frame garbaging.
26901792
DL
15193 (allocate_leaf_matrix): Return flags.
15194 (row_equal_p): Compare enabled_p.
15195
15196 * xterm.c (x_erase_phys_cursor): Set phys_cursor_on_p to 0
15197 for type == -1.
15198
15199 * xterm.c (x_display_and_set_cursor): Bar cursor 1 pixel taller.
427ec082 15200 (draw_glyphs): Clip height one pixel taller.
26901792 15201
427ec082 15202 * dispnew.c (direct_output_for_insert): Give up for hscrolled
26901792
DL
15203 mini window.
15204
f28eba7b 15205 * xdisp.c (display_line): Don't scroll mini prompt.
26901792 15206
427ec082
SS
15207 * xdisp.c (echo_area_display): Call update_single_window if
15208 possible.
26901792
DL
15209
15210 * dispnew.c (update_window_line): Call scrolling_window.
f28eba7b 15211 (scrolling_window): Work on enabled desired lines only.
26901792
DL
15212 (update_single_window): Update a single window like update_frame
15213 does for all windows.
427ec082 15214 (update_window, update_window_tree): Additional argument
26901792
DL
15215 no_scrolling_p.
15216 (update_frame): Pass no_scrolling_p to update_window_tree.
15217 (update_window): Don't call scrolling_window if no_scrolling_p.
15218
15219 * xterm.c (x_erase_phys_cursor): Do nothing if type == -1.
427ec082
SS
15220 Erase under hollow cursor.
15221 (x_display_and_set_cursor): Do nothing if cursor glyph row
26901792
DL
15222 not enabled. Draw bar cursor 1 pixel smaller.
15223
f28eba7b 15224 * dispnew.c (adjust_frame_glyphs): Don't set frame garbaged
26901792
DL
15225 since update will follow soon.
15226
15227 * xdisp.c (echo_area_display): Unitialized variable.
15228
f28eba7b 15229 * xterm.c (draw_bitmap): Previously draw_truncation; draw
26901792
DL
15230 overlay arrow bitmap.
15231
f28eba7b 15232 * xdisp.c (display_line): For truncated lines, consider everything
427ec082 15233 up to the final \n as part of the line for cursor positioning.
26901792 15234
f28eba7b
SM
15235 * xterm.c (draw_truncation): Take FRAME_X_TRUNC_WIDTH into account.
15236 (x_after_update_window_line): Clear trunc marks.
26901792
DL
15237
15238 * xterm.h (FRAME_X_TRUNC_WIDTH).
15239
f28eba7b 15240 * frame.h (FRAME_TRUNC_WIDTH): Width of area at the left margin
26901792
DL
15241 of a window reserved for truncation mark.
15242
427ec082 15243 * dispextern.h: Take FRAME_TRUNC_WIDTH into account.
26901792
DL
15244
15245 * dispnew.c (update_window_line): Call after_update_windwo_line-
427ec082 15246 hook.
26901792
DL
15247
15248 * xdisp.c (display_line): Set overlay_arrow_p in row.
15249
15250 * dispextern.h (struct glyph_row): New flag overlay_arrow_p.
15251
15252 * xterm.c (x_after_update_window_line): Draw truncation marks.
15253
15254 * xdisp.c (display_line): Insert truncation for lines with
15255 current_x > 0.
15256
15257 * xterm.c (x_draw_row_borders): Convert y to frame coords.
15258 Correct y by 1.
15259 (x_display_cursor): Use default font width if width not
427ec082 15260 known.
26901792 15261
f28eba7b 15262 * xdisp.c (echo_area_display): Set row->y.
26901792
DL
15263
15264 * dispnew.c (set_window_cursor_after_update): Don't assume
15265 all rows are enabled.
15266
15267 * xdisp.c (skip_in_display_line_to): Test cursor.position instead
15268 of cursor.pos.
15269 (skip_in_display_line_to): Check cursor.position after call to
15270 next_display_element.
15271
427ec082 15272 * dispextern.h (CURSOR_AT_P): Test if cursor has reached
26901792
DL
15273 buffer position.
15274
15275 * xdisp.c (display_line): Set row->y here.
15276 (skip_in_display_line_to): Test for to_pos after all glyphs
15277 have been added to hpos so that hpos is at the end of all
15278 glyphs for to_pos.
15279 (start_display): Remove assertion.
15280
d7d0dac0 15281 * dispnew.c (direct_output_forward_char): Bug fix, = instead of ==.
26901792
DL
15282 (update_window): Don't set row->y here.
15283
15284 * xdisp.c (next_display_element): Don't translate control chars
15285 from display table entries.
15286
427ec082 15287 * dispnew.c (direct_output_for_insert): Set cursor before
26901792
DL
15288 update end to prevent cursor flickering. Revert changes to
15289 setting cursor.endpos.
15290
15291Wed Aug 13 10:46:12 1997 Gerd Moellmann <gerd@acm.org>
15292
15293 * dispnew.c (direct_output_for_insert): Don't set cursor.endpos
15294 to PT because this prevents multi-byte characters from being
15295 recognized.
15296
427ec082
SS
15297 * xdisp.c (skip_to, display_line): Advance cursor at end of
15298 truncated line.
26901792
DL
15299
15300 * xterm.c (x_draw_3d_borders): Use CapRound. Struct rect
15301 replaced by XRectangle.
15302
d7d0dac0 15303 * dispnew.c (scrolling_window): New method.
26901792
DL
15304
15305 * xterm.c (do_line_dance): New implementation, new method.
427ec082 15306
26901792
DL
15307 * xdisp.c (draw_glyphs): Draw truncation bitmaps. Clip to
15308 visible part of line.
15309
15310 * dispnew.c (update_window_line): Fill inverse video lines
15311 with infinite width space.
15312 (update_window): Handle completely empty matrices.
15313 (set_window_cursor_after_update): Bug fix.
15314
427ec082 15315 * xterm.c (draw_glyphs): Stop drawing at right window end.
26901792
DL
15316
15317 * dispnew.c (update_window_line): Don't ignore spaces, don't
15318 fill with spaces.
15319
15320 * xdisp.c (compute_line_metrics): Stop adding glyph widths with
15321 the first glyph having width 0.
15322
15323 * xterm.c (draw_glyphs): Let a glyph pixel with of 0 denote
427ec082 15324 a glyph that extends to the end of the line.
26901792
DL
15325
15326 * xdisp.c (display_line): Insert one padding glyph
15327
15328 * xdisp.c (skip_in_display_line_to): Don't subtract shift left
15329 amount from info.current_x.
15330 (display_line): Ditto.
15331
15332 * dispnew.c (direct_output_for_insert): Correct use of cursor.x.
15333 (change_frame_size_1): Correct cursor.x if frame gets too small.
15334 (update_window_line): Start at row->x.
15335
15336 * xdisp.c (redisplay_internal): Correct cursor.x (everwhere
15337 in xdisp.c).
15338
15339 * xterm.c (set_output_cursor): Use window relative X/Y.
15340 (global): Use window relative output cursor x/y.
15341 (draw_glyphs): Remove y param. Pass window relative x/y.
15342
15343 * dispnew.c (update_window): Start rows at start_y.
15344 (update_window): Don't try scrolling because it wouldn't work
15345 with variable height lines, anyway.
15346
15347 * dispextern.h (struct glyph_row): Remove shift_left_by,
15348 add x.
15349
15350 * window.h: (struct window): New member start_y.
15351
15352 * window.c (replace_window): Initialize start_y.
15353 (make_window): Ditto.
15354
15355Tue Aug 12 14:53:04 1997 Gerd Moellmann <gerd@acm.org>
15356
15357 * xterm.c (draw_glyphs): Clip rows that would paint over
427ec082 15358 the mode line.
26901792 15359
427ec082
SS
15360 * dispnew.c (update_window): Take mode line border into
15361 account.
26901792
DL
15362
15363 * xterm.h (FRAME_MODE_LINE_BORDER_WIDTH): Number of pixels
427ec082 15364 of border around mode line.
26901792
DL
15365
15366 * xterm.c (x_draw_row_borders): Bug fix.
15367 (x_erase_phys_cursor): Set pyhs_cursor.x/y before calling
15368 drawing functions.
15369
15370 * xterm.c (x_draw_row_border): Experimental; draw 3d borders
427ec082 15371 around modeline instead of inverting it.
26901792 15372
427ec082 15373 * xterm.c (glyph_to_pixel_coords): Use current matrix.
26901792
DL
15374
15375 * dispnew.c (buffer_posn_from_coords): Use SKIP_TO. Now takes
15376 window relative pixel coordinates as arguments.
15377
15378 * keyboard.c (make_lispy_event): Use BUFFER_POSN_FROM_COORDS
15379 with window relative pixel coordinates. Use GLYPH_TO_PIXEL_-
15380 COORDS mit new arguments.
15381
15382Mon Aug 11 12:32:34 1997 Gerd Moellmann <gerd@acm.org>
15383
15384 * xdisp.c (start_display): Use SKIP_TO instead of SKIP_IN-
427ec082 15385 DISPLAY_LINE.
26901792
DL
15386
15387 * keyboard.c (make_lispy_event): WINDOW_FROM_COORDINATES with
15388 pixel coords.
15389 (make_lispy_movement): Same.
15390
15391 * xterm.c (note_mouse_highlight): Use WINDOW_FROM_COORDINATES
15392 with new parameter meaning.
15393
15394 * window.c (Fcoordinates_in_window_p): Convert Lisp params
15395 from canon units to pixels.
15396 (coordinates_in_window): Pixel based.
15397 (Fcoordinates_in_window_p): Convert result pixel values back
15398 to canonical units.
15399
15400 * window.h: phys_cursor_ascent + descent instead of height.
15401
15402 * xterm.c (XTget_char_info): Use per char metrics for multi-byte
d7d0dac0 15403 chars with charset width 1.
26901792
DL
15404
15405 * dispnew.c (direct_output_for_insert): Set updated_row.
15406
15407Sat Aug 9 12:11:44 1997 Gerd Moellmann <gerd@acm.org>
15408
15409 * dispextern.h (struct glyph): Padding flag removed.
15410
15411Tue Aug 5 09:59:08 1997 Gerd Moellmann <gerd@acm.org>
15412
15413 * sysdep.c (reset_sys_modes): cursor_to with 4 params.
15414
15415 * keyboard.c (interrupt_signal): Cursor_to with 4 params.
15416
15417 * dispnew.c (update_window_line): Use pixels.
15418
15419 * xdisp.c (compute_line_metrics): Correct pixel_width by
15420 shift_left_by.
15421
15422 * dispextern.h (struct glyph_row): FIRST_SHIFTED_LEFT_GLYPH
427ec082 15423 removed. Remove references to it everywhere. Reverse_p in
26901792
DL
15424 glyph_row -> right_to_left_p. Change references to it.
15425
15426Mon Aug 4 18:09:27 1997 Gerd Moellmann <gerd@acm.org>
15427
15428 * dispnew.c (direct_output_for_insert): Use INSERT_GLYPHS.
15429
15430 * xterm.c (XTinsert_glyphs): Implement it.
15431
15432 * term.c (insert_glyphs): UPDATING_FRAME may be NULL in case
15433 of a call from DIRECT_OUTPUT_FOR_INSERT.
15434
15435 * window.h (struct cursor_pos): Keeps both matrix positions
15436 and pixel positions.
15437 (struct window): Use it.
15438
15439 * dispnew.c (direct_output_for_insert): New version.
15440
15441 * xdisp.c (redisplay_internal): Don't do anything if it has
15442 already be done directly.
15443
15444 * keyboard.c (command_loop_1): Call DIRECT_OUTPUT_FOR_INSERT
15445 for any character.
15446
15447Thu Jul 31 15:39:10 1997 Gerd Moellmann <gerd@acm.org>
15448
15449 * xdisp.c (echo_area_display): Use new DISPLAY_STRING.
15450
15451Wed Jul 30 12:18:03 1997 Gerd Moellmann <gerd@acm.org>
15452
15453 * dispextern.h (struct glyph_row): MAX_ASCENT, MAX_DESCENT.
15454 (struct glyph): ASCENT, DESCENT.
15455 (MATRIX_ROW_PIXEL_HEIGHT): Pixel height of row.
15456 (GLYPH_PIXEL_HEIGHT): Pixel height of glyph.
15457
15458 * xterm.c (XTget_display_info): Correct tab computation.
15459
15460 * term.c (get_display_info): Correct tab computation.
15461
15462 * dispextern.h (struct display_cursor): WHAT_FOUND, SOURCE_OBJECT.
15463 Renamed from CHAR_CURSOR.
15464
15465Tue Jul 29 12:52:40 1997 Gerd Moellmann <gerd@acm.org>
15466
15467 * xdisp.c (display_text_line): Mostly pixel oriented.
15468
15469 * dispextern.h (struct glyph): BOX_WIDTH -> PIXEL_WIDTH.
15470
15471 * term.c (append_intermediate_glyph): Generate padding glyphs.
15472
15473 * xdisp.c (display_text_line): More into final direction.
15474
15475 * xterm.c (XTget_char_info): Use WHAT field of CHAR_INFO.
15476 (XTget_char_info): Use tabs as multiples of spaces.
15477
15478 * term.c (get_char_info): Use WHAT field of CHAR_INFO.
15479 Use tabs as multiples of spaces.
15480
15481 * dispextern.h (struct char_info ): WHAT field.
15482
15483 * term.c (encode_terminal_code): Don't use GLYPH_CHAR, use
d7d0dac0 15484 FAST_GLYPH_CHAR instead because GLYPH_CHAR won't remove faces.
26901792
DL
15485
15486Mon Jul 28 14:23:06 1997 Gerd Moellmann <gerd@acm.org>
15487
15488 * dispnew.c (init_char_info): Correct TAB_WIDTH to a reasonable
15489 value.
15490 (init_char_info): Initialize with glyph row.
15491
15492 * term.c (get_char_info): Check WANT_ELLIPSIS_P.
15493
15494 * xterm.c (XTget_char_info): Check WANT_ELLIPSIS_P.
15495
15496 * dispextern.h (struct char_info ): GLYPH_ROW for intermediate
15497 glyphs.
15498
15499 * dispnew.c (init_char_info): Init GLYPH_ROW to NULL. CHAR_CURSOR
15500 moved to xdisp.c.
15501
15502 * xdisp.c (display_text_line): Use CHAR_CURSOR.
15503
15504 * xterm.c (x_append_intermediate_glyph): Intermediate glyph
15505 generation.
15506 (XTget_char_info): Ditto.
15507
15508 * term.c (get_char_info): Intermediate glyph generation.
15509 (append_intermediate_glyph): Ditto.
15510
15511Sun Jul 27 18:57:24 1997 Gerd Moellmann <gerd@acm.org>
15512
427ec082 15513 * dispnew.c (compute_char_cursor_face): Compute the face for a
26901792
DL
15514 CHAR_CURSOR.
15515 (init_char_cursor): Initialize a CHAR_CURSOR.
15516 (get_char_and_advance): Get next character to display.
15517
15518 * dispextern.h (struct char_cursor): Cursor for iterating over
15519 display text of CURRENT_BUFFER.
15520
15521Sat Jul 26 13:33:03 1997 Gerd Moellmann <gerd@acm.org>
15522
15523 * term.c (get_char_info): Set MAX_PIXEL_WIDTH in CHAR_INFO.
15524
15525 * dispextern.h (struct char_info ): Use LISP_CHAR_TABLE for DP.
15526 New member MAX_PIXEL_HEIGHT.
15527
15528 * xterm.c (x_per_char_metric): Get per character metrics.
15529 (XTget_char_info): More cases covered.
15530
15531 * term.c (get_char_and_info): Get next character and character
15532 display information.
15533 (get_char_info): Get character display information.
15534
15535 * dispextern.h: Character display information.
15536
427ec082 15537 * xterm.c (x_get_char_font_and_encoding): Get font and
26901792
DL
15538 encode character.
15539 (XTget_char_info): Get display information about a character.
15540
15541Wed Jul 23 16:50:18 1997 Gerd Moellmann <gerd@acm.org>
15542
15543 * dispextern.h (WINDOW_DISPLAY_MODE_LINE_HEIGHT): Height is
15544 zero if window is mini-window.
15545
15546 * xdisp.c: Include xterm.h or w32term.h for FRAME_LINE_HEIGHT.
15547 (try_window): DISPLAY_TEXT_LINE as long as Y < DISPLAY_HEIGHT.
15548
427ec082 15549 * dispnew.c (assign_row): Assign row pixel height.
26901792
DL
15550 (clear_glyph_row): Clear pixel height.
15551 (update_window): Use PIXEL_HEIGHT.
15552
15553 * xdisp.c (display_string): Set row pixel height temporarily.
15554 (display_text_line): Ditto.
15555
427ec082 15556 * dispextern.h (GLYPH_PIXEL_WIDTH):
26901792
DL
15557 (GLYPH_PIXEL_HEIGHT): Get glyph pixel dimension.
15558
427ec082 15559 * frame.h (FRAME_DEFAULT_PIXEL_LINE_HEIGHT): Get height of
26901792
DL
15560 line in default font.
15561 (FRAME_DEFAULT_GLYPH_PIXEL_WIDTH): Get width of character
15562 in default font.
15563 (FRAME_MODE_LINE_PIXEL_HEIGHT): Get height of mode line.
15564
15565 * xterm.h (FRAME_MODE_LINE_HEIGHT): Return height of mode line
15566 in pixels.
15567
15568 * dispnew.c (allocate_leaf_matrix): Use window pixel macros.
15569
15570 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH):
427ec082
SS
15571 (WINDOW_DISPLAY_PIXEL_HEIGHT):
15572 (WINDOW_DISPLAY_MODE_LINE_HEIGHT):
15573 (WINDOW_DISPLAY_PIXEL_HEIGHT_WITHOUT_MODE_LINE):
15574 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X):
15575 (WINDOW_DISPLAY_RIGHT_EDGE_PIXEL_X):
15576 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y):
26901792
DL
15577 (WINDOW_DISPLAY_BOTTOM_EDGE_PIXEL_Y): Macros to get various
15578 pixel values related to windows.
15579
15580Mon Jul 21 12:22:02 1997 Gerd Moellmann <gerd@acm.org>
15581
15582 * xterm.c (XTflash): Flash last line of frame.
15583
15584 * dispextern.h (cursor_in_echo_area): Extern declaration.
15585
15586 * xterm.c (dumpglyphs): 8-bit version to test if my Xserver
d7d0dac0 15587 freezes stem from 16-bit functions.
26901792
DL
15588
15589 * xterm.c (x_display_and_set_cursor): Don't display hollow
15590 cursor in mini windows.
15591
15592 * window.c (replace_window): Initialize PHYS_CURSOR_TYPE.
15593 (make_window): Ditto.
15594
15595 * xterm.c (x_erase_phys_cursor): Erase cursor image.
15596 (x_display_and_set_cursor): Merged version of X_DISPLAY_BOX_CURSOR
15597 and X_DISPLAY_BAR_CURSOR.
15598 (x_display_cursor): Use it.
15599 (x_update_window_cursor): Use it.
15600
15601 * xdisp.c (display_text_line): Set cursor for window even if not
d7d0dac0 15602 selected.
26901792
DL
15603
15604 * xterm.c (x_display_bar_cursor): Use HPOS and VPOS instead
15605 of X and Y to denote matrix positions.
15606 (x_display_cursor): Ditto.
15607
15608 * dispnew.c (scrolling_window): Scrolling for windows.
15609
15610Wed Jul 16 13:37:51 1997 Gerd Moellmann <gerd@acm.org>
15611
15612 * dispnew.c (build_frame_matrix): Work on windows with update
15613 flag set.
15614 (build_frame_matrix_from_window_tree): Ditto.
15615 (build_frame_matrix_from_leaf_window): Ditto.
15616
15617 * xdisp.c (echo_area_display): Set MUST_BE_UPDATED_P instead of
15618 building frame matrix.
427ec082 15619 (redisplay_internal): Set window update flags instead of
26901792
DL
15620 building frame matrix.
15621
15622 * minibuf.c (read_minibuf): Set MUST_BE_UPDATED_P instead of
15623 building frame matrix.
15624
15625 * window.c (make_window): Initialize new members.
15626 (replace_window): Ditto.
15627
15628 * xfns.c (Fx_create_frame): Don't set PHYS_CURSOR_X to -1.
15629 I don't believe this is really necessary.
15630
15631 * dispnew.c (build_frame_matrix_from_leaf_window): Determine
427ec082 15632 border glyph once.
26901792
DL
15633
15634Tue Jul 15 13:58:33 1997 Gerd Moellmann <gerd@acm.org>
15635
427ec082 15636 * window.c (mark_window_cursors_off): Mark all cursors in
26901792
DL
15637 window tree off.
15638
427ec082 15639 * xterm.c (x_display_box_cursor): Window paraemter. Use
26901792
DL
15640 window matrix.
15641 (glyph_to_pixel_pos): Convert matrix pos -> pixels.
15642 (pixel_to_glyph_pos): Convert pixel pos -> matrix pos.
15643 (x_update_cursor): Work on windows.
15644 (x_display_bar_cursor): Ditto.
15645 (x_draw_single_glyph): Ditto.
15646
15647 * xterm.h: Prototype for X_DISPLAY_CURSOR.
15648
15649 * xterm.c (XTcursor_to): Void return type. Test for
d7d0dac0 15650 UPDATED_WINDOW. Call x_display_cursor with window.
26901792 15651 (x_display_cursor): Void return type. Window instead of frame
d7d0dac0 15652 parameter.
26901792 15653
d7d0dac0 15654 * window.h (WINDOW_RIGHTMOST_P, WINDOW_TOPMOST_P): Use functions below.
26901792
DL
15655
15656 * window.c (window_rightmost_p, window_topmost_p): Based on
15657 window tree.
15658
15659 * dispnew.c (adjust_frame_message_buffer): Allocate with
d7d0dac0 15660 FRAME_MESSAGE_BUF_SIZE.
26901792
DL
15661
15662 * window.h: PHYS_CURSOR_.* added.
15663
15664 * frame.h (struct frame): Cursor information removed.
15665
15666 * frame.h (FRAME_SCROLL_BAR_WIDTH): Removed because unused.
15667 (FRAME_WINDOW_WIDTH_ARG): Don't add scroll bar width.
15668
15669 * window.h (WINDOW_LEFT_MARGIN): Remove FRAME_LEFT_SCROLL_BAR.
15670
15671 * window.c (window_internal_width): Scroll bars no longer
15672 part of window.
15673
d7d0dac0 15674 * xterm.c (XTclear_end_of_line): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
26901792 15675
d7d0dac0 15676 * xfns.c (x_set_scroll_bar_width): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
26901792
DL
15677
15678 * xdisp.c (echo_area_display): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
15679 (redisplay_internal): Ditto.
15680 (redisplay_window): Ditto.
15681 (redisplay_window): Ditto.
15682 (display_text_line): Ditto.
15683 (display_mode_line): Ditto.
15684
15685 * minibuf.c (read_minibuf): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
15686
15687 * dispnew.c (set_cursor_to): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
15688 (direct_output_for_insert): Ditto.
15689 (direct_output_forward_char): Ditto.
15690 (update_frame_1): Ditto.
15691
15692Mon Jul 14 12:30:03 1997 Gerd Moellmann <gerd@acm.org>
15693
15694 * dispnew.c (updated_window): Set by UPDATE_WINDOW to the window
d7d0dac0 15695 being updated.
26901792
DL
15696 (update_window): Set and clear it.
15697
15698 * dispnew.c (update_window_line, update_window, scrolling_window):
15699 First versions.
15700
15701 * dispnew.c (build_frame_matrix_from_leaf_window): Add vertical
15702 bar for window borders.
15703 (fill_up_glyph_row_area_with_spaces): Fill an area of a row
15704 with spaces.
15705 (fill_up_glyph_row_with_spaces): Call above function.
15706
15707 * xdisp.c (display_text_line): Don't add vertical bar for
15708 window borders.
15709 (display_string): Ditto.
15710
15711 * window.c (make_window): Init CURSOR_VPOS/HPOS.
15712 (replace_window): Ditto.
15713
15714 * xterm.c (XTwrite_glyphs): Use selected window cursor position.
15715
15716 * xfns.c (Fx_contour_region): Use selected window cursor position.
15717 (Fx_uncontour_region): Ditto.
15718 (Fx_select_region): Ditto.
15719
15720 * frame.c (make_frame): Remove CURSOR_X/Y.
15721
15722 * xdisp.c (redisplay_internal): Use window cursor position.
15723
15724 * dispnew.c (update_frame_1): Use cursor position of selected
15725 window.
15726 (change_frame_size_1): Ditto.
15727
15728 * xterm.c (XTupdate_begin): Set CURS_X/Y from selected window.
15729 (XTwrite_glyphs): Use cursor position of selected window.
15730
d7d0dac0 15731 * xfns.c (x_set_scroll_bar_width): Set cursor pos of selected window.
26901792
DL
15732
15733 * dispnew.c (set_cursor_to): Set window cursor position.
15734 (direct_output_for_insert): Use window cursor position.
15735 (init_display): Don't use frame cursor position.
15736
15737 * window.h: CURSOR_VPOS/HPOS added.
15738
15739 * frame.h (struct frame): CURSOR_X/Y removed.
15740 (FRAME_CURSOR_X): Removed.
15741 (FRAME_CURSOR_Y): Ditto.
15742
15743 * dispnew.c (direct_output_for_insert): LAST_POINT_X removed.
15744 (direct_output_forward_char): Ditto.
15745
d7d0dac0 15746 * xdisp.c (redisplay_internal): LAST_POINT_X and LAST_POINT_Y removed.
26901792
DL
15747
15748 * window.c (make_window): LAST_POINT_X and LAST_POINT_Y removed.
15749
15750 * window.h: LAST_POINT_X and LAST_POINT_Y removed.
15751
15752Sun Jul 13 14:18:24 1997 Gerd Moellmann <gerd@acm.org>
15753
15754 * xdisp.c: Bug fixes using SET_CURSOR with HPOS 0 instead
15755 of FRAME_LEFT_SCROLL_BAR_WIDTH.
15756
15757 * dispextern.h: Changed function names.
15758
15759 * dispnew.c (scrolling): Don't call SCROLLING_1 if WINDOW_SIZE
15760 < 2.
15761 (clear_window_matrices): Formerly two functions for desired
15762 and current matrix.
15763 (update_frame_1): Call CLEAR_DESIRED_MATRICES.
15764 (update_frame): Return return value from UPDATE_FRAME_1.
15765
15766Sat Jul 12 12:58:48 1997 Gerd Moellmann <gerd@acm.org>
15767
15768 * xdisp.c (try_window): Set WINDOW_END_VPOS with window relative
15769 LAST_TEXT_VPOS.
15770
15771 * frame.c (set_menu_bar_lines): Adjust matrices.
15772
15773 * dispnew.c (set_cursor_to): Set cursor position.
15774
15775 * minibuf.c (read_minibuf): Build frame matrix.
15776
15777 * xdisp.c (this_line_start_hpos): Renamed to
d7d0dac0
SM
15778 THIS_LINE_START_WINDOW_HPOS to make it clear that this is window
15779 relative.
26901792
DL
15780 (this_line_vpos): Renamed to THIS_LINE_WINDOW_VPOS for the same
15781 reason.
15782
427ec082 15783 * dispnew.c (build_frame_matrix): Don't clear rows of the
26901792
DL
15784 menu bar.
15785 (clear_window_records): Clear window rows.
15786 (clear_frame_records): Clear window and frame rows.
15787 (clear_glyph_matrix): Set all rows of a matrix to empty.
15788
d7d0dac0
SM
15789 * xdisp.c (echo_area_display): Parameter UPDATE_FRAME_P.
15790 Update frame if set.
26901792
DL
15791 (message2_nolog): Pass 1 to ECHO_AREA_DISPLAY. UPDATE_FRAME
15792 removed.
15793 (redisplay_internal): Pass 0 to ECHO_AREA_DISPLAY.
15794 (redisplay_internal): Build frame matrix before UPDATE_FRAME.
15795
15796 * dispnew.c (assign_row): Assign one glyph row to another.
15797 (mirrored_make_current): Use it.
15798 (mirror_make_current): Use it.
15799 (update_line): Rely on MIRRORED_MAKE_CURRENT to set flags and
15800 used counters for the current glyph row.
427ec082 15801
26901792
DL
15802
15803Fri Jul 11 13:16:50 1997 Gerd Moellmann <gerd@acm.org>
15804
15805 * lisp.h: Prototype for SCAN_BUFFER.
15806
15807 * xdisp.c (redisplay_windows): Simplified.
15808
15809 * dispnew.c (window_to_frame_vpos): Convert window to frame vpos
15810 with debug checks.
15811 (window_to_frame_hpos): Convert window to frame hpos with checks.
15812 (frame_to_window_vpos): Convert frame to window vpos with checks.
15813 (frame_to_window_hpos): Convert frame to window hpos with checks.
15814
15815 * dispextern.h: PRESERVE_OTHER_COLUMNS removed.
15816
15817 * dispnew.c: PRESERVE_OTHER_COLUMNS removed.
15818
15819 * xdisp.c (redisplay_internal): Another instance of
15820 DISPLAY_TEXT_LINE with window relative VPOS.
15821 (redisplay_internal): Remove PRESERVE_OTHER_COLUMNS.
15822
15823 * dispnew.c (init_desired_glyphs): Do it on window matrices,
15824 only.
15825
15826 * xdisp.c (try_window_id): Use CANCEL_WINDOW_LINE.
15827 (redisplay_internal): Ditto.
15828
15829 * dispnew.c (cancel_window_line): Use window matrix. Changed
15830 name to CANCEL_WINDOW_LINE.
15831
15832 * xdisp.c (try_window_id): Use DISPLAY_TEXT_LINE with window
15833 relative VPOS.
15834
427ec082
SS
15835 * dispextern.h (WINDOW_TO_FRAME_VPOS): Convert window vpos
15836 to frame vpos.
26901792
DL
15837 (WINDOW_TO_FRAME_HPOS): Convert window hpos to frame hpos.
15838 (FRAME_TO_WINDOW_VPOS): Convert frame vpos to window vpos.
15839 (FRAME_TO_WINDOW_HPOS): Convert frame hpos to window hpos.
15840
15841 * xdisp.c (try_window_id): Use ADJUST_WINDOW_CHARSTARTS with
15842 window relative VPOS.
15843 (redisplay_internal): Use ADJUST_WINDOW_CHARSTARTS with window
15844 relative VPOS.
15845
15846 * dispnew.c (adjust_window_charstarts): Use INCREMENT_GLYPH_-
15847 MATRIX_BUFFER_POSITIONS.
15848
15849 * xdisp.c (try_window_id): Use SCROLL_FULL_WIDTH_WINDOW.
15850
15851 * dispextern.h: Prototype for SCROLL_FULL_WIDTH_WINDOW.
15852
427ec082 15853 * dispnew.c (scroll_frame_lines): Make it work on window
26901792
DL
15854 matrix. Change name to scroll_full_width_window.
15855
15856 * xdisp.c (message2_nolog): Don't fwrite NULL message If
d7d0dac0 15857 NONINTERACTIVE.
26901792
DL
15858
15859Mon Jul 7 14:44:38 1997 Gerd Moellmann <gerd@acm.org>
15860
15861 * dispnew.c (init_desired_glyphs): Clear both frame matrix
427ec082 15862 and window matrices.
26901792
DL
15863 (adjust_window_charstarts): Use window matrix.
15864 (cancel_my_columns): Use window matrix.
15865 (direct_output_for_insert): Use window matrix, only.
15866
15867 * xdisp.c (display_glyphs): Extracted code from DISPLAY_STRING.
15868 (display_string): Call display_glyphs.
15869 (display_menu_bar_string): Display a string in a menu bar line.
15870 (display_menu_bar): Use DISPLAY_MENU_BAR_STRING.
15871 (display_text_line): Use window matrix.
15872 (try_window): Use window relative positions.
15873
15874Sun Jul 6 17:02:26 1997 Gerd Moellmann <gerd@acm.org>
15875
15876 * dispnew.c (adjust_frame_glyphs): Allocate window matrices from
d7d0dac0 15877 (0, 0).
26901792 15878 (allocate_leaf_matrix): Add FRAME_MENU_BAR_LINES to the height of
d7d0dac0 15879 top-most windows.
26901792
DL
15880
15881 * window.h (WINDOW_TOPMOST_P): Added.
15882
15883 * xdisp.c (echo_area_display): Use PREPARE_DESIRED_ROW.
15884 (redisplay_window): Ditto.
15885 (display_text_line): Ditto.
15886 (display_menu_bar): Ditto.
15887 (display_mode_line): Ditto.
15888 (display_mode_line): Use window matrix.
15889 (display_string): Use window matrix.
15890 (display_mode_element): Ditto.
15891 (echo_area_display): Don't display if frame has no pools yet.
15892 (echo_area_display): Work with window matrix for mini window.
15893 (redisplay_window): Use window marix for mini window.
15894 (display_text_line): Assume HPOS and VPOS are window relative and
d7d0dac0 15895 use that for DISPLAY_STRING.
26901792
DL
15896
15897 * dispextern.h: Prototype for prepare_desired_row.
15898
d7d0dac0 15899 * dispnew.c (prepare_desired_row): Replacement for GET_DISPLAY_LINE.
26901792
DL
15900
15901 * dispnew.c (adjust_window_charstarts): Always allocate window
15902 matrices.
15903 (clear_glyph_row): Only reset used counters and flags.
15904
15905Sat Jul 5 14:55:44 1997 Gerd Moellmann <gerd@acm.org>
15906
15907 * dispnew.c (scroll_frame_lines): Don't assume first scolled
427ec082 15908 line is non-empty.
26901792
DL
15909 (realloc_glyph_pool): Don't add 1 to the pool size.
15910 (adjust_glyph_matrix): Don't add 1 to pointers to glyph areas.
15911
15912 * dispnew.c (line_hash_code): Don't use null-glyph end marker.
15913 (line_draw_cost): Ditto.
15914 (update_line): Ditto.
15915 (update_line): Use SPACE_GLYPH.
15916 (count_blanks): Additional parameter LEN.
15917
15918 * xdisp.c (display_text_line): Use SPACE_GLYPH.
15919 (display_text_line): Don't add null-glyph end marker.
15920 (display_string): Use SPACE_GLYPH.
15921 (display_string): Don't use null-glyph end marker.
15922
15923 * term.c (clear_end_of_line): Use SPACE_GLYPH.
15924
15925 * dispnew.c (clear_glyph_row): Don't use null-glyph end markers.
15926 (fill_up_glyph_row_with_spaces): Ditto.
15927 (preserve_other_columns): Add SPACE_GLYPH at then end of desired
15928 rows, instead of null-glyphs.
15929 (direct_output_for_insert): Don't add null-glyph end marker.
15930
15931 * scroll.c (do_direct_scrolling): Change algorithm to construct
d7d0dac0 15932 vector of lines assigned. Call MIRRORED_LINE_DANCE:
26901792
DL
15933 (do_scrolling): Ditto.
15934
15935 * dispnew.c (mirror_line_dance): Mirror line assignments in a
d7d0dac0 15936 frame matrix in window matrices.
26901792 15937 (mirrored_line_dance): Do line assignments during scrolling.
d7d0dac0 15938 Maybe do corresponding assignments in window matrices.
26901792 15939 (check_window_matrix_pointers): Check that window rows and frame
d7d0dac0 15940 rows agree about glyph pointers.
26901792
DL
15941 (check_matrix_pointers): Ditto.
15942 (mirrored_make_current): Make a row of a desired matrix current;
d7d0dac0 15943 maybe mirror the operation in window matrices.
26901792 15944 (mirror_make_current): Make window desired matrix row current when
d7d0dac0 15945 frame matrix row was made current.
26901792
DL
15946
15947Fri Jul 4 13:27:46 1997 Gerd Moellmann <gerd@acm.org>
15948
15949 * dispnew.c (check_matrix_pointer_lossage): Check against
15950 pointer lossage in matrices.
15951 (get_glyph_matrix_row): Removed.
15952
15953 * scroll.c (do_scrolling): Simplified.
15954 (do_direct_scrolling): Simplified.
15955 (scrolling_1): Pass CURRENT_MATRIX instead of FRAME to
d7d0dac0 15956 DO_.*SCROLLING.
427ec082 15957
26901792
DL
15958
15959 * dispnew.c (ins_del_glyph_rows): Insert/delete rows in a matrix.
15960 (rotate_vector): Removed.
15961 (rotate_pointers): Removed.
15962 (scroll_frame_lines): Simplified.
15963
15964Thu Jul 3 13:54:21 1997 Gerd Moellmann <gerd@acm.org>
15965
15966 * dispextern.h (MATRIX_ROW_SWAP_CONTENTS): Removed.
15967
15968 * dispnew.c (increment_glyph_matrix_buffer_positions): Does
15969 what the name says.
15970 (clear_glyph_row): Make a glyph row structure empty.
15971 (make_matrix_row_current): Make a glyph row current.
15972 (make_window_matrix_row_current): Perform analogous row swaps
15973 for window matrices.
15974 (update_line): Call make_matrix_row_current.
15975
15976Wed Jul 2 13:43:35 1997 Gerd Moellmann <gerd@acm.org>
15977
15978 * dispextern.h (SET_MATRIX_ROW_ENABLED_P): Better macro name.
15979 (SET_MATRIX_ROW_INVERSE_P): Better name and HIGHLIGHT_P ->
15980 INVERSE_P.
15981 (MATRIX_ROW_INVERSE_P): Former MATRIX_ROW_HIGHLIGHT_P.
15982 (struct glyph_row): HIGHLIGHT_P -> INVERSE_P
15983
15984 * all files: use above new names.
15985
15986 * dispnew.c (scroll_frame_lines): Simplified. Use
d7d0dac0 15987 SCROLL_GLYPH_MATRIX.
26901792 15988 (make_glyph_row_empty): Mark a glyph row empty.
427ec082 15989 (increment_glyph_row_buffer_positions): Increment
26901792
DL
15990 buffer positions in a glyph row.
15991 (increment_glyph_matrix_buffer_positions): Increment buffer
15992 positions in a range of rows.
15993 (scroll_glyph_matrix): Scroll a glyph matrix.
15994 (swap_glyphs_in_rows): Swap glyphs between rows.
15995 (swap_glyph_pointers): Swap pointers between rows.
15996 (glyph_row_slice_p): Return 1 if one row is a slice of another.
15997 (init_display): Initialize SPACE_GLYPH.
15998 (fill_up_glyph_row_areas_with_spaces): Fill up areas with
427ec082 15999 spaces.
26901792
DL
16000
16001Tue Jul 1 13:49:55 1997 Gerd Moellmann <gerd@acm.org>
16002
16003 * xterm.c (dumprectangle): Use vectors in glyph rows.
16004
16005 * xdisp.c (display_text_line): Use vectors in glyph rows.
16006 (display_string): Ditto.
16007
16008 * scroll.c (do_scrolling): Use vectors in glyph rows.
16009 (do_direct_scrolling): Ditto.
16010
16011 * alloc.c (mark_object): Use vectors in glyph rows.
16012 Mark for all frame types.
16013
16014 * dispnew.c (adjust_glyph_matrix): Use vectors to glyphs in
16015 glyph rows.
16016 (get_glyph_matrix_row): Ditto.
16017 (matrix_row): Ditto.
16018 (rotate_pointers): Ditto.
16019 (scroll_frame_lines): Ditto.
16020 (preserve_other_columns): Ditto.
16021 (cancel_my_columns): Ditto.
16022 (update_line): Ditto.
16023 (direct_output_for_insert): Ditto.
16024
16025 * dispextern.h (struct glyph_row): Use a vector of pointers
d7d0dac0 16026 instead of individual members. Use a vector of used counters.
26901792
DL
16027 (MATRIX_ROW_SWAP_CONTENTS): Use vectors.
16028 (MATRIX_ROW_GLYPH_START): Ditto.
16029 (MATRIX_ROW_GLYPH_END): Ditto.
16030 (MATRIX_ROW_USED): Ditto.
16031 (MATRIX_ROW_SET_USED): Ditto.
16032
16033 * dispnew.c (line_hash_code): Simplified.
16034
16035Mon Jun 30 20:39:38 1997 Gerd Moellmann <gerd@acm.org>
16036
16037 * dispnew.c: Prototype for ROTATE_VECTOR, ROTATE_POINTERS,
16038 CHANGE_FRAME_SIZE_1
16039 (preserve_other_columns): Void return.
16040 (cancel_my_columns): Void return type.
16041 (scrolling): Int return type.
16042 (do_pending_window_change): Void return type.
16043 (change_frame_size): Ditto.
16044 (bitch_at_user): Ditto.
16045 (init_display): Ditto.
16046 (syms_of_display): Ditto.
16047
16048 * dispextern.h: add prototypes for REDRAW_FRAME,
d7d0dac0
SM
16049 REDRAW_GARBAGED_FRAMES, CANCEL_LINE, CLEAR_FRAME_RECORDS,
16050 INIT_DESIRED_GLYPHS, SCROLL_FRAME_LINES, PRESERVE_OTHER_COLUMNS,
16051 ADJUST_WINDOW_CHARSTARTS, CANCEL_MY_COLUMNS,
16052 DIRECT_OUTPUT_FOR_INSERT, DIRECT_OUTPUT_FORWARD_CHAR,
16053 UPDATE_FRAME, SCROLLING, BUFFER_POSN_FROM_COORDS,
16054 DO_PENDING_WINDOW_CHANGE, CHANGE_FRAME_SIZE, BITCH_AT_USER,
26901792 16055 SIT_FOR, INIT_DISPLAY, SYMS_OF_DISPLAY,
427ec082 16056
26901792 16057 * dispnew.c (redraw_frame): FRAME_PTR -> struct frame. Return
d7d0dac0 16058 void.
26901792
DL
16059 (cancel_line): Return void.
16060 (clear_frame_records): Return void.
427ec082 16061
26901792
DL
16062 * dispextern.h (struct glyph): Remove GLYPH, add bit-fields.
16063 (SET_CHAR_GLYPH): Fill a character glyph.
16064 (SET_CHAR_GLYPH_FROM_GLYPH): Set a character glyph from a GLYPH.
16065 (GLYPH_FROM_CHAR_GLYPH): Construct a GLYPH from a character
427ec082 16066 glyph.
26901792
DL
16067 (CHAR_GLYPH_CHAR_CODE): Return character code of a glyph.
16068 (SET_CHAR_GLYPH_CHAR_CODE): Set character code of a glyph.
16069 (CHAR_GLYPH_FACE_ID): Return face id of a glyph.
16070 (SET_CHAR_GLYPH_FACE_ID): Set face id of a glyph.
16071 (CHAR_GLYPH_PADDING_P): Return padding flag of a glyph.
16072 (SET_CHAR_GLYPH_PADDING_P): Set padding flag.
16073 (CHAR_GLYPH_REVERSE_P): Return reversed flag.
16074 (SET_CHAR_GLYPH_REVERSE_P): Set reversed flag.
16075 (MATRIX_ROW_SWAP_CONTENTS): Swap pointers between rows.
16076
16077 * term.c (reassert_line_highlight): Check CHARS_WASTED == 0.
16078
16079 * window.h (struct window): Add comment that no Lisp data may
d7d0dac0 16080 come below CURRENT_MATRIX.
26901792
DL
16081
16082 * alloc.c (mark_object): Change window mark code to stop with
d7d0dac0 16083 member CURRENT_MATRIX.
26901792
DL
16084
16085Sat Jun 28 13:54:55 1997 Gerd Moellmann <gerd@acm.org>
16086
16087 * scroll.c (do_scrolling): Change algorithm to use pointers.
16088 (do_direct_scrolling): Ditto.
16089
16090 * dispnew.c (get_glyph_matrix_row): Use pointers stored in rows.
16091 (new_glyph_pool): Formerly new_FRAME_GLYPH_MATRIX.
16092 (free_glyph_pool): Formerly FREE_FRAME_GLYPH_MATRIX
16093 (realloc_glyph_pool): Formerly REALLOC_FRAME_GLYPH_MATRIX.
d7d0dac0 16094 Returns 1 if pool changed.
26901792
DL
16095 (matrix_row): Additional check for lost pointers to glyph rows.
16096 (compute_matrices): Additional parameter DIM_P set means that no
d7d0dac0
SM
16097 allocation should take place. Addtional parameter
16098 ANY_WINDOWS_CHANGED_P set if any windows matrix has changed.
26901792 16099 (compute_leaf_matrix): Additional parameter CHANGED_P set to 1
d7d0dac0
SM
16100 when window matrix changes. Additional parameter DIM_ONLY_P set
16101 to 1 to indicate that no allocation should take place.
26901792 16102 (adjust_frame_glyphs): Construct new glyph pools and glyph
d7d0dac0 16103 matrices. Optimize frame redraws.
26901792
DL
16104 (free_glyphs): Free pools.
16105 (check_glyph_memory): Check pools not freed.
16106 (rotate_pointers): Rotate pointers in a vector of glyph rows.
16107 (scroll_frame_lines): Change algorithm to use pointers.
16108 (update_line): Ditto.
16109
16110 * dispextern.h (struct glyph_row): Use pointers to areas in a row.
16111 (global): All macro names changed from prefix FRAME_MATRIX to
d7d0dac0 16112 MATRIX.
26901792
DL
16113
16114Fri Jun 27 14:51:15 1997 Gerd Moellmann <gerd@acm.org>
16115
16116 * dispextern.h (struct glyph_pool): Replacement for former
16117 FRAME_GLYPH_MATRIX.
16118 (struct glyph_matrix): No longer contains sizes of allocated
16119 areas.
16120
16121 * xdisp.c (redisplay_internal): Don't redisplay if frame has
16122 no glyph pools.
16123
16124 * frame.c (make_frame): Initialize pools.
16125
16126Thu Jun 26 00:00:55 1997 Gerd Moellmann <gerd@acm.org>
16127
427ec082 16128 * scroll.c (do_direct_scrolling): Don't assume that the
26901792
DL
16129 line moving algorithm has no intermediate steps.
16130 (do_scrolling): Ditto.
16131
16132 * Makefile.in (alloc.o): Add dependency dispextern.h.
16133
16134 * alloc.c: Include dispextern.h for glyph definitions.
16135
16136 * dispnew.c (get_glyph_matrix_row): Return 1 if ROW_INDEX
16137 is legal, return 0 otherwise.
16138
16139 * window.h: Add comment that windows are marked specially.
16140
16141 * alloc.c (mark_object): Mark windows specially.
16142
16143
16144Wed Jun 25 15:22:58 1997 Gerd Moellmann <gerd@acm.org>
16145
16146 * dispextern.h (struct glyph): Add member OBJECT
16147 referencing a Lisp object from which a glyph was drawn.
16148 Member TEXT_POSITION renamed POSITION.
16149 * xterm.c, xdisp.c, dispnew.c: Rename TEXT_POSITION -> POSITION.
16150
16151 * alloc.c: Include dispextern.h
16152 (mark_object): Mark objects referenced from glyphs.
16153
f28eba7b 16154 * frame.c (make_frame): Initialize DECODE_MODE_SPEC_BUFFER.
26901792
DL
16155
16156 * scroll.c (do_direct_scrolling): Remove TEMP_MATRIX.
16157 (do_scrolling): Ditto.
16158
427ec082 16159 * frame.h (struct frame): TEMP_MATRIX removed.
26901792
DL
16160 DECODE_MODE_SPEC_BUFFER added.
16161
16162 * window.h: TEMP_MATRIX removed.
16163
16164 * scroll.c: OPHYS_LINES removed.
16165
16166 * dispnew.c: OPHYS_LINES and OPHYS_LINES_LENGTH removed.
16167 FRAME_PTR -> struct frame *.
16168
16169 * termhooks.h: Prototypes for INSERT_GLYPHS_HOOK,
16170 WRITE_GLYPHS_HOOK, DELETE_GLYPHS_HOOK,
16171
16172 * term.c: Prototypes for INSERT_GLYPHS_HOOK,
16173 WRITE_GLYPHS_HOOK, DELETE_GLYPHS_HOOK,
16174
16175 * xdisp.c (redisplay_internal): Remove call to VERIFY_CHARSTARTS.
16176 (do_verify_charstarts): Removed.
16177
16178 * frame.c (Fmake_terminal_frame): Adjust glyphs.
16179 (Fdelete_frame): Free glyphs.
16180 (make_frame): Initialize matrix fields in frame.
16181
f28eba7b 16182 * config.in (PROTO): Added.
26901792 16183
f28eba7b 16184 * emacs.c (shut_down_emacs): Check glyph memory.
26901792
DL
16185
16186 * window.c (Fdelete_window): Free window matrices.
16187 (Fset_window_configuration): Ditto.
16188 (Fdelete_window): Adjust glyphs.
16189 (Fsplit_window): Ditto.
16190 (change_window_height): Ditto.
16191 (Fset_window_configuration): Ditto.
16192 (make_window): Initialize DESIRED_MATRIX and CURRENT_MATRIX.
16193 (replace_window): Reset DESIRED_MATRIX and CURRENT_MATRIX
16194
16195 * Makefile.in (window.o): Add dependency window.c -> dispextern.h
16196
16197 * window.c: Include dispextern.h
16198
16199 * scroll.c (do_scrolling): Use new glyphs.
16200 (do_direct_scrolling): Ditto.
16201
16202 * xdisp.c: Some function prototypes.
16203 (redisplay_internal): Don't do anything if matrices not yet set.
16204 (redisplay_internal): Use new glyphs.
16205 (try_window_id): Ditto.
16206 (copy_part_of_rope): Ditto.
16207 (display_text_line): Ditto.
16208 (display_menu_bar): Ditto.
16209 (display_mode_line): Ditto.
16210 (display_string): Ditto.
16211
16212 * xterm.c: Prototypes for some local functions.
16213 (dumpglyphs): Use new glyphs.
16214 (XTwrite_glyphs): Ditto.
16215 (dumprectangle): Ditto.
16216 (note_mouse_highlight): Ditto.
16217 (fast_find_position): Ditto.
16218 (show_mouse_face): Ditto.
16219 (x_draw_single_glyph): Ditto.
16220 (x_display_bar_cursor): Ditto.
16221 (x_display_box_cursor): Ditto.
16222 (x_new_font): Adjust glyphs when font change.
16223
16224 * term.c (clear_end_of_line): Use new glyphs.
16225 (write_glyphs): Ditto.
16226 (insert_glyphs): Ditto.
16227
16228 * Makefile.in (term.o): term.c depends on dispextern.h
16229
16230 * term.c: Include dispextern.h
16231
16232 * dispnew.c (direct_output_forward_char): Old glyph functions
427ec082 16233 removed, new inserted.
26901792
DL
16234 (line_hash_code): Use new glyphs.
16235 (line_draw_cost): Ditto
16236 (cancel_line): Ditto
16237 (clear_frame_records): Ditto.
16238 (init_desired_glyphs): Ditto.
16239 (get_display_line): Ditto
16240 (scroll_frame_lines): Ditto.
16241 (preserve_other_columns): Ditto.
16242 (adjust_window_charstarts): Ditto.
16243 (cancel_my_columns): Ditto.
16244 (direct_output_for_insert): Ditto.
16245 (update_frame): Ditto.
16246 (quit_error_check): Made empty.
16247 (scrolling): Use new glyphs.
16248 (count_blanks): Ditto.
16249 (count_match): Ditto.
16250 (update_line): Ditto.
16251 (init_display): Adjust glyphs initially.
16252 (change_frame_size_1): Adjust glyphs.
16253
16254 * dispextern.h: Old glyphs removed, new added.
16255
16256 * xfaces.c (min_char_bounds): Get smallest char in loaded fonts.
16257
16258 * xterm.h: Prototype for min_char_bounds.
16259
16260 * window.h (struct window): Remove old glyphs, add new.
16261
16262 * frame.h (struct frame): Remove old glyphs, add new.
427ec082 16263
26901792
DL
162641999-07-20 Dave Love <fx@gnu.org>
16265
16266 * buffer.c (syms_of_buffer): Make
16267 default-enable-multibyte-characters a user variable.
16268
162691999-07-14 Richard Stallman <rms@gnu.org>
16270
16271 * Version 20.4 released.
16272
162731999-07-14 Richard Stallman <rms@gnu.org>
16274
16275 * filelock.c (lock_file): Do nothing if purifying.
16276
162771999-07-10 Richard Stallman <rms@gnu.org>
16278
16279 * xterm.c (x_display_bar_cursor): Use the cursor-color
16280 to display the bar, not the cursor foreground pixel.
16281
162821999-07-09 Andrew Innes <andrewi@gnu.org>
16283
16284 * w32console.c (w32_use_full_screen_buffer): New variable.
16285 (syms_of_ntterm): Register it.
16286 (initialize_w32_display): Set initial frame size accordingly,
16287 respecting the LINES and COLUMNS environment variables if set.
16288
16289 * w32inevt.c (w32_console_read_socket): Use it.
16290
162911999-07-07 Kenichi Handa <handa@etl.go.jp>
16292
16293 * callproc.c (Fcall_process): Decide coding system for decoding
16294 after we set to the target buffer. If the output goes to a
16295 unibyte buffer, suppress character code conversion.
16296
16297 * fileio.c (Finsert_file_contents): If reading into a unibyte
16298 buffer, suppress character code conversion.
16299
16300 * process.c (create_process): If the output goes to a unibyte
16301 buffer, suppress character code conversion.p
16302
163031999-07-07 Andreas Schwab <schwab@gnu.org>
16304
16305 * xdisp.c (line-number-display-limit): Doc fix.
16306
163071999-07-05 Richard Stallman <rms@gnu.org>
16308
16309 * callproc.c (Fcall_process): Don't use initializer on coding_systems.
16310 (Fcall_process_region): Likewise.
16311
163121999-07-01 Markus Rost <markus.rost@mathematik.uni-regensburg.de>
16313
16314 * callproc.c (init_callproc): Set exec_directory if
16315 installation_directory is non-nil, without a test of exec_path.
16316
163171999-07-01 Andrew Innes <andrewi@gnu.org>
16318
16319 * w32xfns.c (drain_message_queue): New function.
16320
16321 * w32term.h (drain_message_queue): Add extern.
16322
16323 * w32proc.c (sys_select): Call MsgWaitForMultipleObjects instead
16324 of WaitForMultipleObjects when user input is allowed, so we can
16325 handle incoming window messages. Call drain_message_queue when
16326 there are messages waiting; this ensures that windows created
16327 indirectly from the lisp thread get processed properly, and don't
16328 hang other applications by failing to respond to broadcasts.
16329
163301999-07-01 Andreas Schwab <schwab@gnu.org>
16331
16332 * callint.c (Fcall_interactively): Ignore first element of
16333 event-symbol-elements property.
16334
163351999-07-01 Richard Stallman <rms@gnu.org>
16336
16337 * fileio.c (Fread_file_name): Check type of DEFAULT_FILENAME.
16338
163391999-07-01 Kenichi Handa <handa@etl.go.jp>
16340
16341 * minibuf.c (read_minibuf): Set the multibyteness of the
16342 minibuffer before inserting `initial' string.
16343
163441999-06-30 Richard Stallman <rms@gnu.org>
16345
16346 * xfns.c (x_make_gc): Turn off GCStipple when setting up cursor_gc.
16347
163481999-06-29 Richard M. Stallman <rms@gnu.org>
16349
16350 * emacs.c [DOUG_LEA_MALLOC] (malloc_initialize_hook):
16351 Move the handling of MALLOC_CHECK_ envvar here.
16352 (main): Moved from here.
16353
163541999-06-29 Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>
16355
16356 * emacs.c [DOUG_LEA_MALLOC] (malloc_initialize_hook): New
16357 function, assigned to the global __malloc_initialize_hook pointer.
16358 (main): Move malloc_set_state call into malloc_initialize_hook
16359 so that it happens as early as possible.
16360
163611999-06-27 Richard M. Stallman <rms@gnu.org>
16362
16363 * keyboard.c (read_key_sequence): Properly reinitialize
16364 fkey_map after translating thru Vkey_translation_map.
16365 After translating thru Vfunction_key_map, don't reset
16366 keytrans-start to 0.
16367
163681999-06-24 Geoff Voelker <voelker@cs.washington.edu>
16369
16370 * w32.c (get_emacs_configuration): Use GetVersionEx to
16371 handle NT5.0 correctly. Include build number in configuration.
16372 w32heap.c (osinfo_cache): New variable.
16373 (cache_system_info): Initialize osinfo_cache.
16374 w32heap.h (osinfo_cache): Declare.
16375
163761999-06-24 Richard M. Stallman <rms@gnu.org>
16377
16378 * casefiddle.c (casify_object): Use make_multibyte_string
16379 if we casify a multibyte string.
16380
163811999-06-22 Ken'ichi Handa <handa@gnu.org>
16382
16383 * fileio.c: (Finsert_file_contents): In the case of REPLACE, call
16384 del_range_byte instead of del_range_1, set `inserted' to the
16385 number of characters actually inserted.
16386
163871999-06-17 Dave Love <fx@gnu.org>
16388
16389 * coding.c (decode_coding_sjis_big5): Avoid compiler warning.
16390
163911999-06-18 Paul Eggert <eggert@twinsun.com>
16392
16393 * filelock.c (BOOT_TIME_FILE): New macro.
16394 (get_boot_time): Use it instead of hardwiring the file name.
16395 Check BOOT_TIME_FILE only after inspecting the kernel directly.
16396
163971999-06-17 Dave Love <fx@gnu.org>
16398
16399 * xdisp.c (invalid_eol_type): Make it unsigned.
16400
164011999-06-17 Karl Heuer <kwzh@gnu.org>
16402
16403 * process.c (send_process): Delete unsafe/redundant assignment.
16404
164051999-06-17 Jason Rumney <jasonr@gnu.org>
16406
16407 * w32term.c (dumprectangle): Handle wide characters properly.
16408
164091999-06-16 Andrew Innes <andrewi@gnu.org>
16410
16411 * s/ms-w32.h (strerror): Override the default implementation of
16412 strerror, so we can map winsock error codes.
16413
16414 * w32.c (sys_strerror): New function.
16415
16416 * w32fns.c (w32_to_x_weight): Return "demibold" instead of "semibold".
16417
164181999-06-15 Ken'ichi Handa <handa@gnu.org>
16419
16420 * buffer.c (syms_of_buffer): Don't make
16421 enable-multibyte-characters customizable.
16422
164231999-06-15 Richard M. Stallman <rms@gnu.org>
16424
16425 * editfns.c (Fuser_full_name): Doc fix.
16426
164271999-06-14 Tak Ota <ota@atc.sel.sony.com>
16428
16429 * w32bdf.c: (clear_cached_bitmap_slots): Remove.
16430 (get_bitmap_with_cache): Check if CreateBitmap failed.
16431 Adjust cache size dynamically so cache is never larger than the
16432 system limit of GDI resources.
16433 Do cache clearing inline. Move global variables to local scope.
16434
16435
164361999-06-13 Wolfgang Glas <Wolfgang.Glas@hfm.tu-graz.ac.at>
16437
16438 * unexsgi.c (unexec): Dump the .rodata section from memory
16439 under IRIX6.5 in order to be able to unexec with gcc.
16440
164411999-06-11 Greg Hudson <ghudson@MIT.EDU>
16442
16443 * indent.c (compute_motion): Fix boundary case.
16444
164451999-06-11 Jason Rumney <jasonr@altavista.net>
16446
16447 * w32term.c (cancel_mouse_face): New function. See equiv
16448 changes to xterm.c on 1996-10-31.
16449 (x_set_window_size): Use cancel_mouse_face.
d7d0dac0
SM
16450 (w32_read_socket): Use cancel_mouse_face.
16451 Update frame position when size is restored.
26901792
DL
16452
164531999-06-04 Richard M. Stallman <rms@gnu.org>
16454
16455 * lread.c (Vuser_init_file): New variable.
16456 (syms_of_lread): Set up Lisp variable.
16457 (Fload): Store the file name there, if var was t before.
16458
164591999-06-04 Paul Eggert <eggert@twinsun.com>
16460
16461 * filelock.c (get_boot_time): Don't look at /proc/uptime; it
16462 doesn't work if the system date is changed, or if the system
16463 is suspended. Look at the last-modified time of
16464 /var/run/random-seed instead.
16465
164661999-06-03 Ken'ichi Handa <handa@gnu.org>
16467
16468 * coding.c (ENCODE_SJIS_BIG5_CHARACTER): Encode charset
16469 japanese-jisx0208-1978 correctly.
16470
164711999-06-03 Andrew Innes <andrewi@gnu.org>
16472
16473 * unexw32.c (get_section_info) [_ALPHA_]: Force as much bss data
16474 as possible to be dumped, for safety.
16475
164761999-06-02 Ken'ichi Handa <handa@gnu.org>
16477
16478 * coding.c (ENCODE_SJIS_BIG5_CHARACTER): Encode charset
16479 latin-jisx0201 correctly.
16480
164811999-05-26 Ken'ichi Handa <handa@gnu.org>
16482
16483 * charset.h (Vcharset_table): Comment fixed.
16484
164851999-05-24 Richard Stallman <rms@gnu.org>
16486
16487 * coding.c (syms_of_coding): Doc fix.
16488
16489 * buffer.c (syms_of_buffer): Doc fix.
16490
16491 * filelock.c (lock_if_free): After deleting a stale lock,
16492 try again to lock the file.
16493
164941999-05-22 Andrew Innes <andrewi@gnu.org>
16495
16496 * w32inevt.c (maybe_generate_resize_event): Detect changes in the
16497 console window size.
16498 (w32_console_read_socket): Call maybe_generate_resize_event
16499 whenever input events are received, since we don't get told when
16500 the window size changes (as opposed to the buffer size, which we
16501 don't care about).
16502
16503 * w32console.c (clear_frame): Remember that the window width might
16504 be smaller than the screen buffer width.
16505 (write_glyphs): Remove redundant variable attrs. Use
16506 FillConsoleOutputAttribute instead of WriteConsoleOutputAttribute.
16507
165081999-05-20 Andrew Innes <andrewi@gnu.org>
16509
16510 * w32term.c (w32_read_socket): Reset the grabbed flag when a frame gains or
16511 loses focus.
16512
16513 * w32fns.c (w32_wnd_proc): Ensure mouse capture is released if
16514 frame loses focus, and that mouse button state is reset. Ditto
16515 when the menu bar is activated.
16516
165171999-05-18 Richard Stallman <rms@gnu.org>
16518
16519 * abbrev.c (Fdefine_abbrev): Doc fix.
16520
165211999-05-13 Paul Eggert <eggert@twinsun.com>
16522
16523 * filelock.c: Fix performance bug on hosts with large
16524 /var/adm/wtmp files with no boot records.
16525
16526 (boot_time_initialized): New var.
16527 (init_filelock): Initialize it.
16528 (get_boot_time): Use it, instead of nonzero boot_time,
16529 to test whether boot_time is initialized.
16530 Don't invoke utmp routines when dumping.
16531
16532 (get_boot_time): First, try to get the boot time from the
16533 current utmp file, as this can be much faster. Don't try to
16534 get the boot time from utmp and/or wtmp more than once.
16535
16536 (get_boot_time_1): When passed null pointer, don't invoke utmpname.
16537 New arg LATEST. All uses changed.
16538
165391999-05-15 Andrew Innes <andrewi@gnu.org>
16540
16541 * w32term.c (dumpglyphs): Use correct colours for drawing
16542 rectangles in place of missing fonts, and make them the right
16543 size.
16544
165451999-05-14 Dave Love <fx@gnu.org>
16546
16547 * syntax.c (Fparse_partial_sexp): Correct test for element 8 to be
16548 non-nil.
16549
165501999-05-11 Andrew Innes <andrewi@gnu.org>
16551
16552 * w32fns.c (x_to_w32_charset): Reinstall VIETNAMESE_CHARSET
16553 definition.
16554 (w32_wnd_proc): Reinstall debugging output.
16555 (w32_wnd_proc): Reinstall SetForegroundWindow change.
16556 (syms_of_w32fns): Reinstall new initializer for
16557 Vw32_phantom_key_code.
16558
16559 * w32fns.c (x_to_w32_charset): Do partial matching of charset
16560 names for most non-European charsets, to cope with wildcards or
16561 missing spec dates.
16562 (Fw32_send_sys_command): Post WM_SYSCOMMAND rather than sending it
16563 to avoid deadlock when activating the menu bar.
16564
165651999-05-10 Ken'ichi Handa <handa@gnu.org>
16566
16567 * search.c (boyer_moore): Get charset base value of `untranslated'
16568 by masking by ~CHAR_FIELD3_MASK (instead of ~0xff).
16569
165701999-05-10 Andreas Schwab <schwab@gnu.org>
16571
16572 * fileio.c (Fread_file_name): Correct handling of dollars in file
16573 names. Protect dollars in strings put on the file-name-history.
16574 Substitute homedir by `~' also in default_filename.
16575
16576 * xdisp.c (try_window_id): Fix computation of tab_offset when
16577 backing up over a character that is splitted across lines.
16578
165791999-05-08 Kenichi HANDA <handa@etl.go.jp>
16580
16581 * coding.c (code_convert_region): If eol format is inconsistent,
16582 change coding->symbol to the sibling coding system of Unix like
16583 eol format.
16584
165851999-05-09 Richard M. Stallman <rms@gnu.org>
16586
16587 * s/irix5-2.h (NO_WTMP_FILE): Define it.
16588
16589 * filelock.c (get_boot_time): Handle NO_WTMP_FILE.
16590
165911999-05-05 Andrew Innes <andrewi@gnu.org>
16592
16593 * w32fns.c (w32_strict_painting): New variable.
16594 (w32_wnd_proc): Use it to select repaint rules.
16595 (syms_of_w32fns): Defvar it.
16596
165971999-05-04 Andrew Innes <andrewi@gnu.org>
16598
16599 * w32fns.c (x_to_w32_charset): Fix typo: want to map all Japanese
16600 charsets to the standard Windows charset for Japanese.
16601
166021999-05-04 Ken'ichi Handa <handa@gnu.org>
16603
16604 * xterm.c (x_load_font): Fix typo (`>' -> `=').
16605
16606 * ccl.h (struct ccl_program): New member stack_idx.
16607
16608 * ccl.c (ccl_prog_stack_struct): Declare it as static.
16609 (ccl_driver): Setup stack_idx and ccl_prog correctly. Update them
16610 before returing.
16611 (setup_ccl_program): Initialize ccl->stack_idx to 0.
16612
166131999-05-03 Jason Rumney <jasonr@altavista.net>
16614
16615 * w32term.c (dumpglyphs): Always fill background for italic fonts.
16616
166171999-05-03 Eli Zaretskii <eliz@is.elta.co.il>
16618
16619 * dired.c (make_time): Make argument type be time_t.
16620
166211999-05-02 Eli Zaretskii <eliz@is.elta.co.il>
16622
16623 * msdos.c (unibyte_display_via_language_environment): Add extern.
16624
83c8f461 166251999-05-02 Richard M. Stallman <rms@gnu.org>
26901792
DL
16626
16627 * xdisp.c (display_text_line): Convert unibyte char to multibyte
16628 if unibyte_display_via_language_environment is set.
16629 (unibyte_display_via_language_environment):
16630 Variable moved from xfns.c and elsewhere.
16631 (syms_of_xfns): Set up Lisp var.
16632
16633 * xfns.c (unibyte_display_via_language_environment):
16634 Variable moved to xdisp.c.
16635 (syms_of_xfns): Don't set up Lisp var here.
16636
16637 * msdos.c (unibyte_display_via_language_environment):
16638 Variable moved to xdisp.c.
16639 (syms_of_msdos): Don't set up Lisp var here.
16640
16641 * w32fns.c (unibyte_display_via_language_environment):
16642 Variable moved to xdisp.c.
16643 (syms_of_w32fns): Don't set up Lisp var here.
16644
166451999-05-02 Andrew Innes <andrewi@gnu.org>
16646
16647 * s/ms-w32.h (HAVE_FSYNC): New macro.
16648 (fsync): Map to _commit.
16649 (ftruncate): Map to _chsize.
16650
16651 * w32term.c (dumpglyphs): On Windows NT, do output in Unicode even
16652 for ASCII, if enabled, to avoid memory allocation overhead for
16653 implicit Unicode conversion. Also, recognize that ASCII and
16654 Latin-1 have a trivial conversion to Unicode, so x_2byte_buffer
16655 already contains the Unicode characters in that case.
16656 (construct_drag_n_drop): Remove old code that was
16657 trashing the drop location.
16658
16659 * w32select.c (Fw32_set_clipboard_data): Undo last change to add
16660 nlines to encoding_buffer_size (real bug was in a ccl program in
16661 lisp/international/coding.el).
16662
16663 * w32reg.c (w32_get_string_resource): Check for name in current
16664 user area, and if not found look in the local machine area.
16665
16666 * w32fns.c (w32_list_bdf_fonts): Initialize n_fonts.
16667 (Fw32_shell_execute): New function; used to support browse-url.
16668 (syms_of_w32fns): Register it.
16669 (w32_load_system_font): Force max width to be average
16670 char width for fixed-pitch fonts, to avoid unnecessary redisplay
16671 slowdown.
16672 (x_to_w32_charset): Define VIETNAMESE_CHARSET if not
16673 already defined.
16674 (syms_of_w32fns): Set Vw32_phantom_key_code to 255.
16675
16676 * unexw32.c (get_section_info): Dump back the entire EMDATA
16677 section if we can put Emacs' initialized data in a separate
16678 section, otherwise use the my_begdata/my_edata method.
16679
16680 * makefile.nt ($(BLD)\w32term.obj): Add dependency on w32heap.h.
16681
16682 * coding.c (decode_eol): Set produced/consumed values to zero if
16683 src_bytes is <= 0 on entry.
16684
166851999-05-02 Jason Rumney <jasonr@altavista.net>
16686
16687 * w32term.c (w32_write_glyphs, w32_clear_end_of_line,
16688 w32_clear_frame, clear_cursor, x_display_bar_cursor,
16689 x_display_box_cursor, x_set_window_size): Use phys_cursor_on
16690 field in frame.
16691 (do_line_dance): Updated WRT xterm.c. Use macros where possible.
16692 (dumprectangle): Take into account the width of a left-side
16693 scroll bar.
16694
16695 * w32proc.c (sys_kill): Attach to current foreground thread
16696 when grabbing focus; necessary on NT 5.0.
16697
16698 * w32fns.c (w32_wnd_proc) [WM_PAINT]: Use rectangle from
16699 GetUpdateRect rather than BeginPaint.
16700 (w32_wnd_proc): Attach to current foreground thread
16701 when grabbing focus; necessary on NT 5.0.
16702 (w32_wnd_proc) [W32_DEBUG_DISPLAY]: Add output for
16703 debugging display messages.
16704 (w32_to_x_charset): Put wildcard last in unknown charsets to avoid
16705 false matching.
16706
167071999-05-02 Kenichi HANDA <handa@etl.go.jp>
16708
16709 * coding.c (setup_raw_text_coding_system): Call
16710 setup_coding_system to initialize the fields of struct
16711 coding_system correctly.
427ec082 16712
26901792
DL
167131999-04-26 Kenichi HANDA <handa@etl.go.jp>
16714
16715 * xterm.c (x_list_fonts): Fix previous change.
16716
167171999-04-26 Richard Stallman <rms@gnu.org>
16718
16719 * config.in (HAVE_LIBXP): Add #undef.
16720 * Makefile.in (LIB_MOTIF_EXTRA): Check HAVE_LIBXP.
16721
167221999-04-12 Ken'ichi Handa <handa@gnu.org>
16723
16724 * xterm.c (x_list_fonts): Trap X errors so that Emacs doesn't die
16725 by them.
16726
167271999-04-12 Karl Heuer <kwzh@gnu.org>
16728
16729 * s/freebsd.h (BSD_SYSTEM): Define for FreeBSD 4 as with FreeBSD 3.
16730
167311999-04-11 Ken'ichi Handa <handa@gnu.org>
16732
16733 * fontset.c (Fset_fontset_font): Fix previous change.
16734
167351999-04-09 Ken'ichi Handa <handa@gnu.org>
16736
16737 * fontset.c (Fquery_fontset): Check for fontset aliases here.
16738 (Fnew_fontset, Fset_fontset_font): Don't check for them here.
16739
167401999-04-08 Richard Stallman <rms@gnu.org>
16741
16742 * process.c (Faccept_process_output): Check validity of PROCESS.
16743
167441999-04-08 Eli Zaretskii <eliz@gnu.org>
16745
16746 * msdos.c (jp_kbd_translate_table): Fix the other \ key.
16747
167481999-04-07 Richard Stallman <rms@gnu.org>
16749
16750 * xfns.c (x_set_font): Fix error message.
16751
16752 * fontset.c (Fquery_fontset): Don't check for fontset aliases here.
16753 (Fnew_fontset, Fset_fontset_font): Check for them here.
16754 (Ffontset_info, Fnew_fontset, Fset_fontset_font):
16755 Fix error message syntax.
16756
16757 * buffer.c (Fmake_indirect_buffer): Copy multibyte status
16758 from the base buffer.
16759 (Fset_buffer_multibyte): Copy new multibyte status
16760 into the buffer's indirect buffers.
16761
167621999-04-07 Ken'ichi Handa <handa@gnu.org>
16763
16764 * fns.c (base64_encode_1): Don't add unnecessary newline at the
16765 tail.
16766
167671999-04-06 Richard Stallman <rms@gnu.org>
16768
16769 * dired.c (Ffile_attributes): Doc fix.
16770
16771 * keymap.c (Faccessible_keymaps): Really initialize i_byte.
16772 Convert 0200 to meta only in a unibyte string.
16773 (Fkey_description): Likewise.
16774
16775 * eval.c (do_autoload): Preserve match data.
16776
167771999-04-06 Kenichi HANDA <handa@etl.go.jp>
16778
16779 * w32fns.c (x_to_w32_font): Provide sufficient buffer to
16780 encode_coding to avoid carryover.
16781
16782 * coding.c: Add comments for decode_coding and encode_coding.
16783
16784 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix bug of handling
16785 a composite character by skipping its leading code.
16786 <CCL_WriteMultibyteChar2>: Handle non-ascii single byte character
16787 correctly.
16788
16789 * coding.c: Add comments for decode_coding and encode_coding.
16790
16791 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix bug of handling
16792 a composite character by skipping its leading code.
16793 <CCL_WriteMultibyteChar2>: Handle non-ascii single byte character
16794 correctly.
16795
167961999-04-06 Eli Zaretskii <eliz@gnu.org>
16797
16798 * msdos.c (dos_rawgetc): Don't zero out c if private translation
16799 table was used.
16800 (jp_kbd_translate_table): Support C-\.
16801 (it_kbd_translate_table): Map `>' correctly.
16802 (it_keyboard): Add `>'.
16803
168041999-04-06 Richard Stallman <rms@gnu.org>
16805
16806 * intervals.c (graft_intervals_into_buffer): Turn off
16807 inhibit_modification_hooks around calling Fset_text_properties.
16808
168091999-04-05 Kenichi HANDA <handa@etl.go.jp>
16810
16811 * xterm.c (dumpglyphs): Be sure to fill the whole background of
16812 glyphs.
16813
168141999-04-05 Eli Zaretskii <eliz@gnu.org>
16815
16816 * msdos.c (jp_kbd_translate_table): Fix last change.
16817
168181999-04-04 Eli Zaretskii <eliz@gnu.org>
16819
16820 * msdos.c (struct kbd_translate): New struct, for key translation
16821 tables private to certain national keyboard layouts.
16822 (struct dos_keyboard_map): Add a pointer to a private translation
16823 table.
16824 (jp_kbd_translate_table): Private table for the Japanese
16825 keyboard.
16826 (jp_keyboard): Japanese keyboard layout.
16827 (it_kbd_translate_table): Private table for the Italian keyboard.
16828 (it_keyboard): Use it_kbd_translate_table.
16829 (keyboard_layout_list): Add the Japanese keyboard.
16830 (dos_rawgetc): Use the keyboard-private translation table, if
16831 available.
16832 (abort) [__DJGPP_MINOR__ >= 2]: Raise SIGABRT.
16833
168341999-04-02 Kenichi HANDA <handa@etl.go.jp>
16835
16836 * xdisp.c (redisplay_window): When we call compute_motion with
16837 HPOS got from w->last_point_x, call it with DID_MOTION 1.
16838 (display_text_line): Stop the loop for processing overlay strings
16839 when we reach the right edge of the window.
16840
83c8f461 168411999-03-31 Richard M. Stallman <rms@gnu.org>
26901792
DL
16842
16843 * doc.c (get_doc_string): When UNIBYTE and DEFINITION are 0,
16844 let the data control whether string is unibyte.
16845
168461999-03-30 Richard M. Stallman <rms@gnu.org>
16847
16848 * macros.c (Fexecute_kbd_macro): Save real_this_command.
16849 (pop_kbd_macro): Restore the saved real_this_command.
16850 (Fcall_last_kbd_macro): Set real_this_command to the macro.
16851
168521999-03-26 Richard M. Stallman <rms@gnu.org>
16853
16854 * buffer.c (Fset_buffer_modified_p): Don't lock or unlock
16855 if buffer-file-name is nil.
16856
168571999-03-25 Jason Rumney <jasonr@altavista.net>
16858
16859 * w32select.c (Fw32_set_clipboard_data): Take into account line
16860 ends when calculating clipboard storage needed for non-ASCII text.
16861
168621999-03-25 Andrew Innes <andrewi@gnu.org>
16863
16864 * makefile.nt (PREPARED_HEADERS): Change name of paths.h to epaths.h.
16865 (epaths.h): Renamed from paths.h.
427ec082
SS
16866 (clean):
16867 ($(BLD)\filelock.obj):
16868 ($(BLD)\lread.obj):
26901792
DL
16869 ($(BLD)\w32fns.obj): Renamed paths.h to epaths.h.
16870
168711999-03-23 Ken'ichi Handa <handa@gnu.org>
16872
16873 * coding.c (encode_coding_iso2022): Initialize dummy arguments to
16874 ENCODE_ISO_CHARACTER for the previous change on this macro.
16875
168761999-03-23 Kenichi Handa <handa@etl.go.jp>
16877
16878 * xdisp.c (decode_mode_spec_coding): Handle integer value in
16879 eoltype correctly for backward compatibility.
16880
168811999-03-20 Kenichi HANDA <handa@etl.go.jp>
16882
16883 * coding.c (ENCODE_ISO_CHARACTER): Check validity of CHARSET. If
16884 invalid, produce the buffer internal byte sequence without encoding.
16885
168861999-03-19 Karl Heuer <kwzh@gnu.org>
16887
16888 * editfns.c (Fformat): Accept %i format.
16889
168901999-03-17 Karl Heuer <kwzh@gnu.org>
16891
16892 * filelock.c (get_boot_time): Test tempname, not filename.
16893
168941999-03-17 Jason Rumney <jasonr@altavista.net>
16895
e5619f6b
JR
16896 * w32bdf.h: Merged patches from Meadow; introduce bitmap cache to
16897 speed display.
16898
16899 * w32bdf.c: Merged patches from Meadow; introduce bitmap cache to
16900 speed display.
16901 (get_cached_font_char, cache_char_offset, get_bitmap_with_cache)
16902 New functions.
16903 (w32_free_bdf_font, seek_char, w32_get_bdf_glyph, w32_BDF_TextOut)
16904 Use bitmap cache.
26901792
DL
16905
16906 * w32fns.c (enum_font_cb2): Set the font height to be the
16907 character height, not the cell height.
16908 (Fw32_select_font): Initialize font dialog with current default font.
16909 (Vw32_system_coding_system): New variable.
16910 (w32_strict_filenames): Add comment.
16911 (w32_to_x_font): Decode font name using Vw32_system_coding_system.
427ec082 16912 (x_to_w32_font): Encode font name using Vw32_system_coding_system.
26901792
DL
16913 (syms_of_w32fns): Add w32-system-coding-system.
16914
169151999-03-15 Richard M. Stallman <rms@gnu.org>
16916
16917 * xterm.c (XTread_socket) <ConfigureNotify>:
16918 If cursor pos is outside the new frame size, mark cursor as off.
16919
169201999-03-14 Ken'ichi Handa <handa@gnu.org>
16921
16922 * xdisp.c (try_window_id): Initialize val.ovstring_chars_done to 0.
16923
16924 * xterm.c (x_load_font): Trap X errors so that Emacs doesn't die
16925 by them.
16926
169271999-03-14 Richard M. Stallman <rms@gnu.org>
16928
16929 * macros.c (Fexecute_kbd_macro): Initialize executing_macro_iterations
16930 at beginning.
16931
169321999-03-14 Jason Rumney <jasonr@altavista.net>
16933
16934 * w32fns.c (w32_strict_fontnames): New variable.
16935 (Fx_create_frame): Formatting fix.
16936 (w32_load_system_font): Keep trying to load non-existant font
16937 if w32_strict_fontnames is nil. Formatting fix.
16938 (syms_of_w32fns): Add w32-strict-fontnames.
16939
16940 * w32term.c (W32_TEXTOUT): Do not multiply nchars by charset_dim.
16941 (dumpglyphs): Formatting fixes.
16942
169431999-03-14 Geoff Voelker <voelker@cs.washington.edu>
16944
16945 * w32fns.c (w32_wnd_proc): Handle WM_GETMINMAXINFO message.
16946
169471999-03-10 Karl Heuer <kwzh@gnu.org>
16948
16949 * puresize.h (BASE_PURESIZE): Increase to 505000.
16950
169511999-03-09 Richard M. Stallman <rms@gnu.org>
16952
16953 * emacs.c (main) [CLASH_DETECTION]: Call init_filelock.
16954
16955 * filelock.c (init_filelock): New function.
16956
169571999-03-09 Dave Love <fx@gnu.org>
16958
16959 * fileio.c (Ffile_directory_p): Doc fix.
16960
83c8f461 169611999-03-05 Richard M. Stallman <rms@gnu.org>
26901792
DL
16962
16963 * coding.c (setup_coding_system): Check for CODING_SYSTEM = nil.
16964
169651999-03-08 Richard M. Stallman <rms@gnu.org>
16966
16967 * filelock.c (get_boot_time): Reduce scope of #ifdef BOOT_TIME
16968 to only the part that uses get_boot_time_1.
16969
169701999-03-07 Dave Love <fx@gnu.org>
16971
16972 * fileio.c (Finsert_file_contents): Use xfree.
16973
169741999-03-06 Kenichi Handa <handa@etl.go.jp>
16975
16976 * Makefile.in (callproc.o, coding.o, fileio.o, msdos.o, process.o,
16977 term.o, xselect.o): Depend on ccl.h.
16978
169791999-03-05 Geoff Voelker <voelker@cs.washington.edu>
16980
16981 * makefile.nt: Remove common multiple file compilation commands.
16982
169831999-03-04 Takeshi YAMADA <yamada@cslab.kecl.ntt.co.jp>
16984
16985 * fns.c (Fbase64_encode_string): Allocate sufficient memory for
16986 newlines added when the arg NO-LINE-BREAK is nil.
16987
169881999-03-04 Karl Heuer <kwzh@gnu.org>
16989
16990 * search.c (Fstring_match, Fposix_string_match): Doc fix.
16991
16992 * buffer.c (syms_of_buffer): Doc fix for case-fold-search.
16993
169941999-03-04 Dave Love <fx@gnu.org>
16995
16996 * term.c (term_init): Use xmalloc, not malloc.
16997
16998 * callproc.c (Fcall_process): Use xmalloc, xfree.
16999
170001999-03-03 Andreas Schwab <schwab@gnu.org>
17001
17002 * eval.c (Fdefconst): Doc fix.
17003
170041999-03-01 Kenichi Handa <handa@etl.go.jp>
17005
17006 * coding.c: Comment for ISO 2022 encoding mechanism modified.
17007
170081999-03-01 Eli Zaretskii <eliz@gnu.org>
17009
17010 * w16select.c (get_clipboard_data): Always stop at the first null byte.
17011
170121999-02-28 Richard M. Stallman <rms@gnu.org>
17013
17014 * filelock.c (get_boot_time): Support FreeBSD way to read boot-time.
17015
17016 * cmds.c (internal_self_insert): Calculate column properly
17017 in overwrite-of-tab case.
17018
170191999-02-27 Andreas Schwab <schwab@gnu.org>
17020
17021 * emacs.c (main) [DOUG_LEA_MALLOC]: Don't use unsetenv, it calls
17022 malloc in glibc 2.1.
17023
170241999-02-26 Richard Stallman <rms@gnu.org>
17025
17026 * Makefile.in: paths.h and paths.in renamed to epaths.h and epaths.in.
17027
17028 * epaths.in: Renamed from paths.in.
17029 This avoids a conflict with a system header file paths.h on GNU/Linux.
17030
17031 * callproc.c, lread.c, w32fns.c, xfns.c, xrdb.c:
17032 Use epaths.h istead of paths.h.
17033
170341999-02-26 Andreas Schwab <schwab@gnu.org>
17035
17036 * emacs.c (main) [DOUG_LEA_MALLOC]: Work around a bug in glibc's
17037 malloc.
17038
170391999-02-25 Dave Love <fx@gnu.org>
17040
17041 * buffer.c (syms_of_buffer): Doc fix for enable-multibyte-characters.
17042
170431999-02-25 Richard Stallman <rms@gnu.org>
17044
17045 * filelock.c (get_boot_time): Use WTMP_FILE for file name.
17046 (WTMP_FILE): Default definition in case not defined.
17047 (get_boot_time_1): Test that file exists before trying to read it.
427ec082 17048
26901792
DL
170491999-02-25 Ken'ichi Handa <handa@gnu.org>
17050
17051 * keymap.c (push_key_description): If enable-multibyte-characters
17052 is nil and C is single byte, push C as is.
17053
170541999-02-24 Kenichi Handa <handa@etl.go.jp>
17055
17056 * keymap.c (push_key_description): If enable-multibyte-characters
17057 is non-nil, try to convert unibyte character to multibyte. For
17058 invalid multibyte character, show all bits by octal form.
17059 (Fsingle_key_description): Check the validity of charset for a
17060 generic character.
17061
170621999-02-23 Richard M. Stallman <rms@gnu.org>
17063
17064 * fileio.c (Ffile_regular_p): Undo previous change.
17065
17066 * eval.c (Fdefconst): Doc fix.
17067
17068 * filelock.c (get_boot_time): Don't use BUFSIZ.
17069
170701999-02-22 Andrew Innes <andrewi@gnu.org>
17071
17072 * makefile.nt ($(BLD)\w32bdf.obj): Add missing continuation character.
17073 (EXTRA_LINK): Do version test with strings.
17074
170751999-02-22 Andreas Schwab <schwab@gnu.org>
17076
17077 * fns.c (Fbase64_encode_string): Fix last change.
17078
17079 * termhooks.h (event_kind): Add user_signal.
17080
17081 * keyboard.c (Qusr1_signal, Qusr2_signal): New variables.
17082 (syms_of_keyboard): Initialize them.
17083 (lispy_user_signals): New variable.
17084 (make_lispy_event): Handle user_signal event type.
17085
17086 * emacs.c: Don't define Qusr1_signal and Qusr2_signal.
17087 (syms_of_emacs): Don't initialize them.
17088 (handle_USR1_signal, handle_USR2_signal): Set event type to
17089 user_signal instead of non_ascii_keystroke, and use plain integers
17090 as code instead of Lisp symbols.
17091
170921999-02-21 Eli Zaretskii <eliz@delysid.gnu.org>
17093
17094 * fileio.c: (lstat) [!S_ISLNK]: Use stat instead of lstat.
17095
170961999-02-21 Richard Stallman <rms@gnu.org>
17097
17098 * filelock.c (get_boot_time_1): Put this in #ifdef BOOT_TIME.
17099
17100 * print.c (print_error_message): Don't crash if (cdr data)
17101 is not a list.
17102
171031999-02-21 Eli Zaretskii <eliz@gnu.org>
17104
17105 * fileio.c (lstat) [!S_ISLNK]: Use stat instead of lstat.
17106
171071999-02-20 Andrew Innes <andrewi@gnu.org>
17108
17109 * vm-limit.c (memory_warnings) [WINDOWSNT]: Reset lim_data on each
17110 run, since size can vary from run to run.
17111
17112 * makefile.nt (EXTRA_LINK, LINK_FLAGS): Ensure base relocation
17113 data is included, to enable profiling.
17114 ($(EMACS)): Map file not needed for emacs.exe.
17115
17116 * emacs.c (main): [!SYSTEM_MALLOC]: Call realloc and free as well
17117 as malloc before calling uninterrupt_malloc, for consistency.
17118 This also enables profiling to work on WINDOWSNT.
17119
171201999-02-18 Richard Stallman <rms@gnu.org>
17121
17122 * Makefile.in (emacs.o): Depend on termhooks.h.
17123 (filelock.o): Depend on systime.h.
17124
171251999-02-18 Ken'ichi Handa <handa@gnu.org>
17126
17127 * coding.c (Fdecode_sjis_char): Use %x for formatting error message.
17128 (Fdecode_big5_char): Likewise.
17129
171301999-02-17 Richard Stallman <rms@gnu.org>
17131
17132 * insdel.c (adjust_markers_for_replace): When doing an insertion
17133 (replacing a region of zero length), handle markers at the
17134 insertion point properly.
17135
171361999-02-17 Andrew Innes <andrewi@gnu.org>
17137
17138 * w32fns.c (Vw32_quit_key): New variable.
17139 (post_character_message): Use it.
17140 (syms_of_w32fns): DEFVAR it.
17141
171421999-02-16 MORIOKA Tomohiko <morioka@jaist.ac.jp>
17143
17144 * fns.c (Fbase64_encode_string): New optional argument `NO_LINE_BREAK'.
17145
171461999-02-16 Richard Stallman <rms@gnu.org>
17147
17148 * filelock.c (within_one_second): New function.
17149 (current_lock_owner): Use that.
17150 (get_boot_time): Use /proc/uptime if available.
17151 Otherwise, if nothing found in wtmp, try wtmp.1.gz and so on.
17152 (get_boot_time_1): New subroutine taken from get_boot_time.
427ec082 17153
26901792
DL
171541999-02-16 Richard Stallman <rms@gnu.org>
17155
17156 * emacs.c (Qusr1_signal, Qusr2_signal): New variables.
17157 (syms_of_emacs): Init and staticpro them.
17158 (handle_USR1_signal): Don't run any code, just queue up an event.
17159 (handle_USR2_signal): Likewise.
17160
171611999-02-16 Eli Zaretskii <eliz@gnu.org>
17162
17163 * dired.c (Ffile_attributes): If the file's size doesn't fit in
17164 an integer, return it as a float. Doc string fixed.
17165
171661999-02-16 Richard Stallman <rms@gnu.org>
17167
17168 * emacs.c (Qusr1_signal, Qusr2_signal): New variables.
17169 (syms_of_emacs): Init and staticpro them.
17170 (handle_USR1_signal): Don't run any code, just queue up an event.
17171 (handle_USR2_signal): Likewise.
17172
171731999-02-15 Kenichi Handa <handa@etl.go.jp>
17174
17175 * coding.c (Fdecode_sjis_char, Fencode_sjis_char): Handle
17176 ASCII correctly. Signal error on invalid characters.
17177 (Fdecode_big5_char, Fencode_big5_char): Likewise.
17178
171791999-02-15 Eli Zaretskii <eliz@gnu.org>
17180
17181 * w16select.c (get_clipboard_data): Work around a bug in Windows95
17182 DOS box which doubles the reported size of text in the clipboard.
17183
171841999-02-15 Kenichi Handa <handa@etl.go.jp>
17185
17186 * coding.c (decode_coding_iso2022): Don't set
17187 coding->composed_chars to 0 here.
17188 (setup_coding_system): Set coding->composed_chars to 0 here.
17189
171901999-02-10 Richard Stallman <rms@gnu.org>
17191
17192 * fileio.c (Ffile_regular_p): Use lstat.
17193
171941999-02-09 Richard Stallman <rms@gnu.org>
17195
17196 * unexelf.c (HAS_SBSS_SECTION): Define this in some cases.
17197 (unexec): Test this instead of specific systems.
17198
17199 * m/macppc.h: New file.
17200
172011999-02-08 Dave Love <fx@gnu.org>
17202
17203 * fns.c (Fyes_or_no_p, Fy_or_n_p): Doc fix.
17204
172051999-02-08 Ken'ichi Handa <handa@gnu.org>
17206
17207 * coding.c (ccl_coding_driver): On encoding, coding->produced_char
17208 should be set to coding->produced.
17209
172101999-02-07 Paul Fisher <rao@gnu.org>
17211
17212 * fns.c (IS_BASE64_IGNORABLE, READ_QUADRUPLET_BYTE): New macros.
17213 (base64_decode_1): Use READ_QUADRUPLET_BYTE.
17214
172151999-02-07 Markus Rost <markus.rost@mathematik.uni-regensburg.de>
17216
17217 * editfns.c (Fformat): Doc fix.
17218
172191999-02-06 Richard Stallman <rms@gnu.org>
17220
17221 * process.c (syms_of_process): defsubr it.
17222 (Fprocess_running_child_p): New function.
17223
172241999-02-05 Andrew Innes <andrewi@gnu.org>
17225
17226 * w32term.c (construct_drag_n_drop): Call DraqQueryPoint before
17227 recording drop position.
17228
172291999-02-05 Ken'ichi Handa <handa@gnu.org>
17230
17231 * coding.c (encode_coding_iso2022): Before writing out an invalid
17232 code, reset graphic planes and registers if necessary.
17233
17234 * term.c (encode_terminal_code): Fix previous change.
17235
172361999-02-04 Eli Zaretskii <eliz@gnu.org>
17237
17238 * w16select.c (last_clipboard_text, clipboard_storage_size): New
17239 static variables.
17240 (set_clipboard_data): Save a copy of the text we put into
17241 clipboard in last_clipboard_text.
17242 (get_clipboard_data): If the clipboard text is identical to what
17243 last_clipboard_text holds, pretend there's no data in the clipboard.
17244
172451999-02-03 Richard Stallman <rms@gnu.org>
17246
17247 * s/gnu.h (NLIST_STRUCT): Add #undef.
17248
172491999-02-03 Eli Zaretskii <eliz@gnu.org>
17250
17251 * w16select.c (Fw16_set_clipboard_data): When the text needs to be
17252 encoded, set its pointer and size as returned by encode_coding.
17253
172541999-02-02 Ken'ichi Handa <handa@gnu.org>
17255
17256 * fns.c (Fset_char_table_default): To handle the case that CH is
17257 an ASCII char, use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
17258
172591999-02-02 Andrew Innes <andrewi@gnu.org>
17260
17261 * w32fns.c (syms_of_w32fns): Change default value of
17262 w32-mouse-move-interval to 0, so that the mouse wheel/rocker on
17263 some mice works properly.
17264
172651999-02-02 Eli Zaretskii <eliz@gnu.org>
17266
17267 * w16select.c (set_clipboard_data): Correctly null-terminate the
17268 string to be put into the Windows clipboard. Use xbuf_addr.
17269
172701999-02-01 Richard Stallman <rms@gnu.org>
17271
17272 * buffer.c (Fset_buffer_multibyte): Error if buffer is indirect.
17273
172741999-01-31 Richard Stallman <rms@gnu.org>
17275
17276 * process.c (process_send_signal): If CURRENT_GROUP is `lambda'
17277 then don't send the signal if the shell owns the terminal.
17278 (Finterrupt_process): Doc change.
427ec082 17279
26901792
DL
172801999-01-31 Andrew Innes <andrewi@gnu.org>
17281
17282 * unexw32.c: (ROUND_UP_DST_AND_ZERO): New macro.
17283 (copy_executable_and_dump_data): Use it to ensure alignment slop
17284 is zeroed.
17285
172861999-01-30 Andrew Innes <andrewi@gnu.org>
17287
17288 * w32.c (init_environment): Change argv[0] to contain the full
17289 path to Emacs.
17290
17291 * emacs.c (main) [WINDOWSNT]: Pass argv to init_environment.
17292
172931999-01-29 Ken'ichi Handa <handa@gnu.org>
17294
17295 * xterm.c (x_new_fontset): For ASCII font, don't use the font name
17296 returned by x_new_font (the resolved one) but use the font name
17297 set in the fontset specification.
17298 (x_load_font): For the height of font, if normarl ascent and
17299 descent value are larger than those in max_bounds field, use the
17300 former.
17301
173021999-01-28 Eli Zaretskii <eliz@gnu.org>
17303
17304 * xdisp.c (decode_mode_spec_coding): Fix previous change.
17305
173061999-01-27 Geoff Voelker <voelker@cs.washington.edu>
17307
17308 * makefile.nt: Use full path to temacs.exe when dumping.
17309
173101999-01-27 Jason Rumney <jasonr@altavista.net>
17311
17312 * w32fns.c (w32_load_system_font): Do not load unlisted fonts if
17313 list was reliable.
17314 (enum_fontex_cb1, enum_fontex_cb2): New functions.
17315 (w32_list_bdf_fonts): New parameter; max_names. Callers updated.
17316 (w32_list_synthesized_fonts): New function.
17317 (w32_list_fonts): Use maxnames. Use EnumFontFamiliesEx when
17318 available instead of EnumFontFamilies. List synthesized fonts if
17319 Vw32_enable_italics is non-nil.
427ec082 17320
26901792
DL
173211999-01-27 Richard Stallman <rms@gnu.org>
17322
17323 * s/ptx4.h (SETUP_SLAVE_PTY): Use the ptem module if it exists.
17324 Don't complain if ttcompat does not exist.
17325
17326 * w32fns.c (x_set_frame_parameters): gcpro as needed.
17327
173281999-01-27 Andrew Innes <andrewi@gnu.org>
17329
17330 * w32fns.c (w32_wnd_proc): Fix bug introduced by previous change;
17331 the lwindow, rwindow and apps keys could not be used as function
17332 keys, because they were being passed to TranslateMessage which
17333 ignores them. Also, key was being changed to SPC.
17334
17335 * makefile.nt: Do make version comparison as strings.
17336
173371999-01-27 Eli Zaretskii <eliz@gnu.org>
17338
17339 * coding.c (syms_of_coding): eol-mnemonic-* variables are now
17340 strings, not characters.
17341
17342 * coding.h: Likewise.
17343
17344 * xdisp.c (decode_mode_spec_coding): Display the EOL type as a
17345 string.
17346
173471999-01-26 Dave Love <fx@gnu.org>
17348
17349 * emacs.c (main): Up-date copyright.
17350
173511999-01-25 Dave Love <fx@gnu.org>
17352
17353 * coding.c (syms_of_coding): Doc fix for inhibit-eol-conversion.
17354
173551999-01-25 Andreas Schwab <schwab@gnu.org>
17356
17357 * eval.c (Fsignal): Move comment to avoid confusing make-docfile.
17358
173591999-01-23 Richard M. Stallman <rms@borg.ai.mit.edu>
17360
17361 * xfns.c (x_set_frame_parameters): gcpro as needed.
17362
17363 * window.c (Fset_window_point): If WINDOW is selected but the
17364 current buffer is not its buffer, don't use Fgoto_char.
17365
173661999-01-22 Richard M. Stallman <rms@gnu.org>
17367
17368 * syntax.c (scan_sexps_forward): Delete duplicate code
17369 to set prev_from_syntax, above start of main loop.
17370 At startinstring, check syntax when checking for a match.
17371
173721999-01-22 Jason Rumney <jasonr@altavista.net>
17373
17374 * w32bdf.c: New file.
17375 * w32bdf.h: New file.
17376 * makefile.nt: Add w32bdf.c and w32bdf.h.
17377
17378 * w32gui.h: Include w32bdf.h.
17379 (W32FontStruct) Add bdf element.
17380
17381 * w32term.h (FONT_WIDTH, FONT_HEIGHT, FONT_BASE, FONT_MAX_WIDTH):
17382 Support BDF fonts.
17383
17384 * w32term.c (W32_TEXTOUT): New macro.
17385 (dumpglyphs): Support BDF fonts. Use W32_TEXTOUT macro.
17386 Simplify baseline calculation. Detect SJIS by font, not glyph.
17387 Call SetTextAlign.
17388 (syms_of_w32term): Remove "jisx0212-sjis" from
17389 w32-charset-to-codepage-alist.
17390 Replace "ksc5601" with "ksc5601.1987" in w32-charset-to-codepage-alist.
17391 Add "ksc5601.1992' to w32-charset-to-codepage-alist.
427ec082 17392
26901792
DL
17393 * w32fns.c (Vw32_bdf_filename_alist): New variable.
17394 (x_destroy_bitmap): Returns void not int.
17395 (x_set_border_pixel): Returns void.
17396 (w32_load_bdf_font): New function.
17397 (w32_load_system_font): New function, was w32_load_font. List
17398 fonts before loading. Explicitly set encoding for SJIS fonts.
17399 Set default_ascent to 0 as comment indicates.
17400 (w32_load_font): Call w32_load_system_font and w32_load_bdf_font.
17401 (w32_unload_font): Support BDF fonts.
17402 (w32_to_x_charset): Fix mappings to avoid wildcard mismatches.
17403 Autodetect whether to use koi8-r instead of iso8859-5.
17404 Associate "ksc5601.1987" with HANGUEL_CHARSET.
17405 Associate "ksc5601.1992" with JOHAB_CHARSET.
17406 (x_to_w32_charset): Make consistent with w32_to_x_charset.
17407 (w32_to_x_font): Add resolution.
17408 (x_to_w32_font): Use font resolution to calculate height if supplied.
17409 (w32_font_match): Handle wildcards anywhere within field.
17410 (enumfont_t): Remove unused head pointer.
17411 (enum_font_cb2): Dereference elfLogFont.
17412 (w32_list_bdf_fonts): New function.
17413 (w32_list_fonts): Use one_w32_dispay_info instead of insisting on
17414 valid frame. Remove MessageBox. Support BDF fonts.
17415 (Fw32_find_bdf_fonts): New function.
17416 (syms_of_w32fns): Add Vw32_bdf_filename_alist and
17417 Sw32_find_bdf_fonts.
17418
174191999-01-21 Andrew Innes <andrewi@gnu.org>
17420
17421 * makefile.nt (temacs): Use del to delete file, not rm.
17422
174231999-01-19 Richard Stallman <rms@psilocin.ai.mit.edu>
17424
17425 * keyboard.c (read_key_sequence): Fix previous change.
17426
17427 * xterm.c (same_x_server): Detect treat ":0" and "unix:0"
17428 as the same. Treat "myname:0" as the same as those two.
17429
174301999-01-19 Jason Rumney <jasonr@altavista.net>
17431
17432 * w32fns.c (x_to_w32_charset): Add iso8859-9.
17433 (w32_to_x_charset): Fix charset mappings.
17434
17435 * w32term.c: Remove codepage macros. Remove redundant BIG5 macros.
17436 (dumpglyphs): Move definitions out of block containing goto.
17437 Remove redundant code for BIG5.
17438 Use w32_codepage_for_font instead of
17439 w32_codepage_for_charset. Add cast to int where float
17440 operation is assigned to int.
17441 (Vw32_charset_to_codepage_alist): New variable.
17442 (w32_codepage_for_charset): Removed.
427ec082
SS
17443 (w32_codepage_for_font): New function, replacing
17444 w32_codepage_for_charset.
26901792
DL
17445 (syms_of_w32term): Add and initialize
17446 w32-charset-to-codepage-alist.
17447
174481999-01-17 Richard Stallman <rms@psilocin.ai.mit.edu>
17449
17450 * xselect.c (x_handle_selection_clear): Don't clear the
17451 selection if Emacs still owns it through a different display.
17452
174531999-01-17 Andrew Innes <andrewi@gnu.org>
17454
17455 * w32proc.c: (w32_executable_type): Relax the check to identify
17456 cygwin-compiled applications, because the exact dll name varies
17457 with release. Now only require the name to start "cygwin".
17458
17459 * w32heap.h: (ROUND_UP):
17460 (ROUND_DOWN): New macros.
17461 (need_to_recreate_heap): Renamed to using_dynamic_heap.
17462 (init_heap): New extern.
17463 (data_region_size):
17464 (recreate_heap):
17465 (read_in_bss):
17466 (map_in_heap):
17467 (round_to_next):
17468 (w32_fatal_reload_error):
17469 (get_section_size): Obsolete externs removed.
17470
17471 * w32heap.c: (RVA_TO_PTR): Redefine to convert RVA to address in
17472 current process.
17473 (round_to_next): Obsolete function removed.
17474 (preload_heap_section): New variable.
17475 (data_region_size): Obsolete variable removed.
17476 (allocate_heap): Modified to determine end of static heap section
17477 used during preload, and use that as initial base address for
17478 dynamic heap instead of hard-coded value.
17479 (sbrk): Remove call to allocate_heap; handled by init_heap. Skip
17480 calls to commit or decommit pages when allocating from static heap
17481 section during preload.
17482 (recreate_heap): Obsolete function removed.
17483 (init_heap): New function to initialize internal sbrk heap
17484 variables. Uses static heap section during preload, otherwise
17485 calls allocate_heap to reserve a heap region dynamically.
17486 (round_heap): Use ROUND_UP macro instead of round_to_next.
17487
17488 * unexw32.c: Major rewrite to support cleaner method of dumping; a
17489 static "bss" section is used for heap space during preload, and
17490 bss data is now written to the proper section area when dumping.
17491 (need_to_recreate_heap): Renamed to using_dynamic_heap.
17492 (heap_index_in_executable): Obsolete variable removed.
17493 (data_section): New variable.
17494 (data_start_va): Renamed to data_start.
17495 (data_start_file): Obsolete variable removed.
17496 (bss_section):
17497 (extra_bss_size):
17498 (bss_section_static):
17499 (bss_start_static):
17500 (bss_size_static):
17501 (extra_bss_size_static):
17502 (heap_section): New variables.
17503 (_start): Remove code based on old unexec method. Call init_heap
17504 to initialize sbrk heap.
17505 (close_file_data): Update size of file when closing, so that
17506 unexec doesn't have to work out exact size in advance.
17507 (get_bss_info_from_map_file):
17508 (get_section_size): Obsolete functions removed.
17509 (rva_to_section): Fix minor bug, and add a work-around for a bug
17510 in very old linkers.
17511 (offset_to_section):
17512 (relocate_offset): New functions.
17513 (OFFSET_TO_RVA):
17514 (RVA_TO_OFFSET):
17515 (RVA_TO_SECTION_OFFSET):
17516 (PTR_TO_RVA):
17517 (PTR_TO_OFFSET):
17518 (OFFSET_TO_PTR): New macros.
17519 (get_section_info): Modify to support new unexec method;
17520 determines address ranges in process that need dumping, and COFF
17521 sections where data will be dumped. Allows for static and global
17522 bss data to be in separate ranges. No longer relies on knowledge
17523 of section names.
17524 (copy_executable_and_dump_data_section): Renamed
17525 copy_executable_and_dump_data. Completely rewritten to copy
17526 executable section by section, so that raw data areas can be
17527 expanded to hold dumped data as necessary. Allows for bss data to
17528 be in same section as initialized data. Reduces size of static
17529 heap section to that used during preload.
17530 (dump_bss_and_heap):
17531 (w32_fatal_reload_error):
17532 (read_in_bss):
17533 (map_in_heap): Obsolete functions removed.
17534 (unexec): Rounds off preload heap to nearest page rather than
17535 virtual allocation unit. Modified to match other changes.
17536
17537 * mem-limits.h: (get_lim_data): Use reserved_heap_size instead of
17538 data_region_size.
17539
17540 * makefile.nt: (TEMACS_TMP): New macro.
17541 ($(TEMACS)): Output to TEMACS_TMP from link, use post-link
17542 processor to add static heap section in support of new unexec.
17543
17544 * lastfile.c: Include config.h to pick up data layout pragmas.
17545 [WINDOWSNT]: Remove explicit pragma.
17546
175471999-01-12 Kenichi Handa <handa@etl.go.jp>
17548
17549 * coding.c (Fdecode_sjis_char): Decode Japanese Katakana character
17550 correctly.
17551 (Fencode_sjis_char): Encode Japanese Katakana character correctly.
17552
175531999-01-11 Dave Love <fx@gnu.org>
17554
17555 * coding.c (syms_of_coding): Doc fix for inhibit-eol-conversion.
17556
175571999-01-11 Richard Stallman <rms@psilocin.ai.mit.edu>
17558
17559 * keyboard.c (read_key_sequence): In key-translation-map and
17560 function-key-map, handle symbol with array as fn def.
17561 In function-key-map, handle symbol with keymap as fn def,
17562 and autoloaded definitions.
427ec082 17563
26901792
DL
17564 * puresize.h (BASE_PURESIZE): Increment to 500000.
17565
17566 * print.c (Qtemp_buffer_setup_hook): New variable.
17567 (syms_of_print): Init and staticpro that.
17568 (temp_output_buffer_setup): Run Qtemp_buffer_setup_hook.
17569
175701999-01-11 Kenichi Handa <handa@etl.go.jp>
17571
17572 * insdel.c (del_range_1): Call signal_after_change.
17573 (del_range_byte): Likewise.
17574 (del_range_both): Likewise.
17575 (del_range_2): Don't call signal_after_change.
17576
17577 * xdisp.c (message_dolog): Use insert_1_both to avoid running any
17578 Lisp code here.
17579
175801999-01-07 Richard Stallman <rms@psilocin.ai.mit.edu>
17581
17582 * eval.c (find_handler_clause): If SIG is nil (memory full error),
17583 never run the debugger, and don't bother checking the args
17584 to see whether the debugger should be run.
17585
175861999-01-06 Richard Stallman <rms@psilocin.ai.mit.edu>
17587
17588 * keyboard.c (read_key_sequence):
17589 Tell get_keyelt to look handle autoloads.
17590 Handle symbols defined as keymaps, and autoloaded keymaps.
17591
175921999-01-06 Kenichi Handa <handa@etl.go.jp>
17593
17594 * search.c (search_buffer): Fix previous change.
17595
175961999-01-06 Eli Zaretskii <eliz@gnu.org>
17597
17598 * w16select.c (set_clipboard_data): Terminate the text with a null
17599 character. Don't allow to put binary data into the clipboard.
17600 Return zero in case of success, 1 or 2 otherwise.
17601 (get_clipboard_data): Only bail out if the null character is in
17602 the last 32-byte chunk of clipboard data
17603 (Fw16_set_clipboard_data): Make ok and put_status be unsigned. If
17604 they save binary data, print a message in the echo area saying the
17605 text was not put into the clipboard.
17606
17607 * msdos.c (IT_write_glyphs): Move constant expression out of the loop.
17608
176091999-01-06 Andreas Schwab <schwab@gnu.org>
17610
17611 * systty.h [__GLIBC__ >= 2]: Check __FAVOR_BSD instead of
17612 _BSD_SOURCE, the latter is always defined.
17613
176141999-01-05 Richard Stallman <rms@psilocin.ai.mit.edu>
17615
17616 * fns.c (Frequire): Don't fail to unbind bindings.
17617
176181999-01-02 Richard Stallman <rms@psilocin.ai.mit.edu>
17619
17620 * emacs.c (main) [DOUG_LEA_MALLOC]: Don't call r_alloc_reinit.
17621
17622 * charset.c (Ffind_charset_region): Fix doc typo.
17623
176241998-12-31 Eli Zaretskii <eliz@mescaline.gnu.org>
17625
17626 * msdos.c (IT_write_glyphs): Convert unibyte characters to
17627 multibyte in unibyte buffers only.
17628
17629 * keymap.c (Fdefine_prefix_command): Accept a third argument NAME
17630 and pass it to Fmake_sparse_keymap.
17631
176321998-12-29 Richard Stallman <rms@psilocin.ai.mit.edu>
17633
17634 * alloc.c (MMAP_MAX_AREAS): New macro.
17635 (allocate_vectorlike, make_uninit_multibyte_string): Use that.
17636 (init_alloc_once): Use that.
17637
17638 * s/gnu-linux.h [DOUG_LEA_MALLOC] (REL_ALLOC): Undefine it.
17639
17640 * alloc.c (lisp_malloc, lisp_free): New functions.
17641 Use them instead of malloc, xmalloc, and xfree, for Lisp objects.
17642 Don't set allocating_for_lisp in the callers; let lisp_malloc do it.
17643 (n_interval_blocks, n_float_blocks): New variable.
17644 (n_cons_blocks, n_vectors, n_symbol_blocks): New variable.
17645 (n_marker_blocks, n_string_blocks): New variable.
17646 (init_intervals, make_interval): Set a count variable.
17647 Use lisp_malloc instead of setting allocating_for_lisp.
17648 (init_float, make_float, init_cons, Fcons): Likewise.
17649 (allocate_vectorlike, init_symbol, Fmake_symbol): Likewise
17650 (init_marker, allocate_misc, init_strings): Likewise.
17651 (make_uninit_multibyte_string): Likewise.
17652 (gc_sweep, compact_strings): Decrement the count variables.
17653
17654 * alloc.c (uninterrupt_malloc): Don't store Emacs's hooks
17655 into the old_..._hook variables.
17656
176571998-12-28 Richard Stallman <rms@psilocin.ai.mit.edu>
17658
17659 * keyboard.c: In each active map, for each menu bar item, use only
17660 the first submap.
17661 (menu_bar_one_keymap): Initialize menu_bar_one_keymap_changed_items.
17662 (menu_bar_item): Update and test menu_bar_one_keymap_changed_items.
17663 (syms_of_keyboard): Staticpro and init it.
17664
427ec082 17665 * xmenu.c (single_keymap_panes):
26901792
DL
17666
176671998-12-28 Andrew Innes <andrewi@delysid.gnu.org>
17668
17669 * w32fns.c (w32_msg_pump): Ignore WM_NULL message posted to thread
17670 by complete_deferred_msg.
17671 (post_character_message): Cancel all deferred messages when
17672 quit_char is typed, in order to break out of potential deadlocks.
17673 (cancel_all_deferred_msgs): New function.
17674 (complete_deferred_msg): Don't abort if msg not found; may have
17675 been cancelled.
17676 (Fw32_reconstruct_hot_key): Use pre-interned symbols.
17677 (Fw32_send_sys_command): Wait for system command to
17678 complete before returning.
427ec082 17679
26901792
DL
17680 * w32term.c (x_iconify_frame): Wait for frame to be iconified; do
17681 not set async_iconified flag though.
17682
17683 * w32proc.c: (Vw32_start_process_inherit_error_mode): New variable.
17684 (create_child): Use it.
17685 (syms_of_ntproc): Defvar it. Also fix docstrings for
17686 w32-start-process-share-console and w32-start-process-show-window.
17687
17688 * unexw32.c (_start): Force system calls accessing unmounted
17689 devices to fail without prompting.
17690
176911998-12-26 Richard Stallman <rms@psilocin.ai.mit.edu>
17692
17693 * emacs.c (main): Call memory_warnings and uninterrupt_malloc
17694 even when starting the dumped Emacs.
17695
17696 * keymap.c (Fsingle_key_description): Handle (control ?x) etc.
17697 (Fkey_description): Handle lists like vectors.
17698
176991998-12-21 Kenichi Handa <handa@etl.go.jp>
17700
17701 * callint.c (Fcall_interactively) <'C'>: Give Fread_char Qnil
17702 because of the change of the second argument of Fread_char.
17703
17704 * charset.c (Fcharset_after): Check range. If POS is out of
17705 range, return nil.
17706
17707 * keyboard.c (read_char): Don't bind input-method-exit-on-first-char.
17708
17709 * lread.c (Fread_char): Change the meaning of the second argument.
17710 (Fread_event): Likewise.
17711 (Fread_char_exclusive): Likewise.
17712
17713 * print.c (printchar): Fix previous change.
17714
17715 * process.c (read_process_output): Decide the multibyteness of
17716 string given to a process filter by a coding system used for
17717 decoding the process output.
17718
177191998-12-21 Eli Zaretskii <eliz@mescaline.gnu.org>
17720
17721 * xterm.c (dumpglyphs): Don't convert 7-bit ASCII characters via
17722 nonascii-translation-table.
17723 * msdos.c (IT_write_glyphs): Likewise.
17724 * fns.c (concat): Likewise.
17725 * charset.c (unibyte_char_to_multibyte): Likewise.
17726 * insdel.c (copy_text, count_size_as_multibyte): Likewise.
17727
177281998-12-21 Andreas Schwab <schwab@delysid.gnu.org>
17729
17730 * doc.c (Fdocumentation): Change the doc string for prefix
17731 commands to make it a complete sentence in one line.
17732
177331998-12-16 Petri Kaurinkoski <Petri.Kaurinkoski@hut.fi>
17734
17735 * s/irix6-5.h: New file.
17736 * s/irix6-0.h (IRIX6): Define this symbol.
17737 * s/usg5-4.h (TIOCSIGSEND): Don't define this if irix6.
17738 (bcopy, bcmp, bzero): Likewise.
17739 * m/iris4d.h (LIBS_MACHINE): Leave this blank if irix6.5.
17740 (C_SWITCH_MACHINE): New value for irix6.5.
17741
177421998-12-15 Richard Stallman <rms@gnu.org>
17743
17744 * fns.c (Fbase64_decode_region, Fbase64_decode_string):
17745 Do free malloc'd memory even in case of failure. Use xfree, not free.
17746 (Fbase64_encode_region, Fbase64_encode_string): Use xfree, not free.
17747 (base64_decode_1): Don't fail for short lines.
17748
17749 * print.c (printchar): Outputting multibyte characters
17750 to echo area always makes it multibyte.
17751
17752 * search.c (search_buffer): Don't use Boyer-Moore
17753 to search for an invalid multibyte code.
17754 In unibyte case, no need to check whether there are translations
17755 in more than one charset; just set charset_base to 0.
17756
177571998-12-15 Ken'ichi Handa <handa@delysid.gnu.org>
17758
17759 * print.c (printchar): Cancel previous change.
17760
177611998-12-15 Kenichi Handa <handa@etl.go.jp>
17762
17763 * callproc.c: Include "ccl.h".
17764 (Fcall_process): Doc-string modified. Set CODING_MODE_LAST_BLOCK
17765 bit in argument_coding.mode to tell encoding procedure to flush
17766 data. While encoding arguments, if argument_coding uses CCL
17767 program, initialize it again after encoding.
17768 (Fcall_process_region): Doc-string modified. Handle the case that
17769 NARGS is 3.
17770
17771 * ccl.c (CCL_SUCCESS): Don't set ccl->ic.
17772 (ccl_driver) <CCL_End>: Pretend that all source text is consumed.
17773 Set `ic' to the head of this command.
17774 (ccl_driver) <CCL_ReadMultibyteChar2>: Return a single byte 8-bit
17775 code for an invalid code.
17776 (setup_ccl_program): If the arg VEC is nil, skip setting ups
17777 based on VEC.
17778
17779 * charset.c (Qunknown): New variable.
17780 (init_charset_once): Intern and staticpro Qunknown. Initialize
17781 all elements of Vcharset_symbol_table to Qunknown.
17782 (find_charset_in_str): New arg MULTIBYTE. If it is zero, check
17783 unibyte characters only. For an invalid composition sequence, set
17784 CHARSETS[1] to 1.
17785 (Ffind_charset_region): Call find_charset_in_str with an
17786 appropriate MULTIBYTE arg. If undefined charsets are found,
17787 include `unknown' is the return value.
17788 (Ffind_charset_string): Likewise.
17789 (Fsplit_char): If CHAR is invalid, return `(unknown CHAR)'.
17790 (str_cmpchar_id): Max composite character code should be less than
17791 GENERIC_COMPOSITION_CHAR.
17792
17793 * charset.h (find_charset_in_str): Update declaration.
17794
17795 * coding.c (DECODE_DESIGNATION): Jump to label_invalid_code if
17796 final_char is invalid.
17797 (decode_coding): If coding->type is coding_type_ccl, call
17798 ccl_coding_driver even if SRC_BYTES is zero.
17799 (code_convert_region): Update `inserted' correctly after calling
17800 coding->post_read_conversion. Even after the code converter
17801 consumed all source text, call it once more if it is
17802 coding_type_ccl to flush out data.
17803
17804 * fileio.c (Finsert_file_contents): Even if INSERTED is zero, if
17805 CODING is handled by CCL program, call code_convert_region.
17806
17807 * fns.c (string_char_to_byte): Handle invalid multibyte sequence
17808 correctly.
17809 (string_byte_to_char): Likesize.
17810
17811 * print.c (printchar): When outputting a multibyte character to
17812 echo area, always set message_enable_multibyte to 1.
17813
17814 * process.c (read_process_output): If NBYTES is zero and
17815 CODING_MODE_LAST_BLOCK bit is not yet set in coding->mode, set it
17816 and try decoding again.
17817 (Fprocess_send_eof): If the coding system of PROCESS
17818 requires flushing, call send_process with null-string at first.
17819
17820 * w16select.c (Fw16_set_clipboard_data): Call find_charset_in_str
17821 with MULTIBYTE arg 0.
17822 * w32select.c (Fw32_set_clipboard_data): Likewise.
17823 * xselect.c (lisp_data_to_selection_data): Likewise.
17824
178251998-11-30 Richard Stallman <rms@psilocin.ai.mit.edu>
17826
17827 * search.c (Freplace_match): Set OPOINT clearly for the case
17828 where point is in the middle of the text to be replaced.
17829
17830 * xdisp.c (display_text_line): When handling HPOS < 0 after loop,
17831 if compute_motion fails to advance at all, don't back it up.
17832
178331998-12-10 Geoff Voelker <voelker@cs.washington.edu>
17834
17835 * w32.c (w32_get_long_filename): Handle root dirs correctly.
17836
427ec082 17837 * s/ms-w32.h (LOCALTIME_CACHE): Define.
26901792
DL
17838
178391998-12-09 Richard Stallman <rms@gnu.org>
17840
17841 * insdel.c (insert_from_buffer_1): Properly count the size
17842 of output from conversion to multibyte even when input
17843 is split across the gap.
17844
178451998-12-09 Karl Heuer <kwzh@gnu.org>
17846
17847 * keyboard.c: Doc fixes.
17848
17849 * s/irix4-0.h (C_SWITCH_SYSTEM) [!__GNUC__]: Increase space.
17850
178511998-12-08 Andrew Innes <andrewi@harlequin.co.uk>
17852
17853 * w32select.c (Fw32_get_clipboard_data): Do not delete isolated CR
17854 characters, only convert CRLF to LF.
17855
178561998-12-08 Geoff Voelker <voelker@cs.washington.edu>
17857
17858 * makefile.nt: Do string comparision of _NMAKE_VER.
17859
178601998-12-06 Eli Zaretskii <eliz@mescaline.gnu.org>
17861
17862 * Makefile.in (msdos.o): Depend on termchar.h, charset.h,
17863 coding.h, and disptab.h
17864
17865 * msdos.c (Vdos_unsupported_char_glyph): New variable.
17866 (syms_of_msdos): DEFVAR_LISP it.
17867 (IT_insert_glyphs, IT_delete_glyphs): New functions which abort Emacs.
17868 (internal_terminal_init): Set up insert_glyphs_hook and
17869 delete_glyphs_hook to call them. Explicitly set char_ins_del_ok to 0.
17870 (unibyte_display_via_language_environment): New variable.
17871 (syms_of_msdos): Devfar it.
17872 (IT_write_glyphs): Honor glyph aliasing via Vglyph_table.
17873 Encode the character codes of the glyphs according to the
17874 terminal_coding in effect.
17875
178761998-12-04 Andreas Schwab <schwab@delysid.gnu.org>
17877
17878 * fns.c (Fstring_as_unibyte): Doc fix.
17879
178801998-12-03 Andreas Schwab <schwab@delysid.gnu.org>
17881
17882 * charset.h: Declare char_valid_p.
17883
178841998-12-03 Eli Zaretskii <eliz@mescaline.gnu.org>
17885
17886 * dosfns.c (dos_cleanup): Flush and fsync the termscript stream.
17887
17888 * msdos.c (init_environment): Record the time we started up.
17889 (IT_reset_terminal_modes): Don't restore the screen if we exit too
17890 fast after startup (aka crash).
17891
178921998-12-02 Geoff Voelker <voelker@cs.washington.edu>
17893
17894 * w32.c (check_windows_init_file): Use decode_env_path when
17895 using EMACSLOADPATH.
17896
178971998-12-02 Jason Rumney <jasonr@altavista.net>
17898
17899 * w32term.c (dumpglyphs): Use unsigned char arrays.
17900 Use FONT_MAX_WIDTH to detect and fudge proportional fonts
17901 for various languages.
17902 Compensate for fonts that have underhangs (e.g., Thai).
17903
17904 * w32term.h (FONT_MAX_WIDTH): New macro.
17905
179061998-12-02 Andrew Innes <andrewi@harlequin.co.uk>
17907
17908 * keyboard.c (Qlanguage_change): New variable.
17909 (syms_of_keyboard): Init it.
17910 (kbd_buffer_get_event) [WINDOWSNT]: Generate language-change events.
17911 (lispy_function_keys) [HAVE_NTGUI]: Remove names for modifier
17912 keys; add name for Escape key; extend to 256 elements.
17913 (parse_modifiers): Make non-static.
17914
17915 * keyboard.h (parse_modifiers): Declare prototype.
17916
17917 * termhooks.h (event_kind) [WINDOWSNT]: Define language_change_event.
17918
17919 * w32fns.c (w32_last_error): Fix cut+paste error.
17920 (Vw32_phantom_key_code): New variable.
17921 (Qhyper, Qsuper, Qmeta, Qalt, Qctrl, Qcontrol, Qshift): New variables.
17922 (syms_of_w32fns): Init and register them.
17923 (reset_modifiers): Use a more precise test for whether Emacs has
17924 keyboard focus. Synchronize state of all keys that can be used as
17925 modifiers, to overcome problems arising from hot-keys.
17926 (w32_key_to_modifier): Be careful not to call intern() to avoid
17927 requiring thread synchronization.
17928 (w32_msg_pump): Handle new WM_EMACS_TOGGLE_LOCK_KEY message.
17929 (w32_wnd_proc): Ensure lock key indicator lights are updated
17930 promptly on Windows 9x, by passing key events on to the system.
17931 (w32_wnd_proc): Use Vw32_phantom_key_code to stop system
17932 responding to Windows key events when not wanted.
17933 (w32_wnd_proc): Undo the mapping of Ctrl-Pause into cancel and
17934 Ctrl-NumLock into pause by the system.
17935 (w32_wnd_proc): Don't translate key combinations containing any
17936 modifiers other than shift (and capslock).
17937 (w32_wnd_proc): Reset modifier key states when receiving focus (we
17938 can't determine the key states until we have keyboard focus).
17939 (Fw32_toggle_lock_key): New function.
17940 (syms_of_w32fns): Defsubr it.
17941
17942 * w32inevt.c (key_event): Use Vw32_phantom_key_code. Undo the
17943 mapping of Ctrl-Pause into cancel, and Ctrl-NumLock into pause.
17944 (w32_console_toggle_lock_key): New function.
17945
17946 * w32term.h (WM_EMACS_TOGGLE_LOCK_KEY): New define.
17947
179481998-11-30 Richard Stallman <rms@psilocin.ai.mit.edu>
17949
17950 * search.c (Freplace_match): Set OPOINT clearly for the case
17951 where point is in the middle of the text to be replaced.
17952
17953 * xdisp.c (display_text_line): When handling HPOS < 0 after loop,
17954 if compute_motion fails to advance at all, don't back it up.
17955
179561998-11-28 Richard Stallman <rms@psilocin.ai.mit.edu>
17957
17958 * xfns.c (Qouter_window_id): New variable.
17959 (syms_of_xfns): Initialize it.
17960 (x_report_frame_params): Set up outer-window-id parameter.
17961
17962 * keymap.c (Fsingle_key_description): Fix previous change.
17963
179641998-11-26 Ken'ichi Handa <handa@delysid.gnu.org>
17965
17966 * lisp.h (Frequire): Update declaration.
17967
179681998-11-26 Kenichi Handa <handa@etl.go.jp>
17969
17970 * ccl.c (ccl_driver) <CCL_TranslateCharacter>: Don't suppress MSB
17971 if the charset is ascii.
17972 (ccl_driver) <CCL_TranslateCharacterConstTbl>: Likewise.
17973
17974 * charset.c (non_ascii_char_to_string): If C has modifier bits,
17975 make an appropriate one byte string.
17976 (char_bytes): Handle the case that C is a single byte char or has
17977 modifier bits.
17978
17979 * charset.h (CHAR_BYTES): If C has modifier bits, return 1.
17980
17981 * cmds.c (internal_self_insert): If C has modifier bits, insert
17982 appropriate one byte char.
17983
179841998-11-25 Richard Stallman <rms@psilocin.ai.mit.edu>
17985
17986 * fns.c (Fstring_as_unibyte, Fstring_as_multibyte):
17987 Clear text properties in the new string.
17988
179891998-11-24 Felix Lee <flee@cygnus.com>
17990
17991 * process.c (read_process_output): Call signal_after_change.
17992
179931998-11-24 Richard Stallman <rms@psilocin.ai.mit.edu>
17994
17995 * buffer.c (syms_of_buffer): Doc fix.
17996
17997 * keyboard.c (syms_of_keyboard): Doc fix.
17998
179991998-11-22 Richard Stallman <rms@psilocin.ai.mit.edu>
18000
18001 * frame.c (Fset_mouse_position): Doc fix.
18002
180031998-11-20 Richard Stallman <rms@psilocin.ai.mit.edu>
18004
18005 * keymap.c (Fmake_keymap): Doc fix.
18006
180071998-11-17 Kenichi Handa <handa@etl.go.jp>
18008
18009 * category.c (word_boundary_p): If C1 or C2 are composite
18010 characters, test their first components.
18011
180121998-11-16 Richard Stallman <rms@sucrose.ai.mit.edu>
18013
18014 * window.c (temp_output_buffer_show): Around temp-buffer-show-hook,
18015 don't do save-excursion, just restore selected window.
18016
18017 * window.c (window_loop): For UNSHOW_BUFFER,
18018 always do consider minibuffer windows.
427ec082 18019
26901792
DL
180201998-11-16 Kenichi Handa <handa@etl.go.jp>
18021
18022 * charset.h (SINGLE_BYTE_CHAR_P): Check if C is negative or not.
18023
18024 * charset.c (non_ascii_char_to_string): If C is negative, signal error.
18025
18026 * lisp.h (CHAR_TABLE_REF): Check if IDX is negative or not.
18027
18028 * s/bsdos4.h: New file.
18029
180301998-11-16 Kenichi Handa <handa@etl.go.jp>
18031
18032 * Makefile.in (abbrev.o): Depend on charset.h
18033 (bytecode.o): Depend on charset.h.
18034
18035 * bytecode.c: Include charset.h.
18036
18037 * abbrev.c: Include charset.h.
18038
18039 * syntax.h (SYNTAX_ENTRY_INT): For a composite character, check
18040 the first component.
18041
180421998-11-13 Ehud Karni <ehud@unix.simonwiesel.co.il>
18043
18044 * m/aviion-intel.h (LIBS_MACHINE): Delete redundant definition.
18045
180461998-11-11 Richard Stallman <rms@gnu.org>
18047
18048 * xterm.c (XTread_socket): Fix previous change in case F == 0.
18049
18050 * s/dgux5-4-3.h (BSD_PGRPS): Add #undef.
18051
18052 * s/dgux4.h (BROKEN_FIONREAD): #undef commented out.
18053 (INTERRUPT_INPUT): #define commented out.
18054
18055 * m/aviion-intel.h: New file.
18056
180571998-11-11 Eli Zaretskii <eliz@delysid.gnu.org>
18058
18059 * fns.c (MAX_ALLOCA): New macro.
18060 (Fbase64_encode_region, Fbase64_encode_string,
18061 Fbase64_decode_region, Fbase64_decode_string): Don't allocate
18062 more than MAX_ALLOCA bytes with alloca; otherwise use xmalloc.
18063
180641998-11-11 Ken'ichi Handa <handa@delysid.gnu.org>
18065
18066 * insdel.c (byte_combining_error): Error message improved.
18067
18068 * charset.c (char_valid_p): Handle a composite character correctly.
18069
180701998-11-11 Kenichi Handa <handa@etl.go.jp>
18071
18072 * charset.c (str_cmpchar_id): Check the byte sequence for
18073 composition more rigidly.
18074 (Fcompose_string): Allow DEL to be composed. Signal error if STR
18075 contains an invalid multibyte sequence.
18076
18077 * xterm.c (x_list_fonts): Don't change the value of maxnames.
18078
180791998-11-10 Andrew Innes <andrewi@harlequin.co.uk>
18080
18081 * w32term.h (struct w32_display_info): New element faked_key.
427ec082
SS
18082 (WM_EMACS_SETKEYBOARDLAYOUT):
18083 (WM_EMACS_REGISTER_HOT_KEY):
26901792 18084 (WM_EMACS_UNREGISTER_HOT_KEY): New message definitions.
427ec082
SS
18085 (LEFT_WIN_PRESSED):
18086 (RIGHT_WIN_PRESSED):
26901792
DL
18087 (APPS_PRESSED): New console keyboard modifier flags.
18088
18089 * w32term.c (convert_to_key_event): Removed.
18090 (is_dead_key): Copied to w32fns.c.
18091 (w32_read_socket): Generate language_change_event. Modify to work
18092 with keyboard handling changes in w32_wnd_proc.
18093
18094 * w32proc.c (sys_kill): Set extended key flag when faking
18095 Ctrl-Break keystrokes.
18096 (Fw32_get_locale_info): Allow LONGFORM parameter to specify an
18097 arbitrary locale property using a numerical index.
18098 (Vw32_valid_codepages): New variable.
427ec082
SS
18099 (enum_codepage_fn):
18100 (Fw32_get_valid_codepages):
18101 (Fw32_get_console_codepage):
18102 (Fw32_set_console_codepage):
18103 (Fw32_get_console_output_codepage):
18104 (Fw32_set_console_output_codepage):
18105 (Fw32_get_codepage_charset):
18106 (Fw32_get_valid_keyboard_layouts):
18107 (Fw32_get_keyboard_layout):
26901792
DL
18108 (Fw32_set_keyboard_layout): New functions, exposing Windows locale
18109 handling functions.
18110 (syms_of_ntproc): Register them.
18111
18112 * w32inevt.c: Include w32term.h and w32heap.h.
18113 (map_keypad_keys):
18114 (Vw32_enable_caps_lock):
18115 (Vw32_enable_num_lock):
18116 (Vw32_pass_lwindow_to_system):
18117 (Vw32_pass_rwindow_to_system):
18118 (Vw32_lwindow_modifier):
18119 (Vw32_rwindow_modifier):
18120 (Vw32_apps_modifier):
18121 (Vw32_scroll_lock_modifier):
18122 (w32_key_to_modifier): Add externs.
18123 (w32_kbd_mods_to_emacs): Recognize Windows keys, Apps key, and
18124 Scroll Lock as potential modifiers; exclude numpad keys from
18125 effect by CapsLock; act on Vw32_enable_caps_lock; remove obsolete
18126 code.
18127 (is_dead_key): Copy from w32fns.c.
18128 (w32_kbd_patch_key): Comment attempt to improve handling of
18129 dead-keys, and system bug relating to same on Windows NT. Work
18130 around the bug by calling ToUnicode and then converting to the
18131 correct codepage.
18132 (map_virt_key): Removed obsolete variable.
18133 (lispy_function_keys): Add extern.
18134 (key_event): Major rework of keyboard input handling: optionally
18135 recognize Windows keys and Apps key as modifiers; optionally treat
18136 NumLock, CapsLock and ScrollLock as function keys; let system
18137 translate keystrokes to characters to avoid system bugs relating
18138 to dead-key handling; preserve shift distinction for control
18139 characters. Remove some obsolete code.
18140
18141 * makefile.nt ($(BLD)\w32inevt.obj): Add dependencies on w32term.h
18142 and w32heap.h.
18143
18144 * w32fns.c (Vw32_pass_optional_keys_to_system): Variable removed.
18145 (Vw32_pass_lwindow_to_system):
18146 (Vw32_pass_rwindow_to_system):
18147 (Vw32_lwindow_modifier):
18148 (Vw32_rwindow_modifier):
18149 (Vw32_apps_modifier):
18150 (Vw32_enable_num_lock):
18151 (Vw32_enable_caps_lock):
18152 (Vw32_scroll_lock_modifier): New variables.
18153 (modifier_set): Return toggle state for Scroll Lock.
18154 (w32_key_to_modifier): New function. Returns chosen modifier bit
18155 for given key.
18156 (w32_get_modifiers): Returns modifier flags for
18157 non-keyboard input events.
18158 (construct_console_modifiers): Renamed from construct_modifiers;
18159 recognize Windows and Apps keys as modifiers.
18160 (w32_get_key_modifiers): New function. Returns modifier flags for
18161 keyboard input events.
18162 (map_keypad_keys): Make non-static. Use second arg as extended
18163 flag.
18164 (w32_grabbed_keys): New variable.
18165 (HOTKEY, HOTKEY_ID, HOTKEY_VK_CODE, HOTKEY_MODIFIERS): New macros.
18166 (register_hot_keys):
18167 (unregister_hot_keys):
18168 (lookup_vk_code):
18169 (w32_parse_hot_key):
18170 (Fw32_register_hot_key):
18171 (Fw32_unregister_hot_key):
18172 (Fw32_registered_hot_keys):
18173 (Fw32_reconstruct_hot_key): New functions to support hotkeys.
18174 (post_character_message): New function.
18175 (w32_msg_pump): Handle new messages for using hotkeys and changing
18176 keyboard layout/language.
18177 (w32_wnd_proc): Major rework of keyboard input handling:
18178 optionally recognize Windows keys and Apps key as modifiers;
18179 optionally treat NumLock, CapsLock and ScrollLock as function
18180 keys; let system translate keystrokes to characters to avoid
18181 system bugs relating to dead-key handling; preserve shift
18182 distinction for control characters; forward keyboard
18183 layout/language changes to lisp; detect and convert hot-key events
18184 to normal keystrokes.
18185 (syms_of_w32fns): Register new functions and variables.
18186 (w32_last_error): New function for use in debugging.
18187
181881998-11-10 Kenichi Handa <handa@etl.go.jp>
18189
18190 * category.h (CATEGORY_SET): Adjusted for the change of
18191 cmpchar_component.
18192 (CATEGORY_SET): Likewise.
18193
18194 * charset.c (cmpchar_component): New arg NOERROR. Check
18195 composition char ID more strictly.
18196 (Fcmpchar_component): Call cmpchar_component with NOERROR arg zero.
18197 (Fcmpchar_cmp_rule): If CHARACTER should be composed relatively,
18198 return 255.
18199 (Fcompose_string): Signal error if STR contains a rule-based
18200 composition character.
18201
18202 * charset.h (cmpchar_component): Proto-type adjusted.
18203
182041998-11-09 Kenichi Handa <handa@etl.go.jp>
18205
18206 * charset.c (string_to_non_ascii_char): Return correct length for
18207 a charset of dimension 2 and composition character.
18208
182091998-11-08 Richard Stallman <rms@sucrose.ai.mit.edu>
18210
18211 * keymap.c (Fsingle_key_description): Handle generic characters.
18212
18213 * process.c (Fprocess_status): Doc fix.
18214
182151998-11-06 Ken'ichi Handa <handa@delysid.gnu.org>
18216
18217 * charset.c (init_charset_once): Fix previous change.
18218
182191998-11-06 Kenichi Handa <handa@etl.go.jp>
18220
18221 * charset.c (string_to_non_ascii_char): Fix previous change.
18222 (char_valid_p): Check the validity of CHARSET by CHARSET_DEFINED_P.
18223
18224 * charset.h (SPLIT_NON_ASCII_CHAR): Check dimension of an invalid
18225 character correctly.
18226 (STRING_CHAR): Handle an invalid charater correctly.
18227
182281998-11-05 Kenichi Handa <handa@etl.go.jp>
18229
18230 * charset.c (string_to_non_ascii_char): Fix previous change.
18231
18232 * charset.h (MAKE_NON_ASCII_CHAR): Check validity of CHARSET.
18233
18234 * editfns.c (Fstring_to_char): Don't return a multibyte character
18235 if STRING is a unibyte string.
18236
18237 * indent.c (MULTIBYTE_BYTES_WIDTH): Check validity of a multibyte
18238 character.
18239
18240 * xdisp.c (display_text_line): Check validity of a multibyte character.
18241 (display_string): Likewise. Handle an invalid character correctly.
18242
182431998-11-05 Karl Heuer <kwzh@gnu.org>
18244
18245 * insdel.c (Fcombine_after_change_execute): Return nil, not junk.
18246 If nothing to do, return immediately.
18247 (syms_of_insdel): Initialize combine_after_change_buffer.
18248
182491998-11-05 Richard Stallman <rms@gnu.org>
18250
18251 * xterm.c (XTread_socket): ButtonPress clears f->mouse_moved.
18252
182531998-11-04 Geoff Voelker <voelker@cs.washington.edu>
18254
18255 * w32term.c (w32_enable_unicode_output): Rename from
18256 w32_no_unicode_output.
18257 (w32_use_unicode_for_codepage, syms_of_w32term): Use new name
18258 and new semantics.
18259
182601998-11-04 Jason Rumney <jasonr@altavista.net>
18261
18262 * w32fns.c (w32_list_fonts): Report an error if a frame has not
18263 been created yet.
18264
18265 * w32term.c (dumpglyphs): Use FRAME_FONT for w32_fill_area.
18266
182671998-11-04 Kenichi Handa <handa@etl.go.jp>
18268
18269 * charset.c (string_to_non_ascii_char): Change the check for the
18270 varidity of multibyte form.
18271 (update_charset_table): Check validity of BYTES. Don't set
18272 bytes_by_char_head here.
18273 (init_charset_once): Set bytes_by_char_head completely.
18274
18275 * frame.c (do_switch_frame): Cancel previous change.
18276
18277 * print.c (print_string): Check validity of a character.
18278 (print): Likewise.
18279
18280 * sysdep.c [nec_ews_svr4]: Extern *_sobuf.
18281
18282 * m/ews4800.h, s/ux4800.h: New files.
18283
182841998-11-03 Theodore Jump <tjump@tertius.com>
18285
18286 * makefile.nt: Compile multiple source files when possible.
18287
18288 * w32faces.c (Qmouse_face): Replace definition with extern decl.
427ec082 18289
26901792
DL
182901998-11-03 Andrew Innes <andrewi@delysid.gnu.org>
18291
18292 * w32.c (stat): GetFileInformationByHandle can legitimately fail,
18293 so don't rely on it succeeding.
18294
18295 * w32fns.c (x_to_w32_font): Specify DEFAULT_CHARSET in the w32
18296 LOGFONT struct if x font doesn't specify the charset.
18297 (x_to_w32_charset): Change >= to == when testing results of
18298 stricmp.
18299
183001998-11-02 Richard Stallman <rms@sucrose.ai.mit.edu>
18301
18302 * fns.c (Frequire): New arg NOERROR.
18303
183041998-11-02 Andrew Innes <andrewi@harlequin.co.uk>
18305
18306 * fileio.c (Fsubstitute_in_file_name) [DOS_NT]: Fix typo.
18307
183081998-10-31 Richard Stallman <rms@psilocin.ai.mit.edu>
18309
18310 * xfaces.c (Qmouse_face): Replace definition with extern decl.
18311 (syms_of_xfaces): Initialization deleted.
18312
18313 * textprop.c (Qmouse_face): Variable definition moved here.
18314 (syms_of_textprop): Initialize it.
18315
18316 * data.c (set_internal): For built-in maybe-local vars,
18317 when BINDFLAG is set, do not mark them as local.
18318
183191998-10-31 Ken'ichi Handa <handa@delysid.gnu.org>
18320
18321 * insdel.c (replace_range): Fix previous change.
18322
183231998-10-31 Kenichi Handa <handa@etl.go.jp>
18324
18325 * editfns.c (Fsubst_char_in_region): Fix previous change.
18326 (Ftranslate_region): Fix previous change.
18327
18328 * fns.c (Fbase64_decode_region): Fix previous change.
18329
18330 * frame.c (do_switch_frame): Update minibuf_window if necessary.
18331
18332 * insdel.c (byte_combining_error): New function.
18333 (CHECK_BYTE_COMBINING_FOR_INSERT): Call byte_combining_error.
18334 (insert_from_string_1): Set *(GPT_ADDR) to 0 before calling
18335 CHECK_BYTE_COMBINING_FOR_INSERT.
18336 (insert_from_buffer_1): Likewise.
18337 (adjust_after_replace): Check the posibility of inhibitted byte
18338 combining correctly.
18339 (replace_range): Before signaling an error for inhibitted byte
18340 combining, recover the buffer in a safe state.
18341 (del_range_2): Check the posibility of inhibitted byte combining
18342 correctly.
18343
183441998-10-30 Andreas Schwab <schwab@delysid.gnu.org>
18345
18346 * xselect.c (Vselection_coding_system): Doc fix.
18347
18348 * fns.c (Fbase64_encode_region): Use SET_PT_BOTH instead of SET_PT
18349 when we have both char and byte position. Fix type clashes.
18350
18351 * eval.c (Fsignal): Use a separate format string when passing
18352 error message string to fatal, in case it contains %'s.
18353
18354 * editfns.c (Fchar_after): Fix type clashes.
18355
18356 * charset.c (Fchar_bytes): Doc fix.
18357 (char_bytes): Fix returned value to match returned type.
18358 (syms_of_charset): Fix type clash in initialisation of
18359 Vauto_fill_chars.
18360
183611998-10-29 Geoff Voelker <voelker@cs.washington.edu>
18362
18363 * w32console.c (initialize_w32_display): Use buffer coords
18364 instead of buffer size (which may be larger than the window).
18365
18366 * fileio.c (init_fileio_once): New function.
18367
18368 * emacs.c (main): Invoke init_fileio_once.
18369
183701998-10-28 Paul Eggert <eggert@twinsun.com>
18371
18372 * xterm.c (XTread_socket): Check the returned value of
18373 XmbLookupString more carefully.
18374
183751998-10-28 Kenichi Handa <handa@etl.go.jp>
18376
18377 * coding.c (DECODE_CHARACTER_ASCII): Check validity of inserted code.
18378 (DECODE_CHARACTER_DIMENSION1): Likewise.
18379 (DECODE_CHARACTER_DIMENSION2): Likewise.
18380 (decode_coding_sjis_big5): Check the 2nd byte of SJIS correctly.
18381
18382 * editfns.c (Fsubst_char_in_region): Fix previous change.
18383 (Ftranslate_region): Fix previous change.
18384
18385 * insdel.c (check_markers): Check if markers are at character boundry.
18386 (adjust_markers_for_insert): Fix previous change.
18387 (count_combining_before): Don't limit the check at BEGV.
18388 (count_combining_after): Don't limit the check at ZV.
18389 (CHECK_BYTE_COMBINING_FOR_INSERT): New macro.
18390 (insert_1_both): Call CHECK_BYTE_COMBINING_FOR_INSERT.
18391 (insert_from_string_1): Likewise.
18392 (insert_from_buffer_1): Likewise.
18393 (adjust_after_replace): Inhibit bytes combined across region
18394 boundary. Update end_unchanged correctly.
18395 (replace_range): Call CHECK_BYTE_COMBINING_FOR_INSERT. Update
18396 end_unchanged correctly.
18397 (del_range_2): Inhibit bytes combined across region boundary.
18398 Update end_unchanged correctly.
18399
184001998-10-27 Geoff Voelker <voelker@cs.washington.edu>
18401
18402 * w32.c (check_windows_init_file): Also look in load path specified
18403 in environment.
18404
18405 * w32console.c (Fset_message_beep): Recognize 'silent.
18406 (w32_sys_ring_bell): Do nothing for the 'silent sound.
427ec082 18407
26901792
DL
18408 * w32fns.c (w32_color_map_lookup): Remove duplicate definition.
18409
18410 * w32select.c (Vnext_selection_coding_system): New variable.
18411 (syms_of_w32select): DEFVAR_LISP it.
18412 (Fw32_set_clipboard_data): Use Vnext_selection_coding_system if
18413 non-nil. Always convert multibyte strings.
18414 (Fw32_get_clipboard_data): Use Vnext_selection_coding_system if
18415 non-nil. Always convert a string that includes non-ASCII characters.
427ec082 18416
26901792
DL
184171998-10-27 Richard Stallman <rms@psilocin.ai.mit.edu>
18418
18419 * fns.c (Fbase64_decode_string): Doc fix.
18420 (Fbase64_decode_region, Fbase64_encode_string Fbase64_encode_region):
18421 Likewise.
18422
184231998-10-27 Dave Love <fx@gnu.org>
18424
18425 * fns.c (Fbase64_decode_region, Fbase64_encode_region): Fix
18426 newline in doc string.
18427
184281998-10-27 Kenichi Handa <handa@etl.go.jp>
18429
18430 * editfns.c (Fsubst_char_in_region): Correctly handle the case
18431 that byte combining before happens.
18432 (Ftranslate_region): Likewise.
18433
18434 * insdel.c (adjust_after_replace): Correctly handle the case that
18435 both byte combining before and byte combining after happen.
18436 (replace_range): Likewise.
18437
184381998-10-26 Kenichi Handa <handa@etl.go.jp>
18439
18440 * category.c (syms_of_category): Doc-string modified.
18441
18442 * coding.c (code_convert_region): Kill the work buffer created by
18443 pre-write-conversion.
18444
184451998-10-25 Jason Rumney <jasonr@altavista.net>
18446
18447 * emacs.c (main) [HAVE_NTGUI]: Invoke syms_of_fontset().
18448
184491998-10-23 Kenichi Handa <handa@etl.go.jp>
18450
18451 * coding.c (code_convert_region): While preserving the orignal
18452 point, pay attention to the byte combining problem.
18453
18454 * fns.c (Fbase64_decode_region): Pay attention to the byte
18455 combining problem.
18456
18457 * insdel.c (adjust_markers_for_insert): Adjust markers by taking
18458 combined_before_bytes and combined_after_bytes into account.
18459 (count_combining_after): Handle the case that LENGTH is zero.
18460 (adjust_after_replace): Record deletion at correct buffer
18461 position. Handle the case that LEN is zero.
18462 (replace_range): Record deletion at correct buffer position.
18463 (del_range_2): Call adjust_makers_for_replace to adjust makers for
18464 combined bytes.
18465
184661998-10-21 Richard Stallman <rms@psilocin.ai.mit.edu>
18467
18468 * alloc.c (Fgarbage_collect): Block input around most of the function.
427ec082 18469
26901792
DL
184701998-10-21 Kenichi Handa <handa@etl.go.jp>
18471
18472 * coding.c (setup_coding_system): Fix setting up
18473 coding->spec.ccl.valid_codes for CCL based coding system.
18474 (code_convert_region): Set point to FROM before inserting the
18475 result of pre-write-funciton. Preserve original point.
18476 (code_convert_string): If coding->type is coding_type_ccl, do
18477 conversion even if the length of conversion region is zero.
18478
18479 * fontset.c: Include frame.h before fontset.h.
427ec082 18480 (list_fonts_func): Fix prototype.
26901792
DL
18481
18482 * frame.c: Include frame.h before fontset.h.
18483
18484 * xterm.c: Likewise.
18485
184861998-10-21 Jason Rumney <jasonr@altavista.net>
18487
18488 * x-list-font.c (Fx_list_fonts): Access frame parameters throught
18489 general macros. Don't call x_list_font directory, instead call a
18490 function set in list_fonts_func.
18491
18492 * fontset.h (list_fonts_func): Fix prototype.
18493
184941998-10-20 Jason Rumney <jasonr@altavista.net>
18495
18496 * makefile.nt (w32fns.c): Add x-list-font.c to dependancies.
18497
18498 * w32faces.c: Update comments referring to obsolete structs.
18499 (allocate_face, copy_face, face_eql, load_font,
18500 Fpixmap_spec_p, free_frame_faces, new_computed_face,
18501 frame_update_line_height, merge_faces, compute_base_face,
18502 Fset_face_attribute_internal): Use fontset support based on xfaces.c.
18503
18504 * w32fns.c: (Vx_pixel_size_width): New global variable.
18505 (unibyte_display_via_language_environment): New global variable.
18506 (x_set_font): Add support for setting fontsets.
18507 (Fx_create_frame): Add check_w32(). Initialize fontsets. Fix
18508 font names to match xlfd-tight-regexp.
18509 (w32_load_font): Rewrite based on x_load_font.
18510 (x_to_w32_charset, w32_to_x_charset): Add character sets. Use
18511 `iso8859-1' rather than `ansi'.
18512 (w32_to_x_font): Remove `-' from font name. Remove the `-' off the
18513 end. Move charset into `charset registry' field.
18514 (enum_font_cb2): Check charsets match. Include width in font list.
18515 (w32_list_fonts): Rewrite based on x_list_fonts.
18516 Moved from w32term.c to have access to enumfont_t struct.
18517 (Fx_list_fonts): w32 specific version eliminated. Include
18518 `x-list-fonts.c'.
18519 (w32_get_font_info, w32_query_font, w32_find_ccl_program): New
18520 functions for fontset support - adapted from x_ equivalents.
18521 (syms_of_w32fns): New lisp variables initialised. Function
18522 pointers for fontset.c set up.
18523
427ec082 18524 * w32term.c: Include fontset.h. Define codepage macros.
26901792
DL
18525 Add ENCODE_BIG5 macro from coding.c.
18526 (w32_no_unicode_output): New variable.
18527 (w32_codepage_for_charset, w32_use_unicode_for_codepage): New
18528 functions.
18529 (BUILD_WCHAR_T, BYTE1, BYTE2): New macros.
18530 (dumpglyphs): Rewrite based on xterm.c equivalent.
18531 (x_new_font): Use functionality provided in fontset.c.
18532 (x_new_fontset): New function based on the one in xterm.c.
18533 (syms_of_w32term): Add w32-no-unicode-output flag.
18534
427ec082 18535 * w32term.h: Remove redundant font_info struct definition.
26901792
DL
18536 (Vx_pixel_size_width_font_regexp,
18537 unibyte_display_via_language_environment): Declare variables.
427ec082 18538 (w32_list_fonts, w32_get_font_info, w32_query_font, w32_load_font):
26901792
DL
18539 Declare functions.
18540 (w32_output): New fields font_baseline and fontset.
18541 (FRAME_FONTSET, FRAME_W32_FONT_TABLE): New macros.
18542
18543 * w32xfns.c: Include charset.h and fontset.h.
18544
185451998-10-20 Richard Stallman <rms@psilocin.ai.mit.edu>
18546
18547 * syntax.c (syms_of_syntax): Fix the setup of Qscan_error.
18548
185491998-10-20 Eli Zaretskii <eliz@mescaline.gnu.org>
18550
18551 * msdos.c (mouse_init): Reset the button press/release info of the
18552 mouse driver.
18553 (mouse_preempted): New variable.
18554 (dos_rawgetc): Don't generate mouse events if mouse is preempted.
18555 (XMenuActivate): Preempt the mouse during menu-handling loop.
18556 Release the current time slice while idling in the menu-handling
18557 loop. Leave the loop only if the user pressed, then released the
18558 same button. Discard all mouse events that are pending in the
18559 event queue before exiting.
18560
185611998-10-19 Richard Stallman <rms@psilocin.ai.mit.edu>
18562
18563 * editfns.c (Fformat): Increase buffer size for floating format.
18564
185651998-10-17 Kenichi Handa <handa@etl.go.jp>
18566
18567 * charset.c (Vauto_fill_chars, Qauto_fill_chars): New variables.
18568 (syms_of_charset): Staticpro and initialize Qauto_fill_chars.
18569 Declare auto-fill-chars as a Lisp variable and initialize it.
18570
18571 * charset.h (Vauto_fill_chars): Extern it.
18572
18573 * cmds.c (internal_self_insert): Check Vauto_fill_chars.
18574
185751998-10-16 Kenichi Handa <handa@etl.go.jp>
18576
18577 * casefiddle.c (casify_object): Use make_string instead of
18578 make_specified_string to cope with byte-combining situation.
18579
18580 * coding.c (decode_coding_iso2022): Set coding->fake_multibyte to
18581 1 when encountered with a code of the range 0x80..0x9F.
18582
185831998-10-14 Eli Zaretskii <eliz@mescaline.gnu.org>
18584
18585 * callproc.c (Fcall_process) [MSDOS]: Use $TMPDIR instead of
18586 trying $TMP and $TEMP, since the former is always set in msdos.c.
18587 (Fcall_process_region) [DOS_NT]: When looking for a place to put
18588 the temporary files, check $TMPDIR as well.
18589
185901998-10-14 Richard Stallman <rms@psilocin.ai.mit.edu>
18591
427ec082 18592 * process.c (exec_sentinel, read_process_output):
26901792
DL
18593 Restore waiting_for_user_input_p after running Lisp code.
18594
18595 * keyboard.c (parse_menu_item): Avoid initialization for Lisp_Object.
18596 (command_loop): Likewise.
18597
185981998-10-14 Kenichi HANDA <handa@etl.go.jp>
18599
18600 * data.c (Faset): Fix previous change.
18601
18602 * fns.c (Ffillarray): Fix previous change.
18603
18604 * insdel.c (adjust_markers_for_combining): This function deleted.
18605 (adjust_markers_for_replace): Correctly adjust marker positions.
18606 Don't record these adjustment because they were recorded already.
18607 (combine_bytes): Don't adjust markers here.
18608
186091998-10-13 Richard Stallman <rms@psilocin.ai.mit.edu>
18610
18611 * minibuf.c (Fdisplay_completion_list): Put on mouse-face properties.
18612
186131998-10-12 Richard Stallman <rms@psilocin.ai.mit.edu>
18614
18615 * keyboard.c (Fclear_this_command_keys): New function.
18616 (syms_of_keyboard): defsubr it.
18617
18618 * macros.c (Fexecute_kbd_macro): Set real_this_command.
18619
186201998-10-12 Kenichi Handa <handa@etl.go.jp>
18621
18622 * ccl.c (CCL_DECODE_SJIS, CCL_ENCODE_SJIS): Swap the definitions.
18623
18624 * charset.c (Fstring): Call make_string instead of
18625 make_string_from_bytes.
18626 (Ffind_charset_region): Include `composition' in the returned list
18627 if the region contains any composite characters.
18628 (Ffind_charset_string): Include `composition' in the returned list
18629 if the string contains any composite characters.
18630 (find_charset_in_str): Handle CMPCHARP arg correctly.
18631
18632 * coding.c (shrink_decoding_region): If a charset other than ascii
18633 is initially designated to G0, don't shrink the region.
18634 (shrink_encoding_region): Likewise.
18635
18636 * data.c (Faset): If ARRAY is a multibyte string, pay attention to
18637 byte-combining situation.
18638
18639 * fns.c (clear_string_char_byte_cache): New function.
18640 (Ffillarray): Handle multibyte string correctly.
18641
18642 * lisp.h (clear_string_char_byte_cache): Extern it.
18643
18644 * xselect.c (lisp_data_to_selection_data): Call
18645 find_charset_in_str with CMPCHARP arg 0.
18646 * w16select.c (Fw16_set_clipboard_data): Likewise.
18647 * w32select.c (Fw32_set_clipboard_data): Likewise.
18648
186491998-10-11 Richard Stallman <rms@psilocin.ai.mit.edu>
18650
18651 * keyboard.c (parse_menu_item): For top level of menu bar,
18652 accept ordinary commands, and treat them just like a keymap.
18653
186541998-10-11 Richard Stallman <rms@sucrose.ai.mit.edu>
18655
18656 * xdisp.c (redisplay_window): Clear w->window_end_valid
18657 before running the window-scroll-functions hook, if appropriate.
18658
186591998-10-10 Richard Stallman <rms@psilocin.ai.mit.edu>
18660
18661 * data.c (Fstring_to_number): Don't recognize floating point
18662 if base is not 10.
18663
18664 * window.c (window_loop): New alternative CHECK_ALL_WINDOWS.
18665 (check_all_windows): New function for debugging tests.
18666 (syms_of_window): Initialize it.
18667
18668 * window.c (Qwindow_configuration_p): New variable.
18669 (Fwindow_configuration_frame): New function.
18670 (syms_of_window): defsubr it.
18671 (Fset_window_configuration): Return t if frame is live.
18672 Use Qwindow_configuration_p.
18673
18674 * xfns.c (check_x_display_info): Don't use selected_frame
18675 if it is dead.
18676
186771998-10-09 Geoff Voelker <voelker@cs.washington.edu>
18678
18679 * w32fns.c (x_create_bitmap_from_file): Skip special files.
18680
186811998-10-08 Kenichi Handa <handa@etl.go.jp>
18682
18683 * buffer.h (inhibit_modification_hooks): Extern it.
18684
18685 * buffer.c (inhibit_modification_hooks): New variable.
18686 (init_buffer_once): Initialize inhibit_modification_hooks to 0.
18687
18688 * charset.c (invalid_character): Prepend `0' to octal
18689 representation. Give error sufficient args.
18690
18691 * coding.c (code_convert_region): Set inhibit_modification_hooks
18692 to 1 before calling Fset_text_properties.
18693
18694 * insdel.c (signal_before_change): If inhibit_modification_hooks
18695 is nonzero, do nothing.
18696 (signal_after_change): Likewise.
18697
186981998-10-08 Emilio Lopes <Emilio.Lopes@Physik.TU-Muenchen.DE>
18699
18700 * process.c: Doc fixes.
18701
187021998-10-08 Richard Stallman <rms@sucrose.ai.mit.edu>
18703
18704 * syntax.c (scan_lists): Bring FROM back into range BEGV...ZV.
18705
187061998-10-07 Geoff Voelker <voelker@cs.washington.edu>
18707
18708 * w32.c (init_ntproc): Check for Windows init file.
18709 (term_ntproc): Do not check for it here.
18710
187111998-09-28 Kenichi Handa <handa@etl.go.jp>
18712
18713 * coding.c (check_composing_code): Fix previous change. Now it
18714 alwasy returns 0 or -1.
18715 (decode_coding_iso2022): Adjusted for the above change.
18716 (encode_coding_iso2022): When encoding the last block, flush out
18717 tailing garbage bytes.
18718 (setup_coding_system): Delete unnecessary code.
18719 (shrink_decoding_region): Check translation table. If ASCII
18720 should be translated, give up shrinking.
18721 (shrink_encoding_region): Likewise.
18722 (SHRINK_CONVERSION_REGION_THRESHHOLD): New macro.
18723 (SHRINK_CONVERSION_REGION): New macro.
18724 (code_convert_region): Call SHRINK_CONVERSION_REGION. Delete text
18725 properties here.
18726 (code_convert_region): In the case of encoding, always calulate
18727 correct character number.
18728 (code_convert_string): Call SHRINK_CONVERSION_REGION.
18729 (code_convert_region1): Don't delete text properties here.
18730
18731 * insdel.c (adjust_after_replace): Don't delete text properties here.
18732
18733 * term.c (encode_terminal_code): Handle raw 8-bit codes correctly.
18734
187351998-09-27 Richard Stallman <rms@psilocin.ai.mit.edu>
18736
18737 * emacs.c (sort_args): Fill extra space with NULL ptrs.
18738
187391998-09-26 Kenichi Handa <handa@etl.go.jp>
18740
18741 * coding.h (struct coding_system): New member composed_chars.
18742
18743 * coding.c (check_composing_code): If the current composing
18744 sequence doesn't end properly, return -1.
18745 (DECODE_CHARACTER_ASCII): Update coding->composed_chars.
18746 (DECODE_CHARACTER_DIMENSION1): Likewise.
18747 (decode_coding_iso2022): Check validity of a composing sequence.
18748 (code_convert_string): If the length of text to be converted is
18749 shrunk to zero, don't perform code conversion.
18750 (shrink_decoding_region): Fix previous change.
18751
18752 * editfns.c (Fformat): Check format control characters.
18753
187541998-09-25 Kenichi Handa <handa@etl.go.jp>
18755
18756 * coding.c (decode_eol): While decoding DOS-like eol, handle a
18757 single CR code correctly.
18758 (shrink_decoding_region) <CODING_CATEGORY_IDX_ISO_7 or
18759 CODING_CATEGORY_IDX_ISO_7_TIGHT>: Skip also 8-bit codes.
18760
187611998-09-23 Geoff Voelker <voelker@cs.washington.edu>
18762
18763 * w32fns.c (w32_color_map_lookup): New function.
18764 (x_to_w32_color): Approximate colors ending in numbers if necessary.
18765
187661998-09-22 Kenichi Handa <handa@etl.go.jp>
18767
18768 * ccl.c (ccl_driver): Report correct CCL program counter on error.
18769
18770 * xmenu.c (single_submenu) [! HAVE_MULTILINGUAL_MENU]: Make
18771 strings unibyte.
18772 (xmenu_show) [! HAVE_MULTILINGUAL_MENU]: Likewise.
18773
187741998-09-22 Kenichi Handa <handa@etl.go.jp>
18775
18776 * callint.c (Fcall_interactively): Don't use input method when
18777 reading a character in the case of `c' code letter.
18778
187791998-09-21 Dave Love <fx@gnu.org>
18780
18781 * editfns.c (Fsave_restriction): Doc fix.
18782
187831998-09-21 Richard Stallman <rms@gnu.org>
18784
18785 * lread.c (build_load_history): Do add to Vload_history
18786 even when dumping Emacs.
18787
187881998-09-18 Kenichi Handa <handa@etl.go.jp>
18789
18790 * ccl.c (CCL_WRITE_CHAR): Don't use bcopy.
18791 (ccl_driver): If BUFFER-MAGNIFICATION of the CCL program is 0,
18792 cause error if the program is going to output some bytes. When
18793 outputing a string to notify an error, check the case that
18794 DST_BYTES is zero.
18795
427ec082 18796 * coding.h (CODING_FINISH_INTERRUPT): New macro.
26901792
DL
18797
18798 * coding.c (ccl_coding_driver): If ccl_driver is interrupted by a
18799 user or the CCL program executed an invalid command, return
18800 CODING_FINISH_INTERRUPT.
18801 (code_convert_region): Pay attention to the converters return
18802 value CODING_FINISH_NORMAL and CODING_FINISH_INTERRUPT.
18803
188041998-09-16 Kenichi Handa <handa@etl.go.jp>
18805
18806 * coding.c (code_convert_region): Update beg_unchanged and
18807 end_unchanged after we delete the source text.
18808
18809 * insdel.c (adjust_markers_for_replace): Don't adjust a byte
18810 position if it is FROM.
18811 (adjust_markers_for_combining): New function.
18812 (combine_bytes): Call adjust_markers_for_combining instead of
18813 adjust_markers_for_replace.
18814 (adjust_after_replace): Record deletion of combining after bytes
18815 with the correct position.
18816 (replace_range): Likewise. Record the actual deletion after
18817 recoding deletions of combining bytes.
18818
18819 * xdisp.c (message_log_check_duplicate): Count byte length of the
18820 latest message correctly.
18821
188221998-09-12 Richard Stallman <rms@gnu.org>
18823
18824 * xdisp.c (redisplay_internal): Use TEMP_SET_PT_BOTH
18825 instead of SET_PT_BOTH.
18826 (try_window_id, display_text_line): Likewise.
18827
188281998-09-12 Karl Heuer <kwzh@gnu.org>
18829
18830 * data.c (Fmake_local_variable): Doc fix.
18831
188321998-09-10 Dave Love <fx@gnu.org>
18833
18834 * print.c (Fwith_output_to_temp_buffer): Doc fix.
18835
188361998-09-10 Richard Stallman <rms@gnu.org>
18837
18838 * s/irix6-0.h (TIOCSIGSEND): Add #undef.
18839 (bcopy, bcmp, bzero): Add #undef.
18840
18841 * keyboard.c (command_loop_1): When switching to selected window's bfr,
18842 first exit if selected frame is dead (no live frames remain).
18843 (read_key_sequence): Likewise.
18844
188451998-09-10 Karl Heuer <kwzh@gnu.org>
18846
18847 * emacs.c (main): Mention --display and --eval in help.
18848
188491998-09-07 Paul Eggert <eggert@twinsun.com>
18850
18851 * editfns.c (emacs_memftime): New function.
18852 (Fformat_time_string): Use it to handle null bytes in formats
18853 correctly.
18854
188551998-09-08 Kenichi Handa <handa@etl.go.jp>
18856
18857 * charset.c (Ffind_charset_region): Optimization for unibyte buffer.
18858 (Ffind_charset_string): For unibyte string, return (ascii).
18859
18860 * editfns.c (Fsubst_char_in_region): Call replace_range with the
18861 arg MARKERS 1.
18862
18863 * insdel.c (adjust_after_replace): Don't add combining bytes to
18864 the args given to adjust_point. Handle correctly the case that
18865 there are both before and after combining bytes.
18866 (replace_range): Likewise.
18867
188681998-09-07 Lars Magne Ingebrigtsen <larsi@gnus.org>
18869
18870 * fns.c (base64_decode_1, base64_encode_1): New functions.
18871 (Fbase64_decode_string, Fbase64_encode_string): New functions.
18872 (Fbase64_decode_region, Fbase64_encode_region): New functions.
18873
188741998-09-07 Karl Heuer <kwzh@gnu.org>
18875
18876 * eval.c (error): After enlarging buffer, write to it, not to buf.
18877
18878 * fns.c (Fwidget_put): Return VALUE instead of garbage.
18879
188801998-09-07 Kenichi Handa <handa@etl.go.jp>
18881
18882 * charset.h (STRING_CHAR_AND_LENGTH): Return correct value in
18883 ACTUAL_LEN even if LEN is too short to have a valid multibyte form.
18884 (STRING_CHAR_AND_CHAR_LENGTH): Likewise.
18885
18886 * coding.c (ccl_coding_driver): Always calculate correct mulibyte
18887 chars in produced byte sequence.
18888 (Ffind_operation_coding_system): Doc-string fixed.
18889
18890 * insdel.c (count_combining_after): Check also preceding bytes at
18891 POS if all characters in STRING are not character head.
18892
188931998-09-06 Paul Eggert <eggert@twinsun.com>
18894
18895 * editfns.c (Fformat_time_string, Fdecode_time, Fcurrent_time_zone):
18896 Don't assume that localtime and gmtime return non-NULL.
18897
188981998-09-06 Lars Magne Ingebrigtsen <larsi@gnus.org>
18899
18900 * fns.c (Fbase64_decode_string, Fbase64_encode_string,
18901 base64_decode_1, Fbase64_decode_region, Fbase64_encode_region):
18902 New functions.
18903
189041998-09-06 Richard Stallman <rms@gnu.org>
18905
18906 * editfns.c (Fformat): Detect incomplete format spec at string's end.
18907
18908 * lread.c (Fload): Handle case where openp finds a magic file
18909 but it has no `load' handler or that handler calls `load'.
18910 If FOUND != FILE, find FOUND's handler even if inhibited for FILE.
18911
189121998-09-04 Dave Love <fx@gnu.org>
18913
18914 * buffer.c (enable-multibyte-characters): Doc fix.
18915
189161998-09-02 Geoff Voelker <voelker@cs.washington.edu>
18917
18918 * w32heap.c (allocate_heap): Define NTHEAP_PROBE_BASE by default.
18919
189201998-09-01 Kenichi Handa <handa@etl.go.jp>
18921
18922 * editfns.c (Ftranspose_regions): Use BYTE_POS_ADDR to get an
18923 address in buffer from byte-position.
18924
189251998-09-01 Eli Zaretskii <eliz@delysid.gnu.org>
18926
18927 * w16select.c (Vnext_selection_coding_system): New variable.
18928 (syms_of_win16select): DEFVAR_LISP it. No need to staticpro
18929 Vselection_coding_system.
18930 (Fw16_set_clipboard_data): Always convert multibyte strings. Use
18931 Vnext_selection_coding_system if non-nil.
18932 (Fw16_get_clipboard_data): Always convert a string that includes
18933 non-ASCII characters. Use Vnext_selection_coding_system if
18934 non-nil.
18935
189361998-08-31 Andrew Innes <andrewi@harlequin.co.uk>
18937
18938 * w32fns.c (w32_wnd_proc): Always zero button_state when releasing
18939 mouse capture.
18940
189411998-08-31 Kenichi Handa <handa@etl.go.jp>
18942
18943 * xterm.c (x_load_font): If SIZE is 0, don't use a name
18944 x_list_font returns.
18945
189461998-08-31 Paul Eggert <eggert@twinsun.com>
18947
18948 * lread.c (read1): Don't assume that atof ("-0.0") yields +0.0.
18949 Handle leading '-' uniformly for zeros, infinities, and NaNs.
18950
189511998-08-31 Eli Zaretskii <eliz@delysid.gnu.org>
18952
18953 * msdos.c (IT_cmgoto): When tracking echo area messages with the
18954 cursor, save and restore previous cursor position in the
18955 minibuffer.
18956
189571998-08-31 Kenichi Handa <handa@etl.go.jp>
18958
18959 * charset.c (unibyte_char_to_multibyte):
18960 Vnonacii_translation_table will convert a 7-bit charcater.
18961 (multibyte_char_to_unibyte): Handle the case that
18962 Vnonacii_translation_table converts a multibyte charcater to a
18963 unibyte charcter of less than 128.
18964 (init_charset_once): Initialize nonascii_insert_offset and
18965 Vnonacii_translation_table.
18966
18967 * coding.c (decode_coding): Even if SRC_BYTES is zero, try
18968 processing if CODING requires flushing.
18969 (encode_coding): Likewise.
18970 (code_convert_region): Likewise.
18971 (code_convert_string): Likewise.
18972
18973 * fns.c (concat): If Vnonascii_translation_table is non-nil, try
18974 to convert a character less than 160 to multibyte.
18975 * insdel.c (copy_text): Likewise.
18976 (count_size_as_multibyte): Likewise.
18977 * xterm.c (dumpglyphs): Likewise.
18978
189791998-08-29 Paul Eggert <eggert@twinsun.com>
18980
18981 * data.c (arith_driver, float_arith_driver): Compute (- x) by
18982 using negation, not subtraction; this makes a difference with
18983 IEEE floating point arithmetic (and also if integer arithmetic
18984 is ones' complement or signed-magnitude!).
18985
189861998-08-29 Karl Heuer <kwzh@gnu.org>
18987
18988 * xfns.c (x_create_bitmap_from_file): Fail immediately if magic.
18989
189901998-08-28 Ken'ichi Handa <handa@delysid.gnu.org>
18991
18992 * charset.c (Fchar_bytes): Add \n\ in doc-string.
18993
189941998-08-28 Paul Eggert <eggert@twinsun.com>
18995
18996 * s/sol2-4.h (NOT_USING_MOTIF): New macro.
18997 (LD_SWITCH_SYSTEM_TEMACS): Put /usr/dt/lib in the link library
18998 path only if we're not building with Motif.
18999
190001998-08-28 Kenichi Handa <handa@etl.go.jp>
19001
19002 * insdel.c (adjust_after_replace): Fix the code to record undo
19003 information for the case that `before combining' happens. Remove
19004 text properties which are added to the new text by
19005 offset_intervals.
19006
19007 * coding.c (code_convert_region1): Remove all text properties of
19008 the region.
19009
190101998-08-28 Kenichi Handa <handa@etl.go.jp>
19011
19012 * charset.h (CHAR_BYTES): New macro.
19013
19014 * charset.c (Fchar_bytes): Now always return 1.
19015 (char_bytes): New function.
19016
19017 * editfns.c (Fposition_bytes): If the arg POSITION is out of
19018 range, return nil.
19019 (Fbyte_to_position): If the arg BYTEPOS is out of range, return
19020 nil.
19021
19022 * data.c (Faset): Use macro CHAR_BYTES instead of Fchar_bytes.
19023 * fns.c (concat): Likewise.
19024 * insdel.c (count_size_as_multibyte): Likewise.
19025 * xdisp.c (message_dolog): Likewise.
19026
190271998-08-27 Kenichi Handa <handa@etl.go.jp>
19028
19029 * coding.c (detect_coding_iso2022): Handle ESC N and ESC O
19030 correctly. They are for SS2 and SS3 respectively.
19031 (ccl_coding_driver): Fix previous change.
19032
190331998-08-26 Paul Eggert <eggert@twinsun.com>
19034
19035 * xterm.c (fixup_locale): New function. For now, it resets
19036 LC_TIME to "C" (reverting the 1998-08-07 change), and also
19037 resets LC_MESSAGES to "C".
19038 (x_term_init): Use it to fix up the locale after setlocale
19039 (LC_ALL, "").
19040
190411998-08-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
19042
19043 * xterm.c (x_calc_absolute_position): Cast argument to XFree, in
19044 case it was prototyped the old way.
19045
190461998-08-25 Kenichi Handa <handa@etl.go.jp>
19047
19048 * xterm.c (x_list_fonts): Work-around for the case XGetAtomName
19049 returns a null string. This happens when dxpc 3.7 is being used.
19050
190511998-08-24 Andreas Schwab <schwab@delysid.gnu.org>
19052
19053 * keyboard.c (input-method-previous-message): Doc fix.
19054
19055 * coding.c (file-coding-system-alist,
19056 select-safe-coding-system-function): Doc fix.
19057
190581998-08-23 Kenichi HANDA <handa@etl.go.jp>
19059
19060 * coding.c (detect_coding_iso2022): Don't check the byte length of
19061 succeeding codes (0xa0..0xFF) if the codes follows single shift
19062 code (SS2 or SS3).
19063
190641998-08-21 Ken'ichi Handa <handa@delysid.gnu.org>
19065
19066 * coding.c (detect_coding_system): If detect_eol_type returns
19067 CODING_EOL_INCONSISTENT, set eol_type to CODING_EOL_UNDECIDED
19068 correctly.
19069
19070See ChangeLog.7 for earlier changes.