*** empty log message ***
[bpt/emacs.git] / src / ChangeLog
CommitLineData
ff3d9573
GM
12000-08-07 Gerd Moellmann <gerd@gnu.org>
2
49ad1d99
GM
3 * xdisp.c (start_display): WHen starting display on a continuation
4 line, clear ascent and descent members of the iterator structure;
5 the height of the continued line does not affect the height of the
6 continuation line.
7 (make_cursor_line_fully_visible): Do nothing if cursor is on a
8 line taller than the window.
9 (redisplay_window) <forced window start>: Handle case that the
10 middle of the window is not found in any row.
11 (dump_glyph_row): Show more information.
12 (compute_line_metrics): Use MATRIX_FIRST_TEXT_ROW to determine the
13 first text line in a glyph matrix.
14
15 * xterm.c (x_draw_image_foreground): Avoid drawing outside
16 of the clip area when image doesn't have a mask.
17
70fc58b3
GM
18 * fns.c (sweep_weak_table): Fix survival conditions for
19 key-or-value and key-and-value weakness.
20
21 * .gdbinit (xhashtable): New command.
22
ac0e96ee
GM
23 * fns.c (sweep_weak_hash_tables): Fix the code taking unmarked
24 tables out of the list of all weak hash tables.
25
ff3d9573
GM
26 * xdisp.c (ensure_echo_area_buffers): If a buffer was killed, and
27 a new buffer is created, make sure echo_area_buffer[] references
28 the new buffer.
29
e0d8827b
EZ
302000-08-07 Eli Zaretskii <eliz@is.elta.co.il>
31
32 * msdos.c (Fmsdos_set_mouse_buttons): Add missing backslashes in
33 the doc string.
34
c6f35378
KH
352000-08-07 Kenichi Handa <handa@etl.go.jp>
36
37 * syntax.c (skip_chars): Fix previous change. Make the handling
38 of unibyte string consistent with that of regex search.
39
1fd4c450
GM
402000-08-05 Gerd Moellmann <gerd@gnu.org>
41
e49aa397
GM
42 * xmenu.c (popup_get_selection): Use xfree instead of free.
43
44 * fileio.c (Finsert_file_contents): Use xfree instead of free.
45
46 * editfns.c (Ftranspose_regions): Use xfree instead of free.
47
48 * callproc.c (child_setup): Use xfree instead of free.
49
50 * sysdep.c (opendir, GetTempDirName, run_mac_command): Use xmalloc
51 instead of malloc.
52 (run_mac_command, closedir): Use `xfree' instead of `free'.
53
54 * keymap.c (current_minor_maps): Use xmalloc instead of malloc.
55
56 * eval.c (error): Use xfree instead of free.
57
1fd4c450
GM
58 * xfaces.c, xfns.c, w32fns.c: Replace `illegal' with `invalid'.
59
60 * fns.c: Replace `illegal' with `invalid'.
e49aa397 61 (Fmake_hash_table, make_hash_table): Allow table size of 0.
1fd4c450 62
82d497fc
KH
632000-08-05 Kenichi Handa <handa@etl.go.jp>
64
65 * syntax.c (skip_chars): Fix handling of multibyte<->unibyte
66 conversion.
67
59f953a2
NF
682000-08-04 Noah Friedman <friedman@splode.com>
69
70 * fns.c (Fmake_hash_table): Add missing `\n\' to end of line in
71 docstring.
72
688351f2
GM
732000-08-04 Gerd Moellmann <gerd@gnu.org>
74
75 * syntax.c (skip_chars): Fix typo in error message.
76
2dad51cc
AS
772000-08-04 Andreas Schwab <schwab@suse.de>
78
79 * m/ia64.h: Moved from s/ia64.h.
80
99bb2c60
KH
812000-08-04 Kenichi Handa <handa@etl.go.jp>
82
082a1df2
KH
83 * process.c (read_process_output): Big simplification. Handle
84 composition and post-read-conversion of coding system correctly.
85 (send_process): Handle composition correctly.
86
87 * callproc.c (Fcall_process): Handle post-read-conversion of
88 coding system if any.
89
99bb2c60
KH
90 * coding.c (decode_coding_iso2022): More strict check for handling
91 single shifting.
082a1df2
KH
92 (coding_restore_composition): Pay attention to the case that
93 cmp_data is not set properly (because of invalid code in the
94 source text).
95 (run_pre_post_conversion_on_str): Include text properties in the
96 resulting string.
97 (decode_coding_string): Set members of coding correctly.
99bb2c60 98
f4988be7
GM
992000-08-03 Gerd Moellmann <gerd@gnu.org>
100
101 * s/ia64.h: New file.
102
103 * widget.c (set_frame_size, update_wm_hints, EmacsFrameSetValues):
104 Use NULL instead of 0 at the end of variable argument list of
105 XtVaGetValues and XtVaSetValues, because 0 fails on systems where
106 sizeof (int) < sizeof (void *).
107
108 * xmenu.c (update_frame_menubar): Use NULL instead of 0 at the end
109 of variable argument lists of XtVaGetValues and XtVaSetValues.
110
111 * xfns.c (Fx_file_dialog): Use NULL instead of 0 at the end of
112 variable argument lists of XtVaGetValues and XtVaSetValues.
113
ead53494
GM
1142000-08-02 Gerd Moellmann <gerd@gnu.org>
115
116 * alloc.c (lisp_malloc, lisp_free): Use size_t and POINTER_TYPE.
117 (xrealloc, xmalloc): Use size_t. Some callers adjusted.
118
119 * lisp.h (Fsingle_key_description, xmalloc, xrealloc): Change
120 prototype.
121
122 * keyboard.c (read_char_minibuf_menu_prompt): Add new parameter
123 in call to Fsingle_key_description.
124
125 * keymap.c (Fsingle_key_description): Add parameter NO_ANGLES.
126 Callers changed.
127
1282000-08-02 Colin Walters <walters@cis.ohio-state.edu>
129
130 * window.c (display_buffer_reuse_frames): New variable.
131 (Fdisplay_buffer): If display_buffer_reuse_frames is set, reuse
132 frames displaying BUFFER.
133 (syms_of_window): Define Lisp variable
134 display-buffer-reuse-frames.
135
10b0f752
MB
1362000-08-01 Miles Bader <miles@gnu.org>
137
138 * editfns.c (Fconstrain_to_field): Fix the conditions for deciding
139 when to constrain NEW_POS (they were pretty screwed up before).
140
16425c4a
EZ
1412000-07-31 Eli Zaretskii <eliz@is.elta.co.il>
142
143 * msdos.c (run_msdos_command): Save and restore the master
144 environment, for the case that child_setup signals an error.
145 When mirroring slashes in DOS shell commands, don't fail when
146 argv[2] has embedded blanks.
da288c14
EZ
147 (Fmsdos_set_mouse_buttons, mouse_setup_buttons): New functions.
148 (syms_of_msdos): Defsubr Fmsdos_set_mouse_buttons.
149 (dos_ttraw): Call mouse_setup_buttons.
16425c4a
EZ
150
151 * callproc.c (child_setup) [MSDOS]: malloc pwd_var instead of
152 using alloca; free it after run_msdos_command returns.
153
27f73852
DL
1542000-07-27 Dave Love <fx@gnu.org>
155
156 * s/irix6-5.h (IRIX_FORCE_32_BITS, LD_SWITCH_SYSTEM): Don't
157 define.
158 [_MIPS_SZLONG == 64]: Set up for 64-bit mode -- not currently
159 working.
160
161 * m/iris4d.h (XUINT, XSET, XUNMARK) [_LP64]: Don't define.
162
c0261b5e
EZ
1632000-07-27 Eli Zaretskii <eliz@is.elta.co.il>
164
165 * editfns.c (lisp_time_argument): Fix last change.
166
b548072f
GM
1672000-07-27 Gerd Moellmann <gerd@gnu.org>
168
3ab82477
GM
169 * fns.c (Fdelete): Make it work on vectors and strings in addition
170 to lists.
171
b548072f
GM
172 * fns.c (Qkey_or_value, Qkey_and_value): New variables.
173 (syms_of_fns): Initialize new variables.
174 (sweep_weak_table): Handle weakness `key-or-value' and
175 `key-and-value'.
176 (Fmake_hash_table): Recognize `key-and-value' and `key-or-value'
177 weakness, with t meaning the same as `key-and-value'.
178
91ae8751
KH
1792000-07-27 Kenichi Handa <handa@etl.go.jp>
180
181 * coding.h (struct coding_system): Member safe_charset deleted.
182
183 * coding.c (Qsafe_charsets): This variable deleted.
184 (Qsafe_chars, Vchar_coding_system_table, Qchar_coding_system): New
185 variables.
186 (coding_safe_chars): New function.
187 (CODING_SAFE_CHAR_P): New macro.
188 (CHARSET_OK): New arg C. Call CODING_SAFE_CHAR_P instead of
189 checking safe_charsets member of the coding system. Caller
190 changed.
191 (detect_coding_iso2022): New local variable safe_chars.
192 (DECODE_DESIGNATION): Call CODING_SAFE_CHAR_P instead of checking
193 safe_charsets member of the coding system.
194 (decode_coding_iso2022): New local variable safe_chars.
195 (ENCODE_ISO_CHARACTER_DIMENSION1): Don't check unsafe chars here.
196 (ENCODE_ISO_CHARACTER_DIMENSION2): Likewise.
197 (ENCODE_ISO_CHARACTER): Arguments changed. Caller changed.
198 (ENCODE_UNSAFE_CHARACTER): New macro.
199 (encode_coding_iso2022): New local variable safe_chars. Check
200 unsafe chars.
201 (setup_coding_system): Delete the code to initialize
202 coding->safe_charses
203 (intersection, find_safe_codings): New functions.
204 (Ffind_coding_systems_region_internal): New function.
205 (syms_of_coding): Defsubr it. Initialize Qsafe_chars,
206 Qsafe_cding_system. Make Vchar_coding_system_table a Lisp
207 variable and initialize it.
208
209 * fns.c (char_table_ref_and_index): New function.
210
211 * lisp.h (char_table_ref_and_index): Add prototype.
212
34a7a267
SS
2132000-07-26 Sam Steingold <sds@gnu.org>
214
215 * editfns.c (lisp_time_argument): Added third argument `usec'.
3ab82477 216 (Ffloat_time): New built-in Lisp function.
34a7a267 217
a95cb10a
GM
2182000-07-26 Gerd Moellmann <gerd@gnu.org>
219
3353ef5a
GM
220 * dispextern.h (GLYPH_FROM_CHAR_GLYPH): Use CHARACTERBITS bits
221 for the character code.
222
223 * config.in (HAVE_SOUND): Define only for FreeBSD, NetBSD and
224 GNU/Linux.
225
a95cb10a
GM
226 * xmenu.c (menu_highlight_callback): Call show_help_echo directly
227 if called for a popup menu.
228 (xmenu_show): Store help string in widget values.
229
b4a12321
DL
2302000-07-26 Dave Love <fx@gnu.org>
231
232 * syswait.h: Move some definitions.
233 (HAVE_SYS_WAIT_H): Undef for HPUX7, Convex.
234 [!HAVE_SYS_WAIT_H]: Define things unconditionally. More
235 perspicuous definitions.
236 (WTERMSIG): Fix bit pattern used.
237
13f5ad37
KH
2382000-07-26 Kenichi Handa <handa@etl.go.jp>
239
240 * print.c (print_object): If vector printing is truncated, print
241 "..." to indicate it as well as the case of list printing.
242
070fe99c
GM
2432000-07-25 Gerd Moellmann <gerd@gnu.org>
244
969065c3
GM
245 * xdisp.c (next_element_from_display_vector): Improve comments.
246
247 * lisp.h (GLYPH_MASK_CHAR, GLYPH_MASK_FACE): Use 19 bits
248 for the character code, and the rest for the face id as in 20.x.
249 (FAST_GLYPH_FACE, FAST_MAKE_GLYPH): Changed accordingly.
250
251 * window.c (window_display_table): Cleaned up.
252
070fe99c
GM
253 * syntax.c (Fforward_word): Add last arg nil in call of
254 Fconstrain_to_field.
255
bad77ef7
EZ
2562000-07-25 Eli Zaretskii <eliz@is.elta.co.il>
257
969065c3 258 * fileio.c (Frename_file) [DOS_NT]: If the file names are
bad77ef7
EZ
259 identical but for the letter-case, don't call
260 barf_or_query_if_file_exists.
261
c28da489
MB
2622000-07-25 Miles Bader <miles@gnu.org>
263
264 * editfns.c (find_field): Honor special `boundary' fields.
265 (Qboundary): New variables.
266 (syms_of_editfns): Initialize Qboundary.
267 (Fconstrain_to_field): Add the INHIBIT-CAPTURE-PROPERTY argument.
268 Use scan_buffer instead of find_before_next_newline, because it
269 allows us to detect the boundary case where there's a newline at
270 the search limit.
271 * lisp.h (Fconstrain_to_field): Update external declaration.
272
e3c31fd5
GM
2732000-07-24 Gerd Moellmann <gerd@gnu.org>
274
275 * print.c (temp_output_buffer_setup): Don't call1 Vrun_hooks
276 if that is nil.
c28da489 277
c66c29a2
DL
2782000-07-24 Dave Love <fx@gnu.org>
279
280 * s/sunos4-0.h, s/sol2.h:
281 (LIBS_TERMCAP): Move from m/sparc.h.
282
283 * m/sparc.h (TERMINFO): Moved to system files (probably only
284 relevant for sunos4 judging by its vintage).
285 (BITS_PER_LONG, BITS_PER_EMACS_INT, _LP64): Define conditional on
286 __arch64__.
287
fbe0a958
EZ
2882000-07-24 Eli Zaretskii <eliz@is.elta.co.il>
289
290 * xmenu.c (keymap_panes): Pass the keymap's prompt as the pane
291 name to single_keymap_panes.
292
7d88e5c9
AS
2932000-07-24 Andreas Schwab <schwab@suse.de>
294
295 * fns.c (Fmakehash): Pass Qeql to Fmake_hash_table if TEST is nil.
296
e024b101
GM
2972000-07-24 Gerd Moellmann <gerd@gnu.org>
298
299 * xdisp.c (with_echo_area_buffer): Take additional EMACS_INT
300 parameters instead of using int parameters. Expect FN to accept
301 EMACS_INT parameters.
302 (display_echo_area, resize_echo_area_axactly, current_message)
303 (truncate_echo_area, set_message_1): Call with_echo_area_buffer
304 with new argument list.
305 (resize_mini_window_1): New callback function.
306 (current_message_1, truncate_message_1, set_message_1): Change
307 parameter lists to the new format expected by
308 with_echo_area_buffer.
309
25c1a9ce
KH
3102000-07-24 Kenichi Handa <handa@etl.go.jp>
311
312 * fontset.c (fontset_ref): Remove INLINE declaration.
313 (fontset_ref_via_base): Likewise.
314 (Fset_fontset_font): Convert FAMILY and REGISTRY specifications
315 to downcase.
316
7f987ac0
EZ
3172000-07-23 Eli Zaretskii <eliz@is.elta.co.il>
318
319 * msdos.c (IT_note_mouse_highlight): Process overlays in the
320 correct order of priority. If help echo was found in an overlay,
321 use that overlay as the object in which the help echo was found.
322
e2db3069
MB
3232000-07-22 Miles Bader <miles@gnu.org>
324
325 * textprop.c (Fprevious_single_char_property_change): The initial
326 property value should be from the position preceding POSITION, not
327 following it.
328
5e3203e4
EZ
3292000-07-22 Eli Zaretskii <eliz@is.elta.co.il>
330
331 * coding.c (syms_of_coding): Doc fix for
332 inhibit-iso-escape-detection.
333
62145073
GM
3342000-07-21 Gerd Moellmann <gerd@gnu.org>
335
c20aeb83
GM
336 * xterm.c (note_mouse_highlight): Process overlays in the right
337 order of priority.
34a7a267 338
743934db
GM
339 * keyboard.c (show_help_echo, gen_help_event): Extend comments.
340
341 * xterm.c (note_mouse_highlight): If help-echo was found in an
342 overlay, use that overlay as the object in which the help was
343 found.
344
d1dc7e43 345 * window.c (foreach_window_1): Fix typo reversing an if-condition.
34a7a267 346
62145073
GM
347 * window.c (foreach_window): Instead of a fake variable argument
348 list, take one USER_DATA argument.
349 (foreach_window_1): Likewise, and call callback functions with two
350 args, the window and USER_DATA.
351 (struct check_window_data): New struct.
352 (check_window_containing): Use it.
353 (window_from_coordinates): Set up a struct check_window_data for
354 foreach_window.
355 (add_window_to_list, freeze_window_start): Change parameters
356 according to new calling convention.
357
358 * window.h (foreach_window): Change prototype.
359
360 * buffer.c (Fprevious_overlay_change): Avoid memory leak.
361
3622000-07-21 Eli Zaretskii <eliz@is.elta.co.il>
363
364 * xmenu.c (menu_help_callback): Call show_help_echo with
365 additional arguments OBJECT and POS.
366
11270583
KH
3672000-07-21 Kenichi Handa <handa@etl.go.jp>
368
07b14857
KH
369 * data.c (Faset): Allow storing any multibyte character in a
370 string. Convert unibyte string to multibyte if necessary.
371
11270583
KH
372 * xfns.c (x_encode_text): New function.
373 (x_set_name): Use x_encode_text.
374 (x_set_title): Likewise.
375
376 * xselect.c (lisp_data_to_selection_data): Use x_encode_text.
377
378 * xterm.h (x_encode_text): Add prototype.
379
bc75b4fd
DL
3802000-07-20 Dave Love <fx@gnu.org>
381
382 * ccl.c (Fccl_execute_on_string): Don't check xmalloc return. Use
383 xfree, not free.
384
48c14970
EZ
3852000-07-20 Eli Zaretskii <eliz@is.elta.co.il>
386
387 * msdos.c (help_echo_window): New variable.
388 (syms_of_msdos): Initialize and staticpro it.
389 (IT_note_mode_line_highlight): Set help_echo_window.
390 (IT_note_mouse_highlight): Ditto.
391 (dos_rawgetc): Store help_echo_window in the second event produced
392 for HELP_EVENTs.
393
394 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight):
395 Record the object that generated the help echo and the position of
396 that object in help_echo_object and help_echo_pos. Record that
397 some glyphs in a row are displayed in mouse-face.
398 (IT_update_begin): Don't clear mouse highlight unless one of the
399 enabled glyph rows is marked as being displayed in mouse-face.
400 (dos_rawgetc): Generate 2 events for HELP_EVENT. Pass the object
401 and position recorded in help_echo_object and help_echo_pos to the
402 event queue.
403 (IT_menu_display): Accept a new argument PN: the pane number of
404 the current menu pane. Record the pane number and the item
405 number of the item which has associated help string.
406 (XMenuActivate): Update the prototype for help_callback in
407 function declaration. Call IT_menu_display with the current menu
408 pane number as an additional argument. Call help_callback with
409 two additional arguments: the pane number and the item number of
410 the menu item associated with the help text.
411 (help_echo_object, help_echo_pos): New variables.
412 (syms_of_msdos): Initialize them and staticpro help_echo_object.
413
414 * msdos.h (XMenuActivate): Update prototype.
415
4279296d
GM
4162000-07-19 Gerd Moellmann <gerd@gnu.org>
417
47db06aa
GM
418 * xdisp.c (with_echo_area_buffer): Call FN with more arguments.
419 Add some more prototypes.
420
421 * xterm.c, xterm.h: Add some more prototypes.
422
423 * lisp.h (Fnext_single_char_property_change): Add prototype.
424
425 * dispnew.c (direct_output_for_insert): Remove confusing
426 outer local variable mouse_face_overwritten_p.
427 (glyph_row_slice_p): Put in #ifdef GLYPH_DEBUG.
428
4279296d
GM
429 * alloc.c (allocate_string_data): Don't copy old string contents.
430
670acd62
KH
4312000-07-19 Kenichi Handa <handa@etl.go.jp>
432
433 * coding.c (code_convert_region): Delete text properties before
434 shrinking the conversion region.
435
7cea38bc
GM
4362000-07-18 Gerd Moellmann <gerd@gnu.org>
437
dc1cac59
GM
438 * dispnew.c (update_text_area): Write the whole row if it
439 has mouse-face in it.
440
85a8aca9
GM
441 * xfaces.c (face-alternative-font-family-alist): Remove
442 DEFVAR_LISP; staticpro instead.
443
34a7a267 444 * xmenu.c (menu_help_callback): Call show_help_echo with
7cea38bc
GM
445 new arguments.
446
447 * keyboard.c (show_help_echo): Add parameter WINDOW.
448 (read_char): Call show_help_echo with window extracted from Lisp
449 help event.
450 (gen_help_event): Add parameter WINDOW.
451
452 * keyboard.h (show_help_echo, gen_help_event): Change prototypes.
453
454 * xterm.c (help_echo_window): New variable.
455 (note_mouse_highlight, note_tool_bar_highlight): Set
456 help_echo_window.
457 (XTread_socket): Pass help_echo_window to gen_help_event.
458 (syms_of_xterm): Initialize and staticpro help_echo_window.
459
f8276b77
DL
4602000-07-18 Dave Love <fx@gnu.org>
461
462 * Makefile.in: Fix dependencies of blockinput.h on atimer.h,
463 systime.h.
464
088831a6
GM
4652000-07-18 Gerd Moellmann <gerd@gnu.org>
466
3d6cd763
GM
467 * alloc.c (allocate_string_data): If string had already data
468 assigned, copy old contents to new string data.
469
470 * coding.c (syms_of_coding): Fix typo in spelling of variable
471 `inhibit-iso-escape-detection'.
472
088831a6
GM
473 * alloca.c (free) [emacs && EMACS_FREE]: Define as EMACS_FREE.
474
475 * Makefile.in: Add dependencies on dispextern.h.
476 (alloca.o): Don't define malloc and define EMACS_FREE instead of
477 `free'; both can conflict with system header files.
478
bc8a8d55
KH
4792000-07-18 Kenichi Handa <handa@etl.go.jp>
480
481 * charset.h (MAKE_CHAR): Return reasonable code even if CHARSET is
482 undefined.
483
069f5950
DL
4842000-07-18 Dave Love <fx@gnu.org>
485
486 * window.c (Fwindow_list): Declare arg `window'.
487
aa96c820
KH
4882000-07-18 Kenichi Handa <handa@etl.go.jp>
489
490 * coding.c (setup_coding_system): Don't override the explicitly
491 specified designations.
492
06be8d32
MB
4932000-07-15 Miles Bader <miles@gnu.org>
494
495 * editfns.c (char_property_eq, char_property_stickiness): Renamed
496 from `text_property_eq' and `text_property_stickiness', respectively.
497 (find_field, Fconstrain_to_field, char_property_eq)
498 (char_property_stickiness): Changed to call char-property functions
499 instead of text-property-only ones.
500
501 * textprop.c (Fnext_single_char_property_change): Made a subr (was
502 `next_single_char_property_change'). Do more error checking, and
503 cleanup limit behavior.
504 (Fprevious_single_char_property_change): New function.
505 (syms_of_textprop): Initialize new subrs.
506
507 * xdisp.c (display_prop_end, invisible_text_between_p):
508 Call Fnext_single_char_property_change instead of
509 next_single_char_property_change.
510
3fddcdc3
JR
5112000-07-15 Jason Rumney <jasonr@gnu.org>
512
513 * w32menu.c (w32_menu_show): Call free_menubar_widget_value_tree
514 after menu is finished with.
515 (add_menu_item): Only consider wv->title as a menu title.
516 (w32_menu_display_help): Add OBJECT and POS to show_help_echo.
517
518 * w32fns.c (w32_wnd_proc) [WM_DRAW_ITEM]: Do not try to draw a
519 null title.
520 (FONT_REGEXP): Remove unused macro, and its sub-components.
521 (syms_of_w32fns): Replace underscore in w32-enable-synthesized-fonts.
522
523 * w32term.c (help_echo_object, help_echo_pos): New variables.
524 (note_mode_line_highlight): Store additional information about the
525 help-echo in help_echo_object and help_echo_pos. Check both
526 `local-map' and `keymap' properties for changing the cursor
527 (note_mouse_highlight): Store additional information about the
528 help-echo in help_echo_object and help_echo_pos.
529 (note_tool_bar_highlight): Set help_echo_object to nil and
530 help_echo_pos to -1.
531 (w32_read_socket): Use gen_help_event instead of filling
532 input_events manually.
533 (syms_of_w32term): Staticpro help_echo_object.
534 (x_update_window_end): Add parameter MOUSE_FACE_OVERWRITTEN_P. If
535 set, arrange for a mouse-highlight redisplay in
536 XTframe_up_to_date.
537 (x_clear_mouse_face): New function.
538 (w32_redisplay_interface): Add pointer to x_clear_mouse_face.
539 (x_update_window_begin): No need to turn off the mouse
540 highlight here.
541 (show_mouse_face): Set the mouse_face_p flag of glyph rows
542 depending on whether they contain glyphs highlighted in
543 mouse-face.
544 (x_fill_stretch_glyph_string): Consume runs of stretch
545 glyphs instead of a single one.
546 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
547 with new argument list.
548 (x_set_glyph_string_gc): Make sure the face's GC is valid.
549 (x_append_glyph, x_append_composite_glyph)
550 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
551 changes in struct glyph starting 1999-12-27. See comments for
552 xterm.c on 2000-07-05.
553
178c5d9c
SS
5542000-07-14 Sam Steingold <sds@gnu.org>
555
556 * xfaces.c (realize_x_face): Fix the last patch:
557 check `default_face' before dereferencing.
558
6fe533f6
DL
5592000-07-14 Dave Love <fx@gnu.org>
560
069f5950 561 * syntax.c (back_comment): Add null default in switch (for pcc).
6fe533f6 562
dd7b81cf
KH
5632000-07-14 Kenichi Handa <handa@etl.go.jp>
564
0693904a 565 * xfaces.c (realize_x_face): Make fontset using the base of the
178c5d9c 566 default_face's fontset, not using the default fontset.
0693904a 567
dd7b81cf
KH
568 * coding.c (inhibit_iso_escape_detection): New variable.
569 (syms_of_coding): Make it a Lisp variable.
570 (detect_coding_iso2022): If inhibit_iso_escape_detection is
571 nonzero, ignore ISO2022's escape sequence.
572
d5aa31d8
GM
5732000-07-14 Gerd Moellmann <gerd@gnu.org>
574
e5acf0ca
GM
575 * alloca.c (malloc) [emacs]: Define as xmalloc.
576
bd23a692
GM
577 * xfns.c (Fx_show_tip): If frame parameters contain a position,
578 use that instead of the mouse position. Add parameters DX and DY.
579
580 * dispextern.h (Fx_show_tip): Adjust number of parameters
581 in prototype.
582
9662da0b
GM
583 * keyboard.c (show_help_echo): Add parameters OBJECT and POS.
584 if HELP is a function, call it with OBJECT and POS as parameters
585 to get the help to display.
586 (gen_help_event, kbd_buffer_store_help_event): New functions.
587 (kbd_buffer_get_event): Construct the Lisp help-event differently.
588 (read_char): Call show_help_echo with new parameters.
589
178c5d9c 590 * keyboard.h (gen_help_event, kbd_buffer_store_help_event):
9662da0b
GM
591 Add prototypes.
592
593 * xterm.c (help_echo_object, help_echo_pos): New variables.
594 (note_mode_line_highlight): Store additional information about the
595 help-echo in help_echo_object and help_echo_pos. Check both
596 `local-map' and `keymap' properties for changing the cursor
597 (note_mouse_highlight): Store additional information about the
598 help-echo in help_echo_object and help_echo_pos.
599 (note_tool_bar_highlight): Set help_echo_object to nil and
600 help_echo_pos to -1.
601 (XTread_socket): Use gen_help_event instead of filling
602 input_events manually.
603 (syms_of_xterm): Staticpro help_echo_object.
604
605 * xmenu.c (menu_highlight_callback): Use
606 kbd_buffer_store_help_event instead of setting up and input_event
607 structure manually.
608
609 * xdisp.c (eval_form): GCPRO argument sexpr.
610 (call_function): New function.
611 (handle_single_display_prop): Use call_function and FUNCTIONP
612 instead of checking whether if font_height is a symbol and
613 using eval_form.
614
615 * eval.c (internal_condition_case_2): New function.
616
617 * lisp.h (FUNCTIONP): New macro.
618 (internal_condition_case_2, call_function): Add prototypes.
619
d5aa31d8
GM
620 * xterm.c (construct_mouse_click, x_scroll_bar_to_input_event)
621 (x_scroll_bar_handle_click, SET_SAVED_MENU_EVENT, XTread_socket):
622 Always set `arg' member of input_events.
623 (construct_menu_click): Unused function removed.
624
625 * msdos.c (dos_rawgetc): Always set `arg' member of input_events.
626
627 * w32term.c (construct_mouse_click, construct_mouse_wheel)
628 (construct_drag_n_drop, x_scroll_bar_handle_click)
629 (w32_read_socket): Always set `arg' member of input_events.
630
631 * keyboard.c (show_help_echo): Use eval_form. Add comment.
632
633 * lisp.h (eval_form): Add prototype.
634
635 * xdisp.c (eval_form): Make it externally visible.
636
0f1a9b23
GM
6372000-07-13 Gerd Moellmann <gerd@gnu.org>
638
639 * xterm.c (x_handle_tool_bar_click): Store the frame in the
640 frame_or_window slot of TOOL_BAR_EVENT input events instead of
641 consing. For prefix events, store the frame in the `arg' slot of
642 the event, otherwise store the key there.
643 (XTread_socket): Instead of consing, use the frame_or_window slot
644 of HELP_EVENTs for the frame, and the `arg' slot for the help
645 string.
646
647 * xmenu.c (menu_highlight_callback): Store help string in the
648 `arg' member of the input event; don't cons.
649 (menubar_selection_callback): Use the `arg' slot of input events
650 to queue additional information, instead of consing.
651
652 * msdos.c (dos_rawgetc): Adapt to change of HELP_EVENTs.
653
654 * w32term.c (w32_handle_tool_bar_click): Adapt to changes in
655 TOOL_BAR_EVENTs.
656 (w32_read_socket): Adapt to changes in HELP_EVENTs.
657
658 * w32menu.c (menubar_selection_callback): Use the `arg' slot of
659 input events to queue additional information, instead of consing.
660
661 * keyboard.c (kbd_buffer_gcpro): Renamed from
662 kbd_buffer_frame_or_window. Now used for all Lisp objects
663 referenced from the input queue.
664 (kbd_buffer_store_event): Always use structure assignment for
665 copying input events. Record all Lisp objects referenced from
666 events in kbd_buffer_gcpro.
667 (kbd_buffer_get_event): Construct Lisp `help-echo' events
668 differently from input events. Test for prefix menu_bar_events
669 and TOOL_BAR_EVENTs differently. Reset all slots used by an input
670 event in kbd_buffer_gcpro to nil.
671 (make_lispy_event) <TOOL_BAR_EVENT>: Treat an input event whose
672 frame_or_window is equal to its arg member as prefix events.
673 (stuff_buffered_input): Reset all slots in kbd_buffer_gcpro
674 used by an input event to nil.
675 (init_keyboard): Use two times the size of the input queue
676 for kbd_buffer_gcpro.
677 (syms_of_keyboard): Likewise.
678
679 * emacs.c (handle_USR2_signal, handle_USR1_signal): Use
680 USER_SIGNAL_EVENT.
681
682 * termhooks.h (struct input_event): Add member `arg'.
683 (MENU_BAR_EVENT): Renamed from menu_bar_event.
684 (USER_SIGNAL_EVENT): Renamed from user_signal.
685
686 * xfaces.c (ASET): Remove definition.
687
688 * lisp.h (AREF, ASET, ASIZE): New macros.
689
690 * fontset.c (AREF, ASIZE): Remove definitions.
691
692 * fns.c (AREF): Remove definition.
178c5d9c 693
0f1a9b23
GM
694 * composite.c (AREF): Remove definition.
695
712eaef2
GM
6962000-07-12 Gerd Moellmann <gerd@gnu.org>
697
d8ee7803
GM
698 * dispnew.c (redraw_overlapped_rows): Add missing local.
699 (scrolling_window): Remove debug code.
700
712eaef2
GM
701 * xdisp.c (try_window_reusing_current_matrix, try_window_id):
702 Before scrolling, turn off a mouse-highlight in the window
703 being scrolled.
704
705 * xterm.c (x_update_window_end): Add parameter
706 MOUSE_FACE_OVERWRITTEN_P. If set, arrange for a mouse-highlight
707 redisplay in XTframe_up_to_date.
708 (x_clear_mouse_face): New function.
709 (x_redisplay_interface): Add pointer to x_clear_mouse_face.
710
711 * dispnew.c (make_current): Preserve the mouse_face_p flag of the
712 current glyph row.
713 (update_window_line): Add parameter MOUSE_FACE_OVERWRITTEN_P. Set
714 it when any row is written to that contains glyphs highlighted in
715 mouse-face.
716 (update_window): Call the window update end hook with new
717 parameter MOUSE_FACE_OVERWRITTEN_P.
718 (direct_output_for_insert): Give up if row contains mouse-face.
719
720 * dispextern.h (struct redisplay_interface): Add parameter
721 MOUSE_FACE_OVERWRITTEN_P to update_window_end_hook function.
722 (clear_mouse_face): New function pointer member.
723
02010917
SM
7242000-07-11 Stefan Monnier <monnier@cs.yale.edu>
725
726 * syntax.c (back_comment): Use one switch rather than a few `if's.
727 Obey open_paren_in_column_0_is_defun_start.
728 When reverting to the `slow' method, try to nicely handle the case
729 of nested comments by checking that the comment-starter we found
730 does indeed match the comment-ender.
731 (scan_sexps_forward, scan_sexps_forward):
732 Ignore excessive opening parenthesis rather than throwing an error.
733
d76c03ea
GM
7342000-07-11 Gerd Moellmann <gerd@gnu.org>
735
736 * doc.c (Fsubstitute_command_keys): Handle case that a GC
737 in Fwhere_is_internal or get_keymap_1 relocates string contents.
738
739 * dispnew.c (direct_output_forward_char): Give up if currently
740 displaying a message instead of the minibuffer contents.
741
742 * xterm.c (x_update_window_begin): No need to turn off the mouse
743 highlight here.
744 (show_mouse_face): Set the mouse_face_p flag of glyph rows
745 depending on whether they contain glyphs highlighted in
746 mouse-face.
747
748 * dispnew.c (row_equal_p): Add parameter MOUSE_FACE_P. If set,
749 compare the mouse_face_p flags of both rows.
750
751 * dispextern.h (struct glyph_row): Add flag mouse_face_p.
752
d55ead18
EZ
7532000-07-11 Eli Zaretskii <eliz@is.elta.co.il>
754
755 * keyboard.c (show_help_echo): Accept additional parameter
756 ok_to_overwrite_keystroke_echo.
757 (read_char): Call show_help_echo with a zero
758 ok_to_overwrite_keystroke_echo argument.
759 * keyboard.h (show_help_echo): Update prototype of
760 show_help_echo.
761 * xmenu.c (menu_help_callback): Call show_help_echo with non-zero
762 ok_to_overwrite_keystroke_echo argument.
763 * w32menu.c (w32_menu_display_help): Call show_help_echo with
764 non-zero ok_to_overwrite_keystroke_echo argument.
765
df75b1a3
GM
7662000-07-10 Gerd Moellmann <gerd@gnu.org>
767
4b92c49a
GM
768 * xdisp.c (try_window_id): If changes are all below what is
769 displayed in the window, and point is in the window, we still
770 might have to find point on the display.
771
772 * xterm.c (x_fill_stretch_glyph_string): Consume runs of stretch
773 glyphs instead of a single one.
774 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
775 with new argument list.
776 (x_set_glyph_string_gc): Make sure the face's GC is valid.
777
df75b1a3
GM
778 * keymap.c (get_keymap_1): Add comment that this function can GC.
779 (where_is_internal_2, where_is_internal_1): Add GCPROs, add
780 comment that functions can GC.
781 (Fset_keymap_parent): GCPRO arg KEYMAP.
782
4314cf3e
EZ
7832000-07-10 Eli Zaretskii <eliz@is.elta.co.il>
784
785 * msdos.c (XMenuActivate): After exiting the menu, restore the
786 echo area message and erase it.
787
ab49ce15
KH
7882000-07-10 Kenichi Handa <handa@etl.go.jp>
789
790 * fontset.c (Ffontset_info): Make the return value more compatible
791 with that of Emacs 20.
792
090a072f
GM
7932000-07-07 Gerd Moellmann <gerd@gnu.org>
794
795 * eval.c (Fsignal): Handle case that backtrace_list is null.
796
f92de4a6
KH
7972000-07-07 Kenichi Handa <handa@etl.go.jp>
798
799 * ccl.c (Fccl_execute): Typo fixed.
800
dd8888a1
GM
8012000-07-06 Gerd Moellmann <gerd@gnu.org>
802
e5c81191 803 * window.c (window_loop): Add missing gcpro1 local variable.
178c5d9c 804
dd8888a1
GM
805 * window.c (Fwindow_list): Reverse list at the end.
806 (candidate_window_p): Add parameter OWINDOW. ALL_FRAMES nil
807 means allow windows on OWINDOW's frame, only.
808 (window_loop): Simplified; use Fwindow_list.
809
810 * Makefile.in (TAGS-LISP): Don't pass `$(lispsource)' to make.
811
485266d0
GM
8122000-07-05 Gerd Moellmann <gerd@gnu.org>
813
814 * xterm.c (XTread_socket): Increment handling_signal at the start,
815 decrement it at the end.
816
817 * eval.c (handling_signal): New variable.
818 (Fsignal): Abort if handling_signal is non-zero.
819
820 * lisp.h (handling_signal): External declaration.
178c5d9c 821
485266d0
GM
822 * s/freebsd.h (WAITTYPE, WRETCODE): Put in #if 0.
823
80fcd514
KR
8242000-07-05 Ken Raeburn <raeburn@gnu.org>
825
826 Sound support for NetBSD through "Linux emulation" support:
827 * config.in (HAVE_SOUNDCARD_H): Undef.
828 (HAVE_SOUND): Define if HAVE_SOUNDCARD_H.
829 * Makefile.in (LIBSOUND): New variable.
830 (LIBES): Include it.
831 * sound.c [HAVE_SOUNDCARD_H]: Include <sys/ioctl.h> and
832 <soundcard.h>.
833 (DEFAULT_SOUND_DEVICE): Define to "/dev/dsp" if not defined
834 elsewhere.
835 (vox_open): Use DEFAULT_SOUND_DEVICE.
836 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Define to /dev/audio.
837
d5c5cddd
GM
8382000-07-05 Gerd Moellmann <gerd@gnu.org>
839
840 * print.c (print_error_message): If Vsignaling_function is set,
841 show it in *Messages*.
842
843 * lisp.h (Vsignaling_function): External declaration.
844
845 * eval.c (Vsignaling_function): New variable.
846 (Fsignal): Compute it.
847 (syms_of_eval): Staticpro it.
848
65171e3a
DL
8492000-07-05 Dave Love <fx@gnu.org>
850
851 * syswait.h: Use the autoconf recommended approach. Old code
852 #if'd out in case we need to revert.
853
178c5d9c 854 * config.in (HAVE_SYS_WAIT_H): Added.
65171e3a 855
e2c46326
AI
8562000-07-05 Andrew Innes <andrewi@gnu.org>
857
858 * vm-limit.c (check_memory_limits) [REL_ALLOC]: Use real_morecore
859 when non-NULL instead of __morecore, to take account of buffer
860 memory. This also solves a problem with spurious memory warnings
861 on Windows.
862
863 * ralloc.c: Make real_morecore non-static.
864
865 * eval.c (internal_condition_case): Comment out abort if
866 interrupt_input_blocked is not zero.
867
868 * makefile.nt: Add support for `bootstrap' and related targets.
869 Include minimal debug info in emacs.exe in release build.
870 Remove all dependencies on lisp.h, and fixup some others.
871
872 * w32.c (init_environment): Install code from 20.7 for providing
873 default values for environment variables, based on the
874 executable's own location.
875 (map_w32_filename): Handle filenames that are longer than
876 MAX_PATH.
877 (sys_socket): Install socket inheritance bug fix from 20.7.
878
879 * alloca.c [emacs]: Include lisp.h (needed by atimer.h included
880 here via blockinput.h).
881
a027a91b
SM
8822000-07-05 Stefan Monnier <monnier@cs.yale.edu>
883
e4b31601
SM
884 * w32menu.c (w32_menu_display_help):
885 * xmenu.c (menu_help_callback): Use show_help_echo.
a027a91b
SM
886
887 * keyboard.h (show_help_echo): Declare.
888
889 * keyboard.c (show_help_echo): New function, extracted from read_char.
890 Feval its `msg' argument if it's a cons cell.
891 (read_char): Use it.
4cf8d9d5 892 (follow_key): Pass `autoload' to get_keyelt.
a027a91b 893
178c5d9c 894 * xterm.c (note_mode_line_highlight, note_mouse_highlight)
a027a91b 895 (note_tool_bar_highlight, XTread_socket):
178c5d9c 896 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight)
a027a91b
SM
897 (dos_rawgetc):
898 * w32term.c (note_mode_line_highlight, note_mouse_highlight)
899 (note_tool_bar_highlight, w32_read_socket):
900 Do not gratuitously ignore non-string `help-echo' properties.
901
88d75730
GM
9022000-07-05 Gerd Moellmann <gerd@gnu.org>
903
969f7e79
GM
904 * eval.c (Feval): Put check for interrupt_input_block in #if 0.
905
71201b00
GM
906 * window.c (delete_all_subwindows): Reset Vwindow_list.
907
88d75730
GM
908 * xterm.c (x_append_glyph, x_append_composite_glyph)
909 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
910 changes in struct glyph starting 1999-12-27. Some bit-fields of
911 struct glyph were not set, which made glyphs unequal when compared
912 with GLYPH_EQUAL_P. Redisplay outputs such glyphs, and flickering
913 effects were the result. This also depended on the contents of
914 memory returned by xmalloc. If flickering happens again, activate
915 the code in clear_glyph_row that's in #if 0. If the flickering is
916 gone with that, chances are that it is caused by something
917 similar.
918
919 * dispnew.c (clear_glyph_row): Add debug code in #if 0.
178c5d9c 920
88d75730
GM
921 * dispextern.h: Add some comments.
922
923 * window.c (add_window_to_list): Add parameter LIST.
924 (window_list): Order list so that, for each frame, windows are
925 in canonical order, and so that frames appear in the list in
926 the order given by Vframe_list.
927 (next_window): Reverse the handling of NEXT_P.
928
53654733
GM
9292000-07-04 Gerd Moellmann <gerd@gnu.org>
930
87efd256
GM
931 * window.c (Vwindow_list): New variable.
932 (make_window, delete_window): Set Vwindow_list to nil.
933 (check_window_containing): New function.
934 (window_from_coordinates): Rewritten.
935 (add_window_to_list, window_list, candidate_window_p)
936 (decode_next_window_args, next_window): New functions.
937 (Fnext_window, Fprevious_window): Rewritten in terms of
938 next_window.
939 (Fwindow_list): New function.
940 (Fother_window): Cleaned up.
941 (foreach_window): Add a longer "variable argument list". Let
942 callback function return 0 to indicate that cycling over windows
943 should stop.
944 (foreach_window_1): Likewise.
945 (freeze_window_start): Return int.
946 (init_window): New function.
947 (syms_of_window): Staticpro Vwindow_list and defsubr Swindow_list.
948
949 * emacs.c (handle_USR1_signal, handle_USR2_signal) Clear
950 input_event with bzero.
951 (main): Call init_window.
952
53654733
GM
953 * keymap.c (get_keyelt): Temporarily inhibit GC while evaluating
954 a menu filter.
955
4a8c194f
KH
9562000-07-04 Kenichi Handa <handa@etl.go.jp>
957
958 * composite.h (make_composition_value_copy): Extern it.
959
960 * composite.c (make_composition_value_copy): New function.
961
962 * editfns.c (Fformat): While copying text properties, make each
963 composition property value a copy.
964
965 * fns.c (concat): While copying text properties, make each
966 composition property value a copy.
967
831a6cb0
GM
9682000-07-03 Gerd Moellmann <gerd@gnu.org>
969
2f516940
GM
970 * m/macppc.h (LINKER, LD_SWITCH_MACHINE) [LINUX]: Define.
971
178c5d9c 972 * fns.c (sweep_weak_table): Mark only objects that are not
aee625fa
GM
973 marked already.
974
831a6cb0
GM
975 * frame.c (next_frame, prev_frame): If MINIBUF is a window,
976 include those frames as candidates which have their focus
977 redirected to the minibuffer frame.
978
d9c4f922
SM
9792000-07-03 Stefan Monnier <monnier@cs.yale.edu>
980
981 * fns.c (Fputhash): Return `value' rather than nil.
982
3780bc22
GM
9832000-06-30 Gerd Moellmann <gerd@gnu.org>
984
97d176db
GM
985 * frame.c (next_frame): Don't check focus redirection in case
986 MINIBUF is a window. Doing so excludes frames using MINIBUF
3780bc22
GM
987 unless their focus is redirected, which contradicts the
988 specification of next-frame, and leads to infinite loops in
989 certain situations when cycling through windows with next-window.
990
dca9961d
KH
9912000-06-30 Kenichi Handa <handa@etl.go.jp>
992
993 * coding.c (code_convert_region): Even if the length of text is
994 zero, try to convert it if coding->type is coding_type_ccl.
995 (decode_coding_string, encode_coding_string): Likewise.
996
d5483ab1
GM
9972000-06-28 Gerd Moellmann <gerd@gnu.org>
998
af5c25e1 999 * xdisp.c (try_window_reusing_current_matrix): Don't try to reuse
97d176db 1000 the display if windows_or_buffers_changed.
af5c25e1
GM
1001
1002 * dispnew.c (struct row_entry): New structure.
1003 (row_entry_pool, row_entry_pool_size, row_entry_idx, row_table)
1004 (row_table_size, old_lines, new_lines, old_lines_size)
1005 (new_lines_size, run_pool, runs_size, runs): New variables.
1006 (add_row_entry): New function.
1007 (scrolling_window): Use data structures allocated with xmalloc and
97d176db 1008 held in global variables, instead of allocating them with alloca and
af5c25e1
GM
1009 holding them in local variables. Use a larger hash table whose
1010 size depends on glyph matrix sizes. Don't use bzero to clear the
1011 hash table; instead, clear used slots only.
1012
1013 * fns.c (next_almost_prime): Make it externally visible.
1014
1015 * lisp.h (next_almost_prime): Add prototype.
1016
d5483ab1
GM
1017 * s/isc4-0.h (sigunblock): Define.
1018
1019 * s/sco5.h (sigunblock): Define.
1020
93e40f40
DL
10212000-06-27 Dave Love <fx@gnu.org>
1022
1023 * s/osf1.h (C_SWITCH_SYSTEM, LIBS_SYSTEM): Revert last change
1024 (moved to osf5-0.h).
1025 [!NOT_C_CODE]: Protect string.h stuff.
1026
1027 * s/osf5-0.h (C_SWITCH_SYSTEM, WAIT_USE_INT, SYS_SIGLIST_DECLARED)
1028 (sys_siglist, NSIG): Definitions moved here from osf1.h.
1029
3c4b7685
GM
10302000-06-27 Gerd Moellmann <gerd@gnu.org>
1031
97d176db 1032 * xdisp.c (resize_mini_window): Subtract the extra line spacing
3c4b7685
GM
1033 below the last line from the needed window height.
1034
32cad0aa
SM
10352000-06-26 Stefan Monnier <monnier@cs.yale.edu>
1036
1037 * fns.c (Fplist_member): Renamed from Fwidget_plist_member.
1038 (Fwidget_get): Use it.
1039 (syms_of_fns): Defsubr it.
1040
2c69ced2
GM
10412000-06-26 Gerd Moellmann <gerd@gnu.org>
1042
178c5d9c 1043 * xterm.c (xim_initialize) [!USE_XIM]: Don't set up the
1d36487c
GM
1044 display info for XIM.
1045 (xim_open_dpy): Likewise.
1046 (xim_close_dpy): Don't free the display info's XIM.
1047
1048 * xfns.c (x_window) [!USE_XIM]: Don't call create_frame_ic.
1049
1050 * config.in (USE_XIM): New define.
1051
3fc720e4
GM
1052 * keymap.c (get_keyelt): For menu-items containing a `:filter
1053 FILTER', apply FILTER to the menu-item's definition to get the
1054 real definition to use.
1055
1056 * lisp.h (QCfilter): External declaration.
1057
2c69ced2
GM
1058 * xfns.c (Fimage_size): New function.
1059 (syms_of_xfns): Defsubr it.
1060
f978b2a2
AS
10612000-06-26 Andreas Schwab <schwab@suse.de>
1062
1063 * coding.c (decode_coding_string): Re-fetch STRING_BYTES after
1064 Fstring_as_unibyte.
1065
94cc7892
DL
10662000-06-25 Dave Love <fx@gnu.org>
1067
1068 * term.c [!HAVE_TERMCAP_H]: Declare tputs, tgetent, tgetflag,
1069 tgetnum.
1070
1071 * Makefile.in (blockinput.h): Depend on atimer.h.
1072 (atimer.h): Depend on systime.h.
1073
1074 * blockinput.h: Protect against multiple inclusion. Include
1075 atimer.h.
1076
1077 * atimer.h: Protect against multiple inclusion. Include
1078 systime.h.
1079
1080 * lisp.h (swap_in_global_binding): Declare.
1081
b8c24556
KR
10822000-06-24 Ken Raeburn <raeburn@gnu.org>
1083
1084 * process.c (Fopen_network_stream): Turn off atimers for duration
1085 of call to connect. (Patch from Gerd.)
1086
8cf8560b
DL
10872000-06-23 Dave Love <fx@gnu.org>
1088
511c7541
DL
1089 * ralloc.c: Maybe include unistd.h
1090
8cf8560b
DL
1091 * emacs.c (setgrp): Undefine before defining.
1092 (malloc_warning, set_time_zone_rule, index): Prototype.
1093
1094 * systime.h (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use
1095 HAVE_STRUCT_TIMEZONE.
1096
1097 * s/osf1.h: Move string.h hack here from alpha.h and make it
1098 conditional.
1099 (C_SWITCH_SYSTEM): Use _OSF_SOURCE, not -BSD, which clashes with
1100 _XOPEN_SOURCE.
1101 (WAIT_USE_INT, SYS_SIGLIST_DECLARED, sys_siglist, NSIG): Define.
1102 (SOCKLEN_TYPE): Don't define.
1103
1104 * m/alpha.h: Remove string.h hack.
1105
1106 * s/osf5-0.h: New file.
1107
1108 * filelock.c: Use feature tests for fcntl.h, string.h. Don't
1109 include time.h, done by systime.h.
1110 [__FreeBSD__]: Remove redundant includes.
1111
3fc720e4 1112 * callproc.c (setpgrp): Undefine before defining.
8cf8560b
DL
1113 (delete_temp_file): Return Qnil to avoid warning.
1114
1115 * config.in (HAVE_TERM_H, HAVE_STRUCT_TIMEZONE): Add.
1116
1117 * xfaces.c: Include fontset.h dependent on HAVE_WINDOW_SYSTEM, not
1118 HAVE_X_WINDOWS.
1119
1120 * fontset.h (free_face_fontset): Renamed from fs_free_face_fontset.
1121
1122 * composite.h (compose_text): Declare.
1123
1124 * xterm.c: Don't include sys/types.h unconditionally. Don't
1125 protect its inclusion with !USG (following xmenu.c).
1126
ea055732
GM
11272000-06-23 Gerd Moellmann <gerd@gnu.org>
1128
1129 * xfns.c (x_create_tip_frame): Initialize frame's colors like
1130 in x_create_frame.
1131
74b01b80
EZ
11322000-06-23 Eli Zaretskii <eliz@is.elta.co.il>
1133
1134 * coding.c (decode_eol_post_ccl): Special handling for undecided
1135 and inconsistent EOL types.
1136
64f3a166
GM
11372000-06-22 Gerd Moellmann <gerd@gnu.org>
1138
16cf31f7
GM
1139 * xrdb.c (x_load_resources): Add default resource for scroll bar's
1140 trough color and main window's background color.
1141
178c5d9c 1142 * xfns.c (Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events
16cf31f7
GM
1143 differently.
1144
1145 * xterm.h (Xt_app_con): External declaration.
1146
1147 * widget.c (EmacsFrameRealize): Fix typo.
178c5d9c 1148
486a103d
GM
1149 * widget.c (EmacsFrameRealize): Remove SubstructureRedirectMask.
1150
64f3a166
GM
1151 * xdisp.c (handle_stop): Initialize it->add_overlay_start to zero.
1152 (handle_invisible_prop): Record the start of invisible text in
1153 it->add_overlay_start.
1154 (struct overlay_entry): Add member `overlay'.
1155 (handle_overlay_change): Simplify.
1156 (next_overlay_string): After having processed overlay strings at the
1157 end of the buffer, record that fact in
1158 it->overlay_strings_at_end_processed_p.
1159 (compare_overlay_entries): If before- and after-strings come
1160 from the same overlay, let before-strings come first.
1161 (RECORD_OVERLAY_STRING): Record the overlay that strings come from.
1162 (load_overlay_strings): Take it->add_overlay_start into account
1163 when adding overlay strings.
1164
1165 * dispextern.h (struct it): Add member add_overlay_start.
1166
bb746ea6
DL
11672000-06-22 Dave Love <fx@gnu.org>
1168
1169 * s/isc3-0.h (C_SWITCH_SYSTEM): Define _XOPEN_SOURCE=500.
1170
1171 * s/gnu-linux.h (C_SWITCH_SYSTEM): Don't define _XOPEN_SOURCE here.
1172
a8f573f3
KH
11732000-06-22 Kenichi Handa <handa@etl.go.jp>
1174
1175 * ccl.c (ccl_driver) <CCL_End>: Decrement stack_idx only when it
1176 is greater than 0.
1177
9f2bbc92
DL
11782000-06-21 Dave Love <fx@gnu.org>
1179
178c5d9c 1180 * Makefile.in (GETLOADAVG_OBJ): Removed -- LIBOBJS does it.
9f2bbc92 1181
3ee5041c
SM
11822000-06-21 Stefan Monnier <monnier@cs.yale.edu>
1183
1184 * syntax.c (back_comment): Simplify string-parity counting (with
1185 the added benefit of handling multiple string-styles as long as
1186 they are not intertwined).
1187 Jump to the slow code as soon as a comment starter is found in
1188 a "string_lossage" position. Fixes the case: " /* " /* " */.
1189
4c343001
DL
11902000-06-21 Dave Love <fx@gnu.org>
1191
1192 * Makefile.in: Use GETLOADAVG_LIBS.
1193
1194 * config.in: Add HAVE_FCNTL_H, _FILE_OFFSET_BITS,
1195 _LARGEFILE_SOURCE, _LARGE_FILES, _XOPEN_SOURCE.
1196
e6365855
SM
11972000-06-20 Stefan Monnier <monnier@cs.yale.edu>
1198
1199 * syntax.c (describe_syntax): Recognize the `n'estable bit.
1200 (Fforward_comment, scan_lists):
1201 Check the comstyle of single-char comment-starters.
1202 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
1203 we're just at the beginning of the comment (f.ex with (*) ... (*)).
d355bd8a
SM
1204 Check the comstyle of single-char comment-starters.
1205 Clarify control-flow around the Scomment case.
e6365855 1206
5700d2cc
DL
12072000-06-20 Dave Love <fx@gnu.org>
1208
d355bd8a
SM
1209 * fns.c (make_hash_table, maybe_resize_hash_table):
1210 Cast arg of next_almost_prime.
5700d2cc 1211
178c5d9c 1212 * tparam.c [emacs]: Include lisp.h.
5700d2cc
DL
1213
1214 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
1215 and unistd.h.
1216
4a27bdfb
GM
12172000-06-20 Gerd Moellmann <gerd@gnu.org>
1218
a61d762c
GM
1219 * keyboard.c (adjust_point_for_property): Check if display
1220 property should be treated as intangible by looking at its
1221 value.
1222
178c5d9c 1223 * xdisp.c (single_display_prop_intangible_p)
a61d762c
GM
1224 (display_prop_intangible_p): New functions.
1225
1226 * dispextern.h (display_prop_intangible_p): Add prototype.
1227
1228 * xdisp.c (dump_glyph_row): Show type of glyph->object.
178c5d9c 1229
4a27bdfb
GM
1230 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
1231 argument to sigprocmask.
1232
1233 * s/sco5.h (sigblock): Redefined to pass a pointer as second
1234 argument to sigprocmask.
1235
1236 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
1237 sigprocmask_set, and pass a pointer to it to sigprocmask.
1238
1239 * sysdep.c (sigprocmask_set): New variable.
1240
1241 * fileio.c (make_temp_name): Don't use `%s' in string passed to
1242 report_file_error.
1243
427ec082
SS
12442000-06-20 Sam Steingold <sds@gnu.org>
1245
1246 * xrdb.c: Don't declare xmalloc, xrealloc.
1247
8972fe79 12482000-06-20 Stefan Monnier <monnier@cs.yale.edu>
8972fe79
SM
1249
1250 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
1251 (re_comp): Cast gettext return value to avoid complaints when
1252 !HAVE_LIBINTL.
1253
074b6efe
DL
12542000-06-20 Dave Love <fx@gnu.org>
1255
f85c008a
DL
1256 * m/stride.h, m/mips.h: Don't define HAVE_GETWD,
1257 HAVE_GETTIMEOFDAY.
1258
5700d2cc 1259 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
f85c008a 1260
d355bd8a 1261 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
f85c008a
DL
1262
1263 * m/alpha.h: Don't declare xmalloc, xrealloc.
1264
0af4f205
DL
1265 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
1266
1267 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
1268
1269 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
1270
1271 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
1272 HAVE_GETWD.
1273
074b6efe
DL
1274 * keyboard.h (poll_for_input_1): Declare.
1275
1276 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
1277
1278 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
1279
1280 * doprnt.c: Don't declare xmalloc, xrealloc.
1281
1282 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
1283 (getenv, ctime, getwd): Removed.
1284 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
1285
1286 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
1287 x_set_tool_bar_lines.
1288
1289 * config.in: Add HAVE_GETWD. Move some definitions above
1290 machine/system includes.
1291
68a5e97b
KH
12922000-06-20 Kenichi Handa <handa@etl.go.jp>
1293
95417e1e
KH
1294 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
1295
68a5e97b
KH
1296 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
1297 contain information about ENCODING.
1298
1299 * fontset.c (FONTSET_ASCII): Use the first element of char table
1300 for an ASCII font, not defalt slot.
1301 (fontset_ref_via_base): If FONTSET doesn't contain information for
1302 C, try the default fontset.
1303 (make_fontset): Don't copy the default fontset.
1304 (fontset_font_pattern): Likewise.
1305 (accumulate_font_info): If ELT is nil, use the corresponding
1306 element in the default fontset.
1307
3b4fa1b2
DL
13082000-06-19 Dave Love <fx@gnu.org>
1309
943e731c
DL
1310 * syntax.c (Fparse_partial_sexp): Doc fix.
1311
1312 * regex.h: Test PROTOTYPES as well as __STDC__.
1313
3b4fa1b2
DL
1314 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
1315 errno, strerror. Put text after #endif in comment.
1316
1317 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for
1318 pcc).
1319
1320 * xterm.c (x_frame_of_widget): Likewise.
1321
cdf0357b
GM
13222000-06-19 Gerd Moellmann <gerd@gnu.org>
1323
1324 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
1325 to Vfundamental_mode_abbrev_table.
1326
1327 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
1328 bogus objects are marked. This slows down GC by ~80 percent, but
1329 it might be worth trying when debugging GC-related problems.
1330 This feature requires conservative stack marking to be enabled.
1331
1332 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
1333 returns XLookupChars, reset `modifiers' to zero.
1334
998e9f8c
DL
13352000-06-19 Dave Love <fx@gnu.org>
1336
1337 * mktime.c: Unprotoized.
1338
18e21ce8 13392000-06-19 Richard Stallman <rms@gnu.org>
d1504184
GM
1340
1341 * data.c (set_internal): If variable is frame-local,
1342 store the new value immediately into the frame parameter alist.
1343
140c4ac6
KR
13442000-06-19 Ken Raeburn <raeburn@gnu.org>
1345
14358466
KR
1346 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
1347 in the custom handler pointer.
1348
140c4ac6
KR
1349 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
1350 value, or checks for CHAR_META can fail when Lisp_Object is a
1351 union type.
1352 * keymap.c (get_keyelt): Likewise.
1353
10d7bf84
KH
13542000-06-19 Kenichi Handa <handa@etl.go.jp>
1355
1356 * ccl.h (struct ccl_program): New member eol_type.
1357 (struct ccl_spec): New member cr_carryover.
1358
1359 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
1360 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
1361
1362 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
1363 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
1364 (decode_eol_post_ccl): New function.
1365 (decode_coding): Don't detect EOL format here for CCL based coding
1366 systems.
1367 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
1368 decode_eol_post_ccl after running the CCL program.
1369 (code_convert_region): Don't detect EOL format here for CCL based
1370 coding systems.
1371 (decode_coding_string): Likewise.
1372
52e386c2
KR
13732000-06-18 Ken Raeburn <raeburn@gnu.org>
1374
1375 * charset.c (update_charset_table): Use XINT on "iso_final_char"
1376 when treating it as an integer.
1377
1378 * coding.h (encode_coding_string): Declare.
1379
1380 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
1381 it as an integer.
1382
1383 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
1384 "xkeymap" to avoid shadowing the "enum map_type" value that needs
1385 to be passed to get_local_map.
1386
1387 * sound.c (Fplay_sound): Don't call make_number on
1388 Frun_hook_with_args count argument.
1389
1390 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
1391 for lisp objects in X event structure data field, when lisp
1392 objects are represented with unions.
1393 (x_scroll_bar_to_input_event): Ditto.
1394
b357b9d4
KR
13952000-06-16 Ken Raeburn <raeburn@gnu.org>
1396
1397 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
37d034d3
KR
1398 termination of string. Fix sense of test whether
1399 Vline_number_display_limit is an integer.
b357b9d4 1400
a871441d
GM
14012000-06-16 Gerd Moellmann <gerd@gnu.org>
1402
a9021acd
GM
1403 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
1404 only if HAVE_X_WINDOWS.
1405
6344985d
GM
1406 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
1407 of titles.
1408
427ec082 1409 * dispnew.c (update_frame_1): Handle case that cursor vpos is
a871441d
GM
1410 out of bounds.
1411
228b083e
EZ
14122000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
1413
1414 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
1415 of its headers.
1416
c25b53a2
KH
14172000-06-15 Kenichi Handa <handa@etl.go.jp>
1418
1419 * coding.c (decode_coding_emacs_mule): Always set src_base at the
1420 start of the while loop.
1421
a6981b11
GM
14222000-06-15 Gerd Moellmann <gerd@gnu.org>
1423
e9924e52
GM
1424 * atimer.c (alarm_signal_handler): Add forward declaration.
1425
a6981b11
GM
1426 * data.c (set_internal): Remove debug code.
1427
25fa6deb
GM
14282000-06-14 Gerd Moellmann <gerd@gnu.org>
1429
dce6b995
GM
1430 * Makefile.in (bootstrap-temacs): Add `-I../src'.
1431
9f817ea4
GM
1432 * unexec.c (toplevel) [COFF]: Include coff.h.
1433
1434 * s/lynxos.h: New file.
1435
1436 * keymap.c (Fsingle_key_description): Enclose function key and
1437 event symbol names in angle brackets.
1438
8a4e3c0c
GM
1439 * xdisp.c (setup_echo_area_for_printing): Call
1440 message_log_maybe_newline if message_buf_print is not set.
1441
1442 * print.c (printchar, strout): Don't check message_buf_print
427ec082 1443 before calling setup_echo_area_for_printing because that
8a4e3c0c
GM
1444 function does something useful even when message_buf_print is
1445 already set.
1446
25fa6deb
GM
1447 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines): New
1448 variables.
1449 (ensure_echo_area_buffers): Initialize echo buffer's
1450 truncate lines setting to nil.
1451 (with_echo_area_buffer): Don't set the echo buffer's truncate
1452 lines setting here.
8a4e3c0c 1453 (set_message_1): Set it here instead, based on the value
25fa6deb
GM
1454 of message_truncate_lines.
1455 (resize_mini_window): Handle case that lines are truncated.
1456 (syms_of_xdisp): Initialize Qmessage_truncate_lines. DEFVAR_BOOL
1457 message-truncate-lines.
1458
1459 * keyboard.c (read_char): Bind message-truncate-lines to t
1460 while displaying a help-echo.
1461
1462 * lisp.h (Qmessage_truncate_lines): External declaration.
1463
163dcff3
GM
14642000-06-13 Gerd Moellmann <gerd@gnu.org>
1465
1681ead6
GM
1466 * xdisp.c (Vline_number_display_limit): Renamed from
1467 line_number_display_limit.
1468 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
1469 Extend documentation string. Initialize
1470 Vline_number_display_limit to nil meaning no limit.
1471 (decode_mode_spec): Use Vline_number_display_limit with its new
1472 meaning.
1473
163dcff3
GM
1474 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
1475
18e21ce8 14762000-06-13 Richard Stallman <rms@gnu.org>
163dcff3
GM
1477
1478 * frame.c (Fmodify_frame_parameters): Doc fix.
427ec082 1479
163dcff3
GM
1480 * xfns.c (x_set_frame_parameters): Comment fix.
1481
1482 * frame.c (store_frame_param): Call swap_in_global_binding if the
1483 variable's current binding was chosen based on this frame.
1484
1485 * data.c (swap_in_global_binding): New function.
1486
a704139d
EZ
14872000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
1488
1489 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
1490 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
1491
9b6610db
EZ
14922000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
1493
1494 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
1495
c68833d2
JR
14962000-06-12 Jason Rumney <jasonr@gnu.org>
1497
1498 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
1499
1500 * w32.h (EMACS_W32_H): Renamed from _NT_H_
1501
1502 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
1503
1504 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
1505
ed1056b3
GM
15062000-06-12 Gerd Moellmann <gerd@gnu.org>
1507
1508 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
1509 (syms_of_xfaces): Defsubr Sdump_colors.
1510 (x_free_colors): Don't treat b&w specially on default visual.
1511 (x_free_dpy_colors): New function.
1512 (free_face_colors): Don't check visual class; it's done
1513 in x_free_colors.
1514
1515 * xterm.c (x_frame_of_widget): New function.
1516 (x_alloc_nearest_color_for_widget): Use it.
1517 (x_copy_dpy_color): New function.
1518 (x_destroy_window): Free various colors.
1519
5050a2ef
KH
15202000-06-12 Kenichi Handa <handa@etl.go.jp>
1521
1522 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
1523
1524 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
1525
1526 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
1527
1528 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
1529
1530 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
1531
fb1b041d
DL
15322000-06-11 Dave Love <fx@gnu.org>
1533
1534 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
1535
ff96b5f4
EZ
15362000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
1537
1538 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
1539
db8eeecd
GM
15402000-06-11 Gerd Moellmann <gerd@gnu.org>
1541
ed1056b3 1542 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
db8eeecd
GM
1543 to `XEvent *'.
1544
49b71c5f
KH
15452000-06-10 Kenichi Handa <handa@etl.go.jp>
1546
c479bd55
KH
1547 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
1548 (regex_compile): Fix the code for handling the case of single byte
1549 char and multibyte char being mixed in a range within [...].
1550
ff6a65c2
KH
1551 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
1552 and dst_multibyte members of coding.
1553
49b71c5f
KH
1554 * charset.c (update_charset_table): Update the table
1555 bytes_by_char_head.
1556 (init_charset_once): Initialize elements of bytes_by_char_head to
1557 1 except for leading codes for private charases.
1558
1559 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
1560 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte
1561 sequence.
1562
9e80b57d
KR
15632000-06-09 Ken Raeburn <raeburn@gnu.org>
1564
1565 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
1566 access the data it doesn't point to.
1567
f83fe4b4
GM
15682000-06-08 Gerd Moellmann <gerd@gnu.org>
1569
1570 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
db8eeecd 1571 will be translated to a switch-frame event when reading the
f83fe4b4
GM
1572 event queue. This is necessary because Emacs otherwise won't
1573 perform a switch-frame to a new frame until some other event, for
1574 example a keystroke event, forces it to do so. This has various
1575 effects, one visible being that the cursor of a frame created with
1576 C-x 5 2 or switched to with a window manager key binding like
1577 A-TAB stays hollow because selected_window isn't on the newly
1578 focused frame until the switch-frame is performed.
1579
1580 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
1581 generating a switch-frame event if necessary.
1582
1583 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
1584
1585 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
1586 it's an integer.
1587
0890801b
KH
15882000-06-08 Kenichi Handa <handa@etl.go.jp>
1589
1590 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a
1591 charset.
1592
173cbca8
GM
15932000-06-07 Gerd Moellmann <gerd@gnu.org>
1594
3091c2a6
GM
1595 * window.c (displayed_window_lines): Take empty lines at
1596 the bottom of a window into account.
427ec082 1597
f38952fe
GM
1598 * window.c (displayed_window_lines): New function.
1599 (Fmove_to_window_line): Use displayed_window_lines to determine
1600 the number of lines to move, instead of using the window's height.
1601
1602 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
1603 to stop reading, even if the form read sets point to a different
1604 value when evaluated.
1605
427ec082 1606 * xdisp.c (display_line): Fix code deciding in which line to
173cbca8
GM
1607 put the cursor.
1608
6ba6c818
KH
16092000-06-07 Kenichi Handa <handa@etl.go.jp>
1610
1611 * fileio.c (e_write): Free composition data if stored in
1612 coding->cmp_data.
1613
5f1aea9a
GM
16142000-06-06 Gerd Moellmann <gerd@gnu.org>
1615
666852af
GM
1616 * xdisp.c (display_line): Set row's and iterator's
1617 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
1618 Set cursor even if row ends in the middle of a character.
1619 (dump_glyph_row): Print values of new flags.
1620 (redisplay_window) <cursor movement in unchanged window>: When
1621 point has been moved forward, and PT is at the end of the cursor
1622 row, don't place the cursor in the next row if the cursor row ends
1623 in the middle of a character or at ZV.
1624
1625 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
1626 (struct glyph_row): Add starts_in_middle_of_char_p and
1627 ends_in_middle_of_char_p.
1628 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
1629 ends_in_middle_of_char_p flag.
1630 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
1631
d13f3e2e
GM
1632 * term.c (append_glyph): Revert change of 2000-06-06.
1633
1634 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
1635 padding glyph not fitting on line as whole character not
1636 fitting on line.
1637
5f1aea9a
GM
1638 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
1639 this isn't true for images with `:ascent 100'.
1640
10cda9b0
KH
16412000-06-06 Kenichi Handa <handa@etl.go.jp>
1642
ed00559d
KH
1643 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
1644 as modified if it is originally unmodified.
1645
10cda9b0
KH
1646 * term.c (encode_terminal_code): Change the way to check if
1647 terminal coding does any conversion.
1648 (append_glyph): Set glyph->pixel_width correctly.
1649
1650 * xdisp.c (display_line): While checking line continuation, pay
1651 attention to a padding glyph.
1652
1969fae2
GM
16532000-06-05 Gerd Moellmann <gerd@gnu.org>
1654
1655 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
1656
162ccef4
DL
16572000-06-05 Dave Love <fx@gnu.org>
1658
f19f32dd
DL
1659 * xdisp.c: Include fontset.h.
1660
1661 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
1662
1663 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
1664
1665 * dispnew.c: Conditionally include term.h.
1666
1667 * coding.h: Declare code_convert_string_norecord.
1668
1669 * frame.h (struct frame): Use volatile unconditionally.
1670
1671 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
1672
1673 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
1674
1675 * systime.h: Protect against multiple inclusion.
1676 (timezone) [USG5_4]: Define as time_t.
1677
1678 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
1679 (Foptimize_char_table, make_temp_name): Declare.
1680
1681 * Makefile.in (xdisp.o): Depend on fontset.h.
1682
1683 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
1684
1685 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
1686 (Foptimize_char_table, make_temp_name): Declare.
1687
427ec082 1688 * s/irix4-0.h:
162ccef4
DL
1689 * s/irix5-0.h:
1690 * s/netbsd.h: Don't define autoconfiscated MATHERR.
1691
2082fe81
DL
16922000-06-02 Dave Love <fx@gnu.org>
1693
1694 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
1695
dcf671d2
GM
16962000-06-02 Gerd Moellmann <gerd@gnu.org>
1697
1698 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
1969fae2 1699 result face, set flags in that face indicating that colors may not
dcf671d2
GM
1700 be freed.
1701
1702 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
1703 glyph, use the ASCII NUL character to determine the face.
1704
d42122a3
DL
17052000-06-02 Dave Love <fx@gnu.org>
1706
1707 * sysdep.c: Conditionally include stdlib.h, unistd.h.
1708 (VFORK_RETURN_TYPE): Remove.
427ec082 1709
d42122a3
DL
1710 * config.in: Add NO_MATHERR.
1711
dd432f16
DL
17122000-06-01 Dave Love <fx@gnu.org>
1713
90aa4ea8
DL
1714 * cmds.c (internal_self_insert): Don't check
1715 Vbefore_change_function, Vafter_change_function.
1716
1717 * insdel.c (signal_before_change, signal_after_change): Likewise.
1718
1719 * buffer.c (Vbefore_change_function, Vafter_change_function):
1720 Variables and their initializations deleted.
1721
2330c9d4
DL
1722 * callint.c (Fcall_interactively): Doc fix.
1723
dd432f16
DL
1724 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
1725
bf9e8804
DL
17262000-05-31 Dave Love <fx@gnu.org>
1727
1728 * textprop.c: Revert last change -- duplicated.
1729
3694b4ab
GM
17302000-05-31 Gerd Moellmann <gerd@gnu.org>
1731
1732 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
1733 in #if 0.
1734
1735 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
1736
f14156cd
JR
17372000-05-31 Jason Rumney <jasonr@gnu.org>
1738
8119aab8
JR
1739 * search.c (Fre_search_forward, Fre_search_backward)
1740 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
1741
f14156cd
JR
1742 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
1743
4aab9be3
JR
17442000-05-30 Jason Rumney <jasonr@gnu.org>
1745
1746 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
1747 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
1748
1749 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type
1750 member.
1751
1752 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
1753 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
1754 expand a nil default_filename.
1755
1756 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
1757 pointer to glyph_to_pixel_coords, not a frame.
1758
1759 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
1760 coding.h to dependencies.
1761
1762 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
1763
1764 * w32console.c (glyph_to_pixel_coords): Change first parameter to
1765 window pointer to be consistent with w32term.c and xterm.c.
1766
1767 * w32fns.c: Format and doc changes to bring closer to xfns.c.
1768 (VIETNAMESE_CHARSET): Define if not defined in system headers.
1769 (Qline_spacing, Qcenter): New variables.
1770 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
1771 (x_set_line_spacing): New function.
1772 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT
1773 macros.
1774 (x_specified_cursor_type): New function.
1775 (x_set_cursor_type): Use it.
1776 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
1777 and icon strings.
1778 (validate_x_resource_name, x_get_resource_string): Measure lengths
1779 of external strings in bytes.
1780 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
1781 GetTextExtentPoint32 with NULL title.
1782 (Fx_create_frame): Initialize Qline_spacing.
1783 (w32_load_system_font): Initialize font->double_byte_p.
1784 (x_to_w32_charset): Use Vw32_charset_info_alist.
1785 (Image, busy cursor, tooltip functions): Merged changes from
1786 xfns.c. Not yet functional on Windows.
1787
1788 * w32gui.h (W32FontStruct): Add double_byte_p member.
1789
1790 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
1791 (emacs_button_translation): Use it.
1792 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
1793 in `mask' to be set.
1794
1795 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
1796 menu strings.
1797
1798 * w32term.c: Format and doc changes to bring closer to xterm.c.
1799 (w32_char_font_type): New enum.
1800 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
1801 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
1802 (w32_encode_char): New function.
1803 (x_encode_char): Removed.
1804 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
1805 x_encode_char and w32_font_is_double_byte.
1806 (x_produce_image_glyph): Use image_ascent.
1807 (x_produce_glyphs): Use new version of w32_per_char_metric and
1808 handle NULL return value. Allow extra line spacing.
1809 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
1810 (w32_get_glyph_overhangs): Remove unicode_p param. Use
1811 w32_font_type member of glyph instead.
1812 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
1813 (fast_find_position): Make sure not to consider rows not visible
1814 in the window.
1815 (w32_read_socket) [WM_MENUSELECT]: Cannot call
1816 w32_menu_display_help with input blocked, as it can abort.
1817 (x_display_and_set_cursor): Choose cursor depending
1818 on buffer-local value of cursor_type.
1819 (x_draw_bar_cursor): Add parameter WIDTH.
1820
1821 * w32term.h (CP_DEFAULT): Define.
1822 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
1823
10fc3187
GM
18242000-05-30 Gerd Moellmann <gerd@gnu.org>
1825
1826 * search.c (Fre_search_forward, Fre_search_backward)
1827 (Fposix_search_backward, Fposix_search_forward): Doc fix.
1828
d0555360
KH
18292000-05-30 Kenichi Handa <handa@etl.go.jp>
1830
1831 * coding.c (detect_coding_iso2022): Fix code for checking
1832 CODING_CATEGORY_MASK_ISO_8_2.
1833
f1ad044f
SM
18342000-05-29 Stefan Monnier <monnier@cs.yale.edu>
1835
1836 * regex.c (PREFETCH_NOLIMIT): New function.
1837 (re_match_2_internal): Use it and adjust the end_match_2 logic.
1838
84ec3b4b
GM
18392000-05-29 Gerd Moellmann <gerd@gnu.org>
1840
66254a13
GM
1841 * syntax.c (find_defun_start): Move test for
1842 open_paren_in_column_0_is_defun_start outside of the loop.
1843
49e70dec
GM
1844 * xdisp.c (redisplay_window): Really switch buffers when
1845 displaying mode lines, and temporarily set selected_frame to the
1846 frame of the window that's redisplayed.
1847
84ec3b4b
GM
1848 * xfaces.c (free_realized_faces): Block/unblock input.
1849 (free_realized_multibyte_face): Ditto.
1850
869a3a14
DL
18512000-05-29 Dave Love <fx@gnu.org>
1852
1853 * textprop.c (Qkeymap): New variable.
1854 (syms_of_textprop): Intern it.
1855
1856 * keymap.c: Include intervals.h.
1857 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
1858
1859 * Makefile.in (keymap.o): Depend on intervals.h.
1860
1861 * keyboard.c (menu_bar_items, tool_bar_items)
1862 (Fexecute_extended_command): Deal with `keymap' property.
1863 (read_key_sequence): Track map from `keymap' property as well as
1864 `local_map'.
1865
1866 * intervals.c (get_local_map): Extra arg to allow looking for
1867 `keymap' too.
1868
1869 * intervals.h (map_property): New enum.
1870 (get_local_map): Extra arg using it.
1871 (Qkeymap): Declare.
1872
84ec3b4b 1873 * lisp.h (get_local_map): Don't declare here.
869a3a14 1874
89d0c844
KH
18752000-05-29 Kenichi Handa <handa@etl.go.jp>
1876
1877 * Makefile.in (callproc.o): Depend on composite.h.
1878
1879 * callproc.c: Include composite.h.
1880 (Fcall_process): Handle composition correctly.
1881
1882 * coding.h (coding_allocate_composition_data): Extern it.
1883 (coding_restore_composition): Likewise.
1884
1885 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
1886 yet allocated, finish decoding with result
1887 CODING_FINISH_INSUFFICIENT_CMP.
1888 (coding_allocate_composition_data): Make it non-static.
1889 (coding_restore_composition): Likewise.
1890
797a084a
EZ
18912000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
1892
1893 * charset.c (syms_of_charset): Revert last change.
1894
cf872af5
EZ
18952000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
1896
1897 * term.c (produce_glyphs): Treat characters from the eight-bit-*
d7d0dac0
SM
1898 charsets as unibyte, with 1-column screen width. Sent by Kenichi
1899 Handa.
cf872af5 1900
5b1ae051
EZ
19012000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
1902
1903 * charset.c (syms_of_charset): Set width of character sets
1904 eight-bit-control and eight-bit-graphic to 1 column.
1905
34ec9ebe
GM
19062000-05-26 Gerd Moellmann <gerd@gnu.org>
1907
1908 * config.in (HAVE_SPEED_T): New define.
1909
1910 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
1911 `extern speed_t'.
1912
dd854dc2
DL
19132000-05-26 Dave Love <fx@gnu.org>
1914
1915 * coding.c (shrink_decoding_region): Initialize eol_conversion.
1916
1917 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
1918 (Fsubr_arity): New function.
1919 (syms_of_data): Install them.
1920
ba9f8f95
KH
19212000-05-26 Kenichi Handa <handa@etl.go.jp>
1922
0f3e0672
KH
1923 * charset.c (init_charset_once): Set the table bytes_by_char_head
1924 correctly.
1925
cebefb44
KH
1926 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
1927 the default fontset to what Emacs uses by default.
0f3e0672
KH
1928 (check_registry_encoding): This function deleted.
1929 (Fset_fontset_font): Remove the adhoc condition for the default
1930 fontset. Allow cons in FONTNAME.
cebefb44 1931
0f3e0672
KH
1932 * fns.c (map_char_table): Ignore char-table entries for
1933 charsets eight-bit-control and eight-bit-graphic.
ba9f8f95 1934
7a18af49
KR
19352000-05-25 Ken Raeburn <raeburn@gnu.org>
1936
1937 * emacs.c (main): Initialize keyboard syms before initializing
1938 window code, so face names are available.
1939
d2af47df
SM
19402000-05-25 Stefan Monnier <monnier@cs.yale.edu>
1941
1942 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
1943 of an anchor at the beginning of a shy-group.
1944
fc6a6a4e
GM
19452000-05-25 Gerd Moellmann <gerd@gnu.org>
1946
1947 * xdisp.c (handle_invisible_prop): Don't try to skip over
1948 invisible text if end of text is already reached.
1949
005f0d35
DL
19502000-05-25 Dave Love <fx@gnu.org>
1951
02513cdd
DL
1952 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
1953
005f0d35
DL
1954 * coding.c (encode_eol): Add null statement after label.
1955
89f6ca4e
EZ
19562000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
1957
1958 * w16select.c (Fw16_set_clipboard_data): Fix the change from
1959 2000-05-20.
1960
a4e1759e
KH
19612000-05-25 Kenichi Handa <handa@etl.go.jp>
1962
1963 * ccl.c (ccl_driver): Fix previous change.
1964
eacfd7fe
KH
19652000-05-25 Kenichi Handa <handa@etl.go.jp>
1966
46ab33a9
KH
1967 * coding.c (run_pre_post_conversion_on_str): Set point to the
1968 beginning of buffer before calling coding->post_read_conversion.
1969 (decode_coding_string): Give correct args to
1970 run_pre_post_conversion_on_str.
1971 (encode_coding_string): Likewise.
1972
eacfd7fe
KH
1973 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
1974 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
1975 eight-bit-graphic correctly.
1976
f8569325
DL
19772000-05-24 Kenichi HANDA <handa@etl.go.jp>
1978
1979 * fileio.c (Finsert_file_contents): Even if a file is not found,
1980 execute codes for setting up coding system. Call
1981 after-insert-file-functions unconditionally.
1982
04545643
GM
19832000-05-24 Gerd Moellmann <gerd@gnu.org>
1984
1985 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
1986 BSD_PGRPS are not defined.
1987
747d90ea
KH
19882000-05-24 Kenichi Handa <handa@etl.go.jp>
1989
1990 * charset.c (update_charset_table): Accept nil in LONG_NAME and
1991 DESCRIPTION.
1992 (syms_of_charset): Avoid building same strings.
1993
716e3b88
GM
19942000-05-23 Gerd Moellmann <gerd@gnu.org>
1995
1996 * lread.c (Fload): Add a comment about the meaning of
1997 Vuser_init_file being t.
1998
1999 * puresize.h (BASE_PURESIZE): Increase to 675000.
2000
2001 * s/gnu-linux.h (setpgrp): Don't define it here because this
2002 prevents compilation on GNU/Linux systems with glib 2.2.
2003
2004 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
2005 as setpgid.
427ec082 2006
9aeb39fa
EZ
20072000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
2008
2009 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
2010 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
2011 version.
2012 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
2013
29ced61b
KH
20142000-05-23 Kenichi Handa <handa@etl.go.jp>
2015
0574a2ed
KH
2016 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE
2017 unconditionally.
2018
3d80f24d
KH
2019 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
2020
2021 * term.c (encode_terminal_code): Set coding->src_multibyte
2022 properly.
2023
29ced61b
KH
2024 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
2025
d7e00792
KH
20262000-05-22 Kenichi Handa <handa@etl.go.jp>
2027
c9d80d38
KH
2028 * keyboard.c (read_char): Allow character codes 128..255 to be
2029 handled by input-method-function.
2030
d7e00792
KH
2031 * insdel.c (adjust_markers_for_replace): Fix previous change.
2032 (adjust_after_replace): If PREV_TEXT is nil, call
2033 adjust_markers_for_insert, not adjust_markers_for_replace.
2034
087121cc 20352000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
427ec082 2036
087121cc
GM
2037 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
2038 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
2039 [HAVE_GRANDPT]: Define.
2040 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
2041
2042 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
2043 like SYSV_PTYS.
2044
2045 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
2046
2047 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
2048
c9671f81
KH
20492000-05-20 Kenichi Handa <handa@etl.go.jp>
2050
2051 The following changes are to handle 8-bit characters in a
2052 multibyte buffer/string without facing with byte combining
2053 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
2054 eight-bit-graphic (for 0xA0..0xFF) are introduced.
2055
2056 * Makefile.in (fns.o): Depend on charset.h.
2057
2058 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
2059 convert it to unibyte.
2060 (make_string): Use parse_str_as_multibyte, not chars_in_text.
2061
2062 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
2063 apparent char boundary.
2064 (Fset_buffer_multibyte): Convert 8-bit characters in the range
2065 0x80..0x9F to/from multibyte form.
2066
2067 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
2068 to unibyte.
2069
2070 * callproc.c (Fcall_process): Always encode an argument string if
2071 it is multibyte. Setup src_multibyte and dst_multibyte members of
2072 process_coding properly.
ce75fd23 2073
c9671f81
KH
2074 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
2075 SPLIT_NON_ASCII_CHAR.
2076
2077 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
2078 as is.
2079 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
2080
2081 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New
2082 variables.
2083 (SPLIT_CHARACTER_SEQ): This macro deleted.
2084 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is
2085 valid.
2086 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
2087 and eight-bit-graphic.
2088 (char_to_string): Likewise. Signal an error for too large
2089 character code.
2090 (char_printable_p): Return 0 for 8-bit characters.
2091 (update_charset_table): Update iso_charset_table only when a final
2092 character is non-negative.
2093 (find_charset_in_text): Renamed from find_charset_in_str.
2094 Arguments and return value changed. Callers changed.
2095 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
2096 be -1 if CHARSET is used only internally.
2097 (Fmake_char_internal): Handle new charsets; eight-bit-control and
2098 eight-bit-graphic.
2099 (Fcharset_after): Simplified.
2100 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
2101 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
2102 (multibyte_chars_in_text): Simplified by assuming there's no
2103 invalid multibyte sequence.
2104 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
2105 str_as_unibyte): New functions.
2106 (Fstring): Simpified by assuming that byte combining never
2107 happens.
2108 (init_charset_once): Initialization for
2109 LEADING_CODE_8_BIT_CONTROL.
2110 (syms_of_charset): Intern and staticpro Qeight_bit_control and
2111 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
2112 eight-bit-control and eight-bit-graphic.
2113
2114 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL,
2115 CHARSET_8_BIT_GRAPHIC): New macros.
2116 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
2117 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
2118 (CHARSET_REVERSE_CHARSET): Likewise.
2119 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
2120 eight-bit-graphic.
2121 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
2122 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
2123 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
2124 encounter an invalid multibyte sequence.
2125 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
2126 sequence is always valid.
2127 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
2128 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New
2129 macros.
2130 (CHAR_STRING): For 8-bit characters, call char_to_string.
2131 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
2132 multibyte sequence is always valid.
2133 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
2134 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
2135 str_as_unibyte): Extern them.
2136 (BCOPY_SHORT): Fix a bug.
2137 (CHAR_LEN): This macro deleted. Callers changed to use
2138 CHAR_BYTES.
2139 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
2140 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
2141 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
2142
bd4bde7f 2143 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
c9671f81
KH
2144 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
2145 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
2146 EMIT_BYTES): New macros.
2147 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
2148 DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
2149 macros deleted.
2150 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
2151 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
2152 check the validity of multibyte sequence.
2153 (decode_coding_emacs_mule): New function.
2154 (encode_coding_emacs_mule): New macro.
2155 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
2156 the source.
2157 (DECODE_ISO_CHARACTER): Just return a character code.
2158 (DECODE_COMPOSITION_START): Set coding->result instead of result.
2159 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
2160 EMIT_CHAR to produced decoded characters. Exit the loop only by
2161 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
2162 block here.
2163 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
2164 only position codes for an invalid character.
2165 (encode_designation_at_bol): Return new destination pointer. 5th
2166 arg DSTP is changed to DST.
2167 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
2168 from the source by ONE_MORE_CHAR. Don't handle the case of last
2169 block here.
2170 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
2171 macros deleted.
2172 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
2173 detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
2174 TWO_MORE_BYTES to fetch a byte from the source.
2175 (encode_eol): Pay attention to coding->src_multibyte.
2176 (detect_coding, detect_eol): Preserve members src_multibyte and
2177 dst_multibyte.
2178 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
2179 (encoding_buffer_size): Set magnification to 3 for all coding
2180 systems that require encoding.
2181 (ccl_coding_driver): For decoding, be sure that the result is
2182 valid multibyte sequence.
2183 (decode_coding): Initialize coding->errors and coding->result.
2184 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
2185 and raw-text, always call decode_eol. Handle the case of last
2186 block here. If not coding->dst_multibyte, convert the resulting
2187 sequence to unibyte.
2188 (encode_coding): Initialize coding->errors and coding->result.
2189 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
2190 and raw-text, always call encode_eol. Handle the case of last
2191 block here.
2192 (shrink_decoding_region, shrink_encoding_region): Detect cases
2193 that we can't skip data more rigidly.
2194 (code_convert_region): Setup src_multibyte and dst_multibyte
2195 members of coding. For decoding, if the buffer is multibyte,
2196 convert the source sequence to unibyte in advance. For encoding,
2197 if the buffer is multibyte, convert the resulting sequence to
2198 multibyte afterward.
2199 (run_pre_post_conversion_on_str): New function.
2200 (code_convert_string): Deleted and divided into the following two.
2201 (decode_coding_string, encode_coding_string): New functions.
2202 (code_convert_string1, code_convert_string_norecord): Call one of
2203 above.
2204 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
2205 MAKE_NON_ASCII_CHAR.
2206 (Fset_terminal_coding_system_internal,
2207 Fset_safe_terminal_coding_system_internal): Setup src_multibyte
2208 and dst_multibyte members.
2209 (init_coding_once): Initialize iso_code_class with new enum
2210 ISO_control_0 and ISO_control_1.
2211
2212 * coding.h (enum iso_code_class_type): Member ISO_control_code is
2213 devided into ISO_control_0 and ISO_control_1.
2214 (struct coding_system): New members src_multibyte, dst_multibyte,
2215 errors, and result. Delete member fake_multibyte.
2216 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
2217 nonzero.
2218 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
2219 nonzero.
2220
2221 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
2222 (Faset): Likewise.
2223
2224 * editfns.c (Fformat): Be sure to convert 8-bit characters to
2225 multibyte form.
2226 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
2227 combining occurs.
2228 (Ftranspose_region): Delete codes for handling byte combining.
2229
2230 * fileio.c (Finsert_file_contents): Setup src_multibyte and
2231 dst_multibyte members of coding. On handling REPLACE on unibyte
2232 buffer, convert the result of decode_coding to unibyte. On
2233 inserting into a mutibyte buffer, always call code_convert_region.
bd4bde7f 2234 (e_write): Setup coding->src_multibyte according to the
c9671f81
KH
2235 multibyteness of the source (buffer or string).
2236
2237 * fns.c (concat): Handle 8-bit characters correctly.
2238 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
2239 unibyte in the result.
2240 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
2241 valid multibyte form in the result.
2242 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
2243 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
2244 return -1, signal an error.
2245 (base64_encode_1): New arg MULTIBYTE. Get each character by
2246 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
2247 character is found, return -1.
2248 (Fbase64_decode_region): Delete codes for handling byte-combining.
2249 Treat each decoded byte as a unibyte character.
2250 (Fbase64_decode_string): Return unibyte string.
2251 (Fcompare_strings, concat, string_byte_to_char): Use
2252 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
2253 FETCH_STRING_CHAR_ADVANCE.
2254 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
2255 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
2256
2257 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
2258 SPLIT_NON_ASCII_CHAR.
2259 (fontset_ref_via_base, fontset_set): Likewise
2260
2261 * insdel.c (adjust_markers_for_record_delete): Deleted.
2262 (adjust_markers_for_insert): Argument changed. Caller changed.
2263 (adjust_markers_for_replace): Likewise.
2264 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error,
2265 CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
2266 (copy_text): Delete unused local varialbe c_save. For converting
2267 to multibyte, be sure to make all 8-bit characters in valid
2268 multibyte form.
2269 (count_size_as_multibyte): Handle 8-bit characters correctly.
2270 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
2271 adjust_after_replace, replace_range, del_range_2)
2272 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
2273 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
2274 adjust_after_replace, replace_range, del_range_2) Delete codes for
2275 handling byte combining.
2276 (adjust_before_replace): Deleted.
427ec082 2277
c9671f81
KH
2278 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
2279 SPLIT_NON_ASCII_CHAR.
2280 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
2281 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE
2282 unconditionally.
2283 (Fkey_description): Likewise.
2284
2285 * lread.c (read1): On reading multibyte string, be sure to make
2286 all 8-bit chararacters in valid multibyte form.
2287 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
2288
2289 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
2290 unconditionally.
2291
2292 * process.c (Fstart_process): GCPRO current_dir before calling
2293 Ffind_operation_coding_system. Encode arguments here.
2294 (create_process): Don't encode arguments here. Setup
2295 src_multibyte and dst_multibyte members of struct coding.
2296 (read_process_output): Setup src_multibyte and dst_multibyte
2297 members of struct coding. If the output is to multibyte buffer,
2298 always decode the output of the process. Adjust the
2299 representation of 8-bit characters to the multibyteness of the
2300 output.
2301 (send_process): Setup coding->src_multibyte according to the
2302 multibyteness of the source.
2303
2304 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE
2305 unconditionally.
2306 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
2307 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
2308
2309 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of
2310 CHAR_LEN.
2311
2312 * w16select.c (Fw16_set_clipboard_data): Setup members
2313 src_multibyte and dst_multibyte of coding. Adjusted for the
2314 change for find_charset_in_str.
2315 (Fw16_get_clipboard_data): Likewise.
2316
2317 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
2318 dst_multibyte of coding.
2319 (x_to_w32_font): Likewise.
2320
2321 * w32select.c (Fw32_set_clipboard_data): Setup members
2322 src_multibyte and dst_multibyte of coding. Adjusted for the
2323 change for find_charset_in_str.
2324 (Fw32_get_clipboard_data): Likewise.
2325
2326 * xdisp.c (get_next_display_element): Handle 8-bit characters
2327 correctly.
2328 (next_element_from_display_vector): Use CHAR_BYTES instead of
2329 CHAR_LEN.
2330 (disp_char_vector): Use SPLIT_CHAR instead of
2331 SPLIT_NON_ASCII_CHAR.
2332
2333 * xselect.c (selection_data_to_lisp_data): Setup members
2334 src_multibyte and dst_multibyte of coding. Adjusted for the
2335 change for find_charset_in_str.
2336 (lisp_data_to_selection_data): Likewise.
2337
5f64c9e0
GM
23382000-05-19 Gerd Moellmann <gerd@gnu.org>
2339
2b63d473
GM
2340 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed
2341 buffer.
2342
5f64c9e0
GM
2343 * dispextern.h (Vimage_types): Add extern declaration.
2344
2345 * xdisp.c (Vimage_types): Moved here from xfns.c.
2346 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
2347
2348 * xfns.c (Vimages_types): Moved to xdisp.c.
2349 (syms_of_xfns): Move `image-types' to xdisp.c.
2350
2351 * w32fns.c (Vimage_types): Removed.
2352 (syms_of_w32fns): Remove `image-types'.
2353
813086ea
KH
23542000-05-18 Kenichi Handa <handa@etl.go.jp>
2355
2356 * fns.c (map_char_table): Pay attention to character number of
2357 charset. Check the validity of charset at the first level. For
2358 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
2359 the default value.
2360
2361 * fontset.c: Include "buffer.h".
2362 (fs_load_font): If the face has fontset, record the face ID in
2363 that fontset.
2364 (Finternal_char_font): New function.
2365 (accumulate_font_info): New function.
2366 (Ffontset_info): Rewritten for the new fontset implementation.
2367 (syms_of_fontset): Register Vdefault_fontset in the first element
2368 of Vfontset_table. Include Vdefault_fontset in
2369 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
2370 function.
2371
bdaebbf0
DL
23722000-05-16 Dave Love <fx@gnu.org>
2373
2374 * m/iris5d.h: Deleted -- unused.
2375
cb613bb8
GM
23762000-05-16 Gerd Moellmann <gerd@gnu.org>
2377
b15f3b77
GM
2378 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
2379 `invalid' instead of `illegal'.
2380
2381 * indent.c (Fmove_to_column): When ending within a tab, insert
2382 spaces first so that markers at the end of the tab get adjusted.
2383
835c1b36
GM
2384 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
2385 buffer list that wasn't selected in that frame.
2386
cb613bb8
GM
2387 * filelock.c (get_boot_time): To obtain an 8 char file name, which
2388 is needed on mescaline, use a 2 char prefix, and call
2389 make_temp_name with second arg non-zero.
2390
2391 * fileio.c (make_temp_name): New function, extracted from
2392 Fmake_temp_name.
2393 (Fmake_temp_name): Use it.
2394
f685bea9
EZ
23952000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
2396
2397 * window.c (coordinates_in_window): Subtract 1 when computing
2398 right_x.
2399
a1b8d58b
GM
24002000-05-15 Gerd Moellmann <gerd@gnu.org>
2401
2402 * Makefile.in (lisp): Add env.elc.
2403
2404 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
2405
a265079f
GM
24062000-05-12 Gerd Moellmann <gerd@gnu.org>
2407
2408 * search.c (Freplace_match): Handle case of `\N' in the
2409 replacement when there's no group N.
2410
da4496b6
GM
24112000-05-11 Gerd Moellmann <gerd@gnu.org>
2412
0ace421a
GM
2413 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
2414 of the message to message_dolog.
2415
1172eb8d
GM
2416 * keyboard.c (read_char): Don't clear current message for help
2417 events; let the code handling help events handle this. Change
2418 code detecting help events that should be ignored.
2419
da4496b6
GM
2420 * xdisp.c (handle_single_display_prop): Don't try to set PT if
2421 we're interating over a string.
2422
0623e40f
DL
24232000-05-09 Dave Love <fx@gnu.org>
2424
2425 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
2426 that offset before writing. Move gcpro region past call of
2427 Ffile_regular_p.
2428
bae2503b
DL
24292000-05-04 Dave Love <fx@gnu.org>
2430
2431 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
2432
ec82fb2f
GM
24332000-05-04 Gerd Moellmann <gerd@gnu.org>
2434
2435 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
2436 of inserted characters when BUF equals the current buffer, and PT
2437 is in front of or equal to FROM.
2438
cbf18892
GM
24392000-05-03 Gerd Moellmann <gerd@gnu.org>
2440
4ff40dd0
GM
2441 * xdisp.c (handle_single_display_prop): If display property value
2442 is invalid, or something not supported on the frame, restore
2443 iterator's position to what it was initially. Make sure to return
2444 0 for invalid and unsupported property values.
2445
cbf18892
GM
2446 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
2447 that x_per_char_metric returns null.
2448
1b0672c3
GM
24492000-05-02 Gerd Moellmann <gerd@gnu.org>
2450
576da55d
GM
2451 * xterm.h (struct face): Add forward declaration.
2452 (struct image): Ditto.
2453 (image_ascent): Add prototype.
2454
2455 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
2456 (x_draw_image_relief, x_draw_image_foreground_1): Call function
2457 image_ascent instead of using IMAGE_ASCENT.
2458
2459 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
2460 (IMAGE_ASCENT): Removed.
2461
2462 * xfns.c (Qcenter): New variable.
2463 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
2464 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
2465 (image_ascent): New function.
2466 (lookup_image): Recognize `:ascent center'.
2467 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
2468 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
2469 (xbm_load): Don't set image's ascent here.
2470 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
2471 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
2472 check ascent values here.
2473 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
2474 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
2475 (syms_of_xfns): Initialize Qcenter.
2476
1b0672c3
GM
2477 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
2478 to the limits, increase the limits.
2479
0d7811ed
KH
24802000-05-01 Kenichi Handa <handa@etl.go.jp>
2481
2482 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
2483 Check Vfont_encoding_alist against the full name of the opened
2484 font.
2485
a943a5ca
GM
24862000-04-28 Gerd Moellmann <gerd@gnu.org>
2487
2488 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
2489 taller than the window.
2490
5dba1e29
KH
24912000-04-28 Kenichi Handa <handa@etl.go.jp>
2492
2493 * xfaces.c (realize_x_face): Fix the argument of the second
2494 xassert. BASE_FACE may not be a face for ASCII.
2495
353964e3
GM
24962000-04-27 Gerd Moellmann <gerd@gnu.org>
2497
c76e04a8
GM
2498 * print.c (print_object): Treat print-length < 0 as nil.
2499
2500 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
2501
2502 * s/freebsd.h (TERMCAP_OBJ): Removed.
2503 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
2504
2505 * lread.c (read1): Don't treat period followed by certain
2506 characters as symbol start.
2507
2508 * xfns.c (slurp_file): New function.
2509 (xbm_image_p): Handle case of in-memory XBM files.
2510 (xbm_scan): Rewritten to work on memory buffers instead of files.
2511 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
2512 Work on memory buffers instead of files. If DATA is null test
2513 if buffer looks like an in-memory XBM file.
2514 (xbm_load_image): Renamed from xbm_load_image_file. Work on
2515 memory buffers instead of files.
2516 (xbm_file_p): New function.
2517 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
2518
353964e3
GM
2519 * lread.c (end_of_file_error): New function.
2520 (read1): Call it instead of signaling `end-of-file' directly.
2521
427ec082 2522 * print.c (print_error_message): Print data of `end-of-file'
353964e3
GM
2523 with Fprinc instead of Fprin1.
2524
24d744ac
KR
25252000-04-26 Ken Raeburn <raeburn@gnu.org>
2526
2527 * window.c (freeze_window_start): Check that minibuffer scroll
2528 window isn't nil before extracting the window structure pointer
2529 from it.
2530
2531 * undo.c (record_delete): If we hit the end of the undo list, stop
2532 picking elements apart.
2533
7464346d
GM
25342000-04-26 Gerd Moellmann <gerd@gnu.org>
2535
2536 * xdisp.c (display_line): If lines are continued, restore
2537 iterator's ascent/descent information to the values before the
2538 first glyph not fitting on the line.
2539
612839b6
GM
25402000-04-25 Gerd Moellmann <gerd@gnu.org>
2541
2542 * xdisp.c (try_window_id) <all changes above window start>: Adjust
2543 positions in glyph matrix. Don't compute new window end
2544 positions.
2545
2546 * dispnew.c (increment_matrix_positions): Renamed from
2547 increment_glyph_matrix_buffer_positions.
2548 (increment_row_positions): Renamed from
2549 increment_glyph_row_buffer_positions.
2550
2551 * dispextern.h: Change names of renamed functions from dispnew.c
2552 in prototypes.
2553
cc181e95
GM
25542000-04-24 Gerd Moellmann <gerd@gnu.org>
2555
abfcc168
GM
2556 * fileio.c (Fdo_auto_save): Create directories for auto-save
2557 list file if necessary.
2558
cc181e95
GM
2559 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
2560 from buffer or frame.
2561 (automatic_hscrolling_p): New variable.
2562 (hscroll_windows): Scroll windows horizontally only if automatic
2563 hscrolling is allowed.
2564 (syms_of_xdisp): New variable `automatic-hscrolling'.
2565
2566 * frame.h (struct frame): Add member extra_line_spacing.
2567
2568 * xfns.c (x_set_line_spacing): New function.
2569 (Fx_create_frame): Set line spacing from resources.
2570 (Qline_spacing): New variable.
2571 (syms_of_xfns): Initialize Qline_spacing.
427ec082 2572
cc181e95
GM
2573 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
2574
2575 * buffer.c (init_buffer_once): Handle extra_line_spacing.
2576 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
abfcc168 2577 (reset_buffer): Don't initialize extra2 and extra3. Initialize
cc181e95
GM
2578 extra_line_spacing from default value.
2579 (init_buffer_once): Initialize default value of extra_line_spacing.
2580
2581 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
2582 and extra3.
2583
2584 * xterm.c (x_produce_glyphs): Remove reference to struct it's
2585 prompt_width. Add extra line spacing.
2586
2587 * term.c (produce_glyphs): Remove reference to struct it's
2588 prompt_width.
2589
2590 * dispextern.h (struct it): Remove member prompt_width, add
2591 extra_line_spacing.
2592
58827478
GM
25932000-04-22 Gerd Moellmann <gerd@gnu.org>
2594
2595 * dispnew.c (update_frame_line): When writing a whole line, make
2596 sure cursor is in the right row afterwards, otherwise a use of
2597 capability `ch' in cmgoto might leave the cursor in the row below.
2598
25a87f42
GM
25992000-04-21 Gerd Moellmann <gerd@gnu.org>
2600
2601 * lisp.h (struct Lisp_Buffer_Cons): Remove.
2602
2603 * keyboard.c (timer_check): Fix typo in comment.
2604
54edf5c2
KH
26052000-04-21 Kenichi Handa <handa@etl.go.jp>
2606
2607 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
2608 name change: ch -> character.
2609
3a64eef5
GM
26102000-04-20 Gerd Moellmann <gerd@gnu.org>
2611
2612 * keyboard.c (echo_message_buffer): New variable.
2613 (echo_now): Set echo_message_buffer to the echo area buffer used
2614 to display the echo.
2615 (cancel_echoing): Reset echo_message_buffer to nil.
2616 (read_char): Code rewritten that handles canceling an echo or
2617 echoing a dash, respectively.
2618
2619 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
2620 directory doesn't exist.
2621
6142fdcb
DL
26222000-04-19 Dave Love <fx@gnu.org>
2623
2624 * fns.c (syms_of_fns): Defsubr mapc.
a9cacab7
DL
2625 (concat): Don't allow numeric args.
2626 (Fconcat): Doc change.
6142fdcb 2627
ac6b5352
SM
26282000-04-19 Stefan Monnier <monnier@cs.yale.edu>
2629
2630 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
2631 instead define end_match(1|2) more carefully.
2632 Use GET_CHAR_BEFORE_2 for `begline'.
2633
cb9215e4
GM
26342000-04-19 Gerd Moellmann <gerd@gnu.org>
2635
5e3dac3f
GM
2636 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
2637 on 64-bit systems where NULL is defined as `0'.
2638
2639 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
2640 the `variable argument list' to make it work on Alpha.
2641
cb9215e4
GM
2642 * m/alpha.h (_LP64) [!_LP64]: Define.
2643 (ORDINARY_LINK): Define for NetBSD.
2644
2645 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
427ec082 2646
f532dca0
DL
26472000-04-19 Dave Love <fx@gnu.org>
2648
c750667e
DL
2649 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
2650 change.
2651
2652 * Makefile.in (LIBS): Don't use.
2653 (GETLOADAVG_OBJ): Define again.
2654 (otherobj): Add GETLOADAVG_OBJ.
2655
f532dca0
DL
2656 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
2657
1c7e22fd
GM
26582000-04-18 Gerd Moellmann <gerd@gnu.org>
2659
f6d3257b
GM
2660 * lread.c (read_filtered_event): Cancel and start busy cursor.
2661
427ec082 2662 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
1c7e22fd
GM
2663 that the per-character metrics may be null.
2664
e10f64e7
GM
26652000-04-17 Gerd Moellmann <gerd@gnu.org>
2666
0daee095
GM
2667 * buffer.c (clone_per_buffer_values): New function.
2668 (Fmake_indirect_buffer): Add optional argument CLONE. Call
2669 clone_per_buffer_values if CLONE is not nil.
2670
e10f64e7
GM
2671 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
2672
38687d43
DL
26732000-04-16 Dave Love <fx@gnu.org>
2674
2675 * Makefile.in: Remove obsolete localcpp stuff.
2676 (GETLOADAVG_OBJ): Don't define.
2677 (obj): Move LIBOBJS...
2678 (otherobj): ... to here.
2679 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
2680 whitespace-only lines after the continuation (Irix).
2681
c21c7262
GM
26822000-04-14 Gerd Moellmann <gerd@gnu.org>
2683
2684 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
2685
2686 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
2687
314767c0
DL
26882000-04-14 Dave Love <fx@gnu.org>
2689
2690 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
2691 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
2692 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
2693 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
2694 NLIST_STRUCT.
2695
2696 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
2697 autoconfiscated HAVE_GETLOADAVG.
2698
2699 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
2700 BROKEN_MKTIME.
2701
a2522dca
GM
27022000-04-14 Gerd Moellmann <gerd@gnu.org>
2703
2704 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
2705 (fill_in_lock_file_name): Avoid existing files that aren't
2706 links.
2707
33744b5d
DL
27082000-04-14 Dave Love <fx@gnu.org>
2709
c21c7262 2710 * Makefile.in (LIBS, LIBOBJS): New variable.
33744b5d
DL
2711 (INTERVAL_SRC): Convert to make variable.
2712 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
2713 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
2714 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
2715 add LIBOBJS.
2716 (SOME_MACHINE_OBJECTS): Remove interval stuff.
2717 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
2718 (shortlisp): Add facemenu, float-sup, frame.
2719 (SOME_MACHINE_LISP): Remove them from here.
2720 (LIBES): Change unused LDLIBS to autoconf LIBS.
2721
2722 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
2723
9d3d5916
KH
27242000-04-14 Kenichi Handa <handa@etl.go.jp>
2725
2726 * composite.c (update_compositions): If FROM and TO are not in a
2727 valid range, do nothing.
2728
198e3c7a
GM
27292000-04-13 Gerd Moellmann <gerd@gnu.org>
2730
2731 * tparam.c (tparam1): Abort when encountering an unknown
2732 `%'-specifier.
2733
2734 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as
2735 terminfo.o.
2736
2737 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
2738 as TERMCAP_OBJ.
2739
055a28c9
EZ
27402000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
2741
2742 * fileio.c (a_write): Remove redundant semi-colons.
2743 (e_write): Return -1 if failed to write all the data.
2744 This fixes the changes made at 1999-12-15.
2745
f5c75033
DL
27462000-04-12 Dave Love <fx@gnu.org>
2747
2748 * fns.c (mapcar1): Test for null vals to support mapc.
2749 (Fmapc): New function.
2750
0c3cfc51
EZ
27512000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
2752
2753 * msdos.c (NUM_MOUSE_BUTTONS): Define.
2754 (IT_frame_up_to_date): Support the buffer local value of
2755 cursor-type, if defined.
2756
33465a31
DL
27572000-04-10 Dave Love <fx@gnu.org>
2758
2759 * editfns.c (preceding-char, following-char): Doc fix.
2760
6ed56568
KR
27612000-04-10 Ken Raeburn <raeburn@gnu.org>
2762
2763 * Makefile.in (temacs): Revert 2000-03-12 change.
2764
7cf80d4e
JR
27652000-04-10 Jason Rumney <jasonr@gnu.org>
2766
2767 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
2768
34f3f342
GM
27692000-04-10 Gerd Moellmann <gerd@gnu.org>
2770
1a1b1895
GM
2771 * xdisp.c (setup_echo_area_for_printing): Choose an echo
2772 area buffer, if it's not set up yet.
2773
34f3f342
GM
2774 * indent.c (compute_motion): Set immediate_quit.
2775
be0dbdab
GM
27762000-04-09 Gerd Moellmann <gerd@gnu.org>
2777
c45be9ac
GM
2778 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New
2779 variable.
2780 (realize_tty_face): Suppress boldness if colors are the inverse of
2781 the default colors, and tty_suppress_bold_inverse_default_colors_p
2782 is set.
2783 (Ftty_suppress_bold_inverse_default_colors): New function.
2784 (syms_of_xfaces): Defsubr it.
2785
be0dbdab
GM
2786 * buffer.c (Frestore_buffer_modified_p): New function.
2787 (syms_of_buffer): Defsubr it.
2788
e8413c3b
KR
27892000-04-08 Ken Raeburn <raeburn@gnu.org>
2790
87f67317
KR
2791 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
2792 charset id (int) argument, not a charset (Lisp_Object).
2793
e8413c3b
KR
2794 * coding.h (code_convert_string): Declare.
2795 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
2796 object, as the fourth argument to code_convert_string.
2797
2798 * fontset.c (make_fontset_for_ascii_face): Use XINT on return
2799 value.
2800 (Fset_fontset_font): Use EQ to compare lisp objects.
2801
7c752c80
KR
28022000-04-05 Ken Raeburn <raeburn@gnu.org>
2803
c0333abc
KR
2804 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
2805 a pointer that looks like a lisp object.
2806 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
2807 zero, instead see whether it's an integer object, since they can't
2808 have intervals.
2809 (GET_INTERVAL_OBJECT): Simply assign to the destination.
2810
7c752c80
KR
2811 * dispnew.c (allocate_matrices_for_frame_redisplay,
2812 direct_output_forward_char): Use X(U)INT and make_number as needed
2813 to convert between (unsigned) int values and lisp integers.
2814 * keyboard.c (read_key_sequence): Likewise.
2815 * lread.c (substitute_object_recurse): Likewise.
2816 * fns.c (concat, hash_lookup, hash_remove): Likewise.
2817 * minibuf.c (do_completion, Fminibuffer_complete_word,
2818 Fminibuffer_completion_help): Likewise.
2819 * term.c (produce_special_glyphs): Likewise.
2820
2821 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
2822 * print.c (print_preprocess, print_object): Likewise.
2823
2824 * search.c (compile_pattern): Use NILP when checking for nil.
2825
74e49b38
KR
2826 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
2827 __OPTIMIZE__]: Provide a GNU C macro version that handles
2828 lisp-object unions.
2829 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
2830 field, to better cope with ENABLE_CHECKING and calls that modify a
2831 Lisp_Object using its old value.
2832
685e5ed2
GM
28332000-04-04 Gerd Moellmann <gerd@gnu.org>
2834
c407c570
GM
2835 * window.c (compare_window_configurations): Signal an error
2836 if parameters C1 or C2 aren't window configurations.
2837
685e5ed2
GM
2838 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
2839 AFTER_POTENTIAL_GC calls around calls to functions that can
2840 signal an error and thus invoke the debugger.
2841
587a49ab
GM
28422000-04-03 Gerd Moellmann <gerd@gnu.org>
2843
62f20204
GM
2844 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
2845 an error if decoding fails.
2846
587a49ab
GM
2847 * keyboard.c (lispy_mouse_names): Variable removed.
2848 (Vlispy_mouse_stem): New variable.
2849 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
2850 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
2851 for any mouse button number. Increase size of mouse_syms and
2852 button_down_location as needed. Call modify_event_symbol with
2853 different arguments.
2854 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
2855 Call modify_event_symbol with different arguments.
2856 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
2857 for any button number. Call modify_event_symbol with different
2858 arguments.
2859 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
2860 Accept a string for NAME_ALIST_OR_STEM.
2861
2862 * lisp.h (larger_vector): Add prototype.
2863
2864 * fns.c (larger_vector): Make externally visible.
2865
2866 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
2867
2d1675e4
SM
28682000-04-02 Stefan Monnier <monnier@cs.yale.edu>
2869
2870 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
2871 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
2872 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
2873 we are between str1 and str2.
2874 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
2875 (PATFETCH): Use `TRANSLATE'.
2876 (PATFETCH_RAW): Fetch multibyte char if applicable.
2877 (PATUNFETCH): Remove.
2878 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
2879 When writing a char, write it directly into the pattern buffer rather
2880 than going needlessly through a temp char-array.
2881 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
2882 multibyte magic and remove the useless `#ifdef emacs'.
2883 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
2884 buffer.
2885
2886 * regex.h (struct re_pattern_buffer): Make field `multibyte'
2887 conditional on `emacs'.
2888
2889 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
2890
cc2d8c6b
KR
28912000-04-01 Ken Raeburn <raeburn@gnu.org>
2892
2893 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
2894 non-union-type versions of XMARK and friends here, because XMARK
2895 and friends won't work on an integer field if NO_UNION_TYPE is not
2896 defined.
2897 (make_number): Define as a function if it's not defined as a
2898 macro.
2899
09654086
KR
2900 * composite.c (run_composite_function): Use NILP when checking for
2901 nil.
2902 (syms_of_composite): Delete local var NARGS, pass an int as first
2903 argument to Fmake_hash_table.
2904
2387b382
KR
2905 * editfns.c (text_property_stickiness): Use NILP to test
2906 Lisp_Object boolean value.
2907 (Fmessage_or_box): Don't use NILP to test int variable.
c01fbf95
KR
2908 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
2909 problems reading from and changing the same lisp value in an
2910 XSETSTRING call.
2911
27660e89
GM
29122000-04-01 Gerd Moellmann <gerd@gnu.org>
2913
2914 * term.c (TN_no_color_video): New variable.
2915 (term_init): Intitialize TN_no_color_video.
2916 (enum no_color_bit): New enumeration.
2917 (MAY_USE_WITH_COLORS_P): New macro.
2918 (turn_on_face): Use it to determine if attributes may be used
2919 combined with colors.
2920
3578db3c
KR
29212000-04-01 Ken Raeburn <raeburn@gnu.org>
2922
2923 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
2924 with int lvalues via casts; instead, just yield lisp object
2925 lvalues.
2926 (enlarge_window): Variable sizep now points to Lisp_Object. Use
2927 proper accessor macros.
2928 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
2929 (grow_mini_window): Fix typo getting int value of root->height.
2930
6fc556fd
KR
2931 * xdisp.c (compute_string_pos): Fix order of arguments to
2932 string_pos_nchars_ahead.
2933 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
2934 count arg to variable-arg routines like Frun_hook_with_args and
2935 Fformat.
587a49ab
GM
2936 (back_to_previous_visible_line_start)
2937 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
6fc556fd
KR
2938 fixed-arg routines like Fget_char_property and Fmake_string.
2939 (reconsider_clip_changes): Use XINT when comparing integer lisp
2940 objects, or passing them as int arguments.
587a49ab
GM
2941 (mark_window_display_accurate, insert_left_trunc_glyphs)
2942 (append_space, extend_face_to_end_of_line): Use make_number when
6fc556fd
KR
2943 storing or passing integer values as lisp objects.
2944 (set_cursor_from_row, highlight_trailing_whitespace): Use
2945 INTEGERP, not implicit test against zero, for glyph object.
2946 (try_window_id): Don't use make_number when we want an int value.
2947
2948 * xfaces.c (xlfd_symbolic_value): Make last argument a
2949 Lisp_Object, to be consistent with callers.
2950 (Fbitmap_spec_p): Use XINT to get numeric value of height.
2951 (lface_hash): Apply XFASTINT to lisp values before folding in.
2952
2953 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
2954 fill in window width and height. Pass an int, not a lisp object,
2955 as first arg to Finsert.
2956
6e7b2457
GM
29572000-04-01 Gerd Moellmann <gerd@gnu.org>
2958
610d841e
GM
2959 * xfaces.c (realize_basic_faces): Block input while realizing
2960 the faces.
2961
6e7b2457
GM
2962 * keyboard.c (lispy_mouse_names): Add additional mouse names.
2963
2964 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
2965
aa110c0c
GM
29662000-03-31 Gerd Moellmann <gerd@gnu.org>
2967
2968 * xterm.c (x_produce_glyphs): When displaying unibyte text
610d841e 2969 or ASCII, handle case that per-char metric is null.
aa110c0c 2970
8801a864
KR
29712000-03-30 Ken Raeburn <raeburn@gnu.org>
2972
c6129d7e
KR
2973 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
2974
8801a864
KR
2975 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW,
2976 XSUBR, XBUFFER): Verify correct object type before returning
2977 pointer, using eassert.
2978 * frame.h (XFRAME): Likewise.
2979
2980 * buffer.c (Frename_buffer, Fset_buffer_multibyte,
2981 swap_out_buffer_local_variables, Fmove_overlay): Don't apply
2982 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong
2983 type.
2984 * data.c (set_internal): Likewise.
2985 * dispextern.h (WINDOW_WANTS_MODELINE_P,
2986 WINDOW_WANTS_HEADER_LINE_P): Likewise.
2987 * fileio.c (auto_save_1): Likewise.
2988 * insdel.c (check_markers): Likewise.
2989 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
2990 * undo.c (record_insert): Likewise.
2991 * vmsproc.c (child_sig): Likewise.
2992 * window.c (unshow_buffer, window_loop): Likewise.
2993 * xterm.c (x_erase_phys_cursor): Likewise.
2994
8e7af858
GM
29952000-03-30 Gerd Moellmann <gerd@gnu.org>
2996
2997 * xfns.c (free_image_cache): Free the cache structure itself
2998 last, after all its members have been freed.
2999
3000 * lisp.h (xstrdup): Add prototype.
3001
3002 * alloc.c (xstrdup): Moved here from xfaces.c.
3003 (allocating_for_lisp): Variable removed.
3004 (lisp_malloc): Block input around the calls to malloc and
3005 mem_insert.
3006
3007 * xfaces.c (realize_tty_face): Use find_symbol_value instead
3008 of Fsymbol_value.
3009 (xstrdup): Moved to alloc.c.
3010
e0b8c689
KR
30112000-03-29 Ken Raeburn <raeburn@gnu.org>
3012
b96f9fb7
KR
3013 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
3014
3015 * emacs.c (main): Fix sense of no-loadup test.
3016
e0b8c689
KR
3017 * config.in (ENABLE_CHECKING): Undef.
3018
3019 * lisp.h (struct interval): Replace "parent" field with a union of
3020 interval pointer and Lisp_Object; add new bitfield to use as
3021 discriminant. Change other flag fields to bitfields.
3022 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
3023 is defined and the supplied test fails, print a message and
3024 abort.
3025 (eassert): New macro. Use CHECK to provide an assert-like
3026 facility.
3027
3028 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
3029 pointers; abort if the value looks like a lisp object.
3030 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT,
3031 SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
3032 Modify for new interval parent definition.
3033
3034 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE,
3035 UNMARK_BALANCE_INTERVALS): Update references that need an
3036 addressable lisp object in the interval structure.
3037 (die): New function.
3038 (suppress_checking): New variable.
3039
3040 * intervals.c (interval_start_pos): Just return 0 if there's no
3041 parent object.
3042
f83c5440
GM
30432000-03-29 Gerd Moellmann <gerd@gnu.org>
3044
3045 * lread.c (read1): Accept `.' (period) as symbol start like in CL
3046 and earlier Emacs versions.
3047
3048 * keyboard.c (Ftop_level): Cancel busy-cursor.
3049
3050 * eval.c (call_debugger): Cancel busy-cursor.
3051
fdce64ff
KH
30522000-03-29 Kenichi Handa <handa@etl.go.jp>
3053
3054 * search.c (Freplace_match): Adjust multibyteness of the current
3055 buffer and NEWTEXT. Free allocated memory before signaling an
3056 error.
3057
f6a3f532
SM
30582000-03-28 Stefan Monnier <monnier@cs.yale.edu>
3059
3060 * regex.c (analyse_first): New function obtained by ripping out most
3061 of re_compile_fastmap and generalizing it a little bit so that it
3062 can also just return whether a given (sub)pattern can match the empty
3063 string or not.
3064 (regex_compile): Use `analyse_first' to decide whether the loop-check
3065 needs to be done or not for *, +, *? and +? (the loop check is costly
3066 for non-greedy repetition).
3067 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
3068
e9b309ac
DL
30692000-03-28 Dave Love <fx@gnu.org>
3070
bb15bd9a
DL
3071 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k,
3072 alpha.
3073
e9b309ac
DL
3074 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
3075
ed0767d8
SM
30762000-03-27 Stefan Monnier <monnier@cs.yale.edu>
3077
3078 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
3079 an expression.
3080 (enum re_opcode_t): Update description of succeed_n.
3081 (PATFETCH): Always define.
3082 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
3083 operators, char classes, shy-groups and intervals).
3084 Optimize special cases of intervals so as to only use succeed_n and
3085 jump_n when really needed.
3086 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
3087 that we don't have to handle the special cases any more.
3088 Simplify on_failure_jump handling as well.
3089
e11e7e46
JR
30902000-03-28 Jason Rumney <jasonr@gnu.org>
3091
3092 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
3093
88faab89
GM
30942000-03-27 Gerd Moellmann <gerd@gnu.org>
3095
182ff242
GM
3096 * s/freebsd.h (GC_SETJMP_WORKS): Define.
3097
3098 * s/msdos.h (GC_SETJMP_WORKS): Define.
427ec082 3099
182ff242
GM
3100 * alloc.c (mark_maybe_object): New function.
3101 (mark_memory): Use it.
3102 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
3103 (setjmp_tested_p, longjmp_done): New variables.
3104 (test_setjmp): New function.
3105 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
3106 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
3107
c1005d06
GM
3108 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
3109 to DEC_TEXT_POS and INC_TEXT_POS.
3110
3111 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
3112 with parameter MULTIBYTE_P.
3113
427ec082 3114 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter
c1005d06
GM
3115 MULTIBYTE_P.
3116
7439e5b9 3117 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
182ff242
GM
3118 buffers because it looks for multibyte character byte sequences
3119 which don't exist in unibyte text.
7439e5b9 3120
d9c545da
GM
3121 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
3122
11fd416e 3123 * xfaces.c (register_color, unregister_color, unregister_colors)
d9c545da
GM
3124 [DEBUG_X_COLORS]: New functions.
3125 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
3126
3127 * xfns.c (x_set_cursor_color): Get color reference counts right.
3128
3129 * xterm.c (x_copy_color): New function.
3130 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
3131
3132 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
3133 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
3134 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
3135 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
3136 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
3137 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
3138 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
3139 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
3140 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
3141 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
3142
11fd416e
GM
3143 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
3144 names for handling per-buffer variables.
d9c545da
GM
3145
3146 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
3147 instead of MAX_BUFFER_LOCAL_VARS.
3148 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
3149
3150 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
3151
88faab89
GM
3152 * xfns.c (x_specified_cursor_type): New function.
3153 (x_set_cursor_type): Use it.
3154
3155 * buffer.h (struct buffer): Add cursor_type.
3156
d80f42b7
SM
31572000-03-26 Stefan Monnier <monnier@cs.yale.edu>
3158
3159 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
427ec082 3160 (print_partial_compiled_pattern, re_compile_fastmap): Handle new
88faab89 3161 opcode.
d80f42b7
SM
3162 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
3163 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
3164 executing it as well as when popping it off the stack to find infinite
3165 loops in non-greedy repetition operators.
3166
89e80928
GM
31672000-03-26 Gerd Moellmann <gerd@gnu.org>
3168
3d4ff2dd
GM
3169 * doc.c (Qfunction_documentation): New variable.
3170 (syms_of_doc): Initialize Qfunction_documentation.
3171 (Fdocumentation): If FUNCTION is a symbol with non-nil
3172 `function-documentation' property, return a documentation derived
3173 from that.
3174
bd96bd79
GM
3175 * buffer.c (syms_of_buffer): Add default-cursor-type.
3176 (init_buffer_once): Don't let cursor_type have a local value
3177 in every buffer.
3178
19d1bc27
GM
3179 * xterm.c (x_display_and_set_cursor): Choose cursor depending
3180 on buffer-local value of cursor_type.
3181 (x_draw_bar_cursor): Add parameter WIDTH.
3182
3183 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
3184 (init_buffer_once): Set default cursor_type value to t.
3185 Mark cursor_type as local everywhere.
3186 (syms_of_buffer): New per-buffer variable cursor-type.
3187
89e80928
GM
3188 * buffer.h (struct buffer): Remove member local_var_flags,
3189 add local_flags.
3190 (MAX_BUFFER_LOCAL_VARS): New macro.
3191 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
3192 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
3193 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
3194 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
3195
3196 * print.c (print_object): Use new macros for per-buffer
3197 variables.
3198
3199 * category.c (Fset_category_table): Use new macros for per-buffer
3200 variables.
3201
3202 * buffer.c (buffer_permanent_local_flags): Make a char array.
3203 (max_buffer_local_idx): New variable.
3204 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
3205 for new handling of per-buffer variables.
3206 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
3207 (init_buffer_once): Initialize per-buffer vars differently.
3208 Set max_buffer_local_idx.
3209
3210 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
3211 variables.
3212
3213 * lread.c (defvar_per_buffer): Use new macros for per-buffer
3214 variables.
3215
3216 * data.c (do_symval_forwarding, store_symval_forwarding)
3217 (find_symbol_value, set_internal, default_value, Fset_default)
3218 (Fkill_local_variable, Flocal_variable_p): Use new macros for
3219 per-buffer variables.
3220
3221 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
3222
9a0dd3dc
GM
32232000-03-24 Gerd Moellmann <gerd@gnu.org>
3224
b68c375f
GM
3225 * xterm.c (x_term_init): Unblock input around call1 of
3226 Qvendor_specific_keysyms.
3227
9a0dd3dc
GM
3228 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
3229 (find_defun_start): Consider an open parenthesis in column 0
3230 a defun start only if open_paren_in_column_0_is_defun_start is set.
3231 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
3232
7973e637
SM
32332000-03-24 Stefan Monnier <monnier@cs.yale.edu>
3234
3235 * eval.c (Fautoload): Add entry in load-history (if after dump).
3236 * lread.c (load-history): Update docstring.
3237
39210e90
GM
32382000-03-24 Gerd Moellmann <gerd@gnu.org>
3239
3240 * indent.c (Fvertical_motion): Always use the current buffer.
3241 Temporarily change the window's buffer, if necessary.
3242
72db3ab5
GM
32432000-03-23 Gerd Moellmann <gerd@gnu.org>
3244
3245 * xterm.c (fast_find_position): Make sure not to consider rows
3246 not visible in the window.
3247
990b2375
SM
32482000-03-22 Stefan Monnier <monnier@cs.yale.edu>
3249
3250 * regex.c (enum syntaxcode): Provide default for non-Emacs.
3251 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
3252
ff4df011
JR
32532000-03-22 Jason Rumney <jasonr@gnu.org>
3254
3255 * w32menu.c (single_submenu): Set help string to NULL if none.
3256 (w32_menu_show): Set help string correctly.
3257 (add-menu-item): Set help string in MIIM_DATA for menu item.
3258 Load SetMenuItemInfoA explicitly.
3259 (w32_menu_display_help): New function.
427ec082 3260
ff4df011
JR
3261 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
3262 (QCdata): Moved to xdisp.c.
3263
3264 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
3265 (Vw32_charset_to_codepage_alist): Removed.
3266 (Vw32_charset_info_alist): New variable.
3267 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312,
3268 chinesebig5, oem, easteurope, turkish, baltic, russian, arabic,
3269 greek, hebrew, thai, johab, mac, unicode]): New symbols.
3270 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
3271 with TODO comment.
3272 (w32_codepage_for_font): Use Vw32_charset_info_alist.
3273 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
3274 Define Vw32_charset_info_alist and w32_charset symbols.
3275
32762000-03-22 Jason Rumney <jasonr@gnu.org>
3277
3278 * makefile.nt (w32bdf.obj): Update dependencies.
3279
3280 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
3281
3282 * w32fns.c: Include fontset.h after dispextern.h.
3283 (Fx_create_frame): Do not create fontset.
3284 (w32_load_system_font): Doc fix.
3285 (Fx_close_connection): Free full_name if it is not shared.
3286
3287 * w32term.c: Include fontset.h after dispextern.h.
3288 (x_get_glyph_face_and_encoding): New parameter two_byte_p. Callers
3289 updated.
3290 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
3291 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
3292 (w32_font_is_double_byte): New function, needs body.
3293 (x_append_glyph): Set glyph->glyph_not_available_p.
3294 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
3295 it->charset. If it->multibyte_p is zero and it->c is a multibyte
3296 character, convert it to a unibyte character.
3297 (struct glyph_string): Delete member `charset'.
3298 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
3299 calculating it is found.
3300 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
3301 the case that per char metric is not available correctly.
3302 (x_fill_glyph_string): Handle the case that the specific glyph is
3303 not available correctly.
3304 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
3305 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
3306 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
3307 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
3308 fontset. Don't call FS_LOAD_FONT.
3309
439d5cb4
KR
33102000-03-22 Ken Raeburn <raeburn@gnu.org>
3311
3312 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
3313 (INT_LISPLIKE): New macro.
3314 (NULL_INTERVAL_P): Use it.
3315 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT,
3316 SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT,
3317 GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
3318
3319 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
3320 explicit references to "parent" field of struct interval and
3321 associated unclean type conversions.
3322 * intervals.c (create_root_interval, root_interval, rotate_right,
3323 rotate_left, balance_possible_root_interval, split_interval_right,
3324 split_interval_left, interval_start_pos, find_interval,
3325 next_interval, previous_interval, update_interval,
3326 adjust_intervals_for_insertion, delete_node, delete_interval,
3327 adjust_intervals_for_deletion, merge_interval_right,
3328 merge_interval_left, reproduce_tree, graft_intervals_into_buffer,
3329 copy_intervals_to_string): Likewise.
3330 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
3331 Likewise.
3332 * syntax.c (update_syntax_table): Likewise.
3333
3334 * intervals.c (reproduce_tree_obj): New function, like
3335 reproduce_tree but takes a Lisp_Object for the parent. Declare
3336 with prototype.
3337 (graft_intervals_into_buffer): Use it when appropriate.
3338 (reproduce_tree): Declare with prototype.
3339 (balance_possible_root_interval): Check that the parent is a lisp
3340 object before trying to examine its type.
3341
ee1c5b21
GM
33422000-03-22 Gerd Moellmann <gerd@gnu.org>
3343
3344 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
3345 as strings only if both are known to be strings.
3346
3347 * s/openbsd.h (LIBS_TERMCAP): Undef.
3348
1fb352e0
SM
33492000-03-21 Stefan Monnier <monnier@cs.yale.edu>
3350
3351 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
3352 definitions for non-Emacs compilation.
3353 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
3354 outside of `#ifdef emacs'.
3355 (print_partial_compiled_pattern): Update.
3356 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
3357 (re_compile_fastmap): Merge handling of charset and charset_not (for
3358 emacs and non-emacs compilation as well).
3359 Similarly for (not)categoryspec and (not)syntaxspec.
3360 Don't use the fastmap when reaching `anychar' since the added
3361 complexity is not justified.
3362 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
3363 and (not)syntaxspec. Merge (not)categoryspec.
3364
fdaa1f77
KH
33652000-03-22 Kenichi Handa <handa@etl.go.jp>
3366
ff1a0d8e
KH
3367 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P,
3368 FACE_FOR_CHAR): Define them differently for the configuration of
3369 --without-x.
fdaa1f77 3370
d152fb46
DL
33712000-03-21 Dave Love <fx@gnu.org>
3372
3373 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
3374 doc string.
3375
d2cafc8c
GM
33762000-03-21 Gerd Moellmann <gerd@gnu.org>
3377
3378 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
3379 (lface_fully_specified_p): Don't check contents of
3380 LFACE_FONT_INDEX because that attribute is optional.
3381 (realize_x_face): Remove now unwarranted xassert.
3382
9111d4b5
KH
33832000-03-21 Kenichi HANDA <handa@etl.go.jp>
3384
3385 The following changes are to make font selection based on
3386 characters, not charset. In addition, they recover fontset
3387 facilities while utilizing the new font selection mechanism.
3388
6c4bfdc0
KH
3389 * Makefile.in (fontset.o): Depend on dispextern.h.
3390
3391 * alloc.c (mark_face_cache): Don't mark face->registry.
3392
9111d4b5
KH
3393 * dispextern.h (struct glyph): New member glyph_not_available_p.
3394 Use 22 bits for face_id.
3395 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
3396 (struct face): Delete member registry, new member ascii_face.
3397 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
3398 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
3399 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
3400 (struct it): Delete member charset, new member
3401 glyph_not_available_p.
3402
3403 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
3404 (struct fontset_info, struct fontset_data): Structs removed.
3405 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset,
3406 Vglobale_fontset_alist, font_idx_temp): Externs removed.
3407 (fs_load_font, fs_query_fontset): Adjusted for new argument.
3408 (fs_free_face_fontset, fontset_font_pattern,
3409 face_suitable_for_char_p, face_for_char,
3410 make_fontset_for_ascii_face): Extern them.
3411 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
3412 (FS_LOAD_FACE_FONT): New macro.
3413
3414 * fontset.c: All codes rewritten or adjusted for the change of
3415 fontset implementation. Now fontset is represented by char table.
3416 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl): Variables
3417 removed.
3418 (my_strcasecmp): Function removed.
3419 (Vfontset_table, next_fontset_id, Vdefault_fontset): New
3420 variables.
3421 (AREF, ASIZE): New macros.
3422 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME,
3423 FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF,
3424 FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
3425 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset,
3426 fontset_id_valid_p, font_family_registry, fontset_name,
3427 fontset_ascii, free_face_fontset, face_suitable_for_char_p,
3428 face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
3429 New functions.
3430 (fs_load_font): New arg FACE. Caller changed.
3431 (fs_query_fontset): Argument changed. Caller changed.
3432 (Fquery_fontset): call fs_query_fontset.
3433 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
3434 Functions removed.
3435 (clear_fontset_elements, check_registry_encoding,
3436 check_fontset_name): New functions.
3437 (syms_of_fontset): Set char-table-extra-slots property of fontset
3438 to 3. Staticpro and initialize Vfontset_table and
3439 Vdefault_fontset. Defsubr fontset_font and fontset_list.
3440
3441 * frame.h (struct frame): Member `fontset_data' removed.
3442 (FRAME_FONTSET_DATA): Macro removed.
3443
3444 * frame.c (make_frame): Don't allocate f->fontset_data.
3445 (Fdelete_frame): Don't free f->fontset_data.
3446
6c4bfdc0
KH
3447 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
3448
9111d4b5
KH
3449 * xdisp.c (charset_at_position): Function removed.
3450 (init_iterator): Don't set member charset of struct `it'.
3451 (handle_face_prop, reseat_to_string, set_iterator_to_next,
3452 next_element_from_display_vector, insert_left_trunc_glyphs):
3453 Likewise.
3454 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
3455 FACE_FOR_CHARSET.
3456 (get_next_display_element, append_space,
3457 extend_face_to_end_of_line): Likewise.
3458
3459 * xfaces.c (Qx_charset_registry, Vface_default_registry):
3460 Variables removed.
3461 (clear_font_table, frame_update_line_height, load_face_font):
3462 Adjusted for the change of fontset implementation.
3463 (load_face_fontset_font): Function removed.
3464 (pixel_point_size): New function.
3465 (font_list): Argument type changed. Caller changed.
3466 (LFACE_FONT): New macro.
3467 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
3468 (set_lface_from_font_name): Type of arg FONTNAME is changed to
3469 Lisp_Object. Determine the font name by actually loading a font
3470 by the specified pattern. Set LFACE_FONT (lface) to the specified
3471 pattern. Even if a font is not found, don't try alternatives.
3472 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
3473 (set_font_frame_param): If `font' is specified in lface, use it.
3474 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
3475 (lface_same_font_attributes_p): Likewise.
3476 (make_realized_face): Arguent changed. Caller changed. Set
3477 face->ascii_face to face itself.
3478 (free_realized_face): Free face->fontset if face is for ASCII.
3479 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p,
3480 deduce_unibyte_registry, x_charset_registry): Functions removed.
3481 (free_realized_multibyte_face): New function.
3482 (lookup_face, lookup_named_face, lookup_derived_face): Argument
3483 changed. Caller changed.
3484 (try_font_list): Argument type changed.
3485 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
3486 (choose_face_font): Argument changed. Handle fontset properly.
3487 (choose_face_fontset_font): Function removed.
3488 (realize_default_face, realize_named_face): Don't remove the
3489 former face here.
3490 (realize_face): Argument changed. Caller changed. Remove face
3491 with the arg former_face_id in advance. Load font for the new
3492 face.
3493 (realize_x_face): Argument changed. Caller changed. For a
3494 multibyte character, share fontset with base_face. For a single
3495 byte character, make a new realized fontset. Don't load a font
3496 here.
3497 (realize_tty_face): Argument changed. Caller changed.
3498 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
3499 (face_at_buffer_position): Don't check multibyte_p for returning
3500 DEFAULT_FACE_ID.
3501 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
3502 FACE_SUITABLE_FOR_CHARSET_P.
3503 (syms_of_xfaces): Remove code for Qx_charset_registry and
3504 Vface_default_registry.
3505
6c4bfdc0
KH
3506 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
3507 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
9111d4b5
KH
3508 (x_per_char_metric): Don't try FONT->default_char. Even if
3509 pcm->width is zero, glyph bits may exist.
3510 (x_encode_char): Always initialize char2b->byte1.
3511 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
3512 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller
3513 changed.
3514 (x_append_glyph): Set glyph->glyph_not_available_p.
3515 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
3516 it->charset. Handle the case that per char metric is not
3517 available. If it->multibyte_p is zero and it->c is a multibyte
3518 character, convert it to a unibyte character.
3519 (struct glyph_string): Delete member `charset'.
3520 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
3521 the case that per char metric is not available correctly.
3522 (x_fill_glyph_string): Handle the case that the specific glyph is
3523 not available correctly.
3524 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
3525 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
3526 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
3527 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
3528 fontset. Don't call FS_LOAD_FONT.
3529
3530 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
3531 (x_create_tip_frame): Likewise.
3532 (Fx_close_connection): Free full_name of font_info.
3533
3534 * fns.c (optimize_sub_char_table): New function.
3535 (Foptimize_char_table): New function.
3536 (syms_of_fns): Defsubr Soptimize_char_table.
3537
b33dd3b0
GM
35382000-03-20 Gerd Moellmann <gerd@gnu.org>
3539
3540 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
3541 only if buffer is displayed in some window.
3542
3543 * xdisp.c (handle_single_display_prop): Initialize local `value'.
3544 (try_window_reusing_current_matrix): Don't call scroll run
3545 function if run's current and desired position are the same;
3546 this prevents cursor flickering.
3547
4e8a9132
SM
35482000-03-19 Stefan Monnier <monnier@cs.yale.edu>
3549
3550 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
3551
3552 * regex.c (RE_STRING_CHAR): New macro.
3553 (GET_CHAR_AFER_2): Remove.
3554 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
3555 (enum re_opcode_t): Remove on_failure_jump_exclusive.
3556 (print_partial_compiled_pattern, re_compile_fastmap)
3557 (re_match_2_internal): Remove on_failure_jump_exclusive.
3558 (regex_compile): Turn optimizable P+ loops into PP*, so that the
3559 optimization only need to work for * (ie. can use of_keep_string_jump).
3560 Remove the special case for .*\n since it is now covered by the general
3561 optimization.
3562 (re_search_2): Don't bother with `room'.
3563 (skip_one_char): New function.
3564 (skip_noops): Simplify since `memory' is not needed any more.
3565 (mutually_exclusive_p): Restructure slightly to use `switch' and
3566 add handling for "all" remaining cases.
3567 (re_match_2_internal): Change on_failure_jump_smart to use
3568 on_failure_keep_string_jump (and redirect the end-of-loop jump)
3569 rather than on_failure_jump_exclusive.
3570
2136fdd4
GM
35712000-03-19 Gerd Moellmann <gerd@gnu.org>
3572
3573 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
3574 number of bits per RGB because it's everywhere used as the depth
3575 of the visual.
3576
3577 * term.c (calculate_costs): Remove code dealing with X frames.
3578
18e21ce8 35792000-03-19 Richard M. Stallman <rms@gnu.org>
e53ae11c
RS
3580
3581 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
3582
d7b511c4
GM
35832000-03-18 Gerd Moellmann <gerd@gnu.org>
3584
3585 * lread.c (read_integer): Unread the last char not consumed.
3586
16b5d424
GM
35872000-03-17 Gerd Moellmann <gerd@gnu.org>
3588
3589 * xterm.c (x_update_window_cursor): Don't update in frames
d7b511c4 3590 which are in the process of being deleted.
16b5d424 3591
1fa28578
GM
35922000-03-16 Gerd Moellmann <gerd@gnu.org>
3593
83488cce
GM
3594 * Makefile.in (mostlyclean): Add `*.core'.
3595 (clean): Add `bootstrap-emacs'.
3596
1fa28578
GM
3597 * lread.c (read_integer): New function.
3598 (read1): Support read syntax #o, #x, #b, #r.
3599
99633e97
SM
36002000-03-15 Stefan Monnier <monnier@cs.yale.edu>
3601
1fa28578
GM
3602 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
3603 make sure POINTER_TO_OFFSET gives the same value before and after
3604 PREFETCH. Use `dfail' to guarantee "atomic" matching.
99633e97
SM
3605 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
3606 (debug): Now only active if > 0 rather than if != 0.
3607 (DEBUG_*): Update for the new meaning of `debug'.
1fa28578
GM
3608 (print_partial_compiled_pattern): Add missing `succeed' case. Use
3609 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
3610 in `succeed_n', `jump_n' and `set_number_at'.
99633e97
SM
3611 (store_op1, store_op2, insert_op1, insert_op2)
3612 (at_begline_loc_p, at_endline_loc_p): Add prototype.
1fa28578
GM
3613 (group_in_compile_stack): Move to after its arg's types are
3614 declared and add a prototype.
99633e97 3615 (PATFETCH): Define in terms of PATFETCH_RAW.
1fa28578
GM
3616 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)'
3617 wrapper.
99633e97 3618 (QUIT): Redefine as a nop except for NTemacs.
1fa28578
GM
3619 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
3620 indentation of the greedy-op and shy-group code.
99633e97
SM
3621 (at_(beg|end)line_loc_p): Fix argument's types.
3622 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
3623 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
3624 (MATCHING_IN_FIRST_STRING): Remove.
1fa28578
GM
3625 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
3626 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
3627 QUIT unconditionally.
99633e97 3628
699238d9
GM
36292000-03-15 Gerd Moellmann <gerd@gnu.org>
3630
3631 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
3632 a sole completion.
3633
3634 * process.c (send_process): Add a hint that the function
3635 can call Lisp code to its comment.
3636
3637 * lread.c (load_dangerous_libraries): New variable.
3638 (Vbytecomp_version_regexp): New variable.
3639 (safe_to_load_p): New function.
3640 (Fload): Handle files not compiled with Emacs specially.
3641 (syms_of_lread): New Lisp variable load-dangerous-libraries.
3642
34e23e5a
GM
36432000-03-14 Gerd Moellmann <gerd@gnu.org>
3644
9c763cca
GM
3645 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
3646
3647 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
3648 support functions only if HAVE_X11R6_XIM is defined.
3649 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
3650
3651 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
3652
3653 * xfns.c (X_I18N_INHIBITED): Don't define.
3654 (create_frame_xic): Remove conditional compilation on
3655 X_I18N_INHIBITED.
3656 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
3657
3658 * config.in (HAVE_X_I18N): Moved here from xterm.h.
3659 (HAVE_X11R6_XIM): Define.
3660
3661 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
3662
34e23e5a
GM
3663 * xterm.c (x_term_init): Add support for X resource `synchronous'.
3664 If set, call XSynchronize.
3665
66f0296e
SM
36662000-03-13 Stefan Monnier <monnier@cs.yale.edu>
3667
34e23e5a
GM
3668 * regex.c: Declare a new type `re_char' used throughout the code
3669 for the string char type. It's `const unsigned char' to match the
3670 rest of Emacs. Consistently make sure all pointers to strings use
3671 it and make sure all pointers into the pattern use `unsigned
3672 char'.
66f0296e 3673 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
34e23e5a
GM
3674 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
3675 code duplication.
66f0296e
SM
3676
3677 * charset.h (GET_CHAR_AFTER_2): Remove.
3678 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
3679
854a025c
KR
36802000-03-12 Ken Raeburn <raeburn@gnu.org>
3681
3682 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
3683 variable before the invocation of YMF_PASS_LDFLAGS, in case both
3684 of them try to use backquotes.
3685
b9d2c7e2
DL
36862000-03-12 Dave Love <fx@gnu.org>
3687
3688 * unexelf.c: Restore changes of 1999-10-19.
3689 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
3690 fix its type and alignment; copy it from current process.
3691
5e5dff44
GM
36922000-03-12 Gerd Moellmann <gerd@gnu.org>
3693
9b2f3c38
GM
3694 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
3695 has been found. Fix bug not computing timer's predecessor.
3696
427ec082 3697 * fileio.c (Fread_file_name): Handle case that DIR contains a
9172b88d
GM
3698 file name.
3699
e1cff360
GM
3700 * window.c (Fsave_window_excursion): Doc fix.
3701
5e5dff44
GM
3702 * xfns.c (x_defined_color): Rewritten to use
3703 x_allocate_nearest_color.
3704
e411ce4b
EZ
37052000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
3706
3707 * msdos.c (vga_installed): New function, code moved from
3708 dos_set_window_size.
3709 (Qbar, Qcursor_type, outside_cursor): New variables.
3710 (syms_of_msdos): Intern and staticpro them.
3711 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
3712 shape used outside Emacs when called for the first time.
3713 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
3714 cursor shape used outside Emacs.
3715 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
3716 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
3717 type has changed.
3718 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
3719 parameters specify the cursor. Make qreverse a global
3720 variable (renamed to Qreverse).
3721
80460654
GM
37222000-03-09 Gerd Moellmann <gerd@gnu.org>
3723
3724 * fns.c (Fy_or_n_p): Cancel busy-cursor.
3725
95cd4c40
SM
37262000-03-08 Stefan Monnier <monnier@cs.yale.edu>
3727
3728 This is a big redesign of failure-stack and register handling, prompted
3729 by bugs revealed when trying to add shy-groups. Overall, what happened
3730 is that loops are now structured a little differently, groups can be
3731 shy and the code is a little simpler.
3732
3733 * regex.h: Update the copyright.
3734 (RE_SHY_GROUPS): New value.
3735 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
3736 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
3737
80460654
GM
3738 * regex.c (enum re_opcode_t): Remove jump_past_alt,
3739 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
3740 on_failure_jump_(exclusive, loop and smart). Also fix the comment
3741 for (start|stop)_memory since they now only take one argument (the
3742 second has becomes unnecessary).
3743 (print_partial_compiled_pattern): Adjust for changes in
3744 re_opcode_t.
3745 (print_compiled_pattern): Use %ld to printf long ints and flush to
3746 make debugging a little easier.
95cd4c40
SM
3747 (union fail_stack_elt): Make the integer unsigned.
3748 (struct fail_stack_type): Add a `frame' element.
3749 (INIT_FAIL_STACK): Init `frame' as well.
3750 (POP_PATTERN_OP): New macro for re_compile_fastmap.
3751 (DEBUG_PUSH, DEBUG_POP): Remove.
3752 (NUM_REG_ITEMS): Remove.
3753 (NUM_NONREG_ITEMS): Adjust.
80460654
GM
3754 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
3755 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
95cd4c40 3756 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
80460654
GM
3757 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP): New
3758 macros.
3759 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
3760 address pushed is not the destination of the jump but the source
3761 of it instead.
95cd4c40
SM
3762 (NUM_FAILURE_ITEMS): Remove.
3763 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
80460654
GM
3764 registers before the actual failure point). Don't hardcode any
3765 meaning for str==NULL anymore.
95cd4c40 3766 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
80460654
GM
3767 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
3768 Remove.
95cd4c40
SM
3769 (REG_UNSET_VALUE): Use NULL (why not?).
3770 (compile_range): Remove declaration since it doesn't exist.
3771 (struct compile_stack_elt_t): Remove inner_group_offset.
3772 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
3773 (regex_grow_registers): Remove dead code.
3774 (FIXUP_ALT_JUMP): New macro.
80460654
GM
3775 (regex_compile): Add shy-groups Change loops to use
3776 on_failure_jump_smart&jump instead of
3777 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
3778 initial (dummy_failure_)jump. Remove c1_base (looks like unused
3779 variable to me). Use `jump' instead of `jump_past_alt' and don't
3780 bother with push_dummy_failure in alternatives since it is now
3781 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
3782 emacs' for (re)allocating the stack.
3783 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
3784 from loop when bufp->can_be_null rather than jumping to `done'.
3785 Avoid jumping backwards so as to ensure termination. Use
3786 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
3787 backreferences. Remove dead code in handling of `anychar'.
95cd4c40 3788 (skip_noops, mutually_exclusive_p): New functions taken from the
80460654
GM
3789 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
3790 improve mutually_exclusive_p to handle ".+\n".
3791 (lowest_active_reg, highest_active_reg,
3792 NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
3793 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
3794 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
3795 variables. Push register (in `start_memory') on the stack rather
3796 than storing it in old_reg(start|end). Remove the cycle detection
3797 from `stop_memory', replaced by the use of on_failure_jump_loop
3798 for greedy loops. Add code for the new on_failure_jump_<foo>.
3799 Remove ad-hoc code in `on_failure_jump' to push more registers in
3800 the case of a loop. Take out code from `maybe_pop_jump' into
3801 separate functions and adapt it to the semantics of
3802 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
3803 and push_dummy_failure. Remove dummy_failure handling and
3804 handling of `failures to jump to on_failure_jump' (this last one
3805 was already dead code, it seems).
3806 (group_match_null_string_p, alt_match_null_string_p)
3807 (common_op_match_null_string_p): Remove.
95cd4c40 3808
7397acc4
DL
38092000-03-08 Dave Love <fx@gnu.org>
3810
3811 * config.in: Don't depend on __STDC__ for volatile.
3812 Add POINTER_TYPE, PTR, PROTOTYPES.
3813
3814 * hftctl.c, strftime.c: Use PROTOTYPES.
3815 * eval.c (find_handler_clause): Likewise.
3816
3817 * mem-limits.h: Use POINTER_TYPE.
3818
3819 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
3820 (memory_warnings): Declare using POINTER_TYPE.
3821
5e91ff9e
GM
38222000-03-08 Gerd Moellmann <gerd@gnu.org>
3823
feab4fba
GM
3824 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
3825
25edb08f
GM
3826 * xdisp.c (display_echo_area): Temporarily inhibit garbage
3827 collection.
3828
5e91ff9e
GM
3829 * xfns.c: Remove obsolete code in #if 0.
3830 (Fx_focus_frame): New function.
3831
a735b7e1
KH
38322000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
3833
3834 * coding.c (coding_category_name): Add coding-category-utf-8,
3835 coding-category-utf-16-be, coding-category-utf-16-le.
3836 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
3837 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
3838 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
3839 (detect_coding_utf_8): New function.
3840 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
3841 UTF_16_LOW_SURROGATE_P): New macros.
3842 (detect_coding_utf_16): New function
3843 (detect_coding_mask): When priorities are specified, skip any
3844 categories that have `nil' coding-system. Fix bug of returning
3845 wrong mask when PRIORITIES is specified and detect_coding_XXX()
3846 returns a mask not set in PRIORITIES.
3847 (detect_eol_type_in_2_octet_form): New function.
3848 (detect_eol): selects detect_eol_type_XXX to call according to
3849 cooding->category_idx.
3850 (detect_coding_system): Remove `nil' coding-system in the result.
3851 (Fupdate_coding_systems_internal): Update all coding-categories.
3852
3853 * coding.h (CODING_CATEGORY_IDX_UTF_8,
3854 CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE): New
3855 macros.
3856 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY,
3857 CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
3858 CODING_CATEGORY_IDX_UTF_16_LE.
3859 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE,
3860 CODING_CATEGORY_MASK_UTF_16_LE): New macros.
3861 (CODING_CATEGORY_MASK_ANY): Include the above macros.
3862 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
3863
9994cc69
GM
38642000-03-07 Gerd Moellmann <gerd@gnu.org>
3865
e9b4e5ff
GM
3866 * doc.c (Fdocumentation_property): If value is not a string,
3867 and doesn't refer to etc/DOC, evaluate it to obtain a string.
3868
f7daf1e1
GM
3869 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
3870 close the display with XtCloseDisplay. This caused a bus error
3871 on OpenWindows.
3872
9994cc69
GM
3873 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
3874 complete but not unique.
3875
4336c705
GM
38762000-03-06 Gerd Moellmann <gerd@gnu.org>
3877
18bb0684
GM
3878 * process.c (send_process): Remove local variable `procname' that
3879 might become invalid when a GC happens. Instead, access the
3880 process name slot directly.
3881
4336c705
GM
3882 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
3883 orig_height if set.
3884
3885 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
3886 orig_height if set.
3887
515d0d0e
EZ
38882000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
3889
3890 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
3891 glyph matrices have been freed.
3892
100b3cbb
GM
38932000-03-05 Gerd Moellmann <gerd@gnu.org>
3894
50df5e5a 3895 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
6178bc23 3896 (bootstrap-temacs): Set LC_ALL to C like for temacs.
50df5e5a
GM
3897
3898 * xfns.c (QCdata): Moved to xdisp.c.
3899
3900 * xdisp.c (QCdata): Moved here from xfns.c.
3901 (syms_of_xdisp): Initialize QCdata.
3902
3903 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
3904
3905 * window.c (coordinates_in_window): Use
3906 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
3907 FRAME_INTERNAL_BORDER_WIDTH.
3908
100b3cbb 3909 * xdisp.c (try_window_id): Recompute unchanged information if
4336c705 3910 it is obviously invalid.
100b3cbb
GM
3911
3912 * xterm.c (x_term_init): Create a colormap if not using the
3913 default visual.
3914
3915 * xterm.h (select_visual): Change prototype.
3916
3917 * xfns.c (select_visual): Rewritten. Recognize user-specified
3918 visual classes.
3919 (visual_classes): New variable.
3920
64d739c4
GM
39212000-03-04 Gerd Moellmann <gerd@gnu.org>
3922
3923 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
3924 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
3925 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
3926 (x_decode_color): Don't handle allocation of white and black
3927 specially.
3928 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
3929 XtNcolormap resources.
3930 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
3931 (Fx_create_frame): Initialize color members of x_output structure.
3932 (xpm_load): Pass colormap to XPM lib.
3933
3934 * xfaces.c (x_free_colors): Access colormap of frame using
3935 FRAME_X_COLORMAP. Be paranoid about freeing black and white
3936 when default colormap is used.
3937
3938 * xterm.c (x_term_init): Set Colormap member of x_display_info
3939 structure. Copy colormap if resource `privateColormap' is
3940 specified (PseudoColor only).
3941 (x_setup_relief_color): Access colormap of frame using
3942 FRAME_X_COLORMAP.
3943
3944 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
3945 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
3946
c3cee013
JR
39472000-03-04 Jason Rumney <jasonr@gnu.org>
3948
3949 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
3950 other non-platform-specific equivalents.
64d739c4 3951 [WINDOWSNT]: Include w32term.h, fontset.h and define X
c3cee013
JR
3952 specific functions and macros as their w32 equivalents where
3953 non-platform-specifics are not available.
3954 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
3955 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
3956 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
3957 (frame_update_line_height): Use macros to access f->output_data.
3958 (defined_color): Remove FIXME comments; fixed.
3959 (x_face_list_fonts, prepare_face_for_display): Put X specifics
3960 into #ifdef blocks. Add WINDOWSNT blocks.
3961 (Fx_list_fonts): Use macros for accessing font data.
3962 (set_lface_from_font_name): Different default fonts for X and
3963 WINDOWSNT.
3964 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
3965 scalable for backward compatibility.
64d739c4 3966 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
c3cee013
JR
3967 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
3968
64d739c4 3969 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
c3cee013
JR
3970 syms_of_w32faces.
3971
3972 * makefile.nt (w32faces.obj): Remove.
3973 (xfaces.obj): Add.
3974
807cc41c
JR
39752000-03-03 Jason Rumney <jasonr@gnu.org>
3976
3977 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
3978 correct parameters.
3979
0007072a
KR
39802000-03-03 Ken Raeburn <raeburn@gnu.org>
3981
3982 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
3983 standard ELF definitions here if the system header does not.
3984
71a6ba55
GM
39852000-03-03 Gerd Moellmann <gerd@gnu.org>
3986
3987 * xterm.c (PER_CHAR_METRIC): Removed.
3988 (x_per_char_metric_1, x_default_char): New functions.
3989 (x_per_char_metric): If font's default char is invalid, return
3990 metrics of a suitably chosen usable default char.
3991 (x_draw_glyph_string_foreground): If font has an invalid default
64d739c4
GM
3992 char, replace occurrences of unprintable chars with a suitably
3993 chosen usable default char.
71a6ba55 3994
900fa1f1
GM
39952000-03-02 Gerd Moellmann <gerd@gnu.org>
3996
42f55fe0
GM
3997 * xterm.c (note_mouse_highlight): Return quickly if frame's
3998 glyph matrices have been freed.
3999
4000 * dispnew.c (free_glyphs): Block input while freeing matrices.
4001
900fa1f1
GM
4002 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
4003
4004 * xterm.c (x_alloc_lighter_color, x_setup_relief_color): Use
4005 x_free_colors.
4006
4007 * dispextern.h (x_free_colors): Add prototype.
4008
4009 * xfaces.c (x_free_colors): New function.
4010 (unload_color, free_face_colors): Use it.
4011
2f950292
EZ
40122000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
4013
4014 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
4015
4016 * window.c [MSDOS]: Include msdos.h.
4017
54d04320
DL
40182000-03-02 Dave Love <fx@gnu.org>
4019
4020 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
4021
4022 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
4023 set C_OPTIMIZE_SWITCH for gcc.
4024
0ba93ac4
KH
40252000-03-02 Kenichi Handa <handa@etl.go.jp>
4026
4027 * coding.c (coding_save_composition): Be sure to allocate
4028 composition data area in coding even if there's no composition in
4029 the current run.
4030
a2bc11d4
JR
40312000-03-01 Jason Rumney <jasonr@gnu.org>
4032
4033 * w32term.c: Equivalent changes to those made to xterm.c on
4034 2000-02-25 and 2000-02-24.
4035
4036 * w32fns.c: Equivalent changes to those made to xfns.c on
4037 2000-02-25 and 2000-02-21.
4038
4039 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
4040 correct line-end convention is followed.
4041
4042 * w32menu.c [HAVE_BOXES]: Remove #undef.
4043 (single_keymap_panes): Remove code for simulating checkmarks.
4044 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
4045 Remove code for drawing simulated checkmarks.
4046 (w32_menu_show): make unibyte help string correctly.
4047 (add_menu_item): draw standard Windows checkmarks. Draw radio
4048 buttons as radio buttons if possible.
4049
72d19d75
GM
40502000-03-01 Gerd Moellmann <gerd@gnu.org>
4051
2df636f4
GM
4052 * sysdep.c (start_of_text): Don't define this function for NetBSD
4053 with ELF.
4054
427ec082 4055 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
2df636f4
GM
4056 Don't define.
4057 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
4058 (LINKER): Don't undef if __NetBSD__ is defined.
4059
4060 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
4061
4062 * fileio.c [__NetBSD__]: Define `unix'.
4063
72d19d75
GM
4064 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
4065
ed4d0512
GM
40662000-02-29 Gerd Moellmann <gerd@gnu.org>
4067
50b1039f
GM
4068 * atimer.c (start_atimer): Don't abort when timers are stopped.
4069 (append_atimer_lists): New function.
4070 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
4071 arbitrary lists of stopped and running atimers.
4072
ed4d0512
GM
4073 * atimer.c (cancel_atimer): Handle canceling an atimer when
4074 some timers are stopped.
4075
4076 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
4077 after canceling it.
4078
4079 * fns.c (maybe_resize_hash_table): Handle case of new size
4080 coming out as being the same as old size.
4081
387023ee
JR
40822000-02-27 Jason Rumney <jasonr@gnu.org>
4083
4084 * makefile.nt: Add atimer.h to dependencies.
4085 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
4086 * w32console.c: Only disable window system features for dispextern.h
4087 (initialize_w32_display): Build a display info for the console.
4088 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
4089 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
4090 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
4091 as 2 button mice.
4092 * w32gui.h (struct W32FontStruct): Revert last change after change
4093 to xdisp.c.
4094 * w32menu.c (single_submenu): Set up help string.
4095 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
4096 (w32_dialog_show): Set up help string.
4097 * w32term.c (w32_display_info_for_display): Remove unused function.
4098 (w32_draw_bitmap): Use pre-built bitmaps.
4099 (w32_initialize_display_info): New function to initialize parts of
4100 display info that are common to both GUI and console frames.
4101 (w32_term_init): Use w32_initialize_display_info. Do not set
4102 Vw32_num_mouse_buttons here, as it is not called for console
4103 frames. Build bitmaps for indicating truncated lines etc.
4104 (x_delete_display): Destroy pre-built bitmaps.
4105 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
4106 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
4107
4516715a
DL
41082000-02-27 Dave Love <fx@gnu.org>
4109
4110 * lisp.h: Add a bunch of prototypes.
4111
171ca836
KH
41122000-02-26 Kenichi Handa <handa@etl.go.jp>
4113
4114 * keyboard.c (read_char): Set `usec' correctly.
4115
4013921d
KH
41162000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
4117
4118 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
4119 `lambda', set reg[RRR] to the map index.
4120 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
4121 reg[RRR] to 0. Otherwise, set it to -1.
4122
9244a058
GM
41232000-02-25 Gerd Moellmann <gerd@gnu.org>
4124
2df636f4 4125 * emacs.c (main): Remove code snippet commented out with `//'.
9244a058 4126
18e21ce8 41272000-02-25 Richard M. Stallman <rms@gnu.org>
427ec082 4128
f43d79c1
GM
4129 * fileio.c (Ffile_symlink_p): If result starts with a `/'
4130 and contains a `:', prepend `/:'.
4131
4132 * window.c (select_window_1): If selected_window is nil,
4133 don't "swap out" the buffer's point.
4134 (Fset_window_configuration): Set selected_window to nil
4135 before calling Fselect_window.
4136 (unshow_buffer): Don't set point in buffer from window's point
4137 if another more recently selected window also shows the buffer.
4138
bed0c171
GM
41392000-02-25 Gerd Moellmann <gerd@gnu.org>
4140
449c3c52
GM
4141 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
4142
f5b58615
GM
4143 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
4144 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
4145 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay): New
4146 variables.
4147 (DEFAULT_BUSY_CURSOR_DELAY): New define.
4148 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
4149 (hide_busy_cursor): New functions.
4150 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
4151
4152 * minibuf.c (read_minibuf): Cancel busy-cursor.
4153
4154 * keyboard.c (command_loop_1): Call start_busy_cursor before
4155 Fcommand_execute and cancel_busy_cursor after it.
4156 (timer_check): Remove busy-cursor code.
4157 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
4158 cursor timer.
4159
4160 * process.c (wait_reading_process_input): Remove busy-cursor code.
4161
4162 * eval.c (Fsignal): Call cancel_busy_cursor instead of
4163 Fx_hide_busy_cursor.
4164
4165 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
4166 Remove prototyoes.
4167 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
4168
4169 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
4170
4171 * xterm.c (XTread_socket): Remove busy-cursor code.
4172
4eb8436f
GM
4173 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
4174 (build_frame_matrix_from_leaf_window): Put code handling
4175 glyph row's not being a slice of a frame row in #if 0.
4176 (sync_window_with_frame_matrix_rows): New function.
4177 (frame_row_to_window): New function.
4178 (mirror_line_dance): Handle copies between windows.
4179
3cb65b0e
GM
4180 * lread.c (Fload): Use `xfree' instead of `free'.
4181 (init_obarray): Use `xmalloc' instead of `malloc'.
4182
bed0c171
GM
4183 * window.c (Fset_window_buffer): Set WINDOW to the window
4184 after decoding.
2add4349
GM
4185 (coordinates_in_window): Take frame's internal border width
4186 into account.
bed0c171 4187
42088c12
GM
41882000-02-24 Gerd Moellmann <gerd@gnu.org>
4189
4190 * xterm.c (x_display_and_set_cursor): Display cursor of
4191 non-selected windows depending on the setting of
4192 cursor_in_non_selected_windows.
4193
4194 * xdisp.c (cursor_in_non_selected_windows): New variable.
4195 (syms_of_xdisp): DEFVAR_BOOL it.
4196
d1e103b2
GM
41972000-02-23 Gerd Moellmann <gerd@gnu.org>
4198
723e779c
GM
4199 * data.c (Fstring_to_number): If number is greater than what
4200 fits into an integer, return a float.
4201
d1e103b2
GM
4202 * eval.c (specbind): Remove references to
4203 keyword_symbols_constant_flag.
4204
4205 * data.c (keyword_symbols_constant_flag): Removed.
4206 (Fmakunbound, set_internal, syms_of_data): Remove references to
4207 keyword_symbols_constant_flag.
4208
4209 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
4210
214f877f
KH
42112000-02-23 Kenichi Handa <handa@etl.go.jp>
4212
4213 * syntax.c (multibyte_syntax_as_symbol): New variable.
4214 (syms_of_syntax): Declare it as a Lisp variable.
4215 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
4216 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
4217 nonzero, treat all multibyte characters as symbol.
42088c12 4218 (init_syntax_once): Give syntax `word' to all multibyte
214f877f
KH
4219 characters.
4220
130adcb7
EZ
42212000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
4222
3cb65b0e 4223 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
d7d0dac0 4224 a deleted frame.
130adcb7 4225
17cbbf95
GM
42262000-02-21 Gerd Moellmann <gerd@gnu.org>
4227
4228 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
4229
4230 * xfns.c (x_window_to_frame, x_any_window_to_frame)
4231 (x_non_menubar_window_to_frame): Check the busy-cursor window.
4232
beb0bc36
DL
42332000-02-21 Dave Love <fx@gnu.org>
4234
4235 * frame.c (Vmouse_position_function): New variable.
4236 (Fmouse_position): Use it.
4237 (syms_of_frame): Install it.
4238
4239 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
4240
1d92afcd
GM
42412000-02-20 Gerd Moellmann <gerd@gnu.org>
4242
4243 * fileio.c (Finsert_file_contents): Unbind the binding of
4244 standard-output done by temp_output_buffer_setup.
329eed9f
GM
4245
4246 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
4247 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
4248 (specbind, unbind_to): Handle most common case of non-constant
4249 symbol with trivial value specially.
4250
4251 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
4252
18e21ce8 42532000-02-20 Richard M. Stallman <rms@gnu.org>
2d06696f
RS
4254
4255 * data.c (Fmake_variable_buffer_local): Doc fix.
4256 Init found_for_buffer to 0.
4257 (Fmake_variable_frame_local): If the variable has already
4258 been buffer-local, set the check_frame field.
4259
1d4311c3
EZ
42602000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
4261
4262 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
4263 produced for CODING_MODE_LAST_BLOCK requires.
4264
2dc95ddd
DL
42652000-02-18 Dave Love <fx@gnu.org>
4266
4267 * keyboard.c (echo_keystrokes): Remove declaration.
4268 (Vecho_keystrokes) New variable.
4269 (read_char, record_menu_key, read_key_sequence): Use it to allow
4270 use of float value.
4271 (syms_of_keyboard): Change Vecho_keystrokes declaration.
4272
4273 * lread.c: Undef feature selection macros before defining.
4274
f0930f35
GM
42752000-02-18 Gerd Moellmann <gerd@gnu.org>
4276
4277 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
4278 for symbols other than the symbol in question.
4279
e3d4de90
DL
42802000-02-17 Dave Love <fx@gnu.org>
4281
4282 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
4283
0b378936
GM
42842000-02-17 Gerd Moellmann <gerd@gnu.org>
4285
d621caf7
GM
4286 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
4287
0b378936
GM
4288 * alloc.c (enum mem_type): Compile unconditionally.
4289
3b451f74
EZ
42902000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
4291
4292 * xfaces.c (tty_defined_color): Don't return faulire indication
4293 for unspecified-fg and unspecified-bg pseudo-colors.
4294
10689a01
GM
42952000-02-17 Gerd Moellmann <gerd@gnu.org>
4296
1216f5e4
GM
4297 * alloc.c (mark_object): Don't mark symbol names in pure space.
4298 (gc_sweep): Don't unmark symbol names in pure space.
4299
4300 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
4301 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
4302 [GC_MARK_STACK]: New defines.
427ec082 4303 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
1216f5e4
GM
4304 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
4305
4306 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
4307
4308 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
4309 allocate_buffer instead of xmalloc.
4310
4311 * alloc.c (toplevel): Include setjmp.h.
4312 (PURE_POINTER_P): New define.
4313 (enum mem_type) [GC_MARK_STACK]: New enumeration.
4314 (Vdead) [GC_MARK_STACK]: New variable.
4315 (lisp_malloc): Add parameter TYPE, call mem_insert if
4316 GC_MARK_STACK is defined.
4317 (allocate_buffer): New function.
427ec082 4318 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
1216f5e4
GM
4319 (free_float) [GC_MARK_STACK]: Set type to Vdead.
4320 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
4321 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
4322 (MEM_NIL) [GC_MARK_STACK]: New define.
4323 (struct mem_node) [GC_MARK_STACK]: New structure.
4324 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
4325 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
4326 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
4327 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
4328 (mark_stack) [GC_MARK_STACK]: New functions.
4329 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
4330 (clear_marks): Removed.
4331 (gc_sweep): Set free conses' car, free floats' type, free
4332 symbols' function to Vdead. Use lisp_free to free buffers.
4333 (init_alloc_once): Initialize Vdead.
4334 (survives_gc_p): Return non-zero for pure objects.
4335
4336 * alloc.c: Add comments throughout the file.
4337
2503c8b1
GM
4338 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
4339 that unblocks alarms.
4340
8389e1e2
GM
4341 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
4342 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
4343 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
4344
10689a01 4345 * frame.c (make_frame): Set frame initiallly to `garbaged'.
427ec082 4346
bfc17d18
KH
43472000-02-17 Kenichi Handa <handa@etl.go.jp>
4348
4a09dee0
KH
4349 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
4350 avoid infinite error signaling. Allocate sufficient memory for
4351 eol_str in the case that eoltype is Lisp_Int.
bfc17d18 4352
2b927d02
SM
43532000-02-17 Stefan Monnier <monnier@cs.yale.edu>
4354
4355 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
4356 depends on the previous behavior.
4357
b49cb764
GM
43582000-02-16 Gerd Moellmann <gerd@gnu.org>
4359
4360 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
4361
99e95407
GM
43622000-02-15 Gerd Moellmann <gerd@gnu.org>
4363
4364 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
4365
4366 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
b49cb764 4367 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
99e95407
GM
4368 write(2).
4369
6ffd3cf7
RS
43702000-02-15 Richard M. Stallman <rms@gnu.org>
4371
4372 * data.c (set_internal): Don't make variable buffer-local
4373 if within a let-binding for the same buffer.
4374 (let_shadows_buffer_binding_p): New function.
4375
4376 * eval.c (specbind): For buffer-local value,
4377 record the current buffer also.
4378 (unbind_to): Cope with that change.
4379
cad53475
GM
43802000-02-15 Gerd Moellmann <gerd@gnu.org>
4381
4382 * window.c (Fsave_window_excursion): Doc fix.
4383
1aa963c8
SM
43842000-02-15 Stefan Monnier <monnier@cs.yale.edu>
4385
4386 * syntax.c (back_comment): Make sure we only consider comment-starters
4387 of the relevant style and return -1 in case of a failure to find the
4388 beginning of the comment.
4389 (Fforward_comment): If back_comment fails, go back to the position just
4390 after the comment-end.
4391 (scan_lists): Add comment describing a very minor bug.
4392
b9b84fd3
SM
43932000-02-14 Stefan Monnier <monnier@cs.yale.edu>
4394
4395 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
4396 `completion-regexp-list' in the docstring.
4397
3a28db80
DL
43982000-02-14 Dave Love <fx@gnu.org>
4399
4400 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
4401
fb4a568d
SM
44022000-02-14 Stefan Monnier <monnier@cs.yale.edu>
4403
4404 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
4405 to Emacs' syntax. Also fix the comment about set/not-set meanings
4406 since Emacs syntax is not the value 0 any more.
4407 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
4408 since it's now part of RE_SYNTAX_EMACS.
4409
1063ebb5
DL
44102000-02-12 Dave Love <fx@gnu.org>
4411
4412 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on
4413 Alpha.
4414
fb07a302
GM
44152000-02-12 Gerd Moellmann <gerd@gnu.org>
4416
4417 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
4418
aaf2320c
DL
44192000-02-12 Dave Love <fx@gnu.org>
4420
4421 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
4422
4423 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
fb07a302
GM
4424 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
4425 * s/hpux.h: Don't define HAVE_VFORK.
aaf2320c
DL
4426
4427 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
4428
4429 * s/nextstep.h: Don't define HAVE_ALLOCA.
4430
4431 * config.in: Add vfork bits.
4432
eedf8bde
GM
44332000-02-12 Gerd Moellmann <gerd@gnu.org>
4434
4435 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
4436 unwind function to undo the effect of stopping atimers.
4437
4438 * keyboard.c (bind_polling_period): Stop all timers except
4439 poll_timer.
4440
4441 * atimer.c (stopped_atimers): New variable.
4442 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
4443 New functions.
4444
4445 * atimer.h (stop_other_atimers, run_all_atimers)
4446 (unwind_stop_other_atimers): Add function prototypes.
427ec082 4447
eedf8bde
GM
4448 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
4449
8476c2f8
KR
44502000-02-11 Ken Raeburn <raeburn@gnu.org>
4451
4452 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
4453 library may depend on jpeg.
4454 (atimer.o): Depends on atimer.c.
4455
0e85e4a3
KH
44562000-02-11 Kenichi Handa <handa@etl.go.jp>
4457
4458 * insdel.c (del_range_1): Call update_compositions.
4459 (del_range_both): Call update_compositions just once..
4460
97fa0cc8
DL
44612000-02-10 Dave Love <fx@gnu.org>
4462
4463 * xfns.c (create_frame_xic): Fix initialization of automatic
4464 aggregates for pcc.
4465
25566a3c
KH
44662000-02-09 Kenichi Handa <handa@etl.go.jp>
4467
4468 * ccl.c (CCL_MAKE_CHAR): New macro.
4469 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
4470 registers by CCL_MAKE_CHAR before calling translate_char.
4471 <CCL_TranslateCharacterConstTbl> Likewise.
4472
69da54ba
DL
44732000-02-08 Dave Love <fx@gnu.org>
4474
4475 * lread.c (__EXTENSIONS__): Define.
4476
f7136ee8
GM
44772000-02-08 Gerd Moellmann <gerd@gnu.org>
4478
4479 * puresize.h (BASE_PURESIZE): Increase to 650000.
4480
7768790b
EZ
44812000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
4482
4483 * msdos.c (XMenuActivate): Turn off the cursor after displaying
4484 the help message.
4485
38fd211b
EZ
44862000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
4487
4488 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
4489 md, mh, mb, mr, and me to the fake termcap entry.
4490
66e4690f
KR
44912000-02-06 Ken Raeburn <raeburn@gnu.org>
4492
4493 * sound.c (sound_cleanup): Don't call device close routine if the
4494 function pointer is null.
4495
a75dfea0
AI
44962000-02-06 Andrew Innes <andrewi@gnu.org>
4497
4498 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
4499 around image definitions and prototypes.
4500 (gamma_correct) [WINDOWSNT]: New prototype.
4501
4502 * w32term.c (x_make_frame_visible): Replace call to
4503 input_poll_signal with poll_for_input.
4504
4505 * window.c [WINDOWSNT]: Include w32term.h.
4506
4507 * xdisp.c [WINDOWSNT]: Include w32term.h.
4508
4509 * makefile.nt: Add dependencies on w32gui.h.
4510 (OBJ1): Include atimer.obj.
4511 ($(BLD)\atimer.obj): New dependency rule.
4512
4513 * w32.c (sigmask): New function (does nothing).
4514 (sigunblock): Ditto.
4515
4516 * frame.c [WINDOWSNT]: Include w32term.h.
4517
4518 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
4519
4520 * lread.c (syms_of_lread): Fix literal newlines.
4521
4522 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
4523 the string constant limit (2048 bytes) in MSVC.
4524 (main): Ditto.
4525
59ddecde
GM
45262000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
4527
4528 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit
4529 area.
4530 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
4531 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
4532 dispatch the event.
4533
07590973
DL
45342000-02-04 Dave Love <fx@gnu.org>
4535
4536 * fileio.c: Remove some unused vars.
4537 (_GNU_SOURCE): Define (for euidaccess).
4538
4539 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
4540
4541 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
4542 gcpro1, gcpro2.
4543 (read_minibuf): Deal with allow_props correctly.
4544
649351f9
EZ
45452000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
4546
4547 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
4548
66e4690f 45492000-02-03 Ken Raeburn <raeburn@gnu.org>
f1b9c7c1
KR
4550
4551 * search.c (compile_pattern): If a cache entry has a nil regexp,
4552 fill in that entry instead of clobbering a previously cached
4553 string regexp.
4554
66e4690f 45552000-02-02 Ken Raeburn <raeburn@gnu.org>
15c9cf81
KR
4556
4557 * puresize.h (BASE_PURESIZE): Increase to 610000.
4558
d240a249
GM
45592000-02-02 Gerd Moellmann <gerd@gnu.org>
4560
4561 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
4562 can GC.
4563
ca91fb26
KH
45642000-02-02 Kenichi Handa <handa@etl.go.jp>
4565
25660570
KH
4566 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
4567 instead of incrementing ic directly.
4568 <CCL_WriteExprConst> Likewise.
4569 <ccl_set_expr>: Set ic to jump_address.
4570
ca91fb26
KH
4571 * fileio.c (e_write): Fix the handling of
4572 CODING_FINISH_INSUFFICIENT_SRC.
4573
2ede9689
DL
45742000-02-01 Dave Love <fx@gnu.org>
4575
4576 * editfns.c (Fpropertize): Doc fix.
4577
4578 * process.c (Fstart_process): Doc fix.
4579
4580 * eval.c: Fix various doc strings not to duplicate information
4581 from help-manyarg-func-alist.
4582
4583 * window.c (Fset_window_margins): Don't make interactive. Doc
4584 fix.
4585
4586 * doc.c (Vhelp_manyarg_func_alist): New variable.
4587 (Fdocumentation): Use it.
4588 (syms_of_doc): Define it.
4589
b6680a0e
GM
45902000-01-31 Gerd Moellmann <gerd@gnu.org>
4591
2cb750ba
GM
4592 * xterm.c (xim_open_dpy): Remove unused local variable.
4593
74e9213b
GM
4594 * emacs.c (USAGE): Use term `display options' instead of `X
4595 options'.
4596
4597 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
4598 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
4599
b6680a0e
GM
4600 * fns.c (sweep_weak_table): New function.
4601 (sweep_weak_hash_tables): Use it. Keep on marking until there
4602 is no more change.
4603
994c5afe
GM
46042000-01-30 Gerd Moellmann <gerd@gnu.org>
4605
4606 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
4607 that XTread_socket does not crash by trying to call XNoOp on a
4608 closed display.
427ec082 4609
f00276e3
JR
46102000-01-30 Jason Rumney <jasonr@gnu.org>
4611
4612 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
4613 Change selected_frame to SELECTED_FRAME ().
4614 (w32_console_mouse_position): Remove #ifndef MULE from around
4615 `insist' parameter.
4616
4617 * makefile.nt: Remove dosfns.obj.
4618
4619 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
4620
4621 * w32fns.c (w32_defined_color): Check for valid frame before
4622 applying gamma correction. Eliminate dependency on frame elsewhere.
4623 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
4624 (w32_to_x_font): Use resx and resy not height_in and width_in.
4625 (x_to_w32_font): Doc fix.
4626 (xlfd_strip_height): New function to strip and return font height.
4627 (w32_font_match): Compare height separately from rest of xlfd
4628 spec, using xlfd_strip_height.
4629
4630 * w32term.c (w32_term_init): Swap resx and height_in, resy and
4631 width_in. Use w32_defined_color in place of defined_color.
4632
4633 * w32faces.c: Merge more of DOS and X specifics in preparation for
4634 merge with xfaces.c.
4635 (defined_color): Remove FIXME comment.
4636 (tty_color_name): Provide w32-specific function.
4637 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
4638
4639 * w32console.c (turn_on_face, turn_off_face): Removed.
4640 (w32_face_attributes): New function.
4641 (Global_variables): Reduce scope where possible.
4642 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
4643 fill attribute.
4644 (hl_mode): Don't modify text attributes.
4645 (write_glyphs): Don't do anything if len <= 0. Use
4646 w32_face_attributes to get attributes for drawing. Write
4647 terminating codes using char_attr_normal.
4648 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
4649 (update_begin, update_end): Likewise.
4650 (vga_stdcolor_name): New function.
4651 (initialize_w32_display): Remove char_attr_reverse and char_attr.
4652 (Fset_screen_color): Remove char_attr_reverse.
4653
b08e8bb2
GM
46542000-01-29 Gerd Moellmann <gerd@gnu.org>
4655
4656 * xfns.c (xic_set_preeditarea): Take window parameter and
4657 window-relative pixel-positions.
4658
4659 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
4660 is its frame's selected window.
4661 (xim_instantiate_callback): Likewise.
4662
4663 * xfns.c (x_create_im): Removed.
4664 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
4665 (supported_xim_styles): Renamed from supported_styles.
4666 (best_xim_style): Renamed from best_style.
4667 (create_frame_xic): Renamed from xic_create_frame.
4668 (free_frame_xic): Renamed from xic_destroy_frame.
427ec082 4669
b08e8bb2
GM
46702000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
4671
4672 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
4673 our frames, call XFilterEvent with 2nd parameter `None'.
4674 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
4675 returning XBufferOverflow.
4676 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status
4677 area.
4678 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
4679 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
4680 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
4681 (xim_initialize, xim_close)
4682 [HAVE_X_I18N && HAVE_X11R6]: New functions.
4683 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
4684 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
4685 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
4686
4687 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
4688 and `xim_styles'.
4689 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
4690 `xic_style' and `xic_xfs'.
4691 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
4692 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
4693 (FRAME_XIM): Removed.
4694
4695 * xfns.c (supported_styles): New variable.
4696 (DEFAULT_STYLE, DEFAULT_FONT): New macros
4697 (xic_create_xfontset, best_style, xic_create_frame)
4698 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
4699 (xic_set_xfontset): New functions.
4700
142e109c
DL
47012000-01-28 Dave Love <fx@gnu.org>
4702
4703 * s/irix6-5.h: Revert last change after change to irix5-0.h.
4704
4705 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
4706
b02786f9
GM
47072000-01-28 Gerd Moellmann <gerd@gnu.org>
4708
d060bc9f
GM
4709 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
4710 for *scratch* if it already existed.
4711
b02786f9
GM
4712 * emacs.c (USAGE): New macro.
4713 (main): Use it to display usage information.
4714
2c52d7e4
EZ
47152000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
4716
4717 Support for the menu-help feature:
4718
4719 * msdos.h: Change prototypes of XMenuAddSelection and
4720 XMenuActivate.
4721
4722 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
4723 part of the line to the termscript file.
4724 (IT_clear_to_end): Clear the entire line, not just its beginning.
4725 (menu_help_message, prev_menu_help_message): New variables.
4726 (IT_menu_make_room): Make room for the help_text member.
4727 (IT_menu_display): New argument disp_help; all callers changed.
4728 If disp_help is non-zero, store the help text of the active menu
4729 item in menu_help_message.
4730 (XMenuAddPane): Initialize the help_text member to NULL.
4731 (XMenuAddSelection): New argument help_text. Store it in the
4732 XMenu structure.
4733 (XMenuActivate): New argument help_callback. If the value of
4734 menu_help_message has changed since the last time, display the
4735 menu help message text while waiting for the mouse to move. Clear
4736 the echo area before exiting.
4737 (XMenuDestroy): Free the help_text member.
4738
ffe0bcd1
GM
47392000-01-27 Gerd Moellmann <gerd@gnu.org>
4740
4741 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
4742 XMenuAddSelection. Pass help callback to XMenuActivate.
4743 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
4744
50dbd23f
EZ
47452000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
4746
4747 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
4748 and EMACS_SET_USECS.
4749
f5941bf8
GM
47502000-01-26 Dave Love <fx@gnu.org>
4751
6c67ddee
DL
4752 * editfns.c (Fchar_after, Fchar_before): Doc fix.
4753
f5941bf8
GM
4754 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
4755 an error may be signalled.
4756
9e49c990
GM
47572000-01-26 Gerd Moellmann <gerd@gnu.org>
4758
fc3cb460
GM
4759 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
4760 LD_SWITCH_SYSTEM inherited from irix5-0.h.
4761
9e49c990
GM
4762 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
4763
d0c037d8
GM
47642000-01-25 Gerd Moellmann <gerd@gnu.org>
4765
4766 * charset.c (Fstring): If there is a multibyte char among
4767 the args, always return a multibyte string.
4768
e12489f9
GM
47692000-01-25 Gerd Moellmann <gerd@gnu.org>
4770
4771 * sysdep.c (sys_select): Turn atimers off and on instead of
4772 recording and restoring old alarm handler
4773
4774 * process.c (toplevel): Include atimer.h.
4775 (create_process_1): Rewritten.
4776 (create_process): Use atimers instead of alarm.
4777 (wait_reading_process_input) [hpux]: Turn atimers off instead
4778 of turning off SIGALRM.
4779 (wait_reading_process_input): Turn off atimers instead off
4780 calling stop_polling.
4781
4782 * emacs.c (main): Call init_atimer.
4783
4784 * keyboard.c (toplevel): Include systime.h and atimer.h.
4785 (polling_for_input): Removed because unused.
4786 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
4787 (poll_timer): New variable.
4788 (poll_for_input, poll_for_input_1): New functions.
4789 (start_polling, stop_polling): Rewritten.
4790
4791 * keyboard.h (polling_for_input): Removed.
427ec082 4792
e12489f9
GM
4793 * atimer.h, atimer.c: New files.
4794
4795 * Makefile.in (obj): Add atimer.o.
4796 (atimer.o): New target.
4797
4798 * blockinput.h (pending_atimers): Add extern declaration.
4799 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
4800
4801 * lisp.h (popup_activated_flag): Add extern declaration.
4802
4803 * xmenu.c (popup_activated_flag): Make externally visible.
4804 (popup_activate_callback) [USE_MOTIF]: Increment
4805 popup_activated_flag.
4806 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
4807
4808 * xterm.c (toplevel): Include atimer.h.
4809 (toolkit_scroll_bar_interaction): New variable.
4810 (Fxt_process_timeouts): Removed.
4811 (x_process_timeouts): New function.
4812 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
4813 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
4814 (x_make_frame_visible): Call poll_for_input_1 instead of
4815 input_poll_signal. Don't call alarm.
4816 (x_initialize): Install timer calling x_process_timeouts.
427ec082 4817
1e5279b9
DL
48182000-01-24 Dave Love <fx@gnu.org>
4819
6c67ddee 4820 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
1e5279b9
DL
4821 Don't use -cckr -- apparently not now necessary.
4822
edf6aeb8
EZ
48232000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
4824
4825 * msdos.c (IT_menu_display): Truncate long menu lines at the right
4826 screen boundary.
4827
9badad41
JR
48282000-01-23 Jason Rumney <jasonr@gnu.org>
4829
4830 * w32fns.c (w32_defined_color): Apply gamma correction before
4831 trying to map to the palette.
4832 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
4833 to w32_clear_rect.
4834
4835 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
4836 here. Callers changed to always pass real device context.
4837 (w32_draw_bitmap): Likewise.
4838 (w32_get_glyph_overhangs): Likewise.
4839 (w32_draw_box_rect): Make use of s->hdc rather than getting a new
4840 one.
4841 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
4842 pfnSetScrollInfo and SetScrollRange.
4843 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
4844 back into MULE characters after decoding them.
4845 (x_get_glyph_face_and_encoding): Likewise.
4846 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
4847 GetCharABCWidthsW fails, since this is defined on Windows 9x.
4848 (x_produce_glyphs): Calculate per char metrics for a character
4849 that we know exists in default font when font_not_found_p is true.
4850
63bd786b
JR
48512000-01-22 Jason Rumney <jasonr@gnu.org>
4852
4853 * makefile.nt (intervals.obj, composite.obj): New modules.
4854 (composite.h): Added as dependency where appropriate.
4855
4856 * w32gui.h (XGCValue): New struct for emulating X GCs.
4857
4858 * w32term.h (XCharStruct): New struct for emulating X.
4859
4860 * w32console.c (turn_on_face, turn_off_face): New functions.
4861 (change_line_highlight): New prototype for new redisplay.
4862 (write_glyphs): Support multibyte text. Support faces.
4863
4864 * w32faces.c: Complete rewrite for new redisplay based on new
4865 xfaces.c.
4866
4867 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
4868 throughout. struct frame * in place of FRAME_PTR.
4869 Skeleton support for images, toolbars, tooltips from xfns.c.
4870 (Fx_create_frame): Use system default for default scroll bar
4871 width.
4872 (w32_get_arg): Renamed from x_get_arg.
4873 (Fx_file_dialog): New function.
4874 (w32_list_fonts): Check cache before asking system.
4875 (Vw32_enable_synthesized_fonts): New variable.
4876 (Vw32_enable_italics): Obsolete, removed.
4877
4878 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
4879 Use SELECTED_FRAME macro.
4880
4881 * w32menu.c: Add skeleton support for help strings on menus.
4882 (add_menu_item): Native checkbox and radio support added, but not
4883 yet enabled due to bugs.
4884 (push_menu_item): Add parameters type, selection and help.
4885 Callers updated.
4886 Formatting changes to reduce unnecessary diffs with xmenu.c.
4887
4888 * w32select.c (Fw32_set_clipboard_data): Update call to
4889 find_charset_in_str.
4890
4891 * w32term.c: Complete rewrite for new redisplay based on new
4892 xterm.c with necessary sections merged back in from old w32term.c.
4893
6ffd3cf7 48942000-01-21 Richard M. Stallman <rms@gnu.org>
b50c9214
RS
4895
4896 * data.c (set_internal): Further fix in same criterion.
4897
6ffd3cf7 48982000-01-20 Richard M. Stallman <rms@gnu.org>
8cc95642
RS
4899
4900 * data.c (set_internal): Fix the criteria for whether
4901 to swap out the old cached binding.
4902
60af03f1
DL
49032000-01-19 Dave Love <fx@gnu.org>
4904
4905 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
4906
f9be074f
KH
49072000-01-18 Kenichi Handa <handa@etl.go.jp>
4908
4909 * regex.c (re_compile_fastmap): While checking a range table for
4910 `charset', skip flag bits for a character class correctly.
4911
52b8dbf9
GM
49122000-01-17 Gerd Moellmann <gerd@gnu.org>
4913
d36100c9
GM
4914 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
4915
52b8dbf9
GM
4916 * xfns.c (x_window): Call lw_create_widget with new parameter
4917 list.
4918
4919 * widget.c (EmacsFrameSetCharSize): Change size of children first
4920 because of problems with main window geometry management under
4921 Lesstif.
4922
4923 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
4924 MENU_ITEMS_ITEM_.*.
4925 (MENU_ITEMS_ITEM_HELP): New enumerator.
4926 (push_menu_item): Add parameter HELP. Record help in menu_items.
4927 (single_menu_item, single_submenu, list_of_items): Call
4928 push_menu_item with new parameter.
4929 (single_submenu): Set help string in widget value.
4930 (menu_highlight_callback): New function.
4931 (set_frame_menubar): Call lw_create_widget with new
4932 parameter list.
4933 (xmenu_show, xdialog_show): Ditto.
4934
3139018f
GM
49352000-01-13 Gerd Moellmann <gerd@gnu.org>
4936
4937 * sound.c (Fplay_sound): Improve doc string.
4938
83c8f461
RS
49392000-01-11 Richard M. Stallman <rms@gnu.org>
4940
4941 * lisp.h (set_internal): Enter the new arg.
4942
4943 * eval.c (specbind): Record buffer-local variables specially,
4944 indicating which buffer's binding was saved.
4945 (unbind_to): Restore buffer-local variables specially
4946 in the proper buffer.
4947
4948 * data.c (set_internal): New arg BUF.
427ec082 4949
83c8f461
RS
4950 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
4951 * data.c (Fset): Pass new arg to set_internal.
4952 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
427ec082 4953
1fab1775
GM
49542000-01-11 Gerd Moellmann <gerd@gnu.org>
4955
4956 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload,
4957 xprintsym.
4958
83c8f461 49592000-01-11 Richard M. Stallman <rms@gnu.org>
6f59462e
RS
4960
4961 * minibuf.c (Ftry_completion): Doc fix.
4962
7a85e4df
GM
49632000-01-11 Gerd Moellmann <gerd@gnu.org>
4964
4965 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
4966 vector, too.
4967
a970dae4
AS
49682000-01-11 Andreas Schwab <schwab@suse.de>
4969
4970 * coding.c (code_convert_region): Initialize total_skip.
4971
c65d14ee
DL
49722000-01-08 Dave Love <fx@gnu.org>
4973
4974 * eval.c (Fuser_variable_p): Check customizability too.
4975
834938d2
GM
49762000-01-07 Gerd Moellmann <gerd@gnu.org>
4977
4978 * minibuf.c (Fcompleting_read): Doc fix.
4979
e0303cd6
GM
49802000-01-05 Gerd Moellmann <gerd@gnu.org>
4981
8a26744b
GM
4982 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
4983 -L /usr/local/lib.
4984
e0303cd6
GM
4985 * xfns.c (x_create_im): New function to set IM and IC of a frame.
4986 Check that input style is supported before trying to create an
4987 IC for it.
4988 (x_window): Call x_create_im.
427ec082 4989
2e471eb5
GM
49902000-01-04 Gerd Moellmann <gerd@gnu.org>
4991
560a7bd2
GM
4992 * xfns.c (current_gif_memory_src): New variable.
4993 (gif_load): Record the address of the current memory source
4994 in current_gif_memory_src.
4995 (gif_read_from_memory): Use current_gif_memory_src.
4996
f9ee84a3
GM
4997 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
4998 macros statement form.
4999
d1299cde
GM
5000 * sound.c (struct sound): Renamed from struct sound_file.
5001 (struct sound): Add members `data' and `header_size'.
5002 (enum sound_attr): Add SOUND_DATA.
5003 (current_sound, current_sound_device): Variables renamed from
5004 sound_file and sound_device.
5005 (parse_sound): Parse :data.
5006 (parse_sound): Handle sound data in strings.
5007 (find_sound_type): Function renamed from find_sound_file_type.
427ec082 5008 (wav_init, au_init): Fail if sound's header_size is smaller than
d1299cde
GM
5009 needed header size.
5010 (wav_play, au_play): Play sounds from string data.
5011
2e471eb5
GM
5012 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
5013
5014 * lisp.h: Add prototype for allocate_string_data.
5015
5016 * alloc.c (Fgarbage_collect): Return number of live and free
5017 strings.
5018
5019 * alloc.c (mark_buffer): Remove code in #if 0.
5020 (gc_sweep): Ditto.
5021 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
5022 (strings_consed): New variable.
5023 (allocate_string): Set it.
5024 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
5025 (Fmemory_use_counts): Return strings_consed. Use Flist.
5026
5027 * alloc.c: General cleanup in comments etc. Remove conditional
5028 compilation for `standalone'.
5029
5030 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
5031
5032 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
5033 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
5034 (DONT_COPY_FLAG): Removed.
5035 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
5036 (struct sdata, struct sblock): New
5037 (struct string_block): Rewritten.
5038 (STRINGS_IN_STRING_BLOCK): New macro.
5039 (oldest_sblock, current_sblock, total_strings, total_free_strings)
5040 (large_sblocks, string_blocks, string_free_list): New variables.
5041 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
5042 (init_strings): Rewritten.
5043 (allocate_string, allocate_string_data, compact_small_strings)
5044 (free_large_strings, sweep_strings): New functions.
5045 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
5046 (struct string_block_head, current_string_block)
5047 (first_string_block, large_string_blocks, STRING_FULLSIZE)
5048 (STRING_PAD): Removed.
5049 (make_uninit_multibyte_string, make_pure_string): Rewritten.
5050 (Fgarbage_collect): Don't set mark bit in large strings.
5051 (mark_object): Mark strings differently. Mark symbol names
5052 differently.
5053 (survives_gc_p): Test marked strings differently.
427ec082 5054 (gc_sweep): Sweep strings differently, unmark strings in
2e471eb5
GM
5055 symbol names.
5056 (compact_strings): Removed.
5057
42608ba8
EZ
50582000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
5059
5060 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
5061 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
5062
e0a09e1a
KH
50632000-01-04 Kenichi Handa <handa@etl.go.jp>
5064
dd9f0750 5065 * fileio.c (Finsert_file_contents): Signal error if visiting file
427ec082 5066 in a non-empty buffer.
dd9f0750 5067
3c0f3b15 5068 * term.c (encode_terminal_code): Fix the previous change.
e0a09e1a 5069
44cd3ae5
GM
50702000-01-03 Gerd Moellmann <gerd@gnu.org>
5071
5072 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
5073 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
5074
5075 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
5076
c182a70f
EZ
50772000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
5078
5079 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
5080 need to test for MSDOS frames.
5081
24480d5b
EZ
50822000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
5083
5084 * dosfns.c (unspecified_colors): Remove.
5085 (msdos_stdcolor_idx): Use global variables unspecified_fg and
5086 unspecified_bg.
5087 (msdos_stdcolor_name): Return strings for unspecified fore- and
5088 back-ground colors.
5089
5090 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
aaf2320c 5091 (syms_of_xfaces): Remove their staticpro's.
24480d5b
EZ
5092 (tty_color_name): Return Lisp strings for unspecified fore- and
5093 back-ground colors.
5094 (Finternal_set_lisp_face_attribute): Remove the special treatment
5095 for Qunspecified_{f,b}g.
5096 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp
5097 string.
5098
047f434a
GM
50992000-01-03 Gerd Moellmann <gerd@gnu.org>
5100
5101 * xdisp.c (reseat_at_next_visible_line_start): Position before
5102 newline only if ending up on a newline.
5103 (next_element_from_ellipsis): Return success. Handle case of
5104 displaying no ellipsis. Fix case of ellipsis defined in display
5105 table.
5106 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
5107 returns 0.
5108
d684c676
EZ
51092000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
5110
5111 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
5112 (Fcolor_supported_p): Renamed from face-color-supported-p.
5113
5fe1d139
EZ
51142000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
5115
5116 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
5117 list of colors renamed to tty-defined-color-alist.
5118 (tty_color_name): Pass the frame to tty-color-by-index.
5119 (realize_tty_face): tty-color-alist is now a function which
5120 accepts the frame as argument.
5121
5122 * term.c (Ftty_display_color_p): Accept an optional argument
5123 FRAME.
5124
816be8b8
EZ
51252000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
5126
5127 * term.c (insert_glyphs): Pass glyph, not &glyph, to
5128 encode_terminal_code.
5129
b635321e
EZ
51302000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
5131
5132 * dispnew.c (mode_line_string): Support termcap frames as well.
5133
9b784e96
GM
51342000-01-01 Gerd Moellmann <gerd@gnu.org>
5135
27189709
GM
5136 * syntax.c (Fforward_word): Undo previous change.
5137
5138 * editfns.c (Fconstrain_to_field): Don't constrain if
5139 inhibit-field-text-motion is non-nil.
5140 (Fline_beginning_position): Undo previous change.
5141 (Fline_end_position): Ditto.
5142
5143 * syntax.c (Fforward_word): Notice field boundaries only if
5144 inhibit-field-text-motion is nil.
5145
5146 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
5147
5148 * editfns.c (Vinhibit_field_text_motion): New variable.
5149 (inhibit-field-text-motion): New DEFVAR_LISP.
5150 (Fline_beginning_position, Fline_end_position): Notice field
5151 boundaries only if inhibit-field-text-motion is nil.
5152
45158a91
GM
5153 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
5154 All calls adjusted.
5155 (x_build_heuristic_mask): Likewise.
5156 (xbm_load_image_from_file): Change error output.
5157 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
5158 (gif_load, gs_load, x_kill_gs_process): Ditto.
5159
9b784e96
GM
5160 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
5161 color indices when accessing raster pixels.
63cec32f
GM
5162 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
5163 one of :file or :data.
5164 (enum pbm_keyword_index): Add PBM_DATA.
5165 (pbm_format): Add :data.
5166 (pbm_image_p): Allow either :file or :data.
5167 (pbm_read_file): New function.
5168 (pbm_scan_number): Rewritten to read from string.
5169 (pbm_load): Support :data.
9b784e96 5170
5ad6a5fb
GM
51711999-12-31 Gerd Moellmann <gerd@gnu.org>
5172
5173 * xfns.c: New image functions adapted to Emacs conventions.
5174 (png_load, tiff_load, jpeg_load, gif_load): Always GCPRO local
5175 variable `file'.
5176
63448a4d
WP
51771999-12-31 William M. Perry <wmperry@aventail.com>
5178
5179 * xfns.c (jpeg_format): Added the :data keyword
5180 (jpeg_image_p): JPEG is valid with :file _or_ :data
5181 (jpeg_memory_src): Defined new JPEG image source to read from a
5182 memory buffer.
5183 (jpeg_load): Pay attention to the :data keyword if specified.
5184 Instantiates a jpeg_memory_src instead of jpeg_stdio_src if
5185 found.
5186 (png_format): Added the :data keyword
5187 (png_image_p): PNG is valid with :file _or_ :data
5188 (png_read_from_memory): New PNG read function to read from a
5189 memory buffer.
5190 (png_load): Pay attention to the :data keyword if specified. Uses
5191 png_set_read_fn() instead of png_init_io() if specified.
5192 (tiff_format): Added the :data keyword for TIFF images.
5193 (tiff_image_p): TIFF is valid with :file _or_ :data
5194 (tiff_read_from_memory): Defined new TIFF I/O functions to read
5195 from a memory buffer.
5196 (tiff_load): Pay attention to the :data keyword if specified.
5197 Uses TIFFClientOpen() instead of TIFFOpen() if specified.
5198 (gif_format): Added the :data keyword
5199 (gif_image_p): GIF is valid with :file _or_ :data
5200 (gif_read_from_memory): New GIF input function to read from a
5201 memory buffer.
c65d14ee 5202 (gif_load): Pay attention to the :data keyword. Uses DGifOpen()
63448a4d
WP
5203 instead of DGifOpenFileName() if specified.
5204
c880678e
GM
52051999-12-31 Gerd Moellmann <gerd@gnu.org>
5206
5207 * xdisp.c (next_element_from_buffer): Change assertion at the end
5208 because it doesn't hold when there's an overlay string at the end
5209 from which we deliver an image.
5210
8ccb9a54
EZ
52111999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
5212
5213 * msdos.c (IT_update_begin): Don't dereference members of struct
5214 window for deleted windows.
5215
12ce2351
GM
52161999-12-30 Gerd Moellmann <gerd@gnu.org>
5217
a915c648
GM
5218 * abbrev.c (Fexpand_abbrev): If expanding an abbrev which has only
5219 a hook, and the hook has a non-nil `no-self-insert' property, let
5220 the return value of the hook specify whether an expansion took
5221 place. If it returns nil, no expansion has been performed.
5222
12ce2351
GM
5223 * xterm.c (x_make_frame_visible): Wait for frame becoming visible
5224 differently.
5225
04ee4f45
EZ
52261999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
5227
5228 * msdos.c (IT_write_glyphs): Track last changes to struct glyph.
5229
7f4bc0c3
EZ
52301999-12-29 Eli Zaretskii <eliz@is.elta.co.il>
5231
5232 * dispnew.c (mode_line_string): Support MS-DOS frames.
5233
dac204bc
GM
52341999-12-29 Gerd Moellmann <gerd@gnu.org>
5235
5236 * eval.c (syms_of_eval): Initialize debugger_may_continue.
5237
7b712ad8
KH
52381999-12-29 Kenichi Handa <handa@etl.go.jp>
5239
5240 * process.c (read_process_output): Fix the args CHARPOS and LENINS
5241 to signal_after_change.
5242
adb9900f
EZ
52431999-12-28 Eli Zaretskii <eliz@is.elta.co.il>
5244
41ad069b
EZ
5245 * msdos.c (dos_set_window_size) [__DJGPP__ > 1]: If the frame
5246 dimensions changed, invalidate the mouse highlight info.
5247 (disable_mouse_highlight, help_echo, previous_help_echo): New
5248 variables.
5249 (IT_set_mouse_pointer, show_mouse_face, clear_mouse_face)
5250 (fast_find_position, IT_note_mode_line_highlight)
5251 (IT_note_mouse_highlight): New functions.
5252 (IT_update_begin): If the redisplay affects the window where the
5253 mouse highlight is, clear the highlight. If the frame where the
5254 highlight was displayed was killed, invalidate the highlight
5255 info.
5256 (IT_update_end): Reset the highlight flag. Reset the mouse
5257 highlight-defer flag.
5258 (IT_frame_up_to_date): New function, if mouse highlight was
5259 deferred due to GC, do it now.
5260 (internal_terminal_init): Initialize mouse-highlight related
5261 members of the_only_x_display. Assign IT_frame_up_to_date to
5262 frame_up_to_date_hook.
5263 (dos_rawgetc): If the mouse moved, update mouse highlight. If
5264 help_echo changed value, generate a HELP_EVENT event.
5265 (syms_of_msdos): Staticpro help_echo and previous_help_echo.
5266
adb9900f
EZ
5267 * msdos.h (struct display_info): New.
5268 (struct x_output): Add the display_info member.
5269 (FRAME_X_DISPLAY_INFO): New macro.
5270
481b5054
GM
52711999-12-28 Gerd Moellmann <gerd@gnu.org>
5272
5273 * xdisp.c (try_window_id): Compute BEG_UNCHANGED and END_UNCHANGED
5274 if MODIFF > 1.
6448a6b3 5275 (dump_glyph_row): Adapt to changes in struct glyph.
481b5054
GM
5276
5277 * buffer.c (modify_overlay): Always compute unchanged info.
5278
a2882b0d
KH
52791999-12-27 Kenichi Handa <handa@etl.go.jp>
5280
5281 * dispextern.h (FACE_FROM_ID): Cast the arg ID to `unsigned'.
5282
89ba5b5f
KH
52831999-12-27 Kenichi Handa <handa@etl.go.jp>
5284
5285 The following changes are to use more bits for face IDs.
5286
5287 * lisp.h (GLYPH): Defined as `int', not `unsigned int'. Now the
5288 lowest 8 bits are single byte character code, the bits above are
5289 face ID.
481b5054 5290 (GLYPH_MASK_FACE, GLYPH_MASK_CHAR): Adjusted for the change
89ba5b5f 5291 above.
481b5054
GM
5292 (FAST_MAKE_GLYPH, FSST_GLYPH_FACE): Likewise.
5293 (GLYPH_MASK_REV_DIR, GLYPH_MASK_PADDING): Macros deleted.
89ba5b5f
KH
5294
5295 * charset.h (CHAR_BYTES): Use ((1 << CHARACTERBITS) - 1) instead
5296 of GLYPH_MASK_CHAR.
5297
5298 * charset.c (char_bytes): Use ((1 << CHARACTERBITS) - 1) instead
5299 of GLYPH_MASK_CHAR.
5300
5301 * dispextern.h (struct glyph): Make face_id and padding_p the top
5302 level members. Change members in union `u'.
5303 (GLYPH_EQUAL_P): Check also members face_id and padding_p.
5304 (GLYPH_CHAR_AND_FACE_EQUAL_P): New macro.
5305 (SET_CHAR_GLYPH): Adjusted for the change of struct glyph.
5306 (CHAR_GLYPH_PADDING_P): Likewise.
5307 (GLYPH_FROM_CHAR_GLYPH): Likewise. Always return -1 for multibyte
5308 characters.
5309
481b5054 5310 * dispnew.c (line_hash_code, direct_output_for_insert): Adjusted
89ba5b5f
KH
5311 for the change of struct glyph.
5312 (line_draw_cost): Adjusted for the change of
5313 GLYPH_FROM_CHAR_GLYPH.
5314 (count_match): Use macro GLYPH_CHAR_AND_FACE_EQUAL_P.
5315
5316 * term.c (encode_terminal_code): Adjusted for the change of struct
5317 glyph and GLYPH_FROM_CHAR_GLYPH.
481b5054 5318 (write_glyphs, insert_glyphs, append_glyph): Adjusted for the
89ba5b5f
KH
5319 change of struct glyph.
5320
5321 * xdisp.c: All codes adjusted for the change of struct glyph.
5322
5323 * xterm.c: All codes adjusted for the change of struct glyph.
5324
5bcd116c
KH
53251999-12-27 Kenichi Handa <handa@etl.go.jp>
5326
5327 * composite.h (struct composition): Change the order of declaring
5328 members to reduce the byte size of the structure.
5329
f21b06b7
GM
53301999-12-25 Gerd Moellmann <gerd@gnu.org>
5331
5332 * search.c (looking_at_1): Reset immediate_quit before modifying
5333 global data.
5334
e36557c9
KH
53351999-12-24 Kenichi Handa <handa@etl.go.jp>
5336
5337 * process.c (read_process_output): Fix the arg FROM to
5338 update_compositions.
5339
83c8f461 53401999-12-22 Richard M. Stallman <rms@gnu.org>
f7c9e039
RS
5341
5342 * search.c (Freplace_match): For nonliteral replacement in buffer,
5343 construct all the new text first, then insert all at once.
5344
0b863bd9
DL
53451999-12-22 Dave Love <fx@gnu.org>
5346
5347 * xfns.c (Fx_show_tip): Gcpro `timeout' too.
5348
6d8e8ef3
GM
53491999-12-22 Gerd Moellmann <gerd@gnu.org>
5350
28d7281d
GM
5351 * xfns.c (Fx_create_frame): Move x_default_parameter calls that
5352 lead to size changes to after the X window has been created.
5353
e22ef6eb 5354 * xfaces.c (realize_x_face): Don't use uninitialized local
6d8e8ef3
GM
5355 variable in xassert.
5356
8affcced
KH
53571999-12-22 Kenichi Handa <handa@etl.go.jp>
5358
5359 * xfaces.c (face_color_supported_p): Check by tty_defined_color
6d8e8ef3 5360 only when the frame is not for a window system.
8affcced 5361
f2be1146
GM
53621999-12-22 Gerd Moellmann <gerd@gnu.org>
5363
deca1348
GM
5364 * buffer.c (Fset_buffer_multibyte): Arrange for a thorough
5365 redisplay after changing the multibyteness of a buffer.
5366
f2be1146
GM
5367 * xterm.c (XTread_socket): At the beginning of the loop, pass the
5368 frame's X window to XFilterEvent instead of None because that's
5369 the X window for which the IC was created. This makes dead
5370 accents work when the pointer is not in Emacs' frame.
5371 (XTread_socket) <KeyPress>: Don't call XFilterEvent here.
5372
a744a2ec
DL
53731999-12-20 Dave Love <fx@gnu.org>
5374
5375 * xfns.c (Fx_show_tip): Add missing UNGCPRO.
5376
9e6985ed
GM
53771999-12-19 Gerd Moellmann <gerd@gnu.org>
5378
5379 * eval.c (debugger_may_continue): New variable.
5380 (syms_of_eval): Add a DEFVAR_BOOL for it.
5381 (call_debugger): Bind it.
5382
3b620731
EZ
53831999-12-19 Eli Zaretskii <eliz@is.elta.co.il>
5384
5385 * msdos.c (IT_set_face): Don't swap face colors when highlight or
5386 fp->tty_reverse_p is set, unless the computed colors are identical
5387 to frame colors. Print both original and computed colors to
5388 termscript file.
5389 (IT_write_glyphs): Track the changes in handling of composite
5390 characters.
5391 (IT_set_frame_parameters): Don't set frame colors from
5392 unspecified-fg and unspecified-bg pseudo-colors.
5393
0f9a51c4
DL
53941999-12-17 Dave Love <fx@gnu.org>
5395
5396 * data.c (Fkeywordp): New function.
5397 (syms_of_data): Install it.
5398
363e4e42
EZ
53991999-12-16 Eli Zaretskii <eliz@is.elta.co.il>
5400
5401 * xfaces.c (tty_defined_color): Fix last change.
5402
cfad01b4
GM
54031999-12-15 Gerd Moellmann <gerd@gnu.org>
5404
5405 * xdisp.c (redisplay_window) <optional new window start>: Check
5406 that window start is in [BEGV..ZV].
5407
f9d2fdc4
EZ
54081999-12-15 Eli Zaretskii <eliz@is.elta.co.il>
5409
5410 * dispextern.h (FACE_TTY_DEFAULT_FG_COLOR)
5411 (FACE_TTY_DEFAULT_BG_COLOR): New macros.
5412
5413 * xfaces.c (Qunspecified_fg, Qunspecified_bg): New variables.
5414 (syms_of_xfaces): Initialize and staticpro them.
5415 (tty_defined_color): If the color name is unspecified-fg or
5416 unspecified-bg, return FACE_TTY_DEFAULT_FG_COLOR and
5417 FACE_TTY_DEFAULT_BG_COLOR, respectively, as the pixel value.
5418 (tty_color_name): If the color pixel value is either
5419 FACE_TTY_DEFAULT_FG_COLOR or FACE_TTY_DEFAULT_BG_COLOR, return
5420 Qunspecified_fg or Qunspecified_bg, respectively.
5421 (Finternal_set_lisp_face_attribute): Allow values Qunspecified_fg
5422 and Qunspecified_bg for foreground and background colors.
5423 (realize_default_face): If the foreground and background colors
5424 are not specified, default to Qunspecified_fg and Qunspecified_bg.
5425 (realize_tty_face): By default, set the face colors to
5426 FACE_TTY_DEFAULT_FG_COLOR and FACE_TTY_DEFAULT_BG_COLOR.
5427 [MSDOS]: Handle FACE_TTY_DEFAULT_FG_COLOR and
5428 FACE_TTY_DEFAULT_BG_COLOR when face colors are not defined.
5429 Reverse the colors if the default colors were reversed.
5430
5431 * dispnew.c (init_display): Initialize the frame pixels of the
5432 initial frame to FACE_TTY_DEFAULT_FG_COLOR and
5433 FACE_TTY_DEFAULT_BG_COLOR.
5434
5435 * term.c (turn_on_face): If the default fore- and background
5436 colors are reversed, enter inverse video mode. Don't send color
5437 escape sequences for unspecified foreground and background colors.
5438 (turn_off_face): Handle unspecified-fg and unspecified-bg colors.
5439
5440 * dosfns.c (unspecified_colors): New variable.
5441 (msdos_stdcolor_idx): Handle unspecified-fg and unspecified-bg
5442 color names, return FACE_TTY_DEFAULT_FG_COLOR and
5443 FACE_TTY_DEFAULT_BG_COLOR, respectively.
5444 (msdos_stdcolor_name): Handle FACE_TTY_DEFAULT_FG_COLOR and
5445 FACE_TTY_DEFAULT_BG_COLOR, return Qunspecified_fg and
5446 Qunspecified_bg, respectively.
5447
5448 * msdos.c (IT_set_face): Support FACE_TTY_DEFAULT_FG_COLOR and
5449 FACE_TTY_DEFAULT_BG_COLOR as pixel values.
5450
e19539f1
KH
54511999-12-15 Kenichi Handa <handa@etl.go.jp>
5452
5453 * coding.c (code_convert_region): Fix the secoding arg to
5454 update_compositions.
5455
5ec14d3c
KH
54561999-12-15 Kenichi Handa <handa@etl.go.jp>
5457
5458 The following changes are for the new composition mechanism. We
5459 have deleted `composition' charset and composite characters,
5460 instead introduced a special text property `composition'.
5461
5462 * Makefile.in (INTERVAL_SRC): Include composite.h.
5463 (INTERVAL_OBJ): Include composite.o.
5464 (SOME_MACHINE_OBJECTS): Include composite.o.
5465 (casefiddle.o) (dispnew.o) (indent.o) (process.o) (search.o)
5466 (syntax.o) (window.o) (xdisp.o) (xfaces.o) (xterm.o) (print.o):
5467 Depend on composite.h.
5468 (doc.o): Depend on charset.h.
5469 (keyboard.o) (textprop.o) (intervals.o): Depend on INTERVAL_SRC.
5470 (composite.o): New target.
427ec082 5471
5ec14d3c
KH
5472 * alloc.c (Fmake_string): Adjusted for the change of CHAR_STRING.
5473
5474 * callproc.c (Fcall_process): Call code_convert_string to encode
5475 arguments. Use CODING_REQUIRE_DECODING to check if the process
5476 output should be decoded.
5477
5478 * casefiddle.c: Include composite.h.
5479 (casify_object): Use MAX_MULTIBYTE_LENGTH to allocate memory for a
5480 multibyte character. Adjusted for the change of CHAR_STRING.
5481 (casify_region): Likewise. Call update_compositions.
5482
5483 * category.h (CATEGORY_SET): Delete codes for a composite
5484 character.
5485
5486 * category.c (word_boundary_p): Delete codes for a composite
5487 character.
5488 (Fmake_category_table): New function.
5489 (syms_of_category): Defsubr it.
5490
5491 * ccl.c (CCL_WRITE_CHAR): Adjusted for the change of CHAR_STRING.
5492 (ccl_driver): Delete codes for a composite character.
5493
5494 * charset.h: In this entry, just `Modified' means that codes for a
5495 composite character is deleted.
5496 (LEADING_CODE_COMPOSITION) (CHARSET_COMPOSITION)
5497 (charset_composition) (MIN_CHAR_COMPOSITION)
5498 (MAX_CHAR_COMPOSITION) (GENERIC_COMPOSITION_CHAR)
5499 (COMPOSITE_CHAR_P) (MAKE_COMPOSITE_CHAR) (COMPOSITE_CHAR_ID)
5500 (PARSE_COMPOSITE_SEQ) (PARSE_CHARACTER_SEQ): Deleted.
5501 (MAX_CHAR) (CHARSET_VALID_P) (CHARSET_DEFINED_P) (CHARSET_AT)
5502 (FIRST_CHARSET_AT) (SAME_CHARSET_P) (MAKE_NON_ASCII_CHAR)
5503 (PARSE_MULTIBYTE_SEQ) (SPLIT_NON_ASCII_CHAR) (CHAR_PRINTABLE_P):
5504 Modified.
5505 (SPLIT_STRING): Call split_string, not split_non_ascii_string.
5506 (CHAR_STRING): Delete WORKBUF argument. Call char_string, not
5507 non_ascii_char_to_string.
5508 (STRING_CHAR): Call string_to_char, not string_to_non_ascii_char.
5509 (STRING_CHAR_AND_LENGTH): Likewise.
5510 (FETCH_CHAR_ADVANCE): New macro.
5511 (MAX_COMPONENT_COUNT) (struct cmpchar_info): Deleted.
5512 (MAX_MULTIBYTE_LENGTH): New macro.
5513 (MAX_LENGTH_OF_MULTI_BYTE_FORM): Deleted.
5514 (find_charset_in_str): Argument adjusted.
5515 (CHAR_LEN): Modified.
427ec082 5516
5ec14d3c
KH
5517 * charset.c: In this entry, just `Modified' means that codes for a
5518 composite character is deleted.
5519 (Qcomposition) (leading_code_composition)
5520 (charset_composition) (min_composite_char) (cmpchar_table)
5521 (cmpchar_table_size) (n_cmpchars): Deleted.
5522 (SPLIT_COMPOSITE_SEQ): Deleted.
5523 (SPLIT_MULTIBYTE_SEQ): Modified.
5524 (char_to_string): Renamed from non_ascii_char_to_string.
5525 Modified.
5526 (string_to_char): Renamed from string_to_non_ascii_char.
5527 (split_string): Renamed from split_non_ascii_string.
5528 (char_printable_p) (Fsplit_char)
5529 (Ffind_charset_region) (Ffind_charset_string) (char_valid_p)
5530 (char_bytes) (Fchar_width) (strwidth): Modified.
5531 (find_charset_in_str): Argument CMPCHARP deleted. Modified.
5532 (Fstring): Adjusted for the change of CHAR_STRING. Modified.
5533 (hash_string) (CMPCHAR_HASH_TABLE_SIZE) (cmpchar_hash_table)
5534 (CMPCHAR_HASH_SIZE) (CMPCHAR_HASH_USED) (CMPCHAR_HASH_CMPCHAR_ID)
5535 (str_cmpchar_id) (cmpchar_component) (Fcmpcharp)
5536 (Fcmpchar_component) (Fcmpchar_cmp_rule) (Fcmpchar_cmp_rule_p)
5537 (Fcmpchar_cmp_count): Deleted.
5538 (Fcompose_string): Implemented by Emacs Lisp in composite.el.
5539 (init_charset_once): Modified.
5540 (syms_of_charset): Modified.
5541
5542 * cmds.c (internal_self_insert): Adjusted for the change of
5543 CHAR_STRING.
5544
5545 * coding.h (emacs_code_class_type): Delete the member
5546 EMACS_leading_code_composition.
5547 (COMPOSING_NO) (COMPOSING_WITH_RULE_HEAD) (COMPOSING_NO_RULE_HEAD)
5548 (COMPOSING_WITH_RULE_TAIL) (COMPOSING_NO_RULE_TAIL)
5549 (COMPOSING_WITH_RULE_RULE) (COMPOSING_HEAD_P)
5550 (COMPOSING_WITH_RULE_P): Macros deleted.
5551 (COMPOSITION_DATA_SIZE) (COMPOSITION_DATA_MAX_BUNCH_LENGTH): New
5552 macros.
5553 (struct composition_data): New structure.
5554 (CODING_FINISH_INSUFFICIENT_CMP): New macro.
5555 (struct coding_system): New members composition_rule_follows,
5556 cmp_data, cmp_data_start, cmp_data_index.
5557 (coding_save_composition) (coding_free_composition_data)
5558 (coding_adjust_composition_offset): Extern them.
5559
5560 * coding.c: Include composite.h.
5561 (DECODE_CHARACTER_ASCII): Don't handle composition here.
5562 (DECODE_CHARACTER_DIMENSION1): Likewise. Don't check the validity
5563 of multibyte code here.
5564 (DECODE_CHARACTER_DIMENSION2): Likewise.
5565 (detect_coding_emacs_mule): Change the case label from
5566 EMACS_leading_code_composition to 0x80.
5567 (detect_coding_iso2022): Handle new composition sequence.
5568 (DECODE_ISO_CHARACTER): Likewise.
5569 (check_composing_code): Deleted.
5570 (coding_allocate_composition_data): New function.
5571 (CODING_ADD_COMPOSITION_START) (CODING_ADD_COMPOSITION_END)
5572 (CODING_ADD_COMPOSITION_COMPONENT) (DECODE_COMPOSITION_START)
5573 (DECODE_COMPOSITION_END) (DECODE_COMPOSITION_RULE): New macros.
5574 (decode_coding_iso2022): Handle new composition sequence.
5575 (ENCODE_ISO_CHARACTER): Don't check composition here.
5576 (ENCODE_COMPOSITION_RULE) (ENCODE_COMPOSITION_START): New macros.
5577 (ENCODE_COMPOSITION_NO_RULE_START)
5578 (ENCODE_COMPOSITION_WITH_RULE_START): Deleted.
5579 (ENCODE_COMPOSITION_END): Handle new composition sequence.
5580 (ENCODE_COMPOSITION_FAKE_START): New macro.
5581 (encode_coding_iso2022): Handle new composition sequence.
5582 (ENCODE_SJIS_BIG5_CHARACTER): Delete superfluous `;' at the tail.
5583 (encode_coding_sjis_big5): Ignore composition.
5584 (setup_coding_system): Initialize new members of struct
5585 coding_system. Enable composition only when the coding system has
5586 `composition' property t.
5587 (coding_free_composition_data) (coding_adjust_composition_offset)
5588 (coding_save_composition) (coding_restore_composition): New
5589 functions.
5590 (code_convert_region): Call coding_save_composition for encoding
5591 and coding_allocate_composition_data for decoding. Don't skip
5592 ASCII characters if we handle composition on encoding. Call
5593 signal_after_change with Check_BORDER.
5594 (code_convert_string): Call coding_save_composition for encoding
5595 and coding_allocate_composition_data for decoding. Don't skip
5596 ASCII characters if we handle composition on encoding.
5597 (code_convert_string1): Set Vlast_coding_system_used after calling
5598 code_convert_string.
5599 (code_convert_string_norecord): Disable composition.
5600 (Fset_terminal_coding_system_internal): Likewise.
5601 (Fset_safe_terminal_coding_system_internal): Likewise.
5602 (Fset_keyboard_coding_system_internal): Likewise.
5603 (init_coding_once): Set emacs_code_class[0x80] to
5604 EMACS_invalid_code.
5605
5606 * composite.h: New file.
5607
5608 * composite.c: New file.
5609
5610 * data.c (Faref): Delete codes for a composite character..
5611 (Faset): Likewise. Adjusted for the change of CHAR_STRING.
5612
5613 * dispextern.h (enum glyph_type): New member COMPOSITE_GLYPH.
5614 (struct glyph): Add new sub-structure cmp to the union `u'.
5615 (enum display_element_type): New member IT_COMPOSITION.
5616 (enum prop_idx): New member COMPOSITION_PROP_IDX.
5617 (struct it): New members cmp_id, cmp_len.
5618
5619 * dispnew.c (direct_output_forward_char): Check point moving into
5620 or out of a composition. If so, give up direct method.
5621
5622 * doprnt.c (doprnt1): Adjusted for the change of CHAR_STRING.
5623
5624 * editfns.c (Fchar_to_string): Adjusted for the change of
5625 CHAR_STRING.
5626 (general_insert_function): Likewise.
5627 (Finsert_char): Likewise.
5628 (Fsubst_char_in_region): Likewise. Call update_compositions.
5629 (Ftranslate_region): Call update_compositions.
5630 (Ftranspose_regions): Call update_compositions.
5631
5632 * emacs.c (main): Call syms_of_composite.
5633
5634 * fileio.c (Fsubstitute_in_file_name): Adjusted for the change of
5635 CHAR_STRING.
5636 (Finsert_file_contents): Set Vlast_coding_system_used before
5637 calling signal_after_change. Call update_compositions if some
5638 texts are inserted..
5639 (Fwrite_region): Adjusted for the change of a_write and e_write.
5640 (a_write): Argument changed. Work based on character position,
5641 not byte position.
5642 (e_write): Argument changed. Handle new way of composition.
5643
5644 * fns.c (Flength): The length of char-table is MAX_CHAR.
5645 (concat): Adjusted for the change of CHAR_STRING.
5646 (Ffillarray): Adjusted for the change of CHAR_STRING.
5647 (Fset_char_table_default): Delete codes for a composite character.
5648 (hash_put): Return hash index.
5649
5650 * fontset.h (struct font_info): New member vertical_centering.
5651 (Vvertical_centering_font_regexp): Extern it.
5652
5653 * fontset.c (Vvertical_centering_font_regexp): New variable.
5654 (syms_of_fontset): Declare it as a Lisp variable and initialize.
5655 Set Vignore_relative_composition to nil.
5656 (fs_load_font): Initialize `vertical_centering' of struct
5657 font_info.
5658
5659 * indent.c (check_composition): New function.
5660 (MULTIBYTE_BYTES_WIDTH): Call STRING_CHAR_AND_LENGTH with
5661 MAX_MULTIBYTE_LENGTH, not MAX_LENGTH_OF_MULTI_BYTE_FORM.
5662 (current_column_1): Handle new way of composition.
5663 (Fmove_to_column): Likewise.
5664 (compute_motion): Likewise.
5665
5666 * insdel.c (copy_text): Adjusted for the change of CHAR_STRING.
5667 (insert_char): Likewise.
5668 (insert): Call update_compositions.
5669 (insert_and_inherit): Likewise.
5670 (insert_before_markers): Likewise.
5671 (insert_before_markers_and_inherit): Likewise.
5672 (insert_from_string): Likewise.
5673 (insert_from_string_before_markers): Likewise.
5674 (insert_from_buffer): Likewise.
5675 (replace_range): Likewise.
5676 (count_combining_composition): Deleted.
5677 (count_combining_before): Delete codes for a composite character.
5678 (count_combining_after): Likewise.
5679 (del_range_1): Call update_compositions.
5680 (del_range_byte): Likewise.
5681 (del_range_both): Likewise.
5682 (Fcombine_after_change_execute): Likewise.
5683
5684 * intervals.h: Include composite.h.
5685 (get_property_and_range): Extern it.
5686 (Vtext_property_default_nonsticky): Extern it.
427ec082 5687
5ec14d3c
KH
5688 * intervals.c (adjust_intervals_for_insertion): To check stickines
5689 of properties, pay attention to text-property-default-nonsticky.
5690 (merge_properties_sticky): Likewise.
5691 (get_property_and_range): New function.
5692
5693 * keyboard.c (Vdisable_point_adjustment): New variable.
5694 (Vglobal_disable_point_adjustment): New variable.
5695 (syms_of_keyboard): Declare them as Lisp variables.
5696 (command_loop_1): Check them and call adjust_point_for_property if
5697 necessary.
5698 (adjust_point_for_property): New function.
5699
5700 * keymap.c (push_key_description): Adjusted for the change of
5701 CHAR_STRING.
5702 (Ftext_char_description): Likewise.
5703
5704 * lisp.h (QCtest, QCweakness, Qequal): Extern them.
5705 (hash_put): Adjusted for the change of the definition.
5706 (signal_after_change): Likewise.
5707 (check_point_in_composition): Extern it.
5708
5709 * lread.c (readchar): Adjusted for the change of CHAR_STRING.
5710 Delete a code that handles an invalid too-long multibyte sequence
5711 because we are now sure that we never encounter with such a
5712 sequence.
5713 (read_multibyte): Use macro MAX_MULTIBYTE_LENGTH, not
5714 MAX_LENGTH_OF_MULTI_BYTE_FORM.
5715 (init_obarray): Likewise.
5716 (read1): Likewise. Adjusted for the change of CHAR_STRING.
5717
5718 * print.c (printchar): Adjusted for the change of CHAR_STRING.
5719
5720 * process.c: Include composite.h.
5721 (read_process_output): Call update_compositions.
5722
5723 * regex.c (regex_compile): Adjusted for the change of CHAR_STRING.
5724
5725 * search.c (search_buffer): Adjusted for the change of CHAR_STRING.
5726
5727 * syntax.h (SYNTAX_ENTRY_INT): Delete codes for a composite
5728 character.
5729
5730 * term.c (encode_terminal_code): Delete codes for a composite
5731 character. Adjusted for the change of CHAR_STRING.
5732 (produce_glyphs): When called, it->what can be IT_COMPOSITION.
5733 Delete codes for a composite character.
5734
5735 * textprop.c (Vtext_property_default_nonsticky): New variable
5736 (syms_of_textprop): Declare it as a Lisp variable.
5737
5738 * window.c (Frecenter): Clear all caches of compositions.
5739
5740 * xdisp.c (it_props): Add an entry for composition.
5741 (face_before_or_after_it_pos): For composition, check face of a
5742 character after the composition.
5743 (handle_composition_prop): New function.
5744 (get_next_display_element): Adjusted for the change of
5745 CHAR_STRING.
5746 (set_iterator_to_next): Handle the case that it->method ==
5747 next_element_from_composition.
5748 (next_element_from_composition): New function.
5749 (message_dolog): Adjusted for the change of CHAR_STRING.
5750 (set_message_1): Likewise.
5751 (check_point_in_composition): New function.
5752 (reconsider_clip_changes): If point moved into or out of
5753 composition, set b->clip_changed to 1 to force updating of the
5754 screen.
5755 (disp_char_vector): Delete codes for a composite character.
5756 (decode_mode_spec_coding): Adjusted for the change of CHAR_STRING.
5757
5758 * xfaces.c (choose_face_fontset_font): Delete codes for a
5759 composite character.
5760 (realize_x_face): Likewise. Change a place to set local variable
5761 `f' to avoid a bug of GCC 2.8.1 on Solaris.
5762
5763 * xfns.c: Include intervals.h.
5764 (syms_of_xfns): Make `display' property nonsticky by default.
5765
5766 * xselect.c (lisp_data_to_selection_data): Adjusted for the change
5767 for find_charset_in_str.
5768
5769 * xterm.h (struct x_output): Change member font_baseline to
5770 baseline_offset.
5771
5772 * xterm.c (x_append_glyph): Setup members of struct glyph properly
5773 for composition.
5774 (x_append_composite_glyph): New function.
5775 (VCENTER_BASELINE_OFFSET): New macro.
5776 (x_produce_glyphs): If it->what == IT_COMPOSITION, setup members
5777 of struct it for the composition. Cache pixel offsets in the
5778 struct composition. Delete codes for a composite character.
5779 Handle Vignore_relative_composition in composition code.
5780 (struct glyph_string): Delete member cmpcharp, add new member cmp.
5781 (x_set_cursor_gc): Check s->cmp, not s->cmpcharp.
5782 (x_compute_glyph_string_overhangs): Likewise.
5783 (x_get_glyph_overhangs): Delete codes for a composite character.
5784 (x_right_overwritten): Check s->cmp, not s->cmpcharp.
5785 (x_draw_glyph_string_background): Likewise. Delete codes for
5786 checking s->gidx for a composition.
5787 (x_draw_glyph_string_foreground): Delete code for a composite
5788 character.
5789 (x_draw_composite_glyph_string_foreground): New function.
5790 (x_draw_glyph_string_box): Check s->cmp, not s->cmpcharp.
5791 (x_draw_glyph_string): Handle the case of COMPOSITE_GLYPH.
5792 (struct work): Deleted.
5793 (x_fill_composite_glyph_string): Argument changed. Mostly
5794 rewritten for that.
5795 (x_fill_glyph_string): Don't check CHARSET_COMPOSITION.
5796 (BUILD_CHAR_GLYPH_STRINGS): Don't handle composition here.
5797 (BUILD_COMPOSITE_GLYPH_STRING): New macro.
5798 (BUILD_GLYPH_STRINGS): For composition, call
5799 BUILD_COMPOSITE_GLYPH_STRING.
5800 (x_new_font): Initialize f->output_data.x->baseline_offset, not
5801 f->output_data.x->font_baseline.
5802
c3c60f13
GM
58031999-12-14 Gerd Moellmann <gerd@gnu.org>
5804
5805 * xterm.c (show_mouse_face): Don't use updated_area, use
5806 TEXT_AREA.
5807
83c8f461 58081999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
5809
5810 * minibuf.c (Fall_completions): Doc fix.
5811
83c8f461 58121999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
5813
5814 * macros.c (Fstart_kbd_macro): Handle case where last-kbd-macro
5815 has been changed by the Lisp code.
5816
d8eccf12
GM
58171999-12-12 Gerd Moellmann <gerd@gnu.org>
5818
5819 * xfns.c: Indentation fixes.
5820
ae56feae
SM
58211999-12-10 Stefan Monnier <monnier@cs.yale.edu>
5822
5823 * xterm.c (x_initialize): Only setup xaw3d_* if they've been declared.
5824
dfa1c6ae
GM
58251999-12-10 Gerd Moellmann <gerd@gnu.org>
5826
5827 * frame.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL)
5828 [!MSDOS && !WINDOWSNT && !macintosh]: Moved here from xterm.h.
5829
5830 * xterm.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL): Moved
5831 to frame.h.
5832
ec18280f
SM
58331999-12-09 Stefan Monnier <monnier@cs.yale.edu>
5834
5835 * keyboard.c (Qratio): New symbol.
5836 (scroll_bar_parts): Add `Qratio' to it.
5837 (syms_of_keyboard): Init `Qratio'.
5838 * termhooks.h (scroll_bar_part): Add `scroll_bar_move_ratio'.
5839 * xterm.c (#includes): Allow compilation with only Xaw.
5840 (xaw3d_arrow_scroll, xaw3d_pick_top): New variables.
5841 (xt_action_hook): Replace XAW3D by XAW.
5842 (xaw3d_jump_callback): Renamed to xaw_jump_callback.
5843 (xaw_jump_callback): Renamed from xaw3d_jump_callback.
5844 Determine epsilon dynamically and don't try to be too clever.
5845 (xaw3d_scroll_callback): Renamed to xaw_scroll_callback.
5846 (xaw_scroll_callback): Renamed from xaw3d_scroll_callback.
5847 Handle both Xaw3d with arrow-scrollbars and with Xaw-style
5848 scrollbar (using `ratio').
5849 (x_create_toolkit_scroll_bar): Try to detect which style of Xaw3d
5850 scrollbar we have so as to set it up more optimally and to fix
5851 xaw3d_arrow_scroll and xaw3d_pick_top.
5852 (x_set_toolkit_scroll_bar_thumb): Try to maintain 2 spare pixels at the
5853 bottom of the Xaw3d scrollbar, to work around its tendency to refuse
5854 shrinking the thumb. Also make sure that `XawScrollbarSetThumb'
5855 is not ignored, using a major gross hack.
5856 (x_initialize): Init default values for xaw3d_arrow_scroll and
5857 xaw3d_pick_top.
5858
83b6d970
DL
58591999-12-09 Dave Love <fx@gnu.org>
5860
5861 * frame.h: (PIX_TYPE) [! HAVE_X_WINDOWS]: Define PIX_TYPE.
5862
3648c842
GM
58631999-12-08 Gerd Moellmann <gerd@gnu.org>
5864
5865 * eval.c: Remove conditional compilation on `standalone'.
5866 (call_debugger): When entering the debugger while redisplaying,
5867 reset redisplaying_p, and go back to the top-level if the debugger
5868 returns.
5869
05e71564
GM
58701999-12-07 Gerd Moellmann <gerd@gnu.org>
5871
5872 * xfaces.c (x_set_menu_resources_from_menu_face): Make sure
5873 basic faces are realized before trying to use face `menu'.
5874
5875 * window.c (delete_window): Block input for the time window
5876 matrices are being changed.
5877
b46cd536
DL
58781999-12-07 Dave Love <fx@gnu.org>
5879
5880 * lread.c (Fintern_soft): Fix newlines in doc string.
5881
96acb1f7
GM
58821999-12-07 Alexandre Oliva <oliva@dcc.unicamp.br>
5883
5884 * unexelf.c: Include <syms.h>, not <sym.h> on IRIX. Removed
5885 duplicate definition of ElfW.
5886 (find_section): Copied from unexsgi.c.
5887 (unexec): Use find_section. Adjust whitespace. Initialize
5888 new_data2_offset based on old_data, not sbss (this fixes a bug on
5889 IRIX6). Change #ifdef __mips to __sgi, since it's IRIX-specific.
5890 Adjust test for presence of .mdebug section to the new return
5891 value of find_section.
427ec082 5892
96acb1f7
GM
58931999-12-07 Gerd Moellmann <gerd@gnu.org>
5894
5895 * unexelf.c: Merge changes from 20.5.
5896 (unexec): Handle .lit4 and .lit8 unconditionally.
5897
5898 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexelf.o instead of
5899 unexsgi.o again.
427ec082 5900
96acb1f7
GM
5901 * m/iris5d.h (UNEXEC): Likewise.
5902
7dae4502
SM
59031999-12-06 Stefan Monnier <monnier@cs.yale.edu>
5904
5905 * editfns.c (Fdelete_and_extract_region): New function.
05e71564
GM
5906 (syms_of_editfns): Register it.
5907 * insdel.c (del_range): Update del_range_1 call.
7dae4502
SM
5908 (del_range_1, del_range_2): Add a ret_string argument to
5909 request that the deleted text be returned.
5910 (del_range_byte, del_range_both): Update del_range_2 call.
05e71564 5911 * lisp.h (del_range_1, del_range_2): Change prototype
7dae4502
SM
5912 * casefiddle.c (casify_region): Update del_range_1 call.
5913 * coding.c (code_convert_region): Update del_range_2 call.
5914 * fileio.c (Finsert_file_contents): Update del_range_2 call.
5915
397e4fae
GM
59161999-12-06 Gerd Moellmann <gerd@gnu.org>
5917
5918 * xfaces.c (set_lface_from_font_name): Fix incomplete merge.
5919
3d973f71
GM
59201999-12-04 Hrvoje Niksic <hniksic@iskon.hr>
5921
5922 * lread.c (Fintern_soft): Accept a symbol argument.
427ec082 5923
740e985f
EZ
59241999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
5925
5926 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Reduce to 40000.
809f3d51
EZ
5927
5928 * insdel.c (adjust_markers_for_delete): Fix last change.
5929
2d764c78
EZ
59301999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
5931
5932 Changes for automatic remapping of X colors on terminal frames:
5933
5934 * xfaces.c (XColor) [!HAVE_X_WINDOWS]: Provide a typedef for non-X
5935 frames.
5936 (Vface_tty_color_alist): Remove.
5937 (tty_defined_color): New function.
5938 (defined_color): Rewrite to support any type of frame.
5939 (tty_color_name): New function.
5940 (face_color_supported_p, Fface_color_gray_p,
5941 Fface_color_supported_p): Support non-X frames.
5942 (load_color): Enclose the color name in quotes, in the log
5943 messages. Remove DOS-specific version of load_color.
5944 (realize_tty_face): Take the supported colors from
5945 tty-color-alist. Support translation of X colors to the closest
5946 tty color, for both MSDOS and tty frames.
5947 [MSDOS]: Don't invert face colors if they were taken from the
5948 frame colors.
5949 (Fface_register_tty_color, Fface_clear_tty_colors): Remove.
5950
5951 * frame.h (struct x_output) [!MSDOS, !WINDOWSNT, !HAVE_X_WINDOWS]:
5952 Define a mostly empty surrogate.
5953 (tty_display): Declare.
5954
5955 * frame.c (make_terminal_frame) [!macintosh]: Don't use
5956 tty_display.
5957 (Fframe_parameters): Don't invert colors of non-FRAME_WINDOW_P
5958 frames when the frame's param_alist includes 'reverse.
5959 (tty_display): Define.
5960 (make_terminal_frame) [!MSDOS]: Assign &tty_display to the
5961 output_data.x member.
5962 (Fframe_parameters): Return foreground and background color names
5963 on tty frames as well, in addition to MSDOS frames.
5964
5965 * msdos.h (DisplayWidth, DisplayHeight): Changes for Lisp_Object
5966 selected_frame.
5967 (struct x_output): Remove unused members; document who uses each
5968 member.
5969 (FRAME_PARAM_FACES, FRAME_N_PARAM_FACES, FRAME_DEFAULT_PARAM_FACE,
5970 FRAME_MODE_LINE_PARAM_FACE, FRAME_COMPUTED_FACES,
5971 FRAME_N_COMPUTED_FACES, FRAME_SIZE_COMPUTED_FACES,
5972 FRAME_DEFAULT_FACE, FRAME_MODE_LINE_FACE, unload_color): Remove
5973 unused macro definintions.
5974
5975 * msdos.c (IT_set_frame_parameters): Don't call
5976 recompute_basic_faces, the next redisplay will, anyway.
5977 (x_current_display): Remove unused variable.
5978 Many functions: changes for Lisp_object selected_frame.
5979 (IT_set_face): If the tty_reverse_p flag is set for the face,
5980 reverse the foreground and background colors.
5981 (Fmsdos_remember_default_colors): New function.
5982 (syms_of_msdos): Defsubr it.
5983 (IT_set_frame_parameters): Use initial_screen_colors[] when
5984 creating a new frame. If the frame parameters include 'reverse,
5985 swap the foreground and background colors.
5986 (internal_terminal_init): Initialize initial_screen_colors to -1.
5987 (syms_of_msdos): Add DEFVAR_BOOL for x-stretch-cursor, to shut up
5988 cus-start.el.
5989
5990 * Makefile.in (lisp, shortlisp): Add lisp/term/tty-colors.elc.
5991
5992 * xfns.c (x_defined_color): Rename from defined_color. All
5993 callers changed.
5994 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
5995 all callers changed.
5996 (Fxw_color_values): Renamed from Fx_color_values; all callers
5997 changed.
5998 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
5999 callers changed.
6000 (x_window_to_frame, x_any_window_to_frame,
6001 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
6002 x_top_window_to_frame): Use !FRAME_X_P instead of
6003 f->output_data.nothing.
6004 * xterm.h (x_defined_color): Rename from defined_color.
6005
6006 * w32fns.c (x_window_to_frame): Use FRAME_W32_P instead of
6007 f->output_data.nothing.
6008 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
6009 all callers changed.
6010 (Fxw_color_values): Renamed from Fx_color_values; all callers
6011 changed.
6012 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
6013 callers changed.
6014
6015 * dispextern.h (tty_color_name): Add prototype.
6016
6017 * xmenu.c (menubar_id_to_frame): Use FRAME_WINDOW_P instead of
6018 f->output_data.nothing.
6019 * w32menu.c (menubar_id_to_frame): Likewise.
6020 * w32term.h (w32_output): Declare.
6021
6022 * dosfns.c (Qmsdos_color_translate): Remove.
6023 (msdos_stdcolor_name): Now returns a Lisp_Object.
6024 * dosfns.h (Qmsdos_color_translate): Remove.
6025
6026 * s/msdos.h (INTERNAL_TERMINAL): Add entries for color support.
6027
b3e5232e
KH
60281999-12-06 Kenichi Handa <handa@etl.go.jp>
6029
6030 * fileio.c (decide_coding_unwind): Renamed from
6031 set_auto_coding_unwind.
6032 (Finsert_file_contents): Make single unwind protect to call both
6033 Vset_auto_coding_function and Ffind_operation_coding_system.
6034
6035 * insdel.c (adjust_markers_for_delete): Make it non-static.
6036
db0e466c
SM
60371999-12-04 Stefan Monnier <monnier@cs.yale.edu>
6038
6039 * regex.c (regex_compile): Recognize *?, +? and ?? as non-greedy
6040 operators and handle them properly.
6041 * regex.h (RE_ALL_GREEDY): New option.
6042 (RE_UNMATCHED_RIGHT_PAREN_ORD): Moved to the end where alphabetic
6043 sorting would put it.
6044 (RE_SYNTAX_AWK, RE_SYNTAX_GREP, RE_SYNTAX_EGREP)
6045 (_RE_SYNTAX_POSIX_COMMON): Use the new option to keep old behavior.
6046
22afa6e8
DL
60471999-12-04 Dave Love <d.love@dl.ac.uk>
6048
6049 * m/arm.h: New file.
6050
40afb967
DL
60511999-12-03 Dave Love <fx@gnu.org>
6052
6053 * editfns.c (Fmessage_or_box): Use use_dialog_box.
6054
ddf8eff5
GM
60551999-12-02 Gerd Moellmann <gerd@gnu.org>
6056
6057 * s/usg5-4.h (LIBS_SYSTEM): Add -lgen because that's needed
6058 for building with Motif.
6059
6060 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexsgi.o instead of
6061 unexelf.o.
427ec082 6062
ddf8eff5
GM
6063 * m/iris5d.h (UNEXEC): Use unexsgi.o instead of unexelf.o.
6064
fa09a82d
DL
60651999-12-01 Dave Love <fx@gnu.org>
6066
6067 * emacs.c (main): Set LANG=C iff AX3_2 defined.
6068
ddf8eff5
GM
60691999-11-28 Gerd Moellmann <gerd@gnu.org>
6070
6071 * systime.h (EMACS_TIME_CMP, EMACS_TIME_EQ, EMACS_TIME_NE)
6072 (EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT,EMACS_TIME_LE): New
6073 macros.
6074
6075 * config.in (HAVE_SETITIMER, HAVE_UALARM): New.
6076
fa09a82d
DL
60771999-11-28 eliz <eliz@dlpx1>
6078
6079 * emacs.c (synchronize_locale): Avoid compiler warnings about
6080 pointer type mismatch.
6081
f9632fc8
GM
60821999-11-28 Gerd Moellmann <gerd@gnu.org>
6083
717d0121
GM
6084 * window.c (Fwindow_end): Don't call temp_set_pt_both with
6085 out of range position.
6086
427ec082 6087 * xterm.c (XTread_socket) <ClientMessage, Xatom_Scrollbar>:
f9632fc8
GM
6088 Switch off busy-cursor by setting inhibit_busy_cursor to 2.
6089
59c65f1e
EZ
60901999-11-28 Eli Zaretskii <eliz@is.elta.co.il>
6091
613a8346
EZ
6092 * charset.c (Fmake_char_internal): Print the charset ID when
6093 signalling an error.
6094
59c65f1e
EZ
6095 * emacs.c (synchronize_locale): Avoid compiler warnings about
6096 pointer type mismatch.
6097
83c8f461 60981999-11-26 Richard M. Stallman <rms@gnu.org>
d01f3570
RS
6099
6100 * editfns.c (Fdelete_field): Make it noninteractive. Return nil.
6101
18df9369
GM
61021999-11-26 Gerd Moellmann <gerd@gnu.org>
6103
65a3ccf7
GM
6104 * puresize.h (BASE_PURESIZE): Increase to 550000.
6105
b3b98592
GM
6106 * textprop.c (set_text_properties): New function. Like
6107 Fset_text_properties, but with additional parameter
6108 SIGNAL_AFTER_CHANGE_P. If that is nil, don't signal after
6109 changes.
6110 (Fset_text_properties): Use it.
6111
6112 * insdel.c (insert_1_both): Call set_text_properties with last
6113 parameter nil so that no after changes will be signaled.
6114
6115 * lisp.h: Add prototype for set_text_properties.
6116
18df9369
GM
6117 * xfaces.c (set_lface_from_font_name): Fix previous change.
6118 (recompute_basic_faces): Change assert to abort.
6119
71a8e74b
DL
61201999-11-25 Dave Love <fx@gnu.org>
6121
6122 * fns.c (Fnthcdr, Fnreverse): Inline cdr.
6123 (Fmember, Fdelq, Fdelete): Inline car.
6124 (Fy_or_n_p): Doc fix.
6125
bc6a5782
GM
61261999-11-25 Gerd Moellmann <gerd@gnu.org>
6127
3221576b 6128 * xfaces.c (set_lface_from_font_name): New parameter may_fail_p.
18df9369 6129 Callers changed. If specified font name is bogus, and may_fail_p
3221576b
GM
6130 is not set, try to use a reasonable default.
6131
bc6a5782
GM
6132 * dispnew.c (direct_output_for_insert): Set glyph row's
6133 displays_text_p flag. Correct window's window_end_vpos if
6134 necessary.
6135
0c8559bb
PE
61361999-11-25 Paul Eggert <eggert@twinsun.com>
6137
6138 * emacs.c (fixup_locale): Don't bother to record initial locale.
6139 (synchronize_locale): If the desired locale is nil,
6140 treat it as if it were the empty string,
6141 so that we set the locale from the environment.
6142
35737351
KH
61431999-11-25 Kenichi Handa <handa@etl.go.jp>
6144
6145 * fileio.c (Finsert_file_contents): Set buffer-file-coding-system
6146 of the current buffer via Fset.
6147
5562b47f
DL
61481999-11-24 Dave Love <fx@gnu.org>
6149
5562b47f
DL
6150 * xfaces.c: Don't duplicate Qmode_line definition done elsewhere.
6151
6152 * xfns.c: Don't duplicate Qdisplay definition done elsewhere.
6153
00da0e4a
GM
61541999-11-24 Gerd Moellmann <gerd@gnu.org>
6155
6156 * lisp.h (enum pvec_type): Put PVEC_FLAG in #if 0.
6157
6158 * emacs.c (PVEC_FLAG): New variable.
6159
b1775dc1
GM
61601999-11-23 Gerd Moellmann <gerd@gnu.org>
6161
6162 * unexaix.c (unexec): Use unsigned instead of uintptr_t because
6163 that fails on IBM PowerPC, AIX 4.2.
427ec082 6164
08de6200
EZ
61651999-11-22 Eli Zaretskii <eliz@is.elta.co.il>
6166
6167 * buffer.c (syms_of_buffer): Add %z, %Z, %m and %& to the doc
6168 string of mode-line-format. Remove the obsolete %t.
6169
02fda8ff
GM
61701999-11-22 Gerd Moellmann <gerd@gnu.org>
6171
f2fa858f
GM
6172 * dispnew.c (direct_output_for_insert): Increment glyph positions
6173 for glyphs from buffer text only.
6174
02fda8ff
GM
6175 * emacs.c (gdb_valbits, gdb_gctypebits, gdb_emacs_intbits)
6176 (gdb_data_seg_bits): New variables.
427ec082 6177
02fda8ff
GM
6178 * lisp.h (enum gdb_lisp_params): Put in #if 0, since it doesn't
6179 work on systems not allowing enumerators > INT_MAX, and it
6180 won't work if EMACS_INT is long long.
6181
1b0d24e7
PE
61821999-11-22 Paul Eggert <eggert@twinsun.com>
6183
6184 Port to SunOS 4.1.x again. Help out with Alpha port.
6185 Rename messages-locale to system-messages-locale,
6186 and likewise for time-locale.
427ec082 6187
1b0d24e7
PE
6188 * callproc.c (strerror): Remove decl.
6189 * fileio.c (strerror): Likewise.
6190 * process.c (strerror): Likewise.
6191 * emacs.c (strerror): Likewise.
6192 (Vsystem_messages_locale): Renamed from Vmessages_locale.
6193 All uses changed.
6194 (Vprevious_system_messages_locale): Likewise, from
6195 Vprevious_messages_locale.
6196 (Vsystem_time_locale): Likewise, from Vtime_locale.
6197 (Vprevious_system_time_locale): Likewise, from Vprevious_time_locale.
6198 (ABORT_RETURN_TYPE): New macro.
6199 (abort): Return type is now ABORT_RETURN_TYPE.
6200 (main): Always invoke init_signals, even if POSIX_SIGNALS is not
6201 defined.
6202 (syms_of_emacs): messages-locale -> system-messages-locale,
6203 previous-messages-locale -> previous-system-messages-locale,
6204 time-locale -> system-time-locale,
6205 previous-time-locale -> previous-system-time-locale.
6206
6207 * gmalloc.c (PP, __ptr_t): Assume ANSI C if STDC_HEADERS is defined.
6208 (const): Do not define; that's config.h's job.
6209 (<limits.h>): Include if HAVE_LIMITS_H is defined.
6210 (CHAR_BIT): Move test for definedness outside of limits.h condition.
6211 (<stddef.h>): Include if STDC_HEADERS is defined.
6212 (FREE_RETURN_TYPE): New macro.
6213 (free): Return type is now FREE_RETURN_TYPE.
6214
6215 * lisp.h (synchronize_system_time_locale): Renamed from
6216 synchronize_time_locale. All uses changed.
6217 (synchronize_system_messages_locale): Likewise, from
6218 synchronize_messages_locale.
6219
6220 * m/alpha.h (malloc, realloc, calloc): Remove decls;
6221 stdlib.h now does this.
6222
6223 * process.c (sys_siglist): Remove.
6224
6225 * s/sunos4-0.h (ABORT_RETURN_TYPE, FREE_RETURN_TYPE):
6226 New macros.
6227
6228 * syntax.c (scan_sexps_forward): Use abort, not assert.
6229
6230 * sysdep.c (my_sys_siglist): New var.
6231 (sys_siglist): New macro. Remove old initialized vars of same name.
6232 (init_signals): Initialize sys_siglist.
6233
6234 * xfns.c (abort): Remove decl; stdlib.h now does this.
6235
0dcd5b54
DL
62361999-11-18 Dave Love <fx@gnu.org>
6237
946173ad
DL
6238 * filelock.c: Add forward declaration for get_boot_time_1.
6239
0dcd5b54
DL
6240 * dispnew.c (Finternal_show_cursor_p): Fix doc string.
6241
71447e8f
GM
62421999-11-18 Gerd Moellmann <gerd@gnu.org>
6243
6244 * buffer.h (struct buffer_text): Add comment about moving
6245 buffer text if REL_ALLOC is defined.
6246
eeedff63
KH
62471999-11-18 Kenichi Handa <handa@etl.go.jp>
6248
6249 * lisp.h (KEY_DESCRIPTION_SIZE): New macro.
6250
6251 * keyboard.c (echo_char): Use KEY_DESCRIPTION_SIZE to check free
6252 memory for push_key_description.
6253
6254 * keymap.c (Fsingle_key_description): Use KEY_DESCRIPTION_SIZE to
6255 allocate memory for push_key_description.
6256 (describe_buffer_bindings): Likewise.
6257
5d7e4a2c
GM
62581999-11-17 Gerd Moellmann <gerd@gnu.org>
6259
6260 * xfns.c (Fx_show_busy_cursor): Doc-fix.
6261 (Fx_hide_busy_cursor): Ditto.
6262
62631999-11-17 Marco Walther <walther@siemens-pyramid.com>
6264
6265 * unexsni.c (unexec): Handle .rel.dyn section.
6266
b5b41e02
DL
62671999-11-16 Dave Love <fx@gnu.org>
6268
6269 * doc.c (Fdocumentation): Remove gcpro here too.
6270
e35b6123
GM
62711999-11-16 Gerd Moellmann <gerd@gnu.org>
6272
6273 * keyboard.c (command_loop_1): Remove no_redisplay.
6274
83c8f461 62751999-11-16 Richard M. Stallman <rms@gnu.org>
0a14b9bb
GM
6276
6277 * print.c (PRINTPREPARE): Don't call setup_echo_area_for_printing
6278 in noninteractive.
6279
b05d3bee
GM
62801999-11-14 Gerd Moellmann <gerd@gnu.org>
6281
5bcfeb49
GM
6282 * xdisp.c (ensure_echo_area_buffers): New.
6283 (with_echo_area_buffer): Use it.
6284 (setup_echo_area_for_printing): Ditto.
6285
b05d3bee
GM
6286 * buffer.c (indicate-empty-lines): Doc-fix.
6287
9b2e6e4c
GM
62881999-11-12 Gerd Moellmann <gerd@gnu.org>
6289
e7f90eab
GM
6290 * term.c (term_init): If "op" isn't available, don't support color
6291 because we can't switch back to the default foreground and
6292 background.
6293
9b2e6e4c
GM
6294 * doc.c (Fdocumentation_property): Remove GCPRO because
6295 Fsubstitute_command_keys gcpro's the string.
6296
1bf21027
KH
62971999-11-12 Kenichi Handa <handa@etl.go.jp>
6298
6299 * editfns.c (Ftranslate_region): Check the buffer multibyteness.
6300
3bc6df53
GM
63011999-11-11 Gerd Moellmann <gerd@gnu.org>
6302
6303 * print.c, keymap.c, indent.c, insdel.c, keyboard.c, intervals.c,
6304 lread.c, textprop.c, undo.c, emacs.c, lisp.h, intervals.h,
6305 buffer.h, config.in, Makefile.in: Remove USE_TEXT_PROPERTIES.
6306
35a5514b
GM
63071999-11-10 Gerd Moellmann <gerd@gnu.org>
6308
6309 * xfns.c (QCuser_data): Removed.
6310 (syms_of_xfns): Initialization of QCuser_data removed.
6311 (parse_image_spec): Don't handle :user-data specially. Allow
6312 unknown keys. Remove parameter ALLOW_OTHER_KEYS.
6313 (xbm_image_p, xbm_load, xpm_image_p, pbm_image_p, png_image_p)
6314 (tiff_image_p, jpeg_image_p, gif_image_p, gs_image_p): Call
6315 parse_image_spec accordingly.
6316
83c8f461 63171999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
6318
6319 * cmds.c (Fbeginning_of_line): Doc fix.
6320 (Fend_of_line): Doc fix.
6321
6322 * editfns.c (Fline_beginning_position): If N is not 1,
6323 pass t to Fconstrain_to_field for ESCAPE-FROM-EDGE.
6324
6325 * syntax.c (Fforward_word): Handle fields even if would have hit
6326 an edge of the buffer. Return nil if affected by fields.
6327
83c8f461 63281999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
6329
6330 * editfns.c (preceding_pos): Function deleted.
6331 (text_property_stickiness): Decrement POS directly.
6332 Fix a confusion that used PT instead of POS.
6333
6334 * editfns.c (find_field): Properly handle the case
6335 of a field boundary where `field' inherits from neither side.
6336
6337 * editfns.c (Ffield_beginning, Ffield_end): Doc fixes.
6338 (Ferase_field, Ffield_string, Ffield_string_no_properties): Doc fixes.
6339
fa9aabf6
GM
63401999-11-08 Gerd Moellmann <gerd@gnu.org>
6341
6342 * bytecode.c (Fbyte_code) <BinsertN, Bcall>: Do the
6343 BEFORE_POTENTIAL_GC before DISCARD.
6344
4015b3c0
GM
63451999-11-07 Gerd Moellmann <gerd@gnu.org>
6346
033a5fa3
GM
6347 * alloc.c (Fgarbage_collect): Call unmark_byte_stack.
6348
6349 * lisp.h: Add prototype for unmark_byte_stack.
6350
6351 * bytecode.c (mark_byte_stack): Use XMARKBIT and XMARK.
6352 (unmark_byte_stack): Renamed from relocate_byte_pcs. Use
6353 XUNMARK.
6354
55b064bd
GM
6355 * xdisp.c (resize_mini_window): Fix computation of needed
6356 mini-window height.
6357
6358 * alloc.c, buffer.c, editfns.c, xdisp.c: Remove conditional
6359 compilation on USE_TEXT_PROPERTIES.
01e9b9df 6360
4015b3c0 6361 * Fbyte_code: Use block statements in cases and declare v1 and v2
60af03f1 6362 locally there. Rearrange case statements so that those most
4015b3c0
GM
6363 frequently executed come first. Avoid goto's in frequently
6364 executed cases.
6365
fe512f27
GM
63661999-11-05 Gerd Moellmann <gerd@gnu.org>
6367
dd59e217
GM
6368 * bytecode.c (Fbyte_code): Use BEFORE_POTENTIAL_GC and
6369 AFTER_POTENTIAL_GC around internal_catch.
6370
bcf28080
GM
6371 * alloc.c (Fgarbage_collect): Call mark_byte_stack and
6372 relocate_byte_pcs.
6373 (init_alloc_once, init_alloc): Set byte_stack_list to null.
6374
6375 * eval.c (struct catchtag): Add member byte_stack.
6376 (internal_catch, Fcondition_case, internal_condition_case)
dd59e217 6377 (internal_condition_case_1): Save value of byte_stack_list in
bcf28080
GM
6378 catchtag.
6379 (unwind_to_catch): Restore byte_stack_list from catchtag.
6380
6381 * lisp.h: Add prototypes for new functions in bytecode.c.
6382 Add extern declaration for byte_stack_list.
6383
6384 * bytecode.c (struct byte_stack): New.
6385 (byte_stack_list, mark_byte_stack, relocate_byte_pcs): New
6386 (BEFORE_POTENTIAL_GC, AFTER_POTENTIAL_GC): New.
6387 (FETCH, PUSH, POP, DISCARD, TOP, MAYBE_GC): Rewritten.
6388 (HANDLE_RELOCATION): Removed.
6389 (Fbyte_code): Use byte_stack structures.
6390
4d59c34c
GM
6391 * filelock.c (Ffile_locked_p): Make FILENAME a required argument.
6392
fe512f27
GM
6393 * buffer.c (syms_of_buffer): Extend documentation of
6394 mode-line-format.
6395
60b64cd6
GM
63961999-11-04 Gerd Moellmann <gerd@gnu.org>
6397
6398 * editfns.c (Fdelete_field): Renamed from Ferase_field.
6399
6400 * minibuf.c (do_completion, Fminibuffer_complete_word): Use
6401 Ferase_field instead of Fdelete_field.
6402
b51b619b
GM
64031999-11-03 Gerd Moellmann <gerd@gnu.org>
6404
6405 * dispnew.c (Finternal_show_cursor): Change it to set the
6406 cursor on/off, not toggle its state.
6407 (Finternal_show_cursor_p): New.
6408 (syms_of_display): Defsubr Sinternal_show_cursor_p.
6409
5865af0d
DL
64101999-11-03 Dave Love <fx@gnu.org>
6411
6412 * charset.c (split_non_ascii_string): Define return value.
6413
82a700f3
GM
64141999-11-03 Gerd Moellmann <gerd@gnu.org>
6415
edfef199
GM
6416 * minibuf.c (string_to_object): New.
6417 (read_minibuf_noninteractive): New.
6418 (read_minibuf): Call read_minibuf_noninteractive if
6419 noninteractive. Use string_to_object.
6420
82a700f3
GM
6421 * doc.c (Fdocumentation_property): Fix bug bypassing UNGCPRO.
6422
b5540f0d
DL
64231999-11-02 Dave Love <fx@gnu.org>
6424
e69dcd60
DL
6425 * gnu-linux.h: Use SIGCHLD, not SIGCLD (not in glibc 2.1).
6426
827a1788
DL
6427 * process.c: Define _GNU_SOURCE before config.h to get strsignal
6428 declared with glibc2.
b5540f0d 6429
a69a6e61
GM
64301999-11-02 Gerd Moellmann <gerd@gnu.org>
6431
6432 * lisp.h (QUIT): Give it statement form.
6433
87e21fbd
DL
64341999-11-02 Dave Love <fx@gnu.org>
6435
6436 * eval.c (init_eval): Conditionalize declaration of gcpro_level.
6437
1b335865
GM
64381999-11-02 Gerd Moellmann <gerd@gnu.org>
6439
9fb5e03d
GM
6440 * xfns.c (QCuser_data): New.
6441 (syms_of_xfns): Initialize QCuser_data.
6442 (parse_image_spec): Ignore :user-data DATA properties.
6443
1b335865
GM
6444 * xdisp.c (display_line): Set charpos of first glyph in blank
6445 lines not corresponding to any text to -1, even if no glyphs are
6446 filled in in that line.
6447
e76f1c44
GM
64481999-11-01 Gerd Moellmann <gerd@gnu.org>
6449
427ec082 6450 * xfns.c (png_load) [PNG_READ_sRGB_SUPPORTED]: Put code using
36fcd3d9
GM
6451 png_get_sRGB in #ifdef.
6452
111259b4
GM
6453 * dispnew.c (Finternal_show_cursor): Renamed from Fshow_cursor.
6454 (syms_of_display): Use the new name.
6455
dd5c96e8
GM
6456 * textprop.c (verify_interval_modification): Signal text-read-only
6457 instead of calling error.
6458
db8878fb
GM
6459 * data.c (Qtext_read_only): New built-in error.
6460 (syms_of_data): Initialize it.
6461
6462 * lisp.h: Add extern declaration for Qtext_read_only.
6463
e76f1c44
GM
6464 * syntax.c: Remove whitespace after open or in front of closing
6465 parentheses.
6466
83c8f461 64671999-11-01 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
6468
6469 * Makefile.in (w16select.o, sound.o): Don't depend on lisp.h.
6470
7843e09c
GM
64711999-10-31 Gerd Moellmann <gerd@gnu.org>
6472
575ed805
GM
6473 * xdisp.c (resize_mini_window): Compute needed height differently.
6474
7843e09c
GM
6475 * fns.c (Flength): Unroll loop over lists.
6476
6477 * xdisp.c (append_space): Return non-zero if space was appended.
6478 (display_line): Set charpos of first glyph to -1 only if that
6479 glyph is the space added by append_glyph.
6480
83c8f461 64811999-10-30 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
6482
6483 * print.c (strout): Consider `noninteractive' and use stdout
6484 only when PRINTCHARFUN is t.
6485
6486 * lisp.h (struct gcpro) [DEBUG_GCPRO]: New field `level'.
6487 (gcpro_level): Declare it extern.
6488 [DEBUG_GCPRO] (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5):
6489 Alternate definitions that set `level' and increment `gcpro_level'.
6490 [DEBUG_GCPRO] (UNGCPRO): Alternate definition that checks gcpro_level.
6491
6492 * eval.c [DEBUG_GCPRO] (gcpro_level): New variable.
6493 (init_eval) [DEBUG_GCPRO]: Initialize it.
6494 (unwind_to_catch) [DEBUG_GCPRO]: Set gcpro_level
6495 from remaining gcprolist.
6496
3636f7a3
KH
64971999-10-29 Kenichi Handa <handa@etl.go.jp>
6498
6499 * coding.c (code_convert_region): Update `dst' correctly.
6500
a2ad7096
GM
65011999-10-28 Gerd Moellmann <gerd@gnu.org>
6502
6503 * fns.c (Fmemq, Fassq, Frassq, assq_no_quit, Fassoc)
6504 (Frassoc): Rewritten.
6505
1e3196e8
GM
65061999-10-27 Noah Friedman <friedman@splode.com>
6507
6508 * s/gnu-linux.h [HAVE_DEV_PTMX]: Redefine FIRST_PTY_LETTER to 'z'.
6509 Define PTY_NAME_SPRINTF.
6510 Redefine PTY_TTY_NAME_SPRINTF.
6511 * config.in: Add undef for HAVE_DEV_PTMX.
6512
83c8f461 65131999-10-26 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
6514
6515 * regex.c (POP_FAILURE_POINT): Use failure_id.integer
6516 as arg to DEBUG_POP and DEBUG_PRINT.
6517
83c8f461 65181999-10-27 Richard M. Stallman <rms@gnu.org>
17dbfaad
GM
6519
6520 * data.c (Qad_activate_internal): Renamed from Qad_activate.
6521 (Ffset): Call Qad_activate_internal.
6522 (syms_of_data): Initialize Qad_activate_internal.
6523
26922151
GM
65241999-10-27 Gerd Moellmann <gerd@gnu.org>
6525
6526 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing if
6527 Vterminal_frame is selected and Vwindow_system is non-nil.
6528
67a5596f
GM
65291999-10-26 Gerd Moellmann <gerd@gnu.org>
6530
2bea706b
GM
6531 * xdisp.c (echo_area_display): Put previous change in #if 0.
6532
67a5596f
GM
6533 * emacs.c (standard_args): Add `file' as synonym for `visit',
6534 `execute' as synonym for `eval'.
6535 (main): Add new options to usage message.
6536
81dc5de5
GM
65371999-10-25 Gerd Moellmann <gerd@gnu.org>
6538
6539 * data.c (Qhash_table): New.
6540 (Ftype_of): Return it for hash tables.
6541 (syms_of_data): Initialize Qhash_table.
6542
83c8f461 65431999-10-25 Richard M. Stallman <rms@gnu.org>
bd3c545d
GM
6544
6545 * regex.c (POP_FAILURE_POINT): Extract failure_id as an integer.
6546
66e4690f 65471999-10-24 Ken Raeburn <raeburn@gnu.org>
3a7093d8 6548
7539e11f
KR
6549 * alloc.c: Undef HIDE_LISP_IMPLEMENTATION before including
6550 lisp.h.
6551
6552 * buffer.c (Fbuffer_list, Fget_file_buffer, get_truename_buffer,
6553 Fbuffer_local_variables, Fother_buffer, record_buffer,
6554 set_buffer_internal_1, Fbury_buffer, Fkill_all_local_variables,
6555 swap_out_buffer_local_variables, overlays_at, overlays_in,
6556 overlay_touches_p, overlay_strings, recenter_overlay_lists,
6557 fix_overlays_in_range, fix_overlays_before, Foverlay_get,
6558 Foverlay_put, report_overlay_modification, evaporate_overlays):
6559 Use XCAR, XCDR, and XFLOAT_DATA instead of explicit member
6560 references.
6561 * data.c (Fcar, Fcar_safe, Fcdr, Fcdr_safe, Fsetcar, Fsetcdr,
6562 swap_in_symval_forwarding, set_internal, default_value,
6563 Fset_default, Fmake_variable_buffer_local, Fmake_local_variable,
6564 Fmake_variable_frame_local, Flocal_variable_p,
6565 Flocal_variable_if_set_p, arithcompare, Fzerop, cons_to_long,
6566 Fnumber_to_string, float_arith_driver, Fadd1, Fsub1): Likewise.
6567 * dispnew.c (Fframe_or_buffer_changed_p): Likewise.
6568 * emacs.c (main): Likewise.
6569 * fontset.c (fs_load_font, fs_register_fontset,
6570 CACHED_FONTSET_NAME, CACHED_FONTSET_REGEX, Fquery_fontset,
6571 Fnew_fontset, Fset_fontset_font): Likewise.
6572 * frame.c (do_switch_frame, next_frame, prev_frame,
6573 other_visible_frames, Fdelete_frame, Fvisible_frame_list):
6574 Likewise.
6575 * keyboard.c (read_char, help_char_p, event_to_kboard,
6576 kbd_buffer_get_event, timer_start_idle, timer_check,
6577 make_lispy_event, apply_modifiers, reorder_modifiers,
6578 Fevent_convert_list, lucid_event_type_list_p, menu_bar_items,
6579 menu_bar_one_keymap, menu_item_eval_property_1, parse_menu_item,
6580 tool_bar_items, read_char_x_menu_prompt, read_key_sequence,
6581 Fcommand_execute, Fexecute_extended_command): Likewise.
6582 * minibuf.c (read_minibuf, get_minibuffer, Ftry_completion,
6583 Fall_completions): Likewise.
6584 * window.c (Fset_window_margins): Likewise.
6585
6586 * callint.c (quotify_args): Don't explicitly use struct
6587 Lisp_Cons, use Lisp_Object and XCAR/XCDR instead.
6588
3a7093d8
KR
6589 * s/netbsd.h (HAVE_GETLOADAVG): Define as 1.
6590 (UNEXEC, START_FILES, LIB_STANDARD, LIB_GCC): Define ELF versions,
6591 if __ELF__ is defined.
6592
2a3d7146
GM
65931999-10-24 Gerd Moellmann <gerd@gnu.org>
6594
6595 * window.c (Fnext_window): Add a QUIT in the loop.
6596
8ac52782
GM
65971999-10-23 Gerd Moellmann <gerd@gnu.org>
6598
427ec082 6599 * Makefile.in (bootstrap, bootstrap-emacs, bootstrap-temacs):
8ac52782
GM
6600 New targets.
6601
05f0d15a
DL
66021999-10-22 Dave Love <fx@gnu.org>
6603
6604 * emacs.c (main): Enable profiling conditional on __linux also.
6605
882fb0e6
GM
66061999-10-20 Gerd Moellmann <gerd@gnu.org>
6607
6608 * xrdb.c (x_load_resources): Set default resources for resource
6609 classes instead of for the specific Emacs.
6610
b5f5bc31
GM
66111999-10-19 Gerd Moellmann <gerd@gnu.org>
6612
66f4dd69
GM
6613 * s/freebsd.h (HAVE_GETLOADAVG): Define as 1 because config.h
6614 defines it that way.
427ec082 6615
b5f5bc31
GM
6616 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing
6617 if selected_frame is equal to Vterminal_frame.
6618
68c45bf0 66191999-10-19 Paul Eggert <eggert@twinsun.com>
427ec082 6620
68c45bf0 6621 Add support for large files, 64-bit Solaris, system locale codings.
427ec082 6622
68c45bf0
PE
6623 * Makefile.in (emacs): Set the LC_ALL environment variable to "C"
6624 when dumping, so that the dumped Emacs doesn't have stray locale info.
6625 (dired.o): Depend on systime.h.
6626 (editfns.o): Depend on coding.h.
6627
6628 * alloc.c, buffer.c, callproc.c, ccl.c, charset.c, coding.c, data.c,
6629 dispnew.c, editfns.c, emacs.c, filelock.c, floatfns.c, hftctl.c,
6630 keyboard.c, process.c, sysdep.c, unexelf.c, unexhp9k800.c,
6631 unexsunos4.c, vmsfns.c, vmsgmalloc.c, w32faces.c, w32menu.c, w32term.c,
6632 w32xfns.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
6633 Include <config.h> before any system include files.
6634
6635 * alloc.c, buffer.c, ccl.c, data.c, editfns.c, emacs.c, eval.c,
6636 fileio.c, filelock.c, frame.c, insdel.c, keymap.c, lread.c,
6637 m/alpha.h, print.c, search.c, sysdep.c, xdisp.c, xfaces.c, xfns.c,
6638 xmenu.c, xterm.c:
6639 Do not include <stdlib.h>, as <config.h> does this now.
6640
6641 * callproc.c (Fcall_process):
6642 Synchronize messages locale before invoking strerror.
6643 Decode resulting string with locale-coding-system.
6644
6645 * coding.c (Vlocale_coding_system): New var.
6646 (syms_of_coding): Adjust to above change.
6647 (emacs_strerror): New function.
6648
6649 * coding.h (emacs_strerror, Vlocale_coding_system): New decls.
427ec082 6650
68c45bf0
PE
6651 * config.in (HAVE_STDIO_EXT_H, HAVE_TM_GMTOFF, HAVE___FPENDING,
6652 HAVE_FTELLO, HAVE_GETLOADAVG, HAVE_MBLEN, HAVE_MBRLEN,
6653 HAVE_STRSIGNAL): New macros.
6654 (BITS_PER_LONG): Default to 64 if _LP64 is defined.
6655 <stdlib.h>: Include if HAVE_STDLIB_H is defined and NOT_C_CODE isn't.
6656
6657 * dired.c: Include "systime.h".
6658 (Ffile_attributes): Do not cast s.st_size to int; this loses
6659 information if int is 32 bits but st_size and EMACS_INT are larger.
6660 Treat large device numbers like large inode numbers.
6661
6662 * dispnew.c (PENDING_OUTPUT_COUNT): Use __fpending if available.
6663
6664 * editfns.c: Include coding.h.
6665 (emacs_strftime): Remove decl.
6666 (emacs_strftimeu): New decl.
6667 (emacs_memftimeu): Renamed from emacs_memftime; new arg UT.
6668 Use emacs_strftimeu instead of emacs_strftime.
6669 (Fformat_time_string): Convert format string using
6670 Vlocale_coding_system, and convert result back. Synchronize time
6671 locale before invoking lower level function. Invoke
6672 emacs_memftimeu, passing ut, instead of emacs_memftime.
427ec082 6673
68c45bf0
PE
6674 * emacs.c: Include <locale.h> if HAVE_SETLOCALE is defined.
6675 (Vmessages_locale, Vprevious_messages_locale, Vtime_locale,
6676 Vprevious_time_locale): New variables.
6677 (main): Invoke setlocale early, so that initial error messages are
6678 localized properly. But skip locale-setting if LC_ALL is "C".
6679 Fix up locale when it's safe to do so.
6680 (fixup_locale): Moved here from xterm.c.
6681 (synchronize_locale, synchronize_time_locale,
6682 synchronize_messages_locale): New functions.
6683 (syms_of_emacs): Accommodate above changes.
6684
6685 * fileio.c (report_file_error): Convert strerror output according
6686 to Vlocale_coding_system.
6687 (Finsert_file_contents): Check for arithmetic overflow in
6688 computations that depend on file size. Report IO errors
6689 with emacs_strerror, not strerror.
6690
6691 * fns.c (Fgethash): Declare dflt parameter.
6692
6693 * gmalloc.c: Do not define const to nothing if HAVE_CONFIG_H
6694 is defined; that's config.h's job.
6695
6696 * lisp.h (EMACS_INT, BITS_PER_EMACS_INT, EMACS_UINT): If _LP64,
6697 default these values to long, BITS_PER_LONG, and unsigned long.
6698 (VALBITS, MARKBIT, XINT): Do not assume 32-bit EMACS_INT.
6699 (PNTR_COMPARISON_TYPE): Default to EMACS_UINT, not to unsigned int.
6700 (code_convert_string_norecord, fixup_locale,
6701 synchronize_messages_locale, synchronize_time_locale,
6702 emacs_open, emacs_close, emacs_read, emacs_write): New decls.
6703 All Emacs callers of open, close, read, write changed to use
6704 emacs_open, emacs_close, emacs_read, emacs_write.
6705
6706 * lread.c (file_offset, file_tell): New macros. All uses of ftell
6707 changed to file_tell.
6708 (saved_doc_string_position, prev_saved_doc_string_position): Now
6709 of type file_offset.
6710 (init_lread): Do not fix locale here; fixup_locale now does this.
6711
6712 * m/amdahl.h, s/usg5-4.h:
6713 (NSIG): Remove.
6714 (NSIG_MINIMUM): New macro.
6715
6716 * m/cydra5.h, m/dpx2.h, m/mips.h, m/pfa50.h, m/sps7.h, m/stride.h,
6717 m/ustation.h, s/gnu-linux.h, s/hpux.h, s/iris3-5.h, s/iris3-6.h,
6718 s/umips.h, s/usg5-4.h:
6719 (SIGIO): Do not undef.
6720 (BROKEN_SIGIO): New macro.
6721
6722 * m/ustation.h:
6723 (SIGTSTP): Do not undef.
6724 (BROKEN_SIGTSTP): New macro.
6725
6726 * s/gnu-linux.h:
6727 (SIGPOLL, SIGURG): Do not undef.
6728 (BROKEN_SIGPOLL, BROKEN_SIGURG): New macros.
6729
6730 * s/ptx4.h:
6731 (SIGINFO): Do not undef.
6732 (BROKEN_SIGINFO): New macros.
427ec082 6733
68c45bf0
PE
6734 * m/delta.h, s/ptx.h, s/template.h: Doc fix.
6735
6736 * mktime.c, strftime.c: Update to glibc 2.1.2 version, with
6737 some Emacs-related changes merged.
6738
6739 * print.c (float_to_string): Prepend "-" to representation of a
6740 NaN if the NaN is negative.
6741
6742 * process.c (sys_siglist): Omit if HAVE_STRSIGNAL.
6743 (wait_reading_process_input): Use emacs_strerror, not strerror.
427ec082 6744
68c45bf0
PE
6745 * process.c (status_message, sigchld_handler): Synchronize locale,
6746 then use strsignal istead of sys_siglist.
6747 * w32proc.c (sys_wait): Likewise.
427ec082 6748
68c45bf0
PE
6749 * s/aix3-1.h, s/bsd4-1.h, s/dgux.h, s/gnu-linux.h, s/hiuxmpp.h,
6750 s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/osf1.h, s/rtu.h,
6751 s/sunos4-1.h, s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h,
6752 s/usg5-2.h, s/usg5-3.h, s/xenix.h:
6753 (open, close, read, write, INTERRUPTIBLE_OPEN,
6754 INTERRUPTIBLE_CLOSE, INTERRUPTIBLE_IO): Remove.
6755
6756 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): New macros.
6757
6758 * sysdep.c (sys_read, sys_write, read, write, sys_close, close,
6759 sys_open, open): Remove.
6760 (emacs_open, emacs_close, emacs_read, emacs_write): Always define;
6761 the old INTERRUPTIBLE_OPEN, INTERRUPTIBLE_CLOSE, and INTERRUPTIBLE_IO
6762 macros are no longer used.
6763 (emacs_open): Renamed from sys_open. Merge BSD4_1 version.
6764 (emacs_close): Renamed from sys_close.
6765 (emacs_read): Renamed from sys_read.
6766 (emacs_write): Renamed from sys_write.
6767 (sys_siglist): Do not declare if HAVE_STRSIGNAL.
6768 (dup2): Do not print error on failure; the real dup2 doesn't.
6769 (strsignal): New function, defined if !HAVE_STRSIGNAL.
6770
6771 * syssignal.h (SIGINFO): Undef if defined and if BROKEN_SIGINFO
6772 is defined.
6773 (SIGIO, SIGPOLL, SIGTSTP, SIGURG): Likewise.
6774 (NSIG): If less than NSIG_MINIMUM, define to NSIG_MINIMUM.
6775 (strsignal): Declare if !HAVE_STRSIGNAL.
6776
6777 * unexelf.c (ElfBitsW, ELFSIZE, ElfExpandBitsW): New macros.
6778 (ElfW): Define in terms of ElfExpandBitsW.
6779
6780 * w32proc.c (sys_siglist): Remove decl.
6781
6782 * xdisp.c (decode_mode_spec): 3rd arg is int, not char, to comply
6783 with ANSI C.
6784 (display_string): Declare face_string_pos arg.
6785
6786 * xfns.c (Fx_show_tip): Declare timeout param.
6787
6788 * xterm.c: No need to include locale.h.
6789 (x_alloc_lighter_color, x_setup_relief_color):
6790 Pass arg as double, not float, for compatibility with ANSI C.
6791 (fixup_locale): Move to emacs.c.
6792 (x_term_init): Do not setlocale or fixup locale; the main program
6793 does this now.
6794
2f0b74ea
DL
67951999-10-18 Dave Love <fx@gnu.org>
6796
6797 * doc.c (Fdocumentation_property): Gcpro `tem'.
6798
471aa4a0
KH
67991999-10-18 Kenichi Handa <handa@etl.go.jp>
6800
6801 * lread.c (Fload): Calculate bytes of filename correctly.
6802 (openp): Likewise.
6803
aca2020b
KH
68041999-10-18 Keisuke Nishida <kxn30@po.cwru.edu>
6805
6806 * print.c (print_preprocess): In case print-circle is nil,
6807 add OBJ to Vprint_number_table only when OBJ is a symbol.
6808
1f5fe392 68091999-10-18 Kenichi Handa <handa@etl.go.jp>
b843d1ae
KH
6810
6811 * coding.c (code_convert_string): Add record_unwind_protect to
6812 assure setting inhibit_pre_post_conversion back to zero. Take
6813 care of the multibyteness of the working buffer.
6814
6815 * coding.c (inhibit_pre_post_conversion): New variable.
6816 (setup_coding_system): If inhibit_pre_post_conversion is nonzero,
6817 ignore post-read-conversion and pre-write-conversion property of
6818 the coding system.
6819 (code_convert_region_unwind): New function.
6820 (code_convert_region): Set inhibit_pre_post_conversion to 1 while
6821 running pre-write-conversion and post-read-conversion.
6822 (code_convert_string): Likewise.
6823
cd876a91
GM
68241999-10-17 Miles Bader <miles@gnu.org>
6825
6826 * editfns.c: Doc fix.
6827
68281999-10-17 Miles Bader <miles@gnu.org>
6829
6830 * editfns.c (Fconstrain_to_field): Make sure we don't violate the
6831 argument preconditions of find_before_next_newline in the case
6832 where both ONLY_IN_LINE and ESCAPE_FROM_EDGE are set and OLD_POS
6833 was indeed at the edge.
6834
68351999-10-17 Miles Bader <miles@gnu.org>
6836
6837 * minibuf.c (Fminibuffer_complete_and_exit): Supply value for new
6838 ESCAPE_FROM_EDGE parameter to Ffield_beginning.
6839
6840 * editfns.c (text_property_eq, text_property_stickiness): Don't
6841 use initializers for auto variables of type Lisp_Object.
6842 (find_field): Likewise. Use braces around nested ifs.
6843 (Fline_end_position): Store the raw eol in a variable, so that the
6844 final expression doesn't look so ugly.
6845 (Fconstrain_to_field): Doc fix.
6846 (preceding_pos): Renamed from `preceeding_pos'.
6847 (text_property_stickiness, find_field): Call preceding_pos,
6848 not preceeding_pos.
6849
68501999-10-17 Miles Bader <miles@gnu.org>
6851
6852 * editfns.c (Ffield_string_no_properties): New function.
6853 (text_property_stickiness, preceeding_pos): New functions.
6854 (Ffield_string): Remove PROPS parameter.
6855 (find_field): Add MERGE_AT_BOUNDARY parameter.
6856 Rewrite to use stickiness of `field' property to resolve
6857 ambiguous cases.
6858 (Ffield_beginning, Ffield_end): Add ESCAPE_FROM_EDGE parameter.
6859 (Fconstrain_to_field): Likewise.
6860 (syms_of_editfns): Init Sfield_string_no_properties.
427ec082 6861 (Ffield_string, Ferase_field, Ffield_end):
cd876a91
GM
6862 Supply new MERGE_AT_BOUNDARY argument to find_field.
6863 (Fline_beginning_position, Fline_end_position): Supply new
6864 ESCAPE_FROM_EDGE parameter to Fconstrain_to_field.
6865 Pass a value of Qt for the ONLY_IN_LINE argument to
6866 Fconstrain_to_field (only matters if N != 1).
6867 * syntax.c (Fforward_word): Supply new ESCAPE_FROM_EDGE parameter
6868 to Fconstrain_to_field.
6869
6870 * minibuf.c (Fminibuffer_complete_word): Use
6871 Ffield_beginning to find the prompt end.
6872
68731999-10-17 Miles Bader <miles@gnu.org>
6874
6875 * editfns.c (Fconstrain_to_field): Add get/set-current-point
6876 behavior when NEW_POS is nil.
6877 (find_field): Use XSETFASTINT instead of make_number.
6878 * minibuf.c (Fminibuffer_complete_and_exit): Test for an empty
6879 input string by seeing where the field begins, instead of
6880 looking at text-properties.
6881
68821999-10-17 Miles Bader <miles@gnu.org>
6883
6884 * editfns.c (Qfield): New variable.
6885 (find_field, Ferase_field, Ffield_string,
6886 Ffield_beginning, Ffield_end, Fconstrain_to_field): New functions.
6887 (Fline_beginning_position, Fline_end_position): Constrain to any field.
6888 (make_buffer_string_both): Remove minibuffer-prompt hack.
6889 (syms_of_editfns): Initialize Qfield, and subr entries for
6890 field functions above.
6891 * minibuf.c (read_minibuf): Don't save minibuffer prompt length on
6892 minibuf_save_list.
6893 Don't initialize minibuffer prompt length.
6894 Wrap prompt text-properties around the entire prompt.
6895 Add 'prompt text-property to prompt.
6896 Get final value with Ffield_string instead of make_buffer_string.
6897 (read_minibuf_unwind): Don't restore minibuffer prompt length from
6898 minibuf_save_list.
6899 (do_completion): Get minibuffer input with Ffield_string
6900 instead of Fbuffer_string.
6901 Erase minibuffer input with Ferase_field instead of erase_buffer.
6902 (Fminibuffer_complete_and_exit): Likewise.
6903 Test whether buffer is empty by looking for the 'prompt text
6904 property at the end.
6905 Set prompt length by looking for the end of the prompt text property,
6906 and save prompt length for later use (since there is no longer a
6907 buffer variable to get it from).
6908 (Fminibuffer_prompt_width, Fminibuffer_prompt_end): Functions removed.
6909 (syms_of_minibuf): Remove initializations of
6910 Sminibuffer_prompt_width and Sminibuffer_prompt_end.
6911 * buffer.h (struct buffer): Remove prompt_end_charpos field.
427ec082 6912 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer, Fkill_buffer):
cd876a91
GM
6913 Don't initialize prompt_end_charpos field.
6914 * syntax.c (Fforward_word): Likewise.
6915 Constrain to any field.
6916
3f6f7508
GM
69171999-10-16 Gerd Moellmann <gerd@gnu.org>
6918
6919 * window.c (enum save_restore_action): New.
6920 (save_restore_orig_size): Change parameter list. Add
6921 functionality to check for valid orig_top and orig_height members
6922 in a window tree.
6923 (grow_mini_window): Call save_restore_orig_size with new parameter
6924 list.
6925 (shrink_mini_window): Restore old window sizes only if old
6926 size information is valid in all windows in a window tree.
427ec082 6927
06482119
GM
69281999-10-15 Gerd Moellmann <gerd@gnu.org>
6929
2710454d
GM
6930 * xmenu.c (set_frame_menubar): Don't call
6931 x_set_menu_resources_from_menu_face here.
6932 (update_frame_menubar): Call x_set_menu_resources_from_menu_face.
6933
06482119
GM
6934 * xfns.c (gif_load): Fix handling of interlaced GIFs.
6935
17fa2837
DL
69361999-10-14 Dave Love <fx@gnu.org>
6937
6938 * xdisp.c (handle_fontified_prop): GCPRO `pos'.
6939
45f93416
GM
69401999-10-14 Gerd Moellmann <gerd@gnu.org>
6941
6942 * process.c (Fopen_network_stream): Don't loop if gethostbyname
6943 fails and h_errno is TRY_AGAIN.
6944
c765b723
DL
69451999-10-13 Dave Love <fx@gnu.org>
6946
6947 * filelock.c (lock_file): Move gcpro of `fn'.
6948
dace7f4e
GM
69491999-10-10 Gerd Moellmann <gerd@gnu.org>
6950
6951 * keyboard.c (auto-save-interval): Fix documentation.
427ec082 6952
83c8f461 69531999-10-09 Richard M. Stallman <rms@gnu.org>
73fb36f1
RS
6954
6955 * print.c (print): When removing objects from Vprint_number_table,
6956 only scan the newly added objects.
6957 (print_preprocess): If OBJ is a gensym, and print-continuous-numbering,
6958 unconditionally force it to stay in the table.
6959
85177c86
GM
69601999-10-09 Gerd Moellmann <gerd@gnu.org>
6961
6962 * xfns.c (prepare_image_for_display): Don't try to load image if
6963 loading it failed before.
6964 (lookup_image, prepare_image_for_display): Remember if loading the
6965 image failed.
6966 (xpm_load): Add missing UNBLOCK_INPUT.
6967
6968 * dispextern.h (struct image): New member load_failed_p.
6969
11e4de5d
SM
69701999-10-08 Stefan Monnier <monnier@cs.yale.edu>
6971
f28eba7b 6972 * fileio.c (Fmake_temp_name): Add a reference to `make-temp-file'
11e4de5d
SM
6973 in the docstring.
6974
f1da8f06
GM
69751999-10-08 Gerd Moellmann <gerd@gnu.org>
6976
6977 * xterm.c (XTread_socket) <ClientMessage, WM_TAKE_FOCUS>:
6978 Don't call XSetInputFocus because that can generate additional
6979 FocusIn events.
427ec082 6980
c37bbd4f
GM
69811999-10-07 Jeffrey C Honig <jch@bsdi.com>
6982
6983 * bsdos4.h [HAVE_LIBNCURSES]: Define TERMINFO and LIBS_TERMCAP.
6984
83c8f461 69851999-10-07 Richard M. Stallman <rms@gnu.org>
78cc5c64
GM
6986
6987 * process.c (wait_reading_process_input): When trying to suck
6988 input from one process, for accept-process-output,
6989 exit that loop if we get EAGAIN or EWOULDBLOCK.
6990
577d9e2f
GM
69911999-10-07 Gerd Moellmann <gerd@gnu.org>
6992
6993 * xfaces.c (Qbitmap_spec_p): Replaces Qpixmap_spec_p.
6994 (Fbitmap_spec_p): Replaces Fpixmap_spec_p.
6995 (load_pixmap): Use Fbitmap_spec_p and Qbitmap_spec_p instead of
6996 Fpixmap_spec_p and Qpixmap_spec_p.
6997 (load_face_colors, check_lface_attrs,
6998 merge_face_vector_with_property,
6999 Finternal_set_lisp_face_attribute): Use Fbitmap_spec_p.
7000 (syms_of_xfaces): Initialize Qbitmap_spec_p, defsubr
7001 Fbitmap_spec_p.
7002
f5737ad2
GM
70031999-10-07 Gerd Moellmann <gerd@gnu.org>
7004
7005 * xdisp.c (display_menu_bar): Use MENU_FACE_ID instead of
7006 MODE_LINE_FACE_ID.
7007
7008 * xfaces.c (toplevel) [USE_MOTIF]: Include some Motif headers.
7009 (struct x_resources) [USE_X_TOOLKIT]: New.
7010 (xm_apply_resources, xm_set_menu_resources_from_menu_face)
7011 [USE_MOTIF]: New.
7012 (xl_apply_resources, xl_set_menu_resources_from_menu_face)
7013 [USE_LUCID]: New.
7014 (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]: New.
7015 (Qmenu): New.
7016 (syms_of_xfaces): Initialize Qmenu.
7017 (realize_basic_faces): Realize face `menu'.
7018 (resolve_face_name): New.
7019 (lface_from_face_name): Use it.
7020 (Finternal_set_lisp_face_attribute): Ditto.
7021 (Fpixmap_spec_p): Rewritten. Extend doc string.
7022
7023 * xmenu.c (set_frame_menubar, xmenu_show): Call
7024 x_set_menu_resources_from_menu_face.
7025
7026 * dispextern.h (enum face_id): Add MENU_FACE_ID.
7027 (toplevel): Include X11/Intrinsic.h.
7028
6a1aa823
DL
70291999-10-03 Ken'ichi Handa <handa@gnu.org>
7030
7031 * coding.c (DECODE_CHARACTER_ASCII): Decode ASCII invocated to GR
7032 correctly.
7033
26901792
DL
70341999-09-30 Kenichi Handa <handa@etl.go.jp>
7035
7036 * category.c (modify_lower_category_set): Set default value of
7037 TABLE correctly.
7038
7039 * minibuf.c (Fminibuffer_complete_word): Calculate string byte
7040 size correctly.
7041
70421999-09-29 Gerd Moellmann <gerd@gnu.org>
7043
7044 * editfns.c (Fpropertize): Renamed from Fproperties.
7045
70461999-09-29 Gerd Moellmann <gerd@gnu.org>
7047
7048 * xdisp.c (resize_mini_window): Do nothing if frame is an X
7049 frame that hasn't been initialized yet.
7050
83c8f461 70511999-09-28 Richard M. Stallman <rms@gnu.org>
a04f1a93
PR
7052
7053 * keymap.c (Fsingle_key_description): Make tem big enough.
7054 (describe_buffer_bindings): Make buf big enough.
7055
83c8f461 70561999-09-27 Richard M. Stallman <rms@gnu.org>
d177c583
PR
7057
7058 * intervals.c (get_local_map): Use indirect_function,
7059 not Findirect_function.
7060
26901792
DL
70611999-09-27 Dave Love <fx@gnu.org>
7062
7063 * cm.h: Remove unneeded declaration of ospeed.
7064
70651999-09-26 Gerd Moellmann <gerd@gnu.org>
7066
7067 * lisp.h (toplevel): Add prototype for
7068 next_single_char_property_change.
7069
7070 * textprop.c (next_single_char_property_change): New.
7071
7072 * xdisp.c (display_prop_end, invisible_text_between_p): Use
7073 next_single_char_property_change.
7074
70751999-09-25 Gerd Moellmann <gerd@gnu.org>
7076
7077 * editfns.c (Fproperties): New.
7078 (syms_of_editfns): Defsubr it.
7079
7080 * xfns.c (lookup_image): Set image's timestamp because it's
7081 used when we look it up.
7082
70831999-09-23 Gerd Moellmann <gerd@gnu.org>
7084
7085 * window.c (enlarge_window): Add window parameter instead of using
7086 selected_window.
7087 (Fdisplay_buffer): Call it with window parameter instead of
7088 setting selected_window.
7089 (Fenlarge_window, Fshrink_window): Ditto.
7090 (shrink_mini_window): If there is no recorded height and position
7091 info, resize mini-window to height 1.
7092
7093 * xfns.c (image_error): Use add_to_log.
7094
7095 * xfaces.c (load_pixmap): Call add_to_log without frame parameter.
7096 (load_face_font_or_fontset, load_color,
7097 merge_face_vector_with_property): Ditto.
7098
7099 * dispextern.h: Add prototype for add_to_log.
7100
7101 * xfaces.c (add_to_log): Move to xdisp.c.
7102
7103 * xdisp.c (add_to_log): Moved from xfaces.c. Remove frame
7104 parameter.
7105
71061999-09-23 Gerd Moellmann <gerd@gnu.org>
7107
7108 * xterm.c (XTread_socket) <MotionNotify>: Change #ifdef
7109 USE_X_TOOLKIT to #ifdef USE_TOOLKIT_SCROLL_BARS.
7110
7111 * xdisp.c (resize_mini_window): Use grow_mini_window and
7112 shrink_mini_window.
7113
7114 * window.c (window_min_size): Add parameter ignore_fixed_p.
7115 (change_window_height): Call window_min_size with new parameter.
7116 (shrink_window_lowest_first, save_restore_orig_size,
7117 grow_mini_window, shrink_mini_window): New.
7118 (make_window, replace_window): Initialize orig_top and
7119 orig_height.
7120 (enlarge_window): Renamed from change_window_height. Make it
7121 static.
7122 (Fdisplay_buffer, Fenlage_window, Fshrink_window): Call
7123 enlarge_window instead of change_window_height.
7124
7125 * window.h (struct window): New members orig_top, orig_height.
7126 (toplevel): Add prototypes for grow_mini_window and
7127 shrink_mini_window. Remove prototype for change_window_height.
7128
71291999-09-21 Eli Zaretskii <eliz@gnu.org>
7130
7131 * frame.c (frame_name_fnn_p): Fix previous change.
7132
71331999-09-20 Gerd Moellmann <gerd@gnu.org>
7134
7135 * minibuf.c (toplevel): Move include of stdio.h to other includes.
7136
7137 * dispnew.c (direct_output_for_insert): Cast arguments to
7138 safe_bcopy to char *.
7139
7140 * lread.c (readchar): Remove unused variables.
7141 (read_filtered_event, read1, Fmapatoms): Ditto.
7142 (toplevel): Include intervals.h.
7143
7144 * eval.c (Fsignal): Remove unused variables.
7145 (Fcommandp, do_autoload): Ditto.
7146
7147 * lisp.h: Add prototype for safe_bcopy, fatal.
7148
7149 * editfns.c (init_editfns): Remove unused variables.
7150 (Fgoto_char, Fchar_after, Fformat): Ditto.
7151 (message_text, message_length): Put in #ifndef HAVE_MENUS.
7152
7153 * data.c (find_symbol_value): Remove unused variables.
7154 (Faref, Fstring_to_number): Ditto.
7155 (toplevel): Include stdio.h.
7156 (Fnumber_to_string): Cast XINT to long for %ld.
7157
7158 * casefiddle.c (casify_object): Remove unused variables.
7159 (casify_region): Ditto.
7160
427ec082 7161 * filelock.c (get_boot_time): Put local variable used in
26901792
DL
7162 conditinally compiled section in #ifdef.
7163 (toplevel): Include stdio.h.
7164
7165 * keymap.c (Flookup_key, Faccessible_keymaps, describe_vector,
7166 keys_of_keymap, syms_of_keymap): Remove unused variables.
7167
71681999-09-20 Gerd Moellmann <gerd@gnu.org>
7169
7170 * xdisp.c (sync_frame_with_window_matrix_rows): Disable frame rows
7171 whose corresponding window rows have been disabled in
7172 try_window_id.
7173
71741999-09-20 Gerd Moellmann <gerd@gnu.org>
7175
7176 * xdisp.c (compute_window_start_on_continuation_line): Handle case
7177 that window start is out of range.
7178 (handle_display_prop, handle_single_display_prop): Replace
7179 marginal area specifications like `left-margin' with `(margin
7180 left-margin)'.
7181 (Qmargin): New.
7182 (syms_of_xdisp): Initialize Qmargin.
7183
71841999-09-19 Gerd Moellmann <gerd@gnu.org>
7185
7186 * syntax.c (update_syntax_table, find_defun_start, back_comment,
7187 describe_syntax, skip_chars): Remove unused variables.
7188 (back_comment, forw_comment): Add braces to if-statement with
7189 if-else as dependent statement.
7190
7191 * process.c (list_processes_1): Remove unused variables.
7192 (Fopen_network_stream, create_process): Add parentheses to
7193 conditional expressions.
7194 (create_process): Put declaration of sigchld in #if 0.
7195 (Fopen_network_stream): Removed unused variables.
7196 (Fopen_network_stream, wait_reading_process_input,
7197 wait_reading_process_input, send_process, send_process): Ditto.
7198 (toplevel): Add prototypes for set_waiting_for_input and
7199 keyboard_bit_set.
7200
7201 * abbrev.c (Fexpand_abbrev): Remove unused variables.
7202
7203 * textprop.c (Fset_text_properties): Remove unused variables.
7204 (text_property_list, verify_interval_modification,
7205 interval_has_all_properties): Ditto.
7206
7207 * callproc.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
7208 (Fcall_process): Remove unused variable.
7209
7210 * keyboard.c (Frecursive_edit): Remove unused variable.
7211 (command_loop_1, safe_run_hooks, kbd_buffer_get_event,
7212 timer_check, make_lispy_event, menu_bar_items,
7213 menu_bar_one_keymap, menu_bar_item, parse_menu_item,
7214 parse_tool_bar_item, read_char_x_menu_prompt, read_key_sequence,
7215 kbd_buffer_get_event, make_lispy_event, read_char_x_menu_prompt,
7216 read_key_sequence): Ditto. Fread_key_sequence,
7217 Fread_key_sequence_vector, Fsuspend_emacs): Ditto.
7218 (read_key_sequence) [GOBBLE_FIRST_EVENT]: Put local variables only
7219 used when GOBBLE_FIRST_EVENT is defined in #ifdef
7220 (Fexecute_extended_command): Cast XINT to long for %ld.
7221 (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
7222 (toplevel): Include sys/types.h.
7223
7224 * lisp.h (RETURN_UNGCPRO): Use do-while (0) idiom.
7225 (toplevel): Add prototypes for stuff_char, and
7226 code_convert_string_norecord.
7227
72281999-09-19 Gerd Moellmann <gerd@gnu.org>
7229
7230 * buffer.h: Add prototype for r_re_alloc.
7231
7232 * insdel.c (copy_text): Removed unused variables.
7233 (count_combining_after, count_combining_after, insert_1_both,
7234 insert_from_string_1, insert_from_buffer_1, check_markers): Ditto.
7235 (adjust_after_replace, replace_range): Add parentheses to logical
7236 expressions. Remove unused variables.
7237 (CHECK_BYTE_COMBINING_FOR_INSERT): Add parentheses to logical
7238 expression.
7239
7240 * alloc.c (Fgarbage_collect): Remove unused variable.
7241 (compact_strings): Add parentheses around assignments in
7242 conditional context.
7243 (toplevel): Put declaration of unused function clear_marks
7244 in #if 0 like its definition.
7245
7246 * lisp.h: Add prototype for shrink_regexp_cache,
7247 sweep_weak_hash_tables.
7248
72491999-09-19 Dave Love <fx@gnu.org>
7250
7251 * process.c (Fopen_network_stream): Use strerror, not gai_strerror.
7252
7253 * doc.c (read_bytecode_char): Declare arg.
7254
7255 * lisp.h: Declare Fcurrent_message, Fmake_temp_name,
7256 read_bytecode_char, Fx_hide_busy_cursor, getloadavg.
7257
72581999-09-18 Richard Stallman <rms@gnu.org>
7259
7260 * xdisp.c (echo_area_display): Turn off code that returned
7261 without doing anything when using a terminal frame.
7262
83c8f461 72631999-09-17 Richard M. Stallman <rms@gnu.org>
27271329
PR
7264
7265 * unexelf.c (unexec): Don't get confused by a short section
7266 just before the bss section.
7267
26901792
DL
72681999-09-16 Gerd Moellmann <gerd@gnu.org>
7269
7270 * emacs.c (main): Remove unused variables.
7271 (sort_args, Fkill_emacs, Fkill_emacs): Ditto.
7272
7273 * lisp.h: Add prototype for uninterrupt_malloc, memory_warnings,
7274 init_fileio_once, syms_of_sound, init_xfns, init_fns
7275 init_sound, check_message_stack.
7276
7277 * emacs.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
7278
7279 * intervals.c (rotate_right, rotate_left): Add braces to avoid
7280 ambiguous else warning.
7281 (split_interval_left): Remove unused variables.
7282 (previous_interval, adjust_intervals_for_deletion,
7283 set_point_both, set_point_both, set_intervals_multibyte_1): Ditto.
7284 (icount, idepth, zero_length): Move into #if 0 section below
7285 original position where these are used.
7286
7287 * buffer.h [REL_ALLOC]: Add prototypes for r_alloc and r_alloc_free.
7288
7289 * buffer.c (Fkill_buffer): Remove unused variables.
7290 (Fkill_buffer, overlays_at, overlays_in, recenter_overlay_lists,
7291 fix_overlays_in_range, Fmove_overlay, Fprevious_overlay_change,
7292 init_buffer_once, (syms_of_buffer): Ditto.
7293
7294 * xrdb.c (get_fallback): Remove unused variable.
7295 (x_load_resources): Ditto. Put local variable used for Motif only
7296 in #ifdef USE_MOTIF.
7297
72981999-09-16 Gerd Moellmann <gerd@gnu.org>
7299
7300 * minibuf.c (read_minibuf): Remove unused variables.
7301 (read_minibuf, Fread_buffer, scmp, Fcompleting_read): Ditto.
7302 (do_completion): Move assignment out of conditional context.
7303 (Fdisplay_completion_list): Add parentheses to conditional expression.
7304
7305 * cm.c (toplevel) [HAVE_TERMCAP_H]: Include termcap.h.
7306
7307 * lisp.h: Add prototype for no_switch_window.
7308
7309 * window.c (Fset_window_buffer): Remove unused variables.
7310 (Fset_window_margins): Ditto.
7311
7312 * xdisp.c (resize_mini_window): Temporarily set the selected
7313 window's or Vminibuf_scroll_window's height to "fixed" around
7314 the call the change_window_height.
7315
7316 * window.c (window_fixed_size_p): Check window's height_fixed_p
7317 flag.
7318
7319 * window.h (struct window): New member height_fixed_p.
7320
7321 * dispnew.c (direct_output_forward_char): Don't use this method
7322 if showing a message or a message was just cleared because we
7323 might need to resize the mini-window.
7324
73251999-09-16 Gerd Moellmann <gerd@gnu.org>
7326
7327 * frame.c (Fdelete_frame): Correct local variable pointing to
7328 selected frame after selecting new frame.
7329
73301999-09-15 Richard Stallman <rms@gnu.org>
7331
7332 * puresize.h (BASE_PURESIZE): Increase to 525000.
7333
7334 * filelock.c (Vtemporary_file_directory): New variable.
7335 (syms_of_filelock): Set up Lisp variable.
7336
73371999-09-15 Gerd Moellmann <gerd@gnu.org>
7338
7339 * term.c (OUTPUT_IF, OUTPUT1_IF): Use do-while.
7340 (encode_terminal_code): Remove unused variables.
7341 (turn_off_face): Ditto.
7342 (toplevel): Include termcap.h if HAVE_TERMCAP_H.
7343
7344 * dispnew.c (update_frame_line): If writing whole desired line,
7345 don't clear to end of line if already at the end.
7346
73471999-09-15 Gerd Moellmann <gerd@gnu.org>
7348
7349 * xdisp.c (resize_mini_window): Don't report changed window
7350 height if it actually hasn't changed.
7351
427ec082 7352 * widget.c (set_frame_size, EmacsFrameSetCharSize): Remove
26901792
DL
7353 unused variables.
7354 (mark_shell_size_user_specified): Put in #if 0 because not used.
7355 (create_frame_gcs): Put in #if 0 because currently unused.
7356 (first_frame_p): Ditto.
7357
7358 * xmenu.c (single_menu_item, Fx_popup_menu, Fx_popup_menu,
7359 single_submenu, update_frame_menubar, set_frame_menubar,
7360 free_frame_menubar, xmenu_show, xdialog_show): Remove unused
7361 variables.
7362
7363 * print.c (PRINTFULLP): Removed because it is no longer used and
7364 is misleading.
7365 (Ferror_message_string): Remove unused variables.
7366 (print_object): Cast argument of sprintf to long for `%ld'
7367 specifier. Remove unused variable.
7368
73691999-09-14 Gerd Moellmann <gerd@gnu.org>
7370
7371 * sound.c (Fplay_sound): Remove usused variables.
7372 (be2hs): Put in #if 0 because it's currently not used.
7373
73741999-09-14 Ken Raeburn <raeburn@gnu.org>
7375
7376 * print.c (Ferror_message_string, print_error_message,
7377 print_object): Use XCAR, XCDR and XFLOAT_DATA instead of explicit
7378 member access.
7379
73801999-09-14 Gerd Moellmann <gerd@gnu.org>
7381
7382 * frame.h (CHECK_FRAME, CHECK_LIVE_FRAME): Put code in do-while.
7383
7384 * frame.c (Fnext_frame): Remove unused variable(s).
7385 (Fprevious_frame, Fmouse_pixel_position, frame_name_fnn_p): Ditto.
7386 (store_frame_param): Add parentheses to conditional expression.
7387 (Fmodify_frame_parameters): Remove unused variables.
7388 (Fmodify_frame_parameters, Fset_frame_size, Fset_frame_position):
7389 Ditto.
7390
7391 * xfns.c (x_set_background_color): Remove unused variable(s).
7392 (x_set_border_pixel): Ditto.
7393 (x_set_menu_bar_lines): Put local variable used only for
7394 non-toolkit case in #ifdef/#endif.
7395 (x_figure_window_size): Remove unused variable(s).
427ec082 7396 (x_figure_window_size, x_window, lookup_image,
26901792
DL
7397 xbm_read_bitmap_file_data, x_build_heuristic_mask, pbm_load,
7398 png_load, jpeg_load, gif_load, x_create_tip_frame,
7399 x_create_tip_frame, Fx_show_tip, x_set_border_pixel): Ditto.
7400
7401 * xterm.c (x_scroll_bar_handle_click): Compile only if
7402 not USE_TOOLKIT_SCROLL_BARS.
7403 (x_scroll_bar_set_handle, x_scroll_bar_note_movement): Ditto.
7404
7405 * dispextern.h: Add prototypes for gamma_correct and
7406 x_kill_gs_process.
7407
7408 * xterm.c (x_produce_glyphs): Remove unused variable(s).
7409 (x_alloc_nearest_color_for_widget, note_tool_bar_highlight,
7410 x_set_toolkit_scroll_bar_thumb): Ditto.
7411 (x_scroll_bar_create): Move local variable to the
7412 conditionally compiled section of code where it is used.
7413 (x_scroll_bar_create): Remove unused variable(s).
7414 (x_scroll_bar_remove, XTread_socket): Ditto.
7415 (XTread_socket) <ConfigureNotify>: Move variables used for
7416 non-toolkit case into conditionally compiled section of code.
7417
7418 * window.h (freeze_window_starts): Fix typo in prototype.
7419
7420 * xdisp.c (display_echo_area_1, try_window_id): Remove unused
7421 variable(s).
7422
7423 * lisp.h: Add prototype for debug_print.
7424
7425 * dispextern.h (xassert) [GLYPH_DEBUG]: Change definition
7426 to use do-while.
7427
7428 * fns.c (SXHASH_COMBINE): Add missing parentheses.
7429 (Fchar_table_range, Fset_char_table_default, mapcar1,
7430 Fyes_or_no_p, sweep_weak_hash_tables): Remove unused variable(s).
7431
7432 * lisp.h: Add prototype for getloadavg.
7433
74341999-09-14 Andreas Schwab <schwab@gnu.org>
7435
7436 * process.c (Fopen_network_stream): Avoid socket decriptor leak.
7437
7438 * lisp.h: Declare close_file_unwind.
7439
74401999-09-14 Richard Stallman <rms@gnu.org>
7441
7442 * filelock.c (get_boot_time): Make the temp name in the proper dir.
7443
74441999-09-13 Gerd Moellmann <gerd@gnu.org>
7445
7446 * xdisp.c (redisplay_window): Make sure start_at_line_beg
7447 is always set correctly.
7448
74491999-09-13 Dave Love <fx@gnu.org>
7450
7451 * xdisp.c (move_it_in_display_line_to): Make type consistent with
7452 declaration.
7453
74541999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
7455
7456 * xdisp.c (QCfile): Move here from xfns.c.
7457 (syms_of_xdisp): Initialize it.
7458 (message2_nolog): Change for Lisp_Object selected_frame.
7459 (message3_nolog, message_with_string, message,
7460 setup_echo_area_for_printing, truncate_echo_area,
7461 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
7462
74631999-09-13 Dave Love <fx@gnu.org>
7464
7465 * xterm.c: Don't continue #define args for benefit of old cc.
7466 (xt_action_hook): Indent #error for benefit of K&R cc.
7467
74681999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
7469
7470 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
7471 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
7472 (XRINGBELL): Removed.
7473
74741999-09-13 Dave Love <fx@gnu.org>
7475
7476 * xfns.c (x_put_x_image): Make type consistent with declaration.
7477
7478 * fns.c (Fmake_hash_table): Fix string continuation.
7479
74801999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
7481
7482 * xfns.c (QCfile): Moved to xdisp.c.
7483 (syms_of_xfns): Don't initialize QCfile.
7484 (check_x_frame): Change for Lisp_Object selected_frame.
7485 (check_x_display_info, x_get_resource_string): Ditto.
7486
74871999-09-13 Gerd Moellmann <gerd@gnu.org>
7488
7489 * minibuf.c (choose_minibuf_frame): Don't try to set the
7490 mini-buffer window's buffer, if the buffer is invalid.
7491
7492 * xfns.c (QCfile): Moved to xdisp.c.
7493 (syms_of_xfns): Don't initialize QCfile.
7494
7495 * xdisp.c (QCfile): Move here from xfns.c.
7496 (syms_of_xdisp): Initialize it.
7497
7498 * lisp.h (selected_frame): Add external declaration.
7499
7500 * xselect.c (x_own_selection): Change for Lisp_Object selected_frame.
7501 (Fx_store_cut_buffer_internal): Ditto.
7502 (Fx_rotate_cut_buffers_internal): Ditto.
7503
7504 * xfaces.c (frame_or_selected_frame): Change for Lisp_Object
7505 selected_frame.
7506 (Finternal_set_lisp_face_attribute): Ditto.
7507 (Finternal_get_lisp_face_attribute): Ditto.
7508 (Finternal_lisp_face_empty_p): Ditto.
7509 (Fdump_face): Ditto.
7510
7511 * term.c (OUTPUT): Change for Lisp_Object selected_frame.
7512 (OUTPUT_IF, ring_bell, set_terminal_modes, reset_terminal_modes,
7513 set_terminal_window, set_scroll_region, reassert_line_highlight,
7514 change_line_highlight, cursor_to, raw_cursor_to, clear_to_end,
7515 clear_end_of_line, clear_end_of_line_raw, clear_end_of_line_raw,
7516 encode_terminal_code, write_glyphs, term_init): Ditto.
7517
7518 * sysdep.c (reset_sys_modes): Change for Lisp_Object selected_frame.
7519 (kbd_input_ast, read_input_waiting): Ditto.
7520
7521 * minibuf.c (choose_minibuf_frame): Change for Lisp_Object
7522 selected_frame.
7523 (read_minibuf): Ditto.
7524
7525 * keyboard.c (command_loop_1): Change for Lisp_Object
7526 selected_frame.
7527 (cmd_error_internal, command_loop_1, read_char,
7528 kbd_buffer_get_event, read_avail_input,
7529 read_char_minibuf_menu_prompt, read_key_sequence, Fsuspend_emacs,
7530 interrupt_signal, quit_throw_to_read_char): Ditto.
7531
7532 * fontset.c (Ffont_info): Change for Lisp_Object selected_frame.
7533 (Ffontset_info): DItto.
7534
7535 * emacs.c (handle_USR1_signal): Change for Lisp_Object selected_frame.
7536
7537 * dispnew.c (selected_frame): Make it a Lisp_Object.
7538 (adjust_frame_glyphs_initially): Change for Lisp_Object selected_frame.
7539 (direct_output_for_insert, direct_output_forward_char,
7540 init_display): Ditto.
7541
7542 * data.c (swap_in_symval_forwarding): Change for Lisp_Object
7543 selected_frame.
7544 (set_internal): Ditto.
7545
7546 * buffer.c (Fother_buffer): Change for Lisp_Object selected_frame.
7547 (record_buffer): Ditto.
7548
7549 * frame.c (Fmake_terminal_frame): Use SELECTED_FRAME.
7550 (do_switch_frame): Change for Lisp_Object selected_frame.
7551 (Fselected_frame): Ditto.
7552 (Fframe_first_window): Use SELECTED_FRAME.
7553 (Fframe_root_window): Change for Lisp_Object selected_frame.
7554 (Fframe_selected_window, Fset_frame_selected_window, Fnext_frame,
7555 Fprevious_frame, other_visible_frames, Fdelete_frame,
7556 Fmouse_position, Fmouse_pixel_position, Fmake_frame_visible,
7557 Fmake_frame_invisible, Ficonify_frame, Fraise_frame, Flower_frame,
7558 Fframe_parameters, Fmodify_frame_parameters, Fframe_char_height,
7559 Fframe_char_width, Fframe_pixel_height, Fframe_pixel_width,
7560 Fset_frame_height, Fset_frame_width): Ditto.
7561
75621999-09-13 Gerd Moellmann <gerd@gnu.org>
7563
7564 * xdisp.c (message2_nolog): Change for Lisp_Object selected_frame.
7565 (message3_nolog, message_with_string, message,
7566 setup_echo_area_for_printing, truncate_echo_area,
7567 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
7568
7569 * xmenu.c (Fx_popup_menu): Change for Lisp_Object selected_frame.
7570 (Fx_popup_dialog): Ditto.
7571
7572 * xfns.c (check_x_frame): Change for Lisp_Object selected_frame.
7573 (check_x_display_info, x_get_resource_string): Ditto.
7574
7575 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
7576 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
7577 (XRINGBELL): Removed.
7578
7579 * window.c (Fminibuffer_window): Change for Lisp_Object
7580 selected_frame.
7581 (Fwindow_at, Fprevious_window, window_loop, select_window_1,
7582 display_buffer_1, Fdisplay_buffer, temp_output_buffer_show,
7583 Fcurrent_window_configuration, init_window_once): Ditto.
7584
7585 * frame.h (SELECTED_FRAME): New.
7586
75871999-09-12 Ken Raeburn <raeburn@gnu.org>
7588
7589 * category.c (word_boundary_p): Use XCAR and XCDR.
7590 * ccl.c (ccl_driver, resolve_symbol_ccl_program,
7591 Fregister_code_conversion_map): Likewise.
7592 * coding.c (setup_coding_system, detect_coding_system,
7593 Ffind_operation_coding_system, Fset_coding_priority_internal):
7594 Likewise.
7595 * doc.c (get_doc_string, Fdocumentation,
7596 store_function_docstring): Likewise.
7597 * editfns.c (save_restriction_restore): Likewise.
7598 * eval.c (Fcond, Fmacroexpand, Fcondition_case, wants_debugger,
7599 skip_debugger, find_handler_clause, Fautoload, Fapply,
7600 run_hook_with_args, run_hook_list_with_args, Ffetch_bytecode):
7601 Likewise.
7602 * fileio.c (Ffind_file_name_handler, Finsert_file_contents,
7603 Fwrite_region, do_auto_save_unwind, Fdo_auto_save,
7604 Fread_file_name): Likewise.
7605 * filelock.c (unlock_all_files): Likewise.
7606 * insdel.c (Fcombine_after_change_execute): Likewise.
7607 * intervals.c (adjust_intervals_for_insertion): Likewise.
7608 * keymap.c (get_keymap_1, Fkeymap_parent, Fset_keymap_parent,
7609 Fset_keymap_parent, fix_submap_inheritance, access_keymap,
7610 store_in_keymap, Fcopy_keymap, define_as_prefix,
7611 current_minor_maps, Faccessible_keymaps,
7612 accessible_keymaps_char_table, Fkey_description,
7613 Fwhere_is_internal, where_is_internal_2, where_is_internal_1,
7614 describe_buffer_bindings, describe_map_tree, shadow_lookup,
7615 describe_map): Likewise.
7616 * lread.c (Fload, load_unwind, close_load_descs, read_vector,
7617 read_list, init_lread): Likewise.
7618 * search.c (Fmatch_data): Likewise.
7619 * sunfns.c (Fsun_menu_internal): Likewise.
7620 * syntax.c (describe_syntax): Likewise.
7621 * undo.c (record_insert, record_delete, Fundo_boundary,
7622 truncate_undo_list): Likewise.
7623 * vmsproc.c (child_sig): Likewise.
7624
7625 * editfns.c (Fformat): Use XFLOAT_DATA.
7626
76271999-09-12 Gerd Moellmann <gerd@gnu.org>
7628
7629 * keyboard.c (command_loop_1): Resize mini-window to the
7630 exact size of a message displayed, if any.
7631
7632 * xdisp.c (resize_mini_window): Add parameter exact_p. Resize
7633 to exact size if exact_p is non-zero.
7634 (display_echo_area_1): Call resize_mini_window with
7635 new parameter.
7636 (redisplay_internal): Ditto.
7637 (resize_echo_area_axactly): New.
7638
7639 * minibuf.c (read_minibuf_unwind): Call resize_mini_window with
7640 new parameter.
7641
7642 * dispextern.h: Change prototype of resize_mini_window.
7643 Add prototype for resize_echo_area_axactly.
7644
7645 * xfaces.c (Fx_family_fonts): Replaces Fx_font_list.
7646 (syms_of_xfaces): Defsubr accordingly.
7647
7648 * xdisp.c (hscroll_window_tree): Choose cursor row from
7649 desired or current matrix.
7650 (redisplay_internal): Hscroll before updating.
7651
76521999-09-12 Gerd Moellmann <gerd@gnu.org>
7653
7654 * syntax.c (Fforward_word): Use prompt_end_charpos instead
7655 of minibuffer_prompt_length.
7656
7657 * minibuf.c (read_minibuf): Use prompt_end_charpos instead
7658 of minibuffer_prompt_length.
7659 (read_minibuf_unwind): Ditto.
7660 (Fminibuffer_complete_and_exit): Ditto.
7661 (Fminibuffer_complete_word): Ditto.
7662 (Fminibuffer_prompt_end): Ditto.
7663
7664 * editfns.c (Fbuffer_string): Use prompt_end_charpos instead
7665 of minibuffer_prompt_length.
7666 (Fline_beginning_position): Ditto.
7667
7668 * buffer.c (Fget_buffer_create): Use prompt_end_charpos instead
7669 of minibuffer_prompt_length.
7670 (Fmake_indirect_buffer): Ditto.
7671 (Fkill_buffer): Ditto.
7672 (Ferase_buffer): Ditto.
7673
7674 * buffer.h (prompt_end_charpos): Replaces
7675 minibuffer_prompt_length.
7676
427ec082 7677 * minibuf.c (read_minibuf): Return mini-buffer contents
26901792
DL
7678 without the prompt.
7679
7680 * editfns.c (make_buffer_string_both): Take out the code
7681 to handle mini-buffer prompts.
7682 (Fbuffer_string): Handle the prompt here, instead.
7683
7684 * xfaces.c (lface_from_face_name): Resolve face aliases.
7685 (Qmode_line): Replaces Qmodeline.
7686 (realize_basic_faces): Use Qmode_line.
7687 (syms_of_xfaces): Initialize Qmode_line.
7688
76891999-09-12 Gerd Moellmann <gerd@gnu.org>
7690
7691 * minibuf.c (read_minibuf): Set minibuf_prompt_width to the
7692 current column after inserting prompt.
7693 (Fminibuffer_prompt_width): Return minibuf_prompt_width.
7694
7695 * xfaces.c (Qframe_update_face_colors): New.
7696 (syms_of_xfaces): Initialize call.
7697 (update_face_from_frame_parameter): Call that function when
7698 the frame's background changes.
7699
77001999-09-12 Richard Stallman <rms@gnu.org>
7701
7702 * insdel.c (del_range_1): Don't treat minibuffer prompt specially.
7703
77041999-09-12 Ken Raeburn <raeburn@gnu.org>
7705
7706 * alloc.c (Fcons, pure_cons, Fpurecopy, Fgarbage_collect,
7707 mark_object, mark_buffer): Use XCAR and XCDR.
7708 * bytecode.c (Fbyte_code): Likewise.
7709 * callint.c (Fcall_interactively, Fprefix_numeric_value):
7710 Likewise.
7711 * callproc.c (Fcall_process, Fcall_process_region, child_setup,
7712 getenv_internal): Likewise.
7713 * dired.c (file_name_completion): Likewise.
7714 * fns.c (Fsafe_length, concat, Fcopy_alist, Fmember, Fmemq, Fassq,
7715 assq_no_quit, Fassoc, Frassq, Frassoc, Fdelq, Fdelete, Freverse,
7716 Fplist_get, Fplist_put, internal_equal, mapcar1): Likewise.
7717 * indent.c (Fcompute_motion): Likewise.
7718 * process.c (decode_status, Fprocess_status, Fprocess_exit_status,
7719 list_processes_1, Fstart_process, Fopen_network_stream,
7720 wait_reading_process_input, read_process_output_call,
7721 kill_buffer_processes, sigchld_handler, exec_sentinel_unwind,
7722 status_notify, wait_reading_process_input): Likewise.
7723 * textprop.c (PLIST_ELT_P, property_value, set_properties,
7724 extend_property_ranges): Likewise.
7725 * w32faces.c (Fpixmap_spec_p, merge_face_list): Likewise.
7726 * w32fns.c (x_window_to_frame, x_set_frame_parameters,
7727 x_report_frame_params, x_set_cursor_type, x_icon_type,
7728 x_figure_window_size, Fx_create_frame, w32_load_system_font,
7729 w32_load_font, enum_font_cb2, w32_list_bdf_fonts, w32_list_fonts,
7730 w32_list_synthesized_fonts, w32_find_ccl_program, Fx_list_fonts,
7731 Fw32_find_bdf_fonts, w32_find_bdf_fonts_in_dir,
7732 x_display_info_for_name, Fx_display_list): Likewise.
7733 * w32menu.c (menubar_id_to_frame, single_keymap_panes,
7734 Fx_popup_menu, Fx_popup_dialog): Likewise.
7735 * w32proc.c (Fw32_set_keyboard_layout): Likewise.
7736 * w32term.c (x_window_to_scroll_bar, w32_read_socket,
7737 w32_term_init, x_delete_display): Likewise.
7738 * xfns.c (x_window_to_frame, x_any_window_to_frame,
7739 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
7740 x_top_window_to_frame, x_set_frame_parameters,
7741 x_report_frame_params, x_set_cursor_type, x_icon_type,
7742 x_figure_window_size, Fx_create_frame, x_display_info_for_name,
7743 Fx_display_list, x_create_tip_frame): Likewise.
7744 * xmenu.c (menubar_id_to_frame, single_keymap_panes,
7745 Fx_popup_menu, Fx_popup_dialog): Likewise.
7746 * xselect.c (x_own_selection, x_get_local_selection,
7747 x_handle_selection_request, x_handle_selection_clear,
7748 x_clear_frame_selections, wait_for_property_change_unwind,
7749 wait_for_property_change, x_handle_property_notify,
7750 copy_multiple_data, x_get_foreign_selection,
7751 lisp_data_to_selection_data, clean_local_selection_data,
7752 x_handle_selection_notify, Fx_get_selection_internal,
7753 x_disown_buffer_selections): Likewise.
7754 * xterm.c (x_window_to_scroll_bar, XTread_socket, x_list_fonts,
7755 x_load_font, x_find_ccl_program, x_term_init, x_delete_display):
7756 Likewise.
7757
7758 * alloc.c (make_float, make_pure_float, Fpurecopy): Use
7759 XFLOAT_DATA.
7760 * bytecode.c (Fbyte_code): Likewise.
7761 * floatfns.c (extract_float, Fexpt, Fabs, rounding_driver,
7762 fmod_float): Likewise.
7763
77641999-09-11 Richard Stallman <rms@gnu.org>
7765
7766 * xdisp.c (run_window_scroll_functions): If hook functions switch
7767 buffers, switch back after.
7768
77691999-09-11 Ken Raeburn <raeburn@gnu.org>
7770
7771 * charset.h (GET_TRANSLATION_TABLE): Use XCDR.
7772 * frame.h (FOR_EACH_FRAME): Use XCAR and XCDR.
7773 (PIXEL_X_FROM_CANON_X, PIXEL_Y_FROM_CANON_Y): Use XFLOAT_DATA.
7774 * keyboard.h (EVENT_HEAD, EVENT_START, EVENT_END, POSN_WINDOW,
7775 POSN_BUFFER_POSN, POSN_WINDOW_POSN, POSN_TIMESTAMP): Use XCAR and
7776 XCDR.
7777 * syntax.h (SYNTAX, SYNTAX_WITH_FLAGS, SYNTAX_MATCH): Use XCAR and
7778 XCDR.
7779
77801999-09-10 Richard Stallman <rms@gnu.org>
7781
7782 * xterm.c (XTread_socket): In XSetInputFocus, use RevertToParent,
7783 not RevertToPointerRoot.
7784 (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
7785 Fix the code to clear around the scroll bar.
7786
77871999-09-10 Keisuke Nishida <kxn30@po.cwru.edu>
7788
7789 * print.c: Support print-circle and related features.
7790 (Vprint_gensym_alist): Removed.
7791 (Vprint_circle, Vprint_continuous_numbering, print_number_index
7792 Vprint_number_table): New variables.
7793 (PRINT_NUMBER_OBJECT, PRINT_NUMBER_STATUS): New macros.
7794 (PRINTPREPARE, PRINTFINISH): Don't set Vprint_gensym_alist.
7795 (print, print_preprocess, print_preprocess_string, print_object):
7796 New/modified functions with print-circle feature. Use
7797 Vprint_number_table instead of Vprint_gensym_alist for print-gensym.
7798 (syms_of_print): Defined new Lisp variables `print-circle',
7799 `print-continuous-numbering', `print-number-table'.
7800
78011999-09-10 Gerd Moellmann <gerd@gnu.org>
7802
7803 * xfns.c (x_build_heuristic_mask): Accept a list `(R G B)'
7804 as background color specification instead of an integer.
7805 (image-cache-eviction-delay): Replaces image-eviction-seconds.
7806 (Vimage_cache_eviction_delay): Replaces Vimage_eviction_seconds.
7807 (clear_image_cache, syms_of_xfns): Use it.
7808 (Qpostscript): Replaces Qghostscript.
7809 (gs_type): Use it.
7810 (gs_image_p): Ditto.
7811 (syms_of_xfns): Initialize Qpostscript.
7812
78131999-09-10 Richard Stallman <rms@gnu.org>
7814
7815 * buffer.c (Ferase_buffer): Don't erase the minibuffer prompt.
7816
78171999-09-09 Richard Stallman <rms@gnu.org>
7818
7819 * editfns.c (Fline_beginning_position): Handle minibuffer prompt here.
7820
7821 * cmds.c (Fbeginning_of_line): Don't handle minibuffer prompt here.
7822
78231999-09-09 Gerd Moellmann <gerd@gnu.org>
7824
7825 * fns.c (Fmakehash): Accept just one optional argument TEST.
7826
7827 * xfns.c (QCindex): New.
7828 (syms_of_xfns): Initialize QCindex.
7829 (gif_load): Use it instead of `:image'.
7830
78311999-09-09 Richard Stallman <rms@gnu.org>
7832
7833 * fileio.c (Fwrite_region): Finish renaming CONFIRM to MUSTBENEW.
7834 (Fwrite_region) [DOS_NT]: Handle `excl' here too.
7835
78361999-09-08 Gerd Moellmann <gerd@gnu.org>
7837
7838 * xdisp.c (Qwhen): Replaces QCwhen.
7839 (syms_of_xdisp): Initialized it instead of QCwhen.
7840 (handle_single_display_prop): Use it instead of QCwhen.
7841
78421999-09-08 Ken'ichi Handa <handa@gnu.org>
7843
7844 * charset.c (translate_char): Reset MSBs of arguments of
7845 MAKE_CHAR.
7846 (CHAR_COMPONENTS_VALID_P): Fix for ASCII.
7847
78481999-09-08 Lars Magne Ingebrigtsen <larsi@gnus.org>
7849
7850 * editfns.c (Fbufsize): Accept an extra BUFFER parameter.
7851
7852 * fns.c (Fbase64_decode_region): Don't place point outside of the
7853 current accessible portion.
7854
78551999-09-07 Richard Stallman <rms@gnu.org>
7856
7857 * keymap.c (fix_submap_inheritance): Do nothing if the proper
7858 parent is an ancestor of SUBMAP; otherwise, add it as the
7859 ultimate ancestor.
7860
78611999-09-07 Gerd Moellmann <gerd@gnu.org>
7862
7863 * xdisp.c (handle_single_display_prop): Change conditional
7864 display property to `:when FORM . VALUE'.
7865
78661999-09-07 Richard Stallman <rms@gnu.org>
7867
7868 * fileio.c (Fwrite_region): Doc fix.
7869
78701999-09-07 Stefan Monnier <monnier@cs.yale.edu>
7871
7872 * fileio.c (Qexcl): New variable.
7873 (report_file_error): Handle EEXIST specially.
7874 (Fwrite_region): Special handling for CONFIRM = `excl'.
7875 (syms_of_fileio): Initialize Qexcl.
7876
78771999-09-07 Gerd Moellmann <gerd@gnu.org>
7878
7879 * xfns.c (x_set_foreground_color): Call
7880 update_face_from_frame_parameter.
7881 (x_set_background_color): Ditto.
7882 (x_set_mouse_color): Ditto.
7883 (x_set_cursor_color): Ditto.
7884 (x_set_border_color): Ditto.
7885 (x_set_scroll_bar_foreground): Ditto.
7886 (x_set_scroll_bar_background): Ditto.
7887
7888 * xfaces.c (recompute_basic_faces): Clear face cache.
7889 (Finternal_set_lisp_face_attribute): Modify frame parameters
7890 if attributes of certain faces are changed.
7891 (update_face_from_frame_parameter): New.
7892
7893 * xfaces.c (realize_basic_faces): Realize new basic faces.
7894
7895 * dispextern.h (SCROLL_BAR_FACE_ID, BORDER_FACE_ID,
7896 CURSOR_FACE_ID, MOUSE_FACE_ID): New.
7897
7898 * xfaces.c (Qscroll_bar, Qcursor, Qborder, Qmouse): New.
7899 (syms_of_xfaces): Intialize new symbols.
7900
7901 * fns.c (Fmakehash): Take one argument, test, make all the
7902 rest keyword arguments.
7903
7904 * window.c (Fset_window_margins): Make window the first argument.
7905 (set_window_buffer): Call Fset_window_margins with window as first
7906 argument.
7907
79081999-09-07 Gerd Moellmann <gerd@gnu.org>
7909
7910 * xfaces.c (Qfringe): Replaces Qmargin.
7911
79121999-09-07 Kenichi Handa <handa@etl.go.jp>
7913
7914 * charset.h: Lots of comments fixed.
7915 (PARSE_MULTIBYTE_SEQ): Make it work also for ASCII string.
7916 (STRING_CHAR_AND_CHAR_LENGTH): This macro removed.
7917
7918 * charset.c : Lots of comments fixed.
7919 (SPLIT_MULTIBYTE_SEQ): Make it work also for ASCII string.
7920 (CHAR_COMPONENTS_VALID_P): Name changed from
7921 CHAR_COMPONENT_VALID_P. Caller changed.
7922
79231999-09-06 Richard Stallman <rms@gnu.org>
7924
7925 * insdel.c (syms_of_insdel): Define Lisp variable
7926 inhibit-modification-hooks.
7927
79281999-09-06 Michael Sperber [Mr. Preprocessor] <sperber@informatik.uni-tuebingen.de>
7929
7930 * s/aix4-2.h (ALIGN_DATA_RELOC): Undefined to support new
7931 unexaix.c.
7932
7933 * s/aix3-1.h (ALIGN_DATA_RELOC): Defined to support new unexaix.c.
7934
79351999-09-06 Dave Love <fx@gnu.org>
7936
7937 * unexaix.c: New version incorporating Michael Sperber's changes
7938 from XEmacs. Should solve problems on AIX 4.3.
7939
7940 * lread.c (Vbyte_boolean_vars): New variable.
7941 (defvar_bool, syms_of_lread): Use it.
7942
79431999-09-05 Richard Stallman <rms@gnu.org>
7944
7945 * minibuf.c (read_minibuf): Put all three properties on the
7946 same range, the whole prompt.
7947
79481999-09-05 Gerd Moellmann <gerd@gnu.org>
7949
7950 * sound.c (Qplay_sound_functions): Replaces Qplay_sound_hook.
7951 (Fplay_sound, syms_of_sound): Use it.
7952 (parse_sound): Allow float volume values in the range [0, 1].
7953 (Fplay_sound): Ditto.
7954
7955 * window.c (Fset_window_vscroll): Make window the first argument,
7956 amount to scroll the second. Take non-negative vscroll as
7957 argument.
7958 (Fwindow_vscroll): Return non-negative vscroll.
7959
7960 * xfns.c (Fx_show_tip): Improve documentation.
7961
79621999-09-05 Gerd Moellmann <gerd@gnu.org>
7963
7964 * buffer.c, buffer.h, dispextern.h, dispnew.c, keyboard.c,
7965 window.c, xdisp.c, xfaces.c, xterm.c, keyboard.h: Change
7966 `top-line' and `top_line' to `header-line' and `header_line'.
7967 Likewise for similar spellings.
7968
79691999-09-05 Gerd Moellmann <gerd@gnu.org>
7970
7971 * xdisp.c (row_containing_pos): New.
7972 (try_window_id): Use it.
7973
7974 * alloc.c, dispextern.h, dispnew.c, frame.c, frame.h, keyboard.c,
7975 lisp.h, termhooks.h, window.c xdisp.c, xfaces.c, xfns.c, xterm.c:
7976 Change spelling of `toolbar' to `tool_bar' or `tool-bar'.
7977 Likewise for upper-case etc.
7978
79791999-09-05 Gerd Moellmann <gerd@gnu.org>
7980
7981 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
7982 Fix reference to renamed variable.
7983
79841999-09-04 Gerd Moellmann <gerd@gnu.org>
7985
7986 * window.c (Qwindow_size_fixed): Replaces Qfixed_window_size.
427ec082 7987 (window_fixed_size_p): Use Qwindow_size_fixed instead of
26901792
DL
7988 Qfixed_window_size.
7989 (syms_of_window): Ditto.
7990
7991 * fns.c (Fmakehash): Exchange optional test and size arguments.
7992
79931999-09-03 Gerd Moellmann <gerd@gnu.org>
7994
7995 * xterm.c (XTset_vertical_scroll_bar): Block input when clearing
7996 under newly created scroll bar.
7997 (expose_window): If window is not yet fully initialized, do
7998 nothing. This can happen when toolkit scroll bars are used and a
7999 window is split. Reconfiguring the scroll bars will generate an
8000 expose for a newly created window.
8001
8002 * frame.h (struct frame): New member `gamma'.
8003
8004 * xfns.c: Include math.h. Add extern declaration for atof in case
8005 we don't see one.
8006 (Qscreen_gamma): New.
8007 (struct x_frame_parm_table): Add prototypes, add
8008 x_set_screen_gamma.
8009 (gamma_correct): New function.
8010 (defined_color): Call it.
8011 (x_set_screen_gamma): New.
8012 (x_set_title): Add parameter old_value.
8013 (RES_TYPE_FLOAT): New.
8014 (x_get_arg): Handle RES_TYPE_FLOAT.
8015 (Fx_create_frame): Call x_default_parameter for `screen-gamma'.
8016 (lookup_pixel_color): Change call to x_alloc_nearest_color to
8017 new prototype.
8018 (lookup_rgb_color): Ditto.
8019 (syms_of_xfns): Initialize Qscreen_gamma.
8020
8021 * xterm.c (x_alloc_nearest_color_for_widget) [USE_X_TOOLKIT]:
8022 New. Allocate color for lwlib widgets.
8023 (x_alloc_nearest_color): Change parameter list include the
8024 frame on which to allocate colors. Gamma-correct colors.
8025 (x_alloc_lighter_color): Call x_alloc_lighter_color with new
8026 parameter list.
8027
8028 * xterm.h: Change protorype of x_alloc_nearest_color.
8029
80301999-09-03 Richard Stallman <rms@gnu.org>
8031
8032 * callproc.c: Delete the system-independent include of stdlib.h
8033 (leaving only the one in the WINDOWSNT conditional).
8034
80351999-09-03 Andrew Choi <choi@cs.hku.hk>
8036
8037 * callproc.c (call-process) [macintosh]: Call mac_run_command in
8038 sysdep.c. The Mac code is modeled after the DOS code.
427ec082 8039
26901792
DL
8040 * dispextern.h [macintosh]: Include macterm.h to define substitute X
8041 Window types and macros.
8042
8043 * frame.h: Do nothing if included a second time.
8044 (enum output_method): Add mac_output frame type.
8045 (union output_data): Add new alternative `mac'.
8046 (FRAME_MAC_P): New macro.
427ec082 8047
26901792
DL
8048 * frame.c (Fframep) [macintosh]: Handle mac frame type.
8049 (syms_of_frame_1): Initialize Qmac.
8050 (make_terminal_frame) [macintosh]: Initialize output_data.mac fields.
8051 (Fmake_terminal_frame) [macintosh]: Add an alternate error check.
8052 (Fmodify_frame_parameters) [macintosh]: Call
8053 mac_set_frame_parameter in macterm.c.
427ec082 8054
26901792
DL
8055 * keyboard.c [macintosh]: Set KBD_BUFFER_SIZE to a smaller value
8056 (512) because Mac compilers limit local data of a function to 32K.
427ec082 8057
26901792
DL
8058 * make-docfiles.c: Correctly handle input files with Mac-style
8059 eol's.
427ec082 8060
26901792 8061 * sysdep.c: Define numerous routines to emulate Unix system calls.
427ec082 8062
26901792
DL
8063 * xfaces.c: on MacOS, define the set of colors listed in rgb.txt
8064 file of an X Window environment.
427ec082 8065
26901792
DL
8066 * xfaces.c: on MacOS, define the Lisp functions x-display-color-p,
8067 x-display-grayscale, x-color-defined-p, and x-color-values.
427ec082 8068
26901792
DL
8069 * sysdep.c [macintosh] (stat, fstat, mkdir, rmdir, utime, access)
8070 (open, creat, unlink, read, write, rename, fopen, pause, alarm)
8071 (signal, sleep, gmtime, localtime, ctime, time, index, mktemp)
8072 (getpwuid, getpwnam, dup, dup2, isatty, getgid, getegid, getuid)
8073 (geteuid, getpid, getenv, uname, opendir, closedir, readdir, getwd.):
8074 New functions, replacing POSIX features.
427ec082 8075
26901792
DL
8076 * sysdep.c [macintosh] (Mac2UnixPathname, Unix2MacPathname, CheckAlarm)
8077 (InitMyPasswd, GetTempDirName, mystrchr, mystrtok, mystrcpy):
8078 (InitEmacsPasswdDir, run_mac_command): New subroutines.
8079
8080 * sysdep.c [macintosh] (targetTicks, alarm_signal_func, myPasswdName)
8081 (myPasswd, emacsPasswdDir, emacsPasswd, myPasswdInited, mask)
8082 (myPasswdDir, TempDirName, sys_siglist): New variables.
8083
8084 * sysdep.c [macintosh] (execvp, wait, croak, fork, kill, sigsetmask)
8085 (sigblock, request_sigio, unrequest_sigio, setpgrp, pipe, symlink)
8086 (link, lstat, readlink, umask, chmod, sbrk, fsync, ioctl):
8087 Define empty stubs so Emacs will link.
8088
80891999-09-03 Gerd Moellmann <gerd@gnu.org>
8090
8091 * xdisp.c: Use XCAR and XCDR instead of XCONS.
8092
8093 * window.h: New member frozen_window_start_p.
8094
8095 * window.c (foreach_window, foreach_window_1): New.
8096 (freeze_window_start, freeze_window_starts): New.
8097 (make_window): Initialize frozen_window_start_p.
8098 (replace_window): Ditto.
8099 (Fset_window_point): Remove references to deleted variables.
8100 (Fset_window_start): Ditto.
8101
8102 * xdisp.c (Vresize_mini_config, resize_mini_frame,
8103 resize_mini_initial_height): Removed.
8104 (syms_of_xdisp): Remove references to these variables.
8105 (resize_mini_window): Don't save window configuration, freeze
8106 window starts instead. Enlarge window until displaying an empty
8107 buffer, then shrink it. Make the function externally visible.
8108 (redisplay_window): Treat frozen window start like forced start,
8109 but accept point outside of the window.
8110
8111 * dispextern.h: Add function prototype for resize_mini_window.
8112
8113 * minibuf.c (read_minibuf_unwind): Resize mini-window when
8114 reaching minibuf_level 0.
8115
8116 * lisp.h: Remove extern declarations for variables deleted from
8117 xdisp.c.
8118
8119 * dispnew.c (adjust_frame_glyphs): Remove reference to
8120 Vresize_mini_config.
8121
81221999-09-03 Gerd Moellmann <gerd@gnu.org>
8123
8124 * xfns.c (x_set_scroll_bar_width): Change conditional compilation
8125 to USE_TOOLKIT_SCROLL_BARS.
8126
8127 * xterm.c (x_scroll_bar_create): Don't clear under scroll bar
8128 here.
8129 (XTset_vertical_scroll_bar): Clarify position computations. Clear
8130 under newly created scroll bar. Put toolkit scroll bars in the
8131 middle of the area reserved for the scroll bar.
8132
81331999-09-03 Kenichi Handa <handa@etl.go.jp>
8134
8135 The following changes are for the new handling of mulitbyte
8136 sequence. Now, except for a composite character, no multibyte
8137 character in string/buffer has trailing garbage bytes. For
8138 instance, the length of string "\201\300\300" is now 2, the first
8139 character is Latin-1 A-grave, the second is raw \300.
8140
8141 * charset.h (MAKE_NON_ASCII_CHAR): Handle the case that C1 or C2
8142 are negative.
8143 (MAKE_CHAR): Don't set MSBs of C1 and C2 to 0.
8144 (VALID_MULTIBYTE_CHAR_P): This macro deleted.
8145 (PARSE_COMPOSITE_SEQ): New macro.
8146 (PARSE_CHARACTER_SEQ): New macro.
427ec082 8147 (PARSE_MULTIBYTE_SEQ): New macro.
26901792
DL
8148 (CHAR_PRINTABLE_P): New macro.
8149 (STRING_CHAR): Adjusted for the change of string_to_non_ascii_char.
8150 (STRING_CHAR_AND_LENGTH): Likewise.
8151 (STRING_CHAR_AND_CHAR_LENGTH): Define it as STRING_CHAR_AND_LENGTH.
8152 (INC_POS): Use the macro PARSE_MULTIBYTE_SEQ.
8153 (DEC_POS, BUF_INC_POS, BUF_DEC_POS): Likewise,
8154
8155 * charset.c (SPLIT_COMPOSITE_SEQ): New macro.
8156 (SPLIT_CHARACTER_SEQ): New macro.
8157 (SPLIT_MULTIBYTE_SEQ): New macro.
8158 (CHAR_COMPONENT_VALID_P): New macro.
8159 (non_ascii_char_to_string): Generate a multibyte sequence as far
8160 as possible.
8161 (string_to_non_ascii_char): The 4th arg exclude_tail_garbage is
8162 deleted. Caller changed. Use the macro SPLIT_MULTIBYTE_SEQ.
8163 (split_non_ascii_string): Likewise.
8164 (multibyte_form_length): Use the macro PARSE_MULTIBYTE_SEQ.
8165 (char_printable_p): New function.
8166 (translate_char): Check character by NATNUMP instead of INTEGERP.
8167 (unibyte_char_to_multibyte): Call char_valid_p instead of
8168 VALID_MULTIBYTE_CHAR_P.
8169 (Fmake_char_internal): Check the arguments more rigidly.
8170 (Fcharset_after): Use the macro SPLIT_MULTIBYTE_SEQ.
8171 (char_valid_p): Check the validity by CHAR_COMPONENT_VALID_P.
8172 (Fmultibyte_char_to_unibyte): Check the validity of character by
8173 CHAR_VALID_P.
8174 (chars_in_text): Call multibyte_chars_in_text.
8175 (multibyte_chars_in_text): Use the macro PARSE_MULTIBYTE_SEQ.
8176 (Fcompose_string): Use the macro STRING_CHAR_AND_LENGTH instead of
8177 STRING_CHAR_AND_CHAR_LENGTH (which is obsolete now).
8178
8179 * data.c (Faset): Adjust the way to check byte-combining
8180 possibility for the new handling of multibyte sequence.
8181
8182 * editfns.c (Fsubst_char_in_region): Likewise.
8183
8184 * fns.c (count_combining): Use the macro PARSE_MULTIBYTE_SEQ.
8185 (string_char_to_byte): Likewise.
8186 (string_byte_to_char): Likewise.
8187
8188 * indent.c (MULTIBYTE_BYTES_WIDTH): Delete the 2nd arg C. Use the
8189 macro STRING_CHAR_AND_LENGTH. Caller changed.
8190
8191 * insdel.c (count_combining_composition): New function.
8192 (count_combining_before): Adjust the way to check byte-combining
8193 possibility for the new handling of multibyte sequence. Call
8194 count_combining_composition for a composite character.
8195 (count_combining_after): Likewise.
8196
8197 * print.c (print_string): Use the macro STRING_CHAR_AND_LENGTH.
8198 (print): Likewise.
8199
8200 * dispextern.h (struct it): Change the size of the member
8201 `ctl_chars'.
8202
8203 * xdisp.c (get_next_display_element): Display incomplete multibyte
8204 sequence (e.g. \222\300) by octal form.
8205
82061999-09-02 Gerd Moellmann <gerd@gnu.org>
8207
8208 * xterm.h (VERTICAL_SCROLL_BAR_WIDTH_TRIM): Change from 2 to 0.
8209
8210 * fns.c (Fhash_table_weakness): Replaces Fhash_table_weak.
8211 (cmpfn_eql, sxhash): Use XFLOAT_DATA.
8212
82131999-09-02 Gerd Moellmann <gerd@gnu.org>
8214
8215 * buffer.c (set_buffer_internal): Never set
8216 windows_or_buffers_changed.
8217
8218 * xdisp.c (try_window_id): Reset first_unchanged_at_end_row
8219 if we have displayed to the bottom of the window.
8220
8221 * syntax.c (Fforward_word): Stop at a mini-buffer prompt end
8222 in both directions. Extend documentation.
8223
82241999-09-01 Gerd Moellmann <gerd@gnu.org>
8225
8226 * minibuf.c (read_minibuf): Flush display after setting cursor to
8227 column 0.
8228
82291999-08-31 Gerd Moellmann <gerd@gnu.org>
8230
8231 * s/freebsd.h (__FreeBSD_version): Don't define it if it is
8232 already defined. This avoids a warning from buffer.c.
8233
82341999-08-30 Gerd Moellmann <gerd@gnu.org>
8235
8236 * xterm.h (FRAME_X_FLAGS_AREA_COLS): Define it as the total width
8237 of both margins.
8238 (FRAME_X_FLAGS_AREA_WIDTH): Likewise.
8239 (FRAME_X_LEFT_FLAGS_AREA_WIDTH): New.
8240 (FRAME_X_RIGHT_FLAGS_AREA_WIDTH): New.
8241
8242 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add in FRAME_FLAGS_AREA_COLS
8243 once instead of twice.
8244 (FRAME_LEFT_FLAGS_AREA_WIDTH): New.
8245
8246 * xterm.c: Remove unused bitmaps.
8247 (continued_bits, continuation_bits, overlay_bits): Change images.
8248 (x_draw_vertical_border): Use FRAME_X_RIGHT_FLAGS_AREA_WIDTH
8249 instead of FRAME_X_FLAGS_AREA_WIDTH.
8250 (x_after_update_window_line): Ditto.
8251 (x_draw_bitmap): Likewise.
8252 (x_draw_row_bitmaps): Likewise.
8253 (x_draw_glyph_string_box): Likewise.
8254 (x_draw_glyphs): Likewise.
8255 (x_scroll_run): Likewise.
8256 (expose_window_tree): Likewise.
8257 (note_mode_line_highlight): Likewise.
8258 (XTset_vertical_scroll_bar): Likewise.
8259 (x_clip_to_row): Likewise.
8260 (x_set_window_size): Likewise.
8261
8262 * xfns.c (x_figure_window_size): Use FRAME_FLAGS_AREA_COLS instead
8263 of 2 * that value.
8264
8265 * xdisp.c (window_box_width): Use FRAME_FLAGS_AREA_COLS instead of
8266 2 * that value.
8267 (window_box_left): Use FRAME_LEFT_FLAGS_AREA_WIDTH instead of
8268 FRAME_FLAGS_AREA_WIDTH.
8269
8270 * window.c (coordinates_in_window): Use
8271 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
8272 (window_internal_width): Subtract FRAME_FLAGS_AREA_WIDTH once
8273 instead of twice.
8274
427ec082 8275 * widget.c (set_frame_size): Set flags_area_extra to
26901792
DL
8276 FRAME_FLAGS_AREA_WIDTH instead of 2 * that width.
8277 (EmacsFrameSetCharSize): Ditto.
8278
8279 * dispnew.c (mode_line_string): Add FRAME_LEFT_FLAGS_AREA_WIDTH
8280 instead of FRAME_FLAGS_AREA_WIDTH.
8281
8282 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract
8283 FRAME_FLAGS_AREA_COLS once.
8284 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Add
8285 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
8286
82871999-08-30 Gerd Moellmann <gerd@gnu.org>
8288
8289 * freebsd.h (C_SWITCH_SYSTEM): Added to let configure find headers
8290 in /usr/X11R6/include which are checked for with AC_CHECK_HEADER.
8291
82921999-08-30 Gerd Moellmann <gerd@gnu.org>
8293
8294 * fns.c (QCweakness): Replaces QCweak.
8295 (Fmake_hash_table): Ditto.
8296 (Fmakehash): Ditto.
8297 (syms_of_fns): Ditto.
8298
82991999-08-29 Richard Stallman <rms@gnu.org>
8300
8301 * search.c (compile_pattern_1): Enable RE_CHAR_CLASSES for regexp.
8302
8303 * sysdep.c (read_input_waiting): Pass read_socket_hook just 4 args.
8304
8305 * syntax.h (SYNTAX_COMMENT_NESTED, SYNTAX_FLAGS_COMMENT_NESTED):
8306 Add support for nested comments.
8307
d7d0dac0
SM
8308 * syntax.c (Fforward_comment, scan_lists, scan_sexps_forward):
8309 Consolidate the forward comment code into the new `forw_comment'.
8310 (forw_comment): New subroutine. Added support for nested comments.
8311 (lisp_parse_state, back_comment, Fmodify_syntax_entry)
8312 (Fparse_partial_sexp): Add support for nested comments.
26901792
DL
8313
83141999-08-28 Ken Raeburn <raeburn@gnu.org>
8315
8316 * lisp.h (struct Lisp_Cons, XCAR, XCDR, struct Lisp_Float): Change
8317 names of structure elements if HIDE_LISP_IMPLEMENTATION is
8318 defined, to help detect code that uses knowledge of the Lisp
8319 internals that it shouldn't have.
8320 (XFLOAT_DATA): New macro.
8321
83221999-08-25 Gerd Moellmann <gerd@gnu.org>
8323
8324 * syntax.c (Fforward_word): If in a mini-buffer and moving
8325 backwards, stop in front of the prompt to prevent accidentially
8326 moving into the read-only prompt.
8327
8328 * window.c (Frecenter): Clear frame if called with nil or no arg.
8329
8330 * xdisp.c (resize_mini_window): Don't resize if
8331 Vmax_mini_window_height is nil. Otherwise, use a default if
8332 Vmax_mini_window_height is not ot a number.
8333 (syms_of_xdisp): Extend documentation of Vmax_mini_window_height.
8334
83351999-08-25 Alexandre Oliva <oliva@dcc.unicamp.br>
8336
8337 * unexelf.c: Merge IRIX debugging info patch from unexsgi.c
8338 * m/iris4d.h: Use unexelf for IRIX 5.*.
8339 * m/iris5d.h: Use unexelf for IRIX 6.*.
8340 * unexsgi.c: Deleted.
8341
8342 * unexelf.c: Auto-detect .sbss section.
8343 (round_up): Make it static.
8344 (unexec): Declare alignment as Elf Word. Skip ``Program
8345 segment above .bss'' test on MIPS without .sbss.
8346 Copy sections .got and .sdata1 sections. Adjust offsets in
8347 sections .sdata, .lit4, .lit8, .got and .sdata1.
8348
83491999-08-25 Gerd Moellmann <gerd@gnu.org>
8350
8351 * xdisp.c (try_window_id): Remove typo.
8352
83531999-08-24 Gerd Moellmann <gerd@gnu.org>
8354
8355 * xdisp.c (try_window_id): Recognize case that PT == ZV and in
8356 unchanged text at the bottom when computing the cursor position.
8357 (message3_nolog): Raise frame only if minibuffer_auto_raise is
8358 set.
8359
8360 * lisp.h (PVEC_TYPE_MASK): Add the bit for hash tables.
8361
83621999-08-24 Gerd Moellmann <gerd@gnu.org>
8363
8364 * xfaces.c (Qmargin): Replacement for Qbitmap_area.
8365 (realize_basic_faces): Replace Qmargin for Qbitmap_area.
8366 (syms_of_xfaces): Ditto.
8367
8368 * window.c (Fset_window_point): Reset Vresize_mini_config.
8369 (Fset_window_start): Ditto.
8370 (set_window_buffer): Ditto.
8371
8372 * dispnew.c (adjust_frame_glyphs): Reset Vresize_mini_config.
8373
8374 * xdisp.c (redisplay_window): Don't ever test just_this_one_p
8375 before calling try_window.
8376 (echo_area_display): If height has changed, update other windows.
8377 (resize_mini_frame, resize_mini_initial_height): New.
8378 (resize_mini_window): Save/restore window configuration
8379 differently.
8380
427ec082 8381 * lisp.h (Vresize_mini_config, resize_mini_frame,
26901792
DL
8382 resize_mini_initial_height): Add extern declarations.
8383
8384 * xterm.c (expose_window_tree): Fix typo CANON_Y_UNIT to
8385 CANON_X_UNIT.
8386
8387 * xfns.c [HAVE_JPEG]: Work around a warning about HAVE_STDLIB_H
8388 being redefined in jconfig.h.
8389
83901999-08-23 Ken'ichi Handa <handa@gnu.org>
8391
8392 * coding.h: Include "ccl.h" instead of "../src/ccl.h".
8393
83941999-08-22 Gerd Moellmann <gerd@gnu.org>
8395
8396 * alloc.c (mark_glyph_matrix): Mark strings only.
8397
8398 * xdisp.c (redisplay_internal): Clear garbaged frames after
8399 resizing mini-window.
8400
84011999-08-22 Gerd Moellmann <gerd@gnu.org>
8402
8403 * xdisp.c (unwind_with_echo_area_buffer): Use
8404 set_buffer_internal_1 instead of set_buffer_internal.
8405 (with_echo_area_buffer): Ditto.
8406
8407 * buffer.c (set_buffer_internal): Set windows_or_buffers_changed
8408 only if buffer is displayed somewhere.
8409
8410 * buffer.h (BUF_COMPUTE_UNCHANGED): New.
8411
8412 * insdel.c (gap_left): Use BUF_COMPUTE_UNCHANGED.
8413 (gap_right): Ditto.
8414 (modify_region): Ditto.
8415
8416 * buffer.c (modify_overlay): Use BUF_COMPUTE_UNCHANGED.
8417
8418 * xdisp.c (Vresize_mini_config): New.
8419 (resize_mini_window): Use it to save restore original window
8420 configuration
8421 (syms_of_xdisp): Initialize it.
8422
8423 * buffer.h (struct buffer): Add prevent_redisplay_optimizations_p.
8424
8425 * dispextern.h (struct glyph_matrix): Add buffer, begv, and zv.
8426
8427 * xdisp.c (reconsider_clip_changes): New.
8428 (redisplay_internal, redisplay_window): Call it.
8429 (mark_window_display_accurate, redisplay_internal): Set current
8430 matrix' buffer, begv, zv.
8431
8432 * window.c (Fset_window_hscroll): Set
8433 prevent_redisplay_optimizations_p instead of clip_changed.
8434 (Fset_window_hscroll): Ditto.
8435 (temp_output_buffer_show): Ditto.
8436 (Fset_window_vscroll): Ditto.
8437
8438 * buffer.c (reset_buffer): Set clip_changed to 0 and
8439 prevent_redisplay_optimizations_p to 1.
8440 (Fget_buffer_create): Set prevent_redisplay_optimizations_p to 1.
8441
8442 * buffer.h (BUF_UNCHANGED_MODIFIED, UNCHANGED_MODIFIED,
8443 BUF_OVERLAY_UNCHANGED_MODIFIED, OVERLAY_UNCHANGED_MODIFIED,
8444 BUF_BEG_UNCHANGED, BEG_UNCHANGED, BUF_END_UNCHANGED,
8445 END_UNCHANGED): New.
8446 (struct buffer_text): Add beg_unchanged, end_unchanged,
8447 unchanged_modified, overlay_unchanged_modified.
8448
8449 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
8450 overlay_unchanged_modified): Removed.
8451 (with_echo_area_unwind_data): Don't save beg/end_unchanged.
8452 (unwind_with_echo_area_buffer): Don't restore them.
8453 (debug_beg_unchanged, debug_end_unchanged) [GLYPH_DEBUG]: Removed.
8454 (text_outside_line_unchanged_p, redisplay_internal,
8455 try_scrolling): Use/set buffer-specific beg/end_unchanged.
8456 (redisplay_window): Let try_window_id be called if more than one
8457 window is displayed. Use/set buffer-specific beg/end_unchanged.
8458 (get_last_unchanged_at_beg_row, get_first_unchanged_at_end_row,
8459 try_window_id):
8460 Use buffer-specific beg/end_unchanged.
8461
8462 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
8463 overlay_unchanged_modified): Remove extern declarations.
8464
8465 * keyboard.c (command_loop_1): Set beg/end_unchanged per
8466 buffer.
8467
8468 * insdel.c (gap_left): Compute beg/end_unchanged per buffer.
8469 (gap_right): Ditto.
8470 (adjust_after_replace): Likewise.
8471 (replace_range, del_range_2, modify_region): Likewise.
8472
8473 * dispnew.c (direct_output_for_insert): Set beg_unchanged
8474 and unchanged_modified per buffer.
8475
8476 * coding.c (code_convert_region): Compute beg/end_unchanged per
8477 buffer.
8478
8479 * buffer.c (modify_overlay): Compute beg/end_unchanged
8480 per buffer.
427ec082 8481 (Fget_buffer_create): Initialize new members of the buffer
26901792
DL
8482 structure.
8483
84841999-08-22 Gerd Moellmann <gerd@gnu.org>
8485
8486 * lisp.h: Add prototype for copy_hash_table and Fcopy_hash_table.
8487
8488 * fns.c (Qkey, Qvalue): Renamed from Qkey_weak, and Qvalue_weak.
8489 (Qkey_value_weak): Removed.
8490 (make_hash_table): Use nil, `key', `value', t for weakness.
8491 (Fmake_hash_table): Ditto.
8492 (copy_hash_table): New.
8493 (Fcopy_hash_table): New.
8494
84951999-08-22 Gerd Moellmann <gerd@gnu.org>
8496
8497 * xfns.c: Call change_frame_size and do_pending_window_change with
d7d0dac0 8498 new parameter.
26901792
DL
8499
85001999-08-21 Gerd Moellmann <gerd@gnu.org>
8501
8502 * xdisp.c (resize_mini_window): Do it for truncate-lines t as
8503 well.
427ec082 8504 (redisplay_internal): Resize mini-window only if text might
26901792
DL
8505 have changed.
8506 (display_echo_area): Reset displayed echo_area_buffer to nil
8507 at the end if we're displaying a nil message.
8508
85091999-08-21 Gerd Moellmann <gerd@gnu.org>
427ec082 8510
26901792
DL
8511 * fns.c (hash_lookup): Test with EQ before calling key comparion
8512 function.
8513 (hash_remove): Ditto.
8514 (cmpfn_eq): Removed.
8515 (cmpfn_eql): Don't test with EQ.
8516 (cmpfn_equal): Ditto.
8517 (make_hash_table): Set comparison function for `eq' to null.
8518
8519 * buffer.c, cmds.c, editfns.c, indent.c, insdel.c, buffer.h:
8520 Remove conditional compilation on NO_PROMPT_IN_BUFFER.
8521
8522 * dispextern.h (NO_PROMPT_IN_BUFFER): Removed.
8523
8524 * window.c, widget.c, process.c, keyboard.c, frame.c, xdisp.c,
8525 xterm.c: Call change_frame_size and do_pending_window_change with
8526 new parameter.
8527
8528 * dispnew.c (do_pending_window_change): Add parameter `safe'.
8529 (change_frame_size): Ditto.
8530 (change_frame_size_1): Ditto. Deley size changes if redisplaying
8531 and not called from a safe place.
8532 (window_change_signal): Call change_frame_size with new parameter.
8533
8534 * dispextern.h: Change prototypes for do_pending_window_change
8535 and change_frame_size.
8536
8537 * xfaces.c (face_at_buffer_position): Don't xassert that
427ec082 8538 window's buffers equals current_buffer; this is not the
26901792
DL
8539 case during echo area display.
8540
85411999-08-21 Gerd Moellmann <gerd@gnu.org>
8542
8543 * xdisp.c, minibuf.c: Remove conditional compilation on
8544 NO_PROMPT_IN_BUFFER.
8545
8546 * minibuf.c (Fminibuffer_prompt_end): New.
8547 (syms_of_minibuf): Defsubr it. Remove
8548 minibuffer-prompt-in-buffer.
8549 (Fminibuffer_prompt_width): Return 0 if not in mini-buffer.
8550 Extend documentation.
8551
8552 * xdisp.c (get_next_display_element): Display \r as ^M.
8553
8554 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Clear
8555 under scroll bar widget.
8556
85571999-08-21 Gerd Moellmann <gerd@gnu.org>
8558
8559 * xdisp.c (minibuffer_scroll_overlap): Removed because not used
8560 anywhere.
8561 (unwind_redisplay): Return nil.
8562 (clear_garbaged_frames): New.
8563 (redisplay_internal): Use it.
8564 (echo_area_display): Ditto.
8565 (resize_mini_window): Mew.
8566 (display_echo_area_1): Use it to resize echo area window.
8567 (redisplay_internal): Use it to resize active mini-window.
8568
8569 * dispextern.h, lisp.h: Add function prototypes.
8570
427ec082 8571 * dispnew.c (set_window_cursor_after_update): Do the
26901792
DL
8572 cursor_in_echo_area case only for a mini-window showing
8573 a message. Don't let cursor end up after the end of a row.
8574
8575 * xdisp.c (echo_area_glyphs, echo_area_message,
8576 echo_area_glyphs_length, previous_echo_glyphs,
8577 previous_echo_area_message, previous_echo_area_glyphs_length):
8578 Removed.
8579 (Vmessage_stack, echo_area_buffer, echo_buffer,
8580 display_last_displayed_message_p, Vwith_echo_area_save_vector): New.
8581 (message2_nolog): Use set_message and clear_message.
8582 (message3): Rename parameter len to nbytes to make clear what
8583 it is.
8584 (message3_nolog): Ditto. Use set_message and clear_message.
8585 (update_echo_area): Rewritten.
8586 (with_echo_area_buffer): New.
8587 (with_echo_area_buffer_unwind_data, unwind_with_area_buffer): New.
8588 (setup_echo_area_for_printing): New.
8589 (display_echo_area, display_echo_area_1): New.
8590
8591 (current_message, current_message_1): New.
427ec082 8592 (push_message, restore_message, pop_message,
26901792
DL
8593 check_message_stack): New.
8594 (truncate_echo_area): Rewritten.
8595 (truncate_message_1): New.
8596 (set_message, set_message_1, clear_message): New.
8597 (echo_area_display): Rewritten.
8598 (redisplay_internal): Check for needed echo area update
8599 differently.
8600 (redisplay_preserve_echo_area): Rewritten.
427ec082 8601 (redisplay_window): Check for mini-window displaying echo area
26901792
DL
8602 message differently.
8603 (syms_of_xdisp): Initialize Vmessage_stack and echo area buffers.
8604 Remove initialzation of removed variables.
8605 (init_xdisp): Remove references to removed variables.
8606
8607 * dispnew.c (adjust_frame_message_buffer): Removed references
8608 to echo_area_glyphs and previous_echo_glyphs.
8609 (direct_output_for_insert): Check for mini-window displaying
8610 echo area message differently.
8611 (update_frame): Likewise.
8612 (set_window_cursor_after_update): Likewise. In echo area,
8613 don't try to set cursor on rows that aren't enabled.
8614
8615 * print.c: Remove conditional compilation on `standalone'.
8616 (glyph_len, str_to_glyph_cpy, str_to_glyph_ncpy,
427ec082 8617 glyph_to_str_cpy): Remove that section because GLYPHs are no
26901792
DL
8618 longer used in that way.
8619 (PRINTDECLARE): Add multibyte.
8620 (PRINTPREPARE, PRINTFINISH): Handle printcharfun t differently.
8621 (printbufidx): Removed.
8622 (printchar, strout): Rewritten.
8623
8624 * keyboard.c (ok_to_echo_at_next_pause): Make it a pointer to
8625 a struct kboard.
8626 (echo_kboard): New.
8627 (echo_now): Set echo_kboard to the current kboard.
8628 (cancel_echoing): Set echo_kboard to null.
8629 (cmd_error_internal): Use clear_message, remove references
8630 to echo_area_glyphs and echo_area_message.
8631 (command_loop_1): Check for echo area messages differently.
8632 (read_char): Likewise.
8633 (record_menu_key): Use clear_message.
8634 (Fexecute_extended_command): Check for echo area messages
8635 differently. Use push_message, restore_message, pop_message.
8636
8637 * alloc.c (Fgarbage_collect): Use push_message, restore_message,
8638 pop_message.
8639
8640 * emacs.c (shut_down_emacs): Call check_message_stack.
8641
8642 * lisp.h: Add function prototypes and extern declarations for
8643 new functions and variables.
8644
8645 * fileio.c (Fdo_auto_save): Use push_message, restore_message,
8646 pop_message.
8647
427ec082 8648 * minibuf.c (read_minibuf): Use clear_message instead of
26901792
DL
8649 setting echo_area_glyphs.
8650 (Fminibuffer_completion_help): Ditto.
8651
8652 * editfns.c (Fcurrent_message): Rewritten.
8653
8654 * frame.c, window.h: Remove references to echo_area_glyphs
8655 and previous_echo_glyphs.
8656
86571999-08-21 Dave Love <fx@gnu.org>
8658
8659 * aix3-2-5.h (C_DEBUG_SWITCH): Use -g -O.
8660 * aix4-1.h: Likewise.
8661
8662 * irix6-5.h (C_DEBUG_SWITCH): Set for debug and optimize.
8663
86641999-08-20 Gerd Moellmann <gerd@gnu.org>
8665
8666 * xfns.c: Remove tiff34 prefix from include.
8667
86681999-08-20 Dave Love <fx@gnu.org>
8669
8670 * cm.c: Revert previous change.
8671
86721999-08-19 Gerd Moellmann <gerd@gnu.org>
8673
8674 * xterm.c (XTset_vertical_scroll_bar): Fix previous change. Clear
8675 under scroll bar with width FRAME_SCROLL_BAR_COLS.
8676
86771999-08-18 Dave Love <fx@gnu.org>
8678
8679 * callproc.c, filelock.c, insdel.c, sysdep.c, xmenu.c: Use
8680 stdlib.h.
8681
8682 * doprnt.c: Use stdlib.h, unistd.h.
8683
8684 * config.in: Add HAVE_TERMCAP_H.
8685
8686 * cm.c: Use termcap.h.
8687
86881999-08-18 Gerd Moellmann <gerd@gnu.org>
8689
8690 * xfns.c (x_window) [USE_X_TOOLKIT]: Remove test for
8691 FRAME_X_WINDOW (f) being null at the of the function. If widgets
8692 cannot be created we will already have crashed earlier. Call
8693 lw_set_main_areas with a null menu-bar widget, so that we have
8694 a reasonable default.
8695 (Fx_create_frame): Rearranged so that Lisp errors during frame
8696 initialization cause less damage. Initialize menu bar widget
8697 here.
8698
86991999-08-18 Gerd Moellmann <gerd@gnu.org>
427ec082 8700
26901792
DL
8701 * dispnew.c (update_frame_line): Fix previous change. If writing
8702 whole line clear to end of frame.
8703
87041999-08-17 Gerd Moellmann <gerd@gnu.org>
8705
8706 * window.c (Fcoordinates_in_window_p): Return `left-bitmap-area'
8707 and `right-bitmap-area' if position is in the bitmap areas. This
8708 avoids an error when clicking on the bitmap areas. Instead, they
8709 are currently treated like clicks inside the window.
8710 (coordinates_in_window): Return 5 and 6 for bitmap areas.
8711 (Qleft_bitmap_area, Qright_bitmap_area): New.
8712 (syms_of_window): Initialize new symbols.
8713
8714 * dispnew.c (update_frame_line): If writing whole line,
8715 don't write trailing spaces unless we must.
8716
8717 * xdisp.c (unwind_redisplay): New. Resets flag redisplaying_p.
8718 (redisplay_internal): Register unwind_redisplay with
8719 register_unwind_protect.
8720 (try_window_reusing_current_matrix): If new start > old start,
8721 give up if start pos of first reusable row is not equal to new
8722 start.
8723
8724 * eval.c (Fsignal): Don't reset redisplaying_p here.
8725
8726 * xterm.c (expose_area): If row extends face to end of line,
8727 write the whole line.
8728
87291999-08-16 Gerd Moellmann <gerd@gnu.org>
8730
8731 * dispextern.h (struct it): Remove member
8732 show_trailing_whitespace_p.
8733
8734 * dispnew.c (direct_output_for_insert): Use
8735 Vshow_trailing_whitespace instead of former iterator member
8736 show_trailing_whitespace_p.
8737 (direct_output_forward_char): Don't do it if hightlighting
8738 trailing whitespace.
8739
8740 * xdisp.c (Qshow_trailing_whitespace): Removed.
8741 (Vshow_trailing_whitespace): Added.
8742 (init_iterator): Remove initialization code for
8743 show_trailing_whitespace_p.
8744 (redisplay_internal): Don't try cursor movement in this_line
8745 if showing trailing whitespace.
8746 (redisplay_window): Likewise for cursor movement in current
8747 matrix and try_window_id.
8748 (try_window_reusing_current_matrix): Likewise.
8749 (trailing_whitespace_p): Return 0 if trailing whitespace is
8750 in front of point.
8751 (display_line): Use Vshow_trailing_whitespace instead of
8752 former iterator member show_trailing_whitespace_p.
8753 (syms_of_xdisp): Add DEFVAR_LISP for show-trailing-whitespace.
8754
87551999-08-16 Gerd Moellmann <gerd@gnu.org>
8756
8757 * window.c (Fpos_visible_in_window_p): Rewritten.
8758
8759 * xfaces.c (add_to_log): Renamed from display_message.
8760 Don't display messages in echo area.
8761
8762 * xterm.c (x_draw_glyph_string_box): Use the background width
8763 of the glyph string for the width of the box.
8764
87651999-08-16 Stefan Monnier <monnier@cs.yale.edu>
8766
8767 * syntax.c (Fforward_comment): Set comstyle for Scomment_fence.
8768
87691999-08-16 Geoff Voelker <voelker@cs.washington.edu>
8770
8771 * xfns.c, w32fns.c (x_set_frame_parameters): Set foreground and
8772 background first, and then set other parameters that might
8773 depend upon their new values.
8774
87751999-08-15 Gerd Moellmann <gerd@gnu.org>
8776
8777 * xfaces.c (Vfont_list_limit): New.
8778 (syms_of_xfaces): Make it a user-variable.
8779 (DEFAULT_FONT_LIST_LIMIT): New.
8780 (sorted_font_list): If Vfont_list_limit is an integer > 0, list
8781 maximally that number of fonts, otherwise use
8782 DEFAULT_FONT_LIST_LIMIT.
427ec082 8783 (Fx_font_family_list): Bind `font-list-limit' to higher values
26901792
DL
8784 until we have all fonts.
8785 (Fxfont_list): Additionally return the full names of fonts and
8786 their registry and encoding.
8787
427ec082 8788 * xterm.c (XTset_vertical_scroll_bar) [USE_TOOLKIT_SCROLL_BARS]:
26901792
DL
8789 Simplify clearing "under" scroll bar.
8790
8791 * window.c (Qfixed_window_size): New.
8792 (syms_of_window): Initialiaze it.
8793 (check_all_windows): Add return type void.
8794 (window_fixed_size_p): New. Return non-zero if window
8795 is fixed-size.
8796 (window_min_size_1): New.
8797 (window_min_size): Handle fixed-size windows.
8798 (size_window): New. Rewritten combination of set_window_height and
8799 set_window_width that handles fixed-size windows.
8800 (set_window_height): Call it.
8801 (set_window_width): Call it.
8802 (Fsplit_window): Give an error on attempt to split a fixed-size
8803 window.
8804 (change_window_height): Partly rewritten to handle fixed-size
8805 windows.
8806
88071999-08-13 Wolfgang Rupprecht <wolfgang@wsrcc.com>
8808
8809 * process.c (Fopen_network_stream): Fix previous change.
8810
88111999-08-13 Karl Heuer <kwzh@gnu.org>
8812
8813 * xdisp.c (line_number_display_limit_width): New var.
8814 (decode_mode_spec): Use it instead of hardcoded value.
8815 (syms_of_xdisp): Defvar it.
8816
88171999-08-13 Richard M. Stallman <rms@gnu.org>
8818
8819 * eval.c (run_hook_list_with_args): Gcpro `globals'.
8820 (run_hook_with_args): Likewise.
8821
8822 * window.h (struct window): New field too_small_ok.
8823
427ec082 8824 * window.c (set_window_height, set_window_width):
26901792
DL
8825 If window starts out "too small", set its too_small_ok flag.
8826 If window's too_small_ok flag is set, don't delete it
8827 unless it is so small it would cause a crash.
8828
88291999-08-13 Gerd Moellmann <gerd@gnu.org>
8830
8831 * window.c (MINSIZE): Removed.
8832 (window_min_size): New.
8833 (set_window_height): Use window_min_size.
8834 (change_window_height): Ditto.
8835
88361999-08-12 Gerd Moellmann <gerd@gnu.org>
8837
8838 * indent.c (vmotion): Don't add in mini-buffer prompt width
8839 if prompts are inserted into mini-buffer.
8840
88411999-08-12 Wolfgang Rupprecht <wolfgang@wsrcc.com>
8842
8843 * config.in: Add HAVE_GETADDRINFO.
8844 * process.c (Fopen_network_stream): Use getaddrinfo.
8845
88461999-08-11 Gerd Moellmann <gerd@gnu.org>
8847
8848 * xdisp.c (get_overlay_arrow_glyph_row): Set the charpos of
8849 glyphs to -1.
8850
8851 * xdisp.c (face_before_or_after_it_pos): If position after
8852 or before iterator's current position in the buffer is out
8853 of bounds, return the iterator's original face id.
8854
8855 * dispnew.c (mirror_make_current): If desired row isn't enabled,
8856 just swap glyphs pointers between current and desired row.
8857 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Copy
8858 desired matrix method string to current matrix.
8859
88601999-08-11 Kenichi Handa <handa@etl.go.jp>
8861
8862 * lisp.h (CHAR_MODIFIER_MASK): New macro.
8863
8864 * lread.c (read_escape): For Control modifier, pay attention to
8865 multibyte character.
8866 (read1): Likewise. Singal error or a multibyte character which
8867 has a modifer bit. Check validity of Shift modifer.
8868
8869 * charset.c (non_ascii_char_to_string): Handle modifier bits as
8870 the same as Lisp reader.
8871
88721999-08-10 Richard M. Stallman <rms@gnu.org>
8873
8874 * charset.h (BCOPY_SHORT): Fix typo `unsigined'.
8875
88761999-08-10 Alexandre Oliva <oliva@dcc.unicamp.br>
8877
8878 * unexelf.c [__linux__ && __alpha__] (HAS_SBSS_SECTION): Define.
8879
88801999-08-10 Eli Zaretskii <eliz@gnu.org>
8881
8882 * msdos.c (IT_set_face): Abort if the default face is not realized
8883 and cached.
8884 (IT_write_glyphs): Reset the screen face to the default face
8885 before writing glyphs.
8886
8887 * xfaces.c (realize_default_face) [MSDOS]: Don't take default
8888 colors from the frame here.
8889 (realize_tty_face) [MSDOS]: Do it here. Update the face
8890 attributes with the actual name of the color taken from the
8891 frame.
8892
8893 * dosfns.c (msdos_stdcolor_name): Remove const from return value.
8894 * dosfns.h (msdos_stdcolor_name): Ditto for the prototype.
8895
8896 * frame.c (Fframe_parameters): Swap foreground and background
8897 colors returned in frame parameters if the frame has reverse in
8898 its parameter alist.
8899 (Fmake_terminal_frame): Make a unique copy of face_alist for
8900 each frame.
8901
89021999-08-07 Richard Stallman <rms@gnu.org>
8903
8904 * buffer.c (Fprevious_overlay_change): Just return
8905 the answer obtained from overlays_at.
8906
8907 * xfns.c (xpm_load) [!XpmAllocCloseColors]:
8908 Use XpmCloseness and attrs.closeness instead.
8909
89101999-08-06 Richard Stallman <rms@gnu.org>
8911
8912 * lread.c (Feval_buffer): New arg DO_ALLOW_PRINT.
8913
89141999-08-06 Geoff Voelker <voelker@cs.washington.edu>
8915
427ec082 8916 * dired.c (directory_files_internal, Fdirectory_files_and_attributes,
26901792
DL
8917 Ffile_attributes_lessp): New functions.
8918 (Fdirectory_files): Use directory_files_internal.
8919 (syms_of_dired): Initialize Fdirectory_files_and_attributes,
8920 Ffile_attributes_lessp.
8921
8922 * w32.c (stat): Check for directory ending in separator when
8923 doing readdir fast path.
8924
8925 * w32fns.c (x_set_icon_type): Support setting frame icons.
8926 * w32term.c (x_bitmap_icon): New function.
8927 (x_make_frame_visible, x_iconify_frame): Invoke x_bitmap_icon.
427ec082 8928
26901792
DL
89291999-08-06 Gerd Moellmann <gerd@gnu.org>
8930
8931 * xdisp.c (set_iterator_to_next): After delivering a character
8932 from a display vector, restore face and charset to what they were
8933 before the display vector was processed.
8934
89351999-08-06 Gerd Moellmann <gerd@gnu.org>
8936
8937 * xdisp.c (reseat_at_next_visible_line_start): New parameter
8938 on_newline_p.
8939 (set_iterator_to_next): After delivering last char
427ec082 8940 from display vector, reseat on next visible line start if
26901792
DL
8941 dpvec_char_len < 0.
8942 (next_element_from_buffer): Set dpvec_char_len to -1 for
8943 selective display.
8944
89451999-08-06 Gerd Moellmann <gerd@gnu.org>
8946
8947 * xdisp.c (compute_line_metrics): If first line's physical ascent
8948 is larger than its logical ascent, use the physical ascent, and
8949 make the row taller. Set row's overlapping_p flag.
8950
8951 * dispnew.c (redraw_overlapping_rows): Use flag overlapping_p.
8952 (direct_output_for_insert): Ditto.
8953
8954 * dispextern.h (struct glyph_row): Add overlapping_p.
8955
8956 * xterm.c (x_draw_phys_cursor_glyph): Redraw overlaps.
8957
8958 * dispextern.h (MATRIX_ROW_OVERLAPS_PRED_P): New.
8959 (MATRIX_ROW_OVERLAPS_SUCC_P): New.
8960
8961 * dispnew.c (direct_output_for_insert): Don't use this method if
8962 row is overlapped by others.
8963 (update_text_area): Write full line if current line is overlapped.
8964 (redraw_overlapped_rows): New.
8965 (update_window): Call it.
8966 (redraw_overlapping_rows): New.
8967 (update_window): Call it.
8968 (scrolling_window): Make sure overlapped_p flag in current rows is
8969 unchanged.
8970 (row_equal_p): Take rows overlapped_p flag into account.
8971
8972 * dispextern.h (struct glyph_row): Add flag overlapped_p.
8973
8974 * xterm.c (x_fix_overlapping_area): New.
8975 (x_redisplay_interface): Add x_fix_overlapping_area.
8976
8977 * dispnew.c (adjust_glyphs): Block input while adjusting matrices.
8978
89791999-08-06 Gerd Moellmann <gerd@gnu.org>
8980
8981 * xterm.c (x_draw_glyphs): Add parameter overlaps_p.
8982 (struct glyph_string): Add member for_overlaps_p.
8983 (x_get_glyph_string_clip_rect): If glyph string draws foreground
8984 of overlapping rows, clip to window bottom.
8985 (x_fill_glyph_string): Add parameter overlaps_p.
8986 (x_fill_composite_glyph_string): Ditto.
8987 (BUILD_GLYPH_STRINGS): Ditto.
8988 (BUILD_CHAR_GLYPH_STRINGS): Ditto.
8989 (x_draw_glyph_string): Don't draw anything but the foreground
8990 if glyph string draws row overlaps.
8991
8992 * dispnew.c (direct_output_for_insert): Don't use this
8993 optimization for rows that overlap others.
8994 (update_window_line): Return non-zero if display has changed.
8995 (update_text_area): Ditto.
8996 (update_window): Record if display has been changed.
8997
8998 * dispextern.h (MATRIX_ROW_OVERLAPPING_P): New.
8999
9000 * dispextern.h (struct redisplay_interface): Add
9001 fix_overlapping_area.
9002
9003 * xterm.c (x_append_glyph): Set glyph flag overlaps_vertically_p.
9004
9005 * dispextern.h (struct glyph): Add overlaps_vertically_p.
9006
9007 * xterm.c (x_produce_image_glyph): Compute iterator's physical
9008 ascent and descent.
9009 (x_produce_stretch_glyph): Ditto.
9010 (x_produce_glyphs): Ditto.
9011
9012 * xdisp.c (init_iterator): Reset physical line height info
9013 after producing special glyphs.
9014 (display_toolbar_line): Set physical line height info.
9015 (compute_line_metrics): Ditto.
9016 (display_line): Ditto.
9017 (display_string): Ditto.
9018
9019 * term.c (produce_glyphs): Set iterator's physical height
9020 information.
9021
9022 * dispnew.c (blank_row): Compute glyph row's physical height.
9023 (row_equal_p): Take physical row heights into account.
9024 (direct_output_for_insert): Ditto.
9025 (update_text_area): Ditto.
9026
9027 * dispextern.h (struct glyph_row): Add phys_ascent and
9028 phys_height.
9029 (struct it): Add phys_ascent, phys_descent, max_phys_ascent,
9030 max_phys_descent.
9031
90321999-08-04 Stefan Monnier <monnier@cs.yale.edu>
9033
9034 * buffer.c (switch_to_buffer_1): New subroutine, taken out from
9035 Fswitch_to_buffer.
9036 (no_switch_buffer): New function.
9037 (Fswitch_to_buffer): Call them. Don't get confused
9038 by "same-window" buffers in a dedicated frame.
9039
9040 * window.c (display-buffer): Don't get confused
9041 by "same-window" buffers in a dedicated frame.
9042
90431999-08-04 Andreas Schwab <schwab@gnu.org>
9044
9045 * insdel.c (insert_from_string_1): Check gap size against number
9046 of outgoing bytes, not incoming bytes.
9047
90481999-08-03 Tom Breton <tob@world.std.com>
9049
9050 * lread.c (read1): Added circular reading code to #N=.
9051 (SUBSTITUTE): New macro.
9052 (seen_list): New variable.
9053 (substitute_object_in_subtree): New function.
9054 (substitute_object_recurse): New function.
9055 (substitute_in_interval): New function.
9056
90571999-08-02 Eli Zaretskii <eliz@gnu.org>
9058
9059 * Makefile.in (frame.o, sysdep.o, xfaces.o): Depend on dosfns.h.
9060
9061 * frame.c (make_terminal_frame): Don't call init_frame_faces if
9062 noninteractive, for termcap frames as well.
9063
9064 * sysdep.c (init_sys_modes): Call init_frame_faces for termcap
9065 frames.
9066
90671999-08-01 Richard Stallman <rms@gnu.org>
9068
9069 * fns.c (internal_equal): Correct overlay comparison.
9070
83c8f461 90711999-07-31 Richard M. Stallman <rms@gnu.org>
26901792 9072
427ec082 9073 * xfns.c (x_set_internal_border_width):
26901792
DL
9074 Call do_pending_window_change. Don't block input, don't call XFlush.
9075 (x_set_vertical_scroll_bars): Call do_pending_window_change.
9076 (x_set_scroll_bar_width, x_set_font): Likewise.
9077
9078 * frame.c (Fset_frame_height): Call do_pending_window_change.
9079 (Fset_frame_width, Fset_frame_size): Likewise.
9080
9081 * xterm.c (x_set_window_size): When calling change_frame_size,
9082 specify 1 for DELAY.
9083
9084 * widget.c (EmacsFrameSetCharSize): Don't call
9085 do_pending_window_change here.
9086
90871999-07-30 Dave Love <fx@gnu.org>
9088
9089 * config.in: Add HAVE_STDLIB_H.
9090
90911999-07-30 Richard M. Stallman <rms@gnu.org>
9092
9093 * process.c (create_process): Detect failure of `pipe'.
9094
90951999-07-30 Keisuke Nishida <kei@psn.net>
9096
9097 * alloc.c (allocate_vectorlike): Add missing increment.
9098
9099 * data.c (Fdefalias): Call Ffset instead of duplicating code.
9100
9101 * keymap.c (get_keymap_1, get_keyelt): Check the type of OBJECT
9102 before calling indirect_function.
9103
91041999-07-30 Eli Zaretskii <eliz@gnu.org>
9105
9106 * dispextern.h (load_color, lookup_derived_face): Declare
9107 prototypes.
9108
9109 * dispnew.c (init_display) [MSDOS]: Don't initialize frame faces,
9110 it will be done later.
9111
9112 * frame.c (make_terminal_frame) [MSDOS]: Don't call
9113 init_frame_faces if non-interactive.
9114 (Fframe_parameters) [MSDOS]: Replace indexing into colornames[]
9115 array with a call to msdos_stdcolor_name. The font name is now
9116 "ms-dos", consistent with realize_tty_face.
9117
9118 * keyboard.c (cmd_error_internal): Don't kill Emacs if this is an
9119 MSDOS frame.
9120
9121 * window.c (Fset_window_configuration) [MSDOS]: Don't call
9122 x_set_toolbar_lines.
9123
9124 * xfaces.c (load_color): Remove static from definition and remove
9125 prototype.
9126 [MSDOS]: Add a DOS-specific version of load_color.
9127 (lookup_face): Replace FRAME_TERMCAP_P with !FRAME_WINDOW_P.
9128 (lookup_derived_face): New function.
9129 (realize_default_face): Support MSDOS frames.
9130 [MSDOS]: If fore/background colors are unspecified, inherit them
9131 from the frame.
9132 (realize_face): Support MSDOS frames.
9133 (realize_tty_face): Support MSDOS frames.
9134 [MSDOS]: If the face color is not in Vface_tty_color_alist, call
9135 load_color to try to find a suitable approximation. If the face
9136 is inverse-video, swap the foreground and background colors.
9137
9138 * dosfns.c (msdos_stdcolor_name, msdos_stdcolor_idx): New
9139 functions.
9140
9141 * dosfns.h (msdos_stdcolor_name, msdos_stdcolor_idx): Declare.
9142
9143 * msdos.h: Remove redundant declarations (most of them are now in
9144 dispextern.h).
9145
9146 * msdos.c (IT_set_face): Rewritten for the new redisplay engine.
9147 Use default frame colors if the face doesn't specify them; invert
9148 the colors if highlight is ON.
9149 (IT_write_glyphs): Rewritten for the new redisplay engine.
9150 (IT_change_line_highlight): Add (unused) parameter Y, since that's
9151 how the hook is called by term.c.
9152 (IT_copy_glyphs): New function, copies an area of the display in
9153 video RAM.
9154 (IT_insert_glyphs): Rewritten to DTRT instead of aborting, since
9155 redisplay now calls it even if char_ins_del_ok is zero.
9156 (IT_set_frame_parameters): Prototype changed. Calls the new
9157 load_color. Puts the new fore/background colors into the default
9158 face on current frame.
9159 (IT_menu_display): Rewritten to handle the new struct glyph
9160 instead of a char array.
9161 (XMenuActivate): Call lookup_derived_face to create and use
9162 special faces for the pop-up and drop-down menus.
9163
91641999-07-29 Gerd Moellmann <gerd@gnu.org>
9165
9166 * xterm.c (x_set_toolkit_scroll_bar_thumb): Don't call
9167 XawScrollbarSetThumb if thumb parameters haven't changed because
9168 that function apparently isn't optimized for this case.
9169
91701999-07-29 Eli Zaretskii <eliz@gnu.org>
9171
9172 * msdos.c (getdefdir): Don't return failure indication when
9173 _fixpath sets errno to ENOSYS.
9174
91751999-07-28 Gerd Moellmann <gerd@gnu.org>
9176
9177 * xdisp.c (string_char_and_length): New. Use it everywhere
9178 instead of STRING_CHAR_AND_LENGTH in xdisp.c.
9179
91801999-07-28 Kenichi Handa <handa@etl.go.jp>
9181
9182 * fns.c (count_combining): New function.
9183 (struct textprop_rec): New structure.
9184 (concat): Copy text properties correctly when byte combining
9185 occurs.
9186
91871999-07-28 Gerd Moellmann <gerd@gnu.org>
9188
9189 * xterm.c (x_setup_relief_color): Don't try smart color allocation
9190 if display is mono.
9191 (x_draw_row_bitmaps): If face has stipple, don't switch
9192 to foreground color for clearing areas, and set the fill style.
9193
9194 * xfaces.c (load_face_colors): Load background color if setting
9195 stipple, too.
427ec082 9196 (prepare_face_for_display): Use FillOpaqueStippled instead of
26901792
DL
9197 FillStippled.
9198
91991999-07-26 Ken'ichi Handa <handa@gnu.org>
9200
9201 * xterm.c (x_find_ccl_program): Add casting.
9202
9203 * w32fns.c (w32_find_ccl_program): Add casting.
9204
92051999-07-27 Gerd Moellmann <gerd@gnu.org>
9206
9207 * dispextern.h (struct glyph_row): Flag internal_border_p removed.
9208
9209 * xfns.c (x_create_tip_frame): Don't set bitmapIcon resource
9210 because this will try to access a nonexisting widget.
9211
92121999-07-26 Markus Rost <rost@gnu.org>
9213
427ec082 9214 * fns.c (Fgethash): Fix order of variables (patch by gerd).
26901792
DL
9215 (Fputhash): Ditto.
9216 (Fremhash): Ditto.
9217
92181999-07-26 Gerd Moellmann <gerd@gnu.org>
427ec082 9219
26901792
DL
9220 * widget.c (EmacsFrameSetCharSize): Don't add XtNborderWidth
9221 value to frame width and height.
9222
9223 * xterm.c (x_get_glyph_string_clip_rect): Take internal border
9224 into account for full-width windows. Don't add scroll bar width
9225 to width of clip rect.
9226 (x_draw_glyph_string_box): Add 1 to right x of full width lines.
9227 (x_set_glyph_string_background_width): Add 1 to background width.
9228 (x_draw_glyphs): Take internal border into account for full-width
9229 lines.
9230
92311999-07-26 Richard M. Stallman <rms@gnu.org>
9232
9233 * xfns.c (x_set_mouse_color): Always unload the old color.
9234 Don't allow nil as color value.
427ec082 9235 (x_set_cursor_color, x_set_background_color, x_set_foreground_color):
26901792
DL
9236 Always unload the old color.
9237
9238 * indent.c (Fmove_to_column): Extend end of line only if FORCE is t.
9239
92401999-07-26 Karl Heuer <kwzh@gnu.org>
9241
9242 * fns.c (Fy_or_n_p): Doc fix.
9243
92441999-07-26 Kenichi Handa <handa@etl.go.jp>
9245
9246 * ccl.h (setup_ccl_program): The type is changed to `int'.
9247
9248 * ccl.c (ccl_driver) <CCL_Call>: Now CCL program ID to call may be
9249 stored in the following CCL code. Adjusted for the change of
9250 Vccl_program_table.
9251 (resolve_symbol_ccl_program): Adjusted for the new style of
9252 embedded symbols (SYMBOL . PROP) in CCL compiled code. Return Qt
9253 is resolving failed.
9254 (ccl_get_compiled_code): New function.
9255 (setup_ccl_program): Function type changed from `void' to `int'.
9256 Resolve symbols in CCL_PROG.
9257 (Fccl_program_p): New function.
9258 (Fccl_execute): Get compiled CCL code by just calling
9259 setup_ccl_program.
9260 (Fccl_execute_on_string): Likewise.
9261 (Fregister_ccl_program): Adjusted for the change of
9262 Vccl_program_table.
9263
9264 * coding.c (setup_coding_system): Get compiled CCL code by just
9265 calling setup_ccl_program.
9266
9267 * xterm.c (x_find_ccl_program): Get compiled CCL code by just
9268 calling setup_ccl_program.
9269
9270 * w32fns.c (w32_find_ccl_program): Get compiled CCL code by just
9271 calling setup_ccl_program.
9272
92731999-07-23 Gerd Moellmann <gerd@gnu.org>
9274
9275 * xfaces.c (frame_update_line_height): Just use the height of the
9276 frame's fontset or font, instead of taking face fonts into
9277 account.
9278
9279 * xdisp.c (get_next_display_element): Display DEL as `^?'.
9280
92811999-07-23 Richard M. Stallman <rms@gnu.org>
9282
9283 * window.c (Fsplit_window): For default size, round up for left window.
9284
92851999-07-21 Joe Ramey <ramey@ti.com>
9286
d7d0dac0 9287 * filelock.c (lock_if_free): Return -1 if check_lock_owner
26901792
DL
9288 has returned -1 (lockfile exists but is not a symlink?).
9289
92901999-07-20 Gerd Moellmann <gerd@gnu.org>
9291
9292 * xterm.c (x_draw_bar_cursor): Use scratch_cursor_gc to
9293 because of a change in cursor_gc made in 20.4.
9294
92951999-07-19 Gerd Moellmann <gerd@gnu.org>
9296
9297 * xterm.c (x_calc_absolute_position): Subtract menu bar height
9298 for YNegative, if using X toolkit.
9299
427ec082 9300 * xfns.c (x_real_positions): Don't subtract window borders
26901792
DL
9301 from positions returned.
9302
93031999-07-17 Gerd Moellmann <gerd@gnu.org>
9304
9305 * xrdb.c (x_load_resources): Set double-click time defaults
9306 for Motif list boxes from double-click-time.
9307
9308 * fns.c (Vhash_table_tests): Remvoed.
9309 (Qhash_table_test): New.
9310 (syms_of_fns): Initialize Qhash_table_test.
9311 (Fmake_hash_table): Look up user-defined tests in symbol prop
9312 `hash-table-test'.
9313 (Fdefine_hash_table_test): Store test and hash function as
9314 symbol prop `hash-table-test'.
9315 (make_hash_table): Add parameters user_test and user_hash.
9316
9317 * window.c (set_window_buffer): Set window margins for tty
9318 frames, too.
9319 (Fset_window_margins): Ditto.
9320
9321 * term.c (append_glyph): Use glyph area of iterator instead of
9322 always TEXT_AREA.
9323
9324 * dispnew.c (update_frame_1): Add left margin width to cursor
9325 hpos.
9326 (direct_output_for_insert): Ditto.
9327 (direct_output_forward_char): Ditto.
9328
9329 * dispnew.c (adjust_glyph_matrix): Set glyph matrix' top_line_p.
9330
9331 * dispextern.h (struct glyph_matrix): Add top_line_p.
9332
93331999-07-16 Gerd Moellmann <gerd@gnu.org>
9334
9335 * frame.h (FRAME_WINDOW_REDISPLAY_P): Removed. Use FRAME_WINDOW_P
9336 instead.
9337
9338 * fns.c (cmpfn_eq): Add hash code parameters.
9339 (cmpfn_eql): Ditto.
9340 (cmpfn_equal): Ditto, and compare hash codes before calling Fequal.
9341 (cmpfn_user_defined): Likewise.
9342
93431999-07-15 Gerd Moellmann <gerd@gnu.org>
9344
9345 * lisp.h (DEFAULT_REHASH_THRESHOLD): Changed to 0.8.
9346
9347 * fns.c (maybe_resize_hash_table): Correct computation of
9348 index vector size.
9349 (make_hash_table): Ditto.
9350 (Fmakehash): New.
9351
9352 * xdisp.c (echo_area_display): Don't call redraw_garbaged_frames.
9353
9354 * alloc.c (gc_sweep): Call sweep_weak_hash_tables.
9355 (survives_gc_p): Make it externally visible.
9356 (mark_object): Ditto.
9357
9358 * fns.c (remove_hash_entry): Removed.
9359 (sweep_weak_hash_tables): New.
9360
9361 * print.c (print): Print more information about hash tables.
9362
9363 * xfns.c (image_spec_hash): Removed.
9364 (lookup_image): Use sxhash instead of image_spec_hash.
9365 (image_spec_equal_p): Removed.
9366 (lookup_image): Use Fequal instead of image_spec_equal_p.
9367
93681999-07-14 Gerd Moellmann <gerd@gnu.org>
9369
9370 * lisp.h (P_): Moved to top of file.
9371
9372 * fns.c (make_hash_table): Set new members.
9373
9374 * alloc.c (mark_object): Mark hash table's user_hash_function.
9375 Mark index vector for weak hash tables.
9376
9377 * lisp.h (struct Lisp_Hash_Table): Add user_cmp_function,
9378 user_hash_function, cmpfn, and hashfn.
9379
9380 * fns.c (build_hash): Removed.
9381 (hash_test): Removed.
9382 (cmpfn_eq, cmpfn_eql, cmpfn_equal, cmpfn_user_defined): New.
9383 (hashfn_eq, hashfn_eql, hashfn_equal, hashfn_user_defined): New.
9384
93851999-07-13 Gerd Moellmann <gerd@gnu.org>
9386
9387 * alloc.c (survives_gc_p): New.
9388
9389 * print.c (print): Add hash table handling.
9390
9391 * alloc.c (mark_object): Add code to mark hash tables.
9392
9393 * lisp.h (GC_HASH_TABLE_P): New.
9394
9395 * emacs.c (main): Call init_fns.
9396
9397 * fns.c (init_fns): New.
9398
9399 * fns.c: Add hash table implementation.
9400
9401 * lisp.h (PVEC_HASH_TABLE): New.
9402 (struct Lisp_Hash_Table): New.
9403 (XHASH_TABLE): New.
9404 (XSET_HASH_TABLE): New.
9405 (HASH_TABLE_P): New.
9406 (CHECK_HASH_TABLE): New.
9407 (DEFAULT_HASH_SIZE): New.
9408 (DEFAULT_REHASH_THRESHOLD): New.
9409 (DEFAULT_REHASH_SIZE): New.
9410
9411 * xterm.c (x_draw_glyphs): Add parameters real_start and real_end.
9412 (x_write_glyphs): Compute overwritten cursor using real start
9413 and end positions of display.
9414 (x_insert_glyphs): Ditto.
9415
94161999-07-10 Gerd Moellmann <gerd@gnu.org>
9417
9418 * keyboard.c (read_char): Use message3_nolog to show help-echo.
9419
9420 * dispnew.c (blank_row): Add y-position as parameter. Compute
9421 visible height.
9422
9423 * xdisp.c (next_element_from_string): Give padding spaces
9424 a position of -1.
9425
427ec082 9426 * dispnew.c (adjust_glyph_matrix): Some work to support
26901792
DL
9427 marginals areas on tty frames in a future version.
9428 (allocate_matrices_for_frame_redisplay): Ditto.
9429
9430 * xdisp.c (display_line): At ZV, set glyph row's displays_text_p
9431 to zero if number of glyphs in the row is <= 1.
9432
94331999-07-09 Gerd Moellmann <gerd@gnu.org>
9434
9435 * dispnew.c (buffer_posn_from_coords): Take left marginal area
9436 into account.
9437
9438 * xdisp.c (handle_display_prop): Don't reset area if handing
9439 a property from a string that came from a `display' property.
9440 (handle_single_display_prop): Don't handle recursive `display'
9441 properties.
9442 (handle_single_display_prop): Handle some display property
9443 forms for terminal frames.
9444 (Qimage): Moved here from xfns.c.
9445
9446 * dispextern.h (struct it): New field string_from_display_prop_p.
9447
9448 * xterm.c (x_clip_to_row): Don't let clip_rect include top
9449 line.
9450
94511999-07-08 Gerd Moellmann <gerd@gnu.org>
9452
9453 * xdisp.c (handle_single_display_prop): Handle `:when FORM'.
9454
9455 * window.c (set_window_buffer): Set window's vscroll to zero.
9456
9457 * xdisp.c (QCwhen): New.
9458 (display_prop_end): New.
9459 (handle_single_display_prop): Use it.
9460 (debug_method_add): Print buffer name if tracing.
9461 (try_window_reusing_current_matrix): Compute visible height
9462 of reused rows. Fix cursor position calculation in case of
9463 top-line.
9464
9465 * dispextern.h (struct redisplay_interface): Add parameter
9466 cursor_on_p to update_window_end_hook.
9467
9468 * xterm.c (x_update_window_end): Add parameter cursor_on_p.
9469
94701999-07-07 Gerd Moellmann <gerd@gnu.org>
9471
427ec082 9472 * xdisp.c (redisplay_internal): Ensure that redisplayinp_p
26901792
DL
9473 doesn't become negative when decrementing it.
9474
9475 * eval.c (Fsignal): Reset redisplaying_p to zero.
9476
9477 * xdisp.c (try_window_reusing_current_matrix): Call hooks
9478 for window update.
9479 (try_window_id): Ditto.
9480
9481 * xterm.c (x_clear_end_of_line): Handle top-line correctly.
9482 (x_scroll_run): Ditto.
9483 (any_help_event_p): New.
9484 (x_initialize): Set it to zero.
9485 (XTread_socket): Clear help echo only if any_help_event_p.
9486
9487 * xdisp.c (init_iterator): Set top_line_p.
9488 (start_display): Use correct initial y if top-line is present.
9489 (make_cursor_line_fully_visible): Bug fixes for top-line.
9490 (try_scrolling): Ditto.
9491 (try_window_reusing_current_matrix): Ditto.
9492
9493 * dispextern.h (struct it): Add top_line_p.
9494
9495 * dispnew.c (shift_glyph_matrix): Move some computations out
9496 of the loop.
9497
427ec082 9498 * dispnew.c (margin_glyphs_to_reserve): Use NUMBERP and
26901792
DL
9499 XFLOATINT.
9500
95011999-07-06 Gerd Moellmann <gerd@gnu.org>
9502
9503 * dispnew.c (update_frame_1): When setting cursor in echo area,
9504 skip only over padding spaces at the end.
9505
9506 * xfaces.c (realize_tty_face): Set face's font_name field to
9507 "tty".
9508
9509 * term.c (update_end): Turn cursor on only if selected window's
9510 cursor_off_p flag is not set.
9511
95121999-07-05 Gerd Moellmann <gerd@gnu.org>
9513
9514 * term.c (TS_cursor_visible): Renamed from TS_visual_mode.
9515 (TS_cursor_normal): Renamed from TS_end_visual_mode.
9516 (TS_cursor_invisible): New.
9517 (term_init): Initialize TS_cursor_invisible.
9518 (tty_hide_cursor): New.
9519 (tty_show_cursor): New.
9520 (update_end): Show tty cursor.
9521 (update_begin): Hide tty cursor to prevent cursor flickering
9522 during redisplays triggered by timers (stealth fontification).
9523
9524 * keyboard.c (make_lispy_event) <TOOLBAR_EVENT>: Apply modifiers.
9525
9526 * xterm.c (XTread_socket) [USE_MOTIF] <KeyPress>: Catch events
9527 in scroll bars.
9528 (x_handle_toolbar_click): Set modifier bits.
9529
95301999-07-04 Gerd Moellmann <gerd@gnu.org>
9531
9532 * keyboard.c (kbd_store_ptr): Declare it as a volatile pointer
9533 instead of a pointer to a volatile input_event.
427ec082 9534 (kbd_buffer_store_event): Remove volatile modifier from
26901792
DL
9535 declaration of local variable `sp'.
9536 (Fdiscard_input): Don't cast when assigning kbd_store_ptr
9537 to kbd_fetch_ptr.
9538
95391999-07-03 Gerd Moellmann <gerd@gnu.org>
9540
9541 * xdisp.c (try_window_id): Set beg_unchanged and end_unchanged
9542 only if buffer is modified. Return quickly if changes are
9543 above window start.
9544
95451999-07-02 Gerd Moellmann <gerd@gnu.org>
9546
9547 * dispextern.h (HSCROLL_WINDOWS): Removed.
9548
9549 * xdisp.c (mark_window_display_accurate): Don't set
9550 w->region_showing.
9551 (redisplay_internal): Don't call redraw_garbaged_frames.
9552
95531999-07-01 Gerd Moellmann <gerd@gnu.org>
9554
9555 * xdisp.c (echo_area_display): Don't display truncation marks
9556 for messages because 20.4 doesn't do it either.
9557 (redisplay_window): Case same window start. Instead of giving
9558 up when cursor is partially visible, make it fully visible.
9559 (mark_window_display_accurate): Some cleanup. Record window's
9560 last cursor information.
9561 (debug_method_add): Improved.
9562 (redisplay_internal): Record last cursor info only if not
9563 consider_all_windows_p.
9564
9565 * dispnew.c (update_window): Update top line after scrolling.
9566 (blank_row): Renamed from make_empty_enabled_row.
9567 (increment_glyph_row_buffer_positions): Increment positions
9568 in buffers, only.
9569
9570 * window.c (Fcoordinates_in_window_p): Add top-line to doc
9571 string.
9572
95731999-06-30 Gerd Moellmann <gerd@gnu.org>
9574
9575 * dispnew.c (update_window): Check that updated row is visible.
9576
9577 * xterm.c (x_draw_row_bitmaps): Check for invisible rows at
9578 top of window differently.
9579
9580 * xdisp.c (try_window_reusing_current_matrix): Don't do it
9581 if region is showing.
9582
9583 * dispnew.c (adjust_glyph_matrix): Check w->vscroll when
9584 avoiding matrix reallocation. Set window_vscroll in matrix.
9585
9586 * dispextern.h (struct glyph_matrix): Add member window_vscroll.
9587
26901792
DL
9588 * xdisp.c (debug_method_add): New.
9589 (debug_redisplay_method): Removed.
9590 (try_window_reusing_current_matrix): Handle case where old
9591 window start is the same as new window start.
9592
9593 * dispextern.h (struct glyph_matrix) [GLYPH_DEBUG]: Make `method'
9594 an array instead of a pointer.
9595
26901792
DL
9596 * xfns.c (Fx_show_tip): Undo previous change.
9597
9598 * xterm.c (x_append_glyph): Clear glyph->u.val.
9599
9600 * dispextern.h (struct glyph): Increase size of face_id bit-field
9601 for CHAR_GLYPH to 12.
9602
96031999-06-29 Gerd Moellmann <gerd@gnu.org>
9604
9605 * xfaces.c (x_charset_registry): Make it externally visible.
9606
96071999-06-28 Gerd Moellmann <gerd@gnu.org>
9608
427ec082 9609 * dispnew.c (update_window): Use mode_line_p flag of rows
26901792
DL
9610 instead of WINDOW_WANTS_MODELINE_P.
9611
9612 * xterm.c (clear_mouse_face): Make externally visible.
9613
9614 * xfns.c (Fx_show_tip): Clear mouse face before showing tip.
9615
9616 * xterm.c (expose_line): Handle exposure of top-lines.
9617
9618 * xterm.c (XTframe_up_to_date): Don't call note_mouse_highlight
9619 if mouse_face_mouse_frame is null.
9620
9621 * xdisp.c (redisplay_window): If window is echo_area_window,
9622 and update_mode_line is set, update menubar and toolbar.
9623
9624 * dispnew.c (space_glyph): Set its charpos to -1.
9625 (update_frame_1): Ignore trailing padding spaces.
9626
9627 * xdisp.c (next_element_from_c_string): Set position of padding
9628 glyphs to -1.
9629
96301999-06-27 Gerd Moellmann <gerd@gnu.org>
9631
9632 * xfns.c (x_laplace_read_row): Use XQueryColors instead of
9633 XQueryColor.
9634
9635 * xdisp.c (display_menu_bar): Remove unwarranted assertion.
9636 (set_cursor_from_row): Skip over glyphs having a null object at
9637 the start of rows.
9638 (insert_left_trunc_glyphs): Use charpos < 0 to indicate truncation
9639 glyphs.
9640 (handle_invisible_prop): Compute next change only when needed.
9641 (handle_face_prop): Don't correct DEFAULT_FACE_ID if in the mode
9642 line.
9643
96441999-06-26 Gerd Moellmann <gerd@gnu.org>
9645
9646 * xrdb.c (x_load_resources): Don't set resource for double-click
9647 time.
9648
9649 * xdisp.c (try_window_id): Return quickly if all changes are
9650 below the window's current matrix end.
9651
9652 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): Remove window
9653 parameter.
9654
9655 * xdisp.c (try_window_reusing_current_matrix): Set no_scrolling_p
9656 in desired not in current matrix.
9657 (try_window_reusing_current_matrix): Rotate matrices starting
9658 at start_vpos instead of 0.
9659
9660 * xterm.c (expose_window): Use window_text_bottom_y.
9661 (fast_find_position): Ditto.
9662
9663 * xdisp.c (redisplay_window): Use window_text_bottom_y.
9664 (try_window_reusing_current_matrix): Ditto.
9665 (get_last_unchanged_at_beg_row): Ditto.
9666 (init_iterator): Ditto.
9667
9668 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate one
9669 more row.
9670 (check_matrix_invariants): Use window_text_bottom_y.
9671 (update_window): Ditto.
9672 (scrolling_window): Ditto.
9673
9674 * xdisp.c (window_text_bottom_y): New.
9675
96761999-06-25 Gerd Moellmann <gerd@gnu.org>
9677
9678 * xterm.c (XTread_socket): Set mouse_face_frame to zero after
9679 clearing mouse face.
9680 (XTread_socket) <EnterNotify> [LESSTIF_VERSION]: If
9681 event.xcrossing.focus is not set, and focus is in the menu bar,
9682 set focus frame as if event.xcrossing.focus were set.
9683
96841999-06-24 Gerd Moellmann <gerd@gnu.org>
9685
9686 * keyboard.c (make_lispy_event): Handle mouse on top lines.
9687 * keyboard.c (make_lispy_movement): Ditto.
9688
9689 * window.c (coordinates_in_window): Return 4 if on top line.
9690 (Fcoordinates_in_window_p): Return `top-line' if on top line.
9691
9692 * xdisp.c (window_box_height): Subtract top line height.
9693 (window_box): Add top line height to top y position if top line
9694 exists.
9695 (init_iterator): If base_face_id is TOP_LINE_FACE_ID, set row to
9696 the top line row of the window. Set initial y-position to
9697 window's top line height plus delta.
9698 (start_display): Choose start glyph row depending on whether
9699 window has a top line.
9700 (try_scrolling): Take top line height into account for aggressive
9701 scrolling.
9702 (compute_window_start_on_continuation_line): Take top line into
9703 account.
427ec082 9704 (redisplay_window): Ditto. If top line height has changed,
26901792
DL
9705 trigger a new redisplay.
9706 (try_window_reusing_current_matrix): Take top line into account.
9707 (find_last_row_displaying_text): Ditto.
9708 (get_last_unchanged_at_beg_row): DItto.
9709 (try_window_id): Ditto.
9710 (compute_line_metrics): Ditto.
9711
9712 * dispnew.c (shift_glyph_matrix): Compute visible row height
9713 taking top line of window into account.
9714 (update_window): Update top line. If scrolling_window detects
9715 that all rows are equal, only set cursor.
9716 (update_window_line): Call after_update_window_line_hook if
9717 mode_line_p flag of rows has changed.
9718 (scrolling_window): Add parameter top_line_p. Return -1 if
9719 all rows are equal.
9720 (mode_line_string): Add parameter mode_line_p. Handle strings
9721 in top lines.
9722
9723 * dispextern.h (MATRIX_TOP_LINE_ROW): New.
9724 (MATRIX_FIRST_TEXT_ROW): New.
9725 (MATRIX_ROW_PARTIALLY_VISIBLE_P): Use row's visible_height.
9726 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_TOP_P): New.
9727 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_BOTTOM_P): New.
9728 (MATRIX_TOP_LINE_HEIGHT): New.
9729 (CURRENT_MODE_LINE_HEIGHT): Use estimate_mode_line_height.
9730 (CURRENT_TOP_LINE_HEIGHT): New.
9731 (DESIRED_TOP_LINE_HEIGHT): New.
9732 (WINDOW_DISPLAY_TOP_LINE_HEIGHT): New.
9733 (WINDOW_DISPLAY_HEIGHT_NO_MODE_LINE): Replaces
9734 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
9735 (WINDOW_DISPLAY_TEXT_HEIGHT): New.
9736
9737 * xterm.c (x_after_update_window_line): Don't draw bitmaps for top
9738 lines.
9739 (x_draw_row_bitmaps): Take top line into account when clearing
9740 bitmap area.
9741 (x_estimate_mode_line_height): Replacement for
9742 x_frame_mode_line_height.
9743 (x_get_glyph_string_clip_rect): Take top line into account.
9744 (x_clear_end_of_line): Ditto.
9745 (note_mode_line_highlight): Add parameter mode_line_p. Handle
9746 top lines.
9747 (note_mouse_highlight): Call note_mode_line_highlight for top lines.
9748 (x_erase_phys_cursor): Take top line into account.
9749
9750 * xdisp.c (window_box_height): Subtract top line height if
9751 window wants a top line.
9752 (display_mode_lines): New.
9753 (redisplay_window): Call it.
9754 (display_mode_line): Add parameters face_id and format.
9755
9756 * dispextern.h (CURRENT_TOP_LINE_HEIGHT): New.
9757 (MATRIX_TOP_LINE_HEIGHT): New.
9758
9759 * xterm.c (x_frame_mode_line_height): Add parameter face_id.
9760
9761 * term.c (estimate_mode_line_height): Renamed from
9762 frame_mode_line_height. Add parameter face_id.
9763 (estimate_mode_line_height_hook): Renamed from
9764 frame_mode_line_height_hook.
9765 (produce_special_glyphs_hook): Removed.
9766 (produce_glyphs_hook): Removed.
9767
97681999-06-23 Gerd Moellmann <gerd@gnu.org>
9769
9770 * dispextern.h (WINDOW_WANTS_TOP_LINE_P): New.
9771 (struct glyph_row): Add mode_line_p.
9772
9773 * xfaces.c (realize_basic_faces): Realize face `top-line'.
9774 (Qtop_line): New.
9775 (syms_of_xfaces): Initialize Qtop_line.
9776
9777 * dispextern.h (TOP_LINE_FACE_ID): New.
9778
9779 * buffer.c (init_buffer_once): Set default for
9780 top_line_format to nil.
9781 (init_buffer_once): Init top_line_format.
9782 (default-top-line-format): New.
9783 (top-line-format): New buffer-local variable.
9784
9785 * buffer.h: Add top_line_format.
9786
9787 * xdisp.c (overlay_arrow_changed_p): Removed because not used.
9788
97891999-06-17 Dave Love <fx@gnu.org>
9790
9791 * xfns.c: Move the PNG section before the JPEG one to avoid
9792 problems surrounding setjmp.h/png.h on GNU/Linux.
427ec082 9793
26901792
DL
97941999-06-17 Gerd Moellmann <gerd@gnu.org>
9795
9796 * xfns.c (x_kill_gs_process): Don't free colors.
9797
97981999-06-17 Dave Love <fx@gnu.org>
9799
9800 * s/gnu-linux.h: Zap spurious ~.
9801
98021999-06-16 Gerd Moellmann <gerd@gnu.org>
9803
9804 * xfns.c (gif_load): Improve multi-image support.
9805
98061999-06-15 Gerd Moellmann <gerd@gnu.org>
9807
9808 * xfns.c (gif_load): Support multi-image files.
9809
9810 * Makefile.in (LIBGIF): Use libungif.
9811
9812 * configure.in (HAVE_GIF): Use libungif instead of libgif
9813 because the former doesn't contain patented compression code.
9814
9815 * xdisp.c (compute_window_start_on_continuation_line): Don't
9816 do it if line start is too far away from window start.
9817
98181999-06-14 Gerd Moellmann <gerd@gnu.org>
9819
9820 * buffer.c (init_buffer_once): Set buffer_local_flags for
9821 scroll_*_aggressively.
9822 (syms_of_buffer): Add DEFVAR_PER_BUFFER for scroll-*-aggressively.
9823 (init_buffer_once): Set defaults for these variables.
9824 (syms_of_buffer): Add default-scroll-*-aggressively.
9825
9826 * buffer.h (scroll_up_aggressively): New.
9827 (scroll_down_aggressively): New.
9828
9829 * Makefile.in (LIBPNG): Add -lz -lm in case we're linking with
9830 a static PNG library.
9831
9832 * configure.in (HAVE_PNG): Add -lz -lm when checking for PNG lib
9833 in case it's a static library.
9834
9835 * Makefile.in (ctagsfiles): Split so that files starting
9836 with an `x' are found before files starting with `w32'.
9837 (ctagsfiles1): New.
9838 (ctagsfiles2): New.
9839 (TAGS): Use ctagsfiles[12] instead of ctagsfiles.
9840
9841 * xdisp.c (compute_window_start_on_continuation_line): New.
9842 (redisplay_window): Use it.
9843 (INFINITY): New.
9844 (reseat_to_string): Use it.
9845 (hscroll_window_tree): Ditto.
9846 (compute_window_start_on_continuation_line): Ditto.
9847 (redisplay_window): Don't force display with a new window start.
9848
98491999-06-06 Gerd Moellmann <gerd@gnu.org>
9850
9851 * xfns.c (x_report_frame_params): Don't report `outer-window-id'
9852 if widget not present.
9853
9854 * xdisp.c (prepare_menu_bars): Ignore tooltip frame.
9855
98561999-06-04 Gerd Moellmann <gerd@gnu.org>
9857
9858 * xfaces.c (recompute_basic_faces)[GLYPH_DEBUG]: Check return
9859 value of realize_basic_faces.
9860 (load_face_font_or_fontset): Store full font name in face.
9861 (realize_default_face): Use full font name.
9862
26901792
DL
9863 * xterm.c (x_produce_glyphs): Set member char_to_display.
9864 (x_append_glyph): Store char_to_display in glyphs.
9865
9866 * dispextern.h (struct it): Add char_to_display.
9867
9868 * xfns.c (x_set_font): Don't call face-set-after-frame-default
9869 if faces haven't been initialized.
9870 (Fx_create_frame): Call face-set-after-frame-default after
9871 faces have been initialized, and widget has been created.
9872
9873 * puresize.h (BASE_PURESIZE): Increased.
9874
98751999-06-01 Gerd Moellmann <gerd@gnu.org>
9876
9877 * xfaces.c (set_lface_from_font_name): Add parameter force_p.
9878 (Finternal_set_lisp_face_attribute): If frame is t when
9879 :font attribute is set, use the selected frame.
9880 (clear_face_cache): Add parameter clear_fonts_p.
9881 (Fclear_face_cache): Add optional parameter thorougly.
9882
9883 * xfaces.c (face_numeric_value): Return -1 if symbol is not
9884 in table.
9885 (Fclear_face_cache): New.
9886 (choose_face_fontset_font): If fontset doesn't contain font
9887 pattern for the given charset, use CHARSET_ASCII.
9888 (Finternal_set_lisp_face_attribute): Fix handling of nil
9889 stipple attribute.
9890 (Finternal_set_lisp_face_attribute): Fix handling of changing
9891 font-related face attributes of the default face.
9892 (set_lface_from_font_name): Set only attributes that aren't
9893 specified.
9894
98951999-05-31 Gerd Moellmann <gerd@gnu.org>
9896
9897 * xfaces.c (SCALABLE_FONTS): Define this to enable scalable
9898 font support.
9899 (Vscalable_fonts_allowed) [SCALABLE_FONTS]: New.
9900 (x_face_list_fonts): Add parameter scalable_fonts_p. Handle
9901 scalable fonts depending on the setting of SCALABLE_FONTS.
9902 (first_font_matching): List more than one font to find the
9903 first non-scalable matching font.
9904 (sorted_font_list): Let x_face_list_fonts return scalable fonts
9905 depending on SCALABLE_FONTS.
9906 (better_font_p): New parameter compare_pt_p. If zero, don't
9907 compare point sizes of fonts.
9908 (exact_face_match_p) [SCALABLE_FONTS]: New.
9909 (build_scalable_font_name) [SCALABLE_FONTS]: New.
9910 (may_use_scalable_font_p) [SCALABLE_FONTS]: New.
9911 (best_matching_font) [SCALABLE_FONTS]: Handle scalable fonts.
9912 (syms_of_xfaces): Add scalable-fonts-allowed.
9913
99141999-05-26 Gerd Moellmann <gerd@gnu.org>
9915
9916 * xfns.c (png_load): Let PNG lib handle gamma. Construct
9917 mask only if image contains simple transparency information.
9918 Otherwise, combine image with frame background color.
9919
9920 * configure.in (--with-png, HAVE_PNG): New.
9921
9922 * config.in (HAVE_PNG): New.
9923
9924 * Makefile.in: Add PNG library.
9925
9926 * xfns.c: Add PNG support.
9927
99281999-05-25 Gerd Moellmann <gerd@gnu.org>
9929
9930 * xdisp.c (init_xdisp): Initialize echo_area_message and
9931 previous_echo_area_message to nil.
9932
9933 * keyboard.c (read_char): Rename local variable echo_area_message
9934 because it shadows the global one.
9935
99361999-05-05 Gerd Moellmann <gerd@gnu.org>
9937
9938 * xterm.c (note_mode_line_highlight): Restructured.
9939
9940 * window.c (coordinates_in_window): Handle windows that don't have
9941 a mode line because their buffer's mode-line-format is nil.
9942 Recognize the mode line under x positions that correspond to
9943 flags areas and left scroll bar.
9944
99451999-05-02 Dave Love <fx@gnu.org>
9946
9947 * xterm.c (note_mouse_highlight): Separate help-echo processing
9948 from check on mouse-face so that it works generally.
9949
99501999-04-21 Gerd Moellmann <gerd@gnu.org>
9951
9952 * sound.c (Fplay_sound): Run hook play-sound-hook.
9953 (Qplay_sound_hook): New.
9954
99551999-04-20 Gerd Moellmann <gerd@gnu.org>
9956
9957 * xdisp.c (update_echo_area): Handle echo_area_message.
9958
99591999-04-19 Gerd Moellmann <gerd@gnu.org>
9960
9961 * editfns.c (Fmessage): Use message3.
9962
9963 * print.c (printchar): Set echo_area_message to nil.
9964 (strout): Ditto.
9965
9966 * minibuf.c (read_minibuf): Reset echo message strings to nil.
9967 (Fminibuffer_completion_help): Ditto.
9968
9969 * keyboard.c (cmd_error_internal): Set echo_areA_message.
9970 (command_loop_1): Test echo_areA_message.
9971 (read_char): Ditto.
9972 (record_menu_key): Set echo_area_message to nil.
9973 (Fexecute_extended_command): Test echo_area_message.
9974 (Fexecute_extended_command): Handle echo_area_message.
9975
9976 * fileio.c (Fdo_auto_save): Handle the case that echo_area_message
9977 is set.
9978
9979 * editfns.c (Fcurrent_message): If echo_area_message is set,
9980 return a substring of that string.
9981
9982 * dispnew.c (direct_output_for_insert): Test echo_area_message
9983 in addition to echo_area_glyphs.
9984 (set_window_cursor_after_update): Ditto.
9985 (update_frame_1): Ditto.
9986
9987 * alloc.c (Fgarbage_collect): Use message3_nolog to display
9988 old Lisp message string.
9989
9990 * xdisp.c (echo_area_message): New.
9991 (previous_echo_area_message): New.
9992 (syms_of_xdisp): Initialize and staticpro new variables.
9993 (echo_area_display): Display echo_area_message if set.
9994 (message2_nolog): Set echo_area_message and
9995 previous_echo_area_message.
9996 (echo_area_display): Set previous_echo_area_message.
9997 (redisplay_internal): Display echo area if echo_area_message
9998 or previous_echo_area_message are set.
9999 (redisplay_preserve_echo_area): Test/set echo_area_message and
10000 previous_echo_area_message.
10001 (redisplay_window): Test echo_area_message.
10002 (message3_nolog): New.
10003 (message3): New.
10004
10005 * editfns.c (Fformat): Add text properties to the result string
10006 from properties of the format string and properties of string
10007 arguments.
10008
10009 * textprop.c (text_property_list): New.
10010 (add_text_properties_from_list): New.
10011 (extend_property_ranges): New.
10012
100131999-03-29 Gerd Moellmann <gerd@gnu.org>
10014
10015 * xfaces.c (Qraised, Qsunken, QCshadow): Removed.
10016 (QCline_width, QCstyle, Qpressed_button, Qreleased_button): New.
10017 Use these symbols for the box face attribute instead of the
10018 removed ones.
10019
100201999-03-12 Gerd Moellmann <gerd@gnu.org>
10021
10022 * xfaces.c (realize_tty_face): Don't set alt_char_p of face.
10023 Correct wrong test for slant.
10024
100251999-03-10 Gerd Moellmann <gerd@gnu.org>
10026
10027 * xfaces.c: Use `unspecified' for unspecified face attributes,
10028 use t and nil for on/off.
10029
100301999-03-06 Gerd Moellmann <gerd@gnu.org>
10031
10032 * buffer.c (syms_of_buffer): Extend doc string of
10033 mode-line-format.
10034
10035 * xfaces.c (x_face_list_fonts): New parameter try_alternatives_p.
10036 (first_font_matching): New.
10037 (set_lface_from_font_name): Use it if font name is a pattern.
10038 (font_field_wildcard_p): Removed.
10039
10040 * dispnew.c (shift_glyph_matrix): Add `window' parameter.
10041 Recompute visible height of rows.
10042
10043 * xterm.c (note_mouse_highlight): Reorder code for help-echo.
10044 Don't accept non-strings for help-echo from overlays.
10045
100461999-03-04 Dave Love <fx@gnu.org>
10047
10048 * xterm.c (note_mouse_highlight): Check overlays for help-text
10049 property.
10050 (XTread_socket): Fix compiler warning.
427ec082 10051
26901792
DL
100521999-03-05 Gerd Moellmann <gerd@gnu.org>
10053
427ec082 10054 * xterm.c (note_mouse_highlight): Don't restrict number of
26901792
DL
10055 overlay to 10. Call overlays_at so that it doesn't try to
10056 extend the vector.
10057
10058 * xdisp.c (compute_line_metrics): Compute glyph row's visible
10059 height.
10060
10061 * dispnew.c (row_equal_p): Compare visible row height, only.
10062 (update_text_area): Draw whole line if visible heights of
10063 rows differ.
10064 (update_window_line): Call after_update_window_line_hook
10065 if visible row height has changed.
10066
10067 * dispextern.h (MATRIX_ROW_VISIBLE_HEIGHT): Removed.
10068 (struct glyph_row): New member visible_height.
10069
10070 * xfaces.c (font_field_wildcard_p): New.
10071 (set_lface_from_font_name): Remove parameter force_p. Accept
10072 font names containing wildcards.
10073
100741999-03-04 Gerd Moellmann <gerd@gnu.org>
10075
10076 * xterm.c (x_after_update_window_line): Clear internal border
10077 when windows_or_buffers_changed.
10078
10079 * dispextern.h (WINDOW_WANTS_MODELINE_P): Return zero if window's
10080 buffer has a nil mode_line_format.
10081
100821999-03-03 Gerd Moellmann <gerd@gnu.org>
10083
10084 * xterm.c (x_setup_relief_colors): Use either background color
10085 or specified color.
10086
10087 * xfaces.c (realize_x_face): Set face->use_box_color_for_shadows_p.
10088
10089 * dispextern.h (struct face): Add use_box_color_for_shadows_p.
10090
10091 * xterm.c (x_draw_box_rect): New.
10092 (x_draw_glyph_string_box): Renamed from
10093 x_draw_glyph_string_relief. Call x_draw_box_rect.
10094
10095 * xfns.c (QCrelief): New.
10096 (syms_of_xfns): Initialize it.
10097
10098 * dispextern.h (struct glyph): Rename left_shadow_p to
10099 left_box_line_p, right_shadow_p to right_box_line_p.
10100 (MAX_RELIEF_THICKNESS): Removed.
10101 (struct it): Rename members having `relief' in their names
10102 to contain `box' instead.
10103
10104 * xfaces.c (realize_x_face): Handle new box attribute values.
10105 (QCrelief, Qbox): Removed.
10106 (QCshadow, QCcolor, Qraised, Qsunken): New.
10107 (syms_of_xfaces): Initialize new symbols.
10108
101091999-03-02 Gerd Moellmann <gerd@gnu.org>
10110
10111 * dispextern.h (LFACE_RELIEF_INDEX): Removed.
10112
10113 * xfaces.c (LFACE_RELIEF): Removed.
10114 (merge_face_vector_with_property): Remove handling of `:relief'.
10115 (Finternal_set_lisp_face_attribute): Ditto.
10116 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
10117 (Finternal_get_lisp_face_attribute): Ditto.
10118 (realize_default_face): Ditto.
10119 (lface_hash): Don't compute hash from relief.
10120
10121 * dispextern.h (struct face): Replace member `relief' by
10122 `box_line_width'. Add member `box'.
10123 (face_box_type): New.
10124
10125 * xterm.c (x_produce_glyphs): If face has overline, add overline
10126 thickness + 1 to ascent.
10127
101281999-03-01 Gerd Moellmann <gerd@gnu.org>
10129
10130 * xterm.c (x_draw_glyph_string): Draw underline, overline,
10131 strike-through, and boxes.
10132 (x_draw_glyph_string_underline): Removed.
10133
10134 * xfaces.c (QCoverline, QCstrike_through, QCbox): New.
10135 (Qoverline, Qstrike_through, Qbox): New.
10136 (syms_of_xfaces): Define these symbols.
10137 (check_lface_attrs): Add checks for overline, strike-through,
10138 and box.
10139 (Finternal_set_lisp_face_attribute): Set new attributes.
10140 (LFACE_OVERLINE, LFACE_STRIKE_THROUGH, LFACE_BOX): New.
10141 (load_color): Handle new attributes.
10142 (realize_x_face): Ditto.
10143 (merge_face_vector_with_property): Ditto.
10144 (free_face_colors): Ditto.
10145 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
10146 (Finternal_get_lisp_face_attribute): Ditto.
10147 (Finternal_lisp_face_attribute_values): Ditto.
10148
10149 * dispextern.h (lface_attribute_index): Add enumerators for
10150 overstrike, strike-through, and box.
10151 (struct face): Add members for overline, strike-through, and
10152 box.
10153
101541999-02-17 Dave Love <fx@gnu.org>
10155
10156 * s/gnu-linux.h s/gnu.h s/irix5-0.h s/netbsd.h s/sco4.h s/sco5.h
10157 s/template.h (NARROWPROTO): Define on the basis of relevant X cf
10158 files.
10159
101601999-02-16 Gerd Moellmann <gerd@gnu.org>
10161
10162 * keyboard.c (toolbar_items): Call access_keymap with third
10163 parameter 1, so that we don't get inherited toolbar item
10164 definitions.
10165
10166 * xdisp.c (redisplay_internal): In optimization 1, don't decrement
10167 the window end vpos when in empty first line of window.
10168
101691999-02-15 Gerd Moellmann <gerd@gnu.org>
10170
10171 * xfaces.c (set_font_frame_param): New.
10172 (Finternal_set_lisp_face_attribute): Call it.
10173
10174Sun Feb 14 10:54:02 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
10175
10176 * xfaces.c (Finternal_set_lisp_face_attribute_from_resource):
10177 Accept specifications of color for underline.
10178
101791999-02-13 Gerd Moellmann <gerd@gnu.org>
10180
10181 * xfaces.c (Finternal_set_lisp_face_attribute): If parameter
10182 `frame' is t, operate on face defaults for new frames. If it
10183 is nil, operate on the selected frame.
10184
101851999-02-12 Gerd Moellmann <gerd@gnu.org>
10186
10187 * dispnew.c (check_matrix_invariants): Put it in #if 0.
10188 (update_window): Put the call to check_matrix_invariants in #if 0.
10189
10190Sun Feb 7 09:58:49 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
10191
10192 * dispextern.h: Remove all else block of UNDERLINE_COLOR.
10193 Remove definition of UNDERLINE_COLOR.
10194
10195Mon Jan 4 04:43:41 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
10196
10197 * xfaces.c (free_face_colors): Free the color for underline.
10198
10199 * xterm.c (x_draw_glyph_string_underline): Set the color for underline
10200 to the GC.
10201
10202Sun Jan 3 08:41:10 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
10203
10204 * dispextern.h (UNDERLINE_COLOR): Defined.
10205 (struct face): Added two new members.
10206 underline_color, underline_defaulted_p.
10207
427ec082 10208 * xfaces.c (merge_face_vector_with_property):
26901792 10209 (check_lface_attrs): Accept the string value for underline.
427ec082 10210 (Finternal_set_lisp_face_attribute): Likewise.
26901792
DL
10211
10212 * xfaces.c (load_color): Change the last argument type to enum
10213 lface_attribute_index from int. And addec code for underling coloring.
10214 (load_face_colors): Pass LFACE_*_INDEX to load_color.
427ec082 10215
26901792
DL
102161999-02-12 Gerd Moellmann <gerd@gnu.org>
10217
10218 * xfns.c (Fx_image_header): Removed.
10219
102201999-02-07 Gerd Moellmann <gerd@gnu.org>
10221
10222 * xterm.c: Don't include <bitmaps/gray>.
10223 (x_term_init): Use gray_bitmap_width and gray_bitmap_height.
10224
10225 * xfns.c (Fx_image_header): Add missing `\n\'.
10226 (gray_bitmap_width, gray_bitmap_height, gray_bitmap_bits): New.
10227
102281999-02-01 Gerd Moellmann <gerd@gnu.org>
10229
10230 * xterm.c (x_scroll_bar_create): Set background pixel from
10231 specified scroll bar color.
10232 (x_scroll_bar_set_handle): Use scroll bar foreground color.
10233
10234 * xfns.c (x_set_scroll_bar_foreground): Remove all scroll bars.
10235 (x_set_scroll_bar_background): Ditto.
10236
10237 * xterm.c (x_create_toolkit_scroll_bar): Set scroll bar colors.
10238
10239 * xfns.c (x_default_scroll_bar_color_parameter): New.
10240 (Fx_create_frame): Call it.
10241
102421999-01-31 Gerd Moellmann <gerd@gnu.org>
10243
10244 * xfns.c (Fx_create_frame): Initialize scroll bar pixel color
427ec082 10245 values in x_output structure.
26901792
DL
10246 (Qscroll_bar_foreground, Qscroll_bar_background): New.
10247 (syms_of_xfns): Initialize these symbols.
10248
10249 * xterm.h (struct x_output): Add scroll bar pixel colors.
10250
10251 * xfns.c (x_frame_parms): Add entries for scroll bar colors.
10252 (x_set_scroll_bar_foreground): New.
10253 (x_set_scroll_bar_background): New.
10254
26901792
DL
102551999-01-12 Gerd Moellmann <gerd@gnu.org>
10256
10257 * xdisp.c (handle_single_display_prop): New.
10258 (handle_display_prop): Call it.
10259 (handle_raise_prop): Removed.
10260 (handle_height_prop): Removed.
10261 (handle_space_width_prop): Removed.
10262 (handle_face_prop): Remove handling of raised text.
10263 (handle_display_prop): Do it here.
10264
10265 * dispextern.h (DISPLAY_PROP_IDX): Replaces GLYPH_PROP_IDX.
10266 (RAISE_PROP_IDX): Removed.
10267 (HEIGHT_PROP_IDX): Removed.
10268 (SPACE_WIDTH_PROP_IDX): Removed.
10269
10270 * xdisp.c (Qdisplay): Replaces Qglyph.
10271 (handle_display_prop): Formerly handle_glyph_prop.
10272
102731999-01-11 Gerd Moellmann <gerd@gnu.org>
10274
10275 * xdisp.c (reseat_to_string): Set position in display vector to -1.
10276 (handle_stop): Set position in display vector to -1. Don't
10277 check overlay strings when set up to deliver characters from a
10278 display vector.
10279 (set_iterator_to_next): At the end of a run of characters from a
10280 display vector, check whether the display vector display replaces
10281 the display of a character.
10282
102831999-01-05 Gerd Moellmann <gerd@gnu.org>
10284
10285 * xfaces.c (init_frame_faces): Don't realize faces if frame's
10286 X window hasn't been created yet.
10287
102881998-12-06 Gerd Moellmann <gerd@gnu.org>
10289
10290 * sound.c: New.
10291
102921998-12-04 Gerd Moellmann <gerd@gnu.org>
10293
10294 * config.in (HAVE_SOUND): New.
10295
10296 * emacs.c (main): Call syms_of_sound and init_sound.
10297
10298 * Makefile.in (obj): Add sound.o.
10299
10300 * configure.in: Add checks for machine/soundcard.h and sys/soundcard.h.
10301
10302 * config.in (HAVE_MACHINE_SOUNDCARD_H): New.
10303 (HAVE_SYS_SOUNDCARD_H): New.
10304
103051998-12-03 Gerd Moellmann <gerd@gnu.org>
10306
10307 * buffer.h (struct buffer): indicate_empty_lines renamed from
10308 indicate_zv_lines.
10309
10310 * buffer.c (indicate-empty-lines): Renamed from indicate_zv_lines.
10311 (default-indicate-zv-lines): Likewise.
10312
10313 * dispextern.h (struct glyph_row): Rename indicate_zv_line_p
10314 to indicate_empty_line_p.
10315
10316 * xdisp.c (reseat_at_next_visible_line_start): Reset method
10317 to next_element_from_buffer.
10318
10319 * frame.c (make_frame): Set n_current_toolbar_items to 0.
10320
10321 * xdisp.c (handle_face_prop): Allow symbols of the form `N+'
10322 and `N-'.
10323
10324 * xfns.c (xbm_scan): New.
10325 (xbm_read_hexint): Removed.
10326 (xbm_read_bitmap_file_data): Use xbm_scan.
10327
10328 * fileio.c (Finsert_file_contents): Prevent redisplay optimizations.
10329
103301998-12-02 Gerd Moellmann <gerd@gnu.org>
10331
10332 * xfns.c (xbm_read_hexint): New.
10333 (xbm_read_bitmap_file_data): New.
10334 (xbm_load_image_from_file): Call xbm_read_bitmap_file_data
10335 instead of XReadBitmapFileData.
10336
10337 * xdisp.c (handle_raise_prop): Compute voffset from current font.
10338
10339 * xfaces.c (face_with_height): New.
10340
10341 * xdisp.c (eval_handler): Renamed from eval_mode_handler.
10342 (eval_form): Renamed from eval_mode_element.
10343 (handle_face_prop): Use it.
10344 (Qheight): Replaces Qsmaller.
10345 (handle_height_prop): Replaces handle_smaller_prop.
427ec082 10346 (handle_face_prop): If iterator's font_height is not an
26901792
DL
10347 integer, evaluate it to get the font height to use.
10348
10349 * dispextern.h (HEIGHT_PROP_IDX): Replaces SMALLER_PROP_IDX.
10350 (struct it): Use `font_height' instead of `smaller'.
10351
103521998-12-01 Gerd Moellmann <gerd@gnu.org>
10353
10354 * xdisp.c (reseat_1): New.
10355 (reseat): Call it.
10356 (move_it_vertically_backward): Ditto.
10357 (redisplay_window): Don't abort when cursor not found in recenter.
10358
103591998-11-30 Gerd Moellmann <gerd@gnu.org>
10360
10361 * xdisp.c (reseat_at_next_visible_line_start): When not
10362 currently delivering display elements from the current buffer,
10363 restore buffer position first.
10364 (init_from_display_pos): Don't set IT's position from the
10365 position passed to this function.
10366
103671998-11-28 Gerd Moellmann <gerd@gnu.org>
10368
10369 * config.in (PROTO): Removed.
10370
10371 * xterm.h: Change PROTO to P_.
10372
103731998-11-26 Gerd Moellmann <gerd@gnu.org>
10374
10375 * xterm.c (take_vertical_position_into_account): New.
10376 (x_produce_image_glyph): Call it.
10377 (x_produce_stretch_glyph): Ditto.
10378 (x_produce_glyphs): Ditto.
10379 (x_fill_glyph_string): Adjust base line for glyph's voffset.
10380 (x_fill_composite_glyph_string): Ditto.
10381 (x_fill_image_glyph_string): Ditto.
10382 (x_fill_stretch_glyph_string): Ditto.
10383
10384 * xdisp.c (display_line): Always compute row height from
10385 max_ascent and max_descent.
10386
10387 * dispextern.h (struct glyph): Add voffset.
10388 (struct it): Replace height by descent, max_height by max_descent.
10389
10390 * xterm.c (x_append_glyph): Set voffset
10391 (x_append_stretch_glyph): Ditto.
10392 (x_produce_image_glyph): Ditto.
10393 (x_produce_glyphs): Take voffset into account.
10394 (x_produce_image_glyph): Ditto.
10395 (x_produce_stretch_glyph): Ditto.
10396
10397 * dispextern.h (struct it): Add voffset.
10398 * xdisp.c (push_it): Save voffset.
10399 (pop_it): Restore it.
10400
10401 * xdisp.c (it_props): Add entry for `raise'.
10402 (handle_raise_prop): New.
10403
10404 * dispextern.h (RAISE_PROP_IDX): New.
10405
10406 * xdisp.c (Qraise): New.
10407 (syms_of_xdisp): Define Qraised.
10408
10409 * xterm.c (x_scroll_bar_move): Clear to the left and right
10410 of toolkit scroll bars differently.
10411 (x_scroll_bar_move): Removed.
10412 (XTset_vertical_scroll_bar): Move code from x_scroll_bar_move here.
10413
10414 * dispextern.h: Make it compilable --with-x=no.
10415 * alloc.c: Ditto.
10416 * emacs.c: Ditto.
10417 * dispnew.c: Ditto.
10418 * keyboard.c: Ditto.
10419 * term.c: Ditto.
10420 * xdisp.c: Ditto.
10421 * xfaces.c: Ditto.
10422 * xfns.c: Ditto.
10423 * xmenu.c: Ditto.
10424
104251998-11-25 Gerd Moellmann <gerd@gnu.org>
10426
10427 * xterm.c (XTread_socket): Cancel help-echo when leaving frame.
10428
104291998-11-24 Gerd Moellmann <gerd@gnu.org>
10430
10431 * xterm.c (x_set_toolkit_scroll_bar_thumb): When dragging,
10432 update slider size, only.
10433 (xm_scroll_callback): Set dragging member of the scroll bar.
10434 (xt_action_hook): Reset last_scroll_bar_part.
10435 (XTredeem_scroll_bar): Reset bar->dragging to nil.
10436
26901792
DL
10437 * xfns.c (Fx_hide_busy_cursor): Don't try to hide busy cursor
10438 window on newly created frames that don't have one.
10439
104401998-11-23 Gerd Moellmann <gerd@gnu.org>
10441
10442 * xdisp.c (restore_overlay_strings): Removed.
10443 (restore_dpvec): Removed.
10444 (init_from_display_pos): Inline both functions above.
10445
10446 * xfns.c (IMAGE_NON_NEGATIVE_INTEGER_VALUE): New.
10447 (parse_image_spec): Handle it.
10448 (xbm_format): Use it.
10449 (xpm_format): Ditto.
10450 (pbm_format): Ditto.
10451 (jpeg_format): Ditto.
10452 (tiff_format): Ditto.
10453 (gif_format): Ditto.
10454 (gs_format): Ditto.
10455
10456 * xdisp.c (set_window_cursor): Removed.
10457 (redisplay_internal): Case cursor motion in cursor line of
10458 selected window; use set_cursor_from_row.
10459
104601998-11-22 Gerd Moellmann <gerd@gnu.org>
10461
10462 * widget.c (EmacsFrameSetCharSize): Take widget's border width
10463 into account.
10464
104651998-11-21 Gerd Moellmann <gerd@gnu.org>
10466
10467 * xterm.c (expose_frame): Redraw menu bar window.
10468
10469 * xdisp.c (display_menu_bar): Record hpos instead of x-position
10470 in menu item.
10471
10472 * dispnew.c (change_frame_size_1): Use FRAME_TOP_MARGIN instead
10473 of FRAME_TOOLBAR_LINES. Use `f' instead of `frame'.
10474
10475 * widget.c (set_frame_size): Use FRAME_SCROLL_BAR_COLS
10476 to determine vertical_scroll_bar_extra.
10477 (EmacsFrameSetCharSize): Ditto.
10478 * xfns.c (x_figure_window_size): Ditto.
10479
10480 * xterm.c (x_draw_row_bitmaps): Draw in `bitmap-area' face.
10481 (x_draw_bitmap): Ditto.
10482
10483 * dispextern.h (face_id): New id BITMAP_AREA_FACE_ID.
10484 * xfaces.c (realize_basic_faces): Realize it.
10485
104861998-11-20 Gerd Moellmann <gerd@gnu.org>
10487
10488 * xmenu.c (xmenu_show): Add workaround for remaining button grab
427ec082 10489 under LessTif Use the widget of the frame as parent for the
26901792
DL
10490 menu, again.
10491
104921998-11-19 Gerd Moellmann <gerd@gnu.org>
10493
10494 * xterm.c (XTread_socket): Inhibit busy cursor for EnterNotify.
10495 When EnterNotify, don't generate a mouse movement event if
10496 notification is from a busy-cursor child window.
10497
10498 * xterm.h (struct x_output): Add busy_window, remove cursor.
10499
10500 * xfns.c (Fx_show_busy_cursor): Formerly Fx_display_busy_cursor.
10501 Use a transparent window to display the busy-cursor.
10502 (Fx_hide_busy_cursor): Formerly Fx_undisplay_busy_cursor.
10503
105041998-11-17 Gerd Moellmann <gerd@gnu.org>
10505
10506 * xdisp.c (check_window_end): New, for debugging.
10507 (CHECK_WINDOW_END): New.
10508 (try_window_id): Use it.
10509
10510 * xterm.c (process_expose_from_menu): Return int.
10511
10512 * keyboard.c (kbd_buffer_get_event): Set flag to prevent recording
10513 TOOLBAR_EVENT events in last_nonmenu_event.
10514
105151998-11-16 Gerd Moellmann <gerd@gnu.org>
10516
10517 * xdisp.c (redisplay_window): If windows_or_buffers_changed,
10518 window end isn't reliable, so set window_end_valid to nil.
10519 (redisplay_internal): If overlay arrow has changed, set
10520 windows_or_buffers_changed to redisplay thoroughly.
10521
10522 * dispnew.c (adjust_glyph_matrix): Invalidate window end, if
10523 necessary.
10524
10525 * xfns.c (file_dialog_cb): New.
10526 (Fx_file_dialog): New.
10527 * fileio.c (Fread_file_name): Call it.
10528
427ec082 10529 * xrdb.c (x_load_resources): Add default resoures for file
26901792
DL
10530 selection dialog.
10531
105321998-11-14 Gerd Moellmann <gerd@gnu.org>
10533
10534 * xterm.c (note_mouse_highlight): Don't highlight when popup
10535 is active.
10536
26901792
DL
10537 * keyboard.c (timer_check): Inhibit busy cursor around calls to
10538 timer-event-handler. This busy cursor tends to be anoying if
10539 fontifying stealthily.
10540
10541 * dispnew.c (direct_output_for_insert): Give up if current row
10542 contains trailing whitespace.
10543
105441998-11-13 Gerd Moellmann <gerd@gnu.org>
10545
10546 * dispextern.h (prop_idx): Add FONTIFIED_PROP_IDX.
10547
10548 * xdisp.c (handle_fontified_prop): New.
10549 (Vfontification_functions): New.
10550 (Qfontification_functions): New.
10551 (it_props): Add handle_fontified_prop.
10552
105531998-11-12 Gerd Moellmann <gerd@gnu.org>
10554
10555 * xmenu.c (xmenu_show): Use the frame's edit_widget as parent.
10556 Otherwise, under LessTif, after the popup has gone, all button
10557 press events come in for the frame's widget, and release events
10558 come in for the edit_widget.
10559 * xterm.c (XTread_socket): Remove workaround for that problem.
10560 (x_set_toolkit_scroll_bar_thumb): Add workaround for LessTif
10561 XmScrollBarSetValues.
10562 (SET_SAVED_MENU_EVENT): Give it statement form.
10563
26901792
DL
10564 * xfaces.c (display_message): If waiting_for_input, don't display
10565 the message.
10566
10567 * window.c (scroll_command): If not acting on current_buffer,
10568 make redisplay consider all windows.
10569
10570 * xfns.c (Fx_hide_tip): Return t if tooltip was open.
10571
10572 * xdisp.c (handle_glyph_prop): Set it->object for images to
10573 the object having the glyph property.
10574
10575 * xterm.c (x_draw_row_bitmaps): Don't draw if row is completely
10576 invisible.
10577
105781998-11-11 Gerd Moellmann <gerd@gnu.org>
10579
10580 * xterm.h (struct x_display_info): Add gray pixmap. * xterm.c
10581 (x_term_init): Create the gray pixmap.
10582 (x_setup_relief_color): Use it.
10583 (x_get_glyph_string_clip_rect): Draw a toolbar window over the
10584 internal border at the top of a frame.
10585 (x_init_glyph_string): Likewise.
427ec082 10586 (x_draw_glyph_string_relief): Correct right x by 1 pixel for
26901792
DL
10587 full-width lines.
10588 (XTflash): Don't flash the toolbar window.
10589
10590 * xterm.c (XTread_socket): Workaround for LessTif popup menus
10591 in case of ButtonPress events.
10592
105931998-11-10 Gerd Moellmann <gerd@gnu.org>
10594
10595 * xrdb.c (x_load_resources): Add grey background colors as
10596 defaults for menus, scroll bars, and dialogs.
10597
10598 * insdel.c (prepare_to_modify_buffer): Move setting
10599 windows_or_buffers_changed from modify_region here.
10600
10601 * xfns.c (Fx_show_tip): Inhibit redisplay.
10602 (Fx_hide_tip): Ditto.
10603 (Fx_image_header): New.
10604
106051998-11-09 Gerd Moellmann <gerd@gnu.org>
10606
10607 * dispnew.c (clear_window_matrices): Set window_end_valid to nil
10608 when clearing current window matrices.
10609
106101998-11-08 Gerd Moellmann <gerd@gnu.org>
10611
10612 * xdisp.c (handle_glyph_prop): Don't set an iterator's buffer
10613 position from a string position. Use the right end position
10614 if the property spans a whole overlay string.
10615
106161998-11-07 Gerd Moellmann <gerd@gnu.org>
10617
10618 * xmenu.c (menubar_selection_callback): Remove workaround for
10619 Lesstif not calling XmNpopdownCallback because it doesn't
10620 handle the case where users don't select any menu item.
10621
26901792
DL
10622 * insdel.c (modify_region): Set windows_or_buffers_changed.
10623
10624 * buffer.c (set_buffer_internal): Don't set
10625 windows_or_buffers_changed.
10626
26901792
DL
10627 * xmenu.c (HAVE_BOXES): Define if USE_X_TOOLKIT.
10628
26901792
DL
10629 * xmenu.c (menubar_selection_callback): Add workaround for
10630 Lesstif not calling XmNpopdownCallback.
10631
10632 * xdisp.c (eval_mode_element): New.
10633 (eval_mode_handler): New.
10634 (display_mode_element): Use eval_mode_element.
10635
10636 * xdisp.c (display_mode_element): Allow `(:eval FORM)'.
10637 Remove code looking at text props of default value.
10638
10639 * xmenu.c (HAVE_BOXES): Define if using Lucid menus.
10640
26901792
DL
106411998-11-06 Gerd Moellmann <gerd@gnu.org>
10642
427ec082 10643 * xmenu.c (single_submenu): Set button_type of menu to
26901792
DL
10644 BUTTON_TYPE_NONE.
10645 (single_submenu): Likewise for panes and menu items.
10646 (set_frame_menubar): Set button_type of menu bar to none.
10647 (xmenu_show): Likewise.
10648 (single_submenu): Set widget values selected slot.
10649 (xmenu_show): Likewise.
10650
26901792
DL
10651 * xmenu.c (push_menu_item): Add parameters `type' and
10652 `selected'. Store it in menu_items.
10653 (MENU_ITEMS_ITEM_TYPE): New.
10654 (MENU_ITEMS_ITEM_SELECTED): New.
10655 (MENU_ITEMS_ITEM_LENGTH): Increase by two.
10656
10657 * xfns.c (clear_image_cache): Get the current time, before
10658 doing anything.
10659 (cache_image): Set prev pointer of next image.
10660 (clear_image_cache): Clear current matrices if any image was
10661 freed.
10662
10663 * xterm.c (XTread_socket): Set inhibit_busy_cursor.
10664
10665 * xfns.c (x_set_cursor): New.
10666 (Fx_display_busy_cursor): New.
10667 (Fx_undisplay_busy_cursor): New.
10668
10669 * xterm.h (struct x_output): Add busy_cursor.
10670
10671 * xfns.c (Vx_busy_pointer_shape): New.
10672 (x_set_mouse_color): Create busy cursor.
10673
10674 * process.c (wait_reading_process_input): Show and hide busy
10675 cursor.
10676
10677 * keyboard.c (command_loop_1): Display busy cursor.
10678
10679 * eval.c (Fsignal): Hide busy cursor.
10680
10681 * buffer.c (set_buffer_internal): Don't set
10682 windows_or_buffers_changed.
10683
10684 * xterm.c (redo_mouse_highlight): New.
10685
106861998-11-04 Gerd Moellmann <gerd@gnu.org>
10687
26901792
DL
10688 * xfns.c (x_create_x_image_and_pixmap): Add depth parameter.
10689 (x_build_heuritic_mask): New.
10690 (lookup_image): Call it.
10691
10692 * xterm.c (note_toolbar_highlight): Always set up help_echo.
10693 (previous_help_echo): New.
10694 (XTread_socket): Generate help event with nil message when
10695 leaving a region with help-echo.
10696 (note_mouse_highlight): Handle `help-echo' over text.
10697 (XTread_socket): Dispatch VisibilityNotify, CirculateNotify,
10698 CirculateRequest.
10699 (clear_mouse_face): Don't clear if tooltip is shown.
10700 (XTread_socket): Redo mouse-highlight after tooltip is gone.
10701 Avoid SET_FRAME_GARBAGED when tooltip is mapped.
10702
10703 * keyboard.c (Vshow_help_function): New.
10704 (read_char): Use it.
10705
107061998-11-03 Gerd Moellmann <gerd@gnu.org>
10707
10708 * xfns.c (x_create_tip_frame): New.
10709 (Fx_show_tip): New.
10710 (Fx_hide_tip): New.
10711
427ec082 10712 * xterm.c (x_destroy_window): Handle case that we don't have
26901792
DL
10713 a widget.
10714
10715 * dispextern.h (struct glyph_row): Rename no_marginal_areas_p
10716 to full_width_p. Add internal_border_p.
10717
107181998-11-02 Gerd Moellmann <gerd@gnu.org>
10719
10720 * xterm.c (note_mode_line_highlight): Check the charpos of
10721 the glyph under the mouse pointer before accessing text
10722 properties at that position.
10723
107241998-11-01 Gerd Moellmann <gerd@gnu.org>
10725
10726 * xterm.c (x_draw_image_relief): Handle toolbar_button_relief.
10727
10728 * xdisp.c (auto-raise-toolbar-buttons): New.
10729 (build_desired_toolbar_string): Handle the flag.
10730 (toolbar-button-margin): New.
10731 (toolbar-button-relief): New.
10732 (build_desired_toolbar_string): Use margin and relief.
10733
10734 * xterm.c (x_set_toolkit_scroll_bar_thumb): Remove workaround
10735 for FreeBSD.
10736 (note_mode_line_highlight): New.
10737 (note_mouse_highlight): Call it.
10738
107391998-10-31 Gerd Moellmann <gerd@gnu.org>
10740
10741 * s/freebsd.h (NARROWPROTO): New.
10742
10743 * xdisp.c (display_string): New parameter face_string.
10744 (display_mode_element): When displaying a symbol with a string
10745 value, use text properties from the symbol's default value, maybe.
10746
10747 * xrdb.c (x_load_resources): Add font defaults for menus and
10748 dialogs.
10749
107501998-10-30 Gerd Moellmann <gerd@gnu.org>
10751
10752 * xfns.c (Fx_create_frame): Try 12pt Courier font first.
10753
107541998-10-29 Gerd Moellmann <gerd@gnu.org>
10755
10756 * xterm.c (x_produce_glyphs): Fix bug causing glyphs to be
10757 produced for characters with codes < 32 under certain
10758 circumstances.
10759
10760 * xdisp.c (redisplay_window): Handle values of PT in front
10761 of invisible, intangible text.
427ec082 10762 (try_window_id): Set overlay_arrow_seen to zero before
26901792
DL
10763 displaying lines.
10764 (display_mode_element): Assign to glyphs written for a mode
10765 line spec `%x' as object the Lisp format string, as position
10766 the position of the `%' in that string.
10767 (display_string): If displaying a C string, optionally get
10768 the face to use from a Lisp string.
10769
10770 * xterm.c (expose_window_tree): Include mode line height.
10771
10772 * xfns.c (Fx_create_frame): Add toolbar height to frame height.
10773
107741998-10-27 Gerd Moellmann <gerd@gnu.org>
10775
10776 * xterm.c (note_mouse_highlight): Change mouse pointer shape
10777 over mode line.
10778
107791998-10-26 Gerd Moellmann <gerd@gnu.org>
10780
10781 * window.c (coordinates_in_window): Use CURRENT_MODE_LINE_HEIGHT.
10782
10783 * xdisp.c (redisplay_window): If mode line height has changed,
10784 arrange for a thorough immediate redisplay using the correct mode
10785 line height.
10786 (window_box_height): Use CURRENT_MODE_LINE_HEIGHT.
10787
10788 * dispextern.h (MATRIX_MODE_LINE_HEIGHT): New.
10789 (CURRENT_MODE_LINE_HEIGHT): New.
10790 (DESIRED_MODE_LINE_HEIGHT): New.
10791
10792 * keyboard.c (make_lispy_event): Add string and string position
10793 info to mouse-click events.
10794 (read_key_sequence): Handle `local-map' property of mode line
10795 strings.
10796
10797 * keyboard.h (POSN_STRING): New.
10798
107991998-10-25 Gerd Moellmann <gerd@gnu.org>
10800
10801 * dispnew.c (mode_line_string): Mew.
10802
10803 * xterm.c (xt_action_hook): New.
10804 (x_create_toolkit_scroll_bar): Add action hook.
10805 (xm_scroll_callback): Implement dragging.
10806
10807 * keyboard.c (Qend_scroll): New.
10808 (scroll_bar_parts): Add it.
10809
10810 * termhooks.h (scroll_bar_end_scroll): New.
10811
10812 * xterm.c (XTread_socket): Bug fix.
10813
108141998-10-24 Gerd Moellmann <gerd@gnu.org>
10815
10816 * xdisp.c (redisplay_window): Finish scroll bars after
10817 redisplaying toolbar.
10818
10819 * keyboard.c (scroll_bar_parts): Add Qtop and Qbottom.
10820 (syms_of_keyboard): Add Qbottom.
10821
10822 * termhooks.h (scroll_bar_to_top): New.
10823 (scroll_bar_to_bottom): New.
10824
10825 * xdisp.c (redisplay_window): Always resize toolbar window if
10826 auto_resize_toolbar_p is non-zero.
10827 (auto_resize_toolbar_p): Renamed from auto_resize_toolbar.
10828 (window_box): New.
10829 (window_box_height): New.
10830 (window_box_width): New.
10831 (window_box_left): New.
10832 (window_box_right): New.
10833 (window_box_edges): New.
10834
108351998-10-23 Gerd Moellmann <gerd@gnu.org>
10836
10837 * xterm.c (x_set_toolkit_scroll_bar_thumb): Kluge for call to
10838 XawScrollbarSetThumb in FreeBSD.
10839 (x_create_toolkit_scroll_bar): Set resource "beNiceToColormap"
10840 to true.
10841
10842 * window.c (get_phys_cursor_glyph): Return null if cursor vpos
10843 is out of range.
10844
10845 * xterm.c (x_create_toolkit_scroll_bar): Set scroll_bar_pixel.
10846 (x_term_init): Initialize it.
10847
10848 * xterm.h (struct x_display_info): Add scroll_bar_pixel.
10849
10850 * xterm.c (x_create_toolkit_scroll_bar): Set LessTif scroll bar's
10851 cursor.
10852
108531998-10-22 Gerd Moellmann <gerd@gnu.org>
10854
10855 * keyboard.c (make_lispy_event): Handle scroll_bar_click
10856 differently when using toolkit scroll bars.
10857
10858 * xterm.c (x_send_scroll_bar_event): New.
10859 (x_scroll_bar_to_input_event): New.
10860 (xaw3d_scroll_callback): New.
10861 (xaw3d_jump_callback): New.
10862 (xm_scroll_callback): New.
10863 (x_toolkit_scroll_p): New.
10864 (XTread_socket): Handle scroll bar client message.
10865 (x_term_init): Initialize Xatom_Scrollbar.
10866 (x_scroll_bar_create): Set cursor.
10867 (xm_scroll_callback):
10868 (x_create_toolkit_scroll_bar): New.
10869 (x_set_toolkit_scroll_bar_thumb): New.
10870 (x_scroll_bar_create): Call x_create_toolkit_scroll_bar.
10871 (XTset_vertical_scroll_bar): Call x_set_toolkit_scroll_bar_thumb.
10872
10873 * xterm.h (struct x_display_info): Add Xatom_Scrollbar.
10874
108751998-10-21 Gerd Moellmann <gerd@gnu.org>
10876
10877 * xterm.c (x_scroll_bar_remove): Handle toolkit scroll bars.
10878 (XTread_socket): Don't handle mouse button events for scroll bars
10879 if using toolkit scroll bars.
10880 (XTset_vertical_scroll_bar): Set thumb size and position for
10881 Athena scroll bar.
10882
10883 * xterm.h (scroll_bar): Add x_widget_low and x_widget_high.
10884
10885 * xterm.c (XTread_socket): Dispatch expose event to widget
10886 if using toolkit scroll bars.
10887 (x_scroll_bar_expose): Make no-op for toolkit scroll bars.
427ec082 10888 (x_scroll_bar_create): Create and show a scroll bar widget
26901792
DL
10889 if using toolkit scroll bars.
10890 (x_scroll_bar_move): Handle tookit scroll bars.
10891
10892 * Makefile.in (LIBW): Use Xaw3d if present.
10893
10894 * configure.in (USE_TOOLKIT_SCROLL_BARS): New.
10895 (HAVE_XAW3D): New.
427ec082 10896
26901792
DL
10897 * config.in (USE_TOOLKIT_SCROLL_BARS): New.
10898 (HAVE_XAW3D): New.
10899
427ec082 10900 * xterm.c (XTset_vertical_scroll_bar): Correct position of
26901792
DL
10901 right vertical scroll bar.
10902
109031998-10-20 Gerd Moellmann <gerd@gnu.org>
10904
10905 * xfns.c (xpm_load): Support reading XPM images from string
10906 buffers containing data in the same format as an XPM file.
10907 Support `:color-symbols'.
10908 (xpm_format): Add `:data'.
10909 (xpm_keyword_index): Add XPM_DATA.
10910 (syms_of_xfns): Add `:color-symbols'.
10911 (xpm_keyword_index): Add XPM_COLOR_SYMBOLS.
10912 (xpm_valid_color_symbols_p): New.
10913 (xpm_image_p): Call it.
10914
10915 * xdisp.c (build_desired_toolbar_string): Add `:algorithm'
10916 attribute to the image if item is not enabled.
10917
10918 * xfns.c (x_laplace): New.
10919 (x_laplace_read_row): New.
10920 (x_laplace_write_row): New.
10921 (lookup_image): Handle common image attributes here. New
10922 attribute `:algorithm'.
10923
10924 * xfaces.c (clear_face_cache): Call clear_image_cache.
10925
10926 * xterm.c (x_inverted_image_mask): Removed.
10927 (x_draw_image_foreground_1): New.
10928 (x_draw_image_glyph_string): Draw images with mask to a temporary
10929 pixmap to reduce flickering.
10930
10931 * xdisp.c (redisplay_toolbar): Handle auto-resize-toolbars.
10932 (display_toolbar_line): Remove parameter `margin'.
10933
109341998-10-19 Gerd Moellmann <gerd@gnu.org>
10935
10936 * xdisp.c (toolbar_lines_needed): New.
10937 (auto-resize-toolbars): New.
10938
10939 * xfns.c (cache_image): Correct call to xrealloc.
10940
10941 * dispnew.c (Fset_toolbar_height): Removed.
10942
10943 * xdisp.c (init_xdisp): Use FRAME_TOP_MARGIN instead of
10944 FRAME_MENU_BAR_LINES.
10945
10946 * window.c (Fdelete_other_windows): Use FRAME_TOP_MARGIN
10947 instead of FRAME_MENU_BAR_LINES.
10948 (check_frame_size): Ditto.
10949
10950 * dispnew.c (adjust_frame_glyphs_initially): Use FRAME_TOP_MARGIN
10951 instead of FRAME_MENU_BAR_LINES.
10952 (adjust_frame_glyphs_for_frame_redisplay): Ditto.
10953 (build_frame_matrix): Ditto.
10954 (change_frame_size_1): Ditto.
10955
10956 * frame.h (FRAME_TOOLBAR_LINES): New.
10957 (FRAME_TOP_MARGIN): New.
10958
10959 * window.c (struct save_window_data): Add frame_toolbar_lines.
10960 (Fset_window_configuration): Handle toolbar lines.
10961 (Fcurrent_window_configuration): Save toolbar lines.
10962
10963 * frame.c (syms_of_frame_1): Add Qtoolbar_lines.
10964
10965 * xfns.c (Fx_create_frame): Add default parameter for toolbar.
10966
10967 * frame.h (struct frame): Rename top_margin to toolbar_lines.
10968
10969 * xfns.c (x_frame_parms): Add `toolbar-lines'.
10970 (x_set_toolbar_lines): New.
10971
10972 * keyboard.c (cmd_error_internal): Bug fix.
10973
10974 * xterm.c: Remove double include of syssignal.h.
10975
109761998-10-18 Gerd Moellmann <gerd@gnu.org>
10977
10978 * xterm.c (x_toolbar_item): New.
10979 (x_handle_toolbar_click): Use it.
10980 (note_toolbar_highlight): Use it.
10981
10982 * keyboard.c (syms_of_keyboard): Staticpro toolbar_item_properties
10983 and toolbar_items_vectors.
10984
10985 * xterm.c (help_echo): New.
10986 (draw_glyphs_face): Add DRAW_IMAGE_RAISED and DRAW_IMAGE_SUNKEN.
10987 (x_set_glyph_string_gc): Handle them.
10988 (x_after_update_window_line): Don't do anything in pseudo-windows.
10989 (x_produce_image_glyph): Take image margin and face relief into
10990 account.
10991 (x_get_glyph_string_clip_rect): Handle pseudo-windows.
10992 (x_draw_glyph_string_background): Optimize case when face has
10993 relief.
10994 (x_setup_relief_color): Take frame instead of glyph string
10995 parameter.
10996 (x_draw_relief_rect): New.
10997 (x_draw_glyph_string_relief): Call it.
10998 (x_draw_image_glyph_string_foreground): Handle margin and image
10999 relief.
11000 (x_draw_image_glyph_string_background): Ditto.
11001 (expose_frame): Redraw toolbar window.
11002 (expose_window): Don't draw cursor for pseudo-windows.
11003 (x_y_to_hpos_vpos): Handle pseudo-windows.
11004 (frame_to_window_pixel_xy): New.
11005 (note_mouse_highlight): Call note_toolbar_highlight.
11006 (x_handle_toolbar_click): New.
11007 (note_toolbar_highlight): New.
11008 (show_mouse_face): Change int parameter `hl' to parameter of
11009 type enum draw_glyphs_face. Handle image highlighting.
11010 (XTread_socket): Return a HELP_EVENT input event if help_echo is
11011 non-nil. Use x_handle_toolbar_click.
11012
11013 * termhooks.h (event_kind): Add HELP_EVENT, TOOLBAR_EVENT.
11014
11015 * xfns.c (image_value_type): Add IMAGE_INTEGER_VALUE,
11016 IMAGE_BOOL_VALUE.
11017 (parse_image_spec): Handle them.
11018 (image_spec_value): Additional parameter found.
427ec082 11019 (free_image): Remove image from the vector `images' of the
26901792
DL
11020 image cache.
11021 (clear_image_cache): Additional parameter force_p.
11022 (Fclear_image_cache): New.
11023 (x_find_image_file): New.
11024 (xbm_load): Handle `:margin' and `:relief'. Use
11025 x_find_image_file.
11026 (xpm_load): Likewise.
11027 (pbm_load): Likewise.
11028 (jpeg_load): Likewise.
11029 (tiff_load): Likewise.
11030 (gif_load): Likewise.
11031
11032 * keyboard.c (Qhelp_echo): New symbol.
11033 (read_char): Handle `toolbar' and `help_echo' events.
11034 (kbd_buffer_get_event): Handle HELP_ECHO input event.
11035 (make_lispy_event): Handle TOOLBAR_EVENT.
11036 (toolbar_items): New.
11037 (process_toolbar_item): New.
11038 (PROP): New.
11039 (init_toolbar_items): New.
11040 (append_toolbar_item): New.
11041 (read_char_x_menu_prompt): Handle `toolbar' event.
11042 (read_key_sequence): Ditto.
11043
11044 * xfaces.c (Qtoolbar): New.
11045 (realize_basic_faces): Realize `toolbar' face.
11046 (face_at_string_position): Remove parameter modeline_p, add
11047 base_face_id.
11048
11049 * xfns.c (xbm_load_image_from_file): Don't use Xmu function
11050 to read data.
11051
110521998-10-17 Gerd Moellmann <gerd@gnu.org>
11053
11054 * xdisp.c (init_iterator): Replace parameter modeline_p with
11055 base_face_id.
11056 (next_element_from_string): Call get_next_display_element
11057 recursively after handling text properties.
11058 (prepare_menu_bars): Call update_toolbar.
11059 (update_toolbar): New.
11060 (build_desired_toolbar_string): New.
11061 (display_toolbar_line): New.
11062 (redisplay_toolbar): New.
11063 (toolbar_item_info): New.
11064 (redisplay_window): Call redisplay_toolbar.
11065 (Fdump_toolbar_row): New. Defined if compiled with GLYPH_DEBUG.
11066
11067 * dispnew.c (clear_current_matrices): Clear matrices of toolbar
11068 window.
11069 (clear_desired_matrices): Ditto.
11070 (adjust_frame_glyphs_for_window_redisplay): Make toolbar window.
11071 (free_glyphs): Free matrices of toolbar window.
11072 (update_frame): Update toolbar window.
11073 (change_frame_size_1): Take toolbar into account.
11074 (Fset_toolbar_height): New.
11075
11076 * dispextern.h (struct it): Remove member modeline_p, add
11077 base_face_id.
11078 (struct image): Add members relief and margin.
11079 (IMAGE_ASCENT): Include margin in height.
11080
110811998-10-14 Gerd Moellmann <gerd@gnu.org>
11082
11083 * xfns.c (Fclear_image_cache): New.
11084
11085 * xfaces.c (realize_basic_faces): Realize toolbar face.
11086 (face_at_string_position): Remove parameter modeline_p, add
11087 base_face_id.
11088
11089 * dispextern.h (enum face_id): Add TOOLBAR_FACE_ID.
11090
110911998-10-13 Gerd Moellmann <gerd@gnu.org>
11092
11093 * keyboard.c (syms_of_keyboard): Intern `:help'.
11094
110951998-10-12 Gerd Moellmann <gerd@gnu.org>
11096
11097 * xterm.c (note_toolbar_highlight): New.
11098 (note_mouse_highlight): Call it.
11099
11100 * window.c (window_from_coordinates): Additional parameter toolbar_p.
11101 (coordinates_in_window): Handle toolbar window.
11102
11103 * keyboard.c (toolbar_items): New.
11104 (process_toolbar_item): New.
11105 (parse_toolbar_item): New.
11106 (init_toolbar_items): New.
11107 (append_toolbar_item): New.
11108
11109 * dispextern.h (enum toolbar_item_idx): New.
11110 (enum toolbar_item_image): New.
11111
11112 * frame.h (struct frame): Add toolbar-related members.
11113
11114 * xfaces.c (face_at_string_position): Remove assertion that
11115 current_buffer == window's buffer. This is not the case when
11116 called for the toolbar window.
11117
11118 * frame.c (make_frame): Initialize toolbar members.
11119
11120 * alloc.c (mark_object): Mark toolbar data of frames.
11121
11122 * frame.h (struct frame): Add toolbar-related members
11123 toolbar_window, desired_toolbar_items, current_toolbar_items,
11124 desired_toolbar_string, current_toolbar_string,
11125 n_desired_toolbar_items, n_current_toolbar_items. Add
11126 window_height.
11127
11128 * xterm.c (x_after_update_window_line): Don't draw bitmap
11129 areas for pseudo-windows.
11130 (expose_frame): Handle toolbar window.
11131 (expose_window): Don't do cursor stuff for pseudo-windows.
11132
11133 * xdisp.c (display_menu_bar): Correct calls to init_iterator.
11134
111351998-10-11 Gerd Moellmann <gerd@gnu.org>
11136
11137 * frame.c (make_frame): Initialize toolbar_window.
11138
11139 * alloc.c (mark_object): Make the toolbar window.
11140
11141 * dispnew.c (update_frame): Update frame's toolbar_window.
11142 (clear_current_matrices): Likewise.
11143 (clear_desired_matrices): Likewise.
11144 (adjust_frame_glyphs_for_window_redisplay): Make toolbar_window.
11145 (free_glyphs): Free the toolbar window and its matrices.
11146
11147 * frame.h (struct frame): Add toolbar_window.
11148
11149 * xterm.c (x_draw_glyph_string_relief): Handle mouse-face
11150 with relief.
11151
111521998-10-10 Gerd Moellmann <gerd@gnu.org>
11153
427ec082 11154 * dispnew.c (buffer_posn_from_coords): Don't screw up if
26901792
DL
11155 window start is not in the range BEGV..ZV.
11156
111571998-10-09 Gerd Moellmann <gerd@gnu.org>
11158
11159 * xdisp.c (try_scrolling): Experimentally handle the case
11160 that scroll-preserve-screen-position is set to `always'.
11161
11162 * window.c (Vscroll_preserve_screen_position): Replacement for
11163 scroll_preserve_screen_position.
11164
111651998-10-08 Gerd Moellmann <gerd@gnu.org>
11166
11167 * dispnew.c: Don't initialize auto structs; the HP/UX compiler
11168 doesn't like it.
11169 * xdisp.c: Ditto.
11170
11171 * xdisp.c (make_cursor_line_fully_visible): Adjust this_line_y.
11172
111731998-10-06 Gerd Moellmann <gerd@gnu.org>
11174
427ec082 11175 * minibuf.c (Fminibuffer_complete_word): Fix computation of
26901792
DL
11176 i_byte when prompts are inserted into minibuffers.
11177
11178 * dispextern.h (FRAME_INTERNAL_BORDER_WIDTH_SAFE): New.
11179 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Use it.
11180 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y): Ditto.
11181
111821998-10-04 Gerd Moellmann <gerd@gnu.org>
11183
11184 * xdisp.c (make_cursor_line_fully_visible): New.
11185 (try_scrolling): New.
11186 (redisplay_window): Move scrolling code to try_scrolling.
11187 (make_cursor_line_fully_visible): Handle case of window too small
11188 to show a single line.
11189 (redisplay_window): Case forced window start---use
11190 make_cursor_line_fully_visible.
11191 (redisplay_window): Case cursor movement via current matrix.
11192 If ending up on a partially visible line, make it fully visible
11193 instead of recentering.
11194 (try_scrolling): Additional parameter scroll_smoothly.
11195
11196 * xterm.c (x_draw_bitmap): Don't XClearArea under the pixmap.
11197
111981998-09-28 Gerd Moellmann <gerd@gnu.org>
11199
11200 * window.c (window_scroll_pixel_based): Bug fix: vpos used
11201 instead of y-position for scroll-preserved-screen-position.
11202
112031998-09-07 Gerd Moellmann <gerd@gnu.org>
11204
11205 * dispnew.c (update_frame_line): If current row is not enabled,
11206 write the whole line.
11207
112081998-09-06 Gerd Moellmann <gerd@gnu.org>
11209
11210 * lisp.h (HAVE_FACES): Removed.
11211
11212 * dispextern.h (HAVE_FACES): Removed.
11213
11214 * config.in (HAVE_FACES): Removed.
11215
11216 * dispnew.c (HAVE_FACES): Removed.
11217
11218 * xdisp.c (HAVE_FACES): Removed.
11219
11220 * xfaces.c (HAVE_FACES): Removed.
11221
112221998-09-05 Gerd Moellmann <gerd@gnu.org>
11223
11224 * xdisp.c (init_iterator): If face_change_count is non-zero,
11225 free realized faces.
11226
11227 * xfaces.c (free_all_realized_faces): Make it externally visible.
11228 (Finternal_set_lisp_face_attribute): Increment
11229 windows_or_buffers_changed.
11230
11231 * dispnew.c (direct_output_for_insert): Give up if
11232 face_change_count is non-zero.
11233 (direct_output_forward_char): Ditto.
11234
11235 * xfaces.c (face_change_count): New.
11236
112371998-09-04 Gerd Moellmann <gerd@gnu.org>
11238
11239 * xterm.c (x_draw_bar_cursor): Don't draw if cursor hpos is out
11240 of range.
11241
112421998-09-03 Gerd Moellmann <gerd@gnu.org>
11243
11244 * term.c (Ftty_display_color_p): New.
11245
112461998-09-02 Gerd Moellmann <gerd@gnu.org>
11247
11248 * xfaces.c (Ftty_defined_colors): New.
11249
11250 * xterm.c (x_produce_glyphs): Fix computation of
11251 contains_overlapping_glyphs_p for ASCII.
11252
11253 * dispnew.c (Fshow_cursor): Don't change cursor state while
11254 redisplaying.
11255 (direct_output_for_insert): If a glyph with lbearing or rbearing
11256 is among the new glyphs, set row flag contains_overlapping_glyph_p.
11257
112581998-09-01 Gerd Moellmann <gerd@gnu.org>
11259
11260 * term.c (OUTPUT_IF): Make replacement text have statement form.
11261 (OUTPUT1_IF): Ditto.
11262 (TS_italic_mode, TS_end_italic_mode): Removed.
11263 (TS_bold_mode): Removed.
11264 (TS_underscore_mode, TS_end_underscore_mode): Removed.
11265 (TS_enter_bold_mode, TS_enter_dim_mode, TS_enter_blink_mode): New.
11266 (TS_enter_reverse_mode): New.
11267 (TS_enter_underline_mode, TS_exit_underline_mode): New.
11268 (TN_magic_cookie_glitch_ul): New.
11269 (TS_enter_alt_charset_mode, TS_exit_alt_charset_mode): New.
11270 (TS_exit_attribute_mode): New.
11271 (TN_max_colors, TN_max_pairs, TS_orig_pairs): New.
11272 (TS_set_foreground, TS_set_background): New.
11273 (reset_terminal_modes): Switch colors back to default.
11274 (write_glyphs): Turn face on before writing text, turn it off
11275 afterwards.
11276 (insert_glyphs): Ditto.
11277 (term_init): Initialize new terminal capability variables.
11278 (turn_on_face): Turn a face on.
11279 (turn_off_face): Turn a face off.
11280
11281 * lisp.h (MAKE_GLYPH): Remove test for frame type.
11282 (GLYPH_CHAR): Ditto.
11283 (GLYPH_FACE): Ditto.
11284
11285 * xfaces.c (Vface_tty_color_alist): New.
11286 (face-register-tty-color): New.
11287 (face-clear-tty-colors): New.
11288
11289 * dispextern.h (FACE_TTY_DEFAULT_COLOR): New.
11290 (struct it): Remove member faces_p since we now always have faces.
11291
112921998-08-31 Gerd Moellmann <gerd@gnu.org>
11293
11294 * dispextern.h (struct face): Add tty appearance flags.
11295
11296 * xdisp.c (init_iterator): Always handle faces.
11297 (extend_face_to_end_of_line): Handle tty frames.
11298
11299 * dispnew.c (clear_glyph_matrix): Allow a null matrix to be
11300 passed in.
11301
113021998-08-30 Gerd Moellmann <gerd@gnu.org>
11303
11304 * xfaces.c (realize_default_face): Use empty strings to indicate
11305 that the face should use the default foreground/background
427ec082 11306 color of the terminal. Fill font-related attributes with
26901792
DL
11307 appropriate values for tty frames.
11308
11309 * emacs.c (main): Call syms_of_xfaces before init_window_once.
11310
11311 * xfaces.c (realize_default_face): If face `default' is not
11312 yet known, create it.
11313
11314 * frame.c (make_terminal_frame): Call init_frame_faces
11315 unconditionally.
11316
11317 * xfaces.c (init_frame_faces): Make it work for tty frames.
11318 (free_frame_faces): Ditto.
11319 (clear_face_cache): Ditto.
11320 (recompute_basic_faces): Ditto.
11321 (Fframe_face_alist): Ditto.
11322 (free_realized_face): Ditto.
11323 (prepare_face_for_display): Ditto.
11324 (clear_face_gcs): Ditto.
11325 (lookup_face): Ditto.
11326 (smaller_face): Ditto.
11327 (realize_default_face): Ditto.
11328 (realize_face): Ditto.
11329 (realize_face): Dispatch to functions depending on the frame type.
11330 (realize_x_face): X way of realizing faces.
11331 (realize_tty_face): TTY way of realizing faces.
11332
113331998-08-29 Gerd Moellmann <gerd@gnu.org>
11334
11335 * xfaces.c (realize_face): Remove parameter unibyte_registry,
11336 compute it instead.
11337 (lookup_face): Remove local variable unibyte_registry.
11338
113391998-08-22 Gerd Moellmann <gerd@gnu.org>
11340
11341 * xterm.c (x_draw_glyph_string_relief): Draw top and bottom lines
11342 1 pixel longer.
11343
427ec082 11344 * xdisp.c (face_before_or_after_it_pos): Fix computation
26901792
DL
11345 of face in buffer.
11346
11347 * editfns.c (make_buffer_string_both): If prompt in buffer,
11348 prevent start > end.
11349
11350 * indent.c (Fvertical_motion): Set current_buffer to window's
11351 buffer if it isn't already.
11352
113531998-08-21 Gerd Moellmann <gerd@gnu.org>
11354
11355 * dispextern.h (GLYPH_DEBUG): Use default 0.
11356
11357 * xdisp.c (it_props): New member `smaller'.
11358 (init_iterator): Initialize it.
11359 (Qsmaller): New.
11360 (push_it): Save value of `smaller' value on the stack.
11361 (pop_it): Restore `smaller' from the stack.
11362 (handle_smaller_prop): New.
11363 (handle_face_prop): Use `smaller' text property to select a
11364 suitable face.
11365
11366 * dispextern.h (SMALLER_PROP_IDX): New.
11367 (struct it): Add member `smaller'.
11368
11369 * xfaces.c (smaller_face): New.
11370
11371 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add bitmap area widths.
11372
11373 * dispnew.c (allocate_matrices_for_window_redisplay): Compute
11374 total pixel width of window differently.
11375
11376 * xdisp.c (init_iterator): Compute width of mode line differently.
11377
11378 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract width
11379 of bitmap areas.
11380
11381 * window.c (Fsplit_window): Include width of bitmap areas in
11382 window width.
11383 (window_internal_width): Subtract width of bitmap areas from
11384 total width.
11385
113861998-08-18 Gerd Moellmann <gerd@gnu.org>
11387
11388 * xdisp.c: Functions reordered for better readability.
11389
11390 * dispnew.c (update_text_area): Handle glyphs with arbitrary
11391 lbearing.
11392 (update_window_tree): Parameter no_scrolling_p removed.
11393 (update_single_window): Ditto.
11394
11395 * xterm.c (x_get_char_font_and_encoding): Renamed to
11396 x_get_char_face_and_encoding.
11397
11398 * dispnew.c (update_text_area): Don't call get_glyph_overhangs
11399 if end of current row reached.
11400
11401 * xterm.c (x_get_glyph_face_and_encoding): New.
11402 (x_get_glyph_overhangs): Call it.
11403
11404 * xdisp.c (Qshow_trailing_whitespace): New.
11405 (Qtrailing_whitespace): New.
11406 (enum prop_handled): New.
11407 (struct props, it_props): New.
11408 (next_overlay_change): New. Works like Fnext_overlay_change
11409 but doesn't use xmalloc.
11410 (handle_stop): Restructured.
11411 (face_before_or_after_it_pos): Case iteration over a string: fix
11412 handling of face before current position.
11413
114141998-08-16 Gerd Moellmann <gerd@gnu.org>
11415
11416 * dispnew.c (adjust_glyph_matrix): Don't optimize matrix
11417 reallocation matrix if fonts_changed_p.
11418 (update_text_area): Handle glyphs with lbearing.
11419
114201998-08-14 Gerd Moellmann <gerd@gnu.org>
11421
11422 * xdisp.c (struct props): New.
11423 (it_props): New.
11424 (compute_prop_info): New.
11425 (handle_stop): New.
11426
11427 * textprop.c (validate_interval_range): Make it externally
11428 visible.
11429
11430 * dispnew.c (direct_output_for_insert): Remove calls
11431 to compute_stop_pos.
11432
11433 * dispextern.h (struct it): Remove check_charpos,
11434 next_overlay_pos. Add what_changes.
11435
114361998-08-10 Gerd Moellmann <gerd@gnu.org>
11437
11438 * xterm.c (note_mouse_highlight): Set BEGV_BYTE, ZV_BYTE.
11439
11440 * xfaces.c (Vx_unibyte_registry_and_encoding): Removed. Use
11441 face_default_registry instead.
11442
11443 * syntax.c (scan_sexps_forward): Set up syntax table before
11444 jumping to initial state label.
11445
114461998-08-09 Gerd Moellmann <gerd@gnu.org>
11447
11448 * dispnew.c (check_matrix_invariants): Handle case of row end pos
11449 >= ZV specially.
11450
114511998-08-08 Gerd Moellmann <gerd@gnu.org>
11452
11453 * xdisp.c (redisplay_window): Case cursor movement---if cursor
11454 ends up in partially visible row, try to scroll. Case forced
11455 window start---handle windows not tall enough to show a single
11456 line.
11457
11458 * window.h (struct window): Member dy renamed vscroll.
11459
11460 * xterm.c (x_list_fonts): Re-activate suppression of scalable
11461 fonts.
11462 (x_draw_stretch_glyph_string): Set clipping if using GC that
11463 hasn't set it yet.
11464
11465 * xdisp.c (redisplay_window): Case forced window start -
11466 don't let cursor end on partially visible row. Use desired
11467 matrix to find a suitable PT if it doesn't appear.
11468 (decode_mode_spec): Merged with 20.2.97.
11469 (try_window_reusing_current_matrix): Give up if old or
11470 new display is vscrolled.
11471 (redisplay_window): Reset vscrolling if forced window start,
11472 or if recentering.
11473
114741998-08-06 Gerd Moellmann <gerd@gnu.org>
11475
11476 * xfaces.c (realize_default_face): Use the fontset name instead of
11477 the alias for the family attribute of the default face because we
11478 can't easily determine a good alias from fontset-alias-alist.
11479 (face_fontset): Use Fquery_fontset to find the fontset.
11480 (font_list): Additional pattern parameter.
11481 (try_font_list): Ditto.
11482 (set_lface_from_font_name): Set face family from font foundry
11483 and family.
11484 (font_list): If family contains a hyphen, build pattern differently.
11485
114861998-08-05 Gerd Moellmann <gerd@gnu.org>
11487
11488 * xfaces.c (free_realized_faces): Increment windows_or_buffers_-
11489 changed instead of setting the frame garbaged.
11490
11491 * xfaces.c (lface_equal_p): Don't assume equal Lisp types for
11492 all attribute values. This is wrong if values are unspecified,
11493 i.e. nil.
11494
11495 * xdisp.c (try_window_id): Give up if window start changed.
11496
11497 * xfaces.c (make_realized_face): Store registry as Lisp object.
11498 (load_face_font_or_fontset): Compute registry of a face
11499 differently. Make it `eq' to Vx_unibyte_registry_and_encoding if
11500 possible.
11501
11502 * dispextern.h (FACE_SUITABLE_FOR_CHARSET_P): Compare registries
11503 differently.
11504
11505 * alloc.c (mark_face_cache): Mark the registry member of faces.
11506
11507 * dispextern.h (struct face): Make registry a Lisp string.
11508
115091998-08-04 Gerd Moellmann <gerd@gnu.org>
11510
11511 * xterm.c (x_get_char_font_and_encoding): Additional parameter
11512 multibyte_p. Handle unibyte text.
11513 (x_append_glyph): Set the multibyte_p flag of glyphs.
11514 (x_produce_image_glyph): Ditto.
11515 (x_append_stretch_glyph): Ditto.
11516 (x_produce_glyphs): Handle unibyte text like ASCII.
11517
11518 * xdisp.c (push_it): Save the multibyte flag of an iterator on the
11519 stack.
11520 (pop_it): Restore it.
11521 (face_before_or_after_it_pos): Handle the case that the string or
11522 buffer is unibyte.
11523 (get_overlay_strings): Set the multibyte flag of the iterator if
11524 the new overlay string is multibyte.
11525 (get_glyph_property): Likewise.
11526 (get_next_display_element): Don't check for charset changes in
11527 unibyte text.
11528 (append_space): Compute face differently for unibyte text.
11529 (extend_face_to_end_of_line): Don't return quickly if face has
11530 stipple.
11531
11532 * xfaces.c (load_face_font_or_fontset): Store registry and
11533 encoding of the font in the registry member of the face.
11534 (make_realized_face): Additional parameter `registry'.
11535 (free_realized_face): Free the registry of a realized face.
11536 (face_suitable_for_charset_p): Function form of the macro
11537 with the same name in uppercase.
11538 (lookup_face): Use Vx_unibyte_registry_and_encoding if charset < 0.
11539 (choose_face_font): New parameter unibyte_registry.
11540 (choose_face_fontset_font): Ditto.
11541 (realize_default_face): Remember the registry and encoding of
11542 the specified frame font in Vx_unibyte_registry_and_encoding.
11543 (face_at_buffer_position): Handle unibyte.
11544 (face_at_string_position): Likewise.
427ec082 11545 (realize_face): New parameter unibyte_registry.
26901792
DL
11546 (compute_char_face): Handle the unibyte case.
11547
11548 * dispextern.h (struct glyph): Add bit multibyte_p.
11549 (struct face): New member registry holding the registry and
11550 encoding of the X font of the face.
11551 (FACE_UNIBYTE_P): Value is non-zero if face is for unibye text.
11552 (enum face_id): Add BASIC_FACE_ID_SENTINEL.
11553 (FACE_SUITABLE_FOR_CHARSET_P): Handle charset < 0 meansing unibyte
11554 text.
11555 (struct iterator_stack_entry): Add multibyte_p.
11556
11557 * xdisp.c (string_pos): Use string_char_to_byte.
11558 (char_charset): Removed.
11559
115601998-08-03 Gerd Moellmann <gerd@gnu.org>
11561
11562 * xterm.c (x_draw_image_glyph_string_foreground): Draw a
11563 rectangle for a block cursor over an image without a mask.
11564 (x_stretch_block_cursor): Added. Non-zero means don't draw
11565 a block cursor over a stretch as wide as that stretch.
11566 (x_draw_stretch_glyph_string): Use it.
11567 (x_draw_hollow_cursor): Ditto.
11568
11569 * minibuf.c (read_minibuf): Use minibuf_prompt instead of prompt.
11570 (read_minibuf): Add front-sticky text property for prompt.
11571
11572 * xdisp.c (char_charset): Return charset of a character,
11573 depending on whether or not multi-byte characters are enabled.
11574
11575 * xfaces.c (Fset_face_charset_registry): Removed.
11576 (x_charset_registry): Determine registry from charset plist.
11577
115781998-08-02 Gerd Moellmann <gerd@gnu.org>
11579
11580 * xdisp.c (get_next_display_element): Don't check for charset
11581 changes if multi-byte characters are not enabled.
427ec082 11582
26901792 11583 * xdisp.c (echo_area_display): Use the flush function from the
427ec082 11584 redisplay interface.
26901792
DL
11585 * keyboard.c (detect_input_pending_run_timers): Likewise.
11586
11587 * dispextern.h (produce_*glyphs_hook): Removed.
11588 * term.c (produce_*glyphs): Ditto.
11589 (cursor_to): Remove pixel position parameters.
11590
11591 * dispnew.c: Remove hooks for window-based redisplay, introduce
11592 a redisplay interface structure.
11593
11594 * xterm.c (x_per_char_metric): Return default char metrics if per
11595 char metric exists but contains a zero width. Adobe Courier seems
11596 to contain such characters.
11597
11598 * xdisp.c (compute_line_metrics): Compute the width of rows
11599 without stopping at glyphs with zero width.
11600
116011998-08-01 Gerd Moellmann <gerd@gnu.org>
11602
11603 * xdisp.c (display_mode_line): If nothing was displayed at all,
11604 display a space.
11605 (hscroll_window_tree): Don't subtract 1 from target point if equal
11606 to ZV and window is not the selected window.
11607
11608 * dispnew.c (check_matrix_invariants): Remove check for window
11609 start at BEGV or after newline. This happens in rare cases
11610 intentionally.
11611
116121998-07-31 Gerd Moellmann <gerd@gnu.org>
11613
11614 * xfaces.c (x_charset_registry): Use STRING_BYTES.
11615 (syms_of_xfaces): Add Vface_default_registry.
11616 (x_charset_registry): Use it.
11617
11618 * xdisp.c (run_window_scroll_functions): Run window scroll functions.
11619 (redisplay_window): Use it.
11620
11621 * dispnew.c (update_text_area): Handle lbearing of deleted text
11622 by backing up one character.
11623
116241998-07-30 Gerd Moellmann <gerd@gnu.org>
11625
427ec082 11626 * dispnew.c (adjust_glyph_matrix): Use a different check to
26901792
DL
11627 decide to do nothing.
11628
11629 * xfaces.c (face_at_string_position): Additional parameter
11630 mode_line_p. If non-zero, merge with the mode line face
11631 instead of the default face.
11632 * dispextern.h (struct it): Add mode_line_p.
11633 * xdisp.c (init_iterator): Set it.
11634 (compute_face_in_string): Use it.
11635 (face_before_or_after_it_pos): Handle strings.
11636 (get_next_display_element): Don't look for relief end in C strings.
11637 (next_element_from_string): Deliver string position instead of
11638 buffer position.
11639
11640 * xterm.c (x_flush): Flush X output buffer.
11641 (XTflash): Use it.
11642
11643 * xfaces.c (lface_from_face_name): Renamed from lface_from_symbol.
11644 Allow strings as face names.
11645
11646 * xfns.c (forall_images_in_image_cache): Check that frame is
11647 alive.
11648
11649 * widget.c (EmacsFrameDestroy): Remove call to free_frame_faces;
11650 it's also called from x_destroy_window. Since this function is
11651 called from X, freeing stuff allocated with xmalloc is dangerous
11652 here, anyway.
11653
11654 * xfaces.c (free_realized_faces): Don't clear current matrices
11655 of a frame being destroyed.
11656
427ec082 11657 * frame.c (make_frame): Call set_window_buffer instead of
26901792
DL
11658 Fset_window_buffer.
11659
11660 * window.c (set_window_buffer): Extracted from Fset_window_buffer,
11661 with an additional argument specifying whether or not hooks may
11662 be called.
11663 (Fset_window_buffer): Call it.
11664
11665 * dispnew.c (clear_desired_matrices): Check that frame has
11666 a valid root window before clearing matrices in the window tree.
11667 (clear_current_matrices): Ditto.
11668 (clear_window_matrices): If GLYPH_DEBUG, check that hchild and
11669 vchild are valid windows if not nil.
11670
11671 * xfaces.c (merge_face_vector_with_property): Allow :reverse-video
11672 for :inverse-video.
11673 (Finternal_set_lisp_face_attribute): Ditto.
11674 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
11675 (Finternal_get_lisp_face_attribute): Ditto.
11676 (Finternal_lisp_face_attribute_values): Ditto.
11677 (syms_of_xfaces): Define the symbol `:reverse-video'.
11678
11679 * xdisp.c (get_glyph_property): Renamed from
11680 fill_iterator_from_glyph_property.
11681 (next_element_from_buffer): Handle case that no `glyph' property
11682 was found correctly.
11683 (display_line): Extend face to end of line only if we have faces.
11684
116851998-07-29 Gerd Moellmann <gerd@gnu.org>
11686
11687 * dispnew.c (Fshow_cursor): Renamed from blink_cursor. Take
11688 additional window argument.
11689
11690 * xdisp.c (reseat_at_previous_visible_line_start): Renamed from
11691 set_iterator_to_previous_visible_line_start.
11692 (reseat_at_next_visible_line_start): Likewise.
11693 (compute_stop_pos): Renamed from set_iterator_stop_pos.
11694 (face_before_or_after_it_pos): Renamed from get_face_at_it_pos.
11695 (compute_face_in_buffer): Renamed from
11696 compute_face_at_iterator_position.
11697 (compute_face_in_string): Renamed from
11698 compute_face_at_iterator_string_position.
11699 (get_space_width): Renamed from get_iterator_space_width.
11700 (next_overlay_string): Renamed from
11701 set_iterator_to_next_overlay_string.
11702 (get_overlay_strings): Renamed from
11703 get_overlay_strings_at_iterator_position.
11704 (restore_overlay_strings): Renamed from
11705 setup_overlay_strings_from_glyph_pos.
11706 (restore_dpvec): Renamed from setup_iterator_dpvec_from_glyph_pos.
11707 (init_from_display_pos): Renamed from init_iterator_from_glyph_pos.
11708 (init_to_row_start): Renamed from init_iterator_to_row_start.
11709 (init_to_row_end): Formerly init_iterator_to_next_row_start.
11710
11711 * xterm.c: Merge with 20.2.97.
11712 (x_produce_glyphs): Use x_append_stretch_glyph for tabs.
11713
11714 * dispextern.h (struct glyph): Replace text_pos position with
11715 simple charpos.
11716
11717 * xdisp.c (this_line_start_pos): Use struct text_pos.
11718 (this_line_end_pos): Renamed from .*endpos; use struct text_pos.
11719 (enum move_it_result): Renamed from move_iterator_result.
11720 (string_pos_nchars_ahead): Compute text_pos in a string from a
11721 known text_pos plus a character delta.
11722 (string_pos): Compute text_pos in string from charpos.
11723 (c_string_pos): Likewise for a C string.
11724 (number_of_chars): Return number of characters in a possibly
11725 multi-byte C string.
11726 (check_it): Renamed from check_iterator. Check that charpos and
11727 bytepos are in sync.
11728 (push_it): Renamed from save_iterator_settings.
11729 (pop_it): Renamed from restore_iterator_settings.
11730 (move_it_.*): Renamed from move_iterator_.*.
11731 (charset_at_position): Take charpos/bytepos into account.
11732 (back_to_previous_line_start): Set iterator to previous line start.
11733 (forward_to_next_line_start): Set iterator to next line start.
427ec082 11734 (back_to_previous_visible_line_start): Renamed from
26901792
DL
11735 move_iterator_previous_visible_line_start.
11736 (set_iterator_to_next_visible_line_start): Handle charpos/bytepos.
11737 (get_face_at_it_pos): Renamed from get_face_from_cursor_pos.
11738 Handle charpos/bytepos.
11739 (compute_face_at_iterator_position): Handle charpos/bytepos.
11740 (compute_face_at_iterator_string_position): Likewise.
11741 (get_iterator_space_width): Likewise.
11742 (load_overlay_strings): Likewise.
11743 (get_overlay_strings_at_iterator_position): Likewise.
11744 (reseat_iterator): Take a text_pos position argument.
11745 (setup_iterator_overlay_strings_from_glyph_pos): Handle charpos/
11746 bytepos.
11747 (init_iterator): Take additional bytepos parameter.
11748 (reseat_iterator_to_string): Handle charpos/bytepos.
11749 (start_display): Take a text_pos parameter. Handle charpos/bytepos.
11750 (next_element_from_string): Handle charpos/bytepos.
11751 (next_element_from_c_string): Likewise.
11752 (fill_iterator_from_glyph_property): Likewise.
11753 (next_element_from_buffer): Likewise.
11754 (set_iterator_to_next): Increment charpos and bytepos of an iterator.
11755 (move_iterator_in_display_line_to): Handle charpos/bytepos.
11756 (move_it_to): Likewise.
11757 (move_it_vertically_backward): Likewise.
11758 (move_it_vertically): Likewise.
11759 (move_it_by_lines): Likewise.
11760 (hscroll_window_tree): Likewise.
11761 (redisplay_internal): Likewise.
11762 (set_cursor_from_row): Likewise.
11763 (redisplay_window): Likewise.
11764 (try_window): Take a text_pos parameter. Handle charpos/bytepos.
11765 (try_window_reusing_current_matrix): Handle charpos/bytepos.
11766 (get_first_unchanged_at_end_row): Compute and return delta_bytes.
11767 (try_window_id): Handle charpos/bytepos.
11768 (Ftrace_redisplay_toggle): Return Qnil.
11769 (get_overlay_arrow_glyph_row): Handle charpos/bytepos.
11770 (insert_left_trunc_glyphs): Likewise.
11771
11772 * dispnew.c: `Merge' with 20.2.97 (it's really too different to
11773 do a real merge).
11774 (increment_glyph_matrix_buffer_positions): Add parameter delta_bytes.
11775 (increment_glyph_row_buffer_positions): Ditto.
11776 (copy_glyph_row_contents): Ditto.
11777 (check_matrix_invariants): Add additional checks for charpos/
11778 bytepos consistency.
11779 (direct_output_for_insert): Changed for charpos/bytepos.
427ec082 11780 (buffer_posn_from_coords): Likewise. Put code dealing with
26901792
DL
11781 `direction-reversed' in #if 0.
11782
11783 * xterm.h: Merge with 20.2.97.
427ec082 11784
26901792
DL
11785 * frame.h: Merge with 20.2.97.
11786
11787 * window.h: Merge with 20.2.97. Add window_end_bytepos.
11788
11789 * dispextern.h (MATRIX_ROW_START_CHARPOS): Get charpos of a row
11790 start.
11791 (MATRIX_ROW_START_BYTEPOS): Likewise for the byte position.
11792 (MATRIX_ROW_END_CHARPOS): Likewise for the row end.
11793 (MATRIX_ROW_END_BYTEPOS): Likewise for the row end byte position.
11794 (struct it): Various members renamed from .*pos to .*charpos.
11795 (IT_CHARPOS): Access current buffer character position of an
11796 iterator.
11797 (IT_BYTEPOS): Access current buffer byte position of an iterator.
11798 (IT_STRING_CHARPOS): Access current string character position of
11799 an iterator.
11800 (IT_STRING_BYTEPOS): Access current string byte position of
11801 an iterator.
11802 (globally): Add function prototypes from 20.2.97.
11803
11804 * everywhere: Use P_ instead of PROTO for function prototypes
11805 because everyone else seems to use P_.
11806
11807 * dispextern.h (struct text_pos): Structure describing a charpos/
11808 bytepos position in text.
11809 (BYTEPOS): Access the byte position part of a text_pos.
11810 (CHARPOS): Likewise for the character position.
11811 (SET_TEXT_POS): Set a text_pos from a character and byte position.
11812 (INC_TEXT_POS, DEC_TEXT_POS): Increment/decrement a text position.
11813 (SET_TEXT_POS_FROM_MARKER): Set a text_pos from a marker.
11814 (SET_MARKER_FROM_TEXT_POS): Set a marker from a text_pos.
11815 (TEXT_POS_EQUAL_P): Compare two text_pos structures for equality.
11816 (struct display_pos): Renamed from glyph_pos. Use struct text_pos
11817 for buffer and string positions.
11818 (struct glyph): Use text_pos.
11819 (struct it): Renamed from display_iterator. Use text_pos.
11820
118211998-07-23 Gerd Moellmann <gerd@gnu.org>
11822
11823 * xfns.c (x_kill_gs_process): Get image colors from XImage of a
11824 pixmap.
11825
118261998-07-21 Gerd Moellmann <gerd@gnu.org>
11827
11828 * dispextern.h (struct glyph_row): New flag indicate_zv_line_p.
11829 * xterm.c (x_draw_row_bitmaps): Use it.
11830 * dispnew.c (row_equal_p): Ditto.
11831 (update_window_line): Ditto.
11832
11833 * xfns.c (prepare_image_for_display): Don't set loading_failed_p
11834 flag of images.
11835
11836 * dispextern.h (struct image): Removed member loading_failed_p.
11837 It's probably better to have the chance to try to load an image
11838 again.
11839
118401998-07-20 Gerd Moellmann <gerd@gnu.org>
11841
11842 * xterm.c (x_draw_bitmap): Draw bitmap for empty lines ending
11843 at ZV if `indicate-zv-lines' is non-nil.
11844 (x_draw_row_bitmaps): Compute bitmap for `indicate-zv-lines'.
11845
11846 * dispnew.c (row_equal_p): Compare displays_text_p and
11847 ends_at_zv_p flags of rows.
11848 (update_window_line): Ditto.
11849
11850 * buffer.h (struct buffer): New member indicate_zv_lines.
11851
11852 * buffer.c (init_buffer_once): Add default for `indicate-zv-lines'.
11853 (init_buffer_once): New variable `default-indicate-zv-lines'.
11854 (syms_of_buffer): New buffer-local varianle `indicate-zv-lines'.
11855
11856 * xdisp.c (redisplay_window): Don't try moving the cursor
11857 if current glyph row w->last_cursor.vpos isn't enabled.
11858
11859 * xterm.c (bitmap_type): Add ZV_LINE_BITMAP.
11860
11861 * window.c (Fset_window_vscroll): Allow only negative scroll
11862 values. Others don't seem to make sense, and this way it's easy
11863 to restore a vscroll of zero.
11864
11865 * xterm.c (x_inverted_image_mask): Check that pixmap could be
11866 allocated.
11867 (x_draw_image_glyph_string_background): Don't clip if pixmap
11868 could not be created.
11869
11870 * xfns.c (xbm_load_image_from_file): Check that pixmap could
11871 be created.
11872 (xbm_load): Ditto.
11873 (gs_load): Ditto.
11874
11875 * xterm.c (x_get_glyph_overhangs): Take image and stretch
11876 glyphs into account.
11877
11878 * xfaces.c (realize_default_face): Don't set font family of
11879 the default face from the fontset alias name for `fontset-startup'.
11880
11881 * xfns.c (gs_load): Pass frame's pixel foreground and background
11882 color to the Lisp loader.
11883
118841998-07-19 Gerd Moellmann <gerd@gnu.org>
11885
11886 * xfns.c (tiff_image_p, tiff_load): Support TIFF images via
11887 libtiff34.
11888
11889 * configure.in (--with-tiff, HAVE_TIFF): Added.
11890
11891 * config.in (HAVE_TIFF): Added.
11892
11893 * Makefile.in (LIBTIFF): Added.
11894
11895 * xfns.c (jpeg_image_p, jpeg_load): Support JPEG images.
11896
11897 * Makefile.in (LIBJPEG): Added.
11898
11899 * xfns.c (resource_types): Enumerators renamed to RES_TYPE_NUMBER,
11900 RES_TYPE_BOOLEAN etc. because of conflict of `boolean' with
11901 jpeglib.h.
11902
427ec082 11903 * configure.in (HAVE_JPEG, --with-jpeg): Added. On systems
26901792
DL
11904 where the library is installed in /usr/local/lib, e.g. FreeBSD,
11905 configure must be run with `--x-includes=/usr/X11R6/include:
11906 /usr/local/include --x-libraries=/usr/X11R6/lib:/usr/local/lib'.
11907
119081998-07-18 Gerd Moellmann <gerd@gnu.org>
11909
11910 * config.in (HAVE_JPEG): Added.
11911
11912 * xfns.c (ct_init): Initialize color table used to map RGB colors
11913 from images to X pixel colors.
11914 (ct_free): Free color table.
11915 (ct_lookup): Look an RGB color up.
11916 (ct_allocated_colors): Get vector of allocated colors.
427ec082 11917 (pbm_image_p): Test if image specification is a valid PPM
26901792
DL
11918 image specification.
11919 (pbm_scan_number): Scan a decimal ASCII number from a file.
11920 (pbm_load): Load a PPM image.
11921
11922 * window.c (Fset_window_vscroll): Adjust glyph matrix if
11923 necessary. Take canonical character units as parameter.
11924 (Fwindow_vscroll): Return canonical character units.
11925
11926 * dispnew.c (allocate_matrices_for_window_redisplay): Add negative
11927 w->dy to display height for which glyph rows must be allocated.
11928
119291998-07-17 Gerd Moellmann <gerd@gnu.org>
11930
11931 * xfaces.c (face_at_string_position): Merge in region face
11932 so that it won't overwrite the font in the region.
11933 (face_at_buffer_position): Ditto.
11934 (realize_basic_faces): Don't realize region face.
11935
11936 * dispextern.h (enum face_id): REGION_FACE_ID removed.
11937
11938 * xterm.c (x_set_glyph_string_background_width): Don't let
11939 cursor face extend to end of line.
11940
11941 * xdisp.c (append_space): If adding space of default face,
11942 make sure glyph ist produced with right face.
11943
11944 * xterm.c (x_clear_glyph_string_rect): Draw a rectangle in the
11945 background color of a glyph string.
11946 (x_draw_glyph_string_background): Call it.
11947 (x_draw_glyph_string_bg_rect): Ditto.
11948 (x_draw_stretch_glyph_string): Ditto.
11949
119501998-07-15 Gerd Moellmann <gerd@gnu.org>
11951
11952 * xdisp.c (init_iterator): Initialize it->current_y to the
11953 window's vscroll w->dy.
11954
11955 * window.c (Fwindow_vscroll): Return number of pixels window
11956 is vscrolled smoothly.
11957 (Fset_window_vscroll): Set the number.
11958
11959 * xdisp.c (move_iterator_to): Recognize case MOVE_TO_POS and
11960 to_pos in truncated part of a line.
11961
119621998-07-14 Gerd Moellmann <gerd@gnu.org>
11963
11964 * xdisp.c (move_iterator_in_display_line_to): If very first glyph
11965 doesn't fit on the line, truncate it, despite truncate_lines nil.
11966 (display_line): Ditto.
11967
11968 * xfns.c: Experimental support for Ghostscript images.
11969
11970 * xterm.c (x_term_init): Initialize new atoms DONE and PAGE.
11971 (XTread_socket): React on events from Ghostscript.
11972 (expose_frame): If width or height are zero, redraw entire frame.
11973 (XTread_socket): Call expose_frame after receiving event from
11974 Ghostscript.
11975
11976 * xterm.h (struct x_display_info): Add atoms DONE and PAGE
11977 for Ghostscript support.
11978
11979 * xdisp.c (redisplay_internal): Return quickly if called
11980 recursively.
11981
11982 * alloc.c (NSTATICS): Increased to 1024.
11983
119841998-07-08 Gerd Moellmann <gerd@gnu.org>
11985
11986 * xterm.c (x_append_stretch_glyph): Append a stretch glyph to an
11987 iterator's glyph row.
11988 (x_produce_stretch_glyph): Call it.
11989 (x_produce_glyphs): Handle `space-width' property; call
11990 x_append_stretch_glyph.
11991
11992 * xdisp.c (syms_of_xdisp): Add symbol `space-width' used as a text
11993 property.
11994 (get_iterator_space_width): Determine value of `space-width'
11995 property at iterator's position.
11996 (reseat_iterator): Call it.
11997 (next_element_from_string): Ditto.
11998 (next_element_from_buffer): Ditto.
11999 (init_iterator): Initialize space_width of iterator.
12000 (redisplay_internal): Don't goto end_of_redisplay if PT hasn't
12001 moved, but cursor blinks.
12002 (redisplay_internal): Set w->last_cursor_off_p after update.
12003
12004 * dispextern.h (enum iterator_prop_idx): Add SPACE_WIDTH_PROP_IDX.
12005 (struct display_iterator): Add new member space_width.
12006
12007 * window.h (struct window): Add last_cursor_off_p.
12008
120091998-07-07 Gerd Moellmann <gerd@gnu.org>
12010
12011 * Saved.
12012
12013 * window.c (Fpos_visible_in_window_p): Case window not up to
12014 date---return nil if iterator hasn't reached position.
12015
120161998-07-06 Gerd Moellmann <gerd@gnu.org>
12017
12018 * xdisp.c (text_outside_line_unchanged_p): Fix case that
12019 overlays have changed.
12020 (redisplay_window): Case cursor movement. Don't try it if
12021 last_cursor.vpos is out of range.
12022
12023 * xdisp.c (set_cursor_from_row): Set this_line_.* variables. This
12024 way, the display optimization for the line containing the cursor
12025 is used more frequently, esp. when we have a blinking cursor.
12026 (display_line): Don't set this_line_.* variables.
12027
12028 * xterm.c (x_redraw_cursor): Removed.
12029 (x_display_and_set_cursor): Set cursor type depending on
12030 cursor_off_p flag of window.
12031
12032 * dispnew.c (redraw_cursor_hook): Removed.
12033 (Fblink_cursor): Additional parameter on_p to set the cursor_off_p
12034 member of the selected window.
12035
12036 * xfaces.c (Fface_font): Added for compatibility with 20.2.
12037
12038 * xterm.c (x_y_to_hpos_vpos): Return null if not over text.
12039 Return glyph area under x/y.
12040 (note_mouse_highlight): Use x_y_to_hpos_vpos in its new form.
12041
12042 * keyboard.c (detect_input_pending_run_timers): Call gobble_input
12043 after redisplaying.
12044
120451998-07-05 Gerd Moellmann <gerd@gnu.org>
12046
12047 * xdisp.c (text_outside_line_unchanged_p): Test if changes
12048 are all outside of a line of text.
12049 (redisplay_internal): Use it.
12050
120511998-06-30 Gerd Moellmann <gerd@gnu.org>
12052
12053 * xdisp.c (next_element_from_buffer): After skipping over
12054 invisible text, look for the `glyph' property.
12055 (set_iterator_stop_pos): Ignore check positions in front
12056 of an iterator's current position.
12057
12058 * xterm.c (show_mouse_face): Don't act on rows that don't exist
12059 anymore or which are marked as not having valid contents.
12060
12061 * xfaces.c (Finternal_set_lisp_face_attribute): Don't free
12062 realized faces if new attribute value is equal to old value.
12063
120641998-06-29 Gerd Moellmann <gerd@gnu.org>
12065
12066 * xfaces.c (Finternal_make_lisp_face): Increment
12067 lface_id_to_name_size when lface_id_to_name is reallocated.
12068
120691998-06-27 Gerd Moellmann <gerd@gnu.org>
12070
12071 * xdisp.c (set_iterator_stop_pos): Compute initial stop_pos
12072 as minimum of endpos and overlay_pos.
12073 (load_overlay_strings): Set next_overlay_pos of iterator to
12074 -1 if we don't have to check for more overlay strings.
12075
120761998-05-09 Gerd Moellmann <gerd@gnu.org>
12077
12078 * xdisp.c (set_iterator_to_next_visible_line_start): Don't
12079 do anything if iterator is at ZV because scan_buffer doesn't
12080 work otherwise.
12081
12082 * xterm.c (x_encode_char): Inline it.
12083 (x_get_char_font_and_encoding): Simplified.
12084 (x_per_char_metric): Inline it.
12085
12086 * xterm.c (x_draw_glyph_string_relief): Use clipping.
12087
12088 * xdisp.c (get_next_display_element): Check for end of relief
12089 face moved here from next_element_from_buffer.
12090
12091 * xterm.c (x_produce_image_glyph): Add relief thickness.
12092 (x_produce_stretch_glyph): Ditto.
12093
120941998-05-08 Gerd Moellmann <gerd@gnu.org>
12095
12096 * xdisp.c (fill_iterator_from_glyph_property): Handle glyph
12097 property value (space :width WIDTH :height HEIGHT :ascent ASCENT).
12098
12099 * xterm.c (x_produce_stretch_glyph): Produce a stretch glyph
12100 from a glyph property.
12101 (x_produce_glyphs): Use it.
12102
12103 * xdisp.c (set_iterator_to_next): Handle next_element_from_stretch.
12104
427ec082 12105 * xterm.c (x_produce_image_glyph): Add to current_x only if
26901792
DL
12106 in text area.
12107 (x_produce_glyphs): Ditto.
12108
427ec082 12109 * xdisp.c (display_line): Compute row height from glyphs in
26901792
DL
12110 marginal areas.
12111
427ec082 12112 * xterm.c (x_draw_image_glyph_string_background): Draw
26901792 12113 background of an image glyph string.
427ec082 12114 (x_draw_glyph_string_bg_rect): Draw a rectangular region of
26901792
DL
12115 the background of a glyph string.
12116 (x_draw_image_glyph_string_foreground): Draw the foreground of
12117 an image glyph string.
12118 (x_inverted_image_mask): Return the inverted mask of an image.
12119
12120 * xfns.c (x_draw_image): Removed.
12121
12122 * dispextern.h (struct image_type): Remove drawing function.
12123
12124 * xfaces.c (load_face_colors): Swap colors if face is inverse.
12125
12126 * xdisp.c (get_next_display_element): In marginal areas, translate
12127 newlines, tabs, etc. like normal control characters.
12128
12129 * xfaces.c (Fface_color_supported_p): Transpose parameters frame
12130 and color.
12131 (free_realized_faces): Set frame garbaged.
12132
12133 * xfaces.c (syms_of_xfaces): Add defsubr for
12134 internal-lisp-face-attribute-values.
12135
121361998-05-07 Gerd Moellmann <gerd@gnu.org>
12137
12138 * xterm.c (x_produce_image_glyph): Don't add glyph if area is
12139 full.
12140 (x_produce_image_glyph): Set IT->nglyphs to 1.
12141 (x_draw_image_glyph_string): Use inverted mask to draw background.
12142
12143 * dispextern.h (struct image_type): Additional clipping rect
12144 parameters for drawing functions.
12145
427ec082 12146 * xterm.c (x_get_glyph_string_clip_rect): Get clip rect for
26901792
DL
12147 a glyph string.
12148 (x_draw_image_glyph_string): Use it and pass the rect to the
12149 image drawing function.
12150
12151 * xdisp.c (fill_iterator_from_glyph_property): Use position of
12152 first character with `glyph' property as image position. Set
12153 iterator back to that position as long as the image hasn't been
12154 consumed with set_iterator_to_next.
12155 (set_cursor_from_row): Accept when glyph with given position is
12156 not found in the row. Set cursor x to end of line in that case,
12157 so that we can hscroll.
12158 (redisplay_internal): Correct computation of delta by which
12159 positions have changed in redisplay optimization for cursor
12160 row of selected window.
12161
12162 * xdisp.c (display_line): Remove start_pos.
427ec082 12163 (display_line): Fix bug preventing display optimization for
26901792
DL
12164 cursor line of selected window.
12165 (next_element_from_buffer): Avoid XSETBUFFER, use it->w->buffer
12166 instead.
12167
12168 * dispnew.c (update_text_area): Use GLYPH_EQUAL_P.
12169 (update_text_area): Take glyph pixel width into account
12170 when trying to find a resync point.
12171 (row_equal_p): Compare glyphs in all areas.
12172
121731998-05-06 Gerd Moellmann <gerd@gnu.org>
12174
12175 * xterm.c (x_produce_glyphs): Don't add glyph if area is full.
12176
12177 * dispextern.h (struct glyph_row): Use unsigned hash value.
12178
12179 * xdisp.c (display_line): Simplified and made faster by setting
12180 the cursor with set_cursor_from_row.
12181 (set_cursor_from_row): Handle rows of desired matrix.
12182
121831998-05-05 Gerd Moellmann <gerd@gnu.org>
12184
12185 * xdisp.c (set_cursor_from_row): Don't put cursor on glyphs
12186 with type != CHAR_GLYPH.
12187 (fill_iterator_from_glyph_property): Return void. Set
12188 method to next_element_from_image.
12189 (next_element_from_image): Dummy function for delivering a
12190 single image id.
12191 (set_iterator_to_next): Add method next_element_from_image.
12192 (redisplay_window): When recentering, and cursor vpos is -1
12193 after display, assume middle of window is in first line displayed
12194 in window, and display again.
427ec082 12195 (fill_iterator_from_glyph_property): Assign image glyph
26901792
DL
12196 the position of the first character having the glyph property.
12197
12198 * dispextern.h (IMAGE_ASCENT): Compute ascent of image.
12199 * xfns.c (x_draw_image): Use it.
12200 * xterm.c (x_produce_image_glyph): Use it.
12201
12202 * xterm.c (x_produce_image_glyph): Set iterator's pixel_width.
12203
12204 * Makefile.in: Extraneous #define of LIBXPM removed.
12205
12206 * xterm.c (x_produce_glyphs): Produce a STRETCH_GLYPH for tabs.
427ec082 12207 (x_fill_stretch_glyph_string): Fill a glyph string from a
26901792
DL
12208 stretch glyph.
12209 (x_compute_glyph_string_overhangs): Compute overhangs only
12210 for text glyph strings.
12211 (x_draw_stretch_glyph_string): Draw a stretch glyph string.
12212 (x_draw_glyph_string): Call it.
12213
12214 * dispextern.h (glyph_type): Add STRETCH_GLYPH.
12215 (struct glyph): Add sub-structure for stretchable glyphs.
12216 (GLYPH_EQUAL_P): Compare glyph type and u.val.
12217
12218 * xdisp.c (get_overlay_arrow_glyph_row): Put face code into
12219 #ifdef HAVE_FACES.
12220
12221 * xterm.c (x_produce_glyphs): Use ASCII face for spaces of a TAB.
12222
12223 * xdisp.c (fill_iterator_from_glyph_property): Renamed from
12224 setup_iterator_from_glyph_property. Don't do it for terminal
12225 frames.
12226
12227 * xterm.c (x_produce_image_glyph): Produce glyph for image
12228 that can't be loaded.
12229
12230 * xfns.c (lookup_image): If image can't be loaded, set its
12231 width and height so that we can draw a rectangle.
12232 (x_draw_image): Draw a rectangle for images that don't have
12233 a pixmap.
12234 (make_image): Set hash value.
12235 (image_spec_equal_p): Use image_spec_value.
12236
12237 * xterm.c (expose_frame): Don't try to redraw if basic faces
12238 haven't benn realized yet.
427ec082 12239 (x_draw_image_glyph_string): Fill background only if image
26901792
DL
12240 is not as tall as row.
12241
122421998-05-04 Gerd Moellmann <gerd@gnu.org>
12243
12244 * Makefile.in (LIBXPM): If not already defined, define to -lXpm.
12245 (LIBX)[HAVE_X11]: Add LIBXPM.
12246
12247 * xfns.c (xpm_image_p): Implementation of image type functions
12248 for XPM.
12249 (xpm_load): Ditto.
12250
12251 * dispextern.h (struct image): Add mask pixmap for XPM.
12252
12253 * xfns.c (x_draw_image): Handle images with masks.
12254
12255 * configure.in: --with-xpm added. Code detecting -lXpm added.
12256
12257 * config.in: Add HAVE_XPM.
12258
12259 * xfns.c (xbm_draw): Removed.
12260 (x_draw_image): Default implementation for drawing images.
12261 (xbm_keyword_index): Remove XBM_DEPTH.
12262 (xbm_format): Remove `:depth'.
12263 (xbm_image_spec_from_file): Removed to reduce consing.
427ec082 12264 (xbm_load_image_from_file): Added for the same reason.
26901792 12265
427ec082 12266 * xterm.c (x_fill_image_glyph_string): Don't set ybase of
26901792
DL
12267 glyph string.
12268 (x_draw_image_glyph_string): Pass ybase to image draw function.
12269
12270 * xfns.c (make_image): Set default baseline.
12271
12272 * xterm.c (x_produce_image_glyph): Compute ascent of image
12273 from its height and baseline percentage.
12274
12275 * xfns.c (xbm_keyword_index): Add XBM_BASELINE.
12276 (xbm_format): Add description for `:baseline'.
12277 (xbm_image_spec_from_file): Add keywords from original spec to
12278 result.
12279 (xbm_load): Set baseline of image.
12280 (xbm_image_p): Check range for baseline.
12281
12282 * dispextern.h (struct image): Add member baseline.
12283
12284 * xdisp.c (dump_glyph_matrix): Handle image glyphs.
12285
12286 * term.c (produce_glyphs): Change assertion to allow DISP_IMAGE.
12287
12288 * xdisp.c (get_next_display_element): Do character translations
12289 only if delivering characters.
12290
122911998-05-03 Gerd Moellmann <gerd@gnu.org>
12292
427ec082 12293 * dispextern.h (ITERATOR_AT_END_OF_LINE_P): Test for
26901792
DL
12294 DISP_CHARACTER.
12295
12296 * xterm.c (x_produce_image_glyph): Poduce image glyphs.
12297 (x_produce_glyphs): Call x_produce_glyphs for DISP_IMAGE.
12298
122991998-05-02 Gerd Moellmann <gerd@gnu.org>
12300
12301 * xfns.c (prepare_image_for_display): Set image timestamp.
12302 (clear_image_cache): Clear images if image's timestamp +
12303 Vimage_eviction_seconds is > now.
12304 (syms_of_xfns): New variables image-eviction-seconds, and
12305 image-types.
12306 (add_image_format): Add to image-types.
12307 (xbm_load): Support new image spec format.
12308 (x_alloc_image_color): Allocate a color for an image.
12309
12310 * dispextern.h (struct image): Add timestamp.
12311
12312 * xfns.c (xbm_image_p): Allow bool-vectors, vectors of strings and
12313 vectors of bool-vectors.
12314 (xbm_lisp_object_from_file): Build new format image spec.
12315
123161998-05-01 Gerd Moellmann <gerd@gnu.org>
12317
12318 * xfaces.c (init_frame_faces): Initialize image cache.
12319 (free_frame_faces): Free it.
12320
12321 * xterm.c (x_delete_display): Don't free image cache.
12322
12323 * emacs.c (main): Call init_xfns.
12324
123251998-04-30 Gerd Moellmann <gerd@gnu.org>
12326
12327 * alloc.c (mark_object): Mark objects in image cache.
12328
427ec082 12329 * xfns.c (x_set_internal_border_width): Correct call to
26901792
DL
12330 widget_store_internal_border_width.
12331
12332 * widget.c (widget_store_internal_border): Return void.
12333
12334 * xfns.c (x_destroy_bitmap): Use xfree instead of free. Return
12335 void.
12336 (init_x_parm_symbols): Return void.
12337 (x_report_frame_params): Ditto.
12338 (x_set_border_pixel): Ditto.
12339 (syms_of_xfns): Ditto.
12340 (x_destroy_all_bitmaps): Use xfree instead of free.
12341
12342 * xterm.h (FRAME_X_IMAGE_CACHE): Access the image cache of a frame.
12343
12344 * xterm.c (x_term_init): Initialize image_cache of display info.
12345 (x_delete_display): Free image cache.
12346
12347 * xterm.h (struct x_display_info): Add image_cache.
12348
12349 * xfns.c (make_image_cache): Allocate a new image cache.
12350 (free_image_cache): Free an image cache.
12351 (make_image): Allocate an image.
12352 (free_image): Free an image.
12353
12354 * dispextern.h (struct image): Structure describing an image.
12355 (struct image_cache): Structure describing an image cache.
12356
123571998-04-29 Gerd Moellmann <gerd@gnu.org>
12358
12359 * xdisp.c (check_iterator_glyph_property): Return int. Value is
12360 non-zero if iterator is filled with something to return.
12361 (next_element_from_buffer): Immediately return if
12362 setup_iterator_from_glyph_prop has filled iterator with pixmap.
12363 (next_element_from_string): Likewise.
12364
12365 * xfaces.c (load_pixmap): Allow to pass null for W_PTR and H_PTR.
12366
12367 * dispextern.h (struct glyph): Add pixmap_id.
12368 (display_element_type): Add DISP_PIXMAP.
12369
12370 * xmenu.c (popup_get_selection): Use xmalloc/xfree instead of
12371 malloc/free.
12372
12373 * xfaces.c (clear_font_table): Free fonts not used by fontsets.
12374 (clear_face_cache): Call it.
12375
12376 * xterm.c (x_query_font): Don't look at empty font table slots.
12377 (x_compute_min_glyph_bounds): Likewise.
12378 (x_term_init): Initialize font_table to null.
12379 (x_load_font): Change allocation of font_info structures so
12380 that it is possible to free fonts.
12381
427ec082 12382 * xfns.c (Fx_close_connection): Use xfree instead of free.
26901792
DL
12383 Only free fonts from filled font table entries.
12384
12385 * xfaces.c (best_matching_font): Support use of scalable fonts.
12386 (Fface_scalable_fonts_mode): Toggle use of scalable fonts.
12387
12388 * xterm.h (struct x_display_info): Remove screen_dpi, add resx
12389 and resy.
12390 * xterm.c (x_term_init): Compute resx and resy.
12391
12392 * xfaces.c (split_font_name): Don't reject scalable fonts.
12393
427ec082 12394 * xterm.c (x_list_fonts): Set code exclusing scalable fonts
26901792
DL
12395 in #if 0.
12396
12397 * xfaces.c (xlfd_point_size): Return 0 for fonts whose real
12398 point size cannot be determined.
12399
12400 * xterm.h (FRAME_SMALLEST_CHAR_WIDTH): Return smallest character
12401 width over all fonts on a frame.
12402 (FRAME_SMALLEST_FONT_HEIGHT): Likewise for font height.
12403 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Use these
12404 macros.
12405
12406 * xterm.c (x_font_min_bounds): Moved here from xfaces.c.
12407 (x_compute_min_char_bounds): Formerly min_char_bounds in xfaces.c.
12408 (x_load_font): Use x_compute_min_char_bounds.
12409
12410 * xterm.h (struct x_display_info): New members smallest_char_width
12411 and smallest_font_height.
12412
124131998-04-28 Gerd Moellmann <gerd@gnu.org>
12414
12415 * dispextern.h (PREPARE_FACE_FOR_DISPLAY): Call function with
12416 the same name if GC of face is zero.
12417
12418 * dispextern.h (struct face): Member non_ascii_gc removed.
12419
12420 * xterm.c (x_get_char_font_and_encoding): Return face's font
427ec082 12421 for characters < 0177 in default face. Prepare face for
26901792
DL
12422 display before returning it.
12423 (x_produce_glyphs): Use it->charset.
12424 (x_get_char_font_and_encoding): Simplified.
12425 (x_encode_char): Remove parameter `font'.
12426
12427 * xfaces.c (choose_face_font): If registry from charset symbol
12428 doesn't contain a `-', make it a pattern by appending "*-*".
12429
12430 * xdisp.c (check_iterator_glyph_property): Adjust limit for
12431 glyph_check_pos computation to character boundary.
12432
124331998-04-27 Gerd Moellmann <gerd@gnu.org>
12434
12435 * fontset.h (FONT_INFO_FROM_ID): Return null if ID is invalid.
12436
12437 * xfaces.c (ascii_face_of_lisp_face): Get the id of the realized
12438 ASCII face for a given Lisp face id.
12439
12440 * xdisp.c (set_iterator_stop_pos): Take glyph_check_pos into
12441 account.
427ec082 12442 (reseat_iterator): Set glyph_check_pos. Handle case where
26901792
DL
12443 new position is < original position.
12444 (check_iterator_glyph_property): Handle glyph property in strings.
12445 (next_element_from_string): Call above function.
12446 (next_element_from_display_vector): Handle faces in glyphs.
12447 (get_next_display_element): Set face_id of glyphs for
12448 control chars to zero.
12449
12450 * Makefile.in (term.o): Add dependency on dispextern.h.
12451
12452 * xdisp.c (syms_of_xdisp): Add symbol `glyph'.
12453 (display_line): Handle marginal areas.
12454 (move_iterator_in_display_line_to): Likewise.
12455
12456 * xfaces.c (Finternal_make_lisp_face): Assign Lisp faces an id.
12457
12458 * xfaces.c (face_at_buffer_position): Don't merge with nil
12459 text property.
12460 (face_at_string_position): Ditto.
12461
12462 * dispextern.h (struct display_iterator): Use a stack of saved
12463 values instead of saving check positions etc. individually.
12464
12465 * xdisp.c (set_iterator_to_next): If end of Lisp string reached,
12466 maybe pop the iterator's stack.
12467 (save_iterator_settings): Push a value on iterator's stack.
12468 (get_overlay_strings_at_iterator_position): Use it.
12469 (restore_iterator_settings): Pop the stack.
12470 (set_iterator_to_next_overlay_string): Use it.
12471
12472 * xfaces.c (try_font_list): Use alternative font families.
12473
124741998-04-26 Gerd Moellmann <gerd@gnu.org>
12475
12476 * xfaces.c (Fset_face_font_sort_order): Set the order in which
12477 font selection matches fonts.
12478 (Fface_font_sort_order): Return the font sort order.
12479 (best_matching_font): Find best matching font based on sort order.
12480 (cmp_font_names): Sort by given sort order.
12481
12482 * dispextern.h (struct display_iterator): New member faces_p.
12483 * xdisp.c (init_iterator): Initialize it->faces_p.
12484 (compute_face_at_iterator_string_position): Use it.
12485 (compute_face_at_iterator_position): Use it.
12486 (init_iterator): Use it.
12487 (display_mode_line): Ditto.
12488
12489 * xdisp.c (get_next_display_element): Put code choosing a face
12490 when the charset changes in #ifdef HAVE_FACES.
12491
427ec082 12492 * dispextern.h (FACE_FOR_CHARSET): Replacement for function
26901792
DL
12493 lookup_face_for_charset.
12494
12495 * xfaces.c (free_font_names): Renamed from free_split_font_names.
12496 (free_all_realized_faces): Renamed from remove_all_realized_faces.
12497
124981998-04-25 Gerd Moellmann <gerd@gnu.org>
12499
12500 * xfaces.c (best_matching_font): Return the name of the best
12501 matching font in an array of font_name structures.
12502 (choose_face_font): Use it.
12503 (choose_face_fontset_font): Use it.
12504 (find_best_weight_font): If final font found has same weight as
12505 the font we started with, return the original font because it is a
12506 better match for the resolution of the display.
12507 (find_best_slant_font): Likewise.
12508 (merge_face_vector_with_property): Check more invalid attribute
12509 values.
12510 (lface_suitable_for_charset_p): Replaced by a macro with the same
12511 name in upper-case.
12512
125131998-04-24 Gerd Moellmann <gerd@gnu.org>
12514
12515 * dispextern.h (struct face): Member
12516 fontset_chosen_for_realization_p removed.
12517
12518 * xfaces.c (cache_face): If face->fontset >= 0, add face to the
12519 end of the collision list, so that we find more specific faces
12520 first.
12521 (lookup_face_for_charset): Look up a new face if face->fontset >=
12522 0, and charset != CHARSET_COMPOSITION.
12523
12524 * xfaces.c (split_font_name): Return zero if point size of font
12525 couldn't be computed.
12526 (realize_default_face): Use ASCII font of a fontset to determine
12527 font-related attributes of the default face.
12528 (face_fontset): Return fontset id for face family.
12529 (font_list): Additional parameter font_pattern. If non-nil,
12530 return fonts matching that pattern.
12531
125321998-04-23 Gerd Moellmann <gerd@gnu.org>
12533
12534 * xfaces.c (choose_face_fontset): If new fontset cannot be
12535 constructed, or fontset name cannot be split, return the id of the
12536 standard fontset.
12537
12538 * xterm.c (XTframe_up_to_date): Check that frame is an X frame.
12539 When Emacs starts, it may be called for the initial frame which
12540 isn't an X frame.
12541
12542 * dispextern.h (struct face): New members foreground_defaulted_p,
12543 background_defaulted_p.
12544 (struct face): Members `mask' and `cache' removed.
12545
12546 * xfaces.c (load_color): Set them.
12547 (free_face_colors): Check them.
427ec082 12548 (xlfd_point_size): Return -1 if resolution or point size of
26901792
DL
12549 font unknown.
12550
12551 * xfaces.c (free_font): Removed.
12552 (load_face_font_or_fontset): Renamed from load_font.
12553 (load_face_font_or_fontset): Use message2 instead of signalling.
12554 (load_color): Likewise.
12555 (load_pixmap): Likewise.
12556
12557 * xterm.h (struct x_display_info): Add screen_dpi.
12558 * xterm.c (x_term_init): Initialize it.
12559 * xfaces.c (xlfd_point_size): Use it.
12560 (split_font_name): Compute numeric XLFD_RESY.
427ec082 12561 (cmp_font_names): Make fonts with an y-resolution more
26901792
DL
12562 similar to that of the frame appear first in the result.
12563
12564 * xfaces.c (cache_face): If fontset_chosen_for_realization_p
12565 is set for the face to cache, add it to the end of the collision
12566 list.
12567 (try_font_list): If fonts for given family and registry cannot
12568 be found, first try to keep the registry, and choose a different
12569 family.
12570 (choose_face_font): Allow nfonts == 0.
12571 (try_font_list): Give up if no font matches given registry.
12572
125731998-04-22 Gerd Moellmann <gerd@gnu.org>
12574
12575 * xterm.c (x_get_char_font_and_encoding): Get font_info from
12576 font info id of the face.
12577
12578 * xfaces.c (load_font): Set font_info_id.
12579 (realize_face): Ditto.
12580
12581 * dispextern.h (struct face): Change member font_info to
12582 font_info_id.
12583
12584 * fontset.h (FONT_INFO_ID): Build an ID from a font_info pointer.
12585 (FONT_INFO_FROM_ID): Get a font_info pointer from an ID.
12586
12587 * xdisp.c (extend_face_to_end_of_line): If IT's current charset
12588 isn't ASCII, get the ASCII face before adding a space.
12589 (append_space): Likewise.
12590 (insert_left_trunc_glyphs): Initialize truncate_it's charset
12591 to -1 so that it will compute the right face for the truncation
12592 glyphs.
12593
12594 * xfaces.c (realize_face): Set
12595 face->fontset_chosen_for_realization_p.
12596 (lookup_face_for_charset): If fontset wasn't specified originally
12597 and new charset != CHARSET_COMPOSITION, get a new face for that
12598 charset.
12599
12600 * dispextern.h (struct face): New member
12601 fontset_chosen_for_realization_p_specified_p. Set to 1 when
12602 realize_face has chosen a fontset to display composite characters
12603 for a Lisp face not specifying a fontset.
12604
12605 * xdisp.c (extend_face_to_end_of_line): Move tests for default
12606 face and line already filled here. Don't do anything if current
12607 face hasn't a relief or has a background equal to the frame
12608 background.
12609
12610 * xfaces.c (split_font_name): Additional parameter numeric_p.
12611 Don't compute numeric values if it is non-zero.
12612 (choose_face_fontset): Call split_font_name with numeric_p == 0.
427ec082 12613 (choose_face_fontset): Print a message if fontset contains a
26901792
DL
12614 font whose name cannot be split into fields.
12615
126161998-04-21 Gerd Moellmann <gerd@gnu.org>
12617
427ec082 12618 * xfaces.c (try_font_list): Try to load a list of fonts,
26901792
DL
12619 possibly using less restrictive patterns.
12620 (choose_face_font): Use it.
12621
12622 * xterm.c (x_get_char_font_and_encoding): For charset !=
12623 CHARSET_ASCII use font_info of face if face hasn't a fontset set.
12624
12625 * dispextern.h (struct face): New member font_info.
12626
12627 * xfaces.c (load_font): Use FS_LOAD_FONT to load fonts for faces
12628 specifying a fontset as well as those not having a fontset.
12629 (free_font): Make it empty.
12630 (realize_face): Use changed load_font.
12631
12632 * xterm.c (x_get_char_font_and_encoding): If face doesn't
12633 fit for charset, get the right one.
12634
12635 * xfaces.c (load_font): Take frame and name parameter, return
12636 font.
12637 (free_font): Likewise.
12638 (split_font_name): Compute numeric values for height, swidth etc.
12639 (cmp_font_names): Use them.
12640 (find_best_width_font): Ditto.
12641 (find_best_height_font): Ditto.
12642 (find_best_weight_font): Ditto.
12643 (find_best_slant_font): Ditto.
12644 (lface_hash): Add weight, slant, swidth and relief to hash value.
12645 (lface_equal_p): Make it faster.
12646 (lface_from_symbol): Use assq_no_quit.
12647 (Fnote_default_face_changed): Removed.
12648 (cmp_font_names): Use strcmp instead of xstricmp.
12649 (face_charset_registries): Removed.
12650
126511998-04-20 Gerd Moellmann <gerd@gnu.org>
12652
12653 * frame.h (CHECK_FRAME): Give this macro a statement form.
12654 (CHECK_LIVE_FRAME): Ditto.
12655
12656 * xfaces.c (find_best_width_font): Find the best matching font
12657 for a given width.
12658 (find_best_height_font): Likewise for height.
12659 (find_best_weight_font): Likewise for weight.
12660 (find_best_slant_font): Likewise for slant.
12661 (choose_face_font): Use them.
12662 (get_lface_attributes): Always return frame-local face attrs.
427ec082 12663 (Finternal_merge_in_global_face): Merge local face with
26901792
DL
12664 global face attributes.
12665
12666 * xfaces.c (check_lface_attrs, check_lface): Check consistency of
12667 Lisp face attributes.
12668
126691998-04-19 Gerd Moellmann <gerd@gnu.org>
12670
12671 * xfaces.c (Finternal_set_lisp_face_attribute): Add :bold
12672 and :italic for compatibility.
12673 (Finternal_set_lisp_face_attribute_from_resource): Handle
427ec082 12674 :bold and :italic. Handle boolean resource values for
26901792
DL
12675 :underline and :italic.
12676
12677 * xfns.c (display_x_get_resource): Make it externally visible.
12678
12679 * xfaces.c (lface_from_symbol): Take a frame as parameter.
12680 If that frame is non-null, return the frame-local face.
12681 (Finternal_make_lisp_face): Additional frame argument.
12682 (lface_attributes): Get face attributes from global and frame-local
12683 definitions.
12684 (Finternal_lisp_face_equal_p): Additional frame argument.
12685 (merge_lisp_face_vector_with_property): Ditto.
12686 (Frealize_basic_faces): Removed.
12687 (Finternal_get_lisp_face_attribute): Additional frame argument.
12688 (Finternal_lisp_face_p): Ditto.
12689 (load_color) [MSDOS]: Removed because it isn't clear how
12690 to do this for MS-DOS.
12691
12692 * xfaces.c (lface_from_symbol): Get global face definition
12693 from face-global-alist.
12694
12695 * xfaces.c (Finternal_set_lisp_face_attribute): Allow `t'
12696 as values for :underline and :inverse-video.
12697 (Finternal_set_lisp_face_attribute): Allow nil values.
12698
126991998-04-17 Gerd Moellmann <gerd@gnu.org>
12700
12701 * xfaces.c (Finternal_make_lisp_face): Return Lisp face vector.
12702
12703 * xfaces.c (syms_of_xfaces): Add Vall_faces.
12704 (Finternal_make_lisp_face): Add new face to Vall_faces.
12705
12706 * xdisp.c (echo_area_display): Remove code recomputing faces.
12707 (redisplay_internal): Ditto.
12708 (init_iterator): Do it here.
12709
12710 * xfaces.c (choose_face_font): Check that swidth doesn't change
12711 for subusequent attributes.
12712 (xlfd_point_size): Return int.
12713
12714 * xdisp.c (redisplay_internal, echo_area-display): If realized
12715 faces have been cleared, call recompute_basic_faces.
12716
12717 * xfaces.c (recompute_basic_faces): Free realized faces. Reset
12718 face_attributes_changed_p.
427ec082 12719 (remove_all_realized_faces): Remove all realized faces on
26901792
DL
12720 all frames.
12721 (Finternal_set_lisp_face_attribute): Call remove_all_realized_faces.
12722
12723 * xdisp.c (redisplay_internal): If face attributes have been
12724 changed since the last redisplay, recompute basic faces.
12725 (echo_area_display): Ditto.
12726
12727 * xfaces.c (clear_face_gcs): Renamed from clear_realized_face_cache.
12728
12729 * xfaces.c (min_char_bounds): If face cache not yet present,
12730 don't try to get font dimensions from faces.
12731
12732 * xterm.c (x_frame_mode_line_height): If face cache not present
12733 set, return default height.
12734
12735 * alloc.c (mark_face_cache): Check for null faces. Correct
12736 index bug.
12737
12738 * dispextern.h (struct face): Renamed from struct rface. Member
12739 underline renamed underline_p. Make it a bit-field.
12740
12741 * xfaces.c (init_frame_faces): Allocate face cache.
12742 (free_frame_faces): Free face cache.
12743 (recompute_basic_faces): Realize basic faces only if face cache is
12744 allocated, i.e. after init_frame_faces has been called.
12745
12746 * frame.c (make_frame): Initialze face cache with null.
12747
12748 * xfaces.c (same_size_fonts): Removed.
12749
427ec082 12750 * xterm.c (x_set_glyph_string_gc): Add post-condition
26901792
DL
12751 s->gc != 0.
12752 (x_set_mouse_face_gc): Ditto.
12753 (x_set_mode_line_face_gc): Ditto.
12754
427ec082
SS
12755 * xfaces.c (realize_default_face): Return int. Value is
12756 zero if frame params don't contain enough information to
26901792
DL
12757 realize the default face.
12758 (realize_basic_faces): Ditto.
12759 (init_frame_faces): Realize basic faces.
12760
12761 * xfns.c (x_set_font): First store real font name in frame
12762 parameters, then call recompute_basic_faces.
12763
12764 * xfaces.c (recompute_basic_faces): Call realize_basic_faces.
12765
127661998-04-16 Gerd Moellmann <gerd@gnu.org>
12767
12768 * xfaces.c (syms_of_xfaces): Correct calls to defsubr.
12769
12770 * xfns.c (Fx_face_fixed_p): Removed.
12771 (Fx_list_fonts): Moved to xfaces.c.
12772
12773 * xfaces.c (compute_face_at_buffer_pos): Renamed to
12774 face_at_buffer_position. Parameter charset removed; always
12775 compute face for CHARSET_ASCII.
12776 (face_at_string_position): Renamed from
12777 compute_face_at_string_pos. Parameter charset removed; always
12778 compute for CHARSET_ASCII.
427ec082 12779 (lookup_face_for_charset): Take frame parameter instead of
26901792
DL
12780 face_cache.
12781 (lookup_face): Ditto.
12782 (compute_char_face): Renamed from compute_glyph_face.
12783
12784 * xdisp.c (init_iterator): Initialize charset member.
12785 (reseat_iterator_to_string): Ditto.
12786 (get_charset_at_buffer_position): Determine charset at
12787 buffer position in current_buffer.
12788 (reseat_iterator): Call above function.
12789 (compute_face_at_iterator_position): Call
12790 compute_face_at_buffer_pos.
12791 (compute_face_at_iterator_string_position): Call
12792 compute_face_at_string_pos.
12793 (get_face_from_id): Removed.
12794 (get_face_from_cursor_pos): Call compute_face_at_buffer_pos.
12795 Call get_charset_at_buffer_position.
12796 (reseat_iterator): Determine face if charset at pos differs
12797 from iterator's charset.
12798 (reseat_iterator_to_glyph_pos): Removed.
12799
12800 * xfaces.c (compute_face_at_bufpos): Remove parameter charset.
12801 Determine charset from buffer position.
12802 (compute_string_char_face): Renamed to compute_face_at_string_pos.
12803 (compute_face_at_bufpos): Renamed to compute_face_at_buffer_pos.
12804
12805 * dispextern.h (struct display_iterator): Add member charset.
12806
128071998-04-15 Gerd Moellmann <gerd@gnu.org>
12808
12809 * xfaces.c (compute_char_face): Removed.
12810
12811 * xdisp.c (get_overlay_arrow_glyph_row): Use compute_glyph_face
12812 with new parameter list.
12813
12814 * xfaces.c (region_face): Removed.
12815 (allocate_face): Removed.
12816 (copy_face): Ditto.
12817 (face_eql): Removed.
12818 (intern_face): Removed.
12819 (clear_face_cache): Removed.
12820 (load_font): Ditto.
12821 (unload_font): Ditto.
12822 (load_color): Ditto.
12823 (unload_color): Ditto.
12824 (new_computed_face): Ditto.
12825 (intern_computed_face): Ditto.
12826 (ensure_face_ready): Ditto.
12827 (merge_faces): Ditto.
12828 (compute_base_face): Ditto.
12829 (merge_face_list): Ditto.
12830 (Fmake_face_internal): Removed.
12831 (Fset_face_attribute_internal): Ditto.
12832 (face_name_id_number): Removed.
12833 (Fframe_face_alist): Ditto.
12834 (Fset_frame_face_alist): Ditto.
12835 (Finternal_next_face_id): Ditto.
12836
12837 * xterm.h (struct x_output): Remove computed_faces, and
12838 param_faces. Remove macros accessing them.
12839
12840 * xfaces.c: Entirely new face implementation added.
12841
128421998-04-11 Gerd Moellmann <gerd@gnu.org>
12843
12844 * dispextern.h (struct glyph_pos): Member `bufpos' renamed
12845 `charpos'.
12846
128471998-04-10 Gerd Moellmann <gerd@gnu.org>
12848
12849 * xterm.c (x_scroll_bar_move): Clear only regions not covered by
12850 scroll bar window to reduce flickering. Clear entire height.
12851
12852 * xdisp.c (move_iterator_vertically_backward): Set iterator's
12853 current_x and hpos to zero after moving to previous line
12854 start.
12855
128561998-04-03 Gerd Moellmann <gerd@gnu.org>
12857
12858 * frame.h (FRAME_FACE_CACHE): Access to a frame's face cache.
12859
12860 * xfaces.c (xlfd_point_size): Compute relative point size of
12861 fonts from font and frame resolution.
12862 (sort_fonts): New function to sort fonts, temporarily setting
12863 font_frame to the frame in effect.
12864 (xlfd_point_size): Take additional frame parameter to be able
12865 to get at the display's resolution.
12866
12867 * xterm.c (x_setup_relief_colors): Use WHITE_PIX_DEFAULT and
12868 BLACK_PIX_DEFAULT.
12869 (x_setup_relief_color): Use FRAME_X_SCREEN instead of default
12870 screen of display.
12871
128721998-03-31 Gerd Moellmann <gerd@gnu.org>
12873
12874 * xfaces.c (choose_face_fontset): Instantiate fontsets.
12875
12876 * fontset.h: Add external declarations for Vfontset_alias_alist
12877 and Vglobal_fontset_alist.
12878
12879 * xfaces.c (merge_lisp_face_vector_with_property): Simplified.
12880 (realize_default_face): If frame parameters contain an artificial
12881 font name naming a fontset, set the family of the default face to
12882 the fontset name given by the registry.
12883
12884 * Makefile.in (alloc.o): Add dependency to dispextern.h.
12885
128861998-03-22 Gerd Moellmann <gerd@gnu.org>
12887
12888 * alloc.c (mark_object): Add function prototype. Add cast to
12889 Lisp_Object pointer in call to mark_object for symbol names
12890 because this otherwise gives a warning from gcc 2.8.1.
12891 (mark_face_cache): Mark Lisp objects in realized faces.
12892
128931998-03-19 Gerd Moellmann <gerd@gnu.org>
12894
12895 * frame.h (struct frame): Add member face_cache.
12896
12897 * alloc.c (mark_object): Mark face cache.
12898 (mark_face_cache): Mark Lisp faces in face cache of frame.
12899
12900 * frame.c (make_frame): Initialize face_cache.
12901 (Fdelete_frame): Free it.
12902
129031998-03-18 Gerd Moellmann <gerd@gnu.org>
12904
12905 * xfaces.c: Very first skeleton of functions for face realization,
12906 face merging, face cache etc.
12907
12908 * dispextern.h (struct rface): Realized faces. Will replace
12909 struct face when tested.
12910 (struct face_cache): Realized face caches.
12911
12912 * xdisp.c (init_iterator): Initialize area member of display
12913 iterator.
12914
129151998-03-17 Gerd Moellmann <gerd@gnu.org>
12916
12917 * xterm.c (x_append_glyph): Use it->area to store glyphs.
12918
12919 * dispextern.h (struct display_iterator): New member area.
12920
12921 * xterm.c (note_overwritten_text_cursor): Note when the text
12922 cursor of a window is overwritten.
12923
12924 * xdisp.c (set_cursor_from_row): If PT is not found in the
12925 row, display the cursor at the start of the row.
12926
12927 * dispnew.c (direct_output_forward_char): Call
12928 set_cursor_from_row.
12929
12930 * xdisp.c (setup_iterator_overlay_strings_from_glyph_pos): If
12931 position is not in an overlay string, set iterator's position and
12932 method explicitly so.
427ec082 12933 (set_cursor_from_row): Correct cursor position calculation.
26901792
DL
12934 Make it externally visible.
12935 (redisplay_window): Call set_cursor_from_row so that there is only
12936 one place where the cursor position is calculated from a current
12937 row.
12938
12939 * dispextern.h (struct display_iterator): New member
12940 overlay_strings_at_end_processed_p.
12941
12942 * xdisp.c (check_iterator): Perform sanity checks on
12943 display_iterators.
12944 (next_element_from_buffer): Check for overlay strings at ZV.
12945
129461998-03-16 Gerd Moellmann <gerd@gnu.org>
12947
12948 * buffer.c (init_buffer_once): Add left_margin_width and
12949 right_margin_width to buffer_local_flags.
12950
12951 * dispnew.c (margin_glyphs_to_reserve): Function computing
12952 number of glyphs to reserve for a marginal area.
12953 (adjust_glyph_matrix): Call it.
12954 (adjust_frame_glyphs_for_frame_redisplay): Return if frame
12955 is not alive.
12956
12957 * window.c (Fset_window_margins): Allow floats.
12958
12959 * buffer.c (syms_of_buffer): Add buffer-local variables
12960 left-margin-width and right-margin-width. Add defaults
12961 default-left-margin-width and default-right-margin-width.
12962
12963 * buffer.h (struct buffer): New members left_margin_width
12964 and right_margin_width.
12965
12966 * window.c (Fset_window_margins): Make window the last and
12967 optional argument.
12968
12969 * xterm.c (x_draw_glyphs): Compute x-positions for rows with
12970 flag no_marginal_areas_p differently.
12971 (x_clear_end_of_line): Ditto.
12972 (x_draw_glyph_string_relief): Compute width of relief differently
12973 for rows with flag no_marginal_areas_p.
12974
12975 * dispnew.c (update_window_line): Update marginal areas only
12976 for rows that don't have no_marginal_areas_p set.
12977
12978 * xdisp.c (display_mode_line): Set row's flag no_marginal_areas_p.
12979 (display_menu_bar): Ditto.
12980
12981 * dispextern.h (struct glyph_row): New member no_marginal_areas_p.
12982
12983 * dispnew.c (adjust_glyph_matrix): Compute glyph pointers for
12984 marginal areas in window-based redisplay.
12985
12986 * dispextern.h (struct glyph_matrix): New members
12987 left_margin_glyphs and right_margin_glyphs.
12988
129891998-03-15 Gerd Moellmann <gerd@gnu.org>
12990
12991 * minibuf.c (read_minibuf_unwind): Return Lisp_Object.
12992
12993 * charset.c (non_ascii_char_to_string): Use char type parameters
12994 because the function is used that way from outside. Use unsigned
12995 char internally.
12996
12997 * window.c (change_window_height): Return void.
12998 (make_dummy_parent): Return void.
12999 (init_window_once): Return void.
13000 (syms_of_window): Ditto.
13001 (keys_of_window): Ditto.
13002 (delete_window): Correct return with and without value.
13003
13004 * buffer.c (record_buffer): Return void.
13005
13006 * marker.c (unchain_marker): Return void.
13007
13008 * window.c (unshow_buffer): Return void.
13009 (replace_window): Ditto.
13010 (delete_window): Ditto.
13011
13012 * term.c (delete_glyphs_hook): Void return type.
13013 (ring_bell_hook): Ditto.
13014 (set_terminal_window_hook): Ditto.
13015
13016 * sysdep.c (init_sigio): Return void.
13017
13018 * xterm.c (x_set_window_size): Return void.
13019 (x_calc_absolute_position): Ditto.
13020 (x_set_offset): Ditto.
13021 (x_focus_on_frame): Ditto.
13022 (x_unfocus_frame): Ditto.
13023 (x_make_frame_visible): Ditto.
13024 (x_make_frame_invisible): Ditto.
13025 (x_iconify_frame): Ditto.
13026 (x_destroy_window): Ditto.
13027 (x_wm_set_window_state): Ditto.
13028 (x_wm_set_icon_pixmap): Ditto.
13029 (x_wm_set_icon_position): Ditto.
13030 (x_initialize): Ditto.
13031 (x_error_quitter): Ditto.
13032 (x_destroy_window): Use xfree instead of free.
13033
13034 * keyboard.c (clear_waiting_for_input): Return void.
13035
13036 * xterm.c (x_wm_set_size_hint): Return void.
13037 (x_raise_frame): Ditto.
13038 (refreshicon): Ditto.
13039 (x_error_catcher): Ditto.
13040 (x_clear_errors): Ditto.
13041
13042 * keyboard.c (record_asynch_buffer_change): Return void.
13043
bb6677a8
GM
13044 The first line of the following paragraph was garbled for an
13045 unknown reason. It couldn't be fully reconstructed.
178c5d9c 13046
bb6677a8 13047 * xterm.c (XTread_socket, XTset_terminal_window): Ditto.
26901792
DL
13048 (x_lower_frame): Ditto.
13049 (x_scroll_bar_clear): Ditto.
13050 (XTflash): Add default case in switch for -Wall.
13051 (construct_mouse_click): Return Qnil.
13052 (cancel_mouse_face): Return void.
13053 (x_queue_event): Use xmalloc instead of malloc.
13054 (x_unqueue_events): Use xfree instead of free.
13055
13056 * ccl.c (ccl_driver): Return int.
13057
13058 * keyboard.c (stop_polling): Return void.
13059 (start_polling): Ditto.
13060
13061 * term.c (keys): Add braces in initializer list for -Wall.
13062
13063 * sysdep.c (tabs_safe_p): Return int.
13064 (init_baud_rate): Return void.
13065
13066 * xterm.c (x_draw_bitmap): Add default case.
13067 (x_setup_relief_colors): Use DefaultScreen instead of
13068 DefaultScreenOfDisplay.
13069 (x_delete_glyphs): Return void.
13070 (construct_menu_click): Put in #if 0 because it isn't called.
13071
13072 * xdisp.c (load_overlay_strings): Remove extraneous argument
13073 in call to qsort.
13074 (get_overlay_arrow_glyph_row): Add missing return value.
13075
13076 * window.c (set_window_height): Return void.
13077 (set_window_width): Ditto.
13078
13079 * sysdep.c (request_sigio): Return void.
13080 (unrequest_sigio): Ditto.
13081 (get_frame_size): Ditto.
13082
13083 * scroll.c (scroll_cost): Return int.
13084 (do_line_insertion_deletion_costs): Return void.
13085
13086 * frame.c (Fdelete_frame): Use xfree instead of free.
13087
13088 * fileio.c (report_file_error): Return void.
13089
13090 * dispnew.c: Make compilable with -Wall.
13091 * term.c: Ditto.
13092
13093 * charset.h (CHAR_LEN): Moved here from dispextern.h.
13094
130951998-03-14 Gerd Moellmann <gerd@gnu.org>
13096
13097 * xterm.c (x_scroll_bar_move): Clear under scroll bar if height is
13098 increased.
13099 (x_setup_relief_color): Free color only for appropriate visual
13100 classes.
13101
13102 * xterm.c (expose_window): Fix calculation of intersection of mode
13103 line rectangle with exposed rectangle.
13104
13105 * xdisp.c (redisplay_window): Don't do cursor movement based
13106 on current matrix if w->last_point is not valid.
13107
131081998-03-09 Gerd Moellmann <gerd@gnu.org>
13109
13110 * xterm.c (expose_line): Redraw mode line and menu lines
13111 differently because they reach into the scroll bar area.
13112
13113 * xdisp.c (redisplay_window): If redisplaying with same window
13114 start, don't accept cursor on partially visible line.
13115
131161998-03-08 Gerd Moellmann <gerd@gnu.org>
13117
13118 * xterm.c (x_set_glyph_string_clipping): Set clip rectangle
13119 for wider mode lines.
13120 (x_draw_glyph_string_relief): Use larger rectangle for mode lines.
13121
13122 * xdisp.c (init_iterator): Increase last_visible_x by vertical
13123 scroll bar width for mode lines.
13124
13125 * dispnew.c (allocate_matrices_for_window_redisplay): Include
13126 vertical scroll bar width in width calculation so that we can
13127 display mode lines wider.
13128
13129 * xdisp.c (redisplay_window): Restore buffers before returning
13130 when fonts have changed.
13131
13132 * dispnew.c (update_window): Mark invisible rows in the current
13133 matrix invalid.
13134
13135 * xdisp.c (try_window_id): Force update of first row displayed
13136 at window end.
13137 (dump_glyph_matrix): Extracted from Fdump_glyph_matrix.
13138
131391998-03-05 Gerd Moellmann <gerd@gnu.org>
13140
13141 * dispextern.h (struct glyph_row): Member max_ascent renamed
13142 ascent. Member max_descent replaced by height.
13143 (struct display_iterator): Member max_descent replaced by height.
13144 (MATRIX_ROW_PIXEL_HEIGHT): Removed.
13145
13146 * xterm.c (x_alloc_lighter_color): Don't free colors if visual
13147 class makes it unnecessary or dangerous.
13148
13149 * xdisp.c (redisplay_window): Case only point has changed, and
13150 point has moved forward. Move forward over overlay strings.
13151 (display_line): Don't set cursor if first glyph from PT is part of
13152 a continuation line.
13153
131541998-02-21 Gerd Moellmann <gerd@gnu.org>
13155
13156 * xdisp.c (start_display): When computing continuation lines
13157 width, add current_x to the continuation lines width because
13158 move_iterator_to will stop in front of the buffer position moved
13159 to.
13160
131611998-02-20 Gerd Moellmann <gerd@gnu.org>
13162
13163 * xdisp.c (redisplay_window): Don't try try_window_id if
13164 windows_or_buffers_changed.
13165
13166 * xterm.c (x_alloc_lighter_color): Try both factor and delta to
13167 determine a color.
13168 (x_setup_relief_color): Allocate/ change one relief.
13169 (x_setup_relief_colors): Call above function.
13170
13171 * xterm.h (struct relief): New structure type holding relief info:
13172 GCs, colors, and whether colors are allocated.
13173
427ec082 13174 * xterm.c (x_alloc_lighter_color): If multiplying by factor
26901792
DL
13175 produces the same color, try adding a delta to RGB values.
13176 (x_setup_relief_colors): Free color cells.
13177
427ec082 13178 * xterm.h (struct x_output): New members white_relief_pixel,
26901792
DL
13179 black_relief_pixel holding the foreground colors allocated for
13180 relief GCs. New members white_allocated_p, black_allocated_p.
13181
13182 * xterm.c (x_scroll_run): Don't set updated_window to null.
13183 This resets updated_window when called from scrolling_window.
13184
13185 * dispextern.h (scroll_run_hook): Renamed from line_dance_hook.
427ec082 13186
26901792
DL
13187 * xterm.c (x_scroll_run): Additional window parameter. Set
13188 and reset updated_window.
13189
13190 * dispnew.c (line_dance_hook): Additional window parameter.
13191
13192 * xdisp.c (try_window_reusing_current_matrix): Don't call
13193 update_window_begin/end here. The end function would display the
13194 cursor on a wrong position and the additional functionality of
13195 update_window_begin is not needed anyway. Just set
13196 updated_window.
13197 (try_window_id): Ditto.
13198
13199 * dispnew.c (Fblink_cursor): Remove call to detect_input_pending.
13200 Don't redraw cursor during redisplay.
13201
13202 * xterm.c (x_scroll_run): Renamed from do_line_dance.
13203
13204 * xdisp.c (redisplay_window): For window-based redisplay, alway
13205 try try_window_id.
13206
13207 * xterm.c (struct glyph_string): New member two_byte_p that is
13208 non-zero if 16-bit drawing functions must be used.
13209 (x_fill_composite_glyph_string): Set it.
13210 (x_fill_glyph_string): Set it.
13211 (x_draw_glyph_string_foreground): Use it.
13212 (x_draw_vertical_border): Make line 1 pixel less tall.
13213 (x_draw_row_bitmaps): Decrease width of area cleared on the left
13214 side by 1 pixel if window is not right-most hasn't vertical scroll
13215 bars.
13216 (x_draw_phys_cursor_glyph): Do nothing if phys_cursor.hpos is
13217 out of bounds.
13218 (x_draw_glyph_string_foreground): Use XDrawImageStringX if
13219 hl == DRAW_CURSOR.
13220
13221 * xdisp.c (start_display): Check that window start is at line
13222 start if GLYPH_DEBUG != 0.
13223
13224 * window.c (window_scroll_pixel_based): Move assertion to
13225 start_display.
13226
132271998-02-19 Gerd Moellmann <gerd@gnu.org>
13228
427ec082 13229 * xterm.c (x_redraw_cursor): Don't redraw the cursor if the
26901792
DL
13230 frame hasn't the focus.
13231
13232 * window.c (make_window): Initialize dy.
13233 (replace_window): Ditto.
13234
13235 * window.h (window): New member dy specifying the amount by which
13236 a window is scrolled "smoothly".
13237
13238 * xterm.c (x_set_glyph_string_clipping): Don't use glyph string's
427ec082 13239 y-position because it can be negative.
26901792
DL
13240 (x_draw_row_bitmaps): Don't clear with negative y-position like
13241 above.
13242 (x_clear_end_of_line): Same theme as above.
13243
13244 * xterm.c (x_alloc_nearest_color): Allocate a color or, if no
13245 exact match exists, the nearest existing color. Patterned after
13246 defined_color.
13247 (x_alloc_lighter_color): Allocate a color that is lighter or
13248 darker than a given color by a specified factor.
427ec082 13249 (x_setup_relief_colors): Set up relief line colors based on
26901792
DL
13250 the background color of a glyph string face.
13251 (x_draw_glyph_string_relief): Call x_setup_relief_colors.
13252
13253 * xfns.c (x_make_gc): Don't allocate relief GCs.
13254 * widget.c (create_frame_gcs): Don't allocate relief GCs.
13255 (setup_frame_gcs): Don't change relief GCs.
13256
13257 * xterm.h (struct x_output): New member relief_background giving
13258 the background pixel color for which relief GCs can be used.
13259 Set by x_setup_relief_colors.
13260
13261 * xterm.c (x_draw_glyph_string_relief): Draw relief differently
13262 for mode and menu lines.
13263
13264 * xdisp.c (set_next_iterator_stop_pos): No longer static.
13265
13266 * dispnew.c (direct_output_for_insert): Call
13267 set_next_iterator_stop_pos after having changed it2.endpos.
13268
132691998-02-17 Gerd Moellmann <gerd@gnu.org>
13270
13271 * dispnew.c (update_window): Work on selected_window, only.
13272
13273 * xterm.c (x_erase_phys_cursor): Return quickly if physical cursor
13274 hpos is >= number of glyphs in the cursor row.
13275
13276 * xdisp.c (try_window_id): Bug fix; update_window_end was not
13277 called.
13278
132791998-02-16 Gerd Moellmann <gerd@gnu.org>
13280
13281 * xdisp.c (init_iterator): Increase last_visible_x for mode lines
13282 and menu lines.
13283
13284 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate
13285 enough glyphs to display a mode line or menu line which draws over
13286 flags areas.
13287
13288 * xterm.c (XTset_vertical_scroll_bar): Use
13289 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT instead of
13290 VERTICAL_SCROLL_BAR_PIXEL_HEIGHT.
427ec082 13291 (x_draw_glyphs): Draw over flags areas when drawing a mode line
26901792
DL
13292 or menu.
13293 (x_set_glyph_string_clipping): Set clipping differently if drawing
13294 a mode line or menu line.
13295
13296 * xterm.h (VERTICAL_SCROLL_BAR_PIXEL_HEIGHT): Removed.
13297
13298 * xterm.c (expose_line): Don't draw bitmaps for mode lines and
13299 menu lines.
13300 (x_scroll_bar_create): Don't clear flags areas.
13301 (x_draw_row_bitmaps): Clear visible row height, only.
13302
13303 * dispnew.c (Fblink_cursor): Moved here from xdisp.c.
13304
133051998-02-15 Gerd Moellmann <gerd@gnu.org>
13306
13307 * dispnew.c (direct_output_for_insert): When checking for tabs in
13308 the line, set it2.endpos to ZV.
427ec082 13309
26901792
DL
13310 * window.h (struct window): New member cursor_off_p.
13311 * xterm.c (x_redraw_cursor): Implementation of redraw_cursor_hook
13312 for X.
13313 * dispnew.c (redraw_cursor_hook): If non-null, function that can
13314 be called to display or erase the cursor.
13315 * xdisp.c (Fblink_cursor): Blink the cursor of a specified window
13316 or selected_window.
13317
13318 * xterm.h (text_cursor_kinds): Enumerators changed to uppercase.
13319
13320 * dispnew.c (update_window_line): Special handling of inverse
13321 lines in #if 0 removed.
13322
13323 * xterm.c (x_write_glyphs): Renamed from XTwrite_glyphs.
13324 (x_insert_glyphs): Renamed from XTinsert_glyphs.
13325 (x_clear_frame): Renamed from XTclear_frame.
13326 (x_clear_end_of_line): Renamed from XTclear_end_of_line.
13327 (x_ins_del_lines): Renamed from XTins_del_lines.
13328 (x_change_line_height): Renamed from XTchange_line_height.
13329 (x_delete_glyphs): Renamed from XTdelete_glyphs.
13330 (x_clear_cursor): Renamed from clear_cursor.
13331 (x_update_begin): Renamed from XTupdate_begin.
13332 (x_update_end): Renamed from XTupdate_end.
13333 (x_update_window_begin): Renamed from XTupdate_window_begin.
13334 (x_update_window_end): Renamed from XTupdate_window_end.
13335 (x_frame_mode_line_height): Renamed from XTframe_mode_line_height.
13336 (x_produce_glyphs): Renamed from XTproduce_glyphs.
13337 (x_produce_special_glyphs): Renamed from XTproduce_special_glyphs.
13338 (x_produce_special_glyphs): Implementation in #if 0 removed.
13339
13340 * xdisp.c (Fdump_redisplay_state): Display row's fill_line_p
13341 flag in the dump.
13342
13343 * dispnew.c (update_text_area): Handling of glyphs with pixel
13344 width zero removed. Decrement desired stop pos if desired row
13345 fills its line.
13346
13347 * xterm.c (x_fill_glyph_string): Handling of glyphs with pixel
13348 width zero removed.
13349 (BUILD_GLYPH_STRINGS): Set glyph string flag
13350 extends_to_end_of_line_p based on row's flag fill_line_p and face
13351 background and stipple. Make sure it works for composite characters.
13352
13353 * xdisp.c (extend_face_to_end_of_line): Set the glyph row flag
13354 fill_line_p. For window-based redisplay, add a space only if
13355 the row is empty so that we know the face to draw.
13356
13357 * dispextern.h (struct glyph_row): New flag fill_line_p. Non-zero
13358 means draw the face of the last glyph in the text area to the
13359 right end of the text area.
13360
13361 * xdisp.c (init_iterator): Show region in window mini-buffer
13362 window refers to.
13363
427ec082 13364 * dispextern.h (struct display_iterator): Redundant member
26901792
DL
13365 region_showing_p removed. Test for region_beg > 0 instead.
13366
13367 * dispnew.c (update_text_area): Clear to end of line if cursor is
13368 beyond the end of the desired line. Necessary because we don't
13369 have a phys_cursor_glyph with which to erase the cursor. We don't
13370 have one because this method of drawing a cursor doesn't work with
13371 lbearing/rbearing.
13372
13373 * xterm.c (XTinsert_glyphs): Block input.
13374
133751998-02-14 Gerd Moellmann <gerd@gnu.org>
13376
13377 * xterm.c (x_set_cursor_gc): Don't use cursor_gc for composite
13378 glyph strings.
13379 (x_draw_glyph_string_background): Fill background with background
13380 pixel for the first glyph of a composite character.
13381
13382 * xdisp.c (try_window): Change return type to int. Value is zero
13383 if fonts were loaded during redisplay.
13384 (redisplay_window): Return if fonts have been loaded during
13385 redisplay.
13386 (append_space): New parameter default_face_p.
13387
133881998-02-13 Gerd Moellmann <gerd@gnu.org>
13389
13390 * dispnew.c (adjust_glyph_matrix): In case of optimizing C-x 2,
13391 don't let a partially visible line in a current matrix stay
13392 enabled.
13393
133941998-02-09 Gerd Moellmann <gerd@gnu.org>
13395
13396 * minibuf.c (read_minibuf): Put access to minibuffer_prompt_length
13397 in #if PROMPT_IN_BUFFER.
13398
13399 * xdisp.c (display_line): If row ends in ZV, make the space
13400 that is added to place the cursor on it appear in default face.
13401
427ec082 13402 * xterm.c (expose_area): New function redrawing a single
26901792
DL
13403 glyph row area.
13404 (expose_line): Use it to redraw all areas of a row.
13405
13406 * dispextern.h (move_operation_enum): New enum
13407 move_operation_enum.
13408
13409 * window.c (window_scroll_pixel_based): Remove now unnecessary
13410 code that made sure that it->current_y doesn't become negative.
13411
13412 * xdisp.c (move_iterator_in_display_line_to): New parameter
13413 op. Special meaning of to_pos <= 0 and to_x < 0 removed.
13414 (move_iterator_to): Ditto.
13415
13416 * dispextern.h (struct glyph_matrix): New member window_width.
13417
13418 * dispnew.c (adjust_glyph_matrix): Set window_width. Optimize
13419 case of changing window height.
13420
13421 * xterm.c (x_draw_row_bitmaps): Don't clear vertical window
427ec082 13422 border to the left.
26901792
DL
13423
13424 * dispextern.h (struct glyph_row): Remove right_to_left_p. RMS
13425 says this aspect of Emacs is currently redesigned.
13426
13427 * xterm.c (x_clip_to_row): Subtract 1 from clip width if we
13428 have to draw a vertical border.
13429
13430 * window.c (window_scroll_pixel_based): When scrolling down by
13431 screen-fulls, make sure it.current_y doesn't get negative because
13432 this would confuse move_iterator_vertically.
13433
13434 * xdisp.c (move_iterator_vertically_backward): Bug fix for
13435 the case continuation lines are involved.
13436 (try_window_id): Don't set the cursor into scroll margins.
13437
134381998-02-08 Gerd Moellmann <gerd@gnu.org>
13439
13440 * xterm.c (x_append_glyph): Don't compute left_overhang and
13441 right_overhang.
13442 (XTproduce_glyphs): left_overhang and right_overhang removed.
13443 Set it->glyph_row->contains_overlapping_glyphs_p.
13444
13445 * xdisp.c (Fdump_redisplay_state): Output of glyph->left_overhang
13446 and right_overhang removed.
13447
13448 * dispextern.h (struct glyph_row): New member
13449 contains_overlapping_glyphs_p used to optimize glyph drawing.
13450 (struct display_iterator): left_overhang and right_overhang
13451 removed.
13452 (struct glyph): Ditto.
13453
13454 * xterm.c (x_draw_relief): Removed.
13455 (x_draw_bitmap): Renamed from draw_bitmap.
13456 (x_draw_glyphs): Completely new implementation of draw_glyphs
13457 capable of handling arbitrary lbearing and rbearing values.
13458 Several sub-functions not mentioned here.
13459
134601998-01-30 Gerd Moellmann <gerd@gnu.org>
13461
13462 * xterm.c (x_erase_phys_cursor): Clear area under the cursor only
427ec082 13463 if displaying hollow box cursor. draw_glyphs should handle
26901792
DL
13464 other cases.
13465 (draw_glyphs): Move start to the left and end to the right if they
427ec082 13466 overlap with previous or following characters.
26901792 13467 (draw_glyphs): If background is cleared for hl == DRAW_CURSOR,
427ec082 13468 make sure XDrawString uses function GXset. Otherwise the
26901792
DL
13469 character under the cursor would be invisible.
13470 (x_draw_bar_cursor): Don't draw over previous character if it
13471 has right_overhang.
13472
13473 * window.c (get_phys_cursor_glyph): Return the glyph under a
13474 window's physical cursor.
427ec082 13475
26901792
DL
13476 * xterm.c (x_draw_hollow_cursor): Use get_phys_cursor_glyph.
13477 (x_draw_bar_cursor): Ditto.
13478 (x_erase_phys_cursor): Ditto.
13479 (x_phys_cursor_in_rect_p): Ditto.
13480 (x_display_and_set_cursor): Remove reference to w->phys_cursor_glyph.
13481
13482 * window.c (make_window): Remove reference to phys_cursor_glyph.
13483 (replace_window): Ditto.
13484
13485 * window.h (struct window): Remove phys_cursor_glyph. There is
427ec082 13486 now always a glyph present for placing the cursor on it in
26901792
DL
13487 each glyph row, even at the end of a line.
13488
13489 * xdisp.c (append_space): Function to add a space to an iterators
13490 glyph row.
13491 (display_line): Add spaces at the end of lines that are used to
13492 place the cursor on them.
13493 (compute_line_metrics): If row consists of a space only that was
427ec082 13494 added to place the cursor on it, use that space's height as the
26901792
DL
13495 line height.
13496
134971998-01-29 Gerd Moellmann <gerd@gnu.org>
13498
13499 * xdisp.c (Fdump_redisplay_state): Dump left and right overhang of
13500 glyphs.
13501
135021998-01-28 Gerd Moellmann <gerd@gnu.org>
13503
13504 * xterm.c (x_append_glyph): Set overhang of glyph from iterator.
13505 (XTproduce_glyphs): Set it->left_overhang and it->right_overhang.
13506
13507 * dispextern.h (struct glyph): Add left_overhang and
427ec082 13508 right_overhang.
26901792
DL
13509 (struct display_iterator): Ditto.
13510
13511 * dispnew.c (direct_output_for_insert): Give up if newly inserted
13512 glyphs have different ascent or descent than original row.
13513
13514 * xdisp.c (compute_line_metrics): Compute row->max_ascent and
13515 row->max_descent only if unknown.
13516 (display_line): Compute row->max_ascent and row->max_descent.
13517 (display_string): Ditto.
13518
13519 * window.h (struct window): New members phys_cursor_ascent and
427ec082 13520 phys_cursor_descent.
26901792
DL
13521
13522 * xterm.c (x_phys_cursor_in_rect_p): Use them.
13523 (x_draw_hollow_cursor): Ditto.
13524 (x_erase_phys_cursor): Ditto.
13525 (x_display_and_set_cursor): Set them.
13526 (x_append_glyph): Don't set glyph members that were removed.
13527
13528 * dispextern.h (struct glyph): Members ascent, descent,
13529 contributes_to_line_height_p removed.
13530
135311998-01-25 Gerd Moellmann <gerd@gnu.org>
13532
13533 * dispextern.h (DEFAULT_FACE_ID, MODE_LINE_FACE_ID): Symbolic
13534 names for face ids of frame default face and mode line face.
13535
13536 * xdisp.c (compute_face_at_iterator_string_position): If
13537 displaying a mode line use MODE_LINE_FACE_ID instead of
13538 DEFAULT_FACE_ID.
13539
13540 * xdisp.c (reseat_iterator_to_string): Additional parameter start.
13541 (display_string): Ditto, additional parameter lisp_string.
13542 (display_line): Call display_string with Lisp mini-buffer prompt
13543 string.
13544 (display_menu_bar): Call display_string with Lisp string.
13545 (display_mode_element): Ditto.
13546 (next_element_from_string): Make it work for non-overlay Lisp
13547 strings with field width and precision.
13548
13549 * minibuf.c (minibuffer-prompt-in-buffer): Bound if
13550 PROMPT_IN_BUFFER.
13551
13552 * xfaces.c (compute_string_char_face): Fix face computation
13553 for overlay strings.
13554
13555 * xdisp.c (struct overlay_entry): Add member after_string_p.
13556 (load_overlay_strings): Simplify.
13557
13558 * window.c (delete_window): Defer glyph matrix adjustment.
13559 (Fsplit_window): Ditto.
13560 (change_window_height): Ditto.
13561 (Fset_window_configuration): Ditto.
13562 (Fset_window_margins): Ditto.
13563 * frame.c (set_menu_bar_lines): Ditto.
13564 (Fmake_terminal_frame): Ditto.
13565 * dispnew.c (change_frame_size_1): Ditto.
13566
135671998-01-24 Gerd Moellmann <gerd@gnu.org>
13568
13569 * xdisp.c (move_iterator_vertically_backward): Change algorithm.
13570
427ec082 13571 * dispnew.c (direct_output_for_insert): Give up if start
26901792
DL
13572 position has overlay strings.
13573
13574 * xdisp.c (display_line): Don't set cursor if row ends in middle
13575 of overlay string.
13576 (Fdump_redisplay_state): Print complete row start and end
13577 position.
13578 (redisplay_window): Cursor movement when matrix hasn't changed---
13579 if PT < last_point, maybe move forward if row ends at PT and
13580 in middle of char.
13581
13582 * minibuf.c (read_minibuf): Save the value of
13583 minibuffer_prompt_length in minibuf_save_list.
13584 (read_minibuf_unwind): Restore minibuffer_prompt_length.
13585
13586 * xdisp.c (redisplay_window): Add assertion for cursor movement
13587 case, PT < last_point.
13588 (move_iterator_in_display_line_to): If to_pos specified, move
13589 over before-strings.
13590
13591 * dispextern.h (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Test
13592 start.string_index > 0.
13593
13594 * xdisp.c (redisplay_internal): Adjust glyphs if fonts_changed_p
13595 is set. Retry redisplay if fonts_changed_p is set before update.
13596
13597 * xterm.c (x_load_font): Set fonts_changed_p.
13598
13599 * xfaces.c (Fset_face_attribute_internal): Set fonts_changed_p.
13600
13601 * dispnew.c (adjust_glyphs_for_font_change): Removed.
13602
13603 * xdisp.c (try_window): Check fonts_changed_p.
13604 (try_window_reusing_current_matrix): Ditto.
13605 (try_window_id): Ditto.
13606
13607 * dispnew.c (adjust_glyphs_for_font_change): Set fonts_changed_p.
13608 (fonts_changed_p): Flag indicating a font change since the last
13609 glyph matrix adjustment.
13610
13611 * xterm.c (x_per_char_metric): Use font->max_bounds as
13612 char metric of the font's default char if the default char
13613 hasn't per char metric itself.
13614
13615 * xfaces.c (Fset_face_attribute_internal): Adjust glyphs
13616 for font change.
13617 (min_char_bounds): Check face->font != NULL.
427ec082 13618 (font_min_bounds): Return minimum font metrics. Capture the
26901792
DL
13619 case of invalid min_bounds contents.
13620 (min_char_bounds): Call font_min_bounds.
13621
136221998-01-22 Gerd Moellmann <gerd@gnu.org>
13623
13624 * xdisp.c (start_display): Don't set it->prompt_width if
13625 PROMPT_IN_BUFFER.
13626 (move_iterator_in_display_line_to): Ditto.
13627 (display_line): Don't display prompt via display_string if
13628 PROMPT_IN_BUFFER.
13629
13630 * minibuf.c (Fminibuffer_prompt_width): Return value from
13631 current_buffer if PROMPT_IN_BUFFER.
427ec082 13632 (read_minibuf): If PROMPT_IN_BUFFER, insert prompt into
26901792
DL
13633 mini-buffer and make it read-only.
13634 (Fminibuffer_complete_and_exit): If PROMPT_IN_BUFFER, use
13635 minibuffer_prompt_length instead of BEGV.
13636 (Fminibuffer_complete_word): Ditto.
13637 (Fminibuffer_complete_word): Ditto.
13638
13639 * insdel.c (del_range_1): If PROMPT_IN_BUFFER, and start position
13640 is less than mini-buffer prompt width, use prompt width as start.
13641
13642 * editfns.c (make_buffer_string): If PROMPT_IN_BUFFER, and start
13643 position is less than mini-buffer prompt width, use the prompt
13644 width as start.
13645
13646 * cmds.c (Fbeginning_of_line): If PROMPT_IN_BUFFER, set point to
13647 end of prompt if applied to a mini-buffer and BEG reached.
13648
136491998-01-21 Gerd Moellmann <gerd@gnu.org>
13650
13651 * editfns.c (make_buffer_string): If PROMPT_IN_BUFFER, add prompt
13652 length to start position.
13653
13654 * buffer.c (Fget_buffer_create): Initialize
13655 minibuffer_prompt_length.
13656 (Fmake_indirect_buffer): Ditto.
13657 (Fkill_buffer): Ditto.
13658
13659 * buffer.h (struct buffer): Add member minibuffer_prompt_length
13660 if PROMPT_IN_BUFFER.
13661
136621998-01-19 Gerd Moellmann <gerd@gnu.org>
13663
13664 * xdisp.c (next_element_from_string): Make it work for arbitrary
13665 Lisp strings.
13666 (set_iterator_to_next): Advance to next overlay string only
13667 if it->string is an overlay string.
13668
13669 * dispextern.h (struct display_iterator):
13670 next_ovstr_face_check_pos renamed next_string_face_check_pos.
13671
427ec082 13672 * xfaces.c (compute_string_char_face): Compute face for
26901792
DL
13673 arbitrary Lisp string. Renamed from compute_overlay_string_char_face.
13674
13675 * xdisp.c (next_element_from_string): Renamed from
13676 next_element_from_overlay_string.
427ec082 13677 (compute_face_at_iterator_string_position): Renamed from
26901792
DL
13678 compute_face_at_iterator_overlay_string_position.
13679
13680 * dispextern.h (struct display_iterator): Member overlay_string
13681 renamed string.
13682
13683 * xdisp.c (next_element_from_c_string): Renamed from
13684 next_element_from_string.
13685
13686 * dispextern.h (struct glyph_pos): Reversed meaning of
13687 overlay_string_index and string_index.
13688
13689 * xdisp.c (next_element_from_overlay_string): Fix bug that made
13690 this function always return the first character of an overlay
13691 string.
13692
136931998-01-18 Gerd Moellmann <gerd@gnu.org>
13694
13695 * xdisp.c (reseat_iterator): Set next_invisible_check_pos only if
13696 forced or new pos > next_invisible_check_pos.
13697 (redisplay_window): Don't try same window start if PT < window
13698 start.
13699 (move_iterator_vertically): Bug fix satisfying post-condition
13700 when ZV is reached and no newline in front.
13701 (move_iterator_vertically_backward): New implementation.
13702 (move_iterator_vertically_backward): Bug fixes.
13703
13704 * xterm.c (XTmouse_position): Change call to min_char_bounds.
13705 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Ditto.
13706 (adjust_glyphs_for_font_change): Always adjust.
13707
13708 * dispnew.c (struct dim): Use int.
13709
13710 * xfaces.c (Fset_face_attribute_internal): Set face->font_name;
13711 (allocate_face): Initialize it.
13712 (load_font): Use XLoadQueryFont again instead of x_load_font.
13713 (unload_font): Use XFreeFont again.
13714 (min_char_bounds): Iterate over fonts of faces. Use frame's
13715 font sizes as default. Remove parameter except_last_font_p.
13716
13717 * dispextern.h (struct face): Add font_name.
13718
137191998-01-17 Gerd Moellmann <gerd@gnu.org>
13720
13721 * xdisp.c (move_iterator_vertically): Check post-condition. Move
13722 to start of line if ending at ZV and no newline in front.
13723 (move_iterator_to): If to_y specified, always first move to x = 0,
13724 so that move stops at line start instead of line end. This is
13725 probably what callers would expect to happen.
13726
13727 * window.c (window_scroll_pixel_based): Pixel-based scrolling that
13728 can handle different line heights.
13729 (window_scroll_line_based): Formerly window_scroll.
13730 (window_scroll): Call both.
13731
13732 * xdisp.c (start_display): Exclude code if PROMPT_IN_BUFFER.
13733 (move_iterator_in_display_line_to): Ditto.
13734 (display_line): Ditto.
13735
13736 * minibuf.c (read_minibuf): Conditionally insert prompt into
13737 buffer instead of handling prompts specially. Change other
13738 functions accordingly. All such code is in #if PROMPT_IN_BUFFER.
13739
13740 * dispnew.c (adjust_glyph_matrix): Optimize the handling of C-x 2,
13741 upper window. Optimize calls to xrealloc if same width.
13742
13743 * xdisp.c (redisplay_window): Don't use
13744 try_window_reusing_current_matrix if window scroll functions
13745 exist.
13746
13747 * dispextern.h (struct display_iterator): Member
13748 redisplay_end_trigger_p removed.
13749
13750 * dispextern.h (WINDOW_DISPLAY_PIXEL_HEIGHT_WITHOUT_MODE_LINE):
13751 Renamed to WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
13752
137531998-01-16 Gerd Moellmann <gerd@gnu.org>
13754
13755 * xdisp.c (move_iterator_by_lines): Optimize for truncate-lines
13756 nil. Optimize truncate-lines t and moving backward.
13757 (move_iterator_to_previous_visible_line_start): Contains the heart
13758 of the previous set_iterator_to_previous_visible_line_end. Don't
13759 reseat the iterator. Used by move_iterator_by_lines.
13760 (set_iterator_to_previous_visible_line_start): Call function
13761 above.
13762 (move_iterator_in_display_line_to): Check TO_POS before doing
13763 anything else. Otherwise to_pos == PT would move to x of PT+1.
13764
13765 * indent.c (Fvertical_motion): Use display_iterator.
13766
13767 * xdisp.c (move_iterator_by_lines): New function moving by screen
13768 lines.
13769 (redisplay_window): Use it.
13770 (move_iterator_to): Correct branch of to_vpos specified.
13771 (move_iterator_vertically_backward): Increment nlines after having
13772 backed up over some lines because the last line was not backed up
13773 over.
13774 (move_iterator_via_matrix): Look for it->pos in the matrix, and
13775 calculate it->vpos and it->current_y relative to this row.
427ec082 13776 (move_iterator_via_matrix): Set in #if 0. It doesn't seem to
26901792
DL
13777 have a big effect and it is complex.
13778 (move_iterator_to): Call to move_iterator_via_matrix in #if 0.
13779
137801998-01-15 Gerd Moellmann <gerd@gnu.org>
13781
13782 * xterm.c (x_draw_relief): Simplify drawing and draw so that lines
13783 join nicely. Lines with widths > 2 don't join nicely under X.
13784 * xterm.h (struct x_output): Remove member relief_gc_line_width.
13785 * widget.c (setup_frame_gcs): Initialize relief GC's to line
13786 width 1; remove references to relief_gc_line_width.
13787 * xfns.c (x_make_gc): Ditto.
13788
13789 * xfaces.c (Fset_face_attribute_internal): Set frame garbaged
13790 if relief changes.
13791 (Fset_face_attribute_internal): Use XINT instead of XFASTINT
13792 to get a relief because they can be negative.
13793
13794 * xterm.c (x_draw_relief): Correct line drawing positions. Pixel
13795 positions are for the middle of lines under X.
13796
13797 * xdisp.c (try_window_id): Always search for the cursor by setting
13798 w->cursor.vpos = -1. Search in unchanged rows at the top and
13799 bottom if cursor not found in displayed lines.
427ec082 13800 (display_mode_line): First extend face, then set right shadow
26901792
DL
13801 flag. Otherwise the wrong glyph gets the right shadow.
13802
13803 * dispnew.c (direct_output_for_insert): Give up if line contains
13804 a tab. The number of spaces inserted for a tab changes if we
13805 insert glyphs in front of it.
13806
13807 * xterm.c (x_list_fonts): Changes undone because the Lisp
13808 implementation for make-face-smaller, make-face-larger, and
13809 make-face-fixed can do without them.
13810
13811 * xfns.c (Fx_list_fonts): Original x-list-fonts from x-list-font.c
13812 inserted.
13813
13814 * xdisp.c (try_window_id): First compute beg_unchanged, then
13815 compare with window start pos.
13816
13817 * xfns.c (Fx_face_fixed_p): Determine whether a face has a
13818 fixed-width font.
13819 (syms_of_xfns): defsubr for x-face-fixed-p.
13820
13821 * xterm.c (x_erase_phys_cursor): If row containing cursor is not
13822 enabled, don't do anything because this row will be newly drawn
13823 anyway and because we can additionally no longer determine the row
13824 height.
13825
13826 * xdisp.c (display_line): Bug fix cursor positioning.
13827
13828 * xfns.c (x-list-fonts): Copied from x-list-fonts.c; #include
13829 removed. x-list-fonts.c is now obsolete.
13830 (Qfixed, Qvariable): Moved here from xfaces.c.
13831
138321998-01-14 Gerd Moellmann <gerd@gnu.org>
13833
13834 * xdisp.c (display_line): Set row->ends_at_zv_p based on
13835 FETCH_BYTE for truncated lines.
13836 (display_line): Set cursor differently.
13837 (display_line): Fixed bug setting last_pos_on_this_line wrong
13838 for truncated lines.
13839
13840 * dispnew.c (adjust_glyph_matrix): Always adjust for frame-based
13841 redisplay.
13842
13843 * window.c (Fsplit_window): Adjust glyphs before setting buffer.
13844
13845 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Add
13846 assertion that character dimensions are not zero.
13847
13848 * xterm.c (x_load_font): adjust_glyphs_for_font_change while
13849 input is blocked.
13850
13851 * xdisp.c (decode_mode_spec): Faster implementation of line number
13852 display.
13853
13854 * xterm.c (x_draw_row_bitmaps): Clear flags area before drawing
13855 bitmaps if bitmaps don't fill the entire area.
13856 (draw_bitmap): Draw bitmaps horizontally centered in flags area.
13857
427ec082 13858 * xterm.h (FRAME_FLAGS_BITMAP_HEIGHT): Macro giving the
26901792
DL
13859 pixel height of flags bitmaps.
13860
13861 * frame.h (FRAME_FLAGS_AREA_COLS): Use FRAME_X_FLAGS_AREA_COLS.
13862 (FRAME_FLAGS_AREA_WIDTH): Ditto.
13863
13864 * xterm.h (FRAME_FLAGS_BITMAP_WIDTH): Macro giving the width
13865 in pixels of a flags area of a frame.
13866 (FRAME_X_FLAGS_AREA_WIDTH): Removed.
13867 (FRAME_X_FLAGS_AREA_COLS): Macro giving the number of columns
13868 occupied by a flags area.
13869
138701998-01-13 Gerd Moellmann <gerd@gnu.org>
13871
13872 * xdisp.c (hscroll_window_tree): Remove test for non-nil
13873 window_end_valid.
13874
13875 * dispnew.c (adjust_glyph_matrix): Check redisplay_p if
13876 GLYPH_DEBUG != 0.
13877
13878 * xdisp.c (display_line): Correct wrong calculation of row->x for
13879 the case of nglyphs == 1.
13880 (hscroll_window_tree): Renamed from hscroll_windows.
13881 (hscroll_windows): New function calling hscroll_window_tree that
13882 clears desired matrices on a frame when hscroll has been changed.
13883 (redisplay_p): Global flag set during redisplay.
13884 (redisplay_internal): Set and clear redisplay_p.
13885
13886 * xfaces.c (min_char_bounds): Add assertion that width and height
13887 are not zero at the end. Initialize *height and *width to -1,
13888 instead of using BITS_PER_SHORT. If font has min_bounds.width
13889 zero, use its max_bounds.width.
13890
13891 * x-list-font.c (Fx_list_fonts): Check INTEGERP or FLOATP for
13892 width and height.
13893
138941998-01-12 Gerd Moellmann <gerd@acm.org>
13895
13896 * dispnew.c (adjust_glyph_matrix): Do nothing if sizes haven't
13897 changed. Don't clear desired matrices.
13898
13899 * xdisp.c (hscroll_windows): Compute pt after setting
13900 current_buffer.
13901 (redisplay_window): Don't do cursor movement based on current
13902 matrix if just_this_one_p is zero.
13903
13904 * x-list-font.c (Fx_list_fonts): Additional parameter fixed.
427ec082 13905 specifying that fixed-width, variable-width fonts or both
26901792
DL
13906 should be returned.
13907
13908 * xfaces.c (Qfixed, Qvariable): Symbols for use by x-list-fonts.
13909 (syms_of_xfaces): Initialize them.
13910
13911 * xterm.c (x_list_fonts): Include auto-scaled fonts. Extend
13912 cached information.
13913
139141998-01-11 Gerd Moellmann <gerd@acm.org>
13915
13916 * xdisp.c (display_mode_line): Extend face to end of line.
13917
13918 * xdisp.c (echo_area_display): Don't call display_string with
13919 echo_area_glyphs_length == 0 which would mean infinite precision.
13920 (redisplay_internal): Adjust window_end_vpos if necessary.
13921
139221998-01-07 Gerd Moellmann <gerd@acm.org>
13923
13924 * xdisp.c (display_line): Set it->ends_at_zv_p differently.
13925
139261998-01-05 Gerd Moellmann <gerd@acm.org>
13927
13928 * xdisp.c (get_row_start_continuation_line_width): Removed.
13929 (init_iterator_to_row_start): Set it.current_x from row.
13930 (try_window_id): Set it.continuation_lines_width directly from
13931 row.
13932
13933 * xdisp.c (hscroll_windows): Use w->pointm if window is not
13934 selected_window.
13935 (hscroll_windows): Center cursor in window.
13936 (hscroll_windows): Call move_iterator_in_display_line_to.
13937
139381998-01-04 Gerd Moellmann <gerd@acm.org>
13939
13940 * xdisp.c (hscroll_windows): Check hscroll < 0.
13941 (redisplay_window): Allow quick cursor movement if overlay arrow
13942 but frame uses window-based redisplay.
13943 (display_line): Take special case for nglyphs == 1 out of #if 0.
13944 (display_line): Set row->ends_at_zv_p after the loop displaying
13945 glyphs because ZV can be in truncated text.
13946 (hscroll_windows): Use init_iterator_to_row_start.
13947
13948 * dispnew.c (scrolling_window): Calculation of overlapping
13949 runs fixed.
13950 (row_equal_p): Compare continued_p and continuation_line_p.
13951
139521998-01-02 Gerd Moellmann <gerd@acm.org>
13953
13954 * xterm.c (x_get_mode_line_face_gc): Renamed from
13955 x_get_modeline_face_gc.
13956
13957 * xdisp.c (TEXT_PROP_DISTANCE_LIMIT): Max. distance from current
13958 buffer position to look for text properties.
13959 (get_face_from_cursor_pos): Use it.
13960 (compute_face_at_iterator_position): Use it.
13961 (next_element_from_buffer): Use it.
13962
13963 * dispnew.c (scrolling_window): Decrement run's y-position
13964 when extending it backwards.
13965
13966 * xterm.c (do_line_dance): Don't ever copy more than window height.
13967
139681998-01-01 Gerd Moellmann <gerd@acm.org>
13969
13970 * xdisp.c (redisplay_window): Cursor motion in unchanged
13971 matrix---use MATRIX_ROW_.*_IN_MIDDLE_OF_CHAR_P.
13972 (init_iterator_to_next_row_start): Special handling of lines
13973 ending in middle of char removed.
13974 (hscroll_windows): Hscroll windows only if window_end_valid is not
13975 nil.
13976 (try_window_reusing_current_matrix): Call hscroll_windows.
13977 (init_iterator_to_row_start): Initialize iterator for display
13978 starting at a position given by a glyph_row->start.
13979 (redisplay_window): Don't use vmotion because it gives wrong
13980 results if lines are continued and variable width fonts are used.
13981
427ec082 13982 * dispextern.h (struct glyph_pos): New member dpvec_index.
26901792
DL
13983 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test if row ends in the
13984 the middle of a character.
427ec082 13985 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Test if row starts in
26901792
DL
13986 the middle of a character.
13987
13988 * xdisp.c (set_iterator_to_next): Increment it->dpvec_index, reset
13989 it.
13990 (next_element_from_display_vector): Use it->dpvec_index.
13991 (reseat_iterator): Reset it.
13992 (init_iterator): Reset it.
13993 (setup_iterator_dpvec_from_glyph_pos): Set up it->dpvec and
13994 it->pos.dpvec_index from a glyph_pos structure.
13995 (init_iterator_from_glyph_pos): Call the function above.
13996 (reseat_iterator_to_glyph_pos): Ditto.
13997
13998 * dispnew.c (direct_output_forward_char): Don't use this method at
13999 overlay boundaries or near invisible text.
14000 (direct_output_forward_char): Step through glyph row to find
14001 cursor position.
14002
427ec082 14003 * xterm.c (x_get_cursor_gc): Don't return cursor_gc for font ==
26901792
DL
14004 frame font if line height differs from font height.
14005
14006 * xdisp.c (set_iterator_to_next): Renamed from
14007 move_iterator_forward to avoid confusion with other move_.*
14008 functions.
14009
14010 * dispextern.h (FACE_RELIEF_P): Renamed from FACE_3D_P.
14011
140121997-12-31 Gerd Moellmann <gerd@acm.org>
14013
14014 * xterm.c (x_get_cursor_gc): Renamed from x_cursor_gc to use the
14015 same naming convention as for other GC functions.
14016 (draw_glyphs): Don't fill background when drawing a cursor and
14017 font height is less than line height.
14018
140191997-12-30 Gerd Moellmann <gerd@acm.org>
14020
14021 * xdisp.c (init_display_iterator.*): Renamed to shorter names
14022 init_iterator_.*.
14023
14024 * xdisp.c (move_iterator_forward): Restore it->len from
14025 it->dpvec_char_len if dpend reached.
14026 (get_next_display_element): Don't consume translated char
14027 prematurely.
14028 (display_line): Don't set this_.* variables if row is continued.
14029 (start_display): Move to start of continuation line if ending
14030 up at end of continued line.
14031
14032 * dispextern.h (struct display_iterator): New member dpvec_char_len.
14033
14034 * xdisp.c (move_iterator_in_display_line_to): Check TO_POS after
14035 checking TO_X and continuation lines.
14036 (get_last_unchanged_at_beg_row): If first_changed_pos is the end
14037 of a continued line, don't consider this line as unchanged because
14038 it may no longer be continued.
14039
140401997-12-29 Gerd Moellmann <gerd@acm.org>
14041
14042 * xdisp.c (try_window_id): Catch the case that moving over
14043 continuation lines moves first_unchanged_at_end_row to a row not
14044 displaying text.
14045
14046 * dispextern.h (struct glyph_row): New member
14047 continuation_lines_width. Member continuation_line_p removed.
427ec082 14048 (MATRIX_ROW_CONTINUATION_LINE_P): Non-zero if row displays a
26901792
DL
14049 continuation line.
14050 * xdisp.c (display_line): Set row->continuation_lines_width.
14051 (get_row_start_continuation_line_width): Set continuation lines
14052 width of iterator from continuation lines width of glyph row.
14053 (get_row_start_continuation_line_width): Make it inline.
14054 (set_window_cursor): Make it inline.
14055 (try_window_id): Use MATRIX_ROW_CONTINUATION_LINE_P.
14056 (Fdump_redisplay_state): Ditto.
427ec082 14057
26901792
DL
14058 * dispnew.c (update_window_line): Use MATRIX_ROW_CONTINUATION_LINE_P.
14059 * xterm.c (x_draw_row_bitmaps): Use MATRIX_ROW_CONTINUATION_LINE_P.
14060
14061 * xdisp.c (try_window_id): Set it.hpos and it.current_x to zero
14062 after determining the continuation lines width for
14063 last_unchanged_at_beg_row.
14064
14065 * xterm.c (x_draw_row_bitmaps): Let overlay arrow have precedence.
14066
14067 * xdisp.c (display_mode_line): Handle 3D faces only on frames
14068 which support faces.
14069 (init_display_iterator): Ditto.
14070 (move_iterator_via_matrix): Skip over truncation glyph at the row
14071 start on terminal frames.
14072 (hscroll_windows): Choose hscroll margin differently for window
14073 system and terminal frames.
14074
140751997-12-28 Gerd Moellmann <gerd@acm.org>
14076
14077 * xdisp.c (hscroll_windows): Change hscroll of windows.
14078 (redisplay_internal): Call it.
14079
427ec082 14080 * dispnew.c (direct_output_for_insert): Give up if a glyph
26901792
DL
14081 doesn't fit completely on the line.
14082 (direct_output_forward_char): Give up for non-ASCII chars.
14083 (direct_output_forward_char): Set redisplay_performed_directly_p.
14084
14085 * dispextern.h (struct display_iterator): Make first_visible_x
14086 and last_visible_x ints; this is for very long truncated lines.
14087
14088 * xdisp.c (move_iterator_in_display_line_to): Separate check for
14089 MOVE_X_REACHED only if it->nglyphs == 0. This fixes cursor
14090 positioning problems with the mouse.
14091 (move_iterator_in_display_line_to): Truncate lines if it->current_x
14092 >= it->last_visible_x instead of >.
14093 (display_line): Ditto.
14094
14095 * xterm.c (draw_glyphs): Draw rectangles if font could not be
14096 loaded.
14097 (XTproduce_glyphs): Calculate pixel_width for composite chars and
14098 non-ASCII chars differently. Always produce 1 glyph for composite
14099 chars. If font not found, use CHARSET_WIDTH to calculate width of
14100 non-ASCII chars.
14101 (x_get_char_font_and_encoding): Return null if font could not be
14102 loaded. Reset font to null if fontset could not be loaded.
14103 (draw_glyphs): Fill background if font not found.
14104 (draw_glyphs): Unused parameter just_foreground_p removed. New
14105 parameter composite_glyph.
14106 (draw_glyphs): Use enumeration for parameter hl.
427ec082 14107 (draw_glyphs): Pass a display area relative x-position to
26901792
DL
14108 draw_glyphs when calling it recursively for composite chars.
14109
141101997-12-27 Gerd Moellmann <gerd@acm.org>
14111
14112 * xterm.c: Patches from handa.etl.go.jp integrated.
14113 (draw_glyphs): Don't rely on x_get_char_font_and_encoding to
14114 find a font_info.
14115
14116 * xdisp.c (move_iterator_in_display_line_to): Check to_x
14117 for nglyphs == 1.
14118
14119 * xterm.c (x_draw_relief): Draw relief lines.
14120 (draw_glyphs): Call x_draw_relief.
14121
141221997-12-26 Gerd Moellmann <gerd@acm.org>
14123
14124 * xfns.c (x_make_gc): Create relief GC's.
14125
14126 * widget.c (create_frame_gcs): Create GC's for relief drawing.
14127 (setup_frame_gcs): Initialize them.
14128 (EmacsFrameDestroy): Free them.
14129
427ec082 14130 * xdisp.c (try_window_id): Get continuation lines width if
26901792
DL
14131 last_unchanged_at_beg_row is continued or a continuation line.
14132 (move_iterator_via_matrix): Don't do it for mini-buffer windows.
427ec082 14133 (redisplay_window): Case point has changed, and it has not
26901792
DL
14134 moved off the frame. Don't increment row if PT equals the row
14135 end if the row ends in ZV.
14136
14137 * xterm.c (x_draw_row_bitmaps): New function to draw bitmaps.
14138 (expose_line): Call it.
14139 (x_after_update_window_line): Call it.
14140
14141 * xdisp.c (display_line): Reset continuation_lines_width when ZV
14142 reached.
14143
14144 * xterm.c (x_after_update_window_line): Draw continuation line
14145 bitmap.
14146
14147 * dispnew.c (update_window_line): Call
14148 after_update_window_line_hook when row's continuation_line_p
14149 changes.
14150
14151 * xterm.c (draw_bitmap): Draw new bitmap CONTINUATION_LINE_BITMAP.
14152
14153 * xdisp.c (display_line): Handle continued lines on window system
14154 frames differently since continuation glyphs are not displayed.
14155 (move_iterator_in_display_line_to): Ditto.
14156 (move_iterator_in_display_line_to): Take the mini-buffer prompt
14157 into account.
14158 (move_iterator_vertically_backward): Handle dy == 0 specially.
14159 (redisplay_window): Catch the case of small windows when
14160 recentering where moving back window_height/2 moves us beyond the
14161 top of the display area of the window.
14162
141631997-12-18 Gerd Moellmann <gerd@acm.org>
14164
14165 * xdisp.c (move_iterator_vertically_backward): Unused parameter
14166 dvpos removed.
14167
141681997-12-17 Gerd Moellmann <gerd@acm.org>
14169
14170 * dispnew.c (direct_output_forward_char): Correct new cursor
14171 x-position.
14172
141731997-12-16 Gerd Moellmann <gerd@acm.org>
14174
14175 * xterm.c (x_after_update_window_line): Remove unused parameters.
14176 (XTclear_end_of_line): Clear to display_height instead of
14177 display_height - 1.
14178
14179 * dispnew.c (set_frame_matrix_frame): Make it INLINE.
427ec082 14180 (update_window_line): Call after_update_window_line_hook if
26901792
DL
14181 rows have different y-positions, or different height.
14182
141831997-12-14 Gerd Moellmann <gerd@acm.org>
14184
14185 * frame.h (FRAME_MODE_LINE_PIXEL_HEIGHT): Removed.
14186
14187 * window.c (coordinates_in_window): Call frame_mode_line_height.
14188
14189 * xterm.c (x_draw_3d_border): Removed.
14190 (x_draw_row_borders): Removed.
14191
14192 * dispnew.c (update_window): References to
14193 FRAME_MODE_LINE_BORDER_WIDTH removed.
14194
14195 * xterm.h (FRAME_MODE_LINE_BORDER_WIDTH): Removed.
14196 (FRAME_MODE_LINE_HEIGHT): Removed.
14197
14198 * xterm.c (draw_3d_borders_p): Removed.
14199 (draw_glyphs): Ditto.
14200 (XTwrite_glyphs): Ditto.
14201 (expose_line): Ditto.
14202 (x_initialize): Ditto.
14203
14204 * dispextern.h (WINDOW_DISPLAY_MODE_LINE_HEIGHT): Call
14205 frame_mode_line_height.
14206
14207 * term.c (frame_mode_line_height): Get the pixel height of a
14208 frame's mode line.
14209 (frame_mode_line_height_hook): Hook to implement system dependent
427ec082
SS
14210 versions.
14211
26901792
DL
14212 * xterm.c (x_initialize): Set the hook.
14213 (XTframe_mode_line_height): X version of frame_mode_line_height.
14214
14215 * xdisp.c (echo_area_display): Call gobble_input to flush the X
14216 output buffer.
14217 (display_string): Don't add right truncation mark if line ends in
14218 padding space.
14219 (init_display_iterator): If called with modeline_p non-zero, set
14220 face_id to 1, which is the id of the mode line face.
14221
14222 * keyboard.c (cmd_error_internal): Write to stderr if selected
14223 frame is Vterminal_frame under X. This is the case when a font
14224 cannot be loaded when Emacs starts. Replace test for
14225 FRAME_MESSAGE_BUF with test for glyphs_initialized_p.
14226
14227 * xfaces.c (compute_overlay_string_char_face): Compute the
14228 face of a character in an overlay string.
14229 * xterm.h (compute_overlay_string_char_face): Prototype.
427ec082 14230 * xdisp.c (compute_face_at_iterator_overlay_string_position):
26901792
DL
14231 Use it.
14232
14233 * xdisp.c (set_iterator_to_next_overlay_string): Formerly
14234 set_iterator_to_next_overlay.
14235 (struct overlay_entry): Structure used to sort overlay strings.
14236 (compare_overlay_entries): Compare overlay strings.
14237 (load_iterator_with_overlay_strings): Load a chunk of overlay
14238 strings.
14239 (get_overlay_strings_at_iterator_position): Call it.
14240 (next_element_from_overlay_string): Set it->object to the overlay
14241 string. Prepare for setting it->position to a string position.
14242 (get_overlay_strings_at_iterator_position): Renamed from
14243 get_overlays_at_iterator_position.
14244 (setup_iterator_overlay_strings_from_glyph_pos): Changed to load
14245 chunks of overlay strings.
14246 (load_overlay_strings): Renamed from load_iterator_overlay_strings.
14247
14248 * dispextern.h (struct display_iterator): New vector
14249 overlay_strings and new member n_overlay_strings---formerly
427ec082
SS
14250 overlays and n_overlays.
14251 (struct glyph_pos): Remove after_string_p; overlay_index
26901792
DL
14252 renamed to string_index.
14253
142541997-12-13 Gerd Moellmann <gerd@acm.org>
14255
14256 * xdisp.c (copy_iterator): Increment n_iterator_overlay_vectors
14257 when allocating a vector.
14258 (release_iterator): Removed.
14259 (restore_iterator): Removed.
14260 (copy_iterator): Removed.
14261
142621997-12-08 Gerd Moellmann <gerd@acm.org>
14263
14264 * xdisp.c (redisplay_window): Use make_empty_enabled_row for
14265 clearing a mini-buffer window that is not active.
14266 (redisplay_window): Do not scroll one line too early when last
14267 window line is completely visible.
14268 (init_display_iterator): Leave some room to display the cursor
14269 after the last glyph on a continued line.
14270
14271 * xterm.h (struct x_output): trunc_area_extra renamed
14272 flags_areas_extra.
14273 (FRAME_X_FLAGS_AREA_WIDTH): Renamed from FRAME_X_TRUNC_WIDTH.
14274
14275 * dispnew.c (update_window_line): Call
14276 after_update_window_line_hook when current row is not enabled
14277 which is the case after a frame has been cleared.
14278
14279 * xdisp.c (display_mode_line): Reset row flags for truncation
14280 on right side for the mode line.
14281
14282 * xterm.c (bitmap_type): Type of bitmap to display in flags
14283 area of frame.
14284 (x_after_update_window_line): Use the enum.
14285 (draw_bitmap): Ditto.
14286
142871997-12-07 Gerd Moellmann <gerd@acm.org>
14288
14289 * xterm.c (x_clip_to_row): Include width of both flag areas.
14290 (do_line_dance): Ditto.
14291 (expose_window_tree): Ditto.
14292 * dispnew.c (update_window_line): Call
14293 after_update_window_line_hook for right truncation and continuation.
14294 * xdisp.c (init_display_iterator): Don't subtract width of
14295 continuation glyphs for window-based redisplay.
14296 * xterm.c (draw_bitmap): Draw continuation bitmap.
14297 * widget.c (set_frame_size): Double trunc_area_extra.
14298 (EmacsFrameSetCharSize): Ditto.
14299 * xfns.c (x_figure_window_size): Ditto.
14300 * xterm.c (x_set_window_size): Ditto.
14301 (x_after_update_window_line): Draw right truncation mark.
14302
14303 * xterm.c (draw_glyphs): Bug fix buffer overrun.
14304
14305 * window.h: Include blocker around dispextern.h removed.
14306
14307 * eval.c (Feval): Check interrupt_input_block == 0.
427ec082 14308
26901792
DL
14309 * dispextern.h (struct display_iterator): Former ovstr made a
14310 Lisp_Object overlay_string. New next_ovstr_face_check_pos and
14311 next_ovstr_invisble_check_pos; check at these positions for
14312 face changes and changes in invisible text property.
14313 (struct glyph_pos): Former ovlen now overlay_string_index.
14314
14315 * xdisp.c (setup_iterator_overlays_from_glyph_pos): Set
14316 overlay_string.
14317 (set_iterator_to_next_overlay_string): Set overlay_string and
14318 pos.overlay_string_index.
14319 (get_overlays_at_iterator_position): Use overlay_string and
14320 overlay_string_index.
14321 (next_element_from_overlay_string): Use overlay_string and
14322 overlay_string_index.
14323 (move_iterator_forward): Increment overlay_string_index.
14324 (try_window_id): Use overlay_string and overlay_string_index.
14325 (move_iterator_forward): At end of dpvec, maybe use method
14326 next_element_from_overlay_string for the case a character from an
14327 overlay string was translated via a display table.
14328 (reseat_iterator_to_string): Take a Lisp string.
14329 (display_string): Pass a Lisp string to reseat_iterator_to_string.
14330 (compute_face_at_iterator_overlay_string_position): Compute face
14331 based on text properties for an overlay string.
14332 (next_element_from_overlay_string): Check invisible and face text
14333 properties.
178c5d9c 14334
26901792
DL
14335 (set_iterator_to_next_overlay_string): Restore face id before
14336 overlay strings when no more overlay strings are found to return.
14337 Initialize next_ovstr_.*check_pos for each new overlay string
178c5d9c 14338
bb6677a8
GM
14339 A line in the following paragraph was garbled for an unknown
14340 reason. It couldn't be fully reconstructed.
178c5d9c 14341
bb6677a8 14342 (compute_base_face): Made public.
26901792
DL
14343 (merge_face_list): Ditto.
14344 (intern_computed_face): Ditto.
14345
427ec082 14346 * xdisp.c (redisplay_window): Cursor movement in unchanged
26901792
DL
14347 window if PT > w->last_point. Goto try_to_scroll if bottom Y
14348 of row is > instead of >= last_y.
14349
14350 * buffer.h (overlays_at): Function prototype.
14351
14352 * xdisp.c (reseat_iterator_to_string): Clear iterator position.
14353 * dispextern.h (GET_NEXT_DISPLAY_ELEMENT): Removed.
14354
427ec082 14355 * xdisp.c (release_iterator): Release dynamically allocated
26901792
DL
14356 memory of a display_iterator.
14357 (copy_iterator): Copy an iterator.
14358 (restore_iterator): Restore an iterator from a backup copy.
14359 (global): Use the functions above.
14360 * window.c (Fpos_visible_in_window_p): Call release_iterator.
14361 * dispnew.c (direct_output_for_insert): Call release_iterator.
14362
14363 * dispextern.h (struct display_iterator): Allocate overlays
14364 vector dynamically.
14365
143661997-12-06 Gerd Moellmann <gerd@acm.org>
14367
14368 * Makefile.in (window.o): Depends on dispextern.h.
14369
14370 * buffer.c (overlays_at): Make it work when extending vectors
14371 and an initial vector of zero size.
14372
14373 * xdisp.c (set_iterator_to_previous_visible_line_end): Renamed
14374 from set_cursor_to_previous_visible_line_end.
14375 (set_iterator_to_next_visible_line_start): Renamed from
14376 set_cursor_to_next_visible_line_end.
14377 (set_next_iterator_stop_pos): Renamed from set_next_stop_pos.
14378 (compute_face_at_iterator_position): Renamed from
14379 compute_cursor_face.
14380 (set_iterator_to_next_overlay_string): Renamed from
14381 cursor_to_next_overlay_string.
14382 (get_overlays_at_iterator_position): Renamed from
14383 get_overlays_for_cursor.
14384 (reseat_iterator): Renamed from reseat_cursor.
14385 (setup_iterator_overlays_from_glyph_pos): Renamed from
14386 setup_overlays_from_pos.
14387 (init_string_iterator): Renamed from init_string_cursor.
14388 (get_next_display_element): Renamed from next_display_element.
14389 (move_iterator_forward): Renamed from advance_display_cursor.
427ec082 14390 (get_overlays_at_iterator_position): Allocate overlays vector
26901792
DL
14391 dynamically.
14392
14393 * xdisp.c: display_cursor renamed display_iterator.
14394 * dispextern.h: Ditto.
14395 * dispnew.c: Ditto.
14396
143971997-12-01 Gerd Moellmann <gerd@acm.org>
14398
14399 * window.c (mark_window_cursors_off): Function comment added.
14400 (window_topmost_p, window_rightmost_p): Removed because not used.
14401
144021997-11-30 Gerd Moellmann <gerd@acm.org>
14403
14404 * emacs.c (main): Function prototypes removed in profiling code.
14405 Use safe_bcopy as start of text.
14406
14407 * dispnew.c (update_frame_line): update_line -> update_frame_line;
14408 mirrored_make_current -> make_current.
14409
14410 * xdisp.c: (store_frame_title_char): New function to store a
14411 single character for the frame title with re-allocation of
14412 frame_title_buf.
14413 (init_xdisp): Intialize frame_title_.* variables to null.
14414
14415 * dispnew.c (quit_error_check): Removed.
14416
14417 * eval.c (Fsignal): Call to quit_error_check removed.
14418 * keyboard.c (quit_throw_to_read_char): Ditto.
14419
144201997-11-23 Gerd Moellmann <gerd@acm.org>
14421
14422 * xfaces.c (Fset_face_attribute_internal): Allow nil relief
14423 to mean a zero relief.
14424
26901792
DL
144251997-11-19 Gerd Moellmann <gerd@acm.org>
14426
14427 * dispnew.c (new_glyph_matrix): Increment glyph_matrix_count
14428 unconditionally.
14429 (glyph_matrix_count, glyph_pool_count): Define unconditionally.
14430 (free_glyph_matrix): Decrement glyph_matrix_count unconditionally.
14431 (check_glyph_memory): Define function body unconditionally.
14432
144331997-11-17 Gerd Moellmann <gerd@acm.org>
14434
14435 * dispnew.c (scrolling_window): Alternative version of this
14436 function removed.
14437
144381997-11-16 Gerd Moellmann <gerd@acm.org>
14439
14440 * dispnew.c (make_empty_enabled_row): Make an empty, enabled row
14441 of height CANON_Y_UNIT.
14442 * dispextern.h: Prototype for that function.
427ec082 14443 * xdisp.c (echo_area_display): Don't use display_string to
26901792
DL
14444 produce empty rows. Use make_empty_enabled_row instead.
14445
14446 * dispnew.c (scrolling_window): New version using diff-like
14447 algorithm activated.
427ec082 14448
26901792
DL
144491997-11-15 Gerd Moellmann <gerd@acm.org>
14450
14451 * dispnew.c (clear_current_matrices): Clear matrix of menu_bar_window
14452 (clear_desired_matrices): Ditto.
14453 (adjust_frame_glyphs_for_window_redisplay): Use FRAME_WINDOW_WIDTH
14454 for menu_bar_window.
14455
14456 * alloc.c (mark_object): Mark menu_bar_window of frames.
14457
14458 * xterm.c (XTupdate_window_end): Don't display cursor if
14459 pseudo_window_p.
14460
14461 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Don't
14462 set mini_p.
14463 (update_window): Don't set cursor if pseudo_window_p.
14464
14465 * dispextern.h (WINDOW_WANTS_MODELINE_P): Test pseudo_window_p.
14466
14467 * window.h (struct window): New flag pseudo_window_p set to
14468 1 for windows that aren't really part of the window tree, like
14469 menu_bar_window's of frames.
14470 * window.c (make_window): Initialize it.
14471 (replace_window): Ditto.
14472 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Ditto.
14473
14474 * frame.c (make_frame): Initialize menu_bar_window to nil.
14475
14476 * xterm.c (XTget_display_info): FACE_SHADOW_THICKNESS renamed
14477 FACE_RELIEF
14478
14479 * xfaces.c (copy_face): shadow_thickness -> relief.
14480 (face_eql): Ditto.
14481 (merge_faces): Ditto.
14482 (compute_base_face): Ditto.
14483 (Fset_face_attribute_internal): Ditto.
14484 * dispextern.h (struct face): Ditto.
14485
14486 * dispnew.c (update_frame): Update menu_bar_window of the frame if
14487 it is non-nil.
14488
14489 * xdisp.c (display_menu_bar): Display the menu bar in
14490 f->menu_bar_window if appropriate.
14491 (display_mode_line): Use MATRIX_MODE_LINE_ROW.
14492
14493 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Allocate
14494 dummy window and window matrices for f->menu_bar_window.
14495 (free_glyphs): Free the dummy window and its glyph matrices.
14496
14497 * frame.h (struct frame): New member menu_bar_window.
14498
144991997-11-09 Gerd Moellmann <gerd@acm.org>
14500
14501 * dispnew.c (scrolling_window): New version with diff-like
14502 algorithm.
14503
14504 * xdisp.c (try_window_reusing_current_matrix): If new_start >
14505 old_start always start displaying at start of
14506 first_row_to_display. The previous scheme failed if the last row
14507 was fully visible.
14508
14509 * dispnew.c (update_window): Remove cost calculations. Remove
14510 redundant preempt_count calculations.
14511
14512 * xterm.c (x_clip_to_row): Set clipping for non-text rows
14513 differently.
14514
14515 * dispnew.c (update_window): Use WINDOW_WANTS_MODELINE_P.
14516
427ec082 14517 * window.c (syms_of_window): Functions for marginal areas if
26901792
DL
14518 WITH_MARGINAL_AREAS is defined.
14519
427ec082 14520 * xdisp.c (try_window_reusing_current_matrix): Trace fprintf
26901792
DL
14521 removed.
14522
14523 * dispnew.c (scrolling): Call line_hash_code because hash values
14524 are not set in the frame matrix.
14525
14526 * xdisp.c (try_window_id): Fix scrolling for terminal frames.
14527 (redisplay_window): Check line_ins_del_ok before calling
14528 try_window_id.
14529 (try_window_reusing_current_matrix): Give up for terminal frames
14530 if window is not full width or we cannot insert/delete lines.
14531 (try_window_reusing_current_matrix): Fixed scrolling for terminal
14532 frames.
14533
14534 * alloc.c (mark_glyph_matrix): Bug fix - pass pointer to
14535 Lisp_Object to mark_object.
14536
14537 * xdisp.c (sync_frame_with_window_matrix_rows): Make frame and
14538 window rows have the same glyph pointers.
14539 (try_window_id): Call it.
14540
14541 * alloc.c (mark_glyph_matrix): Function to mark Lisp objects in
14542 a glyph matrix.
14543 (mark_object): Call it.
14544
14545 * xdisp.c (insert_left_trunc_glyphs): Use 0 object in glyphs for
14546 truncations.
14547 (display_line): Ditto.
14548 (display_line): Ditto for DISP_CONTINUATION.
14549 (display_line): Truncation on right: test current_x >
14550 last_visible_x.
14551 (skip_in_display_line_to): Ditto.
14552 (skip_via_matrix): Stop skipping in glyph row at face extending
14553 glyphs or at padding spaces.
14554
14555 * dispnew.c (fill_up_glyph_row_with_spaces): Comment extended.
14556
14557 * xdisp.c (display_line): Use glyph->object == 0 for padding
14558 glyphs.
14559 (redisplay_window): Don't let cursor move over padding
14560 spaces.
14561
14562 * dispextern.h (struct glyph): Fix comment for object.
14563
145641997-11-08 Gerd Moellmann <gerd@acm.org>
14565
14566 * dispextern.h (WINDOW_WANTS_MODELINE_P): Non-zero if a window
14567 has a mode line.
14568 * xdisp.c (redisplay_window): Use it.
14569 (display_mode_line): Check that window wants mode line.
14570
145711997-11-03 Gerd Moellmann <gerd@acm.org>
14572
14573 * xdisp.c (display_menu_bar): Enable menu bar rows.
14574
14575 * xterm.c (x_draw_hollow_cursor): X positions based on text area.
14576 (x_erase_phys_cursor): Ditto.
14577 (x_draw_bar_cursor): Ditto.
14578
145791997-11-02 Gerd Moellmann <gerd@acm.org>
14580
14581 * dispnew.c (update_marginal_area): Update a marginal area.
14582 (update_text_area): Update text area.
14583 (update_window_line): Call both.
14584
14585 * xterm.c (XTclear_end_of_line): Translate coordinates area
14586 dependent.
14587
14588 * dispnew.c (updated_area): Row area being updated in
14589 update_window_line.
14590 (update_window_line): Set it.
14591 (update_marginal_area): Clear to end of line if not in text area.
14592
14593 * window.c (Fset_window_margins): Increment
14594 windows_or_buffer_changed. Adjust glyphs.
14595
14596 * dispextern.h (WINDOW_TEXT_TO_FRAME_PIXEL_X): Convert text
14597 area X coordinates to frame coordinates.
427ec082 14598 (WINDOW_DISPLAY_LEFT_AREA_PIXEL_WIDTH): Width of left marginal area.
26901792
DL
14599 (WINDOW_DISPLAY_RIGHT_AREA_PIXEL_WIDTH): Same for right area.
14600 (WINDOW_DISPLAY_TEXT_AREA_PIXEL_WIDTH): Same for text area.
14601
14602 * xterm.c (draw_glyphs): Use text area width as display width.
14603
14604 * xdisp.c (init_display_info): Subtract widths of marginal areas
14605 from last_visible_x.
14606
14607 * alloc.c (mark_object): Mark objects in glyphs only if they are
14608 overlays. Mark only if current_matrix != 0. Activate the code.
14609
14610 * window.c (Fset_window_margins): Set margins.
14611 (Fwindow_margins): Return margin area widths.
14612 (syms_of_window): Add defsubr's.
14613
14614 * window.h (struct window): left_margin_width, right_margin_width.
14615
14616 * xfns.c (x_set_trunc_area_width): Set truncation pixel width
14617 and cols.
14618
14619 * frame.h (FRAME_TRUNC_COLS): Number of columns occupied by
14620 truncation/overlay arrow area.
14621 (struct frame): trunc_area_pixel_width, and _cols.
14622
14623 * window.c (Fsplit_window): Use it.
14624
14625 * window.c (Fsplit_window): Set cursor vpos to -1 after
14626 splitting.
14627 (Fsplit_window): SUbtract/add FRAME_TRUNC_WIDTH for horizontally
14628 split windows.
14629
14630 * dispnew.c (set_window_cursor_after_update): Accept out
427ec082 14631 of bounds cursor positions.
26901792
DL
14632
14633 * xdisp.c (redisplay_internal): Check that after cursor motion
14634 within line, PT is on same line.
14635
14636 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Don't subtract
14637 FRAME_TRUNC_WIDTH.
14638
14639 * xterm.h (struct x_output): trunc_area_extra.
14640 (CHAR_TO_PIXEL_WIDTH): Add in trunc_area_extra.
14641 (PIXEL_TO_CHAR_WIDTH): Subtract it.
14642 * widget.c (set_frame_size): Set it.
14643 (EmacsFrameSetCharSize): Ditto.
14644 * xfns.c (x_figure_window_size): Ditto.
14645 * xterm.c (x_set_window_size): Ditto.
14646
14647 * dispnew.c (check_matrix_invariants): First try to check window
14648 ends (in #if 0).
14649
14650 * xdisp.c (try_window_reusing_current_matrix): Try window
14651 redisplay with different window start.
14652
146531997-11-01 Gerd Moellmann <gerd@acm.org>
14654
14655 * window.c (make_window): Set window_end_pos/vpos.
14656 (Fsplit_window): Zero last_cursor, window_end_valid.
14657 (Fset_window_buffer): Set window_end_vpos, zero last_cursor.
14658
14659 * dispnew.c (check_matrix_invariants): Check window_end_pos/vpos.
14660
146611997-10-31 Gerd Moellmann <gerd@acm.org>
14662
14663 * window.c (make_window): Initialize last_cursor.
14664 (replace_window): Ditto.
14665
146661997-10-29 Gerd Moellmann <gerd@acm.org>
14667
14668 * window.h: New member last_cursor.
14669 * dispnew.c (direct_output_for_insert): Set it.
14670 (direct_output_forward_char): Ditto.
14671 * xdisp.c (redisplay_internal): Ditto.
14672
146731997-10-28 Gerd Moellmann <gerd@acm.org>
14674
14675 * xdisp.c (redisplay_internal): Optimization 1 change partially
14676 reverted. Check this again later.
14677 (skip_via_matrix): Remove redundent test for
427ec082 14678 MATRIX_ROW_DISPLAYS_TEXT_P.
26901792
DL
14679
146801997-10-27 Gerd Moellmann <gerd@acm.org>
14681
14682 * dispnew.c (update_window_line): Call
14683 after_update_window_line_hook only for interesting constellations.
14684 (free_glyph_matrix): Fix memory leak.
14685
14686 * window.h: Include blocker WINDOW_H_INCLUDED, include
14687 dispextern.h.
14688 (struct window): phys_cursor_glyph as struct glyph. * window.c
14689 (make_window): Initialize it.
427ec082 14690 (replace_window): Ditto.
26901792
DL
14691 * dispnew.c (free_window_matrices): Remove freeing of
14692 phys_cursor_glyph.
14693 (check_matrix_invariants): Renamed from check_current_matrix_...
14694 * xterm.c: All references to phys_cursor_glyph changed.
14695
14696 * dispextern.h (DISPEXTERN_H_INCLUDED: New include blocker.
14697
14698 * xfaces.c: Comment update.
14699
14700 * window.h (struct window): Make phys_cursor_glyph a struct glyph
14701 pointer. Remove phys_cursor_ascent, descent, etc.
14702 * dispnew.c (free_window_matrices): Free it.
14703 * window.c (make_window): Allocate it.
14704 (replace_window): Ditto.
14705 * xterm.c (x_draw_phys_cursor_glyph): Draw it.
14706 (x_display_and_set_cursor): Fill it.
14707 (x_phys_cursor_in_rect_p): Use it.
14708 (x_draw_hollow_cursor): Ditto.
14709 (x_draw_bar_cursor): Ditto.
14710 (x_erase_phys_cursor): Ditto.
14711
14712 * xdisp.c (skip_in_display_line_to): Use SET_INFO_FROM_CURSOR.
14713
14714 * xterm.c (XTget_display_info): Handle 3D facess.
14715 (draw_glyphs): Ditto.
14716
14717 * xdisp.c (Fdump_redisplay_state): Change interactive spec to "p".
14718
14719 * xfaces.c (Fset_face_attribute_internal): New face attribute
14720 shadow-thickness.
14721 (copy_face): Handle shadow_thickness.
14722 (face_eql): Ditto.
14723 (merge_faces): Ditto.
14724 (compute_base_face): Ditto.
14725
14726 * dispextern.h (struct display_cursor): New member start_of_3d_run_p.
14727 (struct display_info): Ditto.
14728 (SET_INFO_FROM_CURSOR): Transfer it to display_info.
14729 * xdisp.c (compute_cursor_face): Set it.
14730 (advance_display_cursor): Clear it.
14731
14732 * xdisp.c (init_string_cursor): Initialize face_id to -1.
14733 (init_string_cursor): Init face_id to zero.
14734
14735 * dispextern.h (struct face): New member shadow_thickness.
14736
427ec082 14737 * xdisp.c (compute_cursor_face): Set limit for text property
26901792
DL
14738 search to 100.
14739
14740 * dispnew.c (update_window_line): Try to resynch with current line
14741 to prevent mode line flickering.
14742
147431997-10-26 Gerd Moellmann <gerd@acm.org>
14744
427ec082 14745 * dispnew.c (set_window_cursor_after_update): React again
26901792
DL
14746 on cursor_in_echo_area >= 0.
14747
14748 * xdisp.c (echo_area_display): Clear desired matrix before
14749 displaying into it.
14750 (display_menu_bar): Clear glyph row instead of hoping it is not
14751 enabled. This is safer.
14752
14753 * dispnew.c (check_current_matrix_invariants): Check only
14754 visible rows.
14755
14756 * xdisp.c (try_window_id): Handle window end setting in case of
14757 display to end of window, but only non-text lines displayed.
14758
14759 * dispnew.c (check_current_matrix_invariants): Check nrows for zero.
14760 (check_current_matrix_invariants): Check used counts.
14761
14762 * Revisiob v114.
14763
14764 * dispnew.c (scrolling): Use hash codes from rows.
14765
14766 * xdisp.c (Fdump_redisplay_state): Dump current matrix.
14767
14768 * dispnew.c (scrolling_window): Invalidate conflicting runs.
14769
147701997-10-25 Gerd Moellmann <gerd@acm.org>
14771
14772 * dispextern.h (struct glyph_matrix): Flag no_scrolling_p.
14773 * dispnew.c (update_window): Use it.
14774 (clear_glyph_matrix): Clear it.
14775 * xdisp.c (try_window_id): Set it.
14776
14777 * dispextern.h (struct glyph_row): New flag ends_at_zv_p.
14778
14779 * xdisp.c (redisplay_internal): Increment glyph positions differently.
14780
14781 * dispextern.h: More comments etc.
14782
147831997-10-24 Gerd Moellmann <gerd@acm.org>
14784
14785 * dispnew.c (set_window_cursor_after_update): Set cursor
14786 for cursor_in_echo_area == 0 to (0, 0).
14787
14788 * dispextern.h (struct glyph_row): New flags continuation_line_p
14789 and displays_text_p.
14790 (MATRIX_ROW_DISPLAYS_TEXT_P): Use displays_text_p.
14791 * xdisp.c (display_line): Set them.
14792 (try_window_id): Move to start of continuation line to find out
14793 continuation_line_width.
14794 (first_unchanged_current_row): Don't retract row if continued,
14795 truncated etc.
14796
14797 * xterm.c: Map X coordinates.
14798
147991997-10-23 Gerd Moellmann <gerd@acm.org>
14800
14801 * dispnew.c (buffer_posn_from_coords): Translate X for right to
14802 left text.
14803
14804 * xdisp.c (display_line): Set right_to_left_p after clearing the row.
14805
14806 * xterm.c (XTclear_end_of_line): Respect right_to_left_p.
14807
f28eba7b 14808 * xdisp.c (try_window_id): Clear desired matrix if not successul.
26901792
DL
14809
14810 * xdisp.c (try_window_id): Call update_window_begin_hook/end_hook.
14811
14812 * dispnew.c (update_window_begin_hook, update_winodw_end_hook):
14813 Set this to functions to be called before/after window updates.
14814 (direct_output_for_insert): Call them.
14815 (update_window): Ditto.
14816 (update_frame): Call update_begin/ update_end for windows.
14817
14818 * xterm.c (XTupdate_window_begin): Called before window updates.
14819 (XTupdate_end): Called after window updates.
14820 (x_initialize): Set hooks to above.
14821
14822 * xdisp.c (init_display_info): Initialize c and len of
14823 display_info.
14824
14825 * xterm.c (x_get_char_font_and_encoding): Bug fix. Don't load
14826 fonts more than once.
14827
148281997-10-22 Gerd Moellmann <gerd@acm.org>
14829
14830 * xdisp.c (display_line): Handle most common case of current_x <
14831 last_visible_x separately.
14832
14833 * dispextern.h (display_element_type): DISP_ELLIPSIS removed.
14834
14835 * dispnew.c (update_window_line): Compare pixel widths of glyphs
14836 so that face extending space doesn't compare equal to normal space
14837 with same face.
14838
14839 * xdisp.c (display_line): Make sure we have a position for
14840 a line end in an otherwise blank line if face is extended.
14841
14842 * dispnew.c (direct_output_for_insert): Increment row end position.
14843
427ec082 14844 * window.c (Fpos_visible_in_window_p): Use old meaning of
26901792
DL
14845 window_end_pos.
14846
14847 * xdisp.c (init_display_cursor_from_glyph_pos): New.
14848
14849 * dispextern.h (MATRIX_ROW_FIRST_POS): Use row start.
14850
14851 * dispnew.c (increment_glyph_row_buffer_positions): Adjust
14852 start and end positions in rows.
14853 (increment_glyph_row_buffer_positions): Stop adjusting at
14854 glyphs with positions <= 0.
14855
14856 * dispextern.h (struct glyph_pos): Structure desribing a text
427ec082 14857 position including position in overlay.
26901792
DL
14858 (struct glyph_row): Use it for start and end positions.
14859 (struct display_cursor): Use it.
14860 * xdisp.c: Use it.
14861 (display_line): Set row start and end positions.
14862
14863 * dispnew.c (copy_row_except_pointers): Use bcopy and struct
14864 assignment.
14865
148661997-10-21 Gerd Moellmann <gerd@acm.org>
14867
14868 * dispnew.c (update_window): Add scrolling_window again. It's
14869 necessary for scroll_step != 0.
14870
14871 * xdisp.c (redisplay_window): Use vmotion for scroll_step
14872 scrolling.
14873
14874 * xdisp.c (last_unchanged_current_row): Use window_end_vpos.
14875
14876 * xterm.c (XTupdate_end): Flush only for messages.
14877
14878 * xdisp.c (try_window_id): Assert last_unchanged_row >=
14879 first_unchanged_row.
14880
14881 * xterm.c (XTupdate_end): Flush if miniwindow.
14882
14883 * dispnew.c (matrix_row_last_pos): New function.
14884 * dispextern.h (MATRIX_ROW_LAST_POS): Call it.
427ec082 14885 Large comment moved to xdisp.c.
26901792
DL
14886
14887 * xdisp.c (redisplay_window): Bug fix: PT set to value > Z.
14888 (skip_via_matrix): Check window_end_valid instead of
14889 display_completed.
14890
14891 * dispnew.c (scroll_glyph_matrix_range): Bug fix.
14892 (update_window): scrolling_window commented out. It has negative
14893 effect most of the time.
14894
14895 * xdisp.c (try_window_id): Correct parameters to
14896 scroll_glyph_matrix_range.
14897
427ec082 14898 * xterm.c (XTupdate_end): XFlush commented out.
26901792
DL
14899
14900 * window.h: Comments for window_end_pos/vpos.
14901
f28eba7b 14902 * xdisp.c (skip_to): Assert current_buffer is the buffer
26901792
DL
14903 of the window in which we are skipping.
14904
14905 * dispnew.c (update_window_line): Optimized clear_end_of_line.
14906
14907 * xterm.c (draw_glyphs): Bug fix. Return window relative X
14908 reached.
14909
149101997-10-20 Gerd Moellmann <gerd@acm.org>
14911
14912 * dispextern.h (MATRIX_ROW_LAST_POS): Go back one glyph if this is
14913 a face extending glyph.
14914
427ec082 14915 * xdisp.c (try_window_id): Check if point will appear.
26901792
DL
14916 (set_cursor_from_row): Set cursor position from a glyph row.
14917
14918 * dispnew.c (update_window_line): Write entire line if hash
14919 codes of lines differ.
14920
14921 * dispextern.h (MATRIX_ROW_EXTENDS_FACE_P): Value is non-zero
14922 if glyph row has an infinite width glyph at its end.
14923
14924 * xdisp.c (last_unchanged_current_row): Respect partially visible
14925 lines when looking for the last row displaying text.
14926 (try_window_id): Handle partially visible lines better.
14927
149281997-10-19 Gerd Moellmann <gerd@acm.org>
14929
14930 * dispnew.c (update_window): Remove unused variable.
14931 (update_window_line): Simplified.
14932
14933 * xterm.c (x_get_char_font_and_encoding): Handle most common
14934 case at the beginning.
14935
14936 * xdisp.c (advance_display_cursor): Dispatch on method and
14937 order if statements by expected call frequency. Fixed unclosed
14938 comment.
14939
14940 * xdisp.c (try_window_id): New implementation.
14941
14942 * dispnew.c (increment_glyph_row_buffer_positions): Capture
14943 rows displaying a line end, only.
14944
149451997-10-18 Gerd Moellmann <gerd@acm.org>
14946
14947 * window.c (Fpos_visible_in_window_p): Remove use of window_end_vpos.
14948
149491997-10-14 Gerd Moellmann <gerd@acm.org>
14950
14951 * xdisp.c (display_line): Mark empty lines not corresponding to
14952 text with position -1.
14953
14954 * xterm.c (x_erase_phys_cursor): Don't bother to erase cursor if
14955 not within window matrix bounds.
14956
14957 * dispextern.h (struct display_cursor): New member REGION_SHOWING_P.
14958 (struct display_info): NGLYPHS_TO_IGNORE removed.
14959 * xdisp.c: References to NGLYPHS_TO_IGNORE removed.
14960 * term.c: Ditto.
14961 * xterm.c: Ditto.
14962
14963 * xdisp.c (init_display_cursor): Set it.
14964 (display_line): Use it to set W->REGION_SHOWING.
14965
14966 * xdisp.c (skip_via_matrix): Check for overlay arrow.
14967
14968 * region-cache.h: functino prototypes with PROTO.
14969
14970 * dispnew.c (buffer_posn_from_coords): Use -1 as skip position.
14971
14972 * xdisp.c (skip_via_matrix): Check for rows that don't contain
14973 a position.
14974
427ec082 14975 * xterm.c (XTmouse_position): Calculate LAST_MOUSE_GLYPH
26901792
DL
14976 rectangle based on minimum character bounds.
14977
f28eba7b 14978 * keyboard.c (make_lispy_event): Mouse clicks; don't do frame
26901792
DL
14979 glyph position calculations.
14980 (make_lispy_movement): Use buffer_posn_from_coords and window
14981 relative coordinates.
14982
14983 * xterm.c (construct_mouse_click): Remove #if 0 case.
14984
14985 * dispextern.h (MATRIX_ROW_BOTTOM_Y): Return bottom pixel y of
14986 given row.
14987
427ec082
SS
14988 * xdisp.c (skip_via_matrix): Skip using current matrix if up to
14989 date.
26901792
DL
14990 (skip_to): Use it.
14991 (redisplay_window): Remove code skipping using current matrix.
14992
149931997-10-13 Gerd Moellmann <gerd@acm.org>
14994
14995 * xdisp.c (redisplay_window): Use available current matrix to
14996 skip faster when only point is moved withing the window.
14997
427ec082 14998 * intervals.c: Include stdio.h.
26901792
DL
14999 (find_interval): Trace to stderr to catch some nasty error
15000 that did not yet occur again with tracing.
15001 (set_point): Ditto.
15002
15003 * dispnew.c (shift_glyph_matrix): Experimental code for handling
15004 cursor positioning on partially visible lines.
15005 (set_window_cursor_after_update): Ditto.
15006
f28eba7b 15007 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): Bug fix.
26901792
DL
15008
15009 * window.h (struct window): start_y removed.
15010
15011 * window.c (make_window): start_y removed.
15012 (replace_window): Ditto.
15013
427ec082 15014 * xdisp.c (last_max_ascent, last_max_descent): Ascent and
26901792
DL
15015 descent values of the last line processed by skip_to.
15016 (redisplay_window): Use them.
15017 (skip_to): Set them.
15018
15019 * dispextern.h (struct display_cursor): New member METHOD.
15020
15021 * xdisp.c: Use function member METHOD.
15022
15023 * xdisp.c (set_next_stop_pos): Determine next position at which to
15024 check for face properties, invisible text properties, and overlays.
15025 (compute_cursor_face): Use it.
15026 (get_overlays_for_cursor): Ditto.
15027 (reseat_cursor): Ditto.
15028 (next_display_element): Ditto.
15029
15030Sun Aug 24 08:50:52 1997 Gerd Moellmann <gerd@acm.org>
15031
15032 * termhooks.h: Some hooks with prototypes.
15033
15034 * term.c: Some hooks with function prototypes.
427ec082 15035
26901792
DL
15036 * xdisp.c (reseat_cursor): Additional argument force_p. Avoid
15037 computing face if possible.
15038
15039 * xdisp.c (next_display_element): Use face from glyph from display
15040 table only if != 0.
15041
15042 * emacs.c: FreeBSD headers for profiling removed.
15043
427ec082
SS
15044 * dispnew.c (direct_output_for_insert): Don't use PT-1 for
15045 display cursor, use DEC_POS instread.
26901792
DL
15046
15047 * xfaces.c (load_font): Use x_load_font to load fonts so that
427ec082 15048 all fonts are in the font table.
26901792
DL
15049 (unload_font): Don't XFreeFont.
15050
15051 * dispnew.c (row_equal_p): Compare ascent, descent and visible
15052 row height.
15053
15054 * xterm.c (draw_glyphs): Use 8-bit functions if possible.
15055 (x_erase_phys_cursor): Clear only visible part of row.
15056 (x_draw_bar_cursor): Set clipping.
15057 (x_draw_hollow_cursor): Ditto.
15058 (x_display_and_set_cursor): Remove clipping.
15059 (expose_window_tree): Take trunc border into account.
15060 (x_phys_cursor_in_rect_p): Test if phys_cursor intersects a rect.
15061 (expose_window): Use it.
15062
15063 * xdisp.c (display_string): Catch case that we are called with
d7d0dac0 15064 current_x already beyond max_x.
26901792
DL
15065 (global): Fix usage of FRAME_WINDOW_P <-> FRAME_WINDOW_REDISPLAY_P.
15066 (init_display_info): Subtract vertical border glyph from
d7d0dac0 15067 last_visible_x.
26901792
DL
15068
15069 * scroll.c (scrolling_window_1): Removed.
15070
15071 * dispnew.c (adjust_frame_glyphs): Split into two functions,
15072 based on redisplay method used.
15073 (adjust_frame_glyphs_for_frame_redisplay): Part for frame
15074 based redisplay.
15075 (adjust_frame_glyphs_for_window_redisplay): Part for purely
15076 window based redisplay.
15077
15078 * frame.h (FRAME_WINDOW_REDISPLAY_P): Changed to not depend
15079 on data structures.
15080
15081 * dispnew.c (adjust_glyph_matrix): Additional parameter W.
15082 Handle own storage for purely window based redisplay.
15083 (allocate_matrices_for_frame_redisplay): Formerly part of
427ec082 15084 allocate_matrices.
26901792
DL
15085 (allocate_matrices_for_window_redisplay): Ditto.
15086
15087 * dispextern.h (struct glyph_matrix): window_top_y,
15088 window_height.
15089
15090 * dispnew.c (allocate_matrices_for_window_redisplay): Detect
15091 and optimize some common cases of window changes.
15092
15093 * emacs.c (main): Remove own profiling code because 0.95 now
15094 has it in.
15095
15096Fri Aug 22 18:46:43 1997 Gerd Moellmann <gerd@acm.org>
15097
d7d0dac0 15098 * xterm.c (XTupdate_end): Draw horizontal border at right position.
26901792
DL
15099 (expose_window): Draw vertical border.
15100 (XTclear_end_of_line): Accept width <= 0 and height <= 0 but
15101 don't do anything.
15102
15103 * xdisp.c (redisplay_internal): Set update_mode_line if paused
15104 for non full width windows only if not window redisplay.
15105
15106 * dispnew.c (update_window_tree): Or paused_p return of called
15107 functions.
15108
15109 * xterm.c (x_display_and_set_cursor): Return if hpos/vpos outside
15110 of window.
15111
15112 * window.c (Fset_window_configuration): adjust_glyphs being
15113 called twice.
15114 (Fset_window_configuration): Set frame garbaged if not all
15115 leaf windows reused.
15116
151171997-08-21 Gerd Moellmann <gerd@acm.org>
15118
15119 * dispnew.c (clear_glyph_matrix): Additional argument specifiying
15120 that rows should really be cleared. Used for current matrices.
15121
d7d0dac0
SM
15122 * dispnew.c (scrolling_window): Bug fix.
15123 (line_dance_hook): Formerly line_dance_fn, take only one parameter.
26901792
DL
15124
15125 * dispextern.h (struct run): Remove current_vpos.
15126
15127 * xterm.c (do_line_dance): Only one parameter.
15128
f28eba7b 15129 * xdisp.c (display_line): Set continued_p.
26901792
DL
15130
15131 * dispextern.h (struct glyph_row): New flag continued_p.
15132 Fix truncated_on_left_p and truncated_on_right_p to be bits.
427ec082 15133 (struct glyph_row):
26901792
DL
15134
15135Thu Aug 21 14:37:34 1997 Gerd Moellmann <gerd@acm.org>
15136
15137 * xdisp.c (skip_vertically_backward): Avoid negative vpos values
15138 when calling skip_to for continued lines.
15139
15140 * dispnew.c (change_frame_size_1): Set frame garbaged.
15141
15142 * xterm.c (expose_window): Check enabled_p of rows.
15143
15144 * xdisp.c (redisplay_internal): Compare line heights before and
15145 now for redisplay optimization 2 (hit).
15146 (display_line): Set this_line_pixel_height.
15147
15148 * xterm.c (x_draw_row_borders): Use FRAME_MODE_LINE_HEIGHT height
15149 value.
15150 (x_clip_to_row): Use MATRIX_ROW_VISIBLE_HEIGHT. Simplified.
15151 (do_line_dance): Simplified and pixel corrected.
15152
15153 * dispnew.c (scrolling_window): Simplified.
15154
15155 * xterm.c (x_draw_3d_border): Inset rectangle by line width.
15156
15157 * dispnew.c (update_window): Add FRAME_MODE_LINE_BORDER_WIDTH
15158 to mode line row->x.
15159
15160Wed Aug 20 11:23:28 1997 Gerd Moellmann <gerd@acm.org>
15161
15162 * xterm.c (x_get_char_font_and_encoding): Don't let fontset
15163 override font of face.
15164 (draw_glyphs): Correct return value.
15165 (XTclear_end_of_line): Compare differently with output cursor
15166 position.
15167 (x_draw_hollow_cursor): 2 parameters, window and row.
15168
15169 * dispnew.c (update_window_line): If rows have different height
15170 or y, write entire line.
15171
f28eba7b 15172 * xdisp.c (compute_line_metrics): Reset max_ascent and max_descent
26901792
DL
15173 of info struct.
15174
427ec082 15175 * xfaces.c (Fset_face_attribute_internal): Don't call
26901792
DL
15176 frame_update_line_height.
15177 (merge_faces): Don't use default font if new font has different
15178 size.
15179
15180Tue Aug 19 14:38:05 1997 Gerd Moellmann <gerd@acm.org>
15181
15182 * xterm.c (x_display_and_set_cursor): Use FONT_WIDTH if width
d7d0dac0 15183 unknown. Some fonts have min_width zero.
26901792 15184 (draw_glyphs): Don't draw underlines to the end of the display
d7d0dac0 15185 line if face is merely extended to that point.
26901792 15186 (draw_glyphs): Don't assume background is filled if
d7d0dac0 15187 just_foreground_p but extending to end of line.
26901792
DL
15188
15189 * xterm.c (XTclear_end_of_line): Clip only to display_height - 1
15190 for partially visible last lines.
15191 (x_clip_to_row): Ditto.
15192 (x_clip_to_row): Clip to display_height-1 if y + line_height >
15193 display_height since line_height is really a line distance.
15194 (x_display_and_set_cursor): If cursor on padding glyph, use
15195 min_bounds pixel width.
15196
15197Mon Aug 18 09:39:18 1997 Gerd Moellmann <gerd@acm.org>
15198
15199 * xterm.c (x_clip_to_row): Height value was 1 too large.
15200 (XTclear_end_of_line): Clip to display area.
15201
15202 * xfns.c (x_figure_window_sizes): Add trunc border width
15203 to frame pixel width.
15204
15205 * xdisp.c (next_display_element): Don't display overlay strings
15206 within invisible text.
427ec082 15207 (skip_vertically_backward): Skip display lines.
26901792
DL
15208
15209Sat Aug 16 13:13:32 1997 Gerd Moellmann <gerd@acm.org>
15210
15211 * xdisp.c (x_consider_frame_titie): Don't pad with blanks.
15212
15213 * xdisp.c (next_display_element): Next invisible
15214 text check position computed differently.
15215
15216 * dispextern.h (struct display_cursor): last_invisible_text_pos
15217 and display_ellipsis_for_invisible_p removed.
15218
15219 * xdisp.c (next_display_element): Set last_invisible_text_pos
15220 to the last position at which invisible text was found. Don't
15221 decrement cursor.pos for newlines and cr with ellipsis. Set
427ec082 15222 dpvec for `...' due to invisible text directly.
26901792
DL
15223 (redisplay_internal): Don't assert that cursor is at PT after
15224 skip_to. It may be in invisible text.
15225
427ec082 15226 * keyboard.c (make_lispy_event): For mouse clicks, use
26901792
DL
15227 x_y_to_hpos_vpos.
15228
427ec082 15229 * xdisp.c (next_display_element): Call get_overlays_for_cursor when
26901792
DL
15230 next_overlay_pos is reached. Use limit cursor.pos + 100 when
15231 checking for invisible text.
15232
15233 * xterm.h (WINDOW_COL_PIXEL_X etc.) Removed.
15234
15235 * dispextern.h (WINDOW_TO_FRAME_HPOS/VPOS): Moved to dispnew.c
15236
d7d0dac0 15237 * xfns.c (x_contour_region): Use pixel coordinates from window
26901792
DL
15238 cursor instead of WINDOW_TO_FRAME_H/VPOS.
15239
15240 * dispextern.h (FRAME_TO_WINDOW_HPOS, FRAME_TO_WINDOW_VPOS):
15241 Removed.
15242
15243 * dispnew.c (frame_to_window_hpos, frame_to_window_vpos): Removed.
15244
15245 * xterm.c (x_y_to_hpos_vpos): Get hpos/vpos from window relative
15246 pixel coordinates.
15247 (note_mouse_highlight): Use it.
15248
15249 * xdisp.c (echo_area_display): Ignore calls for terminal frames
15250 under a window system.
15251
427ec082 15252 * dispnew.c (adjust_frame_glyphs): Call redraw_frame if
26901792 15253 necessary.
427ec082 15254 (update_window_line): Add width of face padding glyph to
26901792
DL
15255 displayed widths of rows.
15256
15257 * xterm.c (x_display_and_set_cursor): Set clipping after
15258 erasing cursor.
427ec082
SS
15259
15260 * window.c (Fset_window_configuration): Free only those
26901792
DL
15261 window matrices not reused.
15262 (get_leaf_windows): Build vector of leaf windows.
15263 Corrupted archive restored from v77.
15264
f28eba7b 15265 * xdisp.c (display_string): Stop at >= last_visible_x if truncating
26901792
DL
15266 like display_line does.
15267
15268 * xdisp.c (display_mode_line): Don't hscroll mode line.
15269
15270 * xterm.c (draw_glyphs): Wrong run_width computed for horiz. split
15271 windows.
15272 (x_scroll_bar_create): #3039 Clear area below scroll bar to remove
15273 garbage between mode lines when splitting windows horiz.
15274
15275 * dispnew.c (direct_output_for_insert): Bug fix.
15276
15277 * dispextern.h (struct display_cursor): New member string_length.
15278
15279 * xdisp.c (next_display_element): Return padding spaces.
f28eba7b 15280 (init_string_cursor): Take precision and field_width
26901792
DL
15281 (display_string): Use string cursor, skip over invisible text.
15282
15283Thu Aug 14 10:41:41 1997 Gerd Moellmann <gerd@acm.org>
15284
15285 * xterm.c (x_clip_to_row): Clip to partially visible lines.
15286 (x_display_and_set_cursor): Call it.
15287 (draw_glyphs): Call it
15288 (draw_bitmap): Call it.
15289
427ec082 15290 * dispnew.c (adjust_frame_glyphs): Optimize frame garbaging.
26901792
DL
15291 (allocate_leaf_matrix): Return flags.
15292 (row_equal_p): Compare enabled_p.
15293
15294 * xterm.c (x_erase_phys_cursor): Set phys_cursor_on_p to 0
15295 for type == -1.
15296
15297 * xterm.c (x_display_and_set_cursor): Bar cursor 1 pixel taller.
427ec082 15298 (draw_glyphs): Clip height one pixel taller.
26901792 15299
427ec082 15300 * dispnew.c (direct_output_for_insert): Give up for hscrolled
26901792
DL
15301 mini window.
15302
f28eba7b 15303 * xdisp.c (display_line): Don't scroll mini prompt.
26901792 15304
427ec082
SS
15305 * xdisp.c (echo_area_display): Call update_single_window if
15306 possible.
26901792
DL
15307
15308 * dispnew.c (update_window_line): Call scrolling_window.
f28eba7b 15309 (scrolling_window): Work on enabled desired lines only.
26901792
DL
15310 (update_single_window): Update a single window like update_frame
15311 does for all windows.
427ec082 15312 (update_window, update_window_tree): Additional argument
26901792
DL
15313 no_scrolling_p.
15314 (update_frame): Pass no_scrolling_p to update_window_tree.
15315 (update_window): Don't call scrolling_window if no_scrolling_p.
15316
15317 * xterm.c (x_erase_phys_cursor): Do nothing if type == -1.
427ec082
SS
15318 Erase under hollow cursor.
15319 (x_display_and_set_cursor): Do nothing if cursor glyph row
26901792
DL
15320 not enabled. Draw bar cursor 1 pixel smaller.
15321
f28eba7b 15322 * dispnew.c (adjust_frame_glyphs): Don't set frame garbaged
26901792
DL
15323 since update will follow soon.
15324
15325 * xdisp.c (echo_area_display): Unitialized variable.
15326
f28eba7b 15327 * xterm.c (draw_bitmap): Previously draw_truncation; draw
26901792
DL
15328 overlay arrow bitmap.
15329
f28eba7b 15330 * xdisp.c (display_line): For truncated lines, consider everything
427ec082 15331 up to the final \n as part of the line for cursor positioning.
26901792 15332
f28eba7b
SM
15333 * xterm.c (draw_truncation): Take FRAME_X_TRUNC_WIDTH into account.
15334 (x_after_update_window_line): Clear trunc marks.
26901792
DL
15335
15336 * xterm.h (FRAME_X_TRUNC_WIDTH).
15337
f28eba7b 15338 * frame.h (FRAME_TRUNC_WIDTH): Width of area at the left margin
26901792
DL
15339 of a window reserved for truncation mark.
15340
427ec082 15341 * dispextern.h: Take FRAME_TRUNC_WIDTH into account.
26901792
DL
15342
15343 * dispnew.c (update_window_line): Call after_update_windwo_line-
427ec082 15344 hook.
26901792
DL
15345
15346 * xdisp.c (display_line): Set overlay_arrow_p in row.
15347
15348 * dispextern.h (struct glyph_row): New flag overlay_arrow_p.
15349
15350 * xterm.c (x_after_update_window_line): Draw truncation marks.
15351
15352 * xdisp.c (display_line): Insert truncation for lines with
15353 current_x > 0.
15354
15355 * xterm.c (x_draw_row_borders): Convert y to frame coords.
15356 Correct y by 1.
15357 (x_display_cursor): Use default font width if width not
427ec082 15358 known.
26901792 15359
f28eba7b 15360 * xdisp.c (echo_area_display): Set row->y.
26901792
DL
15361
15362 * dispnew.c (set_window_cursor_after_update): Don't assume
15363 all rows are enabled.
15364
15365 * xdisp.c (skip_in_display_line_to): Test cursor.position instead
15366 of cursor.pos.
15367 (skip_in_display_line_to): Check cursor.position after call to
15368 next_display_element.
15369
427ec082 15370 * dispextern.h (CURSOR_AT_P): Test if cursor has reached
26901792
DL
15371 buffer position.
15372
15373 * xdisp.c (display_line): Set row->y here.
15374 (skip_in_display_line_to): Test for to_pos after all glyphs
15375 have been added to hpos so that hpos is at the end of all
15376 glyphs for to_pos.
15377 (start_display): Remove assertion.
15378
d7d0dac0 15379 * dispnew.c (direct_output_forward_char): Bug fix, = instead of ==.
26901792
DL
15380 (update_window): Don't set row->y here.
15381
15382 * xdisp.c (next_display_element): Don't translate control chars
15383 from display table entries.
15384
427ec082 15385 * dispnew.c (direct_output_for_insert): Set cursor before
26901792
DL
15386 update end to prevent cursor flickering. Revert changes to
15387 setting cursor.endpos.
15388
15389Wed Aug 13 10:46:12 1997 Gerd Moellmann <gerd@acm.org>
15390
15391 * dispnew.c (direct_output_for_insert): Don't set cursor.endpos
15392 to PT because this prevents multi-byte characters from being
15393 recognized.
15394
427ec082
SS
15395 * xdisp.c (skip_to, display_line): Advance cursor at end of
15396 truncated line.
26901792
DL
15397
15398 * xterm.c (x_draw_3d_borders): Use CapRound. Struct rect
15399 replaced by XRectangle.
15400
d7d0dac0 15401 * dispnew.c (scrolling_window): New method.
26901792
DL
15402
15403 * xterm.c (do_line_dance): New implementation, new method.
427ec082 15404
26901792
DL
15405 * xdisp.c (draw_glyphs): Draw truncation bitmaps. Clip to
15406 visible part of line.
15407
15408 * dispnew.c (update_window_line): Fill inverse video lines
15409 with infinite width space.
15410 (update_window): Handle completely empty matrices.
15411 (set_window_cursor_after_update): Bug fix.
15412
427ec082 15413 * xterm.c (draw_glyphs): Stop drawing at right window end.
26901792
DL
15414
15415 * dispnew.c (update_window_line): Don't ignore spaces, don't
15416 fill with spaces.
15417
15418 * xdisp.c (compute_line_metrics): Stop adding glyph widths with
15419 the first glyph having width 0.
15420
15421 * xterm.c (draw_glyphs): Let a glyph pixel with of 0 denote
427ec082 15422 a glyph that extends to the end of the line.
26901792
DL
15423
15424 * xdisp.c (display_line): Insert one padding glyph
15425
15426 * xdisp.c (skip_in_display_line_to): Don't subtract shift left
15427 amount from info.current_x.
15428 (display_line): Ditto.
15429
15430 * dispnew.c (direct_output_for_insert): Correct use of cursor.x.
15431 (change_frame_size_1): Correct cursor.x if frame gets too small.
15432 (update_window_line): Start at row->x.
15433
15434 * xdisp.c (redisplay_internal): Correct cursor.x (everwhere
15435 in xdisp.c).
15436
15437 * xterm.c (set_output_cursor): Use window relative X/Y.
15438 (global): Use window relative output cursor x/y.
15439 (draw_glyphs): Remove y param. Pass window relative x/y.
15440
15441 * dispnew.c (update_window): Start rows at start_y.
15442 (update_window): Don't try scrolling because it wouldn't work
15443 with variable height lines, anyway.
15444
15445 * dispextern.h (struct glyph_row): Remove shift_left_by,
15446 add x.
15447
15448 * window.h: (struct window): New member start_y.
15449
15450 * window.c (replace_window): Initialize start_y.
15451 (make_window): Ditto.
15452
15453Tue Aug 12 14:53:04 1997 Gerd Moellmann <gerd@acm.org>
15454
15455 * xterm.c (draw_glyphs): Clip rows that would paint over
427ec082 15456 the mode line.
26901792 15457
427ec082
SS
15458 * dispnew.c (update_window): Take mode line border into
15459 account.
26901792
DL
15460
15461 * xterm.h (FRAME_MODE_LINE_BORDER_WIDTH): Number of pixels
427ec082 15462 of border around mode line.
26901792
DL
15463
15464 * xterm.c (x_draw_row_borders): Bug fix.
15465 (x_erase_phys_cursor): Set pyhs_cursor.x/y before calling
15466 drawing functions.
15467
15468 * xterm.c (x_draw_row_border): Experimental; draw 3d borders
427ec082 15469 around modeline instead of inverting it.
26901792 15470
427ec082 15471 * xterm.c (glyph_to_pixel_coords): Use current matrix.
26901792
DL
15472
15473 * dispnew.c (buffer_posn_from_coords): Use SKIP_TO. Now takes
15474 window relative pixel coordinates as arguments.
15475
15476 * keyboard.c (make_lispy_event): Use BUFFER_POSN_FROM_COORDS
15477 with window relative pixel coordinates. Use GLYPH_TO_PIXEL_-
15478 COORDS mit new arguments.
15479
15480Mon Aug 11 12:32:34 1997 Gerd Moellmann <gerd@acm.org>
15481
15482 * xdisp.c (start_display): Use SKIP_TO instead of SKIP_IN-
427ec082 15483 DISPLAY_LINE.
26901792
DL
15484
15485 * keyboard.c (make_lispy_event): WINDOW_FROM_COORDINATES with
15486 pixel coords.
15487 (make_lispy_movement): Same.
15488
15489 * xterm.c (note_mouse_highlight): Use WINDOW_FROM_COORDINATES
15490 with new parameter meaning.
15491
15492 * window.c (Fcoordinates_in_window_p): Convert Lisp params
15493 from canon units to pixels.
15494 (coordinates_in_window): Pixel based.
15495 (Fcoordinates_in_window_p): Convert result pixel values back
15496 to canonical units.
15497
15498 * window.h: phys_cursor_ascent + descent instead of height.
15499
15500 * xterm.c (XTget_char_info): Use per char metrics for multi-byte
d7d0dac0 15501 chars with charset width 1.
26901792
DL
15502
15503 * dispnew.c (direct_output_for_insert): Set updated_row.
15504
15505Sat Aug 9 12:11:44 1997 Gerd Moellmann <gerd@acm.org>
15506
15507 * dispextern.h (struct glyph): Padding flag removed.
15508
15509Tue Aug 5 09:59:08 1997 Gerd Moellmann <gerd@acm.org>
15510
15511 * sysdep.c (reset_sys_modes): cursor_to with 4 params.
15512
15513 * keyboard.c (interrupt_signal): Cursor_to with 4 params.
15514
15515 * dispnew.c (update_window_line): Use pixels.
15516
15517 * xdisp.c (compute_line_metrics): Correct pixel_width by
15518 shift_left_by.
15519
15520 * dispextern.h (struct glyph_row): FIRST_SHIFTED_LEFT_GLYPH
427ec082 15521 removed. Remove references to it everywhere. Reverse_p in
26901792
DL
15522 glyph_row -> right_to_left_p. Change references to it.
15523
15524Mon Aug 4 18:09:27 1997 Gerd Moellmann <gerd@acm.org>
15525
15526 * dispnew.c (direct_output_for_insert): Use INSERT_GLYPHS.
15527
15528 * xterm.c (XTinsert_glyphs): Implement it.
15529
15530 * term.c (insert_glyphs): UPDATING_FRAME may be NULL in case
15531 of a call from DIRECT_OUTPUT_FOR_INSERT.
15532
15533 * window.h (struct cursor_pos): Keeps both matrix positions
15534 and pixel positions.
15535 (struct window): Use it.
15536
15537 * dispnew.c (direct_output_for_insert): New version.
15538
15539 * xdisp.c (redisplay_internal): Don't do anything if it has
15540 already be done directly.
15541
15542 * keyboard.c (command_loop_1): Call DIRECT_OUTPUT_FOR_INSERT
15543 for any character.
15544
15545Thu Jul 31 15:39:10 1997 Gerd Moellmann <gerd@acm.org>
15546
15547 * xdisp.c (echo_area_display): Use new DISPLAY_STRING.
15548
15549Wed Jul 30 12:18:03 1997 Gerd Moellmann <gerd@acm.org>
15550
15551 * dispextern.h (struct glyph_row): MAX_ASCENT, MAX_DESCENT.
15552 (struct glyph): ASCENT, DESCENT.
15553 (MATRIX_ROW_PIXEL_HEIGHT): Pixel height of row.
15554 (GLYPH_PIXEL_HEIGHT): Pixel height of glyph.
15555
15556 * xterm.c (XTget_display_info): Correct tab computation.
15557
15558 * term.c (get_display_info): Correct tab computation.
15559
15560 * dispextern.h (struct display_cursor): WHAT_FOUND, SOURCE_OBJECT.
15561 Renamed from CHAR_CURSOR.
15562
15563Tue Jul 29 12:52:40 1997 Gerd Moellmann <gerd@acm.org>
15564
15565 * xdisp.c (display_text_line): Mostly pixel oriented.
15566
15567 * dispextern.h (struct glyph): BOX_WIDTH -> PIXEL_WIDTH.
15568
15569 * term.c (append_intermediate_glyph): Generate padding glyphs.
15570
15571 * xdisp.c (display_text_line): More into final direction.
15572
15573 * xterm.c (XTget_char_info): Use WHAT field of CHAR_INFO.
15574 (XTget_char_info): Use tabs as multiples of spaces.
15575
15576 * term.c (get_char_info): Use WHAT field of CHAR_INFO.
15577 Use tabs as multiples of spaces.
15578
15579 * dispextern.h (struct char_info ): WHAT field.
15580
15581 * term.c (encode_terminal_code): Don't use GLYPH_CHAR, use
d7d0dac0 15582 FAST_GLYPH_CHAR instead because GLYPH_CHAR won't remove faces.
26901792
DL
15583
15584Mon Jul 28 14:23:06 1997 Gerd Moellmann <gerd@acm.org>
15585
15586 * dispnew.c (init_char_info): Correct TAB_WIDTH to a reasonable
15587 value.
15588 (init_char_info): Initialize with glyph row.
15589
15590 * term.c (get_char_info): Check WANT_ELLIPSIS_P.
15591
15592 * xterm.c (XTget_char_info): Check WANT_ELLIPSIS_P.
15593
15594 * dispextern.h (struct char_info ): GLYPH_ROW for intermediate
15595 glyphs.
15596
15597 * dispnew.c (init_char_info): Init GLYPH_ROW to NULL. CHAR_CURSOR
15598 moved to xdisp.c.
15599
15600 * xdisp.c (display_text_line): Use CHAR_CURSOR.
15601
15602 * xterm.c (x_append_intermediate_glyph): Intermediate glyph
15603 generation.
15604 (XTget_char_info): Ditto.
15605
15606 * term.c (get_char_info): Intermediate glyph generation.
15607 (append_intermediate_glyph): Ditto.
15608
15609Sun Jul 27 18:57:24 1997 Gerd Moellmann <gerd@acm.org>
15610
427ec082 15611 * dispnew.c (compute_char_cursor_face): Compute the face for a
26901792
DL
15612 CHAR_CURSOR.
15613 (init_char_cursor): Initialize a CHAR_CURSOR.
15614 (get_char_and_advance): Get next character to display.
15615
15616 * dispextern.h (struct char_cursor): Cursor for iterating over
15617 display text of CURRENT_BUFFER.
15618
15619Sat Jul 26 13:33:03 1997 Gerd Moellmann <gerd@acm.org>
15620
15621 * term.c (get_char_info): Set MAX_PIXEL_WIDTH in CHAR_INFO.
15622
15623 * dispextern.h (struct char_info ): Use LISP_CHAR_TABLE for DP.
15624 New member MAX_PIXEL_HEIGHT.
15625
15626 * xterm.c (x_per_char_metric): Get per character metrics.
15627 (XTget_char_info): More cases covered.
15628
15629 * term.c (get_char_and_info): Get next character and character
15630 display information.
15631 (get_char_info): Get character display information.
15632
15633 * dispextern.h: Character display information.
15634
427ec082 15635 * xterm.c (x_get_char_font_and_encoding): Get font and
26901792
DL
15636 encode character.
15637 (XTget_char_info): Get display information about a character.
15638
15639Wed Jul 23 16:50:18 1997 Gerd Moellmann <gerd@acm.org>
15640
15641 * dispextern.h (WINDOW_DISPLAY_MODE_LINE_HEIGHT): Height is
15642 zero if window is mini-window.
15643
15644 * xdisp.c: Include xterm.h or w32term.h for FRAME_LINE_HEIGHT.
15645 (try_window): DISPLAY_TEXT_LINE as long as Y < DISPLAY_HEIGHT.
15646
427ec082 15647 * dispnew.c (assign_row): Assign row pixel height.
26901792
DL
15648 (clear_glyph_row): Clear pixel height.
15649 (update_window): Use PIXEL_HEIGHT.
15650
15651 * xdisp.c (display_string): Set row pixel height temporarily.
15652 (display_text_line): Ditto.
15653
427ec082 15654 * dispextern.h (GLYPH_PIXEL_WIDTH):
26901792
DL
15655 (GLYPH_PIXEL_HEIGHT): Get glyph pixel dimension.
15656
427ec082 15657 * frame.h (FRAME_DEFAULT_PIXEL_LINE_HEIGHT): Get height of
26901792
DL
15658 line in default font.
15659 (FRAME_DEFAULT_GLYPH_PIXEL_WIDTH): Get width of character
15660 in default font.
15661 (FRAME_MODE_LINE_PIXEL_HEIGHT): Get height of mode line.
15662
15663 * xterm.h (FRAME_MODE_LINE_HEIGHT): Return height of mode line
15664 in pixels.
15665
15666 * dispnew.c (allocate_leaf_matrix): Use window pixel macros.
15667
15668 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH):
427ec082
SS
15669 (WINDOW_DISPLAY_PIXEL_HEIGHT):
15670 (WINDOW_DISPLAY_MODE_LINE_HEIGHT):
15671 (WINDOW_DISPLAY_PIXEL_HEIGHT_WITHOUT_MODE_LINE):
15672 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X):
15673 (WINDOW_DISPLAY_RIGHT_EDGE_PIXEL_X):
15674 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y):
26901792
DL
15675 (WINDOW_DISPLAY_BOTTOM_EDGE_PIXEL_Y): Macros to get various
15676 pixel values related to windows.
15677
15678Mon Jul 21 12:22:02 1997 Gerd Moellmann <gerd@acm.org>
15679
15680 * xterm.c (XTflash): Flash last line of frame.
15681
15682 * dispextern.h (cursor_in_echo_area): Extern declaration.
15683
15684 * xterm.c (dumpglyphs): 8-bit version to test if my Xserver
d7d0dac0 15685 freezes stem from 16-bit functions.
26901792
DL
15686
15687 * xterm.c (x_display_and_set_cursor): Don't display hollow
15688 cursor in mini windows.
15689
15690 * window.c (replace_window): Initialize PHYS_CURSOR_TYPE.
15691 (make_window): Ditto.
15692
15693 * xterm.c (x_erase_phys_cursor): Erase cursor image.
15694 (x_display_and_set_cursor): Merged version of X_DISPLAY_BOX_CURSOR
15695 and X_DISPLAY_BAR_CURSOR.
15696 (x_display_cursor): Use it.
15697 (x_update_window_cursor): Use it.
15698
15699 * xdisp.c (display_text_line): Set cursor for window even if not
d7d0dac0 15700 selected.
26901792
DL
15701
15702 * xterm.c (x_display_bar_cursor): Use HPOS and VPOS instead
15703 of X and Y to denote matrix positions.
15704 (x_display_cursor): Ditto.
15705
15706 * dispnew.c (scrolling_window): Scrolling for windows.
15707
15708Wed Jul 16 13:37:51 1997 Gerd Moellmann <gerd@acm.org>
15709
15710 * dispnew.c (build_frame_matrix): Work on windows with update
15711 flag set.
15712 (build_frame_matrix_from_window_tree): Ditto.
15713 (build_frame_matrix_from_leaf_window): Ditto.
15714
15715 * xdisp.c (echo_area_display): Set MUST_BE_UPDATED_P instead of
15716 building frame matrix.
427ec082 15717 (redisplay_internal): Set window update flags instead of
26901792
DL
15718 building frame matrix.
15719
15720 * minibuf.c (read_minibuf): Set MUST_BE_UPDATED_P instead of
15721 building frame matrix.
15722
15723 * window.c (make_window): Initialize new members.
15724 (replace_window): Ditto.
15725
15726 * xfns.c (Fx_create_frame): Don't set PHYS_CURSOR_X to -1.
15727 I don't believe this is really necessary.
15728
15729 * dispnew.c (build_frame_matrix_from_leaf_window): Determine
427ec082 15730 border glyph once.
26901792
DL
15731
15732Tue Jul 15 13:58:33 1997 Gerd Moellmann <gerd@acm.org>
15733
427ec082 15734 * window.c (mark_window_cursors_off): Mark all cursors in
26901792
DL
15735 window tree off.
15736
427ec082 15737 * xterm.c (x_display_box_cursor): Window paraemter. Use
26901792
DL
15738 window matrix.
15739 (glyph_to_pixel_pos): Convert matrix pos -> pixels.
15740 (pixel_to_glyph_pos): Convert pixel pos -> matrix pos.
15741 (x_update_cursor): Work on windows.
15742 (x_display_bar_cursor): Ditto.
15743 (x_draw_single_glyph): Ditto.
15744
15745 * xterm.h: Prototype for X_DISPLAY_CURSOR.
15746
15747 * xterm.c (XTcursor_to): Void return type. Test for
d7d0dac0 15748 UPDATED_WINDOW. Call x_display_cursor with window.
26901792 15749 (x_display_cursor): Void return type. Window instead of frame
d7d0dac0 15750 parameter.
26901792 15751
d7d0dac0 15752 * window.h (WINDOW_RIGHTMOST_P, WINDOW_TOPMOST_P): Use functions below.
26901792
DL
15753
15754 * window.c (window_rightmost_p, window_topmost_p): Based on
15755 window tree.
15756
15757 * dispnew.c (adjust_frame_message_buffer): Allocate with
d7d0dac0 15758 FRAME_MESSAGE_BUF_SIZE.
26901792
DL
15759
15760 * window.h: PHYS_CURSOR_.* added.
15761
15762 * frame.h (struct frame): Cursor information removed.
15763
15764 * frame.h (FRAME_SCROLL_BAR_WIDTH): Removed because unused.
15765 (FRAME_WINDOW_WIDTH_ARG): Don't add scroll bar width.
15766
15767 * window.h (WINDOW_LEFT_MARGIN): Remove FRAME_LEFT_SCROLL_BAR.
15768
15769 * window.c (window_internal_width): Scroll bars no longer
15770 part of window.
15771
d7d0dac0 15772 * xterm.c (XTclear_end_of_line): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
26901792 15773
d7d0dac0 15774 * xfns.c (x_set_scroll_bar_width): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
26901792
DL
15775
15776 * xdisp.c (echo_area_display): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
15777 (redisplay_internal): Ditto.
15778 (redisplay_window): Ditto.
15779 (redisplay_window): Ditto.
15780 (display_text_line): Ditto.
15781 (display_mode_line): Ditto.
15782
15783 * minibuf.c (read_minibuf): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
15784
15785 * dispnew.c (set_cursor_to): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
15786 (direct_output_for_insert): Ditto.
15787 (direct_output_forward_char): Ditto.
15788 (update_frame_1): Ditto.
15789
15790Mon Jul 14 12:30:03 1997 Gerd Moellmann <gerd@acm.org>
15791
15792 * dispnew.c (updated_window): Set by UPDATE_WINDOW to the window
d7d0dac0 15793 being updated.
26901792
DL
15794 (update_window): Set and clear it.
15795
15796 * dispnew.c (update_window_line, update_window, scrolling_window):
15797 First versions.
15798
15799 * dispnew.c (build_frame_matrix_from_leaf_window): Add vertical
15800 bar for window borders.
15801 (fill_up_glyph_row_area_with_spaces): Fill an area of a row
15802 with spaces.
15803 (fill_up_glyph_row_with_spaces): Call above function.
15804
15805 * xdisp.c (display_text_line): Don't add vertical bar for
15806 window borders.
15807 (display_string): Ditto.
15808
15809 * window.c (make_window): Init CURSOR_VPOS/HPOS.
15810 (replace_window): Ditto.
15811
15812 * xterm.c (XTwrite_glyphs): Use selected window cursor position.
15813
15814 * xfns.c (Fx_contour_region): Use selected window cursor position.
15815 (Fx_uncontour_region): Ditto.
15816 (Fx_select_region): Ditto.
15817
15818 * frame.c (make_frame): Remove CURSOR_X/Y.
15819
15820 * xdisp.c (redisplay_internal): Use window cursor position.
15821
15822 * dispnew.c (update_frame_1): Use cursor position of selected
15823 window.
15824 (change_frame_size_1): Ditto.
15825
15826 * xterm.c (XTupdate_begin): Set CURS_X/Y from selected window.
15827 (XTwrite_glyphs): Use cursor position of selected window.
15828
d7d0dac0 15829 * xfns.c (x_set_scroll_bar_width): Set cursor pos of selected window.
26901792
DL
15830
15831 * dispnew.c (set_cursor_to): Set window cursor position.
15832 (direct_output_for_insert): Use window cursor position.
15833 (init_display): Don't use frame cursor position.
15834
15835 * window.h: CURSOR_VPOS/HPOS added.
15836
15837 * frame.h (struct frame): CURSOR_X/Y removed.
15838 (FRAME_CURSOR_X): Removed.
15839 (FRAME_CURSOR_Y): Ditto.
15840
15841 * dispnew.c (direct_output_for_insert): LAST_POINT_X removed.
15842 (direct_output_forward_char): Ditto.
15843
d7d0dac0 15844 * xdisp.c (redisplay_internal): LAST_POINT_X and LAST_POINT_Y removed.
26901792
DL
15845
15846 * window.c (make_window): LAST_POINT_X and LAST_POINT_Y removed.
15847
15848 * window.h: LAST_POINT_X and LAST_POINT_Y removed.
15849
15850Sun Jul 13 14:18:24 1997 Gerd Moellmann <gerd@acm.org>
15851
15852 * xdisp.c: Bug fixes using SET_CURSOR with HPOS 0 instead
15853 of FRAME_LEFT_SCROLL_BAR_WIDTH.
15854
15855 * dispextern.h: Changed function names.
15856
15857 * dispnew.c (scrolling): Don't call SCROLLING_1 if WINDOW_SIZE
15858 < 2.
15859 (clear_window_matrices): Formerly two functions for desired
15860 and current matrix.
15861 (update_frame_1): Call CLEAR_DESIRED_MATRICES.
15862 (update_frame): Return return value from UPDATE_FRAME_1.
15863
15864Sat Jul 12 12:58:48 1997 Gerd Moellmann <gerd@acm.org>
15865
15866 * xdisp.c (try_window): Set WINDOW_END_VPOS with window relative
15867 LAST_TEXT_VPOS.
15868
15869 * frame.c (set_menu_bar_lines): Adjust matrices.
15870
15871 * dispnew.c (set_cursor_to): Set cursor position.
15872
15873 * minibuf.c (read_minibuf): Build frame matrix.
15874
15875 * xdisp.c (this_line_start_hpos): Renamed to
d7d0dac0
SM
15876 THIS_LINE_START_WINDOW_HPOS to make it clear that this is window
15877 relative.
26901792
DL
15878 (this_line_vpos): Renamed to THIS_LINE_WINDOW_VPOS for the same
15879 reason.
15880
427ec082 15881 * dispnew.c (build_frame_matrix): Don't clear rows of the
26901792
DL
15882 menu bar.
15883 (clear_window_records): Clear window rows.
15884 (clear_frame_records): Clear window and frame rows.
15885 (clear_glyph_matrix): Set all rows of a matrix to empty.
15886
d7d0dac0
SM
15887 * xdisp.c (echo_area_display): Parameter UPDATE_FRAME_P.
15888 Update frame if set.
26901792
DL
15889 (message2_nolog): Pass 1 to ECHO_AREA_DISPLAY. UPDATE_FRAME
15890 removed.
15891 (redisplay_internal): Pass 0 to ECHO_AREA_DISPLAY.
15892 (redisplay_internal): Build frame matrix before UPDATE_FRAME.
15893
15894 * dispnew.c (assign_row): Assign one glyph row to another.
15895 (mirrored_make_current): Use it.
15896 (mirror_make_current): Use it.
15897 (update_line): Rely on MIRRORED_MAKE_CURRENT to set flags and
15898 used counters for the current glyph row.
427ec082 15899
26901792
DL
15900
15901Fri Jul 11 13:16:50 1997 Gerd Moellmann <gerd@acm.org>
15902
15903 * lisp.h: Prototype for SCAN_BUFFER.
15904
15905 * xdisp.c (redisplay_windows): Simplified.
15906
15907 * dispnew.c (window_to_frame_vpos): Convert window to frame vpos
15908 with debug checks.
15909 (window_to_frame_hpos): Convert window to frame hpos with checks.
15910 (frame_to_window_vpos): Convert frame to window vpos with checks.
15911 (frame_to_window_hpos): Convert frame to window hpos with checks.
15912
15913 * dispextern.h: PRESERVE_OTHER_COLUMNS removed.
15914
15915 * dispnew.c: PRESERVE_OTHER_COLUMNS removed.
15916
15917 * xdisp.c (redisplay_internal): Another instance of
15918 DISPLAY_TEXT_LINE with window relative VPOS.
15919 (redisplay_internal): Remove PRESERVE_OTHER_COLUMNS.
15920
15921 * dispnew.c (init_desired_glyphs): Do it on window matrices,
15922 only.
15923
15924 * xdisp.c (try_window_id): Use CANCEL_WINDOW_LINE.
15925 (redisplay_internal): Ditto.
15926
15927 * dispnew.c (cancel_window_line): Use window matrix. Changed
15928 name to CANCEL_WINDOW_LINE.
15929
15930 * xdisp.c (try_window_id): Use DISPLAY_TEXT_LINE with window
15931 relative VPOS.
15932
427ec082
SS
15933 * dispextern.h (WINDOW_TO_FRAME_VPOS): Convert window vpos
15934 to frame vpos.
26901792
DL
15935 (WINDOW_TO_FRAME_HPOS): Convert window hpos to frame hpos.
15936 (FRAME_TO_WINDOW_VPOS): Convert frame vpos to window vpos.
15937 (FRAME_TO_WINDOW_HPOS): Convert frame hpos to window hpos.
15938
15939 * xdisp.c (try_window_id): Use ADJUST_WINDOW_CHARSTARTS with
15940 window relative VPOS.
15941 (redisplay_internal): Use ADJUST_WINDOW_CHARSTARTS with window
15942 relative VPOS.
15943
15944 * dispnew.c (adjust_window_charstarts): Use INCREMENT_GLYPH_-
15945 MATRIX_BUFFER_POSITIONS.
15946
15947 * xdisp.c (try_window_id): Use SCROLL_FULL_WIDTH_WINDOW.
15948
15949 * dispextern.h: Prototype for SCROLL_FULL_WIDTH_WINDOW.
15950
427ec082 15951 * dispnew.c (scroll_frame_lines): Make it work on window
26901792
DL
15952 matrix. Change name to scroll_full_width_window.
15953
15954 * xdisp.c (message2_nolog): Don't fwrite NULL message If
d7d0dac0 15955 NONINTERACTIVE.
26901792
DL
15956
15957Mon Jul 7 14:44:38 1997 Gerd Moellmann <gerd@acm.org>
15958
15959 * dispnew.c (init_desired_glyphs): Clear both frame matrix
427ec082 15960 and window matrices.
26901792
DL
15961 (adjust_window_charstarts): Use window matrix.
15962 (cancel_my_columns): Use window matrix.
15963 (direct_output_for_insert): Use window matrix, only.
15964
15965 * xdisp.c (display_glyphs): Extracted code from DISPLAY_STRING.
15966 (display_string): Call display_glyphs.
15967 (display_menu_bar_string): Display a string in a menu bar line.
15968 (display_menu_bar): Use DISPLAY_MENU_BAR_STRING.
15969 (display_text_line): Use window matrix.
15970 (try_window): Use window relative positions.
15971
15972Sun Jul 6 17:02:26 1997 Gerd Moellmann <gerd@acm.org>
15973
15974 * dispnew.c (adjust_frame_glyphs): Allocate window matrices from
d7d0dac0 15975 (0, 0).
26901792 15976 (allocate_leaf_matrix): Add FRAME_MENU_BAR_LINES to the height of
d7d0dac0 15977 top-most windows.
26901792
DL
15978
15979 * window.h (WINDOW_TOPMOST_P): Added.
15980
15981 * xdisp.c (echo_area_display): Use PREPARE_DESIRED_ROW.
15982 (redisplay_window): Ditto.
15983 (display_text_line): Ditto.
15984 (display_menu_bar): Ditto.
15985 (display_mode_line): Ditto.
15986 (display_mode_line): Use window matrix.
15987 (display_string): Use window matrix.
15988 (display_mode_element): Ditto.
15989 (echo_area_display): Don't display if frame has no pools yet.
15990 (echo_area_display): Work with window matrix for mini window.
15991 (redisplay_window): Use window marix for mini window.
15992 (display_text_line): Assume HPOS and VPOS are window relative and
d7d0dac0 15993 use that for DISPLAY_STRING.
26901792
DL
15994
15995 * dispextern.h: Prototype for prepare_desired_row.
15996
d7d0dac0 15997 * dispnew.c (prepare_desired_row): Replacement for GET_DISPLAY_LINE.
26901792
DL
15998
15999 * dispnew.c (adjust_window_charstarts): Always allocate window
16000 matrices.
16001 (clear_glyph_row): Only reset used counters and flags.
16002
16003Sat Jul 5 14:55:44 1997 Gerd Moellmann <gerd@acm.org>
16004
16005 * dispnew.c (scroll_frame_lines): Don't assume first scolled
427ec082 16006 line is non-empty.
26901792
DL
16007 (realloc_glyph_pool): Don't add 1 to the pool size.
16008 (adjust_glyph_matrix): Don't add 1 to pointers to glyph areas.
16009
16010 * dispnew.c (line_hash_code): Don't use null-glyph end marker.
16011 (line_draw_cost): Ditto.
16012 (update_line): Ditto.
16013 (update_line): Use SPACE_GLYPH.
16014 (count_blanks): Additional parameter LEN.
16015
16016 * xdisp.c (display_text_line): Use SPACE_GLYPH.
16017 (display_text_line): Don't add null-glyph end marker.
16018 (display_string): Use SPACE_GLYPH.
16019 (display_string): Don't use null-glyph end marker.
16020
16021 * term.c (clear_end_of_line): Use SPACE_GLYPH.
16022
16023 * dispnew.c (clear_glyph_row): Don't use null-glyph end markers.
16024 (fill_up_glyph_row_with_spaces): Ditto.
16025 (preserve_other_columns): Add SPACE_GLYPH at then end of desired
16026 rows, instead of null-glyphs.
16027 (direct_output_for_insert): Don't add null-glyph end marker.
16028
16029 * scroll.c (do_direct_scrolling): Change algorithm to construct
d7d0dac0 16030 vector of lines assigned. Call MIRRORED_LINE_DANCE:
26901792
DL
16031 (do_scrolling): Ditto.
16032
16033 * dispnew.c (mirror_line_dance): Mirror line assignments in a
d7d0dac0 16034 frame matrix in window matrices.
26901792 16035 (mirrored_line_dance): Do line assignments during scrolling.
d7d0dac0 16036 Maybe do corresponding assignments in window matrices.
26901792 16037 (check_window_matrix_pointers): Check that window rows and frame
d7d0dac0 16038 rows agree about glyph pointers.
26901792
DL
16039 (check_matrix_pointers): Ditto.
16040 (mirrored_make_current): Make a row of a desired matrix current;
d7d0dac0 16041 maybe mirror the operation in window matrices.
26901792 16042 (mirror_make_current): Make window desired matrix row current when
d7d0dac0 16043 frame matrix row was made current.
26901792
DL
16044
16045Fri Jul 4 13:27:46 1997 Gerd Moellmann <gerd@acm.org>
16046
16047 * dispnew.c (check_matrix_pointer_lossage): Check against
16048 pointer lossage in matrices.
16049 (get_glyph_matrix_row): Removed.
16050
16051 * scroll.c (do_scrolling): Simplified.
16052 (do_direct_scrolling): Simplified.
16053 (scrolling_1): Pass CURRENT_MATRIX instead of FRAME to
d7d0dac0 16054 DO_.*SCROLLING.
427ec082 16055
26901792
DL
16056
16057 * dispnew.c (ins_del_glyph_rows): Insert/delete rows in a matrix.
16058 (rotate_vector): Removed.
16059 (rotate_pointers): Removed.
16060 (scroll_frame_lines): Simplified.
16061
16062Thu Jul 3 13:54:21 1997 Gerd Moellmann <gerd@acm.org>
16063
16064 * dispextern.h (MATRIX_ROW_SWAP_CONTENTS): Removed.
16065
16066 * dispnew.c (increment_glyph_matrix_buffer_positions): Does
16067 what the name says.
16068 (clear_glyph_row): Make a glyph row structure empty.
16069 (make_matrix_row_current): Make a glyph row current.
16070 (make_window_matrix_row_current): Perform analogous row swaps
16071 for window matrices.
16072 (update_line): Call make_matrix_row_current.
16073
16074Wed Jul 2 13:43:35 1997 Gerd Moellmann <gerd@acm.org>
16075
16076 * dispextern.h (SET_MATRIX_ROW_ENABLED_P): Better macro name.
16077 (SET_MATRIX_ROW_INVERSE_P): Better name and HIGHLIGHT_P ->
16078 INVERSE_P.
16079 (MATRIX_ROW_INVERSE_P): Former MATRIX_ROW_HIGHLIGHT_P.
16080 (struct glyph_row): HIGHLIGHT_P -> INVERSE_P
16081
16082 * all files: use above new names.
16083
16084 * dispnew.c (scroll_frame_lines): Simplified. Use
d7d0dac0 16085 SCROLL_GLYPH_MATRIX.
26901792 16086 (make_glyph_row_empty): Mark a glyph row empty.
427ec082 16087 (increment_glyph_row_buffer_positions): Increment
26901792
DL
16088 buffer positions in a glyph row.
16089 (increment_glyph_matrix_buffer_positions): Increment buffer
16090 positions in a range of rows.
16091 (scroll_glyph_matrix): Scroll a glyph matrix.
16092 (swap_glyphs_in_rows): Swap glyphs between rows.
16093 (swap_glyph_pointers): Swap pointers between rows.
16094 (glyph_row_slice_p): Return 1 if one row is a slice of another.
16095 (init_display): Initialize SPACE_GLYPH.
16096 (fill_up_glyph_row_areas_with_spaces): Fill up areas with
427ec082 16097 spaces.
26901792
DL
16098
16099Tue Jul 1 13:49:55 1997 Gerd Moellmann <gerd@acm.org>
16100
16101 * xterm.c (dumprectangle): Use vectors in glyph rows.
16102
16103 * xdisp.c (display_text_line): Use vectors in glyph rows.
16104 (display_string): Ditto.
16105
16106 * scroll.c (do_scrolling): Use vectors in glyph rows.
16107 (do_direct_scrolling): Ditto.
16108
16109 * alloc.c (mark_object): Use vectors in glyph rows.
16110 Mark for all frame types.
16111
16112 * dispnew.c (adjust_glyph_matrix): Use vectors to glyphs in
16113 glyph rows.
16114 (get_glyph_matrix_row): Ditto.
16115 (matrix_row): Ditto.
16116 (rotate_pointers): Ditto.
16117 (scroll_frame_lines): Ditto.
16118 (preserve_other_columns): Ditto.
16119 (cancel_my_columns): Ditto.
16120 (update_line): Ditto.
16121 (direct_output_for_insert): Ditto.
16122
16123 * dispextern.h (struct glyph_row): Use a vector of pointers
d7d0dac0 16124 instead of individual members. Use a vector of used counters.
26901792
DL
16125 (MATRIX_ROW_SWAP_CONTENTS): Use vectors.
16126 (MATRIX_ROW_GLYPH_START): Ditto.
16127 (MATRIX_ROW_GLYPH_END): Ditto.
16128 (MATRIX_ROW_USED): Ditto.
16129 (MATRIX_ROW_SET_USED): Ditto.
16130
16131 * dispnew.c (line_hash_code): Simplified.
16132
16133Mon Jun 30 20:39:38 1997 Gerd Moellmann <gerd@acm.org>
16134
16135 * dispnew.c: Prototype for ROTATE_VECTOR, ROTATE_POINTERS,
16136 CHANGE_FRAME_SIZE_1
16137 (preserve_other_columns): Void return.
16138 (cancel_my_columns): Void return type.
16139 (scrolling): Int return type.
16140 (do_pending_window_change): Void return type.
16141 (change_frame_size): Ditto.
16142 (bitch_at_user): Ditto.
16143 (init_display): Ditto.
16144 (syms_of_display): Ditto.
16145
16146 * dispextern.h: add prototypes for REDRAW_FRAME,
d7d0dac0
SM
16147 REDRAW_GARBAGED_FRAMES, CANCEL_LINE, CLEAR_FRAME_RECORDS,
16148 INIT_DESIRED_GLYPHS, SCROLL_FRAME_LINES, PRESERVE_OTHER_COLUMNS,
16149 ADJUST_WINDOW_CHARSTARTS, CANCEL_MY_COLUMNS,
16150 DIRECT_OUTPUT_FOR_INSERT, DIRECT_OUTPUT_FORWARD_CHAR,
16151 UPDATE_FRAME, SCROLLING, BUFFER_POSN_FROM_COORDS,
16152 DO_PENDING_WINDOW_CHANGE, CHANGE_FRAME_SIZE, BITCH_AT_USER,
26901792 16153 SIT_FOR, INIT_DISPLAY, SYMS_OF_DISPLAY,
427ec082 16154
26901792 16155 * dispnew.c (redraw_frame): FRAME_PTR -> struct frame. Return
d7d0dac0 16156 void.
26901792
DL
16157 (cancel_line): Return void.
16158 (clear_frame_records): Return void.
427ec082 16159
26901792
DL
16160 * dispextern.h (struct glyph): Remove GLYPH, add bit-fields.
16161 (SET_CHAR_GLYPH): Fill a character glyph.
16162 (SET_CHAR_GLYPH_FROM_GLYPH): Set a character glyph from a GLYPH.
16163 (GLYPH_FROM_CHAR_GLYPH): Construct a GLYPH from a character
427ec082 16164 glyph.
26901792
DL
16165 (CHAR_GLYPH_CHAR_CODE): Return character code of a glyph.
16166 (SET_CHAR_GLYPH_CHAR_CODE): Set character code of a glyph.
16167 (CHAR_GLYPH_FACE_ID): Return face id of a glyph.
16168 (SET_CHAR_GLYPH_FACE_ID): Set face id of a glyph.
16169 (CHAR_GLYPH_PADDING_P): Return padding flag of a glyph.
16170 (SET_CHAR_GLYPH_PADDING_P): Set padding flag.
16171 (CHAR_GLYPH_REVERSE_P): Return reversed flag.
16172 (SET_CHAR_GLYPH_REVERSE_P): Set reversed flag.
16173 (MATRIX_ROW_SWAP_CONTENTS): Swap pointers between rows.
16174
16175 * term.c (reassert_line_highlight): Check CHARS_WASTED == 0.
16176
16177 * window.h (struct window): Add comment that no Lisp data may
d7d0dac0 16178 come below CURRENT_MATRIX.
26901792
DL
16179
16180 * alloc.c (mark_object): Change window mark code to stop with
d7d0dac0 16181 member CURRENT_MATRIX.
26901792
DL
16182
16183Sat Jun 28 13:54:55 1997 Gerd Moellmann <gerd@acm.org>
16184
16185 * scroll.c (do_scrolling): Change algorithm to use pointers.
16186 (do_direct_scrolling): Ditto.
16187
16188 * dispnew.c (get_glyph_matrix_row): Use pointers stored in rows.
16189 (new_glyph_pool): Formerly new_FRAME_GLYPH_MATRIX.
16190 (free_glyph_pool): Formerly FREE_FRAME_GLYPH_MATRIX
16191 (realloc_glyph_pool): Formerly REALLOC_FRAME_GLYPH_MATRIX.
d7d0dac0 16192 Returns 1 if pool changed.
26901792
DL
16193 (matrix_row): Additional check for lost pointers to glyph rows.
16194 (compute_matrices): Additional parameter DIM_P set means that no
d7d0dac0
SM
16195 allocation should take place. Addtional parameter
16196 ANY_WINDOWS_CHANGED_P set if any windows matrix has changed.
26901792 16197 (compute_leaf_matrix): Additional parameter CHANGED_P set to 1
d7d0dac0
SM
16198 when window matrix changes. Additional parameter DIM_ONLY_P set
16199 to 1 to indicate that no allocation should take place.
26901792 16200 (adjust_frame_glyphs): Construct new glyph pools and glyph
d7d0dac0 16201 matrices. Optimize frame redraws.
26901792
DL
16202 (free_glyphs): Free pools.
16203 (check_glyph_memory): Check pools not freed.
16204 (rotate_pointers): Rotate pointers in a vector of glyph rows.
16205 (scroll_frame_lines): Change algorithm to use pointers.
16206 (update_line): Ditto.
16207
16208 * dispextern.h (struct glyph_row): Use pointers to areas in a row.
16209 (global): All macro names changed from prefix FRAME_MATRIX to
d7d0dac0 16210 MATRIX.
26901792
DL
16211
16212Fri Jun 27 14:51:15 1997 Gerd Moellmann <gerd@acm.org>
16213
16214 * dispextern.h (struct glyph_pool): Replacement for former
16215 FRAME_GLYPH_MATRIX.
16216 (struct glyph_matrix): No longer contains sizes of allocated
16217 areas.
16218
16219 * xdisp.c (redisplay_internal): Don't redisplay if frame has
16220 no glyph pools.
16221
16222 * frame.c (make_frame): Initialize pools.
16223
16224Thu Jun 26 00:00:55 1997 Gerd Moellmann <gerd@acm.org>
16225
427ec082 16226 * scroll.c (do_direct_scrolling): Don't assume that the
26901792
DL
16227 line moving algorithm has no intermediate steps.
16228 (do_scrolling): Ditto.
16229
16230 * Makefile.in (alloc.o): Add dependency dispextern.h.
16231
16232 * alloc.c: Include dispextern.h for glyph definitions.
16233
16234 * dispnew.c (get_glyph_matrix_row): Return 1 if ROW_INDEX
16235 is legal, return 0 otherwise.
16236
16237 * window.h: Add comment that windows are marked specially.
16238
16239 * alloc.c (mark_object): Mark windows specially.
16240
16241
16242Wed Jun 25 15:22:58 1997 Gerd Moellmann <gerd@acm.org>
16243
16244 * dispextern.h (struct glyph): Add member OBJECT
16245 referencing a Lisp object from which a glyph was drawn.
16246 Member TEXT_POSITION renamed POSITION.
16247 * xterm.c, xdisp.c, dispnew.c: Rename TEXT_POSITION -> POSITION.
16248
16249 * alloc.c: Include dispextern.h
16250 (mark_object): Mark objects referenced from glyphs.
16251
f28eba7b 16252 * frame.c (make_frame): Initialize DECODE_MODE_SPEC_BUFFER.
26901792
DL
16253
16254 * scroll.c (do_direct_scrolling): Remove TEMP_MATRIX.
16255 (do_scrolling): Ditto.
16256
427ec082 16257 * frame.h (struct frame): TEMP_MATRIX removed.
26901792
DL
16258 DECODE_MODE_SPEC_BUFFER added.
16259
16260 * window.h: TEMP_MATRIX removed.
16261
16262 * scroll.c: OPHYS_LINES removed.
16263
16264 * dispnew.c: OPHYS_LINES and OPHYS_LINES_LENGTH removed.
16265 FRAME_PTR -> struct frame *.
16266
16267 * termhooks.h: Prototypes for INSERT_GLYPHS_HOOK,
16268 WRITE_GLYPHS_HOOK, DELETE_GLYPHS_HOOK,
16269
16270 * term.c: Prototypes for INSERT_GLYPHS_HOOK,
16271 WRITE_GLYPHS_HOOK, DELETE_GLYPHS_HOOK,
16272
16273 * xdisp.c (redisplay_internal): Remove call to VERIFY_CHARSTARTS.
16274 (do_verify_charstarts): Removed.
16275
16276 * frame.c (Fmake_terminal_frame): Adjust glyphs.
16277 (Fdelete_frame): Free glyphs.
16278 (make_frame): Initialize matrix fields in frame.
16279
f28eba7b 16280 * config.in (PROTO): Added.
26901792 16281
f28eba7b 16282 * emacs.c (shut_down_emacs): Check glyph memory.
26901792
DL
16283
16284 * window.c (Fdelete_window): Free window matrices.
16285 (Fset_window_configuration): Ditto.
16286 (Fdelete_window): Adjust glyphs.
16287 (Fsplit_window): Ditto.
16288 (change_window_height): Ditto.
16289 (Fset_window_configuration): Ditto.
16290 (make_window): Initialize DESIRED_MATRIX and CURRENT_MATRIX.
16291 (replace_window): Reset DESIRED_MATRIX and CURRENT_MATRIX
16292
16293 * Makefile.in (window.o): Add dependency window.c -> dispextern.h
16294
16295 * window.c: Include dispextern.h
16296
16297 * scroll.c (do_scrolling): Use new glyphs.
16298 (do_direct_scrolling): Ditto.
16299
16300 * xdisp.c: Some function prototypes.
16301 (redisplay_internal): Don't do anything if matrices not yet set.
16302 (redisplay_internal): Use new glyphs.
16303 (try_window_id): Ditto.
16304 (copy_part_of_rope): Ditto.
16305 (display_text_line): Ditto.
16306 (display_menu_bar): Ditto.
16307 (display_mode_line): Ditto.
16308 (display_string): Ditto.
16309
16310 * xterm.c: Prototypes for some local functions.
16311 (dumpglyphs): Use new glyphs.
16312 (XTwrite_glyphs): Ditto.
16313 (dumprectangle): Ditto.
16314 (note_mouse_highlight): Ditto.
16315 (fast_find_position): Ditto.
16316 (show_mouse_face): Ditto.
16317 (x_draw_single_glyph): Ditto.
16318 (x_display_bar_cursor): Ditto.
16319 (x_display_box_cursor): Ditto.
16320 (x_new_font): Adjust glyphs when font change.
16321
16322 * term.c (clear_end_of_line): Use new glyphs.
16323 (write_glyphs): Ditto.
16324 (insert_glyphs): Ditto.
16325
16326 * Makefile.in (term.o): term.c depends on dispextern.h
16327
16328 * term.c: Include dispextern.h
16329
16330 * dispnew.c (direct_output_forward_char): Old glyph functions
427ec082 16331 removed, new inserted.
26901792
DL
16332 (line_hash_code): Use new glyphs.
16333 (line_draw_cost): Ditto
16334 (cancel_line): Ditto
16335 (clear_frame_records): Ditto.
16336 (init_desired_glyphs): Ditto.
16337 (get_display_line): Ditto
16338 (scroll_frame_lines): Ditto.
16339 (preserve_other_columns): Ditto.
16340 (adjust_window_charstarts): Ditto.
16341 (cancel_my_columns): Ditto.
16342 (direct_output_for_insert): Ditto.
16343 (update_frame): Ditto.
16344 (quit_error_check): Made empty.
16345 (scrolling): Use new glyphs.
16346 (count_blanks): Ditto.
16347 (count_match): Ditto.
16348 (update_line): Ditto.
16349 (init_display): Adjust glyphs initially.
16350 (change_frame_size_1): Adjust glyphs.
16351
16352 * dispextern.h: Old glyphs removed, new added.
16353
16354 * xfaces.c (min_char_bounds): Get smallest char in loaded fonts.
16355
16356 * xterm.h: Prototype for min_char_bounds.
16357
16358 * window.h (struct window): Remove old glyphs, add new.
16359
16360 * frame.h (struct frame): Remove old glyphs, add new.
427ec082 16361
26901792
DL
163621999-07-20 Dave Love <fx@gnu.org>
16363
16364 * buffer.c (syms_of_buffer): Make
16365 default-enable-multibyte-characters a user variable.
16366
163671999-07-14 Richard Stallman <rms@gnu.org>
16368
16369 * Version 20.4 released.
16370
163711999-07-14 Richard Stallman <rms@gnu.org>
16372
16373 * filelock.c (lock_file): Do nothing if purifying.
16374
163751999-07-10 Richard Stallman <rms@gnu.org>
16376
16377 * xterm.c (x_display_bar_cursor): Use the cursor-color
16378 to display the bar, not the cursor foreground pixel.
16379
163801999-07-09 Andrew Innes <andrewi@gnu.org>
16381
16382 * w32console.c (w32_use_full_screen_buffer): New variable.
16383 (syms_of_ntterm): Register it.
16384 (initialize_w32_display): Set initial frame size accordingly,
16385 respecting the LINES and COLUMNS environment variables if set.
16386
16387 * w32inevt.c (w32_console_read_socket): Use it.
16388
163891999-07-07 Kenichi Handa <handa@etl.go.jp>
16390
16391 * callproc.c (Fcall_process): Decide coding system for decoding
16392 after we set to the target buffer. If the output goes to a
16393 unibyte buffer, suppress character code conversion.
16394
16395 * fileio.c (Finsert_file_contents): If reading into a unibyte
16396 buffer, suppress character code conversion.
16397
16398 * process.c (create_process): If the output goes to a unibyte
16399 buffer, suppress character code conversion.p
16400
164011999-07-07 Andreas Schwab <schwab@gnu.org>
16402
16403 * xdisp.c (line-number-display-limit): Doc fix.
16404
164051999-07-05 Richard Stallman <rms@gnu.org>
16406
16407 * callproc.c (Fcall_process): Don't use initializer on coding_systems.
16408 (Fcall_process_region): Likewise.
16409
164101999-07-01 Markus Rost <markus.rost@mathematik.uni-regensburg.de>
16411
16412 * callproc.c (init_callproc): Set exec_directory if
16413 installation_directory is non-nil, without a test of exec_path.
16414
164151999-07-01 Andrew Innes <andrewi@gnu.org>
16416
16417 * w32xfns.c (drain_message_queue): New function.
16418
16419 * w32term.h (drain_message_queue): Add extern.
16420
16421 * w32proc.c (sys_select): Call MsgWaitForMultipleObjects instead
16422 of WaitForMultipleObjects when user input is allowed, so we can
16423 handle incoming window messages. Call drain_message_queue when
16424 there are messages waiting; this ensures that windows created
16425 indirectly from the lisp thread get processed properly, and don't
16426 hang other applications by failing to respond to broadcasts.
16427
164281999-07-01 Andreas Schwab <schwab@gnu.org>
16429
16430 * callint.c (Fcall_interactively): Ignore first element of
16431 event-symbol-elements property.
16432
164331999-07-01 Richard Stallman <rms@gnu.org>
16434
16435 * fileio.c (Fread_file_name): Check type of DEFAULT_FILENAME.
16436
164371999-07-01 Kenichi Handa <handa@etl.go.jp>
16438
16439 * minibuf.c (read_minibuf): Set the multibyteness of the
16440 minibuffer before inserting `initial' string.
16441
164421999-06-30 Richard Stallman <rms@gnu.org>
16443
16444 * xfns.c (x_make_gc): Turn off GCStipple when setting up cursor_gc.
16445
164461999-06-29 Richard M. Stallman <rms@gnu.org>
16447
16448 * emacs.c [DOUG_LEA_MALLOC] (malloc_initialize_hook):
16449 Move the handling of MALLOC_CHECK_ envvar here.
16450 (main): Moved from here.
16451
164521999-06-29 Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>
16453
16454 * emacs.c [DOUG_LEA_MALLOC] (malloc_initialize_hook): New
16455 function, assigned to the global __malloc_initialize_hook pointer.
16456 (main): Move malloc_set_state call into malloc_initialize_hook
16457 so that it happens as early as possible.
16458
164591999-06-27 Richard M. Stallman <rms@gnu.org>
16460
16461 * keyboard.c (read_key_sequence): Properly reinitialize
16462 fkey_map after translating thru Vkey_translation_map.
16463 After translating thru Vfunction_key_map, don't reset
16464 keytrans-start to 0.
16465
164661999-06-24 Geoff Voelker <voelker@cs.washington.edu>
16467
16468 * w32.c (get_emacs_configuration): Use GetVersionEx to
16469 handle NT5.0 correctly. Include build number in configuration.
16470 w32heap.c (osinfo_cache): New variable.
16471 (cache_system_info): Initialize osinfo_cache.
16472 w32heap.h (osinfo_cache): Declare.
16473
164741999-06-24 Richard M. Stallman <rms@gnu.org>
16475
16476 * casefiddle.c (casify_object): Use make_multibyte_string
16477 if we casify a multibyte string.
16478
164791999-06-22 Ken'ichi Handa <handa@gnu.org>
16480
16481 * fileio.c: (Finsert_file_contents): In the case of REPLACE, call
16482 del_range_byte instead of del_range_1, set `inserted' to the
16483 number of characters actually inserted.
16484
164851999-06-17 Dave Love <fx@gnu.org>
16486
16487 * coding.c (decode_coding_sjis_big5): Avoid compiler warning.
16488
164891999-06-18 Paul Eggert <eggert@twinsun.com>
16490
16491 * filelock.c (BOOT_TIME_FILE): New macro.
16492 (get_boot_time): Use it instead of hardwiring the file name.
16493 Check BOOT_TIME_FILE only after inspecting the kernel directly.
16494
164951999-06-17 Dave Love <fx@gnu.org>
16496
16497 * xdisp.c (invalid_eol_type): Make it unsigned.
16498
164991999-06-17 Karl Heuer <kwzh@gnu.org>
16500
16501 * process.c (send_process): Delete unsafe/redundant assignment.
16502
165031999-06-17 Jason Rumney <jasonr@gnu.org>
16504
16505 * w32term.c (dumprectangle): Handle wide characters properly.
16506
165071999-06-16 Andrew Innes <andrewi@gnu.org>
16508
16509 * s/ms-w32.h (strerror): Override the default implementation of
16510 strerror, so we can map winsock error codes.
16511
16512 * w32.c (sys_strerror): New function.
16513
16514 * w32fns.c (w32_to_x_weight): Return "demibold" instead of "semibold".
16515
165161999-06-15 Ken'ichi Handa <handa@gnu.org>
16517
16518 * buffer.c (syms_of_buffer): Don't make
16519 enable-multibyte-characters customizable.
16520
165211999-06-15 Richard M. Stallman <rms@gnu.org>
16522
16523 * editfns.c (Fuser_full_name): Doc fix.
16524
165251999-06-14 Tak Ota <ota@atc.sel.sony.com>
16526
16527 * w32bdf.c: (clear_cached_bitmap_slots): Remove.
16528 (get_bitmap_with_cache): Check if CreateBitmap failed.
16529 Adjust cache size dynamically so cache is never larger than the
16530 system limit of GDI resources.
16531 Do cache clearing inline. Move global variables to local scope.
16532
16533
165341999-06-13 Wolfgang Glas <Wolfgang.Glas@hfm.tu-graz.ac.at>
16535
16536 * unexsgi.c (unexec): Dump the .rodata section from memory
16537 under IRIX6.5 in order to be able to unexec with gcc.
16538
165391999-06-11 Greg Hudson <ghudson@MIT.EDU>
16540
16541 * indent.c (compute_motion): Fix boundary case.
16542
165431999-06-11 Jason Rumney <jasonr@altavista.net>
16544
16545 * w32term.c (cancel_mouse_face): New function. See equiv
16546 changes to xterm.c on 1996-10-31.
16547 (x_set_window_size): Use cancel_mouse_face.
d7d0dac0
SM
16548 (w32_read_socket): Use cancel_mouse_face.
16549 Update frame position when size is restored.
26901792
DL
16550
165511999-06-04 Richard M. Stallman <rms@gnu.org>
16552
16553 * lread.c (Vuser_init_file): New variable.
16554 (syms_of_lread): Set up Lisp variable.
16555 (Fload): Store the file name there, if var was t before.
16556
165571999-06-04 Paul Eggert <eggert@twinsun.com>
16558
16559 * filelock.c (get_boot_time): Don't look at /proc/uptime; it
16560 doesn't work if the system date is changed, or if the system
16561 is suspended. Look at the last-modified time of
16562 /var/run/random-seed instead.
16563
165641999-06-03 Ken'ichi Handa <handa@gnu.org>
16565
16566 * coding.c (ENCODE_SJIS_BIG5_CHARACTER): Encode charset
16567 japanese-jisx0208-1978 correctly.
16568
165691999-06-03 Andrew Innes <andrewi@gnu.org>
16570
16571 * unexw32.c (get_section_info) [_ALPHA_]: Force as much bss data
16572 as possible to be dumped, for safety.
16573
165741999-06-02 Ken'ichi Handa <handa@gnu.org>
16575
16576 * coding.c (ENCODE_SJIS_BIG5_CHARACTER): Encode charset
16577 latin-jisx0201 correctly.
16578
165791999-05-26 Ken'ichi Handa <handa@gnu.org>
16580
16581 * charset.h (Vcharset_table): Comment fixed.
16582
165831999-05-24 Richard Stallman <rms@gnu.org>
16584
16585 * coding.c (syms_of_coding): Doc fix.
16586
16587 * buffer.c (syms_of_buffer): Doc fix.
16588
16589 * filelock.c (lock_if_free): After deleting a stale lock,
16590 try again to lock the file.
16591
165921999-05-22 Andrew Innes <andrewi@gnu.org>
16593
16594 * w32inevt.c (maybe_generate_resize_event): Detect changes in the
16595 console window size.
16596 (w32_console_read_socket): Call maybe_generate_resize_event
16597 whenever input events are received, since we don't get told when
16598 the window size changes (as opposed to the buffer size, which we
16599 don't care about).
16600
16601 * w32console.c (clear_frame): Remember that the window width might
16602 be smaller than the screen buffer width.
16603 (write_glyphs): Remove redundant variable attrs. Use
16604 FillConsoleOutputAttribute instead of WriteConsoleOutputAttribute.
16605
166061999-05-20 Andrew Innes <andrewi@gnu.org>
16607
16608 * w32term.c (w32_read_socket): Reset the grabbed flag when a frame gains or
16609 loses focus.
16610
16611 * w32fns.c (w32_wnd_proc): Ensure mouse capture is released if
16612 frame loses focus, and that mouse button state is reset. Ditto
16613 when the menu bar is activated.
16614
166151999-05-18 Richard Stallman <rms@gnu.org>
16616
16617 * abbrev.c (Fdefine_abbrev): Doc fix.
16618
166191999-05-13 Paul Eggert <eggert@twinsun.com>
16620
16621 * filelock.c: Fix performance bug on hosts with large
16622 /var/adm/wtmp files with no boot records.
16623
16624 (boot_time_initialized): New var.
16625 (init_filelock): Initialize it.
16626 (get_boot_time): Use it, instead of nonzero boot_time,
16627 to test whether boot_time is initialized.
16628 Don't invoke utmp routines when dumping.
16629
16630 (get_boot_time): First, try to get the boot time from the
16631 current utmp file, as this can be much faster. Don't try to
16632 get the boot time from utmp and/or wtmp more than once.
16633
16634 (get_boot_time_1): When passed null pointer, don't invoke utmpname.
16635 New arg LATEST. All uses changed.
16636
166371999-05-15 Andrew Innes <andrewi@gnu.org>
16638
16639 * w32term.c (dumpglyphs): Use correct colours for drawing
16640 rectangles in place of missing fonts, and make them the right
16641 size.
16642
166431999-05-14 Dave Love <fx@gnu.org>
16644
16645 * syntax.c (Fparse_partial_sexp): Correct test for element 8 to be
16646 non-nil.
16647
166481999-05-11 Andrew Innes <andrewi@gnu.org>
16649
16650 * w32fns.c (x_to_w32_charset): Reinstall VIETNAMESE_CHARSET
16651 definition.
16652 (w32_wnd_proc): Reinstall debugging output.
16653 (w32_wnd_proc): Reinstall SetForegroundWindow change.
16654 (syms_of_w32fns): Reinstall new initializer for
16655 Vw32_phantom_key_code.
16656
16657 * w32fns.c (x_to_w32_charset): Do partial matching of charset
16658 names for most non-European charsets, to cope with wildcards or
16659 missing spec dates.
16660 (Fw32_send_sys_command): Post WM_SYSCOMMAND rather than sending it
16661 to avoid deadlock when activating the menu bar.
16662
166631999-05-10 Ken'ichi Handa <handa@gnu.org>
16664
16665 * search.c (boyer_moore): Get charset base value of `untranslated'
16666 by masking by ~CHAR_FIELD3_MASK (instead of ~0xff).
16667
166681999-05-10 Andreas Schwab <schwab@gnu.org>
16669
16670 * fileio.c (Fread_file_name): Correct handling of dollars in file
16671 names. Protect dollars in strings put on the file-name-history.
16672 Substitute homedir by `~' also in default_filename.
16673
16674 * xdisp.c (try_window_id): Fix computation of tab_offset when
16675 backing up over a character that is splitted across lines.
16676
166771999-05-08 Kenichi HANDA <handa@etl.go.jp>
16678
16679 * coding.c (code_convert_region): If eol format is inconsistent,
16680 change coding->symbol to the sibling coding system of Unix like
16681 eol format.
16682
166831999-05-09 Richard M. Stallman <rms@gnu.org>
16684
16685 * s/irix5-2.h (NO_WTMP_FILE): Define it.
16686
16687 * filelock.c (get_boot_time): Handle NO_WTMP_FILE.
16688
166891999-05-05 Andrew Innes <andrewi@gnu.org>
16690
16691 * w32fns.c (w32_strict_painting): New variable.
16692 (w32_wnd_proc): Use it to select repaint rules.
16693 (syms_of_w32fns): Defvar it.
16694
166951999-05-04 Andrew Innes <andrewi@gnu.org>
16696
16697 * w32fns.c (x_to_w32_charset): Fix typo: want to map all Japanese
16698 charsets to the standard Windows charset for Japanese.
16699
167001999-05-04 Ken'ichi Handa <handa@gnu.org>
16701
16702 * xterm.c (x_load_font): Fix typo (`>' -> `=').
16703
16704 * ccl.h (struct ccl_program): New member stack_idx.
16705
16706 * ccl.c (ccl_prog_stack_struct): Declare it as static.
16707 (ccl_driver): Setup stack_idx and ccl_prog correctly. Update them
16708 before returing.
16709 (setup_ccl_program): Initialize ccl->stack_idx to 0.
16710
167111999-05-03 Jason Rumney <jasonr@altavista.net>
16712
16713 * w32term.c (dumpglyphs): Always fill background for italic fonts.
16714
167151999-05-03 Eli Zaretskii <eliz@is.elta.co.il>
16716
16717 * dired.c (make_time): Make argument type be time_t.
16718
167191999-05-02 Eli Zaretskii <eliz@is.elta.co.il>
16720
16721 * msdos.c (unibyte_display_via_language_environment): Add extern.
16722
83c8f461 167231999-05-02 Richard M. Stallman <rms@gnu.org>
26901792
DL
16724
16725 * xdisp.c (display_text_line): Convert unibyte char to multibyte
16726 if unibyte_display_via_language_environment is set.
16727 (unibyte_display_via_language_environment):
16728 Variable moved from xfns.c and elsewhere.
16729 (syms_of_xfns): Set up Lisp var.
16730
16731 * xfns.c (unibyte_display_via_language_environment):
16732 Variable moved to xdisp.c.
16733 (syms_of_xfns): Don't set up Lisp var here.
16734
16735 * msdos.c (unibyte_display_via_language_environment):
16736 Variable moved to xdisp.c.
16737 (syms_of_msdos): Don't set up Lisp var here.
16738
16739 * w32fns.c (unibyte_display_via_language_environment):
16740 Variable moved to xdisp.c.
16741 (syms_of_w32fns): Don't set up Lisp var here.
16742
167431999-05-02 Andrew Innes <andrewi@gnu.org>
16744
16745 * s/ms-w32.h (HAVE_FSYNC): New macro.
16746 (fsync): Map to _commit.
16747 (ftruncate): Map to _chsize.
16748
16749 * w32term.c (dumpglyphs): On Windows NT, do output in Unicode even
16750 for ASCII, if enabled, to avoid memory allocation overhead for
16751 implicit Unicode conversion. Also, recognize that ASCII and
16752 Latin-1 have a trivial conversion to Unicode, so x_2byte_buffer
16753 already contains the Unicode characters in that case.
16754 (construct_drag_n_drop): Remove old code that was
16755 trashing the drop location.
16756
16757 * w32select.c (Fw32_set_clipboard_data): Undo last change to add
16758 nlines to encoding_buffer_size (real bug was in a ccl program in
16759 lisp/international/coding.el).
16760
16761 * w32reg.c (w32_get_string_resource): Check for name in current
16762 user area, and if not found look in the local machine area.
16763
16764 * w32fns.c (w32_list_bdf_fonts): Initialize n_fonts.
16765 (Fw32_shell_execute): New function; used to support browse-url.
16766 (syms_of_w32fns): Register it.
16767 (w32_load_system_font): Force max width to be average
16768 char width for fixed-pitch fonts, to avoid unnecessary redisplay
16769 slowdown.
16770 (x_to_w32_charset): Define VIETNAMESE_CHARSET if not
16771 already defined.
16772 (syms_of_w32fns): Set Vw32_phantom_key_code to 255.
16773
16774 * unexw32.c (get_section_info): Dump back the entire EMDATA
16775 section if we can put Emacs' initialized data in a separate
16776 section, otherwise use the my_begdata/my_edata method.
16777
16778 * makefile.nt ($(BLD)\w32term.obj): Add dependency on w32heap.h.
16779
16780 * coding.c (decode_eol): Set produced/consumed values to zero if
16781 src_bytes is <= 0 on entry.
16782
167831999-05-02 Jason Rumney <jasonr@altavista.net>
16784
16785 * w32term.c (w32_write_glyphs, w32_clear_end_of_line,
16786 w32_clear_frame, clear_cursor, x_display_bar_cursor,
16787 x_display_box_cursor, x_set_window_size): Use phys_cursor_on
16788 field in frame.
16789 (do_line_dance): Updated WRT xterm.c. Use macros where possible.
16790 (dumprectangle): Take into account the width of a left-side
16791 scroll bar.
16792
16793 * w32proc.c (sys_kill): Attach to current foreground thread
16794 when grabbing focus; necessary on NT 5.0.
16795
16796 * w32fns.c (w32_wnd_proc) [WM_PAINT]: Use rectangle from
16797 GetUpdateRect rather than BeginPaint.
16798 (w32_wnd_proc): Attach to current foreground thread
16799 when grabbing focus; necessary on NT 5.0.
16800 (w32_wnd_proc) [W32_DEBUG_DISPLAY]: Add output for
16801 debugging display messages.
16802 (w32_to_x_charset): Put wildcard last in unknown charsets to avoid
16803 false matching.
16804
168051999-05-02 Kenichi HANDA <handa@etl.go.jp>
16806
16807 * coding.c (setup_raw_text_coding_system): Call
16808 setup_coding_system to initialize the fields of struct
16809 coding_system correctly.
427ec082 16810
26901792
DL
168111999-04-26 Kenichi HANDA <handa@etl.go.jp>
16812
16813 * xterm.c (x_list_fonts): Fix previous change.
16814
168151999-04-26 Richard Stallman <rms@gnu.org>
16816
16817 * config.in (HAVE_LIBXP): Add #undef.
16818 * Makefile.in (LIB_MOTIF_EXTRA): Check HAVE_LIBXP.
16819
168201999-04-12 Ken'ichi Handa <handa@gnu.org>
16821
16822 * xterm.c (x_list_fonts): Trap X errors so that Emacs doesn't die
16823 by them.
16824
168251999-04-12 Karl Heuer <kwzh@gnu.org>
16826
16827 * s/freebsd.h (BSD_SYSTEM): Define for FreeBSD 4 as with FreeBSD 3.
16828
168291999-04-11 Ken'ichi Handa <handa@gnu.org>
16830
16831 * fontset.c (Fset_fontset_font): Fix previous change.
16832
168331999-04-09 Ken'ichi Handa <handa@gnu.org>
16834
16835 * fontset.c (Fquery_fontset): Check for fontset aliases here.
16836 (Fnew_fontset, Fset_fontset_font): Don't check for them here.
16837
168381999-04-08 Richard Stallman <rms@gnu.org>
16839
16840 * process.c (Faccept_process_output): Check validity of PROCESS.
16841
168421999-04-08 Eli Zaretskii <eliz@gnu.org>
16843
16844 * msdos.c (jp_kbd_translate_table): Fix the other \ key.
16845
168461999-04-07 Richard Stallman <rms@gnu.org>
16847
16848 * xfns.c (x_set_font): Fix error message.
16849
16850 * fontset.c (Fquery_fontset): Don't check for fontset aliases here.
16851 (Fnew_fontset, Fset_fontset_font): Check for them here.
16852 (Ffontset_info, Fnew_fontset, Fset_fontset_font):
16853 Fix error message syntax.
16854
16855 * buffer.c (Fmake_indirect_buffer): Copy multibyte status
16856 from the base buffer.
16857 (Fset_buffer_multibyte): Copy new multibyte status
16858 into the buffer's indirect buffers.
16859
168601999-04-07 Ken'ichi Handa <handa@gnu.org>
16861
16862 * fns.c (base64_encode_1): Don't add unnecessary newline at the
16863 tail.
16864
168651999-04-06 Richard Stallman <rms@gnu.org>
16866
16867 * dired.c (Ffile_attributes): Doc fix.
16868
16869 * keymap.c (Faccessible_keymaps): Really initialize i_byte.
16870 Convert 0200 to meta only in a unibyte string.
16871 (Fkey_description): Likewise.
16872
16873 * eval.c (do_autoload): Preserve match data.
16874
168751999-04-06 Kenichi HANDA <handa@etl.go.jp>
16876
16877 * w32fns.c (x_to_w32_font): Provide sufficient buffer to
16878 encode_coding to avoid carryover.
16879
16880 * coding.c: Add comments for decode_coding and encode_coding.
16881
16882 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix bug of handling
16883 a composite character by skipping its leading code.
16884 <CCL_WriteMultibyteChar2>: Handle non-ascii single byte character
16885 correctly.
16886
16887 * coding.c: Add comments for decode_coding and encode_coding.
16888
16889 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix bug of handling
16890 a composite character by skipping its leading code.
16891 <CCL_WriteMultibyteChar2>: Handle non-ascii single byte character
16892 correctly.
16893
168941999-04-06 Eli Zaretskii <eliz@gnu.org>
16895
16896 * msdos.c (dos_rawgetc): Don't zero out c if private translation
16897 table was used.
16898 (jp_kbd_translate_table): Support C-\.
16899 (it_kbd_translate_table): Map `>' correctly.
16900 (it_keyboard): Add `>'.
16901
169021999-04-06 Richard Stallman <rms@gnu.org>
16903
16904 * intervals.c (graft_intervals_into_buffer): Turn off
16905 inhibit_modification_hooks around calling Fset_text_properties.
16906
169071999-04-05 Kenichi HANDA <handa@etl.go.jp>
16908
16909 * xterm.c (dumpglyphs): Be sure to fill the whole background of
16910 glyphs.
16911
169121999-04-05 Eli Zaretskii <eliz@gnu.org>
16913
16914 * msdos.c (jp_kbd_translate_table): Fix last change.
16915
169161999-04-04 Eli Zaretskii <eliz@gnu.org>
16917
16918 * msdos.c (struct kbd_translate): New struct, for key translation
16919 tables private to certain national keyboard layouts.
16920 (struct dos_keyboard_map): Add a pointer to a private translation
16921 table.
16922 (jp_kbd_translate_table): Private table for the Japanese
16923 keyboard.
16924 (jp_keyboard): Japanese keyboard layout.
16925 (it_kbd_translate_table): Private table for the Italian keyboard.
16926 (it_keyboard): Use it_kbd_translate_table.
16927 (keyboard_layout_list): Add the Japanese keyboard.
16928 (dos_rawgetc): Use the keyboard-private translation table, if
16929 available.
16930 (abort) [__DJGPP_MINOR__ >= 2]: Raise SIGABRT.
16931
169321999-04-02 Kenichi HANDA <handa@etl.go.jp>
16933
16934 * xdisp.c (redisplay_window): When we call compute_motion with
16935 HPOS got from w->last_point_x, call it with DID_MOTION 1.
16936 (display_text_line): Stop the loop for processing overlay strings
16937 when we reach the right edge of the window.
16938
83c8f461 169391999-03-31 Richard M. Stallman <rms@gnu.org>
26901792
DL
16940
16941 * doc.c (get_doc_string): When UNIBYTE and DEFINITION are 0,
16942 let the data control whether string is unibyte.
16943
169441999-03-30 Richard M. Stallman <rms@gnu.org>
16945
16946 * macros.c (Fexecute_kbd_macro): Save real_this_command.
16947 (pop_kbd_macro): Restore the saved real_this_command.
16948 (Fcall_last_kbd_macro): Set real_this_command to the macro.
16949
169501999-03-26 Richard M. Stallman <rms@gnu.org>
16951
16952 * buffer.c (Fset_buffer_modified_p): Don't lock or unlock
16953 if buffer-file-name is nil.
16954
169551999-03-25 Jason Rumney <jasonr@altavista.net>
16956
16957 * w32select.c (Fw32_set_clipboard_data): Take into account line
16958 ends when calculating clipboard storage needed for non-ASCII text.
16959
169601999-03-25 Andrew Innes <andrewi@gnu.org>
16961
16962 * makefile.nt (PREPARED_HEADERS): Change name of paths.h to epaths.h.
16963 (epaths.h): Renamed from paths.h.
427ec082
SS
16964 (clean):
16965 ($(BLD)\filelock.obj):
16966 ($(BLD)\lread.obj):
26901792
DL
16967 ($(BLD)\w32fns.obj): Renamed paths.h to epaths.h.
16968
169691999-03-23 Ken'ichi Handa <handa@gnu.org>
16970
16971 * coding.c (encode_coding_iso2022): Initialize dummy arguments to
16972 ENCODE_ISO_CHARACTER for the previous change on this macro.
16973
169741999-03-23 Kenichi Handa <handa@etl.go.jp>
16975
16976 * xdisp.c (decode_mode_spec_coding): Handle integer value in
16977 eoltype correctly for backward compatibility.
16978
169791999-03-20 Kenichi HANDA <handa@etl.go.jp>
16980
16981 * coding.c (ENCODE_ISO_CHARACTER): Check validity of CHARSET. If
16982 invalid, produce the buffer internal byte sequence without encoding.
16983
169841999-03-19 Karl Heuer <kwzh@gnu.org>
16985
16986 * editfns.c (Fformat): Accept %i format.
16987
169881999-03-17 Karl Heuer <kwzh@gnu.org>
16989
16990 * filelock.c (get_boot_time): Test tempname, not filename.
16991
169921999-03-17 Jason Rumney <jasonr@altavista.net>
16993
e5619f6b
JR
16994 * w32bdf.h: Merged patches from Meadow; introduce bitmap cache to
16995 speed display.
16996
16997 * w32bdf.c: Merged patches from Meadow; introduce bitmap cache to
16998 speed display.
16999 (get_cached_font_char, cache_char_offset, get_bitmap_with_cache)
17000 New functions.
17001 (w32_free_bdf_font, seek_char, w32_get_bdf_glyph, w32_BDF_TextOut)
17002 Use bitmap cache.
26901792
DL
17003
17004 * w32fns.c (enum_font_cb2): Set the font height to be the
17005 character height, not the cell height.
17006 (Fw32_select_font): Initialize font dialog with current default font.
17007 (Vw32_system_coding_system): New variable.
17008 (w32_strict_filenames): Add comment.
17009 (w32_to_x_font): Decode font name using Vw32_system_coding_system.
427ec082 17010 (x_to_w32_font): Encode font name using Vw32_system_coding_system.
26901792
DL
17011 (syms_of_w32fns): Add w32-system-coding-system.
17012
170131999-03-15 Richard M. Stallman <rms@gnu.org>
17014
17015 * xterm.c (XTread_socket) <ConfigureNotify>:
17016 If cursor pos is outside the new frame size, mark cursor as off.
17017
170181999-03-14 Ken'ichi Handa <handa@gnu.org>
17019
17020 * xdisp.c (try_window_id): Initialize val.ovstring_chars_done to 0.
17021
17022 * xterm.c (x_load_font): Trap X errors so that Emacs doesn't die
17023 by them.
17024
170251999-03-14 Richard M. Stallman <rms@gnu.org>
17026
17027 * macros.c (Fexecute_kbd_macro): Initialize executing_macro_iterations
17028 at beginning.
17029
170301999-03-14 Jason Rumney <jasonr@altavista.net>
17031
17032 * w32fns.c (w32_strict_fontnames): New variable.
17033 (Fx_create_frame): Formatting fix.
17034 (w32_load_system_font): Keep trying to load non-existant font
17035 if w32_strict_fontnames is nil. Formatting fix.
17036 (syms_of_w32fns): Add w32-strict-fontnames.
17037
17038 * w32term.c (W32_TEXTOUT): Do not multiply nchars by charset_dim.
17039 (dumpglyphs): Formatting fixes.
17040
170411999-03-14 Geoff Voelker <voelker@cs.washington.edu>
17042
17043 * w32fns.c (w32_wnd_proc): Handle WM_GETMINMAXINFO message.
17044
170451999-03-10 Karl Heuer <kwzh@gnu.org>
17046
17047 * puresize.h (BASE_PURESIZE): Increase to 505000.
17048
170491999-03-09 Richard M. Stallman <rms@gnu.org>
17050
17051 * emacs.c (main) [CLASH_DETECTION]: Call init_filelock.
17052
17053 * filelock.c (init_filelock): New function.
17054
170551999-03-09 Dave Love <fx@gnu.org>
17056
17057 * fileio.c (Ffile_directory_p): Doc fix.
17058
83c8f461 170591999-03-05 Richard M. Stallman <rms@gnu.org>
26901792
DL
17060
17061 * coding.c (setup_coding_system): Check for CODING_SYSTEM = nil.
17062
170631999-03-08 Richard M. Stallman <rms@gnu.org>
17064
17065 * filelock.c (get_boot_time): Reduce scope of #ifdef BOOT_TIME
17066 to only the part that uses get_boot_time_1.
17067
170681999-03-07 Dave Love <fx@gnu.org>
17069
17070 * fileio.c (Finsert_file_contents): Use xfree.
17071
170721999-03-06 Kenichi Handa <handa@etl.go.jp>
17073
17074 * Makefile.in (callproc.o, coding.o, fileio.o, msdos.o, process.o,
17075 term.o, xselect.o): Depend on ccl.h.
17076
170771999-03-05 Geoff Voelker <voelker@cs.washington.edu>
17078
17079 * makefile.nt: Remove common multiple file compilation commands.
17080
170811999-03-04 Takeshi YAMADA <yamada@cslab.kecl.ntt.co.jp>
17082
17083 * fns.c (Fbase64_encode_string): Allocate sufficient memory for
17084 newlines added when the arg NO-LINE-BREAK is nil.
17085
170861999-03-04 Karl Heuer <kwzh@gnu.org>
17087
17088 * search.c (Fstring_match, Fposix_string_match): Doc fix.
17089
17090 * buffer.c (syms_of_buffer): Doc fix for case-fold-search.
17091
170921999-03-04 Dave Love <fx@gnu.org>
17093
17094 * term.c (term_init): Use xmalloc, not malloc.
17095
17096 * callproc.c (Fcall_process): Use xmalloc, xfree.
17097
170981999-03-03 Andreas Schwab <schwab@gnu.org>
17099
17100 * eval.c (Fdefconst): Doc fix.
17101
171021999-03-01 Kenichi Handa <handa@etl.go.jp>
17103
17104 * coding.c: Comment for ISO 2022 encoding mechanism modified.
17105
171061999-03-01 Eli Zaretskii <eliz@gnu.org>
17107
17108 * w16select.c (get_clipboard_data): Always stop at the first null byte.
17109
171101999-02-28 Richard M. Stallman <rms@gnu.org>
17111
17112 * filelock.c (get_boot_time): Support FreeBSD way to read boot-time.
17113
17114 * cmds.c (internal_self_insert): Calculate column properly
17115 in overwrite-of-tab case.
17116
171171999-02-27 Andreas Schwab <schwab@gnu.org>
17118
17119 * emacs.c (main) [DOUG_LEA_MALLOC]: Don't use unsetenv, it calls
17120 malloc in glibc 2.1.
17121
171221999-02-26 Richard Stallman <rms@gnu.org>
17123
17124 * Makefile.in: paths.h and paths.in renamed to epaths.h and epaths.in.
17125
17126 * epaths.in: Renamed from paths.in.
17127 This avoids a conflict with a system header file paths.h on GNU/Linux.
17128
17129 * callproc.c, lread.c, w32fns.c, xfns.c, xrdb.c:
17130 Use epaths.h istead of paths.h.
17131
171321999-02-26 Andreas Schwab <schwab@gnu.org>
17133
17134 * emacs.c (main) [DOUG_LEA_MALLOC]: Work around a bug in glibc's
17135 malloc.
17136
171371999-02-25 Dave Love <fx@gnu.org>
17138
17139 * buffer.c (syms_of_buffer): Doc fix for enable-multibyte-characters.
17140
171411999-02-25 Richard Stallman <rms@gnu.org>
17142
17143 * filelock.c (get_boot_time): Use WTMP_FILE for file name.
17144 (WTMP_FILE): Default definition in case not defined.
17145 (get_boot_time_1): Test that file exists before trying to read it.
427ec082 17146
26901792
DL
171471999-02-25 Ken'ichi Handa <handa@gnu.org>
17148
17149 * keymap.c (push_key_description): If enable-multibyte-characters
17150 is nil and C is single byte, push C as is.
17151
171521999-02-24 Kenichi Handa <handa@etl.go.jp>
17153
17154 * keymap.c (push_key_description): If enable-multibyte-characters
17155 is non-nil, try to convert unibyte character to multibyte. For
17156 invalid multibyte character, show all bits by octal form.
17157 (Fsingle_key_description): Check the validity of charset for a
17158 generic character.
17159
171601999-02-23 Richard M. Stallman <rms@gnu.org>
17161
17162 * fileio.c (Ffile_regular_p): Undo previous change.
17163
17164 * eval.c (Fdefconst): Doc fix.
17165
17166 * filelock.c (get_boot_time): Don't use BUFSIZ.
17167
171681999-02-22 Andrew Innes <andrewi@gnu.org>
17169
17170 * makefile.nt ($(BLD)\w32bdf.obj): Add missing continuation character.
17171 (EXTRA_LINK): Do version test with strings.
17172
171731999-02-22 Andreas Schwab <schwab@gnu.org>
17174
17175 * fns.c (Fbase64_encode_string): Fix last change.
17176
17177 * termhooks.h (event_kind): Add user_signal.
17178
17179 * keyboard.c (Qusr1_signal, Qusr2_signal): New variables.
17180 (syms_of_keyboard): Initialize them.
17181 (lispy_user_signals): New variable.
17182 (make_lispy_event): Handle user_signal event type.
17183
17184 * emacs.c: Don't define Qusr1_signal and Qusr2_signal.
17185 (syms_of_emacs): Don't initialize them.
17186 (handle_USR1_signal, handle_USR2_signal): Set event type to
17187 user_signal instead of non_ascii_keystroke, and use plain integers
17188 as code instead of Lisp symbols.
17189
171901999-02-21 Eli Zaretskii <eliz@delysid.gnu.org>
17191
17192 * fileio.c: (lstat) [!S_ISLNK]: Use stat instead of lstat.
17193
171941999-02-21 Richard Stallman <rms@gnu.org>
17195
17196 * filelock.c (get_boot_time_1): Put this in #ifdef BOOT_TIME.
17197
17198 * print.c (print_error_message): Don't crash if (cdr data)
17199 is not a list.
17200
172011999-02-21 Eli Zaretskii <eliz@gnu.org>
17202
17203 * fileio.c (lstat) [!S_ISLNK]: Use stat instead of lstat.
17204
172051999-02-20 Andrew Innes <andrewi@gnu.org>
17206
17207 * vm-limit.c (memory_warnings) [WINDOWSNT]: Reset lim_data on each
17208 run, since size can vary from run to run.
17209
17210 * makefile.nt (EXTRA_LINK, LINK_FLAGS): Ensure base relocation
17211 data is included, to enable profiling.
17212 ($(EMACS)): Map file not needed for emacs.exe.
17213
17214 * emacs.c (main): [!SYSTEM_MALLOC]: Call realloc and free as well
17215 as malloc before calling uninterrupt_malloc, for consistency.
17216 This also enables profiling to work on WINDOWSNT.
17217
172181999-02-18 Richard Stallman <rms@gnu.org>
17219
17220 * Makefile.in (emacs.o): Depend on termhooks.h.
17221 (filelock.o): Depend on systime.h.
17222
172231999-02-18 Ken'ichi Handa <handa@gnu.org>
17224
17225 * coding.c (Fdecode_sjis_char): Use %x for formatting error message.
17226 (Fdecode_big5_char): Likewise.
17227
172281999-02-17 Richard Stallman <rms@gnu.org>
17229
17230 * insdel.c (adjust_markers_for_replace): When doing an insertion
17231 (replacing a region of zero length), handle markers at the
17232 insertion point properly.
17233
172341999-02-17 Andrew Innes <andrewi@gnu.org>
17235
17236 * w32fns.c (Vw32_quit_key): New variable.
17237 (post_character_message): Use it.
17238 (syms_of_w32fns): DEFVAR it.
17239
172401999-02-16 MORIOKA Tomohiko <morioka@jaist.ac.jp>
17241
17242 * fns.c (Fbase64_encode_string): New optional argument `NO_LINE_BREAK'.
17243
172441999-02-16 Richard Stallman <rms@gnu.org>
17245
17246 * filelock.c (within_one_second): New function.
17247 (current_lock_owner): Use that.
17248 (get_boot_time): Use /proc/uptime if available.
17249 Otherwise, if nothing found in wtmp, try wtmp.1.gz and so on.
17250 (get_boot_time_1): New subroutine taken from get_boot_time.
427ec082 17251
26901792
DL
172521999-02-16 Richard Stallman <rms@gnu.org>
17253
17254 * emacs.c (Qusr1_signal, Qusr2_signal): New variables.
17255 (syms_of_emacs): Init and staticpro them.
17256 (handle_USR1_signal): Don't run any code, just queue up an event.
17257 (handle_USR2_signal): Likewise.
17258
172591999-02-16 Eli Zaretskii <eliz@gnu.org>
17260
17261 * dired.c (Ffile_attributes): If the file's size doesn't fit in
17262 an integer, return it as a float. Doc string fixed.
17263
172641999-02-16 Richard Stallman <rms@gnu.org>
17265
17266 * emacs.c (Qusr1_signal, Qusr2_signal): New variables.
17267 (syms_of_emacs): Init and staticpro them.
17268 (handle_USR1_signal): Don't run any code, just queue up an event.
17269 (handle_USR2_signal): Likewise.
17270
172711999-02-15 Kenichi Handa <handa@etl.go.jp>
17272
17273 * coding.c (Fdecode_sjis_char, Fencode_sjis_char): Handle
17274 ASCII correctly. Signal error on invalid characters.
17275 (Fdecode_big5_char, Fencode_big5_char): Likewise.
17276
172771999-02-15 Eli Zaretskii <eliz@gnu.org>
17278
17279 * w16select.c (get_clipboard_data): Work around a bug in Windows95
17280 DOS box which doubles the reported size of text in the clipboard.
17281
172821999-02-15 Kenichi Handa <handa@etl.go.jp>
17283
17284 * coding.c (decode_coding_iso2022): Don't set
17285 coding->composed_chars to 0 here.
17286 (setup_coding_system): Set coding->composed_chars to 0 here.
17287
172881999-02-10 Richard Stallman <rms@gnu.org>
17289
17290 * fileio.c (Ffile_regular_p): Use lstat.
17291
172921999-02-09 Richard Stallman <rms@gnu.org>
17293
17294 * unexelf.c (HAS_SBSS_SECTION): Define this in some cases.
17295 (unexec): Test this instead of specific systems.
17296
17297 * m/macppc.h: New file.
17298
172991999-02-08 Dave Love <fx@gnu.org>
17300
17301 * fns.c (Fyes_or_no_p, Fy_or_n_p): Doc fix.
17302
173031999-02-08 Ken'ichi Handa <handa@gnu.org>
17304
17305 * coding.c (ccl_coding_driver): On encoding, coding->produced_char
17306 should be set to coding->produced.
17307
173081999-02-07 Paul Fisher <rao@gnu.org>
17309
17310 * fns.c (IS_BASE64_IGNORABLE, READ_QUADRUPLET_BYTE): New macros.
17311 (base64_decode_1): Use READ_QUADRUPLET_BYTE.
17312
173131999-02-07 Markus Rost <markus.rost@mathematik.uni-regensburg.de>
17314
17315 * editfns.c (Fformat): Doc fix.
17316
173171999-02-06 Richard Stallman <rms@gnu.org>
17318
17319 * process.c (syms_of_process): defsubr it.
17320 (Fprocess_running_child_p): New function.
17321
173221999-02-05 Andrew Innes <andrewi@gnu.org>
17323
17324 * w32term.c (construct_drag_n_drop): Call DraqQueryPoint before
17325 recording drop position.
17326
173271999-02-05 Ken'ichi Handa <handa@gnu.org>
17328
17329 * coding.c (encode_coding_iso2022): Before writing out an invalid
17330 code, reset graphic planes and registers if necessary.
17331
17332 * term.c (encode_terminal_code): Fix previous change.
17333
173341999-02-04 Eli Zaretskii <eliz@gnu.org>
17335
17336 * w16select.c (last_clipboard_text, clipboard_storage_size): New
17337 static variables.
17338 (set_clipboard_data): Save a copy of the text we put into
17339 clipboard in last_clipboard_text.
17340 (get_clipboard_data): If the clipboard text is identical to what
17341 last_clipboard_text holds, pretend there's no data in the clipboard.
17342
173431999-02-03 Richard Stallman <rms@gnu.org>
17344
17345 * s/gnu.h (NLIST_STRUCT): Add #undef.
17346
173471999-02-03 Eli Zaretskii <eliz@gnu.org>
17348
17349 * w16select.c (Fw16_set_clipboard_data): When the text needs to be
17350 encoded, set its pointer and size as returned by encode_coding.
17351
173521999-02-02 Ken'ichi Handa <handa@gnu.org>
17353
17354 * fns.c (Fset_char_table_default): To handle the case that CH is
17355 an ASCII char, use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
17356
173571999-02-02 Andrew Innes <andrewi@gnu.org>
17358
17359 * w32fns.c (syms_of_w32fns): Change default value of
17360 w32-mouse-move-interval to 0, so that the mouse wheel/rocker on
17361 some mice works properly.
17362
173631999-02-02 Eli Zaretskii <eliz@gnu.org>
17364
17365 * w16select.c (set_clipboard_data): Correctly null-terminate the
17366 string to be put into the Windows clipboard. Use xbuf_addr.
17367
173681999-02-01 Richard Stallman <rms@gnu.org>
17369
17370 * buffer.c (Fset_buffer_multibyte): Error if buffer is indirect.
17371
173721999-01-31 Richard Stallman <rms@gnu.org>
17373
17374 * process.c (process_send_signal): If CURRENT_GROUP is `lambda'
17375 then don't send the signal if the shell owns the terminal.
17376 (Finterrupt_process): Doc change.
427ec082 17377
26901792
DL
173781999-01-31 Andrew Innes <andrewi@gnu.org>
17379
17380 * unexw32.c: (ROUND_UP_DST_AND_ZERO): New macro.
17381 (copy_executable_and_dump_data): Use it to ensure alignment slop
17382 is zeroed.
17383
173841999-01-30 Andrew Innes <andrewi@gnu.org>
17385
17386 * w32.c (init_environment): Change argv[0] to contain the full
17387 path to Emacs.
17388
17389 * emacs.c (main) [WINDOWSNT]: Pass argv to init_environment.
17390
173911999-01-29 Ken'ichi Handa <handa@gnu.org>
17392
17393 * xterm.c (x_new_fontset): For ASCII font, don't use the font name
17394 returned by x_new_font (the resolved one) but use the font name
17395 set in the fontset specification.
17396 (x_load_font): For the height of font, if normarl ascent and
17397 descent value are larger than those in max_bounds field, use the
17398 former.
17399
174001999-01-28 Eli Zaretskii <eliz@gnu.org>
17401
17402 * xdisp.c (decode_mode_spec_coding): Fix previous change.
17403
174041999-01-27 Geoff Voelker <voelker@cs.washington.edu>
17405
17406 * makefile.nt: Use full path to temacs.exe when dumping.
17407
174081999-01-27 Jason Rumney <jasonr@altavista.net>
17409
17410 * w32fns.c (w32_load_system_font): Do not load unlisted fonts if
17411 list was reliable.
17412 (enum_fontex_cb1, enum_fontex_cb2): New functions.
17413 (w32_list_bdf_fonts): New parameter; max_names. Callers updated.
17414 (w32_list_synthesized_fonts): New function.
17415 (w32_list_fonts): Use maxnames. Use EnumFontFamiliesEx when
17416 available instead of EnumFontFamilies. List synthesized fonts if
17417 Vw32_enable_italics is non-nil.
427ec082 17418
26901792
DL
174191999-01-27 Richard Stallman <rms@gnu.org>
17420
17421 * s/ptx4.h (SETUP_SLAVE_PTY): Use the ptem module if it exists.
17422 Don't complain if ttcompat does not exist.
17423
17424 * w32fns.c (x_set_frame_parameters): gcpro as needed.
17425
174261999-01-27 Andrew Innes <andrewi@gnu.org>
17427
17428 * w32fns.c (w32_wnd_proc): Fix bug introduced by previous change;
17429 the lwindow, rwindow and apps keys could not be used as function
17430 keys, because they were being passed to TranslateMessage which
17431 ignores them. Also, key was being changed to SPC.
17432
17433 * makefile.nt: Do make version comparison as strings.
17434
174351999-01-27 Eli Zaretskii <eliz@gnu.org>
17436
17437 * coding.c (syms_of_coding): eol-mnemonic-* variables are now
17438 strings, not characters.
17439
17440 * coding.h: Likewise.
17441
17442 * xdisp.c (decode_mode_spec_coding): Display the EOL type as a
17443 string.
17444
174451999-01-26 Dave Love <fx@gnu.org>
17446
17447 * emacs.c (main): Up-date copyright.
17448
174491999-01-25 Dave Love <fx@gnu.org>
17450
17451 * coding.c (syms_of_coding): Doc fix for inhibit-eol-conversion.
17452
174531999-01-25 Andreas Schwab <schwab@gnu.org>
17454
17455 * eval.c (Fsignal): Move comment to avoid confusing make-docfile.
17456
174571999-01-23 Richard M. Stallman <rms@borg.ai.mit.edu>
17458
17459 * xfns.c (x_set_frame_parameters): gcpro as needed.
17460
17461 * window.c (Fset_window_point): If WINDOW is selected but the
17462 current buffer is not its buffer, don't use Fgoto_char.
17463
174641999-01-22 Richard M. Stallman <rms@gnu.org>
17465
17466 * syntax.c (scan_sexps_forward): Delete duplicate code
17467 to set prev_from_syntax, above start of main loop.
17468 At startinstring, check syntax when checking for a match.
17469
174701999-01-22 Jason Rumney <jasonr@altavista.net>
17471
17472 * w32bdf.c: New file.
17473 * w32bdf.h: New file.
17474 * makefile.nt: Add w32bdf.c and w32bdf.h.
17475
17476 * w32gui.h: Include w32bdf.h.
17477 (W32FontStruct) Add bdf element.
17478
17479 * w32term.h (FONT_WIDTH, FONT_HEIGHT, FONT_BASE, FONT_MAX_WIDTH):
17480 Support BDF fonts.
17481
17482 * w32term.c (W32_TEXTOUT): New macro.
17483 (dumpglyphs): Support BDF fonts. Use W32_TEXTOUT macro.
17484 Simplify baseline calculation. Detect SJIS by font, not glyph.
17485 Call SetTextAlign.
17486 (syms_of_w32term): Remove "jisx0212-sjis" from
17487 w32-charset-to-codepage-alist.
17488 Replace "ksc5601" with "ksc5601.1987" in w32-charset-to-codepage-alist.
17489 Add "ksc5601.1992' to w32-charset-to-codepage-alist.
427ec082 17490
26901792
DL
17491 * w32fns.c (Vw32_bdf_filename_alist): New variable.
17492 (x_destroy_bitmap): Returns void not int.
17493 (x_set_border_pixel): Returns void.
17494 (w32_load_bdf_font): New function.
17495 (w32_load_system_font): New function, was w32_load_font. List
17496 fonts before loading. Explicitly set encoding for SJIS fonts.
17497 Set default_ascent to 0 as comment indicates.
17498 (w32_load_font): Call w32_load_system_font and w32_load_bdf_font.
17499 (w32_unload_font): Support BDF fonts.
17500 (w32_to_x_charset): Fix mappings to avoid wildcard mismatches.
17501 Autodetect whether to use koi8-r instead of iso8859-5.
17502 Associate "ksc5601.1987" with HANGUEL_CHARSET.
17503 Associate "ksc5601.1992" with JOHAB_CHARSET.
17504 (x_to_w32_charset): Make consistent with w32_to_x_charset.
17505 (w32_to_x_font): Add resolution.
17506 (x_to_w32_font): Use font resolution to calculate height if supplied.
17507 (w32_font_match): Handle wildcards anywhere within field.
17508 (enumfont_t): Remove unused head pointer.
17509 (enum_font_cb2): Dereference elfLogFont.
17510 (w32_list_bdf_fonts): New function.
17511 (w32_list_fonts): Use one_w32_dispay_info instead of insisting on
17512 valid frame. Remove MessageBox. Support BDF fonts.
17513 (Fw32_find_bdf_fonts): New function.
17514 (syms_of_w32fns): Add Vw32_bdf_filename_alist and
17515 Sw32_find_bdf_fonts.
17516
175171999-01-21 Andrew Innes <andrewi@gnu.org>
17518
17519 * makefile.nt (temacs): Use del to delete file, not rm.
17520
175211999-01-19 Richard Stallman <rms@psilocin.ai.mit.edu>
17522
17523 * keyboard.c (read_key_sequence): Fix previous change.
17524
17525 * xterm.c (same_x_server): Detect treat ":0" and "unix:0"
17526 as the same. Treat "myname:0" as the same as those two.
17527
175281999-01-19 Jason Rumney <jasonr@altavista.net>
17529
17530 * w32fns.c (x_to_w32_charset): Add iso8859-9.
17531 (w32_to_x_charset): Fix charset mappings.
17532
17533 * w32term.c: Remove codepage macros. Remove redundant BIG5 macros.
17534 (dumpglyphs): Move definitions out of block containing goto.
17535 Remove redundant code for BIG5.
17536 Use w32_codepage_for_font instead of
17537 w32_codepage_for_charset. Add cast to int where float
17538 operation is assigned to int.
17539 (Vw32_charset_to_codepage_alist): New variable.
17540 (w32_codepage_for_charset): Removed.
427ec082
SS
17541 (w32_codepage_for_font): New function, replacing
17542 w32_codepage_for_charset.
26901792
DL
17543 (syms_of_w32term): Add and initialize
17544 w32-charset-to-codepage-alist.
17545
175461999-01-17 Richard Stallman <rms@psilocin.ai.mit.edu>
17547
17548 * xselect.c (x_handle_selection_clear): Don't clear the
17549 selection if Emacs still owns it through a different display.
17550
175511999-01-17 Andrew Innes <andrewi@gnu.org>
17552
17553 * w32proc.c: (w32_executable_type): Relax the check to identify
17554 cygwin-compiled applications, because the exact dll name varies
17555 with release. Now only require the name to start "cygwin".
17556
17557 * w32heap.h: (ROUND_UP):
17558 (ROUND_DOWN): New macros.
17559 (need_to_recreate_heap): Renamed to using_dynamic_heap.
17560 (init_heap): New extern.
17561 (data_region_size):
17562 (recreate_heap):
17563 (read_in_bss):
17564 (map_in_heap):
17565 (round_to_next):
17566 (w32_fatal_reload_error):
17567 (get_section_size): Obsolete externs removed.
17568
17569 * w32heap.c: (RVA_TO_PTR): Redefine to convert RVA to address in
17570 current process.
17571 (round_to_next): Obsolete function removed.
17572 (preload_heap_section): New variable.
17573 (data_region_size): Obsolete variable removed.
17574 (allocate_heap): Modified to determine end of static heap section
17575 used during preload, and use that as initial base address for
17576 dynamic heap instead of hard-coded value.
17577 (sbrk): Remove call to allocate_heap; handled by init_heap. Skip
17578 calls to commit or decommit pages when allocating from static heap
17579 section during preload.
17580 (recreate_heap): Obsolete function removed.
17581 (init_heap): New function to initialize internal sbrk heap
17582 variables. Uses static heap section during preload, otherwise
17583 calls allocate_heap to reserve a heap region dynamically.
17584 (round_heap): Use ROUND_UP macro instead of round_to_next.
17585
17586 * unexw32.c: Major rewrite to support cleaner method of dumping; a
17587 static "bss" section is used for heap space during preload, and
17588 bss data is now written to the proper section area when dumping.
17589 (need_to_recreate_heap): Renamed to using_dynamic_heap.
17590 (heap_index_in_executable): Obsolete variable removed.
17591 (data_section): New variable.
17592 (data_start_va): Renamed to data_start.
17593 (data_start_file): Obsolete variable removed.
17594 (bss_section):
17595 (extra_bss_size):
17596 (bss_section_static):
17597 (bss_start_static):
17598 (bss_size_static):
17599 (extra_bss_size_static):
17600 (heap_section): New variables.
17601 (_start): Remove code based on old unexec method. Call init_heap
17602 to initialize sbrk heap.
17603 (close_file_data): Update size of file when closing, so that
17604 unexec doesn't have to work out exact size in advance.
17605 (get_bss_info_from_map_file):
17606 (get_section_size): Obsolete functions removed.
17607 (rva_to_section): Fix minor bug, and add a work-around for a bug
17608 in very old linkers.
17609 (offset_to_section):
17610 (relocate_offset): New functions.
17611 (OFFSET_TO_RVA):
17612 (RVA_TO_OFFSET):
17613 (RVA_TO_SECTION_OFFSET):
17614 (PTR_TO_RVA):
17615 (PTR_TO_OFFSET):
17616 (OFFSET_TO_PTR): New macros.
17617 (get_section_info): Modify to support new unexec method;
17618 determines address ranges in process that need dumping, and COFF
17619 sections where data will be dumped. Allows for static and global
17620 bss data to be in separate ranges. No longer relies on knowledge
17621 of section names.
17622 (copy_executable_and_dump_data_section): Renamed
17623 copy_executable_and_dump_data. Completely rewritten to copy
17624 executable section by section, so that raw data areas can be
17625 expanded to hold dumped data as necessary. Allows for bss data to
17626 be in same section as initialized data. Reduces size of static
17627 heap section to that used during preload.
17628 (dump_bss_and_heap):
17629 (w32_fatal_reload_error):
17630 (read_in_bss):
17631 (map_in_heap): Obsolete functions removed.
17632 (unexec): Rounds off preload heap to nearest page rather than
17633 virtual allocation unit. Modified to match other changes.
17634
17635 * mem-limits.h: (get_lim_data): Use reserved_heap_size instead of
17636 data_region_size.
17637
17638 * makefile.nt: (TEMACS_TMP): New macro.
17639 ($(TEMACS)): Output to TEMACS_TMP from link, use post-link
17640 processor to add static heap section in support of new unexec.
17641
17642 * lastfile.c: Include config.h to pick up data layout pragmas.
17643 [WINDOWSNT]: Remove explicit pragma.
17644
176451999-01-12 Kenichi Handa <handa@etl.go.jp>
17646
17647 * coding.c (Fdecode_sjis_char): Decode Japanese Katakana character
17648 correctly.
17649 (Fencode_sjis_char): Encode Japanese Katakana character correctly.
17650
176511999-01-11 Dave Love <fx@gnu.org>
17652
17653 * coding.c (syms_of_coding): Doc fix for inhibit-eol-conversion.
17654
176551999-01-11 Richard Stallman <rms@psilocin.ai.mit.edu>
17656
17657 * keyboard.c (read_key_sequence): In key-translation-map and
17658 function-key-map, handle symbol with array as fn def.
17659 In function-key-map, handle symbol with keymap as fn def,
17660 and autoloaded definitions.
427ec082 17661
26901792
DL
17662 * puresize.h (BASE_PURESIZE): Increment to 500000.
17663
17664 * print.c (Qtemp_buffer_setup_hook): New variable.
17665 (syms_of_print): Init and staticpro that.
17666 (temp_output_buffer_setup): Run Qtemp_buffer_setup_hook.
17667
176681999-01-11 Kenichi Handa <handa@etl.go.jp>
17669
17670 * insdel.c (del_range_1): Call signal_after_change.
17671 (del_range_byte): Likewise.
17672 (del_range_both): Likewise.
17673 (del_range_2): Don't call signal_after_change.
17674
17675 * xdisp.c (message_dolog): Use insert_1_both to avoid running any
17676 Lisp code here.
17677
176781999-01-07 Richard Stallman <rms@psilocin.ai.mit.edu>
17679
17680 * eval.c (find_handler_clause): If SIG is nil (memory full error),
17681 never run the debugger, and don't bother checking the args
17682 to see whether the debugger should be run.
17683
176841999-01-06 Richard Stallman <rms@psilocin.ai.mit.edu>
17685
17686 * keyboard.c (read_key_sequence):
17687 Tell get_keyelt to look handle autoloads.
17688 Handle symbols defined as keymaps, and autoloaded keymaps.
17689
176901999-01-06 Kenichi Handa <handa@etl.go.jp>
17691
17692 * search.c (search_buffer): Fix previous change.
17693
176941999-01-06 Eli Zaretskii <eliz@gnu.org>
17695
17696 * w16select.c (set_clipboard_data): Terminate the text with a null
17697 character. Don't allow to put binary data into the clipboard.
17698 Return zero in case of success, 1 or 2 otherwise.
17699 (get_clipboard_data): Only bail out if the null character is in
17700 the last 32-byte chunk of clipboard data
17701 (Fw16_set_clipboard_data): Make ok and put_status be unsigned. If
17702 they save binary data, print a message in the echo area saying the
17703 text was not put into the clipboard.
17704
17705 * msdos.c (IT_write_glyphs): Move constant expression out of the loop.
17706
177071999-01-06 Andreas Schwab <schwab@gnu.org>
17708
17709 * systty.h [__GLIBC__ >= 2]: Check __FAVOR_BSD instead of
17710 _BSD_SOURCE, the latter is always defined.
17711
177121999-01-05 Richard Stallman <rms@psilocin.ai.mit.edu>
17713
17714 * fns.c (Frequire): Don't fail to unbind bindings.
17715
177161999-01-02 Richard Stallman <rms@psilocin.ai.mit.edu>
17717
17718 * emacs.c (main) [DOUG_LEA_MALLOC]: Don't call r_alloc_reinit.
17719
17720 * charset.c (Ffind_charset_region): Fix doc typo.
17721
177221998-12-31 Eli Zaretskii <eliz@mescaline.gnu.org>
17723
17724 * msdos.c (IT_write_glyphs): Convert unibyte characters to
17725 multibyte in unibyte buffers only.
17726
17727 * keymap.c (Fdefine_prefix_command): Accept a third argument NAME
17728 and pass it to Fmake_sparse_keymap.
17729
177301998-12-29 Richard Stallman <rms@psilocin.ai.mit.edu>
17731
17732 * alloc.c (MMAP_MAX_AREAS): New macro.
17733 (allocate_vectorlike, make_uninit_multibyte_string): Use that.
17734 (init_alloc_once): Use that.
17735
17736 * s/gnu-linux.h [DOUG_LEA_MALLOC] (REL_ALLOC): Undefine it.
17737
17738 * alloc.c (lisp_malloc, lisp_free): New functions.
17739 Use them instead of malloc, xmalloc, and xfree, for Lisp objects.
17740 Don't set allocating_for_lisp in the callers; let lisp_malloc do it.
17741 (n_interval_blocks, n_float_blocks): New variable.
17742 (n_cons_blocks, n_vectors, n_symbol_blocks): New variable.
17743 (n_marker_blocks, n_string_blocks): New variable.
17744 (init_intervals, make_interval): Set a count variable.
17745 Use lisp_malloc instead of setting allocating_for_lisp.
17746 (init_float, make_float, init_cons, Fcons): Likewise.
17747 (allocate_vectorlike, init_symbol, Fmake_symbol): Likewise
17748 (init_marker, allocate_misc, init_strings): Likewise.
17749 (make_uninit_multibyte_string): Likewise.
17750 (gc_sweep, compact_strings): Decrement the count variables.
17751
17752 * alloc.c (uninterrupt_malloc): Don't store Emacs's hooks
17753 into the old_..._hook variables.
17754
177551998-12-28 Richard Stallman <rms@psilocin.ai.mit.edu>
17756
17757 * keyboard.c: In each active map, for each menu bar item, use only
17758 the first submap.
17759 (menu_bar_one_keymap): Initialize menu_bar_one_keymap_changed_items.
17760 (menu_bar_item): Update and test menu_bar_one_keymap_changed_items.
17761 (syms_of_keyboard): Staticpro and init it.
17762
427ec082 17763 * xmenu.c (single_keymap_panes):
26901792
DL
17764
177651998-12-28 Andrew Innes <andrewi@delysid.gnu.org>
17766
17767 * w32fns.c (w32_msg_pump): Ignore WM_NULL message posted to thread
17768 by complete_deferred_msg.
17769 (post_character_message): Cancel all deferred messages when
17770 quit_char is typed, in order to break out of potential deadlocks.
17771 (cancel_all_deferred_msgs): New function.
17772 (complete_deferred_msg): Don't abort if msg not found; may have
17773 been cancelled.
17774 (Fw32_reconstruct_hot_key): Use pre-interned symbols.
17775 (Fw32_send_sys_command): Wait for system command to
17776 complete before returning.
427ec082 17777
26901792
DL
17778 * w32term.c (x_iconify_frame): Wait for frame to be iconified; do
17779 not set async_iconified flag though.
17780
17781 * w32proc.c: (Vw32_start_process_inherit_error_mode): New variable.
17782 (create_child): Use it.
17783 (syms_of_ntproc): Defvar it. Also fix docstrings for
17784 w32-start-process-share-console and w32-start-process-show-window.
17785
17786 * unexw32.c (_start): Force system calls accessing unmounted
17787 devices to fail without prompting.
17788
177891998-12-26 Richard Stallman <rms@psilocin.ai.mit.edu>
17790
17791 * emacs.c (main): Call memory_warnings and uninterrupt_malloc
17792 even when starting the dumped Emacs.
17793
17794 * keymap.c (Fsingle_key_description): Handle (control ?x) etc.
17795 (Fkey_description): Handle lists like vectors.
17796
177971998-12-21 Kenichi Handa <handa@etl.go.jp>
17798
17799 * callint.c (Fcall_interactively) <'C'>: Give Fread_char Qnil
17800 because of the change of the second argument of Fread_char.
17801
17802 * charset.c (Fcharset_after): Check range. If POS is out of
17803 range, return nil.
17804
17805 * keyboard.c (read_char): Don't bind input-method-exit-on-first-char.
17806
17807 * lread.c (Fread_char): Change the meaning of the second argument.
17808 (Fread_event): Likewise.
17809 (Fread_char_exclusive): Likewise.
17810
17811 * print.c (printchar): Fix previous change.
17812
17813 * process.c (read_process_output): Decide the multibyteness of
17814 string given to a process filter by a coding system used for
17815 decoding the process output.
17816
178171998-12-21 Eli Zaretskii <eliz@mescaline.gnu.org>
17818
17819 * xterm.c (dumpglyphs): Don't convert 7-bit ASCII characters via
17820 nonascii-translation-table.
17821 * msdos.c (IT_write_glyphs): Likewise.
17822 * fns.c (concat): Likewise.
17823 * charset.c (unibyte_char_to_multibyte): Likewise.
17824 * insdel.c (copy_text, count_size_as_multibyte): Likewise.
17825
178261998-12-21 Andreas Schwab <schwab@delysid.gnu.org>
17827
17828 * doc.c (Fdocumentation): Change the doc string for prefix
17829 commands to make it a complete sentence in one line.
17830
178311998-12-16 Petri Kaurinkoski <Petri.Kaurinkoski@hut.fi>
17832
17833 * s/irix6-5.h: New file.
17834 * s/irix6-0.h (IRIX6): Define this symbol.
17835 * s/usg5-4.h (TIOCSIGSEND): Don't define this if irix6.
17836 (bcopy, bcmp, bzero): Likewise.
17837 * m/iris4d.h (LIBS_MACHINE): Leave this blank if irix6.5.
17838 (C_SWITCH_MACHINE): New value for irix6.5.
17839
178401998-12-15 Richard Stallman <rms@gnu.org>
17841
17842 * fns.c (Fbase64_decode_region, Fbase64_decode_string):
17843 Do free malloc'd memory even in case of failure. Use xfree, not free.
17844 (Fbase64_encode_region, Fbase64_encode_string): Use xfree, not free.
17845 (base64_decode_1): Don't fail for short lines.
17846
17847 * print.c (printchar): Outputting multibyte characters
17848 to echo area always makes it multibyte.
17849
17850 * search.c (search_buffer): Don't use Boyer-Moore
17851 to search for an invalid multibyte code.
17852 In unibyte case, no need to check whether there are translations
17853 in more than one charset; just set charset_base to 0.
17854
178551998-12-15 Ken'ichi Handa <handa@delysid.gnu.org>
17856
17857 * print.c (printchar): Cancel previous change.
17858
178591998-12-15 Kenichi Handa <handa@etl.go.jp>
17860
17861 * callproc.c: Include "ccl.h".
17862 (Fcall_process): Doc-string modified. Set CODING_MODE_LAST_BLOCK
17863 bit in argument_coding.mode to tell encoding procedure to flush
17864 data. While encoding arguments, if argument_coding uses CCL
17865 program, initialize it again after encoding.
17866 (Fcall_process_region): Doc-string modified. Handle the case that
17867 NARGS is 3.
17868
17869 * ccl.c (CCL_SUCCESS): Don't set ccl->ic.
17870 (ccl_driver) <CCL_End>: Pretend that all source text is consumed.
17871 Set `ic' to the head of this command.
17872 (ccl_driver) <CCL_ReadMultibyteChar2>: Return a single byte 8-bit
17873 code for an invalid code.
17874 (setup_ccl_program): If the arg VEC is nil, skip setting ups
17875 based on VEC.
17876
17877 * charset.c (Qunknown): New variable.
17878 (init_charset_once): Intern and staticpro Qunknown. Initialize
17879 all elements of Vcharset_symbol_table to Qunknown.
17880 (find_charset_in_str): New arg MULTIBYTE. If it is zero, check
17881 unibyte characters only. For an invalid composition sequence, set
17882 CHARSETS[1] to 1.
17883 (Ffind_charset_region): Call find_charset_in_str with an
17884 appropriate MULTIBYTE arg. If undefined charsets are found,
17885 include `unknown' is the return value.
17886 (Ffind_charset_string): Likewise.
17887 (Fsplit_char): If CHAR is invalid, return `(unknown CHAR)'.
17888 (str_cmpchar_id): Max composite character code should be less than
17889 GENERIC_COMPOSITION_CHAR.
17890
17891 * charset.h (find_charset_in_str): Update declaration.
17892
17893 * coding.c (DECODE_DESIGNATION): Jump to label_invalid_code if
17894 final_char is invalid.
17895 (decode_coding): If coding->type is coding_type_ccl, call
17896 ccl_coding_driver even if SRC_BYTES is zero.
17897 (code_convert_region): Update `inserted' correctly after calling
17898 coding->post_read_conversion. Even after the code converter
17899 consumed all source text, call it once more if it is
17900 coding_type_ccl to flush out data.
17901
17902 * fileio.c (Finsert_file_contents): Even if INSERTED is zero, if
17903 CODING is handled by CCL program, call code_convert_region.
17904
17905 * fns.c (string_char_to_byte): Handle invalid multibyte sequence
17906 correctly.
17907 (string_byte_to_char): Likesize.
17908
17909 * print.c (printchar): When outputting a multibyte character to
17910 echo area, always set message_enable_multibyte to 1.
17911
17912 * process.c (read_process_output): If NBYTES is zero and
17913 CODING_MODE_LAST_BLOCK bit is not yet set in coding->mode, set it
17914 and try decoding again.
17915 (Fprocess_send_eof): If the coding system of PROCESS
17916 requires flushing, call send_process with null-string at first.
17917
17918 * w16select.c (Fw16_set_clipboard_data): Call find_charset_in_str
17919 with MULTIBYTE arg 0.
17920 * w32select.c (Fw32_set_clipboard_data): Likewise.
17921 * xselect.c (lisp_data_to_selection_data): Likewise.
17922
179231998-11-30 Richard Stallman <rms@psilocin.ai.mit.edu>
17924
17925 * search.c (Freplace_match): Set OPOINT clearly for the case
17926 where point is in the middle of the text to be replaced.
17927
17928 * xdisp.c (display_text_line): When handling HPOS < 0 after loop,
17929 if compute_motion fails to advance at all, don't back it up.
17930
179311998-12-10 Geoff Voelker <voelker@cs.washington.edu>
17932
17933 * w32.c (w32_get_long_filename): Handle root dirs correctly.
17934
427ec082 17935 * s/ms-w32.h (LOCALTIME_CACHE): Define.
26901792
DL
17936
179371998-12-09 Richard Stallman <rms@gnu.org>
17938
17939 * insdel.c (insert_from_buffer_1): Properly count the size
17940 of output from conversion to multibyte even when input
17941 is split across the gap.
17942
179431998-12-09 Karl Heuer <kwzh@gnu.org>
17944
17945 * keyboard.c: Doc fixes.
17946
17947 * s/irix4-0.h (C_SWITCH_SYSTEM) [!__GNUC__]: Increase space.
17948
179491998-12-08 Andrew Innes <andrewi@harlequin.co.uk>
17950
17951 * w32select.c (Fw32_get_clipboard_data): Do not delete isolated CR
17952 characters, only convert CRLF to LF.
17953
179541998-12-08 Geoff Voelker <voelker@cs.washington.edu>
17955
17956 * makefile.nt: Do string comparision of _NMAKE_VER.
17957
179581998-12-06 Eli Zaretskii <eliz@mescaline.gnu.org>
17959
17960 * Makefile.in (msdos.o): Depend on termchar.h, charset.h,
17961 coding.h, and disptab.h
17962
17963 * msdos.c (Vdos_unsupported_char_glyph): New variable.
17964 (syms_of_msdos): DEFVAR_LISP it.
17965 (IT_insert_glyphs, IT_delete_glyphs): New functions which abort Emacs.
17966 (internal_terminal_init): Set up insert_glyphs_hook and
17967 delete_glyphs_hook to call them. Explicitly set char_ins_del_ok to 0.
17968 (unibyte_display_via_language_environment): New variable.
17969 (syms_of_msdos): Devfar it.
17970 (IT_write_glyphs): Honor glyph aliasing via Vglyph_table.
17971 Encode the character codes of the glyphs according to the
17972 terminal_coding in effect.
17973
179741998-12-04 Andreas Schwab <schwab@delysid.gnu.org>
17975
17976 * fns.c (Fstring_as_unibyte): Doc fix.
17977
179781998-12-03 Andreas Schwab <schwab@delysid.gnu.org>
17979
17980 * charset.h: Declare char_valid_p.
17981
179821998-12-03 Eli Zaretskii <eliz@mescaline.gnu.org>
17983
17984 * dosfns.c (dos_cleanup): Flush and fsync the termscript stream.
17985
17986 * msdos.c (init_environment): Record the time we started up.
17987 (IT_reset_terminal_modes): Don't restore the screen if we exit too
17988 fast after startup (aka crash).
17989
179901998-12-02 Geoff Voelker <voelker@cs.washington.edu>
17991
17992 * w32.c (check_windows_init_file): Use decode_env_path when
17993 using EMACSLOADPATH.
17994
179951998-12-02 Jason Rumney <jasonr@altavista.net>
17996
17997 * w32term.c (dumpglyphs): Use unsigned char arrays.
17998 Use FONT_MAX_WIDTH to detect and fudge proportional fonts
17999 for various languages.
18000 Compensate for fonts that have underhangs (e.g., Thai).
18001
18002 * w32term.h (FONT_MAX_WIDTH): New macro.
18003
180041998-12-02 Andrew Innes <andrewi@harlequin.co.uk>
18005
18006 * keyboard.c (Qlanguage_change): New variable.
18007 (syms_of_keyboard): Init it.
18008 (kbd_buffer_get_event) [WINDOWSNT]: Generate language-change events.
18009 (lispy_function_keys) [HAVE_NTGUI]: Remove names for modifier
18010 keys; add name for Escape key; extend to 256 elements.
18011 (parse_modifiers): Make non-static.
18012
18013 * keyboard.h (parse_modifiers): Declare prototype.
18014
18015 * termhooks.h (event_kind) [WINDOWSNT]: Define language_change_event.
18016
18017 * w32fns.c (w32_last_error): Fix cut+paste error.
18018 (Vw32_phantom_key_code): New variable.
18019 (Qhyper, Qsuper, Qmeta, Qalt, Qctrl, Qcontrol, Qshift): New variables.
18020 (syms_of_w32fns): Init and register them.
18021 (reset_modifiers): Use a more precise test for whether Emacs has
18022 keyboard focus. Synchronize state of all keys that can be used as
18023 modifiers, to overcome problems arising from hot-keys.
18024 (w32_key_to_modifier): Be careful not to call intern() to avoid
18025 requiring thread synchronization.
18026 (w32_msg_pump): Handle new WM_EMACS_TOGGLE_LOCK_KEY message.
18027 (w32_wnd_proc): Ensure lock key indicator lights are updated
18028 promptly on Windows 9x, by passing key events on to the system.
18029 (w32_wnd_proc): Use Vw32_phantom_key_code to stop system
18030 responding to Windows key events when not wanted.
18031 (w32_wnd_proc): Undo the mapping of Ctrl-Pause into cancel and
18032 Ctrl-NumLock into pause by the system.
18033 (w32_wnd_proc): Don't translate key combinations containing any
18034 modifiers other than shift (and capslock).
18035 (w32_wnd_proc): Reset modifier key states when receiving focus (we
18036 can't determine the key states until we have keyboard focus).
18037 (Fw32_toggle_lock_key): New function.
18038 (syms_of_w32fns): Defsubr it.
18039
18040 * w32inevt.c (key_event): Use Vw32_phantom_key_code. Undo the
18041 mapping of Ctrl-Pause into cancel, and Ctrl-NumLock into pause.
18042 (w32_console_toggle_lock_key): New function.
18043
18044 * w32term.h (WM_EMACS_TOGGLE_LOCK_KEY): New define.
18045
180461998-11-30 Richard Stallman <rms@psilocin.ai.mit.edu>
18047
18048 * search.c (Freplace_match): Set OPOINT clearly for the case
18049 where point is in the middle of the text to be replaced.
18050
18051 * xdisp.c (display_text_line): When handling HPOS < 0 after loop,
18052 if compute_motion fails to advance at all, don't back it up.
18053
180541998-11-28 Richard Stallman <rms@psilocin.ai.mit.edu>
18055
18056 * xfns.c (Qouter_window_id): New variable.
18057 (syms_of_xfns): Initialize it.
18058 (x_report_frame_params): Set up outer-window-id parameter.
18059
18060 * keymap.c (Fsingle_key_description): Fix previous change.
18061
180621998-11-26 Ken'ichi Handa <handa@delysid.gnu.org>
18063
18064 * lisp.h (Frequire): Update declaration.
18065
180661998-11-26 Kenichi Handa <handa@etl.go.jp>
18067
18068 * ccl.c (ccl_driver) <CCL_TranslateCharacter>: Don't suppress MSB
18069 if the charset is ascii.
18070 (ccl_driver) <CCL_TranslateCharacterConstTbl>: Likewise.
18071
18072 * charset.c (non_ascii_char_to_string): If C has modifier bits,
18073 make an appropriate one byte string.
18074 (char_bytes): Handle the case that C is a single byte char or has
18075 modifier bits.
18076
18077 * charset.h (CHAR_BYTES): If C has modifier bits, return 1.
18078
18079 * cmds.c (internal_self_insert): If C has modifier bits, insert
18080 appropriate one byte char.
18081
180821998-11-25 Richard Stallman <rms@psilocin.ai.mit.edu>
18083
18084 * fns.c (Fstring_as_unibyte, Fstring_as_multibyte):
18085 Clear text properties in the new string.
18086
180871998-11-24 Felix Lee <flee@cygnus.com>
18088
18089 * process.c (read_process_output): Call signal_after_change.
18090
180911998-11-24 Richard Stallman <rms@psilocin.ai.mit.edu>
18092
18093 * buffer.c (syms_of_buffer): Doc fix.
18094
18095 * keyboard.c (syms_of_keyboard): Doc fix.
18096
180971998-11-22 Richard Stallman <rms@psilocin.ai.mit.edu>
18098
18099 * frame.c (Fset_mouse_position): Doc fix.
18100
181011998-11-20 Richard Stallman <rms@psilocin.ai.mit.edu>
18102
18103 * keymap.c (Fmake_keymap): Doc fix.
18104
181051998-11-17 Kenichi Handa <handa@etl.go.jp>
18106
18107 * category.c (word_boundary_p): If C1 or C2 are composite
18108 characters, test their first components.
18109
181101998-11-16 Richard Stallman <rms@sucrose.ai.mit.edu>
18111
18112 * window.c (temp_output_buffer_show): Around temp-buffer-show-hook,
18113 don't do save-excursion, just restore selected window.
18114
18115 * window.c (window_loop): For UNSHOW_BUFFER,
18116 always do consider minibuffer windows.
427ec082 18117
26901792
DL
181181998-11-16 Kenichi Handa <handa@etl.go.jp>
18119
18120 * charset.h (SINGLE_BYTE_CHAR_P): Check if C is negative or not.
18121
18122 * charset.c (non_ascii_char_to_string): If C is negative, signal error.
18123
18124 * lisp.h (CHAR_TABLE_REF): Check if IDX is negative or not.
18125
18126 * s/bsdos4.h: New file.
18127
181281998-11-16 Kenichi Handa <handa@etl.go.jp>
18129
18130 * Makefile.in (abbrev.o): Depend on charset.h
18131 (bytecode.o): Depend on charset.h.
18132
18133 * bytecode.c: Include charset.h.
18134
18135 * abbrev.c: Include charset.h.
18136
18137 * syntax.h (SYNTAX_ENTRY_INT): For a composite character, check
18138 the first component.
18139
181401998-11-13 Ehud Karni <ehud@unix.simonwiesel.co.il>
18141
18142 * m/aviion-intel.h (LIBS_MACHINE): Delete redundant definition.
18143
181441998-11-11 Richard Stallman <rms@gnu.org>
18145
18146 * xterm.c (XTread_socket): Fix previous change in case F == 0.
18147
18148 * s/dgux5-4-3.h (BSD_PGRPS): Add #undef.
18149
18150 * s/dgux4.h (BROKEN_FIONREAD): #undef commented out.
18151 (INTERRUPT_INPUT): #define commented out.
18152
18153 * m/aviion-intel.h: New file.
18154
181551998-11-11 Eli Zaretskii <eliz@delysid.gnu.org>
18156
18157 * fns.c (MAX_ALLOCA): New macro.
18158 (Fbase64_encode_region, Fbase64_encode_string,
18159 Fbase64_decode_region, Fbase64_decode_string): Don't allocate
18160 more than MAX_ALLOCA bytes with alloca; otherwise use xmalloc.
18161
181621998-11-11 Ken'ichi Handa <handa@delysid.gnu.org>
18163
18164 * insdel.c (byte_combining_error): Error message improved.
18165
18166 * charset.c (char_valid_p): Handle a composite character correctly.
18167
181681998-11-11 Kenichi Handa <handa@etl.go.jp>
18169
18170 * charset.c (str_cmpchar_id): Check the byte sequence for
18171 composition more rigidly.
18172 (Fcompose_string): Allow DEL to be composed. Signal error if STR
18173 contains an invalid multibyte sequence.
18174
18175 * xterm.c (x_list_fonts): Don't change the value of maxnames.
18176
181771998-11-10 Andrew Innes <andrewi@harlequin.co.uk>
18178
18179 * w32term.h (struct w32_display_info): New element faked_key.
427ec082
SS
18180 (WM_EMACS_SETKEYBOARDLAYOUT):
18181 (WM_EMACS_REGISTER_HOT_KEY):
26901792 18182 (WM_EMACS_UNREGISTER_HOT_KEY): New message definitions.
427ec082
SS
18183 (LEFT_WIN_PRESSED):
18184 (RIGHT_WIN_PRESSED):
26901792
DL
18185 (APPS_PRESSED): New console keyboard modifier flags.
18186
18187 * w32term.c (convert_to_key_event): Removed.
18188 (is_dead_key): Copied to w32fns.c.
18189 (w32_read_socket): Generate language_change_event. Modify to work
18190 with keyboard handling changes in w32_wnd_proc.
18191
18192 * w32proc.c (sys_kill): Set extended key flag when faking
18193 Ctrl-Break keystrokes.
18194 (Fw32_get_locale_info): Allow LONGFORM parameter to specify an
18195 arbitrary locale property using a numerical index.
18196 (Vw32_valid_codepages): New variable.
427ec082
SS
18197 (enum_codepage_fn):
18198 (Fw32_get_valid_codepages):
18199 (Fw32_get_console_codepage):
18200 (Fw32_set_console_codepage):
18201 (Fw32_get_console_output_codepage):
18202 (Fw32_set_console_output_codepage):
18203 (Fw32_get_codepage_charset):
18204 (Fw32_get_valid_keyboard_layouts):
18205 (Fw32_get_keyboard_layout):
26901792
DL
18206 (Fw32_set_keyboard_layout): New functions, exposing Windows locale
18207 handling functions.
18208 (syms_of_ntproc): Register them.
18209
18210 * w32inevt.c: Include w32term.h and w32heap.h.
18211 (map_keypad_keys):
18212 (Vw32_enable_caps_lock):
18213 (Vw32_enable_num_lock):
18214 (Vw32_pass_lwindow_to_system):
18215 (Vw32_pass_rwindow_to_system):
18216 (Vw32_lwindow_modifier):
18217 (Vw32_rwindow_modifier):
18218 (Vw32_apps_modifier):
18219 (Vw32_scroll_lock_modifier):
18220 (w32_key_to_modifier): Add externs.
18221 (w32_kbd_mods_to_emacs): Recognize Windows keys, Apps key, and
18222 Scroll Lock as potential modifiers; exclude numpad keys from
18223 effect by CapsLock; act on Vw32_enable_caps_lock; remove obsolete
18224 code.
18225 (is_dead_key): Copy from w32fns.c.
18226 (w32_kbd_patch_key): Comment attempt to improve handling of
18227 dead-keys, and system bug relating to same on Windows NT. Work
18228 around the bug by calling ToUnicode and then converting to the
18229 correct codepage.
18230 (map_virt_key): Removed obsolete variable.
18231 (lispy_function_keys): Add extern.
18232 (key_event): Major rework of keyboard input handling: optionally
18233 recognize Windows keys and Apps key as modifiers; optionally treat
18234 NumLock, CapsLock and ScrollLock as function keys; let system
18235 translate keystrokes to characters to avoid system bugs relating
18236 to dead-key handling; preserve shift distinction for control
18237 characters. Remove some obsolete code.
18238
18239 * makefile.nt ($(BLD)\w32inevt.obj): Add dependencies on w32term.h
18240 and w32heap.h.
18241
18242 * w32fns.c (Vw32_pass_optional_keys_to_system): Variable removed.
18243 (Vw32_pass_lwindow_to_system):
18244 (Vw32_pass_rwindow_to_system):
18245 (Vw32_lwindow_modifier):
18246 (Vw32_rwindow_modifier):
18247 (Vw32_apps_modifier):
18248 (Vw32_enable_num_lock):
18249 (Vw32_enable_caps_lock):
18250 (Vw32_scroll_lock_modifier): New variables.
18251 (modifier_set): Return toggle state for Scroll Lock.
18252 (w32_key_to_modifier): New function. Returns chosen modifier bit
18253 for given key.
18254 (w32_get_modifiers): Returns modifier flags for
18255 non-keyboard input events.
18256 (construct_console_modifiers): Renamed from construct_modifiers;
18257 recognize Windows and Apps keys as modifiers.
18258 (w32_get_key_modifiers): New function. Returns modifier flags for
18259 keyboard input events.
18260 (map_keypad_keys): Make non-static. Use second arg as extended
18261 flag.
18262 (w32_grabbed_keys): New variable.
18263 (HOTKEY, HOTKEY_ID, HOTKEY_VK_CODE, HOTKEY_MODIFIERS): New macros.
18264 (register_hot_keys):
18265 (unregister_hot_keys):
18266 (lookup_vk_code):
18267 (w32_parse_hot_key):
18268 (Fw32_register_hot_key):
18269 (Fw32_unregister_hot_key):
18270 (Fw32_registered_hot_keys):
18271 (Fw32_reconstruct_hot_key): New functions to support hotkeys.
18272 (post_character_message): New function.
18273 (w32_msg_pump): Handle new messages for using hotkeys and changing
18274 keyboard layout/language.
18275 (w32_wnd_proc): Major rework of keyboard input handling:
18276 optionally recognize Windows keys and Apps key as modifiers;
18277 optionally treat NumLock, CapsLock and ScrollLock as function
18278 keys; let system translate keystrokes to characters to avoid
18279 system bugs relating to dead-key handling; preserve shift
18280 distinction for control characters; forward keyboard
18281 layout/language changes to lisp; detect and convert hot-key events
18282 to normal keystrokes.
18283 (syms_of_w32fns): Register new functions and variables.
18284 (w32_last_error): New function for use in debugging.
18285
182861998-11-10 Kenichi Handa <handa@etl.go.jp>
18287
18288 * category.h (CATEGORY_SET): Adjusted for the change of
18289 cmpchar_component.
18290 (CATEGORY_SET): Likewise.
18291
18292 * charset.c (cmpchar_component): New arg NOERROR. Check
18293 composition char ID more strictly.
18294 (Fcmpchar_component): Call cmpchar_component with NOERROR arg zero.
18295 (Fcmpchar_cmp_rule): If CHARACTER should be composed relatively,
18296 return 255.
18297 (Fcompose_string): Signal error if STR contains a rule-based
18298 composition character.
18299
18300 * charset.h (cmpchar_component): Proto-type adjusted.
18301
183021998-11-09 Kenichi Handa <handa@etl.go.jp>
18303
18304 * charset.c (string_to_non_ascii_char): Return correct length for
18305 a charset of dimension 2 and composition character.
18306
183071998-11-08 Richard Stallman <rms@sucrose.ai.mit.edu>
18308
18309 * keymap.c (Fsingle_key_description): Handle generic characters.
18310
18311 * process.c (Fprocess_status): Doc fix.
18312
183131998-11-06 Ken'ichi Handa <handa@delysid.gnu.org>
18314
18315 * charset.c (init_charset_once): Fix previous change.
18316
183171998-11-06 Kenichi Handa <handa@etl.go.jp>
18318
18319 * charset.c (string_to_non_ascii_char): Fix previous change.
18320 (char_valid_p): Check the validity of CHARSET by CHARSET_DEFINED_P.
18321
18322 * charset.h (SPLIT_NON_ASCII_CHAR): Check dimension of an invalid
18323 character correctly.
18324 (STRING_CHAR): Handle an invalid charater correctly.
18325
183261998-11-05 Kenichi Handa <handa@etl.go.jp>
18327
18328 * charset.c (string_to_non_ascii_char): Fix previous change.
18329
18330 * charset.h (MAKE_NON_ASCII_CHAR): Check validity of CHARSET.
18331
18332 * editfns.c (Fstring_to_char): Don't return a multibyte character
18333 if STRING is a unibyte string.
18334
18335 * indent.c (MULTIBYTE_BYTES_WIDTH): Check validity of a multibyte
18336 character.
18337
18338 * xdisp.c (display_text_line): Check validity of a multibyte character.
18339 (display_string): Likewise. Handle an invalid character correctly.
18340
183411998-11-05 Karl Heuer <kwzh@gnu.org>
18342
18343 * insdel.c (Fcombine_after_change_execute): Return nil, not junk.
18344 If nothing to do, return immediately.
18345 (syms_of_insdel): Initialize combine_after_change_buffer.
18346
183471998-11-05 Richard Stallman <rms@gnu.org>
18348
18349 * xterm.c (XTread_socket): ButtonPress clears f->mouse_moved.
18350
183511998-11-04 Geoff Voelker <voelker@cs.washington.edu>
18352
18353 * w32term.c (w32_enable_unicode_output): Rename from
18354 w32_no_unicode_output.
18355 (w32_use_unicode_for_codepage, syms_of_w32term): Use new name
18356 and new semantics.
18357
183581998-11-04 Jason Rumney <jasonr@altavista.net>
18359
18360 * w32fns.c (w32_list_fonts): Report an error if a frame has not
18361 been created yet.
18362
18363 * w32term.c (dumpglyphs): Use FRAME_FONT for w32_fill_area.
18364
183651998-11-04 Kenichi Handa <handa@etl.go.jp>
18366
18367 * charset.c (string_to_non_ascii_char): Change the check for the
18368 varidity of multibyte form.
18369 (update_charset_table): Check validity of BYTES. Don't set
18370 bytes_by_char_head here.
18371 (init_charset_once): Set bytes_by_char_head completely.
18372
18373 * frame.c (do_switch_frame): Cancel previous change.
18374
18375 * print.c (print_string): Check validity of a character.
18376 (print): Likewise.
18377
18378 * sysdep.c [nec_ews_svr4]: Extern *_sobuf.
18379
18380 * m/ews4800.h, s/ux4800.h: New files.
18381
183821998-11-03 Theodore Jump <tjump@tertius.com>
18383
18384 * makefile.nt: Compile multiple source files when possible.
18385
18386 * w32faces.c (Qmouse_face): Replace definition with extern decl.
427ec082 18387
26901792
DL
183881998-11-03 Andrew Innes <andrewi@delysid.gnu.org>
18389
18390 * w32.c (stat): GetFileInformationByHandle can legitimately fail,
18391 so don't rely on it succeeding.
18392
18393 * w32fns.c (x_to_w32_font): Specify DEFAULT_CHARSET in the w32
18394 LOGFONT struct if x font doesn't specify the charset.
18395 (x_to_w32_charset): Change >= to == when testing results of
18396 stricmp.
18397
183981998-11-02 Richard Stallman <rms@sucrose.ai.mit.edu>
18399
18400 * fns.c (Frequire): New arg NOERROR.
18401
184021998-11-02 Andrew Innes <andrewi@harlequin.co.uk>
18403
18404 * fileio.c (Fsubstitute_in_file_name) [DOS_NT]: Fix typo.
18405
184061998-10-31 Richard Stallman <rms@psilocin.ai.mit.edu>
18407
18408 * xfaces.c (Qmouse_face): Replace definition with extern decl.
18409 (syms_of_xfaces): Initialization deleted.
18410
18411 * textprop.c (Qmouse_face): Variable definition moved here.
18412 (syms_of_textprop): Initialize it.
18413
18414 * data.c (set_internal): For built-in maybe-local vars,
18415 when BINDFLAG is set, do not mark them as local.
18416
184171998-10-31 Ken'ichi Handa <handa@delysid.gnu.org>
18418
18419 * insdel.c (replace_range): Fix previous change.
18420
184211998-10-31 Kenichi Handa <handa@etl.go.jp>
18422
18423 * editfns.c (Fsubst_char_in_region): Fix previous change.
18424 (Ftranslate_region): Fix previous change.
18425
18426 * fns.c (Fbase64_decode_region): Fix previous change.
18427
18428 * frame.c (do_switch_frame): Update minibuf_window if necessary.
18429
18430 * insdel.c (byte_combining_error): New function.
18431 (CHECK_BYTE_COMBINING_FOR_INSERT): Call byte_combining_error.
18432 (insert_from_string_1): Set *(GPT_ADDR) to 0 before calling
18433 CHECK_BYTE_COMBINING_FOR_INSERT.
18434 (insert_from_buffer_1): Likewise.
18435 (adjust_after_replace): Check the posibility of inhibitted byte
18436 combining correctly.
18437 (replace_range): Before signaling an error for inhibitted byte
18438 combining, recover the buffer in a safe state.
18439 (del_range_2): Check the posibility of inhibitted byte combining
18440 correctly.
18441
184421998-10-30 Andreas Schwab <schwab@delysid.gnu.org>
18443
18444 * xselect.c (Vselection_coding_system): Doc fix.
18445
18446 * fns.c (Fbase64_encode_region): Use SET_PT_BOTH instead of SET_PT
18447 when we have both char and byte position. Fix type clashes.
18448
18449 * eval.c (Fsignal): Use a separate format string when passing
18450 error message string to fatal, in case it contains %'s.
18451
18452 * editfns.c (Fchar_after): Fix type clashes.
18453
18454 * charset.c (Fchar_bytes): Doc fix.
18455 (char_bytes): Fix returned value to match returned type.
18456 (syms_of_charset): Fix type clash in initialisation of
18457 Vauto_fill_chars.
18458
184591998-10-29 Geoff Voelker <voelker@cs.washington.edu>
18460
18461 * w32console.c (initialize_w32_display): Use buffer coords
18462 instead of buffer size (which may be larger than the window).
18463
18464 * fileio.c (init_fileio_once): New function.
18465
18466 * emacs.c (main): Invoke init_fileio_once.
18467
184681998-10-28 Paul Eggert <eggert@twinsun.com>
18469
18470 * xterm.c (XTread_socket): Check the returned value of
18471 XmbLookupString more carefully.
18472
184731998-10-28 Kenichi Handa <handa@etl.go.jp>
18474
18475 * coding.c (DECODE_CHARACTER_ASCII): Check validity of inserted code.
18476 (DECODE_CHARACTER_DIMENSION1): Likewise.
18477 (DECODE_CHARACTER_DIMENSION2): Likewise.
18478 (decode_coding_sjis_big5): Check the 2nd byte of SJIS correctly.
18479
18480 * editfns.c (Fsubst_char_in_region): Fix previous change.
18481 (Ftranslate_region): Fix previous change.
18482
18483 * insdel.c (check_markers): Check if markers are at character boundry.
18484 (adjust_markers_for_insert): Fix previous change.
18485 (count_combining_before): Don't limit the check at BEGV.
18486 (count_combining_after): Don't limit the check at ZV.
18487 (CHECK_BYTE_COMBINING_FOR_INSERT): New macro.
18488 (insert_1_both): Call CHECK_BYTE_COMBINING_FOR_INSERT.
18489 (insert_from_string_1): Likewise.
18490 (insert_from_buffer_1): Likewise.
18491 (adjust_after_replace): Inhibit bytes combined across region
18492 boundary. Update end_unchanged correctly.
18493 (replace_range): Call CHECK_BYTE_COMBINING_FOR_INSERT. Update
18494 end_unchanged correctly.
18495 (del_range_2): Inhibit bytes combined across region boundary.
18496 Update end_unchanged correctly.
18497
184981998-10-27 Geoff Voelker <voelker@cs.washington.edu>
18499
18500 * w32.c (check_windows_init_file): Also look in load path specified
18501 in environment.
18502
18503 * w32console.c (Fset_message_beep): Recognize 'silent.
18504 (w32_sys_ring_bell): Do nothing for the 'silent sound.
427ec082 18505
26901792
DL
18506 * w32fns.c (w32_color_map_lookup): Remove duplicate definition.
18507
18508 * w32select.c (Vnext_selection_coding_system): New variable.
18509 (syms_of_w32select): DEFVAR_LISP it.
18510 (Fw32_set_clipboard_data): Use Vnext_selection_coding_system if
18511 non-nil. Always convert multibyte strings.
18512 (Fw32_get_clipboard_data): Use Vnext_selection_coding_system if
18513 non-nil. Always convert a string that includes non-ASCII characters.
427ec082 18514
26901792
DL
185151998-10-27 Richard Stallman <rms@psilocin.ai.mit.edu>
18516
18517 * fns.c (Fbase64_decode_string): Doc fix.
18518 (Fbase64_decode_region, Fbase64_encode_string Fbase64_encode_region):
18519 Likewise.
18520
185211998-10-27 Dave Love <fx@gnu.org>
18522
18523 * fns.c (Fbase64_decode_region, Fbase64_encode_region): Fix
18524 newline in doc string.
18525
185261998-10-27 Kenichi Handa <handa@etl.go.jp>
18527
18528 * editfns.c (Fsubst_char_in_region): Correctly handle the case
18529 that byte combining before happens.
18530 (Ftranslate_region): Likewise.
18531
18532 * insdel.c (adjust_after_replace): Correctly handle the case that
18533 both byte combining before and byte combining after happen.
18534 (replace_range): Likewise.
18535
185361998-10-26 Kenichi Handa <handa@etl.go.jp>
18537
18538 * category.c (syms_of_category): Doc-string modified.
18539
18540 * coding.c (code_convert_region): Kill the work buffer created by
18541 pre-write-conversion.
18542
185431998-10-25 Jason Rumney <jasonr@altavista.net>
18544
18545 * emacs.c (main) [HAVE_NTGUI]: Invoke syms_of_fontset().
18546
185471998-10-23 Kenichi Handa <handa@etl.go.jp>
18548
18549 * coding.c (code_convert_region): While preserving the orignal
18550 point, pay attention to the byte combining problem.
18551
18552 * fns.c (Fbase64_decode_region): Pay attention to the byte
18553 combining problem.
18554
18555 * insdel.c (adjust_markers_for_insert): Adjust markers by taking
18556 combined_before_bytes and combined_after_bytes into account.
18557 (count_combining_after): Handle the case that LENGTH is zero.
18558 (adjust_after_replace): Record deletion at correct buffer
18559 position. Handle the case that LEN is zero.
18560 (replace_range): Record deletion at correct buffer position.
18561 (del_range_2): Call adjust_makers_for_replace to adjust makers for
18562 combined bytes.
18563
185641998-10-21 Richard Stallman <rms@psilocin.ai.mit.edu>
18565
18566 * alloc.c (Fgarbage_collect): Block input around most of the function.
427ec082 18567
26901792
DL
185681998-10-21 Kenichi Handa <handa@etl.go.jp>
18569
18570 * coding.c (setup_coding_system): Fix setting up
18571 coding->spec.ccl.valid_codes for CCL based coding system.
18572 (code_convert_region): Set point to FROM before inserting the
18573 result of pre-write-funciton. Preserve original point.
18574 (code_convert_string): If coding->type is coding_type_ccl, do
18575 conversion even if the length of conversion region is zero.
18576
18577 * fontset.c: Include frame.h before fontset.h.
427ec082 18578 (list_fonts_func): Fix prototype.
26901792
DL
18579
18580 * frame.c: Include frame.h before fontset.h.
18581
18582 * xterm.c: Likewise.
18583
185841998-10-21 Jason Rumney <jasonr@altavista.net>
18585
18586 * x-list-font.c (Fx_list_fonts): Access frame parameters throught
18587 general macros. Don't call x_list_font directory, instead call a
18588 function set in list_fonts_func.
18589
18590 * fontset.h (list_fonts_func): Fix prototype.
18591
185921998-10-20 Jason Rumney <jasonr@altavista.net>
18593
18594 * makefile.nt (w32fns.c): Add x-list-font.c to dependancies.
18595
18596 * w32faces.c: Update comments referring to obsolete structs.
18597 (allocate_face, copy_face, face_eql, load_font,
18598 Fpixmap_spec_p, free_frame_faces, new_computed_face,
18599 frame_update_line_height, merge_faces, compute_base_face,
18600 Fset_face_attribute_internal): Use fontset support based on xfaces.c.
18601
18602 * w32fns.c: (Vx_pixel_size_width): New global variable.
18603 (unibyte_display_via_language_environment): New global variable.
18604 (x_set_font): Add support for setting fontsets.
18605 (Fx_create_frame): Add check_w32(). Initialize fontsets. Fix
18606 font names to match xlfd-tight-regexp.
18607 (w32_load_font): Rewrite based on x_load_font.
18608 (x_to_w32_charset, w32_to_x_charset): Add character sets. Use
18609 `iso8859-1' rather than `ansi'.
18610 (w32_to_x_font): Remove `-' from font name. Remove the `-' off the
18611 end. Move charset into `charset registry' field.
18612 (enum_font_cb2): Check charsets match. Include width in font list.
18613 (w32_list_fonts): Rewrite based on x_list_fonts.
18614 Moved from w32term.c to have access to enumfont_t struct.
18615 (Fx_list_fonts): w32 specific version eliminated. Include
18616 `x-list-fonts.c'.
18617 (w32_get_font_info, w32_query_font, w32_find_ccl_program): New
18618 functions for fontset support - adapted from x_ equivalents.
18619 (syms_of_w32fns): New lisp variables initialised. Function
18620 pointers for fontset.c set up.
18621
427ec082 18622 * w32term.c: Include fontset.h. Define codepage macros.
26901792
DL
18623 Add ENCODE_BIG5 macro from coding.c.
18624 (w32_no_unicode_output): New variable.
18625 (w32_codepage_for_charset, w32_use_unicode_for_codepage): New
18626 functions.
18627 (BUILD_WCHAR_T, BYTE1, BYTE2): New macros.
18628 (dumpglyphs): Rewrite based on xterm.c equivalent.
18629 (x_new_font): Use functionality provided in fontset.c.
18630 (x_new_fontset): New function based on the one in xterm.c.
18631 (syms_of_w32term): Add w32-no-unicode-output flag.
18632
427ec082 18633 * w32term.h: Remove redundant font_info struct definition.
26901792
DL
18634 (Vx_pixel_size_width_font_regexp,
18635 unibyte_display_via_language_environment): Declare variables.
427ec082 18636 (w32_list_fonts, w32_get_font_info, w32_query_font, w32_load_font):
26901792
DL
18637 Declare functions.
18638 (w32_output): New fields font_baseline and fontset.
18639 (FRAME_FONTSET, FRAME_W32_FONT_TABLE): New macros.
18640
18641 * w32xfns.c: Include charset.h and fontset.h.
18642
186431998-10-20 Richard Stallman <rms@psilocin.ai.mit.edu>
18644
18645 * syntax.c (syms_of_syntax): Fix the setup of Qscan_error.
18646
186471998-10-20 Eli Zaretskii <eliz@mescaline.gnu.org>
18648
18649 * msdos.c (mouse_init): Reset the button press/release info of the
18650 mouse driver.
18651 (mouse_preempted): New variable.
18652 (dos_rawgetc): Don't generate mouse events if mouse is preempted.
18653 (XMenuActivate): Preempt the mouse during menu-handling loop.
18654 Release the current time slice while idling in the menu-handling
18655 loop. Leave the loop only if the user pressed, then released the
18656 same button. Discard all mouse events that are pending in the
18657 event queue before exiting.
18658
186591998-10-19 Richard Stallman <rms@psilocin.ai.mit.edu>
18660
18661 * editfns.c (Fformat): Increase buffer size for floating format.
18662
186631998-10-17 Kenichi Handa <handa@etl.go.jp>
18664
18665 * charset.c (Vauto_fill_chars, Qauto_fill_chars): New variables.
18666 (syms_of_charset): Staticpro and initialize Qauto_fill_chars.
18667 Declare auto-fill-chars as a Lisp variable and initialize it.
18668
18669 * charset.h (Vauto_fill_chars): Extern it.
18670
18671 * cmds.c (internal_self_insert): Check Vauto_fill_chars.
18672
186731998-10-16 Kenichi Handa <handa@etl.go.jp>
18674
18675 * casefiddle.c (casify_object): Use make_string instead of
18676 make_specified_string to cope with byte-combining situation.
18677
18678 * coding.c (decode_coding_iso2022): Set coding->fake_multibyte to
18679 1 when encountered with a code of the range 0x80..0x9F.
18680
186811998-10-14 Eli Zaretskii <eliz@mescaline.gnu.org>
18682
18683 * callproc.c (Fcall_process) [MSDOS]: Use $TMPDIR instead of
18684 trying $TMP and $TEMP, since the former is always set in msdos.c.
18685 (Fcall_process_region) [DOS_NT]: When looking for a place to put
18686 the temporary files, check $TMPDIR as well.
18687
186881998-10-14 Richard Stallman <rms@psilocin.ai.mit.edu>
18689
427ec082 18690 * process.c (exec_sentinel, read_process_output):
26901792
DL
18691 Restore waiting_for_user_input_p after running Lisp code.
18692
18693 * keyboard.c (parse_menu_item): Avoid initialization for Lisp_Object.
18694 (command_loop): Likewise.
18695
186961998-10-14 Kenichi HANDA <handa@etl.go.jp>
18697
18698 * data.c (Faset): Fix previous change.
18699
18700 * fns.c (Ffillarray): Fix previous change.
18701
18702 * insdel.c (adjust_markers_for_combining): This function deleted.
18703 (adjust_markers_for_replace): Correctly adjust marker positions.
18704 Don't record these adjustment because they were recorded already.
18705 (combine_bytes): Don't adjust markers here.
18706
187071998-10-13 Richard Stallman <rms@psilocin.ai.mit.edu>
18708
18709 * minibuf.c (Fdisplay_completion_list): Put on mouse-face properties.
18710
187111998-10-12 Richard Stallman <rms@psilocin.ai.mit.edu>
18712
18713 * keyboard.c (Fclear_this_command_keys): New function.
18714 (syms_of_keyboard): defsubr it.
18715
18716 * macros.c (Fexecute_kbd_macro): Set real_this_command.
18717
187181998-10-12 Kenichi Handa <handa@etl.go.jp>
18719
18720 * ccl.c (CCL_DECODE_SJIS, CCL_ENCODE_SJIS): Swap the definitions.
18721
18722 * charset.c (Fstring): Call make_string instead of
18723 make_string_from_bytes.
18724 (Ffind_charset_region): Include `composition' in the returned list
18725 if the region contains any composite characters.
18726 (Ffind_charset_string): Include `composition' in the returned list
18727 if the string contains any composite characters.
18728 (find_charset_in_str): Handle CMPCHARP arg correctly.
18729
18730 * coding.c (shrink_decoding_region): If a charset other than ascii
18731 is initially designated to G0, don't shrink the region.
18732 (shrink_encoding_region): Likewise.
18733
18734 * data.c (Faset): If ARRAY is a multibyte string, pay attention to
18735 byte-combining situation.
18736
18737 * fns.c (clear_string_char_byte_cache): New function.
18738 (Ffillarray): Handle multibyte string correctly.
18739
18740 * lisp.h (clear_string_char_byte_cache): Extern it.
18741
18742 * xselect.c (lisp_data_to_selection_data): Call
18743 find_charset_in_str with CMPCHARP arg 0.
18744 * w16select.c (Fw16_set_clipboard_data): Likewise.
18745 * w32select.c (Fw32_set_clipboard_data): Likewise.
18746
187471998-10-11 Richard Stallman <rms@psilocin.ai.mit.edu>
18748
18749 * keyboard.c (parse_menu_item): For top level of menu bar,
18750 accept ordinary commands, and treat them just like a keymap.
18751
187521998-10-11 Richard Stallman <rms@sucrose.ai.mit.edu>
18753
18754 * xdisp.c (redisplay_window): Clear w->window_end_valid
18755 before running the window-scroll-functions hook, if appropriate.
18756
187571998-10-10 Richard Stallman <rms@psilocin.ai.mit.edu>
18758
18759 * data.c (Fstring_to_number): Don't recognize floating point
18760 if base is not 10.
18761
18762 * window.c (window_loop): New alternative CHECK_ALL_WINDOWS.
18763 (check_all_windows): New function for debugging tests.
18764 (syms_of_window): Initialize it.
18765
18766 * window.c (Qwindow_configuration_p): New variable.
18767 (Fwindow_configuration_frame): New function.
18768 (syms_of_window): defsubr it.
18769 (Fset_window_configuration): Return t if frame is live.
18770 Use Qwindow_configuration_p.
18771
18772 * xfns.c (check_x_display_info): Don't use selected_frame
18773 if it is dead.
18774
187751998-10-09 Geoff Voelker <voelker@cs.washington.edu>
18776
18777 * w32fns.c (x_create_bitmap_from_file): Skip special files.
18778
187791998-10-08 Kenichi Handa <handa@etl.go.jp>
18780
18781 * buffer.h (inhibit_modification_hooks): Extern it.
18782
18783 * buffer.c (inhibit_modification_hooks): New variable.
18784 (init_buffer_once): Initialize inhibit_modification_hooks to 0.
18785
18786 * charset.c (invalid_character): Prepend `0' to octal
18787 representation. Give error sufficient args.
18788
18789 * coding.c (code_convert_region): Set inhibit_modification_hooks
18790 to 1 before calling Fset_text_properties.
18791
18792 * insdel.c (signal_before_change): If inhibit_modification_hooks
18793 is nonzero, do nothing.
18794 (signal_after_change): Likewise.
18795
187961998-10-08 Emilio Lopes <Emilio.Lopes@Physik.TU-Muenchen.DE>
18797
18798 * process.c: Doc fixes.
18799
188001998-10-08 Richard Stallman <rms@sucrose.ai.mit.edu>
18801
18802 * syntax.c (scan_lists): Bring FROM back into range BEGV...ZV.
18803
188041998-10-07 Geoff Voelker <voelker@cs.washington.edu>
18805
18806 * w32.c (init_ntproc): Check for Windows init file.
18807 (term_ntproc): Do not check for it here.
18808
188091998-09-28 Kenichi Handa <handa@etl.go.jp>
18810
18811 * coding.c (check_composing_code): Fix previous change. Now it
18812 alwasy returns 0 or -1.
18813 (decode_coding_iso2022): Adjusted for the above change.
18814 (encode_coding_iso2022): When encoding the last block, flush out
18815 tailing garbage bytes.
18816 (setup_coding_system): Delete unnecessary code.
18817 (shrink_decoding_region): Check translation table. If ASCII
18818 should be translated, give up shrinking.
18819 (shrink_encoding_region): Likewise.
18820 (SHRINK_CONVERSION_REGION_THRESHHOLD): New macro.
18821 (SHRINK_CONVERSION_REGION): New macro.
18822 (code_convert_region): Call SHRINK_CONVERSION_REGION. Delete text
18823 properties here.
18824 (code_convert_region): In the case of encoding, always calulate
18825 correct character number.
18826 (code_convert_string): Call SHRINK_CONVERSION_REGION.
18827 (code_convert_region1): Don't delete text properties here.
18828
18829 * insdel.c (adjust_after_replace): Don't delete text properties here.
18830
18831 * term.c (encode_terminal_code): Handle raw 8-bit codes correctly.
18832
188331998-09-27 Richard Stallman <rms@psilocin.ai.mit.edu>
18834
18835 * emacs.c (sort_args): Fill extra space with NULL ptrs.
18836
188371998-09-26 Kenichi Handa <handa@etl.go.jp>
18838
18839 * coding.h (struct coding_system): New member composed_chars.
18840
18841 * coding.c (check_composing_code): If the current composing
18842 sequence doesn't end properly, return -1.
18843 (DECODE_CHARACTER_ASCII): Update coding->composed_chars.
18844 (DECODE_CHARACTER_DIMENSION1): Likewise.
18845 (decode_coding_iso2022): Check validity of a composing sequence.
18846 (code_convert_string): If the length of text to be converted is
18847 shrunk to zero, don't perform code conversion.
18848 (shrink_decoding_region): Fix previous change.
18849
18850 * editfns.c (Fformat): Check format control characters.
18851
188521998-09-25 Kenichi Handa <handa@etl.go.jp>
18853
18854 * coding.c (decode_eol): While decoding DOS-like eol, handle a
18855 single CR code correctly.
18856 (shrink_decoding_region) <CODING_CATEGORY_IDX_ISO_7 or
18857 CODING_CATEGORY_IDX_ISO_7_TIGHT>: Skip also 8-bit codes.
18858
188591998-09-23 Geoff Voelker <voelker@cs.washington.edu>
18860
18861 * w32fns.c (w32_color_map_lookup): New function.
18862 (x_to_w32_color): Approximate colors ending in numbers if necessary.
18863
188641998-09-22 Kenichi Handa <handa@etl.go.jp>
18865
18866 * ccl.c (ccl_driver): Report correct CCL program counter on error.
18867
18868 * xmenu.c (single_submenu) [! HAVE_MULTILINGUAL_MENU]: Make
18869 strings unibyte.
18870 (xmenu_show) [! HAVE_MULTILINGUAL_MENU]: Likewise.
18871
188721998-09-22 Kenichi Handa <handa@etl.go.jp>
18873
18874 * callint.c (Fcall_interactively): Don't use input method when
18875 reading a character in the case of `c' code letter.
18876
188771998-09-21 Dave Love <fx@gnu.org>
18878
18879 * editfns.c (Fsave_restriction): Doc fix.
18880
188811998-09-21 Richard Stallman <rms@gnu.org>
18882
18883 * lread.c (build_load_history): Do add to Vload_history
18884 even when dumping Emacs.
18885
188861998-09-18 Kenichi Handa <handa@etl.go.jp>
18887
18888 * ccl.c (CCL_WRITE_CHAR): Don't use bcopy.
18889 (ccl_driver): If BUFFER-MAGNIFICATION of the CCL program is 0,
18890 cause error if the program is going to output some bytes. When
18891 outputing a string to notify an error, check the case that
18892 DST_BYTES is zero.
18893
427ec082 18894 * coding.h (CODING_FINISH_INTERRUPT): New macro.
26901792
DL
18895
18896 * coding.c (ccl_coding_driver): If ccl_driver is interrupted by a
18897 user or the CCL program executed an invalid command, return
18898 CODING_FINISH_INTERRUPT.
18899 (code_convert_region): Pay attention to the converters return
18900 value CODING_FINISH_NORMAL and CODING_FINISH_INTERRUPT.
18901
189021998-09-16 Kenichi Handa <handa@etl.go.jp>
18903
18904 * coding.c (code_convert_region): Update beg_unchanged and
18905 end_unchanged after we delete the source text.
18906
18907 * insdel.c (adjust_markers_for_replace): Don't adjust a byte
18908 position if it is FROM.
18909 (adjust_markers_for_combining): New function.
18910 (combine_bytes): Call adjust_markers_for_combining instead of
18911 adjust_markers_for_replace.
18912 (adjust_after_replace): Record deletion of combining after bytes
18913 with the correct position.
18914 (replace_range): Likewise. Record the actual deletion after
18915 recoding deletions of combining bytes.
18916
18917 * xdisp.c (message_log_check_duplicate): Count byte length of the
18918 latest message correctly.
18919
189201998-09-12 Richard Stallman <rms@gnu.org>
18921
18922 * xdisp.c (redisplay_internal): Use TEMP_SET_PT_BOTH
18923 instead of SET_PT_BOTH.
18924 (try_window_id, display_text_line): Likewise.
18925
189261998-09-12 Karl Heuer <kwzh@gnu.org>
18927
18928 * data.c (Fmake_local_variable): Doc fix.
18929
189301998-09-10 Dave Love <fx@gnu.org>
18931
18932 * print.c (Fwith_output_to_temp_buffer): Doc fix.
18933
189341998-09-10 Richard Stallman <rms@gnu.org>
18935
18936 * s/irix6-0.h (TIOCSIGSEND): Add #undef.
18937 (bcopy, bcmp, bzero): Add #undef.
18938
18939 * keyboard.c (command_loop_1): When switching to selected window's bfr,
18940 first exit if selected frame is dead (no live frames remain).
18941 (read_key_sequence): Likewise.
18942
189431998-09-10 Karl Heuer <kwzh@gnu.org>
18944
18945 * emacs.c (main): Mention --display and --eval in help.
18946
189471998-09-07 Paul Eggert <eggert@twinsun.com>
18948
18949 * editfns.c (emacs_memftime): New function.
18950 (Fformat_time_string): Use it to handle null bytes in formats
18951 correctly.
18952
189531998-09-08 Kenichi Handa <handa@etl.go.jp>
18954
18955 * charset.c (Ffind_charset_region): Optimization for unibyte buffer.
18956 (Ffind_charset_string): For unibyte string, return (ascii).
18957
18958 * editfns.c (Fsubst_char_in_region): Call replace_range with the
18959 arg MARKERS 1.
18960
18961 * insdel.c (adjust_after_replace): Don't add combining bytes to
18962 the args given to adjust_point. Handle correctly the case that
18963 there are both before and after combining bytes.
18964 (replace_range): Likewise.
18965
189661998-09-07 Lars Magne Ingebrigtsen <larsi@gnus.org>
18967
18968 * fns.c (base64_decode_1, base64_encode_1): New functions.
18969 (Fbase64_decode_string, Fbase64_encode_string): New functions.
18970 (Fbase64_decode_region, Fbase64_encode_region): New functions.
18971
189721998-09-07 Karl Heuer <kwzh@gnu.org>
18973
18974 * eval.c (error): After enlarging buffer, write to it, not to buf.
18975
18976 * fns.c (Fwidget_put): Return VALUE instead of garbage.
18977
189781998-09-07 Kenichi Handa <handa@etl.go.jp>
18979
18980 * charset.h (STRING_CHAR_AND_LENGTH): Return correct value in
18981 ACTUAL_LEN even if LEN is too short to have a valid multibyte form.
18982 (STRING_CHAR_AND_CHAR_LENGTH): Likewise.
18983
18984 * coding.c (ccl_coding_driver): Always calculate correct mulibyte
18985 chars in produced byte sequence.
18986 (Ffind_operation_coding_system): Doc-string fixed.
18987
18988 * insdel.c (count_combining_after): Check also preceding bytes at
18989 POS if all characters in STRING are not character head.
18990
189911998-09-06 Paul Eggert <eggert@twinsun.com>
18992
18993 * editfns.c (Fformat_time_string, Fdecode_time, Fcurrent_time_zone):
18994 Don't assume that localtime and gmtime return non-NULL.
18995
189961998-09-06 Lars Magne Ingebrigtsen <larsi@gnus.org>
18997
18998 * fns.c (Fbase64_decode_string, Fbase64_encode_string,
18999 base64_decode_1, Fbase64_decode_region, Fbase64_encode_region):
19000 New functions.
19001
190021998-09-06 Richard Stallman <rms@gnu.org>
19003
19004 * editfns.c (Fformat): Detect incomplete format spec at string's end.
19005
19006 * lread.c (Fload): Handle case where openp finds a magic file
19007 but it has no `load' handler or that handler calls `load'.
19008 If FOUND != FILE, find FOUND's handler even if inhibited for FILE.
19009
190101998-09-04 Dave Love <fx@gnu.org>
19011
19012 * buffer.c (enable-multibyte-characters): Doc fix.
19013
190141998-09-02 Geoff Voelker <voelker@cs.washington.edu>
19015
19016 * w32heap.c (allocate_heap): Define NTHEAP_PROBE_BASE by default.
19017
190181998-09-01 Kenichi Handa <handa@etl.go.jp>
19019
19020 * editfns.c (Ftranspose_regions): Use BYTE_POS_ADDR to get an
19021 address in buffer from byte-position.
19022
190231998-09-01 Eli Zaretskii <eliz@delysid.gnu.org>
19024
19025 * w16select.c (Vnext_selection_coding_system): New variable.
19026 (syms_of_win16select): DEFVAR_LISP it. No need to staticpro
19027 Vselection_coding_system.
19028 (Fw16_set_clipboard_data): Always convert multibyte strings. Use
19029 Vnext_selection_coding_system if non-nil.
19030 (Fw16_get_clipboard_data): Always convert a string that includes
19031 non-ASCII characters. Use Vnext_selection_coding_system if
19032 non-nil.
19033
190341998-08-31 Andrew Innes <andrewi@harlequin.co.uk>
19035
19036 * w32fns.c (w32_wnd_proc): Always zero button_state when releasing
19037 mouse capture.
19038
190391998-08-31 Kenichi Handa <handa@etl.go.jp>
19040
19041 * xterm.c (x_load_font): If SIZE is 0, don't use a name
19042 x_list_font returns.
19043
190441998-08-31 Paul Eggert <eggert@twinsun.com>
19045
19046 * lread.c (read1): Don't assume that atof ("-0.0") yields +0.0.
19047 Handle leading '-' uniformly for zeros, infinities, and NaNs.
19048
190491998-08-31 Eli Zaretskii <eliz@delysid.gnu.org>
19050
19051 * msdos.c (IT_cmgoto): When tracking echo area messages with the
19052 cursor, save and restore previous cursor position in the
19053 minibuffer.
19054
190551998-08-31 Kenichi Handa <handa@etl.go.jp>
19056
19057 * charset.c (unibyte_char_to_multibyte):
19058 Vnonacii_translation_table will convert a 7-bit charcater.
19059 (multibyte_char_to_unibyte): Handle the case that
19060 Vnonacii_translation_table converts a multibyte charcater to a
19061 unibyte charcter of less than 128.
19062 (init_charset_once): Initialize nonascii_insert_offset and
19063 Vnonacii_translation_table.
19064
19065 * coding.c (decode_coding): Even if SRC_BYTES is zero, try
19066 processing if CODING requires flushing.
19067 (encode_coding): Likewise.
19068 (code_convert_region): Likewise.
19069 (code_convert_string): Likewise.
19070
19071 * fns.c (concat): If Vnonascii_translation_table is non-nil, try
19072 to convert a character less than 160 to multibyte.
19073 * insdel.c (copy_text): Likewise.
19074 (count_size_as_multibyte): Likewise.
19075 * xterm.c (dumpglyphs): Likewise.
19076
190771998-08-29 Paul Eggert <eggert@twinsun.com>
19078
19079 * data.c (arith_driver, float_arith_driver): Compute (- x) by
19080 using negation, not subtraction; this makes a difference with
19081 IEEE floating point arithmetic (and also if integer arithmetic
19082 is ones' complement or signed-magnitude!).
19083
190841998-08-29 Karl Heuer <kwzh@gnu.org>
19085
19086 * xfns.c (x_create_bitmap_from_file): Fail immediately if magic.
19087
190881998-08-28 Ken'ichi Handa <handa@delysid.gnu.org>
19089
19090 * charset.c (Fchar_bytes): Add \n\ in doc-string.
19091
190921998-08-28 Paul Eggert <eggert@twinsun.com>
19093
19094 * s/sol2-4.h (NOT_USING_MOTIF): New macro.
19095 (LD_SWITCH_SYSTEM_TEMACS): Put /usr/dt/lib in the link library
19096 path only if we're not building with Motif.
19097
190981998-08-28 Kenichi Handa <handa@etl.go.jp>
19099
19100 * insdel.c (adjust_after_replace): Fix the code to record undo
19101 information for the case that `before combining' happens. Remove
19102 text properties which are added to the new text by
19103 offset_intervals.
19104
19105 * coding.c (code_convert_region1): Remove all text properties of
19106 the region.
19107
191081998-08-28 Kenichi Handa <handa@etl.go.jp>
19109
19110 * charset.h (CHAR_BYTES): New macro.
19111
19112 * charset.c (Fchar_bytes): Now always return 1.
19113 (char_bytes): New function.
19114
19115 * editfns.c (Fposition_bytes): If the arg POSITION is out of
19116 range, return nil.
19117 (Fbyte_to_position): If the arg BYTEPOS is out of range, return
19118 nil.
19119
19120 * data.c (Faset): Use macro CHAR_BYTES instead of Fchar_bytes.
19121 * fns.c (concat): Likewise.
19122 * insdel.c (count_size_as_multibyte): Likewise.
19123 * xdisp.c (message_dolog): Likewise.
19124
191251998-08-27 Kenichi Handa <handa@etl.go.jp>
19126
19127 * coding.c (detect_coding_iso2022): Handle ESC N and ESC O
19128 correctly. They are for SS2 and SS3 respectively.
19129 (ccl_coding_driver): Fix previous change.
19130
191311998-08-26 Paul Eggert <eggert@twinsun.com>
19132
19133 * xterm.c (fixup_locale): New function. For now, it resets
19134 LC_TIME to "C" (reverting the 1998-08-07 change), and also
19135 resets LC_MESSAGES to "C".
19136 (x_term_init): Use it to fix up the locale after setlocale
19137 (LC_ALL, "").
19138
191391998-08-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
19140
19141 * xterm.c (x_calc_absolute_position): Cast argument to XFree, in
19142 case it was prototyped the old way.
19143
191441998-08-25 Kenichi Handa <handa@etl.go.jp>
19145
19146 * xterm.c (x_list_fonts): Work-around for the case XGetAtomName
19147 returns a null string. This happens when dxpc 3.7 is being used.
19148
191491998-08-24 Andreas Schwab <schwab@delysid.gnu.org>
19150
19151 * keyboard.c (input-method-previous-message): Doc fix.
19152
19153 * coding.c (file-coding-system-alist,
19154 select-safe-coding-system-function): Doc fix.
19155
191561998-08-23 Kenichi HANDA <handa@etl.go.jp>
19157
19158 * coding.c (detect_coding_iso2022): Don't check the byte length of
19159 succeeding codes (0xa0..0xFF) if the codes follows single shift
19160 code (SS2 or SS3).
19161
191621998-08-21 Ken'ichi Handa <handa@delysid.gnu.org>
19163
19164 * coding.c (detect_coding_system): If detect_eol_type returns
19165 CODING_EOL_INCONSISTENT, set eol_type to CODING_EOL_UNDECIDED
19166 correctly.
19167
19168See ChangeLog.7 for earlier changes.