(coding_restore_composition): Pay attention to the case that
[bpt/emacs.git] / src / ChangeLog
CommitLineData
99bb2c60
KH
12000-08-04 Kenichi Handa <handa@etl.go.jp>
2
3 * coding.c (decode_coding_iso2022): More strict check for handling
4 single shifting.
5
f4988be7
GM
62000-08-03 Gerd Moellmann <gerd@gnu.org>
7
8 * s/ia64.h: New file.
9
10 * widget.c (set_frame_size, update_wm_hints, EmacsFrameSetValues):
11 Use NULL instead of 0 at the end of variable argument list of
12 XtVaGetValues and XtVaSetValues, because 0 fails on systems where
13 sizeof (int) < sizeof (void *).
14
15 * xmenu.c (update_frame_menubar): Use NULL instead of 0 at the end
16 of variable argument lists of XtVaGetValues and XtVaSetValues.
17
18 * xfns.c (Fx_file_dialog): Use NULL instead of 0 at the end of
19 variable argument lists of XtVaGetValues and XtVaSetValues.
20
ead53494
GM
212000-08-02 Gerd Moellmann <gerd@gnu.org>
22
23 * alloc.c (lisp_malloc, lisp_free): Use size_t and POINTER_TYPE.
24 (xrealloc, xmalloc): Use size_t. Some callers adjusted.
25
26 * lisp.h (Fsingle_key_description, xmalloc, xrealloc): Change
27 prototype.
28
29 * keyboard.c (read_char_minibuf_menu_prompt): Add new parameter
30 in call to Fsingle_key_description.
31
32 * keymap.c (Fsingle_key_description): Add parameter NO_ANGLES.
33 Callers changed.
34
352000-08-02 Colin Walters <walters@cis.ohio-state.edu>
36
37 * window.c (display_buffer_reuse_frames): New variable.
38 (Fdisplay_buffer): If display_buffer_reuse_frames is set, reuse
39 frames displaying BUFFER.
40 (syms_of_window): Define Lisp variable
41 display-buffer-reuse-frames.
42
10b0f752
MB
432000-08-01 Miles Bader <miles@gnu.org>
44
45 * editfns.c (Fconstrain_to_field): Fix the conditions for deciding
46 when to constrain NEW_POS (they were pretty screwed up before).
47
16425c4a
EZ
482000-07-31 Eli Zaretskii <eliz@is.elta.co.il>
49
50 * msdos.c (run_msdos_command): Save and restore the master
51 environment, for the case that child_setup signals an error.
52 When mirroring slashes in DOS shell commands, don't fail when
53 argv[2] has embedded blanks.
da288c14
EZ
54 (Fmsdos_set_mouse_buttons, mouse_setup_buttons): New functions.
55 (syms_of_msdos): Defsubr Fmsdos_set_mouse_buttons.
56 (dos_ttraw): Call mouse_setup_buttons.
16425c4a
EZ
57
58 * callproc.c (child_setup) [MSDOS]: malloc pwd_var instead of
59 using alloca; free it after run_msdos_command returns.
60
27f73852
DL
612000-07-27 Dave Love <fx@gnu.org>
62
63 * s/irix6-5.h (IRIX_FORCE_32_BITS, LD_SWITCH_SYSTEM): Don't
64 define.
65 [_MIPS_SZLONG == 64]: Set up for 64-bit mode -- not currently
66 working.
67
68 * m/iris4d.h (XUINT, XSET, XUNMARK) [_LP64]: Don't define.
69
c0261b5e
EZ
702000-07-27 Eli Zaretskii <eliz@is.elta.co.il>
71
72 * editfns.c (lisp_time_argument): Fix last change.
73
b548072f
GM
742000-07-27 Gerd Moellmann <gerd@gnu.org>
75
3ab82477
GM
76 * fns.c (Fdelete): Make it work on vectors and strings in addition
77 to lists.
78
b548072f
GM
79 * fns.c (Qkey_or_value, Qkey_and_value): New variables.
80 (syms_of_fns): Initialize new variables.
81 (sweep_weak_table): Handle weakness `key-or-value' and
82 `key-and-value'.
83 (Fmake_hash_table): Recognize `key-and-value' and `key-or-value'
84 weakness, with t meaning the same as `key-and-value'.
85
91ae8751
KH
862000-07-27 Kenichi Handa <handa@etl.go.jp>
87
88 * coding.h (struct coding_system): Member safe_charset deleted.
89
90 * coding.c (Qsafe_charsets): This variable deleted.
91 (Qsafe_chars, Vchar_coding_system_table, Qchar_coding_system): New
92 variables.
93 (coding_safe_chars): New function.
94 (CODING_SAFE_CHAR_P): New macro.
95 (CHARSET_OK): New arg C. Call CODING_SAFE_CHAR_P instead of
96 checking safe_charsets member of the coding system. Caller
97 changed.
98 (detect_coding_iso2022): New local variable safe_chars.
99 (DECODE_DESIGNATION): Call CODING_SAFE_CHAR_P instead of checking
100 safe_charsets member of the coding system.
101 (decode_coding_iso2022): New local variable safe_chars.
102 (ENCODE_ISO_CHARACTER_DIMENSION1): Don't check unsafe chars here.
103 (ENCODE_ISO_CHARACTER_DIMENSION2): Likewise.
104 (ENCODE_ISO_CHARACTER): Arguments changed. Caller changed.
105 (ENCODE_UNSAFE_CHARACTER): New macro.
106 (encode_coding_iso2022): New local variable safe_chars. Check
107 unsafe chars.
108 (setup_coding_system): Delete the code to initialize
109 coding->safe_charses
110 (intersection, find_safe_codings): New functions.
111 (Ffind_coding_systems_region_internal): New function.
112 (syms_of_coding): Defsubr it. Initialize Qsafe_chars,
113 Qsafe_cding_system. Make Vchar_coding_system_table a Lisp
114 variable and initialize it.
115
116 * fns.c (char_table_ref_and_index): New function.
117
118 * lisp.h (char_table_ref_and_index): Add prototype.
119
34a7a267
SS
1202000-07-26 Sam Steingold <sds@gnu.org>
121
122 * editfns.c (lisp_time_argument): Added third argument `usec'.
3ab82477 123 (Ffloat_time): New built-in Lisp function.
34a7a267 124
a95cb10a
GM
1252000-07-26 Gerd Moellmann <gerd@gnu.org>
126
3353ef5a
GM
127 * dispextern.h (GLYPH_FROM_CHAR_GLYPH): Use CHARACTERBITS bits
128 for the character code.
129
130 * config.in (HAVE_SOUND): Define only for FreeBSD, NetBSD and
131 GNU/Linux.
132
a95cb10a
GM
133 * xmenu.c (menu_highlight_callback): Call show_help_echo directly
134 if called for a popup menu.
135 (xmenu_show): Store help string in widget values.
136
b4a12321
DL
1372000-07-26 Dave Love <fx@gnu.org>
138
139 * syswait.h: Move some definitions.
140 (HAVE_SYS_WAIT_H): Undef for HPUX7, Convex.
141 [!HAVE_SYS_WAIT_H]: Define things unconditionally. More
142 perspicuous definitions.
143 (WTERMSIG): Fix bit pattern used.
144
13f5ad37
KH
1452000-07-26 Kenichi Handa <handa@etl.go.jp>
146
147 * print.c (print_object): If vector printing is truncated, print
148 "..." to indicate it as well as the case of list printing.
149
070fe99c
GM
1502000-07-25 Gerd Moellmann <gerd@gnu.org>
151
969065c3
GM
152 * xdisp.c (next_element_from_display_vector): Improve comments.
153
154 * lisp.h (GLYPH_MASK_CHAR, GLYPH_MASK_FACE): Use 19 bits
155 for the character code, and the rest for the face id as in 20.x.
156 (FAST_GLYPH_FACE, FAST_MAKE_GLYPH): Changed accordingly.
157
158 * window.c (window_display_table): Cleaned up.
159
070fe99c
GM
160 * syntax.c (Fforward_word): Add last arg nil in call of
161 Fconstrain_to_field.
162
bad77ef7
EZ
1632000-07-25 Eli Zaretskii <eliz@is.elta.co.il>
164
969065c3 165 * fileio.c (Frename_file) [DOS_NT]: If the file names are
bad77ef7
EZ
166 identical but for the letter-case, don't call
167 barf_or_query_if_file_exists.
168
c28da489
MB
1692000-07-25 Miles Bader <miles@gnu.org>
170
171 * editfns.c (find_field): Honor special `boundary' fields.
172 (Qboundary): New variables.
173 (syms_of_editfns): Initialize Qboundary.
174 (Fconstrain_to_field): Add the INHIBIT-CAPTURE-PROPERTY argument.
175 Use scan_buffer instead of find_before_next_newline, because it
176 allows us to detect the boundary case where there's a newline at
177 the search limit.
178 * lisp.h (Fconstrain_to_field): Update external declaration.
179
e3c31fd5
GM
1802000-07-24 Gerd Moellmann <gerd@gnu.org>
181
182 * print.c (temp_output_buffer_setup): Don't call1 Vrun_hooks
183 if that is nil.
c28da489 184
c66c29a2
DL
1852000-07-24 Dave Love <fx@gnu.org>
186
187 * s/sunos4-0.h, s/sol2.h:
188 (LIBS_TERMCAP): Move from m/sparc.h.
189
190 * m/sparc.h (TERMINFO): Moved to system files (probably only
191 relevant for sunos4 judging by its vintage).
192 (BITS_PER_LONG, BITS_PER_EMACS_INT, _LP64): Define conditional on
193 __arch64__.
194
fbe0a958
EZ
1952000-07-24 Eli Zaretskii <eliz@is.elta.co.il>
196
197 * xmenu.c (keymap_panes): Pass the keymap's prompt as the pane
198 name to single_keymap_panes.
199
7d88e5c9
AS
2002000-07-24 Andreas Schwab <schwab@suse.de>
201
202 * fns.c (Fmakehash): Pass Qeql to Fmake_hash_table if TEST is nil.
203
e024b101
GM
2042000-07-24 Gerd Moellmann <gerd@gnu.org>
205
206 * xdisp.c (with_echo_area_buffer): Take additional EMACS_INT
207 parameters instead of using int parameters. Expect FN to accept
208 EMACS_INT parameters.
209 (display_echo_area, resize_echo_area_axactly, current_message)
210 (truncate_echo_area, set_message_1): Call with_echo_area_buffer
211 with new argument list.
212 (resize_mini_window_1): New callback function.
213 (current_message_1, truncate_message_1, set_message_1): Change
214 parameter lists to the new format expected by
215 with_echo_area_buffer.
216
25c1a9ce
KH
2172000-07-24 Kenichi Handa <handa@etl.go.jp>
218
219 * fontset.c (fontset_ref): Remove INLINE declaration.
220 (fontset_ref_via_base): Likewise.
221 (Fset_fontset_font): Convert FAMILY and REGISTRY specifications
222 to downcase.
223
7f987ac0
EZ
2242000-07-23 Eli Zaretskii <eliz@is.elta.co.il>
225
226 * msdos.c (IT_note_mouse_highlight): Process overlays in the
227 correct order of priority. If help echo was found in an overlay,
228 use that overlay as the object in which the help echo was found.
229
e2db3069
MB
2302000-07-22 Miles Bader <miles@gnu.org>
231
232 * textprop.c (Fprevious_single_char_property_change): The initial
233 property value should be from the position preceding POSITION, not
234 following it.
235
5e3203e4
EZ
2362000-07-22 Eli Zaretskii <eliz@is.elta.co.il>
237
238 * coding.c (syms_of_coding): Doc fix for
239 inhibit-iso-escape-detection.
240
62145073
GM
2412000-07-21 Gerd Moellmann <gerd@gnu.org>
242
c20aeb83
GM
243 * xterm.c (note_mouse_highlight): Process overlays in the right
244 order of priority.
34a7a267 245
743934db
GM
246 * keyboard.c (show_help_echo, gen_help_event): Extend comments.
247
248 * xterm.c (note_mouse_highlight): If help-echo was found in an
249 overlay, use that overlay as the object in which the help was
250 found.
251
d1dc7e43 252 * window.c (foreach_window_1): Fix typo reversing an if-condition.
34a7a267 253
62145073
GM
254 * window.c (foreach_window): Instead of a fake variable argument
255 list, take one USER_DATA argument.
256 (foreach_window_1): Likewise, and call callback functions with two
257 args, the window and USER_DATA.
258 (struct check_window_data): New struct.
259 (check_window_containing): Use it.
260 (window_from_coordinates): Set up a struct check_window_data for
261 foreach_window.
262 (add_window_to_list, freeze_window_start): Change parameters
263 according to new calling convention.
264
265 * window.h (foreach_window): Change prototype.
266
267 * buffer.c (Fprevious_overlay_change): Avoid memory leak.
268
2692000-07-21 Eli Zaretskii <eliz@is.elta.co.il>
270
271 * xmenu.c (menu_help_callback): Call show_help_echo with
272 additional arguments OBJECT and POS.
273
11270583
KH
2742000-07-21 Kenichi Handa <handa@etl.go.jp>
275
07b14857
KH
276 * data.c (Faset): Allow storing any multibyte character in a
277 string. Convert unibyte string to multibyte if necessary.
278
11270583
KH
279 * xfns.c (x_encode_text): New function.
280 (x_set_name): Use x_encode_text.
281 (x_set_title): Likewise.
282
283 * xselect.c (lisp_data_to_selection_data): Use x_encode_text.
284
285 * xterm.h (x_encode_text): Add prototype.
286
bc75b4fd
DL
2872000-07-20 Dave Love <fx@gnu.org>
288
289 * ccl.c (Fccl_execute_on_string): Don't check xmalloc return. Use
290 xfree, not free.
291
48c14970
EZ
2922000-07-20 Eli Zaretskii <eliz@is.elta.co.il>
293
294 * msdos.c (help_echo_window): New variable.
295 (syms_of_msdos): Initialize and staticpro it.
296 (IT_note_mode_line_highlight): Set help_echo_window.
297 (IT_note_mouse_highlight): Ditto.
298 (dos_rawgetc): Store help_echo_window in the second event produced
299 for HELP_EVENTs.
300
301 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight):
302 Record the object that generated the help echo and the position of
303 that object in help_echo_object and help_echo_pos. Record that
304 some glyphs in a row are displayed in mouse-face.
305 (IT_update_begin): Don't clear mouse highlight unless one of the
306 enabled glyph rows is marked as being displayed in mouse-face.
307 (dos_rawgetc): Generate 2 events for HELP_EVENT. Pass the object
308 and position recorded in help_echo_object and help_echo_pos to the
309 event queue.
310 (IT_menu_display): Accept a new argument PN: the pane number of
311 the current menu pane. Record the pane number and the item
312 number of the item which has associated help string.
313 (XMenuActivate): Update the prototype for help_callback in
314 function declaration. Call IT_menu_display with the current menu
315 pane number as an additional argument. Call help_callback with
316 two additional arguments: the pane number and the item number of
317 the menu item associated with the help text.
318 (help_echo_object, help_echo_pos): New variables.
319 (syms_of_msdos): Initialize them and staticpro help_echo_object.
320
321 * msdos.h (XMenuActivate): Update prototype.
322
4279296d
GM
3232000-07-19 Gerd Moellmann <gerd@gnu.org>
324
47db06aa
GM
325 * xdisp.c (with_echo_area_buffer): Call FN with more arguments.
326 Add some more prototypes.
327
328 * xterm.c, xterm.h: Add some more prototypes.
329
330 * lisp.h (Fnext_single_char_property_change): Add prototype.
331
332 * dispnew.c (direct_output_for_insert): Remove confusing
333 outer local variable mouse_face_overwritten_p.
334 (glyph_row_slice_p): Put in #ifdef GLYPH_DEBUG.
335
4279296d
GM
336 * alloc.c (allocate_string_data): Don't copy old string contents.
337
670acd62
KH
3382000-07-19 Kenichi Handa <handa@etl.go.jp>
339
340 * coding.c (code_convert_region): Delete text properties before
341 shrinking the conversion region.
342
7cea38bc
GM
3432000-07-18 Gerd Moellmann <gerd@gnu.org>
344
dc1cac59
GM
345 * dispnew.c (update_text_area): Write the whole row if it
346 has mouse-face in it.
347
85a8aca9
GM
348 * xfaces.c (face-alternative-font-family-alist): Remove
349 DEFVAR_LISP; staticpro instead.
350
34a7a267 351 * xmenu.c (menu_help_callback): Call show_help_echo with
7cea38bc
GM
352 new arguments.
353
354 * keyboard.c (show_help_echo): Add parameter WINDOW.
355 (read_char): Call show_help_echo with window extracted from Lisp
356 help event.
357 (gen_help_event): Add parameter WINDOW.
358
359 * keyboard.h (show_help_echo, gen_help_event): Change prototypes.
360
361 * xterm.c (help_echo_window): New variable.
362 (note_mouse_highlight, note_tool_bar_highlight): Set
363 help_echo_window.
364 (XTread_socket): Pass help_echo_window to gen_help_event.
365 (syms_of_xterm): Initialize and staticpro help_echo_window.
366
f8276b77
DL
3672000-07-18 Dave Love <fx@gnu.org>
368
369 * Makefile.in: Fix dependencies of blockinput.h on atimer.h,
370 systime.h.
371
088831a6
GM
3722000-07-18 Gerd Moellmann <gerd@gnu.org>
373
3d6cd763
GM
374 * alloc.c (allocate_string_data): If string had already data
375 assigned, copy old contents to new string data.
376
377 * coding.c (syms_of_coding): Fix typo in spelling of variable
378 `inhibit-iso-escape-detection'.
379
088831a6
GM
380 * alloca.c (free) [emacs && EMACS_FREE]: Define as EMACS_FREE.
381
382 * Makefile.in: Add dependencies on dispextern.h.
383 (alloca.o): Don't define malloc and define EMACS_FREE instead of
384 `free'; both can conflict with system header files.
385
bc8a8d55
KH
3862000-07-18 Kenichi Handa <handa@etl.go.jp>
387
388 * charset.h (MAKE_CHAR): Return reasonable code even if CHARSET is
389 undefined.
390
069f5950
DL
3912000-07-18 Dave Love <fx@gnu.org>
392
393 * window.c (Fwindow_list): Declare arg `window'.
394
aa96c820
KH
3952000-07-18 Kenichi Handa <handa@etl.go.jp>
396
397 * coding.c (setup_coding_system): Don't override the explicitly
398 specified designations.
399
06be8d32
MB
4002000-07-15 Miles Bader <miles@gnu.org>
401
402 * editfns.c (char_property_eq, char_property_stickiness): Renamed
403 from `text_property_eq' and `text_property_stickiness', respectively.
404 (find_field, Fconstrain_to_field, char_property_eq)
405 (char_property_stickiness): Changed to call char-property functions
406 instead of text-property-only ones.
407
408 * textprop.c (Fnext_single_char_property_change): Made a subr (was
409 `next_single_char_property_change'). Do more error checking, and
410 cleanup limit behavior.
411 (Fprevious_single_char_property_change): New function.
412 (syms_of_textprop): Initialize new subrs.
413
414 * xdisp.c (display_prop_end, invisible_text_between_p):
415 Call Fnext_single_char_property_change instead of
416 next_single_char_property_change.
417
3fddcdc3
JR
4182000-07-15 Jason Rumney <jasonr@gnu.org>
419
420 * w32menu.c (w32_menu_show): Call free_menubar_widget_value_tree
421 after menu is finished with.
422 (add_menu_item): Only consider wv->title as a menu title.
423 (w32_menu_display_help): Add OBJECT and POS to show_help_echo.
424
425 * w32fns.c (w32_wnd_proc) [WM_DRAW_ITEM]: Do not try to draw a
426 null title.
427 (FONT_REGEXP): Remove unused macro, and its sub-components.
428 (syms_of_w32fns): Replace underscore in w32-enable-synthesized-fonts.
429
430 * w32term.c (help_echo_object, help_echo_pos): New variables.
431 (note_mode_line_highlight): Store additional information about the
432 help-echo in help_echo_object and help_echo_pos. Check both
433 `local-map' and `keymap' properties for changing the cursor
434 (note_mouse_highlight): Store additional information about the
435 help-echo in help_echo_object and help_echo_pos.
436 (note_tool_bar_highlight): Set help_echo_object to nil and
437 help_echo_pos to -1.
438 (w32_read_socket): Use gen_help_event instead of filling
439 input_events manually.
440 (syms_of_w32term): Staticpro help_echo_object.
441 (x_update_window_end): Add parameter MOUSE_FACE_OVERWRITTEN_P. If
442 set, arrange for a mouse-highlight redisplay in
443 XTframe_up_to_date.
444 (x_clear_mouse_face): New function.
445 (w32_redisplay_interface): Add pointer to x_clear_mouse_face.
446 (x_update_window_begin): No need to turn off the mouse
447 highlight here.
448 (show_mouse_face): Set the mouse_face_p flag of glyph rows
449 depending on whether they contain glyphs highlighted in
450 mouse-face.
451 (x_fill_stretch_glyph_string): Consume runs of stretch
452 glyphs instead of a single one.
453 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
454 with new argument list.
455 (x_set_glyph_string_gc): Make sure the face's GC is valid.
456 (x_append_glyph, x_append_composite_glyph)
457 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
458 changes in struct glyph starting 1999-12-27. See comments for
459 xterm.c on 2000-07-05.
460
178c5d9c
SS
4612000-07-14 Sam Steingold <sds@gnu.org>
462
463 * xfaces.c (realize_x_face): Fix the last patch:
464 check `default_face' before dereferencing.
465
6fe533f6
DL
4662000-07-14 Dave Love <fx@gnu.org>
467
069f5950 468 * syntax.c (back_comment): Add null default in switch (for pcc).
6fe533f6 469
dd7b81cf
KH
4702000-07-14 Kenichi Handa <handa@etl.go.jp>
471
0693904a 472 * xfaces.c (realize_x_face): Make fontset using the base of the
178c5d9c 473 default_face's fontset, not using the default fontset.
0693904a 474
dd7b81cf
KH
475 * coding.c (inhibit_iso_escape_detection): New variable.
476 (syms_of_coding): Make it a Lisp variable.
477 (detect_coding_iso2022): If inhibit_iso_escape_detection is
478 nonzero, ignore ISO2022's escape sequence.
479
d5aa31d8
GM
4802000-07-14 Gerd Moellmann <gerd@gnu.org>
481
e5acf0ca
GM
482 * alloca.c (malloc) [emacs]: Define as xmalloc.
483
bd23a692
GM
484 * xfns.c (Fx_show_tip): If frame parameters contain a position,
485 use that instead of the mouse position. Add parameters DX and DY.
486
487 * dispextern.h (Fx_show_tip): Adjust number of parameters
488 in prototype.
489
9662da0b
GM
490 * keyboard.c (show_help_echo): Add parameters OBJECT and POS.
491 if HELP is a function, call it with OBJECT and POS as parameters
492 to get the help to display.
493 (gen_help_event, kbd_buffer_store_help_event): New functions.
494 (kbd_buffer_get_event): Construct the Lisp help-event differently.
495 (read_char): Call show_help_echo with new parameters.
496
178c5d9c 497 * keyboard.h (gen_help_event, kbd_buffer_store_help_event):
9662da0b
GM
498 Add prototypes.
499
500 * xterm.c (help_echo_object, help_echo_pos): New variables.
501 (note_mode_line_highlight): Store additional information about the
502 help-echo in help_echo_object and help_echo_pos. Check both
503 `local-map' and `keymap' properties for changing the cursor
504 (note_mouse_highlight): Store additional information about the
505 help-echo in help_echo_object and help_echo_pos.
506 (note_tool_bar_highlight): Set help_echo_object to nil and
507 help_echo_pos to -1.
508 (XTread_socket): Use gen_help_event instead of filling
509 input_events manually.
510 (syms_of_xterm): Staticpro help_echo_object.
511
512 * xmenu.c (menu_highlight_callback): Use
513 kbd_buffer_store_help_event instead of setting up and input_event
514 structure manually.
515
516 * xdisp.c (eval_form): GCPRO argument sexpr.
517 (call_function): New function.
518 (handle_single_display_prop): Use call_function and FUNCTIONP
519 instead of checking whether if font_height is a symbol and
520 using eval_form.
521
522 * eval.c (internal_condition_case_2): New function.
523
524 * lisp.h (FUNCTIONP): New macro.
525 (internal_condition_case_2, call_function): Add prototypes.
526
d5aa31d8
GM
527 * xterm.c (construct_mouse_click, x_scroll_bar_to_input_event)
528 (x_scroll_bar_handle_click, SET_SAVED_MENU_EVENT, XTread_socket):
529 Always set `arg' member of input_events.
530 (construct_menu_click): Unused function removed.
531
532 * msdos.c (dos_rawgetc): Always set `arg' member of input_events.
533
534 * w32term.c (construct_mouse_click, construct_mouse_wheel)
535 (construct_drag_n_drop, x_scroll_bar_handle_click)
536 (w32_read_socket): Always set `arg' member of input_events.
537
538 * keyboard.c (show_help_echo): Use eval_form. Add comment.
539
540 * lisp.h (eval_form): Add prototype.
541
542 * xdisp.c (eval_form): Make it externally visible.
543
0f1a9b23
GM
5442000-07-13 Gerd Moellmann <gerd@gnu.org>
545
546 * xterm.c (x_handle_tool_bar_click): Store the frame in the
547 frame_or_window slot of TOOL_BAR_EVENT input events instead of
548 consing. For prefix events, store the frame in the `arg' slot of
549 the event, otherwise store the key there.
550 (XTread_socket): Instead of consing, use the frame_or_window slot
551 of HELP_EVENTs for the frame, and the `arg' slot for the help
552 string.
553
554 * xmenu.c (menu_highlight_callback): Store help string in the
555 `arg' member of the input event; don't cons.
556 (menubar_selection_callback): Use the `arg' slot of input events
557 to queue additional information, instead of consing.
558
559 * msdos.c (dos_rawgetc): Adapt to change of HELP_EVENTs.
560
561 * w32term.c (w32_handle_tool_bar_click): Adapt to changes in
562 TOOL_BAR_EVENTs.
563 (w32_read_socket): Adapt to changes in HELP_EVENTs.
564
565 * w32menu.c (menubar_selection_callback): Use the `arg' slot of
566 input events to queue additional information, instead of consing.
567
568 * keyboard.c (kbd_buffer_gcpro): Renamed from
569 kbd_buffer_frame_or_window. Now used for all Lisp objects
570 referenced from the input queue.
571 (kbd_buffer_store_event): Always use structure assignment for
572 copying input events. Record all Lisp objects referenced from
573 events in kbd_buffer_gcpro.
574 (kbd_buffer_get_event): Construct Lisp `help-echo' events
575 differently from input events. Test for prefix menu_bar_events
576 and TOOL_BAR_EVENTs differently. Reset all slots used by an input
577 event in kbd_buffer_gcpro to nil.
578 (make_lispy_event) <TOOL_BAR_EVENT>: Treat an input event whose
579 frame_or_window is equal to its arg member as prefix events.
580 (stuff_buffered_input): Reset all slots in kbd_buffer_gcpro
581 used by an input event to nil.
582 (init_keyboard): Use two times the size of the input queue
583 for kbd_buffer_gcpro.
584 (syms_of_keyboard): Likewise.
585
586 * emacs.c (handle_USR2_signal, handle_USR1_signal): Use
587 USER_SIGNAL_EVENT.
588
589 * termhooks.h (struct input_event): Add member `arg'.
590 (MENU_BAR_EVENT): Renamed from menu_bar_event.
591 (USER_SIGNAL_EVENT): Renamed from user_signal.
592
593 * xfaces.c (ASET): Remove definition.
594
595 * lisp.h (AREF, ASET, ASIZE): New macros.
596
597 * fontset.c (AREF, ASIZE): Remove definitions.
598
599 * fns.c (AREF): Remove definition.
178c5d9c 600
0f1a9b23
GM
601 * composite.c (AREF): Remove definition.
602
712eaef2
GM
6032000-07-12 Gerd Moellmann <gerd@gnu.org>
604
d8ee7803
GM
605 * dispnew.c (redraw_overlapped_rows): Add missing local.
606 (scrolling_window): Remove debug code.
607
712eaef2
GM
608 * xdisp.c (try_window_reusing_current_matrix, try_window_id):
609 Before scrolling, turn off a mouse-highlight in the window
610 being scrolled.
611
612 * xterm.c (x_update_window_end): Add parameter
613 MOUSE_FACE_OVERWRITTEN_P. If set, arrange for a mouse-highlight
614 redisplay in XTframe_up_to_date.
615 (x_clear_mouse_face): New function.
616 (x_redisplay_interface): Add pointer to x_clear_mouse_face.
617
618 * dispnew.c (make_current): Preserve the mouse_face_p flag of the
619 current glyph row.
620 (update_window_line): Add parameter MOUSE_FACE_OVERWRITTEN_P. Set
621 it when any row is written to that contains glyphs highlighted in
622 mouse-face.
623 (update_window): Call the window update end hook with new
624 parameter MOUSE_FACE_OVERWRITTEN_P.
625 (direct_output_for_insert): Give up if row contains mouse-face.
626
627 * dispextern.h (struct redisplay_interface): Add parameter
628 MOUSE_FACE_OVERWRITTEN_P to update_window_end_hook function.
629 (clear_mouse_face): New function pointer member.
630
02010917
SM
6312000-07-11 Stefan Monnier <monnier@cs.yale.edu>
632
633 * syntax.c (back_comment): Use one switch rather than a few `if's.
634 Obey open_paren_in_column_0_is_defun_start.
635 When reverting to the `slow' method, try to nicely handle the case
636 of nested comments by checking that the comment-starter we found
637 does indeed match the comment-ender.
638 (scan_sexps_forward, scan_sexps_forward):
639 Ignore excessive opening parenthesis rather than throwing an error.
640
d76c03ea
GM
6412000-07-11 Gerd Moellmann <gerd@gnu.org>
642
643 * doc.c (Fsubstitute_command_keys): Handle case that a GC
644 in Fwhere_is_internal or get_keymap_1 relocates string contents.
645
646 * dispnew.c (direct_output_forward_char): Give up if currently
647 displaying a message instead of the minibuffer contents.
648
649 * xterm.c (x_update_window_begin): No need to turn off the mouse
650 highlight here.
651 (show_mouse_face): Set the mouse_face_p flag of glyph rows
652 depending on whether they contain glyphs highlighted in
653 mouse-face.
654
655 * dispnew.c (row_equal_p): Add parameter MOUSE_FACE_P. If set,
656 compare the mouse_face_p flags of both rows.
657
658 * dispextern.h (struct glyph_row): Add flag mouse_face_p.
659
d55ead18
EZ
6602000-07-11 Eli Zaretskii <eliz@is.elta.co.il>
661
662 * keyboard.c (show_help_echo): Accept additional parameter
663 ok_to_overwrite_keystroke_echo.
664 (read_char): Call show_help_echo with a zero
665 ok_to_overwrite_keystroke_echo argument.
666 * keyboard.h (show_help_echo): Update prototype of
667 show_help_echo.
668 * xmenu.c (menu_help_callback): Call show_help_echo with non-zero
669 ok_to_overwrite_keystroke_echo argument.
670 * w32menu.c (w32_menu_display_help): Call show_help_echo with
671 non-zero ok_to_overwrite_keystroke_echo argument.
672
df75b1a3
GM
6732000-07-10 Gerd Moellmann <gerd@gnu.org>
674
4b92c49a
GM
675 * xdisp.c (try_window_id): If changes are all below what is
676 displayed in the window, and point is in the window, we still
677 might have to find point on the display.
678
679 * xterm.c (x_fill_stretch_glyph_string): Consume runs of stretch
680 glyphs instead of a single one.
681 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
682 with new argument list.
683 (x_set_glyph_string_gc): Make sure the face's GC is valid.
684
df75b1a3
GM
685 * keymap.c (get_keymap_1): Add comment that this function can GC.
686 (where_is_internal_2, where_is_internal_1): Add GCPROs, add
687 comment that functions can GC.
688 (Fset_keymap_parent): GCPRO arg KEYMAP.
689
4314cf3e
EZ
6902000-07-10 Eli Zaretskii <eliz@is.elta.co.il>
691
692 * msdos.c (XMenuActivate): After exiting the menu, restore the
693 echo area message and erase it.
694
ab49ce15
KH
6952000-07-10 Kenichi Handa <handa@etl.go.jp>
696
697 * fontset.c (Ffontset_info): Make the return value more compatible
698 with that of Emacs 20.
699
090a072f
GM
7002000-07-07 Gerd Moellmann <gerd@gnu.org>
701
702 * eval.c (Fsignal): Handle case that backtrace_list is null.
703
f92de4a6
KH
7042000-07-07 Kenichi Handa <handa@etl.go.jp>
705
706 * ccl.c (Fccl_execute): Typo fixed.
707
dd8888a1
GM
7082000-07-06 Gerd Moellmann <gerd@gnu.org>
709
e5c81191 710 * window.c (window_loop): Add missing gcpro1 local variable.
178c5d9c 711
dd8888a1
GM
712 * window.c (Fwindow_list): Reverse list at the end.
713 (candidate_window_p): Add parameter OWINDOW. ALL_FRAMES nil
714 means allow windows on OWINDOW's frame, only.
715 (window_loop): Simplified; use Fwindow_list.
716
717 * Makefile.in (TAGS-LISP): Don't pass `$(lispsource)' to make.
718
485266d0
GM
7192000-07-05 Gerd Moellmann <gerd@gnu.org>
720
721 * xterm.c (XTread_socket): Increment handling_signal at the start,
722 decrement it at the end.
723
724 * eval.c (handling_signal): New variable.
725 (Fsignal): Abort if handling_signal is non-zero.
726
727 * lisp.h (handling_signal): External declaration.
178c5d9c 728
485266d0
GM
729 * s/freebsd.h (WAITTYPE, WRETCODE): Put in #if 0.
730
80fcd514
KR
7312000-07-05 Ken Raeburn <raeburn@gnu.org>
732
733 Sound support for NetBSD through "Linux emulation" support:
734 * config.in (HAVE_SOUNDCARD_H): Undef.
735 (HAVE_SOUND): Define if HAVE_SOUNDCARD_H.
736 * Makefile.in (LIBSOUND): New variable.
737 (LIBES): Include it.
738 * sound.c [HAVE_SOUNDCARD_H]: Include <sys/ioctl.h> and
739 <soundcard.h>.
740 (DEFAULT_SOUND_DEVICE): Define to "/dev/dsp" if not defined
741 elsewhere.
742 (vox_open): Use DEFAULT_SOUND_DEVICE.
743 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Define to /dev/audio.
744
d5c5cddd
GM
7452000-07-05 Gerd Moellmann <gerd@gnu.org>
746
747 * print.c (print_error_message): If Vsignaling_function is set,
748 show it in *Messages*.
749
750 * lisp.h (Vsignaling_function): External declaration.
751
752 * eval.c (Vsignaling_function): New variable.
753 (Fsignal): Compute it.
754 (syms_of_eval): Staticpro it.
755
65171e3a
DL
7562000-07-05 Dave Love <fx@gnu.org>
757
758 * syswait.h: Use the autoconf recommended approach. Old code
759 #if'd out in case we need to revert.
760
178c5d9c 761 * config.in (HAVE_SYS_WAIT_H): Added.
65171e3a 762
e2c46326
AI
7632000-07-05 Andrew Innes <andrewi@gnu.org>
764
765 * vm-limit.c (check_memory_limits) [REL_ALLOC]: Use real_morecore
766 when non-NULL instead of __morecore, to take account of buffer
767 memory. This also solves a problem with spurious memory warnings
768 on Windows.
769
770 * ralloc.c: Make real_morecore non-static.
771
772 * eval.c (internal_condition_case): Comment out abort if
773 interrupt_input_blocked is not zero.
774
775 * makefile.nt: Add support for `bootstrap' and related targets.
776 Include minimal debug info in emacs.exe in release build.
777 Remove all dependencies on lisp.h, and fixup some others.
778
779 * w32.c (init_environment): Install code from 20.7 for providing
780 default values for environment variables, based on the
781 executable's own location.
782 (map_w32_filename): Handle filenames that are longer than
783 MAX_PATH.
784 (sys_socket): Install socket inheritance bug fix from 20.7.
785
786 * alloca.c [emacs]: Include lisp.h (needed by atimer.h included
787 here via blockinput.h).
788
a027a91b
SM
7892000-07-05 Stefan Monnier <monnier@cs.yale.edu>
790
e4b31601
SM
791 * w32menu.c (w32_menu_display_help):
792 * xmenu.c (menu_help_callback): Use show_help_echo.
a027a91b
SM
793
794 * keyboard.h (show_help_echo): Declare.
795
796 * keyboard.c (show_help_echo): New function, extracted from read_char.
797 Feval its `msg' argument if it's a cons cell.
798 (read_char): Use it.
4cf8d9d5 799 (follow_key): Pass `autoload' to get_keyelt.
a027a91b 800
178c5d9c 801 * xterm.c (note_mode_line_highlight, note_mouse_highlight)
a027a91b 802 (note_tool_bar_highlight, XTread_socket):
178c5d9c 803 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight)
a027a91b
SM
804 (dos_rawgetc):
805 * w32term.c (note_mode_line_highlight, note_mouse_highlight)
806 (note_tool_bar_highlight, w32_read_socket):
807 Do not gratuitously ignore non-string `help-echo' properties.
808
88d75730
GM
8092000-07-05 Gerd Moellmann <gerd@gnu.org>
810
969f7e79
GM
811 * eval.c (Feval): Put check for interrupt_input_block in #if 0.
812
71201b00
GM
813 * window.c (delete_all_subwindows): Reset Vwindow_list.
814
88d75730
GM
815 * xterm.c (x_append_glyph, x_append_composite_glyph)
816 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
817 changes in struct glyph starting 1999-12-27. Some bit-fields of
818 struct glyph were not set, which made glyphs unequal when compared
819 with GLYPH_EQUAL_P. Redisplay outputs such glyphs, and flickering
820 effects were the result. This also depended on the contents of
821 memory returned by xmalloc. If flickering happens again, activate
822 the code in clear_glyph_row that's in #if 0. If the flickering is
823 gone with that, chances are that it is caused by something
824 similar.
825
826 * dispnew.c (clear_glyph_row): Add debug code in #if 0.
178c5d9c 827
88d75730
GM
828 * dispextern.h: Add some comments.
829
830 * window.c (add_window_to_list): Add parameter LIST.
831 (window_list): Order list so that, for each frame, windows are
832 in canonical order, and so that frames appear in the list in
833 the order given by Vframe_list.
834 (next_window): Reverse the handling of NEXT_P.
835
53654733
GM
8362000-07-04 Gerd Moellmann <gerd@gnu.org>
837
87efd256
GM
838 * window.c (Vwindow_list): New variable.
839 (make_window, delete_window): Set Vwindow_list to nil.
840 (check_window_containing): New function.
841 (window_from_coordinates): Rewritten.
842 (add_window_to_list, window_list, candidate_window_p)
843 (decode_next_window_args, next_window): New functions.
844 (Fnext_window, Fprevious_window): Rewritten in terms of
845 next_window.
846 (Fwindow_list): New function.
847 (Fother_window): Cleaned up.
848 (foreach_window): Add a longer "variable argument list". Let
849 callback function return 0 to indicate that cycling over windows
850 should stop.
851 (foreach_window_1): Likewise.
852 (freeze_window_start): Return int.
853 (init_window): New function.
854 (syms_of_window): Staticpro Vwindow_list and defsubr Swindow_list.
855
856 * emacs.c (handle_USR1_signal, handle_USR2_signal) Clear
857 input_event with bzero.
858 (main): Call init_window.
859
53654733
GM
860 * keymap.c (get_keyelt): Temporarily inhibit GC while evaluating
861 a menu filter.
862
4a8c194f
KH
8632000-07-04 Kenichi Handa <handa@etl.go.jp>
864
865 * composite.h (make_composition_value_copy): Extern it.
866
867 * composite.c (make_composition_value_copy): New function.
868
869 * editfns.c (Fformat): While copying text properties, make each
870 composition property value a copy.
871
872 * fns.c (concat): While copying text properties, make each
873 composition property value a copy.
874
831a6cb0
GM
8752000-07-03 Gerd Moellmann <gerd@gnu.org>
876
2f516940
GM
877 * m/macppc.h (LINKER, LD_SWITCH_MACHINE) [LINUX]: Define.
878
178c5d9c 879 * fns.c (sweep_weak_table): Mark only objects that are not
aee625fa
GM
880 marked already.
881
831a6cb0
GM
882 * frame.c (next_frame, prev_frame): If MINIBUF is a window,
883 include those frames as candidates which have their focus
884 redirected to the minibuffer frame.
885
d9c4f922
SM
8862000-07-03 Stefan Monnier <monnier@cs.yale.edu>
887
888 * fns.c (Fputhash): Return `value' rather than nil.
889
3780bc22
GM
8902000-06-30 Gerd Moellmann <gerd@gnu.org>
891
97d176db
GM
892 * frame.c (next_frame): Don't check focus redirection in case
893 MINIBUF is a window. Doing so excludes frames using MINIBUF
3780bc22
GM
894 unless their focus is redirected, which contradicts the
895 specification of next-frame, and leads to infinite loops in
896 certain situations when cycling through windows with next-window.
897
dca9961d
KH
8982000-06-30 Kenichi Handa <handa@etl.go.jp>
899
900 * coding.c (code_convert_region): Even if the length of text is
901 zero, try to convert it if coding->type is coding_type_ccl.
902 (decode_coding_string, encode_coding_string): Likewise.
903
d5483ab1
GM
9042000-06-28 Gerd Moellmann <gerd@gnu.org>
905
af5c25e1 906 * xdisp.c (try_window_reusing_current_matrix): Don't try to reuse
97d176db 907 the display if windows_or_buffers_changed.
af5c25e1
GM
908
909 * dispnew.c (struct row_entry): New structure.
910 (row_entry_pool, row_entry_pool_size, row_entry_idx, row_table)
911 (row_table_size, old_lines, new_lines, old_lines_size)
912 (new_lines_size, run_pool, runs_size, runs): New variables.
913 (add_row_entry): New function.
914 (scrolling_window): Use data structures allocated with xmalloc and
97d176db 915 held in global variables, instead of allocating them with alloca and
af5c25e1
GM
916 holding them in local variables. Use a larger hash table whose
917 size depends on glyph matrix sizes. Don't use bzero to clear the
918 hash table; instead, clear used slots only.
919
920 * fns.c (next_almost_prime): Make it externally visible.
921
922 * lisp.h (next_almost_prime): Add prototype.
923
d5483ab1
GM
924 * s/isc4-0.h (sigunblock): Define.
925
926 * s/sco5.h (sigunblock): Define.
927
93e40f40
DL
9282000-06-27 Dave Love <fx@gnu.org>
929
930 * s/osf1.h (C_SWITCH_SYSTEM, LIBS_SYSTEM): Revert last change
931 (moved to osf5-0.h).
932 [!NOT_C_CODE]: Protect string.h stuff.
933
934 * s/osf5-0.h (C_SWITCH_SYSTEM, WAIT_USE_INT, SYS_SIGLIST_DECLARED)
935 (sys_siglist, NSIG): Definitions moved here from osf1.h.
936
3c4b7685
GM
9372000-06-27 Gerd Moellmann <gerd@gnu.org>
938
97d176db 939 * xdisp.c (resize_mini_window): Subtract the extra line spacing
3c4b7685
GM
940 below the last line from the needed window height.
941
32cad0aa
SM
9422000-06-26 Stefan Monnier <monnier@cs.yale.edu>
943
944 * fns.c (Fplist_member): Renamed from Fwidget_plist_member.
945 (Fwidget_get): Use it.
946 (syms_of_fns): Defsubr it.
947
2c69ced2
GM
9482000-06-26 Gerd Moellmann <gerd@gnu.org>
949
178c5d9c 950 * xterm.c (xim_initialize) [!USE_XIM]: Don't set up the
1d36487c
GM
951 display info for XIM.
952 (xim_open_dpy): Likewise.
953 (xim_close_dpy): Don't free the display info's XIM.
954
955 * xfns.c (x_window) [!USE_XIM]: Don't call create_frame_ic.
956
957 * config.in (USE_XIM): New define.
958
3fc720e4
GM
959 * keymap.c (get_keyelt): For menu-items containing a `:filter
960 FILTER', apply FILTER to the menu-item's definition to get the
961 real definition to use.
962
963 * lisp.h (QCfilter): External declaration.
964
2c69ced2
GM
965 * xfns.c (Fimage_size): New function.
966 (syms_of_xfns): Defsubr it.
967
f978b2a2
AS
9682000-06-26 Andreas Schwab <schwab@suse.de>
969
970 * coding.c (decode_coding_string): Re-fetch STRING_BYTES after
971 Fstring_as_unibyte.
972
94cc7892
DL
9732000-06-25 Dave Love <fx@gnu.org>
974
975 * term.c [!HAVE_TERMCAP_H]: Declare tputs, tgetent, tgetflag,
976 tgetnum.
977
978 * Makefile.in (blockinput.h): Depend on atimer.h.
979 (atimer.h): Depend on systime.h.
980
981 * blockinput.h: Protect against multiple inclusion. Include
982 atimer.h.
983
984 * atimer.h: Protect against multiple inclusion. Include
985 systime.h.
986
987 * lisp.h (swap_in_global_binding): Declare.
988
b8c24556
KR
9892000-06-24 Ken Raeburn <raeburn@gnu.org>
990
991 * process.c (Fopen_network_stream): Turn off atimers for duration
992 of call to connect. (Patch from Gerd.)
993
8cf8560b
DL
9942000-06-23 Dave Love <fx@gnu.org>
995
511c7541
DL
996 * ralloc.c: Maybe include unistd.h
997
8cf8560b
DL
998 * emacs.c (setgrp): Undefine before defining.
999 (malloc_warning, set_time_zone_rule, index): Prototype.
1000
1001 * systime.h (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use
1002 HAVE_STRUCT_TIMEZONE.
1003
1004 * s/osf1.h: Move string.h hack here from alpha.h and make it
1005 conditional.
1006 (C_SWITCH_SYSTEM): Use _OSF_SOURCE, not -BSD, which clashes with
1007 _XOPEN_SOURCE.
1008 (WAIT_USE_INT, SYS_SIGLIST_DECLARED, sys_siglist, NSIG): Define.
1009 (SOCKLEN_TYPE): Don't define.
1010
1011 * m/alpha.h: Remove string.h hack.
1012
1013 * s/osf5-0.h: New file.
1014
1015 * filelock.c: Use feature tests for fcntl.h, string.h. Don't
1016 include time.h, done by systime.h.
1017 [__FreeBSD__]: Remove redundant includes.
1018
3fc720e4 1019 * callproc.c (setpgrp): Undefine before defining.
8cf8560b
DL
1020 (delete_temp_file): Return Qnil to avoid warning.
1021
1022 * config.in (HAVE_TERM_H, HAVE_STRUCT_TIMEZONE): Add.
1023
1024 * xfaces.c: Include fontset.h dependent on HAVE_WINDOW_SYSTEM, not
1025 HAVE_X_WINDOWS.
1026
1027 * fontset.h (free_face_fontset): Renamed from fs_free_face_fontset.
1028
1029 * composite.h (compose_text): Declare.
1030
1031 * xterm.c: Don't include sys/types.h unconditionally. Don't
1032 protect its inclusion with !USG (following xmenu.c).
1033
ea055732
GM
10342000-06-23 Gerd Moellmann <gerd@gnu.org>
1035
1036 * xfns.c (x_create_tip_frame): Initialize frame's colors like
1037 in x_create_frame.
1038
74b01b80
EZ
10392000-06-23 Eli Zaretskii <eliz@is.elta.co.il>
1040
1041 * coding.c (decode_eol_post_ccl): Special handling for undecided
1042 and inconsistent EOL types.
1043
64f3a166
GM
10442000-06-22 Gerd Moellmann <gerd@gnu.org>
1045
16cf31f7
GM
1046 * xrdb.c (x_load_resources): Add default resource for scroll bar's
1047 trough color and main window's background color.
1048
178c5d9c 1049 * xfns.c (Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events
16cf31f7
GM
1050 differently.
1051
1052 * xterm.h (Xt_app_con): External declaration.
1053
1054 * widget.c (EmacsFrameRealize): Fix typo.
178c5d9c 1055
486a103d
GM
1056 * widget.c (EmacsFrameRealize): Remove SubstructureRedirectMask.
1057
64f3a166
GM
1058 * xdisp.c (handle_stop): Initialize it->add_overlay_start to zero.
1059 (handle_invisible_prop): Record the start of invisible text in
1060 it->add_overlay_start.
1061 (struct overlay_entry): Add member `overlay'.
1062 (handle_overlay_change): Simplify.
1063 (next_overlay_string): After having processed overlay strings at the
1064 end of the buffer, record that fact in
1065 it->overlay_strings_at_end_processed_p.
1066 (compare_overlay_entries): If before- and after-strings come
1067 from the same overlay, let before-strings come first.
1068 (RECORD_OVERLAY_STRING): Record the overlay that strings come from.
1069 (load_overlay_strings): Take it->add_overlay_start into account
1070 when adding overlay strings.
1071
1072 * dispextern.h (struct it): Add member add_overlay_start.
1073
bb746ea6
DL
10742000-06-22 Dave Love <fx@gnu.org>
1075
1076 * s/isc3-0.h (C_SWITCH_SYSTEM): Define _XOPEN_SOURCE=500.
1077
1078 * s/gnu-linux.h (C_SWITCH_SYSTEM): Don't define _XOPEN_SOURCE here.
1079
a8f573f3
KH
10802000-06-22 Kenichi Handa <handa@etl.go.jp>
1081
1082 * ccl.c (ccl_driver) <CCL_End>: Decrement stack_idx only when it
1083 is greater than 0.
1084
9f2bbc92
DL
10852000-06-21 Dave Love <fx@gnu.org>
1086
178c5d9c 1087 * Makefile.in (GETLOADAVG_OBJ): Removed -- LIBOBJS does it.
9f2bbc92 1088
3ee5041c
SM
10892000-06-21 Stefan Monnier <monnier@cs.yale.edu>
1090
1091 * syntax.c (back_comment): Simplify string-parity counting (with
1092 the added benefit of handling multiple string-styles as long as
1093 they are not intertwined).
1094 Jump to the slow code as soon as a comment starter is found in
1095 a "string_lossage" position. Fixes the case: " /* " /* " */.
1096
4c343001
DL
10972000-06-21 Dave Love <fx@gnu.org>
1098
1099 * Makefile.in: Use GETLOADAVG_LIBS.
1100
1101 * config.in: Add HAVE_FCNTL_H, _FILE_OFFSET_BITS,
1102 _LARGEFILE_SOURCE, _LARGE_FILES, _XOPEN_SOURCE.
1103
e6365855
SM
11042000-06-20 Stefan Monnier <monnier@cs.yale.edu>
1105
1106 * syntax.c (describe_syntax): Recognize the `n'estable bit.
1107 (Fforward_comment, scan_lists):
1108 Check the comstyle of single-char comment-starters.
1109 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
1110 we're just at the beginning of the comment (f.ex with (*) ... (*)).
d355bd8a
SM
1111 Check the comstyle of single-char comment-starters.
1112 Clarify control-flow around the Scomment case.
e6365855 1113
5700d2cc
DL
11142000-06-20 Dave Love <fx@gnu.org>
1115
d355bd8a
SM
1116 * fns.c (make_hash_table, maybe_resize_hash_table):
1117 Cast arg of next_almost_prime.
5700d2cc 1118
178c5d9c 1119 * tparam.c [emacs]: Include lisp.h.
5700d2cc
DL
1120
1121 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
1122 and unistd.h.
1123
4a27bdfb
GM
11242000-06-20 Gerd Moellmann <gerd@gnu.org>
1125
a61d762c
GM
1126 * keyboard.c (adjust_point_for_property): Check if display
1127 property should be treated as intangible by looking at its
1128 value.
1129
178c5d9c 1130 * xdisp.c (single_display_prop_intangible_p)
a61d762c
GM
1131 (display_prop_intangible_p): New functions.
1132
1133 * dispextern.h (display_prop_intangible_p): Add prototype.
1134
1135 * xdisp.c (dump_glyph_row): Show type of glyph->object.
178c5d9c 1136
4a27bdfb
GM
1137 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
1138 argument to sigprocmask.
1139
1140 * s/sco5.h (sigblock): Redefined to pass a pointer as second
1141 argument to sigprocmask.
1142
1143 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
1144 sigprocmask_set, and pass a pointer to it to sigprocmask.
1145
1146 * sysdep.c (sigprocmask_set): New variable.
1147
1148 * fileio.c (make_temp_name): Don't use `%s' in string passed to
1149 report_file_error.
1150
427ec082
SS
11512000-06-20 Sam Steingold <sds@gnu.org>
1152
1153 * xrdb.c: Don't declare xmalloc, xrealloc.
1154
8972fe79 11552000-06-20 Stefan Monnier <monnier@cs.yale.edu>
8972fe79
SM
1156
1157 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
1158 (re_comp): Cast gettext return value to avoid complaints when
1159 !HAVE_LIBINTL.
1160
074b6efe
DL
11612000-06-20 Dave Love <fx@gnu.org>
1162
f85c008a
DL
1163 * m/stride.h, m/mips.h: Don't define HAVE_GETWD,
1164 HAVE_GETTIMEOFDAY.
1165
5700d2cc 1166 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
f85c008a 1167
d355bd8a 1168 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
f85c008a
DL
1169
1170 * m/alpha.h: Don't declare xmalloc, xrealloc.
1171
0af4f205
DL
1172 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
1173
1174 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
1175
1176 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
1177
1178 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
1179 HAVE_GETWD.
1180
074b6efe
DL
1181 * keyboard.h (poll_for_input_1): Declare.
1182
1183 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
1184
1185 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
1186
1187 * doprnt.c: Don't declare xmalloc, xrealloc.
1188
1189 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
1190 (getenv, ctime, getwd): Removed.
1191 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
1192
1193 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
1194 x_set_tool_bar_lines.
1195
1196 * config.in: Add HAVE_GETWD. Move some definitions above
1197 machine/system includes.
1198
68a5e97b
KH
11992000-06-20 Kenichi Handa <handa@etl.go.jp>
1200
95417e1e
KH
1201 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
1202
68a5e97b
KH
1203 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
1204 contain information about ENCODING.
1205
1206 * fontset.c (FONTSET_ASCII): Use the first element of char table
1207 for an ASCII font, not defalt slot.
1208 (fontset_ref_via_base): If FONTSET doesn't contain information for
1209 C, try the default fontset.
1210 (make_fontset): Don't copy the default fontset.
1211 (fontset_font_pattern): Likewise.
1212 (accumulate_font_info): If ELT is nil, use the corresponding
1213 element in the default fontset.
1214
3b4fa1b2
DL
12152000-06-19 Dave Love <fx@gnu.org>
1216
943e731c
DL
1217 * syntax.c (Fparse_partial_sexp): Doc fix.
1218
1219 * regex.h: Test PROTOTYPES as well as __STDC__.
1220
3b4fa1b2
DL
1221 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
1222 errno, strerror. Put text after #endif in comment.
1223
1224 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for
1225 pcc).
1226
1227 * xterm.c (x_frame_of_widget): Likewise.
1228
cdf0357b
GM
12292000-06-19 Gerd Moellmann <gerd@gnu.org>
1230
1231 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
1232 to Vfundamental_mode_abbrev_table.
1233
1234 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
1235 bogus objects are marked. This slows down GC by ~80 percent, but
1236 it might be worth trying when debugging GC-related problems.
1237 This feature requires conservative stack marking to be enabled.
1238
1239 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
1240 returns XLookupChars, reset `modifiers' to zero.
1241
998e9f8c
DL
12422000-06-19 Dave Love <fx@gnu.org>
1243
1244 * mktime.c: Unprotoized.
1245
18e21ce8 12462000-06-19 Richard Stallman <rms@gnu.org>
d1504184
GM
1247
1248 * data.c (set_internal): If variable is frame-local,
1249 store the new value immediately into the frame parameter alist.
1250
140c4ac6
KR
12512000-06-19 Ken Raeburn <raeburn@gnu.org>
1252
14358466
KR
1253 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
1254 in the custom handler pointer.
1255
140c4ac6
KR
1256 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
1257 value, or checks for CHAR_META can fail when Lisp_Object is a
1258 union type.
1259 * keymap.c (get_keyelt): Likewise.
1260
10d7bf84
KH
12612000-06-19 Kenichi Handa <handa@etl.go.jp>
1262
1263 * ccl.h (struct ccl_program): New member eol_type.
1264 (struct ccl_spec): New member cr_carryover.
1265
1266 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
1267 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
1268
1269 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
1270 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
1271 (decode_eol_post_ccl): New function.
1272 (decode_coding): Don't detect EOL format here for CCL based coding
1273 systems.
1274 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
1275 decode_eol_post_ccl after running the CCL program.
1276 (code_convert_region): Don't detect EOL format here for CCL based
1277 coding systems.
1278 (decode_coding_string): Likewise.
1279
52e386c2
KR
12802000-06-18 Ken Raeburn <raeburn@gnu.org>
1281
1282 * charset.c (update_charset_table): Use XINT on "iso_final_char"
1283 when treating it as an integer.
1284
1285 * coding.h (encode_coding_string): Declare.
1286
1287 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
1288 it as an integer.
1289
1290 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
1291 "xkeymap" to avoid shadowing the "enum map_type" value that needs
1292 to be passed to get_local_map.
1293
1294 * sound.c (Fplay_sound): Don't call make_number on
1295 Frun_hook_with_args count argument.
1296
1297 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
1298 for lisp objects in X event structure data field, when lisp
1299 objects are represented with unions.
1300 (x_scroll_bar_to_input_event): Ditto.
1301
b357b9d4
KR
13022000-06-16 Ken Raeburn <raeburn@gnu.org>
1303
1304 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
37d034d3
KR
1305 termination of string. Fix sense of test whether
1306 Vline_number_display_limit is an integer.
b357b9d4 1307
a871441d
GM
13082000-06-16 Gerd Moellmann <gerd@gnu.org>
1309
a9021acd
GM
1310 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
1311 only if HAVE_X_WINDOWS.
1312
6344985d
GM
1313 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
1314 of titles.
1315
427ec082 1316 * dispnew.c (update_frame_1): Handle case that cursor vpos is
a871441d
GM
1317 out of bounds.
1318
228b083e
EZ
13192000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
1320
1321 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
1322 of its headers.
1323
c25b53a2
KH
13242000-06-15 Kenichi Handa <handa@etl.go.jp>
1325
1326 * coding.c (decode_coding_emacs_mule): Always set src_base at the
1327 start of the while loop.
1328
a6981b11
GM
13292000-06-15 Gerd Moellmann <gerd@gnu.org>
1330
e9924e52
GM
1331 * atimer.c (alarm_signal_handler): Add forward declaration.
1332
a6981b11
GM
1333 * data.c (set_internal): Remove debug code.
1334
25fa6deb
GM
13352000-06-14 Gerd Moellmann <gerd@gnu.org>
1336
dce6b995
GM
1337 * Makefile.in (bootstrap-temacs): Add `-I../src'.
1338
9f817ea4
GM
1339 * unexec.c (toplevel) [COFF]: Include coff.h.
1340
1341 * s/lynxos.h: New file.
1342
1343 * keymap.c (Fsingle_key_description): Enclose function key and
1344 event symbol names in angle brackets.
1345
8a4e3c0c
GM
1346 * xdisp.c (setup_echo_area_for_printing): Call
1347 message_log_maybe_newline if message_buf_print is not set.
1348
1349 * print.c (printchar, strout): Don't check message_buf_print
427ec082 1350 before calling setup_echo_area_for_printing because that
8a4e3c0c
GM
1351 function does something useful even when message_buf_print is
1352 already set.
1353
25fa6deb
GM
1354 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines): New
1355 variables.
1356 (ensure_echo_area_buffers): Initialize echo buffer's
1357 truncate lines setting to nil.
1358 (with_echo_area_buffer): Don't set the echo buffer's truncate
1359 lines setting here.
8a4e3c0c 1360 (set_message_1): Set it here instead, based on the value
25fa6deb
GM
1361 of message_truncate_lines.
1362 (resize_mini_window): Handle case that lines are truncated.
1363 (syms_of_xdisp): Initialize Qmessage_truncate_lines. DEFVAR_BOOL
1364 message-truncate-lines.
1365
1366 * keyboard.c (read_char): Bind message-truncate-lines to t
1367 while displaying a help-echo.
1368
1369 * lisp.h (Qmessage_truncate_lines): External declaration.
1370
163dcff3
GM
13712000-06-13 Gerd Moellmann <gerd@gnu.org>
1372
1681ead6
GM
1373 * xdisp.c (Vline_number_display_limit): Renamed from
1374 line_number_display_limit.
1375 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
1376 Extend documentation string. Initialize
1377 Vline_number_display_limit to nil meaning no limit.
1378 (decode_mode_spec): Use Vline_number_display_limit with its new
1379 meaning.
1380
163dcff3
GM
1381 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
1382
18e21ce8 13832000-06-13 Richard Stallman <rms@gnu.org>
163dcff3
GM
1384
1385 * frame.c (Fmodify_frame_parameters): Doc fix.
427ec082 1386
163dcff3
GM
1387 * xfns.c (x_set_frame_parameters): Comment fix.
1388
1389 * frame.c (store_frame_param): Call swap_in_global_binding if the
1390 variable's current binding was chosen based on this frame.
1391
1392 * data.c (swap_in_global_binding): New function.
1393
a704139d
EZ
13942000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
1395
1396 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
1397 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
1398
9b6610db
EZ
13992000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
1400
1401 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
1402
c68833d2
JR
14032000-06-12 Jason Rumney <jasonr@gnu.org>
1404
1405 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
1406
1407 * w32.h (EMACS_W32_H): Renamed from _NT_H_
1408
1409 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
1410
1411 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
1412
ed1056b3
GM
14132000-06-12 Gerd Moellmann <gerd@gnu.org>
1414
1415 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
1416 (syms_of_xfaces): Defsubr Sdump_colors.
1417 (x_free_colors): Don't treat b&w specially on default visual.
1418 (x_free_dpy_colors): New function.
1419 (free_face_colors): Don't check visual class; it's done
1420 in x_free_colors.
1421
1422 * xterm.c (x_frame_of_widget): New function.
1423 (x_alloc_nearest_color_for_widget): Use it.
1424 (x_copy_dpy_color): New function.
1425 (x_destroy_window): Free various colors.
1426
5050a2ef
KH
14272000-06-12 Kenichi Handa <handa@etl.go.jp>
1428
1429 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
1430
1431 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
1432
1433 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
1434
1435 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
1436
1437 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
1438
fb1b041d
DL
14392000-06-11 Dave Love <fx@gnu.org>
1440
1441 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
1442
ff96b5f4
EZ
14432000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
1444
1445 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
1446
db8eeecd
GM
14472000-06-11 Gerd Moellmann <gerd@gnu.org>
1448
ed1056b3 1449 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
db8eeecd
GM
1450 to `XEvent *'.
1451
49b71c5f
KH
14522000-06-10 Kenichi Handa <handa@etl.go.jp>
1453
c479bd55
KH
1454 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
1455 (regex_compile): Fix the code for handling the case of single byte
1456 char and multibyte char being mixed in a range within [...].
1457
ff6a65c2
KH
1458 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
1459 and dst_multibyte members of coding.
1460
49b71c5f
KH
1461 * charset.c (update_charset_table): Update the table
1462 bytes_by_char_head.
1463 (init_charset_once): Initialize elements of bytes_by_char_head to
1464 1 except for leading codes for private charases.
1465
1466 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
1467 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte
1468 sequence.
1469
9e80b57d
KR
14702000-06-09 Ken Raeburn <raeburn@gnu.org>
1471
1472 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
1473 access the data it doesn't point to.
1474
f83fe4b4
GM
14752000-06-08 Gerd Moellmann <gerd@gnu.org>
1476
1477 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
db8eeecd 1478 will be translated to a switch-frame event when reading the
f83fe4b4
GM
1479 event queue. This is necessary because Emacs otherwise won't
1480 perform a switch-frame to a new frame until some other event, for
1481 example a keystroke event, forces it to do so. This has various
1482 effects, one visible being that the cursor of a frame created with
1483 C-x 5 2 or switched to with a window manager key binding like
1484 A-TAB stays hollow because selected_window isn't on the newly
1485 focused frame until the switch-frame is performed.
1486
1487 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
1488 generating a switch-frame event if necessary.
1489
1490 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
1491
1492 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
1493 it's an integer.
1494
0890801b
KH
14952000-06-08 Kenichi Handa <handa@etl.go.jp>
1496
1497 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a
1498 charset.
1499
173cbca8
GM
15002000-06-07 Gerd Moellmann <gerd@gnu.org>
1501
3091c2a6
GM
1502 * window.c (displayed_window_lines): Take empty lines at
1503 the bottom of a window into account.
427ec082 1504
f38952fe
GM
1505 * window.c (displayed_window_lines): New function.
1506 (Fmove_to_window_line): Use displayed_window_lines to determine
1507 the number of lines to move, instead of using the window's height.
1508
1509 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
1510 to stop reading, even if the form read sets point to a different
1511 value when evaluated.
1512
427ec082 1513 * xdisp.c (display_line): Fix code deciding in which line to
173cbca8
GM
1514 put the cursor.
1515
6ba6c818
KH
15162000-06-07 Kenichi Handa <handa@etl.go.jp>
1517
1518 * fileio.c (e_write): Free composition data if stored in
1519 coding->cmp_data.
1520
5f1aea9a
GM
15212000-06-06 Gerd Moellmann <gerd@gnu.org>
1522
666852af
GM
1523 * xdisp.c (display_line): Set row's and iterator's
1524 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
1525 Set cursor even if row ends in the middle of a character.
1526 (dump_glyph_row): Print values of new flags.
1527 (redisplay_window) <cursor movement in unchanged window>: When
1528 point has been moved forward, and PT is at the end of the cursor
1529 row, don't place the cursor in the next row if the cursor row ends
1530 in the middle of a character or at ZV.
1531
1532 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
1533 (struct glyph_row): Add starts_in_middle_of_char_p and
1534 ends_in_middle_of_char_p.
1535 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
1536 ends_in_middle_of_char_p flag.
1537 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
1538
d13f3e2e
GM
1539 * term.c (append_glyph): Revert change of 2000-06-06.
1540
1541 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
1542 padding glyph not fitting on line as whole character not
1543 fitting on line.
1544
5f1aea9a
GM
1545 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
1546 this isn't true for images with `:ascent 100'.
1547
10cda9b0
KH
15482000-06-06 Kenichi Handa <handa@etl.go.jp>
1549
ed00559d
KH
1550 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
1551 as modified if it is originally unmodified.
1552
10cda9b0
KH
1553 * term.c (encode_terminal_code): Change the way to check if
1554 terminal coding does any conversion.
1555 (append_glyph): Set glyph->pixel_width correctly.
1556
1557 * xdisp.c (display_line): While checking line continuation, pay
1558 attention to a padding glyph.
1559
1969fae2
GM
15602000-06-05 Gerd Moellmann <gerd@gnu.org>
1561
1562 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
1563
162ccef4
DL
15642000-06-05 Dave Love <fx@gnu.org>
1565
f19f32dd
DL
1566 * xdisp.c: Include fontset.h.
1567
1568 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
1569
1570 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
1571
1572 * dispnew.c: Conditionally include term.h.
1573
1574 * coding.h: Declare code_convert_string_norecord.
1575
1576 * frame.h (struct frame): Use volatile unconditionally.
1577
1578 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
1579
1580 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
1581
1582 * systime.h: Protect against multiple inclusion.
1583 (timezone) [USG5_4]: Define as time_t.
1584
1585 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
1586 (Foptimize_char_table, make_temp_name): Declare.
1587
1588 * Makefile.in (xdisp.o): Depend on fontset.h.
1589
1590 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
1591
1592 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
1593 (Foptimize_char_table, make_temp_name): Declare.
1594
427ec082 1595 * s/irix4-0.h:
162ccef4
DL
1596 * s/irix5-0.h:
1597 * s/netbsd.h: Don't define autoconfiscated MATHERR.
1598
2082fe81
DL
15992000-06-02 Dave Love <fx@gnu.org>
1600
1601 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
1602
dcf671d2
GM
16032000-06-02 Gerd Moellmann <gerd@gnu.org>
1604
1605 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
1969fae2 1606 result face, set flags in that face indicating that colors may not
dcf671d2
GM
1607 be freed.
1608
1609 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
1610 glyph, use the ASCII NUL character to determine the face.
1611
d42122a3
DL
16122000-06-02 Dave Love <fx@gnu.org>
1613
1614 * sysdep.c: Conditionally include stdlib.h, unistd.h.
1615 (VFORK_RETURN_TYPE): Remove.
427ec082 1616
d42122a3
DL
1617 * config.in: Add NO_MATHERR.
1618
dd432f16
DL
16192000-06-01 Dave Love <fx@gnu.org>
1620
90aa4ea8
DL
1621 * cmds.c (internal_self_insert): Don't check
1622 Vbefore_change_function, Vafter_change_function.
1623
1624 * insdel.c (signal_before_change, signal_after_change): Likewise.
1625
1626 * buffer.c (Vbefore_change_function, Vafter_change_function):
1627 Variables and their initializations deleted.
1628
2330c9d4
DL
1629 * callint.c (Fcall_interactively): Doc fix.
1630
dd432f16
DL
1631 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
1632
bf9e8804
DL
16332000-05-31 Dave Love <fx@gnu.org>
1634
1635 * textprop.c: Revert last change -- duplicated.
1636
3694b4ab
GM
16372000-05-31 Gerd Moellmann <gerd@gnu.org>
1638
1639 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
1640 in #if 0.
1641
1642 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
1643
f14156cd
JR
16442000-05-31 Jason Rumney <jasonr@gnu.org>
1645
8119aab8
JR
1646 * search.c (Fre_search_forward, Fre_search_backward)
1647 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
1648
f14156cd
JR
1649 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
1650
4aab9be3
JR
16512000-05-30 Jason Rumney <jasonr@gnu.org>
1652
1653 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
1654 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
1655
1656 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type
1657 member.
1658
1659 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
1660 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
1661 expand a nil default_filename.
1662
1663 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
1664 pointer to glyph_to_pixel_coords, not a frame.
1665
1666 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
1667 coding.h to dependencies.
1668
1669 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
1670
1671 * w32console.c (glyph_to_pixel_coords): Change first parameter to
1672 window pointer to be consistent with w32term.c and xterm.c.
1673
1674 * w32fns.c: Format and doc changes to bring closer to xfns.c.
1675 (VIETNAMESE_CHARSET): Define if not defined in system headers.
1676 (Qline_spacing, Qcenter): New variables.
1677 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
1678 (x_set_line_spacing): New function.
1679 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT
1680 macros.
1681 (x_specified_cursor_type): New function.
1682 (x_set_cursor_type): Use it.
1683 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
1684 and icon strings.
1685 (validate_x_resource_name, x_get_resource_string): Measure lengths
1686 of external strings in bytes.
1687 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
1688 GetTextExtentPoint32 with NULL title.
1689 (Fx_create_frame): Initialize Qline_spacing.
1690 (w32_load_system_font): Initialize font->double_byte_p.
1691 (x_to_w32_charset): Use Vw32_charset_info_alist.
1692 (Image, busy cursor, tooltip functions): Merged changes from
1693 xfns.c. Not yet functional on Windows.
1694
1695 * w32gui.h (W32FontStruct): Add double_byte_p member.
1696
1697 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
1698 (emacs_button_translation): Use it.
1699 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
1700 in `mask' to be set.
1701
1702 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
1703 menu strings.
1704
1705 * w32term.c: Format and doc changes to bring closer to xterm.c.
1706 (w32_char_font_type): New enum.
1707 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
1708 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
1709 (w32_encode_char): New function.
1710 (x_encode_char): Removed.
1711 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
1712 x_encode_char and w32_font_is_double_byte.
1713 (x_produce_image_glyph): Use image_ascent.
1714 (x_produce_glyphs): Use new version of w32_per_char_metric and
1715 handle NULL return value. Allow extra line spacing.
1716 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
1717 (w32_get_glyph_overhangs): Remove unicode_p param. Use
1718 w32_font_type member of glyph instead.
1719 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
1720 (fast_find_position): Make sure not to consider rows not visible
1721 in the window.
1722 (w32_read_socket) [WM_MENUSELECT]: Cannot call
1723 w32_menu_display_help with input blocked, as it can abort.
1724 (x_display_and_set_cursor): Choose cursor depending
1725 on buffer-local value of cursor_type.
1726 (x_draw_bar_cursor): Add parameter WIDTH.
1727
1728 * w32term.h (CP_DEFAULT): Define.
1729 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
1730
10fc3187
GM
17312000-05-30 Gerd Moellmann <gerd@gnu.org>
1732
1733 * search.c (Fre_search_forward, Fre_search_backward)
1734 (Fposix_search_backward, Fposix_search_forward): Doc fix.
1735
d0555360
KH
17362000-05-30 Kenichi Handa <handa@etl.go.jp>
1737
1738 * coding.c (detect_coding_iso2022): Fix code for checking
1739 CODING_CATEGORY_MASK_ISO_8_2.
1740
f1ad044f
SM
17412000-05-29 Stefan Monnier <monnier@cs.yale.edu>
1742
1743 * regex.c (PREFETCH_NOLIMIT): New function.
1744 (re_match_2_internal): Use it and adjust the end_match_2 logic.
1745
84ec3b4b
GM
17462000-05-29 Gerd Moellmann <gerd@gnu.org>
1747
66254a13
GM
1748 * syntax.c (find_defun_start): Move test for
1749 open_paren_in_column_0_is_defun_start outside of the loop.
1750
49e70dec
GM
1751 * xdisp.c (redisplay_window): Really switch buffers when
1752 displaying mode lines, and temporarily set selected_frame to the
1753 frame of the window that's redisplayed.
1754
84ec3b4b
GM
1755 * xfaces.c (free_realized_faces): Block/unblock input.
1756 (free_realized_multibyte_face): Ditto.
1757
869a3a14
DL
17582000-05-29 Dave Love <fx@gnu.org>
1759
1760 * textprop.c (Qkeymap): New variable.
1761 (syms_of_textprop): Intern it.
1762
1763 * keymap.c: Include intervals.h.
1764 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
1765
1766 * Makefile.in (keymap.o): Depend on intervals.h.
1767
1768 * keyboard.c (menu_bar_items, tool_bar_items)
1769 (Fexecute_extended_command): Deal with `keymap' property.
1770 (read_key_sequence): Track map from `keymap' property as well as
1771 `local_map'.
1772
1773 * intervals.c (get_local_map): Extra arg to allow looking for
1774 `keymap' too.
1775
1776 * intervals.h (map_property): New enum.
1777 (get_local_map): Extra arg using it.
1778 (Qkeymap): Declare.
1779
84ec3b4b 1780 * lisp.h (get_local_map): Don't declare here.
869a3a14 1781
89d0c844
KH
17822000-05-29 Kenichi Handa <handa@etl.go.jp>
1783
1784 * Makefile.in (callproc.o): Depend on composite.h.
1785
1786 * callproc.c: Include composite.h.
1787 (Fcall_process): Handle composition correctly.
1788
1789 * coding.h (coding_allocate_composition_data): Extern it.
1790 (coding_restore_composition): Likewise.
1791
1792 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
1793 yet allocated, finish decoding with result
1794 CODING_FINISH_INSUFFICIENT_CMP.
1795 (coding_allocate_composition_data): Make it non-static.
1796 (coding_restore_composition): Likewise.
1797
797a084a
EZ
17982000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
1799
1800 * charset.c (syms_of_charset): Revert last change.
1801
cf872af5
EZ
18022000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
1803
1804 * term.c (produce_glyphs): Treat characters from the eight-bit-*
d7d0dac0
SM
1805 charsets as unibyte, with 1-column screen width. Sent by Kenichi
1806 Handa.
cf872af5 1807
5b1ae051
EZ
18082000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
1809
1810 * charset.c (syms_of_charset): Set width of character sets
1811 eight-bit-control and eight-bit-graphic to 1 column.
1812
34ec9ebe
GM
18132000-05-26 Gerd Moellmann <gerd@gnu.org>
1814
1815 * config.in (HAVE_SPEED_T): New define.
1816
1817 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
1818 `extern speed_t'.
1819
dd854dc2
DL
18202000-05-26 Dave Love <fx@gnu.org>
1821
1822 * coding.c (shrink_decoding_region): Initialize eol_conversion.
1823
1824 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
1825 (Fsubr_arity): New function.
1826 (syms_of_data): Install them.
1827
ba9f8f95
KH
18282000-05-26 Kenichi Handa <handa@etl.go.jp>
1829
0f3e0672
KH
1830 * charset.c (init_charset_once): Set the table bytes_by_char_head
1831 correctly.
1832
cebefb44
KH
1833 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
1834 the default fontset to what Emacs uses by default.
0f3e0672
KH
1835 (check_registry_encoding): This function deleted.
1836 (Fset_fontset_font): Remove the adhoc condition for the default
1837 fontset. Allow cons in FONTNAME.
cebefb44 1838
0f3e0672
KH
1839 * fns.c (map_char_table): Ignore char-table entries for
1840 charsets eight-bit-control and eight-bit-graphic.
ba9f8f95 1841
7a18af49
KR
18422000-05-25 Ken Raeburn <raeburn@gnu.org>
1843
1844 * emacs.c (main): Initialize keyboard syms before initializing
1845 window code, so face names are available.
1846
d2af47df
SM
18472000-05-25 Stefan Monnier <monnier@cs.yale.edu>
1848
1849 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
1850 of an anchor at the beginning of a shy-group.
1851
fc6a6a4e
GM
18522000-05-25 Gerd Moellmann <gerd@gnu.org>
1853
1854 * xdisp.c (handle_invisible_prop): Don't try to skip over
1855 invisible text if end of text is already reached.
1856
005f0d35
DL
18572000-05-25 Dave Love <fx@gnu.org>
1858
02513cdd
DL
1859 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
1860
005f0d35
DL
1861 * coding.c (encode_eol): Add null statement after label.
1862
89f6ca4e
EZ
18632000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
1864
1865 * w16select.c (Fw16_set_clipboard_data): Fix the change from
1866 2000-05-20.
1867
a4e1759e
KH
18682000-05-25 Kenichi Handa <handa@etl.go.jp>
1869
1870 * ccl.c (ccl_driver): Fix previous change.
1871
eacfd7fe
KH
18722000-05-25 Kenichi Handa <handa@etl.go.jp>
1873
46ab33a9
KH
1874 * coding.c (run_pre_post_conversion_on_str): Set point to the
1875 beginning of buffer before calling coding->post_read_conversion.
1876 (decode_coding_string): Give correct args to
1877 run_pre_post_conversion_on_str.
1878 (encode_coding_string): Likewise.
1879
eacfd7fe
KH
1880 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
1881 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
1882 eight-bit-graphic correctly.
1883
f8569325
DL
18842000-05-24 Kenichi HANDA <handa@etl.go.jp>
1885
1886 * fileio.c (Finsert_file_contents): Even if a file is not found,
1887 execute codes for setting up coding system. Call
1888 after-insert-file-functions unconditionally.
1889
04545643
GM
18902000-05-24 Gerd Moellmann <gerd@gnu.org>
1891
1892 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
1893 BSD_PGRPS are not defined.
1894
747d90ea
KH
18952000-05-24 Kenichi Handa <handa@etl.go.jp>
1896
1897 * charset.c (update_charset_table): Accept nil in LONG_NAME and
1898 DESCRIPTION.
1899 (syms_of_charset): Avoid building same strings.
1900
716e3b88
GM
19012000-05-23 Gerd Moellmann <gerd@gnu.org>
1902
1903 * lread.c (Fload): Add a comment about the meaning of
1904 Vuser_init_file being t.
1905
1906 * puresize.h (BASE_PURESIZE): Increase to 675000.
1907
1908 * s/gnu-linux.h (setpgrp): Don't define it here because this
1909 prevents compilation on GNU/Linux systems with glib 2.2.
1910
1911 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
1912 as setpgid.
427ec082 1913
9aeb39fa
EZ
19142000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
1915
1916 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
1917 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
1918 version.
1919 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
1920
29ced61b
KH
19212000-05-23 Kenichi Handa <handa@etl.go.jp>
1922
0574a2ed
KH
1923 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE
1924 unconditionally.
1925
3d80f24d
KH
1926 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
1927
1928 * term.c (encode_terminal_code): Set coding->src_multibyte
1929 properly.
1930
29ced61b
KH
1931 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
1932
d7e00792
KH
19332000-05-22 Kenichi Handa <handa@etl.go.jp>
1934
c9d80d38
KH
1935 * keyboard.c (read_char): Allow character codes 128..255 to be
1936 handled by input-method-function.
1937
d7e00792
KH
1938 * insdel.c (adjust_markers_for_replace): Fix previous change.
1939 (adjust_after_replace): If PREV_TEXT is nil, call
1940 adjust_markers_for_insert, not adjust_markers_for_replace.
1941
087121cc 19422000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
427ec082 1943
087121cc
GM
1944 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
1945 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
1946 [HAVE_GRANDPT]: Define.
1947 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
1948
1949 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
1950 like SYSV_PTYS.
1951
1952 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
1953
1954 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
1955
c9671f81
KH
19562000-05-20 Kenichi Handa <handa@etl.go.jp>
1957
1958 The following changes are to handle 8-bit characters in a
1959 multibyte buffer/string without facing with byte combining
1960 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
1961 eight-bit-graphic (for 0xA0..0xFF) are introduced.
1962
1963 * Makefile.in (fns.o): Depend on charset.h.
1964
1965 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
1966 convert it to unibyte.
1967 (make_string): Use parse_str_as_multibyte, not chars_in_text.
1968
1969 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
1970 apparent char boundary.
1971 (Fset_buffer_multibyte): Convert 8-bit characters in the range
1972 0x80..0x9F to/from multibyte form.
1973
1974 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
1975 to unibyte.
1976
1977 * callproc.c (Fcall_process): Always encode an argument string if
1978 it is multibyte. Setup src_multibyte and dst_multibyte members of
1979 process_coding properly.
ce75fd23 1980
c9671f81
KH
1981 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
1982 SPLIT_NON_ASCII_CHAR.
1983
1984 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
1985 as is.
1986 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
1987
1988 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New
1989 variables.
1990 (SPLIT_CHARACTER_SEQ): This macro deleted.
1991 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is
1992 valid.
1993 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
1994 and eight-bit-graphic.
1995 (char_to_string): Likewise. Signal an error for too large
1996 character code.
1997 (char_printable_p): Return 0 for 8-bit characters.
1998 (update_charset_table): Update iso_charset_table only when a final
1999 character is non-negative.
2000 (find_charset_in_text): Renamed from find_charset_in_str.
2001 Arguments and return value changed. Callers changed.
2002 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
2003 be -1 if CHARSET is used only internally.
2004 (Fmake_char_internal): Handle new charsets; eight-bit-control and
2005 eight-bit-graphic.
2006 (Fcharset_after): Simplified.
2007 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
2008 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
2009 (multibyte_chars_in_text): Simplified by assuming there's no
2010 invalid multibyte sequence.
2011 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
2012 str_as_unibyte): New functions.
2013 (Fstring): Simpified by assuming that byte combining never
2014 happens.
2015 (init_charset_once): Initialization for
2016 LEADING_CODE_8_BIT_CONTROL.
2017 (syms_of_charset): Intern and staticpro Qeight_bit_control and
2018 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
2019 eight-bit-control and eight-bit-graphic.
2020
2021 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL,
2022 CHARSET_8_BIT_GRAPHIC): New macros.
2023 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
2024 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
2025 (CHARSET_REVERSE_CHARSET): Likewise.
2026 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
2027 eight-bit-graphic.
2028 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
2029 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
2030 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
2031 encounter an invalid multibyte sequence.
2032 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
2033 sequence is always valid.
2034 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
2035 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New
2036 macros.
2037 (CHAR_STRING): For 8-bit characters, call char_to_string.
2038 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
2039 multibyte sequence is always valid.
2040 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
2041 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
2042 str_as_unibyte): Extern them.
2043 (BCOPY_SHORT): Fix a bug.
2044 (CHAR_LEN): This macro deleted. Callers changed to use
2045 CHAR_BYTES.
2046 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
2047 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
2048 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
2049
bd4bde7f 2050 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
c9671f81
KH
2051 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
2052 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
2053 EMIT_BYTES): New macros.
2054 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
2055 DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
2056 macros deleted.
2057 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
2058 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
2059 check the validity of multibyte sequence.
2060 (decode_coding_emacs_mule): New function.
2061 (encode_coding_emacs_mule): New macro.
2062 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
2063 the source.
2064 (DECODE_ISO_CHARACTER): Just return a character code.
2065 (DECODE_COMPOSITION_START): Set coding->result instead of result.
2066 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
2067 EMIT_CHAR to produced decoded characters. Exit the loop only by
2068 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
2069 block here.
2070 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
2071 only position codes for an invalid character.
2072 (encode_designation_at_bol): Return new destination pointer. 5th
2073 arg DSTP is changed to DST.
2074 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
2075 from the source by ONE_MORE_CHAR. Don't handle the case of last
2076 block here.
2077 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
2078 macros deleted.
2079 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
2080 detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
2081 TWO_MORE_BYTES to fetch a byte from the source.
2082 (encode_eol): Pay attention to coding->src_multibyte.
2083 (detect_coding, detect_eol): Preserve members src_multibyte and
2084 dst_multibyte.
2085 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
2086 (encoding_buffer_size): Set magnification to 3 for all coding
2087 systems that require encoding.
2088 (ccl_coding_driver): For decoding, be sure that the result is
2089 valid multibyte sequence.
2090 (decode_coding): Initialize coding->errors and coding->result.
2091 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
2092 and raw-text, always call decode_eol. Handle the case of last
2093 block here. If not coding->dst_multibyte, convert the resulting
2094 sequence to unibyte.
2095 (encode_coding): Initialize coding->errors and coding->result.
2096 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
2097 and raw-text, always call encode_eol. Handle the case of last
2098 block here.
2099 (shrink_decoding_region, shrink_encoding_region): Detect cases
2100 that we can't skip data more rigidly.
2101 (code_convert_region): Setup src_multibyte and dst_multibyte
2102 members of coding. For decoding, if the buffer is multibyte,
2103 convert the source sequence to unibyte in advance. For encoding,
2104 if the buffer is multibyte, convert the resulting sequence to
2105 multibyte afterward.
2106 (run_pre_post_conversion_on_str): New function.
2107 (code_convert_string): Deleted and divided into the following two.
2108 (decode_coding_string, encode_coding_string): New functions.
2109 (code_convert_string1, code_convert_string_norecord): Call one of
2110 above.
2111 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
2112 MAKE_NON_ASCII_CHAR.
2113 (Fset_terminal_coding_system_internal,
2114 Fset_safe_terminal_coding_system_internal): Setup src_multibyte
2115 and dst_multibyte members.
2116 (init_coding_once): Initialize iso_code_class with new enum
2117 ISO_control_0 and ISO_control_1.
2118
2119 * coding.h (enum iso_code_class_type): Member ISO_control_code is
2120 devided into ISO_control_0 and ISO_control_1.
2121 (struct coding_system): New members src_multibyte, dst_multibyte,
2122 errors, and result. Delete member fake_multibyte.
2123 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
2124 nonzero.
2125 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
2126 nonzero.
2127
2128 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
2129 (Faset): Likewise.
2130
2131 * editfns.c (Fformat): Be sure to convert 8-bit characters to
2132 multibyte form.
2133 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
2134 combining occurs.
2135 (Ftranspose_region): Delete codes for handling byte combining.
2136
2137 * fileio.c (Finsert_file_contents): Setup src_multibyte and
2138 dst_multibyte members of coding. On handling REPLACE on unibyte
2139 buffer, convert the result of decode_coding to unibyte. On
2140 inserting into a mutibyte buffer, always call code_convert_region.
bd4bde7f 2141 (e_write): Setup coding->src_multibyte according to the
c9671f81
KH
2142 multibyteness of the source (buffer or string).
2143
2144 * fns.c (concat): Handle 8-bit characters correctly.
2145 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
2146 unibyte in the result.
2147 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
2148 valid multibyte form in the result.
2149 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
2150 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
2151 return -1, signal an error.
2152 (base64_encode_1): New arg MULTIBYTE. Get each character by
2153 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
2154 character is found, return -1.
2155 (Fbase64_decode_region): Delete codes for handling byte-combining.
2156 Treat each decoded byte as a unibyte character.
2157 (Fbase64_decode_string): Return unibyte string.
2158 (Fcompare_strings, concat, string_byte_to_char): Use
2159 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
2160 FETCH_STRING_CHAR_ADVANCE.
2161 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
2162 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
2163
2164 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
2165 SPLIT_NON_ASCII_CHAR.
2166 (fontset_ref_via_base, fontset_set): Likewise
2167
2168 * insdel.c (adjust_markers_for_record_delete): Deleted.
2169 (adjust_markers_for_insert): Argument changed. Caller changed.
2170 (adjust_markers_for_replace): Likewise.
2171 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error,
2172 CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
2173 (copy_text): Delete unused local varialbe c_save. For converting
2174 to multibyte, be sure to make all 8-bit characters in valid
2175 multibyte form.
2176 (count_size_as_multibyte): Handle 8-bit characters correctly.
2177 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
2178 adjust_after_replace, replace_range, del_range_2)
2179 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
2180 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
2181 adjust_after_replace, replace_range, del_range_2) Delete codes for
2182 handling byte combining.
2183 (adjust_before_replace): Deleted.
427ec082 2184
c9671f81
KH
2185 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
2186 SPLIT_NON_ASCII_CHAR.
2187 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
2188 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE
2189 unconditionally.
2190 (Fkey_description): Likewise.
2191
2192 * lread.c (read1): On reading multibyte string, be sure to make
2193 all 8-bit chararacters in valid multibyte form.
2194 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
2195
2196 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
2197 unconditionally.
2198
2199 * process.c (Fstart_process): GCPRO current_dir before calling
2200 Ffind_operation_coding_system. Encode arguments here.
2201 (create_process): Don't encode arguments here. Setup
2202 src_multibyte and dst_multibyte members of struct coding.
2203 (read_process_output): Setup src_multibyte and dst_multibyte
2204 members of struct coding. If the output is to multibyte buffer,
2205 always decode the output of the process. Adjust the
2206 representation of 8-bit characters to the multibyteness of the
2207 output.
2208 (send_process): Setup coding->src_multibyte according to the
2209 multibyteness of the source.
2210
2211 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE
2212 unconditionally.
2213 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
2214 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
2215
2216 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of
2217 CHAR_LEN.
2218
2219 * w16select.c (Fw16_set_clipboard_data): Setup members
2220 src_multibyte and dst_multibyte of coding. Adjusted for the
2221 change for find_charset_in_str.
2222 (Fw16_get_clipboard_data): Likewise.
2223
2224 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
2225 dst_multibyte of coding.
2226 (x_to_w32_font): Likewise.
2227
2228 * w32select.c (Fw32_set_clipboard_data): Setup members
2229 src_multibyte and dst_multibyte of coding. Adjusted for the
2230 change for find_charset_in_str.
2231 (Fw32_get_clipboard_data): Likewise.
2232
2233 * xdisp.c (get_next_display_element): Handle 8-bit characters
2234 correctly.
2235 (next_element_from_display_vector): Use CHAR_BYTES instead of
2236 CHAR_LEN.
2237 (disp_char_vector): Use SPLIT_CHAR instead of
2238 SPLIT_NON_ASCII_CHAR.
2239
2240 * xselect.c (selection_data_to_lisp_data): Setup members
2241 src_multibyte and dst_multibyte of coding. Adjusted for the
2242 change for find_charset_in_str.
2243 (lisp_data_to_selection_data): Likewise.
2244
5f64c9e0
GM
22452000-05-19 Gerd Moellmann <gerd@gnu.org>
2246
2b63d473
GM
2247 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed
2248 buffer.
2249
5f64c9e0
GM
2250 * dispextern.h (Vimage_types): Add extern declaration.
2251
2252 * xdisp.c (Vimage_types): Moved here from xfns.c.
2253 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
2254
2255 * xfns.c (Vimages_types): Moved to xdisp.c.
2256 (syms_of_xfns): Move `image-types' to xdisp.c.
2257
2258 * w32fns.c (Vimage_types): Removed.
2259 (syms_of_w32fns): Remove `image-types'.
2260
813086ea
KH
22612000-05-18 Kenichi Handa <handa@etl.go.jp>
2262
2263 * fns.c (map_char_table): Pay attention to character number of
2264 charset. Check the validity of charset at the first level. For
2265 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
2266 the default value.
2267
2268 * fontset.c: Include "buffer.h".
2269 (fs_load_font): If the face has fontset, record the face ID in
2270 that fontset.
2271 (Finternal_char_font): New function.
2272 (accumulate_font_info): New function.
2273 (Ffontset_info): Rewritten for the new fontset implementation.
2274 (syms_of_fontset): Register Vdefault_fontset in the first element
2275 of Vfontset_table. Include Vdefault_fontset in
2276 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
2277 function.
2278
bdaebbf0
DL
22792000-05-16 Dave Love <fx@gnu.org>
2280
2281 * m/iris5d.h: Deleted -- unused.
2282
cb613bb8
GM
22832000-05-16 Gerd Moellmann <gerd@gnu.org>
2284
b15f3b77
GM
2285 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
2286 `invalid' instead of `illegal'.
2287
2288 * indent.c (Fmove_to_column): When ending within a tab, insert
2289 spaces first so that markers at the end of the tab get adjusted.
2290
835c1b36
GM
2291 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
2292 buffer list that wasn't selected in that frame.
2293
cb613bb8
GM
2294 * filelock.c (get_boot_time): To obtain an 8 char file name, which
2295 is needed on mescaline, use a 2 char prefix, and call
2296 make_temp_name with second arg non-zero.
2297
2298 * fileio.c (make_temp_name): New function, extracted from
2299 Fmake_temp_name.
2300 (Fmake_temp_name): Use it.
2301
f685bea9
EZ
23022000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
2303
2304 * window.c (coordinates_in_window): Subtract 1 when computing
2305 right_x.
2306
a1b8d58b
GM
23072000-05-15 Gerd Moellmann <gerd@gnu.org>
2308
2309 * Makefile.in (lisp): Add env.elc.
2310
2311 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
2312
a265079f
GM
23132000-05-12 Gerd Moellmann <gerd@gnu.org>
2314
2315 * search.c (Freplace_match): Handle case of `\N' in the
2316 replacement when there's no group N.
2317
da4496b6
GM
23182000-05-11 Gerd Moellmann <gerd@gnu.org>
2319
0ace421a
GM
2320 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
2321 of the message to message_dolog.
2322
1172eb8d
GM
2323 * keyboard.c (read_char): Don't clear current message for help
2324 events; let the code handling help events handle this. Change
2325 code detecting help events that should be ignored.
2326
da4496b6
GM
2327 * xdisp.c (handle_single_display_prop): Don't try to set PT if
2328 we're interating over a string.
2329
0623e40f
DL
23302000-05-09 Dave Love <fx@gnu.org>
2331
2332 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
2333 that offset before writing. Move gcpro region past call of
2334 Ffile_regular_p.
2335
bae2503b
DL
23362000-05-04 Dave Love <fx@gnu.org>
2337
2338 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
2339
ec82fb2f
GM
23402000-05-04 Gerd Moellmann <gerd@gnu.org>
2341
2342 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
2343 of inserted characters when BUF equals the current buffer, and PT
2344 is in front of or equal to FROM.
2345
cbf18892
GM
23462000-05-03 Gerd Moellmann <gerd@gnu.org>
2347
4ff40dd0
GM
2348 * xdisp.c (handle_single_display_prop): If display property value
2349 is invalid, or something not supported on the frame, restore
2350 iterator's position to what it was initially. Make sure to return
2351 0 for invalid and unsupported property values.
2352
cbf18892
GM
2353 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
2354 that x_per_char_metric returns null.
2355
1b0672c3
GM
23562000-05-02 Gerd Moellmann <gerd@gnu.org>
2357
576da55d
GM
2358 * xterm.h (struct face): Add forward declaration.
2359 (struct image): Ditto.
2360 (image_ascent): Add prototype.
2361
2362 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
2363 (x_draw_image_relief, x_draw_image_foreground_1): Call function
2364 image_ascent instead of using IMAGE_ASCENT.
2365
2366 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
2367 (IMAGE_ASCENT): Removed.
2368
2369 * xfns.c (Qcenter): New variable.
2370 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
2371 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
2372 (image_ascent): New function.
2373 (lookup_image): Recognize `:ascent center'.
2374 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
2375 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
2376 (xbm_load): Don't set image's ascent here.
2377 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
2378 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
2379 check ascent values here.
2380 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
2381 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
2382 (syms_of_xfns): Initialize Qcenter.
2383
1b0672c3
GM
2384 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
2385 to the limits, increase the limits.
2386
0d7811ed
KH
23872000-05-01 Kenichi Handa <handa@etl.go.jp>
2388
2389 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
2390 Check Vfont_encoding_alist against the full name of the opened
2391 font.
2392
a943a5ca
GM
23932000-04-28 Gerd Moellmann <gerd@gnu.org>
2394
2395 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
2396 taller than the window.
2397
5dba1e29
KH
23982000-04-28 Kenichi Handa <handa@etl.go.jp>
2399
2400 * xfaces.c (realize_x_face): Fix the argument of the second
2401 xassert. BASE_FACE may not be a face for ASCII.
2402
353964e3
GM
24032000-04-27 Gerd Moellmann <gerd@gnu.org>
2404
c76e04a8
GM
2405 * print.c (print_object): Treat print-length < 0 as nil.
2406
2407 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
2408
2409 * s/freebsd.h (TERMCAP_OBJ): Removed.
2410 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
2411
2412 * lread.c (read1): Don't treat period followed by certain
2413 characters as symbol start.
2414
2415 * xfns.c (slurp_file): New function.
2416 (xbm_image_p): Handle case of in-memory XBM files.
2417 (xbm_scan): Rewritten to work on memory buffers instead of files.
2418 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
2419 Work on memory buffers instead of files. If DATA is null test
2420 if buffer looks like an in-memory XBM file.
2421 (xbm_load_image): Renamed from xbm_load_image_file. Work on
2422 memory buffers instead of files.
2423 (xbm_file_p): New function.
2424 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
2425
353964e3
GM
2426 * lread.c (end_of_file_error): New function.
2427 (read1): Call it instead of signaling `end-of-file' directly.
2428
427ec082 2429 * print.c (print_error_message): Print data of `end-of-file'
353964e3
GM
2430 with Fprinc instead of Fprin1.
2431
24d744ac
KR
24322000-04-26 Ken Raeburn <raeburn@gnu.org>
2433
2434 * window.c (freeze_window_start): Check that minibuffer scroll
2435 window isn't nil before extracting the window structure pointer
2436 from it.
2437
2438 * undo.c (record_delete): If we hit the end of the undo list, stop
2439 picking elements apart.
2440
7464346d
GM
24412000-04-26 Gerd Moellmann <gerd@gnu.org>
2442
2443 * xdisp.c (display_line): If lines are continued, restore
2444 iterator's ascent/descent information to the values before the
2445 first glyph not fitting on the line.
2446
612839b6
GM
24472000-04-25 Gerd Moellmann <gerd@gnu.org>
2448
2449 * xdisp.c (try_window_id) <all changes above window start>: Adjust
2450 positions in glyph matrix. Don't compute new window end
2451 positions.
2452
2453 * dispnew.c (increment_matrix_positions): Renamed from
2454 increment_glyph_matrix_buffer_positions.
2455 (increment_row_positions): Renamed from
2456 increment_glyph_row_buffer_positions.
2457
2458 * dispextern.h: Change names of renamed functions from dispnew.c
2459 in prototypes.
2460
cc181e95
GM
24612000-04-24 Gerd Moellmann <gerd@gnu.org>
2462
abfcc168
GM
2463 * fileio.c (Fdo_auto_save): Create directories for auto-save
2464 list file if necessary.
2465
cc181e95
GM
2466 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
2467 from buffer or frame.
2468 (automatic_hscrolling_p): New variable.
2469 (hscroll_windows): Scroll windows horizontally only if automatic
2470 hscrolling is allowed.
2471 (syms_of_xdisp): New variable `automatic-hscrolling'.
2472
2473 * frame.h (struct frame): Add member extra_line_spacing.
2474
2475 * xfns.c (x_set_line_spacing): New function.
2476 (Fx_create_frame): Set line spacing from resources.
2477 (Qline_spacing): New variable.
2478 (syms_of_xfns): Initialize Qline_spacing.
427ec082 2479
cc181e95
GM
2480 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
2481
2482 * buffer.c (init_buffer_once): Handle extra_line_spacing.
2483 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
abfcc168 2484 (reset_buffer): Don't initialize extra2 and extra3. Initialize
cc181e95
GM
2485 extra_line_spacing from default value.
2486 (init_buffer_once): Initialize default value of extra_line_spacing.
2487
2488 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
2489 and extra3.
2490
2491 * xterm.c (x_produce_glyphs): Remove reference to struct it's
2492 prompt_width. Add extra line spacing.
2493
2494 * term.c (produce_glyphs): Remove reference to struct it's
2495 prompt_width.
2496
2497 * dispextern.h (struct it): Remove member prompt_width, add
2498 extra_line_spacing.
2499
58827478
GM
25002000-04-22 Gerd Moellmann <gerd@gnu.org>
2501
2502 * dispnew.c (update_frame_line): When writing a whole line, make
2503 sure cursor is in the right row afterwards, otherwise a use of
2504 capability `ch' in cmgoto might leave the cursor in the row below.
2505
25a87f42
GM
25062000-04-21 Gerd Moellmann <gerd@gnu.org>
2507
2508 * lisp.h (struct Lisp_Buffer_Cons): Remove.
2509
2510 * keyboard.c (timer_check): Fix typo in comment.
2511
54edf5c2
KH
25122000-04-21 Kenichi Handa <handa@etl.go.jp>
2513
2514 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
2515 name change: ch -> character.
2516
3a64eef5
GM
25172000-04-20 Gerd Moellmann <gerd@gnu.org>
2518
2519 * keyboard.c (echo_message_buffer): New variable.
2520 (echo_now): Set echo_message_buffer to the echo area buffer used
2521 to display the echo.
2522 (cancel_echoing): Reset echo_message_buffer to nil.
2523 (read_char): Code rewritten that handles canceling an echo or
2524 echoing a dash, respectively.
2525
2526 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
2527 directory doesn't exist.
2528
6142fdcb
DL
25292000-04-19 Dave Love <fx@gnu.org>
2530
2531 * fns.c (syms_of_fns): Defsubr mapc.
a9cacab7
DL
2532 (concat): Don't allow numeric args.
2533 (Fconcat): Doc change.
6142fdcb 2534
ac6b5352
SM
25352000-04-19 Stefan Monnier <monnier@cs.yale.edu>
2536
2537 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
2538 instead define end_match(1|2) more carefully.
2539 Use GET_CHAR_BEFORE_2 for `begline'.
2540
cb9215e4
GM
25412000-04-19 Gerd Moellmann <gerd@gnu.org>
2542
5e3dac3f
GM
2543 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
2544 on 64-bit systems where NULL is defined as `0'.
2545
2546 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
2547 the `variable argument list' to make it work on Alpha.
2548
cb9215e4
GM
2549 * m/alpha.h (_LP64) [!_LP64]: Define.
2550 (ORDINARY_LINK): Define for NetBSD.
2551
2552 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
427ec082 2553
f532dca0
DL
25542000-04-19 Dave Love <fx@gnu.org>
2555
c750667e
DL
2556 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
2557 change.
2558
2559 * Makefile.in (LIBS): Don't use.
2560 (GETLOADAVG_OBJ): Define again.
2561 (otherobj): Add GETLOADAVG_OBJ.
2562
f532dca0
DL
2563 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
2564
1c7e22fd
GM
25652000-04-18 Gerd Moellmann <gerd@gnu.org>
2566
f6d3257b
GM
2567 * lread.c (read_filtered_event): Cancel and start busy cursor.
2568
427ec082 2569 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
1c7e22fd
GM
2570 that the per-character metrics may be null.
2571
e10f64e7
GM
25722000-04-17 Gerd Moellmann <gerd@gnu.org>
2573
0daee095
GM
2574 * buffer.c (clone_per_buffer_values): New function.
2575 (Fmake_indirect_buffer): Add optional argument CLONE. Call
2576 clone_per_buffer_values if CLONE is not nil.
2577
e10f64e7
GM
2578 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
2579
38687d43
DL
25802000-04-16 Dave Love <fx@gnu.org>
2581
2582 * Makefile.in: Remove obsolete localcpp stuff.
2583 (GETLOADAVG_OBJ): Don't define.
2584 (obj): Move LIBOBJS...
2585 (otherobj): ... to here.
2586 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
2587 whitespace-only lines after the continuation (Irix).
2588
c21c7262
GM
25892000-04-14 Gerd Moellmann <gerd@gnu.org>
2590
2591 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
2592
2593 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
2594
314767c0
DL
25952000-04-14 Dave Love <fx@gnu.org>
2596
2597 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
2598 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
2599 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
2600 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
2601 NLIST_STRUCT.
2602
2603 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
2604 autoconfiscated HAVE_GETLOADAVG.
2605
2606 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
2607 BROKEN_MKTIME.
2608
a2522dca
GM
26092000-04-14 Gerd Moellmann <gerd@gnu.org>
2610
2611 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
2612 (fill_in_lock_file_name): Avoid existing files that aren't
2613 links.
2614
33744b5d
DL
26152000-04-14 Dave Love <fx@gnu.org>
2616
c21c7262 2617 * Makefile.in (LIBS, LIBOBJS): New variable.
33744b5d
DL
2618 (INTERVAL_SRC): Convert to make variable.
2619 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
2620 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
2621 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
2622 add LIBOBJS.
2623 (SOME_MACHINE_OBJECTS): Remove interval stuff.
2624 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
2625 (shortlisp): Add facemenu, float-sup, frame.
2626 (SOME_MACHINE_LISP): Remove them from here.
2627 (LIBES): Change unused LDLIBS to autoconf LIBS.
2628
2629 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
2630
9d3d5916
KH
26312000-04-14 Kenichi Handa <handa@etl.go.jp>
2632
2633 * composite.c (update_compositions): If FROM and TO are not in a
2634 valid range, do nothing.
2635
198e3c7a
GM
26362000-04-13 Gerd Moellmann <gerd@gnu.org>
2637
2638 * tparam.c (tparam1): Abort when encountering an unknown
2639 `%'-specifier.
2640
2641 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as
2642 terminfo.o.
2643
2644 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
2645 as TERMCAP_OBJ.
2646
055a28c9
EZ
26472000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
2648
2649 * fileio.c (a_write): Remove redundant semi-colons.
2650 (e_write): Return -1 if failed to write all the data.
2651 This fixes the changes made at 1999-12-15.
2652
f5c75033
DL
26532000-04-12 Dave Love <fx@gnu.org>
2654
2655 * fns.c (mapcar1): Test for null vals to support mapc.
2656 (Fmapc): New function.
2657
0c3cfc51
EZ
26582000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
2659
2660 * msdos.c (NUM_MOUSE_BUTTONS): Define.
2661 (IT_frame_up_to_date): Support the buffer local value of
2662 cursor-type, if defined.
2663
33465a31
DL
26642000-04-10 Dave Love <fx@gnu.org>
2665
2666 * editfns.c (preceding-char, following-char): Doc fix.
2667
6ed56568
KR
26682000-04-10 Ken Raeburn <raeburn@gnu.org>
2669
2670 * Makefile.in (temacs): Revert 2000-03-12 change.
2671
7cf80d4e
JR
26722000-04-10 Jason Rumney <jasonr@gnu.org>
2673
2674 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
2675
34f3f342
GM
26762000-04-10 Gerd Moellmann <gerd@gnu.org>
2677
1a1b1895
GM
2678 * xdisp.c (setup_echo_area_for_printing): Choose an echo
2679 area buffer, if it's not set up yet.
2680
34f3f342
GM
2681 * indent.c (compute_motion): Set immediate_quit.
2682
be0dbdab
GM
26832000-04-09 Gerd Moellmann <gerd@gnu.org>
2684
c45be9ac
GM
2685 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New
2686 variable.
2687 (realize_tty_face): Suppress boldness if colors are the inverse of
2688 the default colors, and tty_suppress_bold_inverse_default_colors_p
2689 is set.
2690 (Ftty_suppress_bold_inverse_default_colors): New function.
2691 (syms_of_xfaces): Defsubr it.
2692
be0dbdab
GM
2693 * buffer.c (Frestore_buffer_modified_p): New function.
2694 (syms_of_buffer): Defsubr it.
2695
e8413c3b
KR
26962000-04-08 Ken Raeburn <raeburn@gnu.org>
2697
87f67317
KR
2698 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
2699 charset id (int) argument, not a charset (Lisp_Object).
2700
e8413c3b
KR
2701 * coding.h (code_convert_string): Declare.
2702 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
2703 object, as the fourth argument to code_convert_string.
2704
2705 * fontset.c (make_fontset_for_ascii_face): Use XINT on return
2706 value.
2707 (Fset_fontset_font): Use EQ to compare lisp objects.
2708
7c752c80
KR
27092000-04-05 Ken Raeburn <raeburn@gnu.org>
2710
c0333abc
KR
2711 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
2712 a pointer that looks like a lisp object.
2713 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
2714 zero, instead see whether it's an integer object, since they can't
2715 have intervals.
2716 (GET_INTERVAL_OBJECT): Simply assign to the destination.
2717
7c752c80
KR
2718 * dispnew.c (allocate_matrices_for_frame_redisplay,
2719 direct_output_forward_char): Use X(U)INT and make_number as needed
2720 to convert between (unsigned) int values and lisp integers.
2721 * keyboard.c (read_key_sequence): Likewise.
2722 * lread.c (substitute_object_recurse): Likewise.
2723 * fns.c (concat, hash_lookup, hash_remove): Likewise.
2724 * minibuf.c (do_completion, Fminibuffer_complete_word,
2725 Fminibuffer_completion_help): Likewise.
2726 * term.c (produce_special_glyphs): Likewise.
2727
2728 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
2729 * print.c (print_preprocess, print_object): Likewise.
2730
2731 * search.c (compile_pattern): Use NILP when checking for nil.
2732
74e49b38
KR
2733 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
2734 __OPTIMIZE__]: Provide a GNU C macro version that handles
2735 lisp-object unions.
2736 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
2737 field, to better cope with ENABLE_CHECKING and calls that modify a
2738 Lisp_Object using its old value.
2739
685e5ed2
GM
27402000-04-04 Gerd Moellmann <gerd@gnu.org>
2741
c407c570
GM
2742 * window.c (compare_window_configurations): Signal an error
2743 if parameters C1 or C2 aren't window configurations.
2744
685e5ed2
GM
2745 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
2746 AFTER_POTENTIAL_GC calls around calls to functions that can
2747 signal an error and thus invoke the debugger.
2748
587a49ab
GM
27492000-04-03 Gerd Moellmann <gerd@gnu.org>
2750
62f20204
GM
2751 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
2752 an error if decoding fails.
2753
587a49ab
GM
2754 * keyboard.c (lispy_mouse_names): Variable removed.
2755 (Vlispy_mouse_stem): New variable.
2756 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
2757 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
2758 for any mouse button number. Increase size of mouse_syms and
2759 button_down_location as needed. Call modify_event_symbol with
2760 different arguments.
2761 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
2762 Call modify_event_symbol with different arguments.
2763 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
2764 for any button number. Call modify_event_symbol with different
2765 arguments.
2766 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
2767 Accept a string for NAME_ALIST_OR_STEM.
2768
2769 * lisp.h (larger_vector): Add prototype.
2770
2771 * fns.c (larger_vector): Make externally visible.
2772
2773 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
2774
2d1675e4
SM
27752000-04-02 Stefan Monnier <monnier@cs.yale.edu>
2776
2777 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
2778 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
2779 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
2780 we are between str1 and str2.
2781 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
2782 (PATFETCH): Use `TRANSLATE'.
2783 (PATFETCH_RAW): Fetch multibyte char if applicable.
2784 (PATUNFETCH): Remove.
2785 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
2786 When writing a char, write it directly into the pattern buffer rather
2787 than going needlessly through a temp char-array.
2788 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
2789 multibyte magic and remove the useless `#ifdef emacs'.
2790 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
2791 buffer.
2792
2793 * regex.h (struct re_pattern_buffer): Make field `multibyte'
2794 conditional on `emacs'.
2795
2796 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
2797
cc2d8c6b
KR
27982000-04-01 Ken Raeburn <raeburn@gnu.org>
2799
2800 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
2801 non-union-type versions of XMARK and friends here, because XMARK
2802 and friends won't work on an integer field if NO_UNION_TYPE is not
2803 defined.
2804 (make_number): Define as a function if it's not defined as a
2805 macro.
2806
09654086
KR
2807 * composite.c (run_composite_function): Use NILP when checking for
2808 nil.
2809 (syms_of_composite): Delete local var NARGS, pass an int as first
2810 argument to Fmake_hash_table.
2811
2387b382
KR
2812 * editfns.c (text_property_stickiness): Use NILP to test
2813 Lisp_Object boolean value.
2814 (Fmessage_or_box): Don't use NILP to test int variable.
c01fbf95
KR
2815 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
2816 problems reading from and changing the same lisp value in an
2817 XSETSTRING call.
2818
27660e89
GM
28192000-04-01 Gerd Moellmann <gerd@gnu.org>
2820
2821 * term.c (TN_no_color_video): New variable.
2822 (term_init): Intitialize TN_no_color_video.
2823 (enum no_color_bit): New enumeration.
2824 (MAY_USE_WITH_COLORS_P): New macro.
2825 (turn_on_face): Use it to determine if attributes may be used
2826 combined with colors.
2827
3578db3c
KR
28282000-04-01 Ken Raeburn <raeburn@gnu.org>
2829
2830 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
2831 with int lvalues via casts; instead, just yield lisp object
2832 lvalues.
2833 (enlarge_window): Variable sizep now points to Lisp_Object. Use
2834 proper accessor macros.
2835 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
2836 (grow_mini_window): Fix typo getting int value of root->height.
2837
6fc556fd
KR
2838 * xdisp.c (compute_string_pos): Fix order of arguments to
2839 string_pos_nchars_ahead.
2840 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
2841 count arg to variable-arg routines like Frun_hook_with_args and
2842 Fformat.
587a49ab
GM
2843 (back_to_previous_visible_line_start)
2844 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
6fc556fd
KR
2845 fixed-arg routines like Fget_char_property and Fmake_string.
2846 (reconsider_clip_changes): Use XINT when comparing integer lisp
2847 objects, or passing them as int arguments.
587a49ab
GM
2848 (mark_window_display_accurate, insert_left_trunc_glyphs)
2849 (append_space, extend_face_to_end_of_line): Use make_number when
6fc556fd
KR
2850 storing or passing integer values as lisp objects.
2851 (set_cursor_from_row, highlight_trailing_whitespace): Use
2852 INTEGERP, not implicit test against zero, for glyph object.
2853 (try_window_id): Don't use make_number when we want an int value.
2854
2855 * xfaces.c (xlfd_symbolic_value): Make last argument a
2856 Lisp_Object, to be consistent with callers.
2857 (Fbitmap_spec_p): Use XINT to get numeric value of height.
2858 (lface_hash): Apply XFASTINT to lisp values before folding in.
2859
2860 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
2861 fill in window width and height. Pass an int, not a lisp object,
2862 as first arg to Finsert.
2863
6e7b2457
GM
28642000-04-01 Gerd Moellmann <gerd@gnu.org>
2865
610d841e
GM
2866 * xfaces.c (realize_basic_faces): Block input while realizing
2867 the faces.
2868
6e7b2457
GM
2869 * keyboard.c (lispy_mouse_names): Add additional mouse names.
2870
2871 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
2872
aa110c0c
GM
28732000-03-31 Gerd Moellmann <gerd@gnu.org>
2874
2875 * xterm.c (x_produce_glyphs): When displaying unibyte text
610d841e 2876 or ASCII, handle case that per-char metric is null.
aa110c0c 2877
8801a864
KR
28782000-03-30 Ken Raeburn <raeburn@gnu.org>
2879
c6129d7e
KR
2880 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
2881
8801a864
KR
2882 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW,
2883 XSUBR, XBUFFER): Verify correct object type before returning
2884 pointer, using eassert.
2885 * frame.h (XFRAME): Likewise.
2886
2887 * buffer.c (Frename_buffer, Fset_buffer_multibyte,
2888 swap_out_buffer_local_variables, Fmove_overlay): Don't apply
2889 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong
2890 type.
2891 * data.c (set_internal): Likewise.
2892 * dispextern.h (WINDOW_WANTS_MODELINE_P,
2893 WINDOW_WANTS_HEADER_LINE_P): Likewise.
2894 * fileio.c (auto_save_1): Likewise.
2895 * insdel.c (check_markers): Likewise.
2896 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
2897 * undo.c (record_insert): Likewise.
2898 * vmsproc.c (child_sig): Likewise.
2899 * window.c (unshow_buffer, window_loop): Likewise.
2900 * xterm.c (x_erase_phys_cursor): Likewise.
2901
8e7af858
GM
29022000-03-30 Gerd Moellmann <gerd@gnu.org>
2903
2904 * xfns.c (free_image_cache): Free the cache structure itself
2905 last, after all its members have been freed.
2906
2907 * lisp.h (xstrdup): Add prototype.
2908
2909 * alloc.c (xstrdup): Moved here from xfaces.c.
2910 (allocating_for_lisp): Variable removed.
2911 (lisp_malloc): Block input around the calls to malloc and
2912 mem_insert.
2913
2914 * xfaces.c (realize_tty_face): Use find_symbol_value instead
2915 of Fsymbol_value.
2916 (xstrdup): Moved to alloc.c.
2917
e0b8c689
KR
29182000-03-29 Ken Raeburn <raeburn@gnu.org>
2919
b96f9fb7
KR
2920 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
2921
2922 * emacs.c (main): Fix sense of no-loadup test.
2923
e0b8c689
KR
2924 * config.in (ENABLE_CHECKING): Undef.
2925
2926 * lisp.h (struct interval): Replace "parent" field with a union of
2927 interval pointer and Lisp_Object; add new bitfield to use as
2928 discriminant. Change other flag fields to bitfields.
2929 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
2930 is defined and the supplied test fails, print a message and
2931 abort.
2932 (eassert): New macro. Use CHECK to provide an assert-like
2933 facility.
2934
2935 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
2936 pointers; abort if the value looks like a lisp object.
2937 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT,
2938 SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
2939 Modify for new interval parent definition.
2940
2941 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE,
2942 UNMARK_BALANCE_INTERVALS): Update references that need an
2943 addressable lisp object in the interval structure.
2944 (die): New function.
2945 (suppress_checking): New variable.
2946
2947 * intervals.c (interval_start_pos): Just return 0 if there's no
2948 parent object.
2949
f83c5440
GM
29502000-03-29 Gerd Moellmann <gerd@gnu.org>
2951
2952 * lread.c (read1): Accept `.' (period) as symbol start like in CL
2953 and earlier Emacs versions.
2954
2955 * keyboard.c (Ftop_level): Cancel busy-cursor.
2956
2957 * eval.c (call_debugger): Cancel busy-cursor.
2958
fdce64ff
KH
29592000-03-29 Kenichi Handa <handa@etl.go.jp>
2960
2961 * search.c (Freplace_match): Adjust multibyteness of the current
2962 buffer and NEWTEXT. Free allocated memory before signaling an
2963 error.
2964
f6a3f532
SM
29652000-03-28 Stefan Monnier <monnier@cs.yale.edu>
2966
2967 * regex.c (analyse_first): New function obtained by ripping out most
2968 of re_compile_fastmap and generalizing it a little bit so that it
2969 can also just return whether a given (sub)pattern can match the empty
2970 string or not.
2971 (regex_compile): Use `analyse_first' to decide whether the loop-check
2972 needs to be done or not for *, +, *? and +? (the loop check is costly
2973 for non-greedy repetition).
2974 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
2975
e9b309ac
DL
29762000-03-28 Dave Love <fx@gnu.org>
2977
bb15bd9a
DL
2978 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k,
2979 alpha.
2980
e9b309ac
DL
2981 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
2982
ed0767d8
SM
29832000-03-27 Stefan Monnier <monnier@cs.yale.edu>
2984
2985 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
2986 an expression.
2987 (enum re_opcode_t): Update description of succeed_n.
2988 (PATFETCH): Always define.
2989 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
2990 operators, char classes, shy-groups and intervals).
2991 Optimize special cases of intervals so as to only use succeed_n and
2992 jump_n when really needed.
2993 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
2994 that we don't have to handle the special cases any more.
2995 Simplify on_failure_jump handling as well.
2996
e11e7e46
JR
29972000-03-28 Jason Rumney <jasonr@gnu.org>
2998
2999 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
3000
88faab89
GM
30012000-03-27 Gerd Moellmann <gerd@gnu.org>
3002
182ff242
GM
3003 * s/freebsd.h (GC_SETJMP_WORKS): Define.
3004
3005 * s/msdos.h (GC_SETJMP_WORKS): Define.
427ec082 3006
182ff242
GM
3007 * alloc.c (mark_maybe_object): New function.
3008 (mark_memory): Use it.
3009 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
3010 (setjmp_tested_p, longjmp_done): New variables.
3011 (test_setjmp): New function.
3012 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
3013 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
3014
c1005d06
GM
3015 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
3016 to DEC_TEXT_POS and INC_TEXT_POS.
3017
3018 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
3019 with parameter MULTIBYTE_P.
3020
427ec082 3021 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter
c1005d06
GM
3022 MULTIBYTE_P.
3023
7439e5b9 3024 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
182ff242
GM
3025 buffers because it looks for multibyte character byte sequences
3026 which don't exist in unibyte text.
7439e5b9 3027
d9c545da
GM
3028 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
3029
11fd416e 3030 * xfaces.c (register_color, unregister_color, unregister_colors)
d9c545da
GM
3031 [DEBUG_X_COLORS]: New functions.
3032 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
3033
3034 * xfns.c (x_set_cursor_color): Get color reference counts right.
3035
3036 * xterm.c (x_copy_color): New function.
3037 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
3038
3039 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
3040 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
3041 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
3042 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
3043 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
3044 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
3045 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
3046 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
3047 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
3048 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
3049
11fd416e
GM
3050 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
3051 names for handling per-buffer variables.
d9c545da
GM
3052
3053 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
3054 instead of MAX_BUFFER_LOCAL_VARS.
3055 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
3056
3057 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
3058
88faab89
GM
3059 * xfns.c (x_specified_cursor_type): New function.
3060 (x_set_cursor_type): Use it.
3061
3062 * buffer.h (struct buffer): Add cursor_type.
3063
d80f42b7
SM
30642000-03-26 Stefan Monnier <monnier@cs.yale.edu>
3065
3066 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
427ec082 3067 (print_partial_compiled_pattern, re_compile_fastmap): Handle new
88faab89 3068 opcode.
d80f42b7
SM
3069 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
3070 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
3071 executing it as well as when popping it off the stack to find infinite
3072 loops in non-greedy repetition operators.
3073
89e80928
GM
30742000-03-26 Gerd Moellmann <gerd@gnu.org>
3075
3d4ff2dd
GM
3076 * doc.c (Qfunction_documentation): New variable.
3077 (syms_of_doc): Initialize Qfunction_documentation.
3078 (Fdocumentation): If FUNCTION is a symbol with non-nil
3079 `function-documentation' property, return a documentation derived
3080 from that.
3081
bd96bd79
GM
3082 * buffer.c (syms_of_buffer): Add default-cursor-type.
3083 (init_buffer_once): Don't let cursor_type have a local value
3084 in every buffer.
3085
19d1bc27
GM
3086 * xterm.c (x_display_and_set_cursor): Choose cursor depending
3087 on buffer-local value of cursor_type.
3088 (x_draw_bar_cursor): Add parameter WIDTH.
3089
3090 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
3091 (init_buffer_once): Set default cursor_type value to t.
3092 Mark cursor_type as local everywhere.
3093 (syms_of_buffer): New per-buffer variable cursor-type.
3094
89e80928
GM
3095 * buffer.h (struct buffer): Remove member local_var_flags,
3096 add local_flags.
3097 (MAX_BUFFER_LOCAL_VARS): New macro.
3098 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
3099 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
3100 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
3101 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
3102
3103 * print.c (print_object): Use new macros for per-buffer
3104 variables.
3105
3106 * category.c (Fset_category_table): Use new macros for per-buffer
3107 variables.
3108
3109 * buffer.c (buffer_permanent_local_flags): Make a char array.
3110 (max_buffer_local_idx): New variable.
3111 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
3112 for new handling of per-buffer variables.
3113 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
3114 (init_buffer_once): Initialize per-buffer vars differently.
3115 Set max_buffer_local_idx.
3116
3117 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
3118 variables.
3119
3120 * lread.c (defvar_per_buffer): Use new macros for per-buffer
3121 variables.
3122
3123 * data.c (do_symval_forwarding, store_symval_forwarding)
3124 (find_symbol_value, set_internal, default_value, Fset_default)
3125 (Fkill_local_variable, Flocal_variable_p): Use new macros for
3126 per-buffer variables.
3127
3128 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
3129
9a0dd3dc
GM
31302000-03-24 Gerd Moellmann <gerd@gnu.org>
3131
b68c375f
GM
3132 * xterm.c (x_term_init): Unblock input around call1 of
3133 Qvendor_specific_keysyms.
3134
9a0dd3dc
GM
3135 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
3136 (find_defun_start): Consider an open parenthesis in column 0
3137 a defun start only if open_paren_in_column_0_is_defun_start is set.
3138 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
3139
7973e637
SM
31402000-03-24 Stefan Monnier <monnier@cs.yale.edu>
3141
3142 * eval.c (Fautoload): Add entry in load-history (if after dump).
3143 * lread.c (load-history): Update docstring.
3144
39210e90
GM
31452000-03-24 Gerd Moellmann <gerd@gnu.org>
3146
3147 * indent.c (Fvertical_motion): Always use the current buffer.
3148 Temporarily change the window's buffer, if necessary.
3149
72db3ab5
GM
31502000-03-23 Gerd Moellmann <gerd@gnu.org>
3151
3152 * xterm.c (fast_find_position): Make sure not to consider rows
3153 not visible in the window.
3154
990b2375
SM
31552000-03-22 Stefan Monnier <monnier@cs.yale.edu>
3156
3157 * regex.c (enum syntaxcode): Provide default for non-Emacs.
3158 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
3159
ff4df011
JR
31602000-03-22 Jason Rumney <jasonr@gnu.org>
3161
3162 * w32menu.c (single_submenu): Set help string to NULL if none.
3163 (w32_menu_show): Set help string correctly.
3164 (add-menu-item): Set help string in MIIM_DATA for menu item.
3165 Load SetMenuItemInfoA explicitly.
3166 (w32_menu_display_help): New function.
427ec082 3167
ff4df011
JR
3168 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
3169 (QCdata): Moved to xdisp.c.
3170
3171 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
3172 (Vw32_charset_to_codepage_alist): Removed.
3173 (Vw32_charset_info_alist): New variable.
3174 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312,
3175 chinesebig5, oem, easteurope, turkish, baltic, russian, arabic,
3176 greek, hebrew, thai, johab, mac, unicode]): New symbols.
3177 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
3178 with TODO comment.
3179 (w32_codepage_for_font): Use Vw32_charset_info_alist.
3180 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
3181 Define Vw32_charset_info_alist and w32_charset symbols.
3182
31832000-03-22 Jason Rumney <jasonr@gnu.org>
3184
3185 * makefile.nt (w32bdf.obj): Update dependencies.
3186
3187 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
3188
3189 * w32fns.c: Include fontset.h after dispextern.h.
3190 (Fx_create_frame): Do not create fontset.
3191 (w32_load_system_font): Doc fix.
3192 (Fx_close_connection): Free full_name if it is not shared.
3193
3194 * w32term.c: Include fontset.h after dispextern.h.
3195 (x_get_glyph_face_and_encoding): New parameter two_byte_p. Callers
3196 updated.
3197 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
3198 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
3199 (w32_font_is_double_byte): New function, needs body.
3200 (x_append_glyph): Set glyph->glyph_not_available_p.
3201 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
3202 it->charset. If it->multibyte_p is zero and it->c is a multibyte
3203 character, convert it to a unibyte character.
3204 (struct glyph_string): Delete member `charset'.
3205 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
3206 calculating it is found.
3207 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
3208 the case that per char metric is not available correctly.
3209 (x_fill_glyph_string): Handle the case that the specific glyph is
3210 not available correctly.
3211 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
3212 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
3213 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
3214 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
3215 fontset. Don't call FS_LOAD_FONT.
3216
439d5cb4
KR
32172000-03-22 Ken Raeburn <raeburn@gnu.org>
3218
3219 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
3220 (INT_LISPLIKE): New macro.
3221 (NULL_INTERVAL_P): Use it.
3222 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT,
3223 SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT,
3224 GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
3225
3226 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
3227 explicit references to "parent" field of struct interval and
3228 associated unclean type conversions.
3229 * intervals.c (create_root_interval, root_interval, rotate_right,
3230 rotate_left, balance_possible_root_interval, split_interval_right,
3231 split_interval_left, interval_start_pos, find_interval,
3232 next_interval, previous_interval, update_interval,
3233 adjust_intervals_for_insertion, delete_node, delete_interval,
3234 adjust_intervals_for_deletion, merge_interval_right,
3235 merge_interval_left, reproduce_tree, graft_intervals_into_buffer,
3236 copy_intervals_to_string): Likewise.
3237 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
3238 Likewise.
3239 * syntax.c (update_syntax_table): Likewise.
3240
3241 * intervals.c (reproduce_tree_obj): New function, like
3242 reproduce_tree but takes a Lisp_Object for the parent. Declare
3243 with prototype.
3244 (graft_intervals_into_buffer): Use it when appropriate.
3245 (reproduce_tree): Declare with prototype.
3246 (balance_possible_root_interval): Check that the parent is a lisp
3247 object before trying to examine its type.
3248
ee1c5b21
GM
32492000-03-22 Gerd Moellmann <gerd@gnu.org>
3250
3251 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
3252 as strings only if both are known to be strings.
3253
3254 * s/openbsd.h (LIBS_TERMCAP): Undef.
3255
1fb352e0
SM
32562000-03-21 Stefan Monnier <monnier@cs.yale.edu>
3257
3258 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
3259 definitions for non-Emacs compilation.
3260 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
3261 outside of `#ifdef emacs'.
3262 (print_partial_compiled_pattern): Update.
3263 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
3264 (re_compile_fastmap): Merge handling of charset and charset_not (for
3265 emacs and non-emacs compilation as well).
3266 Similarly for (not)categoryspec and (not)syntaxspec.
3267 Don't use the fastmap when reaching `anychar' since the added
3268 complexity is not justified.
3269 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
3270 and (not)syntaxspec. Merge (not)categoryspec.
3271
fdaa1f77
KH
32722000-03-22 Kenichi Handa <handa@etl.go.jp>
3273
ff1a0d8e
KH
3274 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P,
3275 FACE_FOR_CHAR): Define them differently for the configuration of
3276 --without-x.
fdaa1f77 3277
d152fb46
DL
32782000-03-21 Dave Love <fx@gnu.org>
3279
3280 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
3281 doc string.
3282
d2cafc8c
GM
32832000-03-21 Gerd Moellmann <gerd@gnu.org>
3284
3285 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
3286 (lface_fully_specified_p): Don't check contents of
3287 LFACE_FONT_INDEX because that attribute is optional.
3288 (realize_x_face): Remove now unwarranted xassert.
3289
9111d4b5
KH
32902000-03-21 Kenichi HANDA <handa@etl.go.jp>
3291
3292 The following changes are to make font selection based on
3293 characters, not charset. In addition, they recover fontset
3294 facilities while utilizing the new font selection mechanism.
3295
6c4bfdc0
KH
3296 * Makefile.in (fontset.o): Depend on dispextern.h.
3297
3298 * alloc.c (mark_face_cache): Don't mark face->registry.
3299
9111d4b5
KH
3300 * dispextern.h (struct glyph): New member glyph_not_available_p.
3301 Use 22 bits for face_id.
3302 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
3303 (struct face): Delete member registry, new member ascii_face.
3304 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
3305 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
3306 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
3307 (struct it): Delete member charset, new member
3308 glyph_not_available_p.
3309
3310 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
3311 (struct fontset_info, struct fontset_data): Structs removed.
3312 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset,
3313 Vglobale_fontset_alist, font_idx_temp): Externs removed.
3314 (fs_load_font, fs_query_fontset): Adjusted for new argument.
3315 (fs_free_face_fontset, fontset_font_pattern,
3316 face_suitable_for_char_p, face_for_char,
3317 make_fontset_for_ascii_face): Extern them.
3318 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
3319 (FS_LOAD_FACE_FONT): New macro.
3320
3321 * fontset.c: All codes rewritten or adjusted for the change of
3322 fontset implementation. Now fontset is represented by char table.
3323 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl): Variables
3324 removed.
3325 (my_strcasecmp): Function removed.
3326 (Vfontset_table, next_fontset_id, Vdefault_fontset): New
3327 variables.
3328 (AREF, ASIZE): New macros.
3329 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME,
3330 FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF,
3331 FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
3332 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset,
3333 fontset_id_valid_p, font_family_registry, fontset_name,
3334 fontset_ascii, free_face_fontset, face_suitable_for_char_p,
3335 face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
3336 New functions.
3337 (fs_load_font): New arg FACE. Caller changed.
3338 (fs_query_fontset): Argument changed. Caller changed.
3339 (Fquery_fontset): call fs_query_fontset.
3340 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
3341 Functions removed.
3342 (clear_fontset_elements, check_registry_encoding,
3343 check_fontset_name): New functions.
3344 (syms_of_fontset): Set char-table-extra-slots property of fontset
3345 to 3. Staticpro and initialize Vfontset_table and
3346 Vdefault_fontset. Defsubr fontset_font and fontset_list.
3347
3348 * frame.h (struct frame): Member `fontset_data' removed.
3349 (FRAME_FONTSET_DATA): Macro removed.
3350
3351 * frame.c (make_frame): Don't allocate f->fontset_data.
3352 (Fdelete_frame): Don't free f->fontset_data.
3353
6c4bfdc0
KH
3354 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
3355
9111d4b5
KH
3356 * xdisp.c (charset_at_position): Function removed.
3357 (init_iterator): Don't set member charset of struct `it'.
3358 (handle_face_prop, reseat_to_string, set_iterator_to_next,
3359 next_element_from_display_vector, insert_left_trunc_glyphs):
3360 Likewise.
3361 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
3362 FACE_FOR_CHARSET.
3363 (get_next_display_element, append_space,
3364 extend_face_to_end_of_line): Likewise.
3365
3366 * xfaces.c (Qx_charset_registry, Vface_default_registry):
3367 Variables removed.
3368 (clear_font_table, frame_update_line_height, load_face_font):
3369 Adjusted for the change of fontset implementation.
3370 (load_face_fontset_font): Function removed.
3371 (pixel_point_size): New function.
3372 (font_list): Argument type changed. Caller changed.
3373 (LFACE_FONT): New macro.
3374 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
3375 (set_lface_from_font_name): Type of arg FONTNAME is changed to
3376 Lisp_Object. Determine the font name by actually loading a font
3377 by the specified pattern. Set LFACE_FONT (lface) to the specified
3378 pattern. Even if a font is not found, don't try alternatives.
3379 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
3380 (set_font_frame_param): If `font' is specified in lface, use it.
3381 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
3382 (lface_same_font_attributes_p): Likewise.
3383 (make_realized_face): Arguent changed. Caller changed. Set
3384 face->ascii_face to face itself.
3385 (free_realized_face): Free face->fontset if face is for ASCII.
3386 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p,
3387 deduce_unibyte_registry, x_charset_registry): Functions removed.
3388 (free_realized_multibyte_face): New function.
3389 (lookup_face, lookup_named_face, lookup_derived_face): Argument
3390 changed. Caller changed.
3391 (try_font_list): Argument type changed.
3392 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
3393 (choose_face_font): Argument changed. Handle fontset properly.
3394 (choose_face_fontset_font): Function removed.
3395 (realize_default_face, realize_named_face): Don't remove the
3396 former face here.
3397 (realize_face): Argument changed. Caller changed. Remove face
3398 with the arg former_face_id in advance. Load font for the new
3399 face.
3400 (realize_x_face): Argument changed. Caller changed. For a
3401 multibyte character, share fontset with base_face. For a single
3402 byte character, make a new realized fontset. Don't load a font
3403 here.
3404 (realize_tty_face): Argument changed. Caller changed.
3405 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
3406 (face_at_buffer_position): Don't check multibyte_p for returning
3407 DEFAULT_FACE_ID.
3408 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
3409 FACE_SUITABLE_FOR_CHARSET_P.
3410 (syms_of_xfaces): Remove code for Qx_charset_registry and
3411 Vface_default_registry.
3412
6c4bfdc0
KH
3413 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
3414 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
9111d4b5
KH
3415 (x_per_char_metric): Don't try FONT->default_char. Even if
3416 pcm->width is zero, glyph bits may exist.
3417 (x_encode_char): Always initialize char2b->byte1.
3418 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
3419 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller
3420 changed.
3421 (x_append_glyph): Set glyph->glyph_not_available_p.
3422 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
3423 it->charset. Handle the case that per char metric is not
3424 available. If it->multibyte_p is zero and it->c is a multibyte
3425 character, convert it to a unibyte character.
3426 (struct glyph_string): Delete member `charset'.
3427 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
3428 the case that per char metric is not available correctly.
3429 (x_fill_glyph_string): Handle the case that the specific glyph is
3430 not available correctly.
3431 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
3432 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
3433 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
3434 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
3435 fontset. Don't call FS_LOAD_FONT.
3436
3437 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
3438 (x_create_tip_frame): Likewise.
3439 (Fx_close_connection): Free full_name of font_info.
3440
3441 * fns.c (optimize_sub_char_table): New function.
3442 (Foptimize_char_table): New function.
3443 (syms_of_fns): Defsubr Soptimize_char_table.
3444
b33dd3b0
GM
34452000-03-20 Gerd Moellmann <gerd@gnu.org>
3446
3447 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
3448 only if buffer is displayed in some window.
3449
3450 * xdisp.c (handle_single_display_prop): Initialize local `value'.
3451 (try_window_reusing_current_matrix): Don't call scroll run
3452 function if run's current and desired position are the same;
3453 this prevents cursor flickering.
3454
4e8a9132
SM
34552000-03-19 Stefan Monnier <monnier@cs.yale.edu>
3456
3457 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
3458
3459 * regex.c (RE_STRING_CHAR): New macro.
3460 (GET_CHAR_AFER_2): Remove.
3461 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
3462 (enum re_opcode_t): Remove on_failure_jump_exclusive.
3463 (print_partial_compiled_pattern, re_compile_fastmap)
3464 (re_match_2_internal): Remove on_failure_jump_exclusive.
3465 (regex_compile): Turn optimizable P+ loops into PP*, so that the
3466 optimization only need to work for * (ie. can use of_keep_string_jump).
3467 Remove the special case for .*\n since it is now covered by the general
3468 optimization.
3469 (re_search_2): Don't bother with `room'.
3470 (skip_one_char): New function.
3471 (skip_noops): Simplify since `memory' is not needed any more.
3472 (mutually_exclusive_p): Restructure slightly to use `switch' and
3473 add handling for "all" remaining cases.
3474 (re_match_2_internal): Change on_failure_jump_smart to use
3475 on_failure_keep_string_jump (and redirect the end-of-loop jump)
3476 rather than on_failure_jump_exclusive.
3477
2136fdd4
GM
34782000-03-19 Gerd Moellmann <gerd@gnu.org>
3479
3480 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
3481 number of bits per RGB because it's everywhere used as the depth
3482 of the visual.
3483
3484 * term.c (calculate_costs): Remove code dealing with X frames.
3485
18e21ce8 34862000-03-19 Richard M. Stallman <rms@gnu.org>
e53ae11c
RS
3487
3488 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
3489
d7b511c4
GM
34902000-03-18 Gerd Moellmann <gerd@gnu.org>
3491
3492 * lread.c (read_integer): Unread the last char not consumed.
3493
16b5d424
GM
34942000-03-17 Gerd Moellmann <gerd@gnu.org>
3495
3496 * xterm.c (x_update_window_cursor): Don't update in frames
d7b511c4 3497 which are in the process of being deleted.
16b5d424 3498
1fa28578
GM
34992000-03-16 Gerd Moellmann <gerd@gnu.org>
3500
83488cce
GM
3501 * Makefile.in (mostlyclean): Add `*.core'.
3502 (clean): Add `bootstrap-emacs'.
3503
1fa28578
GM
3504 * lread.c (read_integer): New function.
3505 (read1): Support read syntax #o, #x, #b, #r.
3506
99633e97
SM
35072000-03-15 Stefan Monnier <monnier@cs.yale.edu>
3508
1fa28578
GM
3509 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
3510 make sure POINTER_TO_OFFSET gives the same value before and after
3511 PREFETCH. Use `dfail' to guarantee "atomic" matching.
99633e97
SM
3512 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
3513 (debug): Now only active if > 0 rather than if != 0.
3514 (DEBUG_*): Update for the new meaning of `debug'.
1fa28578
GM
3515 (print_partial_compiled_pattern): Add missing `succeed' case. Use
3516 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
3517 in `succeed_n', `jump_n' and `set_number_at'.
99633e97
SM
3518 (store_op1, store_op2, insert_op1, insert_op2)
3519 (at_begline_loc_p, at_endline_loc_p): Add prototype.
1fa28578
GM
3520 (group_in_compile_stack): Move to after its arg's types are
3521 declared and add a prototype.
99633e97 3522 (PATFETCH): Define in terms of PATFETCH_RAW.
1fa28578
GM
3523 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)'
3524 wrapper.
99633e97 3525 (QUIT): Redefine as a nop except for NTemacs.
1fa28578
GM
3526 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
3527 indentation of the greedy-op and shy-group code.
99633e97
SM
3528 (at_(beg|end)line_loc_p): Fix argument's types.
3529 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
3530 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
3531 (MATCHING_IN_FIRST_STRING): Remove.
1fa28578
GM
3532 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
3533 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
3534 QUIT unconditionally.
99633e97 3535
699238d9
GM
35362000-03-15 Gerd Moellmann <gerd@gnu.org>
3537
3538 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
3539 a sole completion.
3540
3541 * process.c (send_process): Add a hint that the function
3542 can call Lisp code to its comment.
3543
3544 * lread.c (load_dangerous_libraries): New variable.
3545 (Vbytecomp_version_regexp): New variable.
3546 (safe_to_load_p): New function.
3547 (Fload): Handle files not compiled with Emacs specially.
3548 (syms_of_lread): New Lisp variable load-dangerous-libraries.
3549
34e23e5a
GM
35502000-03-14 Gerd Moellmann <gerd@gnu.org>
3551
9c763cca
GM
3552 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
3553
3554 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
3555 support functions only if HAVE_X11R6_XIM is defined.
3556 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
3557
3558 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
3559
3560 * xfns.c (X_I18N_INHIBITED): Don't define.
3561 (create_frame_xic): Remove conditional compilation on
3562 X_I18N_INHIBITED.
3563 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
3564
3565 * config.in (HAVE_X_I18N): Moved here from xterm.h.
3566 (HAVE_X11R6_XIM): Define.
3567
3568 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
3569
34e23e5a
GM
3570 * xterm.c (x_term_init): Add support for X resource `synchronous'.
3571 If set, call XSynchronize.
3572
66f0296e
SM
35732000-03-13 Stefan Monnier <monnier@cs.yale.edu>
3574
34e23e5a
GM
3575 * regex.c: Declare a new type `re_char' used throughout the code
3576 for the string char type. It's `const unsigned char' to match the
3577 rest of Emacs. Consistently make sure all pointers to strings use
3578 it and make sure all pointers into the pattern use `unsigned
3579 char'.
66f0296e 3580 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
34e23e5a
GM
3581 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
3582 code duplication.
66f0296e
SM
3583
3584 * charset.h (GET_CHAR_AFTER_2): Remove.
3585 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
3586
854a025c
KR
35872000-03-12 Ken Raeburn <raeburn@gnu.org>
3588
3589 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
3590 variable before the invocation of YMF_PASS_LDFLAGS, in case both
3591 of them try to use backquotes.
3592
b9d2c7e2
DL
35932000-03-12 Dave Love <fx@gnu.org>
3594
3595 * unexelf.c: Restore changes of 1999-10-19.
3596 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
3597 fix its type and alignment; copy it from current process.
3598
5e5dff44
GM
35992000-03-12 Gerd Moellmann <gerd@gnu.org>
3600
9b2f3c38
GM
3601 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
3602 has been found. Fix bug not computing timer's predecessor.
3603
427ec082 3604 * fileio.c (Fread_file_name): Handle case that DIR contains a
9172b88d
GM
3605 file name.
3606
e1cff360
GM
3607 * window.c (Fsave_window_excursion): Doc fix.
3608
5e5dff44
GM
3609 * xfns.c (x_defined_color): Rewritten to use
3610 x_allocate_nearest_color.
3611
e411ce4b
EZ
36122000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
3613
3614 * msdos.c (vga_installed): New function, code moved from
3615 dos_set_window_size.
3616 (Qbar, Qcursor_type, outside_cursor): New variables.
3617 (syms_of_msdos): Intern and staticpro them.
3618 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
3619 shape used outside Emacs when called for the first time.
3620 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
3621 cursor shape used outside Emacs.
3622 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
3623 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
3624 type has changed.
3625 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
3626 parameters specify the cursor. Make qreverse a global
3627 variable (renamed to Qreverse).
3628
80460654
GM
36292000-03-09 Gerd Moellmann <gerd@gnu.org>
3630
3631 * fns.c (Fy_or_n_p): Cancel busy-cursor.
3632
95cd4c40
SM
36332000-03-08 Stefan Monnier <monnier@cs.yale.edu>
3634
3635 This is a big redesign of failure-stack and register handling, prompted
3636 by bugs revealed when trying to add shy-groups. Overall, what happened
3637 is that loops are now structured a little differently, groups can be
3638 shy and the code is a little simpler.
3639
3640 * regex.h: Update the copyright.
3641 (RE_SHY_GROUPS): New value.
3642 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
3643 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
3644
80460654
GM
3645 * regex.c (enum re_opcode_t): Remove jump_past_alt,
3646 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
3647 on_failure_jump_(exclusive, loop and smart). Also fix the comment
3648 for (start|stop)_memory since they now only take one argument (the
3649 second has becomes unnecessary).
3650 (print_partial_compiled_pattern): Adjust for changes in
3651 re_opcode_t.
3652 (print_compiled_pattern): Use %ld to printf long ints and flush to
3653 make debugging a little easier.
95cd4c40
SM
3654 (union fail_stack_elt): Make the integer unsigned.
3655 (struct fail_stack_type): Add a `frame' element.
3656 (INIT_FAIL_STACK): Init `frame' as well.
3657 (POP_PATTERN_OP): New macro for re_compile_fastmap.
3658 (DEBUG_PUSH, DEBUG_POP): Remove.
3659 (NUM_REG_ITEMS): Remove.
3660 (NUM_NONREG_ITEMS): Adjust.
80460654
GM
3661 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
3662 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
95cd4c40 3663 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
80460654
GM
3664 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP): New
3665 macros.
3666 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
3667 address pushed is not the destination of the jump but the source
3668 of it instead.
95cd4c40
SM
3669 (NUM_FAILURE_ITEMS): Remove.
3670 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
80460654
GM
3671 registers before the actual failure point). Don't hardcode any
3672 meaning for str==NULL anymore.
95cd4c40 3673 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
80460654
GM
3674 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
3675 Remove.
95cd4c40
SM
3676 (REG_UNSET_VALUE): Use NULL (why not?).
3677 (compile_range): Remove declaration since it doesn't exist.
3678 (struct compile_stack_elt_t): Remove inner_group_offset.
3679 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
3680 (regex_grow_registers): Remove dead code.
3681 (FIXUP_ALT_JUMP): New macro.
80460654
GM
3682 (regex_compile): Add shy-groups Change loops to use
3683 on_failure_jump_smart&jump instead of
3684 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
3685 initial (dummy_failure_)jump. Remove c1_base (looks like unused
3686 variable to me). Use `jump' instead of `jump_past_alt' and don't
3687 bother with push_dummy_failure in alternatives since it is now
3688 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
3689 emacs' for (re)allocating the stack.
3690 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
3691 from loop when bufp->can_be_null rather than jumping to `done'.
3692 Avoid jumping backwards so as to ensure termination. Use
3693 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
3694 backreferences. Remove dead code in handling of `anychar'.
95cd4c40 3695 (skip_noops, mutually_exclusive_p): New functions taken from the
80460654
GM
3696 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
3697 improve mutually_exclusive_p to handle ".+\n".
3698 (lowest_active_reg, highest_active_reg,
3699 NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
3700 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
3701 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
3702 variables. Push register (in `start_memory') on the stack rather
3703 than storing it in old_reg(start|end). Remove the cycle detection
3704 from `stop_memory', replaced by the use of on_failure_jump_loop
3705 for greedy loops. Add code for the new on_failure_jump_<foo>.
3706 Remove ad-hoc code in `on_failure_jump' to push more registers in
3707 the case of a loop. Take out code from `maybe_pop_jump' into
3708 separate functions and adapt it to the semantics of
3709 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
3710 and push_dummy_failure. Remove dummy_failure handling and
3711 handling of `failures to jump to on_failure_jump' (this last one
3712 was already dead code, it seems).
3713 (group_match_null_string_p, alt_match_null_string_p)
3714 (common_op_match_null_string_p): Remove.
95cd4c40 3715
7397acc4
DL
37162000-03-08 Dave Love <fx@gnu.org>
3717
3718 * config.in: Don't depend on __STDC__ for volatile.
3719 Add POINTER_TYPE, PTR, PROTOTYPES.
3720
3721 * hftctl.c, strftime.c: Use PROTOTYPES.
3722 * eval.c (find_handler_clause): Likewise.
3723
3724 * mem-limits.h: Use POINTER_TYPE.
3725
3726 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
3727 (memory_warnings): Declare using POINTER_TYPE.
3728
5e91ff9e
GM
37292000-03-08 Gerd Moellmann <gerd@gnu.org>
3730
feab4fba
GM
3731 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
3732
25edb08f
GM
3733 * xdisp.c (display_echo_area): Temporarily inhibit garbage
3734 collection.
3735
5e91ff9e
GM
3736 * xfns.c: Remove obsolete code in #if 0.
3737 (Fx_focus_frame): New function.
3738
a735b7e1
KH
37392000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
3740
3741 * coding.c (coding_category_name): Add coding-category-utf-8,
3742 coding-category-utf-16-be, coding-category-utf-16-le.
3743 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
3744 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
3745 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
3746 (detect_coding_utf_8): New function.
3747 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
3748 UTF_16_LOW_SURROGATE_P): New macros.
3749 (detect_coding_utf_16): New function
3750 (detect_coding_mask): When priorities are specified, skip any
3751 categories that have `nil' coding-system. Fix bug of returning
3752 wrong mask when PRIORITIES is specified and detect_coding_XXX()
3753 returns a mask not set in PRIORITIES.
3754 (detect_eol_type_in_2_octet_form): New function.
3755 (detect_eol): selects detect_eol_type_XXX to call according to
3756 cooding->category_idx.
3757 (detect_coding_system): Remove `nil' coding-system in the result.
3758 (Fupdate_coding_systems_internal): Update all coding-categories.
3759
3760 * coding.h (CODING_CATEGORY_IDX_UTF_8,
3761 CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE): New
3762 macros.
3763 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY,
3764 CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
3765 CODING_CATEGORY_IDX_UTF_16_LE.
3766 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE,
3767 CODING_CATEGORY_MASK_UTF_16_LE): New macros.
3768 (CODING_CATEGORY_MASK_ANY): Include the above macros.
3769 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
3770
9994cc69
GM
37712000-03-07 Gerd Moellmann <gerd@gnu.org>
3772
e9b4e5ff
GM
3773 * doc.c (Fdocumentation_property): If value is not a string,
3774 and doesn't refer to etc/DOC, evaluate it to obtain a string.
3775
f7daf1e1
GM
3776 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
3777 close the display with XtCloseDisplay. This caused a bus error
3778 on OpenWindows.
3779
9994cc69
GM
3780 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
3781 complete but not unique.
3782
4336c705
GM
37832000-03-06 Gerd Moellmann <gerd@gnu.org>
3784
18bb0684
GM
3785 * process.c (send_process): Remove local variable `procname' that
3786 might become invalid when a GC happens. Instead, access the
3787 process name slot directly.
3788
4336c705
GM
3789 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
3790 orig_height if set.
3791
3792 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
3793 orig_height if set.
3794
515d0d0e
EZ
37952000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
3796
3797 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
3798 glyph matrices have been freed.
3799
100b3cbb
GM
38002000-03-05 Gerd Moellmann <gerd@gnu.org>
3801
50df5e5a 3802 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
6178bc23 3803 (bootstrap-temacs): Set LC_ALL to C like for temacs.
50df5e5a
GM
3804
3805 * xfns.c (QCdata): Moved to xdisp.c.
3806
3807 * xdisp.c (QCdata): Moved here from xfns.c.
3808 (syms_of_xdisp): Initialize QCdata.
3809
3810 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
3811
3812 * window.c (coordinates_in_window): Use
3813 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
3814 FRAME_INTERNAL_BORDER_WIDTH.
3815
100b3cbb 3816 * xdisp.c (try_window_id): Recompute unchanged information if
4336c705 3817 it is obviously invalid.
100b3cbb
GM
3818
3819 * xterm.c (x_term_init): Create a colormap if not using the
3820 default visual.
3821
3822 * xterm.h (select_visual): Change prototype.
3823
3824 * xfns.c (select_visual): Rewritten. Recognize user-specified
3825 visual classes.
3826 (visual_classes): New variable.
3827
64d739c4
GM
38282000-03-04 Gerd Moellmann <gerd@gnu.org>
3829
3830 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
3831 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
3832 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
3833 (x_decode_color): Don't handle allocation of white and black
3834 specially.
3835 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
3836 XtNcolormap resources.
3837 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
3838 (Fx_create_frame): Initialize color members of x_output structure.
3839 (xpm_load): Pass colormap to XPM lib.
3840
3841 * xfaces.c (x_free_colors): Access colormap of frame using
3842 FRAME_X_COLORMAP. Be paranoid about freeing black and white
3843 when default colormap is used.
3844
3845 * xterm.c (x_term_init): Set Colormap member of x_display_info
3846 structure. Copy colormap if resource `privateColormap' is
3847 specified (PseudoColor only).
3848 (x_setup_relief_color): Access colormap of frame using
3849 FRAME_X_COLORMAP.
3850
3851 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
3852 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
3853
c3cee013
JR
38542000-03-04 Jason Rumney <jasonr@gnu.org>
3855
3856 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
3857 other non-platform-specific equivalents.
64d739c4 3858 [WINDOWSNT]: Include w32term.h, fontset.h and define X
c3cee013
JR
3859 specific functions and macros as their w32 equivalents where
3860 non-platform-specifics are not available.
3861 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
3862 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
3863 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
3864 (frame_update_line_height): Use macros to access f->output_data.
3865 (defined_color): Remove FIXME comments; fixed.
3866 (x_face_list_fonts, prepare_face_for_display): Put X specifics
3867 into #ifdef blocks. Add WINDOWSNT blocks.
3868 (Fx_list_fonts): Use macros for accessing font data.
3869 (set_lface_from_font_name): Different default fonts for X and
3870 WINDOWSNT.
3871 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
3872 scalable for backward compatibility.
64d739c4 3873 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
c3cee013
JR
3874 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
3875
64d739c4 3876 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
c3cee013
JR
3877 syms_of_w32faces.
3878
3879 * makefile.nt (w32faces.obj): Remove.
3880 (xfaces.obj): Add.
3881
807cc41c
JR
38822000-03-03 Jason Rumney <jasonr@gnu.org>
3883
3884 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
3885 correct parameters.
3886
0007072a
KR
38872000-03-03 Ken Raeburn <raeburn@gnu.org>
3888
3889 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
3890 standard ELF definitions here if the system header does not.
3891
71a6ba55
GM
38922000-03-03 Gerd Moellmann <gerd@gnu.org>
3893
3894 * xterm.c (PER_CHAR_METRIC): Removed.
3895 (x_per_char_metric_1, x_default_char): New functions.
3896 (x_per_char_metric): If font's default char is invalid, return
3897 metrics of a suitably chosen usable default char.
3898 (x_draw_glyph_string_foreground): If font has an invalid default
64d739c4
GM
3899 char, replace occurrences of unprintable chars with a suitably
3900 chosen usable default char.
71a6ba55 3901
900fa1f1
GM
39022000-03-02 Gerd Moellmann <gerd@gnu.org>
3903
42f55fe0
GM
3904 * xterm.c (note_mouse_highlight): Return quickly if frame's
3905 glyph matrices have been freed.
3906
3907 * dispnew.c (free_glyphs): Block input while freeing matrices.
3908
900fa1f1
GM
3909 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
3910
3911 * xterm.c (x_alloc_lighter_color, x_setup_relief_color): Use
3912 x_free_colors.
3913
3914 * dispextern.h (x_free_colors): Add prototype.
3915
3916 * xfaces.c (x_free_colors): New function.
3917 (unload_color, free_face_colors): Use it.
3918
2f950292
EZ
39192000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
3920
3921 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
3922
3923 * window.c [MSDOS]: Include msdos.h.
3924
54d04320
DL
39252000-03-02 Dave Love <fx@gnu.org>
3926
3927 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
3928
3929 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
3930 set C_OPTIMIZE_SWITCH for gcc.
3931
0ba93ac4
KH
39322000-03-02 Kenichi Handa <handa@etl.go.jp>
3933
3934 * coding.c (coding_save_composition): Be sure to allocate
3935 composition data area in coding even if there's no composition in
3936 the current run.
3937
a2bc11d4
JR
39382000-03-01 Jason Rumney <jasonr@gnu.org>
3939
3940 * w32term.c: Equivalent changes to those made to xterm.c on
3941 2000-02-25 and 2000-02-24.
3942
3943 * w32fns.c: Equivalent changes to those made to xfns.c on
3944 2000-02-25 and 2000-02-21.
3945
3946 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
3947 correct line-end convention is followed.
3948
3949 * w32menu.c [HAVE_BOXES]: Remove #undef.
3950 (single_keymap_panes): Remove code for simulating checkmarks.
3951 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
3952 Remove code for drawing simulated checkmarks.
3953 (w32_menu_show): make unibyte help string correctly.
3954 (add_menu_item): draw standard Windows checkmarks. Draw radio
3955 buttons as radio buttons if possible.
3956
72d19d75
GM
39572000-03-01 Gerd Moellmann <gerd@gnu.org>
3958
2df636f4
GM
3959 * sysdep.c (start_of_text): Don't define this function for NetBSD
3960 with ELF.
3961
427ec082 3962 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
2df636f4
GM
3963 Don't define.
3964 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
3965 (LINKER): Don't undef if __NetBSD__ is defined.
3966
3967 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
3968
3969 * fileio.c [__NetBSD__]: Define `unix'.
3970
72d19d75
GM
3971 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
3972
ed4d0512
GM
39732000-02-29 Gerd Moellmann <gerd@gnu.org>
3974
50b1039f
GM
3975 * atimer.c (start_atimer): Don't abort when timers are stopped.
3976 (append_atimer_lists): New function.
3977 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
3978 arbitrary lists of stopped and running atimers.
3979
ed4d0512
GM
3980 * atimer.c (cancel_atimer): Handle canceling an atimer when
3981 some timers are stopped.
3982
3983 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
3984 after canceling it.
3985
3986 * fns.c (maybe_resize_hash_table): Handle case of new size
3987 coming out as being the same as old size.
3988
387023ee
JR
39892000-02-27 Jason Rumney <jasonr@gnu.org>
3990
3991 * makefile.nt: Add atimer.h to dependencies.
3992 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
3993 * w32console.c: Only disable window system features for dispextern.h
3994 (initialize_w32_display): Build a display info for the console.
3995 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
3996 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
3997 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
3998 as 2 button mice.
3999 * w32gui.h (struct W32FontStruct): Revert last change after change
4000 to xdisp.c.
4001 * w32menu.c (single_submenu): Set up help string.
4002 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
4003 (w32_dialog_show): Set up help string.
4004 * w32term.c (w32_display_info_for_display): Remove unused function.
4005 (w32_draw_bitmap): Use pre-built bitmaps.
4006 (w32_initialize_display_info): New function to initialize parts of
4007 display info that are common to both GUI and console frames.
4008 (w32_term_init): Use w32_initialize_display_info. Do not set
4009 Vw32_num_mouse_buttons here, as it is not called for console
4010 frames. Build bitmaps for indicating truncated lines etc.
4011 (x_delete_display): Destroy pre-built bitmaps.
4012 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
4013 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
4014
4516715a
DL
40152000-02-27 Dave Love <fx@gnu.org>
4016
4017 * lisp.h: Add a bunch of prototypes.
4018
171ca836
KH
40192000-02-26 Kenichi Handa <handa@etl.go.jp>
4020
4021 * keyboard.c (read_char): Set `usec' correctly.
4022
4013921d
KH
40232000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
4024
4025 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
4026 `lambda', set reg[RRR] to the map index.
4027 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
4028 reg[RRR] to 0. Otherwise, set it to -1.
4029
9244a058
GM
40302000-02-25 Gerd Moellmann <gerd@gnu.org>
4031
2df636f4 4032 * emacs.c (main): Remove code snippet commented out with `//'.
9244a058 4033
18e21ce8 40342000-02-25 Richard M. Stallman <rms@gnu.org>
427ec082 4035
f43d79c1
GM
4036 * fileio.c (Ffile_symlink_p): If result starts with a `/'
4037 and contains a `:', prepend `/:'.
4038
4039 * window.c (select_window_1): If selected_window is nil,
4040 don't "swap out" the buffer's point.
4041 (Fset_window_configuration): Set selected_window to nil
4042 before calling Fselect_window.
4043 (unshow_buffer): Don't set point in buffer from window's point
4044 if another more recently selected window also shows the buffer.
4045
bed0c171
GM
40462000-02-25 Gerd Moellmann <gerd@gnu.org>
4047
449c3c52
GM
4048 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
4049
f5b58615
GM
4050 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
4051 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
4052 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay): New
4053 variables.
4054 (DEFAULT_BUSY_CURSOR_DELAY): New define.
4055 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
4056 (hide_busy_cursor): New functions.
4057 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
4058
4059 * minibuf.c (read_minibuf): Cancel busy-cursor.
4060
4061 * keyboard.c (command_loop_1): Call start_busy_cursor before
4062 Fcommand_execute and cancel_busy_cursor after it.
4063 (timer_check): Remove busy-cursor code.
4064 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
4065 cursor timer.
4066
4067 * process.c (wait_reading_process_input): Remove busy-cursor code.
4068
4069 * eval.c (Fsignal): Call cancel_busy_cursor instead of
4070 Fx_hide_busy_cursor.
4071
4072 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
4073 Remove prototyoes.
4074 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
4075
4076 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
4077
4078 * xterm.c (XTread_socket): Remove busy-cursor code.
4079
4eb8436f
GM
4080 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
4081 (build_frame_matrix_from_leaf_window): Put code handling
4082 glyph row's not being a slice of a frame row in #if 0.
4083 (sync_window_with_frame_matrix_rows): New function.
4084 (frame_row_to_window): New function.
4085 (mirror_line_dance): Handle copies between windows.
4086
3cb65b0e
GM
4087 * lread.c (Fload): Use `xfree' instead of `free'.
4088 (init_obarray): Use `xmalloc' instead of `malloc'.
4089
bed0c171
GM
4090 * window.c (Fset_window_buffer): Set WINDOW to the window
4091 after decoding.
2add4349
GM
4092 (coordinates_in_window): Take frame's internal border width
4093 into account.
bed0c171 4094
42088c12
GM
40952000-02-24 Gerd Moellmann <gerd@gnu.org>
4096
4097 * xterm.c (x_display_and_set_cursor): Display cursor of
4098 non-selected windows depending on the setting of
4099 cursor_in_non_selected_windows.
4100
4101 * xdisp.c (cursor_in_non_selected_windows): New variable.
4102 (syms_of_xdisp): DEFVAR_BOOL it.
4103
d1e103b2
GM
41042000-02-23 Gerd Moellmann <gerd@gnu.org>
4105
723e779c
GM
4106 * data.c (Fstring_to_number): If number is greater than what
4107 fits into an integer, return a float.
4108
d1e103b2
GM
4109 * eval.c (specbind): Remove references to
4110 keyword_symbols_constant_flag.
4111
4112 * data.c (keyword_symbols_constant_flag): Removed.
4113 (Fmakunbound, set_internal, syms_of_data): Remove references to
4114 keyword_symbols_constant_flag.
4115
4116 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
4117
214f877f
KH
41182000-02-23 Kenichi Handa <handa@etl.go.jp>
4119
4120 * syntax.c (multibyte_syntax_as_symbol): New variable.
4121 (syms_of_syntax): Declare it as a Lisp variable.
4122 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
4123 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
4124 nonzero, treat all multibyte characters as symbol.
42088c12 4125 (init_syntax_once): Give syntax `word' to all multibyte
214f877f
KH
4126 characters.
4127
130adcb7
EZ
41282000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
4129
3cb65b0e 4130 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
d7d0dac0 4131 a deleted frame.
130adcb7 4132
17cbbf95
GM
41332000-02-21 Gerd Moellmann <gerd@gnu.org>
4134
4135 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
4136
4137 * xfns.c (x_window_to_frame, x_any_window_to_frame)
4138 (x_non_menubar_window_to_frame): Check the busy-cursor window.
4139
beb0bc36
DL
41402000-02-21 Dave Love <fx@gnu.org>
4141
4142 * frame.c (Vmouse_position_function): New variable.
4143 (Fmouse_position): Use it.
4144 (syms_of_frame): Install it.
4145
4146 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
4147
1d92afcd
GM
41482000-02-20 Gerd Moellmann <gerd@gnu.org>
4149
4150 * fileio.c (Finsert_file_contents): Unbind the binding of
4151 standard-output done by temp_output_buffer_setup.
329eed9f
GM
4152
4153 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
4154 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
4155 (specbind, unbind_to): Handle most common case of non-constant
4156 symbol with trivial value specially.
4157
4158 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
4159
18e21ce8 41602000-02-20 Richard M. Stallman <rms@gnu.org>
2d06696f
RS
4161
4162 * data.c (Fmake_variable_buffer_local): Doc fix.
4163 Init found_for_buffer to 0.
4164 (Fmake_variable_frame_local): If the variable has already
4165 been buffer-local, set the check_frame field.
4166
1d4311c3
EZ
41672000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
4168
4169 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
4170 produced for CODING_MODE_LAST_BLOCK requires.
4171
2dc95ddd
DL
41722000-02-18 Dave Love <fx@gnu.org>
4173
4174 * keyboard.c (echo_keystrokes): Remove declaration.
4175 (Vecho_keystrokes) New variable.
4176 (read_char, record_menu_key, read_key_sequence): Use it to allow
4177 use of float value.
4178 (syms_of_keyboard): Change Vecho_keystrokes declaration.
4179
4180 * lread.c: Undef feature selection macros before defining.
4181
f0930f35
GM
41822000-02-18 Gerd Moellmann <gerd@gnu.org>
4183
4184 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
4185 for symbols other than the symbol in question.
4186
e3d4de90
DL
41872000-02-17 Dave Love <fx@gnu.org>
4188
4189 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
4190
0b378936
GM
41912000-02-17 Gerd Moellmann <gerd@gnu.org>
4192
d621caf7
GM
4193 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
4194
0b378936
GM
4195 * alloc.c (enum mem_type): Compile unconditionally.
4196
3b451f74
EZ
41972000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
4198
4199 * xfaces.c (tty_defined_color): Don't return faulire indication
4200 for unspecified-fg and unspecified-bg pseudo-colors.
4201
10689a01
GM
42022000-02-17 Gerd Moellmann <gerd@gnu.org>
4203
1216f5e4
GM
4204 * alloc.c (mark_object): Don't mark symbol names in pure space.
4205 (gc_sweep): Don't unmark symbol names in pure space.
4206
4207 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
4208 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
4209 [GC_MARK_STACK]: New defines.
427ec082 4210 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
1216f5e4
GM
4211 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
4212
4213 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
4214
4215 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
4216 allocate_buffer instead of xmalloc.
4217
4218 * alloc.c (toplevel): Include setjmp.h.
4219 (PURE_POINTER_P): New define.
4220 (enum mem_type) [GC_MARK_STACK]: New enumeration.
4221 (Vdead) [GC_MARK_STACK]: New variable.
4222 (lisp_malloc): Add parameter TYPE, call mem_insert if
4223 GC_MARK_STACK is defined.
4224 (allocate_buffer): New function.
427ec082 4225 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
1216f5e4
GM
4226 (free_float) [GC_MARK_STACK]: Set type to Vdead.
4227 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
4228 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
4229 (MEM_NIL) [GC_MARK_STACK]: New define.
4230 (struct mem_node) [GC_MARK_STACK]: New structure.
4231 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
4232 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
4233 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
4234 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
4235 (mark_stack) [GC_MARK_STACK]: New functions.
4236 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
4237 (clear_marks): Removed.
4238 (gc_sweep): Set free conses' car, free floats' type, free
4239 symbols' function to Vdead. Use lisp_free to free buffers.
4240 (init_alloc_once): Initialize Vdead.
4241 (survives_gc_p): Return non-zero for pure objects.
4242
4243 * alloc.c: Add comments throughout the file.
4244
2503c8b1
GM
4245 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
4246 that unblocks alarms.
4247
8389e1e2
GM
4248 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
4249 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
4250 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
4251
10689a01 4252 * frame.c (make_frame): Set frame initiallly to `garbaged'.
427ec082 4253
bfc17d18
KH
42542000-02-17 Kenichi Handa <handa@etl.go.jp>
4255
4a09dee0
KH
4256 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
4257 avoid infinite error signaling. Allocate sufficient memory for
4258 eol_str in the case that eoltype is Lisp_Int.
bfc17d18 4259
2b927d02
SM
42602000-02-17 Stefan Monnier <monnier@cs.yale.edu>
4261
4262 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
4263 depends on the previous behavior.
4264
b49cb764
GM
42652000-02-16 Gerd Moellmann <gerd@gnu.org>
4266
4267 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
4268
99e95407
GM
42692000-02-15 Gerd Moellmann <gerd@gnu.org>
4270
4271 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
4272
4273 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
b49cb764 4274 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
99e95407
GM
4275 write(2).
4276
6ffd3cf7
RS
42772000-02-15 Richard M. Stallman <rms@gnu.org>
4278
4279 * data.c (set_internal): Don't make variable buffer-local
4280 if within a let-binding for the same buffer.
4281 (let_shadows_buffer_binding_p): New function.
4282
4283 * eval.c (specbind): For buffer-local value,
4284 record the current buffer also.
4285 (unbind_to): Cope with that change.
4286
cad53475
GM
42872000-02-15 Gerd Moellmann <gerd@gnu.org>
4288
4289 * window.c (Fsave_window_excursion): Doc fix.
4290
1aa963c8
SM
42912000-02-15 Stefan Monnier <monnier@cs.yale.edu>
4292
4293 * syntax.c (back_comment): Make sure we only consider comment-starters
4294 of the relevant style and return -1 in case of a failure to find the
4295 beginning of the comment.
4296 (Fforward_comment): If back_comment fails, go back to the position just
4297 after the comment-end.
4298 (scan_lists): Add comment describing a very minor bug.
4299
b9b84fd3
SM
43002000-02-14 Stefan Monnier <monnier@cs.yale.edu>
4301
4302 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
4303 `completion-regexp-list' in the docstring.
4304
3a28db80
DL
43052000-02-14 Dave Love <fx@gnu.org>
4306
4307 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
4308
fb4a568d
SM
43092000-02-14 Stefan Monnier <monnier@cs.yale.edu>
4310
4311 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
4312 to Emacs' syntax. Also fix the comment about set/not-set meanings
4313 since Emacs syntax is not the value 0 any more.
4314 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
4315 since it's now part of RE_SYNTAX_EMACS.
4316
1063ebb5
DL
43172000-02-12 Dave Love <fx@gnu.org>
4318
4319 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on
4320 Alpha.
4321
fb07a302
GM
43222000-02-12 Gerd Moellmann <gerd@gnu.org>
4323
4324 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
4325
aaf2320c
DL
43262000-02-12 Dave Love <fx@gnu.org>
4327
4328 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
4329
4330 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
fb07a302
GM
4331 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
4332 * s/hpux.h: Don't define HAVE_VFORK.
aaf2320c
DL
4333
4334 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
4335
4336 * s/nextstep.h: Don't define HAVE_ALLOCA.
4337
4338 * config.in: Add vfork bits.
4339
eedf8bde
GM
43402000-02-12 Gerd Moellmann <gerd@gnu.org>
4341
4342 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
4343 unwind function to undo the effect of stopping atimers.
4344
4345 * keyboard.c (bind_polling_period): Stop all timers except
4346 poll_timer.
4347
4348 * atimer.c (stopped_atimers): New variable.
4349 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
4350 New functions.
4351
4352 * atimer.h (stop_other_atimers, run_all_atimers)
4353 (unwind_stop_other_atimers): Add function prototypes.
427ec082 4354
eedf8bde
GM
4355 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
4356
8476c2f8
KR
43572000-02-11 Ken Raeburn <raeburn@gnu.org>
4358
4359 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
4360 library may depend on jpeg.
4361 (atimer.o): Depends on atimer.c.
4362
0e85e4a3
KH
43632000-02-11 Kenichi Handa <handa@etl.go.jp>
4364
4365 * insdel.c (del_range_1): Call update_compositions.
4366 (del_range_both): Call update_compositions just once..
4367
97fa0cc8
DL
43682000-02-10 Dave Love <fx@gnu.org>
4369
4370 * xfns.c (create_frame_xic): Fix initialization of automatic
4371 aggregates for pcc.
4372
25566a3c
KH
43732000-02-09 Kenichi Handa <handa@etl.go.jp>
4374
4375 * ccl.c (CCL_MAKE_CHAR): New macro.
4376 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
4377 registers by CCL_MAKE_CHAR before calling translate_char.
4378 <CCL_TranslateCharacterConstTbl> Likewise.
4379
69da54ba
DL
43802000-02-08 Dave Love <fx@gnu.org>
4381
4382 * lread.c (__EXTENSIONS__): Define.
4383
f7136ee8
GM
43842000-02-08 Gerd Moellmann <gerd@gnu.org>
4385
4386 * puresize.h (BASE_PURESIZE): Increase to 650000.
4387
7768790b
EZ
43882000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
4389
4390 * msdos.c (XMenuActivate): Turn off the cursor after displaying
4391 the help message.
4392
38fd211b
EZ
43932000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
4394
4395 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
4396 md, mh, mb, mr, and me to the fake termcap entry.
4397
66e4690f
KR
43982000-02-06 Ken Raeburn <raeburn@gnu.org>
4399
4400 * sound.c (sound_cleanup): Don't call device close routine if the
4401 function pointer is null.
4402
a75dfea0
AI
44032000-02-06 Andrew Innes <andrewi@gnu.org>
4404
4405 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
4406 around image definitions and prototypes.
4407 (gamma_correct) [WINDOWSNT]: New prototype.
4408
4409 * w32term.c (x_make_frame_visible): Replace call to
4410 input_poll_signal with poll_for_input.
4411
4412 * window.c [WINDOWSNT]: Include w32term.h.
4413
4414 * xdisp.c [WINDOWSNT]: Include w32term.h.
4415
4416 * makefile.nt: Add dependencies on w32gui.h.
4417 (OBJ1): Include atimer.obj.
4418 ($(BLD)\atimer.obj): New dependency rule.
4419
4420 * w32.c (sigmask): New function (does nothing).
4421 (sigunblock): Ditto.
4422
4423 * frame.c [WINDOWSNT]: Include w32term.h.
4424
4425 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
4426
4427 * lread.c (syms_of_lread): Fix literal newlines.
4428
4429 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
4430 the string constant limit (2048 bytes) in MSVC.
4431 (main): Ditto.
4432
59ddecde
GM
44332000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
4434
4435 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit
4436 area.
4437 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
4438 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
4439 dispatch the event.
4440
07590973
DL
44412000-02-04 Dave Love <fx@gnu.org>
4442
4443 * fileio.c: Remove some unused vars.
4444 (_GNU_SOURCE): Define (for euidaccess).
4445
4446 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
4447
4448 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
4449 gcpro1, gcpro2.
4450 (read_minibuf): Deal with allow_props correctly.
4451
649351f9
EZ
44522000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
4453
4454 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
4455
66e4690f 44562000-02-03 Ken Raeburn <raeburn@gnu.org>
f1b9c7c1
KR
4457
4458 * search.c (compile_pattern): If a cache entry has a nil regexp,
4459 fill in that entry instead of clobbering a previously cached
4460 string regexp.
4461
66e4690f 44622000-02-02 Ken Raeburn <raeburn@gnu.org>
15c9cf81
KR
4463
4464 * puresize.h (BASE_PURESIZE): Increase to 610000.
4465
d240a249
GM
44662000-02-02 Gerd Moellmann <gerd@gnu.org>
4467
4468 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
4469 can GC.
4470
ca91fb26
KH
44712000-02-02 Kenichi Handa <handa@etl.go.jp>
4472
25660570
KH
4473 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
4474 instead of incrementing ic directly.
4475 <CCL_WriteExprConst> Likewise.
4476 <ccl_set_expr>: Set ic to jump_address.
4477
ca91fb26
KH
4478 * fileio.c (e_write): Fix the handling of
4479 CODING_FINISH_INSUFFICIENT_SRC.
4480
2ede9689
DL
44812000-02-01 Dave Love <fx@gnu.org>
4482
4483 * editfns.c (Fpropertize): Doc fix.
4484
4485 * process.c (Fstart_process): Doc fix.
4486
4487 * eval.c: Fix various doc strings not to duplicate information
4488 from help-manyarg-func-alist.
4489
4490 * window.c (Fset_window_margins): Don't make interactive. Doc
4491 fix.
4492
4493 * doc.c (Vhelp_manyarg_func_alist): New variable.
4494 (Fdocumentation): Use it.
4495 (syms_of_doc): Define it.
4496
b6680a0e
GM
44972000-01-31 Gerd Moellmann <gerd@gnu.org>
4498
2cb750ba
GM
4499 * xterm.c (xim_open_dpy): Remove unused local variable.
4500
74e9213b
GM
4501 * emacs.c (USAGE): Use term `display options' instead of `X
4502 options'.
4503
4504 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
4505 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
4506
b6680a0e
GM
4507 * fns.c (sweep_weak_table): New function.
4508 (sweep_weak_hash_tables): Use it. Keep on marking until there
4509 is no more change.
4510
994c5afe
GM
45112000-01-30 Gerd Moellmann <gerd@gnu.org>
4512
4513 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
4514 that XTread_socket does not crash by trying to call XNoOp on a
4515 closed display.
427ec082 4516
f00276e3
JR
45172000-01-30 Jason Rumney <jasonr@gnu.org>
4518
4519 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
4520 Change selected_frame to SELECTED_FRAME ().
4521 (w32_console_mouse_position): Remove #ifndef MULE from around
4522 `insist' parameter.
4523
4524 * makefile.nt: Remove dosfns.obj.
4525
4526 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
4527
4528 * w32fns.c (w32_defined_color): Check for valid frame before
4529 applying gamma correction. Eliminate dependency on frame elsewhere.
4530 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
4531 (w32_to_x_font): Use resx and resy not height_in and width_in.
4532 (x_to_w32_font): Doc fix.
4533 (xlfd_strip_height): New function to strip and return font height.
4534 (w32_font_match): Compare height separately from rest of xlfd
4535 spec, using xlfd_strip_height.
4536
4537 * w32term.c (w32_term_init): Swap resx and height_in, resy and
4538 width_in. Use w32_defined_color in place of defined_color.
4539
4540 * w32faces.c: Merge more of DOS and X specifics in preparation for
4541 merge with xfaces.c.
4542 (defined_color): Remove FIXME comment.
4543 (tty_color_name): Provide w32-specific function.
4544 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
4545
4546 * w32console.c (turn_on_face, turn_off_face): Removed.
4547 (w32_face_attributes): New function.
4548 (Global_variables): Reduce scope where possible.
4549 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
4550 fill attribute.
4551 (hl_mode): Don't modify text attributes.
4552 (write_glyphs): Don't do anything if len <= 0. Use
4553 w32_face_attributes to get attributes for drawing. Write
4554 terminating codes using char_attr_normal.
4555 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
4556 (update_begin, update_end): Likewise.
4557 (vga_stdcolor_name): New function.
4558 (initialize_w32_display): Remove char_attr_reverse and char_attr.
4559 (Fset_screen_color): Remove char_attr_reverse.
4560
b08e8bb2
GM
45612000-01-29 Gerd Moellmann <gerd@gnu.org>
4562
4563 * xfns.c (xic_set_preeditarea): Take window parameter and
4564 window-relative pixel-positions.
4565
4566 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
4567 is its frame's selected window.
4568 (xim_instantiate_callback): Likewise.
4569
4570 * xfns.c (x_create_im): Removed.
4571 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
4572 (supported_xim_styles): Renamed from supported_styles.
4573 (best_xim_style): Renamed from best_style.
4574 (create_frame_xic): Renamed from xic_create_frame.
4575 (free_frame_xic): Renamed from xic_destroy_frame.
427ec082 4576
b08e8bb2
GM
45772000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
4578
4579 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
4580 our frames, call XFilterEvent with 2nd parameter `None'.
4581 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
4582 returning XBufferOverflow.
4583 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status
4584 area.
4585 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
4586 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
4587 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
4588 (xim_initialize, xim_close)
4589 [HAVE_X_I18N && HAVE_X11R6]: New functions.
4590 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
4591 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
4592 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
4593
4594 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
4595 and `xim_styles'.
4596 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
4597 `xic_style' and `xic_xfs'.
4598 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
4599 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
4600 (FRAME_XIM): Removed.
4601
4602 * xfns.c (supported_styles): New variable.
4603 (DEFAULT_STYLE, DEFAULT_FONT): New macros
4604 (xic_create_xfontset, best_style, xic_create_frame)
4605 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
4606 (xic_set_xfontset): New functions.
4607
142e109c
DL
46082000-01-28 Dave Love <fx@gnu.org>
4609
4610 * s/irix6-5.h: Revert last change after change to irix5-0.h.
4611
4612 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
4613
b02786f9
GM
46142000-01-28 Gerd Moellmann <gerd@gnu.org>
4615
d060bc9f
GM
4616 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
4617 for *scratch* if it already existed.
4618
b02786f9
GM
4619 * emacs.c (USAGE): New macro.
4620 (main): Use it to display usage information.
4621
2c52d7e4
EZ
46222000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
4623
4624 Support for the menu-help feature:
4625
4626 * msdos.h: Change prototypes of XMenuAddSelection and
4627 XMenuActivate.
4628
4629 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
4630 part of the line to the termscript file.
4631 (IT_clear_to_end): Clear the entire line, not just its beginning.
4632 (menu_help_message, prev_menu_help_message): New variables.
4633 (IT_menu_make_room): Make room for the help_text member.
4634 (IT_menu_display): New argument disp_help; all callers changed.
4635 If disp_help is non-zero, store the help text of the active menu
4636 item in menu_help_message.
4637 (XMenuAddPane): Initialize the help_text member to NULL.
4638 (XMenuAddSelection): New argument help_text. Store it in the
4639 XMenu structure.
4640 (XMenuActivate): New argument help_callback. If the value of
4641 menu_help_message has changed since the last time, display the
4642 menu help message text while waiting for the mouse to move. Clear
4643 the echo area before exiting.
4644 (XMenuDestroy): Free the help_text member.
4645
ffe0bcd1
GM
46462000-01-27 Gerd Moellmann <gerd@gnu.org>
4647
4648 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
4649 XMenuAddSelection. Pass help callback to XMenuActivate.
4650 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
4651
50dbd23f
EZ
46522000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
4653
4654 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
4655 and EMACS_SET_USECS.
4656
f5941bf8
GM
46572000-01-26 Dave Love <fx@gnu.org>
4658
6c67ddee
DL
4659 * editfns.c (Fchar_after, Fchar_before): Doc fix.
4660
f5941bf8
GM
4661 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
4662 an error may be signalled.
4663
9e49c990
GM
46642000-01-26 Gerd Moellmann <gerd@gnu.org>
4665
fc3cb460
GM
4666 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
4667 LD_SWITCH_SYSTEM inherited from irix5-0.h.
4668
9e49c990
GM
4669 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
4670
d0c037d8
GM
46712000-01-25 Gerd Moellmann <gerd@gnu.org>
4672
4673 * charset.c (Fstring): If there is a multibyte char among
4674 the args, always return a multibyte string.
4675
e12489f9
GM
46762000-01-25 Gerd Moellmann <gerd@gnu.org>
4677
4678 * sysdep.c (sys_select): Turn atimers off and on instead of
4679 recording and restoring old alarm handler
4680
4681 * process.c (toplevel): Include atimer.h.
4682 (create_process_1): Rewritten.
4683 (create_process): Use atimers instead of alarm.
4684 (wait_reading_process_input) [hpux]: Turn atimers off instead
4685 of turning off SIGALRM.
4686 (wait_reading_process_input): Turn off atimers instead off
4687 calling stop_polling.
4688
4689 * emacs.c (main): Call init_atimer.
4690
4691 * keyboard.c (toplevel): Include systime.h and atimer.h.
4692 (polling_for_input): Removed because unused.
4693 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
4694 (poll_timer): New variable.
4695 (poll_for_input, poll_for_input_1): New functions.
4696 (start_polling, stop_polling): Rewritten.
4697
4698 * keyboard.h (polling_for_input): Removed.
427ec082 4699
e12489f9
GM
4700 * atimer.h, atimer.c: New files.
4701
4702 * Makefile.in (obj): Add atimer.o.
4703 (atimer.o): New target.
4704
4705 * blockinput.h (pending_atimers): Add extern declaration.
4706 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
4707
4708 * lisp.h (popup_activated_flag): Add extern declaration.
4709
4710 * xmenu.c (popup_activated_flag): Make externally visible.
4711 (popup_activate_callback) [USE_MOTIF]: Increment
4712 popup_activated_flag.
4713 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
4714
4715 * xterm.c (toplevel): Include atimer.h.
4716 (toolkit_scroll_bar_interaction): New variable.
4717 (Fxt_process_timeouts): Removed.
4718 (x_process_timeouts): New function.
4719 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
4720 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
4721 (x_make_frame_visible): Call poll_for_input_1 instead of
4722 input_poll_signal. Don't call alarm.
4723 (x_initialize): Install timer calling x_process_timeouts.
427ec082 4724
1e5279b9
DL
47252000-01-24 Dave Love <fx@gnu.org>
4726
6c67ddee 4727 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
1e5279b9
DL
4728 Don't use -cckr -- apparently not now necessary.
4729
edf6aeb8
EZ
47302000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
4731
4732 * msdos.c (IT_menu_display): Truncate long menu lines at the right
4733 screen boundary.
4734
9badad41
JR
47352000-01-23 Jason Rumney <jasonr@gnu.org>
4736
4737 * w32fns.c (w32_defined_color): Apply gamma correction before
4738 trying to map to the palette.
4739 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
4740 to w32_clear_rect.
4741
4742 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
4743 here. Callers changed to always pass real device context.
4744 (w32_draw_bitmap): Likewise.
4745 (w32_get_glyph_overhangs): Likewise.
4746 (w32_draw_box_rect): Make use of s->hdc rather than getting a new
4747 one.
4748 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
4749 pfnSetScrollInfo and SetScrollRange.
4750 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
4751 back into MULE characters after decoding them.
4752 (x_get_glyph_face_and_encoding): Likewise.
4753 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
4754 GetCharABCWidthsW fails, since this is defined on Windows 9x.
4755 (x_produce_glyphs): Calculate per char metrics for a character
4756 that we know exists in default font when font_not_found_p is true.
4757
63bd786b
JR
47582000-01-22 Jason Rumney <jasonr@gnu.org>
4759
4760 * makefile.nt (intervals.obj, composite.obj): New modules.
4761 (composite.h): Added as dependency where appropriate.
4762
4763 * w32gui.h (XGCValue): New struct for emulating X GCs.
4764
4765 * w32term.h (XCharStruct): New struct for emulating X.
4766
4767 * w32console.c (turn_on_face, turn_off_face): New functions.
4768 (change_line_highlight): New prototype for new redisplay.
4769 (write_glyphs): Support multibyte text. Support faces.
4770
4771 * w32faces.c: Complete rewrite for new redisplay based on new
4772 xfaces.c.
4773
4774 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
4775 throughout. struct frame * in place of FRAME_PTR.
4776 Skeleton support for images, toolbars, tooltips from xfns.c.
4777 (Fx_create_frame): Use system default for default scroll bar
4778 width.
4779 (w32_get_arg): Renamed from x_get_arg.
4780 (Fx_file_dialog): New function.
4781 (w32_list_fonts): Check cache before asking system.
4782 (Vw32_enable_synthesized_fonts): New variable.
4783 (Vw32_enable_italics): Obsolete, removed.
4784
4785 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
4786 Use SELECTED_FRAME macro.
4787
4788 * w32menu.c: Add skeleton support for help strings on menus.
4789 (add_menu_item): Native checkbox and radio support added, but not
4790 yet enabled due to bugs.
4791 (push_menu_item): Add parameters type, selection and help.
4792 Callers updated.
4793 Formatting changes to reduce unnecessary diffs with xmenu.c.
4794
4795 * w32select.c (Fw32_set_clipboard_data): Update call to
4796 find_charset_in_str.
4797
4798 * w32term.c: Complete rewrite for new redisplay based on new
4799 xterm.c with necessary sections merged back in from old w32term.c.
4800
6ffd3cf7 48012000-01-21 Richard M. Stallman <rms@gnu.org>
b50c9214
RS
4802
4803 * data.c (set_internal): Further fix in same criterion.
4804
6ffd3cf7 48052000-01-20 Richard M. Stallman <rms@gnu.org>
8cc95642
RS
4806
4807 * data.c (set_internal): Fix the criteria for whether
4808 to swap out the old cached binding.
4809
60af03f1
DL
48102000-01-19 Dave Love <fx@gnu.org>
4811
4812 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
4813
f9be074f
KH
48142000-01-18 Kenichi Handa <handa@etl.go.jp>
4815
4816 * regex.c (re_compile_fastmap): While checking a range table for
4817 `charset', skip flag bits for a character class correctly.
4818
52b8dbf9
GM
48192000-01-17 Gerd Moellmann <gerd@gnu.org>
4820
d36100c9
GM
4821 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
4822
52b8dbf9
GM
4823 * xfns.c (x_window): Call lw_create_widget with new parameter
4824 list.
4825
4826 * widget.c (EmacsFrameSetCharSize): Change size of children first
4827 because of problems with main window geometry management under
4828 Lesstif.
4829
4830 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
4831 MENU_ITEMS_ITEM_.*.
4832 (MENU_ITEMS_ITEM_HELP): New enumerator.
4833 (push_menu_item): Add parameter HELP. Record help in menu_items.
4834 (single_menu_item, single_submenu, list_of_items): Call
4835 push_menu_item with new parameter.
4836 (single_submenu): Set help string in widget value.
4837 (menu_highlight_callback): New function.
4838 (set_frame_menubar): Call lw_create_widget with new
4839 parameter list.
4840 (xmenu_show, xdialog_show): Ditto.
4841
3139018f
GM
48422000-01-13 Gerd Moellmann <gerd@gnu.org>
4843
4844 * sound.c (Fplay_sound): Improve doc string.
4845
83c8f461
RS
48462000-01-11 Richard M. Stallman <rms@gnu.org>
4847
4848 * lisp.h (set_internal): Enter the new arg.
4849
4850 * eval.c (specbind): Record buffer-local variables specially,
4851 indicating which buffer's binding was saved.
4852 (unbind_to): Restore buffer-local variables specially
4853 in the proper buffer.
4854
4855 * data.c (set_internal): New arg BUF.
427ec082 4856
83c8f461
RS
4857 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
4858 * data.c (Fset): Pass new arg to set_internal.
4859 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
427ec082 4860
1fab1775
GM
48612000-01-11 Gerd Moellmann <gerd@gnu.org>
4862
4863 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload,
4864 xprintsym.
4865
83c8f461 48662000-01-11 Richard M. Stallman <rms@gnu.org>
6f59462e
RS
4867
4868 * minibuf.c (Ftry_completion): Doc fix.
4869
7a85e4df
GM
48702000-01-11 Gerd Moellmann <gerd@gnu.org>
4871
4872 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
4873 vector, too.
4874
a970dae4
AS
48752000-01-11 Andreas Schwab <schwab@suse.de>
4876
4877 * coding.c (code_convert_region): Initialize total_skip.
4878
c65d14ee
DL
48792000-01-08 Dave Love <fx@gnu.org>
4880
4881 * eval.c (Fuser_variable_p): Check customizability too.
4882
834938d2
GM
48832000-01-07 Gerd Moellmann <gerd@gnu.org>
4884
4885 * minibuf.c (Fcompleting_read): Doc fix.
4886
e0303cd6
GM
48872000-01-05 Gerd Moellmann <gerd@gnu.org>
4888
8a26744b
GM
4889 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
4890 -L /usr/local/lib.
4891
e0303cd6
GM
4892 * xfns.c (x_create_im): New function to set IM and IC of a frame.
4893 Check that input style is supported before trying to create an
4894 IC for it.
4895 (x_window): Call x_create_im.
427ec082 4896
2e471eb5
GM
48972000-01-04 Gerd Moellmann <gerd@gnu.org>
4898
560a7bd2
GM
4899 * xfns.c (current_gif_memory_src): New variable.
4900 (gif_load): Record the address of the current memory source
4901 in current_gif_memory_src.
4902 (gif_read_from_memory): Use current_gif_memory_src.
4903
f9ee84a3
GM
4904 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
4905 macros statement form.
4906
d1299cde
GM
4907 * sound.c (struct sound): Renamed from struct sound_file.
4908 (struct sound): Add members `data' and `header_size'.
4909 (enum sound_attr): Add SOUND_DATA.
4910 (current_sound, current_sound_device): Variables renamed from
4911 sound_file and sound_device.
4912 (parse_sound): Parse :data.
4913 (parse_sound): Handle sound data in strings.
4914 (find_sound_type): Function renamed from find_sound_file_type.
427ec082 4915 (wav_init, au_init): Fail if sound's header_size is smaller than
d1299cde
GM
4916 needed header size.
4917 (wav_play, au_play): Play sounds from string data.
4918
2e471eb5
GM
4919 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
4920
4921 * lisp.h: Add prototype for allocate_string_data.
4922
4923 * alloc.c (Fgarbage_collect): Return number of live and free
4924 strings.
4925
4926 * alloc.c (mark_buffer): Remove code in #if 0.
4927 (gc_sweep): Ditto.
4928 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
4929 (strings_consed): New variable.
4930 (allocate_string): Set it.
4931 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
4932 (Fmemory_use_counts): Return strings_consed. Use Flist.
4933
4934 * alloc.c: General cleanup in comments etc. Remove conditional
4935 compilation for `standalone'.
4936
4937 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
4938
4939 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
4940 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
4941 (DONT_COPY_FLAG): Removed.
4942 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
4943 (struct sdata, struct sblock): New
4944 (struct string_block): Rewritten.
4945 (STRINGS_IN_STRING_BLOCK): New macro.
4946 (oldest_sblock, current_sblock, total_strings, total_free_strings)
4947 (large_sblocks, string_blocks, string_free_list): New variables.
4948 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
4949 (init_strings): Rewritten.
4950 (allocate_string, allocate_string_data, compact_small_strings)
4951 (free_large_strings, sweep_strings): New functions.
4952 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
4953 (struct string_block_head, current_string_block)
4954 (first_string_block, large_string_blocks, STRING_FULLSIZE)
4955 (STRING_PAD): Removed.
4956 (make_uninit_multibyte_string, make_pure_string): Rewritten.
4957 (Fgarbage_collect): Don't set mark bit in large strings.
4958 (mark_object): Mark strings differently. Mark symbol names
4959 differently.
4960 (survives_gc_p): Test marked strings differently.
427ec082 4961 (gc_sweep): Sweep strings differently, unmark strings in
2e471eb5
GM
4962 symbol names.
4963 (compact_strings): Removed.
4964
42608ba8
EZ
49652000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
4966
4967 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
4968 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
4969
e0a09e1a
KH
49702000-01-04 Kenichi Handa <handa@etl.go.jp>
4971
dd9f0750 4972 * fileio.c (Finsert_file_contents): Signal error if visiting file
427ec082 4973 in a non-empty buffer.
dd9f0750 4974
3c0f3b15 4975 * term.c (encode_terminal_code): Fix the previous change.
e0a09e1a 4976
44cd3ae5
GM
49772000-01-03 Gerd Moellmann <gerd@gnu.org>
4978
4979 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
4980 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
4981
4982 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
4983
c182a70f
EZ
49842000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
4985
4986 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
4987 need to test for MSDOS frames.
4988
24480d5b
EZ
49892000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
4990
4991 * dosfns.c (unspecified_colors): Remove.
4992 (msdos_stdcolor_idx): Use global variables unspecified_fg and
4993 unspecified_bg.
4994 (msdos_stdcolor_name): Return strings for unspecified fore- and
4995 back-ground colors.
4996
4997 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
aaf2320c 4998 (syms_of_xfaces): Remove their staticpro's.
24480d5b
EZ
4999 (tty_color_name): Return Lisp strings for unspecified fore- and
5000 back-ground colors.
5001 (Finternal_set_lisp_face_attribute): Remove the special treatment
5002 for Qunspecified_{f,b}g.
5003 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp
5004 string.
5005
047f434a
GM
50062000-01-03 Gerd Moellmann <gerd@gnu.org>
5007
5008 * xdisp.c (reseat_at_next_visible_line_start): Position before
5009 newline only if ending up on a newline.
5010 (next_element_from_ellipsis): Return success. Handle case of
5011 displaying no ellipsis. Fix case of ellipsis defined in display
5012 table.
5013 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
5014 returns 0.
5015
d684c676
EZ
50162000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
5017
5018 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
5019 (Fcolor_supported_p): Renamed from face-color-supported-p.
5020
5fe1d139
EZ
50212000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
5022
5023 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
5024 list of colors renamed to tty-defined-color-alist.
5025 (tty_color_name): Pass the frame to tty-color-by-index.
5026 (realize_tty_face): tty-color-alist is now a function which
5027 accepts the frame as argument.
5028
5029 * term.c (Ftty_display_color_p): Accept an optional argument
5030 FRAME.
5031
816be8b8
EZ
50322000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
5033
5034 * term.c (insert_glyphs): Pass glyph, not &glyph, to
5035 encode_terminal_code.
5036
b635321e
EZ
50372000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
5038
5039 * dispnew.c (mode_line_string): Support termcap frames as well.
5040
9b784e96
GM
50412000-01-01 Gerd Moellmann <gerd@gnu.org>
5042
27189709
GM
5043 * syntax.c (Fforward_word): Undo previous change.
5044
5045 * editfns.c (Fconstrain_to_field): Don't constrain if
5046 inhibit-field-text-motion is non-nil.
5047 (Fline_beginning_position): Undo previous change.
5048 (Fline_end_position): Ditto.
5049
5050 * syntax.c (Fforward_word): Notice field boundaries only if
5051 inhibit-field-text-motion is nil.
5052
5053 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
5054
5055 * editfns.c (Vinhibit_field_text_motion): New variable.
5056 (inhibit-field-text-motion): New DEFVAR_LISP.
5057 (Fline_beginning_position, Fline_end_position): Notice field
5058 boundaries only if inhibit-field-text-motion is nil.
5059
45158a91
GM
5060 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
5061 All calls adjusted.
5062 (x_build_heuristic_mask): Likewise.
5063 (xbm_load_image_from_file): Change error output.
5064 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
5065 (gif_load, gs_load, x_kill_gs_process): Ditto.
5066
9b784e96
GM
5067 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
5068 color indices when accessing raster pixels.
63cec32f
GM
5069 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
5070 one of :file or :data.
5071 (enum pbm_keyword_index): Add PBM_DATA.
5072 (pbm_format): Add :data.
5073 (pbm_image_p): Allow either :file or :data.
5074 (pbm_read_file): New function.
5075 (pbm_scan_number): Rewritten to read from string.
5076 (pbm_load): Support :data.
9b784e96 5077
5ad6a5fb
GM
50781999-12-31 Gerd Moellmann <gerd@gnu.org>
5079
5080 * xfns.c: New image functions adapted to Emacs conventions.
5081 (png_load, tiff_load, jpeg_load, gif_load): Always GCPRO local
5082 variable `file'.
5083
63448a4d
WP
50841999-12-31 William M. Perry <wmperry@aventail.com>
5085
5086 * xfns.c (jpeg_format): Added the :data keyword
5087 (jpeg_image_p): JPEG is valid with :file _or_ :data
5088 (jpeg_memory_src): Defined new JPEG image source to read from a
5089 memory buffer.
5090 (jpeg_load): Pay attention to the :data keyword if specified.
5091 Instantiates a jpeg_memory_src instead of jpeg_stdio_src if
5092 found.
5093 (png_format): Added the :data keyword
5094 (png_image_p): PNG is valid with :file _or_ :data
5095 (png_read_from_memory): New PNG read function to read from a
5096 memory buffer.
5097 (png_load): Pay attention to the :data keyword if specified. Uses
5098 png_set_read_fn() instead of png_init_io() if specified.
5099 (tiff_format): Added the :data keyword for TIFF images.
5100 (tiff_image_p): TIFF is valid with :file _or_ :data
5101 (tiff_read_from_memory): Defined new TIFF I/O functions to read
5102 from a memory buffer.
5103 (tiff_load): Pay attention to the :data keyword if specified.
5104 Uses TIFFClientOpen() instead of TIFFOpen() if specified.
5105 (gif_format): Added the :data keyword
5106 (gif_image_p): GIF is valid with :file _or_ :data
5107 (gif_read_from_memory): New GIF input function to read from a
5108 memory buffer.
c65d14ee 5109 (gif_load): Pay attention to the :data keyword. Uses DGifOpen()
63448a4d
WP
5110 instead of DGifOpenFileName() if specified.
5111
c880678e
GM
51121999-12-31 Gerd Moellmann <gerd@gnu.org>
5113
5114 * xdisp.c (next_element_from_buffer): Change assertion at the end
5115 because it doesn't hold when there's an overlay string at the end
5116 from which we deliver an image.
5117
8ccb9a54
EZ
51181999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
5119
5120 * msdos.c (IT_update_begin): Don't dereference members of struct
5121 window for deleted windows.
5122
12ce2351
GM
51231999-12-30 Gerd Moellmann <gerd@gnu.org>
5124
a915c648
GM
5125 * abbrev.c (Fexpand_abbrev): If expanding an abbrev which has only
5126 a hook, and the hook has a non-nil `no-self-insert' property, let
5127 the return value of the hook specify whether an expansion took
5128 place. If it returns nil, no expansion has been performed.
5129
12ce2351
GM
5130 * xterm.c (x_make_frame_visible): Wait for frame becoming visible
5131 differently.
5132
04ee4f45
EZ
51331999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
5134
5135 * msdos.c (IT_write_glyphs): Track last changes to struct glyph.
5136
7f4bc0c3
EZ
51371999-12-29 Eli Zaretskii <eliz@is.elta.co.il>
5138
5139 * dispnew.c (mode_line_string): Support MS-DOS frames.
5140
dac204bc
GM
51411999-12-29 Gerd Moellmann <gerd@gnu.org>
5142
5143 * eval.c (syms_of_eval): Initialize debugger_may_continue.
5144
7b712ad8
KH
51451999-12-29 Kenichi Handa <handa@etl.go.jp>
5146
5147 * process.c (read_process_output): Fix the args CHARPOS and LENINS
5148 to signal_after_change.
5149
adb9900f
EZ
51501999-12-28 Eli Zaretskii <eliz@is.elta.co.il>
5151
41ad069b
EZ
5152 * msdos.c (dos_set_window_size) [__DJGPP__ > 1]: If the frame
5153 dimensions changed, invalidate the mouse highlight info.
5154 (disable_mouse_highlight, help_echo, previous_help_echo): New
5155 variables.
5156 (IT_set_mouse_pointer, show_mouse_face, clear_mouse_face)
5157 (fast_find_position, IT_note_mode_line_highlight)
5158 (IT_note_mouse_highlight): New functions.
5159 (IT_update_begin): If the redisplay affects the window where the
5160 mouse highlight is, clear the highlight. If the frame where the
5161 highlight was displayed was killed, invalidate the highlight
5162 info.
5163 (IT_update_end): Reset the highlight flag. Reset the mouse
5164 highlight-defer flag.
5165 (IT_frame_up_to_date): New function, if mouse highlight was
5166 deferred due to GC, do it now.
5167 (internal_terminal_init): Initialize mouse-highlight related
5168 members of the_only_x_display. Assign IT_frame_up_to_date to
5169 frame_up_to_date_hook.
5170 (dos_rawgetc): If the mouse moved, update mouse highlight. If
5171 help_echo changed value, generate a HELP_EVENT event.
5172 (syms_of_msdos): Staticpro help_echo and previous_help_echo.
5173
adb9900f
EZ
5174 * msdos.h (struct display_info): New.
5175 (struct x_output): Add the display_info member.
5176 (FRAME_X_DISPLAY_INFO): New macro.
5177
481b5054
GM
51781999-12-28 Gerd Moellmann <gerd@gnu.org>
5179
5180 * xdisp.c (try_window_id): Compute BEG_UNCHANGED and END_UNCHANGED
5181 if MODIFF > 1.
6448a6b3 5182 (dump_glyph_row): Adapt to changes in struct glyph.
481b5054
GM
5183
5184 * buffer.c (modify_overlay): Always compute unchanged info.
5185
a2882b0d
KH
51861999-12-27 Kenichi Handa <handa@etl.go.jp>
5187
5188 * dispextern.h (FACE_FROM_ID): Cast the arg ID to `unsigned'.
5189
89ba5b5f
KH
51901999-12-27 Kenichi Handa <handa@etl.go.jp>
5191
5192 The following changes are to use more bits for face IDs.
5193
5194 * lisp.h (GLYPH): Defined as `int', not `unsigned int'. Now the
5195 lowest 8 bits are single byte character code, the bits above are
5196 face ID.
481b5054 5197 (GLYPH_MASK_FACE, GLYPH_MASK_CHAR): Adjusted for the change
89ba5b5f 5198 above.
481b5054
GM
5199 (FAST_MAKE_GLYPH, FSST_GLYPH_FACE): Likewise.
5200 (GLYPH_MASK_REV_DIR, GLYPH_MASK_PADDING): Macros deleted.
89ba5b5f
KH
5201
5202 * charset.h (CHAR_BYTES): Use ((1 << CHARACTERBITS) - 1) instead
5203 of GLYPH_MASK_CHAR.
5204
5205 * charset.c (char_bytes): Use ((1 << CHARACTERBITS) - 1) instead
5206 of GLYPH_MASK_CHAR.
5207
5208 * dispextern.h (struct glyph): Make face_id and padding_p the top
5209 level members. Change members in union `u'.
5210 (GLYPH_EQUAL_P): Check also members face_id and padding_p.
5211 (GLYPH_CHAR_AND_FACE_EQUAL_P): New macro.
5212 (SET_CHAR_GLYPH): Adjusted for the change of struct glyph.
5213 (CHAR_GLYPH_PADDING_P): Likewise.
5214 (GLYPH_FROM_CHAR_GLYPH): Likewise. Always return -1 for multibyte
5215 characters.
5216
481b5054 5217 * dispnew.c (line_hash_code, direct_output_for_insert): Adjusted
89ba5b5f
KH
5218 for the change of struct glyph.
5219 (line_draw_cost): Adjusted for the change of
5220 GLYPH_FROM_CHAR_GLYPH.
5221 (count_match): Use macro GLYPH_CHAR_AND_FACE_EQUAL_P.
5222
5223 * term.c (encode_terminal_code): Adjusted for the change of struct
5224 glyph and GLYPH_FROM_CHAR_GLYPH.
481b5054 5225 (write_glyphs, insert_glyphs, append_glyph): Adjusted for the
89ba5b5f
KH
5226 change of struct glyph.
5227
5228 * xdisp.c: All codes adjusted for the change of struct glyph.
5229
5230 * xterm.c: All codes adjusted for the change of struct glyph.
5231
5bcd116c
KH
52321999-12-27 Kenichi Handa <handa@etl.go.jp>
5233
5234 * composite.h (struct composition): Change the order of declaring
5235 members to reduce the byte size of the structure.
5236
f21b06b7
GM
52371999-12-25 Gerd Moellmann <gerd@gnu.org>
5238
5239 * search.c (looking_at_1): Reset immediate_quit before modifying
5240 global data.
5241
e36557c9
KH
52421999-12-24 Kenichi Handa <handa@etl.go.jp>
5243
5244 * process.c (read_process_output): Fix the arg FROM to
5245 update_compositions.
5246
83c8f461 52471999-12-22 Richard M. Stallman <rms@gnu.org>
f7c9e039
RS
5248
5249 * search.c (Freplace_match): For nonliteral replacement in buffer,
5250 construct all the new text first, then insert all at once.
5251
0b863bd9
DL
52521999-12-22 Dave Love <fx@gnu.org>
5253
5254 * xfns.c (Fx_show_tip): Gcpro `timeout' too.
5255
6d8e8ef3
GM
52561999-12-22 Gerd Moellmann <gerd@gnu.org>
5257
28d7281d
GM
5258 * xfns.c (Fx_create_frame): Move x_default_parameter calls that
5259 lead to size changes to after the X window has been created.
5260
e22ef6eb 5261 * xfaces.c (realize_x_face): Don't use uninitialized local
6d8e8ef3
GM
5262 variable in xassert.
5263
8affcced
KH
52641999-12-22 Kenichi Handa <handa@etl.go.jp>
5265
5266 * xfaces.c (face_color_supported_p): Check by tty_defined_color
6d8e8ef3 5267 only when the frame is not for a window system.
8affcced 5268
f2be1146
GM
52691999-12-22 Gerd Moellmann <gerd@gnu.org>
5270
deca1348
GM
5271 * buffer.c (Fset_buffer_multibyte): Arrange for a thorough
5272 redisplay after changing the multibyteness of a buffer.
5273
f2be1146
GM
5274 * xterm.c (XTread_socket): At the beginning of the loop, pass the
5275 frame's X window to XFilterEvent instead of None because that's
5276 the X window for which the IC was created. This makes dead
5277 accents work when the pointer is not in Emacs' frame.
5278 (XTread_socket) <KeyPress>: Don't call XFilterEvent here.
5279
a744a2ec
DL
52801999-12-20 Dave Love <fx@gnu.org>
5281
5282 * xfns.c (Fx_show_tip): Add missing UNGCPRO.
5283
9e6985ed
GM
52841999-12-19 Gerd Moellmann <gerd@gnu.org>
5285
5286 * eval.c (debugger_may_continue): New variable.
5287 (syms_of_eval): Add a DEFVAR_BOOL for it.
5288 (call_debugger): Bind it.
5289
3b620731
EZ
52901999-12-19 Eli Zaretskii <eliz@is.elta.co.il>
5291
5292 * msdos.c (IT_set_face): Don't swap face colors when highlight or
5293 fp->tty_reverse_p is set, unless the computed colors are identical
5294 to frame colors. Print both original and computed colors to
5295 termscript file.
5296 (IT_write_glyphs): Track the changes in handling of composite
5297 characters.
5298 (IT_set_frame_parameters): Don't set frame colors from
5299 unspecified-fg and unspecified-bg pseudo-colors.
5300
0f9a51c4
DL
53011999-12-17 Dave Love <fx@gnu.org>
5302
5303 * data.c (Fkeywordp): New function.
5304 (syms_of_data): Install it.
5305
363e4e42
EZ
53061999-12-16 Eli Zaretskii <eliz@is.elta.co.il>
5307
5308 * xfaces.c (tty_defined_color): Fix last change.
5309
cfad01b4
GM
53101999-12-15 Gerd Moellmann <gerd@gnu.org>
5311
5312 * xdisp.c (redisplay_window) <optional new window start>: Check
5313 that window start is in [BEGV..ZV].
5314
f9d2fdc4
EZ
53151999-12-15 Eli Zaretskii <eliz@is.elta.co.il>
5316
5317 * dispextern.h (FACE_TTY_DEFAULT_FG_COLOR)
5318 (FACE_TTY_DEFAULT_BG_COLOR): New macros.
5319
5320 * xfaces.c (Qunspecified_fg, Qunspecified_bg): New variables.
5321 (syms_of_xfaces): Initialize and staticpro them.
5322 (tty_defined_color): If the color name is unspecified-fg or
5323 unspecified-bg, return FACE_TTY_DEFAULT_FG_COLOR and
5324 FACE_TTY_DEFAULT_BG_COLOR, respectively, as the pixel value.
5325 (tty_color_name): If the color pixel value is either
5326 FACE_TTY_DEFAULT_FG_COLOR or FACE_TTY_DEFAULT_BG_COLOR, return
5327 Qunspecified_fg or Qunspecified_bg, respectively.
5328 (Finternal_set_lisp_face_attribute): Allow values Qunspecified_fg
5329 and Qunspecified_bg for foreground and background colors.
5330 (realize_default_face): If the foreground and background colors
5331 are not specified, default to Qunspecified_fg and Qunspecified_bg.
5332 (realize_tty_face): By default, set the face colors to
5333 FACE_TTY_DEFAULT_FG_COLOR and FACE_TTY_DEFAULT_BG_COLOR.
5334 [MSDOS]: Handle FACE_TTY_DEFAULT_FG_COLOR and
5335 FACE_TTY_DEFAULT_BG_COLOR when face colors are not defined.
5336 Reverse the colors if the default colors were reversed.
5337
5338 * dispnew.c (init_display): Initialize the frame pixels of the
5339 initial frame to FACE_TTY_DEFAULT_FG_COLOR and
5340 FACE_TTY_DEFAULT_BG_COLOR.
5341
5342 * term.c (turn_on_face): If the default fore- and background
5343 colors are reversed, enter inverse video mode. Don't send color
5344 escape sequences for unspecified foreground and background colors.
5345 (turn_off_face): Handle unspecified-fg and unspecified-bg colors.
5346
5347 * dosfns.c (unspecified_colors): New variable.
5348 (msdos_stdcolor_idx): Handle unspecified-fg and unspecified-bg
5349 color names, return FACE_TTY_DEFAULT_FG_COLOR and
5350 FACE_TTY_DEFAULT_BG_COLOR, respectively.
5351 (msdos_stdcolor_name): Handle FACE_TTY_DEFAULT_FG_COLOR and
5352 FACE_TTY_DEFAULT_BG_COLOR, return Qunspecified_fg and
5353 Qunspecified_bg, respectively.
5354
5355 * msdos.c (IT_set_face): Support FACE_TTY_DEFAULT_FG_COLOR and
5356 FACE_TTY_DEFAULT_BG_COLOR as pixel values.
5357
e19539f1
KH
53581999-12-15 Kenichi Handa <handa@etl.go.jp>
5359
5360 * coding.c (code_convert_region): Fix the secoding arg to
5361 update_compositions.
5362
5ec14d3c
KH
53631999-12-15 Kenichi Handa <handa@etl.go.jp>
5364
5365 The following changes are for the new composition mechanism. We
5366 have deleted `composition' charset and composite characters,
5367 instead introduced a special text property `composition'.
5368
5369 * Makefile.in (INTERVAL_SRC): Include composite.h.
5370 (INTERVAL_OBJ): Include composite.o.
5371 (SOME_MACHINE_OBJECTS): Include composite.o.
5372 (casefiddle.o) (dispnew.o) (indent.o) (process.o) (search.o)
5373 (syntax.o) (window.o) (xdisp.o) (xfaces.o) (xterm.o) (print.o):
5374 Depend on composite.h.
5375 (doc.o): Depend on charset.h.
5376 (keyboard.o) (textprop.o) (intervals.o): Depend on INTERVAL_SRC.
5377 (composite.o): New target.
427ec082 5378
5ec14d3c
KH
5379 * alloc.c (Fmake_string): Adjusted for the change of CHAR_STRING.
5380
5381 * callproc.c (Fcall_process): Call code_convert_string to encode
5382 arguments. Use CODING_REQUIRE_DECODING to check if the process
5383 output should be decoded.
5384
5385 * casefiddle.c: Include composite.h.
5386 (casify_object): Use MAX_MULTIBYTE_LENGTH to allocate memory for a
5387 multibyte character. Adjusted for the change of CHAR_STRING.
5388 (casify_region): Likewise. Call update_compositions.
5389
5390 * category.h (CATEGORY_SET): Delete codes for a composite
5391 character.
5392
5393 * category.c (word_boundary_p): Delete codes for a composite
5394 character.
5395 (Fmake_category_table): New function.
5396 (syms_of_category): Defsubr it.
5397
5398 * ccl.c (CCL_WRITE_CHAR): Adjusted for the change of CHAR_STRING.
5399 (ccl_driver): Delete codes for a composite character.
5400
5401 * charset.h: In this entry, just `Modified' means that codes for a
5402 composite character is deleted.
5403 (LEADING_CODE_COMPOSITION) (CHARSET_COMPOSITION)
5404 (charset_composition) (MIN_CHAR_COMPOSITION)
5405 (MAX_CHAR_COMPOSITION) (GENERIC_COMPOSITION_CHAR)
5406 (COMPOSITE_CHAR_P) (MAKE_COMPOSITE_CHAR) (COMPOSITE_CHAR_ID)
5407 (PARSE_COMPOSITE_SEQ) (PARSE_CHARACTER_SEQ): Deleted.
5408 (MAX_CHAR) (CHARSET_VALID_P) (CHARSET_DEFINED_P) (CHARSET_AT)
5409 (FIRST_CHARSET_AT) (SAME_CHARSET_P) (MAKE_NON_ASCII_CHAR)
5410 (PARSE_MULTIBYTE_SEQ) (SPLIT_NON_ASCII_CHAR) (CHAR_PRINTABLE_P):
5411 Modified.
5412 (SPLIT_STRING): Call split_string, not split_non_ascii_string.
5413 (CHAR_STRING): Delete WORKBUF argument. Call char_string, not
5414 non_ascii_char_to_string.
5415 (STRING_CHAR): Call string_to_char, not string_to_non_ascii_char.
5416 (STRING_CHAR_AND_LENGTH): Likewise.
5417 (FETCH_CHAR_ADVANCE): New macro.
5418 (MAX_COMPONENT_COUNT) (struct cmpchar_info): Deleted.
5419 (MAX_MULTIBYTE_LENGTH): New macro.
5420 (MAX_LENGTH_OF_MULTI_BYTE_FORM): Deleted.
5421 (find_charset_in_str): Argument adjusted.
5422 (CHAR_LEN): Modified.
427ec082 5423
5ec14d3c
KH
5424 * charset.c: In this entry, just `Modified' means that codes for a
5425 composite character is deleted.
5426 (Qcomposition) (leading_code_composition)
5427 (charset_composition) (min_composite_char) (cmpchar_table)
5428 (cmpchar_table_size) (n_cmpchars): Deleted.
5429 (SPLIT_COMPOSITE_SEQ): Deleted.
5430 (SPLIT_MULTIBYTE_SEQ): Modified.
5431 (char_to_string): Renamed from non_ascii_char_to_string.
5432 Modified.
5433 (string_to_char): Renamed from string_to_non_ascii_char.
5434 (split_string): Renamed from split_non_ascii_string.
5435 (char_printable_p) (Fsplit_char)
5436 (Ffind_charset_region) (Ffind_charset_string) (char_valid_p)
5437 (char_bytes) (Fchar_width) (strwidth): Modified.
5438 (find_charset_in_str): Argument CMPCHARP deleted. Modified.
5439 (Fstring): Adjusted for the change of CHAR_STRING. Modified.
5440 (hash_string) (CMPCHAR_HASH_TABLE_SIZE) (cmpchar_hash_table)
5441 (CMPCHAR_HASH_SIZE) (CMPCHAR_HASH_USED) (CMPCHAR_HASH_CMPCHAR_ID)
5442 (str_cmpchar_id) (cmpchar_component) (Fcmpcharp)
5443 (Fcmpchar_component) (Fcmpchar_cmp_rule) (Fcmpchar_cmp_rule_p)
5444 (Fcmpchar_cmp_count): Deleted.
5445 (Fcompose_string): Implemented by Emacs Lisp in composite.el.
5446 (init_charset_once): Modified.
5447 (syms_of_charset): Modified.
5448
5449 * cmds.c (internal_self_insert): Adjusted for the change of
5450 CHAR_STRING.
5451
5452 * coding.h (emacs_code_class_type): Delete the member
5453 EMACS_leading_code_composition.
5454 (COMPOSING_NO) (COMPOSING_WITH_RULE_HEAD) (COMPOSING_NO_RULE_HEAD)
5455 (COMPOSING_WITH_RULE_TAIL) (COMPOSING_NO_RULE_TAIL)
5456 (COMPOSING_WITH_RULE_RULE) (COMPOSING_HEAD_P)
5457 (COMPOSING_WITH_RULE_P): Macros deleted.
5458 (COMPOSITION_DATA_SIZE) (COMPOSITION_DATA_MAX_BUNCH_LENGTH): New
5459 macros.
5460 (struct composition_data): New structure.
5461 (CODING_FINISH_INSUFFICIENT_CMP): New macro.
5462 (struct coding_system): New members composition_rule_follows,
5463 cmp_data, cmp_data_start, cmp_data_index.
5464 (coding_save_composition) (coding_free_composition_data)
5465 (coding_adjust_composition_offset): Extern them.
5466
5467 * coding.c: Include composite.h.
5468 (DECODE_CHARACTER_ASCII): Don't handle composition here.
5469 (DECODE_CHARACTER_DIMENSION1): Likewise. Don't check the validity
5470 of multibyte code here.
5471 (DECODE_CHARACTER_DIMENSION2): Likewise.
5472 (detect_coding_emacs_mule): Change the case label from
5473 EMACS_leading_code_composition to 0x80.
5474 (detect_coding_iso2022): Handle new composition sequence.
5475 (DECODE_ISO_CHARACTER): Likewise.
5476 (check_composing_code): Deleted.
5477 (coding_allocate_composition_data): New function.
5478 (CODING_ADD_COMPOSITION_START) (CODING_ADD_COMPOSITION_END)
5479 (CODING_ADD_COMPOSITION_COMPONENT) (DECODE_COMPOSITION_START)
5480 (DECODE_COMPOSITION_END) (DECODE_COMPOSITION_RULE): New macros.
5481 (decode_coding_iso2022): Handle new composition sequence.
5482 (ENCODE_ISO_CHARACTER): Don't check composition here.
5483 (ENCODE_COMPOSITION_RULE) (ENCODE_COMPOSITION_START): New macros.
5484 (ENCODE_COMPOSITION_NO_RULE_START)
5485 (ENCODE_COMPOSITION_WITH_RULE_START): Deleted.
5486 (ENCODE_COMPOSITION_END): Handle new composition sequence.
5487 (ENCODE_COMPOSITION_FAKE_START): New macro.
5488 (encode_coding_iso2022): Handle new composition sequence.
5489 (ENCODE_SJIS_BIG5_CHARACTER): Delete superfluous `;' at the tail.
5490 (encode_coding_sjis_big5): Ignore composition.
5491 (setup_coding_system): Initialize new members of struct
5492 coding_system. Enable composition only when the coding system has
5493 `composition' property t.
5494 (coding_free_composition_data) (coding_adjust_composition_offset)
5495 (coding_save_composition) (coding_restore_composition): New
5496 functions.
5497 (code_convert_region): Call coding_save_composition for encoding
5498 and coding_allocate_composition_data for decoding. Don't skip
5499 ASCII characters if we handle composition on encoding. Call
5500 signal_after_change with Check_BORDER.
5501 (code_convert_string): Call coding_save_composition for encoding
5502 and coding_allocate_composition_data for decoding. Don't skip
5503 ASCII characters if we handle composition on encoding.
5504 (code_convert_string1): Set Vlast_coding_system_used after calling
5505 code_convert_string.
5506 (code_convert_string_norecord): Disable composition.
5507 (Fset_terminal_coding_system_internal): Likewise.
5508 (Fset_safe_terminal_coding_system_internal): Likewise.
5509 (Fset_keyboard_coding_system_internal): Likewise.
5510 (init_coding_once): Set emacs_code_class[0x80] to
5511 EMACS_invalid_code.
5512
5513 * composite.h: New file.
5514
5515 * composite.c: New file.
5516
5517 * data.c (Faref): Delete codes for a composite character..
5518 (Faset): Likewise. Adjusted for the change of CHAR_STRING.
5519
5520 * dispextern.h (enum glyph_type): New member COMPOSITE_GLYPH.
5521 (struct glyph): Add new sub-structure cmp to the union `u'.
5522 (enum display_element_type): New member IT_COMPOSITION.
5523 (enum prop_idx): New member COMPOSITION_PROP_IDX.
5524 (struct it): New members cmp_id, cmp_len.
5525
5526 * dispnew.c (direct_output_forward_char): Check point moving into
5527 or out of a composition. If so, give up direct method.
5528
5529 * doprnt.c (doprnt1): Adjusted for the change of CHAR_STRING.
5530
5531 * editfns.c (Fchar_to_string): Adjusted for the change of
5532 CHAR_STRING.
5533 (general_insert_function): Likewise.
5534 (Finsert_char): Likewise.
5535 (Fsubst_char_in_region): Likewise. Call update_compositions.
5536 (Ftranslate_region): Call update_compositions.
5537 (Ftranspose_regions): Call update_compositions.
5538
5539 * emacs.c (main): Call syms_of_composite.
5540
5541 * fileio.c (Fsubstitute_in_file_name): Adjusted for the change of
5542 CHAR_STRING.
5543 (Finsert_file_contents): Set Vlast_coding_system_used before
5544 calling signal_after_change. Call update_compositions if some
5545 texts are inserted..
5546 (Fwrite_region): Adjusted for the change of a_write and e_write.
5547 (a_write): Argument changed. Work based on character position,
5548 not byte position.
5549 (e_write): Argument changed. Handle new way of composition.
5550
5551 * fns.c (Flength): The length of char-table is MAX_CHAR.
5552 (concat): Adjusted for the change of CHAR_STRING.
5553 (Ffillarray): Adjusted for the change of CHAR_STRING.
5554 (Fset_char_table_default): Delete codes for a composite character.
5555 (hash_put): Return hash index.
5556
5557 * fontset.h (struct font_info): New member vertical_centering.
5558 (Vvertical_centering_font_regexp): Extern it.
5559
5560 * fontset.c (Vvertical_centering_font_regexp): New variable.
5561 (syms_of_fontset): Declare it as a Lisp variable and initialize.
5562 Set Vignore_relative_composition to nil.
5563 (fs_load_font): Initialize `vertical_centering' of struct
5564 font_info.
5565
5566 * indent.c (check_composition): New function.
5567 (MULTIBYTE_BYTES_WIDTH): Call STRING_CHAR_AND_LENGTH with
5568 MAX_MULTIBYTE_LENGTH, not MAX_LENGTH_OF_MULTI_BYTE_FORM.
5569 (current_column_1): Handle new way of composition.
5570 (Fmove_to_column): Likewise.
5571 (compute_motion): Likewise.
5572
5573 * insdel.c (copy_text): Adjusted for the change of CHAR_STRING.
5574 (insert_char): Likewise.
5575 (insert): Call update_compositions.
5576 (insert_and_inherit): Likewise.
5577 (insert_before_markers): Likewise.
5578 (insert_before_markers_and_inherit): Likewise.
5579 (insert_from_string): Likewise.
5580 (insert_from_string_before_markers): Likewise.
5581 (insert_from_buffer): Likewise.
5582 (replace_range): Likewise.
5583 (count_combining_composition): Deleted.
5584 (count_combining_before): Delete codes for a composite character.
5585 (count_combining_after): Likewise.
5586 (del_range_1): Call update_compositions.
5587 (del_range_byte): Likewise.
5588 (del_range_both): Likewise.
5589 (Fcombine_after_change_execute): Likewise.
5590
5591 * intervals.h: Include composite.h.
5592 (get_property_and_range): Extern it.
5593 (Vtext_property_default_nonsticky): Extern it.
427ec082 5594
5ec14d3c
KH
5595 * intervals.c (adjust_intervals_for_insertion): To check stickines
5596 of properties, pay attention to text-property-default-nonsticky.
5597 (merge_properties_sticky): Likewise.
5598 (get_property_and_range): New function.
5599
5600 * keyboard.c (Vdisable_point_adjustment): New variable.
5601 (Vglobal_disable_point_adjustment): New variable.
5602 (syms_of_keyboard): Declare them as Lisp variables.
5603 (command_loop_1): Check them and call adjust_point_for_property if
5604 necessary.
5605 (adjust_point_for_property): New function.
5606
5607 * keymap.c (push_key_description): Adjusted for the change of
5608 CHAR_STRING.
5609 (Ftext_char_description): Likewise.
5610
5611 * lisp.h (QCtest, QCweakness, Qequal): Extern them.
5612 (hash_put): Adjusted for the change of the definition.
5613 (signal_after_change): Likewise.
5614 (check_point_in_composition): Extern it.
5615
5616 * lread.c (readchar): Adjusted for the change of CHAR_STRING.
5617 Delete a code that handles an invalid too-long multibyte sequence
5618 because we are now sure that we never encounter with such a
5619 sequence.
5620 (read_multibyte): Use macro MAX_MULTIBYTE_LENGTH, not
5621 MAX_LENGTH_OF_MULTI_BYTE_FORM.
5622 (init_obarray): Likewise.
5623 (read1): Likewise. Adjusted for the change of CHAR_STRING.
5624
5625 * print.c (printchar): Adjusted for the change of CHAR_STRING.
5626
5627 * process.c: Include composite.h.
5628 (read_process_output): Call update_compositions.
5629
5630 * regex.c (regex_compile): Adjusted for the change of CHAR_STRING.
5631
5632 * search.c (search_buffer): Adjusted for the change of CHAR_STRING.
5633
5634 * syntax.h (SYNTAX_ENTRY_INT): Delete codes for a composite
5635 character.
5636
5637 * term.c (encode_terminal_code): Delete codes for a composite
5638 character. Adjusted for the change of CHAR_STRING.
5639 (produce_glyphs): When called, it->what can be IT_COMPOSITION.
5640 Delete codes for a composite character.
5641
5642 * textprop.c (Vtext_property_default_nonsticky): New variable
5643 (syms_of_textprop): Declare it as a Lisp variable.
5644
5645 * window.c (Frecenter): Clear all caches of compositions.
5646
5647 * xdisp.c (it_props): Add an entry for composition.
5648 (face_before_or_after_it_pos): For composition, check face of a
5649 character after the composition.
5650 (handle_composition_prop): New function.
5651 (get_next_display_element): Adjusted for the change of
5652 CHAR_STRING.
5653 (set_iterator_to_next): Handle the case that it->method ==
5654 next_element_from_composition.
5655 (next_element_from_composition): New function.
5656 (message_dolog): Adjusted for the change of CHAR_STRING.
5657 (set_message_1): Likewise.
5658 (check_point_in_composition): New function.
5659 (reconsider_clip_changes): If point moved into or out of
5660 composition, set b->clip_changed to 1 to force updating of the
5661 screen.
5662 (disp_char_vector): Delete codes for a composite character.
5663 (decode_mode_spec_coding): Adjusted for the change of CHAR_STRING.
5664
5665 * xfaces.c (choose_face_fontset_font): Delete codes for a
5666 composite character.
5667 (realize_x_face): Likewise. Change a place to set local variable
5668 `f' to avoid a bug of GCC 2.8.1 on Solaris.
5669
5670 * xfns.c: Include intervals.h.
5671 (syms_of_xfns): Make `display' property nonsticky by default.
5672
5673 * xselect.c (lisp_data_to_selection_data): Adjusted for the change
5674 for find_charset_in_str.
5675
5676 * xterm.h (struct x_output): Change member font_baseline to
5677 baseline_offset.
5678
5679 * xterm.c (x_append_glyph): Setup members of struct glyph properly
5680 for composition.
5681 (x_append_composite_glyph): New function.
5682 (VCENTER_BASELINE_OFFSET): New macro.
5683 (x_produce_glyphs): If it->what == IT_COMPOSITION, setup members
5684 of struct it for the composition. Cache pixel offsets in the
5685 struct composition. Delete codes for a composite character.
5686 Handle Vignore_relative_composition in composition code.
5687 (struct glyph_string): Delete member cmpcharp, add new member cmp.
5688 (x_set_cursor_gc): Check s->cmp, not s->cmpcharp.
5689 (x_compute_glyph_string_overhangs): Likewise.
5690 (x_get_glyph_overhangs): Delete codes for a composite character.
5691 (x_right_overwritten): Check s->cmp, not s->cmpcharp.
5692 (x_draw_glyph_string_background): Likewise. Delete codes for
5693 checking s->gidx for a composition.
5694 (x_draw_glyph_string_foreground): Delete code for a composite
5695 character.
5696 (x_draw_composite_glyph_string_foreground): New function.
5697 (x_draw_glyph_string_box): Check s->cmp, not s->cmpcharp.
5698 (x_draw_glyph_string): Handle the case of COMPOSITE_GLYPH.
5699 (struct work): Deleted.
5700 (x_fill_composite_glyph_string): Argument changed. Mostly
5701 rewritten for that.
5702 (x_fill_glyph_string): Don't check CHARSET_COMPOSITION.
5703 (BUILD_CHAR_GLYPH_STRINGS): Don't handle composition here.
5704 (BUILD_COMPOSITE_GLYPH_STRING): New macro.
5705 (BUILD_GLYPH_STRINGS): For composition, call
5706 BUILD_COMPOSITE_GLYPH_STRING.
5707 (x_new_font): Initialize f->output_data.x->baseline_offset, not
5708 f->output_data.x->font_baseline.
5709
c3c60f13
GM
57101999-12-14 Gerd Moellmann <gerd@gnu.org>
5711
5712 * xterm.c (show_mouse_face): Don't use updated_area, use
5713 TEXT_AREA.
5714
83c8f461 57151999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
5716
5717 * minibuf.c (Fall_completions): Doc fix.
5718
83c8f461 57191999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
5720
5721 * macros.c (Fstart_kbd_macro): Handle case where last-kbd-macro
5722 has been changed by the Lisp code.
5723
d8eccf12
GM
57241999-12-12 Gerd Moellmann <gerd@gnu.org>
5725
5726 * xfns.c: Indentation fixes.
5727
ae56feae
SM
57281999-12-10 Stefan Monnier <monnier@cs.yale.edu>
5729
5730 * xterm.c (x_initialize): Only setup xaw3d_* if they've been declared.
5731
dfa1c6ae
GM
57321999-12-10 Gerd Moellmann <gerd@gnu.org>
5733
5734 * frame.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL)
5735 [!MSDOS && !WINDOWSNT && !macintosh]: Moved here from xterm.h.
5736
5737 * xterm.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL): Moved
5738 to frame.h.
5739
ec18280f
SM
57401999-12-09 Stefan Monnier <monnier@cs.yale.edu>
5741
5742 * keyboard.c (Qratio): New symbol.
5743 (scroll_bar_parts): Add `Qratio' to it.
5744 (syms_of_keyboard): Init `Qratio'.
5745 * termhooks.h (scroll_bar_part): Add `scroll_bar_move_ratio'.
5746 * xterm.c (#includes): Allow compilation with only Xaw.
5747 (xaw3d_arrow_scroll, xaw3d_pick_top): New variables.
5748 (xt_action_hook): Replace XAW3D by XAW.
5749 (xaw3d_jump_callback): Renamed to xaw_jump_callback.
5750 (xaw_jump_callback): Renamed from xaw3d_jump_callback.
5751 Determine epsilon dynamically and don't try to be too clever.
5752 (xaw3d_scroll_callback): Renamed to xaw_scroll_callback.
5753 (xaw_scroll_callback): Renamed from xaw3d_scroll_callback.
5754 Handle both Xaw3d with arrow-scrollbars and with Xaw-style
5755 scrollbar (using `ratio').
5756 (x_create_toolkit_scroll_bar): Try to detect which style of Xaw3d
5757 scrollbar we have so as to set it up more optimally and to fix
5758 xaw3d_arrow_scroll and xaw3d_pick_top.
5759 (x_set_toolkit_scroll_bar_thumb): Try to maintain 2 spare pixels at the
5760 bottom of the Xaw3d scrollbar, to work around its tendency to refuse
5761 shrinking the thumb. Also make sure that `XawScrollbarSetThumb'
5762 is not ignored, using a major gross hack.
5763 (x_initialize): Init default values for xaw3d_arrow_scroll and
5764 xaw3d_pick_top.
5765
83b6d970
DL
57661999-12-09 Dave Love <fx@gnu.org>
5767
5768 * frame.h: (PIX_TYPE) [! HAVE_X_WINDOWS]: Define PIX_TYPE.
5769
3648c842
GM
57701999-12-08 Gerd Moellmann <gerd@gnu.org>
5771
5772 * eval.c: Remove conditional compilation on `standalone'.
5773 (call_debugger): When entering the debugger while redisplaying,
5774 reset redisplaying_p, and go back to the top-level if the debugger
5775 returns.
5776
05e71564
GM
57771999-12-07 Gerd Moellmann <gerd@gnu.org>
5778
5779 * xfaces.c (x_set_menu_resources_from_menu_face): Make sure
5780 basic faces are realized before trying to use face `menu'.
5781
5782 * window.c (delete_window): Block input for the time window
5783 matrices are being changed.
5784
b46cd536
DL
57851999-12-07 Dave Love <fx@gnu.org>
5786
5787 * lread.c (Fintern_soft): Fix newlines in doc string.
5788
96acb1f7
GM
57891999-12-07 Alexandre Oliva <oliva@dcc.unicamp.br>
5790
5791 * unexelf.c: Include <syms.h>, not <sym.h> on IRIX. Removed
5792 duplicate definition of ElfW.
5793 (find_section): Copied from unexsgi.c.
5794 (unexec): Use find_section. Adjust whitespace. Initialize
5795 new_data2_offset based on old_data, not sbss (this fixes a bug on
5796 IRIX6). Change #ifdef __mips to __sgi, since it's IRIX-specific.
5797 Adjust test for presence of .mdebug section to the new return
5798 value of find_section.
427ec082 5799
96acb1f7
GM
58001999-12-07 Gerd Moellmann <gerd@gnu.org>
5801
5802 * unexelf.c: Merge changes from 20.5.
5803 (unexec): Handle .lit4 and .lit8 unconditionally.
5804
5805 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexelf.o instead of
5806 unexsgi.o again.
427ec082 5807
96acb1f7
GM
5808 * m/iris5d.h (UNEXEC): Likewise.
5809
7dae4502
SM
58101999-12-06 Stefan Monnier <monnier@cs.yale.edu>
5811
5812 * editfns.c (Fdelete_and_extract_region): New function.
05e71564
GM
5813 (syms_of_editfns): Register it.
5814 * insdel.c (del_range): Update del_range_1 call.
7dae4502
SM
5815 (del_range_1, del_range_2): Add a ret_string argument to
5816 request that the deleted text be returned.
5817 (del_range_byte, del_range_both): Update del_range_2 call.
05e71564 5818 * lisp.h (del_range_1, del_range_2): Change prototype
7dae4502
SM
5819 * casefiddle.c (casify_region): Update del_range_1 call.
5820 * coding.c (code_convert_region): Update del_range_2 call.
5821 * fileio.c (Finsert_file_contents): Update del_range_2 call.
5822
397e4fae
GM
58231999-12-06 Gerd Moellmann <gerd@gnu.org>
5824
5825 * xfaces.c (set_lface_from_font_name): Fix incomplete merge.
5826
3d973f71
GM
58271999-12-04 Hrvoje Niksic <hniksic@iskon.hr>
5828
5829 * lread.c (Fintern_soft): Accept a symbol argument.
427ec082 5830
740e985f
EZ
58311999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
5832
5833 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Reduce to 40000.
809f3d51
EZ
5834
5835 * insdel.c (adjust_markers_for_delete): Fix last change.
5836
2d764c78
EZ
58371999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
5838
5839 Changes for automatic remapping of X colors on terminal frames:
5840
5841 * xfaces.c (XColor) [!HAVE_X_WINDOWS]: Provide a typedef for non-X
5842 frames.
5843 (Vface_tty_color_alist): Remove.
5844 (tty_defined_color): New function.
5845 (defined_color): Rewrite to support any type of frame.
5846 (tty_color_name): New function.
5847 (face_color_supported_p, Fface_color_gray_p,
5848 Fface_color_supported_p): Support non-X frames.
5849 (load_color): Enclose the color name in quotes, in the log
5850 messages. Remove DOS-specific version of load_color.
5851 (realize_tty_face): Take the supported colors from
5852 tty-color-alist. Support translation of X colors to the closest
5853 tty color, for both MSDOS and tty frames.
5854 [MSDOS]: Don't invert face colors if they were taken from the
5855 frame colors.
5856 (Fface_register_tty_color, Fface_clear_tty_colors): Remove.
5857
5858 * frame.h (struct x_output) [!MSDOS, !WINDOWSNT, !HAVE_X_WINDOWS]:
5859 Define a mostly empty surrogate.
5860 (tty_display): Declare.
5861
5862 * frame.c (make_terminal_frame) [!macintosh]: Don't use
5863 tty_display.
5864 (Fframe_parameters): Don't invert colors of non-FRAME_WINDOW_P
5865 frames when the frame's param_alist includes 'reverse.
5866 (tty_display): Define.
5867 (make_terminal_frame) [!MSDOS]: Assign &tty_display to the
5868 output_data.x member.
5869 (Fframe_parameters): Return foreground and background color names
5870 on tty frames as well, in addition to MSDOS frames.
5871
5872 * msdos.h (DisplayWidth, DisplayHeight): Changes for Lisp_Object
5873 selected_frame.
5874 (struct x_output): Remove unused members; document who uses each
5875 member.
5876 (FRAME_PARAM_FACES, FRAME_N_PARAM_FACES, FRAME_DEFAULT_PARAM_FACE,
5877 FRAME_MODE_LINE_PARAM_FACE, FRAME_COMPUTED_FACES,
5878 FRAME_N_COMPUTED_FACES, FRAME_SIZE_COMPUTED_FACES,
5879 FRAME_DEFAULT_FACE, FRAME_MODE_LINE_FACE, unload_color): Remove
5880 unused macro definintions.
5881
5882 * msdos.c (IT_set_frame_parameters): Don't call
5883 recompute_basic_faces, the next redisplay will, anyway.
5884 (x_current_display): Remove unused variable.
5885 Many functions: changes for Lisp_object selected_frame.
5886 (IT_set_face): If the tty_reverse_p flag is set for the face,
5887 reverse the foreground and background colors.
5888 (Fmsdos_remember_default_colors): New function.
5889 (syms_of_msdos): Defsubr it.
5890 (IT_set_frame_parameters): Use initial_screen_colors[] when
5891 creating a new frame. If the frame parameters include 'reverse,
5892 swap the foreground and background colors.
5893 (internal_terminal_init): Initialize initial_screen_colors to -1.
5894 (syms_of_msdos): Add DEFVAR_BOOL for x-stretch-cursor, to shut up
5895 cus-start.el.
5896
5897 * Makefile.in (lisp, shortlisp): Add lisp/term/tty-colors.elc.
5898
5899 * xfns.c (x_defined_color): Rename from defined_color. All
5900 callers changed.
5901 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
5902 all callers changed.
5903 (Fxw_color_values): Renamed from Fx_color_values; all callers
5904 changed.
5905 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
5906 callers changed.
5907 (x_window_to_frame, x_any_window_to_frame,
5908 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
5909 x_top_window_to_frame): Use !FRAME_X_P instead of
5910 f->output_data.nothing.
5911 * xterm.h (x_defined_color): Rename from defined_color.
5912
5913 * w32fns.c (x_window_to_frame): Use FRAME_W32_P instead of
5914 f->output_data.nothing.
5915 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
5916 all callers changed.
5917 (Fxw_color_values): Renamed from Fx_color_values; all callers
5918 changed.
5919 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
5920 callers changed.
5921
5922 * dispextern.h (tty_color_name): Add prototype.
5923
5924 * xmenu.c (menubar_id_to_frame): Use FRAME_WINDOW_P instead of
5925 f->output_data.nothing.
5926 * w32menu.c (menubar_id_to_frame): Likewise.
5927 * w32term.h (w32_output): Declare.
5928
5929 * dosfns.c (Qmsdos_color_translate): Remove.
5930 (msdos_stdcolor_name): Now returns a Lisp_Object.
5931 * dosfns.h (Qmsdos_color_translate): Remove.
5932
5933 * s/msdos.h (INTERNAL_TERMINAL): Add entries for color support.
5934
b3e5232e
KH
59351999-12-06 Kenichi Handa <handa@etl.go.jp>
5936
5937 * fileio.c (decide_coding_unwind): Renamed from
5938 set_auto_coding_unwind.
5939 (Finsert_file_contents): Make single unwind protect to call both
5940 Vset_auto_coding_function and Ffind_operation_coding_system.
5941
5942 * insdel.c (adjust_markers_for_delete): Make it non-static.
5943
db0e466c
SM
59441999-12-04 Stefan Monnier <monnier@cs.yale.edu>
5945
5946 * regex.c (regex_compile): Recognize *?, +? and ?? as non-greedy
5947 operators and handle them properly.
5948 * regex.h (RE_ALL_GREEDY): New option.
5949 (RE_UNMATCHED_RIGHT_PAREN_ORD): Moved to the end where alphabetic
5950 sorting would put it.
5951 (RE_SYNTAX_AWK, RE_SYNTAX_GREP, RE_SYNTAX_EGREP)
5952 (_RE_SYNTAX_POSIX_COMMON): Use the new option to keep old behavior.
5953
22afa6e8
DL
59541999-12-04 Dave Love <d.love@dl.ac.uk>
5955
5956 * m/arm.h: New file.
5957
40afb967
DL
59581999-12-03 Dave Love <fx@gnu.org>
5959
5960 * editfns.c (Fmessage_or_box): Use use_dialog_box.
5961
ddf8eff5
GM
59621999-12-02 Gerd Moellmann <gerd@gnu.org>
5963
5964 * s/usg5-4.h (LIBS_SYSTEM): Add -lgen because that's needed
5965 for building with Motif.
5966
5967 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexsgi.o instead of
5968 unexelf.o.
427ec082 5969
ddf8eff5
GM
5970 * m/iris5d.h (UNEXEC): Use unexsgi.o instead of unexelf.o.
5971
fa09a82d
DL
59721999-12-01 Dave Love <fx@gnu.org>
5973
5974 * emacs.c (main): Set LANG=C iff AX3_2 defined.
5975
ddf8eff5
GM
59761999-11-28 Gerd Moellmann <gerd@gnu.org>
5977
5978 * systime.h (EMACS_TIME_CMP, EMACS_TIME_EQ, EMACS_TIME_NE)
5979 (EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT,EMACS_TIME_LE): New
5980 macros.
5981
5982 * config.in (HAVE_SETITIMER, HAVE_UALARM): New.
5983
fa09a82d
DL
59841999-11-28 eliz <eliz@dlpx1>
5985
5986 * emacs.c (synchronize_locale): Avoid compiler warnings about
5987 pointer type mismatch.
5988
f9632fc8
GM
59891999-11-28 Gerd Moellmann <gerd@gnu.org>
5990
717d0121
GM
5991 * window.c (Fwindow_end): Don't call temp_set_pt_both with
5992 out of range position.
5993
427ec082 5994 * xterm.c (XTread_socket) <ClientMessage, Xatom_Scrollbar>:
f9632fc8
GM
5995 Switch off busy-cursor by setting inhibit_busy_cursor to 2.
5996
59c65f1e
EZ
59971999-11-28 Eli Zaretskii <eliz@is.elta.co.il>
5998
613a8346
EZ
5999 * charset.c (Fmake_char_internal): Print the charset ID when
6000 signalling an error.
6001
59c65f1e
EZ
6002 * emacs.c (synchronize_locale): Avoid compiler warnings about
6003 pointer type mismatch.
6004
83c8f461 60051999-11-26 Richard M. Stallman <rms@gnu.org>
d01f3570
RS
6006
6007 * editfns.c (Fdelete_field): Make it noninteractive. Return nil.
6008
18df9369
GM
60091999-11-26 Gerd Moellmann <gerd@gnu.org>
6010
65a3ccf7
GM
6011 * puresize.h (BASE_PURESIZE): Increase to 550000.
6012
b3b98592
GM
6013 * textprop.c (set_text_properties): New function. Like
6014 Fset_text_properties, but with additional parameter
6015 SIGNAL_AFTER_CHANGE_P. If that is nil, don't signal after
6016 changes.
6017 (Fset_text_properties): Use it.
6018
6019 * insdel.c (insert_1_both): Call set_text_properties with last
6020 parameter nil so that no after changes will be signaled.
6021
6022 * lisp.h: Add prototype for set_text_properties.
6023
18df9369
GM
6024 * xfaces.c (set_lface_from_font_name): Fix previous change.
6025 (recompute_basic_faces): Change assert to abort.
6026
71a8e74b
DL
60271999-11-25 Dave Love <fx@gnu.org>
6028
6029 * fns.c (Fnthcdr, Fnreverse): Inline cdr.
6030 (Fmember, Fdelq, Fdelete): Inline car.
6031 (Fy_or_n_p): Doc fix.
6032
bc6a5782
GM
60331999-11-25 Gerd Moellmann <gerd@gnu.org>
6034
3221576b 6035 * xfaces.c (set_lface_from_font_name): New parameter may_fail_p.
18df9369 6036 Callers changed. If specified font name is bogus, and may_fail_p
3221576b
GM
6037 is not set, try to use a reasonable default.
6038
bc6a5782
GM
6039 * dispnew.c (direct_output_for_insert): Set glyph row's
6040 displays_text_p flag. Correct window's window_end_vpos if
6041 necessary.
6042
0c8559bb
PE
60431999-11-25 Paul Eggert <eggert@twinsun.com>
6044
6045 * emacs.c (fixup_locale): Don't bother to record initial locale.
6046 (synchronize_locale): If the desired locale is nil,
6047 treat it as if it were the empty string,
6048 so that we set the locale from the environment.
6049
35737351
KH
60501999-11-25 Kenichi Handa <handa@etl.go.jp>
6051
6052 * fileio.c (Finsert_file_contents): Set buffer-file-coding-system
6053 of the current buffer via Fset.
6054
5562b47f
DL
60551999-11-24 Dave Love <fx@gnu.org>
6056
5562b47f
DL
6057 * xfaces.c: Don't duplicate Qmode_line definition done elsewhere.
6058
6059 * xfns.c: Don't duplicate Qdisplay definition done elsewhere.
6060
00da0e4a
GM
60611999-11-24 Gerd Moellmann <gerd@gnu.org>
6062
6063 * lisp.h (enum pvec_type): Put PVEC_FLAG in #if 0.
6064
6065 * emacs.c (PVEC_FLAG): New variable.
6066
b1775dc1
GM
60671999-11-23 Gerd Moellmann <gerd@gnu.org>
6068
6069 * unexaix.c (unexec): Use unsigned instead of uintptr_t because
6070 that fails on IBM PowerPC, AIX 4.2.
427ec082 6071
08de6200
EZ
60721999-11-22 Eli Zaretskii <eliz@is.elta.co.il>
6073
6074 * buffer.c (syms_of_buffer): Add %z, %Z, %m and %& to the doc
6075 string of mode-line-format. Remove the obsolete %t.
6076
02fda8ff
GM
60771999-11-22 Gerd Moellmann <gerd@gnu.org>
6078
f2fa858f
GM
6079 * dispnew.c (direct_output_for_insert): Increment glyph positions
6080 for glyphs from buffer text only.
6081
02fda8ff
GM
6082 * emacs.c (gdb_valbits, gdb_gctypebits, gdb_emacs_intbits)
6083 (gdb_data_seg_bits): New variables.
427ec082 6084
02fda8ff
GM
6085 * lisp.h (enum gdb_lisp_params): Put in #if 0, since it doesn't
6086 work on systems not allowing enumerators > INT_MAX, and it
6087 won't work if EMACS_INT is long long.
6088
1b0d24e7
PE
60891999-11-22 Paul Eggert <eggert@twinsun.com>
6090
6091 Port to SunOS 4.1.x again. Help out with Alpha port.
6092 Rename messages-locale to system-messages-locale,
6093 and likewise for time-locale.
427ec082 6094
1b0d24e7
PE
6095 * callproc.c (strerror): Remove decl.
6096 * fileio.c (strerror): Likewise.
6097 * process.c (strerror): Likewise.
6098 * emacs.c (strerror): Likewise.
6099 (Vsystem_messages_locale): Renamed from Vmessages_locale.
6100 All uses changed.
6101 (Vprevious_system_messages_locale): Likewise, from
6102 Vprevious_messages_locale.
6103 (Vsystem_time_locale): Likewise, from Vtime_locale.
6104 (Vprevious_system_time_locale): Likewise, from Vprevious_time_locale.
6105 (ABORT_RETURN_TYPE): New macro.
6106 (abort): Return type is now ABORT_RETURN_TYPE.
6107 (main): Always invoke init_signals, even if POSIX_SIGNALS is not
6108 defined.
6109 (syms_of_emacs): messages-locale -> system-messages-locale,
6110 previous-messages-locale -> previous-system-messages-locale,
6111 time-locale -> system-time-locale,
6112 previous-time-locale -> previous-system-time-locale.
6113
6114 * gmalloc.c (PP, __ptr_t): Assume ANSI C if STDC_HEADERS is defined.
6115 (const): Do not define; that's config.h's job.
6116 (<limits.h>): Include if HAVE_LIMITS_H is defined.
6117 (CHAR_BIT): Move test for definedness outside of limits.h condition.
6118 (<stddef.h>): Include if STDC_HEADERS is defined.
6119 (FREE_RETURN_TYPE): New macro.
6120 (free): Return type is now FREE_RETURN_TYPE.
6121
6122 * lisp.h (synchronize_system_time_locale): Renamed from
6123 synchronize_time_locale. All uses changed.
6124 (synchronize_system_messages_locale): Likewise, from
6125 synchronize_messages_locale.
6126
6127 * m/alpha.h (malloc, realloc, calloc): Remove decls;
6128 stdlib.h now does this.
6129
6130 * process.c (sys_siglist): Remove.
6131
6132 * s/sunos4-0.h (ABORT_RETURN_TYPE, FREE_RETURN_TYPE):
6133 New macros.
6134
6135 * syntax.c (scan_sexps_forward): Use abort, not assert.
6136
6137 * sysdep.c (my_sys_siglist): New var.
6138 (sys_siglist): New macro. Remove old initialized vars of same name.
6139 (init_signals): Initialize sys_siglist.
6140
6141 * xfns.c (abort): Remove decl; stdlib.h now does this.
6142
0dcd5b54
DL
61431999-11-18 Dave Love <fx@gnu.org>
6144
946173ad
DL
6145 * filelock.c: Add forward declaration for get_boot_time_1.
6146
0dcd5b54
DL
6147 * dispnew.c (Finternal_show_cursor_p): Fix doc string.
6148
71447e8f
GM
61491999-11-18 Gerd Moellmann <gerd@gnu.org>
6150
6151 * buffer.h (struct buffer_text): Add comment about moving
6152 buffer text if REL_ALLOC is defined.
6153
eeedff63
KH
61541999-11-18 Kenichi Handa <handa@etl.go.jp>
6155
6156 * lisp.h (KEY_DESCRIPTION_SIZE): New macro.
6157
6158 * keyboard.c (echo_char): Use KEY_DESCRIPTION_SIZE to check free
6159 memory for push_key_description.
6160
6161 * keymap.c (Fsingle_key_description): Use KEY_DESCRIPTION_SIZE to
6162 allocate memory for push_key_description.
6163 (describe_buffer_bindings): Likewise.
6164
5d7e4a2c
GM
61651999-11-17 Gerd Moellmann <gerd@gnu.org>
6166
6167 * xfns.c (Fx_show_busy_cursor): Doc-fix.
6168 (Fx_hide_busy_cursor): Ditto.
6169
61701999-11-17 Marco Walther <walther@siemens-pyramid.com>
6171
6172 * unexsni.c (unexec): Handle .rel.dyn section.
6173
b5b41e02
DL
61741999-11-16 Dave Love <fx@gnu.org>
6175
6176 * doc.c (Fdocumentation): Remove gcpro here too.
6177
e35b6123
GM
61781999-11-16 Gerd Moellmann <gerd@gnu.org>
6179
6180 * keyboard.c (command_loop_1): Remove no_redisplay.
6181
83c8f461 61821999-11-16 Richard M. Stallman <rms@gnu.org>
0a14b9bb
GM
6183
6184 * print.c (PRINTPREPARE): Don't call setup_echo_area_for_printing
6185 in noninteractive.
6186
b05d3bee
GM
61871999-11-14 Gerd Moellmann <gerd@gnu.org>
6188
5bcfeb49
GM
6189 * xdisp.c (ensure_echo_area_buffers): New.
6190 (with_echo_area_buffer): Use it.
6191 (setup_echo_area_for_printing): Ditto.
6192
b05d3bee
GM
6193 * buffer.c (indicate-empty-lines): Doc-fix.
6194
9b2e6e4c
GM
61951999-11-12 Gerd Moellmann <gerd@gnu.org>
6196
e7f90eab
GM
6197 * term.c (term_init): If "op" isn't available, don't support color
6198 because we can't switch back to the default foreground and
6199 background.
6200
9b2e6e4c
GM
6201 * doc.c (Fdocumentation_property): Remove GCPRO because
6202 Fsubstitute_command_keys gcpro's the string.
6203
1bf21027
KH
62041999-11-12 Kenichi Handa <handa@etl.go.jp>
6205
6206 * editfns.c (Ftranslate_region): Check the buffer multibyteness.
6207
3bc6df53
GM
62081999-11-11 Gerd Moellmann <gerd@gnu.org>
6209
6210 * print.c, keymap.c, indent.c, insdel.c, keyboard.c, intervals.c,
6211 lread.c, textprop.c, undo.c, emacs.c, lisp.h, intervals.h,
6212 buffer.h, config.in, Makefile.in: Remove USE_TEXT_PROPERTIES.
6213
35a5514b
GM
62141999-11-10 Gerd Moellmann <gerd@gnu.org>
6215
6216 * xfns.c (QCuser_data): Removed.
6217 (syms_of_xfns): Initialization of QCuser_data removed.
6218 (parse_image_spec): Don't handle :user-data specially. Allow
6219 unknown keys. Remove parameter ALLOW_OTHER_KEYS.
6220 (xbm_image_p, xbm_load, xpm_image_p, pbm_image_p, png_image_p)
6221 (tiff_image_p, jpeg_image_p, gif_image_p, gs_image_p): Call
6222 parse_image_spec accordingly.
6223
83c8f461 62241999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
6225
6226 * cmds.c (Fbeginning_of_line): Doc fix.
6227 (Fend_of_line): Doc fix.
6228
6229 * editfns.c (Fline_beginning_position): If N is not 1,
6230 pass t to Fconstrain_to_field for ESCAPE-FROM-EDGE.
6231
6232 * syntax.c (Fforward_word): Handle fields even if would have hit
6233 an edge of the buffer. Return nil if affected by fields.
6234
83c8f461 62351999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
6236
6237 * editfns.c (preceding_pos): Function deleted.
6238 (text_property_stickiness): Decrement POS directly.
6239 Fix a confusion that used PT instead of POS.
6240
6241 * editfns.c (find_field): Properly handle the case
6242 of a field boundary where `field' inherits from neither side.
6243
6244 * editfns.c (Ffield_beginning, Ffield_end): Doc fixes.
6245 (Ferase_field, Ffield_string, Ffield_string_no_properties): Doc fixes.
6246
fa9aabf6
GM
62471999-11-08 Gerd Moellmann <gerd@gnu.org>
6248
6249 * bytecode.c (Fbyte_code) <BinsertN, Bcall>: Do the
6250 BEFORE_POTENTIAL_GC before DISCARD.
6251
4015b3c0
GM
62521999-11-07 Gerd Moellmann <gerd@gnu.org>
6253
033a5fa3
GM
6254 * alloc.c (Fgarbage_collect): Call unmark_byte_stack.
6255
6256 * lisp.h: Add prototype for unmark_byte_stack.
6257
6258 * bytecode.c (mark_byte_stack): Use XMARKBIT and XMARK.
6259 (unmark_byte_stack): Renamed from relocate_byte_pcs. Use
6260 XUNMARK.
6261
55b064bd
GM
6262 * xdisp.c (resize_mini_window): Fix computation of needed
6263 mini-window height.
6264
6265 * alloc.c, buffer.c, editfns.c, xdisp.c: Remove conditional
6266 compilation on USE_TEXT_PROPERTIES.
01e9b9df 6267
4015b3c0 6268 * Fbyte_code: Use block statements in cases and declare v1 and v2
60af03f1 6269 locally there. Rearrange case statements so that those most
4015b3c0
GM
6270 frequently executed come first. Avoid goto's in frequently
6271 executed cases.
6272
fe512f27
GM
62731999-11-05 Gerd Moellmann <gerd@gnu.org>
6274
dd59e217
GM
6275 * bytecode.c (Fbyte_code): Use BEFORE_POTENTIAL_GC and
6276 AFTER_POTENTIAL_GC around internal_catch.
6277
bcf28080
GM
6278 * alloc.c (Fgarbage_collect): Call mark_byte_stack and
6279 relocate_byte_pcs.
6280 (init_alloc_once, init_alloc): Set byte_stack_list to null.
6281
6282 * eval.c (struct catchtag): Add member byte_stack.
6283 (internal_catch, Fcondition_case, internal_condition_case)
dd59e217 6284 (internal_condition_case_1): Save value of byte_stack_list in
bcf28080
GM
6285 catchtag.
6286 (unwind_to_catch): Restore byte_stack_list from catchtag.
6287
6288 * lisp.h: Add prototypes for new functions in bytecode.c.
6289 Add extern declaration for byte_stack_list.
6290
6291 * bytecode.c (struct byte_stack): New.
6292 (byte_stack_list, mark_byte_stack, relocate_byte_pcs): New
6293 (BEFORE_POTENTIAL_GC, AFTER_POTENTIAL_GC): New.
6294 (FETCH, PUSH, POP, DISCARD, TOP, MAYBE_GC): Rewritten.
6295 (HANDLE_RELOCATION): Removed.
6296 (Fbyte_code): Use byte_stack structures.
6297
4d59c34c
GM
6298 * filelock.c (Ffile_locked_p): Make FILENAME a required argument.
6299
fe512f27
GM
6300 * buffer.c (syms_of_buffer): Extend documentation of
6301 mode-line-format.
6302
60b64cd6
GM
63031999-11-04 Gerd Moellmann <gerd@gnu.org>
6304
6305 * editfns.c (Fdelete_field): Renamed from Ferase_field.
6306
6307 * minibuf.c (do_completion, Fminibuffer_complete_word): Use
6308 Ferase_field instead of Fdelete_field.
6309
b51b619b
GM
63101999-11-03 Gerd Moellmann <gerd@gnu.org>
6311
6312 * dispnew.c (Finternal_show_cursor): Change it to set the
6313 cursor on/off, not toggle its state.
6314 (Finternal_show_cursor_p): New.
6315 (syms_of_display): Defsubr Sinternal_show_cursor_p.
6316
5865af0d
DL
63171999-11-03 Dave Love <fx@gnu.org>
6318
6319 * charset.c (split_non_ascii_string): Define return value.
6320
82a700f3
GM
63211999-11-03 Gerd Moellmann <gerd@gnu.org>
6322
edfef199
GM
6323 * minibuf.c (string_to_object): New.
6324 (read_minibuf_noninteractive): New.
6325 (read_minibuf): Call read_minibuf_noninteractive if
6326 noninteractive. Use string_to_object.
6327
82a700f3
GM
6328 * doc.c (Fdocumentation_property): Fix bug bypassing UNGCPRO.
6329
b5540f0d
DL
63301999-11-02 Dave Love <fx@gnu.org>
6331
e69dcd60
DL
6332 * gnu-linux.h: Use SIGCHLD, not SIGCLD (not in glibc 2.1).
6333
827a1788
DL
6334 * process.c: Define _GNU_SOURCE before config.h to get strsignal
6335 declared with glibc2.
b5540f0d 6336
a69a6e61
GM
63371999-11-02 Gerd Moellmann <gerd@gnu.org>
6338
6339 * lisp.h (QUIT): Give it statement form.
6340
87e21fbd
DL
63411999-11-02 Dave Love <fx@gnu.org>
6342
6343 * eval.c (init_eval): Conditionalize declaration of gcpro_level.
6344
1b335865
GM
63451999-11-02 Gerd Moellmann <gerd@gnu.org>
6346
9fb5e03d
GM
6347 * xfns.c (QCuser_data): New.
6348 (syms_of_xfns): Initialize QCuser_data.
6349 (parse_image_spec): Ignore :user-data DATA properties.
6350
1b335865
GM
6351 * xdisp.c (display_line): Set charpos of first glyph in blank
6352 lines not corresponding to any text to -1, even if no glyphs are
6353 filled in in that line.
6354
e76f1c44
GM
63551999-11-01 Gerd Moellmann <gerd@gnu.org>
6356
427ec082 6357 * xfns.c (png_load) [PNG_READ_sRGB_SUPPORTED]: Put code using
36fcd3d9
GM
6358 png_get_sRGB in #ifdef.
6359
111259b4
GM
6360 * dispnew.c (Finternal_show_cursor): Renamed from Fshow_cursor.
6361 (syms_of_display): Use the new name.
6362
dd5c96e8
GM
6363 * textprop.c (verify_interval_modification): Signal text-read-only
6364 instead of calling error.
6365
db8878fb
GM
6366 * data.c (Qtext_read_only): New built-in error.
6367 (syms_of_data): Initialize it.
6368
6369 * lisp.h: Add extern declaration for Qtext_read_only.
6370
e76f1c44
GM
6371 * syntax.c: Remove whitespace after open or in front of closing
6372 parentheses.
6373
83c8f461 63741999-11-01 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
6375
6376 * Makefile.in (w16select.o, sound.o): Don't depend on lisp.h.
6377
7843e09c
GM
63781999-10-31 Gerd Moellmann <gerd@gnu.org>
6379
575ed805
GM
6380 * xdisp.c (resize_mini_window): Compute needed height differently.
6381
7843e09c
GM
6382 * fns.c (Flength): Unroll loop over lists.
6383
6384 * xdisp.c (append_space): Return non-zero if space was appended.
6385 (display_line): Set charpos of first glyph to -1 only if that
6386 glyph is the space added by append_glyph.
6387
83c8f461 63881999-10-30 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
6389
6390 * print.c (strout): Consider `noninteractive' and use stdout
6391 only when PRINTCHARFUN is t.
6392
6393 * lisp.h (struct gcpro) [DEBUG_GCPRO]: New field `level'.
6394 (gcpro_level): Declare it extern.
6395 [DEBUG_GCPRO] (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5):
6396 Alternate definitions that set `level' and increment `gcpro_level'.
6397 [DEBUG_GCPRO] (UNGCPRO): Alternate definition that checks gcpro_level.
6398
6399 * eval.c [DEBUG_GCPRO] (gcpro_level): New variable.
6400 (init_eval) [DEBUG_GCPRO]: Initialize it.
6401 (unwind_to_catch) [DEBUG_GCPRO]: Set gcpro_level
6402 from remaining gcprolist.
6403
3636f7a3
KH
64041999-10-29 Kenichi Handa <handa@etl.go.jp>
6405
6406 * coding.c (code_convert_region): Update `dst' correctly.
6407
a2ad7096
GM
64081999-10-28 Gerd Moellmann <gerd@gnu.org>
6409
6410 * fns.c (Fmemq, Fassq, Frassq, assq_no_quit, Fassoc)
6411 (Frassoc): Rewritten.
6412
1e3196e8
GM
64131999-10-27 Noah Friedman <friedman@splode.com>
6414
6415 * s/gnu-linux.h [HAVE_DEV_PTMX]: Redefine FIRST_PTY_LETTER to 'z'.
6416 Define PTY_NAME_SPRINTF.
6417 Redefine PTY_TTY_NAME_SPRINTF.
6418 * config.in: Add undef for HAVE_DEV_PTMX.
6419
83c8f461 64201999-10-26 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
6421
6422 * regex.c (POP_FAILURE_POINT): Use failure_id.integer
6423 as arg to DEBUG_POP and DEBUG_PRINT.
6424
83c8f461 64251999-10-27 Richard M. Stallman <rms@gnu.org>
17dbfaad
GM
6426
6427 * data.c (Qad_activate_internal): Renamed from Qad_activate.
6428 (Ffset): Call Qad_activate_internal.
6429 (syms_of_data): Initialize Qad_activate_internal.
6430
26922151
GM
64311999-10-27 Gerd Moellmann <gerd@gnu.org>
6432
6433 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing if
6434 Vterminal_frame is selected and Vwindow_system is non-nil.
6435
67a5596f
GM
64361999-10-26 Gerd Moellmann <gerd@gnu.org>
6437
2bea706b
GM
6438 * xdisp.c (echo_area_display): Put previous change in #if 0.
6439
67a5596f
GM
6440 * emacs.c (standard_args): Add `file' as synonym for `visit',
6441 `execute' as synonym for `eval'.
6442 (main): Add new options to usage message.
6443
81dc5de5
GM
64441999-10-25 Gerd Moellmann <gerd@gnu.org>
6445
6446 * data.c (Qhash_table): New.
6447 (Ftype_of): Return it for hash tables.
6448 (syms_of_data): Initialize Qhash_table.
6449
83c8f461 64501999-10-25 Richard M. Stallman <rms@gnu.org>
bd3c545d
GM
6451
6452 * regex.c (POP_FAILURE_POINT): Extract failure_id as an integer.
6453
66e4690f 64541999-10-24 Ken Raeburn <raeburn@gnu.org>
3a7093d8 6455
7539e11f
KR
6456 * alloc.c: Undef HIDE_LISP_IMPLEMENTATION before including
6457 lisp.h.
6458
6459 * buffer.c (Fbuffer_list, Fget_file_buffer, get_truename_buffer,
6460 Fbuffer_local_variables, Fother_buffer, record_buffer,
6461 set_buffer_internal_1, Fbury_buffer, Fkill_all_local_variables,
6462 swap_out_buffer_local_variables, overlays_at, overlays_in,
6463 overlay_touches_p, overlay_strings, recenter_overlay_lists,
6464 fix_overlays_in_range, fix_overlays_before, Foverlay_get,
6465 Foverlay_put, report_overlay_modification, evaporate_overlays):
6466 Use XCAR, XCDR, and XFLOAT_DATA instead of explicit member
6467 references.
6468 * data.c (Fcar, Fcar_safe, Fcdr, Fcdr_safe, Fsetcar, Fsetcdr,
6469 swap_in_symval_forwarding, set_internal, default_value,
6470 Fset_default, Fmake_variable_buffer_local, Fmake_local_variable,
6471 Fmake_variable_frame_local, Flocal_variable_p,
6472 Flocal_variable_if_set_p, arithcompare, Fzerop, cons_to_long,
6473 Fnumber_to_string, float_arith_driver, Fadd1, Fsub1): Likewise.
6474 * dispnew.c (Fframe_or_buffer_changed_p): Likewise.
6475 * emacs.c (main): Likewise.
6476 * fontset.c (fs_load_font, fs_register_fontset,
6477 CACHED_FONTSET_NAME, CACHED_FONTSET_REGEX, Fquery_fontset,
6478 Fnew_fontset, Fset_fontset_font): Likewise.
6479 * frame.c (do_switch_frame, next_frame, prev_frame,
6480 other_visible_frames, Fdelete_frame, Fvisible_frame_list):
6481 Likewise.
6482 * keyboard.c (read_char, help_char_p, event_to_kboard,
6483 kbd_buffer_get_event, timer_start_idle, timer_check,
6484 make_lispy_event, apply_modifiers, reorder_modifiers,
6485 Fevent_convert_list, lucid_event_type_list_p, menu_bar_items,
6486 menu_bar_one_keymap, menu_item_eval_property_1, parse_menu_item,
6487 tool_bar_items, read_char_x_menu_prompt, read_key_sequence,
6488 Fcommand_execute, Fexecute_extended_command): Likewise.
6489 * minibuf.c (read_minibuf, get_minibuffer, Ftry_completion,
6490 Fall_completions): Likewise.
6491 * window.c (Fset_window_margins): Likewise.
6492
6493 * callint.c (quotify_args): Don't explicitly use struct
6494 Lisp_Cons, use Lisp_Object and XCAR/XCDR instead.
6495
3a7093d8
KR
6496 * s/netbsd.h (HAVE_GETLOADAVG): Define as 1.
6497 (UNEXEC, START_FILES, LIB_STANDARD, LIB_GCC): Define ELF versions,
6498 if __ELF__ is defined.
6499
2a3d7146
GM
65001999-10-24 Gerd Moellmann <gerd@gnu.org>
6501
6502 * window.c (Fnext_window): Add a QUIT in the loop.
6503
8ac52782
GM
65041999-10-23 Gerd Moellmann <gerd@gnu.org>
6505
427ec082 6506 * Makefile.in (bootstrap, bootstrap-emacs, bootstrap-temacs):
8ac52782
GM
6507 New targets.
6508
05f0d15a
DL
65091999-10-22 Dave Love <fx@gnu.org>
6510
6511 * emacs.c (main): Enable profiling conditional on __linux also.
6512
882fb0e6
GM
65131999-10-20 Gerd Moellmann <gerd@gnu.org>
6514
6515 * xrdb.c (x_load_resources): Set default resources for resource
6516 classes instead of for the specific Emacs.
6517
b5f5bc31
GM
65181999-10-19 Gerd Moellmann <gerd@gnu.org>
6519
66f4dd69
GM
6520 * s/freebsd.h (HAVE_GETLOADAVG): Define as 1 because config.h
6521 defines it that way.
427ec082 6522
b5f5bc31
GM
6523 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing
6524 if selected_frame is equal to Vterminal_frame.
6525
68c45bf0 65261999-10-19 Paul Eggert <eggert@twinsun.com>
427ec082 6527
68c45bf0 6528 Add support for large files, 64-bit Solaris, system locale codings.
427ec082 6529
68c45bf0
PE
6530 * Makefile.in (emacs): Set the LC_ALL environment variable to "C"
6531 when dumping, so that the dumped Emacs doesn't have stray locale info.
6532 (dired.o): Depend on systime.h.
6533 (editfns.o): Depend on coding.h.
6534
6535 * alloc.c, buffer.c, callproc.c, ccl.c, charset.c, coding.c, data.c,
6536 dispnew.c, editfns.c, emacs.c, filelock.c, floatfns.c, hftctl.c,
6537 keyboard.c, process.c, sysdep.c, unexelf.c, unexhp9k800.c,
6538 unexsunos4.c, vmsfns.c, vmsgmalloc.c, w32faces.c, w32menu.c, w32term.c,
6539 w32xfns.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
6540 Include <config.h> before any system include files.
6541
6542 * alloc.c, buffer.c, ccl.c, data.c, editfns.c, emacs.c, eval.c,
6543 fileio.c, filelock.c, frame.c, insdel.c, keymap.c, lread.c,
6544 m/alpha.h, print.c, search.c, sysdep.c, xdisp.c, xfaces.c, xfns.c,
6545 xmenu.c, xterm.c:
6546 Do not include <stdlib.h>, as <config.h> does this now.
6547
6548 * callproc.c (Fcall_process):
6549 Synchronize messages locale before invoking strerror.
6550 Decode resulting string with locale-coding-system.
6551
6552 * coding.c (Vlocale_coding_system): New var.
6553 (syms_of_coding): Adjust to above change.
6554 (emacs_strerror): New function.
6555
6556 * coding.h (emacs_strerror, Vlocale_coding_system): New decls.
427ec082 6557
68c45bf0
PE
6558 * config.in (HAVE_STDIO_EXT_H, HAVE_TM_GMTOFF, HAVE___FPENDING,
6559 HAVE_FTELLO, HAVE_GETLOADAVG, HAVE_MBLEN, HAVE_MBRLEN,
6560 HAVE_STRSIGNAL): New macros.
6561 (BITS_PER_LONG): Default to 64 if _LP64 is defined.
6562 <stdlib.h>: Include if HAVE_STDLIB_H is defined and NOT_C_CODE isn't.
6563
6564 * dired.c: Include "systime.h".
6565 (Ffile_attributes): Do not cast s.st_size to int; this loses
6566 information if int is 32 bits but st_size and EMACS_INT are larger.
6567 Treat large device numbers like large inode numbers.
6568
6569 * dispnew.c (PENDING_OUTPUT_COUNT): Use __fpending if available.
6570
6571 * editfns.c: Include coding.h.
6572 (emacs_strftime): Remove decl.
6573 (emacs_strftimeu): New decl.
6574 (emacs_memftimeu): Renamed from emacs_memftime; new arg UT.
6575 Use emacs_strftimeu instead of emacs_strftime.
6576 (Fformat_time_string): Convert format string using
6577 Vlocale_coding_system, and convert result back. Synchronize time
6578 locale before invoking lower level function. Invoke
6579 emacs_memftimeu, passing ut, instead of emacs_memftime.
427ec082 6580
68c45bf0
PE
6581 * emacs.c: Include <locale.h> if HAVE_SETLOCALE is defined.
6582 (Vmessages_locale, Vprevious_messages_locale, Vtime_locale,
6583 Vprevious_time_locale): New variables.
6584 (main): Invoke setlocale early, so that initial error messages are
6585 localized properly. But skip locale-setting if LC_ALL is "C".
6586 Fix up locale when it's safe to do so.
6587 (fixup_locale): Moved here from xterm.c.
6588 (synchronize_locale, synchronize_time_locale,
6589 synchronize_messages_locale): New functions.
6590 (syms_of_emacs): Accommodate above changes.
6591
6592 * fileio.c (report_file_error): Convert strerror output according
6593 to Vlocale_coding_system.
6594 (Finsert_file_contents): Check for arithmetic overflow in
6595 computations that depend on file size. Report IO errors
6596 with emacs_strerror, not strerror.
6597
6598 * fns.c (Fgethash): Declare dflt parameter.
6599
6600 * gmalloc.c: Do not define const to nothing if HAVE_CONFIG_H
6601 is defined; that's config.h's job.
6602
6603 * lisp.h (EMACS_INT, BITS_PER_EMACS_INT, EMACS_UINT): If _LP64,
6604 default these values to long, BITS_PER_LONG, and unsigned long.
6605 (VALBITS, MARKBIT, XINT): Do not assume 32-bit EMACS_INT.
6606 (PNTR_COMPARISON_TYPE): Default to EMACS_UINT, not to unsigned int.
6607 (code_convert_string_norecord, fixup_locale,
6608 synchronize_messages_locale, synchronize_time_locale,
6609 emacs_open, emacs_close, emacs_read, emacs_write): New decls.
6610 All Emacs callers of open, close, read, write changed to use
6611 emacs_open, emacs_close, emacs_read, emacs_write.
6612
6613 * lread.c (file_offset, file_tell): New macros. All uses of ftell
6614 changed to file_tell.
6615 (saved_doc_string_position, prev_saved_doc_string_position): Now
6616 of type file_offset.
6617 (init_lread): Do not fix locale here; fixup_locale now does this.
6618
6619 * m/amdahl.h, s/usg5-4.h:
6620 (NSIG): Remove.
6621 (NSIG_MINIMUM): New macro.
6622
6623 * m/cydra5.h, m/dpx2.h, m/mips.h, m/pfa50.h, m/sps7.h, m/stride.h,
6624 m/ustation.h, s/gnu-linux.h, s/hpux.h, s/iris3-5.h, s/iris3-6.h,
6625 s/umips.h, s/usg5-4.h:
6626 (SIGIO): Do not undef.
6627 (BROKEN_SIGIO): New macro.
6628
6629 * m/ustation.h:
6630 (SIGTSTP): Do not undef.
6631 (BROKEN_SIGTSTP): New macro.
6632
6633 * s/gnu-linux.h:
6634 (SIGPOLL, SIGURG): Do not undef.
6635 (BROKEN_SIGPOLL, BROKEN_SIGURG): New macros.
6636
6637 * s/ptx4.h:
6638 (SIGINFO): Do not undef.
6639 (BROKEN_SIGINFO): New macros.
427ec082 6640
68c45bf0
PE
6641 * m/delta.h, s/ptx.h, s/template.h: Doc fix.
6642
6643 * mktime.c, strftime.c: Update to glibc 2.1.2 version, with
6644 some Emacs-related changes merged.
6645
6646 * print.c (float_to_string): Prepend "-" to representation of a
6647 NaN if the NaN is negative.
6648
6649 * process.c (sys_siglist): Omit if HAVE_STRSIGNAL.
6650 (wait_reading_process_input): Use emacs_strerror, not strerror.
427ec082 6651
68c45bf0
PE
6652 * process.c (status_message, sigchld_handler): Synchronize locale,
6653 then use strsignal istead of sys_siglist.
6654 * w32proc.c (sys_wait): Likewise.
427ec082 6655
68c45bf0
PE
6656 * s/aix3-1.h, s/bsd4-1.h, s/dgux.h, s/gnu-linux.h, s/hiuxmpp.h,
6657 s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/osf1.h, s/rtu.h,
6658 s/sunos4-1.h, s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h,
6659 s/usg5-2.h, s/usg5-3.h, s/xenix.h:
6660 (open, close, read, write, INTERRUPTIBLE_OPEN,
6661 INTERRUPTIBLE_CLOSE, INTERRUPTIBLE_IO): Remove.
6662
6663 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): New macros.
6664
6665 * sysdep.c (sys_read, sys_write, read, write, sys_close, close,
6666 sys_open, open): Remove.
6667 (emacs_open, emacs_close, emacs_read, emacs_write): Always define;
6668 the old INTERRUPTIBLE_OPEN, INTERRUPTIBLE_CLOSE, and INTERRUPTIBLE_IO
6669 macros are no longer used.
6670 (emacs_open): Renamed from sys_open. Merge BSD4_1 version.
6671 (emacs_close): Renamed from sys_close.
6672 (emacs_read): Renamed from sys_read.
6673 (emacs_write): Renamed from sys_write.
6674 (sys_siglist): Do not declare if HAVE_STRSIGNAL.
6675 (dup2): Do not print error on failure; the real dup2 doesn't.
6676 (strsignal): New function, defined if !HAVE_STRSIGNAL.
6677
6678 * syssignal.h (SIGINFO): Undef if defined and if BROKEN_SIGINFO
6679 is defined.
6680 (SIGIO, SIGPOLL, SIGTSTP, SIGURG): Likewise.
6681 (NSIG): If less than NSIG_MINIMUM, define to NSIG_MINIMUM.
6682 (strsignal): Declare if !HAVE_STRSIGNAL.
6683
6684 * unexelf.c (ElfBitsW, ELFSIZE, ElfExpandBitsW): New macros.
6685 (ElfW): Define in terms of ElfExpandBitsW.
6686
6687 * w32proc.c (sys_siglist): Remove decl.
6688
6689 * xdisp.c (decode_mode_spec): 3rd arg is int, not char, to comply
6690 with ANSI C.
6691 (display_string): Declare face_string_pos arg.
6692
6693 * xfns.c (Fx_show_tip): Declare timeout param.
6694
6695 * xterm.c: No need to include locale.h.
6696 (x_alloc_lighter_color, x_setup_relief_color):
6697 Pass arg as double, not float, for compatibility with ANSI C.
6698 (fixup_locale): Move to emacs.c.
6699 (x_term_init): Do not setlocale or fixup locale; the main program
6700 does this now.
6701
2f0b74ea
DL
67021999-10-18 Dave Love <fx@gnu.org>
6703
6704 * doc.c (Fdocumentation_property): Gcpro `tem'.
6705
471aa4a0
KH
67061999-10-18 Kenichi Handa <handa@etl.go.jp>
6707
6708 * lread.c (Fload): Calculate bytes of filename correctly.
6709 (openp): Likewise.
6710
aca2020b
KH
67111999-10-18 Keisuke Nishida <kxn30@po.cwru.edu>
6712
6713 * print.c (print_preprocess): In case print-circle is nil,
6714 add OBJ to Vprint_number_table only when OBJ is a symbol.
6715
1f5fe392 67161999-10-18 Kenichi Handa <handa@etl.go.jp>
b843d1ae
KH
6717
6718 * coding.c (code_convert_string): Add record_unwind_protect to
6719 assure setting inhibit_pre_post_conversion back to zero. Take
6720 care of the multibyteness of the working buffer.
6721
6722 * coding.c (inhibit_pre_post_conversion): New variable.
6723 (setup_coding_system): If inhibit_pre_post_conversion is nonzero,
6724 ignore post-read-conversion and pre-write-conversion property of
6725 the coding system.
6726 (code_convert_region_unwind): New function.
6727 (code_convert_region): Set inhibit_pre_post_conversion to 1 while
6728 running pre-write-conversion and post-read-conversion.
6729 (code_convert_string): Likewise.
6730
cd876a91
GM
67311999-10-17 Miles Bader <miles@gnu.org>
6732
6733 * editfns.c: Doc fix.
6734
67351999-10-17 Miles Bader <miles@gnu.org>
6736
6737 * editfns.c (Fconstrain_to_field): Make sure we don't violate the
6738 argument preconditions of find_before_next_newline in the case
6739 where both ONLY_IN_LINE and ESCAPE_FROM_EDGE are set and OLD_POS
6740 was indeed at the edge.
6741
67421999-10-17 Miles Bader <miles@gnu.org>
6743
6744 * minibuf.c (Fminibuffer_complete_and_exit): Supply value for new
6745 ESCAPE_FROM_EDGE parameter to Ffield_beginning.
6746
6747 * editfns.c (text_property_eq, text_property_stickiness): Don't
6748 use initializers for auto variables of type Lisp_Object.
6749 (find_field): Likewise. Use braces around nested ifs.
6750 (Fline_end_position): Store the raw eol in a variable, so that the
6751 final expression doesn't look so ugly.
6752 (Fconstrain_to_field): Doc fix.
6753 (preceding_pos): Renamed from `preceeding_pos'.
6754 (text_property_stickiness, find_field): Call preceding_pos,
6755 not preceeding_pos.
6756
67571999-10-17 Miles Bader <miles@gnu.org>
6758
6759 * editfns.c (Ffield_string_no_properties): New function.
6760 (text_property_stickiness, preceeding_pos): New functions.
6761 (Ffield_string): Remove PROPS parameter.
6762 (find_field): Add MERGE_AT_BOUNDARY parameter.
6763 Rewrite to use stickiness of `field' property to resolve
6764 ambiguous cases.
6765 (Ffield_beginning, Ffield_end): Add ESCAPE_FROM_EDGE parameter.
6766 (Fconstrain_to_field): Likewise.
6767 (syms_of_editfns): Init Sfield_string_no_properties.
427ec082 6768 (Ffield_string, Ferase_field, Ffield_end):
cd876a91
GM
6769 Supply new MERGE_AT_BOUNDARY argument to find_field.
6770 (Fline_beginning_position, Fline_end_position): Supply new
6771 ESCAPE_FROM_EDGE parameter to Fconstrain_to_field.
6772 Pass a value of Qt for the ONLY_IN_LINE argument to
6773 Fconstrain_to_field (only matters if N != 1).
6774 * syntax.c (Fforward_word): Supply new ESCAPE_FROM_EDGE parameter
6775 to Fconstrain_to_field.
6776
6777 * minibuf.c (Fminibuffer_complete_word): Use
6778 Ffield_beginning to find the prompt end.
6779
67801999-10-17 Miles Bader <miles@gnu.org>
6781
6782 * editfns.c (Fconstrain_to_field): Add get/set-current-point
6783 behavior when NEW_POS is nil.
6784 (find_field): Use XSETFASTINT instead of make_number.
6785 * minibuf.c (Fminibuffer_complete_and_exit): Test for an empty
6786 input string by seeing where the field begins, instead of
6787 looking at text-properties.
6788
67891999-10-17 Miles Bader <miles@gnu.org>
6790
6791 * editfns.c (Qfield): New variable.
6792 (find_field, Ferase_field, Ffield_string,
6793 Ffield_beginning, Ffield_end, Fconstrain_to_field): New functions.
6794 (Fline_beginning_position, Fline_end_position): Constrain to any field.
6795 (make_buffer_string_both): Remove minibuffer-prompt hack.
6796 (syms_of_editfns): Initialize Qfield, and subr entries for
6797 field functions above.
6798 * minibuf.c (read_minibuf): Don't save minibuffer prompt length on
6799 minibuf_save_list.
6800 Don't initialize minibuffer prompt length.
6801 Wrap prompt text-properties around the entire prompt.
6802 Add 'prompt text-property to prompt.
6803 Get final value with Ffield_string instead of make_buffer_string.
6804 (read_minibuf_unwind): Don't restore minibuffer prompt length from
6805 minibuf_save_list.
6806 (do_completion): Get minibuffer input with Ffield_string
6807 instead of Fbuffer_string.
6808 Erase minibuffer input with Ferase_field instead of erase_buffer.
6809 (Fminibuffer_complete_and_exit): Likewise.
6810 Test whether buffer is empty by looking for the 'prompt text
6811 property at the end.
6812 Set prompt length by looking for the end of the prompt text property,
6813 and save prompt length for later use (since there is no longer a
6814 buffer variable to get it from).
6815 (Fminibuffer_prompt_width, Fminibuffer_prompt_end): Functions removed.
6816 (syms_of_minibuf): Remove initializations of
6817 Sminibuffer_prompt_width and Sminibuffer_prompt_end.
6818 * buffer.h (struct buffer): Remove prompt_end_charpos field.
427ec082 6819 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer, Fkill_buffer):
cd876a91
GM
6820 Don't initialize prompt_end_charpos field.
6821 * syntax.c (Fforward_word): Likewise.
6822 Constrain to any field.
6823
3f6f7508
GM
68241999-10-16 Gerd Moellmann <gerd@gnu.org>
6825
6826 * window.c (enum save_restore_action): New.
6827 (save_restore_orig_size): Change parameter list. Add
6828 functionality to check for valid orig_top and orig_height members
6829 in a window tree.
6830 (grow_mini_window): Call save_restore_orig_size with new parameter
6831 list.
6832 (shrink_mini_window): Restore old window sizes only if old
6833 size information is valid in all windows in a window tree.
427ec082 6834
06482119
GM
68351999-10-15 Gerd Moellmann <gerd@gnu.org>
6836
2710454d
GM
6837 * xmenu.c (set_frame_menubar): Don't call
6838 x_set_menu_resources_from_menu_face here.
6839 (update_frame_menubar): Call x_set_menu_resources_from_menu_face.
6840
06482119
GM
6841 * xfns.c (gif_load): Fix handling of interlaced GIFs.
6842
17fa2837
DL
68431999-10-14 Dave Love <fx@gnu.org>
6844
6845 * xdisp.c (handle_fontified_prop): GCPRO `pos'.
6846
45f93416
GM
68471999-10-14 Gerd Moellmann <gerd@gnu.org>
6848
6849 * process.c (Fopen_network_stream): Don't loop if gethostbyname
6850 fails and h_errno is TRY_AGAIN.
6851
c765b723
DL
68521999-10-13 Dave Love <fx@gnu.org>
6853
6854 * filelock.c (lock_file): Move gcpro of `fn'.
6855
dace7f4e
GM
68561999-10-10 Gerd Moellmann <gerd@gnu.org>
6857
6858 * keyboard.c (auto-save-interval): Fix documentation.
427ec082 6859
83c8f461 68601999-10-09 Richard M. Stallman <rms@gnu.org>
73fb36f1
RS
6861
6862 * print.c (print): When removing objects from Vprint_number_table,
6863 only scan the newly added objects.
6864 (print_preprocess): If OBJ is a gensym, and print-continuous-numbering,
6865 unconditionally force it to stay in the table.
6866
85177c86
GM
68671999-10-09 Gerd Moellmann <gerd@gnu.org>
6868
6869 * xfns.c (prepare_image_for_display): Don't try to load image if
6870 loading it failed before.
6871 (lookup_image, prepare_image_for_display): Remember if loading the
6872 image failed.
6873 (xpm_load): Add missing UNBLOCK_INPUT.
6874
6875 * dispextern.h (struct image): New member load_failed_p.
6876
11e4de5d
SM
68771999-10-08 Stefan Monnier <monnier@cs.yale.edu>
6878
f28eba7b 6879 * fileio.c (Fmake_temp_name): Add a reference to `make-temp-file'
11e4de5d
SM
6880 in the docstring.
6881
f1da8f06
GM
68821999-10-08 Gerd Moellmann <gerd@gnu.org>
6883
6884 * xterm.c (XTread_socket) <ClientMessage, WM_TAKE_FOCUS>:
6885 Don't call XSetInputFocus because that can generate additional
6886 FocusIn events.
427ec082 6887
c37bbd4f
GM
68881999-10-07 Jeffrey C Honig <jch@bsdi.com>
6889
6890 * bsdos4.h [HAVE_LIBNCURSES]: Define TERMINFO and LIBS_TERMCAP.
6891
83c8f461 68921999-10-07 Richard M. Stallman <rms@gnu.org>
78cc5c64
GM
6893
6894 * process.c (wait_reading_process_input): When trying to suck
6895 input from one process, for accept-process-output,
6896 exit that loop if we get EAGAIN or EWOULDBLOCK.
6897
577d9e2f
GM
68981999-10-07 Gerd Moellmann <gerd@gnu.org>
6899
6900 * xfaces.c (Qbitmap_spec_p): Replaces Qpixmap_spec_p.
6901 (Fbitmap_spec_p): Replaces Fpixmap_spec_p.
6902 (load_pixmap): Use Fbitmap_spec_p and Qbitmap_spec_p instead of
6903 Fpixmap_spec_p and Qpixmap_spec_p.
6904 (load_face_colors, check_lface_attrs,
6905 merge_face_vector_with_property,
6906 Finternal_set_lisp_face_attribute): Use Fbitmap_spec_p.
6907 (syms_of_xfaces): Initialize Qbitmap_spec_p, defsubr
6908 Fbitmap_spec_p.
6909
f5737ad2
GM
69101999-10-07 Gerd Moellmann <gerd@gnu.org>
6911
6912 * xdisp.c (display_menu_bar): Use MENU_FACE_ID instead of
6913 MODE_LINE_FACE_ID.
6914
6915 * xfaces.c (toplevel) [USE_MOTIF]: Include some Motif headers.
6916 (struct x_resources) [USE_X_TOOLKIT]: New.
6917 (xm_apply_resources, xm_set_menu_resources_from_menu_face)
6918 [USE_MOTIF]: New.
6919 (xl_apply_resources, xl_set_menu_resources_from_menu_face)
6920 [USE_LUCID]: New.
6921 (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]: New.
6922 (Qmenu): New.
6923 (syms_of_xfaces): Initialize Qmenu.
6924 (realize_basic_faces): Realize face `menu'.
6925 (resolve_face_name): New.
6926 (lface_from_face_name): Use it.
6927 (Finternal_set_lisp_face_attribute): Ditto.
6928 (Fpixmap_spec_p): Rewritten. Extend doc string.
6929
6930 * xmenu.c (set_frame_menubar, xmenu_show): Call
6931 x_set_menu_resources_from_menu_face.
6932
6933 * dispextern.h (enum face_id): Add MENU_FACE_ID.
6934 (toplevel): Include X11/Intrinsic.h.
6935
6a1aa823
DL
69361999-10-03 Ken'ichi Handa <handa@gnu.org>
6937
6938 * coding.c (DECODE_CHARACTER_ASCII): Decode ASCII invocated to GR
6939 correctly.
6940
26901792
DL
69411999-09-30 Kenichi Handa <handa@etl.go.jp>
6942
6943 * category.c (modify_lower_category_set): Set default value of
6944 TABLE correctly.
6945
6946 * minibuf.c (Fminibuffer_complete_word): Calculate string byte
6947 size correctly.
6948
69491999-09-29 Gerd Moellmann <gerd@gnu.org>
6950
6951 * editfns.c (Fpropertize): Renamed from Fproperties.
6952
69531999-09-29 Gerd Moellmann <gerd@gnu.org>
6954
6955 * xdisp.c (resize_mini_window): Do nothing if frame is an X
6956 frame that hasn't been initialized yet.
6957
83c8f461 69581999-09-28 Richard M. Stallman <rms@gnu.org>
a04f1a93
PR
6959
6960 * keymap.c (Fsingle_key_description): Make tem big enough.
6961 (describe_buffer_bindings): Make buf big enough.
6962
83c8f461 69631999-09-27 Richard M. Stallman <rms@gnu.org>
d177c583
PR
6964
6965 * intervals.c (get_local_map): Use indirect_function,
6966 not Findirect_function.
6967
26901792
DL
69681999-09-27 Dave Love <fx@gnu.org>
6969
6970 * cm.h: Remove unneeded declaration of ospeed.
6971
69721999-09-26 Gerd Moellmann <gerd@gnu.org>
6973
6974 * lisp.h (toplevel): Add prototype for
6975 next_single_char_property_change.
6976
6977 * textprop.c (next_single_char_property_change): New.
6978
6979 * xdisp.c (display_prop_end, invisible_text_between_p): Use
6980 next_single_char_property_change.
6981
69821999-09-25 Gerd Moellmann <gerd@gnu.org>
6983
6984 * editfns.c (Fproperties): New.
6985 (syms_of_editfns): Defsubr it.
6986
6987 * xfns.c (lookup_image): Set image's timestamp because it's
6988 used when we look it up.
6989
69901999-09-23 Gerd Moellmann <gerd@gnu.org>
6991
6992 * window.c (enlarge_window): Add window parameter instead of using
6993 selected_window.
6994 (Fdisplay_buffer): Call it with window parameter instead of
6995 setting selected_window.
6996 (Fenlarge_window, Fshrink_window): Ditto.
6997 (shrink_mini_window): If there is no recorded height and position
6998 info, resize mini-window to height 1.
6999
7000 * xfns.c (image_error): Use add_to_log.
7001
7002 * xfaces.c (load_pixmap): Call add_to_log without frame parameter.
7003 (load_face_font_or_fontset, load_color,
7004 merge_face_vector_with_property): Ditto.
7005
7006 * dispextern.h: Add prototype for add_to_log.
7007
7008 * xfaces.c (add_to_log): Move to xdisp.c.
7009
7010 * xdisp.c (add_to_log): Moved from xfaces.c. Remove frame
7011 parameter.
7012
70131999-09-23 Gerd Moellmann <gerd@gnu.org>
7014
7015 * xterm.c (XTread_socket) <MotionNotify>: Change #ifdef
7016 USE_X_TOOLKIT to #ifdef USE_TOOLKIT_SCROLL_BARS.
7017
7018 * xdisp.c (resize_mini_window): Use grow_mini_window and
7019 shrink_mini_window.
7020
7021 * window.c (window_min_size): Add parameter ignore_fixed_p.
7022 (change_window_height): Call window_min_size with new parameter.
7023 (shrink_window_lowest_first, save_restore_orig_size,
7024 grow_mini_window, shrink_mini_window): New.
7025 (make_window, replace_window): Initialize orig_top and
7026 orig_height.
7027 (enlarge_window): Renamed from change_window_height. Make it
7028 static.
7029 (Fdisplay_buffer, Fenlage_window, Fshrink_window): Call
7030 enlarge_window instead of change_window_height.
7031
7032 * window.h (struct window): New members orig_top, orig_height.
7033 (toplevel): Add prototypes for grow_mini_window and
7034 shrink_mini_window. Remove prototype for change_window_height.
7035
70361999-09-21 Eli Zaretskii <eliz@gnu.org>
7037
7038 * frame.c (frame_name_fnn_p): Fix previous change.
7039
70401999-09-20 Gerd Moellmann <gerd@gnu.org>
7041
7042 * minibuf.c (toplevel): Move include of stdio.h to other includes.
7043
7044 * dispnew.c (direct_output_for_insert): Cast arguments to
7045 safe_bcopy to char *.
7046
7047 * lread.c (readchar): Remove unused variables.
7048 (read_filtered_event, read1, Fmapatoms): Ditto.
7049 (toplevel): Include intervals.h.
7050
7051 * eval.c (Fsignal): Remove unused variables.
7052 (Fcommandp, do_autoload): Ditto.
7053
7054 * lisp.h: Add prototype for safe_bcopy, fatal.
7055
7056 * editfns.c (init_editfns): Remove unused variables.
7057 (Fgoto_char, Fchar_after, Fformat): Ditto.
7058 (message_text, message_length): Put in #ifndef HAVE_MENUS.
7059
7060 * data.c (find_symbol_value): Remove unused variables.
7061 (Faref, Fstring_to_number): Ditto.
7062 (toplevel): Include stdio.h.
7063 (Fnumber_to_string): Cast XINT to long for %ld.
7064
7065 * casefiddle.c (casify_object): Remove unused variables.
7066 (casify_region): Ditto.
7067
427ec082 7068 * filelock.c (get_boot_time): Put local variable used in
26901792
DL
7069 conditinally compiled section in #ifdef.
7070 (toplevel): Include stdio.h.
7071
7072 * keymap.c (Flookup_key, Faccessible_keymaps, describe_vector,
7073 keys_of_keymap, syms_of_keymap): Remove unused variables.
7074
70751999-09-20 Gerd Moellmann <gerd@gnu.org>
7076
7077 * xdisp.c (sync_frame_with_window_matrix_rows): Disable frame rows
7078 whose corresponding window rows have been disabled in
7079 try_window_id.
7080
70811999-09-20 Gerd Moellmann <gerd@gnu.org>
7082
7083 * xdisp.c (compute_window_start_on_continuation_line): Handle case
7084 that window start is out of range.
7085 (handle_display_prop, handle_single_display_prop): Replace
7086 marginal area specifications like `left-margin' with `(margin
7087 left-margin)'.
7088 (Qmargin): New.
7089 (syms_of_xdisp): Initialize Qmargin.
7090
70911999-09-19 Gerd Moellmann <gerd@gnu.org>
7092
7093 * syntax.c (update_syntax_table, find_defun_start, back_comment,
7094 describe_syntax, skip_chars): Remove unused variables.
7095 (back_comment, forw_comment): Add braces to if-statement with
7096 if-else as dependent statement.
7097
7098 * process.c (list_processes_1): Remove unused variables.
7099 (Fopen_network_stream, create_process): Add parentheses to
7100 conditional expressions.
7101 (create_process): Put declaration of sigchld in #if 0.
7102 (Fopen_network_stream): Removed unused variables.
7103 (Fopen_network_stream, wait_reading_process_input,
7104 wait_reading_process_input, send_process, send_process): Ditto.
7105 (toplevel): Add prototypes for set_waiting_for_input and
7106 keyboard_bit_set.
7107
7108 * abbrev.c (Fexpand_abbrev): Remove unused variables.
7109
7110 * textprop.c (Fset_text_properties): Remove unused variables.
7111 (text_property_list, verify_interval_modification,
7112 interval_has_all_properties): Ditto.
7113
7114 * callproc.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
7115 (Fcall_process): Remove unused variable.
7116
7117 * keyboard.c (Frecursive_edit): Remove unused variable.
7118 (command_loop_1, safe_run_hooks, kbd_buffer_get_event,
7119 timer_check, make_lispy_event, menu_bar_items,
7120 menu_bar_one_keymap, menu_bar_item, parse_menu_item,
7121 parse_tool_bar_item, read_char_x_menu_prompt, read_key_sequence,
7122 kbd_buffer_get_event, make_lispy_event, read_char_x_menu_prompt,
7123 read_key_sequence): Ditto. Fread_key_sequence,
7124 Fread_key_sequence_vector, Fsuspend_emacs): Ditto.
7125 (read_key_sequence) [GOBBLE_FIRST_EVENT]: Put local variables only
7126 used when GOBBLE_FIRST_EVENT is defined in #ifdef
7127 (Fexecute_extended_command): Cast XINT to long for %ld.
7128 (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
7129 (toplevel): Include sys/types.h.
7130
7131 * lisp.h (RETURN_UNGCPRO): Use do-while (0) idiom.
7132 (toplevel): Add prototypes for stuff_char, and
7133 code_convert_string_norecord.
7134
71351999-09-19 Gerd Moellmann <gerd@gnu.org>
7136
7137 * buffer.h: Add prototype for r_re_alloc.
7138
7139 * insdel.c (copy_text): Removed unused variables.
7140 (count_combining_after, count_combining_after, insert_1_both,
7141 insert_from_string_1, insert_from_buffer_1, check_markers): Ditto.
7142 (adjust_after_replace, replace_range): Add parentheses to logical
7143 expressions. Remove unused variables.
7144 (CHECK_BYTE_COMBINING_FOR_INSERT): Add parentheses to logical
7145 expression.
7146
7147 * alloc.c (Fgarbage_collect): Remove unused variable.
7148 (compact_strings): Add parentheses around assignments in
7149 conditional context.
7150 (toplevel): Put declaration of unused function clear_marks
7151 in #if 0 like its definition.
7152
7153 * lisp.h: Add prototype for shrink_regexp_cache,
7154 sweep_weak_hash_tables.
7155
71561999-09-19 Dave Love <fx@gnu.org>
7157
7158 * process.c (Fopen_network_stream): Use strerror, not gai_strerror.
7159
7160 * doc.c (read_bytecode_char): Declare arg.
7161
7162 * lisp.h: Declare Fcurrent_message, Fmake_temp_name,
7163 read_bytecode_char, Fx_hide_busy_cursor, getloadavg.
7164
71651999-09-18 Richard Stallman <rms@gnu.org>
7166
7167 * xdisp.c (echo_area_display): Turn off code that returned
7168 without doing anything when using a terminal frame.
7169
83c8f461 71701999-09-17 Richard M. Stallman <rms@gnu.org>
27271329
PR
7171
7172 * unexelf.c (unexec): Don't get confused by a short section
7173 just before the bss section.
7174
26901792
DL
71751999-09-16 Gerd Moellmann <gerd@gnu.org>
7176
7177 * emacs.c (main): Remove unused variables.
7178 (sort_args, Fkill_emacs, Fkill_emacs): Ditto.
7179
7180 * lisp.h: Add prototype for uninterrupt_malloc, memory_warnings,
7181 init_fileio_once, syms_of_sound, init_xfns, init_fns
7182 init_sound, check_message_stack.
7183
7184 * emacs.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
7185
7186 * intervals.c (rotate_right, rotate_left): Add braces to avoid
7187 ambiguous else warning.
7188 (split_interval_left): Remove unused variables.
7189 (previous_interval, adjust_intervals_for_deletion,
7190 set_point_both, set_point_both, set_intervals_multibyte_1): Ditto.
7191 (icount, idepth, zero_length): Move into #if 0 section below
7192 original position where these are used.
7193
7194 * buffer.h [REL_ALLOC]: Add prototypes for r_alloc and r_alloc_free.
7195
7196 * buffer.c (Fkill_buffer): Remove unused variables.
7197 (Fkill_buffer, overlays_at, overlays_in, recenter_overlay_lists,
7198 fix_overlays_in_range, Fmove_overlay, Fprevious_overlay_change,
7199 init_buffer_once, (syms_of_buffer): Ditto.
7200
7201 * xrdb.c (get_fallback): Remove unused variable.
7202 (x_load_resources): Ditto. Put local variable used for Motif only
7203 in #ifdef USE_MOTIF.
7204
72051999-09-16 Gerd Moellmann <gerd@gnu.org>
7206
7207 * minibuf.c (read_minibuf): Remove unused variables.
7208 (read_minibuf, Fread_buffer, scmp, Fcompleting_read): Ditto.
7209 (do_completion): Move assignment out of conditional context.
7210 (Fdisplay_completion_list): Add parentheses to conditional expression.
7211
7212 * cm.c (toplevel) [HAVE_TERMCAP_H]: Include termcap.h.
7213
7214 * lisp.h: Add prototype for no_switch_window.
7215
7216 * window.c (Fset_window_buffer): Remove unused variables.
7217 (Fset_window_margins): Ditto.
7218
7219 * xdisp.c (resize_mini_window): Temporarily set the selected
7220 window's or Vminibuf_scroll_window's height to "fixed" around
7221 the call the change_window_height.
7222
7223 * window.c (window_fixed_size_p): Check window's height_fixed_p
7224 flag.
7225
7226 * window.h (struct window): New member height_fixed_p.
7227
7228 * dispnew.c (direct_output_forward_char): Don't use this method
7229 if showing a message or a message was just cleared because we
7230 might need to resize the mini-window.
7231
72321999-09-16 Gerd Moellmann <gerd@gnu.org>
7233
7234 * frame.c (Fdelete_frame): Correct local variable pointing to
7235 selected frame after selecting new frame.
7236
72371999-09-15 Richard Stallman <rms@gnu.org>
7238
7239 * puresize.h (BASE_PURESIZE): Increase to 525000.
7240
7241 * filelock.c (Vtemporary_file_directory): New variable.
7242 (syms_of_filelock): Set up Lisp variable.
7243
72441999-09-15 Gerd Moellmann <gerd@gnu.org>
7245
7246 * term.c (OUTPUT_IF, OUTPUT1_IF): Use do-while.
7247 (encode_terminal_code): Remove unused variables.
7248 (turn_off_face): Ditto.
7249 (toplevel): Include termcap.h if HAVE_TERMCAP_H.
7250
7251 * dispnew.c (update_frame_line): If writing whole desired line,
7252 don't clear to end of line if already at the end.
7253
72541999-09-15 Gerd Moellmann <gerd@gnu.org>
7255
7256 * xdisp.c (resize_mini_window): Don't report changed window
7257 height if it actually hasn't changed.
7258
427ec082 7259 * widget.c (set_frame_size, EmacsFrameSetCharSize): Remove
26901792
DL
7260 unused variables.
7261 (mark_shell_size_user_specified): Put in #if 0 because not used.
7262 (create_frame_gcs): Put in #if 0 because currently unused.
7263 (first_frame_p): Ditto.
7264
7265 * xmenu.c (single_menu_item, Fx_popup_menu, Fx_popup_menu,
7266 single_submenu, update_frame_menubar, set_frame_menubar,
7267 free_frame_menubar, xmenu_show, xdialog_show): Remove unused
7268 variables.
7269
7270 * print.c (PRINTFULLP): Removed because it is no longer used and
7271 is misleading.
7272 (Ferror_message_string): Remove unused variables.
7273 (print_object): Cast argument of sprintf to long for `%ld'
7274 specifier. Remove unused variable.
7275
72761999-09-14 Gerd Moellmann <gerd@gnu.org>
7277
7278 * sound.c (Fplay_sound): Remove usused variables.
7279 (be2hs): Put in #if 0 because it's currently not used.
7280
72811999-09-14 Ken Raeburn <raeburn@gnu.org>
7282
7283 * print.c (Ferror_message_string, print_error_message,
7284 print_object): Use XCAR, XCDR and XFLOAT_DATA instead of explicit
7285 member access.
7286
72871999-09-14 Gerd Moellmann <gerd@gnu.org>
7288
7289 * frame.h (CHECK_FRAME, CHECK_LIVE_FRAME): Put code in do-while.
7290
7291 * frame.c (Fnext_frame): Remove unused variable(s).
7292 (Fprevious_frame, Fmouse_pixel_position, frame_name_fnn_p): Ditto.
7293 (store_frame_param): Add parentheses to conditional expression.
7294 (Fmodify_frame_parameters): Remove unused variables.
7295 (Fmodify_frame_parameters, Fset_frame_size, Fset_frame_position):
7296 Ditto.
7297
7298 * xfns.c (x_set_background_color): Remove unused variable(s).
7299 (x_set_border_pixel): Ditto.
7300 (x_set_menu_bar_lines): Put local variable used only for
7301 non-toolkit case in #ifdef/#endif.
7302 (x_figure_window_size): Remove unused variable(s).
427ec082 7303 (x_figure_window_size, x_window, lookup_image,
26901792
DL
7304 xbm_read_bitmap_file_data, x_build_heuristic_mask, pbm_load,
7305 png_load, jpeg_load, gif_load, x_create_tip_frame,
7306 x_create_tip_frame, Fx_show_tip, x_set_border_pixel): Ditto.
7307
7308 * xterm.c (x_scroll_bar_handle_click): Compile only if
7309 not USE_TOOLKIT_SCROLL_BARS.
7310 (x_scroll_bar_set_handle, x_scroll_bar_note_movement): Ditto.
7311
7312 * dispextern.h: Add prototypes for gamma_correct and
7313 x_kill_gs_process.
7314
7315 * xterm.c (x_produce_glyphs): Remove unused variable(s).
7316 (x_alloc_nearest_color_for_widget, note_tool_bar_highlight,
7317 x_set_toolkit_scroll_bar_thumb): Ditto.
7318 (x_scroll_bar_create): Move local variable to the
7319 conditionally compiled section of code where it is used.
7320 (x_scroll_bar_create): Remove unused variable(s).
7321 (x_scroll_bar_remove, XTread_socket): Ditto.
7322 (XTread_socket) <ConfigureNotify>: Move variables used for
7323 non-toolkit case into conditionally compiled section of code.
7324
7325 * window.h (freeze_window_starts): Fix typo in prototype.
7326
7327 * xdisp.c (display_echo_area_1, try_window_id): Remove unused
7328 variable(s).
7329
7330 * lisp.h: Add prototype for debug_print.
7331
7332 * dispextern.h (xassert) [GLYPH_DEBUG]: Change definition
7333 to use do-while.
7334
7335 * fns.c (SXHASH_COMBINE): Add missing parentheses.
7336 (Fchar_table_range, Fset_char_table_default, mapcar1,
7337 Fyes_or_no_p, sweep_weak_hash_tables): Remove unused variable(s).
7338
7339 * lisp.h: Add prototype for getloadavg.
7340
73411999-09-14 Andreas Schwab <schwab@gnu.org>
7342
7343 * process.c (Fopen_network_stream): Avoid socket decriptor leak.
7344
7345 * lisp.h: Declare close_file_unwind.
7346
73471999-09-14 Richard Stallman <rms@gnu.org>
7348
7349 * filelock.c (get_boot_time): Make the temp name in the proper dir.
7350
73511999-09-13 Gerd Moellmann <gerd@gnu.org>
7352
7353 * xdisp.c (redisplay_window): Make sure start_at_line_beg
7354 is always set correctly.
7355
73561999-09-13 Dave Love <fx@gnu.org>
7357
7358 * xdisp.c (move_it_in_display_line_to): Make type consistent with
7359 declaration.
7360
73611999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
7362
7363 * xdisp.c (QCfile): Move here from xfns.c.
7364 (syms_of_xdisp): Initialize it.
7365 (message2_nolog): Change for Lisp_Object selected_frame.
7366 (message3_nolog, message_with_string, message,
7367 setup_echo_area_for_printing, truncate_echo_area,
7368 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
7369
73701999-09-13 Dave Love <fx@gnu.org>
7371
7372 * xterm.c: Don't continue #define args for benefit of old cc.
7373 (xt_action_hook): Indent #error for benefit of K&R cc.
7374
73751999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
7376
7377 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
7378 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
7379 (XRINGBELL): Removed.
7380
73811999-09-13 Dave Love <fx@gnu.org>
7382
7383 * xfns.c (x_put_x_image): Make type consistent with declaration.
7384
7385 * fns.c (Fmake_hash_table): Fix string continuation.
7386
73871999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
7388
7389 * xfns.c (QCfile): Moved to xdisp.c.
7390 (syms_of_xfns): Don't initialize QCfile.
7391 (check_x_frame): Change for Lisp_Object selected_frame.
7392 (check_x_display_info, x_get_resource_string): Ditto.
7393
73941999-09-13 Gerd Moellmann <gerd@gnu.org>
7395
7396 * minibuf.c (choose_minibuf_frame): Don't try to set the
7397 mini-buffer window's buffer, if the buffer is invalid.
7398
7399 * xfns.c (QCfile): Moved to xdisp.c.
7400 (syms_of_xfns): Don't initialize QCfile.
7401
7402 * xdisp.c (QCfile): Move here from xfns.c.
7403 (syms_of_xdisp): Initialize it.
7404
7405 * lisp.h (selected_frame): Add external declaration.
7406
7407 * xselect.c (x_own_selection): Change for Lisp_Object selected_frame.
7408 (Fx_store_cut_buffer_internal): Ditto.
7409 (Fx_rotate_cut_buffers_internal): Ditto.
7410
7411 * xfaces.c (frame_or_selected_frame): Change for Lisp_Object
7412 selected_frame.
7413 (Finternal_set_lisp_face_attribute): Ditto.
7414 (Finternal_get_lisp_face_attribute): Ditto.
7415 (Finternal_lisp_face_empty_p): Ditto.
7416 (Fdump_face): Ditto.
7417
7418 * term.c (OUTPUT): Change for Lisp_Object selected_frame.
7419 (OUTPUT_IF, ring_bell, set_terminal_modes, reset_terminal_modes,
7420 set_terminal_window, set_scroll_region, reassert_line_highlight,
7421 change_line_highlight, cursor_to, raw_cursor_to, clear_to_end,
7422 clear_end_of_line, clear_end_of_line_raw, clear_end_of_line_raw,
7423 encode_terminal_code, write_glyphs, term_init): Ditto.
7424
7425 * sysdep.c (reset_sys_modes): Change for Lisp_Object selected_frame.
7426 (kbd_input_ast, read_input_waiting): Ditto.
7427
7428 * minibuf.c (choose_minibuf_frame): Change for Lisp_Object
7429 selected_frame.
7430 (read_minibuf): Ditto.
7431
7432 * keyboard.c (command_loop_1): Change for Lisp_Object
7433 selected_frame.
7434 (cmd_error_internal, command_loop_1, read_char,
7435 kbd_buffer_get_event, read_avail_input,
7436 read_char_minibuf_menu_prompt, read_key_sequence, Fsuspend_emacs,
7437 interrupt_signal, quit_throw_to_read_char): Ditto.
7438
7439 * fontset.c (Ffont_info): Change for Lisp_Object selected_frame.
7440 (Ffontset_info): DItto.
7441
7442 * emacs.c (handle_USR1_signal): Change for Lisp_Object selected_frame.
7443
7444 * dispnew.c (selected_frame): Make it a Lisp_Object.
7445 (adjust_frame_glyphs_initially): Change for Lisp_Object selected_frame.
7446 (direct_output_for_insert, direct_output_forward_char,
7447 init_display): Ditto.
7448
7449 * data.c (swap_in_symval_forwarding): Change for Lisp_Object
7450 selected_frame.
7451 (set_internal): Ditto.
7452
7453 * buffer.c (Fother_buffer): Change for Lisp_Object selected_frame.
7454 (record_buffer): Ditto.
7455
7456 * frame.c (Fmake_terminal_frame): Use SELECTED_FRAME.
7457 (do_switch_frame): Change for Lisp_Object selected_frame.
7458 (Fselected_frame): Ditto.
7459 (Fframe_first_window): Use SELECTED_FRAME.
7460 (Fframe_root_window): Change for Lisp_Object selected_frame.
7461 (Fframe_selected_window, Fset_frame_selected_window, Fnext_frame,
7462 Fprevious_frame, other_visible_frames, Fdelete_frame,
7463 Fmouse_position, Fmouse_pixel_position, Fmake_frame_visible,
7464 Fmake_frame_invisible, Ficonify_frame, Fraise_frame, Flower_frame,
7465 Fframe_parameters, Fmodify_frame_parameters, Fframe_char_height,
7466 Fframe_char_width, Fframe_pixel_height, Fframe_pixel_width,
7467 Fset_frame_height, Fset_frame_width): Ditto.
7468
74691999-09-13 Gerd Moellmann <gerd@gnu.org>
7470
7471 * xdisp.c (message2_nolog): Change for Lisp_Object selected_frame.
7472 (message3_nolog, message_with_string, message,
7473 setup_echo_area_for_printing, truncate_echo_area,
7474 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
7475
7476 * xmenu.c (Fx_popup_menu): Change for Lisp_Object selected_frame.
7477 (Fx_popup_dialog): Ditto.
7478
7479 * xfns.c (check_x_frame): Change for Lisp_Object selected_frame.
7480 (check_x_display_info, x_get_resource_string): Ditto.
7481
7482 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
7483 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
7484 (XRINGBELL): Removed.
7485
7486 * window.c (Fminibuffer_window): Change for Lisp_Object
7487 selected_frame.
7488 (Fwindow_at, Fprevious_window, window_loop, select_window_1,
7489 display_buffer_1, Fdisplay_buffer, temp_output_buffer_show,
7490 Fcurrent_window_configuration, init_window_once): Ditto.
7491
7492 * frame.h (SELECTED_FRAME): New.
7493
74941999-09-12 Ken Raeburn <raeburn@gnu.org>
7495
7496 * category.c (word_boundary_p): Use XCAR and XCDR.
7497 * ccl.c (ccl_driver, resolve_symbol_ccl_program,
7498 Fregister_code_conversion_map): Likewise.
7499 * coding.c (setup_coding_system, detect_coding_system,
7500 Ffind_operation_coding_system, Fset_coding_priority_internal):
7501 Likewise.
7502 * doc.c (get_doc_string, Fdocumentation,
7503 store_function_docstring): Likewise.
7504 * editfns.c (save_restriction_restore): Likewise.
7505 * eval.c (Fcond, Fmacroexpand, Fcondition_case, wants_debugger,
7506 skip_debugger, find_handler_clause, Fautoload, Fapply,
7507 run_hook_with_args, run_hook_list_with_args, Ffetch_bytecode):
7508 Likewise.
7509 * fileio.c (Ffind_file_name_handler, Finsert_file_contents,
7510 Fwrite_region, do_auto_save_unwind, Fdo_auto_save,
7511 Fread_file_name): Likewise.
7512 * filelock.c (unlock_all_files): Likewise.
7513 * insdel.c (Fcombine_after_change_execute): Likewise.
7514 * intervals.c (adjust_intervals_for_insertion): Likewise.
7515 * keymap.c (get_keymap_1, Fkeymap_parent, Fset_keymap_parent,
7516 Fset_keymap_parent, fix_submap_inheritance, access_keymap,
7517 store_in_keymap, Fcopy_keymap, define_as_prefix,
7518 current_minor_maps, Faccessible_keymaps,
7519 accessible_keymaps_char_table, Fkey_description,
7520 Fwhere_is_internal, where_is_internal_2, where_is_internal_1,
7521 describe_buffer_bindings, describe_map_tree, shadow_lookup,
7522 describe_map): Likewise.
7523 * lread.c (Fload, load_unwind, close_load_descs, read_vector,
7524 read_list, init_lread): Likewise.
7525 * search.c (Fmatch_data): Likewise.
7526 * sunfns.c (Fsun_menu_internal): Likewise.
7527 * syntax.c (describe_syntax): Likewise.
7528 * undo.c (record_insert, record_delete, Fundo_boundary,
7529 truncate_undo_list): Likewise.
7530 * vmsproc.c (child_sig): Likewise.
7531
7532 * editfns.c (Fformat): Use XFLOAT_DATA.
7533
75341999-09-12 Gerd Moellmann <gerd@gnu.org>
7535
7536 * keyboard.c (command_loop_1): Resize mini-window to the
7537 exact size of a message displayed, if any.
7538
7539 * xdisp.c (resize_mini_window): Add parameter exact_p. Resize
7540 to exact size if exact_p is non-zero.
7541 (display_echo_area_1): Call resize_mini_window with
7542 new parameter.
7543 (redisplay_internal): Ditto.
7544 (resize_echo_area_axactly): New.
7545
7546 * minibuf.c (read_minibuf_unwind): Call resize_mini_window with
7547 new parameter.
7548
7549 * dispextern.h: Change prototype of resize_mini_window.
7550 Add prototype for resize_echo_area_axactly.
7551
7552 * xfaces.c (Fx_family_fonts): Replaces Fx_font_list.
7553 (syms_of_xfaces): Defsubr accordingly.
7554
7555 * xdisp.c (hscroll_window_tree): Choose cursor row from
7556 desired or current matrix.
7557 (redisplay_internal): Hscroll before updating.
7558
75591999-09-12 Gerd Moellmann <gerd@gnu.org>
7560
7561 * syntax.c (Fforward_word): Use prompt_end_charpos instead
7562 of minibuffer_prompt_length.
7563
7564 * minibuf.c (read_minibuf): Use prompt_end_charpos instead
7565 of minibuffer_prompt_length.
7566 (read_minibuf_unwind): Ditto.
7567 (Fminibuffer_complete_and_exit): Ditto.
7568 (Fminibuffer_complete_word): Ditto.
7569 (Fminibuffer_prompt_end): Ditto.
7570
7571 * editfns.c (Fbuffer_string): Use prompt_end_charpos instead
7572 of minibuffer_prompt_length.
7573 (Fline_beginning_position): Ditto.
7574
7575 * buffer.c (Fget_buffer_create): Use prompt_end_charpos instead
7576 of minibuffer_prompt_length.
7577 (Fmake_indirect_buffer): Ditto.
7578 (Fkill_buffer): Ditto.
7579 (Ferase_buffer): Ditto.
7580
7581 * buffer.h (prompt_end_charpos): Replaces
7582 minibuffer_prompt_length.
7583
427ec082 7584 * minibuf.c (read_minibuf): Return mini-buffer contents
26901792
DL
7585 without the prompt.
7586
7587 * editfns.c (make_buffer_string_both): Take out the code
7588 to handle mini-buffer prompts.
7589 (Fbuffer_string): Handle the prompt here, instead.
7590
7591 * xfaces.c (lface_from_face_name): Resolve face aliases.
7592 (Qmode_line): Replaces Qmodeline.
7593 (realize_basic_faces): Use Qmode_line.
7594 (syms_of_xfaces): Initialize Qmode_line.
7595
75961999-09-12 Gerd Moellmann <gerd@gnu.org>
7597
7598 * minibuf.c (read_minibuf): Set minibuf_prompt_width to the
7599 current column after inserting prompt.
7600 (Fminibuffer_prompt_width): Return minibuf_prompt_width.
7601
7602 * xfaces.c (Qframe_update_face_colors): New.
7603 (syms_of_xfaces): Initialize call.
7604 (update_face_from_frame_parameter): Call that function when
7605 the frame's background changes.
7606
76071999-09-12 Richard Stallman <rms@gnu.org>
7608
7609 * insdel.c (del_range_1): Don't treat minibuffer prompt specially.
7610
76111999-09-12 Ken Raeburn <raeburn@gnu.org>
7612
7613 * alloc.c (Fcons, pure_cons, Fpurecopy, Fgarbage_collect,
7614 mark_object, mark_buffer): Use XCAR and XCDR.
7615 * bytecode.c (Fbyte_code): Likewise.
7616 * callint.c (Fcall_interactively, Fprefix_numeric_value):
7617 Likewise.
7618 * callproc.c (Fcall_process, Fcall_process_region, child_setup,
7619 getenv_internal): Likewise.
7620 * dired.c (file_name_completion): Likewise.
7621 * fns.c (Fsafe_length, concat, Fcopy_alist, Fmember, Fmemq, Fassq,
7622 assq_no_quit, Fassoc, Frassq, Frassoc, Fdelq, Fdelete, Freverse,
7623 Fplist_get, Fplist_put, internal_equal, mapcar1): Likewise.
7624 * indent.c (Fcompute_motion): Likewise.
7625 * process.c (decode_status, Fprocess_status, Fprocess_exit_status,
7626 list_processes_1, Fstart_process, Fopen_network_stream,
7627 wait_reading_process_input, read_process_output_call,
7628 kill_buffer_processes, sigchld_handler, exec_sentinel_unwind,
7629 status_notify, wait_reading_process_input): Likewise.
7630 * textprop.c (PLIST_ELT_P, property_value, set_properties,
7631 extend_property_ranges): Likewise.
7632 * w32faces.c (Fpixmap_spec_p, merge_face_list): Likewise.
7633 * w32fns.c (x_window_to_frame, x_set_frame_parameters,
7634 x_report_frame_params, x_set_cursor_type, x_icon_type,
7635 x_figure_window_size, Fx_create_frame, w32_load_system_font,
7636 w32_load_font, enum_font_cb2, w32_list_bdf_fonts, w32_list_fonts,
7637 w32_list_synthesized_fonts, w32_find_ccl_program, Fx_list_fonts,
7638 Fw32_find_bdf_fonts, w32_find_bdf_fonts_in_dir,
7639 x_display_info_for_name, Fx_display_list): Likewise.
7640 * w32menu.c (menubar_id_to_frame, single_keymap_panes,
7641 Fx_popup_menu, Fx_popup_dialog): Likewise.
7642 * w32proc.c (Fw32_set_keyboard_layout): Likewise.
7643 * w32term.c (x_window_to_scroll_bar, w32_read_socket,
7644 w32_term_init, x_delete_display): Likewise.
7645 * xfns.c (x_window_to_frame, x_any_window_to_frame,
7646 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
7647 x_top_window_to_frame, x_set_frame_parameters,
7648 x_report_frame_params, x_set_cursor_type, x_icon_type,
7649 x_figure_window_size, Fx_create_frame, x_display_info_for_name,
7650 Fx_display_list, x_create_tip_frame): Likewise.
7651 * xmenu.c (menubar_id_to_frame, single_keymap_panes,
7652 Fx_popup_menu, Fx_popup_dialog): Likewise.
7653 * xselect.c (x_own_selection, x_get_local_selection,
7654 x_handle_selection_request, x_handle_selection_clear,
7655 x_clear_frame_selections, wait_for_property_change_unwind,
7656 wait_for_property_change, x_handle_property_notify,
7657 copy_multiple_data, x_get_foreign_selection,
7658 lisp_data_to_selection_data, clean_local_selection_data,
7659 x_handle_selection_notify, Fx_get_selection_internal,
7660 x_disown_buffer_selections): Likewise.
7661 * xterm.c (x_window_to_scroll_bar, XTread_socket, x_list_fonts,
7662 x_load_font, x_find_ccl_program, x_term_init, x_delete_display):
7663 Likewise.
7664
7665 * alloc.c (make_float, make_pure_float, Fpurecopy): Use
7666 XFLOAT_DATA.
7667 * bytecode.c (Fbyte_code): Likewise.
7668 * floatfns.c (extract_float, Fexpt, Fabs, rounding_driver,
7669 fmod_float): Likewise.
7670
76711999-09-11 Richard Stallman <rms@gnu.org>
7672
7673 * xdisp.c (run_window_scroll_functions): If hook functions switch
7674 buffers, switch back after.
7675
76761999-09-11 Ken Raeburn <raeburn@gnu.org>
7677
7678 * charset.h (GET_TRANSLATION_TABLE): Use XCDR.
7679 * frame.h (FOR_EACH_FRAME): Use XCAR and XCDR.
7680 (PIXEL_X_FROM_CANON_X, PIXEL_Y_FROM_CANON_Y): Use XFLOAT_DATA.
7681 * keyboard.h (EVENT_HEAD, EVENT_START, EVENT_END, POSN_WINDOW,
7682 POSN_BUFFER_POSN, POSN_WINDOW_POSN, POSN_TIMESTAMP): Use XCAR and
7683 XCDR.
7684 * syntax.h (SYNTAX, SYNTAX_WITH_FLAGS, SYNTAX_MATCH): Use XCAR and
7685 XCDR.
7686
76871999-09-10 Richard Stallman <rms@gnu.org>
7688
7689 * xterm.c (XTread_socket): In XSetInputFocus, use RevertToParent,
7690 not RevertToPointerRoot.
7691 (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
7692 Fix the code to clear around the scroll bar.
7693
76941999-09-10 Keisuke Nishida <kxn30@po.cwru.edu>
7695
7696 * print.c: Support print-circle and related features.
7697 (Vprint_gensym_alist): Removed.
7698 (Vprint_circle, Vprint_continuous_numbering, print_number_index
7699 Vprint_number_table): New variables.
7700 (PRINT_NUMBER_OBJECT, PRINT_NUMBER_STATUS): New macros.
7701 (PRINTPREPARE, PRINTFINISH): Don't set Vprint_gensym_alist.
7702 (print, print_preprocess, print_preprocess_string, print_object):
7703 New/modified functions with print-circle feature. Use
7704 Vprint_number_table instead of Vprint_gensym_alist for print-gensym.
7705 (syms_of_print): Defined new Lisp variables `print-circle',
7706 `print-continuous-numbering', `print-number-table'.
7707
77081999-09-10 Gerd Moellmann <gerd@gnu.org>
7709
7710 * xfns.c (x_build_heuristic_mask): Accept a list `(R G B)'
7711 as background color specification instead of an integer.
7712 (image-cache-eviction-delay): Replaces image-eviction-seconds.
7713 (Vimage_cache_eviction_delay): Replaces Vimage_eviction_seconds.
7714 (clear_image_cache, syms_of_xfns): Use it.
7715 (Qpostscript): Replaces Qghostscript.
7716 (gs_type): Use it.
7717 (gs_image_p): Ditto.
7718 (syms_of_xfns): Initialize Qpostscript.
7719
77201999-09-10 Richard Stallman <rms@gnu.org>
7721
7722 * buffer.c (Ferase_buffer): Don't erase the minibuffer prompt.
7723
77241999-09-09 Richard Stallman <rms@gnu.org>
7725
7726 * editfns.c (Fline_beginning_position): Handle minibuffer prompt here.
7727
7728 * cmds.c (Fbeginning_of_line): Don't handle minibuffer prompt here.
7729
77301999-09-09 Gerd Moellmann <gerd@gnu.org>
7731
7732 * fns.c (Fmakehash): Accept just one optional argument TEST.
7733
7734 * xfns.c (QCindex): New.
7735 (syms_of_xfns): Initialize QCindex.
7736 (gif_load): Use it instead of `:image'.
7737
77381999-09-09 Richard Stallman <rms@gnu.org>
7739
7740 * fileio.c (Fwrite_region): Finish renaming CONFIRM to MUSTBENEW.
7741 (Fwrite_region) [DOS_NT]: Handle `excl' here too.
7742
77431999-09-08 Gerd Moellmann <gerd@gnu.org>
7744
7745 * xdisp.c (Qwhen): Replaces QCwhen.
7746 (syms_of_xdisp): Initialized it instead of QCwhen.
7747 (handle_single_display_prop): Use it instead of QCwhen.
7748
77491999-09-08 Ken'ichi Handa <handa@gnu.org>
7750
7751 * charset.c (translate_char): Reset MSBs of arguments of
7752 MAKE_CHAR.
7753 (CHAR_COMPONENTS_VALID_P): Fix for ASCII.
7754
77551999-09-08 Lars Magne Ingebrigtsen <larsi@gnus.org>
7756
7757 * editfns.c (Fbufsize): Accept an extra BUFFER parameter.
7758
7759 * fns.c (Fbase64_decode_region): Don't place point outside of the
7760 current accessible portion.
7761
77621999-09-07 Richard Stallman <rms@gnu.org>
7763
7764 * keymap.c (fix_submap_inheritance): Do nothing if the proper
7765 parent is an ancestor of SUBMAP; otherwise, add it as the
7766 ultimate ancestor.
7767
77681999-09-07 Gerd Moellmann <gerd@gnu.org>
7769
7770 * xdisp.c (handle_single_display_prop): Change conditional
7771 display property to `:when FORM . VALUE'.
7772
77731999-09-07 Richard Stallman <rms@gnu.org>
7774
7775 * fileio.c (Fwrite_region): Doc fix.
7776
77771999-09-07 Stefan Monnier <monnier@cs.yale.edu>
7778
7779 * fileio.c (Qexcl): New variable.
7780 (report_file_error): Handle EEXIST specially.
7781 (Fwrite_region): Special handling for CONFIRM = `excl'.
7782 (syms_of_fileio): Initialize Qexcl.
7783
77841999-09-07 Gerd Moellmann <gerd@gnu.org>
7785
7786 * xfns.c (x_set_foreground_color): Call
7787 update_face_from_frame_parameter.
7788 (x_set_background_color): Ditto.
7789 (x_set_mouse_color): Ditto.
7790 (x_set_cursor_color): Ditto.
7791 (x_set_border_color): Ditto.
7792 (x_set_scroll_bar_foreground): Ditto.
7793 (x_set_scroll_bar_background): Ditto.
7794
7795 * xfaces.c (recompute_basic_faces): Clear face cache.
7796 (Finternal_set_lisp_face_attribute): Modify frame parameters
7797 if attributes of certain faces are changed.
7798 (update_face_from_frame_parameter): New.
7799
7800 * xfaces.c (realize_basic_faces): Realize new basic faces.
7801
7802 * dispextern.h (SCROLL_BAR_FACE_ID, BORDER_FACE_ID,
7803 CURSOR_FACE_ID, MOUSE_FACE_ID): New.
7804
7805 * xfaces.c (Qscroll_bar, Qcursor, Qborder, Qmouse): New.
7806 (syms_of_xfaces): Intialize new symbols.
7807
7808 * fns.c (Fmakehash): Take one argument, test, make all the
7809 rest keyword arguments.
7810
7811 * window.c (Fset_window_margins): Make window the first argument.
7812 (set_window_buffer): Call Fset_window_margins with window as first
7813 argument.
7814
78151999-09-07 Gerd Moellmann <gerd@gnu.org>
7816
7817 * xfaces.c (Qfringe): Replaces Qmargin.
7818
78191999-09-07 Kenichi Handa <handa@etl.go.jp>
7820
7821 * charset.h: Lots of comments fixed.
7822 (PARSE_MULTIBYTE_SEQ): Make it work also for ASCII string.
7823 (STRING_CHAR_AND_CHAR_LENGTH): This macro removed.
7824
7825 * charset.c : Lots of comments fixed.
7826 (SPLIT_MULTIBYTE_SEQ): Make it work also for ASCII string.
7827 (CHAR_COMPONENTS_VALID_P): Name changed from
7828 CHAR_COMPONENT_VALID_P. Caller changed.
7829
78301999-09-06 Richard Stallman <rms@gnu.org>
7831
7832 * insdel.c (syms_of_insdel): Define Lisp variable
7833 inhibit-modification-hooks.
7834
78351999-09-06 Michael Sperber [Mr. Preprocessor] <sperber@informatik.uni-tuebingen.de>
7836
7837 * s/aix4-2.h (ALIGN_DATA_RELOC): Undefined to support new
7838 unexaix.c.
7839
7840 * s/aix3-1.h (ALIGN_DATA_RELOC): Defined to support new unexaix.c.
7841
78421999-09-06 Dave Love <fx@gnu.org>
7843
7844 * unexaix.c: New version incorporating Michael Sperber's changes
7845 from XEmacs. Should solve problems on AIX 4.3.
7846
7847 * lread.c (Vbyte_boolean_vars): New variable.
7848 (defvar_bool, syms_of_lread): Use it.
7849
78501999-09-05 Richard Stallman <rms@gnu.org>
7851
7852 * minibuf.c (read_minibuf): Put all three properties on the
7853 same range, the whole prompt.
7854
78551999-09-05 Gerd Moellmann <gerd@gnu.org>
7856
7857 * sound.c (Qplay_sound_functions): Replaces Qplay_sound_hook.
7858 (Fplay_sound, syms_of_sound): Use it.
7859 (parse_sound): Allow float volume values in the range [0, 1].
7860 (Fplay_sound): Ditto.
7861
7862 * window.c (Fset_window_vscroll): Make window the first argument,
7863 amount to scroll the second. Take non-negative vscroll as
7864 argument.
7865 (Fwindow_vscroll): Return non-negative vscroll.
7866
7867 * xfns.c (Fx_show_tip): Improve documentation.
7868
78691999-09-05 Gerd Moellmann <gerd@gnu.org>
7870
7871 * buffer.c, buffer.h, dispextern.h, dispnew.c, keyboard.c,
7872 window.c, xdisp.c, xfaces.c, xterm.c, keyboard.h: Change
7873 `top-line' and `top_line' to `header-line' and `header_line'.
7874 Likewise for similar spellings.
7875
78761999-09-05 Gerd Moellmann <gerd@gnu.org>
7877
7878 * xdisp.c (row_containing_pos): New.
7879 (try_window_id): Use it.
7880
7881 * alloc.c, dispextern.h, dispnew.c, frame.c, frame.h, keyboard.c,
7882 lisp.h, termhooks.h, window.c xdisp.c, xfaces.c, xfns.c, xterm.c:
7883 Change spelling of `toolbar' to `tool_bar' or `tool-bar'.
7884 Likewise for upper-case etc.
7885
78861999-09-05 Gerd Moellmann <gerd@gnu.org>
7887
7888 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
7889 Fix reference to renamed variable.
7890
78911999-09-04 Gerd Moellmann <gerd@gnu.org>
7892
7893 * window.c (Qwindow_size_fixed): Replaces Qfixed_window_size.
427ec082 7894 (window_fixed_size_p): Use Qwindow_size_fixed instead of
26901792
DL
7895 Qfixed_window_size.
7896 (syms_of_window): Ditto.
7897
7898 * fns.c (Fmakehash): Exchange optional test and size arguments.
7899
79001999-09-03 Gerd Moellmann <gerd@gnu.org>
7901
7902 * xterm.c (XTset_vertical_scroll_bar): Block input when clearing
7903 under newly created scroll bar.
7904 (expose_window): If window is not yet fully initialized, do
7905 nothing. This can happen when toolkit scroll bars are used and a
7906 window is split. Reconfiguring the scroll bars will generate an
7907 expose for a newly created window.
7908
7909 * frame.h (struct frame): New member `gamma'.
7910
7911 * xfns.c: Include math.h. Add extern declaration for atof in case
7912 we don't see one.
7913 (Qscreen_gamma): New.
7914 (struct x_frame_parm_table): Add prototypes, add
7915 x_set_screen_gamma.
7916 (gamma_correct): New function.
7917 (defined_color): Call it.
7918 (x_set_screen_gamma): New.
7919 (x_set_title): Add parameter old_value.
7920 (RES_TYPE_FLOAT): New.
7921 (x_get_arg): Handle RES_TYPE_FLOAT.
7922 (Fx_create_frame): Call x_default_parameter for `screen-gamma'.
7923 (lookup_pixel_color): Change call to x_alloc_nearest_color to
7924 new prototype.
7925 (lookup_rgb_color): Ditto.
7926 (syms_of_xfns): Initialize Qscreen_gamma.
7927
7928 * xterm.c (x_alloc_nearest_color_for_widget) [USE_X_TOOLKIT]:
7929 New. Allocate color for lwlib widgets.
7930 (x_alloc_nearest_color): Change parameter list include the
7931 frame on which to allocate colors. Gamma-correct colors.
7932 (x_alloc_lighter_color): Call x_alloc_lighter_color with new
7933 parameter list.
7934
7935 * xterm.h: Change protorype of x_alloc_nearest_color.
7936
79371999-09-03 Richard Stallman <rms@gnu.org>
7938
7939 * callproc.c: Delete the system-independent include of stdlib.h
7940 (leaving only the one in the WINDOWSNT conditional).
7941
79421999-09-03 Andrew Choi <choi@cs.hku.hk>
7943
7944 * callproc.c (call-process) [macintosh]: Call mac_run_command in
7945 sysdep.c. The Mac code is modeled after the DOS code.
427ec082 7946
26901792
DL
7947 * dispextern.h [macintosh]: Include macterm.h to define substitute X
7948 Window types and macros.
7949
7950 * frame.h: Do nothing if included a second time.
7951 (enum output_method): Add mac_output frame type.
7952 (union output_data): Add new alternative `mac'.
7953 (FRAME_MAC_P): New macro.
427ec082 7954
26901792
DL
7955 * frame.c (Fframep) [macintosh]: Handle mac frame type.
7956 (syms_of_frame_1): Initialize Qmac.
7957 (make_terminal_frame) [macintosh]: Initialize output_data.mac fields.
7958 (Fmake_terminal_frame) [macintosh]: Add an alternate error check.
7959 (Fmodify_frame_parameters) [macintosh]: Call
7960 mac_set_frame_parameter in macterm.c.
427ec082 7961
26901792
DL
7962 * keyboard.c [macintosh]: Set KBD_BUFFER_SIZE to a smaller value
7963 (512) because Mac compilers limit local data of a function to 32K.
427ec082 7964
26901792
DL
7965 * make-docfiles.c: Correctly handle input files with Mac-style
7966 eol's.
427ec082 7967
26901792 7968 * sysdep.c: Define numerous routines to emulate Unix system calls.
427ec082 7969
26901792
DL
7970 * xfaces.c: on MacOS, define the set of colors listed in rgb.txt
7971 file of an X Window environment.
427ec082 7972
26901792
DL
7973 * xfaces.c: on MacOS, define the Lisp functions x-display-color-p,
7974 x-display-grayscale, x-color-defined-p, and x-color-values.
427ec082 7975
26901792
DL
7976 * sysdep.c [macintosh] (stat, fstat, mkdir, rmdir, utime, access)
7977 (open, creat, unlink, read, write, rename, fopen, pause, alarm)
7978 (signal, sleep, gmtime, localtime, ctime, time, index, mktemp)
7979 (getpwuid, getpwnam, dup, dup2, isatty, getgid, getegid, getuid)
7980 (geteuid, getpid, getenv, uname, opendir, closedir, readdir, getwd.):
7981 New functions, replacing POSIX features.
427ec082 7982
26901792
DL
7983 * sysdep.c [macintosh] (Mac2UnixPathname, Unix2MacPathname, CheckAlarm)
7984 (InitMyPasswd, GetTempDirName, mystrchr, mystrtok, mystrcpy):
7985 (InitEmacsPasswdDir, run_mac_command): New subroutines.
7986
7987 * sysdep.c [macintosh] (targetTicks, alarm_signal_func, myPasswdName)
7988 (myPasswd, emacsPasswdDir, emacsPasswd, myPasswdInited, mask)
7989 (myPasswdDir, TempDirName, sys_siglist): New variables.
7990
7991 * sysdep.c [macintosh] (execvp, wait, croak, fork, kill, sigsetmask)
7992 (sigblock, request_sigio, unrequest_sigio, setpgrp, pipe, symlink)
7993 (link, lstat, readlink, umask, chmod, sbrk, fsync, ioctl):
7994 Define empty stubs so Emacs will link.
7995
79961999-09-03 Gerd Moellmann <gerd@gnu.org>
7997
7998 * xdisp.c: Use XCAR and XCDR instead of XCONS.
7999
8000 * window.h: New member frozen_window_start_p.
8001
8002 * window.c (foreach_window, foreach_window_1): New.
8003 (freeze_window_start, freeze_window_starts): New.
8004 (make_window): Initialize frozen_window_start_p.
8005 (replace_window): Ditto.
8006 (Fset_window_point): Remove references to deleted variables.
8007 (Fset_window_start): Ditto.
8008
8009 * xdisp.c (Vresize_mini_config, resize_mini_frame,
8010 resize_mini_initial_height): Removed.
8011 (syms_of_xdisp): Remove references to these variables.
8012 (resize_mini_window): Don't save window configuration, freeze
8013 window starts instead. Enlarge window until displaying an empty
8014 buffer, then shrink it. Make the function externally visible.
8015 (redisplay_window): Treat frozen window start like forced start,
8016 but accept point outside of the window.
8017
8018 * dispextern.h: Add function prototype for resize_mini_window.
8019
8020 * minibuf.c (read_minibuf_unwind): Resize mini-window when
8021 reaching minibuf_level 0.
8022
8023 * lisp.h: Remove extern declarations for variables deleted from
8024 xdisp.c.
8025
8026 * dispnew.c (adjust_frame_glyphs): Remove reference to
8027 Vresize_mini_config.
8028
80291999-09-03 Gerd Moellmann <gerd@gnu.org>
8030
8031 * xfns.c (x_set_scroll_bar_width): Change conditional compilation
8032 to USE_TOOLKIT_SCROLL_BARS.
8033
8034 * xterm.c (x_scroll_bar_create): Don't clear under scroll bar
8035 here.
8036 (XTset_vertical_scroll_bar): Clarify position computations. Clear
8037 under newly created scroll bar. Put toolkit scroll bars in the
8038 middle of the area reserved for the scroll bar.
8039
80401999-09-03 Kenichi Handa <handa@etl.go.jp>
8041
8042 The following changes are for the new handling of mulitbyte
8043 sequence. Now, except for a composite character, no multibyte
8044 character in string/buffer has trailing garbage bytes. For
8045 instance, the length of string "\201\300\300" is now 2, the first
8046 character is Latin-1 A-grave, the second is raw \300.
8047
8048 * charset.h (MAKE_NON_ASCII_CHAR): Handle the case that C1 or C2
8049 are negative.
8050 (MAKE_CHAR): Don't set MSBs of C1 and C2 to 0.
8051 (VALID_MULTIBYTE_CHAR_P): This macro deleted.
8052 (PARSE_COMPOSITE_SEQ): New macro.
8053 (PARSE_CHARACTER_SEQ): New macro.
427ec082 8054 (PARSE_MULTIBYTE_SEQ): New macro.
26901792
DL
8055 (CHAR_PRINTABLE_P): New macro.
8056 (STRING_CHAR): Adjusted for the change of string_to_non_ascii_char.
8057 (STRING_CHAR_AND_LENGTH): Likewise.
8058 (STRING_CHAR_AND_CHAR_LENGTH): Define it as STRING_CHAR_AND_LENGTH.
8059 (INC_POS): Use the macro PARSE_MULTIBYTE_SEQ.
8060 (DEC_POS, BUF_INC_POS, BUF_DEC_POS): Likewise,
8061
8062 * charset.c (SPLIT_COMPOSITE_SEQ): New macro.
8063 (SPLIT_CHARACTER_SEQ): New macro.
8064 (SPLIT_MULTIBYTE_SEQ): New macro.
8065 (CHAR_COMPONENT_VALID_P): New macro.
8066 (non_ascii_char_to_string): Generate a multibyte sequence as far
8067 as possible.
8068 (string_to_non_ascii_char): The 4th arg exclude_tail_garbage is
8069 deleted. Caller changed. Use the macro SPLIT_MULTIBYTE_SEQ.
8070 (split_non_ascii_string): Likewise.
8071 (multibyte_form_length): Use the macro PARSE_MULTIBYTE_SEQ.
8072 (char_printable_p): New function.
8073 (translate_char): Check character by NATNUMP instead of INTEGERP.
8074 (unibyte_char_to_multibyte): Call char_valid_p instead of
8075 VALID_MULTIBYTE_CHAR_P.
8076 (Fmake_char_internal): Check the arguments more rigidly.
8077 (Fcharset_after): Use the macro SPLIT_MULTIBYTE_SEQ.
8078 (char_valid_p): Check the validity by CHAR_COMPONENT_VALID_P.
8079 (Fmultibyte_char_to_unibyte): Check the validity of character by
8080 CHAR_VALID_P.
8081 (chars_in_text): Call multibyte_chars_in_text.
8082 (multibyte_chars_in_text): Use the macro PARSE_MULTIBYTE_SEQ.
8083 (Fcompose_string): Use the macro STRING_CHAR_AND_LENGTH instead of
8084 STRING_CHAR_AND_CHAR_LENGTH (which is obsolete now).
8085
8086 * data.c (Faset): Adjust the way to check byte-combining
8087 possibility for the new handling of multibyte sequence.
8088
8089 * editfns.c (Fsubst_char_in_region): Likewise.
8090
8091 * fns.c (count_combining): Use the macro PARSE_MULTIBYTE_SEQ.
8092 (string_char_to_byte): Likewise.
8093 (string_byte_to_char): Likewise.
8094
8095 * indent.c (MULTIBYTE_BYTES_WIDTH): Delete the 2nd arg C. Use the
8096 macro STRING_CHAR_AND_LENGTH. Caller changed.
8097
8098 * insdel.c (count_combining_composition): New function.
8099 (count_combining_before): Adjust the way to check byte-combining
8100 possibility for the new handling of multibyte sequence. Call
8101 count_combining_composition for a composite character.
8102 (count_combining_after): Likewise.
8103
8104 * print.c (print_string): Use the macro STRING_CHAR_AND_LENGTH.
8105 (print): Likewise.
8106
8107 * dispextern.h (struct it): Change the size of the member
8108 `ctl_chars'.
8109
8110 * xdisp.c (get_next_display_element): Display incomplete multibyte
8111 sequence (e.g. \222\300) by octal form.
8112
81131999-09-02 Gerd Moellmann <gerd@gnu.org>
8114
8115 * xterm.h (VERTICAL_SCROLL_BAR_WIDTH_TRIM): Change from 2 to 0.
8116
8117 * fns.c (Fhash_table_weakness): Replaces Fhash_table_weak.
8118 (cmpfn_eql, sxhash): Use XFLOAT_DATA.
8119
81201999-09-02 Gerd Moellmann <gerd@gnu.org>
8121
8122 * buffer.c (set_buffer_internal): Never set
8123 windows_or_buffers_changed.
8124
8125 * xdisp.c (try_window_id): Reset first_unchanged_at_end_row
8126 if we have displayed to the bottom of the window.
8127
8128 * syntax.c (Fforward_word): Stop at a mini-buffer prompt end
8129 in both directions. Extend documentation.
8130
81311999-09-01 Gerd Moellmann <gerd@gnu.org>
8132
8133 * minibuf.c (read_minibuf): Flush display after setting cursor to
8134 column 0.
8135
81361999-08-31 Gerd Moellmann <gerd@gnu.org>
8137
8138 * s/freebsd.h (__FreeBSD_version): Don't define it if it is
8139 already defined. This avoids a warning from buffer.c.
8140
81411999-08-30 Gerd Moellmann <gerd@gnu.org>
8142
8143 * xterm.h (FRAME_X_FLAGS_AREA_COLS): Define it as the total width
8144 of both margins.
8145 (FRAME_X_FLAGS_AREA_WIDTH): Likewise.
8146 (FRAME_X_LEFT_FLAGS_AREA_WIDTH): New.
8147 (FRAME_X_RIGHT_FLAGS_AREA_WIDTH): New.
8148
8149 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add in FRAME_FLAGS_AREA_COLS
8150 once instead of twice.
8151 (FRAME_LEFT_FLAGS_AREA_WIDTH): New.
8152
8153 * xterm.c: Remove unused bitmaps.
8154 (continued_bits, continuation_bits, overlay_bits): Change images.
8155 (x_draw_vertical_border): Use FRAME_X_RIGHT_FLAGS_AREA_WIDTH
8156 instead of FRAME_X_FLAGS_AREA_WIDTH.
8157 (x_after_update_window_line): Ditto.
8158 (x_draw_bitmap): Likewise.
8159 (x_draw_row_bitmaps): Likewise.
8160 (x_draw_glyph_string_box): Likewise.
8161 (x_draw_glyphs): Likewise.
8162 (x_scroll_run): Likewise.
8163 (expose_window_tree): Likewise.
8164 (note_mode_line_highlight): Likewise.
8165 (XTset_vertical_scroll_bar): Likewise.
8166 (x_clip_to_row): Likewise.
8167 (x_set_window_size): Likewise.
8168
8169 * xfns.c (x_figure_window_size): Use FRAME_FLAGS_AREA_COLS instead
8170 of 2 * that value.
8171
8172 * xdisp.c (window_box_width): Use FRAME_FLAGS_AREA_COLS instead of
8173 2 * that value.
8174 (window_box_left): Use FRAME_LEFT_FLAGS_AREA_WIDTH instead of
8175 FRAME_FLAGS_AREA_WIDTH.
8176
8177 * window.c (coordinates_in_window): Use
8178 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
8179 (window_internal_width): Subtract FRAME_FLAGS_AREA_WIDTH once
8180 instead of twice.
8181
427ec082 8182 * widget.c (set_frame_size): Set flags_area_extra to
26901792
DL
8183 FRAME_FLAGS_AREA_WIDTH instead of 2 * that width.
8184 (EmacsFrameSetCharSize): Ditto.
8185
8186 * dispnew.c (mode_line_string): Add FRAME_LEFT_FLAGS_AREA_WIDTH
8187 instead of FRAME_FLAGS_AREA_WIDTH.
8188
8189 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract
8190 FRAME_FLAGS_AREA_COLS once.
8191 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Add
8192 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
8193
81941999-08-30 Gerd Moellmann <gerd@gnu.org>
8195
8196 * freebsd.h (C_SWITCH_SYSTEM): Added to let configure find headers
8197 in /usr/X11R6/include which are checked for with AC_CHECK_HEADER.
8198
81991999-08-30 Gerd Moellmann <gerd@gnu.org>
8200
8201 * fns.c (QCweakness): Replaces QCweak.
8202 (Fmake_hash_table): Ditto.
8203 (Fmakehash): Ditto.
8204 (syms_of_fns): Ditto.
8205
82061999-08-29 Richard Stallman <rms@gnu.org>
8207
8208 * search.c (compile_pattern_1): Enable RE_CHAR_CLASSES for regexp.
8209
8210 * sysdep.c (read_input_waiting): Pass read_socket_hook just 4 args.
8211
8212 * syntax.h (SYNTAX_COMMENT_NESTED, SYNTAX_FLAGS_COMMENT_NESTED):
8213 Add support for nested comments.
8214
d7d0dac0
SM
8215 * syntax.c (Fforward_comment, scan_lists, scan_sexps_forward):
8216 Consolidate the forward comment code into the new `forw_comment'.
8217 (forw_comment): New subroutine. Added support for nested comments.
8218 (lisp_parse_state, back_comment, Fmodify_syntax_entry)
8219 (Fparse_partial_sexp): Add support for nested comments.
26901792
DL
8220
82211999-08-28 Ken Raeburn <raeburn@gnu.org>
8222
8223 * lisp.h (struct Lisp_Cons, XCAR, XCDR, struct Lisp_Float): Change
8224 names of structure elements if HIDE_LISP_IMPLEMENTATION is
8225 defined, to help detect code that uses knowledge of the Lisp
8226 internals that it shouldn't have.
8227 (XFLOAT_DATA): New macro.
8228
82291999-08-25 Gerd Moellmann <gerd@gnu.org>
8230
8231 * syntax.c (Fforward_word): If in a mini-buffer and moving
8232 backwards, stop in front of the prompt to prevent accidentially
8233 moving into the read-only prompt.
8234
8235 * window.c (Frecenter): Clear frame if called with nil or no arg.
8236
8237 * xdisp.c (resize_mini_window): Don't resize if
8238 Vmax_mini_window_height is nil. Otherwise, use a default if
8239 Vmax_mini_window_height is not ot a number.
8240 (syms_of_xdisp): Extend documentation of Vmax_mini_window_height.
8241
82421999-08-25 Alexandre Oliva <oliva@dcc.unicamp.br>
8243
8244 * unexelf.c: Merge IRIX debugging info patch from unexsgi.c
8245 * m/iris4d.h: Use unexelf for IRIX 5.*.
8246 * m/iris5d.h: Use unexelf for IRIX 6.*.
8247 * unexsgi.c: Deleted.
8248
8249 * unexelf.c: Auto-detect .sbss section.
8250 (round_up): Make it static.
8251 (unexec): Declare alignment as Elf Word. Skip ``Program
8252 segment above .bss'' test on MIPS without .sbss.
8253 Copy sections .got and .sdata1 sections. Adjust offsets in
8254 sections .sdata, .lit4, .lit8, .got and .sdata1.
8255
82561999-08-25 Gerd Moellmann <gerd@gnu.org>
8257
8258 * xdisp.c (try_window_id): Remove typo.
8259
82601999-08-24 Gerd Moellmann <gerd@gnu.org>
8261
8262 * xdisp.c (try_window_id): Recognize case that PT == ZV and in
8263 unchanged text at the bottom when computing the cursor position.
8264 (message3_nolog): Raise frame only if minibuffer_auto_raise is
8265 set.
8266
8267 * lisp.h (PVEC_TYPE_MASK): Add the bit for hash tables.
8268
82691999-08-24 Gerd Moellmann <gerd@gnu.org>
8270
8271 * xfaces.c (Qmargin): Replacement for Qbitmap_area.
8272 (realize_basic_faces): Replace Qmargin for Qbitmap_area.
8273 (syms_of_xfaces): Ditto.
8274
8275 * window.c (Fset_window_point): Reset Vresize_mini_config.
8276 (Fset_window_start): Ditto.
8277 (set_window_buffer): Ditto.
8278
8279 * dispnew.c (adjust_frame_glyphs): Reset Vresize_mini_config.
8280
8281 * xdisp.c (redisplay_window): Don't ever test just_this_one_p
8282 before calling try_window.
8283 (echo_area_display): If height has changed, update other windows.
8284 (resize_mini_frame, resize_mini_initial_height): New.
8285 (resize_mini_window): Save/restore window configuration
8286 differently.
8287
427ec082 8288 * lisp.h (Vresize_mini_config, resize_mini_frame,
26901792
DL
8289 resize_mini_initial_height): Add extern declarations.
8290
8291 * xterm.c (expose_window_tree): Fix typo CANON_Y_UNIT to
8292 CANON_X_UNIT.
8293
8294 * xfns.c [HAVE_JPEG]: Work around a warning about HAVE_STDLIB_H
8295 being redefined in jconfig.h.
8296
82971999-08-23 Ken'ichi Handa <handa@gnu.org>
8298
8299 * coding.h: Include "ccl.h" instead of "../src/ccl.h".
8300
83011999-08-22 Gerd Moellmann <gerd@gnu.org>
8302
8303 * alloc.c (mark_glyph_matrix): Mark strings only.
8304
8305 * xdisp.c (redisplay_internal): Clear garbaged frames after
8306 resizing mini-window.
8307
83081999-08-22 Gerd Moellmann <gerd@gnu.org>
8309
8310 * xdisp.c (unwind_with_echo_area_buffer): Use
8311 set_buffer_internal_1 instead of set_buffer_internal.
8312 (with_echo_area_buffer): Ditto.
8313
8314 * buffer.c (set_buffer_internal): Set windows_or_buffers_changed
8315 only if buffer is displayed somewhere.
8316
8317 * buffer.h (BUF_COMPUTE_UNCHANGED): New.
8318
8319 * insdel.c (gap_left): Use BUF_COMPUTE_UNCHANGED.
8320 (gap_right): Ditto.
8321 (modify_region): Ditto.
8322
8323 * buffer.c (modify_overlay): Use BUF_COMPUTE_UNCHANGED.
8324
8325 * xdisp.c (Vresize_mini_config): New.
8326 (resize_mini_window): Use it to save restore original window
8327 configuration
8328 (syms_of_xdisp): Initialize it.
8329
8330 * buffer.h (struct buffer): Add prevent_redisplay_optimizations_p.
8331
8332 * dispextern.h (struct glyph_matrix): Add buffer, begv, and zv.
8333
8334 * xdisp.c (reconsider_clip_changes): New.
8335 (redisplay_internal, redisplay_window): Call it.
8336 (mark_window_display_accurate, redisplay_internal): Set current
8337 matrix' buffer, begv, zv.
8338
8339 * window.c (Fset_window_hscroll): Set
8340 prevent_redisplay_optimizations_p instead of clip_changed.
8341 (Fset_window_hscroll): Ditto.
8342 (temp_output_buffer_show): Ditto.
8343 (Fset_window_vscroll): Ditto.
8344
8345 * buffer.c (reset_buffer): Set clip_changed to 0 and
8346 prevent_redisplay_optimizations_p to 1.
8347 (Fget_buffer_create): Set prevent_redisplay_optimizations_p to 1.
8348
8349 * buffer.h (BUF_UNCHANGED_MODIFIED, UNCHANGED_MODIFIED,
8350 BUF_OVERLAY_UNCHANGED_MODIFIED, OVERLAY_UNCHANGED_MODIFIED,
8351 BUF_BEG_UNCHANGED, BEG_UNCHANGED, BUF_END_UNCHANGED,
8352 END_UNCHANGED): New.
8353 (struct buffer_text): Add beg_unchanged, end_unchanged,
8354 unchanged_modified, overlay_unchanged_modified.
8355
8356 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
8357 overlay_unchanged_modified): Removed.
8358 (with_echo_area_unwind_data): Don't save beg/end_unchanged.
8359 (unwind_with_echo_area_buffer): Don't restore them.
8360 (debug_beg_unchanged, debug_end_unchanged) [GLYPH_DEBUG]: Removed.
8361 (text_outside_line_unchanged_p, redisplay_internal,
8362 try_scrolling): Use/set buffer-specific beg/end_unchanged.
8363 (redisplay_window): Let try_window_id be called if more than one
8364 window is displayed. Use/set buffer-specific beg/end_unchanged.
8365 (get_last_unchanged_at_beg_row, get_first_unchanged_at_end_row,
8366 try_window_id):
8367 Use buffer-specific beg/end_unchanged.
8368
8369 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
8370 overlay_unchanged_modified): Remove extern declarations.
8371
8372 * keyboard.c (command_loop_1): Set beg/end_unchanged per
8373 buffer.
8374
8375 * insdel.c (gap_left): Compute beg/end_unchanged per buffer.
8376 (gap_right): Ditto.
8377 (adjust_after_replace): Likewise.
8378 (replace_range, del_range_2, modify_region): Likewise.
8379
8380 * dispnew.c (direct_output_for_insert): Set beg_unchanged
8381 and unchanged_modified per buffer.
8382
8383 * coding.c (code_convert_region): Compute beg/end_unchanged per
8384 buffer.
8385
8386 * buffer.c (modify_overlay): Compute beg/end_unchanged
8387 per buffer.
427ec082 8388 (Fget_buffer_create): Initialize new members of the buffer
26901792
DL
8389 structure.
8390
83911999-08-22 Gerd Moellmann <gerd@gnu.org>
8392
8393 * lisp.h: Add prototype for copy_hash_table and Fcopy_hash_table.
8394
8395 * fns.c (Qkey, Qvalue): Renamed from Qkey_weak, and Qvalue_weak.
8396 (Qkey_value_weak): Removed.
8397 (make_hash_table): Use nil, `key', `value', t for weakness.
8398 (Fmake_hash_table): Ditto.
8399 (copy_hash_table): New.
8400 (Fcopy_hash_table): New.
8401
84021999-08-22 Gerd Moellmann <gerd@gnu.org>
8403
8404 * xfns.c: Call change_frame_size and do_pending_window_change with
d7d0dac0 8405 new parameter.
26901792
DL
8406
84071999-08-21 Gerd Moellmann <gerd@gnu.org>
8408
8409 * xdisp.c (resize_mini_window): Do it for truncate-lines t as
8410 well.
427ec082 8411 (redisplay_internal): Resize mini-window only if text might
26901792
DL
8412 have changed.
8413 (display_echo_area): Reset displayed echo_area_buffer to nil
8414 at the end if we're displaying a nil message.
8415
84161999-08-21 Gerd Moellmann <gerd@gnu.org>
427ec082 8417
26901792
DL
8418 * fns.c (hash_lookup): Test with EQ before calling key comparion
8419 function.
8420 (hash_remove): Ditto.
8421 (cmpfn_eq): Removed.
8422 (cmpfn_eql): Don't test with EQ.
8423 (cmpfn_equal): Ditto.
8424 (make_hash_table): Set comparison function for `eq' to null.
8425
8426 * buffer.c, cmds.c, editfns.c, indent.c, insdel.c, buffer.h:
8427 Remove conditional compilation on NO_PROMPT_IN_BUFFER.
8428
8429 * dispextern.h (NO_PROMPT_IN_BUFFER): Removed.
8430
8431 * window.c, widget.c, process.c, keyboard.c, frame.c, xdisp.c,
8432 xterm.c: Call change_frame_size and do_pending_window_change with
8433 new parameter.
8434
8435 * dispnew.c (do_pending_window_change): Add parameter `safe'.
8436 (change_frame_size): Ditto.
8437 (change_frame_size_1): Ditto. Deley size changes if redisplaying
8438 and not called from a safe place.
8439 (window_change_signal): Call change_frame_size with new parameter.
8440
8441 * dispextern.h: Change prototypes for do_pending_window_change
8442 and change_frame_size.
8443
8444 * xfaces.c (face_at_buffer_position): Don't xassert that
427ec082 8445 window's buffers equals current_buffer; this is not the
26901792
DL
8446 case during echo area display.
8447
84481999-08-21 Gerd Moellmann <gerd@gnu.org>
8449
8450 * xdisp.c, minibuf.c: Remove conditional compilation on
8451 NO_PROMPT_IN_BUFFER.
8452
8453 * minibuf.c (Fminibuffer_prompt_end): New.
8454 (syms_of_minibuf): Defsubr it. Remove
8455 minibuffer-prompt-in-buffer.
8456 (Fminibuffer_prompt_width): Return 0 if not in mini-buffer.
8457 Extend documentation.
8458
8459 * xdisp.c (get_next_display_element): Display \r as ^M.
8460
8461 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Clear
8462 under scroll bar widget.
8463
84641999-08-21 Gerd Moellmann <gerd@gnu.org>
8465
8466 * xdisp.c (minibuffer_scroll_overlap): Removed because not used
8467 anywhere.
8468 (unwind_redisplay): Return nil.
8469 (clear_garbaged_frames): New.
8470 (redisplay_internal): Use it.
8471 (echo_area_display): Ditto.
8472 (resize_mini_window): Mew.
8473 (display_echo_area_1): Use it to resize echo area window.
8474 (redisplay_internal): Use it to resize active mini-window.
8475
8476 * dispextern.h, lisp.h: Add function prototypes.
8477
427ec082 8478 * dispnew.c (set_window_cursor_after_update): Do the
26901792
DL
8479 cursor_in_echo_area case only for a mini-window showing
8480 a message. Don't let cursor end up after the end of a row.
8481
8482 * xdisp.c (echo_area_glyphs, echo_area_message,
8483 echo_area_glyphs_length, previous_echo_glyphs,
8484 previous_echo_area_message, previous_echo_area_glyphs_length):
8485 Removed.
8486 (Vmessage_stack, echo_area_buffer, echo_buffer,
8487 display_last_displayed_message_p, Vwith_echo_area_save_vector): New.
8488 (message2_nolog): Use set_message and clear_message.
8489 (message3): Rename parameter len to nbytes to make clear what
8490 it is.
8491 (message3_nolog): Ditto. Use set_message and clear_message.
8492 (update_echo_area): Rewritten.
8493 (with_echo_area_buffer): New.
8494 (with_echo_area_buffer_unwind_data, unwind_with_area_buffer): New.
8495 (setup_echo_area_for_printing): New.
8496 (display_echo_area, display_echo_area_1): New.
8497
8498 (current_message, current_message_1): New.
427ec082 8499 (push_message, restore_message, pop_message,
26901792
DL
8500 check_message_stack): New.
8501 (truncate_echo_area): Rewritten.
8502 (truncate_message_1): New.
8503 (set_message, set_message_1, clear_message): New.
8504 (echo_area_display): Rewritten.
8505 (redisplay_internal): Check for needed echo area update
8506 differently.
8507 (redisplay_preserve_echo_area): Rewritten.
427ec082 8508 (redisplay_window): Check for mini-window displaying echo area
26901792
DL
8509 message differently.
8510 (syms_of_xdisp): Initialize Vmessage_stack and echo area buffers.
8511 Remove initialzation of removed variables.
8512 (init_xdisp): Remove references to removed variables.
8513
8514 * dispnew.c (adjust_frame_message_buffer): Removed references
8515 to echo_area_glyphs and previous_echo_glyphs.
8516 (direct_output_for_insert): Check for mini-window displaying
8517 echo area message differently.
8518 (update_frame): Likewise.
8519 (set_window_cursor_after_update): Likewise. In echo area,
8520 don't try to set cursor on rows that aren't enabled.
8521
8522 * print.c: Remove conditional compilation on `standalone'.
8523 (glyph_len, str_to_glyph_cpy, str_to_glyph_ncpy,
427ec082 8524 glyph_to_str_cpy): Remove that section because GLYPHs are no
26901792
DL
8525 longer used in that way.
8526 (PRINTDECLARE): Add multibyte.
8527 (PRINTPREPARE, PRINTFINISH): Handle printcharfun t differently.
8528 (printbufidx): Removed.
8529 (printchar, strout): Rewritten.
8530
8531 * keyboard.c (ok_to_echo_at_next_pause): Make it a pointer to
8532 a struct kboard.
8533 (echo_kboard): New.
8534 (echo_now): Set echo_kboard to the current kboard.
8535 (cancel_echoing): Set echo_kboard to null.
8536 (cmd_error_internal): Use clear_message, remove references
8537 to echo_area_glyphs and echo_area_message.
8538 (command_loop_1): Check for echo area messages differently.
8539 (read_char): Likewise.
8540 (record_menu_key): Use clear_message.
8541 (Fexecute_extended_command): Check for echo area messages
8542 differently. Use push_message, restore_message, pop_message.
8543
8544 * alloc.c (Fgarbage_collect): Use push_message, restore_message,
8545 pop_message.
8546
8547 * emacs.c (shut_down_emacs): Call check_message_stack.
8548
8549 * lisp.h: Add function prototypes and extern declarations for
8550 new functions and variables.
8551
8552 * fileio.c (Fdo_auto_save): Use push_message, restore_message,
8553 pop_message.
8554
427ec082 8555 * minibuf.c (read_minibuf): Use clear_message instead of
26901792
DL
8556 setting echo_area_glyphs.
8557 (Fminibuffer_completion_help): Ditto.
8558
8559 * editfns.c (Fcurrent_message): Rewritten.
8560
8561 * frame.c, window.h: Remove references to echo_area_glyphs
8562 and previous_echo_glyphs.
8563
85641999-08-21 Dave Love <fx@gnu.org>
8565
8566 * aix3-2-5.h (C_DEBUG_SWITCH): Use -g -O.
8567 * aix4-1.h: Likewise.
8568
8569 * irix6-5.h (C_DEBUG_SWITCH): Set for debug and optimize.
8570
85711999-08-20 Gerd Moellmann <gerd@gnu.org>
8572
8573 * xfns.c: Remove tiff34 prefix from include.
8574
85751999-08-20 Dave Love <fx@gnu.org>
8576
8577 * cm.c: Revert previous change.
8578
85791999-08-19 Gerd Moellmann <gerd@gnu.org>
8580
8581 * xterm.c (XTset_vertical_scroll_bar): Fix previous change. Clear
8582 under scroll bar with width FRAME_SCROLL_BAR_COLS.
8583
85841999-08-18 Dave Love <fx@gnu.org>
8585
8586 * callproc.c, filelock.c, insdel.c, sysdep.c, xmenu.c: Use
8587 stdlib.h.
8588
8589 * doprnt.c: Use stdlib.h, unistd.h.
8590
8591 * config.in: Add HAVE_TERMCAP_H.
8592
8593 * cm.c: Use termcap.h.
8594
85951999-08-18 Gerd Moellmann <gerd@gnu.org>
8596
8597 * xfns.c (x_window) [USE_X_TOOLKIT]: Remove test for
8598 FRAME_X_WINDOW (f) being null at the of the function. If widgets
8599 cannot be created we will already have crashed earlier. Call
8600 lw_set_main_areas with a null menu-bar widget, so that we have
8601 a reasonable default.
8602 (Fx_create_frame): Rearranged so that Lisp errors during frame
8603 initialization cause less damage. Initialize menu bar widget
8604 here.
8605
86061999-08-18 Gerd Moellmann <gerd@gnu.org>
427ec082 8607
26901792
DL
8608 * dispnew.c (update_frame_line): Fix previous change. If writing
8609 whole line clear to end of frame.
8610
86111999-08-17 Gerd Moellmann <gerd@gnu.org>
8612
8613 * window.c (Fcoordinates_in_window_p): Return `left-bitmap-area'
8614 and `right-bitmap-area' if position is in the bitmap areas. This
8615 avoids an error when clicking on the bitmap areas. Instead, they
8616 are currently treated like clicks inside the window.
8617 (coordinates_in_window): Return 5 and 6 for bitmap areas.
8618 (Qleft_bitmap_area, Qright_bitmap_area): New.
8619 (syms_of_window): Initialize new symbols.
8620
8621 * dispnew.c (update_frame_line): If writing whole line,
8622 don't write trailing spaces unless we must.
8623
8624 * xdisp.c (unwind_redisplay): New. Resets flag redisplaying_p.
8625 (redisplay_internal): Register unwind_redisplay with
8626 register_unwind_protect.
8627 (try_window_reusing_current_matrix): If new start > old start,
8628 give up if start pos of first reusable row is not equal to new
8629 start.
8630
8631 * eval.c (Fsignal): Don't reset redisplaying_p here.
8632
8633 * xterm.c (expose_area): If row extends face to end of line,
8634 write the whole line.
8635
86361999-08-16 Gerd Moellmann <gerd@gnu.org>
8637
8638 * dispextern.h (struct it): Remove member
8639 show_trailing_whitespace_p.
8640
8641 * dispnew.c (direct_output_for_insert): Use
8642 Vshow_trailing_whitespace instead of former iterator member
8643 show_trailing_whitespace_p.
8644 (direct_output_forward_char): Don't do it if hightlighting
8645 trailing whitespace.
8646
8647 * xdisp.c (Qshow_trailing_whitespace): Removed.
8648 (Vshow_trailing_whitespace): Added.
8649 (init_iterator): Remove initialization code for
8650 show_trailing_whitespace_p.
8651 (redisplay_internal): Don't try cursor movement in this_line
8652 if showing trailing whitespace.
8653 (redisplay_window): Likewise for cursor movement in current
8654 matrix and try_window_id.
8655 (try_window_reusing_current_matrix): Likewise.
8656 (trailing_whitespace_p): Return 0 if trailing whitespace is
8657 in front of point.
8658 (display_line): Use Vshow_trailing_whitespace instead of
8659 former iterator member show_trailing_whitespace_p.
8660 (syms_of_xdisp): Add DEFVAR_LISP for show-trailing-whitespace.
8661
86621999-08-16 Gerd Moellmann <gerd@gnu.org>
8663
8664 * window.c (Fpos_visible_in_window_p): Rewritten.
8665
8666 * xfaces.c (add_to_log): Renamed from display_message.
8667 Don't display messages in echo area.
8668
8669 * xterm.c (x_draw_glyph_string_box): Use the background width
8670 of the glyph string for the width of the box.
8671
86721999-08-16 Stefan Monnier <monnier@cs.yale.edu>
8673
8674 * syntax.c (Fforward_comment): Set comstyle for Scomment_fence.
8675
86761999-08-16 Geoff Voelker <voelker@cs.washington.edu>
8677
8678 * xfns.c, w32fns.c (x_set_frame_parameters): Set foreground and
8679 background first, and then set other parameters that might
8680 depend upon their new values.
8681
86821999-08-15 Gerd Moellmann <gerd@gnu.org>
8683
8684 * xfaces.c (Vfont_list_limit): New.
8685 (syms_of_xfaces): Make it a user-variable.
8686 (DEFAULT_FONT_LIST_LIMIT): New.
8687 (sorted_font_list): If Vfont_list_limit is an integer > 0, list
8688 maximally that number of fonts, otherwise use
8689 DEFAULT_FONT_LIST_LIMIT.
427ec082 8690 (Fx_font_family_list): Bind `font-list-limit' to higher values
26901792
DL
8691 until we have all fonts.
8692 (Fxfont_list): Additionally return the full names of fonts and
8693 their registry and encoding.
8694
427ec082 8695 * xterm.c (XTset_vertical_scroll_bar) [USE_TOOLKIT_SCROLL_BARS]:
26901792
DL
8696 Simplify clearing "under" scroll bar.
8697
8698 * window.c (Qfixed_window_size): New.
8699 (syms_of_window): Initialiaze it.
8700 (check_all_windows): Add return type void.
8701 (window_fixed_size_p): New. Return non-zero if window
8702 is fixed-size.
8703 (window_min_size_1): New.
8704 (window_min_size): Handle fixed-size windows.
8705 (size_window): New. Rewritten combination of set_window_height and
8706 set_window_width that handles fixed-size windows.
8707 (set_window_height): Call it.
8708 (set_window_width): Call it.
8709 (Fsplit_window): Give an error on attempt to split a fixed-size
8710 window.
8711 (change_window_height): Partly rewritten to handle fixed-size
8712 windows.
8713
87141999-08-13 Wolfgang Rupprecht <wolfgang@wsrcc.com>
8715
8716 * process.c (Fopen_network_stream): Fix previous change.
8717
87181999-08-13 Karl Heuer <kwzh@gnu.org>
8719
8720 * xdisp.c (line_number_display_limit_width): New var.
8721 (decode_mode_spec): Use it instead of hardcoded value.
8722 (syms_of_xdisp): Defvar it.
8723
87241999-08-13 Richard M. Stallman <rms@gnu.org>
8725
8726 * eval.c (run_hook_list_with_args): Gcpro `globals'.
8727 (run_hook_with_args): Likewise.
8728
8729 * window.h (struct window): New field too_small_ok.
8730
427ec082 8731 * window.c (set_window_height, set_window_width):
26901792
DL
8732 If window starts out "too small", set its too_small_ok flag.
8733 If window's too_small_ok flag is set, don't delete it
8734 unless it is so small it would cause a crash.
8735
87361999-08-13 Gerd Moellmann <gerd@gnu.org>
8737
8738 * window.c (MINSIZE): Removed.
8739 (window_min_size): New.
8740 (set_window_height): Use window_min_size.
8741 (change_window_height): Ditto.
8742
87431999-08-12 Gerd Moellmann <gerd@gnu.org>
8744
8745 * indent.c (vmotion): Don't add in mini-buffer prompt width
8746 if prompts are inserted into mini-buffer.
8747
87481999-08-12 Wolfgang Rupprecht <wolfgang@wsrcc.com>
8749
8750 * config.in: Add HAVE_GETADDRINFO.
8751 * process.c (Fopen_network_stream): Use getaddrinfo.
8752
87531999-08-11 Gerd Moellmann <gerd@gnu.org>
8754
8755 * xdisp.c (get_overlay_arrow_glyph_row): Set the charpos of
8756 glyphs to -1.
8757
8758 * xdisp.c (face_before_or_after_it_pos): If position after
8759 or before iterator's current position in the buffer is out
8760 of bounds, return the iterator's original face id.
8761
8762 * dispnew.c (mirror_make_current): If desired row isn't enabled,
8763 just swap glyphs pointers between current and desired row.
8764 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Copy
8765 desired matrix method string to current matrix.
8766
87671999-08-11 Kenichi Handa <handa@etl.go.jp>
8768
8769 * lisp.h (CHAR_MODIFIER_MASK): New macro.
8770
8771 * lread.c (read_escape): For Control modifier, pay attention to
8772 multibyte character.
8773 (read1): Likewise. Singal error or a multibyte character which
8774 has a modifer bit. Check validity of Shift modifer.
8775
8776 * charset.c (non_ascii_char_to_string): Handle modifier bits as
8777 the same as Lisp reader.
8778
87791999-08-10 Richard M. Stallman <rms@gnu.org>
8780
8781 * charset.h (BCOPY_SHORT): Fix typo `unsigined'.
8782
87831999-08-10 Alexandre Oliva <oliva@dcc.unicamp.br>
8784
8785 * unexelf.c [__linux__ && __alpha__] (HAS_SBSS_SECTION): Define.
8786
87871999-08-10 Eli Zaretskii <eliz@gnu.org>
8788
8789 * msdos.c (IT_set_face): Abort if the default face is not realized
8790 and cached.
8791 (IT_write_glyphs): Reset the screen face to the default face
8792 before writing glyphs.
8793
8794 * xfaces.c (realize_default_face) [MSDOS]: Don't take default
8795 colors from the frame here.
8796 (realize_tty_face) [MSDOS]: Do it here. Update the face
8797 attributes with the actual name of the color taken from the
8798 frame.
8799
8800 * dosfns.c (msdos_stdcolor_name): Remove const from return value.
8801 * dosfns.h (msdos_stdcolor_name): Ditto for the prototype.
8802
8803 * frame.c (Fframe_parameters): Swap foreground and background
8804 colors returned in frame parameters if the frame has reverse in
8805 its parameter alist.
8806 (Fmake_terminal_frame): Make a unique copy of face_alist for
8807 each frame.
8808
88091999-08-07 Richard Stallman <rms@gnu.org>
8810
8811 * buffer.c (Fprevious_overlay_change): Just return
8812 the answer obtained from overlays_at.
8813
8814 * xfns.c (xpm_load) [!XpmAllocCloseColors]:
8815 Use XpmCloseness and attrs.closeness instead.
8816
88171999-08-06 Richard Stallman <rms@gnu.org>
8818
8819 * lread.c (Feval_buffer): New arg DO_ALLOW_PRINT.
8820
88211999-08-06 Geoff Voelker <voelker@cs.washington.edu>
8822
427ec082 8823 * dired.c (directory_files_internal, Fdirectory_files_and_attributes,
26901792
DL
8824 Ffile_attributes_lessp): New functions.
8825 (Fdirectory_files): Use directory_files_internal.
8826 (syms_of_dired): Initialize Fdirectory_files_and_attributes,
8827 Ffile_attributes_lessp.
8828
8829 * w32.c (stat): Check for directory ending in separator when
8830 doing readdir fast path.
8831
8832 * w32fns.c (x_set_icon_type): Support setting frame icons.
8833 * w32term.c (x_bitmap_icon): New function.
8834 (x_make_frame_visible, x_iconify_frame): Invoke x_bitmap_icon.
427ec082 8835
26901792
DL
88361999-08-06 Gerd Moellmann <gerd@gnu.org>
8837
8838 * xdisp.c (set_iterator_to_next): After delivering a character
8839 from a display vector, restore face and charset to what they were
8840 before the display vector was processed.
8841
88421999-08-06 Gerd Moellmann <gerd@gnu.org>
8843
8844 * xdisp.c (reseat_at_next_visible_line_start): New parameter
8845 on_newline_p.
8846 (set_iterator_to_next): After delivering last char
427ec082 8847 from display vector, reseat on next visible line start if
26901792
DL
8848 dpvec_char_len < 0.
8849 (next_element_from_buffer): Set dpvec_char_len to -1 for
8850 selective display.
8851
88521999-08-06 Gerd Moellmann <gerd@gnu.org>
8853
8854 * xdisp.c (compute_line_metrics): If first line's physical ascent
8855 is larger than its logical ascent, use the physical ascent, and
8856 make the row taller. Set row's overlapping_p flag.
8857
8858 * dispnew.c (redraw_overlapping_rows): Use flag overlapping_p.
8859 (direct_output_for_insert): Ditto.
8860
8861 * dispextern.h (struct glyph_row): Add overlapping_p.
8862
8863 * xterm.c (x_draw_phys_cursor_glyph): Redraw overlaps.
8864
8865 * dispextern.h (MATRIX_ROW_OVERLAPS_PRED_P): New.
8866 (MATRIX_ROW_OVERLAPS_SUCC_P): New.
8867
8868 * dispnew.c (direct_output_for_insert): Don't use this method if
8869 row is overlapped by others.
8870 (update_text_area): Write full line if current line is overlapped.
8871 (redraw_overlapped_rows): New.
8872 (update_window): Call it.
8873 (redraw_overlapping_rows): New.
8874 (update_window): Call it.
8875 (scrolling_window): Make sure overlapped_p flag in current rows is
8876 unchanged.
8877 (row_equal_p): Take rows overlapped_p flag into account.
8878
8879 * dispextern.h (struct glyph_row): Add flag overlapped_p.
8880
8881 * xterm.c (x_fix_overlapping_area): New.
8882 (x_redisplay_interface): Add x_fix_overlapping_area.
8883
8884 * dispnew.c (adjust_glyphs): Block input while adjusting matrices.
8885
88861999-08-06 Gerd Moellmann <gerd@gnu.org>
8887
8888 * xterm.c (x_draw_glyphs): Add parameter overlaps_p.
8889 (struct glyph_string): Add member for_overlaps_p.
8890 (x_get_glyph_string_clip_rect): If glyph string draws foreground
8891 of overlapping rows, clip to window bottom.
8892 (x_fill_glyph_string): Add parameter overlaps_p.
8893 (x_fill_composite_glyph_string): Ditto.
8894 (BUILD_GLYPH_STRINGS): Ditto.
8895 (BUILD_CHAR_GLYPH_STRINGS): Ditto.
8896 (x_draw_glyph_string): Don't draw anything but the foreground
8897 if glyph string draws row overlaps.
8898
8899 * dispnew.c (direct_output_for_insert): Don't use this
8900 optimization for rows that overlap others.
8901 (update_window_line): Return non-zero if display has changed.
8902 (update_text_area): Ditto.
8903 (update_window): Record if display has been changed.
8904
8905 * dispextern.h (MATRIX_ROW_OVERLAPPING_P): New.
8906
8907 * dispextern.h (struct redisplay_interface): Add
8908 fix_overlapping_area.
8909
8910 * xterm.c (x_append_glyph): Set glyph flag overlaps_vertically_p.
8911
8912 * dispextern.h (struct glyph): Add overlaps_vertically_p.
8913
8914 * xterm.c (x_produce_image_glyph): Compute iterator's physical
8915 ascent and descent.
8916 (x_produce_stretch_glyph): Ditto.
8917 (x_produce_glyphs): Ditto.
8918
8919 * xdisp.c (init_iterator): Reset physical line height info
8920 after producing special glyphs.
8921 (display_toolbar_line): Set physical line height info.
8922 (compute_line_metrics): Ditto.
8923 (display_line): Ditto.
8924 (display_string): Ditto.
8925
8926 * term.c (produce_glyphs): Set iterator's physical height
8927 information.
8928
8929 * dispnew.c (blank_row): Compute glyph row's physical height.
8930 (row_equal_p): Take physical row heights into account.
8931 (direct_output_for_insert): Ditto.
8932 (update_text_area): Ditto.
8933
8934 * dispextern.h (struct glyph_row): Add phys_ascent and
8935 phys_height.
8936 (struct it): Add phys_ascent, phys_descent, max_phys_ascent,
8937 max_phys_descent.
8938
89391999-08-04 Stefan Monnier <monnier@cs.yale.edu>
8940
8941 * buffer.c (switch_to_buffer_1): New subroutine, taken out from
8942 Fswitch_to_buffer.
8943 (no_switch_buffer): New function.
8944 (Fswitch_to_buffer): Call them. Don't get confused
8945 by "same-window" buffers in a dedicated frame.
8946
8947 * window.c (display-buffer): Don't get confused
8948 by "same-window" buffers in a dedicated frame.
8949
89501999-08-04 Andreas Schwab <schwab@gnu.org>
8951
8952 * insdel.c (insert_from_string_1): Check gap size against number
8953 of outgoing bytes, not incoming bytes.
8954
89551999-08-03 Tom Breton <tob@world.std.com>
8956
8957 * lread.c (read1): Added circular reading code to #N=.
8958 (SUBSTITUTE): New macro.
8959 (seen_list): New variable.
8960 (substitute_object_in_subtree): New function.
8961 (substitute_object_recurse): New function.
8962 (substitute_in_interval): New function.
8963
89641999-08-02 Eli Zaretskii <eliz@gnu.org>
8965
8966 * Makefile.in (frame.o, sysdep.o, xfaces.o): Depend on dosfns.h.
8967
8968 * frame.c (make_terminal_frame): Don't call init_frame_faces if
8969 noninteractive, for termcap frames as well.
8970
8971 * sysdep.c (init_sys_modes): Call init_frame_faces for termcap
8972 frames.
8973
89741999-08-01 Richard Stallman <rms@gnu.org>
8975
8976 * fns.c (internal_equal): Correct overlay comparison.
8977
83c8f461 89781999-07-31 Richard M. Stallman <rms@gnu.org>
26901792 8979
427ec082 8980 * xfns.c (x_set_internal_border_width):
26901792
DL
8981 Call do_pending_window_change. Don't block input, don't call XFlush.
8982 (x_set_vertical_scroll_bars): Call do_pending_window_change.
8983 (x_set_scroll_bar_width, x_set_font): Likewise.
8984
8985 * frame.c (Fset_frame_height): Call do_pending_window_change.
8986 (Fset_frame_width, Fset_frame_size): Likewise.
8987
8988 * xterm.c (x_set_window_size): When calling change_frame_size,
8989 specify 1 for DELAY.
8990
8991 * widget.c (EmacsFrameSetCharSize): Don't call
8992 do_pending_window_change here.
8993
89941999-07-30 Dave Love <fx@gnu.org>
8995
8996 * config.in: Add HAVE_STDLIB_H.
8997
89981999-07-30 Richard M. Stallman <rms@gnu.org>
8999
9000 * process.c (create_process): Detect failure of `pipe'.
9001
90021999-07-30 Keisuke Nishida <kei@psn.net>
9003
9004 * alloc.c (allocate_vectorlike): Add missing increment.
9005
9006 * data.c (Fdefalias): Call Ffset instead of duplicating code.
9007
9008 * keymap.c (get_keymap_1, get_keyelt): Check the type of OBJECT
9009 before calling indirect_function.
9010
90111999-07-30 Eli Zaretskii <eliz@gnu.org>
9012
9013 * dispextern.h (load_color, lookup_derived_face): Declare
9014 prototypes.
9015
9016 * dispnew.c (init_display) [MSDOS]: Don't initialize frame faces,
9017 it will be done later.
9018
9019 * frame.c (make_terminal_frame) [MSDOS]: Don't call
9020 init_frame_faces if non-interactive.
9021 (Fframe_parameters) [MSDOS]: Replace indexing into colornames[]
9022 array with a call to msdos_stdcolor_name. The font name is now
9023 "ms-dos", consistent with realize_tty_face.
9024
9025 * keyboard.c (cmd_error_internal): Don't kill Emacs if this is an
9026 MSDOS frame.
9027
9028 * window.c (Fset_window_configuration) [MSDOS]: Don't call
9029 x_set_toolbar_lines.
9030
9031 * xfaces.c (load_color): Remove static from definition and remove
9032 prototype.
9033 [MSDOS]: Add a DOS-specific version of load_color.
9034 (lookup_face): Replace FRAME_TERMCAP_P with !FRAME_WINDOW_P.
9035 (lookup_derived_face): New function.
9036 (realize_default_face): Support MSDOS frames.
9037 [MSDOS]: If fore/background colors are unspecified, inherit them
9038 from the frame.
9039 (realize_face): Support MSDOS frames.
9040 (realize_tty_face): Support MSDOS frames.
9041 [MSDOS]: If the face color is not in Vface_tty_color_alist, call
9042 load_color to try to find a suitable approximation. If the face
9043 is inverse-video, swap the foreground and background colors.
9044
9045 * dosfns.c (msdos_stdcolor_name, msdos_stdcolor_idx): New
9046 functions.
9047
9048 * dosfns.h (msdos_stdcolor_name, msdos_stdcolor_idx): Declare.
9049
9050 * msdos.h: Remove redundant declarations (most of them are now in
9051 dispextern.h).
9052
9053 * msdos.c (IT_set_face): Rewritten for the new redisplay engine.
9054 Use default frame colors if the face doesn't specify them; invert
9055 the colors if highlight is ON.
9056 (IT_write_glyphs): Rewritten for the new redisplay engine.
9057 (IT_change_line_highlight): Add (unused) parameter Y, since that's
9058 how the hook is called by term.c.
9059 (IT_copy_glyphs): New function, copies an area of the display in
9060 video RAM.
9061 (IT_insert_glyphs): Rewritten to DTRT instead of aborting, since
9062 redisplay now calls it even if char_ins_del_ok is zero.
9063 (IT_set_frame_parameters): Prototype changed. Calls the new
9064 load_color. Puts the new fore/background colors into the default
9065 face on current frame.
9066 (IT_menu_display): Rewritten to handle the new struct glyph
9067 instead of a char array.
9068 (XMenuActivate): Call lookup_derived_face to create and use
9069 special faces for the pop-up and drop-down menus.
9070
90711999-07-29 Gerd Moellmann <gerd@gnu.org>
9072
9073 * xterm.c (x_set_toolkit_scroll_bar_thumb): Don't call
9074 XawScrollbarSetThumb if thumb parameters haven't changed because
9075 that function apparently isn't optimized for this case.
9076
90771999-07-29 Eli Zaretskii <eliz@gnu.org>
9078
9079 * msdos.c (getdefdir): Don't return failure indication when
9080 _fixpath sets errno to ENOSYS.
9081
90821999-07-28 Gerd Moellmann <gerd@gnu.org>
9083
9084 * xdisp.c (string_char_and_length): New. Use it everywhere
9085 instead of STRING_CHAR_AND_LENGTH in xdisp.c.
9086
90871999-07-28 Kenichi Handa <handa@etl.go.jp>
9088
9089 * fns.c (count_combining): New function.
9090 (struct textprop_rec): New structure.
9091 (concat): Copy text properties correctly when byte combining
9092 occurs.
9093
90941999-07-28 Gerd Moellmann <gerd@gnu.org>
9095
9096 * xterm.c (x_setup_relief_color): Don't try smart color allocation
9097 if display is mono.
9098 (x_draw_row_bitmaps): If face has stipple, don't switch
9099 to foreground color for clearing areas, and set the fill style.
9100
9101 * xfaces.c (load_face_colors): Load background color if setting
9102 stipple, too.
427ec082 9103 (prepare_face_for_display): Use FillOpaqueStippled instead of
26901792
DL
9104 FillStippled.
9105
91061999-07-26 Ken'ichi Handa <handa@gnu.org>
9107
9108 * xterm.c (x_find_ccl_program): Add casting.
9109
9110 * w32fns.c (w32_find_ccl_program): Add casting.
9111
91121999-07-27 Gerd Moellmann <gerd@gnu.org>
9113
9114 * dispextern.h (struct glyph_row): Flag internal_border_p removed.
9115
9116 * xfns.c (x_create_tip_frame): Don't set bitmapIcon resource
9117 because this will try to access a nonexisting widget.
9118
91191999-07-26 Markus Rost <rost@gnu.org>
9120
427ec082 9121 * fns.c (Fgethash): Fix order of variables (patch by gerd).
26901792
DL
9122 (Fputhash): Ditto.
9123 (Fremhash): Ditto.
9124
91251999-07-26 Gerd Moellmann <gerd@gnu.org>
427ec082 9126
26901792
DL
9127 * widget.c (EmacsFrameSetCharSize): Don't add XtNborderWidth
9128 value to frame width and height.
9129
9130 * xterm.c (x_get_glyph_string_clip_rect): Take internal border
9131 into account for full-width windows. Don't add scroll bar width
9132 to width of clip rect.
9133 (x_draw_glyph_string_box): Add 1 to right x of full width lines.
9134 (x_set_glyph_string_background_width): Add 1 to background width.
9135 (x_draw_glyphs): Take internal border into account for full-width
9136 lines.
9137
91381999-07-26 Richard M. Stallman <rms@gnu.org>
9139
9140 * xfns.c (x_set_mouse_color): Always unload the old color.
9141 Don't allow nil as color value.
427ec082 9142 (x_set_cursor_color, x_set_background_color, x_set_foreground_color):
26901792
DL
9143 Always unload the old color.
9144
9145 * indent.c (Fmove_to_column): Extend end of line only if FORCE is t.
9146
91471999-07-26 Karl Heuer <kwzh@gnu.org>
9148
9149 * fns.c (Fy_or_n_p): Doc fix.
9150
91511999-07-26 Kenichi Handa <handa@etl.go.jp>
9152
9153 * ccl.h (setup_ccl_program): The type is changed to `int'.
9154
9155 * ccl.c (ccl_driver) <CCL_Call>: Now CCL program ID to call may be
9156 stored in the following CCL code. Adjusted for the change of
9157 Vccl_program_table.
9158 (resolve_symbol_ccl_program): Adjusted for the new style of
9159 embedded symbols (SYMBOL . PROP) in CCL compiled code. Return Qt
9160 is resolving failed.
9161 (ccl_get_compiled_code): New function.
9162 (setup_ccl_program): Function type changed from `void' to `int'.
9163 Resolve symbols in CCL_PROG.
9164 (Fccl_program_p): New function.
9165 (Fccl_execute): Get compiled CCL code by just calling
9166 setup_ccl_program.
9167 (Fccl_execute_on_string): Likewise.
9168 (Fregister_ccl_program): Adjusted for the change of
9169 Vccl_program_table.
9170
9171 * coding.c (setup_coding_system): Get compiled CCL code by just
9172 calling setup_ccl_program.
9173
9174 * xterm.c (x_find_ccl_program): Get compiled CCL code by just
9175 calling setup_ccl_program.
9176
9177 * w32fns.c (w32_find_ccl_program): Get compiled CCL code by just
9178 calling setup_ccl_program.
9179
91801999-07-23 Gerd Moellmann <gerd@gnu.org>
9181
9182 * xfaces.c (frame_update_line_height): Just use the height of the
9183 frame's fontset or font, instead of taking face fonts into
9184 account.
9185
9186 * xdisp.c (get_next_display_element): Display DEL as `^?'.
9187
91881999-07-23 Richard M. Stallman <rms@gnu.org>
9189
9190 * window.c (Fsplit_window): For default size, round up for left window.
9191
91921999-07-21 Joe Ramey <ramey@ti.com>
9193
d7d0dac0 9194 * filelock.c (lock_if_free): Return -1 if check_lock_owner
26901792
DL
9195 has returned -1 (lockfile exists but is not a symlink?).
9196
91971999-07-20 Gerd Moellmann <gerd@gnu.org>
9198
9199 * xterm.c (x_draw_bar_cursor): Use scratch_cursor_gc to
9200 because of a change in cursor_gc made in 20.4.
9201
92021999-07-19 Gerd Moellmann <gerd@gnu.org>
9203
9204 * xterm.c (x_calc_absolute_position): Subtract menu bar height
9205 for YNegative, if using X toolkit.
9206
427ec082 9207 * xfns.c (x_real_positions): Don't subtract window borders
26901792
DL
9208 from positions returned.
9209
92101999-07-17 Gerd Moellmann <gerd@gnu.org>
9211
9212 * xrdb.c (x_load_resources): Set double-click time defaults
9213 for Motif list boxes from double-click-time.
9214
9215 * fns.c (Vhash_table_tests): Remvoed.
9216 (Qhash_table_test): New.
9217 (syms_of_fns): Initialize Qhash_table_test.
9218 (Fmake_hash_table): Look up user-defined tests in symbol prop
9219 `hash-table-test'.
9220 (Fdefine_hash_table_test): Store test and hash function as
9221 symbol prop `hash-table-test'.
9222 (make_hash_table): Add parameters user_test and user_hash.
9223
9224 * window.c (set_window_buffer): Set window margins for tty
9225 frames, too.
9226 (Fset_window_margins): Ditto.
9227
9228 * term.c (append_glyph): Use glyph area of iterator instead of
9229 always TEXT_AREA.
9230
9231 * dispnew.c (update_frame_1): Add left margin width to cursor
9232 hpos.
9233 (direct_output_for_insert): Ditto.
9234 (direct_output_forward_char): Ditto.
9235
9236 * dispnew.c (adjust_glyph_matrix): Set glyph matrix' top_line_p.
9237
9238 * dispextern.h (struct glyph_matrix): Add top_line_p.
9239
92401999-07-16 Gerd Moellmann <gerd@gnu.org>
9241
9242 * frame.h (FRAME_WINDOW_REDISPLAY_P): Removed. Use FRAME_WINDOW_P
9243 instead.
9244
9245 * fns.c (cmpfn_eq): Add hash code parameters.
9246 (cmpfn_eql): Ditto.
9247 (cmpfn_equal): Ditto, and compare hash codes before calling Fequal.
9248 (cmpfn_user_defined): Likewise.
9249
92501999-07-15 Gerd Moellmann <gerd@gnu.org>
9251
9252 * lisp.h (DEFAULT_REHASH_THRESHOLD): Changed to 0.8.
9253
9254 * fns.c (maybe_resize_hash_table): Correct computation of
9255 index vector size.
9256 (make_hash_table): Ditto.
9257 (Fmakehash): New.
9258
9259 * xdisp.c (echo_area_display): Don't call redraw_garbaged_frames.
9260
9261 * alloc.c (gc_sweep): Call sweep_weak_hash_tables.
9262 (survives_gc_p): Make it externally visible.
9263 (mark_object): Ditto.
9264
9265 * fns.c (remove_hash_entry): Removed.
9266 (sweep_weak_hash_tables): New.
9267
9268 * print.c (print): Print more information about hash tables.
9269
9270 * xfns.c (image_spec_hash): Removed.
9271 (lookup_image): Use sxhash instead of image_spec_hash.
9272 (image_spec_equal_p): Removed.
9273 (lookup_image): Use Fequal instead of image_spec_equal_p.
9274
92751999-07-14 Gerd Moellmann <gerd@gnu.org>
9276
9277 * lisp.h (P_): Moved to top of file.
9278
9279 * fns.c (make_hash_table): Set new members.
9280
9281 * alloc.c (mark_object): Mark hash table's user_hash_function.
9282 Mark index vector for weak hash tables.
9283
9284 * lisp.h (struct Lisp_Hash_Table): Add user_cmp_function,
9285 user_hash_function, cmpfn, and hashfn.
9286
9287 * fns.c (build_hash): Removed.
9288 (hash_test): Removed.
9289 (cmpfn_eq, cmpfn_eql, cmpfn_equal, cmpfn_user_defined): New.
9290 (hashfn_eq, hashfn_eql, hashfn_equal, hashfn_user_defined): New.
9291
92921999-07-13 Gerd Moellmann <gerd@gnu.org>
9293
9294 * alloc.c (survives_gc_p): New.
9295
9296 * print.c (print): Add hash table handling.
9297
9298 * alloc.c (mark_object): Add code to mark hash tables.
9299
9300 * lisp.h (GC_HASH_TABLE_P): New.
9301
9302 * emacs.c (main): Call init_fns.
9303
9304 * fns.c (init_fns): New.
9305
9306 * fns.c: Add hash table implementation.
9307
9308 * lisp.h (PVEC_HASH_TABLE): New.
9309 (struct Lisp_Hash_Table): New.
9310 (XHASH_TABLE): New.
9311 (XSET_HASH_TABLE): New.
9312 (HASH_TABLE_P): New.
9313 (CHECK_HASH_TABLE): New.
9314 (DEFAULT_HASH_SIZE): New.
9315 (DEFAULT_REHASH_THRESHOLD): New.
9316 (DEFAULT_REHASH_SIZE): New.
9317
9318 * xterm.c (x_draw_glyphs): Add parameters real_start and real_end.
9319 (x_write_glyphs): Compute overwritten cursor using real start
9320 and end positions of display.
9321 (x_insert_glyphs): Ditto.
9322
93231999-07-10 Gerd Moellmann <gerd@gnu.org>
9324
9325 * keyboard.c (read_char): Use message3_nolog to show help-echo.
9326
9327 * dispnew.c (blank_row): Add y-position as parameter. Compute
9328 visible height.
9329
9330 * xdisp.c (next_element_from_string): Give padding spaces
9331 a position of -1.
9332
427ec082 9333 * dispnew.c (adjust_glyph_matrix): Some work to support
26901792
DL
9334 marginals areas on tty frames in a future version.
9335 (allocate_matrices_for_frame_redisplay): Ditto.
9336
9337 * xdisp.c (display_line): At ZV, set glyph row's displays_text_p
9338 to zero if number of glyphs in the row is <= 1.
9339
93401999-07-09 Gerd Moellmann <gerd@gnu.org>
9341
9342 * dispnew.c (buffer_posn_from_coords): Take left marginal area
9343 into account.
9344
9345 * xdisp.c (handle_display_prop): Don't reset area if handing
9346 a property from a string that came from a `display' property.
9347 (handle_single_display_prop): Don't handle recursive `display'
9348 properties.
9349 (handle_single_display_prop): Handle some display property
9350 forms for terminal frames.
9351 (Qimage): Moved here from xfns.c.
9352
9353 * dispextern.h (struct it): New field string_from_display_prop_p.
9354
9355 * xterm.c (x_clip_to_row): Don't let clip_rect include top
9356 line.
9357
93581999-07-08 Gerd Moellmann <gerd@gnu.org>
9359
9360 * xdisp.c (handle_single_display_prop): Handle `:when FORM'.
9361
9362 * window.c (set_window_buffer): Set window's vscroll to zero.
9363
9364 * xdisp.c (QCwhen): New.
9365 (display_prop_end): New.
9366 (handle_single_display_prop): Use it.
9367 (debug_method_add): Print buffer name if tracing.
9368 (try_window_reusing_current_matrix): Compute visible height
9369 of reused rows. Fix cursor position calculation in case of
9370 top-line.
9371
9372 * dispextern.h (struct redisplay_interface): Add parameter
9373 cursor_on_p to update_window_end_hook.
9374
9375 * xterm.c (x_update_window_end): Add parameter cursor_on_p.
9376
93771999-07-07 Gerd Moellmann <gerd@gnu.org>
9378
427ec082 9379 * xdisp.c (redisplay_internal): Ensure that redisplayinp_p
26901792
DL
9380 doesn't become negative when decrementing it.
9381
9382 * eval.c (Fsignal): Reset redisplaying_p to zero.
9383
9384 * xdisp.c (try_window_reusing_current_matrix): Call hooks
9385 for window update.
9386 (try_window_id): Ditto.
9387
9388 * xterm.c (x_clear_end_of_line): Handle top-line correctly.
9389 (x_scroll_run): Ditto.
9390 (any_help_event_p): New.
9391 (x_initialize): Set it to zero.
9392 (XTread_socket): Clear help echo only if any_help_event_p.
9393
9394 * xdisp.c (init_iterator): Set top_line_p.
9395 (start_display): Use correct initial y if top-line is present.
9396 (make_cursor_line_fully_visible): Bug fixes for top-line.
9397 (try_scrolling): Ditto.
9398 (try_window_reusing_current_matrix): Ditto.
9399
9400 * dispextern.h (struct it): Add top_line_p.
9401
9402 * dispnew.c (shift_glyph_matrix): Move some computations out
9403 of the loop.
9404
427ec082 9405 * dispnew.c (margin_glyphs_to_reserve): Use NUMBERP and
26901792
DL
9406 XFLOATINT.
9407
94081999-07-06 Gerd Moellmann <gerd@gnu.org>
9409
9410 * dispnew.c (update_frame_1): When setting cursor in echo area,
9411 skip only over padding spaces at the end.
9412
9413 * xfaces.c (realize_tty_face): Set face's font_name field to
9414 "tty".
9415
9416 * term.c (update_end): Turn cursor on only if selected window's
9417 cursor_off_p flag is not set.
9418
94191999-07-05 Gerd Moellmann <gerd@gnu.org>
9420
9421 * term.c (TS_cursor_visible): Renamed from TS_visual_mode.
9422 (TS_cursor_normal): Renamed from TS_end_visual_mode.
9423 (TS_cursor_invisible): New.
9424 (term_init): Initialize TS_cursor_invisible.
9425 (tty_hide_cursor): New.
9426 (tty_show_cursor): New.
9427 (update_end): Show tty cursor.
9428 (update_begin): Hide tty cursor to prevent cursor flickering
9429 during redisplays triggered by timers (stealth fontification).
9430
9431 * keyboard.c (make_lispy_event) <TOOLBAR_EVENT>: Apply modifiers.
9432
9433 * xterm.c (XTread_socket) [USE_MOTIF] <KeyPress>: Catch events
9434 in scroll bars.
9435 (x_handle_toolbar_click): Set modifier bits.
9436
94371999-07-04 Gerd Moellmann <gerd@gnu.org>
9438
9439 * keyboard.c (kbd_store_ptr): Declare it as a volatile pointer
9440 instead of a pointer to a volatile input_event.
427ec082 9441 (kbd_buffer_store_event): Remove volatile modifier from
26901792
DL
9442 declaration of local variable `sp'.
9443 (Fdiscard_input): Don't cast when assigning kbd_store_ptr
9444 to kbd_fetch_ptr.
9445
94461999-07-03 Gerd Moellmann <gerd@gnu.org>
9447
9448 * xdisp.c (try_window_id): Set beg_unchanged and end_unchanged
9449 only if buffer is modified. Return quickly if changes are
9450 above window start.
9451
94521999-07-02 Gerd Moellmann <gerd@gnu.org>
9453
9454 * dispextern.h (HSCROLL_WINDOWS): Removed.
9455
9456 * xdisp.c (mark_window_display_accurate): Don't set
9457 w->region_showing.
9458 (redisplay_internal): Don't call redraw_garbaged_frames.
9459
94601999-07-01 Gerd Moellmann <gerd@gnu.org>
9461
9462 * xdisp.c (echo_area_display): Don't display truncation marks
9463 for messages because 20.4 doesn't do it either.
9464 (redisplay_window): Case same window start. Instead of giving
9465 up when cursor is partially visible, make it fully visible.
9466 (mark_window_display_accurate): Some cleanup. Record window's
9467 last cursor information.
9468 (debug_method_add): Improved.
9469 (redisplay_internal): Record last cursor info only if not
9470 consider_all_windows_p.
9471
9472 * dispnew.c (update_window): Update top line after scrolling.
9473 (blank_row): Renamed from make_empty_enabled_row.
9474 (increment_glyph_row_buffer_positions): Increment positions
9475 in buffers, only.
9476
9477 * window.c (Fcoordinates_in_window_p): Add top-line to doc
9478 string.
9479
94801999-06-30 Gerd Moellmann <gerd@gnu.org>
9481
9482 * dispnew.c (update_window): Check that updated row is visible.
9483
9484 * xterm.c (x_draw_row_bitmaps): Check for invisible rows at
9485 top of window differently.
9486
9487 * xdisp.c (try_window_reusing_current_matrix): Don't do it
9488 if region is showing.
9489
9490 * dispnew.c (adjust_glyph_matrix): Check w->vscroll when
9491 avoiding matrix reallocation. Set window_vscroll in matrix.
9492
9493 * dispextern.h (struct glyph_matrix): Add member window_vscroll.
9494
26901792
DL
9495 * xdisp.c (debug_method_add): New.
9496 (debug_redisplay_method): Removed.
9497 (try_window_reusing_current_matrix): Handle case where old
9498 window start is the same as new window start.
9499
9500 * dispextern.h (struct glyph_matrix) [GLYPH_DEBUG]: Make `method'
9501 an array instead of a pointer.
9502
26901792
DL
9503 * xfns.c (Fx_show_tip): Undo previous change.
9504
9505 * xterm.c (x_append_glyph): Clear glyph->u.val.
9506
9507 * dispextern.h (struct glyph): Increase size of face_id bit-field
9508 for CHAR_GLYPH to 12.
9509
95101999-06-29 Gerd Moellmann <gerd@gnu.org>
9511
9512 * xfaces.c (x_charset_registry): Make it externally visible.
9513
95141999-06-28 Gerd Moellmann <gerd@gnu.org>
9515
427ec082 9516 * dispnew.c (update_window): Use mode_line_p flag of rows
26901792
DL
9517 instead of WINDOW_WANTS_MODELINE_P.
9518
9519 * xterm.c (clear_mouse_face): Make externally visible.
9520
9521 * xfns.c (Fx_show_tip): Clear mouse face before showing tip.
9522
9523 * xterm.c (expose_line): Handle exposure of top-lines.
9524
9525 * xterm.c (XTframe_up_to_date): Don't call note_mouse_highlight
9526 if mouse_face_mouse_frame is null.
9527
9528 * xdisp.c (redisplay_window): If window is echo_area_window,
9529 and update_mode_line is set, update menubar and toolbar.
9530
9531 * dispnew.c (space_glyph): Set its charpos to -1.
9532 (update_frame_1): Ignore trailing padding spaces.
9533
9534 * xdisp.c (next_element_from_c_string): Set position of padding
9535 glyphs to -1.
9536
95371999-06-27 Gerd Moellmann <gerd@gnu.org>
9538
9539 * xfns.c (x_laplace_read_row): Use XQueryColors instead of
9540 XQueryColor.
9541
9542 * xdisp.c (display_menu_bar): Remove unwarranted assertion.
9543 (set_cursor_from_row): Skip over glyphs having a null object at
9544 the start of rows.
9545 (insert_left_trunc_glyphs): Use charpos < 0 to indicate truncation
9546 glyphs.
9547 (handle_invisible_prop): Compute next change only when needed.
9548 (handle_face_prop): Don't correct DEFAULT_FACE_ID if in the mode
9549 line.
9550
95511999-06-26 Gerd Moellmann <gerd@gnu.org>
9552
9553 * xrdb.c (x_load_resources): Don't set resource for double-click
9554 time.
9555
9556 * xdisp.c (try_window_id): Return quickly if all changes are
9557 below the window's current matrix end.
9558
9559 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): Remove window
9560 parameter.
9561
9562 * xdisp.c (try_window_reusing_current_matrix): Set no_scrolling_p
9563 in desired not in current matrix.
9564 (try_window_reusing_current_matrix): Rotate matrices starting
9565 at start_vpos instead of 0.
9566
9567 * xterm.c (expose_window): Use window_text_bottom_y.
9568 (fast_find_position): Ditto.
9569
9570 * xdisp.c (redisplay_window): Use window_text_bottom_y.
9571 (try_window_reusing_current_matrix): Ditto.
9572 (get_last_unchanged_at_beg_row): Ditto.
9573 (init_iterator): Ditto.
9574
9575 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate one
9576 more row.
9577 (check_matrix_invariants): Use window_text_bottom_y.
9578 (update_window): Ditto.
9579 (scrolling_window): Ditto.
9580
9581 * xdisp.c (window_text_bottom_y): New.
9582
95831999-06-25 Gerd Moellmann <gerd@gnu.org>
9584
9585 * xterm.c (XTread_socket): Set mouse_face_frame to zero after
9586 clearing mouse face.
9587 (XTread_socket) <EnterNotify> [LESSTIF_VERSION]: If
9588 event.xcrossing.focus is not set, and focus is in the menu bar,
9589 set focus frame as if event.xcrossing.focus were set.
9590
95911999-06-24 Gerd Moellmann <gerd@gnu.org>
9592
9593 * keyboard.c (make_lispy_event): Handle mouse on top lines.
9594 * keyboard.c (make_lispy_movement): Ditto.
9595
9596 * window.c (coordinates_in_window): Return 4 if on top line.
9597 (Fcoordinates_in_window_p): Return `top-line' if on top line.
9598
9599 * xdisp.c (window_box_height): Subtract top line height.
9600 (window_box): Add top line height to top y position if top line
9601 exists.
9602 (init_iterator): If base_face_id is TOP_LINE_FACE_ID, set row to
9603 the top line row of the window. Set initial y-position to
9604 window's top line height plus delta.
9605 (start_display): Choose start glyph row depending on whether
9606 window has a top line.
9607 (try_scrolling): Take top line height into account for aggressive
9608 scrolling.
9609 (compute_window_start_on_continuation_line): Take top line into
9610 account.
427ec082 9611 (redisplay_window): Ditto. If top line height has changed,
26901792
DL
9612 trigger a new redisplay.
9613 (try_window_reusing_current_matrix): Take top line into account.
9614 (find_last_row_displaying_text): Ditto.
9615 (get_last_unchanged_at_beg_row): DItto.
9616 (try_window_id): Ditto.
9617 (compute_line_metrics): Ditto.
9618
9619 * dispnew.c (shift_glyph_matrix): Compute visible row height
9620 taking top line of window into account.
9621 (update_window): Update top line. If scrolling_window detects
9622 that all rows are equal, only set cursor.
9623 (update_window_line): Call after_update_window_line_hook if
9624 mode_line_p flag of rows has changed.
9625 (scrolling_window): Add parameter top_line_p. Return -1 if
9626 all rows are equal.
9627 (mode_line_string): Add parameter mode_line_p. Handle strings
9628 in top lines.
9629
9630 * dispextern.h (MATRIX_TOP_LINE_ROW): New.
9631 (MATRIX_FIRST_TEXT_ROW): New.
9632 (MATRIX_ROW_PARTIALLY_VISIBLE_P): Use row's visible_height.
9633 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_TOP_P): New.
9634 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_BOTTOM_P): New.
9635 (MATRIX_TOP_LINE_HEIGHT): New.
9636 (CURRENT_MODE_LINE_HEIGHT): Use estimate_mode_line_height.
9637 (CURRENT_TOP_LINE_HEIGHT): New.
9638 (DESIRED_TOP_LINE_HEIGHT): New.
9639 (WINDOW_DISPLAY_TOP_LINE_HEIGHT): New.
9640 (WINDOW_DISPLAY_HEIGHT_NO_MODE_LINE): Replaces
9641 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
9642 (WINDOW_DISPLAY_TEXT_HEIGHT): New.
9643
9644 * xterm.c (x_after_update_window_line): Don't draw bitmaps for top
9645 lines.
9646 (x_draw_row_bitmaps): Take top line into account when clearing
9647 bitmap area.
9648 (x_estimate_mode_line_height): Replacement for
9649 x_frame_mode_line_height.
9650 (x_get_glyph_string_clip_rect): Take top line into account.
9651 (x_clear_end_of_line): Ditto.
9652 (note_mode_line_highlight): Add parameter mode_line_p. Handle
9653 top lines.
9654 (note_mouse_highlight): Call note_mode_line_highlight for top lines.
9655 (x_erase_phys_cursor): Take top line into account.
9656
9657 * xdisp.c (window_box_height): Subtract top line height if
9658 window wants a top line.
9659 (display_mode_lines): New.
9660 (redisplay_window): Call it.
9661 (display_mode_line): Add parameters face_id and format.
9662
9663 * dispextern.h (CURRENT_TOP_LINE_HEIGHT): New.
9664 (MATRIX_TOP_LINE_HEIGHT): New.
9665
9666 * xterm.c (x_frame_mode_line_height): Add parameter face_id.
9667
9668 * term.c (estimate_mode_line_height): Renamed from
9669 frame_mode_line_height. Add parameter face_id.
9670 (estimate_mode_line_height_hook): Renamed from
9671 frame_mode_line_height_hook.
9672 (produce_special_glyphs_hook): Removed.
9673 (produce_glyphs_hook): Removed.
9674
96751999-06-23 Gerd Moellmann <gerd@gnu.org>
9676
9677 * dispextern.h (WINDOW_WANTS_TOP_LINE_P): New.
9678 (struct glyph_row): Add mode_line_p.
9679
9680 * xfaces.c (realize_basic_faces): Realize face `top-line'.
9681 (Qtop_line): New.
9682 (syms_of_xfaces): Initialize Qtop_line.
9683
9684 * dispextern.h (TOP_LINE_FACE_ID): New.
9685
9686 * buffer.c (init_buffer_once): Set default for
9687 top_line_format to nil.
9688 (init_buffer_once): Init top_line_format.
9689 (default-top-line-format): New.
9690 (top-line-format): New buffer-local variable.
9691
9692 * buffer.h: Add top_line_format.
9693
9694 * xdisp.c (overlay_arrow_changed_p): Removed because not used.
9695
96961999-06-17 Dave Love <fx@gnu.org>
9697
9698 * xfns.c: Move the PNG section before the JPEG one to avoid
9699 problems surrounding setjmp.h/png.h on GNU/Linux.
427ec082 9700
26901792
DL
97011999-06-17 Gerd Moellmann <gerd@gnu.org>
9702
9703 * xfns.c (x_kill_gs_process): Don't free colors.
9704
97051999-06-17 Dave Love <fx@gnu.org>
9706
9707 * s/gnu-linux.h: Zap spurious ~.
9708
97091999-06-16 Gerd Moellmann <gerd@gnu.org>
9710
9711 * xfns.c (gif_load): Improve multi-image support.
9712
97131999-06-15 Gerd Moellmann <gerd@gnu.org>
9714
9715 * xfns.c (gif_load): Support multi-image files.
9716
9717 * Makefile.in (LIBGIF): Use libungif.
9718
9719 * configure.in (HAVE_GIF): Use libungif instead of libgif
9720 because the former doesn't contain patented compression code.
9721
9722 * xdisp.c (compute_window_start_on_continuation_line): Don't
9723 do it if line start is too far away from window start.
9724
97251999-06-14 Gerd Moellmann <gerd@gnu.org>
9726
9727 * buffer.c (init_buffer_once): Set buffer_local_flags for
9728 scroll_*_aggressively.
9729 (syms_of_buffer): Add DEFVAR_PER_BUFFER for scroll-*-aggressively.
9730 (init_buffer_once): Set defaults for these variables.
9731 (syms_of_buffer): Add default-scroll-*-aggressively.
9732
9733 * buffer.h (scroll_up_aggressively): New.
9734 (scroll_down_aggressively): New.
9735
9736 * Makefile.in (LIBPNG): Add -lz -lm in case we're linking with
9737 a static PNG library.
9738
9739 * configure.in (HAVE_PNG): Add -lz -lm when checking for PNG lib
9740 in case it's a static library.
9741
9742 * Makefile.in (ctagsfiles): Split so that files starting
9743 with an `x' are found before files starting with `w32'.
9744 (ctagsfiles1): New.
9745 (ctagsfiles2): New.
9746 (TAGS): Use ctagsfiles[12] instead of ctagsfiles.
9747
9748 * xdisp.c (compute_window_start_on_continuation_line): New.
9749 (redisplay_window): Use it.
9750 (INFINITY): New.
9751 (reseat_to_string): Use it.
9752 (hscroll_window_tree): Ditto.
9753 (compute_window_start_on_continuation_line): Ditto.
9754 (redisplay_window): Don't force display with a new window start.
9755
97561999-06-06 Gerd Moellmann <gerd@gnu.org>
9757
9758 * xfns.c (x_report_frame_params): Don't report `outer-window-id'
9759 if widget not present.
9760
9761 * xdisp.c (prepare_menu_bars): Ignore tooltip frame.
9762
97631999-06-04 Gerd Moellmann <gerd@gnu.org>
9764
9765 * xfaces.c (recompute_basic_faces)[GLYPH_DEBUG]: Check return
9766 value of realize_basic_faces.
9767 (load_face_font_or_fontset): Store full font name in face.
9768 (realize_default_face): Use full font name.
9769
26901792
DL
9770 * xterm.c (x_produce_glyphs): Set member char_to_display.
9771 (x_append_glyph): Store char_to_display in glyphs.
9772
9773 * dispextern.h (struct it): Add char_to_display.
9774
9775 * xfns.c (x_set_font): Don't call face-set-after-frame-default
9776 if faces haven't been initialized.
9777 (Fx_create_frame): Call face-set-after-frame-default after
9778 faces have been initialized, and widget has been created.
9779
9780 * puresize.h (BASE_PURESIZE): Increased.
9781
97821999-06-01 Gerd Moellmann <gerd@gnu.org>
9783
9784 * xfaces.c (set_lface_from_font_name): Add parameter force_p.
9785 (Finternal_set_lisp_face_attribute): If frame is t when
9786 :font attribute is set, use the selected frame.
9787 (clear_face_cache): Add parameter clear_fonts_p.
9788 (Fclear_face_cache): Add optional parameter thorougly.
9789
9790 * xfaces.c (face_numeric_value): Return -1 if symbol is not
9791 in table.
9792 (Fclear_face_cache): New.
9793 (choose_face_fontset_font): If fontset doesn't contain font
9794 pattern for the given charset, use CHARSET_ASCII.
9795 (Finternal_set_lisp_face_attribute): Fix handling of nil
9796 stipple attribute.
9797 (Finternal_set_lisp_face_attribute): Fix handling of changing
9798 font-related face attributes of the default face.
9799 (set_lface_from_font_name): Set only attributes that aren't
9800 specified.
9801
98021999-05-31 Gerd Moellmann <gerd@gnu.org>
9803
9804 * xfaces.c (SCALABLE_FONTS): Define this to enable scalable
9805 font support.
9806 (Vscalable_fonts_allowed) [SCALABLE_FONTS]: New.
9807 (x_face_list_fonts): Add parameter scalable_fonts_p. Handle
9808 scalable fonts depending on the setting of SCALABLE_FONTS.
9809 (first_font_matching): List more than one font to find the
9810 first non-scalable matching font.
9811 (sorted_font_list): Let x_face_list_fonts return scalable fonts
9812 depending on SCALABLE_FONTS.
9813 (better_font_p): New parameter compare_pt_p. If zero, don't
9814 compare point sizes of fonts.
9815 (exact_face_match_p) [SCALABLE_FONTS]: New.
9816 (build_scalable_font_name) [SCALABLE_FONTS]: New.
9817 (may_use_scalable_font_p) [SCALABLE_FONTS]: New.
9818 (best_matching_font) [SCALABLE_FONTS]: Handle scalable fonts.
9819 (syms_of_xfaces): Add scalable-fonts-allowed.
9820
98211999-05-26 Gerd Moellmann <gerd@gnu.org>
9822
9823 * xfns.c (png_load): Let PNG lib handle gamma. Construct
9824 mask only if image contains simple transparency information.
9825 Otherwise, combine image with frame background color.
9826
9827 * configure.in (--with-png, HAVE_PNG): New.
9828
9829 * config.in (HAVE_PNG): New.
9830
9831 * Makefile.in: Add PNG library.
9832
9833 * xfns.c: Add PNG support.
9834
98351999-05-25 Gerd Moellmann <gerd@gnu.org>
9836
9837 * xdisp.c (init_xdisp): Initialize echo_area_message and
9838 previous_echo_area_message to nil.
9839
9840 * keyboard.c (read_char): Rename local variable echo_area_message
9841 because it shadows the global one.
9842
98431999-05-05 Gerd Moellmann <gerd@gnu.org>
9844
9845 * xterm.c (note_mode_line_highlight): Restructured.
9846
9847 * window.c (coordinates_in_window): Handle windows that don't have
9848 a mode line because their buffer's mode-line-format is nil.
9849 Recognize the mode line under x positions that correspond to
9850 flags areas and left scroll bar.
9851
98521999-05-02 Dave Love <fx@gnu.org>
9853
9854 * xterm.c (note_mouse_highlight): Separate help-echo processing
9855 from check on mouse-face so that it works generally.
9856
98571999-04-21 Gerd Moellmann <gerd@gnu.org>
9858
9859 * sound.c (Fplay_sound): Run hook play-sound-hook.
9860 (Qplay_sound_hook): New.
9861
98621999-04-20 Gerd Moellmann <gerd@gnu.org>
9863
9864 * xdisp.c (update_echo_area): Handle echo_area_message.
9865
98661999-04-19 Gerd Moellmann <gerd@gnu.org>
9867
9868 * editfns.c (Fmessage): Use message3.
9869
9870 * print.c (printchar): Set echo_area_message to nil.
9871 (strout): Ditto.
9872
9873 * minibuf.c (read_minibuf): Reset echo message strings to nil.
9874 (Fminibuffer_completion_help): Ditto.
9875
9876 * keyboard.c (cmd_error_internal): Set echo_areA_message.
9877 (command_loop_1): Test echo_areA_message.
9878 (read_char): Ditto.
9879 (record_menu_key): Set echo_area_message to nil.
9880 (Fexecute_extended_command): Test echo_area_message.
9881 (Fexecute_extended_command): Handle echo_area_message.
9882
9883 * fileio.c (Fdo_auto_save): Handle the case that echo_area_message
9884 is set.
9885
9886 * editfns.c (Fcurrent_message): If echo_area_message is set,
9887 return a substring of that string.
9888
9889 * dispnew.c (direct_output_for_insert): Test echo_area_message
9890 in addition to echo_area_glyphs.
9891 (set_window_cursor_after_update): Ditto.
9892 (update_frame_1): Ditto.
9893
9894 * alloc.c (Fgarbage_collect): Use message3_nolog to display
9895 old Lisp message string.
9896
9897 * xdisp.c (echo_area_message): New.
9898 (previous_echo_area_message): New.
9899 (syms_of_xdisp): Initialize and staticpro new variables.
9900 (echo_area_display): Display echo_area_message if set.
9901 (message2_nolog): Set echo_area_message and
9902 previous_echo_area_message.
9903 (echo_area_display): Set previous_echo_area_message.
9904 (redisplay_internal): Display echo area if echo_area_message
9905 or previous_echo_area_message are set.
9906 (redisplay_preserve_echo_area): Test/set echo_area_message and
9907 previous_echo_area_message.
9908 (redisplay_window): Test echo_area_message.
9909 (message3_nolog): New.
9910 (message3): New.
9911
9912 * editfns.c (Fformat): Add text properties to the result string
9913 from properties of the format string and properties of string
9914 arguments.
9915
9916 * textprop.c (text_property_list): New.
9917 (add_text_properties_from_list): New.
9918 (extend_property_ranges): New.
9919
99201999-03-29 Gerd Moellmann <gerd@gnu.org>
9921
9922 * xfaces.c (Qraised, Qsunken, QCshadow): Removed.
9923 (QCline_width, QCstyle, Qpressed_button, Qreleased_button): New.
9924 Use these symbols for the box face attribute instead of the
9925 removed ones.
9926
99271999-03-12 Gerd Moellmann <gerd@gnu.org>
9928
9929 * xfaces.c (realize_tty_face): Don't set alt_char_p of face.
9930 Correct wrong test for slant.
9931
99321999-03-10 Gerd Moellmann <gerd@gnu.org>
9933
9934 * xfaces.c: Use `unspecified' for unspecified face attributes,
9935 use t and nil for on/off.
9936
99371999-03-06 Gerd Moellmann <gerd@gnu.org>
9938
9939 * buffer.c (syms_of_buffer): Extend doc string of
9940 mode-line-format.
9941
9942 * xfaces.c (x_face_list_fonts): New parameter try_alternatives_p.
9943 (first_font_matching): New.
9944 (set_lface_from_font_name): Use it if font name is a pattern.
9945 (font_field_wildcard_p): Removed.
9946
9947 * dispnew.c (shift_glyph_matrix): Add `window' parameter.
9948 Recompute visible height of rows.
9949
9950 * xterm.c (note_mouse_highlight): Reorder code for help-echo.
9951 Don't accept non-strings for help-echo from overlays.
9952
99531999-03-04 Dave Love <fx@gnu.org>
9954
9955 * xterm.c (note_mouse_highlight): Check overlays for help-text
9956 property.
9957 (XTread_socket): Fix compiler warning.
427ec082 9958
26901792
DL
99591999-03-05 Gerd Moellmann <gerd@gnu.org>
9960
427ec082 9961 * xterm.c (note_mouse_highlight): Don't restrict number of
26901792
DL
9962 overlay to 10. Call overlays_at so that it doesn't try to
9963 extend the vector.
9964
9965 * xdisp.c (compute_line_metrics): Compute glyph row's visible
9966 height.
9967
9968 * dispnew.c (row_equal_p): Compare visible row height, only.
9969 (update_text_area): Draw whole line if visible heights of
9970 rows differ.
9971 (update_window_line): Call after_update_window_line_hook
9972 if visible row height has changed.
9973
9974 * dispextern.h (MATRIX_ROW_VISIBLE_HEIGHT): Removed.
9975 (struct glyph_row): New member visible_height.
9976
9977 * xfaces.c (font_field_wildcard_p): New.
9978 (set_lface_from_font_name): Remove parameter force_p. Accept
9979 font names containing wildcards.
9980
99811999-03-04 Gerd Moellmann <gerd@gnu.org>
9982
9983 * xterm.c (x_after_update_window_line): Clear internal border
9984 when windows_or_buffers_changed.
9985
9986 * dispextern.h (WINDOW_WANTS_MODELINE_P): Return zero if window's
9987 buffer has a nil mode_line_format.
9988
99891999-03-03 Gerd Moellmann <gerd@gnu.org>
9990
9991 * xterm.c (x_setup_relief_colors): Use either background color
9992 or specified color.
9993
9994 * xfaces.c (realize_x_face): Set face->use_box_color_for_shadows_p.
9995
9996 * dispextern.h (struct face): Add use_box_color_for_shadows_p.
9997
9998 * xterm.c (x_draw_box_rect): New.
9999 (x_draw_glyph_string_box): Renamed from
10000 x_draw_glyph_string_relief. Call x_draw_box_rect.
10001
10002 * xfns.c (QCrelief): New.
10003 (syms_of_xfns): Initialize it.
10004
10005 * dispextern.h (struct glyph): Rename left_shadow_p to
10006 left_box_line_p, right_shadow_p to right_box_line_p.
10007 (MAX_RELIEF_THICKNESS): Removed.
10008 (struct it): Rename members having `relief' in their names
10009 to contain `box' instead.
10010
10011 * xfaces.c (realize_x_face): Handle new box attribute values.
10012 (QCrelief, Qbox): Removed.
10013 (QCshadow, QCcolor, Qraised, Qsunken): New.
10014 (syms_of_xfaces): Initialize new symbols.
10015
100161999-03-02 Gerd Moellmann <gerd@gnu.org>
10017
10018 * dispextern.h (LFACE_RELIEF_INDEX): Removed.
10019
10020 * xfaces.c (LFACE_RELIEF): Removed.
10021 (merge_face_vector_with_property): Remove handling of `:relief'.
10022 (Finternal_set_lisp_face_attribute): Ditto.
10023 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
10024 (Finternal_get_lisp_face_attribute): Ditto.
10025 (realize_default_face): Ditto.
10026 (lface_hash): Don't compute hash from relief.
10027
10028 * dispextern.h (struct face): Replace member `relief' by
10029 `box_line_width'. Add member `box'.
10030 (face_box_type): New.
10031
10032 * xterm.c (x_produce_glyphs): If face has overline, add overline
10033 thickness + 1 to ascent.
10034
100351999-03-01 Gerd Moellmann <gerd@gnu.org>
10036
10037 * xterm.c (x_draw_glyph_string): Draw underline, overline,
10038 strike-through, and boxes.
10039 (x_draw_glyph_string_underline): Removed.
10040
10041 * xfaces.c (QCoverline, QCstrike_through, QCbox): New.
10042 (Qoverline, Qstrike_through, Qbox): New.
10043 (syms_of_xfaces): Define these symbols.
10044 (check_lface_attrs): Add checks for overline, strike-through,
10045 and box.
10046 (Finternal_set_lisp_face_attribute): Set new attributes.
10047 (LFACE_OVERLINE, LFACE_STRIKE_THROUGH, LFACE_BOX): New.
10048 (load_color): Handle new attributes.
10049 (realize_x_face): Ditto.
10050 (merge_face_vector_with_property): Ditto.
10051 (free_face_colors): Ditto.
10052 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
10053 (Finternal_get_lisp_face_attribute): Ditto.
10054 (Finternal_lisp_face_attribute_values): Ditto.
10055
10056 * dispextern.h (lface_attribute_index): Add enumerators for
10057 overstrike, strike-through, and box.
10058 (struct face): Add members for overline, strike-through, and
10059 box.
10060
100611999-02-17 Dave Love <fx@gnu.org>
10062
10063 * s/gnu-linux.h s/gnu.h s/irix5-0.h s/netbsd.h s/sco4.h s/sco5.h
10064 s/template.h (NARROWPROTO): Define on the basis of relevant X cf
10065 files.
10066
100671999-02-16 Gerd Moellmann <gerd@gnu.org>
10068
10069 * keyboard.c (toolbar_items): Call access_keymap with third
10070 parameter 1, so that we don't get inherited toolbar item
10071 definitions.
10072
10073 * xdisp.c (redisplay_internal): In optimization 1, don't decrement
10074 the window end vpos when in empty first line of window.
10075
100761999-02-15 Gerd Moellmann <gerd@gnu.org>
10077
10078 * xfaces.c (set_font_frame_param): New.
10079 (Finternal_set_lisp_face_attribute): Call it.
10080
10081Sun Feb 14 10:54:02 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
10082
10083 * xfaces.c (Finternal_set_lisp_face_attribute_from_resource):
10084 Accept specifications of color for underline.
10085
100861999-02-13 Gerd Moellmann <gerd@gnu.org>
10087
10088 * xfaces.c (Finternal_set_lisp_face_attribute): If parameter
10089 `frame' is t, operate on face defaults for new frames. If it
10090 is nil, operate on the selected frame.
10091
100921999-02-12 Gerd Moellmann <gerd@gnu.org>
10093
10094 * dispnew.c (check_matrix_invariants): Put it in #if 0.
10095 (update_window): Put the call to check_matrix_invariants in #if 0.
10096
10097Sun Feb 7 09:58:49 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
10098
10099 * dispextern.h: Remove all else block of UNDERLINE_COLOR.
10100 Remove definition of UNDERLINE_COLOR.
10101
10102Mon Jan 4 04:43:41 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
10103
10104 * xfaces.c (free_face_colors): Free the color for underline.
10105
10106 * xterm.c (x_draw_glyph_string_underline): Set the color for underline
10107 to the GC.
10108
10109Sun Jan 3 08:41:10 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
10110
10111 * dispextern.h (UNDERLINE_COLOR): Defined.
10112 (struct face): Added two new members.
10113 underline_color, underline_defaulted_p.
10114
427ec082 10115 * xfaces.c (merge_face_vector_with_property):
26901792 10116 (check_lface_attrs): Accept the string value for underline.
427ec082 10117 (Finternal_set_lisp_face_attribute): Likewise.
26901792
DL
10118
10119 * xfaces.c (load_color): Change the last argument type to enum
10120 lface_attribute_index from int. And addec code for underling coloring.
10121 (load_face_colors): Pass LFACE_*_INDEX to load_color.
427ec082 10122
26901792
DL
101231999-02-12 Gerd Moellmann <gerd@gnu.org>
10124
10125 * xfns.c (Fx_image_header): Removed.
10126
101271999-02-07 Gerd Moellmann <gerd@gnu.org>
10128
10129 * xterm.c: Don't include <bitmaps/gray>.
10130 (x_term_init): Use gray_bitmap_width and gray_bitmap_height.
10131
10132 * xfns.c (Fx_image_header): Add missing `\n\'.
10133 (gray_bitmap_width, gray_bitmap_height, gray_bitmap_bits): New.
10134
101351999-02-01 Gerd Moellmann <gerd@gnu.org>
10136
10137 * xterm.c (x_scroll_bar_create): Set background pixel from
10138 specified scroll bar color.
10139 (x_scroll_bar_set_handle): Use scroll bar foreground color.
10140
10141 * xfns.c (x_set_scroll_bar_foreground): Remove all scroll bars.
10142 (x_set_scroll_bar_background): Ditto.
10143
10144 * xterm.c (x_create_toolkit_scroll_bar): Set scroll bar colors.
10145
10146 * xfns.c (x_default_scroll_bar_color_parameter): New.
10147 (Fx_create_frame): Call it.
10148
101491999-01-31 Gerd Moellmann <gerd@gnu.org>
10150
10151 * xfns.c (Fx_create_frame): Initialize scroll bar pixel color
427ec082 10152 values in x_output structure.
26901792
DL
10153 (Qscroll_bar_foreground, Qscroll_bar_background): New.
10154 (syms_of_xfns): Initialize these symbols.
10155
10156 * xterm.h (struct x_output): Add scroll bar pixel colors.
10157
10158 * xfns.c (x_frame_parms): Add entries for scroll bar colors.
10159 (x_set_scroll_bar_foreground): New.
10160 (x_set_scroll_bar_background): New.
10161
26901792
DL
101621999-01-12 Gerd Moellmann <gerd@gnu.org>
10163
10164 * xdisp.c (handle_single_display_prop): New.
10165 (handle_display_prop): Call it.
10166 (handle_raise_prop): Removed.
10167 (handle_height_prop): Removed.
10168 (handle_space_width_prop): Removed.
10169 (handle_face_prop): Remove handling of raised text.
10170 (handle_display_prop): Do it here.
10171
10172 * dispextern.h (DISPLAY_PROP_IDX): Replaces GLYPH_PROP_IDX.
10173 (RAISE_PROP_IDX): Removed.
10174 (HEIGHT_PROP_IDX): Removed.
10175 (SPACE_WIDTH_PROP_IDX): Removed.
10176
10177 * xdisp.c (Qdisplay): Replaces Qglyph.
10178 (handle_display_prop): Formerly handle_glyph_prop.
10179
101801999-01-11 Gerd Moellmann <gerd@gnu.org>
10181
10182 * xdisp.c (reseat_to_string): Set position in display vector to -1.
10183 (handle_stop): Set position in display vector to -1. Don't
10184 check overlay strings when set up to deliver characters from a
10185 display vector.
10186 (set_iterator_to_next): At the end of a run of characters from a
10187 display vector, check whether the display vector display replaces
10188 the display of a character.
10189
101901999-01-05 Gerd Moellmann <gerd@gnu.org>
10191
10192 * xfaces.c (init_frame_faces): Don't realize faces if frame's
10193 X window hasn't been created yet.
10194
101951998-12-06 Gerd Moellmann <gerd@gnu.org>
10196
10197 * sound.c: New.
10198
101991998-12-04 Gerd Moellmann <gerd@gnu.org>
10200
10201 * config.in (HAVE_SOUND): New.
10202
10203 * emacs.c (main): Call syms_of_sound and init_sound.
10204
10205 * Makefile.in (obj): Add sound.o.
10206
10207 * configure.in: Add checks for machine/soundcard.h and sys/soundcard.h.
10208
10209 * config.in (HAVE_MACHINE_SOUNDCARD_H): New.
10210 (HAVE_SYS_SOUNDCARD_H): New.
10211
102121998-12-03 Gerd Moellmann <gerd@gnu.org>
10213
10214 * buffer.h (struct buffer): indicate_empty_lines renamed from
10215 indicate_zv_lines.
10216
10217 * buffer.c (indicate-empty-lines): Renamed from indicate_zv_lines.
10218 (default-indicate-zv-lines): Likewise.
10219
10220 * dispextern.h (struct glyph_row): Rename indicate_zv_line_p
10221 to indicate_empty_line_p.
10222
10223 * xdisp.c (reseat_at_next_visible_line_start): Reset method
10224 to next_element_from_buffer.
10225
10226 * frame.c (make_frame): Set n_current_toolbar_items to 0.
10227
10228 * xdisp.c (handle_face_prop): Allow symbols of the form `N+'
10229 and `N-'.
10230
10231 * xfns.c (xbm_scan): New.
10232 (xbm_read_hexint): Removed.
10233 (xbm_read_bitmap_file_data): Use xbm_scan.
10234
10235 * fileio.c (Finsert_file_contents): Prevent redisplay optimizations.
10236
102371998-12-02 Gerd Moellmann <gerd@gnu.org>
10238
10239 * xfns.c (xbm_read_hexint): New.
10240 (xbm_read_bitmap_file_data): New.
10241 (xbm_load_image_from_file): Call xbm_read_bitmap_file_data
10242 instead of XReadBitmapFileData.
10243
10244 * xdisp.c (handle_raise_prop): Compute voffset from current font.
10245
10246 * xfaces.c (face_with_height): New.
10247
10248 * xdisp.c (eval_handler): Renamed from eval_mode_handler.
10249 (eval_form): Renamed from eval_mode_element.
10250 (handle_face_prop): Use it.
10251 (Qheight): Replaces Qsmaller.
10252 (handle_height_prop): Replaces handle_smaller_prop.
427ec082 10253 (handle_face_prop): If iterator's font_height is not an
26901792
DL
10254 integer, evaluate it to get the font height to use.
10255
10256 * dispextern.h (HEIGHT_PROP_IDX): Replaces SMALLER_PROP_IDX.
10257 (struct it): Use `font_height' instead of `smaller'.
10258
102591998-12-01 Gerd Moellmann <gerd@gnu.org>
10260
10261 * xdisp.c (reseat_1): New.
10262 (reseat): Call it.
10263 (move_it_vertically_backward): Ditto.
10264 (redisplay_window): Don't abort when cursor not found in recenter.
10265
102661998-11-30 Gerd Moellmann <gerd@gnu.org>
10267
10268 * xdisp.c (reseat_at_next_visible_line_start): When not
10269 currently delivering display elements from the current buffer,
10270 restore buffer position first.
10271 (init_from_display_pos): Don't set IT's position from the
10272 position passed to this function.
10273
102741998-11-28 Gerd Moellmann <gerd@gnu.org>
10275
10276 * config.in (PROTO): Removed.
10277
10278 * xterm.h: Change PROTO to P_.
10279
102801998-11-26 Gerd Moellmann <gerd@gnu.org>
10281
10282 * xterm.c (take_vertical_position_into_account): New.
10283 (x_produce_image_glyph): Call it.
10284 (x_produce_stretch_glyph): Ditto.
10285 (x_produce_glyphs): Ditto.
10286 (x_fill_glyph_string): Adjust base line for glyph's voffset.
10287 (x_fill_composite_glyph_string): Ditto.
10288 (x_fill_image_glyph_string): Ditto.
10289 (x_fill_stretch_glyph_string): Ditto.
10290
10291 * xdisp.c (display_line): Always compute row height from
10292 max_ascent and max_descent.
10293
10294 * dispextern.h (struct glyph): Add voffset.
10295 (struct it): Replace height by descent, max_height by max_descent.
10296
10297 * xterm.c (x_append_glyph): Set voffset
10298 (x_append_stretch_glyph): Ditto.
10299 (x_produce_image_glyph): Ditto.
10300 (x_produce_glyphs): Take voffset into account.
10301 (x_produce_image_glyph): Ditto.
10302 (x_produce_stretch_glyph): Ditto.
10303
10304 * dispextern.h (struct it): Add voffset.
10305 * xdisp.c (push_it): Save voffset.
10306 (pop_it): Restore it.
10307
10308 * xdisp.c (it_props): Add entry for `raise'.
10309 (handle_raise_prop): New.
10310
10311 * dispextern.h (RAISE_PROP_IDX): New.
10312
10313 * xdisp.c (Qraise): New.
10314 (syms_of_xdisp): Define Qraised.
10315
10316 * xterm.c (x_scroll_bar_move): Clear to the left and right
10317 of toolkit scroll bars differently.
10318 (x_scroll_bar_move): Removed.
10319 (XTset_vertical_scroll_bar): Move code from x_scroll_bar_move here.
10320
10321 * dispextern.h: Make it compilable --with-x=no.
10322 * alloc.c: Ditto.
10323 * emacs.c: Ditto.
10324 * dispnew.c: Ditto.
10325 * keyboard.c: Ditto.
10326 * term.c: Ditto.
10327 * xdisp.c: Ditto.
10328 * xfaces.c: Ditto.
10329 * xfns.c: Ditto.
10330 * xmenu.c: Ditto.
10331
103321998-11-25 Gerd Moellmann <gerd@gnu.org>
10333
10334 * xterm.c (XTread_socket): Cancel help-echo when leaving frame.
10335
103361998-11-24 Gerd Moellmann <gerd@gnu.org>
10337
10338 * xterm.c (x_set_toolkit_scroll_bar_thumb): When dragging,
10339 update slider size, only.
10340 (xm_scroll_callback): Set dragging member of the scroll bar.
10341 (xt_action_hook): Reset last_scroll_bar_part.
10342 (XTredeem_scroll_bar): Reset bar->dragging to nil.
10343
26901792
DL
10344 * xfns.c (Fx_hide_busy_cursor): Don't try to hide busy cursor
10345 window on newly created frames that don't have one.
10346
103471998-11-23 Gerd Moellmann <gerd@gnu.org>
10348
10349 * xdisp.c (restore_overlay_strings): Removed.
10350 (restore_dpvec): Removed.
10351 (init_from_display_pos): Inline both functions above.
10352
10353 * xfns.c (IMAGE_NON_NEGATIVE_INTEGER_VALUE): New.
10354 (parse_image_spec): Handle it.
10355 (xbm_format): Use it.
10356 (xpm_format): Ditto.
10357 (pbm_format): Ditto.
10358 (jpeg_format): Ditto.
10359 (tiff_format): Ditto.
10360 (gif_format): Ditto.
10361 (gs_format): Ditto.
10362
10363 * xdisp.c (set_window_cursor): Removed.
10364 (redisplay_internal): Case cursor motion in cursor line of
10365 selected window; use set_cursor_from_row.
10366
103671998-11-22 Gerd Moellmann <gerd@gnu.org>
10368
10369 * widget.c (EmacsFrameSetCharSize): Take widget's border width
10370 into account.
10371
103721998-11-21 Gerd Moellmann <gerd@gnu.org>
10373
10374 * xterm.c (expose_frame): Redraw menu bar window.
10375
10376 * xdisp.c (display_menu_bar): Record hpos instead of x-position
10377 in menu item.
10378
10379 * dispnew.c (change_frame_size_1): Use FRAME_TOP_MARGIN instead
10380 of FRAME_TOOLBAR_LINES. Use `f' instead of `frame'.
10381
10382 * widget.c (set_frame_size): Use FRAME_SCROLL_BAR_COLS
10383 to determine vertical_scroll_bar_extra.
10384 (EmacsFrameSetCharSize): Ditto.
10385 * xfns.c (x_figure_window_size): Ditto.
10386
10387 * xterm.c (x_draw_row_bitmaps): Draw in `bitmap-area' face.
10388 (x_draw_bitmap): Ditto.
10389
10390 * dispextern.h (face_id): New id BITMAP_AREA_FACE_ID.
10391 * xfaces.c (realize_basic_faces): Realize it.
10392
103931998-11-20 Gerd Moellmann <gerd@gnu.org>
10394
10395 * xmenu.c (xmenu_show): Add workaround for remaining button grab
427ec082 10396 under LessTif Use the widget of the frame as parent for the
26901792
DL
10397 menu, again.
10398
103991998-11-19 Gerd Moellmann <gerd@gnu.org>
10400
10401 * xterm.c (XTread_socket): Inhibit busy cursor for EnterNotify.
10402 When EnterNotify, don't generate a mouse movement event if
10403 notification is from a busy-cursor child window.
10404
10405 * xterm.h (struct x_output): Add busy_window, remove cursor.
10406
10407 * xfns.c (Fx_show_busy_cursor): Formerly Fx_display_busy_cursor.
10408 Use a transparent window to display the busy-cursor.
10409 (Fx_hide_busy_cursor): Formerly Fx_undisplay_busy_cursor.
10410
104111998-11-17 Gerd Moellmann <gerd@gnu.org>
10412
10413 * xdisp.c (check_window_end): New, for debugging.
10414 (CHECK_WINDOW_END): New.
10415 (try_window_id): Use it.
10416
10417 * xterm.c (process_expose_from_menu): Return int.
10418
10419 * keyboard.c (kbd_buffer_get_event): Set flag to prevent recording
10420 TOOLBAR_EVENT events in last_nonmenu_event.
10421
104221998-11-16 Gerd Moellmann <gerd@gnu.org>
10423
10424 * xdisp.c (redisplay_window): If windows_or_buffers_changed,
10425 window end isn't reliable, so set window_end_valid to nil.
10426 (redisplay_internal): If overlay arrow has changed, set
10427 windows_or_buffers_changed to redisplay thoroughly.
10428
10429 * dispnew.c (adjust_glyph_matrix): Invalidate window end, if
10430 necessary.
10431
10432 * xfns.c (file_dialog_cb): New.
10433 (Fx_file_dialog): New.
10434 * fileio.c (Fread_file_name): Call it.
10435
427ec082 10436 * xrdb.c (x_load_resources): Add default resoures for file
26901792
DL
10437 selection dialog.
10438
104391998-11-14 Gerd Moellmann <gerd@gnu.org>
10440
10441 * xterm.c (note_mouse_highlight): Don't highlight when popup
10442 is active.
10443
26901792
DL
10444 * keyboard.c (timer_check): Inhibit busy cursor around calls to
10445 timer-event-handler. This busy cursor tends to be anoying if
10446 fontifying stealthily.
10447
10448 * dispnew.c (direct_output_for_insert): Give up if current row
10449 contains trailing whitespace.
10450
104511998-11-13 Gerd Moellmann <gerd@gnu.org>
10452
10453 * dispextern.h (prop_idx): Add FONTIFIED_PROP_IDX.
10454
10455 * xdisp.c (handle_fontified_prop): New.
10456 (Vfontification_functions): New.
10457 (Qfontification_functions): New.
10458 (it_props): Add handle_fontified_prop.
10459
104601998-11-12 Gerd Moellmann <gerd@gnu.org>
10461
10462 * xmenu.c (xmenu_show): Use the frame's edit_widget as parent.
10463 Otherwise, under LessTif, after the popup has gone, all button
10464 press events come in for the frame's widget, and release events
10465 come in for the edit_widget.
10466 * xterm.c (XTread_socket): Remove workaround for that problem.
10467 (x_set_toolkit_scroll_bar_thumb): Add workaround for LessTif
10468 XmScrollBarSetValues.
10469 (SET_SAVED_MENU_EVENT): Give it statement form.
10470
26901792
DL
10471 * xfaces.c (display_message): If waiting_for_input, don't display
10472 the message.
10473
10474 * window.c (scroll_command): If not acting on current_buffer,
10475 make redisplay consider all windows.
10476
10477 * xfns.c (Fx_hide_tip): Return t if tooltip was open.
10478
10479 * xdisp.c (handle_glyph_prop): Set it->object for images to
10480 the object having the glyph property.
10481
10482 * xterm.c (x_draw_row_bitmaps): Don't draw if row is completely
10483 invisible.
10484
104851998-11-11 Gerd Moellmann <gerd@gnu.org>
10486
10487 * xterm.h (struct x_display_info): Add gray pixmap. * xterm.c
10488 (x_term_init): Create the gray pixmap.
10489 (x_setup_relief_color): Use it.
10490 (x_get_glyph_string_clip_rect): Draw a toolbar window over the
10491 internal border at the top of a frame.
10492 (x_init_glyph_string): Likewise.
427ec082 10493 (x_draw_glyph_string_relief): Correct right x by 1 pixel for
26901792
DL
10494 full-width lines.
10495 (XTflash): Don't flash the toolbar window.
10496
10497 * xterm.c (XTread_socket): Workaround for LessTif popup menus
10498 in case of ButtonPress events.
10499
105001998-11-10 Gerd Moellmann <gerd@gnu.org>
10501
10502 * xrdb.c (x_load_resources): Add grey background colors as
10503 defaults for menus, scroll bars, and dialogs.
10504
10505 * insdel.c (prepare_to_modify_buffer): Move setting
10506 windows_or_buffers_changed from modify_region here.
10507
10508 * xfns.c (Fx_show_tip): Inhibit redisplay.
10509 (Fx_hide_tip): Ditto.
10510 (Fx_image_header): New.
10511
105121998-11-09 Gerd Moellmann <gerd@gnu.org>
10513
10514 * dispnew.c (clear_window_matrices): Set window_end_valid to nil
10515 when clearing current window matrices.
10516
105171998-11-08 Gerd Moellmann <gerd@gnu.org>
10518
10519 * xdisp.c (handle_glyph_prop): Don't set an iterator's buffer
10520 position from a string position. Use the right end position
10521 if the property spans a whole overlay string.
10522
105231998-11-07 Gerd Moellmann <gerd@gnu.org>
10524
10525 * xmenu.c (menubar_selection_callback): Remove workaround for
10526 Lesstif not calling XmNpopdownCallback because it doesn't
10527 handle the case where users don't select any menu item.
10528
26901792
DL
10529 * insdel.c (modify_region): Set windows_or_buffers_changed.
10530
10531 * buffer.c (set_buffer_internal): Don't set
10532 windows_or_buffers_changed.
10533
26901792
DL
10534 * xmenu.c (HAVE_BOXES): Define if USE_X_TOOLKIT.
10535
26901792
DL
10536 * xmenu.c (menubar_selection_callback): Add workaround for
10537 Lesstif not calling XmNpopdownCallback.
10538
10539 * xdisp.c (eval_mode_element): New.
10540 (eval_mode_handler): New.
10541 (display_mode_element): Use eval_mode_element.
10542
10543 * xdisp.c (display_mode_element): Allow `(:eval FORM)'.
10544 Remove code looking at text props of default value.
10545
10546 * xmenu.c (HAVE_BOXES): Define if using Lucid menus.
10547
26901792
DL
105481998-11-06 Gerd Moellmann <gerd@gnu.org>
10549
427ec082 10550 * xmenu.c (single_submenu): Set button_type of menu to
26901792
DL
10551 BUTTON_TYPE_NONE.
10552 (single_submenu): Likewise for panes and menu items.
10553 (set_frame_menubar): Set button_type of menu bar to none.
10554 (xmenu_show): Likewise.
10555 (single_submenu): Set widget values selected slot.
10556 (xmenu_show): Likewise.
10557
26901792
DL
10558 * xmenu.c (push_menu_item): Add parameters `type' and
10559 `selected'. Store it in menu_items.
10560 (MENU_ITEMS_ITEM_TYPE): New.
10561 (MENU_ITEMS_ITEM_SELECTED): New.
10562 (MENU_ITEMS_ITEM_LENGTH): Increase by two.
10563
10564 * xfns.c (clear_image_cache): Get the current time, before
10565 doing anything.
10566 (cache_image): Set prev pointer of next image.
10567 (clear_image_cache): Clear current matrices if any image was
10568 freed.
10569
10570 * xterm.c (XTread_socket): Set inhibit_busy_cursor.
10571
10572 * xfns.c (x_set_cursor): New.
10573 (Fx_display_busy_cursor): New.
10574 (Fx_undisplay_busy_cursor): New.
10575
10576 * xterm.h (struct x_output): Add busy_cursor.
10577
10578 * xfns.c (Vx_busy_pointer_shape): New.
10579 (x_set_mouse_color): Create busy cursor.
10580
10581 * process.c (wait_reading_process_input): Show and hide busy
10582 cursor.
10583
10584 * keyboard.c (command_loop_1): Display busy cursor.
10585
10586 * eval.c (Fsignal): Hide busy cursor.
10587
10588 * buffer.c (set_buffer_internal): Don't set
10589 windows_or_buffers_changed.
10590
10591 * xterm.c (redo_mouse_highlight): New.
10592
105931998-11-04 Gerd Moellmann <gerd@gnu.org>
10594
26901792
DL
10595 * xfns.c (x_create_x_image_and_pixmap): Add depth parameter.
10596 (x_build_heuritic_mask): New.
10597 (lookup_image): Call it.
10598
10599 * xterm.c (note_toolbar_highlight): Always set up help_echo.
10600 (previous_help_echo): New.
10601 (XTread_socket): Generate help event with nil message when
10602 leaving a region with help-echo.
10603 (note_mouse_highlight): Handle `help-echo' over text.
10604 (XTread_socket): Dispatch VisibilityNotify, CirculateNotify,
10605 CirculateRequest.
10606 (clear_mouse_face): Don't clear if tooltip is shown.
10607 (XTread_socket): Redo mouse-highlight after tooltip is gone.
10608 Avoid SET_FRAME_GARBAGED when tooltip is mapped.
10609
10610 * keyboard.c (Vshow_help_function): New.
10611 (read_char): Use it.
10612
106131998-11-03 Gerd Moellmann <gerd@gnu.org>
10614
10615 * xfns.c (x_create_tip_frame): New.
10616 (Fx_show_tip): New.
10617 (Fx_hide_tip): New.
10618
427ec082 10619 * xterm.c (x_destroy_window): Handle case that we don't have
26901792
DL
10620 a widget.
10621
10622 * dispextern.h (struct glyph_row): Rename no_marginal_areas_p
10623 to full_width_p. Add internal_border_p.
10624
106251998-11-02 Gerd Moellmann <gerd@gnu.org>
10626
10627 * xterm.c (note_mode_line_highlight): Check the charpos of
10628 the glyph under the mouse pointer before accessing text
10629 properties at that position.
10630
106311998-11-01 Gerd Moellmann <gerd@gnu.org>
10632
10633 * xterm.c (x_draw_image_relief): Handle toolbar_button_relief.
10634
10635 * xdisp.c (auto-raise-toolbar-buttons): New.
10636 (build_desired_toolbar_string): Handle the flag.
10637 (toolbar-button-margin): New.
10638 (toolbar-button-relief): New.
10639 (build_desired_toolbar_string): Use margin and relief.
10640
10641 * xterm.c (x_set_toolkit_scroll_bar_thumb): Remove workaround
10642 for FreeBSD.
10643 (note_mode_line_highlight): New.
10644 (note_mouse_highlight): Call it.
10645
106461998-10-31 Gerd Moellmann <gerd@gnu.org>
10647
10648 * s/freebsd.h (NARROWPROTO): New.
10649
10650 * xdisp.c (display_string): New parameter face_string.
10651 (display_mode_element): When displaying a symbol with a string
10652 value, use text properties from the symbol's default value, maybe.
10653
10654 * xrdb.c (x_load_resources): Add font defaults for menus and
10655 dialogs.
10656
106571998-10-30 Gerd Moellmann <gerd@gnu.org>
10658
10659 * xfns.c (Fx_create_frame): Try 12pt Courier font first.
10660
106611998-10-29 Gerd Moellmann <gerd@gnu.org>
10662
10663 * xterm.c (x_produce_glyphs): Fix bug causing glyphs to be
10664 produced for characters with codes < 32 under certain
10665 circumstances.
10666
10667 * xdisp.c (redisplay_window): Handle values of PT in front
10668 of invisible, intangible text.
427ec082 10669 (try_window_id): Set overlay_arrow_seen to zero before
26901792
DL
10670 displaying lines.
10671 (display_mode_element): Assign to glyphs written for a mode
10672 line spec `%x' as object the Lisp format string, as position
10673 the position of the `%' in that string.
10674 (display_string): If displaying a C string, optionally get
10675 the face to use from a Lisp string.
10676
10677 * xterm.c (expose_window_tree): Include mode line height.
10678
10679 * xfns.c (Fx_create_frame): Add toolbar height to frame height.
10680
106811998-10-27 Gerd Moellmann <gerd@gnu.org>
10682
10683 * xterm.c (note_mouse_highlight): Change mouse pointer shape
10684 over mode line.
10685
106861998-10-26 Gerd Moellmann <gerd@gnu.org>
10687
10688 * window.c (coordinates_in_window): Use CURRENT_MODE_LINE_HEIGHT.
10689
10690 * xdisp.c (redisplay_window): If mode line height has changed,
10691 arrange for a thorough immediate redisplay using the correct mode
10692 line height.
10693 (window_box_height): Use CURRENT_MODE_LINE_HEIGHT.
10694
10695 * dispextern.h (MATRIX_MODE_LINE_HEIGHT): New.
10696 (CURRENT_MODE_LINE_HEIGHT): New.
10697 (DESIRED_MODE_LINE_HEIGHT): New.
10698
10699 * keyboard.c (make_lispy_event): Add string and string position
10700 info to mouse-click events.
10701 (read_key_sequence): Handle `local-map' property of mode line
10702 strings.
10703
10704 * keyboard.h (POSN_STRING): New.
10705
107061998-10-25 Gerd Moellmann <gerd@gnu.org>
10707
10708 * dispnew.c (mode_line_string): Mew.
10709
10710 * xterm.c (xt_action_hook): New.
10711 (x_create_toolkit_scroll_bar): Add action hook.
10712 (xm_scroll_callback): Implement dragging.
10713
10714 * keyboard.c (Qend_scroll): New.
10715 (scroll_bar_parts): Add it.
10716
10717 * termhooks.h (scroll_bar_end_scroll): New.
10718
10719 * xterm.c (XTread_socket): Bug fix.
10720
107211998-10-24 Gerd Moellmann <gerd@gnu.org>
10722
10723 * xdisp.c (redisplay_window): Finish scroll bars after
10724 redisplaying toolbar.
10725
10726 * keyboard.c (scroll_bar_parts): Add Qtop and Qbottom.
10727 (syms_of_keyboard): Add Qbottom.
10728
10729 * termhooks.h (scroll_bar_to_top): New.
10730 (scroll_bar_to_bottom): New.
10731
10732 * xdisp.c (redisplay_window): Always resize toolbar window if
10733 auto_resize_toolbar_p is non-zero.
10734 (auto_resize_toolbar_p): Renamed from auto_resize_toolbar.
10735 (window_box): New.
10736 (window_box_height): New.
10737 (window_box_width): New.
10738 (window_box_left): New.
10739 (window_box_right): New.
10740 (window_box_edges): New.
10741
107421998-10-23 Gerd Moellmann <gerd@gnu.org>
10743
10744 * xterm.c (x_set_toolkit_scroll_bar_thumb): Kluge for call to
10745 XawScrollbarSetThumb in FreeBSD.
10746 (x_create_toolkit_scroll_bar): Set resource "beNiceToColormap"
10747 to true.
10748
10749 * window.c (get_phys_cursor_glyph): Return null if cursor vpos
10750 is out of range.
10751
10752 * xterm.c (x_create_toolkit_scroll_bar): Set scroll_bar_pixel.
10753 (x_term_init): Initialize it.
10754
10755 * xterm.h (struct x_display_info): Add scroll_bar_pixel.
10756
10757 * xterm.c (x_create_toolkit_scroll_bar): Set LessTif scroll bar's
10758 cursor.
10759
107601998-10-22 Gerd Moellmann <gerd@gnu.org>
10761
10762 * keyboard.c (make_lispy_event): Handle scroll_bar_click
10763 differently when using toolkit scroll bars.
10764
10765 * xterm.c (x_send_scroll_bar_event): New.
10766 (x_scroll_bar_to_input_event): New.
10767 (xaw3d_scroll_callback): New.
10768 (xaw3d_jump_callback): New.
10769 (xm_scroll_callback): New.
10770 (x_toolkit_scroll_p): New.
10771 (XTread_socket): Handle scroll bar client message.
10772 (x_term_init): Initialize Xatom_Scrollbar.
10773 (x_scroll_bar_create): Set cursor.
10774 (xm_scroll_callback):
10775 (x_create_toolkit_scroll_bar): New.
10776 (x_set_toolkit_scroll_bar_thumb): New.
10777 (x_scroll_bar_create): Call x_create_toolkit_scroll_bar.
10778 (XTset_vertical_scroll_bar): Call x_set_toolkit_scroll_bar_thumb.
10779
10780 * xterm.h (struct x_display_info): Add Xatom_Scrollbar.
10781
107821998-10-21 Gerd Moellmann <gerd@gnu.org>
10783
10784 * xterm.c (x_scroll_bar_remove): Handle toolkit scroll bars.
10785 (XTread_socket): Don't handle mouse button events for scroll bars
10786 if using toolkit scroll bars.
10787 (XTset_vertical_scroll_bar): Set thumb size and position for
10788 Athena scroll bar.
10789
10790 * xterm.h (scroll_bar): Add x_widget_low and x_widget_high.
10791
10792 * xterm.c (XTread_socket): Dispatch expose event to widget
10793 if using toolkit scroll bars.
10794 (x_scroll_bar_expose): Make no-op for toolkit scroll bars.
427ec082 10795 (x_scroll_bar_create): Create and show a scroll bar widget
26901792
DL
10796 if using toolkit scroll bars.
10797 (x_scroll_bar_move): Handle tookit scroll bars.
10798
10799 * Makefile.in (LIBW): Use Xaw3d if present.
10800
10801 * configure.in (USE_TOOLKIT_SCROLL_BARS): New.
10802 (HAVE_XAW3D): New.
427ec082 10803
26901792
DL
10804 * config.in (USE_TOOLKIT_SCROLL_BARS): New.
10805 (HAVE_XAW3D): New.
10806
427ec082 10807 * xterm.c (XTset_vertical_scroll_bar): Correct position of
26901792
DL
10808 right vertical scroll bar.
10809
108101998-10-20 Gerd Moellmann <gerd@gnu.org>
10811
10812 * xfns.c (xpm_load): Support reading XPM images from string
10813 buffers containing data in the same format as an XPM file.
10814 Support `:color-symbols'.
10815 (xpm_format): Add `:data'.
10816 (xpm_keyword_index): Add XPM_DATA.
10817 (syms_of_xfns): Add `:color-symbols'.
10818 (xpm_keyword_index): Add XPM_COLOR_SYMBOLS.
10819 (xpm_valid_color_symbols_p): New.
10820 (xpm_image_p): Call it.
10821
10822 * xdisp.c (build_desired_toolbar_string): Add `:algorithm'
10823 attribute to the image if item is not enabled.
10824
10825 * xfns.c (x_laplace): New.
10826 (x_laplace_read_row): New.
10827 (x_laplace_write_row): New.
10828 (lookup_image): Handle common image attributes here. New
10829 attribute `:algorithm'.
10830
10831 * xfaces.c (clear_face_cache): Call clear_image_cache.
10832
10833 * xterm.c (x_inverted_image_mask): Removed.
10834 (x_draw_image_foreground_1): New.
10835 (x_draw_image_glyph_string): Draw images with mask to a temporary
10836 pixmap to reduce flickering.
10837
10838 * xdisp.c (redisplay_toolbar): Handle auto-resize-toolbars.
10839 (display_toolbar_line): Remove parameter `margin'.
10840
108411998-10-19 Gerd Moellmann <gerd@gnu.org>
10842
10843 * xdisp.c (toolbar_lines_needed): New.
10844 (auto-resize-toolbars): New.
10845
10846 * xfns.c (cache_image): Correct call to xrealloc.
10847
10848 * dispnew.c (Fset_toolbar_height): Removed.
10849
10850 * xdisp.c (init_xdisp): Use FRAME_TOP_MARGIN instead of
10851 FRAME_MENU_BAR_LINES.
10852
10853 * window.c (Fdelete_other_windows): Use FRAME_TOP_MARGIN
10854 instead of FRAME_MENU_BAR_LINES.
10855 (check_frame_size): Ditto.
10856
10857 * dispnew.c (adjust_frame_glyphs_initially): Use FRAME_TOP_MARGIN
10858 instead of FRAME_MENU_BAR_LINES.
10859 (adjust_frame_glyphs_for_frame_redisplay): Ditto.
10860 (build_frame_matrix): Ditto.
10861 (change_frame_size_1): Ditto.
10862
10863 * frame.h (FRAME_TOOLBAR_LINES): New.
10864 (FRAME_TOP_MARGIN): New.
10865
10866 * window.c (struct save_window_data): Add frame_toolbar_lines.
10867 (Fset_window_configuration): Handle toolbar lines.
10868 (Fcurrent_window_configuration): Save toolbar lines.
10869
10870 * frame.c (syms_of_frame_1): Add Qtoolbar_lines.
10871
10872 * xfns.c (Fx_create_frame): Add default parameter for toolbar.
10873
10874 * frame.h (struct frame): Rename top_margin to toolbar_lines.
10875
10876 * xfns.c (x_frame_parms): Add `toolbar-lines'.
10877 (x_set_toolbar_lines): New.
10878
10879 * keyboard.c (cmd_error_internal): Bug fix.
10880
10881 * xterm.c: Remove double include of syssignal.h.
10882
108831998-10-18 Gerd Moellmann <gerd@gnu.org>
10884
10885 * xterm.c (x_toolbar_item): New.
10886 (x_handle_toolbar_click): Use it.
10887 (note_toolbar_highlight): Use it.
10888
10889 * keyboard.c (syms_of_keyboard): Staticpro toolbar_item_properties
10890 and toolbar_items_vectors.
10891
10892 * xterm.c (help_echo): New.
10893 (draw_glyphs_face): Add DRAW_IMAGE_RAISED and DRAW_IMAGE_SUNKEN.
10894 (x_set_glyph_string_gc): Handle them.
10895 (x_after_update_window_line): Don't do anything in pseudo-windows.
10896 (x_produce_image_glyph): Take image margin and face relief into
10897 account.
10898 (x_get_glyph_string_clip_rect): Handle pseudo-windows.
10899 (x_draw_glyph_string_background): Optimize case when face has
10900 relief.
10901 (x_setup_relief_color): Take frame instead of glyph string
10902 parameter.
10903 (x_draw_relief_rect): New.
10904 (x_draw_glyph_string_relief): Call it.
10905 (x_draw_image_glyph_string_foreground): Handle margin and image
10906 relief.
10907 (x_draw_image_glyph_string_background): Ditto.
10908 (expose_frame): Redraw toolbar window.
10909 (expose_window): Don't draw cursor for pseudo-windows.
10910 (x_y_to_hpos_vpos): Handle pseudo-windows.
10911 (frame_to_window_pixel_xy): New.
10912 (note_mouse_highlight): Call note_toolbar_highlight.
10913 (x_handle_toolbar_click): New.
10914 (note_toolbar_highlight): New.
10915 (show_mouse_face): Change int parameter `hl' to parameter of
10916 type enum draw_glyphs_face. Handle image highlighting.
10917 (XTread_socket): Return a HELP_EVENT input event if help_echo is
10918 non-nil. Use x_handle_toolbar_click.
10919
10920 * termhooks.h (event_kind): Add HELP_EVENT, TOOLBAR_EVENT.
10921
10922 * xfns.c (image_value_type): Add IMAGE_INTEGER_VALUE,
10923 IMAGE_BOOL_VALUE.
10924 (parse_image_spec): Handle them.
10925 (image_spec_value): Additional parameter found.
427ec082 10926 (free_image): Remove image from the vector `images' of the
26901792
DL
10927 image cache.
10928 (clear_image_cache): Additional parameter force_p.
10929 (Fclear_image_cache): New.
10930 (x_find_image_file): New.
10931 (xbm_load): Handle `:margin' and `:relief'. Use
10932 x_find_image_file.
10933 (xpm_load): Likewise.
10934 (pbm_load): Likewise.
10935 (jpeg_load): Likewise.
10936 (tiff_load): Likewise.
10937 (gif_load): Likewise.
10938
10939 * keyboard.c (Qhelp_echo): New symbol.
10940 (read_char): Handle `toolbar' and `help_echo' events.
10941 (kbd_buffer_get_event): Handle HELP_ECHO input event.
10942 (make_lispy_event): Handle TOOLBAR_EVENT.
10943 (toolbar_items): New.
10944 (process_toolbar_item): New.
10945 (PROP): New.
10946 (init_toolbar_items): New.
10947 (append_toolbar_item): New.
10948 (read_char_x_menu_prompt): Handle `toolbar' event.
10949 (read_key_sequence): Ditto.
10950
10951 * xfaces.c (Qtoolbar): New.
10952 (realize_basic_faces): Realize `toolbar' face.
10953 (face_at_string_position): Remove parameter modeline_p, add
10954 base_face_id.
10955
10956 * xfns.c (xbm_load_image_from_file): Don't use Xmu function
10957 to read data.
10958
109591998-10-17 Gerd Moellmann <gerd@gnu.org>
10960
10961 * xdisp.c (init_iterator): Replace parameter modeline_p with
10962 base_face_id.
10963 (next_element_from_string): Call get_next_display_element
10964 recursively after handling text properties.
10965 (prepare_menu_bars): Call update_toolbar.
10966 (update_toolbar): New.
10967 (build_desired_toolbar_string): New.
10968 (display_toolbar_line): New.
10969 (redisplay_toolbar): New.
10970 (toolbar_item_info): New.
10971 (redisplay_window): Call redisplay_toolbar.
10972 (Fdump_toolbar_row): New. Defined if compiled with GLYPH_DEBUG.
10973
10974 * dispnew.c (clear_current_matrices): Clear matrices of toolbar
10975 window.
10976 (clear_desired_matrices): Ditto.
10977 (adjust_frame_glyphs_for_window_redisplay): Make toolbar window.
10978 (free_glyphs): Free matrices of toolbar window.
10979 (update_frame): Update toolbar window.
10980 (change_frame_size_1): Take toolbar into account.
10981 (Fset_toolbar_height): New.
10982
10983 * dispextern.h (struct it): Remove member modeline_p, add
10984 base_face_id.
10985 (struct image): Add members relief and margin.
10986 (IMAGE_ASCENT): Include margin in height.
10987
109881998-10-14 Gerd Moellmann <gerd@gnu.org>
10989
10990 * xfns.c (Fclear_image_cache): New.
10991
10992 * xfaces.c (realize_basic_faces): Realize toolbar face.
10993 (face_at_string_position): Remove parameter modeline_p, add
10994 base_face_id.
10995
10996 * dispextern.h (enum face_id): Add TOOLBAR_FACE_ID.
10997
109981998-10-13 Gerd Moellmann <gerd@gnu.org>
10999
11000 * keyboard.c (syms_of_keyboard): Intern `:help'.
11001
110021998-10-12 Gerd Moellmann <gerd@gnu.org>
11003
11004 * xterm.c (note_toolbar_highlight): New.
11005 (note_mouse_highlight): Call it.
11006
11007 * window.c (window_from_coordinates): Additional parameter toolbar_p.
11008 (coordinates_in_window): Handle toolbar window.
11009
11010 * keyboard.c (toolbar_items): New.
11011 (process_toolbar_item): New.
11012 (parse_toolbar_item): New.
11013 (init_toolbar_items): New.
11014 (append_toolbar_item): New.
11015
11016 * dispextern.h (enum toolbar_item_idx): New.
11017 (enum toolbar_item_image): New.
11018
11019 * frame.h (struct frame): Add toolbar-related members.
11020
11021 * xfaces.c (face_at_string_position): Remove assertion that
11022 current_buffer == window's buffer. This is not the case when
11023 called for the toolbar window.
11024
11025 * frame.c (make_frame): Initialize toolbar members.
11026
11027 * alloc.c (mark_object): Mark toolbar data of frames.
11028
11029 * frame.h (struct frame): Add toolbar-related members
11030 toolbar_window, desired_toolbar_items, current_toolbar_items,
11031 desired_toolbar_string, current_toolbar_string,
11032 n_desired_toolbar_items, n_current_toolbar_items. Add
11033 window_height.
11034
11035 * xterm.c (x_after_update_window_line): Don't draw bitmap
11036 areas for pseudo-windows.
11037 (expose_frame): Handle toolbar window.
11038 (expose_window): Don't do cursor stuff for pseudo-windows.
11039
11040 * xdisp.c (display_menu_bar): Correct calls to init_iterator.
11041
110421998-10-11 Gerd Moellmann <gerd@gnu.org>
11043
11044 * frame.c (make_frame): Initialize toolbar_window.
11045
11046 * alloc.c (mark_object): Make the toolbar window.
11047
11048 * dispnew.c (update_frame): Update frame's toolbar_window.
11049 (clear_current_matrices): Likewise.
11050 (clear_desired_matrices): Likewise.
11051 (adjust_frame_glyphs_for_window_redisplay): Make toolbar_window.
11052 (free_glyphs): Free the toolbar window and its matrices.
11053
11054 * frame.h (struct frame): Add toolbar_window.
11055
11056 * xterm.c (x_draw_glyph_string_relief): Handle mouse-face
11057 with relief.
11058
110591998-10-10 Gerd Moellmann <gerd@gnu.org>
11060
427ec082 11061 * dispnew.c (buffer_posn_from_coords): Don't screw up if
26901792
DL
11062 window start is not in the range BEGV..ZV.
11063
110641998-10-09 Gerd Moellmann <gerd@gnu.org>
11065
11066 * xdisp.c (try_scrolling): Experimentally handle the case
11067 that scroll-preserve-screen-position is set to `always'.
11068
11069 * window.c (Vscroll_preserve_screen_position): Replacement for
11070 scroll_preserve_screen_position.
11071
110721998-10-08 Gerd Moellmann <gerd@gnu.org>
11073
11074 * dispnew.c: Don't initialize auto structs; the HP/UX compiler
11075 doesn't like it.
11076 * xdisp.c: Ditto.
11077
11078 * xdisp.c (make_cursor_line_fully_visible): Adjust this_line_y.
11079
110801998-10-06 Gerd Moellmann <gerd@gnu.org>
11081
427ec082 11082 * minibuf.c (Fminibuffer_complete_word): Fix computation of
26901792
DL
11083 i_byte when prompts are inserted into minibuffers.
11084
11085 * dispextern.h (FRAME_INTERNAL_BORDER_WIDTH_SAFE): New.
11086 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Use it.
11087 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y): Ditto.
11088
110891998-10-04 Gerd Moellmann <gerd@gnu.org>
11090
11091 * xdisp.c (make_cursor_line_fully_visible): New.
11092 (try_scrolling): New.
11093 (redisplay_window): Move scrolling code to try_scrolling.
11094 (make_cursor_line_fully_visible): Handle case of window too small
11095 to show a single line.
11096 (redisplay_window): Case forced window start---use
11097 make_cursor_line_fully_visible.
11098 (redisplay_window): Case cursor movement via current matrix.
11099 If ending up on a partially visible line, make it fully visible
11100 instead of recentering.
11101 (try_scrolling): Additional parameter scroll_smoothly.
11102
11103 * xterm.c (x_draw_bitmap): Don't XClearArea under the pixmap.
11104
111051998-09-28 Gerd Moellmann <gerd@gnu.org>
11106
11107 * window.c (window_scroll_pixel_based): Bug fix: vpos used
11108 instead of y-position for scroll-preserved-screen-position.
11109
111101998-09-07 Gerd Moellmann <gerd@gnu.org>
11111
11112 * dispnew.c (update_frame_line): If current row is not enabled,
11113 write the whole line.
11114
111151998-09-06 Gerd Moellmann <gerd@gnu.org>
11116
11117 * lisp.h (HAVE_FACES): Removed.
11118
11119 * dispextern.h (HAVE_FACES): Removed.
11120
11121 * config.in (HAVE_FACES): Removed.
11122
11123 * dispnew.c (HAVE_FACES): Removed.
11124
11125 * xdisp.c (HAVE_FACES): Removed.
11126
11127 * xfaces.c (HAVE_FACES): Removed.
11128
111291998-09-05 Gerd Moellmann <gerd@gnu.org>
11130
11131 * xdisp.c (init_iterator): If face_change_count is non-zero,
11132 free realized faces.
11133
11134 * xfaces.c (free_all_realized_faces): Make it externally visible.
11135 (Finternal_set_lisp_face_attribute): Increment
11136 windows_or_buffers_changed.
11137
11138 * dispnew.c (direct_output_for_insert): Give up if
11139 face_change_count is non-zero.
11140 (direct_output_forward_char): Ditto.
11141
11142 * xfaces.c (face_change_count): New.
11143
111441998-09-04 Gerd Moellmann <gerd@gnu.org>
11145
11146 * xterm.c (x_draw_bar_cursor): Don't draw if cursor hpos is out
11147 of range.
11148
111491998-09-03 Gerd Moellmann <gerd@gnu.org>
11150
11151 * term.c (Ftty_display_color_p): New.
11152
111531998-09-02 Gerd Moellmann <gerd@gnu.org>
11154
11155 * xfaces.c (Ftty_defined_colors): New.
11156
11157 * xterm.c (x_produce_glyphs): Fix computation of
11158 contains_overlapping_glyphs_p for ASCII.
11159
11160 * dispnew.c (Fshow_cursor): Don't change cursor state while
11161 redisplaying.
11162 (direct_output_for_insert): If a glyph with lbearing or rbearing
11163 is among the new glyphs, set row flag contains_overlapping_glyph_p.
11164
111651998-09-01 Gerd Moellmann <gerd@gnu.org>
11166
11167 * term.c (OUTPUT_IF): Make replacement text have statement form.
11168 (OUTPUT1_IF): Ditto.
11169 (TS_italic_mode, TS_end_italic_mode): Removed.
11170 (TS_bold_mode): Removed.
11171 (TS_underscore_mode, TS_end_underscore_mode): Removed.
11172 (TS_enter_bold_mode, TS_enter_dim_mode, TS_enter_blink_mode): New.
11173 (TS_enter_reverse_mode): New.
11174 (TS_enter_underline_mode, TS_exit_underline_mode): New.
11175 (TN_magic_cookie_glitch_ul): New.
11176 (TS_enter_alt_charset_mode, TS_exit_alt_charset_mode): New.
11177 (TS_exit_attribute_mode): New.
11178 (TN_max_colors, TN_max_pairs, TS_orig_pairs): New.
11179 (TS_set_foreground, TS_set_background): New.
11180 (reset_terminal_modes): Switch colors back to default.
11181 (write_glyphs): Turn face on before writing text, turn it off
11182 afterwards.
11183 (insert_glyphs): Ditto.
11184 (term_init): Initialize new terminal capability variables.
11185 (turn_on_face): Turn a face on.
11186 (turn_off_face): Turn a face off.
11187
11188 * lisp.h (MAKE_GLYPH): Remove test for frame type.
11189 (GLYPH_CHAR): Ditto.
11190 (GLYPH_FACE): Ditto.
11191
11192 * xfaces.c (Vface_tty_color_alist): New.
11193 (face-register-tty-color): New.
11194 (face-clear-tty-colors): New.
11195
11196 * dispextern.h (FACE_TTY_DEFAULT_COLOR): New.
11197 (struct it): Remove member faces_p since we now always have faces.
11198
111991998-08-31 Gerd Moellmann <gerd@gnu.org>
11200
11201 * dispextern.h (struct face): Add tty appearance flags.
11202
11203 * xdisp.c (init_iterator): Always handle faces.
11204 (extend_face_to_end_of_line): Handle tty frames.
11205
11206 * dispnew.c (clear_glyph_matrix): Allow a null matrix to be
11207 passed in.
11208
112091998-08-30 Gerd Moellmann <gerd@gnu.org>
11210
11211 * xfaces.c (realize_default_face): Use empty strings to indicate
11212 that the face should use the default foreground/background
427ec082 11213 color of the terminal. Fill font-related attributes with
26901792
DL
11214 appropriate values for tty frames.
11215
11216 * emacs.c (main): Call syms_of_xfaces before init_window_once.
11217
11218 * xfaces.c (realize_default_face): If face `default' is not
11219 yet known, create it.
11220
11221 * frame.c (make_terminal_frame): Call init_frame_faces
11222 unconditionally.
11223
11224 * xfaces.c (init_frame_faces): Make it work for tty frames.
11225 (free_frame_faces): Ditto.
11226 (clear_face_cache): Ditto.
11227 (recompute_basic_faces): Ditto.
11228 (Fframe_face_alist): Ditto.
11229 (free_realized_face): Ditto.
11230 (prepare_face_for_display): Ditto.
11231 (clear_face_gcs): Ditto.
11232 (lookup_face): Ditto.
11233 (smaller_face): Ditto.
11234 (realize_default_face): Ditto.
11235 (realize_face): Ditto.
11236 (realize_face): Dispatch to functions depending on the frame type.
11237 (realize_x_face): X way of realizing faces.
11238 (realize_tty_face): TTY way of realizing faces.
11239
112401998-08-29 Gerd Moellmann <gerd@gnu.org>
11241
11242 * xfaces.c (realize_face): Remove parameter unibyte_registry,
11243 compute it instead.
11244 (lookup_face): Remove local variable unibyte_registry.
11245
112461998-08-22 Gerd Moellmann <gerd@gnu.org>
11247
11248 * xterm.c (x_draw_glyph_string_relief): Draw top and bottom lines
11249 1 pixel longer.
11250
427ec082 11251 * xdisp.c (face_before_or_after_it_pos): Fix computation
26901792
DL
11252 of face in buffer.
11253
11254 * editfns.c (make_buffer_string_both): If prompt in buffer,
11255 prevent start > end.
11256
11257 * indent.c (Fvertical_motion): Set current_buffer to window's
11258 buffer if it isn't already.
11259
112601998-08-21 Gerd Moellmann <gerd@gnu.org>
11261
11262 * dispextern.h (GLYPH_DEBUG): Use default 0.
11263
11264 * xdisp.c (it_props): New member `smaller'.
11265 (init_iterator): Initialize it.
11266 (Qsmaller): New.
11267 (push_it): Save value of `smaller' value on the stack.
11268 (pop_it): Restore `smaller' from the stack.
11269 (handle_smaller_prop): New.
11270 (handle_face_prop): Use `smaller' text property to select a
11271 suitable face.
11272
11273 * dispextern.h (SMALLER_PROP_IDX): New.
11274 (struct it): Add member `smaller'.
11275
11276 * xfaces.c (smaller_face): New.
11277
11278 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add bitmap area widths.
11279
11280 * dispnew.c (allocate_matrices_for_window_redisplay): Compute
11281 total pixel width of window differently.
11282
11283 * xdisp.c (init_iterator): Compute width of mode line differently.
11284
11285 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract width
11286 of bitmap areas.
11287
11288 * window.c (Fsplit_window): Include width of bitmap areas in
11289 window width.
11290 (window_internal_width): Subtract width of bitmap areas from
11291 total width.
11292
112931998-08-18 Gerd Moellmann <gerd@gnu.org>
11294
11295 * xdisp.c: Functions reordered for better readability.
11296
11297 * dispnew.c (update_text_area): Handle glyphs with arbitrary
11298 lbearing.
11299 (update_window_tree): Parameter no_scrolling_p removed.
11300 (update_single_window): Ditto.
11301
11302 * xterm.c (x_get_char_font_and_encoding): Renamed to
11303 x_get_char_face_and_encoding.
11304
11305 * dispnew.c (update_text_area): Don't call get_glyph_overhangs
11306 if end of current row reached.
11307
11308 * xterm.c (x_get_glyph_face_and_encoding): New.
11309 (x_get_glyph_overhangs): Call it.
11310
11311 * xdisp.c (Qshow_trailing_whitespace): New.
11312 (Qtrailing_whitespace): New.
11313 (enum prop_handled): New.
11314 (struct props, it_props): New.
11315 (next_overlay_change): New. Works like Fnext_overlay_change
11316 but doesn't use xmalloc.
11317 (handle_stop): Restructured.
11318 (face_before_or_after_it_pos): Case iteration over a string: fix
11319 handling of face before current position.
11320
113211998-08-16 Gerd Moellmann <gerd@gnu.org>
11322
11323 * dispnew.c (adjust_glyph_matrix): Don't optimize matrix
11324 reallocation matrix if fonts_changed_p.
11325 (update_text_area): Handle glyphs with lbearing.
11326
113271998-08-14 Gerd Moellmann <gerd@gnu.org>
11328
11329 * xdisp.c (struct props): New.
11330 (it_props): New.
11331 (compute_prop_info): New.
11332 (handle_stop): New.
11333
11334 * textprop.c (validate_interval_range): Make it externally
11335 visible.
11336
11337 * dispnew.c (direct_output_for_insert): Remove calls
11338 to compute_stop_pos.
11339
11340 * dispextern.h (struct it): Remove check_charpos,
11341 next_overlay_pos. Add what_changes.
11342
113431998-08-10 Gerd Moellmann <gerd@gnu.org>
11344
11345 * xterm.c (note_mouse_highlight): Set BEGV_BYTE, ZV_BYTE.
11346
11347 * xfaces.c (Vx_unibyte_registry_and_encoding): Removed. Use
11348 face_default_registry instead.
11349
11350 * syntax.c (scan_sexps_forward): Set up syntax table before
11351 jumping to initial state label.
11352
113531998-08-09 Gerd Moellmann <gerd@gnu.org>
11354
11355 * dispnew.c (check_matrix_invariants): Handle case of row end pos
11356 >= ZV specially.
11357
113581998-08-08 Gerd Moellmann <gerd@gnu.org>
11359
11360 * xdisp.c (redisplay_window): Case cursor movement---if cursor
11361 ends up in partially visible row, try to scroll. Case forced
11362 window start---handle windows not tall enough to show a single
11363 line.
11364
11365 * window.h (struct window): Member dy renamed vscroll.
11366
11367 * xterm.c (x_list_fonts): Re-activate suppression of scalable
11368 fonts.
11369 (x_draw_stretch_glyph_string): Set clipping if using GC that
11370 hasn't set it yet.
11371
11372 * xdisp.c (redisplay_window): Case forced window start -
11373 don't let cursor end on partially visible row. Use desired
11374 matrix to find a suitable PT if it doesn't appear.
11375 (decode_mode_spec): Merged with 20.2.97.
11376 (try_window_reusing_current_matrix): Give up if old or
11377 new display is vscrolled.
11378 (redisplay_window): Reset vscrolling if forced window start,
11379 or if recentering.
11380
113811998-08-06 Gerd Moellmann <gerd@gnu.org>
11382
11383 * xfaces.c (realize_default_face): Use the fontset name instead of
11384 the alias for the family attribute of the default face because we
11385 can't easily determine a good alias from fontset-alias-alist.
11386 (face_fontset): Use Fquery_fontset to find the fontset.
11387 (font_list): Additional pattern parameter.
11388 (try_font_list): Ditto.
11389 (set_lface_from_font_name): Set face family from font foundry
11390 and family.
11391 (font_list): If family contains a hyphen, build pattern differently.
11392
113931998-08-05 Gerd Moellmann <gerd@gnu.org>
11394
11395 * xfaces.c (free_realized_faces): Increment windows_or_buffers_-
11396 changed instead of setting the frame garbaged.
11397
11398 * xfaces.c (lface_equal_p): Don't assume equal Lisp types for
11399 all attribute values. This is wrong if values are unspecified,
11400 i.e. nil.
11401
11402 * xdisp.c (try_window_id): Give up if window start changed.
11403
11404 * xfaces.c (make_realized_face): Store registry as Lisp object.
11405 (load_face_font_or_fontset): Compute registry of a face
11406 differently. Make it `eq' to Vx_unibyte_registry_and_encoding if
11407 possible.
11408
11409 * dispextern.h (FACE_SUITABLE_FOR_CHARSET_P): Compare registries
11410 differently.
11411
11412 * alloc.c (mark_face_cache): Mark the registry member of faces.
11413
11414 * dispextern.h (struct face): Make registry a Lisp string.
11415
114161998-08-04 Gerd Moellmann <gerd@gnu.org>
11417
11418 * xterm.c (x_get_char_font_and_encoding): Additional parameter
11419 multibyte_p. Handle unibyte text.
11420 (x_append_glyph): Set the multibyte_p flag of glyphs.
11421 (x_produce_image_glyph): Ditto.
11422 (x_append_stretch_glyph): Ditto.
11423 (x_produce_glyphs): Handle unibyte text like ASCII.
11424
11425 * xdisp.c (push_it): Save the multibyte flag of an iterator on the
11426 stack.
11427 (pop_it): Restore it.
11428 (face_before_or_after_it_pos): Handle the case that the string or
11429 buffer is unibyte.
11430 (get_overlay_strings): Set the multibyte flag of the iterator if
11431 the new overlay string is multibyte.
11432 (get_glyph_property): Likewise.
11433 (get_next_display_element): Don't check for charset changes in
11434 unibyte text.
11435 (append_space): Compute face differently for unibyte text.
11436 (extend_face_to_end_of_line): Don't return quickly if face has
11437 stipple.
11438
11439 * xfaces.c (load_face_font_or_fontset): Store registry and
11440 encoding of the font in the registry member of the face.
11441 (make_realized_face): Additional parameter `registry'.
11442 (free_realized_face): Free the registry of a realized face.
11443 (face_suitable_for_charset_p): Function form of the macro
11444 with the same name in uppercase.
11445 (lookup_face): Use Vx_unibyte_registry_and_encoding if charset < 0.
11446 (choose_face_font): New parameter unibyte_registry.
11447 (choose_face_fontset_font): Ditto.
11448 (realize_default_face): Remember the registry and encoding of
11449 the specified frame font in Vx_unibyte_registry_and_encoding.
11450 (face_at_buffer_position): Handle unibyte.
11451 (face_at_string_position): Likewise.
427ec082 11452 (realize_face): New parameter unibyte_registry.
26901792
DL
11453 (compute_char_face): Handle the unibyte case.
11454
11455 * dispextern.h (struct glyph): Add bit multibyte_p.
11456 (struct face): New member registry holding the registry and
11457 encoding of the X font of the face.
11458 (FACE_UNIBYTE_P): Value is non-zero if face is for unibye text.
11459 (enum face_id): Add BASIC_FACE_ID_SENTINEL.
11460 (FACE_SUITABLE_FOR_CHARSET_P): Handle charset < 0 meansing unibyte
11461 text.
11462 (struct iterator_stack_entry): Add multibyte_p.
11463
11464 * xdisp.c (string_pos): Use string_char_to_byte.
11465 (char_charset): Removed.
11466
114671998-08-03 Gerd Moellmann <gerd@gnu.org>
11468
11469 * xterm.c (x_draw_image_glyph_string_foreground): Draw a
11470 rectangle for a block cursor over an image without a mask.
11471 (x_stretch_block_cursor): Added. Non-zero means don't draw
11472 a block cursor over a stretch as wide as that stretch.
11473 (x_draw_stretch_glyph_string): Use it.
11474 (x_draw_hollow_cursor): Ditto.
11475
11476 * minibuf.c (read_minibuf): Use minibuf_prompt instead of prompt.
11477 (read_minibuf): Add front-sticky text property for prompt.
11478
11479 * xdisp.c (char_charset): Return charset of a character,
11480 depending on whether or not multi-byte characters are enabled.
11481
11482 * xfaces.c (Fset_face_charset_registry): Removed.
11483 (x_charset_registry): Determine registry from charset plist.
11484
114851998-08-02 Gerd Moellmann <gerd@gnu.org>
11486
11487 * xdisp.c (get_next_display_element): Don't check for charset
11488 changes if multi-byte characters are not enabled.
427ec082 11489
26901792 11490 * xdisp.c (echo_area_display): Use the flush function from the
427ec082 11491 redisplay interface.
26901792
DL
11492 * keyboard.c (detect_input_pending_run_timers): Likewise.
11493
11494 * dispextern.h (produce_*glyphs_hook): Removed.
11495 * term.c (produce_*glyphs): Ditto.
11496 (cursor_to): Remove pixel position parameters.
11497
11498 * dispnew.c: Remove hooks for window-based redisplay, introduce
11499 a redisplay interface structure.
11500
11501 * xterm.c (x_per_char_metric): Return default char metrics if per
11502 char metric exists but contains a zero width. Adobe Courier seems
11503 to contain such characters.
11504
11505 * xdisp.c (compute_line_metrics): Compute the width of rows
11506 without stopping at glyphs with zero width.
11507
115081998-08-01 Gerd Moellmann <gerd@gnu.org>
11509
11510 * xdisp.c (display_mode_line): If nothing was displayed at all,
11511 display a space.
11512 (hscroll_window_tree): Don't subtract 1 from target point if equal
11513 to ZV and window is not the selected window.
11514
11515 * dispnew.c (check_matrix_invariants): Remove check for window
11516 start at BEGV or after newline. This happens in rare cases
11517 intentionally.
11518
115191998-07-31 Gerd Moellmann <gerd@gnu.org>
11520
11521 * xfaces.c (x_charset_registry): Use STRING_BYTES.
11522 (syms_of_xfaces): Add Vface_default_registry.
11523 (x_charset_registry): Use it.
11524
11525 * xdisp.c (run_window_scroll_functions): Run window scroll functions.
11526 (redisplay_window): Use it.
11527
11528 * dispnew.c (update_text_area): Handle lbearing of deleted text
11529 by backing up one character.
11530
115311998-07-30 Gerd Moellmann <gerd@gnu.org>
11532
427ec082 11533 * dispnew.c (adjust_glyph_matrix): Use a different check to
26901792
DL
11534 decide to do nothing.
11535
11536 * xfaces.c (face_at_string_position): Additional parameter
11537 mode_line_p. If non-zero, merge with the mode line face
11538 instead of the default face.
11539 * dispextern.h (struct it): Add mode_line_p.
11540 * xdisp.c (init_iterator): Set it.
11541 (compute_face_in_string): Use it.
11542 (face_before_or_after_it_pos): Handle strings.
11543 (get_next_display_element): Don't look for relief end in C strings.
11544 (next_element_from_string): Deliver string position instead of
11545 buffer position.
11546
11547 * xterm.c (x_flush): Flush X output buffer.
11548 (XTflash): Use it.
11549
11550 * xfaces.c (lface_from_face_name): Renamed from lface_from_symbol.
11551 Allow strings as face names.
11552
11553 * xfns.c (forall_images_in_image_cache): Check that frame is
11554 alive.
11555
11556 * widget.c (EmacsFrameDestroy): Remove call to free_frame_faces;
11557 it's also called from x_destroy_window. Since this function is
11558 called from X, freeing stuff allocated with xmalloc is dangerous
11559 here, anyway.
11560
11561 * xfaces.c (free_realized_faces): Don't clear current matrices
11562 of a frame being destroyed.
11563
427ec082 11564 * frame.c (make_frame): Call set_window_buffer instead of
26901792
DL
11565 Fset_window_buffer.
11566
11567 * window.c (set_window_buffer): Extracted from Fset_window_buffer,
11568 with an additional argument specifying whether or not hooks may
11569 be called.
11570 (Fset_window_buffer): Call it.
11571
11572 * dispnew.c (clear_desired_matrices): Check that frame has
11573 a valid root window before clearing matrices in the window tree.
11574 (clear_current_matrices): Ditto.
11575 (clear_window_matrices): If GLYPH_DEBUG, check that hchild and
11576 vchild are valid windows if not nil.
11577
11578 * xfaces.c (merge_face_vector_with_property): Allow :reverse-video
11579 for :inverse-video.
11580 (Finternal_set_lisp_face_attribute): Ditto.
11581 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
11582 (Finternal_get_lisp_face_attribute): Ditto.
11583 (Finternal_lisp_face_attribute_values): Ditto.
11584 (syms_of_xfaces): Define the symbol `:reverse-video'.
11585
11586 * xdisp.c (get_glyph_property): Renamed from
11587 fill_iterator_from_glyph_property.
11588 (next_element_from_buffer): Handle case that no `glyph' property
11589 was found correctly.
11590 (display_line): Extend face to end of line only if we have faces.
11591
115921998-07-29 Gerd Moellmann <gerd@gnu.org>
11593
11594 * dispnew.c (Fshow_cursor): Renamed from blink_cursor. Take
11595 additional window argument.
11596
11597 * xdisp.c (reseat_at_previous_visible_line_start): Renamed from
11598 set_iterator_to_previous_visible_line_start.
11599 (reseat_at_next_visible_line_start): Likewise.
11600 (compute_stop_pos): Renamed from set_iterator_stop_pos.
11601 (face_before_or_after_it_pos): Renamed from get_face_at_it_pos.
11602 (compute_face_in_buffer): Renamed from
11603 compute_face_at_iterator_position.
11604 (compute_face_in_string): Renamed from
11605 compute_face_at_iterator_string_position.
11606 (get_space_width): Renamed from get_iterator_space_width.
11607 (next_overlay_string): Renamed from
11608 set_iterator_to_next_overlay_string.
11609 (get_overlay_strings): Renamed from
11610 get_overlay_strings_at_iterator_position.
11611 (restore_overlay_strings): Renamed from
11612 setup_overlay_strings_from_glyph_pos.
11613 (restore_dpvec): Renamed from setup_iterator_dpvec_from_glyph_pos.
11614 (init_from_display_pos): Renamed from init_iterator_from_glyph_pos.
11615 (init_to_row_start): Renamed from init_iterator_to_row_start.
11616 (init_to_row_end): Formerly init_iterator_to_next_row_start.
11617
11618 * xterm.c: Merge with 20.2.97.
11619 (x_produce_glyphs): Use x_append_stretch_glyph for tabs.
11620
11621 * dispextern.h (struct glyph): Replace text_pos position with
11622 simple charpos.
11623
11624 * xdisp.c (this_line_start_pos): Use struct text_pos.
11625 (this_line_end_pos): Renamed from .*endpos; use struct text_pos.
11626 (enum move_it_result): Renamed from move_iterator_result.
11627 (string_pos_nchars_ahead): Compute text_pos in a string from a
11628 known text_pos plus a character delta.
11629 (string_pos): Compute text_pos in string from charpos.
11630 (c_string_pos): Likewise for a C string.
11631 (number_of_chars): Return number of characters in a possibly
11632 multi-byte C string.
11633 (check_it): Renamed from check_iterator. Check that charpos and
11634 bytepos are in sync.
11635 (push_it): Renamed from save_iterator_settings.
11636 (pop_it): Renamed from restore_iterator_settings.
11637 (move_it_.*): Renamed from move_iterator_.*.
11638 (charset_at_position): Take charpos/bytepos into account.
11639 (back_to_previous_line_start): Set iterator to previous line start.
11640 (forward_to_next_line_start): Set iterator to next line start.
427ec082 11641 (back_to_previous_visible_line_start): Renamed from
26901792
DL
11642 move_iterator_previous_visible_line_start.
11643 (set_iterator_to_next_visible_line_start): Handle charpos/bytepos.
11644 (get_face_at_it_pos): Renamed from get_face_from_cursor_pos.
11645 Handle charpos/bytepos.
11646 (compute_face_at_iterator_position): Handle charpos/bytepos.
11647 (compute_face_at_iterator_string_position): Likewise.
11648 (get_iterator_space_width): Likewise.
11649 (load_overlay_strings): Likewise.
11650 (get_overlay_strings_at_iterator_position): Likewise.
11651 (reseat_iterator): Take a text_pos position argument.
11652 (setup_iterator_overlay_strings_from_glyph_pos): Handle charpos/
11653 bytepos.
11654 (init_iterator): Take additional bytepos parameter.
11655 (reseat_iterator_to_string): Handle charpos/bytepos.
11656 (start_display): Take a text_pos parameter. Handle charpos/bytepos.
11657 (next_element_from_string): Handle charpos/bytepos.
11658 (next_element_from_c_string): Likewise.
11659 (fill_iterator_from_glyph_property): Likewise.
11660 (next_element_from_buffer): Likewise.
11661 (set_iterator_to_next): Increment charpos and bytepos of an iterator.
11662 (move_iterator_in_display_line_to): Handle charpos/bytepos.
11663 (move_it_to): Likewise.
11664 (move_it_vertically_backward): Likewise.
11665 (move_it_vertically): Likewise.
11666 (move_it_by_lines): Likewise.
11667 (hscroll_window_tree): Likewise.
11668 (redisplay_internal): Likewise.
11669 (set_cursor_from_row): Likewise.
11670 (redisplay_window): Likewise.
11671 (try_window): Take a text_pos parameter. Handle charpos/bytepos.
11672 (try_window_reusing_current_matrix): Handle charpos/bytepos.
11673 (get_first_unchanged_at_end_row): Compute and return delta_bytes.
11674 (try_window_id): Handle charpos/bytepos.
11675 (Ftrace_redisplay_toggle): Return Qnil.
11676 (get_overlay_arrow_glyph_row): Handle charpos/bytepos.
11677 (insert_left_trunc_glyphs): Likewise.
11678
11679 * dispnew.c: `Merge' with 20.2.97 (it's really too different to
11680 do a real merge).
11681 (increment_glyph_matrix_buffer_positions): Add parameter delta_bytes.
11682 (increment_glyph_row_buffer_positions): Ditto.
11683 (copy_glyph_row_contents): Ditto.
11684 (check_matrix_invariants): Add additional checks for charpos/
11685 bytepos consistency.
11686 (direct_output_for_insert): Changed for charpos/bytepos.
427ec082 11687 (buffer_posn_from_coords): Likewise. Put code dealing with
26901792
DL
11688 `direction-reversed' in #if 0.
11689
11690 * xterm.h: Merge with 20.2.97.
427ec082 11691
26901792
DL
11692 * frame.h: Merge with 20.2.97.
11693
11694 * window.h: Merge with 20.2.97. Add window_end_bytepos.
11695
11696 * dispextern.h (MATRIX_ROW_START_CHARPOS): Get charpos of a row
11697 start.
11698 (MATRIX_ROW_START_BYTEPOS): Likewise for the byte position.
11699 (MATRIX_ROW_END_CHARPOS): Likewise for the row end.
11700 (MATRIX_ROW_END_BYTEPOS): Likewise for the row end byte position.
11701 (struct it): Various members renamed from .*pos to .*charpos.
11702 (IT_CHARPOS): Access current buffer character position of an
11703 iterator.
11704 (IT_BYTEPOS): Access current buffer byte position of an iterator.
11705 (IT_STRING_CHARPOS): Access current string character position of
11706 an iterator.
11707 (IT_STRING_BYTEPOS): Access current string byte position of
11708 an iterator.
11709 (globally): Add function prototypes from 20.2.97.
11710
11711 * everywhere: Use P_ instead of PROTO for function prototypes
11712 because everyone else seems to use P_.
11713
11714 * dispextern.h (struct text_pos): Structure describing a charpos/
11715 bytepos position in text.
11716 (BYTEPOS): Access the byte position part of a text_pos.
11717 (CHARPOS): Likewise for the character position.
11718 (SET_TEXT_POS): Set a text_pos from a character and byte position.
11719 (INC_TEXT_POS, DEC_TEXT_POS): Increment/decrement a text position.
11720 (SET_TEXT_POS_FROM_MARKER): Set a text_pos from a marker.
11721 (SET_MARKER_FROM_TEXT_POS): Set a marker from a text_pos.
11722 (TEXT_POS_EQUAL_P): Compare two text_pos structures for equality.
11723 (struct display_pos): Renamed from glyph_pos. Use struct text_pos
11724 for buffer and string positions.
11725 (struct glyph): Use text_pos.
11726 (struct it): Renamed from display_iterator. Use text_pos.
11727
117281998-07-23 Gerd Moellmann <gerd@gnu.org>
11729
11730 * xfns.c (x_kill_gs_process): Get image colors from XImage of a
11731 pixmap.
11732
117331998-07-21 Gerd Moellmann <gerd@gnu.org>
11734
11735 * dispextern.h (struct glyph_row): New flag indicate_zv_line_p.
11736 * xterm.c (x_draw_row_bitmaps): Use it.
11737 * dispnew.c (row_equal_p): Ditto.
11738 (update_window_line): Ditto.
11739
11740 * xfns.c (prepare_image_for_display): Don't set loading_failed_p
11741 flag of images.
11742
11743 * dispextern.h (struct image): Removed member loading_failed_p.
11744 It's probably better to have the chance to try to load an image
11745 again.
11746
117471998-07-20 Gerd Moellmann <gerd@gnu.org>
11748
11749 * xterm.c (x_draw_bitmap): Draw bitmap for empty lines ending
11750 at ZV if `indicate-zv-lines' is non-nil.
11751 (x_draw_row_bitmaps): Compute bitmap for `indicate-zv-lines'.
11752
11753 * dispnew.c (row_equal_p): Compare displays_text_p and
11754 ends_at_zv_p flags of rows.
11755 (update_window_line): Ditto.
11756
11757 * buffer.h (struct buffer): New member indicate_zv_lines.
11758
11759 * buffer.c (init_buffer_once): Add default for `indicate-zv-lines'.
11760 (init_buffer_once): New variable `default-indicate-zv-lines'.
11761 (syms_of_buffer): New buffer-local varianle `indicate-zv-lines'.
11762
11763 * xdisp.c (redisplay_window): Don't try moving the cursor
11764 if current glyph row w->last_cursor.vpos isn't enabled.
11765
11766 * xterm.c (bitmap_type): Add ZV_LINE_BITMAP.
11767
11768 * window.c (Fset_window_vscroll): Allow only negative scroll
11769 values. Others don't seem to make sense, and this way it's easy
11770 to restore a vscroll of zero.
11771
11772 * xterm.c (x_inverted_image_mask): Check that pixmap could be
11773 allocated.
11774 (x_draw_image_glyph_string_background): Don't clip if pixmap
11775 could not be created.
11776
11777 * xfns.c (xbm_load_image_from_file): Check that pixmap could
11778 be created.
11779 (xbm_load): Ditto.
11780 (gs_load): Ditto.
11781
11782 * xterm.c (x_get_glyph_overhangs): Take image and stretch
11783 glyphs into account.
11784
11785 * xfaces.c (realize_default_face): Don't set font family of
11786 the default face from the fontset alias name for `fontset-startup'.
11787
11788 * xfns.c (gs_load): Pass frame's pixel foreground and background
11789 color to the Lisp loader.
11790
117911998-07-19 Gerd Moellmann <gerd@gnu.org>
11792
11793 * xfns.c (tiff_image_p, tiff_load): Support TIFF images via
11794 libtiff34.
11795
11796 * configure.in (--with-tiff, HAVE_TIFF): Added.
11797
11798 * config.in (HAVE_TIFF): Added.
11799
11800 * Makefile.in (LIBTIFF): Added.
11801
11802 * xfns.c (jpeg_image_p, jpeg_load): Support JPEG images.
11803
11804 * Makefile.in (LIBJPEG): Added.
11805
11806 * xfns.c (resource_types): Enumerators renamed to RES_TYPE_NUMBER,
11807 RES_TYPE_BOOLEAN etc. because of conflict of `boolean' with
11808 jpeglib.h.
11809
427ec082 11810 * configure.in (HAVE_JPEG, --with-jpeg): Added. On systems
26901792
DL
11811 where the library is installed in /usr/local/lib, e.g. FreeBSD,
11812 configure must be run with `--x-includes=/usr/X11R6/include:
11813 /usr/local/include --x-libraries=/usr/X11R6/lib:/usr/local/lib'.
11814
118151998-07-18 Gerd Moellmann <gerd@gnu.org>
11816
11817 * config.in (HAVE_JPEG): Added.
11818
11819 * xfns.c (ct_init): Initialize color table used to map RGB colors
11820 from images to X pixel colors.
11821 (ct_free): Free color table.
11822 (ct_lookup): Look an RGB color up.
11823 (ct_allocated_colors): Get vector of allocated colors.
427ec082 11824 (pbm_image_p): Test if image specification is a valid PPM
26901792
DL
11825 image specification.
11826 (pbm_scan_number): Scan a decimal ASCII number from a file.
11827 (pbm_load): Load a PPM image.
11828
11829 * window.c (Fset_window_vscroll): Adjust glyph matrix if
11830 necessary. Take canonical character units as parameter.
11831 (Fwindow_vscroll): Return canonical character units.
11832
11833 * dispnew.c (allocate_matrices_for_window_redisplay): Add negative
11834 w->dy to display height for which glyph rows must be allocated.
11835
118361998-07-17 Gerd Moellmann <gerd@gnu.org>
11837
11838 * xfaces.c (face_at_string_position): Merge in region face
11839 so that it won't overwrite the font in the region.
11840 (face_at_buffer_position): Ditto.
11841 (realize_basic_faces): Don't realize region face.
11842
11843 * dispextern.h (enum face_id): REGION_FACE_ID removed.
11844
11845 * xterm.c (x_set_glyph_string_background_width): Don't let
11846 cursor face extend to end of line.
11847
11848 * xdisp.c (append_space): If adding space of default face,
11849 make sure glyph ist produced with right face.
11850
11851 * xterm.c (x_clear_glyph_string_rect): Draw a rectangle in the
11852 background color of a glyph string.
11853 (x_draw_glyph_string_background): Call it.
11854 (x_draw_glyph_string_bg_rect): Ditto.
11855 (x_draw_stretch_glyph_string): Ditto.
11856
118571998-07-15 Gerd Moellmann <gerd@gnu.org>
11858
11859 * xdisp.c (init_iterator): Initialize it->current_y to the
11860 window's vscroll w->dy.
11861
11862 * window.c (Fwindow_vscroll): Return number of pixels window
11863 is vscrolled smoothly.
11864 (Fset_window_vscroll): Set the number.
11865
11866 * xdisp.c (move_iterator_to): Recognize case MOVE_TO_POS and
11867 to_pos in truncated part of a line.
11868
118691998-07-14 Gerd Moellmann <gerd@gnu.org>
11870
11871 * xdisp.c (move_iterator_in_display_line_to): If very first glyph
11872 doesn't fit on the line, truncate it, despite truncate_lines nil.
11873 (display_line): Ditto.
11874
11875 * xfns.c: Experimental support for Ghostscript images.
11876
11877 * xterm.c (x_term_init): Initialize new atoms DONE and PAGE.
11878 (XTread_socket): React on events from Ghostscript.
11879 (expose_frame): If width or height are zero, redraw entire frame.
11880 (XTread_socket): Call expose_frame after receiving event from
11881 Ghostscript.
11882
11883 * xterm.h (struct x_display_info): Add atoms DONE and PAGE
11884 for Ghostscript support.
11885
11886 * xdisp.c (redisplay_internal): Return quickly if called
11887 recursively.
11888
11889 * alloc.c (NSTATICS): Increased to 1024.
11890
118911998-07-08 Gerd Moellmann <gerd@gnu.org>
11892
11893 * xterm.c (x_append_stretch_glyph): Append a stretch glyph to an
11894 iterator's glyph row.
11895 (x_produce_stretch_glyph): Call it.
11896 (x_produce_glyphs): Handle `space-width' property; call
11897 x_append_stretch_glyph.
11898
11899 * xdisp.c (syms_of_xdisp): Add symbol `space-width' used as a text
11900 property.
11901 (get_iterator_space_width): Determine value of `space-width'
11902 property at iterator's position.
11903 (reseat_iterator): Call it.
11904 (next_element_from_string): Ditto.
11905 (next_element_from_buffer): Ditto.
11906 (init_iterator): Initialize space_width of iterator.
11907 (redisplay_internal): Don't goto end_of_redisplay if PT hasn't
11908 moved, but cursor blinks.
11909 (redisplay_internal): Set w->last_cursor_off_p after update.
11910
11911 * dispextern.h (enum iterator_prop_idx): Add SPACE_WIDTH_PROP_IDX.
11912 (struct display_iterator): Add new member space_width.
11913
11914 * window.h (struct window): Add last_cursor_off_p.
11915
119161998-07-07 Gerd Moellmann <gerd@gnu.org>
11917
11918 * Saved.
11919
11920 * window.c (Fpos_visible_in_window_p): Case window not up to
11921 date---return nil if iterator hasn't reached position.
11922
119231998-07-06 Gerd Moellmann <gerd@gnu.org>
11924
11925 * xdisp.c (text_outside_line_unchanged_p): Fix case that
11926 overlays have changed.
11927 (redisplay_window): Case cursor movement. Don't try it if
11928 last_cursor.vpos is out of range.
11929
11930 * xdisp.c (set_cursor_from_row): Set this_line_.* variables. This
11931 way, the display optimization for the line containing the cursor
11932 is used more frequently, esp. when we have a blinking cursor.
11933 (display_line): Don't set this_line_.* variables.
11934
11935 * xterm.c (x_redraw_cursor): Removed.
11936 (x_display_and_set_cursor): Set cursor type depending on
11937 cursor_off_p flag of window.
11938
11939 * dispnew.c (redraw_cursor_hook): Removed.
11940 (Fblink_cursor): Additional parameter on_p to set the cursor_off_p
11941 member of the selected window.
11942
11943 * xfaces.c (Fface_font): Added for compatibility with 20.2.
11944
11945 * xterm.c (x_y_to_hpos_vpos): Return null if not over text.
11946 Return glyph area under x/y.
11947 (note_mouse_highlight): Use x_y_to_hpos_vpos in its new form.
11948
11949 * keyboard.c (detect_input_pending_run_timers): Call gobble_input
11950 after redisplaying.
11951
119521998-07-05 Gerd Moellmann <gerd@gnu.org>
11953
11954 * xdisp.c (text_outside_line_unchanged_p): Test if changes
11955 are all outside of a line of text.
11956 (redisplay_internal): Use it.
11957
119581998-06-30 Gerd Moellmann <gerd@gnu.org>
11959
11960 * xdisp.c (next_element_from_buffer): After skipping over
11961 invisible text, look for the `glyph' property.
11962 (set_iterator_stop_pos): Ignore check positions in front
11963 of an iterator's current position.
11964
11965 * xterm.c (show_mouse_face): Don't act on rows that don't exist
11966 anymore or which are marked as not having valid contents.
11967
11968 * xfaces.c (Finternal_set_lisp_face_attribute): Don't free
11969 realized faces if new attribute value is equal to old value.
11970
119711998-06-29 Gerd Moellmann <gerd@gnu.org>
11972
11973 * xfaces.c (Finternal_make_lisp_face): Increment
11974 lface_id_to_name_size when lface_id_to_name is reallocated.
11975
119761998-06-27 Gerd Moellmann <gerd@gnu.org>
11977
11978 * xdisp.c (set_iterator_stop_pos): Compute initial stop_pos
11979 as minimum of endpos and overlay_pos.
11980 (load_overlay_strings): Set next_overlay_pos of iterator to
11981 -1 if we don't have to check for more overlay strings.
11982
119831998-05-09 Gerd Moellmann <gerd@gnu.org>
11984
11985 * xdisp.c (set_iterator_to_next_visible_line_start): Don't
11986 do anything if iterator is at ZV because scan_buffer doesn't
11987 work otherwise.
11988
11989 * xterm.c (x_encode_char): Inline it.
11990 (x_get_char_font_and_encoding): Simplified.
11991 (x_per_char_metric): Inline it.
11992
11993 * xterm.c (x_draw_glyph_string_relief): Use clipping.
11994
11995 * xdisp.c (get_next_display_element): Check for end of relief
11996 face moved here from next_element_from_buffer.
11997
11998 * xterm.c (x_produce_image_glyph): Add relief thickness.
11999 (x_produce_stretch_glyph): Ditto.
12000
120011998-05-08 Gerd Moellmann <gerd@gnu.org>
12002
12003 * xdisp.c (fill_iterator_from_glyph_property): Handle glyph
12004 property value (space :width WIDTH :height HEIGHT :ascent ASCENT).
12005
12006 * xterm.c (x_produce_stretch_glyph): Produce a stretch glyph
12007 from a glyph property.
12008 (x_produce_glyphs): Use it.
12009
12010 * xdisp.c (set_iterator_to_next): Handle next_element_from_stretch.
12011
427ec082 12012 * xterm.c (x_produce_image_glyph): Add to current_x only if
26901792
DL
12013 in text area.
12014 (x_produce_glyphs): Ditto.
12015
427ec082 12016 * xdisp.c (display_line): Compute row height from glyphs in
26901792
DL
12017 marginal areas.
12018
427ec082 12019 * xterm.c (x_draw_image_glyph_string_background): Draw
26901792 12020 background of an image glyph string.
427ec082 12021 (x_draw_glyph_string_bg_rect): Draw a rectangular region of
26901792
DL
12022 the background of a glyph string.
12023 (x_draw_image_glyph_string_foreground): Draw the foreground of
12024 an image glyph string.
12025 (x_inverted_image_mask): Return the inverted mask of an image.
12026
12027 * xfns.c (x_draw_image): Removed.
12028
12029 * dispextern.h (struct image_type): Remove drawing function.
12030
12031 * xfaces.c (load_face_colors): Swap colors if face is inverse.
12032
12033 * xdisp.c (get_next_display_element): In marginal areas, translate
12034 newlines, tabs, etc. like normal control characters.
12035
12036 * xfaces.c (Fface_color_supported_p): Transpose parameters frame
12037 and color.
12038 (free_realized_faces): Set frame garbaged.
12039
12040 * xfaces.c (syms_of_xfaces): Add defsubr for
12041 internal-lisp-face-attribute-values.
12042
120431998-05-07 Gerd Moellmann <gerd@gnu.org>
12044
12045 * xterm.c (x_produce_image_glyph): Don't add glyph if area is
12046 full.
12047 (x_produce_image_glyph): Set IT->nglyphs to 1.
12048 (x_draw_image_glyph_string): Use inverted mask to draw background.
12049
12050 * dispextern.h (struct image_type): Additional clipping rect
12051 parameters for drawing functions.
12052
427ec082 12053 * xterm.c (x_get_glyph_string_clip_rect): Get clip rect for
26901792
DL
12054 a glyph string.
12055 (x_draw_image_glyph_string): Use it and pass the rect to the
12056 image drawing function.
12057
12058 * xdisp.c (fill_iterator_from_glyph_property): Use position of
12059 first character with `glyph' property as image position. Set
12060 iterator back to that position as long as the image hasn't been
12061 consumed with set_iterator_to_next.
12062 (set_cursor_from_row): Accept when glyph with given position is
12063 not found in the row. Set cursor x to end of line in that case,
12064 so that we can hscroll.
12065 (redisplay_internal): Correct computation of delta by which
12066 positions have changed in redisplay optimization for cursor
12067 row of selected window.
12068
12069 * xdisp.c (display_line): Remove start_pos.
427ec082 12070 (display_line): Fix bug preventing display optimization for
26901792
DL
12071 cursor line of selected window.
12072 (next_element_from_buffer): Avoid XSETBUFFER, use it->w->buffer
12073 instead.
12074
12075 * dispnew.c (update_text_area): Use GLYPH_EQUAL_P.
12076 (update_text_area): Take glyph pixel width into account
12077 when trying to find a resync point.
12078 (row_equal_p): Compare glyphs in all areas.
12079
120801998-05-06 Gerd Moellmann <gerd@gnu.org>
12081
12082 * xterm.c (x_produce_glyphs): Don't add glyph if area is full.
12083
12084 * dispextern.h (struct glyph_row): Use unsigned hash value.
12085
12086 * xdisp.c (display_line): Simplified and made faster by setting
12087 the cursor with set_cursor_from_row.
12088 (set_cursor_from_row): Handle rows of desired matrix.
12089
120901998-05-05 Gerd Moellmann <gerd@gnu.org>
12091
12092 * xdisp.c (set_cursor_from_row): Don't put cursor on glyphs
12093 with type != CHAR_GLYPH.
12094 (fill_iterator_from_glyph_property): Return void. Set
12095 method to next_element_from_image.
12096 (next_element_from_image): Dummy function for delivering a
12097 single image id.
12098 (set_iterator_to_next): Add method next_element_from_image.
12099 (redisplay_window): When recentering, and cursor vpos is -1
12100 after display, assume middle of window is in first line displayed
12101 in window, and display again.
427ec082 12102 (fill_iterator_from_glyph_property): Assign image glyph
26901792
DL
12103 the position of the first character having the glyph property.
12104
12105 * dispextern.h (IMAGE_ASCENT): Compute ascent of image.
12106 * xfns.c (x_draw_image): Use it.
12107 * xterm.c (x_produce_image_glyph): Use it.
12108
12109 * xterm.c (x_produce_image_glyph): Set iterator's pixel_width.
12110
12111 * Makefile.in: Extraneous #define of LIBXPM removed.
12112
12113 * xterm.c (x_produce_glyphs): Produce a STRETCH_GLYPH for tabs.
427ec082 12114 (x_fill_stretch_glyph_string): Fill a glyph string from a
26901792
DL
12115 stretch glyph.
12116 (x_compute_glyph_string_overhangs): Compute overhangs only
12117 for text glyph strings.
12118 (x_draw_stretch_glyph_string): Draw a stretch glyph string.
12119 (x_draw_glyph_string): Call it.
12120
12121 * dispextern.h (glyph_type): Add STRETCH_GLYPH.
12122 (struct glyph): Add sub-structure for stretchable glyphs.
12123 (GLYPH_EQUAL_P): Compare glyph type and u.val.
12124
12125 * xdisp.c (get_overlay_arrow_glyph_row): Put face code into
12126 #ifdef HAVE_FACES.
12127
12128 * xterm.c (x_produce_glyphs): Use ASCII face for spaces of a TAB.
12129
12130 * xdisp.c (fill_iterator_from_glyph_property): Renamed from
12131 setup_iterator_from_glyph_property. Don't do it for terminal
12132 frames.
12133
12134 * xterm.c (x_produce_image_glyph): Produce glyph for image
12135 that can't be loaded.
12136
12137 * xfns.c (lookup_image): If image can't be loaded, set its
12138 width and height so that we can draw a rectangle.
12139 (x_draw_image): Draw a rectangle for images that don't have
12140 a pixmap.
12141 (make_image): Set hash value.
12142 (image_spec_equal_p): Use image_spec_value.
12143
12144 * xterm.c (expose_frame): Don't try to redraw if basic faces
12145 haven't benn realized yet.
427ec082 12146 (x_draw_image_glyph_string): Fill background only if image
26901792
DL
12147 is not as tall as row.
12148
121491998-05-04 Gerd Moellmann <gerd@gnu.org>
12150
12151 * Makefile.in (LIBXPM): If not already defined, define to -lXpm.
12152 (LIBX)[HAVE_X11]: Add LIBXPM.
12153
12154 * xfns.c (xpm_image_p): Implementation of image type functions
12155 for XPM.
12156 (xpm_load): Ditto.
12157
12158 * dispextern.h (struct image): Add mask pixmap for XPM.
12159
12160 * xfns.c (x_draw_image): Handle images with masks.
12161
12162 * configure.in: --with-xpm added. Code detecting -lXpm added.
12163
12164 * config.in: Add HAVE_XPM.
12165
12166 * xfns.c (xbm_draw): Removed.
12167 (x_draw_image): Default implementation for drawing images.
12168 (xbm_keyword_index): Remove XBM_DEPTH.
12169 (xbm_format): Remove `:depth'.
12170 (xbm_image_spec_from_file): Removed to reduce consing.
427ec082 12171 (xbm_load_image_from_file): Added for the same reason.
26901792 12172
427ec082 12173 * xterm.c (x_fill_image_glyph_string): Don't set ybase of
26901792
DL
12174 glyph string.
12175 (x_draw_image_glyph_string): Pass ybase to image draw function.
12176
12177 * xfns.c (make_image): Set default baseline.
12178
12179 * xterm.c (x_produce_image_glyph): Compute ascent of image
12180 from its height and baseline percentage.
12181
12182 * xfns.c (xbm_keyword_index): Add XBM_BASELINE.
12183 (xbm_format): Add description for `:baseline'.
12184 (xbm_image_spec_from_file): Add keywords from original spec to
12185 result.
12186 (xbm_load): Set baseline of image.
12187 (xbm_image_p): Check range for baseline.
12188
12189 * dispextern.h (struct image): Add member baseline.
12190
12191 * xdisp.c (dump_glyph_matrix): Handle image glyphs.
12192
12193 * term.c (produce_glyphs): Change assertion to allow DISP_IMAGE.
12194
12195 * xdisp.c (get_next_display_element): Do character translations
12196 only if delivering characters.
12197
121981998-05-03 Gerd Moellmann <gerd@gnu.org>
12199
427ec082 12200 * dispextern.h (ITERATOR_AT_END_OF_LINE_P): Test for
26901792
DL
12201 DISP_CHARACTER.
12202
12203 * xterm.c (x_produce_image_glyph): Poduce image glyphs.
12204 (x_produce_glyphs): Call x_produce_glyphs for DISP_IMAGE.
12205
122061998-05-02 Gerd Moellmann <gerd@gnu.org>
12207
12208 * xfns.c (prepare_image_for_display): Set image timestamp.
12209 (clear_image_cache): Clear images if image's timestamp +
12210 Vimage_eviction_seconds is > now.
12211 (syms_of_xfns): New variables image-eviction-seconds, and
12212 image-types.
12213 (add_image_format): Add to image-types.
12214 (xbm_load): Support new image spec format.
12215 (x_alloc_image_color): Allocate a color for an image.
12216
12217 * dispextern.h (struct image): Add timestamp.
12218
12219 * xfns.c (xbm_image_p): Allow bool-vectors, vectors of strings and
12220 vectors of bool-vectors.
12221 (xbm_lisp_object_from_file): Build new format image spec.
12222
122231998-05-01 Gerd Moellmann <gerd@gnu.org>
12224
12225 * xfaces.c (init_frame_faces): Initialize image cache.
12226 (free_frame_faces): Free it.
12227
12228 * xterm.c (x_delete_display): Don't free image cache.
12229
12230 * emacs.c (main): Call init_xfns.
12231
122321998-04-30 Gerd Moellmann <gerd@gnu.org>
12233
12234 * alloc.c (mark_object): Mark objects in image cache.
12235
427ec082 12236 * xfns.c (x_set_internal_border_width): Correct call to
26901792
DL
12237 widget_store_internal_border_width.
12238
12239 * widget.c (widget_store_internal_border): Return void.
12240
12241 * xfns.c (x_destroy_bitmap): Use xfree instead of free. Return
12242 void.
12243 (init_x_parm_symbols): Return void.
12244 (x_report_frame_params): Ditto.
12245 (x_set_border_pixel): Ditto.
12246 (syms_of_xfns): Ditto.
12247 (x_destroy_all_bitmaps): Use xfree instead of free.
12248
12249 * xterm.h (FRAME_X_IMAGE_CACHE): Access the image cache of a frame.
12250
12251 * xterm.c (x_term_init): Initialize image_cache of display info.
12252 (x_delete_display): Free image cache.
12253
12254 * xterm.h (struct x_display_info): Add image_cache.
12255
12256 * xfns.c (make_image_cache): Allocate a new image cache.
12257 (free_image_cache): Free an image cache.
12258 (make_image): Allocate an image.
12259 (free_image): Free an image.
12260
12261 * dispextern.h (struct image): Structure describing an image.
12262 (struct image_cache): Structure describing an image cache.
12263
122641998-04-29 Gerd Moellmann <gerd@gnu.org>
12265
12266 * xdisp.c (check_iterator_glyph_property): Return int. Value is
12267 non-zero if iterator is filled with something to return.
12268 (next_element_from_buffer): Immediately return if
12269 setup_iterator_from_glyph_prop has filled iterator with pixmap.
12270 (next_element_from_string): Likewise.
12271
12272 * xfaces.c (load_pixmap): Allow to pass null for W_PTR and H_PTR.
12273
12274 * dispextern.h (struct glyph): Add pixmap_id.
12275 (display_element_type): Add DISP_PIXMAP.
12276
12277 * xmenu.c (popup_get_selection): Use xmalloc/xfree instead of
12278 malloc/free.
12279
12280 * xfaces.c (clear_font_table): Free fonts not used by fontsets.
12281 (clear_face_cache): Call it.
12282
12283 * xterm.c (x_query_font): Don't look at empty font table slots.
12284 (x_compute_min_glyph_bounds): Likewise.
12285 (x_term_init): Initialize font_table to null.
12286 (x_load_font): Change allocation of font_info structures so
12287 that it is possible to free fonts.
12288
427ec082 12289 * xfns.c (Fx_close_connection): Use xfree instead of free.
26901792
DL
12290 Only free fonts from filled font table entries.
12291
12292 * xfaces.c (best_matching_font): Support use of scalable fonts.
12293 (Fface_scalable_fonts_mode): Toggle use of scalable fonts.
12294
12295 * xterm.h (struct x_display_info): Remove screen_dpi, add resx
12296 and resy.
12297 * xterm.c (x_term_init): Compute resx and resy.
12298
12299 * xfaces.c (split_font_name): Don't reject scalable fonts.
12300
427ec082 12301 * xterm.c (x_list_fonts): Set code exclusing scalable fonts
26901792
DL
12302 in #if 0.
12303
12304 * xfaces.c (xlfd_point_size): Return 0 for fonts whose real
12305 point size cannot be determined.
12306
12307 * xterm.h (FRAME_SMALLEST_CHAR_WIDTH): Return smallest character
12308 width over all fonts on a frame.
12309 (FRAME_SMALLEST_FONT_HEIGHT): Likewise for font height.
12310 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Use these
12311 macros.
12312
12313 * xterm.c (x_font_min_bounds): Moved here from xfaces.c.
12314 (x_compute_min_char_bounds): Formerly min_char_bounds in xfaces.c.
12315 (x_load_font): Use x_compute_min_char_bounds.
12316
12317 * xterm.h (struct x_display_info): New members smallest_char_width
12318 and smallest_font_height.
12319
123201998-04-28 Gerd Moellmann <gerd@gnu.org>
12321
12322 * dispextern.h (PREPARE_FACE_FOR_DISPLAY): Call function with
12323 the same name if GC of face is zero.
12324
12325 * dispextern.h (struct face): Member non_ascii_gc removed.
12326
12327 * xterm.c (x_get_char_font_and_encoding): Return face's font
427ec082 12328 for characters < 0177 in default face. Prepare face for
26901792
DL
12329 display before returning it.
12330 (x_produce_glyphs): Use it->charset.
12331 (x_get_char_font_and_encoding): Simplified.
12332 (x_encode_char): Remove parameter `font'.
12333
12334 * xfaces.c (choose_face_font): If registry from charset symbol
12335 doesn't contain a `-', make it a pattern by appending "*-*".
12336
12337 * xdisp.c (check_iterator_glyph_property): Adjust limit for
12338 glyph_check_pos computation to character boundary.
12339
123401998-04-27 Gerd Moellmann <gerd@gnu.org>
12341
12342 * fontset.h (FONT_INFO_FROM_ID): Return null if ID is invalid.
12343
12344 * xfaces.c (ascii_face_of_lisp_face): Get the id of the realized
12345 ASCII face for a given Lisp face id.
12346
12347 * xdisp.c (set_iterator_stop_pos): Take glyph_check_pos into
12348 account.
427ec082 12349 (reseat_iterator): Set glyph_check_pos. Handle case where
26901792
DL
12350 new position is < original position.
12351 (check_iterator_glyph_property): Handle glyph property in strings.
12352 (next_element_from_string): Call above function.
12353 (next_element_from_display_vector): Handle faces in glyphs.
12354 (get_next_display_element): Set face_id of glyphs for
12355 control chars to zero.
12356
12357 * Makefile.in (term.o): Add dependency on dispextern.h.
12358
12359 * xdisp.c (syms_of_xdisp): Add symbol `glyph'.
12360 (display_line): Handle marginal areas.
12361 (move_iterator_in_display_line_to): Likewise.
12362
12363 * xfaces.c (Finternal_make_lisp_face): Assign Lisp faces an id.
12364
12365 * xfaces.c (face_at_buffer_position): Don't merge with nil
12366 text property.
12367 (face_at_string_position): Ditto.
12368
12369 * dispextern.h (struct display_iterator): Use a stack of saved
12370 values instead of saving check positions etc. individually.
12371
12372 * xdisp.c (set_iterator_to_next): If end of Lisp string reached,
12373 maybe pop the iterator's stack.
12374 (save_iterator_settings): Push a value on iterator's stack.
12375 (get_overlay_strings_at_iterator_position): Use it.
12376 (restore_iterator_settings): Pop the stack.
12377 (set_iterator_to_next_overlay_string): Use it.
12378
12379 * xfaces.c (try_font_list): Use alternative font families.
12380
123811998-04-26 Gerd Moellmann <gerd@gnu.org>
12382
12383 * xfaces.c (Fset_face_font_sort_order): Set the order in which
12384 font selection matches fonts.
12385 (Fface_font_sort_order): Return the font sort order.
12386 (best_matching_font): Find best matching font based on sort order.
12387 (cmp_font_names): Sort by given sort order.
12388
12389 * dispextern.h (struct display_iterator): New member faces_p.
12390 * xdisp.c (init_iterator): Initialize it->faces_p.
12391 (compute_face_at_iterator_string_position): Use it.
12392 (compute_face_at_iterator_position): Use it.
12393 (init_iterator): Use it.
12394 (display_mode_line): Ditto.
12395
12396 * xdisp.c (get_next_display_element): Put code choosing a face
12397 when the charset changes in #ifdef HAVE_FACES.
12398
427ec082 12399 * dispextern.h (FACE_FOR_CHARSET): Replacement for function
26901792
DL
12400 lookup_face_for_charset.
12401
12402 * xfaces.c (free_font_names): Renamed from free_split_font_names.
12403 (free_all_realized_faces): Renamed from remove_all_realized_faces.
12404
124051998-04-25 Gerd Moellmann <gerd@gnu.org>
12406
12407 * xfaces.c (best_matching_font): Return the name of the best
12408 matching font in an array of font_name structures.
12409 (choose_face_font): Use it.
12410 (choose_face_fontset_font): Use it.
12411 (find_best_weight_font): If final font found has same weight as
12412 the font we started with, return the original font because it is a
12413 better match for the resolution of the display.
12414 (find_best_slant_font): Likewise.
12415 (merge_face_vector_with_property): Check more invalid attribute
12416 values.
12417 (lface_suitable_for_charset_p): Replaced by a macro with the same
12418 name in upper-case.
12419
124201998-04-24 Gerd Moellmann <gerd@gnu.org>
12421
12422 * dispextern.h (struct face): Member
12423 fontset_chosen_for_realization_p removed.
12424
12425 * xfaces.c (cache_face): If face->fontset >= 0, add face to the
12426 end of the collision list, so that we find more specific faces
12427 first.
12428 (lookup_face_for_charset): Look up a new face if face->fontset >=
12429 0, and charset != CHARSET_COMPOSITION.
12430
12431 * xfaces.c (split_font_name): Return zero if point size of font
12432 couldn't be computed.
12433 (realize_default_face): Use ASCII font of a fontset to determine
12434 font-related attributes of the default face.
12435 (face_fontset): Return fontset id for face family.
12436 (font_list): Additional parameter font_pattern. If non-nil,
12437 return fonts matching that pattern.
12438
124391998-04-23 Gerd Moellmann <gerd@gnu.org>
12440
12441 * xfaces.c (choose_face_fontset): If new fontset cannot be
12442 constructed, or fontset name cannot be split, return the id of the
12443 standard fontset.
12444
12445 * xterm.c (XTframe_up_to_date): Check that frame is an X frame.
12446 When Emacs starts, it may be called for the initial frame which
12447 isn't an X frame.
12448
12449 * dispextern.h (struct face): New members foreground_defaulted_p,
12450 background_defaulted_p.
12451 (struct face): Members `mask' and `cache' removed.
12452
12453 * xfaces.c (load_color): Set them.
12454 (free_face_colors): Check them.
427ec082 12455 (xlfd_point_size): Return -1 if resolution or point size of
26901792
DL
12456 font unknown.
12457
12458 * xfaces.c (free_font): Removed.
12459 (load_face_font_or_fontset): Renamed from load_font.
12460 (load_face_font_or_fontset): Use message2 instead of signalling.
12461 (load_color): Likewise.
12462 (load_pixmap): Likewise.
12463
12464 * xterm.h (struct x_display_info): Add screen_dpi.
12465 * xterm.c (x_term_init): Initialize it.
12466 * xfaces.c (xlfd_point_size): Use it.
12467 (split_font_name): Compute numeric XLFD_RESY.
427ec082 12468 (cmp_font_names): Make fonts with an y-resolution more
26901792
DL
12469 similar to that of the frame appear first in the result.
12470
12471 * xfaces.c (cache_face): If fontset_chosen_for_realization_p
12472 is set for the face to cache, add it to the end of the collision
12473 list.
12474 (try_font_list): If fonts for given family and registry cannot
12475 be found, first try to keep the registry, and choose a different
12476 family.
12477 (choose_face_font): Allow nfonts == 0.
12478 (try_font_list): Give up if no font matches given registry.
12479
124801998-04-22 Gerd Moellmann <gerd@gnu.org>
12481
12482 * xterm.c (x_get_char_font_and_encoding): Get font_info from
12483 font info id of the face.
12484
12485 * xfaces.c (load_font): Set font_info_id.
12486 (realize_face): Ditto.
12487
12488 * dispextern.h (struct face): Change member font_info to
12489 font_info_id.
12490
12491 * fontset.h (FONT_INFO_ID): Build an ID from a font_info pointer.
12492 (FONT_INFO_FROM_ID): Get a font_info pointer from an ID.
12493
12494 * xdisp.c (extend_face_to_end_of_line): If IT's current charset
12495 isn't ASCII, get the ASCII face before adding a space.
12496 (append_space): Likewise.
12497 (insert_left_trunc_glyphs): Initialize truncate_it's charset
12498 to -1 so that it will compute the right face for the truncation
12499 glyphs.
12500
12501 * xfaces.c (realize_face): Set
12502 face->fontset_chosen_for_realization_p.
12503 (lookup_face_for_charset): If fontset wasn't specified originally
12504 and new charset != CHARSET_COMPOSITION, get a new face for that
12505 charset.
12506
12507 * dispextern.h (struct face): New member
12508 fontset_chosen_for_realization_p_specified_p. Set to 1 when
12509 realize_face has chosen a fontset to display composite characters
12510 for a Lisp face not specifying a fontset.
12511
12512 * xdisp.c (extend_face_to_end_of_line): Move tests for default
12513 face and line already filled here. Don't do anything if current
12514 face hasn't a relief or has a background equal to the frame
12515 background.
12516
12517 * xfaces.c (split_font_name): Additional parameter numeric_p.
12518 Don't compute numeric values if it is non-zero.
12519 (choose_face_fontset): Call split_font_name with numeric_p == 0.
427ec082 12520 (choose_face_fontset): Print a message if fontset contains a
26901792
DL
12521 font whose name cannot be split into fields.
12522
125231998-04-21 Gerd Moellmann <gerd@gnu.org>
12524
427ec082 12525 * xfaces.c (try_font_list): Try to load a list of fonts,
26901792
DL
12526 possibly using less restrictive patterns.
12527 (choose_face_font): Use it.
12528
12529 * xterm.c (x_get_char_font_and_encoding): For charset !=
12530 CHARSET_ASCII use font_info of face if face hasn't a fontset set.
12531
12532 * dispextern.h (struct face): New member font_info.
12533
12534 * xfaces.c (load_font): Use FS_LOAD_FONT to load fonts for faces
12535 specifying a fontset as well as those not having a fontset.
12536 (free_font): Make it empty.
12537 (realize_face): Use changed load_font.
12538
12539 * xterm.c (x_get_char_font_and_encoding): If face doesn't
12540 fit for charset, get the right one.
12541
12542 * xfaces.c (load_font): Take frame and name parameter, return
12543 font.
12544 (free_font): Likewise.
12545 (split_font_name): Compute numeric values for height, swidth etc.
12546 (cmp_font_names): Use them.
12547 (find_best_width_font): Ditto.
12548 (find_best_height_font): Ditto.
12549 (find_best_weight_font): Ditto.
12550 (find_best_slant_font): Ditto.
12551 (lface_hash): Add weight, slant, swidth and relief to hash value.
12552 (lface_equal_p): Make it faster.
12553 (lface_from_symbol): Use assq_no_quit.
12554 (Fnote_default_face_changed): Removed.
12555 (cmp_font_names): Use strcmp instead of xstricmp.
12556 (face_charset_registries): Removed.
12557
125581998-04-20 Gerd Moellmann <gerd@gnu.org>
12559
12560 * frame.h (CHECK_FRAME): Give this macro a statement form.
12561 (CHECK_LIVE_FRAME): Ditto.
12562
12563 * xfaces.c (find_best_width_font): Find the best matching font
12564 for a given width.
12565 (find_best_height_font): Likewise for height.
12566 (find_best_weight_font): Likewise for weight.
12567 (find_best_slant_font): Likewise for slant.
12568 (choose_face_font): Use them.
12569 (get_lface_attributes): Always return frame-local face attrs.
427ec082 12570 (Finternal_merge_in_global_face): Merge local face with
26901792
DL
12571 global face attributes.
12572
12573 * xfaces.c (check_lface_attrs, check_lface): Check consistency of
12574 Lisp face attributes.
12575
125761998-04-19 Gerd Moellmann <gerd@gnu.org>
12577
12578 * xfaces.c (Finternal_set_lisp_face_attribute): Add :bold
12579 and :italic for compatibility.
12580 (Finternal_set_lisp_face_attribute_from_resource): Handle
427ec082 12581 :bold and :italic. Handle boolean resource values for
26901792
DL
12582 :underline and :italic.
12583
12584 * xfns.c (display_x_get_resource): Make it externally visible.
12585
12586 * xfaces.c (lface_from_symbol): Take a frame as parameter.
12587 If that frame is non-null, return the frame-local face.
12588 (Finternal_make_lisp_face): Additional frame argument.
12589 (lface_attributes): Get face attributes from global and frame-local
12590 definitions.
12591 (Finternal_lisp_face_equal_p): Additional frame argument.
12592 (merge_lisp_face_vector_with_property): Ditto.
12593 (Frealize_basic_faces): Removed.
12594 (Finternal_get_lisp_face_attribute): Additional frame argument.
12595 (Finternal_lisp_face_p): Ditto.
12596 (load_color) [MSDOS]: Removed because it isn't clear how
12597 to do this for MS-DOS.
12598
12599 * xfaces.c (lface_from_symbol): Get global face definition
12600 from face-global-alist.
12601
12602 * xfaces.c (Finternal_set_lisp_face_attribute): Allow `t'
12603 as values for :underline and :inverse-video.
12604 (Finternal_set_lisp_face_attribute): Allow nil values.
12605
126061998-04-17 Gerd Moellmann <gerd@gnu.org>
12607
12608 * xfaces.c (Finternal_make_lisp_face): Return Lisp face vector.
12609
12610 * xfaces.c (syms_of_xfaces): Add Vall_faces.
12611 (Finternal_make_lisp_face): Add new face to Vall_faces.
12612
12613 * xdisp.c (echo_area_display): Remove code recomputing faces.
12614 (redisplay_internal): Ditto.
12615 (init_iterator): Do it here.
12616
12617 * xfaces.c (choose_face_font): Check that swidth doesn't change
12618 for subusequent attributes.
12619 (xlfd_point_size): Return int.
12620
12621 * xdisp.c (redisplay_internal, echo_area-display): If realized
12622 faces have been cleared, call recompute_basic_faces.
12623
12624 * xfaces.c (recompute_basic_faces): Free realized faces. Reset
12625 face_attributes_changed_p.
427ec082 12626 (remove_all_realized_faces): Remove all realized faces on
26901792
DL
12627 all frames.
12628 (Finternal_set_lisp_face_attribute): Call remove_all_realized_faces.
12629
12630 * xdisp.c (redisplay_internal): If face attributes have been
12631 changed since the last redisplay, recompute basic faces.
12632 (echo_area_display): Ditto.
12633
12634 * xfaces.c (clear_face_gcs): Renamed from clear_realized_face_cache.
12635
12636 * xfaces.c (min_char_bounds): If face cache not yet present,
12637 don't try to get font dimensions from faces.
12638
12639 * xterm.c (x_frame_mode_line_height): If face cache not present
12640 set, return default height.
12641
12642 * alloc.c (mark_face_cache): Check for null faces. Correct
12643 index bug.
12644
12645 * dispextern.h (struct face): Renamed from struct rface. Member
12646 underline renamed underline_p. Make it a bit-field.
12647
12648 * xfaces.c (init_frame_faces): Allocate face cache.
12649 (free_frame_faces): Free face cache.
12650 (recompute_basic_faces): Realize basic faces only if face cache is
12651 allocated, i.e. after init_frame_faces has been called.
12652
12653 * frame.c (make_frame): Initialze face cache with null.
12654
12655 * xfaces.c (same_size_fonts): Removed.
12656
427ec082 12657 * xterm.c (x_set_glyph_string_gc): Add post-condition
26901792
DL
12658 s->gc != 0.
12659 (x_set_mouse_face_gc): Ditto.
12660 (x_set_mode_line_face_gc): Ditto.
12661
427ec082
SS
12662 * xfaces.c (realize_default_face): Return int. Value is
12663 zero if frame params don't contain enough information to
26901792
DL
12664 realize the default face.
12665 (realize_basic_faces): Ditto.
12666 (init_frame_faces): Realize basic faces.
12667
12668 * xfns.c (x_set_font): First store real font name in frame
12669 parameters, then call recompute_basic_faces.
12670
12671 * xfaces.c (recompute_basic_faces): Call realize_basic_faces.
12672
126731998-04-16 Gerd Moellmann <gerd@gnu.org>
12674
12675 * xfaces.c (syms_of_xfaces): Correct calls to defsubr.
12676
12677 * xfns.c (Fx_face_fixed_p): Removed.
12678 (Fx_list_fonts): Moved to xfaces.c.
12679
12680 * xfaces.c (compute_face_at_buffer_pos): Renamed to
12681 face_at_buffer_position. Parameter charset removed; always
12682 compute face for CHARSET_ASCII.
12683 (face_at_string_position): Renamed from
12684 compute_face_at_string_pos. Parameter charset removed; always
12685 compute for CHARSET_ASCII.
427ec082 12686 (lookup_face_for_charset): Take frame parameter instead of
26901792
DL
12687 face_cache.
12688 (lookup_face): Ditto.
12689 (compute_char_face): Renamed from compute_glyph_face.
12690
12691 * xdisp.c (init_iterator): Initialize charset member.
12692 (reseat_iterator_to_string): Ditto.
12693 (get_charset_at_buffer_position): Determine charset at
12694 buffer position in current_buffer.
12695 (reseat_iterator): Call above function.
12696 (compute_face_at_iterator_position): Call
12697 compute_face_at_buffer_pos.
12698 (compute_face_at_iterator_string_position): Call
12699 compute_face_at_string_pos.
12700 (get_face_from_id): Removed.
12701 (get_face_from_cursor_pos): Call compute_face_at_buffer_pos.
12702 Call get_charset_at_buffer_position.
12703 (reseat_iterator): Determine face if charset at pos differs
12704 from iterator's charset.
12705 (reseat_iterator_to_glyph_pos): Removed.
12706
12707 * xfaces.c (compute_face_at_bufpos): Remove parameter charset.
12708 Determine charset from buffer position.
12709 (compute_string_char_face): Renamed to compute_face_at_string_pos.
12710 (compute_face_at_bufpos): Renamed to compute_face_at_buffer_pos.
12711
12712 * dispextern.h (struct display_iterator): Add member charset.
12713
127141998-04-15 Gerd Moellmann <gerd@gnu.org>
12715
12716 * xfaces.c (compute_char_face): Removed.
12717
12718 * xdisp.c (get_overlay_arrow_glyph_row): Use compute_glyph_face
12719 with new parameter list.
12720
12721 * xfaces.c (region_face): Removed.
12722 (allocate_face): Removed.
12723 (copy_face): Ditto.
12724 (face_eql): Removed.
12725 (intern_face): Removed.
12726 (clear_face_cache): Removed.
12727 (load_font): Ditto.
12728 (unload_font): Ditto.
12729 (load_color): Ditto.
12730 (unload_color): Ditto.
12731 (new_computed_face): Ditto.
12732 (intern_computed_face): Ditto.
12733 (ensure_face_ready): Ditto.
12734 (merge_faces): Ditto.
12735 (compute_base_face): Ditto.
12736 (merge_face_list): Ditto.
12737 (Fmake_face_internal): Removed.
12738 (Fset_face_attribute_internal): Ditto.
12739 (face_name_id_number): Removed.
12740 (Fframe_face_alist): Ditto.
12741 (Fset_frame_face_alist): Ditto.
12742 (Finternal_next_face_id): Ditto.
12743
12744 * xterm.h (struct x_output): Remove computed_faces, and
12745 param_faces. Remove macros accessing them.
12746
12747 * xfaces.c: Entirely new face implementation added.
12748
127491998-04-11 Gerd Moellmann <gerd@gnu.org>
12750
12751 * dispextern.h (struct glyph_pos): Member `bufpos' renamed
12752 `charpos'.
12753
127541998-04-10 Gerd Moellmann <gerd@gnu.org>
12755
12756 * xterm.c (x_scroll_bar_move): Clear only regions not covered by
12757 scroll bar window to reduce flickering. Clear entire height.
12758
12759 * xdisp.c (move_iterator_vertically_backward): Set iterator's
12760 current_x and hpos to zero after moving to previous line
12761 start.
12762
127631998-04-03 Gerd Moellmann <gerd@gnu.org>
12764
12765 * frame.h (FRAME_FACE_CACHE): Access to a frame's face cache.
12766
12767 * xfaces.c (xlfd_point_size): Compute relative point size of
12768 fonts from font and frame resolution.
12769 (sort_fonts): New function to sort fonts, temporarily setting
12770 font_frame to the frame in effect.
12771 (xlfd_point_size): Take additional frame parameter to be able
12772 to get at the display's resolution.
12773
12774 * xterm.c (x_setup_relief_colors): Use WHITE_PIX_DEFAULT and
12775 BLACK_PIX_DEFAULT.
12776 (x_setup_relief_color): Use FRAME_X_SCREEN instead of default
12777 screen of display.
12778
127791998-03-31 Gerd Moellmann <gerd@gnu.org>
12780
12781 * xfaces.c (choose_face_fontset): Instantiate fontsets.
12782
12783 * fontset.h: Add external declarations for Vfontset_alias_alist
12784 and Vglobal_fontset_alist.
12785
12786 * xfaces.c (merge_lisp_face_vector_with_property): Simplified.
12787 (realize_default_face): If frame parameters contain an artificial
12788 font name naming a fontset, set the family of the default face to
12789 the fontset name given by the registry.
12790
12791 * Makefile.in (alloc.o): Add dependency to dispextern.h.
12792
127931998-03-22 Gerd Moellmann <gerd@gnu.org>
12794
12795 * alloc.c (mark_object): Add function prototype. Add cast to
12796 Lisp_Object pointer in call to mark_object for symbol names
12797 because this otherwise gives a warning from gcc 2.8.1.
12798 (mark_face_cache): Mark Lisp objects in realized faces.
12799
128001998-03-19 Gerd Moellmann <gerd@gnu.org>
12801
12802 * frame.h (struct frame): Add member face_cache.
12803
12804 * alloc.c (mark_object): Mark face cache.
12805 (mark_face_cache): Mark Lisp faces in face cache of frame.
12806
12807 * frame.c (make_frame): Initialize face_cache.
12808 (Fdelete_frame): Free it.
12809
128101998-03-18 Gerd Moellmann <gerd@gnu.org>
12811
12812 * xfaces.c: Very first skeleton of functions for face realization,
12813 face merging, face cache etc.
12814
12815 * dispextern.h (struct rface): Realized faces. Will replace
12816 struct face when tested.
12817 (struct face_cache): Realized face caches.
12818
12819 * xdisp.c (init_iterator): Initialize area member of display
12820 iterator.
12821
128221998-03-17 Gerd Moellmann <gerd@gnu.org>
12823
12824 * xterm.c (x_append_glyph): Use it->area to store glyphs.
12825
12826 * dispextern.h (struct display_iterator): New member area.
12827
12828 * xterm.c (note_overwritten_text_cursor): Note when the text
12829 cursor of a window is overwritten.
12830
12831 * xdisp.c (set_cursor_from_row): If PT is not found in the
12832 row, display the cursor at the start of the row.
12833
12834 * dispnew.c (direct_output_forward_char): Call
12835 set_cursor_from_row.
12836
12837 * xdisp.c (setup_iterator_overlay_strings_from_glyph_pos): If
12838 position is not in an overlay string, set iterator's position and
12839 method explicitly so.
427ec082 12840 (set_cursor_from_row): Correct cursor position calculation.
26901792
DL
12841 Make it externally visible.
12842 (redisplay_window): Call set_cursor_from_row so that there is only
12843 one place where the cursor position is calculated from a current
12844 row.
12845
12846 * dispextern.h (struct display_iterator): New member
12847 overlay_strings_at_end_processed_p.
12848
12849 * xdisp.c (check_iterator): Perform sanity checks on
12850 display_iterators.
12851 (next_element_from_buffer): Check for overlay strings at ZV.
12852
128531998-03-16 Gerd Moellmann <gerd@gnu.org>
12854
12855 * buffer.c (init_buffer_once): Add left_margin_width and
12856 right_margin_width to buffer_local_flags.
12857
12858 * dispnew.c (margin_glyphs_to_reserve): Function computing
12859 number of glyphs to reserve for a marginal area.
12860 (adjust_glyph_matrix): Call it.
12861 (adjust_frame_glyphs_for_frame_redisplay): Return if frame
12862 is not alive.
12863
12864 * window.c (Fset_window_margins): Allow floats.
12865
12866 * buffer.c (syms_of_buffer): Add buffer-local variables
12867 left-margin-width and right-margin-width. Add defaults
12868 default-left-margin-width and default-right-margin-width.
12869
12870 * buffer.h (struct buffer): New members left_margin_width
12871 and right_margin_width.
12872
12873 * window.c (Fset_window_margins): Make window the last and
12874 optional argument.
12875
12876 * xterm.c (x_draw_glyphs): Compute x-positions for rows with
12877 flag no_marginal_areas_p differently.
12878 (x_clear_end_of_line): Ditto.
12879 (x_draw_glyph_string_relief): Compute width of relief differently
12880 for rows with flag no_marginal_areas_p.
12881
12882 * dispnew.c (update_window_line): Update marginal areas only
12883 for rows that don't have no_marginal_areas_p set.
12884
12885 * xdisp.c (display_mode_line): Set row's flag no_marginal_areas_p.
12886 (display_menu_bar): Ditto.
12887
12888 * dispextern.h (struct glyph_row): New member no_marginal_areas_p.
12889
12890 * dispnew.c (adjust_glyph_matrix): Compute glyph pointers for
12891 marginal areas in window-based redisplay.
12892
12893 * dispextern.h (struct glyph_matrix): New members
12894 left_margin_glyphs and right_margin_glyphs.
12895
128961998-03-15 Gerd Moellmann <gerd@gnu.org>
12897
12898 * minibuf.c (read_minibuf_unwind): Return Lisp_Object.
12899
12900 * charset.c (non_ascii_char_to_string): Use char type parameters
12901 because the function is used that way from outside. Use unsigned
12902 char internally.
12903
12904 * window.c (change_window_height): Return void.
12905 (make_dummy_parent): Return void.
12906 (init_window_once): Return void.
12907 (syms_of_window): Ditto.
12908 (keys_of_window): Ditto.
12909 (delete_window): Correct return with and without value.
12910
12911 * buffer.c (record_buffer): Return void.
12912
12913 * marker.c (unchain_marker): Return void.
12914
12915 * window.c (unshow_buffer): Return void.
12916 (replace_window): Ditto.
12917 (delete_window): Ditto.
12918
12919 * term.c (delete_glyphs_hook): Void return type.
12920 (ring_bell_hook): Ditto.
12921 (set_terminal_window_hook): Ditto.
12922
12923 * sysdep.c (init_sigio): Return void.
12924
12925 * xterm.c (x_set_window_size): Return void.
12926 (x_calc_absolute_position): Ditto.
12927 (x_set_offset): Ditto.
12928 (x_focus_on_frame): Ditto.
12929 (x_unfocus_frame): Ditto.
12930 (x_make_frame_visible): Ditto.
12931 (x_make_frame_invisible): Ditto.
12932 (x_iconify_frame): Ditto.
12933 (x_destroy_window): Ditto.
12934 (x_wm_set_window_state): Ditto.
12935 (x_wm_set_icon_pixmap): Ditto.
12936 (x_wm_set_icon_position): Ditto.
12937 (x_initialize): Ditto.
12938 (x_error_quitter): Ditto.
12939 (x_destroy_window): Use xfree instead of free.
12940
12941 * keyboard.c (clear_waiting_for_input): Return void.
12942
12943 * xterm.c (x_wm_set_size_hint): Return void.
12944 (x_raise_frame): Ditto.
12945 (refreshicon): Ditto.
12946 (x_error_catcher): Ditto.
12947 (x_clear_errors): Ditto.
12948
12949 * keyboard.c (record_asynch_buffer_change): Return void.
12950
bb6677a8
GM
12951 The first line of the following paragraph was garbled for an
12952 unknown reason. It couldn't be fully reconstructed.
178c5d9c 12953
bb6677a8 12954 * xterm.c (XTread_socket, XTset_terminal_window): Ditto.
26901792
DL
12955 (x_lower_frame): Ditto.
12956 (x_scroll_bar_clear): Ditto.
12957 (XTflash): Add default case in switch for -Wall.
12958 (construct_mouse_click): Return Qnil.
12959 (cancel_mouse_face): Return void.
12960 (x_queue_event): Use xmalloc instead of malloc.
12961 (x_unqueue_events): Use xfree instead of free.
12962
12963 * ccl.c (ccl_driver): Return int.
12964
12965 * keyboard.c (stop_polling): Return void.
12966 (start_polling): Ditto.
12967
12968 * term.c (keys): Add braces in initializer list for -Wall.
12969
12970 * sysdep.c (tabs_safe_p): Return int.
12971 (init_baud_rate): Return void.
12972
12973 * xterm.c (x_draw_bitmap): Add default case.
12974 (x_setup_relief_colors): Use DefaultScreen instead of
12975 DefaultScreenOfDisplay.
12976 (x_delete_glyphs): Return void.
12977 (construct_menu_click): Put in #if 0 because it isn't called.
12978
12979 * xdisp.c (load_overlay_strings): Remove extraneous argument
12980 in call to qsort.
12981 (get_overlay_arrow_glyph_row): Add missing return value.
12982
12983 * window.c (set_window_height): Return void.
12984 (set_window_width): Ditto.
12985
12986 * sysdep.c (request_sigio): Return void.
12987 (unrequest_sigio): Ditto.
12988 (get_frame_size): Ditto.
12989
12990 * scroll.c (scroll_cost): Return int.
12991 (do_line_insertion_deletion_costs): Return void.
12992
12993 * frame.c (Fdelete_frame): Use xfree instead of free.
12994
12995 * fileio.c (report_file_error): Return void.
12996
12997 * dispnew.c: Make compilable with -Wall.
12998 * term.c: Ditto.
12999
13000 * charset.h (CHAR_LEN): Moved here from dispextern.h.
13001
130021998-03-14 Gerd Moellmann <gerd@gnu.org>
13003
13004 * xterm.c (x_scroll_bar_move): Clear under scroll bar if height is
13005 increased.
13006 (x_setup_relief_color): Free color only for appropriate visual
13007 classes.
13008
13009 * xterm.c (expose_window): Fix calculation of intersection of mode
13010 line rectangle with exposed rectangle.
13011
13012 * xdisp.c (redisplay_window): Don't do cursor movement based
13013 on current matrix if w->last_point is not valid.
13014
130151998-03-09 Gerd Moellmann <gerd@gnu.org>
13016
13017 * xterm.c (expose_line): Redraw mode line and menu lines
13018 differently because they reach into the scroll bar area.
13019
13020 * xdisp.c (redisplay_window): If redisplaying with same window
13021 start, don't accept cursor on partially visible line.
13022
130231998-03-08 Gerd Moellmann <gerd@gnu.org>
13024
13025 * xterm.c (x_set_glyph_string_clipping): Set clip rectangle
13026 for wider mode lines.
13027 (x_draw_glyph_string_relief): Use larger rectangle for mode lines.
13028
13029 * xdisp.c (init_iterator): Increase last_visible_x by vertical
13030 scroll bar width for mode lines.
13031
13032 * dispnew.c (allocate_matrices_for_window_redisplay): Include
13033 vertical scroll bar width in width calculation so that we can
13034 display mode lines wider.
13035
13036 * xdisp.c (redisplay_window): Restore buffers before returning
13037 when fonts have changed.
13038
13039 * dispnew.c (update_window): Mark invisible rows in the current
13040 matrix invalid.
13041
13042 * xdisp.c (try_window_id): Force update of first row displayed
13043 at window end.
13044 (dump_glyph_matrix): Extracted from Fdump_glyph_matrix.
13045
130461998-03-05 Gerd Moellmann <gerd@gnu.org>
13047
13048 * dispextern.h (struct glyph_row): Member max_ascent renamed
13049 ascent. Member max_descent replaced by height.
13050 (struct display_iterator): Member max_descent replaced by height.
13051 (MATRIX_ROW_PIXEL_HEIGHT): Removed.
13052
13053 * xterm.c (x_alloc_lighter_color): Don't free colors if visual
13054 class makes it unnecessary or dangerous.
13055
13056 * xdisp.c (redisplay_window): Case only point has changed, and
13057 point has moved forward. Move forward over overlay strings.
13058 (display_line): Don't set cursor if first glyph from PT is part of
13059 a continuation line.
13060
130611998-02-21 Gerd Moellmann <gerd@gnu.org>
13062
13063 * xdisp.c (start_display): When computing continuation lines
13064 width, add current_x to the continuation lines width because
13065 move_iterator_to will stop in front of the buffer position moved
13066 to.
13067
130681998-02-20 Gerd Moellmann <gerd@gnu.org>
13069
13070 * xdisp.c (redisplay_window): Don't try try_window_id if
13071 windows_or_buffers_changed.
13072
13073 * xterm.c (x_alloc_lighter_color): Try both factor and delta to
13074 determine a color.
13075 (x_setup_relief_color): Allocate/ change one relief.
13076 (x_setup_relief_colors): Call above function.
13077
13078 * xterm.h (struct relief): New structure type holding relief info:
13079 GCs, colors, and whether colors are allocated.
13080
427ec082 13081 * xterm.c (x_alloc_lighter_color): If multiplying by factor
26901792
DL
13082 produces the same color, try adding a delta to RGB values.
13083 (x_setup_relief_colors): Free color cells.
13084
427ec082 13085 * xterm.h (struct x_output): New members white_relief_pixel,
26901792
DL
13086 black_relief_pixel holding the foreground colors allocated for
13087 relief GCs. New members white_allocated_p, black_allocated_p.
13088
13089 * xterm.c (x_scroll_run): Don't set updated_window to null.
13090 This resets updated_window when called from scrolling_window.
13091
13092 * dispextern.h (scroll_run_hook): Renamed from line_dance_hook.
427ec082 13093
26901792
DL
13094 * xterm.c (x_scroll_run): Additional window parameter. Set
13095 and reset updated_window.
13096
13097 * dispnew.c (line_dance_hook): Additional window parameter.
13098
13099 * xdisp.c (try_window_reusing_current_matrix): Don't call
13100 update_window_begin/end here. The end function would display the
13101 cursor on a wrong position and the additional functionality of
13102 update_window_begin is not needed anyway. Just set
13103 updated_window.
13104 (try_window_id): Ditto.
13105
13106 * dispnew.c (Fblink_cursor): Remove call to detect_input_pending.
13107 Don't redraw cursor during redisplay.
13108
13109 * xterm.c (x_scroll_run): Renamed from do_line_dance.
13110
13111 * xdisp.c (redisplay_window): For window-based redisplay, alway
13112 try try_window_id.
13113
13114 * xterm.c (struct glyph_string): New member two_byte_p that is
13115 non-zero if 16-bit drawing functions must be used.
13116 (x_fill_composite_glyph_string): Set it.
13117 (x_fill_glyph_string): Set it.
13118 (x_draw_glyph_string_foreground): Use it.
13119 (x_draw_vertical_border): Make line 1 pixel less tall.
13120 (x_draw_row_bitmaps): Decrease width of area cleared on the left
13121 side by 1 pixel if window is not right-most hasn't vertical scroll
13122 bars.
13123 (x_draw_phys_cursor_glyph): Do nothing if phys_cursor.hpos is
13124 out of bounds.
13125 (x_draw_glyph_string_foreground): Use XDrawImageStringX if
13126 hl == DRAW_CURSOR.
13127
13128 * xdisp.c (start_display): Check that window start is at line
13129 start if GLYPH_DEBUG != 0.
13130
13131 * window.c (window_scroll_pixel_based): Move assertion to
13132 start_display.
13133
131341998-02-19 Gerd Moellmann <gerd@gnu.org>
13135
427ec082 13136 * xterm.c (x_redraw_cursor): Don't redraw the cursor if the
26901792
DL
13137 frame hasn't the focus.
13138
13139 * window.c (make_window): Initialize dy.
13140 (replace_window): Ditto.
13141
13142 * window.h (window): New member dy specifying the amount by which
13143 a window is scrolled "smoothly".
13144
13145 * xterm.c (x_set_glyph_string_clipping): Don't use glyph string's
427ec082 13146 y-position because it can be negative.
26901792
DL
13147 (x_draw_row_bitmaps): Don't clear with negative y-position like
13148 above.
13149 (x_clear_end_of_line): Same theme as above.
13150
13151 * xterm.c (x_alloc_nearest_color): Allocate a color or, if no
13152 exact match exists, the nearest existing color. Patterned after
13153 defined_color.
13154 (x_alloc_lighter_color): Allocate a color that is lighter or
13155 darker than a given color by a specified factor.
427ec082 13156 (x_setup_relief_colors): Set up relief line colors based on
26901792
DL
13157 the background color of a glyph string face.
13158 (x_draw_glyph_string_relief): Call x_setup_relief_colors.
13159
13160 * xfns.c (x_make_gc): Don't allocate relief GCs.
13161 * widget.c (create_frame_gcs): Don't allocate relief GCs.
13162 (setup_frame_gcs): Don't change relief GCs.
13163
13164 * xterm.h (struct x_output): New member relief_background giving
13165 the background pixel color for which relief GCs can be used.
13166 Set by x_setup_relief_colors.
13167
13168 * xterm.c (x_draw_glyph_string_relief): Draw relief differently
13169 for mode and menu lines.
13170
13171 * xdisp.c (set_next_iterator_stop_pos): No longer static.
13172
13173 * dispnew.c (direct_output_for_insert): Call
13174 set_next_iterator_stop_pos after having changed it2.endpos.
13175
131761998-02-17 Gerd Moellmann <gerd@gnu.org>
13177
13178 * dispnew.c (update_window): Work on selected_window, only.
13179
13180 * xterm.c (x_erase_phys_cursor): Return quickly if physical cursor
13181 hpos is >= number of glyphs in the cursor row.
13182
13183 * xdisp.c (try_window_id): Bug fix; update_window_end was not
13184 called.
13185
131861998-02-16 Gerd Moellmann <gerd@gnu.org>
13187
13188 * xdisp.c (init_iterator): Increase last_visible_x for mode lines
13189 and menu lines.
13190
13191 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate
13192 enough glyphs to display a mode line or menu line which draws over
13193 flags areas.
13194
13195 * xterm.c (XTset_vertical_scroll_bar): Use
13196 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT instead of
13197 VERTICAL_SCROLL_BAR_PIXEL_HEIGHT.
427ec082 13198 (x_draw_glyphs): Draw over flags areas when drawing a mode line
26901792
DL
13199 or menu.
13200 (x_set_glyph_string_clipping): Set clipping differently if drawing
13201 a mode line or menu line.
13202
13203 * xterm.h (VERTICAL_SCROLL_BAR_PIXEL_HEIGHT): Removed.
13204
13205 * xterm.c (expose_line): Don't draw bitmaps for mode lines and
13206 menu lines.
13207 (x_scroll_bar_create): Don't clear flags areas.
13208 (x_draw_row_bitmaps): Clear visible row height, only.
13209
13210 * dispnew.c (Fblink_cursor): Moved here from xdisp.c.
13211
132121998-02-15 Gerd Moellmann <gerd@gnu.org>
13213
13214 * dispnew.c (direct_output_for_insert): When checking for tabs in
13215 the line, set it2.endpos to ZV.
427ec082 13216
26901792
DL
13217 * window.h (struct window): New member cursor_off_p.
13218 * xterm.c (x_redraw_cursor): Implementation of redraw_cursor_hook
13219 for X.
13220 * dispnew.c (redraw_cursor_hook): If non-null, function that can
13221 be called to display or erase the cursor.
13222 * xdisp.c (Fblink_cursor): Blink the cursor of a specified window
13223 or selected_window.
13224
13225 * xterm.h (text_cursor_kinds): Enumerators changed to uppercase.
13226
13227 * dispnew.c (update_window_line): Special handling of inverse
13228 lines in #if 0 removed.
13229
13230 * xterm.c (x_write_glyphs): Renamed from XTwrite_glyphs.
13231 (x_insert_glyphs): Renamed from XTinsert_glyphs.
13232 (x_clear_frame): Renamed from XTclear_frame.
13233 (x_clear_end_of_line): Renamed from XTclear_end_of_line.
13234 (x_ins_del_lines): Renamed from XTins_del_lines.
13235 (x_change_line_height): Renamed from XTchange_line_height.
13236 (x_delete_glyphs): Renamed from XTdelete_glyphs.
13237 (x_clear_cursor): Renamed from clear_cursor.
13238 (x_update_begin): Renamed from XTupdate_begin.
13239 (x_update_end): Renamed from XTupdate_end.
13240 (x_update_window_begin): Renamed from XTupdate_window_begin.
13241 (x_update_window_end): Renamed from XTupdate_window_end.
13242 (x_frame_mode_line_height): Renamed from XTframe_mode_line_height.
13243 (x_produce_glyphs): Renamed from XTproduce_glyphs.
13244 (x_produce_special_glyphs): Renamed from XTproduce_special_glyphs.
13245 (x_produce_special_glyphs): Implementation in #if 0 removed.
13246
13247 * xdisp.c (Fdump_redisplay_state): Display row's fill_line_p
13248 flag in the dump.
13249
13250 * dispnew.c (update_text_area): Handling of glyphs with pixel
13251 width zero removed. Decrement desired stop pos if desired row
13252 fills its line.
13253
13254 * xterm.c (x_fill_glyph_string): Handling of glyphs with pixel
13255 width zero removed.
13256 (BUILD_GLYPH_STRINGS): Set glyph string flag
13257 extends_to_end_of_line_p based on row's flag fill_line_p and face
13258 background and stipple. Make sure it works for composite characters.
13259
13260 * xdisp.c (extend_face_to_end_of_line): Set the glyph row flag
13261 fill_line_p. For window-based redisplay, add a space only if
13262 the row is empty so that we know the face to draw.
13263
13264 * dispextern.h (struct glyph_row): New flag fill_line_p. Non-zero
13265 means draw the face of the last glyph in the text area to the
13266 right end of the text area.
13267
13268 * xdisp.c (init_iterator): Show region in window mini-buffer
13269 window refers to.
13270
427ec082 13271 * dispextern.h (struct display_iterator): Redundant member
26901792
DL
13272 region_showing_p removed. Test for region_beg > 0 instead.
13273
13274 * dispnew.c (update_text_area): Clear to end of line if cursor is
13275 beyond the end of the desired line. Necessary because we don't
13276 have a phys_cursor_glyph with which to erase the cursor. We don't
13277 have one because this method of drawing a cursor doesn't work with
13278 lbearing/rbearing.
13279
13280 * xterm.c (XTinsert_glyphs): Block input.
13281
132821998-02-14 Gerd Moellmann <gerd@gnu.org>
13283
13284 * xterm.c (x_set_cursor_gc): Don't use cursor_gc for composite
13285 glyph strings.
13286 (x_draw_glyph_string_background): Fill background with background
13287 pixel for the first glyph of a composite character.
13288
13289 * xdisp.c (try_window): Change return type to int. Value is zero
13290 if fonts were loaded during redisplay.
13291 (redisplay_window): Return if fonts have been loaded during
13292 redisplay.
13293 (append_space): New parameter default_face_p.
13294
132951998-02-13 Gerd Moellmann <gerd@gnu.org>
13296
13297 * dispnew.c (adjust_glyph_matrix): In case of optimizing C-x 2,
13298 don't let a partially visible line in a current matrix stay
13299 enabled.
13300
133011998-02-09 Gerd Moellmann <gerd@gnu.org>
13302
13303 * minibuf.c (read_minibuf): Put access to minibuffer_prompt_length
13304 in #if PROMPT_IN_BUFFER.
13305
13306 * xdisp.c (display_line): If row ends in ZV, make the space
13307 that is added to place the cursor on it appear in default face.
13308
427ec082 13309 * xterm.c (expose_area): New function redrawing a single
26901792
DL
13310 glyph row area.
13311 (expose_line): Use it to redraw all areas of a row.
13312
13313 * dispextern.h (move_operation_enum): New enum
13314 move_operation_enum.
13315
13316 * window.c (window_scroll_pixel_based): Remove now unnecessary
13317 code that made sure that it->current_y doesn't become negative.
13318
13319 * xdisp.c (move_iterator_in_display_line_to): New parameter
13320 op. Special meaning of to_pos <= 0 and to_x < 0 removed.
13321 (move_iterator_to): Ditto.
13322
13323 * dispextern.h (struct glyph_matrix): New member window_width.
13324
13325 * dispnew.c (adjust_glyph_matrix): Set window_width. Optimize
13326 case of changing window height.
13327
13328 * xterm.c (x_draw_row_bitmaps): Don't clear vertical window
427ec082 13329 border to the left.
26901792
DL
13330
13331 * dispextern.h (struct glyph_row): Remove right_to_left_p. RMS
13332 says this aspect of Emacs is currently redesigned.
13333
13334 * xterm.c (x_clip_to_row): Subtract 1 from clip width if we
13335 have to draw a vertical border.
13336
13337 * window.c (window_scroll_pixel_based): When scrolling down by
13338 screen-fulls, make sure it.current_y doesn't get negative because
13339 this would confuse move_iterator_vertically.
13340
13341 * xdisp.c (move_iterator_vertically_backward): Bug fix for
13342 the case continuation lines are involved.
13343 (try_window_id): Don't set the cursor into scroll margins.
13344
133451998-02-08 Gerd Moellmann <gerd@gnu.org>
13346
13347 * xterm.c (x_append_glyph): Don't compute left_overhang and
13348 right_overhang.
13349 (XTproduce_glyphs): left_overhang and right_overhang removed.
13350 Set it->glyph_row->contains_overlapping_glyphs_p.
13351
13352 * xdisp.c (Fdump_redisplay_state): Output of glyph->left_overhang
13353 and right_overhang removed.
13354
13355 * dispextern.h (struct glyph_row): New member
13356 contains_overlapping_glyphs_p used to optimize glyph drawing.
13357 (struct display_iterator): left_overhang and right_overhang
13358 removed.
13359 (struct glyph): Ditto.
13360
13361 * xterm.c (x_draw_relief): Removed.
13362 (x_draw_bitmap): Renamed from draw_bitmap.
13363 (x_draw_glyphs): Completely new implementation of draw_glyphs
13364 capable of handling arbitrary lbearing and rbearing values.
13365 Several sub-functions not mentioned here.
13366
133671998-01-30 Gerd Moellmann <gerd@gnu.org>
13368
13369 * xterm.c (x_erase_phys_cursor): Clear area under the cursor only
427ec082 13370 if displaying hollow box cursor. draw_glyphs should handle
26901792
DL
13371 other cases.
13372 (draw_glyphs): Move start to the left and end to the right if they
427ec082 13373 overlap with previous or following characters.
26901792 13374 (draw_glyphs): If background is cleared for hl == DRAW_CURSOR,
427ec082 13375 make sure XDrawString uses function GXset. Otherwise the
26901792
DL
13376 character under the cursor would be invisible.
13377 (x_draw_bar_cursor): Don't draw over previous character if it
13378 has right_overhang.
13379
13380 * window.c (get_phys_cursor_glyph): Return the glyph under a
13381 window's physical cursor.
427ec082 13382
26901792
DL
13383 * xterm.c (x_draw_hollow_cursor): Use get_phys_cursor_glyph.
13384 (x_draw_bar_cursor): Ditto.
13385 (x_erase_phys_cursor): Ditto.
13386 (x_phys_cursor_in_rect_p): Ditto.
13387 (x_display_and_set_cursor): Remove reference to w->phys_cursor_glyph.
13388
13389 * window.c (make_window): Remove reference to phys_cursor_glyph.
13390 (replace_window): Ditto.
13391
13392 * window.h (struct window): Remove phys_cursor_glyph. There is
427ec082 13393 now always a glyph present for placing the cursor on it in
26901792
DL
13394 each glyph row, even at the end of a line.
13395
13396 * xdisp.c (append_space): Function to add a space to an iterators
13397 glyph row.
13398 (display_line): Add spaces at the end of lines that are used to
13399 place the cursor on them.
13400 (compute_line_metrics): If row consists of a space only that was
427ec082 13401 added to place the cursor on it, use that space's height as the
26901792
DL
13402 line height.
13403
134041998-01-29 Gerd Moellmann <gerd@gnu.org>
13405
13406 * xdisp.c (Fdump_redisplay_state): Dump left and right overhang of
13407 glyphs.
13408
134091998-01-28 Gerd Moellmann <gerd@gnu.org>
13410
13411 * xterm.c (x_append_glyph): Set overhang of glyph from iterator.
13412 (XTproduce_glyphs): Set it->left_overhang and it->right_overhang.
13413
13414 * dispextern.h (struct glyph): Add left_overhang and
427ec082 13415 right_overhang.
26901792
DL
13416 (struct display_iterator): Ditto.
13417
13418 * dispnew.c (direct_output_for_insert): Give up if newly inserted
13419 glyphs have different ascent or descent than original row.
13420
13421 * xdisp.c (compute_line_metrics): Compute row->max_ascent and
13422 row->max_descent only if unknown.
13423 (display_line): Compute row->max_ascent and row->max_descent.
13424 (display_string): Ditto.
13425
13426 * window.h (struct window): New members phys_cursor_ascent and
427ec082 13427 phys_cursor_descent.
26901792
DL
13428
13429 * xterm.c (x_phys_cursor_in_rect_p): Use them.
13430 (x_draw_hollow_cursor): Ditto.
13431 (x_erase_phys_cursor): Ditto.
13432 (x_display_and_set_cursor): Set them.
13433 (x_append_glyph): Don't set glyph members that were removed.
13434
13435 * dispextern.h (struct glyph): Members ascent, descent,
13436 contributes_to_line_height_p removed.
13437
134381998-01-25 Gerd Moellmann <gerd@gnu.org>
13439
13440 * dispextern.h (DEFAULT_FACE_ID, MODE_LINE_FACE_ID): Symbolic
13441 names for face ids of frame default face and mode line face.
13442
13443 * xdisp.c (compute_face_at_iterator_string_position): If
13444 displaying a mode line use MODE_LINE_FACE_ID instead of
13445 DEFAULT_FACE_ID.
13446
13447 * xdisp.c (reseat_iterator_to_string): Additional parameter start.
13448 (display_string): Ditto, additional parameter lisp_string.
13449 (display_line): Call display_string with Lisp mini-buffer prompt
13450 string.
13451 (display_menu_bar): Call display_string with Lisp string.
13452 (display_mode_element): Ditto.
13453 (next_element_from_string): Make it work for non-overlay Lisp
13454 strings with field width and precision.
13455
13456 * minibuf.c (minibuffer-prompt-in-buffer): Bound if
13457 PROMPT_IN_BUFFER.
13458
13459 * xfaces.c (compute_string_char_face): Fix face computation
13460 for overlay strings.
13461
13462 * xdisp.c (struct overlay_entry): Add member after_string_p.
13463 (load_overlay_strings): Simplify.
13464
13465 * window.c (delete_window): Defer glyph matrix adjustment.
13466 (Fsplit_window): Ditto.
13467 (change_window_height): Ditto.
13468 (Fset_window_configuration): Ditto.
13469 (Fset_window_margins): Ditto.
13470 * frame.c (set_menu_bar_lines): Ditto.
13471 (Fmake_terminal_frame): Ditto.
13472 * dispnew.c (change_frame_size_1): Ditto.
13473
134741998-01-24 Gerd Moellmann <gerd@gnu.org>
13475
13476 * xdisp.c (move_iterator_vertically_backward): Change algorithm.
13477
427ec082 13478 * dispnew.c (direct_output_for_insert): Give up if start
26901792
DL
13479 position has overlay strings.
13480
13481 * xdisp.c (display_line): Don't set cursor if row ends in middle
13482 of overlay string.
13483 (Fdump_redisplay_state): Print complete row start and end
13484 position.
13485 (redisplay_window): Cursor movement when matrix hasn't changed---
13486 if PT < last_point, maybe move forward if row ends at PT and
13487 in middle of char.
13488
13489 * minibuf.c (read_minibuf): Save the value of
13490 minibuffer_prompt_length in minibuf_save_list.
13491 (read_minibuf_unwind): Restore minibuffer_prompt_length.
13492
13493 * xdisp.c (redisplay_window): Add assertion for cursor movement
13494 case, PT < last_point.
13495 (move_iterator_in_display_line_to): If to_pos specified, move
13496 over before-strings.
13497
13498 * dispextern.h (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Test
13499 start.string_index > 0.
13500
13501 * xdisp.c (redisplay_internal): Adjust glyphs if fonts_changed_p
13502 is set. Retry redisplay if fonts_changed_p is set before update.
13503
13504 * xterm.c (x_load_font): Set fonts_changed_p.
13505
13506 * xfaces.c (Fset_face_attribute_internal): Set fonts_changed_p.
13507
13508 * dispnew.c (adjust_glyphs_for_font_change): Removed.
13509
13510 * xdisp.c (try_window): Check fonts_changed_p.
13511 (try_window_reusing_current_matrix): Ditto.
13512 (try_window_id): Ditto.
13513
13514 * dispnew.c (adjust_glyphs_for_font_change): Set fonts_changed_p.
13515 (fonts_changed_p): Flag indicating a font change since the last
13516 glyph matrix adjustment.
13517
13518 * xterm.c (x_per_char_metric): Use font->max_bounds as
13519 char metric of the font's default char if the default char
13520 hasn't per char metric itself.
13521
13522 * xfaces.c (Fset_face_attribute_internal): Adjust glyphs
13523 for font change.
13524 (min_char_bounds): Check face->font != NULL.
427ec082 13525 (font_min_bounds): Return minimum font metrics. Capture the
26901792
DL
13526 case of invalid min_bounds contents.
13527 (min_char_bounds): Call font_min_bounds.
13528
135291998-01-22 Gerd Moellmann <gerd@gnu.org>
13530
13531 * xdisp.c (start_display): Don't set it->prompt_width if
13532 PROMPT_IN_BUFFER.
13533 (move_iterator_in_display_line_to): Ditto.
13534 (display_line): Don't display prompt via display_string if
13535 PROMPT_IN_BUFFER.
13536
13537 * minibuf.c (Fminibuffer_prompt_width): Return value from
13538 current_buffer if PROMPT_IN_BUFFER.
427ec082 13539 (read_minibuf): If PROMPT_IN_BUFFER, insert prompt into
26901792
DL
13540 mini-buffer and make it read-only.
13541 (Fminibuffer_complete_and_exit): If PROMPT_IN_BUFFER, use
13542 minibuffer_prompt_length instead of BEGV.
13543 (Fminibuffer_complete_word): Ditto.
13544 (Fminibuffer_complete_word): Ditto.
13545
13546 * insdel.c (del_range_1): If PROMPT_IN_BUFFER, and start position
13547 is less than mini-buffer prompt width, use prompt width as start.
13548
13549 * editfns.c (make_buffer_string): If PROMPT_IN_BUFFER, and start
13550 position is less than mini-buffer prompt width, use the prompt
13551 width as start.
13552
13553 * cmds.c (Fbeginning_of_line): If PROMPT_IN_BUFFER, set point to
13554 end of prompt if applied to a mini-buffer and BEG reached.
13555
135561998-01-21 Gerd Moellmann <gerd@gnu.org>
13557
13558 * editfns.c (make_buffer_string): If PROMPT_IN_BUFFER, add prompt
13559 length to start position.
13560
13561 * buffer.c (Fget_buffer_create): Initialize
13562 minibuffer_prompt_length.
13563 (Fmake_indirect_buffer): Ditto.
13564 (Fkill_buffer): Ditto.
13565
13566 * buffer.h (struct buffer): Add member minibuffer_prompt_length
13567 if PROMPT_IN_BUFFER.
13568
135691998-01-19 Gerd Moellmann <gerd@gnu.org>
13570
13571 * xdisp.c (next_element_from_string): Make it work for arbitrary
13572 Lisp strings.
13573 (set_iterator_to_next): Advance to next overlay string only
13574 if it->string is an overlay string.
13575
13576 * dispextern.h (struct display_iterator):
13577 next_ovstr_face_check_pos renamed next_string_face_check_pos.
13578
427ec082 13579 * xfaces.c (compute_string_char_face): Compute face for
26901792
DL
13580 arbitrary Lisp string. Renamed from compute_overlay_string_char_face.
13581
13582 * xdisp.c (next_element_from_string): Renamed from
13583 next_element_from_overlay_string.
427ec082 13584 (compute_face_at_iterator_string_position): Renamed from
26901792
DL
13585 compute_face_at_iterator_overlay_string_position.
13586
13587 * dispextern.h (struct display_iterator): Member overlay_string
13588 renamed string.
13589
13590 * xdisp.c (next_element_from_c_string): Renamed from
13591 next_element_from_string.
13592
13593 * dispextern.h (struct glyph_pos): Reversed meaning of
13594 overlay_string_index and string_index.
13595
13596 * xdisp.c (next_element_from_overlay_string): Fix bug that made
13597 this function always return the first character of an overlay
13598 string.
13599
136001998-01-18 Gerd Moellmann <gerd@gnu.org>
13601
13602 * xdisp.c (reseat_iterator): Set next_invisible_check_pos only if
13603 forced or new pos > next_invisible_check_pos.
13604 (redisplay_window): Don't try same window start if PT < window
13605 start.
13606 (move_iterator_vertically): Bug fix satisfying post-condition
13607 when ZV is reached and no newline in front.
13608 (move_iterator_vertically_backward): New implementation.
13609 (move_iterator_vertically_backward): Bug fixes.
13610
13611 * xterm.c (XTmouse_position): Change call to min_char_bounds.
13612 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Ditto.
13613 (adjust_glyphs_for_font_change): Always adjust.
13614
13615 * dispnew.c (struct dim): Use int.
13616
13617 * xfaces.c (Fset_face_attribute_internal): Set face->font_name;
13618 (allocate_face): Initialize it.
13619 (load_font): Use XLoadQueryFont again instead of x_load_font.
13620 (unload_font): Use XFreeFont again.
13621 (min_char_bounds): Iterate over fonts of faces. Use frame's
13622 font sizes as default. Remove parameter except_last_font_p.
13623
13624 * dispextern.h (struct face): Add font_name.
13625
136261998-01-17 Gerd Moellmann <gerd@gnu.org>
13627
13628 * xdisp.c (move_iterator_vertically): Check post-condition. Move
13629 to start of line if ending at ZV and no newline in front.
13630 (move_iterator_to): If to_y specified, always first move to x = 0,
13631 so that move stops at line start instead of line end. This is
13632 probably what callers would expect to happen.
13633
13634 * window.c (window_scroll_pixel_based): Pixel-based scrolling that
13635 can handle different line heights.
13636 (window_scroll_line_based): Formerly window_scroll.
13637 (window_scroll): Call both.
13638
13639 * xdisp.c (start_display): Exclude code if PROMPT_IN_BUFFER.
13640 (move_iterator_in_display_line_to): Ditto.
13641 (display_line): Ditto.
13642
13643 * minibuf.c (read_minibuf): Conditionally insert prompt into
13644 buffer instead of handling prompts specially. Change other
13645 functions accordingly. All such code is in #if PROMPT_IN_BUFFER.
13646
13647 * dispnew.c (adjust_glyph_matrix): Optimize the handling of C-x 2,
13648 upper window. Optimize calls to xrealloc if same width.
13649
13650 * xdisp.c (redisplay_window): Don't use
13651 try_window_reusing_current_matrix if window scroll functions
13652 exist.
13653
13654 * dispextern.h (struct display_iterator): Member
13655 redisplay_end_trigger_p removed.
13656
13657 * dispextern.h (WINDOW_DISPLAY_PIXEL_HEIGHT_WITHOUT_MODE_LINE):
13658 Renamed to WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
13659
136601998-01-16 Gerd Moellmann <gerd@gnu.org>
13661
13662 * xdisp.c (move_iterator_by_lines): Optimize for truncate-lines
13663 nil. Optimize truncate-lines t and moving backward.
13664 (move_iterator_to_previous_visible_line_start): Contains the heart
13665 of the previous set_iterator_to_previous_visible_line_end. Don't
13666 reseat the iterator. Used by move_iterator_by_lines.
13667 (set_iterator_to_previous_visible_line_start): Call function
13668 above.
13669 (move_iterator_in_display_line_to): Check TO_POS before doing
13670 anything else. Otherwise to_pos == PT would move to x of PT+1.
13671
13672 * indent.c (Fvertical_motion): Use display_iterator.
13673
13674 * xdisp.c (move_iterator_by_lines): New function moving by screen
13675 lines.
13676 (redisplay_window): Use it.
13677 (move_iterator_to): Correct branch of to_vpos specified.
13678 (move_iterator_vertically_backward): Increment nlines after having
13679 backed up over some lines because the last line was not backed up
13680 over.
13681 (move_iterator_via_matrix): Look for it->pos in the matrix, and
13682 calculate it->vpos and it->current_y relative to this row.
427ec082 13683 (move_iterator_via_matrix): Set in #if 0. It doesn't seem to
26901792
DL
13684 have a big effect and it is complex.
13685 (move_iterator_to): Call to move_iterator_via_matrix in #if 0.
13686
136871998-01-15 Gerd Moellmann <gerd@gnu.org>
13688
13689 * xterm.c (x_draw_relief): Simplify drawing and draw so that lines
13690 join nicely. Lines with widths > 2 don't join nicely under X.
13691 * xterm.h (struct x_output): Remove member relief_gc_line_width.
13692 * widget.c (setup_frame_gcs): Initialize relief GC's to line
13693 width 1; remove references to relief_gc_line_width.
13694 * xfns.c (x_make_gc): Ditto.
13695
13696 * xfaces.c (Fset_face_attribute_internal): Set frame garbaged
13697 if relief changes.
13698 (Fset_face_attribute_internal): Use XINT instead of XFASTINT
13699 to get a relief because they can be negative.
13700
13701 * xterm.c (x_draw_relief): Correct line drawing positions. Pixel
13702 positions are for the middle of lines under X.
13703
13704 * xdisp.c (try_window_id): Always search for the cursor by setting
13705 w->cursor.vpos = -1. Search in unchanged rows at the top and
13706 bottom if cursor not found in displayed lines.
427ec082 13707 (display_mode_line): First extend face, then set right shadow
26901792
DL
13708 flag. Otherwise the wrong glyph gets the right shadow.
13709
13710 * dispnew.c (direct_output_for_insert): Give up if line contains
13711 a tab. The number of spaces inserted for a tab changes if we
13712 insert glyphs in front of it.
13713
13714 * xterm.c (x_list_fonts): Changes undone because the Lisp
13715 implementation for make-face-smaller, make-face-larger, and
13716 make-face-fixed can do without them.
13717
13718 * xfns.c (Fx_list_fonts): Original x-list-fonts from x-list-font.c
13719 inserted.
13720
13721 * xdisp.c (try_window_id): First compute beg_unchanged, then
13722 compare with window start pos.
13723
13724 * xfns.c (Fx_face_fixed_p): Determine whether a face has a
13725 fixed-width font.
13726 (syms_of_xfns): defsubr for x-face-fixed-p.
13727
13728 * xterm.c (x_erase_phys_cursor): If row containing cursor is not
13729 enabled, don't do anything because this row will be newly drawn
13730 anyway and because we can additionally no longer determine the row
13731 height.
13732
13733 * xdisp.c (display_line): Bug fix cursor positioning.
13734
13735 * xfns.c (x-list-fonts): Copied from x-list-fonts.c; #include
13736 removed. x-list-fonts.c is now obsolete.
13737 (Qfixed, Qvariable): Moved here from xfaces.c.
13738
137391998-01-14 Gerd Moellmann <gerd@gnu.org>
13740
13741 * xdisp.c (display_line): Set row->ends_at_zv_p based on
13742 FETCH_BYTE for truncated lines.
13743 (display_line): Set cursor differently.
13744 (display_line): Fixed bug setting last_pos_on_this_line wrong
13745 for truncated lines.
13746
13747 * dispnew.c (adjust_glyph_matrix): Always adjust for frame-based
13748 redisplay.
13749
13750 * window.c (Fsplit_window): Adjust glyphs before setting buffer.
13751
13752 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Add
13753 assertion that character dimensions are not zero.
13754
13755 * xterm.c (x_load_font): adjust_glyphs_for_font_change while
13756 input is blocked.
13757
13758 * xdisp.c (decode_mode_spec): Faster implementation of line number
13759 display.
13760
13761 * xterm.c (x_draw_row_bitmaps): Clear flags area before drawing
13762 bitmaps if bitmaps don't fill the entire area.
13763 (draw_bitmap): Draw bitmaps horizontally centered in flags area.
13764
427ec082 13765 * xterm.h (FRAME_FLAGS_BITMAP_HEIGHT): Macro giving the
26901792
DL
13766 pixel height of flags bitmaps.
13767
13768 * frame.h (FRAME_FLAGS_AREA_COLS): Use FRAME_X_FLAGS_AREA_COLS.
13769 (FRAME_FLAGS_AREA_WIDTH): Ditto.
13770
13771 * xterm.h (FRAME_FLAGS_BITMAP_WIDTH): Macro giving the width
13772 in pixels of a flags area of a frame.
13773 (FRAME_X_FLAGS_AREA_WIDTH): Removed.
13774 (FRAME_X_FLAGS_AREA_COLS): Macro giving the number of columns
13775 occupied by a flags area.
13776
137771998-01-13 Gerd Moellmann <gerd@gnu.org>
13778
13779 * xdisp.c (hscroll_window_tree): Remove test for non-nil
13780 window_end_valid.
13781
13782 * dispnew.c (adjust_glyph_matrix): Check redisplay_p if
13783 GLYPH_DEBUG != 0.
13784
13785 * xdisp.c (display_line): Correct wrong calculation of row->x for
13786 the case of nglyphs == 1.
13787 (hscroll_window_tree): Renamed from hscroll_windows.
13788 (hscroll_windows): New function calling hscroll_window_tree that
13789 clears desired matrices on a frame when hscroll has been changed.
13790 (redisplay_p): Global flag set during redisplay.
13791 (redisplay_internal): Set and clear redisplay_p.
13792
13793 * xfaces.c (min_char_bounds): Add assertion that width and height
13794 are not zero at the end. Initialize *height and *width to -1,
13795 instead of using BITS_PER_SHORT. If font has min_bounds.width
13796 zero, use its max_bounds.width.
13797
13798 * x-list-font.c (Fx_list_fonts): Check INTEGERP or FLOATP for
13799 width and height.
13800
138011998-01-12 Gerd Moellmann <gerd@acm.org>
13802
13803 * dispnew.c (adjust_glyph_matrix): Do nothing if sizes haven't
13804 changed. Don't clear desired matrices.
13805
13806 * xdisp.c (hscroll_windows): Compute pt after setting
13807 current_buffer.
13808 (redisplay_window): Don't do cursor movement based on current
13809 matrix if just_this_one_p is zero.
13810
13811 * x-list-font.c (Fx_list_fonts): Additional parameter fixed.
427ec082 13812 specifying that fixed-width, variable-width fonts or both
26901792
DL
13813 should be returned.
13814
13815 * xfaces.c (Qfixed, Qvariable): Symbols for use by x-list-fonts.
13816 (syms_of_xfaces): Initialize them.
13817
13818 * xterm.c (x_list_fonts): Include auto-scaled fonts. Extend
13819 cached information.
13820
138211998-01-11 Gerd Moellmann <gerd@acm.org>
13822
13823 * xdisp.c (display_mode_line): Extend face to end of line.
13824
13825 * xdisp.c (echo_area_display): Don't call display_string with
13826 echo_area_glyphs_length == 0 which would mean infinite precision.
13827 (redisplay_internal): Adjust window_end_vpos if necessary.
13828
138291998-01-07 Gerd Moellmann <gerd@acm.org>
13830
13831 * xdisp.c (display_line): Set it->ends_at_zv_p differently.
13832
138331998-01-05 Gerd Moellmann <gerd@acm.org>
13834
13835 * xdisp.c (get_row_start_continuation_line_width): Removed.
13836 (init_iterator_to_row_start): Set it.current_x from row.
13837 (try_window_id): Set it.continuation_lines_width directly from
13838 row.
13839
13840 * xdisp.c (hscroll_windows): Use w->pointm if window is not
13841 selected_window.
13842 (hscroll_windows): Center cursor in window.
13843 (hscroll_windows): Call move_iterator_in_display_line_to.
13844
138451998-01-04 Gerd Moellmann <gerd@acm.org>
13846
13847 * xdisp.c (hscroll_windows): Check hscroll < 0.
13848 (redisplay_window): Allow quick cursor movement if overlay arrow
13849 but frame uses window-based redisplay.
13850 (display_line): Take special case for nglyphs == 1 out of #if 0.
13851 (display_line): Set row->ends_at_zv_p after the loop displaying
13852 glyphs because ZV can be in truncated text.
13853 (hscroll_windows): Use init_iterator_to_row_start.
13854
13855 * dispnew.c (scrolling_window): Calculation of overlapping
13856 runs fixed.
13857 (row_equal_p): Compare continued_p and continuation_line_p.
13858
138591998-01-02 Gerd Moellmann <gerd@acm.org>
13860
13861 * xterm.c (x_get_mode_line_face_gc): Renamed from
13862 x_get_modeline_face_gc.
13863
13864 * xdisp.c (TEXT_PROP_DISTANCE_LIMIT): Max. distance from current
13865 buffer position to look for text properties.
13866 (get_face_from_cursor_pos): Use it.
13867 (compute_face_at_iterator_position): Use it.
13868 (next_element_from_buffer): Use it.
13869
13870 * dispnew.c (scrolling_window): Decrement run's y-position
13871 when extending it backwards.
13872
13873 * xterm.c (do_line_dance): Don't ever copy more than window height.
13874
138751998-01-01 Gerd Moellmann <gerd@acm.org>
13876
13877 * xdisp.c (redisplay_window): Cursor motion in unchanged
13878 matrix---use MATRIX_ROW_.*_IN_MIDDLE_OF_CHAR_P.
13879 (init_iterator_to_next_row_start): Special handling of lines
13880 ending in middle of char removed.
13881 (hscroll_windows): Hscroll windows only if window_end_valid is not
13882 nil.
13883 (try_window_reusing_current_matrix): Call hscroll_windows.
13884 (init_iterator_to_row_start): Initialize iterator for display
13885 starting at a position given by a glyph_row->start.
13886 (redisplay_window): Don't use vmotion because it gives wrong
13887 results if lines are continued and variable width fonts are used.
13888
427ec082 13889 * dispextern.h (struct glyph_pos): New member dpvec_index.
26901792
DL
13890 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test if row ends in the
13891 the middle of a character.
427ec082 13892 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Test if row starts in
26901792
DL
13893 the middle of a character.
13894
13895 * xdisp.c (set_iterator_to_next): Increment it->dpvec_index, reset
13896 it.
13897 (next_element_from_display_vector): Use it->dpvec_index.
13898 (reseat_iterator): Reset it.
13899 (init_iterator): Reset it.
13900 (setup_iterator_dpvec_from_glyph_pos): Set up it->dpvec and
13901 it->pos.dpvec_index from a glyph_pos structure.
13902 (init_iterator_from_glyph_pos): Call the function above.
13903 (reseat_iterator_to_glyph_pos): Ditto.
13904
13905 * dispnew.c (direct_output_forward_char): Don't use this method at
13906 overlay boundaries or near invisible text.
13907 (direct_output_forward_char): Step through glyph row to find
13908 cursor position.
13909
427ec082 13910 * xterm.c (x_get_cursor_gc): Don't return cursor_gc for font ==
26901792
DL
13911 frame font if line height differs from font height.
13912
13913 * xdisp.c (set_iterator_to_next): Renamed from
13914 move_iterator_forward to avoid confusion with other move_.*
13915 functions.
13916
13917 * dispextern.h (FACE_RELIEF_P): Renamed from FACE_3D_P.
13918
139191997-12-31 Gerd Moellmann <gerd@acm.org>
13920
13921 * xterm.c (x_get_cursor_gc): Renamed from x_cursor_gc to use the
13922 same naming convention as for other GC functions.
13923 (draw_glyphs): Don't fill background when drawing a cursor and
13924 font height is less than line height.
13925
139261997-12-30 Gerd Moellmann <gerd@acm.org>
13927
13928 * xdisp.c (init_display_iterator.*): Renamed to shorter names
13929 init_iterator_.*.
13930
13931 * xdisp.c (move_iterator_forward): Restore it->len from
13932 it->dpvec_char_len if dpend reached.
13933 (get_next_display_element): Don't consume translated char
13934 prematurely.
13935 (display_line): Don't set this_.* variables if row is continued.
13936 (start_display): Move to start of continuation line if ending
13937 up at end of continued line.
13938
13939 * dispextern.h (struct display_iterator): New member dpvec_char_len.
13940
13941 * xdisp.c (move_iterator_in_display_line_to): Check TO_POS after
13942 checking TO_X and continuation lines.
13943 (get_last_unchanged_at_beg_row): If first_changed_pos is the end
13944 of a continued line, don't consider this line as unchanged because
13945 it may no longer be continued.
13946
139471997-12-29 Gerd Moellmann <gerd@acm.org>
13948
13949 * xdisp.c (try_window_id): Catch the case that moving over
13950 continuation lines moves first_unchanged_at_end_row to a row not
13951 displaying text.
13952
13953 * dispextern.h (struct glyph_row): New member
13954 continuation_lines_width. Member continuation_line_p removed.
427ec082 13955 (MATRIX_ROW_CONTINUATION_LINE_P): Non-zero if row displays a
26901792
DL
13956 continuation line.
13957 * xdisp.c (display_line): Set row->continuation_lines_width.
13958 (get_row_start_continuation_line_width): Set continuation lines
13959 width of iterator from continuation lines width of glyph row.
13960 (get_row_start_continuation_line_width): Make it inline.
13961 (set_window_cursor): Make it inline.
13962 (try_window_id): Use MATRIX_ROW_CONTINUATION_LINE_P.
13963 (Fdump_redisplay_state): Ditto.
427ec082 13964
26901792
DL
13965 * dispnew.c (update_window_line): Use MATRIX_ROW_CONTINUATION_LINE_P.
13966 * xterm.c (x_draw_row_bitmaps): Use MATRIX_ROW_CONTINUATION_LINE_P.
13967
13968 * xdisp.c (try_window_id): Set it.hpos and it.current_x to zero
13969 after determining the continuation lines width for
13970 last_unchanged_at_beg_row.
13971
13972 * xterm.c (x_draw_row_bitmaps): Let overlay arrow have precedence.
13973
13974 * xdisp.c (display_mode_line): Handle 3D faces only on frames
13975 which support faces.
13976 (init_display_iterator): Ditto.
13977 (move_iterator_via_matrix): Skip over truncation glyph at the row
13978 start on terminal frames.
13979 (hscroll_windows): Choose hscroll margin differently for window
13980 system and terminal frames.
13981
139821997-12-28 Gerd Moellmann <gerd@acm.org>
13983
13984 * xdisp.c (hscroll_windows): Change hscroll of windows.
13985 (redisplay_internal): Call it.
13986
427ec082 13987 * dispnew.c (direct_output_for_insert): Give up if a glyph
26901792
DL
13988 doesn't fit completely on the line.
13989 (direct_output_forward_char): Give up for non-ASCII chars.
13990 (direct_output_forward_char): Set redisplay_performed_directly_p.
13991
13992 * dispextern.h (struct display_iterator): Make first_visible_x
13993 and last_visible_x ints; this is for very long truncated lines.
13994
13995 * xdisp.c (move_iterator_in_display_line_to): Separate check for
13996 MOVE_X_REACHED only if it->nglyphs == 0. This fixes cursor
13997 positioning problems with the mouse.
13998 (move_iterator_in_display_line_to): Truncate lines if it->current_x
13999 >= it->last_visible_x instead of >.
14000 (display_line): Ditto.
14001
14002 * xterm.c (draw_glyphs): Draw rectangles if font could not be
14003 loaded.
14004 (XTproduce_glyphs): Calculate pixel_width for composite chars and
14005 non-ASCII chars differently. Always produce 1 glyph for composite
14006 chars. If font not found, use CHARSET_WIDTH to calculate width of
14007 non-ASCII chars.
14008 (x_get_char_font_and_encoding): Return null if font could not be
14009 loaded. Reset font to null if fontset could not be loaded.
14010 (draw_glyphs): Fill background if font not found.
14011 (draw_glyphs): Unused parameter just_foreground_p removed. New
14012 parameter composite_glyph.
14013 (draw_glyphs): Use enumeration for parameter hl.
427ec082 14014 (draw_glyphs): Pass a display area relative x-position to
26901792
DL
14015 draw_glyphs when calling it recursively for composite chars.
14016
140171997-12-27 Gerd Moellmann <gerd@acm.org>
14018
14019 * xterm.c: Patches from handa.etl.go.jp integrated.
14020 (draw_glyphs): Don't rely on x_get_char_font_and_encoding to
14021 find a font_info.
14022
14023 * xdisp.c (move_iterator_in_display_line_to): Check to_x
14024 for nglyphs == 1.
14025
14026 * xterm.c (x_draw_relief): Draw relief lines.
14027 (draw_glyphs): Call x_draw_relief.
14028
140291997-12-26 Gerd Moellmann <gerd@acm.org>
14030
14031 * xfns.c (x_make_gc): Create relief GC's.
14032
14033 * widget.c (create_frame_gcs): Create GC's for relief drawing.
14034 (setup_frame_gcs): Initialize them.
14035 (EmacsFrameDestroy): Free them.
14036
427ec082 14037 * xdisp.c (try_window_id): Get continuation lines width if
26901792
DL
14038 last_unchanged_at_beg_row is continued or a continuation line.
14039 (move_iterator_via_matrix): Don't do it for mini-buffer windows.
427ec082 14040 (redisplay_window): Case point has changed, and it has not
26901792
DL
14041 moved off the frame. Don't increment row if PT equals the row
14042 end if the row ends in ZV.
14043
14044 * xterm.c (x_draw_row_bitmaps): New function to draw bitmaps.
14045 (expose_line): Call it.
14046 (x_after_update_window_line): Call it.
14047
14048 * xdisp.c (display_line): Reset continuation_lines_width when ZV
14049 reached.
14050
14051 * xterm.c (x_after_update_window_line): Draw continuation line
14052 bitmap.
14053
14054 * dispnew.c (update_window_line): Call
14055 after_update_window_line_hook when row's continuation_line_p
14056 changes.
14057
14058 * xterm.c (draw_bitmap): Draw new bitmap CONTINUATION_LINE_BITMAP.
14059
14060 * xdisp.c (display_line): Handle continued lines on window system
14061 frames differently since continuation glyphs are not displayed.
14062 (move_iterator_in_display_line_to): Ditto.
14063 (move_iterator_in_display_line_to): Take the mini-buffer prompt
14064 into account.
14065 (move_iterator_vertically_backward): Handle dy == 0 specially.
14066 (redisplay_window): Catch the case of small windows when
14067 recentering where moving back window_height/2 moves us beyond the
14068 top of the display area of the window.
14069
140701997-12-18 Gerd Moellmann <gerd@acm.org>
14071
14072 * xdisp.c (move_iterator_vertically_backward): Unused parameter
14073 dvpos removed.
14074
140751997-12-17 Gerd Moellmann <gerd@acm.org>
14076
14077 * dispnew.c (direct_output_forward_char): Correct new cursor
14078 x-position.
14079
140801997-12-16 Gerd Moellmann <gerd@acm.org>
14081
14082 * xterm.c (x_after_update_window_line): Remove unused parameters.
14083 (XTclear_end_of_line): Clear to display_height instead of
14084 display_height - 1.
14085
14086 * dispnew.c (set_frame_matrix_frame): Make it INLINE.
427ec082 14087 (update_window_line): Call after_update_window_line_hook if
26901792
DL
14088 rows have different y-positions, or different height.
14089
140901997-12-14 Gerd Moellmann <gerd@acm.org>
14091
14092 * frame.h (FRAME_MODE_LINE_PIXEL_HEIGHT): Removed.
14093
14094 * window.c (coordinates_in_window): Call frame_mode_line_height.
14095
14096 * xterm.c (x_draw_3d_border): Removed.
14097 (x_draw_row_borders): Removed.
14098
14099 * dispnew.c (update_window): References to
14100 FRAME_MODE_LINE_BORDER_WIDTH removed.
14101
14102 * xterm.h (FRAME_MODE_LINE_BORDER_WIDTH): Removed.
14103 (FRAME_MODE_LINE_HEIGHT): Removed.
14104
14105 * xterm.c (draw_3d_borders_p): Removed.
14106 (draw_glyphs): Ditto.
14107 (XTwrite_glyphs): Ditto.
14108 (expose_line): Ditto.
14109 (x_initialize): Ditto.
14110
14111 * dispextern.h (WINDOW_DISPLAY_MODE_LINE_HEIGHT): Call
14112 frame_mode_line_height.
14113
14114 * term.c (frame_mode_line_height): Get the pixel height of a
14115 frame's mode line.
14116 (frame_mode_line_height_hook): Hook to implement system dependent
427ec082
SS
14117 versions.
14118
26901792
DL
14119 * xterm.c (x_initialize): Set the hook.
14120 (XTframe_mode_line_height): X version of frame_mode_line_height.
14121
14122 * xdisp.c (echo_area_display): Call gobble_input to flush the X
14123 output buffer.
14124 (display_string): Don't add right truncation mark if line ends in
14125 padding space.
14126 (init_display_iterator): If called with modeline_p non-zero, set
14127 face_id to 1, which is the id of the mode line face.
14128
14129 * keyboard.c (cmd_error_internal): Write to stderr if selected
14130 frame is Vterminal_frame under X. This is the case when a font
14131 cannot be loaded when Emacs starts. Replace test for
14132 FRAME_MESSAGE_BUF with test for glyphs_initialized_p.
14133
14134 * xfaces.c (compute_overlay_string_char_face): Compute the
14135 face of a character in an overlay string.
14136 * xterm.h (compute_overlay_string_char_face): Prototype.
427ec082 14137 * xdisp.c (compute_face_at_iterator_overlay_string_position):
26901792
DL
14138 Use it.
14139
14140 * xdisp.c (set_iterator_to_next_overlay_string): Formerly
14141 set_iterator_to_next_overlay.
14142 (struct overlay_entry): Structure used to sort overlay strings.
14143 (compare_overlay_entries): Compare overlay strings.
14144 (load_iterator_with_overlay_strings): Load a chunk of overlay
14145 strings.
14146 (get_overlay_strings_at_iterator_position): Call it.
14147 (next_element_from_overlay_string): Set it->object to the overlay
14148 string. Prepare for setting it->position to a string position.
14149 (get_overlay_strings_at_iterator_position): Renamed from
14150 get_overlays_at_iterator_position.
14151 (setup_iterator_overlay_strings_from_glyph_pos): Changed to load
14152 chunks of overlay strings.
14153 (load_overlay_strings): Renamed from load_iterator_overlay_strings.
14154
14155 * dispextern.h (struct display_iterator): New vector
14156 overlay_strings and new member n_overlay_strings---formerly
427ec082
SS
14157 overlays and n_overlays.
14158 (struct glyph_pos): Remove after_string_p; overlay_index
26901792
DL
14159 renamed to string_index.
14160
141611997-12-13 Gerd Moellmann <gerd@acm.org>
14162
14163 * xdisp.c (copy_iterator): Increment n_iterator_overlay_vectors
14164 when allocating a vector.
14165 (release_iterator): Removed.
14166 (restore_iterator): Removed.
14167 (copy_iterator): Removed.
14168
141691997-12-08 Gerd Moellmann <gerd@acm.org>
14170
14171 * xdisp.c (redisplay_window): Use make_empty_enabled_row for
14172 clearing a mini-buffer window that is not active.
14173 (redisplay_window): Do not scroll one line too early when last
14174 window line is completely visible.
14175 (init_display_iterator): Leave some room to display the cursor
14176 after the last glyph on a continued line.
14177
14178 * xterm.h (struct x_output): trunc_area_extra renamed
14179 flags_areas_extra.
14180 (FRAME_X_FLAGS_AREA_WIDTH): Renamed from FRAME_X_TRUNC_WIDTH.
14181
14182 * dispnew.c (update_window_line): Call
14183 after_update_window_line_hook when current row is not enabled
14184 which is the case after a frame has been cleared.
14185
14186 * xdisp.c (display_mode_line): Reset row flags for truncation
14187 on right side for the mode line.
14188
14189 * xterm.c (bitmap_type): Type of bitmap to display in flags
14190 area of frame.
14191 (x_after_update_window_line): Use the enum.
14192 (draw_bitmap): Ditto.
14193
141941997-12-07 Gerd Moellmann <gerd@acm.org>
14195
14196 * xterm.c (x_clip_to_row): Include width of both flag areas.
14197 (do_line_dance): Ditto.
14198 (expose_window_tree): Ditto.
14199 * dispnew.c (update_window_line): Call
14200 after_update_window_line_hook for right truncation and continuation.
14201 * xdisp.c (init_display_iterator): Don't subtract width of
14202 continuation glyphs for window-based redisplay.
14203 * xterm.c (draw_bitmap): Draw continuation bitmap.
14204 * widget.c (set_frame_size): Double trunc_area_extra.
14205 (EmacsFrameSetCharSize): Ditto.
14206 * xfns.c (x_figure_window_size): Ditto.
14207 * xterm.c (x_set_window_size): Ditto.
14208 (x_after_update_window_line): Draw right truncation mark.
14209
14210 * xterm.c (draw_glyphs): Bug fix buffer overrun.
14211
14212 * window.h: Include blocker around dispextern.h removed.
14213
14214 * eval.c (Feval): Check interrupt_input_block == 0.
427ec082 14215
26901792
DL
14216 * dispextern.h (struct display_iterator): Former ovstr made a
14217 Lisp_Object overlay_string. New next_ovstr_face_check_pos and
14218 next_ovstr_invisble_check_pos; check at these positions for
14219 face changes and changes in invisible text property.
14220 (struct glyph_pos): Former ovlen now overlay_string_index.
14221
14222 * xdisp.c (setup_iterator_overlays_from_glyph_pos): Set
14223 overlay_string.
14224 (set_iterator_to_next_overlay_string): Set overlay_string and
14225 pos.overlay_string_index.
14226 (get_overlays_at_iterator_position): Use overlay_string and
14227 overlay_string_index.
14228 (next_element_from_overlay_string): Use overlay_string and
14229 overlay_string_index.
14230 (move_iterator_forward): Increment overlay_string_index.
14231 (try_window_id): Use overlay_string and overlay_string_index.
14232 (move_iterator_forward): At end of dpvec, maybe use method
14233 next_element_from_overlay_string for the case a character from an
14234 overlay string was translated via a display table.
14235 (reseat_iterator_to_string): Take a Lisp string.
14236 (display_string): Pass a Lisp string to reseat_iterator_to_string.
14237 (compute_face_at_iterator_overlay_string_position): Compute face
14238 based on text properties for an overlay string.
14239 (next_element_from_overlay_string): Check invisible and face text
14240 properties.
178c5d9c 14241
26901792
DL
14242 (set_iterator_to_next_overlay_string): Restore face id before
14243 overlay strings when no more overlay strings are found to return.
14244 Initialize next_ovstr_.*check_pos for each new overlay string
178c5d9c 14245
bb6677a8
GM
14246 A line in the following paragraph was garbled for an unknown
14247 reason. It couldn't be fully reconstructed.
178c5d9c 14248
bb6677a8 14249 (compute_base_face): Made public.
26901792
DL
14250 (merge_face_list): Ditto.
14251 (intern_computed_face): Ditto.
14252
427ec082 14253 * xdisp.c (redisplay_window): Cursor movement in unchanged
26901792
DL
14254 window if PT > w->last_point. Goto try_to_scroll if bottom Y
14255 of row is > instead of >= last_y.
14256
14257 * buffer.h (overlays_at): Function prototype.
14258
14259 * xdisp.c (reseat_iterator_to_string): Clear iterator position.
14260 * dispextern.h (GET_NEXT_DISPLAY_ELEMENT): Removed.
14261
427ec082 14262 * xdisp.c (release_iterator): Release dynamically allocated
26901792
DL
14263 memory of a display_iterator.
14264 (copy_iterator): Copy an iterator.
14265 (restore_iterator): Restore an iterator from a backup copy.
14266 (global): Use the functions above.
14267 * window.c (Fpos_visible_in_window_p): Call release_iterator.
14268 * dispnew.c (direct_output_for_insert): Call release_iterator.
14269
14270 * dispextern.h (struct display_iterator): Allocate overlays
14271 vector dynamically.
14272
142731997-12-06 Gerd Moellmann <gerd@acm.org>
14274
14275 * Makefile.in (window.o): Depends on dispextern.h.
14276
14277 * buffer.c (overlays_at): Make it work when extending vectors
14278 and an initial vector of zero size.
14279
14280 * xdisp.c (set_iterator_to_previous_visible_line_end): Renamed
14281 from set_cursor_to_previous_visible_line_end.
14282 (set_iterator_to_next_visible_line_start): Renamed from
14283 set_cursor_to_next_visible_line_end.
14284 (set_next_iterator_stop_pos): Renamed from set_next_stop_pos.
14285 (compute_face_at_iterator_position): Renamed from
14286 compute_cursor_face.
14287 (set_iterator_to_next_overlay_string): Renamed from
14288 cursor_to_next_overlay_string.
14289 (get_overlays_at_iterator_position): Renamed from
14290 get_overlays_for_cursor.
14291 (reseat_iterator): Renamed from reseat_cursor.
14292 (setup_iterator_overlays_from_glyph_pos): Renamed from
14293 setup_overlays_from_pos.
14294 (init_string_iterator): Renamed from init_string_cursor.
14295 (get_next_display_element): Renamed from next_display_element.
14296 (move_iterator_forward): Renamed from advance_display_cursor.
427ec082 14297 (get_overlays_at_iterator_position): Allocate overlays vector
26901792
DL
14298 dynamically.
14299
14300 * xdisp.c: display_cursor renamed display_iterator.
14301 * dispextern.h: Ditto.
14302 * dispnew.c: Ditto.
14303
143041997-12-01 Gerd Moellmann <gerd@acm.org>
14305
14306 * window.c (mark_window_cursors_off): Function comment added.
14307 (window_topmost_p, window_rightmost_p): Removed because not used.
14308
143091997-11-30 Gerd Moellmann <gerd@acm.org>
14310
14311 * emacs.c (main): Function prototypes removed in profiling code.
14312 Use safe_bcopy as start of text.
14313
14314 * dispnew.c (update_frame_line): update_line -> update_frame_line;
14315 mirrored_make_current -> make_current.
14316
14317 * xdisp.c: (store_frame_title_char): New function to store a
14318 single character for the frame title with re-allocation of
14319 frame_title_buf.
14320 (init_xdisp): Intialize frame_title_.* variables to null.
14321
14322 * dispnew.c (quit_error_check): Removed.
14323
14324 * eval.c (Fsignal): Call to quit_error_check removed.
14325 * keyboard.c (quit_throw_to_read_char): Ditto.
14326
143271997-11-23 Gerd Moellmann <gerd@acm.org>
14328
14329 * xfaces.c (Fset_face_attribute_internal): Allow nil relief
14330 to mean a zero relief.
14331
26901792
DL
143321997-11-19 Gerd Moellmann <gerd@acm.org>
14333
14334 * dispnew.c (new_glyph_matrix): Increment glyph_matrix_count
14335 unconditionally.
14336 (glyph_matrix_count, glyph_pool_count): Define unconditionally.
14337 (free_glyph_matrix): Decrement glyph_matrix_count unconditionally.
14338 (check_glyph_memory): Define function body unconditionally.
14339
143401997-11-17 Gerd Moellmann <gerd@acm.org>
14341
14342 * dispnew.c (scrolling_window): Alternative version of this
14343 function removed.
14344
143451997-11-16 Gerd Moellmann <gerd@acm.org>
14346
14347 * dispnew.c (make_empty_enabled_row): Make an empty, enabled row
14348 of height CANON_Y_UNIT.
14349 * dispextern.h: Prototype for that function.
427ec082 14350 * xdisp.c (echo_area_display): Don't use display_string to
26901792
DL
14351 produce empty rows. Use make_empty_enabled_row instead.
14352
14353 * dispnew.c (scrolling_window): New version using diff-like
14354 algorithm activated.
427ec082 14355
26901792
DL
143561997-11-15 Gerd Moellmann <gerd@acm.org>
14357
14358 * dispnew.c (clear_current_matrices): Clear matrix of menu_bar_window
14359 (clear_desired_matrices): Ditto.
14360 (adjust_frame_glyphs_for_window_redisplay): Use FRAME_WINDOW_WIDTH
14361 for menu_bar_window.
14362
14363 * alloc.c (mark_object): Mark menu_bar_window of frames.
14364
14365 * xterm.c (XTupdate_window_end): Don't display cursor if
14366 pseudo_window_p.
14367
14368 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Don't
14369 set mini_p.
14370 (update_window): Don't set cursor if pseudo_window_p.
14371
14372 * dispextern.h (WINDOW_WANTS_MODELINE_P): Test pseudo_window_p.
14373
14374 * window.h (struct window): New flag pseudo_window_p set to
14375 1 for windows that aren't really part of the window tree, like
14376 menu_bar_window's of frames.
14377 * window.c (make_window): Initialize it.
14378 (replace_window): Ditto.
14379 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Ditto.
14380
14381 * frame.c (make_frame): Initialize menu_bar_window to nil.
14382
14383 * xterm.c (XTget_display_info): FACE_SHADOW_THICKNESS renamed
14384 FACE_RELIEF
14385
14386 * xfaces.c (copy_face): shadow_thickness -> relief.
14387 (face_eql): Ditto.
14388 (merge_faces): Ditto.
14389 (compute_base_face): Ditto.
14390 (Fset_face_attribute_internal): Ditto.
14391 * dispextern.h (struct face): Ditto.
14392
14393 * dispnew.c (update_frame): Update menu_bar_window of the frame if
14394 it is non-nil.
14395
14396 * xdisp.c (display_menu_bar): Display the menu bar in
14397 f->menu_bar_window if appropriate.
14398 (display_mode_line): Use MATRIX_MODE_LINE_ROW.
14399
14400 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Allocate
14401 dummy window and window matrices for f->menu_bar_window.
14402 (free_glyphs): Free the dummy window and its glyph matrices.
14403
14404 * frame.h (struct frame): New member menu_bar_window.
14405
144061997-11-09 Gerd Moellmann <gerd@acm.org>
14407
14408 * dispnew.c (scrolling_window): New version with diff-like
14409 algorithm.
14410
14411 * xdisp.c (try_window_reusing_current_matrix): If new_start >
14412 old_start always start displaying at start of
14413 first_row_to_display. The previous scheme failed if the last row
14414 was fully visible.
14415
14416 * dispnew.c (update_window): Remove cost calculations. Remove
14417 redundant preempt_count calculations.
14418
14419 * xterm.c (x_clip_to_row): Set clipping for non-text rows
14420 differently.
14421
14422 * dispnew.c (update_window): Use WINDOW_WANTS_MODELINE_P.
14423
427ec082 14424 * window.c (syms_of_window): Functions for marginal areas if
26901792
DL
14425 WITH_MARGINAL_AREAS is defined.
14426
427ec082 14427 * xdisp.c (try_window_reusing_current_matrix): Trace fprintf
26901792
DL
14428 removed.
14429
14430 * dispnew.c (scrolling): Call line_hash_code because hash values
14431 are not set in the frame matrix.
14432
14433 * xdisp.c (try_window_id): Fix scrolling for terminal frames.
14434 (redisplay_window): Check line_ins_del_ok before calling
14435 try_window_id.
14436 (try_window_reusing_current_matrix): Give up for terminal frames
14437 if window is not full width or we cannot insert/delete lines.
14438 (try_window_reusing_current_matrix): Fixed scrolling for terminal
14439 frames.
14440
14441 * alloc.c (mark_glyph_matrix): Bug fix - pass pointer to
14442 Lisp_Object to mark_object.
14443
14444 * xdisp.c (sync_frame_with_window_matrix_rows): Make frame and
14445 window rows have the same glyph pointers.
14446 (try_window_id): Call it.
14447
14448 * alloc.c (mark_glyph_matrix): Function to mark Lisp objects in
14449 a glyph matrix.
14450 (mark_object): Call it.
14451
14452 * xdisp.c (insert_left_trunc_glyphs): Use 0 object in glyphs for
14453 truncations.
14454 (display_line): Ditto.
14455 (display_line): Ditto for DISP_CONTINUATION.
14456 (display_line): Truncation on right: test current_x >
14457 last_visible_x.
14458 (skip_in_display_line_to): Ditto.
14459 (skip_via_matrix): Stop skipping in glyph row at face extending
14460 glyphs or at padding spaces.
14461
14462 * dispnew.c (fill_up_glyph_row_with_spaces): Comment extended.
14463
14464 * xdisp.c (display_line): Use glyph->object == 0 for padding
14465 glyphs.
14466 (redisplay_window): Don't let cursor move over padding
14467 spaces.
14468
14469 * dispextern.h (struct glyph): Fix comment for object.
14470
144711997-11-08 Gerd Moellmann <gerd@acm.org>
14472
14473 * dispextern.h (WINDOW_WANTS_MODELINE_P): Non-zero if a window
14474 has a mode line.
14475 * xdisp.c (redisplay_window): Use it.
14476 (display_mode_line): Check that window wants mode line.
14477
144781997-11-03 Gerd Moellmann <gerd@acm.org>
14479
14480 * xdisp.c (display_menu_bar): Enable menu bar rows.
14481
14482 * xterm.c (x_draw_hollow_cursor): X positions based on text area.
14483 (x_erase_phys_cursor): Ditto.
14484 (x_draw_bar_cursor): Ditto.
14485
144861997-11-02 Gerd Moellmann <gerd@acm.org>
14487
14488 * dispnew.c (update_marginal_area): Update a marginal area.
14489 (update_text_area): Update text area.
14490 (update_window_line): Call both.
14491
14492 * xterm.c (XTclear_end_of_line): Translate coordinates area
14493 dependent.
14494
14495 * dispnew.c (updated_area): Row area being updated in
14496 update_window_line.
14497 (update_window_line): Set it.
14498 (update_marginal_area): Clear to end of line if not in text area.
14499
14500 * window.c (Fset_window_margins): Increment
14501 windows_or_buffer_changed. Adjust glyphs.
14502
14503 * dispextern.h (WINDOW_TEXT_TO_FRAME_PIXEL_X): Convert text
14504 area X coordinates to frame coordinates.
427ec082 14505 (WINDOW_DISPLAY_LEFT_AREA_PIXEL_WIDTH): Width of left marginal area.
26901792
DL
14506 (WINDOW_DISPLAY_RIGHT_AREA_PIXEL_WIDTH): Same for right area.
14507 (WINDOW_DISPLAY_TEXT_AREA_PIXEL_WIDTH): Same for text area.
14508
14509 * xterm.c (draw_glyphs): Use text area width as display width.
14510
14511 * xdisp.c (init_display_info): Subtract widths of marginal areas
14512 from last_visible_x.
14513
14514 * alloc.c (mark_object): Mark objects in glyphs only if they are
14515 overlays. Mark only if current_matrix != 0. Activate the code.
14516
14517 * window.c (Fset_window_margins): Set margins.
14518 (Fwindow_margins): Return margin area widths.
14519 (syms_of_window): Add defsubr's.
14520
14521 * window.h (struct window): left_margin_width, right_margin_width.
14522
14523 * xfns.c (x_set_trunc_area_width): Set truncation pixel width
14524 and cols.
14525
14526 * frame.h (FRAME_TRUNC_COLS): Number of columns occupied by
14527 truncation/overlay arrow area.
14528 (struct frame): trunc_area_pixel_width, and _cols.
14529
14530 * window.c (Fsplit_window): Use it.
14531
14532 * window.c (Fsplit_window): Set cursor vpos to -1 after
14533 splitting.
14534 (Fsplit_window): SUbtract/add FRAME_TRUNC_WIDTH for horizontally
14535 split windows.
14536
14537 * dispnew.c (set_window_cursor_after_update): Accept out
427ec082 14538 of bounds cursor positions.
26901792
DL
14539
14540 * xdisp.c (redisplay_internal): Check that after cursor motion
14541 within line, PT is on same line.
14542
14543 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Don't subtract
14544 FRAME_TRUNC_WIDTH.
14545
14546 * xterm.h (struct x_output): trunc_area_extra.
14547 (CHAR_TO_PIXEL_WIDTH): Add in trunc_area_extra.
14548 (PIXEL_TO_CHAR_WIDTH): Subtract it.
14549 * widget.c (set_frame_size): Set it.
14550 (EmacsFrameSetCharSize): Ditto.
14551 * xfns.c (x_figure_window_size): Ditto.
14552 * xterm.c (x_set_window_size): Ditto.
14553
14554 * dispnew.c (check_matrix_invariants): First try to check window
14555 ends (in #if 0).
14556
14557 * xdisp.c (try_window_reusing_current_matrix): Try window
14558 redisplay with different window start.
14559
145601997-11-01 Gerd Moellmann <gerd@acm.org>
14561
14562 * window.c (make_window): Set window_end_pos/vpos.
14563 (Fsplit_window): Zero last_cursor, window_end_valid.
14564 (Fset_window_buffer): Set window_end_vpos, zero last_cursor.
14565
14566 * dispnew.c (check_matrix_invariants): Check window_end_pos/vpos.
14567
145681997-10-31 Gerd Moellmann <gerd@acm.org>
14569
14570 * window.c (make_window): Initialize last_cursor.
14571 (replace_window): Ditto.
14572
145731997-10-29 Gerd Moellmann <gerd@acm.org>
14574
14575 * window.h: New member last_cursor.
14576 * dispnew.c (direct_output_for_insert): Set it.
14577 (direct_output_forward_char): Ditto.
14578 * xdisp.c (redisplay_internal): Ditto.
14579
145801997-10-28 Gerd Moellmann <gerd@acm.org>
14581
14582 * xdisp.c (redisplay_internal): Optimization 1 change partially
14583 reverted. Check this again later.
14584 (skip_via_matrix): Remove redundent test for
427ec082 14585 MATRIX_ROW_DISPLAYS_TEXT_P.
26901792
DL
14586
145871997-10-27 Gerd Moellmann <gerd@acm.org>
14588
14589 * dispnew.c (update_window_line): Call
14590 after_update_window_line_hook only for interesting constellations.
14591 (free_glyph_matrix): Fix memory leak.
14592
14593 * window.h: Include blocker WINDOW_H_INCLUDED, include
14594 dispextern.h.
14595 (struct window): phys_cursor_glyph as struct glyph. * window.c
14596 (make_window): Initialize it.
427ec082 14597 (replace_window): Ditto.
26901792
DL
14598 * dispnew.c (free_window_matrices): Remove freeing of
14599 phys_cursor_glyph.
14600 (check_matrix_invariants): Renamed from check_current_matrix_...
14601 * xterm.c: All references to phys_cursor_glyph changed.
14602
14603 * dispextern.h (DISPEXTERN_H_INCLUDED: New include blocker.
14604
14605 * xfaces.c: Comment update.
14606
14607 * window.h (struct window): Make phys_cursor_glyph a struct glyph
14608 pointer. Remove phys_cursor_ascent, descent, etc.
14609 * dispnew.c (free_window_matrices): Free it.
14610 * window.c (make_window): Allocate it.
14611 (replace_window): Ditto.
14612 * xterm.c (x_draw_phys_cursor_glyph): Draw it.
14613 (x_display_and_set_cursor): Fill it.
14614 (x_phys_cursor_in_rect_p): Use it.
14615 (x_draw_hollow_cursor): Ditto.
14616 (x_draw_bar_cursor): Ditto.
14617 (x_erase_phys_cursor): Ditto.
14618
14619 * xdisp.c (skip_in_display_line_to): Use SET_INFO_FROM_CURSOR.
14620
14621 * xterm.c (XTget_display_info): Handle 3D facess.
14622 (draw_glyphs): Ditto.
14623
14624 * xdisp.c (Fdump_redisplay_state): Change interactive spec to "p".
14625
14626 * xfaces.c (Fset_face_attribute_internal): New face attribute
14627 shadow-thickness.
14628 (copy_face): Handle shadow_thickness.
14629 (face_eql): Ditto.
14630 (merge_faces): Ditto.
14631 (compute_base_face): Ditto.
14632
14633 * dispextern.h (struct display_cursor): New member start_of_3d_run_p.
14634 (struct display_info): Ditto.
14635 (SET_INFO_FROM_CURSOR): Transfer it to display_info.
14636 * xdisp.c (compute_cursor_face): Set it.
14637 (advance_display_cursor): Clear it.
14638
14639 * xdisp.c (init_string_cursor): Initialize face_id to -1.
14640 (init_string_cursor): Init face_id to zero.
14641
14642 * dispextern.h (struct face): New member shadow_thickness.
14643
427ec082 14644 * xdisp.c (compute_cursor_face): Set limit for text property
26901792
DL
14645 search to 100.
14646
14647 * dispnew.c (update_window_line): Try to resynch with current line
14648 to prevent mode line flickering.
14649
146501997-10-26 Gerd Moellmann <gerd@acm.org>
14651
427ec082 14652 * dispnew.c (set_window_cursor_after_update): React again
26901792
DL
14653 on cursor_in_echo_area >= 0.
14654
14655 * xdisp.c (echo_area_display): Clear desired matrix before
14656 displaying into it.
14657 (display_menu_bar): Clear glyph row instead of hoping it is not
14658 enabled. This is safer.
14659
14660 * dispnew.c (check_current_matrix_invariants): Check only
14661 visible rows.
14662
14663 * xdisp.c (try_window_id): Handle window end setting in case of
14664 display to end of window, but only non-text lines displayed.
14665
14666 * dispnew.c (check_current_matrix_invariants): Check nrows for zero.
14667 (check_current_matrix_invariants): Check used counts.
14668
14669 * Revisiob v114.
14670
14671 * dispnew.c (scrolling): Use hash codes from rows.
14672
14673 * xdisp.c (Fdump_redisplay_state): Dump current matrix.
14674
14675 * dispnew.c (scrolling_window): Invalidate conflicting runs.
14676
146771997-10-25 Gerd Moellmann <gerd@acm.org>
14678
14679 * dispextern.h (struct glyph_matrix): Flag no_scrolling_p.
14680 * dispnew.c (update_window): Use it.
14681 (clear_glyph_matrix): Clear it.
14682 * xdisp.c (try_window_id): Set it.
14683
14684 * dispextern.h (struct glyph_row): New flag ends_at_zv_p.
14685
14686 * xdisp.c (redisplay_internal): Increment glyph positions differently.
14687
14688 * dispextern.h: More comments etc.
14689
146901997-10-24 Gerd Moellmann <gerd@acm.org>
14691
14692 * dispnew.c (set_window_cursor_after_update): Set cursor
14693 for cursor_in_echo_area == 0 to (0, 0).
14694
14695 * dispextern.h (struct glyph_row): New flags continuation_line_p
14696 and displays_text_p.
14697 (MATRIX_ROW_DISPLAYS_TEXT_P): Use displays_text_p.
14698 * xdisp.c (display_line): Set them.
14699 (try_window_id): Move to start of continuation line to find out
14700 continuation_line_width.
14701 (first_unchanged_current_row): Don't retract row if continued,
14702 truncated etc.
14703
14704 * xterm.c: Map X coordinates.
14705
147061997-10-23 Gerd Moellmann <gerd@acm.org>
14707
14708 * dispnew.c (buffer_posn_from_coords): Translate X for right to
14709 left text.
14710
14711 * xdisp.c (display_line): Set right_to_left_p after clearing the row.
14712
14713 * xterm.c (XTclear_end_of_line): Respect right_to_left_p.
14714
f28eba7b 14715 * xdisp.c (try_window_id): Clear desired matrix if not successul.
26901792
DL
14716
14717 * xdisp.c (try_window_id): Call update_window_begin_hook/end_hook.
14718
14719 * dispnew.c (update_window_begin_hook, update_winodw_end_hook):
14720 Set this to functions to be called before/after window updates.
14721 (direct_output_for_insert): Call them.
14722 (update_window): Ditto.
14723 (update_frame): Call update_begin/ update_end for windows.
14724
14725 * xterm.c (XTupdate_window_begin): Called before window updates.
14726 (XTupdate_end): Called after window updates.
14727 (x_initialize): Set hooks to above.
14728
14729 * xdisp.c (init_display_info): Initialize c and len of
14730 display_info.
14731
14732 * xterm.c (x_get_char_font_and_encoding): Bug fix. Don't load
14733 fonts more than once.
14734
147351997-10-22 Gerd Moellmann <gerd@acm.org>
14736
14737 * xdisp.c (display_line): Handle most common case of current_x <
14738 last_visible_x separately.
14739
14740 * dispextern.h (display_element_type): DISP_ELLIPSIS removed.
14741
14742 * dispnew.c (update_window_line): Compare pixel widths of glyphs
14743 so that face extending space doesn't compare equal to normal space
14744 with same face.
14745
14746 * xdisp.c (display_line): Make sure we have a position for
14747 a line end in an otherwise blank line if face is extended.
14748
14749 * dispnew.c (direct_output_for_insert): Increment row end position.
14750
427ec082 14751 * window.c (Fpos_visible_in_window_p): Use old meaning of
26901792
DL
14752 window_end_pos.
14753
14754 * xdisp.c (init_display_cursor_from_glyph_pos): New.
14755
14756 * dispextern.h (MATRIX_ROW_FIRST_POS): Use row start.
14757
14758 * dispnew.c (increment_glyph_row_buffer_positions): Adjust
14759 start and end positions in rows.
14760 (increment_glyph_row_buffer_positions): Stop adjusting at
14761 glyphs with positions <= 0.
14762
14763 * dispextern.h (struct glyph_pos): Structure desribing a text
427ec082 14764 position including position in overlay.
26901792
DL
14765 (struct glyph_row): Use it for start and end positions.
14766 (struct display_cursor): Use it.
14767 * xdisp.c: Use it.
14768 (display_line): Set row start and end positions.
14769
14770 * dispnew.c (copy_row_except_pointers): Use bcopy and struct
14771 assignment.
14772
147731997-10-21 Gerd Moellmann <gerd@acm.org>
14774
14775 * dispnew.c (update_window): Add scrolling_window again. It's
14776 necessary for scroll_step != 0.
14777
14778 * xdisp.c (redisplay_window): Use vmotion for scroll_step
14779 scrolling.
14780
14781 * xdisp.c (last_unchanged_current_row): Use window_end_vpos.
14782
14783 * xterm.c (XTupdate_end): Flush only for messages.
14784
14785 * xdisp.c (try_window_id): Assert last_unchanged_row >=
14786 first_unchanged_row.
14787
14788 * xterm.c (XTupdate_end): Flush if miniwindow.
14789
14790 * dispnew.c (matrix_row_last_pos): New function.
14791 * dispextern.h (MATRIX_ROW_LAST_POS): Call it.
427ec082 14792 Large comment moved to xdisp.c.
26901792
DL
14793
14794 * xdisp.c (redisplay_window): Bug fix: PT set to value > Z.
14795 (skip_via_matrix): Check window_end_valid instead of
14796 display_completed.
14797
14798 * dispnew.c (scroll_glyph_matrix_range): Bug fix.
14799 (update_window): scrolling_window commented out. It has negative
14800 effect most of the time.
14801
14802 * xdisp.c (try_window_id): Correct parameters to
14803 scroll_glyph_matrix_range.
14804
427ec082 14805 * xterm.c (XTupdate_end): XFlush commented out.
26901792
DL
14806
14807 * window.h: Comments for window_end_pos/vpos.
14808
f28eba7b 14809 * xdisp.c (skip_to): Assert current_buffer is the buffer
26901792
DL
14810 of the window in which we are skipping.
14811
14812 * dispnew.c (update_window_line): Optimized clear_end_of_line.
14813
14814 * xterm.c (draw_glyphs): Bug fix. Return window relative X
14815 reached.
14816
148171997-10-20 Gerd Moellmann <gerd@acm.org>
14818
14819 * dispextern.h (MATRIX_ROW_LAST_POS): Go back one glyph if this is
14820 a face extending glyph.
14821
427ec082 14822 * xdisp.c (try_window_id): Check if point will appear.
26901792
DL
14823 (set_cursor_from_row): Set cursor position from a glyph row.
14824
14825 * dispnew.c (update_window_line): Write entire line if hash
14826 codes of lines differ.
14827
14828 * dispextern.h (MATRIX_ROW_EXTENDS_FACE_P): Value is non-zero
14829 if glyph row has an infinite width glyph at its end.
14830
14831 * xdisp.c (last_unchanged_current_row): Respect partially visible
14832 lines when looking for the last row displaying text.
14833 (try_window_id): Handle partially visible lines better.
14834
148351997-10-19 Gerd Moellmann <gerd@acm.org>
14836
14837 * dispnew.c (update_window): Remove unused variable.
14838 (update_window_line): Simplified.
14839
14840 * xterm.c (x_get_char_font_and_encoding): Handle most common
14841 case at the beginning.
14842
14843 * xdisp.c (advance_display_cursor): Dispatch on method and
14844 order if statements by expected call frequency. Fixed unclosed
14845 comment.
14846
14847 * xdisp.c (try_window_id): New implementation.
14848
14849 * dispnew.c (increment_glyph_row_buffer_positions): Capture
14850 rows displaying a line end, only.
14851
148521997-10-18 Gerd Moellmann <gerd@acm.org>
14853
14854 * window.c (Fpos_visible_in_window_p): Remove use of window_end_vpos.
14855
148561997-10-14 Gerd Moellmann <gerd@acm.org>
14857
14858 * xdisp.c (display_line): Mark empty lines not corresponding to
14859 text with position -1.
14860
14861 * xterm.c (x_erase_phys_cursor): Don't bother to erase cursor if
14862 not within window matrix bounds.
14863
14864 * dispextern.h (struct display_cursor): New member REGION_SHOWING_P.
14865 (struct display_info): NGLYPHS_TO_IGNORE removed.
14866 * xdisp.c: References to NGLYPHS_TO_IGNORE removed.
14867 * term.c: Ditto.
14868 * xterm.c: Ditto.
14869
14870 * xdisp.c (init_display_cursor): Set it.
14871 (display_line): Use it to set W->REGION_SHOWING.
14872
14873 * xdisp.c (skip_via_matrix): Check for overlay arrow.
14874
14875 * region-cache.h: functino prototypes with PROTO.
14876
14877 * dispnew.c (buffer_posn_from_coords): Use -1 as skip position.
14878
14879 * xdisp.c (skip_via_matrix): Check for rows that don't contain
14880 a position.
14881
427ec082 14882 * xterm.c (XTmouse_position): Calculate LAST_MOUSE_GLYPH
26901792
DL
14883 rectangle based on minimum character bounds.
14884
f28eba7b 14885 * keyboard.c (make_lispy_event): Mouse clicks; don't do frame
26901792
DL
14886 glyph position calculations.
14887 (make_lispy_movement): Use buffer_posn_from_coords and window
14888 relative coordinates.
14889
14890 * xterm.c (construct_mouse_click): Remove #if 0 case.
14891
14892 * dispextern.h (MATRIX_ROW_BOTTOM_Y): Return bottom pixel y of
14893 given row.
14894
427ec082
SS
14895 * xdisp.c (skip_via_matrix): Skip using current matrix if up to
14896 date.
26901792
DL
14897 (skip_to): Use it.
14898 (redisplay_window): Remove code skipping using current matrix.
14899
149001997-10-13 Gerd Moellmann <gerd@acm.org>
14901
14902 * xdisp.c (redisplay_window): Use available current matrix to
14903 skip faster when only point is moved withing the window.
14904
427ec082 14905 * intervals.c: Include stdio.h.
26901792
DL
14906 (find_interval): Trace to stderr to catch some nasty error
14907 that did not yet occur again with tracing.
14908 (set_point): Ditto.
14909
14910 * dispnew.c (shift_glyph_matrix): Experimental code for handling
14911 cursor positioning on partially visible lines.
14912 (set_window_cursor_after_update): Ditto.
14913
f28eba7b 14914 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): Bug fix.
26901792
DL
14915
14916 * window.h (struct window): start_y removed.
14917
14918 * window.c (make_window): start_y removed.
14919 (replace_window): Ditto.
14920
427ec082 14921 * xdisp.c (last_max_ascent, last_max_descent): Ascent and
26901792
DL
14922 descent values of the last line processed by skip_to.
14923 (redisplay_window): Use them.
14924 (skip_to): Set them.
14925
14926 * dispextern.h (struct display_cursor): New member METHOD.
14927
14928 * xdisp.c: Use function member METHOD.
14929
14930 * xdisp.c (set_next_stop_pos): Determine next position at which to
14931 check for face properties, invisible text properties, and overlays.
14932 (compute_cursor_face): Use it.
14933 (get_overlays_for_cursor): Ditto.
14934 (reseat_cursor): Ditto.
14935 (next_display_element): Ditto.
14936
14937Sun Aug 24 08:50:52 1997 Gerd Moellmann <gerd@acm.org>
14938
14939 * termhooks.h: Some hooks with prototypes.
14940
14941 * term.c: Some hooks with function prototypes.
427ec082 14942
26901792
DL
14943 * xdisp.c (reseat_cursor): Additional argument force_p. Avoid
14944 computing face if possible.
14945
14946 * xdisp.c (next_display_element): Use face from glyph from display
14947 table only if != 0.
14948
14949 * emacs.c: FreeBSD headers for profiling removed.
14950
427ec082
SS
14951 * dispnew.c (direct_output_for_insert): Don't use PT-1 for
14952 display cursor, use DEC_POS instread.
26901792
DL
14953
14954 * xfaces.c (load_font): Use x_load_font to load fonts so that
427ec082 14955 all fonts are in the font table.
26901792
DL
14956 (unload_font): Don't XFreeFont.
14957
14958 * dispnew.c (row_equal_p): Compare ascent, descent and visible
14959 row height.
14960
14961 * xterm.c (draw_glyphs): Use 8-bit functions if possible.
14962 (x_erase_phys_cursor): Clear only visible part of row.
14963 (x_draw_bar_cursor): Set clipping.
14964 (x_draw_hollow_cursor): Ditto.
14965 (x_display_and_set_cursor): Remove clipping.
14966 (expose_window_tree): Take trunc border into account.
14967 (x_phys_cursor_in_rect_p): Test if phys_cursor intersects a rect.
14968 (expose_window): Use it.
14969
14970 * xdisp.c (display_string): Catch case that we are called with
d7d0dac0 14971 current_x already beyond max_x.
26901792
DL
14972 (global): Fix usage of FRAME_WINDOW_P <-> FRAME_WINDOW_REDISPLAY_P.
14973 (init_display_info): Subtract vertical border glyph from
d7d0dac0 14974 last_visible_x.
26901792
DL
14975
14976 * scroll.c (scrolling_window_1): Removed.
14977
14978 * dispnew.c (adjust_frame_glyphs): Split into two functions,
14979 based on redisplay method used.
14980 (adjust_frame_glyphs_for_frame_redisplay): Part for frame
14981 based redisplay.
14982 (adjust_frame_glyphs_for_window_redisplay): Part for purely
14983 window based redisplay.
14984
14985 * frame.h (FRAME_WINDOW_REDISPLAY_P): Changed to not depend
14986 on data structures.
14987
14988 * dispnew.c (adjust_glyph_matrix): Additional parameter W.
14989 Handle own storage for purely window based redisplay.
14990 (allocate_matrices_for_frame_redisplay): Formerly part of
427ec082 14991 allocate_matrices.
26901792
DL
14992 (allocate_matrices_for_window_redisplay): Ditto.
14993
14994 * dispextern.h (struct glyph_matrix): window_top_y,
14995 window_height.
14996
14997 * dispnew.c (allocate_matrices_for_window_redisplay): Detect
14998 and optimize some common cases of window changes.
14999
15000 * emacs.c (main): Remove own profiling code because 0.95 now
15001 has it in.
15002
15003Fri Aug 22 18:46:43 1997 Gerd Moellmann <gerd@acm.org>
15004
d7d0dac0 15005 * xterm.c (XTupdate_end): Draw horizontal border at right position.
26901792
DL
15006 (expose_window): Draw vertical border.
15007 (XTclear_end_of_line): Accept width <= 0 and height <= 0 but
15008 don't do anything.
15009
15010 * xdisp.c (redisplay_internal): Set update_mode_line if paused
15011 for non full width windows only if not window redisplay.
15012
15013 * dispnew.c (update_window_tree): Or paused_p return of called
15014 functions.
15015
15016 * xterm.c (x_display_and_set_cursor): Return if hpos/vpos outside
15017 of window.
15018
15019 * window.c (Fset_window_configuration): adjust_glyphs being
15020 called twice.
15021 (Fset_window_configuration): Set frame garbaged if not all
15022 leaf windows reused.
15023
150241997-08-21 Gerd Moellmann <gerd@acm.org>
15025
15026 * dispnew.c (clear_glyph_matrix): Additional argument specifiying
15027 that rows should really be cleared. Used for current matrices.
15028
d7d0dac0
SM
15029 * dispnew.c (scrolling_window): Bug fix.
15030 (line_dance_hook): Formerly line_dance_fn, take only one parameter.
26901792
DL
15031
15032 * dispextern.h (struct run): Remove current_vpos.
15033
15034 * xterm.c (do_line_dance): Only one parameter.
15035
f28eba7b 15036 * xdisp.c (display_line): Set continued_p.
26901792
DL
15037
15038 * dispextern.h (struct glyph_row): New flag continued_p.
15039 Fix truncated_on_left_p and truncated_on_right_p to be bits.
427ec082 15040 (struct glyph_row):
26901792
DL
15041
15042Thu Aug 21 14:37:34 1997 Gerd Moellmann <gerd@acm.org>
15043
15044 * xdisp.c (skip_vertically_backward): Avoid negative vpos values
15045 when calling skip_to for continued lines.
15046
15047 * dispnew.c (change_frame_size_1): Set frame garbaged.
15048
15049 * xterm.c (expose_window): Check enabled_p of rows.
15050
15051 * xdisp.c (redisplay_internal): Compare line heights before and
15052 now for redisplay optimization 2 (hit).
15053 (display_line): Set this_line_pixel_height.
15054
15055 * xterm.c (x_draw_row_borders): Use FRAME_MODE_LINE_HEIGHT height
15056 value.
15057 (x_clip_to_row): Use MATRIX_ROW_VISIBLE_HEIGHT. Simplified.
15058 (do_line_dance): Simplified and pixel corrected.
15059
15060 * dispnew.c (scrolling_window): Simplified.
15061
15062 * xterm.c (x_draw_3d_border): Inset rectangle by line width.
15063
15064 * dispnew.c (update_window): Add FRAME_MODE_LINE_BORDER_WIDTH
15065 to mode line row->x.
15066
15067Wed Aug 20 11:23:28 1997 Gerd Moellmann <gerd@acm.org>
15068
15069 * xterm.c (x_get_char_font_and_encoding): Don't let fontset
15070 override font of face.
15071 (draw_glyphs): Correct return value.
15072 (XTclear_end_of_line): Compare differently with output cursor
15073 position.
15074 (x_draw_hollow_cursor): 2 parameters, window and row.
15075
15076 * dispnew.c (update_window_line): If rows have different height
15077 or y, write entire line.
15078
f28eba7b 15079 * xdisp.c (compute_line_metrics): Reset max_ascent and max_descent
26901792
DL
15080 of info struct.
15081
427ec082 15082 * xfaces.c (Fset_face_attribute_internal): Don't call
26901792
DL
15083 frame_update_line_height.
15084 (merge_faces): Don't use default font if new font has different
15085 size.
15086
15087Tue Aug 19 14:38:05 1997 Gerd Moellmann <gerd@acm.org>
15088
15089 * xterm.c (x_display_and_set_cursor): Use FONT_WIDTH if width
d7d0dac0 15090 unknown. Some fonts have min_width zero.
26901792 15091 (draw_glyphs): Don't draw underlines to the end of the display
d7d0dac0 15092 line if face is merely extended to that point.
26901792 15093 (draw_glyphs): Don't assume background is filled if
d7d0dac0 15094 just_foreground_p but extending to end of line.
26901792
DL
15095
15096 * xterm.c (XTclear_end_of_line): Clip only to display_height - 1
15097 for partially visible last lines.
15098 (x_clip_to_row): Ditto.
15099 (x_clip_to_row): Clip to display_height-1 if y + line_height >
15100 display_height since line_height is really a line distance.
15101 (x_display_and_set_cursor): If cursor on padding glyph, use
15102 min_bounds pixel width.
15103
15104Mon Aug 18 09:39:18 1997 Gerd Moellmann <gerd@acm.org>
15105
15106 * xterm.c (x_clip_to_row): Height value was 1 too large.
15107 (XTclear_end_of_line): Clip to display area.
15108
15109 * xfns.c (x_figure_window_sizes): Add trunc border width
15110 to frame pixel width.
15111
15112 * xdisp.c (next_display_element): Don't display overlay strings
15113 within invisible text.
427ec082 15114 (skip_vertically_backward): Skip display lines.
26901792
DL
15115
15116Sat Aug 16 13:13:32 1997 Gerd Moellmann <gerd@acm.org>
15117
15118 * xdisp.c (x_consider_frame_titie): Don't pad with blanks.
15119
15120 * xdisp.c (next_display_element): Next invisible
15121 text check position computed differently.
15122
15123 * dispextern.h (struct display_cursor): last_invisible_text_pos
15124 and display_ellipsis_for_invisible_p removed.
15125
15126 * xdisp.c (next_display_element): Set last_invisible_text_pos
15127 to the last position at which invisible text was found. Don't
15128 decrement cursor.pos for newlines and cr with ellipsis. Set
427ec082 15129 dpvec for `...' due to invisible text directly.
26901792
DL
15130 (redisplay_internal): Don't assert that cursor is at PT after
15131 skip_to. It may be in invisible text.
15132
427ec082 15133 * keyboard.c (make_lispy_event): For mouse clicks, use
26901792
DL
15134 x_y_to_hpos_vpos.
15135
427ec082 15136 * xdisp.c (next_display_element): Call get_overlays_for_cursor when
26901792
DL
15137 next_overlay_pos is reached. Use limit cursor.pos + 100 when
15138 checking for invisible text.
15139
15140 * xterm.h (WINDOW_COL_PIXEL_X etc.) Removed.
15141
15142 * dispextern.h (WINDOW_TO_FRAME_HPOS/VPOS): Moved to dispnew.c
15143
d7d0dac0 15144 * xfns.c (x_contour_region): Use pixel coordinates from window
26901792
DL
15145 cursor instead of WINDOW_TO_FRAME_H/VPOS.
15146
15147 * dispextern.h (FRAME_TO_WINDOW_HPOS, FRAME_TO_WINDOW_VPOS):
15148 Removed.
15149
15150 * dispnew.c (frame_to_window_hpos, frame_to_window_vpos): Removed.
15151
15152 * xterm.c (x_y_to_hpos_vpos): Get hpos/vpos from window relative
15153 pixel coordinates.
15154 (note_mouse_highlight): Use it.
15155
15156 * xdisp.c (echo_area_display): Ignore calls for terminal frames
15157 under a window system.
15158
427ec082 15159 * dispnew.c (adjust_frame_glyphs): Call redraw_frame if
26901792 15160 necessary.
427ec082 15161 (update_window_line): Add width of face padding glyph to
26901792
DL
15162 displayed widths of rows.
15163
15164 * xterm.c (x_display_and_set_cursor): Set clipping after
15165 erasing cursor.
427ec082
SS
15166
15167 * window.c (Fset_window_configuration): Free only those
26901792
DL
15168 window matrices not reused.
15169 (get_leaf_windows): Build vector of leaf windows.
15170 Corrupted archive restored from v77.
15171
f28eba7b 15172 * xdisp.c (display_string): Stop at >= last_visible_x if truncating
26901792
DL
15173 like display_line does.
15174
15175 * xdisp.c (display_mode_line): Don't hscroll mode line.
15176
15177 * xterm.c (draw_glyphs): Wrong run_width computed for horiz. split
15178 windows.
15179 (x_scroll_bar_create): #3039 Clear area below scroll bar to remove
15180 garbage between mode lines when splitting windows horiz.
15181
15182 * dispnew.c (direct_output_for_insert): Bug fix.
15183
15184 * dispextern.h (struct display_cursor): New member string_length.
15185
15186 * xdisp.c (next_display_element): Return padding spaces.
f28eba7b 15187 (init_string_cursor): Take precision and field_width
26901792
DL
15188 (display_string): Use string cursor, skip over invisible text.
15189
15190Thu Aug 14 10:41:41 1997 Gerd Moellmann <gerd@acm.org>
15191
15192 * xterm.c (x_clip_to_row): Clip to partially visible lines.
15193 (x_display_and_set_cursor): Call it.
15194 (draw_glyphs): Call it
15195 (draw_bitmap): Call it.
15196
427ec082 15197 * dispnew.c (adjust_frame_glyphs): Optimize frame garbaging.
26901792
DL
15198 (allocate_leaf_matrix): Return flags.
15199 (row_equal_p): Compare enabled_p.
15200
15201 * xterm.c (x_erase_phys_cursor): Set phys_cursor_on_p to 0
15202 for type == -1.
15203
15204 * xterm.c (x_display_and_set_cursor): Bar cursor 1 pixel taller.
427ec082 15205 (draw_glyphs): Clip height one pixel taller.
26901792 15206
427ec082 15207 * dispnew.c (direct_output_for_insert): Give up for hscrolled
26901792
DL
15208 mini window.
15209
f28eba7b 15210 * xdisp.c (display_line): Don't scroll mini prompt.
26901792 15211
427ec082
SS
15212 * xdisp.c (echo_area_display): Call update_single_window if
15213 possible.
26901792
DL
15214
15215 * dispnew.c (update_window_line): Call scrolling_window.
f28eba7b 15216 (scrolling_window): Work on enabled desired lines only.
26901792
DL
15217 (update_single_window): Update a single window like update_frame
15218 does for all windows.
427ec082 15219 (update_window, update_window_tree): Additional argument
26901792
DL
15220 no_scrolling_p.
15221 (update_frame): Pass no_scrolling_p to update_window_tree.
15222 (update_window): Don't call scrolling_window if no_scrolling_p.
15223
15224 * xterm.c (x_erase_phys_cursor): Do nothing if type == -1.
427ec082
SS
15225 Erase under hollow cursor.
15226 (x_display_and_set_cursor): Do nothing if cursor glyph row
26901792
DL
15227 not enabled. Draw bar cursor 1 pixel smaller.
15228
f28eba7b 15229 * dispnew.c (adjust_frame_glyphs): Don't set frame garbaged
26901792
DL
15230 since update will follow soon.
15231
15232 * xdisp.c (echo_area_display): Unitialized variable.
15233
f28eba7b 15234 * xterm.c (draw_bitmap): Previously draw_truncation; draw
26901792
DL
15235 overlay arrow bitmap.
15236
f28eba7b 15237 * xdisp.c (display_line): For truncated lines, consider everything
427ec082 15238 up to the final \n as part of the line for cursor positioning.
26901792 15239
f28eba7b
SM
15240 * xterm.c (draw_truncation): Take FRAME_X_TRUNC_WIDTH into account.
15241 (x_after_update_window_line): Clear trunc marks.
26901792
DL
15242
15243 * xterm.h (FRAME_X_TRUNC_WIDTH).
15244
f28eba7b 15245 * frame.h (FRAME_TRUNC_WIDTH): Width of area at the left margin
26901792
DL
15246 of a window reserved for truncation mark.
15247
427ec082 15248 * dispextern.h: Take FRAME_TRUNC_WIDTH into account.
26901792
DL
15249
15250 * dispnew.c (update_window_line): Call after_update_windwo_line-
427ec082 15251 hook.
26901792
DL
15252
15253 * xdisp.c (display_line): Set overlay_arrow_p in row.
15254
15255 * dispextern.h (struct glyph_row): New flag overlay_arrow_p.
15256
15257 * xterm.c (x_after_update_window_line): Draw truncation marks.
15258
15259 * xdisp.c (display_line): Insert truncation for lines with
15260 current_x > 0.
15261
15262 * xterm.c (x_draw_row_borders): Convert y to frame coords.
15263 Correct y by 1.
15264 (x_display_cursor): Use default font width if width not
427ec082 15265 known.
26901792 15266
f28eba7b 15267 * xdisp.c (echo_area_display): Set row->y.
26901792
DL
15268
15269 * dispnew.c (set_window_cursor_after_update): Don't assume
15270 all rows are enabled.
15271
15272 * xdisp.c (skip_in_display_line_to): Test cursor.position instead
15273 of cursor.pos.
15274 (skip_in_display_line_to): Check cursor.position after call to
15275 next_display_element.
15276
427ec082 15277 * dispextern.h (CURSOR_AT_P): Test if cursor has reached
26901792
DL
15278 buffer position.
15279
15280 * xdisp.c (display_line): Set row->y here.
15281 (skip_in_display_line_to): Test for to_pos after all glyphs
15282 have been added to hpos so that hpos is at the end of all
15283 glyphs for to_pos.
15284 (start_display): Remove assertion.
15285
d7d0dac0 15286 * dispnew.c (direct_output_forward_char): Bug fix, = instead of ==.
26901792
DL
15287 (update_window): Don't set row->y here.
15288
15289 * xdisp.c (next_display_element): Don't translate control chars
15290 from display table entries.
15291
427ec082 15292 * dispnew.c (direct_output_for_insert): Set cursor before
26901792
DL
15293 update end to prevent cursor flickering. Revert changes to
15294 setting cursor.endpos.
15295
15296Wed Aug 13 10:46:12 1997 Gerd Moellmann <gerd@acm.org>
15297
15298 * dispnew.c (direct_output_for_insert): Don't set cursor.endpos
15299 to PT because this prevents multi-byte characters from being
15300 recognized.
15301
427ec082
SS
15302 * xdisp.c (skip_to, display_line): Advance cursor at end of
15303 truncated line.
26901792
DL
15304
15305 * xterm.c (x_draw_3d_borders): Use CapRound. Struct rect
15306 replaced by XRectangle.
15307
d7d0dac0 15308 * dispnew.c (scrolling_window): New method.
26901792
DL
15309
15310 * xterm.c (do_line_dance): New implementation, new method.
427ec082 15311
26901792
DL
15312 * xdisp.c (draw_glyphs): Draw truncation bitmaps. Clip to
15313 visible part of line.
15314
15315 * dispnew.c (update_window_line): Fill inverse video lines
15316 with infinite width space.
15317 (update_window): Handle completely empty matrices.
15318 (set_window_cursor_after_update): Bug fix.
15319
427ec082 15320 * xterm.c (draw_glyphs): Stop drawing at right window end.
26901792
DL
15321
15322 * dispnew.c (update_window_line): Don't ignore spaces, don't
15323 fill with spaces.
15324
15325 * xdisp.c (compute_line_metrics): Stop adding glyph widths with
15326 the first glyph having width 0.
15327
15328 * xterm.c (draw_glyphs): Let a glyph pixel with of 0 denote
427ec082 15329 a glyph that extends to the end of the line.
26901792
DL
15330
15331 * xdisp.c (display_line): Insert one padding glyph
15332
15333 * xdisp.c (skip_in_display_line_to): Don't subtract shift left
15334 amount from info.current_x.
15335 (display_line): Ditto.
15336
15337 * dispnew.c (direct_output_for_insert): Correct use of cursor.x.
15338 (change_frame_size_1): Correct cursor.x if frame gets too small.
15339 (update_window_line): Start at row->x.
15340
15341 * xdisp.c (redisplay_internal): Correct cursor.x (everwhere
15342 in xdisp.c).
15343
15344 * xterm.c (set_output_cursor): Use window relative X/Y.
15345 (global): Use window relative output cursor x/y.
15346 (draw_glyphs): Remove y param. Pass window relative x/y.
15347
15348 * dispnew.c (update_window): Start rows at start_y.
15349 (update_window): Don't try scrolling because it wouldn't work
15350 with variable height lines, anyway.
15351
15352 * dispextern.h (struct glyph_row): Remove shift_left_by,
15353 add x.
15354
15355 * window.h: (struct window): New member start_y.
15356
15357 * window.c (replace_window): Initialize start_y.
15358 (make_window): Ditto.
15359
15360Tue Aug 12 14:53:04 1997 Gerd Moellmann <gerd@acm.org>
15361
15362 * xterm.c (draw_glyphs): Clip rows that would paint over
427ec082 15363 the mode line.
26901792 15364
427ec082
SS
15365 * dispnew.c (update_window): Take mode line border into
15366 account.
26901792
DL
15367
15368 * xterm.h (FRAME_MODE_LINE_BORDER_WIDTH): Number of pixels
427ec082 15369 of border around mode line.
26901792
DL
15370
15371 * xterm.c (x_draw_row_borders): Bug fix.
15372 (x_erase_phys_cursor): Set pyhs_cursor.x/y before calling
15373 drawing functions.
15374
15375 * xterm.c (x_draw_row_border): Experimental; draw 3d borders
427ec082 15376 around modeline instead of inverting it.
26901792 15377
427ec082 15378 * xterm.c (glyph_to_pixel_coords): Use current matrix.
26901792
DL
15379
15380 * dispnew.c (buffer_posn_from_coords): Use SKIP_TO. Now takes
15381 window relative pixel coordinates as arguments.
15382
15383 * keyboard.c (make_lispy_event): Use BUFFER_POSN_FROM_COORDS
15384 with window relative pixel coordinates. Use GLYPH_TO_PIXEL_-
15385 COORDS mit new arguments.
15386
15387Mon Aug 11 12:32:34 1997 Gerd Moellmann <gerd@acm.org>
15388
15389 * xdisp.c (start_display): Use SKIP_TO instead of SKIP_IN-
427ec082 15390 DISPLAY_LINE.
26901792
DL
15391
15392 * keyboard.c (make_lispy_event): WINDOW_FROM_COORDINATES with
15393 pixel coords.
15394 (make_lispy_movement): Same.
15395
15396 * xterm.c (note_mouse_highlight): Use WINDOW_FROM_COORDINATES
15397 with new parameter meaning.
15398
15399 * window.c (Fcoordinates_in_window_p): Convert Lisp params
15400 from canon units to pixels.
15401 (coordinates_in_window): Pixel based.
15402 (Fcoordinates_in_window_p): Convert result pixel values back
15403 to canonical units.
15404
15405 * window.h: phys_cursor_ascent + descent instead of height.
15406
15407 * xterm.c (XTget_char_info): Use per char metrics for multi-byte
d7d0dac0 15408 chars with charset width 1.
26901792
DL
15409
15410 * dispnew.c (direct_output_for_insert): Set updated_row.
15411
15412Sat Aug 9 12:11:44 1997 Gerd Moellmann <gerd@acm.org>
15413
15414 * dispextern.h (struct glyph): Padding flag removed.
15415
15416Tue Aug 5 09:59:08 1997 Gerd Moellmann <gerd@acm.org>
15417
15418 * sysdep.c (reset_sys_modes): cursor_to with 4 params.
15419
15420 * keyboard.c (interrupt_signal): Cursor_to with 4 params.
15421
15422 * dispnew.c (update_window_line): Use pixels.
15423
15424 * xdisp.c (compute_line_metrics): Correct pixel_width by
15425 shift_left_by.
15426
15427 * dispextern.h (struct glyph_row): FIRST_SHIFTED_LEFT_GLYPH
427ec082 15428 removed. Remove references to it everywhere. Reverse_p in
26901792
DL
15429 glyph_row -> right_to_left_p. Change references to it.
15430
15431Mon Aug 4 18:09:27 1997 Gerd Moellmann <gerd@acm.org>
15432
15433 * dispnew.c (direct_output_for_insert): Use INSERT_GLYPHS.
15434
15435 * xterm.c (XTinsert_glyphs): Implement it.
15436
15437 * term.c (insert_glyphs): UPDATING_FRAME may be NULL in case
15438 of a call from DIRECT_OUTPUT_FOR_INSERT.
15439
15440 * window.h (struct cursor_pos): Keeps both matrix positions
15441 and pixel positions.
15442 (struct window): Use it.
15443
15444 * dispnew.c (direct_output_for_insert): New version.
15445
15446 * xdisp.c (redisplay_internal): Don't do anything if it has
15447 already be done directly.
15448
15449 * keyboard.c (command_loop_1): Call DIRECT_OUTPUT_FOR_INSERT
15450 for any character.
15451
15452Thu Jul 31 15:39:10 1997 Gerd Moellmann <gerd@acm.org>
15453
15454 * xdisp.c (echo_area_display): Use new DISPLAY_STRING.
15455
15456Wed Jul 30 12:18:03 1997 Gerd Moellmann <gerd@acm.org>
15457
15458 * dispextern.h (struct glyph_row): MAX_ASCENT, MAX_DESCENT.
15459 (struct glyph): ASCENT, DESCENT.
15460 (MATRIX_ROW_PIXEL_HEIGHT): Pixel height of row.
15461 (GLYPH_PIXEL_HEIGHT): Pixel height of glyph.
15462
15463 * xterm.c (XTget_display_info): Correct tab computation.
15464
15465 * term.c (get_display_info): Correct tab computation.
15466
15467 * dispextern.h (struct display_cursor): WHAT_FOUND, SOURCE_OBJECT.
15468 Renamed from CHAR_CURSOR.
15469
15470Tue Jul 29 12:52:40 1997 Gerd Moellmann <gerd@acm.org>
15471
15472 * xdisp.c (display_text_line): Mostly pixel oriented.
15473
15474 * dispextern.h (struct glyph): BOX_WIDTH -> PIXEL_WIDTH.
15475
15476 * term.c (append_intermediate_glyph): Generate padding glyphs.
15477
15478 * xdisp.c (display_text_line): More into final direction.
15479
15480 * xterm.c (XTget_char_info): Use WHAT field of CHAR_INFO.
15481 (XTget_char_info): Use tabs as multiples of spaces.
15482
15483 * term.c (get_char_info): Use WHAT field of CHAR_INFO.
15484 Use tabs as multiples of spaces.
15485
15486 * dispextern.h (struct char_info ): WHAT field.
15487
15488 * term.c (encode_terminal_code): Don't use GLYPH_CHAR, use
d7d0dac0 15489 FAST_GLYPH_CHAR instead because GLYPH_CHAR won't remove faces.
26901792
DL
15490
15491Mon Jul 28 14:23:06 1997 Gerd Moellmann <gerd@acm.org>
15492
15493 * dispnew.c (init_char_info): Correct TAB_WIDTH to a reasonable
15494 value.
15495 (init_char_info): Initialize with glyph row.
15496
15497 * term.c (get_char_info): Check WANT_ELLIPSIS_P.
15498
15499 * xterm.c (XTget_char_info): Check WANT_ELLIPSIS_P.
15500
15501 * dispextern.h (struct char_info ): GLYPH_ROW for intermediate
15502 glyphs.
15503
15504 * dispnew.c (init_char_info): Init GLYPH_ROW to NULL. CHAR_CURSOR
15505 moved to xdisp.c.
15506
15507 * xdisp.c (display_text_line): Use CHAR_CURSOR.
15508
15509 * xterm.c (x_append_intermediate_glyph): Intermediate glyph
15510 generation.
15511 (XTget_char_info): Ditto.
15512
15513 * term.c (get_char_info): Intermediate glyph generation.
15514 (append_intermediate_glyph): Ditto.
15515
15516Sun Jul 27 18:57:24 1997 Gerd Moellmann <gerd@acm.org>
15517
427ec082 15518 * dispnew.c (compute_char_cursor_face): Compute the face for a
26901792
DL
15519 CHAR_CURSOR.
15520 (init_char_cursor): Initialize a CHAR_CURSOR.
15521 (get_char_and_advance): Get next character to display.
15522
15523 * dispextern.h (struct char_cursor): Cursor for iterating over
15524 display text of CURRENT_BUFFER.
15525
15526Sat Jul 26 13:33:03 1997 Gerd Moellmann <gerd@acm.org>
15527
15528 * term.c (get_char_info): Set MAX_PIXEL_WIDTH in CHAR_INFO.
15529
15530 * dispextern.h (struct char_info ): Use LISP_CHAR_TABLE for DP.
15531 New member MAX_PIXEL_HEIGHT.
15532
15533 * xterm.c (x_per_char_metric): Get per character metrics.
15534 (XTget_char_info): More cases covered.
15535
15536 * term.c (get_char_and_info): Get next character and character
15537 display information.
15538 (get_char_info): Get character display information.
15539
15540 * dispextern.h: Character display information.
15541
427ec082 15542 * xterm.c (x_get_char_font_and_encoding): Get font and
26901792
DL
15543 encode character.
15544 (XTget_char_info): Get display information about a character.
15545
15546Wed Jul 23 16:50:18 1997 Gerd Moellmann <gerd@acm.org>
15547
15548 * dispextern.h (WINDOW_DISPLAY_MODE_LINE_HEIGHT): Height is
15549 zero if window is mini-window.
15550
15551 * xdisp.c: Include xterm.h or w32term.h for FRAME_LINE_HEIGHT.
15552 (try_window): DISPLAY_TEXT_LINE as long as Y < DISPLAY_HEIGHT.
15553
427ec082 15554 * dispnew.c (assign_row): Assign row pixel height.
26901792
DL
15555 (clear_glyph_row): Clear pixel height.
15556 (update_window): Use PIXEL_HEIGHT.
15557
15558 * xdisp.c (display_string): Set row pixel height temporarily.
15559 (display_text_line): Ditto.
15560
427ec082 15561 * dispextern.h (GLYPH_PIXEL_WIDTH):
26901792
DL
15562 (GLYPH_PIXEL_HEIGHT): Get glyph pixel dimension.
15563
427ec082 15564 * frame.h (FRAME_DEFAULT_PIXEL_LINE_HEIGHT): Get height of
26901792
DL
15565 line in default font.
15566 (FRAME_DEFAULT_GLYPH_PIXEL_WIDTH): Get width of character
15567 in default font.
15568 (FRAME_MODE_LINE_PIXEL_HEIGHT): Get height of mode line.
15569
15570 * xterm.h (FRAME_MODE_LINE_HEIGHT): Return height of mode line
15571 in pixels.
15572
15573 * dispnew.c (allocate_leaf_matrix): Use window pixel macros.
15574
15575 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH):
427ec082
SS
15576 (WINDOW_DISPLAY_PIXEL_HEIGHT):
15577 (WINDOW_DISPLAY_MODE_LINE_HEIGHT):
15578 (WINDOW_DISPLAY_PIXEL_HEIGHT_WITHOUT_MODE_LINE):
15579 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X):
15580 (WINDOW_DISPLAY_RIGHT_EDGE_PIXEL_X):
15581 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y):
26901792
DL
15582 (WINDOW_DISPLAY_BOTTOM_EDGE_PIXEL_Y): Macros to get various
15583 pixel values related to windows.
15584
15585Mon Jul 21 12:22:02 1997 Gerd Moellmann <gerd@acm.org>
15586
15587 * xterm.c (XTflash): Flash last line of frame.
15588
15589 * dispextern.h (cursor_in_echo_area): Extern declaration.
15590
15591 * xterm.c (dumpglyphs): 8-bit version to test if my Xserver
d7d0dac0 15592 freezes stem from 16-bit functions.
26901792
DL
15593
15594 * xterm.c (x_display_and_set_cursor): Don't display hollow
15595 cursor in mini windows.
15596
15597 * window.c (replace_window): Initialize PHYS_CURSOR_TYPE.
15598 (make_window): Ditto.
15599
15600 * xterm.c (x_erase_phys_cursor): Erase cursor image.
15601 (x_display_and_set_cursor): Merged version of X_DISPLAY_BOX_CURSOR
15602 and X_DISPLAY_BAR_CURSOR.
15603 (x_display_cursor): Use it.
15604 (x_update_window_cursor): Use it.
15605
15606 * xdisp.c (display_text_line): Set cursor for window even if not
d7d0dac0 15607 selected.
26901792
DL
15608
15609 * xterm.c (x_display_bar_cursor): Use HPOS and VPOS instead
15610 of X and Y to denote matrix positions.
15611 (x_display_cursor): Ditto.
15612
15613 * dispnew.c (scrolling_window): Scrolling for windows.
15614
15615Wed Jul 16 13:37:51 1997 Gerd Moellmann <gerd@acm.org>
15616
15617 * dispnew.c (build_frame_matrix): Work on windows with update
15618 flag set.
15619 (build_frame_matrix_from_window_tree): Ditto.
15620 (build_frame_matrix_from_leaf_window): Ditto.
15621
15622 * xdisp.c (echo_area_display): Set MUST_BE_UPDATED_P instead of
15623 building frame matrix.
427ec082 15624 (redisplay_internal): Set window update flags instead of
26901792
DL
15625 building frame matrix.
15626
15627 * minibuf.c (read_minibuf): Set MUST_BE_UPDATED_P instead of
15628 building frame matrix.
15629
15630 * window.c (make_window): Initialize new members.
15631 (replace_window): Ditto.
15632
15633 * xfns.c (Fx_create_frame): Don't set PHYS_CURSOR_X to -1.
15634 I don't believe this is really necessary.
15635
15636 * dispnew.c (build_frame_matrix_from_leaf_window): Determine
427ec082 15637 border glyph once.
26901792
DL
15638
15639Tue Jul 15 13:58:33 1997 Gerd Moellmann <gerd@acm.org>
15640
427ec082 15641 * window.c (mark_window_cursors_off): Mark all cursors in
26901792
DL
15642 window tree off.
15643
427ec082 15644 * xterm.c (x_display_box_cursor): Window paraemter. Use
26901792
DL
15645 window matrix.
15646 (glyph_to_pixel_pos): Convert matrix pos -> pixels.
15647 (pixel_to_glyph_pos): Convert pixel pos -> matrix pos.
15648 (x_update_cursor): Work on windows.
15649 (x_display_bar_cursor): Ditto.
15650 (x_draw_single_glyph): Ditto.
15651
15652 * xterm.h: Prototype for X_DISPLAY_CURSOR.
15653
15654 * xterm.c (XTcursor_to): Void return type. Test for
d7d0dac0 15655 UPDATED_WINDOW. Call x_display_cursor with window.
26901792 15656 (x_display_cursor): Void return type. Window instead of frame
d7d0dac0 15657 parameter.
26901792 15658
d7d0dac0 15659 * window.h (WINDOW_RIGHTMOST_P, WINDOW_TOPMOST_P): Use functions below.
26901792
DL
15660
15661 * window.c (window_rightmost_p, window_topmost_p): Based on
15662 window tree.
15663
15664 * dispnew.c (adjust_frame_message_buffer): Allocate with
d7d0dac0 15665 FRAME_MESSAGE_BUF_SIZE.
26901792
DL
15666
15667 * window.h: PHYS_CURSOR_.* added.
15668
15669 * frame.h (struct frame): Cursor information removed.
15670
15671 * frame.h (FRAME_SCROLL_BAR_WIDTH): Removed because unused.
15672 (FRAME_WINDOW_WIDTH_ARG): Don't add scroll bar width.
15673
15674 * window.h (WINDOW_LEFT_MARGIN): Remove FRAME_LEFT_SCROLL_BAR.
15675
15676 * window.c (window_internal_width): Scroll bars no longer
15677 part of window.
15678
d7d0dac0 15679 * xterm.c (XTclear_end_of_line): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
26901792 15680
d7d0dac0 15681 * xfns.c (x_set_scroll_bar_width): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
26901792
DL
15682
15683 * xdisp.c (echo_area_display): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
15684 (redisplay_internal): Ditto.
15685 (redisplay_window): Ditto.
15686 (redisplay_window): Ditto.
15687 (display_text_line): Ditto.
15688 (display_mode_line): Ditto.
15689
15690 * minibuf.c (read_minibuf): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
15691
15692 * dispnew.c (set_cursor_to): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
15693 (direct_output_for_insert): Ditto.
15694 (direct_output_forward_char): Ditto.
15695 (update_frame_1): Ditto.
15696
15697Mon Jul 14 12:30:03 1997 Gerd Moellmann <gerd@acm.org>
15698
15699 * dispnew.c (updated_window): Set by UPDATE_WINDOW to the window
d7d0dac0 15700 being updated.
26901792
DL
15701 (update_window): Set and clear it.
15702
15703 * dispnew.c (update_window_line, update_window, scrolling_window):
15704 First versions.
15705
15706 * dispnew.c (build_frame_matrix_from_leaf_window): Add vertical
15707 bar for window borders.
15708 (fill_up_glyph_row_area_with_spaces): Fill an area of a row
15709 with spaces.
15710 (fill_up_glyph_row_with_spaces): Call above function.
15711
15712 * xdisp.c (display_text_line): Don't add vertical bar for
15713 window borders.
15714 (display_string): Ditto.
15715
15716 * window.c (make_window): Init CURSOR_VPOS/HPOS.
15717 (replace_window): Ditto.
15718
15719 * xterm.c (XTwrite_glyphs): Use selected window cursor position.
15720
15721 * xfns.c (Fx_contour_region): Use selected window cursor position.
15722 (Fx_uncontour_region): Ditto.
15723 (Fx_select_region): Ditto.
15724
15725 * frame.c (make_frame): Remove CURSOR_X/Y.
15726
15727 * xdisp.c (redisplay_internal): Use window cursor position.
15728
15729 * dispnew.c (update_frame_1): Use cursor position of selected
15730 window.
15731 (change_frame_size_1): Ditto.
15732
15733 * xterm.c (XTupdate_begin): Set CURS_X/Y from selected window.
15734 (XTwrite_glyphs): Use cursor position of selected window.
15735
d7d0dac0 15736 * xfns.c (x_set_scroll_bar_width): Set cursor pos of selected window.
26901792
DL
15737
15738 * dispnew.c (set_cursor_to): Set window cursor position.
15739 (direct_output_for_insert): Use window cursor position.
15740 (init_display): Don't use frame cursor position.
15741
15742 * window.h: CURSOR_VPOS/HPOS added.
15743
15744 * frame.h (struct frame): CURSOR_X/Y removed.
15745 (FRAME_CURSOR_X): Removed.
15746 (FRAME_CURSOR_Y): Ditto.
15747
15748 * dispnew.c (direct_output_for_insert): LAST_POINT_X removed.
15749 (direct_output_forward_char): Ditto.
15750
d7d0dac0 15751 * xdisp.c (redisplay_internal): LAST_POINT_X and LAST_POINT_Y removed.
26901792
DL
15752
15753 * window.c (make_window): LAST_POINT_X and LAST_POINT_Y removed.
15754
15755 * window.h: LAST_POINT_X and LAST_POINT_Y removed.
15756
15757Sun Jul 13 14:18:24 1997 Gerd Moellmann <gerd@acm.org>
15758
15759 * xdisp.c: Bug fixes using SET_CURSOR with HPOS 0 instead
15760 of FRAME_LEFT_SCROLL_BAR_WIDTH.
15761
15762 * dispextern.h: Changed function names.
15763
15764 * dispnew.c (scrolling): Don't call SCROLLING_1 if WINDOW_SIZE
15765 < 2.
15766 (clear_window_matrices): Formerly two functions for desired
15767 and current matrix.
15768 (update_frame_1): Call CLEAR_DESIRED_MATRICES.
15769 (update_frame): Return return value from UPDATE_FRAME_1.
15770
15771Sat Jul 12 12:58:48 1997 Gerd Moellmann <gerd@acm.org>
15772
15773 * xdisp.c (try_window): Set WINDOW_END_VPOS with window relative
15774 LAST_TEXT_VPOS.
15775
15776 * frame.c (set_menu_bar_lines): Adjust matrices.
15777
15778 * dispnew.c (set_cursor_to): Set cursor position.
15779
15780 * minibuf.c (read_minibuf): Build frame matrix.
15781
15782 * xdisp.c (this_line_start_hpos): Renamed to
d7d0dac0
SM
15783 THIS_LINE_START_WINDOW_HPOS to make it clear that this is window
15784 relative.
26901792
DL
15785 (this_line_vpos): Renamed to THIS_LINE_WINDOW_VPOS for the same
15786 reason.
15787
427ec082 15788 * dispnew.c (build_frame_matrix): Don't clear rows of the
26901792
DL
15789 menu bar.
15790 (clear_window_records): Clear window rows.
15791 (clear_frame_records): Clear window and frame rows.
15792 (clear_glyph_matrix): Set all rows of a matrix to empty.
15793
d7d0dac0
SM
15794 * xdisp.c (echo_area_display): Parameter UPDATE_FRAME_P.
15795 Update frame if set.
26901792
DL
15796 (message2_nolog): Pass 1 to ECHO_AREA_DISPLAY. UPDATE_FRAME
15797 removed.
15798 (redisplay_internal): Pass 0 to ECHO_AREA_DISPLAY.
15799 (redisplay_internal): Build frame matrix before UPDATE_FRAME.
15800
15801 * dispnew.c (assign_row): Assign one glyph row to another.
15802 (mirrored_make_current): Use it.
15803 (mirror_make_current): Use it.
15804 (update_line): Rely on MIRRORED_MAKE_CURRENT to set flags and
15805 used counters for the current glyph row.
427ec082 15806
26901792
DL
15807
15808Fri Jul 11 13:16:50 1997 Gerd Moellmann <gerd@acm.org>
15809
15810 * lisp.h: Prototype for SCAN_BUFFER.
15811
15812 * xdisp.c (redisplay_windows): Simplified.
15813
15814 * dispnew.c (window_to_frame_vpos): Convert window to frame vpos
15815 with debug checks.
15816 (window_to_frame_hpos): Convert window to frame hpos with checks.
15817 (frame_to_window_vpos): Convert frame to window vpos with checks.
15818 (frame_to_window_hpos): Convert frame to window hpos with checks.
15819
15820 * dispextern.h: PRESERVE_OTHER_COLUMNS removed.
15821
15822 * dispnew.c: PRESERVE_OTHER_COLUMNS removed.
15823
15824 * xdisp.c (redisplay_internal): Another instance of
15825 DISPLAY_TEXT_LINE with window relative VPOS.
15826 (redisplay_internal): Remove PRESERVE_OTHER_COLUMNS.
15827
15828 * dispnew.c (init_desired_glyphs): Do it on window matrices,
15829 only.
15830
15831 * xdisp.c (try_window_id): Use CANCEL_WINDOW_LINE.
15832 (redisplay_internal): Ditto.
15833
15834 * dispnew.c (cancel_window_line): Use window matrix. Changed
15835 name to CANCEL_WINDOW_LINE.
15836
15837 * xdisp.c (try_window_id): Use DISPLAY_TEXT_LINE with window
15838 relative VPOS.
15839
427ec082
SS
15840 * dispextern.h (WINDOW_TO_FRAME_VPOS): Convert window vpos
15841 to frame vpos.
26901792
DL
15842 (WINDOW_TO_FRAME_HPOS): Convert window hpos to frame hpos.
15843 (FRAME_TO_WINDOW_VPOS): Convert frame vpos to window vpos.
15844 (FRAME_TO_WINDOW_HPOS): Convert frame hpos to window hpos.
15845
15846 * xdisp.c (try_window_id): Use ADJUST_WINDOW_CHARSTARTS with
15847 window relative VPOS.
15848 (redisplay_internal): Use ADJUST_WINDOW_CHARSTARTS with window
15849 relative VPOS.
15850
15851 * dispnew.c (adjust_window_charstarts): Use INCREMENT_GLYPH_-
15852 MATRIX_BUFFER_POSITIONS.
15853
15854 * xdisp.c (try_window_id): Use SCROLL_FULL_WIDTH_WINDOW.
15855
15856 * dispextern.h: Prototype for SCROLL_FULL_WIDTH_WINDOW.
15857
427ec082 15858 * dispnew.c (scroll_frame_lines): Make it work on window
26901792
DL
15859 matrix. Change name to scroll_full_width_window.
15860
15861 * xdisp.c (message2_nolog): Don't fwrite NULL message If
d7d0dac0 15862 NONINTERACTIVE.
26901792
DL
15863
15864Mon Jul 7 14:44:38 1997 Gerd Moellmann <gerd@acm.org>
15865
15866 * dispnew.c (init_desired_glyphs): Clear both frame matrix
427ec082 15867 and window matrices.
26901792
DL
15868 (adjust_window_charstarts): Use window matrix.
15869 (cancel_my_columns): Use window matrix.
15870 (direct_output_for_insert): Use window matrix, only.
15871
15872 * xdisp.c (display_glyphs): Extracted code from DISPLAY_STRING.
15873 (display_string): Call display_glyphs.
15874 (display_menu_bar_string): Display a string in a menu bar line.
15875 (display_menu_bar): Use DISPLAY_MENU_BAR_STRING.
15876 (display_text_line): Use window matrix.
15877 (try_window): Use window relative positions.
15878
15879Sun Jul 6 17:02:26 1997 Gerd Moellmann <gerd@acm.org>
15880
15881 * dispnew.c (adjust_frame_glyphs): Allocate window matrices from
d7d0dac0 15882 (0, 0).
26901792 15883 (allocate_leaf_matrix): Add FRAME_MENU_BAR_LINES to the height of
d7d0dac0 15884 top-most windows.
26901792
DL
15885
15886 * window.h (WINDOW_TOPMOST_P): Added.
15887
15888 * xdisp.c (echo_area_display): Use PREPARE_DESIRED_ROW.
15889 (redisplay_window): Ditto.
15890 (display_text_line): Ditto.
15891 (display_menu_bar): Ditto.
15892 (display_mode_line): Ditto.
15893 (display_mode_line): Use window matrix.
15894 (display_string): Use window matrix.
15895 (display_mode_element): Ditto.
15896 (echo_area_display): Don't display if frame has no pools yet.
15897 (echo_area_display): Work with window matrix for mini window.
15898 (redisplay_window): Use window marix for mini window.
15899 (display_text_line): Assume HPOS and VPOS are window relative and
d7d0dac0 15900 use that for DISPLAY_STRING.
26901792
DL
15901
15902 * dispextern.h: Prototype for prepare_desired_row.
15903
d7d0dac0 15904 * dispnew.c (prepare_desired_row): Replacement for GET_DISPLAY_LINE.
26901792
DL
15905
15906 * dispnew.c (adjust_window_charstarts): Always allocate window
15907 matrices.
15908 (clear_glyph_row): Only reset used counters and flags.
15909
15910Sat Jul 5 14:55:44 1997 Gerd Moellmann <gerd@acm.org>
15911
15912 * dispnew.c (scroll_frame_lines): Don't assume first scolled
427ec082 15913 line is non-empty.
26901792
DL
15914 (realloc_glyph_pool): Don't add 1 to the pool size.
15915 (adjust_glyph_matrix): Don't add 1 to pointers to glyph areas.
15916
15917 * dispnew.c (line_hash_code): Don't use null-glyph end marker.
15918 (line_draw_cost): Ditto.
15919 (update_line): Ditto.
15920 (update_line): Use SPACE_GLYPH.
15921 (count_blanks): Additional parameter LEN.
15922
15923 * xdisp.c (display_text_line): Use SPACE_GLYPH.
15924 (display_text_line): Don't add null-glyph end marker.
15925 (display_string): Use SPACE_GLYPH.
15926 (display_string): Don't use null-glyph end marker.
15927
15928 * term.c (clear_end_of_line): Use SPACE_GLYPH.
15929
15930 * dispnew.c (clear_glyph_row): Don't use null-glyph end markers.
15931 (fill_up_glyph_row_with_spaces): Ditto.
15932 (preserve_other_columns): Add SPACE_GLYPH at then end of desired
15933 rows, instead of null-glyphs.
15934 (direct_output_for_insert): Don't add null-glyph end marker.
15935
15936 * scroll.c (do_direct_scrolling): Change algorithm to construct
d7d0dac0 15937 vector of lines assigned. Call MIRRORED_LINE_DANCE:
26901792
DL
15938 (do_scrolling): Ditto.
15939
15940 * dispnew.c (mirror_line_dance): Mirror line assignments in a
d7d0dac0 15941 frame matrix in window matrices.
26901792 15942 (mirrored_line_dance): Do line assignments during scrolling.
d7d0dac0 15943 Maybe do corresponding assignments in window matrices.
26901792 15944 (check_window_matrix_pointers): Check that window rows and frame
d7d0dac0 15945 rows agree about glyph pointers.
26901792
DL
15946 (check_matrix_pointers): Ditto.
15947 (mirrored_make_current): Make a row of a desired matrix current;
d7d0dac0 15948 maybe mirror the operation in window matrices.
26901792 15949 (mirror_make_current): Make window desired matrix row current when
d7d0dac0 15950 frame matrix row was made current.
26901792
DL
15951
15952Fri Jul 4 13:27:46 1997 Gerd Moellmann <gerd@acm.org>
15953
15954 * dispnew.c (check_matrix_pointer_lossage): Check against
15955 pointer lossage in matrices.
15956 (get_glyph_matrix_row): Removed.
15957
15958 * scroll.c (do_scrolling): Simplified.
15959 (do_direct_scrolling): Simplified.
15960 (scrolling_1): Pass CURRENT_MATRIX instead of FRAME to
d7d0dac0 15961 DO_.*SCROLLING.
427ec082 15962
26901792
DL
15963
15964 * dispnew.c (ins_del_glyph_rows): Insert/delete rows in a matrix.
15965 (rotate_vector): Removed.
15966 (rotate_pointers): Removed.
15967 (scroll_frame_lines): Simplified.
15968
15969Thu Jul 3 13:54:21 1997 Gerd Moellmann <gerd@acm.org>
15970
15971 * dispextern.h (MATRIX_ROW_SWAP_CONTENTS): Removed.
15972
15973 * dispnew.c (increment_glyph_matrix_buffer_positions): Does
15974 what the name says.
15975 (clear_glyph_row): Make a glyph row structure empty.
15976 (make_matrix_row_current): Make a glyph row current.
15977 (make_window_matrix_row_current): Perform analogous row swaps
15978 for window matrices.
15979 (update_line): Call make_matrix_row_current.
15980
15981Wed Jul 2 13:43:35 1997 Gerd Moellmann <gerd@acm.org>
15982
15983 * dispextern.h (SET_MATRIX_ROW_ENABLED_P): Better macro name.
15984 (SET_MATRIX_ROW_INVERSE_P): Better name and HIGHLIGHT_P ->
15985 INVERSE_P.
15986 (MATRIX_ROW_INVERSE_P): Former MATRIX_ROW_HIGHLIGHT_P.
15987 (struct glyph_row): HIGHLIGHT_P -> INVERSE_P
15988
15989 * all files: use above new names.
15990
15991 * dispnew.c (scroll_frame_lines): Simplified. Use
d7d0dac0 15992 SCROLL_GLYPH_MATRIX.
26901792 15993 (make_glyph_row_empty): Mark a glyph row empty.
427ec082 15994 (increment_glyph_row_buffer_positions): Increment
26901792
DL
15995 buffer positions in a glyph row.
15996 (increment_glyph_matrix_buffer_positions): Increment buffer
15997 positions in a range of rows.
15998 (scroll_glyph_matrix): Scroll a glyph matrix.
15999 (swap_glyphs_in_rows): Swap glyphs between rows.
16000 (swap_glyph_pointers): Swap pointers between rows.
16001 (glyph_row_slice_p): Return 1 if one row is a slice of another.
16002 (init_display): Initialize SPACE_GLYPH.
16003 (fill_up_glyph_row_areas_with_spaces): Fill up areas with
427ec082 16004 spaces.
26901792
DL
16005
16006Tue Jul 1 13:49:55 1997 Gerd Moellmann <gerd@acm.org>
16007
16008 * xterm.c (dumprectangle): Use vectors in glyph rows.
16009
16010 * xdisp.c (display_text_line): Use vectors in glyph rows.
16011 (display_string): Ditto.
16012
16013 * scroll.c (do_scrolling): Use vectors in glyph rows.
16014 (do_direct_scrolling): Ditto.
16015
16016 * alloc.c (mark_object): Use vectors in glyph rows.
16017 Mark for all frame types.
16018
16019 * dispnew.c (adjust_glyph_matrix): Use vectors to glyphs in
16020 glyph rows.
16021 (get_glyph_matrix_row): Ditto.
16022 (matrix_row): Ditto.
16023 (rotate_pointers): Ditto.
16024 (scroll_frame_lines): Ditto.
16025 (preserve_other_columns): Ditto.
16026 (cancel_my_columns): Ditto.
16027 (update_line): Ditto.
16028 (direct_output_for_insert): Ditto.
16029
16030 * dispextern.h (struct glyph_row): Use a vector of pointers
d7d0dac0 16031 instead of individual members. Use a vector of used counters.
26901792
DL
16032 (MATRIX_ROW_SWAP_CONTENTS): Use vectors.
16033 (MATRIX_ROW_GLYPH_START): Ditto.
16034 (MATRIX_ROW_GLYPH_END): Ditto.
16035 (MATRIX_ROW_USED): Ditto.
16036 (MATRIX_ROW_SET_USED): Ditto.
16037
16038 * dispnew.c (line_hash_code): Simplified.
16039
16040Mon Jun 30 20:39:38 1997 Gerd Moellmann <gerd@acm.org>
16041
16042 * dispnew.c: Prototype for ROTATE_VECTOR, ROTATE_POINTERS,
16043 CHANGE_FRAME_SIZE_1
16044 (preserve_other_columns): Void return.
16045 (cancel_my_columns): Void return type.
16046 (scrolling): Int return type.
16047 (do_pending_window_change): Void return type.
16048 (change_frame_size): Ditto.
16049 (bitch_at_user): Ditto.
16050 (init_display): Ditto.
16051 (syms_of_display): Ditto.
16052
16053 * dispextern.h: add prototypes for REDRAW_FRAME,
d7d0dac0
SM
16054 REDRAW_GARBAGED_FRAMES, CANCEL_LINE, CLEAR_FRAME_RECORDS,
16055 INIT_DESIRED_GLYPHS, SCROLL_FRAME_LINES, PRESERVE_OTHER_COLUMNS,
16056 ADJUST_WINDOW_CHARSTARTS, CANCEL_MY_COLUMNS,
16057 DIRECT_OUTPUT_FOR_INSERT, DIRECT_OUTPUT_FORWARD_CHAR,
16058 UPDATE_FRAME, SCROLLING, BUFFER_POSN_FROM_COORDS,
16059 DO_PENDING_WINDOW_CHANGE, CHANGE_FRAME_SIZE, BITCH_AT_USER,
26901792 16060 SIT_FOR, INIT_DISPLAY, SYMS_OF_DISPLAY,
427ec082 16061
26901792 16062 * dispnew.c (redraw_frame): FRAME_PTR -> struct frame. Return
d7d0dac0 16063 void.
26901792
DL
16064 (cancel_line): Return void.
16065 (clear_frame_records): Return void.
427ec082 16066
26901792
DL
16067 * dispextern.h (struct glyph): Remove GLYPH, add bit-fields.
16068 (SET_CHAR_GLYPH): Fill a character glyph.
16069 (SET_CHAR_GLYPH_FROM_GLYPH): Set a character glyph from a GLYPH.
16070 (GLYPH_FROM_CHAR_GLYPH): Construct a GLYPH from a character
427ec082 16071 glyph.
26901792
DL
16072 (CHAR_GLYPH_CHAR_CODE): Return character code of a glyph.
16073 (SET_CHAR_GLYPH_CHAR_CODE): Set character code of a glyph.
16074 (CHAR_GLYPH_FACE_ID): Return face id of a glyph.
16075 (SET_CHAR_GLYPH_FACE_ID): Set face id of a glyph.
16076 (CHAR_GLYPH_PADDING_P): Return padding flag of a glyph.
16077 (SET_CHAR_GLYPH_PADDING_P): Set padding flag.
16078 (CHAR_GLYPH_REVERSE_P): Return reversed flag.
16079 (SET_CHAR_GLYPH_REVERSE_P): Set reversed flag.
16080 (MATRIX_ROW_SWAP_CONTENTS): Swap pointers between rows.
16081
16082 * term.c (reassert_line_highlight): Check CHARS_WASTED == 0.
16083
16084 * window.h (struct window): Add comment that no Lisp data may
d7d0dac0 16085 come below CURRENT_MATRIX.
26901792
DL
16086
16087 * alloc.c (mark_object): Change window mark code to stop with
d7d0dac0 16088 member CURRENT_MATRIX.
26901792
DL
16089
16090Sat Jun 28 13:54:55 1997 Gerd Moellmann <gerd@acm.org>
16091
16092 * scroll.c (do_scrolling): Change algorithm to use pointers.
16093 (do_direct_scrolling): Ditto.
16094
16095 * dispnew.c (get_glyph_matrix_row): Use pointers stored in rows.
16096 (new_glyph_pool): Formerly new_FRAME_GLYPH_MATRIX.
16097 (free_glyph_pool): Formerly FREE_FRAME_GLYPH_MATRIX
16098 (realloc_glyph_pool): Formerly REALLOC_FRAME_GLYPH_MATRIX.
d7d0dac0 16099 Returns 1 if pool changed.
26901792
DL
16100 (matrix_row): Additional check for lost pointers to glyph rows.
16101 (compute_matrices): Additional parameter DIM_P set means that no
d7d0dac0
SM
16102 allocation should take place. Addtional parameter
16103 ANY_WINDOWS_CHANGED_P set if any windows matrix has changed.
26901792 16104 (compute_leaf_matrix): Additional parameter CHANGED_P set to 1
d7d0dac0
SM
16105 when window matrix changes. Additional parameter DIM_ONLY_P set
16106 to 1 to indicate that no allocation should take place.
26901792 16107 (adjust_frame_glyphs): Construct new glyph pools and glyph
d7d0dac0 16108 matrices. Optimize frame redraws.
26901792
DL
16109 (free_glyphs): Free pools.
16110 (check_glyph_memory): Check pools not freed.
16111 (rotate_pointers): Rotate pointers in a vector of glyph rows.
16112 (scroll_frame_lines): Change algorithm to use pointers.
16113 (update_line): Ditto.
16114
16115 * dispextern.h (struct glyph_row): Use pointers to areas in a row.
16116 (global): All macro names changed from prefix FRAME_MATRIX to
d7d0dac0 16117 MATRIX.
26901792
DL
16118
16119Fri Jun 27 14:51:15 1997 Gerd Moellmann <gerd@acm.org>
16120
16121 * dispextern.h (struct glyph_pool): Replacement for former
16122 FRAME_GLYPH_MATRIX.
16123 (struct glyph_matrix): No longer contains sizes of allocated
16124 areas.
16125
16126 * xdisp.c (redisplay_internal): Don't redisplay if frame has
16127 no glyph pools.
16128
16129 * frame.c (make_frame): Initialize pools.
16130
16131Thu Jun 26 00:00:55 1997 Gerd Moellmann <gerd@acm.org>
16132
427ec082 16133 * scroll.c (do_direct_scrolling): Don't assume that the
26901792
DL
16134 line moving algorithm has no intermediate steps.
16135 (do_scrolling): Ditto.
16136
16137 * Makefile.in (alloc.o): Add dependency dispextern.h.
16138
16139 * alloc.c: Include dispextern.h for glyph definitions.
16140
16141 * dispnew.c (get_glyph_matrix_row): Return 1 if ROW_INDEX
16142 is legal, return 0 otherwise.
16143
16144 * window.h: Add comment that windows are marked specially.
16145
16146 * alloc.c (mark_object): Mark windows specially.
16147
16148
16149Wed Jun 25 15:22:58 1997 Gerd Moellmann <gerd@acm.org>
16150
16151 * dispextern.h (struct glyph): Add member OBJECT
16152 referencing a Lisp object from which a glyph was drawn.
16153 Member TEXT_POSITION renamed POSITION.
16154 * xterm.c, xdisp.c, dispnew.c: Rename TEXT_POSITION -> POSITION.
16155
16156 * alloc.c: Include dispextern.h
16157 (mark_object): Mark objects referenced from glyphs.
16158
f28eba7b 16159 * frame.c (make_frame): Initialize DECODE_MODE_SPEC_BUFFER.
26901792
DL
16160
16161 * scroll.c (do_direct_scrolling): Remove TEMP_MATRIX.
16162 (do_scrolling): Ditto.
16163
427ec082 16164 * frame.h (struct frame): TEMP_MATRIX removed.
26901792
DL
16165 DECODE_MODE_SPEC_BUFFER added.
16166
16167 * window.h: TEMP_MATRIX removed.
16168
16169 * scroll.c: OPHYS_LINES removed.
16170
16171 * dispnew.c: OPHYS_LINES and OPHYS_LINES_LENGTH removed.
16172 FRAME_PTR -> struct frame *.
16173
16174 * termhooks.h: Prototypes for INSERT_GLYPHS_HOOK,
16175 WRITE_GLYPHS_HOOK, DELETE_GLYPHS_HOOK,
16176
16177 * term.c: Prototypes for INSERT_GLYPHS_HOOK,
16178 WRITE_GLYPHS_HOOK, DELETE_GLYPHS_HOOK,
16179
16180 * xdisp.c (redisplay_internal): Remove call to VERIFY_CHARSTARTS.
16181 (do_verify_charstarts): Removed.
16182
16183 * frame.c (Fmake_terminal_frame): Adjust glyphs.
16184 (Fdelete_frame): Free glyphs.
16185 (make_frame): Initialize matrix fields in frame.
16186
f28eba7b 16187 * config.in (PROTO): Added.
26901792 16188
f28eba7b 16189 * emacs.c (shut_down_emacs): Check glyph memory.
26901792
DL
16190
16191 * window.c (Fdelete_window): Free window matrices.
16192 (Fset_window_configuration): Ditto.
16193 (Fdelete_window): Adjust glyphs.
16194 (Fsplit_window): Ditto.
16195 (change_window_height): Ditto.
16196 (Fset_window_configuration): Ditto.
16197 (make_window): Initialize DESIRED_MATRIX and CURRENT_MATRIX.
16198 (replace_window): Reset DESIRED_MATRIX and CURRENT_MATRIX
16199
16200 * Makefile.in (window.o): Add dependency window.c -> dispextern.h
16201
16202 * window.c: Include dispextern.h
16203
16204 * scroll.c (do_scrolling): Use new glyphs.
16205 (do_direct_scrolling): Ditto.
16206
16207 * xdisp.c: Some function prototypes.
16208 (redisplay_internal): Don't do anything if matrices not yet set.
16209 (redisplay_internal): Use new glyphs.
16210 (try_window_id): Ditto.
16211 (copy_part_of_rope): Ditto.
16212 (display_text_line): Ditto.
16213 (display_menu_bar): Ditto.
16214 (display_mode_line): Ditto.
16215 (display_string): Ditto.
16216
16217 * xterm.c: Prototypes for some local functions.
16218 (dumpglyphs): Use new glyphs.
16219 (XTwrite_glyphs): Ditto.
16220 (dumprectangle): Ditto.
16221 (note_mouse_highlight): Ditto.
16222 (fast_find_position): Ditto.
16223 (show_mouse_face): Ditto.
16224 (x_draw_single_glyph): Ditto.
16225 (x_display_bar_cursor): Ditto.
16226 (x_display_box_cursor): Ditto.
16227 (x_new_font): Adjust glyphs when font change.
16228
16229 * term.c (clear_end_of_line): Use new glyphs.
16230 (write_glyphs): Ditto.
16231 (insert_glyphs): Ditto.
16232
16233 * Makefile.in (term.o): term.c depends on dispextern.h
16234
16235 * term.c: Include dispextern.h
16236
16237 * dispnew.c (direct_output_forward_char): Old glyph functions
427ec082 16238 removed, new inserted.
26901792
DL
16239 (line_hash_code): Use new glyphs.
16240 (line_draw_cost): Ditto
16241 (cancel_line): Ditto
16242 (clear_frame_records): Ditto.
16243 (init_desired_glyphs): Ditto.
16244 (get_display_line): Ditto
16245 (scroll_frame_lines): Ditto.
16246 (preserve_other_columns): Ditto.
16247 (adjust_window_charstarts): Ditto.
16248 (cancel_my_columns): Ditto.
16249 (direct_output_for_insert): Ditto.
16250 (update_frame): Ditto.
16251 (quit_error_check): Made empty.
16252 (scrolling): Use new glyphs.
16253 (count_blanks): Ditto.
16254 (count_match): Ditto.
16255 (update_line): Ditto.
16256 (init_display): Adjust glyphs initially.
16257 (change_frame_size_1): Adjust glyphs.
16258
16259 * dispextern.h: Old glyphs removed, new added.
16260
16261 * xfaces.c (min_char_bounds): Get smallest char in loaded fonts.
16262
16263 * xterm.h: Prototype for min_char_bounds.
16264
16265 * window.h (struct window): Remove old glyphs, add new.
16266
16267 * frame.h (struct frame): Remove old glyphs, add new.
427ec082 16268
26901792
DL
162691999-07-20 Dave Love <fx@gnu.org>
16270
16271 * buffer.c (syms_of_buffer): Make
16272 default-enable-multibyte-characters a user variable.
16273
162741999-07-14 Richard Stallman <rms@gnu.org>
16275
16276 * Version 20.4 released.
16277
162781999-07-14 Richard Stallman <rms@gnu.org>
16279
16280 * filelock.c (lock_file): Do nothing if purifying.
16281
162821999-07-10 Richard Stallman <rms@gnu.org>
16283
16284 * xterm.c (x_display_bar_cursor): Use the cursor-color
16285 to display the bar, not the cursor foreground pixel.
16286
162871999-07-09 Andrew Innes <andrewi@gnu.org>
16288
16289 * w32console.c (w32_use_full_screen_buffer): New variable.
16290 (syms_of_ntterm): Register it.
16291 (initialize_w32_display): Set initial frame size accordingly,
16292 respecting the LINES and COLUMNS environment variables if set.
16293
16294 * w32inevt.c (w32_console_read_socket): Use it.
16295
162961999-07-07 Kenichi Handa <handa@etl.go.jp>
16297
16298 * callproc.c (Fcall_process): Decide coding system for decoding
16299 after we set to the target buffer. If the output goes to a
16300 unibyte buffer, suppress character code conversion.
16301
16302 * fileio.c (Finsert_file_contents): If reading into a unibyte
16303 buffer, suppress character code conversion.
16304
16305 * process.c (create_process): If the output goes to a unibyte
16306 buffer, suppress character code conversion.p
16307
163081999-07-07 Andreas Schwab <schwab@gnu.org>
16309
16310 * xdisp.c (line-number-display-limit): Doc fix.
16311
163121999-07-05 Richard Stallman <rms@gnu.org>
16313
16314 * callproc.c (Fcall_process): Don't use initializer on coding_systems.
16315 (Fcall_process_region): Likewise.
16316
163171999-07-01 Markus Rost <markus.rost@mathematik.uni-regensburg.de>
16318
16319 * callproc.c (init_callproc): Set exec_directory if
16320 installation_directory is non-nil, without a test of exec_path.
16321
163221999-07-01 Andrew Innes <andrewi@gnu.org>
16323
16324 * w32xfns.c (drain_message_queue): New function.
16325
16326 * w32term.h (drain_message_queue): Add extern.
16327
16328 * w32proc.c (sys_select): Call MsgWaitForMultipleObjects instead
16329 of WaitForMultipleObjects when user input is allowed, so we can
16330 handle incoming window messages. Call drain_message_queue when
16331 there are messages waiting; this ensures that windows created
16332 indirectly from the lisp thread get processed properly, and don't
16333 hang other applications by failing to respond to broadcasts.
16334
163351999-07-01 Andreas Schwab <schwab@gnu.org>
16336
16337 * callint.c (Fcall_interactively): Ignore first element of
16338 event-symbol-elements property.
16339
163401999-07-01 Richard Stallman <rms@gnu.org>
16341
16342 * fileio.c (Fread_file_name): Check type of DEFAULT_FILENAME.
16343
163441999-07-01 Kenichi Handa <handa@etl.go.jp>
16345
16346 * minibuf.c (read_minibuf): Set the multibyteness of the
16347 minibuffer before inserting `initial' string.
16348
163491999-06-30 Richard Stallman <rms@gnu.org>
16350
16351 * xfns.c (x_make_gc): Turn off GCStipple when setting up cursor_gc.
16352
163531999-06-29 Richard M. Stallman <rms@gnu.org>
16354
16355 * emacs.c [DOUG_LEA_MALLOC] (malloc_initialize_hook):
16356 Move the handling of MALLOC_CHECK_ envvar here.
16357 (main): Moved from here.
16358
163591999-06-29 Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>
16360
16361 * emacs.c [DOUG_LEA_MALLOC] (malloc_initialize_hook): New
16362 function, assigned to the global __malloc_initialize_hook pointer.
16363 (main): Move malloc_set_state call into malloc_initialize_hook
16364 so that it happens as early as possible.
16365
163661999-06-27 Richard M. Stallman <rms@gnu.org>
16367
16368 * keyboard.c (read_key_sequence): Properly reinitialize
16369 fkey_map after translating thru Vkey_translation_map.
16370 After translating thru Vfunction_key_map, don't reset
16371 keytrans-start to 0.
16372
163731999-06-24 Geoff Voelker <voelker@cs.washington.edu>
16374
16375 * w32.c (get_emacs_configuration): Use GetVersionEx to
16376 handle NT5.0 correctly. Include build number in configuration.
16377 w32heap.c (osinfo_cache): New variable.
16378 (cache_system_info): Initialize osinfo_cache.
16379 w32heap.h (osinfo_cache): Declare.
16380
163811999-06-24 Richard M. Stallman <rms@gnu.org>
16382
16383 * casefiddle.c (casify_object): Use make_multibyte_string
16384 if we casify a multibyte string.
16385
163861999-06-22 Ken'ichi Handa <handa@gnu.org>
16387
16388 * fileio.c: (Finsert_file_contents): In the case of REPLACE, call
16389 del_range_byte instead of del_range_1, set `inserted' to the
16390 number of characters actually inserted.
16391
163921999-06-17 Dave Love <fx@gnu.org>
16393
16394 * coding.c (decode_coding_sjis_big5): Avoid compiler warning.
16395
163961999-06-18 Paul Eggert <eggert@twinsun.com>
16397
16398 * filelock.c (BOOT_TIME_FILE): New macro.
16399 (get_boot_time): Use it instead of hardwiring the file name.
16400 Check BOOT_TIME_FILE only after inspecting the kernel directly.
16401
164021999-06-17 Dave Love <fx@gnu.org>
16403
16404 * xdisp.c (invalid_eol_type): Make it unsigned.
16405
164061999-06-17 Karl Heuer <kwzh@gnu.org>
16407
16408 * process.c (send_process): Delete unsafe/redundant assignment.
16409
164101999-06-17 Jason Rumney <jasonr@gnu.org>
16411
16412 * w32term.c (dumprectangle): Handle wide characters properly.
16413
164141999-06-16 Andrew Innes <andrewi@gnu.org>
16415
16416 * s/ms-w32.h (strerror): Override the default implementation of
16417 strerror, so we can map winsock error codes.
16418
16419 * w32.c (sys_strerror): New function.
16420
16421 * w32fns.c (w32_to_x_weight): Return "demibold" instead of "semibold".
16422
164231999-06-15 Ken'ichi Handa <handa@gnu.org>
16424
16425 * buffer.c (syms_of_buffer): Don't make
16426 enable-multibyte-characters customizable.
16427
164281999-06-15 Richard M. Stallman <rms@gnu.org>
16429
16430 * editfns.c (Fuser_full_name): Doc fix.
16431
164321999-06-14 Tak Ota <ota@atc.sel.sony.com>
16433
16434 * w32bdf.c: (clear_cached_bitmap_slots): Remove.
16435 (get_bitmap_with_cache): Check if CreateBitmap failed.
16436 Adjust cache size dynamically so cache is never larger than the
16437 system limit of GDI resources.
16438 Do cache clearing inline. Move global variables to local scope.
16439
16440
164411999-06-13 Wolfgang Glas <Wolfgang.Glas@hfm.tu-graz.ac.at>
16442
16443 * unexsgi.c (unexec): Dump the .rodata section from memory
16444 under IRIX6.5 in order to be able to unexec with gcc.
16445
164461999-06-11 Greg Hudson <ghudson@MIT.EDU>
16447
16448 * indent.c (compute_motion): Fix boundary case.
16449
164501999-06-11 Jason Rumney <jasonr@altavista.net>
16451
16452 * w32term.c (cancel_mouse_face): New function. See equiv
16453 changes to xterm.c on 1996-10-31.
16454 (x_set_window_size): Use cancel_mouse_face.
d7d0dac0
SM
16455 (w32_read_socket): Use cancel_mouse_face.
16456 Update frame position when size is restored.
26901792
DL
16457
164581999-06-04 Richard M. Stallman <rms@gnu.org>
16459
16460 * lread.c (Vuser_init_file): New variable.
16461 (syms_of_lread): Set up Lisp variable.
16462 (Fload): Store the file name there, if var was t before.
16463
164641999-06-04 Paul Eggert <eggert@twinsun.com>
16465
16466 * filelock.c (get_boot_time): Don't look at /proc/uptime; it
16467 doesn't work if the system date is changed, or if the system
16468 is suspended. Look at the last-modified time of
16469 /var/run/random-seed instead.
16470
164711999-06-03 Ken'ichi Handa <handa@gnu.org>
16472
16473 * coding.c (ENCODE_SJIS_BIG5_CHARACTER): Encode charset
16474 japanese-jisx0208-1978 correctly.
16475
164761999-06-03 Andrew Innes <andrewi@gnu.org>
16477
16478 * unexw32.c (get_section_info) [_ALPHA_]: Force as much bss data
16479 as possible to be dumped, for safety.
16480
164811999-06-02 Ken'ichi Handa <handa@gnu.org>
16482
16483 * coding.c (ENCODE_SJIS_BIG5_CHARACTER): Encode charset
16484 latin-jisx0201 correctly.
16485
164861999-05-26 Ken'ichi Handa <handa@gnu.org>
16487
16488 * charset.h (Vcharset_table): Comment fixed.
16489
164901999-05-24 Richard Stallman <rms@gnu.org>
16491
16492 * coding.c (syms_of_coding): Doc fix.
16493
16494 * buffer.c (syms_of_buffer): Doc fix.
16495
16496 * filelock.c (lock_if_free): After deleting a stale lock,
16497 try again to lock the file.
16498
164991999-05-22 Andrew Innes <andrewi@gnu.org>
16500
16501 * w32inevt.c (maybe_generate_resize_event): Detect changes in the
16502 console window size.
16503 (w32_console_read_socket): Call maybe_generate_resize_event
16504 whenever input events are received, since we don't get told when
16505 the window size changes (as opposed to the buffer size, which we
16506 don't care about).
16507
16508 * w32console.c (clear_frame): Remember that the window width might
16509 be smaller than the screen buffer width.
16510 (write_glyphs): Remove redundant variable attrs. Use
16511 FillConsoleOutputAttribute instead of WriteConsoleOutputAttribute.
16512
165131999-05-20 Andrew Innes <andrewi@gnu.org>
16514
16515 * w32term.c (w32_read_socket): Reset the grabbed flag when a frame gains or
16516 loses focus.
16517
16518 * w32fns.c (w32_wnd_proc): Ensure mouse capture is released if
16519 frame loses focus, and that mouse button state is reset. Ditto
16520 when the menu bar is activated.
16521
165221999-05-18 Richard Stallman <rms@gnu.org>
16523
16524 * abbrev.c (Fdefine_abbrev): Doc fix.
16525
165261999-05-13 Paul Eggert <eggert@twinsun.com>
16527
16528 * filelock.c: Fix performance bug on hosts with large
16529 /var/adm/wtmp files with no boot records.
16530
16531 (boot_time_initialized): New var.
16532 (init_filelock): Initialize it.
16533 (get_boot_time): Use it, instead of nonzero boot_time,
16534 to test whether boot_time is initialized.
16535 Don't invoke utmp routines when dumping.
16536
16537 (get_boot_time): First, try to get the boot time from the
16538 current utmp file, as this can be much faster. Don't try to
16539 get the boot time from utmp and/or wtmp more than once.
16540
16541 (get_boot_time_1): When passed null pointer, don't invoke utmpname.
16542 New arg LATEST. All uses changed.
16543
165441999-05-15 Andrew Innes <andrewi@gnu.org>
16545
16546 * w32term.c (dumpglyphs): Use correct colours for drawing
16547 rectangles in place of missing fonts, and make them the right
16548 size.
16549
165501999-05-14 Dave Love <fx@gnu.org>
16551
16552 * syntax.c (Fparse_partial_sexp): Correct test for element 8 to be
16553 non-nil.
16554
165551999-05-11 Andrew Innes <andrewi@gnu.org>
16556
16557 * w32fns.c (x_to_w32_charset): Reinstall VIETNAMESE_CHARSET
16558 definition.
16559 (w32_wnd_proc): Reinstall debugging output.
16560 (w32_wnd_proc): Reinstall SetForegroundWindow change.
16561 (syms_of_w32fns): Reinstall new initializer for
16562 Vw32_phantom_key_code.
16563
16564 * w32fns.c (x_to_w32_charset): Do partial matching of charset
16565 names for most non-European charsets, to cope with wildcards or
16566 missing spec dates.
16567 (Fw32_send_sys_command): Post WM_SYSCOMMAND rather than sending it
16568 to avoid deadlock when activating the menu bar.
16569
165701999-05-10 Ken'ichi Handa <handa@gnu.org>
16571
16572 * search.c (boyer_moore): Get charset base value of `untranslated'
16573 by masking by ~CHAR_FIELD3_MASK (instead of ~0xff).
16574
165751999-05-10 Andreas Schwab <schwab@gnu.org>
16576
16577 * fileio.c (Fread_file_name): Correct handling of dollars in file
16578 names. Protect dollars in strings put on the file-name-history.
16579 Substitute homedir by `~' also in default_filename.
16580
16581 * xdisp.c (try_window_id): Fix computation of tab_offset when
16582 backing up over a character that is splitted across lines.
16583
165841999-05-08 Kenichi HANDA <handa@etl.go.jp>
16585
16586 * coding.c (code_convert_region): If eol format is inconsistent,
16587 change coding->symbol to the sibling coding system of Unix like
16588 eol format.
16589
165901999-05-09 Richard M. Stallman <rms@gnu.org>
16591
16592 * s/irix5-2.h (NO_WTMP_FILE): Define it.
16593
16594 * filelock.c (get_boot_time): Handle NO_WTMP_FILE.
16595
165961999-05-05 Andrew Innes <andrewi@gnu.org>
16597
16598 * w32fns.c (w32_strict_painting): New variable.
16599 (w32_wnd_proc): Use it to select repaint rules.
16600 (syms_of_w32fns): Defvar it.
16601
166021999-05-04 Andrew Innes <andrewi@gnu.org>
16603
16604 * w32fns.c (x_to_w32_charset): Fix typo: want to map all Japanese
16605 charsets to the standard Windows charset for Japanese.
16606
166071999-05-04 Ken'ichi Handa <handa@gnu.org>
16608
16609 * xterm.c (x_load_font): Fix typo (`>' -> `=').
16610
16611 * ccl.h (struct ccl_program): New member stack_idx.
16612
16613 * ccl.c (ccl_prog_stack_struct): Declare it as static.
16614 (ccl_driver): Setup stack_idx and ccl_prog correctly. Update them
16615 before returing.
16616 (setup_ccl_program): Initialize ccl->stack_idx to 0.
16617
166181999-05-03 Jason Rumney <jasonr@altavista.net>
16619
16620 * w32term.c (dumpglyphs): Always fill background for italic fonts.
16621
166221999-05-03 Eli Zaretskii <eliz@is.elta.co.il>
16623
16624 * dired.c (make_time): Make argument type be time_t.
16625
166261999-05-02 Eli Zaretskii <eliz@is.elta.co.il>
16627
16628 * msdos.c (unibyte_display_via_language_environment): Add extern.
16629
83c8f461 166301999-05-02 Richard M. Stallman <rms@gnu.org>
26901792
DL
16631
16632 * xdisp.c (display_text_line): Convert unibyte char to multibyte
16633 if unibyte_display_via_language_environment is set.
16634 (unibyte_display_via_language_environment):
16635 Variable moved from xfns.c and elsewhere.
16636 (syms_of_xfns): Set up Lisp var.
16637
16638 * xfns.c (unibyte_display_via_language_environment):
16639 Variable moved to xdisp.c.
16640 (syms_of_xfns): Don't set up Lisp var here.
16641
16642 * msdos.c (unibyte_display_via_language_environment):
16643 Variable moved to xdisp.c.
16644 (syms_of_msdos): Don't set up Lisp var here.
16645
16646 * w32fns.c (unibyte_display_via_language_environment):
16647 Variable moved to xdisp.c.
16648 (syms_of_w32fns): Don't set up Lisp var here.
16649
166501999-05-02 Andrew Innes <andrewi@gnu.org>
16651
16652 * s/ms-w32.h (HAVE_FSYNC): New macro.
16653 (fsync): Map to _commit.
16654 (ftruncate): Map to _chsize.
16655
16656 * w32term.c (dumpglyphs): On Windows NT, do output in Unicode even
16657 for ASCII, if enabled, to avoid memory allocation overhead for
16658 implicit Unicode conversion. Also, recognize that ASCII and
16659 Latin-1 have a trivial conversion to Unicode, so x_2byte_buffer
16660 already contains the Unicode characters in that case.
16661 (construct_drag_n_drop): Remove old code that was
16662 trashing the drop location.
16663
16664 * w32select.c (Fw32_set_clipboard_data): Undo last change to add
16665 nlines to encoding_buffer_size (real bug was in a ccl program in
16666 lisp/international/coding.el).
16667
16668 * w32reg.c (w32_get_string_resource): Check for name in current
16669 user area, and if not found look in the local machine area.
16670
16671 * w32fns.c (w32_list_bdf_fonts): Initialize n_fonts.
16672 (Fw32_shell_execute): New function; used to support browse-url.
16673 (syms_of_w32fns): Register it.
16674 (w32_load_system_font): Force max width to be average
16675 char width for fixed-pitch fonts, to avoid unnecessary redisplay
16676 slowdown.
16677 (x_to_w32_charset): Define VIETNAMESE_CHARSET if not
16678 already defined.
16679 (syms_of_w32fns): Set Vw32_phantom_key_code to 255.
16680
16681 * unexw32.c (get_section_info): Dump back the entire EMDATA
16682 section if we can put Emacs' initialized data in a separate
16683 section, otherwise use the my_begdata/my_edata method.
16684
16685 * makefile.nt ($(BLD)\w32term.obj): Add dependency on w32heap.h.
16686
16687 * coding.c (decode_eol): Set produced/consumed values to zero if
16688 src_bytes is <= 0 on entry.
16689
166901999-05-02 Jason Rumney <jasonr@altavista.net>
16691
16692 * w32term.c (w32_write_glyphs, w32_clear_end_of_line,
16693 w32_clear_frame, clear_cursor, x_display_bar_cursor,
16694 x_display_box_cursor, x_set_window_size): Use phys_cursor_on
16695 field in frame.
16696 (do_line_dance): Updated WRT xterm.c. Use macros where possible.
16697 (dumprectangle): Take into account the width of a left-side
16698 scroll bar.
16699
16700 * w32proc.c (sys_kill): Attach to current foreground thread
16701 when grabbing focus; necessary on NT 5.0.
16702
16703 * w32fns.c (w32_wnd_proc) [WM_PAINT]: Use rectangle from
16704 GetUpdateRect rather than BeginPaint.
16705 (w32_wnd_proc): Attach to current foreground thread
16706 when grabbing focus; necessary on NT 5.0.
16707 (w32_wnd_proc) [W32_DEBUG_DISPLAY]: Add output for
16708 debugging display messages.
16709 (w32_to_x_charset): Put wildcard last in unknown charsets to avoid
16710 false matching.
16711
167121999-05-02 Kenichi HANDA <handa@etl.go.jp>
16713
16714 * coding.c (setup_raw_text_coding_system): Call
16715 setup_coding_system to initialize the fields of struct
16716 coding_system correctly.
427ec082 16717
26901792
DL
167181999-04-26 Kenichi HANDA <handa@etl.go.jp>
16719
16720 * xterm.c (x_list_fonts): Fix previous change.
16721
167221999-04-26 Richard Stallman <rms@gnu.org>
16723
16724 * config.in (HAVE_LIBXP): Add #undef.
16725 * Makefile.in (LIB_MOTIF_EXTRA): Check HAVE_LIBXP.
16726
167271999-04-12 Ken'ichi Handa <handa@gnu.org>
16728
16729 * xterm.c (x_list_fonts): Trap X errors so that Emacs doesn't die
16730 by them.
16731
167321999-04-12 Karl Heuer <kwzh@gnu.org>
16733
16734 * s/freebsd.h (BSD_SYSTEM): Define for FreeBSD 4 as with FreeBSD 3.
16735
167361999-04-11 Ken'ichi Handa <handa@gnu.org>
16737
16738 * fontset.c (Fset_fontset_font): Fix previous change.
16739
167401999-04-09 Ken'ichi Handa <handa@gnu.org>
16741
16742 * fontset.c (Fquery_fontset): Check for fontset aliases here.
16743 (Fnew_fontset, Fset_fontset_font): Don't check for them here.
16744
167451999-04-08 Richard Stallman <rms@gnu.org>
16746
16747 * process.c (Faccept_process_output): Check validity of PROCESS.
16748
167491999-04-08 Eli Zaretskii <eliz@gnu.org>
16750
16751 * msdos.c (jp_kbd_translate_table): Fix the other \ key.
16752
167531999-04-07 Richard Stallman <rms@gnu.org>
16754
16755 * xfns.c (x_set_font): Fix error message.
16756
16757 * fontset.c (Fquery_fontset): Don't check for fontset aliases here.
16758 (Fnew_fontset, Fset_fontset_font): Check for them here.
16759 (Ffontset_info, Fnew_fontset, Fset_fontset_font):
16760 Fix error message syntax.
16761
16762 * buffer.c (Fmake_indirect_buffer): Copy multibyte status
16763 from the base buffer.
16764 (Fset_buffer_multibyte): Copy new multibyte status
16765 into the buffer's indirect buffers.
16766
167671999-04-07 Ken'ichi Handa <handa@gnu.org>
16768
16769 * fns.c (base64_encode_1): Don't add unnecessary newline at the
16770 tail.
16771
167721999-04-06 Richard Stallman <rms@gnu.org>
16773
16774 * dired.c (Ffile_attributes): Doc fix.
16775
16776 * keymap.c (Faccessible_keymaps): Really initialize i_byte.
16777 Convert 0200 to meta only in a unibyte string.
16778 (Fkey_description): Likewise.
16779
16780 * eval.c (do_autoload): Preserve match data.
16781
167821999-04-06 Kenichi HANDA <handa@etl.go.jp>
16783
16784 * w32fns.c (x_to_w32_font): Provide sufficient buffer to
16785 encode_coding to avoid carryover.
16786
16787 * coding.c: Add comments for decode_coding and encode_coding.
16788
16789 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix bug of handling
16790 a composite character by skipping its leading code.
16791 <CCL_WriteMultibyteChar2>: Handle non-ascii single byte character
16792 correctly.
16793
16794 * coding.c: Add comments for decode_coding and encode_coding.
16795
16796 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix bug of handling
16797 a composite character by skipping its leading code.
16798 <CCL_WriteMultibyteChar2>: Handle non-ascii single byte character
16799 correctly.
16800
168011999-04-06 Eli Zaretskii <eliz@gnu.org>
16802
16803 * msdos.c (dos_rawgetc): Don't zero out c if private translation
16804 table was used.
16805 (jp_kbd_translate_table): Support C-\.
16806 (it_kbd_translate_table): Map `>' correctly.
16807 (it_keyboard): Add `>'.
16808
168091999-04-06 Richard Stallman <rms@gnu.org>
16810
16811 * intervals.c (graft_intervals_into_buffer): Turn off
16812 inhibit_modification_hooks around calling Fset_text_properties.
16813
168141999-04-05 Kenichi HANDA <handa@etl.go.jp>
16815
16816 * xterm.c (dumpglyphs): Be sure to fill the whole background of
16817 glyphs.
16818
168191999-04-05 Eli Zaretskii <eliz@gnu.org>
16820
16821 * msdos.c (jp_kbd_translate_table): Fix last change.
16822
168231999-04-04 Eli Zaretskii <eliz@gnu.org>
16824
16825 * msdos.c (struct kbd_translate): New struct, for key translation
16826 tables private to certain national keyboard layouts.
16827 (struct dos_keyboard_map): Add a pointer to a private translation
16828 table.
16829 (jp_kbd_translate_table): Private table for the Japanese
16830 keyboard.
16831 (jp_keyboard): Japanese keyboard layout.
16832 (it_kbd_translate_table): Private table for the Italian keyboard.
16833 (it_keyboard): Use it_kbd_translate_table.
16834 (keyboard_layout_list): Add the Japanese keyboard.
16835 (dos_rawgetc): Use the keyboard-private translation table, if
16836 available.
16837 (abort) [__DJGPP_MINOR__ >= 2]: Raise SIGABRT.
16838
168391999-04-02 Kenichi HANDA <handa@etl.go.jp>
16840
16841 * xdisp.c (redisplay_window): When we call compute_motion with
16842 HPOS got from w->last_point_x, call it with DID_MOTION 1.
16843 (display_text_line): Stop the loop for processing overlay strings
16844 when we reach the right edge of the window.
16845
83c8f461 168461999-03-31 Richard M. Stallman <rms@gnu.org>
26901792
DL
16847
16848 * doc.c (get_doc_string): When UNIBYTE and DEFINITION are 0,
16849 let the data control whether string is unibyte.
16850
168511999-03-30 Richard M. Stallman <rms@gnu.org>
16852
16853 * macros.c (Fexecute_kbd_macro): Save real_this_command.
16854 (pop_kbd_macro): Restore the saved real_this_command.
16855 (Fcall_last_kbd_macro): Set real_this_command to the macro.
16856
168571999-03-26 Richard M. Stallman <rms@gnu.org>
16858
16859 * buffer.c (Fset_buffer_modified_p): Don't lock or unlock
16860 if buffer-file-name is nil.
16861
168621999-03-25 Jason Rumney <jasonr@altavista.net>
16863
16864 * w32select.c (Fw32_set_clipboard_data): Take into account line
16865 ends when calculating clipboard storage needed for non-ASCII text.
16866
168671999-03-25 Andrew Innes <andrewi@gnu.org>
16868
16869 * makefile.nt (PREPARED_HEADERS): Change name of paths.h to epaths.h.
16870 (epaths.h): Renamed from paths.h.
427ec082
SS
16871 (clean):
16872 ($(BLD)\filelock.obj):
16873 ($(BLD)\lread.obj):
26901792
DL
16874 ($(BLD)\w32fns.obj): Renamed paths.h to epaths.h.
16875
168761999-03-23 Ken'ichi Handa <handa@gnu.org>
16877
16878 * coding.c (encode_coding_iso2022): Initialize dummy arguments to
16879 ENCODE_ISO_CHARACTER for the previous change on this macro.
16880
168811999-03-23 Kenichi Handa <handa@etl.go.jp>
16882
16883 * xdisp.c (decode_mode_spec_coding): Handle integer value in
16884 eoltype correctly for backward compatibility.
16885
168861999-03-20 Kenichi HANDA <handa@etl.go.jp>
16887
16888 * coding.c (ENCODE_ISO_CHARACTER): Check validity of CHARSET. If
16889 invalid, produce the buffer internal byte sequence without encoding.
16890
168911999-03-19 Karl Heuer <kwzh@gnu.org>
16892
16893 * editfns.c (Fformat): Accept %i format.
16894
168951999-03-17 Karl Heuer <kwzh@gnu.org>
16896
16897 * filelock.c (get_boot_time): Test tempname, not filename.
16898
168991999-03-17 Jason Rumney <jasonr@altavista.net>
16900
e5619f6b
JR
16901 * w32bdf.h: Merged patches from Meadow; introduce bitmap cache to
16902 speed display.
16903
16904 * w32bdf.c: Merged patches from Meadow; introduce bitmap cache to
16905 speed display.
16906 (get_cached_font_char, cache_char_offset, get_bitmap_with_cache)
16907 New functions.
16908 (w32_free_bdf_font, seek_char, w32_get_bdf_glyph, w32_BDF_TextOut)
16909 Use bitmap cache.
26901792
DL
16910
16911 * w32fns.c (enum_font_cb2): Set the font height to be the
16912 character height, not the cell height.
16913 (Fw32_select_font): Initialize font dialog with current default font.
16914 (Vw32_system_coding_system): New variable.
16915 (w32_strict_filenames): Add comment.
16916 (w32_to_x_font): Decode font name using Vw32_system_coding_system.
427ec082 16917 (x_to_w32_font): Encode font name using Vw32_system_coding_system.
26901792
DL
16918 (syms_of_w32fns): Add w32-system-coding-system.
16919
169201999-03-15 Richard M. Stallman <rms@gnu.org>
16921
16922 * xterm.c (XTread_socket) <ConfigureNotify>:
16923 If cursor pos is outside the new frame size, mark cursor as off.
16924
169251999-03-14 Ken'ichi Handa <handa@gnu.org>
16926
16927 * xdisp.c (try_window_id): Initialize val.ovstring_chars_done to 0.
16928
16929 * xterm.c (x_load_font): Trap X errors so that Emacs doesn't die
16930 by them.
16931
169321999-03-14 Richard M. Stallman <rms@gnu.org>
16933
16934 * macros.c (Fexecute_kbd_macro): Initialize executing_macro_iterations
16935 at beginning.
16936
169371999-03-14 Jason Rumney <jasonr@altavista.net>
16938
16939 * w32fns.c (w32_strict_fontnames): New variable.
16940 (Fx_create_frame): Formatting fix.
16941 (w32_load_system_font): Keep trying to load non-existant font
16942 if w32_strict_fontnames is nil. Formatting fix.
16943 (syms_of_w32fns): Add w32-strict-fontnames.
16944
16945 * w32term.c (W32_TEXTOUT): Do not multiply nchars by charset_dim.
16946 (dumpglyphs): Formatting fixes.
16947
169481999-03-14 Geoff Voelker <voelker@cs.washington.edu>
16949
16950 * w32fns.c (w32_wnd_proc): Handle WM_GETMINMAXINFO message.
16951
169521999-03-10 Karl Heuer <kwzh@gnu.org>
16953
16954 * puresize.h (BASE_PURESIZE): Increase to 505000.
16955
169561999-03-09 Richard M. Stallman <rms@gnu.org>
16957
16958 * emacs.c (main) [CLASH_DETECTION]: Call init_filelock.
16959
16960 * filelock.c (init_filelock): New function.
16961
169621999-03-09 Dave Love <fx@gnu.org>
16963
16964 * fileio.c (Ffile_directory_p): Doc fix.
16965
83c8f461 169661999-03-05 Richard M. Stallman <rms@gnu.org>
26901792
DL
16967
16968 * coding.c (setup_coding_system): Check for CODING_SYSTEM = nil.
16969
169701999-03-08 Richard M. Stallman <rms@gnu.org>
16971
16972 * filelock.c (get_boot_time): Reduce scope of #ifdef BOOT_TIME
16973 to only the part that uses get_boot_time_1.
16974
169751999-03-07 Dave Love <fx@gnu.org>
16976
16977 * fileio.c (Finsert_file_contents): Use xfree.
16978
169791999-03-06 Kenichi Handa <handa@etl.go.jp>
16980
16981 * Makefile.in (callproc.o, coding.o, fileio.o, msdos.o, process.o,
16982 term.o, xselect.o): Depend on ccl.h.
16983
169841999-03-05 Geoff Voelker <voelker@cs.washington.edu>
16985
16986 * makefile.nt: Remove common multiple file compilation commands.
16987
169881999-03-04 Takeshi YAMADA <yamada@cslab.kecl.ntt.co.jp>
16989
16990 * fns.c (Fbase64_encode_string): Allocate sufficient memory for
16991 newlines added when the arg NO-LINE-BREAK is nil.
16992
169931999-03-04 Karl Heuer <kwzh@gnu.org>
16994
16995 * search.c (Fstring_match, Fposix_string_match): Doc fix.
16996
16997 * buffer.c (syms_of_buffer): Doc fix for case-fold-search.
16998
169991999-03-04 Dave Love <fx@gnu.org>
17000
17001 * term.c (term_init): Use xmalloc, not malloc.
17002
17003 * callproc.c (Fcall_process): Use xmalloc, xfree.
17004
170051999-03-03 Andreas Schwab <schwab@gnu.org>
17006
17007 * eval.c (Fdefconst): Doc fix.
17008
170091999-03-01 Kenichi Handa <handa@etl.go.jp>
17010
17011 * coding.c: Comment for ISO 2022 encoding mechanism modified.
17012
170131999-03-01 Eli Zaretskii <eliz@gnu.org>
17014
17015 * w16select.c (get_clipboard_data): Always stop at the first null byte.
17016
170171999-02-28 Richard M. Stallman <rms@gnu.org>
17018
17019 * filelock.c (get_boot_time): Support FreeBSD way to read boot-time.
17020
17021 * cmds.c (internal_self_insert): Calculate column properly
17022 in overwrite-of-tab case.
17023
170241999-02-27 Andreas Schwab <schwab@gnu.org>
17025
17026 * emacs.c (main) [DOUG_LEA_MALLOC]: Don't use unsetenv, it calls
17027 malloc in glibc 2.1.
17028
170291999-02-26 Richard Stallman <rms@gnu.org>
17030
17031 * Makefile.in: paths.h and paths.in renamed to epaths.h and epaths.in.
17032
17033 * epaths.in: Renamed from paths.in.
17034 This avoids a conflict with a system header file paths.h on GNU/Linux.
17035
17036 * callproc.c, lread.c, w32fns.c, xfns.c, xrdb.c:
17037 Use epaths.h istead of paths.h.
17038
170391999-02-26 Andreas Schwab <schwab@gnu.org>
17040
17041 * emacs.c (main) [DOUG_LEA_MALLOC]: Work around a bug in glibc's
17042 malloc.
17043
170441999-02-25 Dave Love <fx@gnu.org>
17045
17046 * buffer.c (syms_of_buffer): Doc fix for enable-multibyte-characters.
17047
170481999-02-25 Richard Stallman <rms@gnu.org>
17049
17050 * filelock.c (get_boot_time): Use WTMP_FILE for file name.
17051 (WTMP_FILE): Default definition in case not defined.
17052 (get_boot_time_1): Test that file exists before trying to read it.
427ec082 17053
26901792
DL
170541999-02-25 Ken'ichi Handa <handa@gnu.org>
17055
17056 * keymap.c (push_key_description): If enable-multibyte-characters
17057 is nil and C is single byte, push C as is.
17058
170591999-02-24 Kenichi Handa <handa@etl.go.jp>
17060
17061 * keymap.c (push_key_description): If enable-multibyte-characters
17062 is non-nil, try to convert unibyte character to multibyte. For
17063 invalid multibyte character, show all bits by octal form.
17064 (Fsingle_key_description): Check the validity of charset for a
17065 generic character.
17066
170671999-02-23 Richard M. Stallman <rms@gnu.org>
17068
17069 * fileio.c (Ffile_regular_p): Undo previous change.
17070
17071 * eval.c (Fdefconst): Doc fix.
17072
17073 * filelock.c (get_boot_time): Don't use BUFSIZ.
17074
170751999-02-22 Andrew Innes <andrewi@gnu.org>
17076
17077 * makefile.nt ($(BLD)\w32bdf.obj): Add missing continuation character.
17078 (EXTRA_LINK): Do version test with strings.
17079
170801999-02-22 Andreas Schwab <schwab@gnu.org>
17081
17082 * fns.c (Fbase64_encode_string): Fix last change.
17083
17084 * termhooks.h (event_kind): Add user_signal.
17085
17086 * keyboard.c (Qusr1_signal, Qusr2_signal): New variables.
17087 (syms_of_keyboard): Initialize them.
17088 (lispy_user_signals): New variable.
17089 (make_lispy_event): Handle user_signal event type.
17090
17091 * emacs.c: Don't define Qusr1_signal and Qusr2_signal.
17092 (syms_of_emacs): Don't initialize them.
17093 (handle_USR1_signal, handle_USR2_signal): Set event type to
17094 user_signal instead of non_ascii_keystroke, and use plain integers
17095 as code instead of Lisp symbols.
17096
170971999-02-21 Eli Zaretskii <eliz@delysid.gnu.org>
17098
17099 * fileio.c: (lstat) [!S_ISLNK]: Use stat instead of lstat.
17100
171011999-02-21 Richard Stallman <rms@gnu.org>
17102
17103 * filelock.c (get_boot_time_1): Put this in #ifdef BOOT_TIME.
17104
17105 * print.c (print_error_message): Don't crash if (cdr data)
17106 is not a list.
17107
171081999-02-21 Eli Zaretskii <eliz@gnu.org>
17109
17110 * fileio.c (lstat) [!S_ISLNK]: Use stat instead of lstat.
17111
171121999-02-20 Andrew Innes <andrewi@gnu.org>
17113
17114 * vm-limit.c (memory_warnings) [WINDOWSNT]: Reset lim_data on each
17115 run, since size can vary from run to run.
17116
17117 * makefile.nt (EXTRA_LINK, LINK_FLAGS): Ensure base relocation
17118 data is included, to enable profiling.
17119 ($(EMACS)): Map file not needed for emacs.exe.
17120
17121 * emacs.c (main): [!SYSTEM_MALLOC]: Call realloc and free as well
17122 as malloc before calling uninterrupt_malloc, for consistency.
17123 This also enables profiling to work on WINDOWSNT.
17124
171251999-02-18 Richard Stallman <rms@gnu.org>
17126
17127 * Makefile.in (emacs.o): Depend on termhooks.h.
17128 (filelock.o): Depend on systime.h.
17129
171301999-02-18 Ken'ichi Handa <handa@gnu.org>
17131
17132 * coding.c (Fdecode_sjis_char): Use %x for formatting error message.
17133 (Fdecode_big5_char): Likewise.
17134
171351999-02-17 Richard Stallman <rms@gnu.org>
17136
17137 * insdel.c (adjust_markers_for_replace): When doing an insertion
17138 (replacing a region of zero length), handle markers at the
17139 insertion point properly.
17140
171411999-02-17 Andrew Innes <andrewi@gnu.org>
17142
17143 * w32fns.c (Vw32_quit_key): New variable.
17144 (post_character_message): Use it.
17145 (syms_of_w32fns): DEFVAR it.
17146
171471999-02-16 MORIOKA Tomohiko <morioka@jaist.ac.jp>
17148
17149 * fns.c (Fbase64_encode_string): New optional argument `NO_LINE_BREAK'.
17150
171511999-02-16 Richard Stallman <rms@gnu.org>
17152
17153 * filelock.c (within_one_second): New function.
17154 (current_lock_owner): Use that.
17155 (get_boot_time): Use /proc/uptime if available.
17156 Otherwise, if nothing found in wtmp, try wtmp.1.gz and so on.
17157 (get_boot_time_1): New subroutine taken from get_boot_time.
427ec082 17158
26901792
DL
171591999-02-16 Richard Stallman <rms@gnu.org>
17160
17161 * emacs.c (Qusr1_signal, Qusr2_signal): New variables.
17162 (syms_of_emacs): Init and staticpro them.
17163 (handle_USR1_signal): Don't run any code, just queue up an event.
17164 (handle_USR2_signal): Likewise.
17165
171661999-02-16 Eli Zaretskii <eliz@gnu.org>
17167
17168 * dired.c (Ffile_attributes): If the file's size doesn't fit in
17169 an integer, return it as a float. Doc string fixed.
17170
171711999-02-16 Richard Stallman <rms@gnu.org>
17172
17173 * emacs.c (Qusr1_signal, Qusr2_signal): New variables.
17174 (syms_of_emacs): Init and staticpro them.
17175 (handle_USR1_signal): Don't run any code, just queue up an event.
17176 (handle_USR2_signal): Likewise.
17177
171781999-02-15 Kenichi Handa <handa@etl.go.jp>
17179
17180 * coding.c (Fdecode_sjis_char, Fencode_sjis_char): Handle
17181 ASCII correctly. Signal error on invalid characters.
17182 (Fdecode_big5_char, Fencode_big5_char): Likewise.
17183
171841999-02-15 Eli Zaretskii <eliz@gnu.org>
17185
17186 * w16select.c (get_clipboard_data): Work around a bug in Windows95
17187 DOS box which doubles the reported size of text in the clipboard.
17188
171891999-02-15 Kenichi Handa <handa@etl.go.jp>
17190
17191 * coding.c (decode_coding_iso2022): Don't set
17192 coding->composed_chars to 0 here.
17193 (setup_coding_system): Set coding->composed_chars to 0 here.
17194
171951999-02-10 Richard Stallman <rms@gnu.org>
17196
17197 * fileio.c (Ffile_regular_p): Use lstat.
17198
171991999-02-09 Richard Stallman <rms@gnu.org>
17200
17201 * unexelf.c (HAS_SBSS_SECTION): Define this in some cases.
17202 (unexec): Test this instead of specific systems.
17203
17204 * m/macppc.h: New file.
17205
172061999-02-08 Dave Love <fx@gnu.org>
17207
17208 * fns.c (Fyes_or_no_p, Fy_or_n_p): Doc fix.
17209
172101999-02-08 Ken'ichi Handa <handa@gnu.org>
17211
17212 * coding.c (ccl_coding_driver): On encoding, coding->produced_char
17213 should be set to coding->produced.
17214
172151999-02-07 Paul Fisher <rao@gnu.org>
17216
17217 * fns.c (IS_BASE64_IGNORABLE, READ_QUADRUPLET_BYTE): New macros.
17218 (base64_decode_1): Use READ_QUADRUPLET_BYTE.
17219
172201999-02-07 Markus Rost <markus.rost@mathematik.uni-regensburg.de>
17221
17222 * editfns.c (Fformat): Doc fix.
17223
172241999-02-06 Richard Stallman <rms@gnu.org>
17225
17226 * process.c (syms_of_process): defsubr it.
17227 (Fprocess_running_child_p): New function.
17228
172291999-02-05 Andrew Innes <andrewi@gnu.org>
17230
17231 * w32term.c (construct_drag_n_drop): Call DraqQueryPoint before
17232 recording drop position.
17233
172341999-02-05 Ken'ichi Handa <handa@gnu.org>
17235
17236 * coding.c (encode_coding_iso2022): Before writing out an invalid
17237 code, reset graphic planes and registers if necessary.
17238
17239 * term.c (encode_terminal_code): Fix previous change.
17240
172411999-02-04 Eli Zaretskii <eliz@gnu.org>
17242
17243 * w16select.c (last_clipboard_text, clipboard_storage_size): New
17244 static variables.
17245 (set_clipboard_data): Save a copy of the text we put into
17246 clipboard in last_clipboard_text.
17247 (get_clipboard_data): If the clipboard text is identical to what
17248 last_clipboard_text holds, pretend there's no data in the clipboard.
17249
172501999-02-03 Richard Stallman <rms@gnu.org>
17251
17252 * s/gnu.h (NLIST_STRUCT): Add #undef.
17253
172541999-02-03 Eli Zaretskii <eliz@gnu.org>
17255
17256 * w16select.c (Fw16_set_clipboard_data): When the text needs to be
17257 encoded, set its pointer and size as returned by encode_coding.
17258
172591999-02-02 Ken'ichi Handa <handa@gnu.org>
17260
17261 * fns.c (Fset_char_table_default): To handle the case that CH is
17262 an ASCII char, use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
17263
172641999-02-02 Andrew Innes <andrewi@gnu.org>
17265
17266 * w32fns.c (syms_of_w32fns): Change default value of
17267 w32-mouse-move-interval to 0, so that the mouse wheel/rocker on
17268 some mice works properly.
17269
172701999-02-02 Eli Zaretskii <eliz@gnu.org>
17271
17272 * w16select.c (set_clipboard_data): Correctly null-terminate the
17273 string to be put into the Windows clipboard. Use xbuf_addr.
17274
172751999-02-01 Richard Stallman <rms@gnu.org>
17276
17277 * buffer.c (Fset_buffer_multibyte): Error if buffer is indirect.
17278
172791999-01-31 Richard Stallman <rms@gnu.org>
17280
17281 * process.c (process_send_signal): If CURRENT_GROUP is `lambda'
17282 then don't send the signal if the shell owns the terminal.
17283 (Finterrupt_process): Doc change.
427ec082 17284
26901792
DL
172851999-01-31 Andrew Innes <andrewi@gnu.org>
17286
17287 * unexw32.c: (ROUND_UP_DST_AND_ZERO): New macro.
17288 (copy_executable_and_dump_data): Use it to ensure alignment slop
17289 is zeroed.
17290
172911999-01-30 Andrew Innes <andrewi@gnu.org>
17292
17293 * w32.c (init_environment): Change argv[0] to contain the full
17294 path to Emacs.
17295
17296 * emacs.c (main) [WINDOWSNT]: Pass argv to init_environment.
17297
172981999-01-29 Ken'ichi Handa <handa@gnu.org>
17299
17300 * xterm.c (x_new_fontset): For ASCII font, don't use the font name
17301 returned by x_new_font (the resolved one) but use the font name
17302 set in the fontset specification.
17303 (x_load_font): For the height of font, if normarl ascent and
17304 descent value are larger than those in max_bounds field, use the
17305 former.
17306
173071999-01-28 Eli Zaretskii <eliz@gnu.org>
17308
17309 * xdisp.c (decode_mode_spec_coding): Fix previous change.
17310
173111999-01-27 Geoff Voelker <voelker@cs.washington.edu>
17312
17313 * makefile.nt: Use full path to temacs.exe when dumping.
17314
173151999-01-27 Jason Rumney <jasonr@altavista.net>
17316
17317 * w32fns.c (w32_load_system_font): Do not load unlisted fonts if
17318 list was reliable.
17319 (enum_fontex_cb1, enum_fontex_cb2): New functions.
17320 (w32_list_bdf_fonts): New parameter; max_names. Callers updated.
17321 (w32_list_synthesized_fonts): New function.
17322 (w32_list_fonts): Use maxnames. Use EnumFontFamiliesEx when
17323 available instead of EnumFontFamilies. List synthesized fonts if
17324 Vw32_enable_italics is non-nil.
427ec082 17325
26901792
DL
173261999-01-27 Richard Stallman <rms@gnu.org>
17327
17328 * s/ptx4.h (SETUP_SLAVE_PTY): Use the ptem module if it exists.
17329 Don't complain if ttcompat does not exist.
17330
17331 * w32fns.c (x_set_frame_parameters): gcpro as needed.
17332
173331999-01-27 Andrew Innes <andrewi@gnu.org>
17334
17335 * w32fns.c (w32_wnd_proc): Fix bug introduced by previous change;
17336 the lwindow, rwindow and apps keys could not be used as function
17337 keys, because they were being passed to TranslateMessage which
17338 ignores them. Also, key was being changed to SPC.
17339
17340 * makefile.nt: Do make version comparison as strings.
17341
173421999-01-27 Eli Zaretskii <eliz@gnu.org>
17343
17344 * coding.c (syms_of_coding): eol-mnemonic-* variables are now
17345 strings, not characters.
17346
17347 * coding.h: Likewise.
17348
17349 * xdisp.c (decode_mode_spec_coding): Display the EOL type as a
17350 string.
17351
173521999-01-26 Dave Love <fx@gnu.org>
17353
17354 * emacs.c (main): Up-date copyright.
17355
173561999-01-25 Dave Love <fx@gnu.org>
17357
17358 * coding.c (syms_of_coding): Doc fix for inhibit-eol-conversion.
17359
173601999-01-25 Andreas Schwab <schwab@gnu.org>
17361
17362 * eval.c (Fsignal): Move comment to avoid confusing make-docfile.
17363
173641999-01-23 Richard M. Stallman <rms@borg.ai.mit.edu>
17365
17366 * xfns.c (x_set_frame_parameters): gcpro as needed.
17367
17368 * window.c (Fset_window_point): If WINDOW is selected but the
17369 current buffer is not its buffer, don't use Fgoto_char.
17370
173711999-01-22 Richard M. Stallman <rms@gnu.org>
17372
17373 * syntax.c (scan_sexps_forward): Delete duplicate code
17374 to set prev_from_syntax, above start of main loop.
17375 At startinstring, check syntax when checking for a match.
17376
173771999-01-22 Jason Rumney <jasonr@altavista.net>
17378
17379 * w32bdf.c: New file.
17380 * w32bdf.h: New file.
17381 * makefile.nt: Add w32bdf.c and w32bdf.h.
17382
17383 * w32gui.h: Include w32bdf.h.
17384 (W32FontStruct) Add bdf element.
17385
17386 * w32term.h (FONT_WIDTH, FONT_HEIGHT, FONT_BASE, FONT_MAX_WIDTH):
17387 Support BDF fonts.
17388
17389 * w32term.c (W32_TEXTOUT): New macro.
17390 (dumpglyphs): Support BDF fonts. Use W32_TEXTOUT macro.
17391 Simplify baseline calculation. Detect SJIS by font, not glyph.
17392 Call SetTextAlign.
17393 (syms_of_w32term): Remove "jisx0212-sjis" from
17394 w32-charset-to-codepage-alist.
17395 Replace "ksc5601" with "ksc5601.1987" in w32-charset-to-codepage-alist.
17396 Add "ksc5601.1992' to w32-charset-to-codepage-alist.
427ec082 17397
26901792
DL
17398 * w32fns.c (Vw32_bdf_filename_alist): New variable.
17399 (x_destroy_bitmap): Returns void not int.
17400 (x_set_border_pixel): Returns void.
17401 (w32_load_bdf_font): New function.
17402 (w32_load_system_font): New function, was w32_load_font. List
17403 fonts before loading. Explicitly set encoding for SJIS fonts.
17404 Set default_ascent to 0 as comment indicates.
17405 (w32_load_font): Call w32_load_system_font and w32_load_bdf_font.
17406 (w32_unload_font): Support BDF fonts.
17407 (w32_to_x_charset): Fix mappings to avoid wildcard mismatches.
17408 Autodetect whether to use koi8-r instead of iso8859-5.
17409 Associate "ksc5601.1987" with HANGUEL_CHARSET.
17410 Associate "ksc5601.1992" with JOHAB_CHARSET.
17411 (x_to_w32_charset): Make consistent with w32_to_x_charset.
17412 (w32_to_x_font): Add resolution.
17413 (x_to_w32_font): Use font resolution to calculate height if supplied.
17414 (w32_font_match): Handle wildcards anywhere within field.
17415 (enumfont_t): Remove unused head pointer.
17416 (enum_font_cb2): Dereference elfLogFont.
17417 (w32_list_bdf_fonts): New function.
17418 (w32_list_fonts): Use one_w32_dispay_info instead of insisting on
17419 valid frame. Remove MessageBox. Support BDF fonts.
17420 (Fw32_find_bdf_fonts): New function.
17421 (syms_of_w32fns): Add Vw32_bdf_filename_alist and
17422 Sw32_find_bdf_fonts.
17423
174241999-01-21 Andrew Innes <andrewi@gnu.org>
17425
17426 * makefile.nt (temacs): Use del to delete file, not rm.
17427
174281999-01-19 Richard Stallman <rms@psilocin.ai.mit.edu>
17429
17430 * keyboard.c (read_key_sequence): Fix previous change.
17431
17432 * xterm.c (same_x_server): Detect treat ":0" and "unix:0"
17433 as the same. Treat "myname:0" as the same as those two.
17434
174351999-01-19 Jason Rumney <jasonr@altavista.net>
17436
17437 * w32fns.c (x_to_w32_charset): Add iso8859-9.
17438 (w32_to_x_charset): Fix charset mappings.
17439
17440 * w32term.c: Remove codepage macros. Remove redundant BIG5 macros.
17441 (dumpglyphs): Move definitions out of block containing goto.
17442 Remove redundant code for BIG5.
17443 Use w32_codepage_for_font instead of
17444 w32_codepage_for_charset. Add cast to int where float
17445 operation is assigned to int.
17446 (Vw32_charset_to_codepage_alist): New variable.
17447 (w32_codepage_for_charset): Removed.
427ec082
SS
17448 (w32_codepage_for_font): New function, replacing
17449 w32_codepage_for_charset.
26901792
DL
17450 (syms_of_w32term): Add and initialize
17451 w32-charset-to-codepage-alist.
17452
174531999-01-17 Richard Stallman <rms@psilocin.ai.mit.edu>
17454
17455 * xselect.c (x_handle_selection_clear): Don't clear the
17456 selection if Emacs still owns it through a different display.
17457
174581999-01-17 Andrew Innes <andrewi@gnu.org>
17459
17460 * w32proc.c: (w32_executable_type): Relax the check to identify
17461 cygwin-compiled applications, because the exact dll name varies
17462 with release. Now only require the name to start "cygwin".
17463
17464 * w32heap.h: (ROUND_UP):
17465 (ROUND_DOWN): New macros.
17466 (need_to_recreate_heap): Renamed to using_dynamic_heap.
17467 (init_heap): New extern.
17468 (data_region_size):
17469 (recreate_heap):
17470 (read_in_bss):
17471 (map_in_heap):
17472 (round_to_next):
17473 (w32_fatal_reload_error):
17474 (get_section_size): Obsolete externs removed.
17475
17476 * w32heap.c: (RVA_TO_PTR): Redefine to convert RVA to address in
17477 current process.
17478 (round_to_next): Obsolete function removed.
17479 (preload_heap_section): New variable.
17480 (data_region_size): Obsolete variable removed.
17481 (allocate_heap): Modified to determine end of static heap section
17482 used during preload, and use that as initial base address for
17483 dynamic heap instead of hard-coded value.
17484 (sbrk): Remove call to allocate_heap; handled by init_heap. Skip
17485 calls to commit or decommit pages when allocating from static heap
17486 section during preload.
17487 (recreate_heap): Obsolete function removed.
17488 (init_heap): New function to initialize internal sbrk heap
17489 variables. Uses static heap section during preload, otherwise
17490 calls allocate_heap to reserve a heap region dynamically.
17491 (round_heap): Use ROUND_UP macro instead of round_to_next.
17492
17493 * unexw32.c: Major rewrite to support cleaner method of dumping; a
17494 static "bss" section is used for heap space during preload, and
17495 bss data is now written to the proper section area when dumping.
17496 (need_to_recreate_heap): Renamed to using_dynamic_heap.
17497 (heap_index_in_executable): Obsolete variable removed.
17498 (data_section): New variable.
17499 (data_start_va): Renamed to data_start.
17500 (data_start_file): Obsolete variable removed.
17501 (bss_section):
17502 (extra_bss_size):
17503 (bss_section_static):
17504 (bss_start_static):
17505 (bss_size_static):
17506 (extra_bss_size_static):
17507 (heap_section): New variables.
17508 (_start): Remove code based on old unexec method. Call init_heap
17509 to initialize sbrk heap.
17510 (close_file_data): Update size of file when closing, so that
17511 unexec doesn't have to work out exact size in advance.
17512 (get_bss_info_from_map_file):
17513 (get_section_size): Obsolete functions removed.
17514 (rva_to_section): Fix minor bug, and add a work-around for a bug
17515 in very old linkers.
17516 (offset_to_section):
17517 (relocate_offset): New functions.
17518 (OFFSET_TO_RVA):
17519 (RVA_TO_OFFSET):
17520 (RVA_TO_SECTION_OFFSET):
17521 (PTR_TO_RVA):
17522 (PTR_TO_OFFSET):
17523 (OFFSET_TO_PTR): New macros.
17524 (get_section_info): Modify to support new unexec method;
17525 determines address ranges in process that need dumping, and COFF
17526 sections where data will be dumped. Allows for static and global
17527 bss data to be in separate ranges. No longer relies on knowledge
17528 of section names.
17529 (copy_executable_and_dump_data_section): Renamed
17530 copy_executable_and_dump_data. Completely rewritten to copy
17531 executable section by section, so that raw data areas can be
17532 expanded to hold dumped data as necessary. Allows for bss data to
17533 be in same section as initialized data. Reduces size of static
17534 heap section to that used during preload.
17535 (dump_bss_and_heap):
17536 (w32_fatal_reload_error):
17537 (read_in_bss):
17538 (map_in_heap): Obsolete functions removed.
17539 (unexec): Rounds off preload heap to nearest page rather than
17540 virtual allocation unit. Modified to match other changes.
17541
17542 * mem-limits.h: (get_lim_data): Use reserved_heap_size instead of
17543 data_region_size.
17544
17545 * makefile.nt: (TEMACS_TMP): New macro.
17546 ($(TEMACS)): Output to TEMACS_TMP from link, use post-link
17547 processor to add static heap section in support of new unexec.
17548
17549 * lastfile.c: Include config.h to pick up data layout pragmas.
17550 [WINDOWSNT]: Remove explicit pragma.
17551
175521999-01-12 Kenichi Handa <handa@etl.go.jp>
17553
17554 * coding.c (Fdecode_sjis_char): Decode Japanese Katakana character
17555 correctly.
17556 (Fencode_sjis_char): Encode Japanese Katakana character correctly.
17557
175581999-01-11 Dave Love <fx@gnu.org>
17559
17560 * coding.c (syms_of_coding): Doc fix for inhibit-eol-conversion.
17561
175621999-01-11 Richard Stallman <rms@psilocin.ai.mit.edu>
17563
17564 * keyboard.c (read_key_sequence): In key-translation-map and
17565 function-key-map, handle symbol with array as fn def.
17566 In function-key-map, handle symbol with keymap as fn def,
17567 and autoloaded definitions.
427ec082 17568
26901792
DL
17569 * puresize.h (BASE_PURESIZE): Increment to 500000.
17570
17571 * print.c (Qtemp_buffer_setup_hook): New variable.
17572 (syms_of_print): Init and staticpro that.
17573 (temp_output_buffer_setup): Run Qtemp_buffer_setup_hook.
17574
175751999-01-11 Kenichi Handa <handa@etl.go.jp>
17576
17577 * insdel.c (del_range_1): Call signal_after_change.
17578 (del_range_byte): Likewise.
17579 (del_range_both): Likewise.
17580 (del_range_2): Don't call signal_after_change.
17581
17582 * xdisp.c (message_dolog): Use insert_1_both to avoid running any
17583 Lisp code here.
17584
175851999-01-07 Richard Stallman <rms@psilocin.ai.mit.edu>
17586
17587 * eval.c (find_handler_clause): If SIG is nil (memory full error),
17588 never run the debugger, and don't bother checking the args
17589 to see whether the debugger should be run.
17590
175911999-01-06 Richard Stallman <rms@psilocin.ai.mit.edu>
17592
17593 * keyboard.c (read_key_sequence):
17594 Tell get_keyelt to look handle autoloads.
17595 Handle symbols defined as keymaps, and autoloaded keymaps.
17596
175971999-01-06 Kenichi Handa <handa@etl.go.jp>
17598
17599 * search.c (search_buffer): Fix previous change.
17600
176011999-01-06 Eli Zaretskii <eliz@gnu.org>
17602
17603 * w16select.c (set_clipboard_data): Terminate the text with a null
17604 character. Don't allow to put binary data into the clipboard.
17605 Return zero in case of success, 1 or 2 otherwise.
17606 (get_clipboard_data): Only bail out if the null character is in
17607 the last 32-byte chunk of clipboard data
17608 (Fw16_set_clipboard_data): Make ok and put_status be unsigned. If
17609 they save binary data, print a message in the echo area saying the
17610 text was not put into the clipboard.
17611
17612 * msdos.c (IT_write_glyphs): Move constant expression out of the loop.
17613
176141999-01-06 Andreas Schwab <schwab@gnu.org>
17615
17616 * systty.h [__GLIBC__ >= 2]: Check __FAVOR_BSD instead of
17617 _BSD_SOURCE, the latter is always defined.
17618
176191999-01-05 Richard Stallman <rms@psilocin.ai.mit.edu>
17620
17621 * fns.c (Frequire): Don't fail to unbind bindings.
17622
176231999-01-02 Richard Stallman <rms@psilocin.ai.mit.edu>
17624
17625 * emacs.c (main) [DOUG_LEA_MALLOC]: Don't call r_alloc_reinit.
17626
17627 * charset.c (Ffind_charset_region): Fix doc typo.
17628
176291998-12-31 Eli Zaretskii <eliz@mescaline.gnu.org>
17630
17631 * msdos.c (IT_write_glyphs): Convert unibyte characters to
17632 multibyte in unibyte buffers only.
17633
17634 * keymap.c (Fdefine_prefix_command): Accept a third argument NAME
17635 and pass it to Fmake_sparse_keymap.
17636
176371998-12-29 Richard Stallman <rms@psilocin.ai.mit.edu>
17638
17639 * alloc.c (MMAP_MAX_AREAS): New macro.
17640 (allocate_vectorlike, make_uninit_multibyte_string): Use that.
17641 (init_alloc_once): Use that.
17642
17643 * s/gnu-linux.h [DOUG_LEA_MALLOC] (REL_ALLOC): Undefine it.
17644
17645 * alloc.c (lisp_malloc, lisp_free): New functions.
17646 Use them instead of malloc, xmalloc, and xfree, for Lisp objects.
17647 Don't set allocating_for_lisp in the callers; let lisp_malloc do it.
17648 (n_interval_blocks, n_float_blocks): New variable.
17649 (n_cons_blocks, n_vectors, n_symbol_blocks): New variable.
17650 (n_marker_blocks, n_string_blocks): New variable.
17651 (init_intervals, make_interval): Set a count variable.
17652 Use lisp_malloc instead of setting allocating_for_lisp.
17653 (init_float, make_float, init_cons, Fcons): Likewise.
17654 (allocate_vectorlike, init_symbol, Fmake_symbol): Likewise
17655 (init_marker, allocate_misc, init_strings): Likewise.
17656 (make_uninit_multibyte_string): Likewise.
17657 (gc_sweep, compact_strings): Decrement the count variables.
17658
17659 * alloc.c (uninterrupt_malloc): Don't store Emacs's hooks
17660 into the old_..._hook variables.
17661
176621998-12-28 Richard Stallman <rms@psilocin.ai.mit.edu>
17663
17664 * keyboard.c: In each active map, for each menu bar item, use only
17665 the first submap.
17666 (menu_bar_one_keymap): Initialize menu_bar_one_keymap_changed_items.
17667 (menu_bar_item): Update and test menu_bar_one_keymap_changed_items.
17668 (syms_of_keyboard): Staticpro and init it.
17669
427ec082 17670 * xmenu.c (single_keymap_panes):
26901792
DL
17671
176721998-12-28 Andrew Innes <andrewi@delysid.gnu.org>
17673
17674 * w32fns.c (w32_msg_pump): Ignore WM_NULL message posted to thread
17675 by complete_deferred_msg.
17676 (post_character_message): Cancel all deferred messages when
17677 quit_char is typed, in order to break out of potential deadlocks.
17678 (cancel_all_deferred_msgs): New function.
17679 (complete_deferred_msg): Don't abort if msg not found; may have
17680 been cancelled.
17681 (Fw32_reconstruct_hot_key): Use pre-interned symbols.
17682 (Fw32_send_sys_command): Wait for system command to
17683 complete before returning.
427ec082 17684
26901792
DL
17685 * w32term.c (x_iconify_frame): Wait for frame to be iconified; do
17686 not set async_iconified flag though.
17687
17688 * w32proc.c: (Vw32_start_process_inherit_error_mode): New variable.
17689 (create_child): Use it.
17690 (syms_of_ntproc): Defvar it. Also fix docstrings for
17691 w32-start-process-share-console and w32-start-process-show-window.
17692
17693 * unexw32.c (_start): Force system calls accessing unmounted
17694 devices to fail without prompting.
17695
176961998-12-26 Richard Stallman <rms@psilocin.ai.mit.edu>
17697
17698 * emacs.c (main): Call memory_warnings and uninterrupt_malloc
17699 even when starting the dumped Emacs.
17700
17701 * keymap.c (Fsingle_key_description): Handle (control ?x) etc.
17702 (Fkey_description): Handle lists like vectors.
17703
177041998-12-21 Kenichi Handa <handa@etl.go.jp>
17705
17706 * callint.c (Fcall_interactively) <'C'>: Give Fread_char Qnil
17707 because of the change of the second argument of Fread_char.
17708
17709 * charset.c (Fcharset_after): Check range. If POS is out of
17710 range, return nil.
17711
17712 * keyboard.c (read_char): Don't bind input-method-exit-on-first-char.
17713
17714 * lread.c (Fread_char): Change the meaning of the second argument.
17715 (Fread_event): Likewise.
17716 (Fread_char_exclusive): Likewise.
17717
17718 * print.c (printchar): Fix previous change.
17719
17720 * process.c (read_process_output): Decide the multibyteness of
17721 string given to a process filter by a coding system used for
17722 decoding the process output.
17723
177241998-12-21 Eli Zaretskii <eliz@mescaline.gnu.org>
17725
17726 * xterm.c (dumpglyphs): Don't convert 7-bit ASCII characters via
17727 nonascii-translation-table.
17728 * msdos.c (IT_write_glyphs): Likewise.
17729 * fns.c (concat): Likewise.
17730 * charset.c (unibyte_char_to_multibyte): Likewise.
17731 * insdel.c (copy_text, count_size_as_multibyte): Likewise.
17732
177331998-12-21 Andreas Schwab <schwab@delysid.gnu.org>
17734
17735 * doc.c (Fdocumentation): Change the doc string for prefix
17736 commands to make it a complete sentence in one line.
17737
177381998-12-16 Petri Kaurinkoski <Petri.Kaurinkoski@hut.fi>
17739
17740 * s/irix6-5.h: New file.
17741 * s/irix6-0.h (IRIX6): Define this symbol.
17742 * s/usg5-4.h (TIOCSIGSEND): Don't define this if irix6.
17743 (bcopy, bcmp, bzero): Likewise.
17744 * m/iris4d.h (LIBS_MACHINE): Leave this blank if irix6.5.
17745 (C_SWITCH_MACHINE): New value for irix6.5.
17746
177471998-12-15 Richard Stallman <rms@gnu.org>
17748
17749 * fns.c (Fbase64_decode_region, Fbase64_decode_string):
17750 Do free malloc'd memory even in case of failure. Use xfree, not free.
17751 (Fbase64_encode_region, Fbase64_encode_string): Use xfree, not free.
17752 (base64_decode_1): Don't fail for short lines.
17753
17754 * print.c (printchar): Outputting multibyte characters
17755 to echo area always makes it multibyte.
17756
17757 * search.c (search_buffer): Don't use Boyer-Moore
17758 to search for an invalid multibyte code.
17759 In unibyte case, no need to check whether there are translations
17760 in more than one charset; just set charset_base to 0.
17761
177621998-12-15 Ken'ichi Handa <handa@delysid.gnu.org>
17763
17764 * print.c (printchar): Cancel previous change.
17765
177661998-12-15 Kenichi Handa <handa@etl.go.jp>
17767
17768 * callproc.c: Include "ccl.h".
17769 (Fcall_process): Doc-string modified. Set CODING_MODE_LAST_BLOCK
17770 bit in argument_coding.mode to tell encoding procedure to flush
17771 data. While encoding arguments, if argument_coding uses CCL
17772 program, initialize it again after encoding.
17773 (Fcall_process_region): Doc-string modified. Handle the case that
17774 NARGS is 3.
17775
17776 * ccl.c (CCL_SUCCESS): Don't set ccl->ic.
17777 (ccl_driver) <CCL_End>: Pretend that all source text is consumed.
17778 Set `ic' to the head of this command.
17779 (ccl_driver) <CCL_ReadMultibyteChar2>: Return a single byte 8-bit
17780 code for an invalid code.
17781 (setup_ccl_program): If the arg VEC is nil, skip setting ups
17782 based on VEC.
17783
17784 * charset.c (Qunknown): New variable.
17785 (init_charset_once): Intern and staticpro Qunknown. Initialize
17786 all elements of Vcharset_symbol_table to Qunknown.
17787 (find_charset_in_str): New arg MULTIBYTE. If it is zero, check
17788 unibyte characters only. For an invalid composition sequence, set
17789 CHARSETS[1] to 1.
17790 (Ffind_charset_region): Call find_charset_in_str with an
17791 appropriate MULTIBYTE arg. If undefined charsets are found,
17792 include `unknown' is the return value.
17793 (Ffind_charset_string): Likewise.
17794 (Fsplit_char): If CHAR is invalid, return `(unknown CHAR)'.
17795 (str_cmpchar_id): Max composite character code should be less than
17796 GENERIC_COMPOSITION_CHAR.
17797
17798 * charset.h (find_charset_in_str): Update declaration.
17799
17800 * coding.c (DECODE_DESIGNATION): Jump to label_invalid_code if
17801 final_char is invalid.
17802 (decode_coding): If coding->type is coding_type_ccl, call
17803 ccl_coding_driver even if SRC_BYTES is zero.
17804 (code_convert_region): Update `inserted' correctly after calling
17805 coding->post_read_conversion. Even after the code converter
17806 consumed all source text, call it once more if it is
17807 coding_type_ccl to flush out data.
17808
17809 * fileio.c (Finsert_file_contents): Even if INSERTED is zero, if
17810 CODING is handled by CCL program, call code_convert_region.
17811
17812 * fns.c (string_char_to_byte): Handle invalid multibyte sequence
17813 correctly.
17814 (string_byte_to_char): Likesize.
17815
17816 * print.c (printchar): When outputting a multibyte character to
17817 echo area, always set message_enable_multibyte to 1.
17818
17819 * process.c (read_process_output): If NBYTES is zero and
17820 CODING_MODE_LAST_BLOCK bit is not yet set in coding->mode, set it
17821 and try decoding again.
17822 (Fprocess_send_eof): If the coding system of PROCESS
17823 requires flushing, call send_process with null-string at first.
17824
17825 * w16select.c (Fw16_set_clipboard_data): Call find_charset_in_str
17826 with MULTIBYTE arg 0.
17827 * w32select.c (Fw32_set_clipboard_data): Likewise.
17828 * xselect.c (lisp_data_to_selection_data): Likewise.
17829
178301998-11-30 Richard Stallman <rms@psilocin.ai.mit.edu>
17831
17832 * search.c (Freplace_match): Set OPOINT clearly for the case
17833 where point is in the middle of the text to be replaced.
17834
17835 * xdisp.c (display_text_line): When handling HPOS < 0 after loop,
17836 if compute_motion fails to advance at all, don't back it up.
17837
178381998-12-10 Geoff Voelker <voelker@cs.washington.edu>
17839
17840 * w32.c (w32_get_long_filename): Handle root dirs correctly.
17841
427ec082 17842 * s/ms-w32.h (LOCALTIME_CACHE): Define.
26901792
DL
17843
178441998-12-09 Richard Stallman <rms@gnu.org>
17845
17846 * insdel.c (insert_from_buffer_1): Properly count the size
17847 of output from conversion to multibyte even when input
17848 is split across the gap.
17849
178501998-12-09 Karl Heuer <kwzh@gnu.org>
17851
17852 * keyboard.c: Doc fixes.
17853
17854 * s/irix4-0.h (C_SWITCH_SYSTEM) [!__GNUC__]: Increase space.
17855
178561998-12-08 Andrew Innes <andrewi@harlequin.co.uk>
17857
17858 * w32select.c (Fw32_get_clipboard_data): Do not delete isolated CR
17859 characters, only convert CRLF to LF.
17860
178611998-12-08 Geoff Voelker <voelker@cs.washington.edu>
17862
17863 * makefile.nt: Do string comparision of _NMAKE_VER.
17864
178651998-12-06 Eli Zaretskii <eliz@mescaline.gnu.org>
17866
17867 * Makefile.in (msdos.o): Depend on termchar.h, charset.h,
17868 coding.h, and disptab.h
17869
17870 * msdos.c (Vdos_unsupported_char_glyph): New variable.
17871 (syms_of_msdos): DEFVAR_LISP it.
17872 (IT_insert_glyphs, IT_delete_glyphs): New functions which abort Emacs.
17873 (internal_terminal_init): Set up insert_glyphs_hook and
17874 delete_glyphs_hook to call them. Explicitly set char_ins_del_ok to 0.
17875 (unibyte_display_via_language_environment): New variable.
17876 (syms_of_msdos): Devfar it.
17877 (IT_write_glyphs): Honor glyph aliasing via Vglyph_table.
17878 Encode the character codes of the glyphs according to the
17879 terminal_coding in effect.
17880
178811998-12-04 Andreas Schwab <schwab@delysid.gnu.org>
17882
17883 * fns.c (Fstring_as_unibyte): Doc fix.
17884
178851998-12-03 Andreas Schwab <schwab@delysid.gnu.org>
17886
17887 * charset.h: Declare char_valid_p.
17888
178891998-12-03 Eli Zaretskii <eliz@mescaline.gnu.org>
17890
17891 * dosfns.c (dos_cleanup): Flush and fsync the termscript stream.
17892
17893 * msdos.c (init_environment): Record the time we started up.
17894 (IT_reset_terminal_modes): Don't restore the screen if we exit too
17895 fast after startup (aka crash).
17896
178971998-12-02 Geoff Voelker <voelker@cs.washington.edu>
17898
17899 * w32.c (check_windows_init_file): Use decode_env_path when
17900 using EMACSLOADPATH.
17901
179021998-12-02 Jason Rumney <jasonr@altavista.net>
17903
17904 * w32term.c (dumpglyphs): Use unsigned char arrays.
17905 Use FONT_MAX_WIDTH to detect and fudge proportional fonts
17906 for various languages.
17907 Compensate for fonts that have underhangs (e.g., Thai).
17908
17909 * w32term.h (FONT_MAX_WIDTH): New macro.
17910
179111998-12-02 Andrew Innes <andrewi@harlequin.co.uk>
17912
17913 * keyboard.c (Qlanguage_change): New variable.
17914 (syms_of_keyboard): Init it.
17915 (kbd_buffer_get_event) [WINDOWSNT]: Generate language-change events.
17916 (lispy_function_keys) [HAVE_NTGUI]: Remove names for modifier
17917 keys; add name for Escape key; extend to 256 elements.
17918 (parse_modifiers): Make non-static.
17919
17920 * keyboard.h (parse_modifiers): Declare prototype.
17921
17922 * termhooks.h (event_kind) [WINDOWSNT]: Define language_change_event.
17923
17924 * w32fns.c (w32_last_error): Fix cut+paste error.
17925 (Vw32_phantom_key_code): New variable.
17926 (Qhyper, Qsuper, Qmeta, Qalt, Qctrl, Qcontrol, Qshift): New variables.
17927 (syms_of_w32fns): Init and register them.
17928 (reset_modifiers): Use a more precise test for whether Emacs has
17929 keyboard focus. Synchronize state of all keys that can be used as
17930 modifiers, to overcome problems arising from hot-keys.
17931 (w32_key_to_modifier): Be careful not to call intern() to avoid
17932 requiring thread synchronization.
17933 (w32_msg_pump): Handle new WM_EMACS_TOGGLE_LOCK_KEY message.
17934 (w32_wnd_proc): Ensure lock key indicator lights are updated
17935 promptly on Windows 9x, by passing key events on to the system.
17936 (w32_wnd_proc): Use Vw32_phantom_key_code to stop system
17937 responding to Windows key events when not wanted.
17938 (w32_wnd_proc): Undo the mapping of Ctrl-Pause into cancel and
17939 Ctrl-NumLock into pause by the system.
17940 (w32_wnd_proc): Don't translate key combinations containing any
17941 modifiers other than shift (and capslock).
17942 (w32_wnd_proc): Reset modifier key states when receiving focus (we
17943 can't determine the key states until we have keyboard focus).
17944 (Fw32_toggle_lock_key): New function.
17945 (syms_of_w32fns): Defsubr it.
17946
17947 * w32inevt.c (key_event): Use Vw32_phantom_key_code. Undo the
17948 mapping of Ctrl-Pause into cancel, and Ctrl-NumLock into pause.
17949 (w32_console_toggle_lock_key): New function.
17950
17951 * w32term.h (WM_EMACS_TOGGLE_LOCK_KEY): New define.
17952
179531998-11-30 Richard Stallman <rms@psilocin.ai.mit.edu>
17954
17955 * search.c (Freplace_match): Set OPOINT clearly for the case
17956 where point is in the middle of the text to be replaced.
17957
17958 * xdisp.c (display_text_line): When handling HPOS < 0 after loop,
17959 if compute_motion fails to advance at all, don't back it up.
17960
179611998-11-28 Richard Stallman <rms@psilocin.ai.mit.edu>
17962
17963 * xfns.c (Qouter_window_id): New variable.
17964 (syms_of_xfns): Initialize it.
17965 (x_report_frame_params): Set up outer-window-id parameter.
17966
17967 * keymap.c (Fsingle_key_description): Fix previous change.
17968
179691998-11-26 Ken'ichi Handa <handa@delysid.gnu.org>
17970
17971 * lisp.h (Frequire): Update declaration.
17972
179731998-11-26 Kenichi Handa <handa@etl.go.jp>
17974
17975 * ccl.c (ccl_driver) <CCL_TranslateCharacter>: Don't suppress MSB
17976 if the charset is ascii.
17977 (ccl_driver) <CCL_TranslateCharacterConstTbl>: Likewise.
17978
17979 * charset.c (non_ascii_char_to_string): If C has modifier bits,
17980 make an appropriate one byte string.
17981 (char_bytes): Handle the case that C is a single byte char or has
17982 modifier bits.
17983
17984 * charset.h (CHAR_BYTES): If C has modifier bits, return 1.
17985
17986 * cmds.c (internal_self_insert): If C has modifier bits, insert
17987 appropriate one byte char.
17988
179891998-11-25 Richard Stallman <rms@psilocin.ai.mit.edu>
17990
17991 * fns.c (Fstring_as_unibyte, Fstring_as_multibyte):
17992 Clear text properties in the new string.
17993
179941998-11-24 Felix Lee <flee@cygnus.com>
17995
17996 * process.c (read_process_output): Call signal_after_change.
17997
179981998-11-24 Richard Stallman <rms@psilocin.ai.mit.edu>
17999
18000 * buffer.c (syms_of_buffer): Doc fix.
18001
18002 * keyboard.c (syms_of_keyboard): Doc fix.
18003
180041998-11-22 Richard Stallman <rms@psilocin.ai.mit.edu>
18005
18006 * frame.c (Fset_mouse_position): Doc fix.
18007
180081998-11-20 Richard Stallman <rms@psilocin.ai.mit.edu>
18009
18010 * keymap.c (Fmake_keymap): Doc fix.
18011
180121998-11-17 Kenichi Handa <handa@etl.go.jp>
18013
18014 * category.c (word_boundary_p): If C1 or C2 are composite
18015 characters, test their first components.
18016
180171998-11-16 Richard Stallman <rms@sucrose.ai.mit.edu>
18018
18019 * window.c (temp_output_buffer_show): Around temp-buffer-show-hook,
18020 don't do save-excursion, just restore selected window.
18021
18022 * window.c (window_loop): For UNSHOW_BUFFER,
18023 always do consider minibuffer windows.
427ec082 18024
26901792
DL
180251998-11-16 Kenichi Handa <handa@etl.go.jp>
18026
18027 * charset.h (SINGLE_BYTE_CHAR_P): Check if C is negative or not.
18028
18029 * charset.c (non_ascii_char_to_string): If C is negative, signal error.
18030
18031 * lisp.h (CHAR_TABLE_REF): Check if IDX is negative or not.
18032
18033 * s/bsdos4.h: New file.
18034
180351998-11-16 Kenichi Handa <handa@etl.go.jp>
18036
18037 * Makefile.in (abbrev.o): Depend on charset.h
18038 (bytecode.o): Depend on charset.h.
18039
18040 * bytecode.c: Include charset.h.
18041
18042 * abbrev.c: Include charset.h.
18043
18044 * syntax.h (SYNTAX_ENTRY_INT): For a composite character, check
18045 the first component.
18046
180471998-11-13 Ehud Karni <ehud@unix.simonwiesel.co.il>
18048
18049 * m/aviion-intel.h (LIBS_MACHINE): Delete redundant definition.
18050
180511998-11-11 Richard Stallman <rms@gnu.org>
18052
18053 * xterm.c (XTread_socket): Fix previous change in case F == 0.
18054
18055 * s/dgux5-4-3.h (BSD_PGRPS): Add #undef.
18056
18057 * s/dgux4.h (BROKEN_FIONREAD): #undef commented out.
18058 (INTERRUPT_INPUT): #define commented out.
18059
18060 * m/aviion-intel.h: New file.
18061
180621998-11-11 Eli Zaretskii <eliz@delysid.gnu.org>
18063
18064 * fns.c (MAX_ALLOCA): New macro.
18065 (Fbase64_encode_region, Fbase64_encode_string,
18066 Fbase64_decode_region, Fbase64_decode_string): Don't allocate
18067 more than MAX_ALLOCA bytes with alloca; otherwise use xmalloc.
18068
180691998-11-11 Ken'ichi Handa <handa@delysid.gnu.org>
18070
18071 * insdel.c (byte_combining_error): Error message improved.
18072
18073 * charset.c (char_valid_p): Handle a composite character correctly.
18074
180751998-11-11 Kenichi Handa <handa@etl.go.jp>
18076
18077 * charset.c (str_cmpchar_id): Check the byte sequence for
18078 composition more rigidly.
18079 (Fcompose_string): Allow DEL to be composed. Signal error if STR
18080 contains an invalid multibyte sequence.
18081
18082 * xterm.c (x_list_fonts): Don't change the value of maxnames.
18083
180841998-11-10 Andrew Innes <andrewi@harlequin.co.uk>
18085
18086 * w32term.h (struct w32_display_info): New element faked_key.
427ec082
SS
18087 (WM_EMACS_SETKEYBOARDLAYOUT):
18088 (WM_EMACS_REGISTER_HOT_KEY):
26901792 18089 (WM_EMACS_UNREGISTER_HOT_KEY): New message definitions.
427ec082
SS
18090 (LEFT_WIN_PRESSED):
18091 (RIGHT_WIN_PRESSED):
26901792
DL
18092 (APPS_PRESSED): New console keyboard modifier flags.
18093
18094 * w32term.c (convert_to_key_event): Removed.
18095 (is_dead_key): Copied to w32fns.c.
18096 (w32_read_socket): Generate language_change_event. Modify to work
18097 with keyboard handling changes in w32_wnd_proc.
18098
18099 * w32proc.c (sys_kill): Set extended key flag when faking
18100 Ctrl-Break keystrokes.
18101 (Fw32_get_locale_info): Allow LONGFORM parameter to specify an
18102 arbitrary locale property using a numerical index.
18103 (Vw32_valid_codepages): New variable.
427ec082
SS
18104 (enum_codepage_fn):
18105 (Fw32_get_valid_codepages):
18106 (Fw32_get_console_codepage):
18107 (Fw32_set_console_codepage):
18108 (Fw32_get_console_output_codepage):
18109 (Fw32_set_console_output_codepage):
18110 (Fw32_get_codepage_charset):
18111 (Fw32_get_valid_keyboard_layouts):
18112 (Fw32_get_keyboard_layout):
26901792
DL
18113 (Fw32_set_keyboard_layout): New functions, exposing Windows locale
18114 handling functions.
18115 (syms_of_ntproc): Register them.
18116
18117 * w32inevt.c: Include w32term.h and w32heap.h.
18118 (map_keypad_keys):
18119 (Vw32_enable_caps_lock):
18120 (Vw32_enable_num_lock):
18121 (Vw32_pass_lwindow_to_system):
18122 (Vw32_pass_rwindow_to_system):
18123 (Vw32_lwindow_modifier):
18124 (Vw32_rwindow_modifier):
18125 (Vw32_apps_modifier):
18126 (Vw32_scroll_lock_modifier):
18127 (w32_key_to_modifier): Add externs.
18128 (w32_kbd_mods_to_emacs): Recognize Windows keys, Apps key, and
18129 Scroll Lock as potential modifiers; exclude numpad keys from
18130 effect by CapsLock; act on Vw32_enable_caps_lock; remove obsolete
18131 code.
18132 (is_dead_key): Copy from w32fns.c.
18133 (w32_kbd_patch_key): Comment attempt to improve handling of
18134 dead-keys, and system bug relating to same on Windows NT. Work
18135 around the bug by calling ToUnicode and then converting to the
18136 correct codepage.
18137 (map_virt_key): Removed obsolete variable.
18138 (lispy_function_keys): Add extern.
18139 (key_event): Major rework of keyboard input handling: optionally
18140 recognize Windows keys and Apps key as modifiers; optionally treat
18141 NumLock, CapsLock and ScrollLock as function keys; let system
18142 translate keystrokes to characters to avoid system bugs relating
18143 to dead-key handling; preserve shift distinction for control
18144 characters. Remove some obsolete code.
18145
18146 * makefile.nt ($(BLD)\w32inevt.obj): Add dependencies on w32term.h
18147 and w32heap.h.
18148
18149 * w32fns.c (Vw32_pass_optional_keys_to_system): Variable removed.
18150 (Vw32_pass_lwindow_to_system):
18151 (Vw32_pass_rwindow_to_system):
18152 (Vw32_lwindow_modifier):
18153 (Vw32_rwindow_modifier):
18154 (Vw32_apps_modifier):
18155 (Vw32_enable_num_lock):
18156 (Vw32_enable_caps_lock):
18157 (Vw32_scroll_lock_modifier): New variables.
18158 (modifier_set): Return toggle state for Scroll Lock.
18159 (w32_key_to_modifier): New function. Returns chosen modifier bit
18160 for given key.
18161 (w32_get_modifiers): Returns modifier flags for
18162 non-keyboard input events.
18163 (construct_console_modifiers): Renamed from construct_modifiers;
18164 recognize Windows and Apps keys as modifiers.
18165 (w32_get_key_modifiers): New function. Returns modifier flags for
18166 keyboard input events.
18167 (map_keypad_keys): Make non-static. Use second arg as extended
18168 flag.
18169 (w32_grabbed_keys): New variable.
18170 (HOTKEY, HOTKEY_ID, HOTKEY_VK_CODE, HOTKEY_MODIFIERS): New macros.
18171 (register_hot_keys):
18172 (unregister_hot_keys):
18173 (lookup_vk_code):
18174 (w32_parse_hot_key):
18175 (Fw32_register_hot_key):
18176 (Fw32_unregister_hot_key):
18177 (Fw32_registered_hot_keys):
18178 (Fw32_reconstruct_hot_key): New functions to support hotkeys.
18179 (post_character_message): New function.
18180 (w32_msg_pump): Handle new messages for using hotkeys and changing
18181 keyboard layout/language.
18182 (w32_wnd_proc): Major rework of keyboard input handling:
18183 optionally recognize Windows keys and Apps key as modifiers;
18184 optionally treat NumLock, CapsLock and ScrollLock as function
18185 keys; let system translate keystrokes to characters to avoid
18186 system bugs relating to dead-key handling; preserve shift
18187 distinction for control characters; forward keyboard
18188 layout/language changes to lisp; detect and convert hot-key events
18189 to normal keystrokes.
18190 (syms_of_w32fns): Register new functions and variables.
18191 (w32_last_error): New function for use in debugging.
18192
181931998-11-10 Kenichi Handa <handa@etl.go.jp>
18194
18195 * category.h (CATEGORY_SET): Adjusted for the change of
18196 cmpchar_component.
18197 (CATEGORY_SET): Likewise.
18198
18199 * charset.c (cmpchar_component): New arg NOERROR. Check
18200 composition char ID more strictly.
18201 (Fcmpchar_component): Call cmpchar_component with NOERROR arg zero.
18202 (Fcmpchar_cmp_rule): If CHARACTER should be composed relatively,
18203 return 255.
18204 (Fcompose_string): Signal error if STR contains a rule-based
18205 composition character.
18206
18207 * charset.h (cmpchar_component): Proto-type adjusted.
18208
182091998-11-09 Kenichi Handa <handa@etl.go.jp>
18210
18211 * charset.c (string_to_non_ascii_char): Return correct length for
18212 a charset of dimension 2 and composition character.
18213
182141998-11-08 Richard Stallman <rms@sucrose.ai.mit.edu>
18215
18216 * keymap.c (Fsingle_key_description): Handle generic characters.
18217
18218 * process.c (Fprocess_status): Doc fix.
18219
182201998-11-06 Ken'ichi Handa <handa@delysid.gnu.org>
18221
18222 * charset.c (init_charset_once): Fix previous change.
18223
182241998-11-06 Kenichi Handa <handa@etl.go.jp>
18225
18226 * charset.c (string_to_non_ascii_char): Fix previous change.
18227 (char_valid_p): Check the validity of CHARSET by CHARSET_DEFINED_P.
18228
18229 * charset.h (SPLIT_NON_ASCII_CHAR): Check dimension of an invalid
18230 character correctly.
18231 (STRING_CHAR): Handle an invalid charater correctly.
18232
182331998-11-05 Kenichi Handa <handa@etl.go.jp>
18234
18235 * charset.c (string_to_non_ascii_char): Fix previous change.
18236
18237 * charset.h (MAKE_NON_ASCII_CHAR): Check validity of CHARSET.
18238
18239 * editfns.c (Fstring_to_char): Don't return a multibyte character
18240 if STRING is a unibyte string.
18241
18242 * indent.c (MULTIBYTE_BYTES_WIDTH): Check validity of a multibyte
18243 character.
18244
18245 * xdisp.c (display_text_line): Check validity of a multibyte character.
18246 (display_string): Likewise. Handle an invalid character correctly.
18247
182481998-11-05 Karl Heuer <kwzh@gnu.org>
18249
18250 * insdel.c (Fcombine_after_change_execute): Return nil, not junk.
18251 If nothing to do, return immediately.
18252 (syms_of_insdel): Initialize combine_after_change_buffer.
18253
182541998-11-05 Richard Stallman <rms@gnu.org>
18255
18256 * xterm.c (XTread_socket): ButtonPress clears f->mouse_moved.
18257
182581998-11-04 Geoff Voelker <voelker@cs.washington.edu>
18259
18260 * w32term.c (w32_enable_unicode_output): Rename from
18261 w32_no_unicode_output.
18262 (w32_use_unicode_for_codepage, syms_of_w32term): Use new name
18263 and new semantics.
18264
182651998-11-04 Jason Rumney <jasonr@altavista.net>
18266
18267 * w32fns.c (w32_list_fonts): Report an error if a frame has not
18268 been created yet.
18269
18270 * w32term.c (dumpglyphs): Use FRAME_FONT for w32_fill_area.
18271
182721998-11-04 Kenichi Handa <handa@etl.go.jp>
18273
18274 * charset.c (string_to_non_ascii_char): Change the check for the
18275 varidity of multibyte form.
18276 (update_charset_table): Check validity of BYTES. Don't set
18277 bytes_by_char_head here.
18278 (init_charset_once): Set bytes_by_char_head completely.
18279
18280 * frame.c (do_switch_frame): Cancel previous change.
18281
18282 * print.c (print_string): Check validity of a character.
18283 (print): Likewise.
18284
18285 * sysdep.c [nec_ews_svr4]: Extern *_sobuf.
18286
18287 * m/ews4800.h, s/ux4800.h: New files.
18288
182891998-11-03 Theodore Jump <tjump@tertius.com>
18290
18291 * makefile.nt: Compile multiple source files when possible.
18292
18293 * w32faces.c (Qmouse_face): Replace definition with extern decl.
427ec082 18294
26901792
DL
182951998-11-03 Andrew Innes <andrewi@delysid.gnu.org>
18296
18297 * w32.c (stat): GetFileInformationByHandle can legitimately fail,
18298 so don't rely on it succeeding.
18299
18300 * w32fns.c (x_to_w32_font): Specify DEFAULT_CHARSET in the w32
18301 LOGFONT struct if x font doesn't specify the charset.
18302 (x_to_w32_charset): Change >= to == when testing results of
18303 stricmp.
18304
183051998-11-02 Richard Stallman <rms@sucrose.ai.mit.edu>
18306
18307 * fns.c (Frequire): New arg NOERROR.
18308
183091998-11-02 Andrew Innes <andrewi@harlequin.co.uk>
18310
18311 * fileio.c (Fsubstitute_in_file_name) [DOS_NT]: Fix typo.
18312
183131998-10-31 Richard Stallman <rms@psilocin.ai.mit.edu>
18314
18315 * xfaces.c (Qmouse_face): Replace definition with extern decl.
18316 (syms_of_xfaces): Initialization deleted.
18317
18318 * textprop.c (Qmouse_face): Variable definition moved here.
18319 (syms_of_textprop): Initialize it.
18320
18321 * data.c (set_internal): For built-in maybe-local vars,
18322 when BINDFLAG is set, do not mark them as local.
18323
183241998-10-31 Ken'ichi Handa <handa@delysid.gnu.org>
18325
18326 * insdel.c (replace_range): Fix previous change.
18327
183281998-10-31 Kenichi Handa <handa@etl.go.jp>
18329
18330 * editfns.c (Fsubst_char_in_region): Fix previous change.
18331 (Ftranslate_region): Fix previous change.
18332
18333 * fns.c (Fbase64_decode_region): Fix previous change.
18334
18335 * frame.c (do_switch_frame): Update minibuf_window if necessary.
18336
18337 * insdel.c (byte_combining_error): New function.
18338 (CHECK_BYTE_COMBINING_FOR_INSERT): Call byte_combining_error.
18339 (insert_from_string_1): Set *(GPT_ADDR) to 0 before calling
18340 CHECK_BYTE_COMBINING_FOR_INSERT.
18341 (insert_from_buffer_1): Likewise.
18342 (adjust_after_replace): Check the posibility of inhibitted byte
18343 combining correctly.
18344 (replace_range): Before signaling an error for inhibitted byte
18345 combining, recover the buffer in a safe state.
18346 (del_range_2): Check the posibility of inhibitted byte combining
18347 correctly.
18348
183491998-10-30 Andreas Schwab <schwab@delysid.gnu.org>
18350
18351 * xselect.c (Vselection_coding_system): Doc fix.
18352
18353 * fns.c (Fbase64_encode_region): Use SET_PT_BOTH instead of SET_PT
18354 when we have both char and byte position. Fix type clashes.
18355
18356 * eval.c (Fsignal): Use a separate format string when passing
18357 error message string to fatal, in case it contains %'s.
18358
18359 * editfns.c (Fchar_after): Fix type clashes.
18360
18361 * charset.c (Fchar_bytes): Doc fix.
18362 (char_bytes): Fix returned value to match returned type.
18363 (syms_of_charset): Fix type clash in initialisation of
18364 Vauto_fill_chars.
18365
183661998-10-29 Geoff Voelker <voelker@cs.washington.edu>
18367
18368 * w32console.c (initialize_w32_display): Use buffer coords
18369 instead of buffer size (which may be larger than the window).
18370
18371 * fileio.c (init_fileio_once): New function.
18372
18373 * emacs.c (main): Invoke init_fileio_once.
18374
183751998-10-28 Paul Eggert <eggert@twinsun.com>
18376
18377 * xterm.c (XTread_socket): Check the returned value of
18378 XmbLookupString more carefully.
18379
183801998-10-28 Kenichi Handa <handa@etl.go.jp>
18381
18382 * coding.c (DECODE_CHARACTER_ASCII): Check validity of inserted code.
18383 (DECODE_CHARACTER_DIMENSION1): Likewise.
18384 (DECODE_CHARACTER_DIMENSION2): Likewise.
18385 (decode_coding_sjis_big5): Check the 2nd byte of SJIS correctly.
18386
18387 * editfns.c (Fsubst_char_in_region): Fix previous change.
18388 (Ftranslate_region): Fix previous change.
18389
18390 * insdel.c (check_markers): Check if markers are at character boundry.
18391 (adjust_markers_for_insert): Fix previous change.
18392 (count_combining_before): Don't limit the check at BEGV.
18393 (count_combining_after): Don't limit the check at ZV.
18394 (CHECK_BYTE_COMBINING_FOR_INSERT): New macro.
18395 (insert_1_both): Call CHECK_BYTE_COMBINING_FOR_INSERT.
18396 (insert_from_string_1): Likewise.
18397 (insert_from_buffer_1): Likewise.
18398 (adjust_after_replace): Inhibit bytes combined across region
18399 boundary. Update end_unchanged correctly.
18400 (replace_range): Call CHECK_BYTE_COMBINING_FOR_INSERT. Update
18401 end_unchanged correctly.
18402 (del_range_2): Inhibit bytes combined across region boundary.
18403 Update end_unchanged correctly.
18404
184051998-10-27 Geoff Voelker <voelker@cs.washington.edu>
18406
18407 * w32.c (check_windows_init_file): Also look in load path specified
18408 in environment.
18409
18410 * w32console.c (Fset_message_beep): Recognize 'silent.
18411 (w32_sys_ring_bell): Do nothing for the 'silent sound.
427ec082 18412
26901792
DL
18413 * w32fns.c (w32_color_map_lookup): Remove duplicate definition.
18414
18415 * w32select.c (Vnext_selection_coding_system): New variable.
18416 (syms_of_w32select): DEFVAR_LISP it.
18417 (Fw32_set_clipboard_data): Use Vnext_selection_coding_system if
18418 non-nil. Always convert multibyte strings.
18419 (Fw32_get_clipboard_data): Use Vnext_selection_coding_system if
18420 non-nil. Always convert a string that includes non-ASCII characters.
427ec082 18421
26901792
DL
184221998-10-27 Richard Stallman <rms@psilocin.ai.mit.edu>
18423
18424 * fns.c (Fbase64_decode_string): Doc fix.
18425 (Fbase64_decode_region, Fbase64_encode_string Fbase64_encode_region):
18426 Likewise.
18427
184281998-10-27 Dave Love <fx@gnu.org>
18429
18430 * fns.c (Fbase64_decode_region, Fbase64_encode_region): Fix
18431 newline in doc string.
18432
184331998-10-27 Kenichi Handa <handa@etl.go.jp>
18434
18435 * editfns.c (Fsubst_char_in_region): Correctly handle the case
18436 that byte combining before happens.
18437 (Ftranslate_region): Likewise.
18438
18439 * insdel.c (adjust_after_replace): Correctly handle the case that
18440 both byte combining before and byte combining after happen.
18441 (replace_range): Likewise.
18442
184431998-10-26 Kenichi Handa <handa@etl.go.jp>
18444
18445 * category.c (syms_of_category): Doc-string modified.
18446
18447 * coding.c (code_convert_region): Kill the work buffer created by
18448 pre-write-conversion.
18449
184501998-10-25 Jason Rumney <jasonr@altavista.net>
18451
18452 * emacs.c (main) [HAVE_NTGUI]: Invoke syms_of_fontset().
18453
184541998-10-23 Kenichi Handa <handa@etl.go.jp>
18455
18456 * coding.c (code_convert_region): While preserving the orignal
18457 point, pay attention to the byte combining problem.
18458
18459 * fns.c (Fbase64_decode_region): Pay attention to the byte
18460 combining problem.
18461
18462 * insdel.c (adjust_markers_for_insert): Adjust markers by taking
18463 combined_before_bytes and combined_after_bytes into account.
18464 (count_combining_after): Handle the case that LENGTH is zero.
18465 (adjust_after_replace): Record deletion at correct buffer
18466 position. Handle the case that LEN is zero.
18467 (replace_range): Record deletion at correct buffer position.
18468 (del_range_2): Call adjust_makers_for_replace to adjust makers for
18469 combined bytes.
18470
184711998-10-21 Richard Stallman <rms@psilocin.ai.mit.edu>
18472
18473 * alloc.c (Fgarbage_collect): Block input around most of the function.
427ec082 18474
26901792
DL
184751998-10-21 Kenichi Handa <handa@etl.go.jp>
18476
18477 * coding.c (setup_coding_system): Fix setting up
18478 coding->spec.ccl.valid_codes for CCL based coding system.
18479 (code_convert_region): Set point to FROM before inserting the
18480 result of pre-write-funciton. Preserve original point.
18481 (code_convert_string): If coding->type is coding_type_ccl, do
18482 conversion even if the length of conversion region is zero.
18483
18484 * fontset.c: Include frame.h before fontset.h.
427ec082 18485 (list_fonts_func): Fix prototype.
26901792
DL
18486
18487 * frame.c: Include frame.h before fontset.h.
18488
18489 * xterm.c: Likewise.
18490
184911998-10-21 Jason Rumney <jasonr@altavista.net>
18492
18493 * x-list-font.c (Fx_list_fonts): Access frame parameters throught
18494 general macros. Don't call x_list_font directory, instead call a
18495 function set in list_fonts_func.
18496
18497 * fontset.h (list_fonts_func): Fix prototype.
18498
184991998-10-20 Jason Rumney <jasonr@altavista.net>
18500
18501 * makefile.nt (w32fns.c): Add x-list-font.c to dependancies.
18502
18503 * w32faces.c: Update comments referring to obsolete structs.
18504 (allocate_face, copy_face, face_eql, load_font,
18505 Fpixmap_spec_p, free_frame_faces, new_computed_face,
18506 frame_update_line_height, merge_faces, compute_base_face,
18507 Fset_face_attribute_internal): Use fontset support based on xfaces.c.
18508
18509 * w32fns.c: (Vx_pixel_size_width): New global variable.
18510 (unibyte_display_via_language_environment): New global variable.
18511 (x_set_font): Add support for setting fontsets.
18512 (Fx_create_frame): Add check_w32(). Initialize fontsets. Fix
18513 font names to match xlfd-tight-regexp.
18514 (w32_load_font): Rewrite based on x_load_font.
18515 (x_to_w32_charset, w32_to_x_charset): Add character sets. Use
18516 `iso8859-1' rather than `ansi'.
18517 (w32_to_x_font): Remove `-' from font name. Remove the `-' off the
18518 end. Move charset into `charset registry' field.
18519 (enum_font_cb2): Check charsets match. Include width in font list.
18520 (w32_list_fonts): Rewrite based on x_list_fonts.
18521 Moved from w32term.c to have access to enumfont_t struct.
18522 (Fx_list_fonts): w32 specific version eliminated. Include
18523 `x-list-fonts.c'.
18524 (w32_get_font_info, w32_query_font, w32_find_ccl_program): New
18525 functions for fontset support - adapted from x_ equivalents.
18526 (syms_of_w32fns): New lisp variables initialised. Function
18527 pointers for fontset.c set up.
18528
427ec082 18529 * w32term.c: Include fontset.h. Define codepage macros.
26901792
DL
18530 Add ENCODE_BIG5 macro from coding.c.
18531 (w32_no_unicode_output): New variable.
18532 (w32_codepage_for_charset, w32_use_unicode_for_codepage): New
18533 functions.
18534 (BUILD_WCHAR_T, BYTE1, BYTE2): New macros.
18535 (dumpglyphs): Rewrite based on xterm.c equivalent.
18536 (x_new_font): Use functionality provided in fontset.c.
18537 (x_new_fontset): New function based on the one in xterm.c.
18538 (syms_of_w32term): Add w32-no-unicode-output flag.
18539
427ec082 18540 * w32term.h: Remove redundant font_info struct definition.
26901792
DL
18541 (Vx_pixel_size_width_font_regexp,
18542 unibyte_display_via_language_environment): Declare variables.
427ec082 18543 (w32_list_fonts, w32_get_font_info, w32_query_font, w32_load_font):
26901792
DL
18544 Declare functions.
18545 (w32_output): New fields font_baseline and fontset.
18546 (FRAME_FONTSET, FRAME_W32_FONT_TABLE): New macros.
18547
18548 * w32xfns.c: Include charset.h and fontset.h.
18549
185501998-10-20 Richard Stallman <rms@psilocin.ai.mit.edu>
18551
18552 * syntax.c (syms_of_syntax): Fix the setup of Qscan_error.
18553
185541998-10-20 Eli Zaretskii <eliz@mescaline.gnu.org>
18555
18556 * msdos.c (mouse_init): Reset the button press/release info of the
18557 mouse driver.
18558 (mouse_preempted): New variable.
18559 (dos_rawgetc): Don't generate mouse events if mouse is preempted.
18560 (XMenuActivate): Preempt the mouse during menu-handling loop.
18561 Release the current time slice while idling in the menu-handling
18562 loop. Leave the loop only if the user pressed, then released the
18563 same button. Discard all mouse events that are pending in the
18564 event queue before exiting.
18565
185661998-10-19 Richard Stallman <rms@psilocin.ai.mit.edu>
18567
18568 * editfns.c (Fformat): Increase buffer size for floating format.
18569
185701998-10-17 Kenichi Handa <handa@etl.go.jp>
18571
18572 * charset.c (Vauto_fill_chars, Qauto_fill_chars): New variables.
18573 (syms_of_charset): Staticpro and initialize Qauto_fill_chars.
18574 Declare auto-fill-chars as a Lisp variable and initialize it.
18575
18576 * charset.h (Vauto_fill_chars): Extern it.
18577
18578 * cmds.c (internal_self_insert): Check Vauto_fill_chars.
18579
185801998-10-16 Kenichi Handa <handa@etl.go.jp>
18581
18582 * casefiddle.c (casify_object): Use make_string instead of
18583 make_specified_string to cope with byte-combining situation.
18584
18585 * coding.c (decode_coding_iso2022): Set coding->fake_multibyte to
18586 1 when encountered with a code of the range 0x80..0x9F.
18587
185881998-10-14 Eli Zaretskii <eliz@mescaline.gnu.org>
18589
18590 * callproc.c (Fcall_process) [MSDOS]: Use $TMPDIR instead of
18591 trying $TMP and $TEMP, since the former is always set in msdos.c.
18592 (Fcall_process_region) [DOS_NT]: When looking for a place to put
18593 the temporary files, check $TMPDIR as well.
18594
185951998-10-14 Richard Stallman <rms@psilocin.ai.mit.edu>
18596
427ec082 18597 * process.c (exec_sentinel, read_process_output):
26901792
DL
18598 Restore waiting_for_user_input_p after running Lisp code.
18599
18600 * keyboard.c (parse_menu_item): Avoid initialization for Lisp_Object.
18601 (command_loop): Likewise.
18602
186031998-10-14 Kenichi HANDA <handa@etl.go.jp>
18604
18605 * data.c (Faset): Fix previous change.
18606
18607 * fns.c (Ffillarray): Fix previous change.
18608
18609 * insdel.c (adjust_markers_for_combining): This function deleted.
18610 (adjust_markers_for_replace): Correctly adjust marker positions.
18611 Don't record these adjustment because they were recorded already.
18612 (combine_bytes): Don't adjust markers here.
18613
186141998-10-13 Richard Stallman <rms@psilocin.ai.mit.edu>
18615
18616 * minibuf.c (Fdisplay_completion_list): Put on mouse-face properties.
18617
186181998-10-12 Richard Stallman <rms@psilocin.ai.mit.edu>
18619
18620 * keyboard.c (Fclear_this_command_keys): New function.
18621 (syms_of_keyboard): defsubr it.
18622
18623 * macros.c (Fexecute_kbd_macro): Set real_this_command.
18624
186251998-10-12 Kenichi Handa <handa@etl.go.jp>
18626
18627 * ccl.c (CCL_DECODE_SJIS, CCL_ENCODE_SJIS): Swap the definitions.
18628
18629 * charset.c (Fstring): Call make_string instead of
18630 make_string_from_bytes.
18631 (Ffind_charset_region): Include `composition' in the returned list
18632 if the region contains any composite characters.
18633 (Ffind_charset_string): Include `composition' in the returned list
18634 if the string contains any composite characters.
18635 (find_charset_in_str): Handle CMPCHARP arg correctly.
18636
18637 * coding.c (shrink_decoding_region): If a charset other than ascii
18638 is initially designated to G0, don't shrink the region.
18639 (shrink_encoding_region): Likewise.
18640
18641 * data.c (Faset): If ARRAY is a multibyte string, pay attention to
18642 byte-combining situation.
18643
18644 * fns.c (clear_string_char_byte_cache): New function.
18645 (Ffillarray): Handle multibyte string correctly.
18646
18647 * lisp.h (clear_string_char_byte_cache): Extern it.
18648
18649 * xselect.c (lisp_data_to_selection_data): Call
18650 find_charset_in_str with CMPCHARP arg 0.
18651 * w16select.c (Fw16_set_clipboard_data): Likewise.
18652 * w32select.c (Fw32_set_clipboard_data): Likewise.
18653
186541998-10-11 Richard Stallman <rms@psilocin.ai.mit.edu>
18655
18656 * keyboard.c (parse_menu_item): For top level of menu bar,
18657 accept ordinary commands, and treat them just like a keymap.
18658
186591998-10-11 Richard Stallman <rms@sucrose.ai.mit.edu>
18660
18661 * xdisp.c (redisplay_window): Clear w->window_end_valid
18662 before running the window-scroll-functions hook, if appropriate.
18663
186641998-10-10 Richard Stallman <rms@psilocin.ai.mit.edu>
18665
18666 * data.c (Fstring_to_number): Don't recognize floating point
18667 if base is not 10.
18668
18669 * window.c (window_loop): New alternative CHECK_ALL_WINDOWS.
18670 (check_all_windows): New function for debugging tests.
18671 (syms_of_window): Initialize it.
18672
18673 * window.c (Qwindow_configuration_p): New variable.
18674 (Fwindow_configuration_frame): New function.
18675 (syms_of_window): defsubr it.
18676 (Fset_window_configuration): Return t if frame is live.
18677 Use Qwindow_configuration_p.
18678
18679 * xfns.c (check_x_display_info): Don't use selected_frame
18680 if it is dead.
18681
186821998-10-09 Geoff Voelker <voelker@cs.washington.edu>
18683
18684 * w32fns.c (x_create_bitmap_from_file): Skip special files.
18685
186861998-10-08 Kenichi Handa <handa@etl.go.jp>
18687
18688 * buffer.h (inhibit_modification_hooks): Extern it.
18689
18690 * buffer.c (inhibit_modification_hooks): New variable.
18691 (init_buffer_once): Initialize inhibit_modification_hooks to 0.
18692
18693 * charset.c (invalid_character): Prepend `0' to octal
18694 representation. Give error sufficient args.
18695
18696 * coding.c (code_convert_region): Set inhibit_modification_hooks
18697 to 1 before calling Fset_text_properties.
18698
18699 * insdel.c (signal_before_change): If inhibit_modification_hooks
18700 is nonzero, do nothing.
18701 (signal_after_change): Likewise.
18702
187031998-10-08 Emilio Lopes <Emilio.Lopes@Physik.TU-Muenchen.DE>
18704
18705 * process.c: Doc fixes.
18706
187071998-10-08 Richard Stallman <rms@sucrose.ai.mit.edu>
18708
18709 * syntax.c (scan_lists): Bring FROM back into range BEGV...ZV.
18710
187111998-10-07 Geoff Voelker <voelker@cs.washington.edu>
18712
18713 * w32.c (init_ntproc): Check for Windows init file.
18714 (term_ntproc): Do not check for it here.
18715
187161998-09-28 Kenichi Handa <handa@etl.go.jp>
18717
18718 * coding.c (check_composing_code): Fix previous change. Now it
18719 alwasy returns 0 or -1.
18720 (decode_coding_iso2022): Adjusted for the above change.
18721 (encode_coding_iso2022): When encoding the last block, flush out
18722 tailing garbage bytes.
18723 (setup_coding_system): Delete unnecessary code.
18724 (shrink_decoding_region): Check translation table. If ASCII
18725 should be translated, give up shrinking.
18726 (shrink_encoding_region): Likewise.
18727 (SHRINK_CONVERSION_REGION_THRESHHOLD): New macro.
18728 (SHRINK_CONVERSION_REGION): New macro.
18729 (code_convert_region): Call SHRINK_CONVERSION_REGION. Delete text
18730 properties here.
18731 (code_convert_region): In the case of encoding, always calulate
18732 correct character number.
18733 (code_convert_string): Call SHRINK_CONVERSION_REGION.
18734 (code_convert_region1): Don't delete text properties here.
18735
18736 * insdel.c (adjust_after_replace): Don't delete text properties here.
18737
18738 * term.c (encode_terminal_code): Handle raw 8-bit codes correctly.
18739
187401998-09-27 Richard Stallman <rms@psilocin.ai.mit.edu>
18741
18742 * emacs.c (sort_args): Fill extra space with NULL ptrs.
18743
187441998-09-26 Kenichi Handa <handa@etl.go.jp>
18745
18746 * coding.h (struct coding_system): New member composed_chars.
18747
18748 * coding.c (check_composing_code): If the current composing
18749 sequence doesn't end properly, return -1.
18750 (DECODE_CHARACTER_ASCII): Update coding->composed_chars.
18751 (DECODE_CHARACTER_DIMENSION1): Likewise.
18752 (decode_coding_iso2022): Check validity of a composing sequence.
18753 (code_convert_string): If the length of text to be converted is
18754 shrunk to zero, don't perform code conversion.
18755 (shrink_decoding_region): Fix previous change.
18756
18757 * editfns.c (Fformat): Check format control characters.
18758
187591998-09-25 Kenichi Handa <handa@etl.go.jp>
18760
18761 * coding.c (decode_eol): While decoding DOS-like eol, handle a
18762 single CR code correctly.
18763 (shrink_decoding_region) <CODING_CATEGORY_IDX_ISO_7 or
18764 CODING_CATEGORY_IDX_ISO_7_TIGHT>: Skip also 8-bit codes.
18765
187661998-09-23 Geoff Voelker <voelker@cs.washington.edu>
18767
18768 * w32fns.c (w32_color_map_lookup): New function.
18769 (x_to_w32_color): Approximate colors ending in numbers if necessary.
18770
187711998-09-22 Kenichi Handa <handa@etl.go.jp>
18772
18773 * ccl.c (ccl_driver): Report correct CCL program counter on error.
18774
18775 * xmenu.c (single_submenu) [! HAVE_MULTILINGUAL_MENU]: Make
18776 strings unibyte.
18777 (xmenu_show) [! HAVE_MULTILINGUAL_MENU]: Likewise.
18778
187791998-09-22 Kenichi Handa <handa@etl.go.jp>
18780
18781 * callint.c (Fcall_interactively): Don't use input method when
18782 reading a character in the case of `c' code letter.
18783
187841998-09-21 Dave Love <fx@gnu.org>
18785
18786 * editfns.c (Fsave_restriction): Doc fix.
18787
187881998-09-21 Richard Stallman <rms@gnu.org>
18789
18790 * lread.c (build_load_history): Do add to Vload_history
18791 even when dumping Emacs.
18792
187931998-09-18 Kenichi Handa <handa@etl.go.jp>
18794
18795 * ccl.c (CCL_WRITE_CHAR): Don't use bcopy.
18796 (ccl_driver): If BUFFER-MAGNIFICATION of the CCL program is 0,
18797 cause error if the program is going to output some bytes. When
18798 outputing a string to notify an error, check the case that
18799 DST_BYTES is zero.
18800
427ec082 18801 * coding.h (CODING_FINISH_INTERRUPT): New macro.
26901792
DL
18802
18803 * coding.c (ccl_coding_driver): If ccl_driver is interrupted by a
18804 user or the CCL program executed an invalid command, return
18805 CODING_FINISH_INTERRUPT.
18806 (code_convert_region): Pay attention to the converters return
18807 value CODING_FINISH_NORMAL and CODING_FINISH_INTERRUPT.
18808
188091998-09-16 Kenichi Handa <handa@etl.go.jp>
18810
18811 * coding.c (code_convert_region): Update beg_unchanged and
18812 end_unchanged after we delete the source text.
18813
18814 * insdel.c (adjust_markers_for_replace): Don't adjust a byte
18815 position if it is FROM.
18816 (adjust_markers_for_combining): New function.
18817 (combine_bytes): Call adjust_markers_for_combining instead of
18818 adjust_markers_for_replace.
18819 (adjust_after_replace): Record deletion of combining after bytes
18820 with the correct position.
18821 (replace_range): Likewise. Record the actual deletion after
18822 recoding deletions of combining bytes.
18823
18824 * xdisp.c (message_log_check_duplicate): Count byte length of the
18825 latest message correctly.
18826
188271998-09-12 Richard Stallman <rms@gnu.org>
18828
18829 * xdisp.c (redisplay_internal): Use TEMP_SET_PT_BOTH
18830 instead of SET_PT_BOTH.
18831 (try_window_id, display_text_line): Likewise.
18832
188331998-09-12 Karl Heuer <kwzh@gnu.org>
18834
18835 * data.c (Fmake_local_variable): Doc fix.
18836
188371998-09-10 Dave Love <fx@gnu.org>
18838
18839 * print.c (Fwith_output_to_temp_buffer): Doc fix.
18840
188411998-09-10 Richard Stallman <rms@gnu.org>
18842
18843 * s/irix6-0.h (TIOCSIGSEND): Add #undef.
18844 (bcopy, bcmp, bzero): Add #undef.
18845
18846 * keyboard.c (command_loop_1): When switching to selected window's bfr,
18847 first exit if selected frame is dead (no live frames remain).
18848 (read_key_sequence): Likewise.
18849
188501998-09-10 Karl Heuer <kwzh@gnu.org>
18851
18852 * emacs.c (main): Mention --display and --eval in help.
18853
188541998-09-07 Paul Eggert <eggert@twinsun.com>
18855
18856 * editfns.c (emacs_memftime): New function.
18857 (Fformat_time_string): Use it to handle null bytes in formats
18858 correctly.
18859
188601998-09-08 Kenichi Handa <handa@etl.go.jp>
18861
18862 * charset.c (Ffind_charset_region): Optimization for unibyte buffer.
18863 (Ffind_charset_string): For unibyte string, return (ascii).
18864
18865 * editfns.c (Fsubst_char_in_region): Call replace_range with the
18866 arg MARKERS 1.
18867
18868 * insdel.c (adjust_after_replace): Don't add combining bytes to
18869 the args given to adjust_point. Handle correctly the case that
18870 there are both before and after combining bytes.
18871 (replace_range): Likewise.
18872
188731998-09-07 Lars Magne Ingebrigtsen <larsi@gnus.org>
18874
18875 * fns.c (base64_decode_1, base64_encode_1): New functions.
18876 (Fbase64_decode_string, Fbase64_encode_string): New functions.
18877 (Fbase64_decode_region, Fbase64_encode_region): New functions.
18878
188791998-09-07 Karl Heuer <kwzh@gnu.org>
18880
18881 * eval.c (error): After enlarging buffer, write to it, not to buf.
18882
18883 * fns.c (Fwidget_put): Return VALUE instead of garbage.
18884
188851998-09-07 Kenichi Handa <handa@etl.go.jp>
18886
18887 * charset.h (STRING_CHAR_AND_LENGTH): Return correct value in
18888 ACTUAL_LEN even if LEN is too short to have a valid multibyte form.
18889 (STRING_CHAR_AND_CHAR_LENGTH): Likewise.
18890
18891 * coding.c (ccl_coding_driver): Always calculate correct mulibyte
18892 chars in produced byte sequence.
18893 (Ffind_operation_coding_system): Doc-string fixed.
18894
18895 * insdel.c (count_combining_after): Check also preceding bytes at
18896 POS if all characters in STRING are not character head.
18897
188981998-09-06 Paul Eggert <eggert@twinsun.com>
18899
18900 * editfns.c (Fformat_time_string, Fdecode_time, Fcurrent_time_zone):
18901 Don't assume that localtime and gmtime return non-NULL.
18902
189031998-09-06 Lars Magne Ingebrigtsen <larsi@gnus.org>
18904
18905 * fns.c (Fbase64_decode_string, Fbase64_encode_string,
18906 base64_decode_1, Fbase64_decode_region, Fbase64_encode_region):
18907 New functions.
18908
189091998-09-06 Richard Stallman <rms@gnu.org>
18910
18911 * editfns.c (Fformat): Detect incomplete format spec at string's end.
18912
18913 * lread.c (Fload): Handle case where openp finds a magic file
18914 but it has no `load' handler or that handler calls `load'.
18915 If FOUND != FILE, find FOUND's handler even if inhibited for FILE.
18916
189171998-09-04 Dave Love <fx@gnu.org>
18918
18919 * buffer.c (enable-multibyte-characters): Doc fix.
18920
189211998-09-02 Geoff Voelker <voelker@cs.washington.edu>
18922
18923 * w32heap.c (allocate_heap): Define NTHEAP_PROBE_BASE by default.
18924
189251998-09-01 Kenichi Handa <handa@etl.go.jp>
18926
18927 * editfns.c (Ftranspose_regions): Use BYTE_POS_ADDR to get an
18928 address in buffer from byte-position.
18929
189301998-09-01 Eli Zaretskii <eliz@delysid.gnu.org>
18931
18932 * w16select.c (Vnext_selection_coding_system): New variable.
18933 (syms_of_win16select): DEFVAR_LISP it. No need to staticpro
18934 Vselection_coding_system.
18935 (Fw16_set_clipboard_data): Always convert multibyte strings. Use
18936 Vnext_selection_coding_system if non-nil.
18937 (Fw16_get_clipboard_data): Always convert a string that includes
18938 non-ASCII characters. Use Vnext_selection_coding_system if
18939 non-nil.
18940
189411998-08-31 Andrew Innes <andrewi@harlequin.co.uk>
18942
18943 * w32fns.c (w32_wnd_proc): Always zero button_state when releasing
18944 mouse capture.
18945
189461998-08-31 Kenichi Handa <handa@etl.go.jp>
18947
18948 * xterm.c (x_load_font): If SIZE is 0, don't use a name
18949 x_list_font returns.
18950
189511998-08-31 Paul Eggert <eggert@twinsun.com>
18952
18953 * lread.c (read1): Don't assume that atof ("-0.0") yields +0.0.
18954 Handle leading '-' uniformly for zeros, infinities, and NaNs.
18955
189561998-08-31 Eli Zaretskii <eliz@delysid.gnu.org>
18957
18958 * msdos.c (IT_cmgoto): When tracking echo area messages with the
18959 cursor, save and restore previous cursor position in the
18960 minibuffer.
18961
189621998-08-31 Kenichi Handa <handa@etl.go.jp>
18963
18964 * charset.c (unibyte_char_to_multibyte):
18965 Vnonacii_translation_table will convert a 7-bit charcater.
18966 (multibyte_char_to_unibyte): Handle the case that
18967 Vnonacii_translation_table converts a multibyte charcater to a
18968 unibyte charcter of less than 128.
18969 (init_charset_once): Initialize nonascii_insert_offset and
18970 Vnonacii_translation_table.
18971
18972 * coding.c (decode_coding): Even if SRC_BYTES is zero, try
18973 processing if CODING requires flushing.
18974 (encode_coding): Likewise.
18975 (code_convert_region): Likewise.
18976 (code_convert_string): Likewise.
18977
18978 * fns.c (concat): If Vnonascii_translation_table is non-nil, try
18979 to convert a character less than 160 to multibyte.
18980 * insdel.c (copy_text): Likewise.
18981 (count_size_as_multibyte): Likewise.
18982 * xterm.c (dumpglyphs): Likewise.
18983
189841998-08-29 Paul Eggert <eggert@twinsun.com>
18985
18986 * data.c (arith_driver, float_arith_driver): Compute (- x) by
18987 using negation, not subtraction; this makes a difference with
18988 IEEE floating point arithmetic (and also if integer arithmetic
18989 is ones' complement or signed-magnitude!).
18990
189911998-08-29 Karl Heuer <kwzh@gnu.org>
18992
18993 * xfns.c (x_create_bitmap_from_file): Fail immediately if magic.
18994
189951998-08-28 Ken'ichi Handa <handa@delysid.gnu.org>
18996
18997 * charset.c (Fchar_bytes): Add \n\ in doc-string.
18998
189991998-08-28 Paul Eggert <eggert@twinsun.com>
19000
19001 * s/sol2-4.h (NOT_USING_MOTIF): New macro.
19002 (LD_SWITCH_SYSTEM_TEMACS): Put /usr/dt/lib in the link library
19003 path only if we're not building with Motif.
19004
190051998-08-28 Kenichi Handa <handa@etl.go.jp>
19006
19007 * insdel.c (adjust_after_replace): Fix the code to record undo
19008 information for the case that `before combining' happens. Remove
19009 text properties which are added to the new text by
19010 offset_intervals.
19011
19012 * coding.c (code_convert_region1): Remove all text properties of
19013 the region.
19014
190151998-08-28 Kenichi Handa <handa@etl.go.jp>
19016
19017 * charset.h (CHAR_BYTES): New macro.
19018
19019 * charset.c (Fchar_bytes): Now always return 1.
19020 (char_bytes): New function.
19021
19022 * editfns.c (Fposition_bytes): If the arg POSITION is out of
19023 range, return nil.
19024 (Fbyte_to_position): If the arg BYTEPOS is out of range, return
19025 nil.
19026
19027 * data.c (Faset): Use macro CHAR_BYTES instead of Fchar_bytes.
19028 * fns.c (concat): Likewise.
19029 * insdel.c (count_size_as_multibyte): Likewise.
19030 * xdisp.c (message_dolog): Likewise.
19031
190321998-08-27 Kenichi Handa <handa@etl.go.jp>
19033
19034 * coding.c (detect_coding_iso2022): Handle ESC N and ESC O
19035 correctly. They are for SS2 and SS3 respectively.
19036 (ccl_coding_driver): Fix previous change.
19037
190381998-08-26 Paul Eggert <eggert@twinsun.com>
19039
19040 * xterm.c (fixup_locale): New function. For now, it resets
19041 LC_TIME to "C" (reverting the 1998-08-07 change), and also
19042 resets LC_MESSAGES to "C".
19043 (x_term_init): Use it to fix up the locale after setlocale
19044 (LC_ALL, "").
19045
190461998-08-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
19047
19048 * xterm.c (x_calc_absolute_position): Cast argument to XFree, in
19049 case it was prototyped the old way.
19050
190511998-08-25 Kenichi Handa <handa@etl.go.jp>
19052
19053 * xterm.c (x_list_fonts): Work-around for the case XGetAtomName
19054 returns a null string. This happens when dxpc 3.7 is being used.
19055
190561998-08-24 Andreas Schwab <schwab@delysid.gnu.org>
19057
19058 * keyboard.c (input-method-previous-message): Doc fix.
19059
19060 * coding.c (file-coding-system-alist,
19061 select-safe-coding-system-function): Doc fix.
19062
190631998-08-23 Kenichi HANDA <handa@etl.go.jp>
19064
19065 * coding.c (detect_coding_iso2022): Don't check the byte length of
19066 succeeding codes (0xa0..0xFF) if the codes follows single shift
19067 code (SS2 or SS3).
19068
190691998-08-21 Ken'ichi Handa <handa@delysid.gnu.org>
19070
19071 * coding.c (detect_coding_system): If detect_eol_type returns
19072 CODING_EOL_INCONSISTENT, set eol_type to CODING_EOL_UNDECIDED
19073 correctly.
19074
19075See ChangeLog.7 for earlier changes.