(command-line): Check for compiled user-init-file and
[bpt/emacs.git] / src / ChangeLog
CommitLineData
f9be074f
KH
12000-01-18 Kenichi Handa <handa@etl.go.jp>
2
3 * regex.c (re_compile_fastmap): While checking a range table for
4 `charset', skip flag bits for a character class correctly.
5
52b8dbf9
GM
62000-01-17 Gerd Moellmann <gerd@gnu.org>
7
d36100c9
GM
8 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
9
52b8dbf9
GM
10 * xfns.c (x_window): Call lw_create_widget with new parameter
11 list.
12
13 * widget.c (EmacsFrameSetCharSize): Change size of children first
14 because of problems with main window geometry management under
15 Lesstif.
16
17 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
18 MENU_ITEMS_ITEM_.*.
19 (MENU_ITEMS_ITEM_HELP): New enumerator.
20 (push_menu_item): Add parameter HELP. Record help in menu_items.
21 (single_menu_item, single_submenu, list_of_items): Call
22 push_menu_item with new parameter.
23 (single_submenu): Set help string in widget value.
24 (menu_highlight_callback): New function.
25 (set_frame_menubar): Call lw_create_widget with new
26 parameter list.
27 (xmenu_show, xdialog_show): Ditto.
28
3139018f
GM
292000-01-13 Gerd Moellmann <gerd@gnu.org>
30
31 * sound.c (Fplay_sound): Improve doc string.
32
83c8f461
RS
332000-01-11 Richard M. Stallman <rms@gnu.org>
34
35 * lisp.h (set_internal): Enter the new arg.
36
37 * eval.c (specbind): Record buffer-local variables specially,
38 indicating which buffer's binding was saved.
39 (unbind_to): Restore buffer-local variables specially
40 in the proper buffer.
41
42 * data.c (set_internal): New arg BUF.
43
44 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
45 * data.c (Fset): Pass new arg to set_internal.
46 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
47
1fab1775
GM
482000-01-11 Gerd Moellmann <gerd@gnu.org>
49
50 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload,
51 xprintsym.
52
83c8f461 532000-01-11 Richard M. Stallman <rms@gnu.org>
6f59462e
RS
54
55 * minibuf.c (Ftry_completion): Doc fix.
56
7a85e4df
GM
572000-01-11 Gerd Moellmann <gerd@gnu.org>
58
59 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
60 vector, too.
61
a970dae4
AS
622000-01-11 Andreas Schwab <schwab@suse.de>
63
64 * coding.c (code_convert_region): Initialize total_skip.
65
c65d14ee
DL
662000-01-08 Dave Love <fx@gnu.org>
67
68 * eval.c (Fuser_variable_p): Check customizability too.
69
834938d2
GM
702000-01-07 Gerd Moellmann <gerd@gnu.org>
71
72 * minibuf.c (Fcompleting_read): Doc fix.
73
e0303cd6
GM
742000-01-05 Gerd Moellmann <gerd@gnu.org>
75
8a26744b
GM
76 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
77 -L /usr/local/lib.
78
e0303cd6
GM
79 * xfns.c (x_create_im): New function to set IM and IC of a frame.
80 Check that input style is supported before trying to create an
81 IC for it.
82 (x_window): Call x_create_im.
83
2e471eb5
GM
842000-01-04 Gerd Moellmann <gerd@gnu.org>
85
560a7bd2
GM
86 * xfns.c (current_gif_memory_src): New variable.
87 (gif_load): Record the address of the current memory source
88 in current_gif_memory_src.
89 (gif_read_from_memory): Use current_gif_memory_src.
90
f9ee84a3
GM
91 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
92 macros statement form.
93
d1299cde
GM
94 * sound.c (struct sound): Renamed from struct sound_file.
95 (struct sound): Add members `data' and `header_size'.
96 (enum sound_attr): Add SOUND_DATA.
97 (current_sound, current_sound_device): Variables renamed from
98 sound_file and sound_device.
99 (parse_sound): Parse :data.
100 (parse_sound): Handle sound data in strings.
101 (find_sound_type): Function renamed from find_sound_file_type.
102 (wav_init, au_init): Fail if sound's header_size is smaller than
103 needed header size.
104 (wav_play, au_play): Play sounds from string data.
105
2e471eb5
GM
106 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
107
108 * lisp.h: Add prototype for allocate_string_data.
109
110 * alloc.c (Fgarbage_collect): Return number of live and free
111 strings.
112
113 * alloc.c (mark_buffer): Remove code in #if 0.
114 (gc_sweep): Ditto.
115 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
116 (strings_consed): New variable.
117 (allocate_string): Set it.
118 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
119 (Fmemory_use_counts): Return strings_consed. Use Flist.
120
121 * alloc.c: General cleanup in comments etc. Remove conditional
122 compilation for `standalone'.
123
124 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
125
126 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
127 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
128 (DONT_COPY_FLAG): Removed.
129 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
130 (struct sdata, struct sblock): New
131 (struct string_block): Rewritten.
132 (STRINGS_IN_STRING_BLOCK): New macro.
133 (oldest_sblock, current_sblock, total_strings, total_free_strings)
134 (large_sblocks, string_blocks, string_free_list): New variables.
135 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
136 (init_strings): Rewritten.
137 (allocate_string, allocate_string_data, compact_small_strings)
138 (free_large_strings, sweep_strings): New functions.
139 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
140 (struct string_block_head, current_string_block)
141 (first_string_block, large_string_blocks, STRING_FULLSIZE)
142 (STRING_PAD): Removed.
143 (make_uninit_multibyte_string, make_pure_string): Rewritten.
144 (Fgarbage_collect): Don't set mark bit in large strings.
145 (mark_object): Mark strings differently. Mark symbol names
146 differently.
147 (survives_gc_p): Test marked strings differently.
148 (gc_sweep): Sweep strings differently, unmark strings in
149 symbol names.
150 (compact_strings): Removed.
151
42608ba8
EZ
1522000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
153
154 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
155 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
156
e0a09e1a
KH
1572000-01-04 Kenichi Handa <handa@etl.go.jp>
158
dd9f0750
KH
159 * fileio.c (Finsert_file_contents): Signal error if visiting file
160 in a non-empty buffer.
161
3c0f3b15 162 * term.c (encode_terminal_code): Fix the previous change.
e0a09e1a 163
44cd3ae5
GM
1642000-01-03 Gerd Moellmann <gerd@gnu.org>
165
166 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
167 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
168
169 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
170
c182a70f
EZ
1712000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
172
173 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
174 need to test for MSDOS frames.
175
24480d5b
EZ
1762000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
177
178 * dosfns.c (unspecified_colors): Remove.
179 (msdos_stdcolor_idx): Use global variables unspecified_fg and
180 unspecified_bg.
181 (msdos_stdcolor_name): Return strings for unspecified fore- and
182 back-ground colors.
183
184 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
185 (syms_of_xfaces): Remove theit staticpro's.
186 (tty_color_name): Return Lisp strings for unspecified fore- and
187 back-ground colors.
188 (Finternal_set_lisp_face_attribute): Remove the special treatment
189 for Qunspecified_{f,b}g.
190 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp
191 string.
192
047f434a
GM
1932000-01-03 Gerd Moellmann <gerd@gnu.org>
194
195 * xdisp.c (reseat_at_next_visible_line_start): Position before
196 newline only if ending up on a newline.
197 (next_element_from_ellipsis): Return success. Handle case of
198 displaying no ellipsis. Fix case of ellipsis defined in display
199 table.
200 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
201 returns 0.
202
d684c676
EZ
2032000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
204
205 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
206 (Fcolor_supported_p): Renamed from face-color-supported-p.
207
5fe1d139
EZ
2082000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
209
210 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
211 list of colors renamed to tty-defined-color-alist.
212 (tty_color_name): Pass the frame to tty-color-by-index.
213 (realize_tty_face): tty-color-alist is now a function which
214 accepts the frame as argument.
215
216 * term.c (Ftty_display_color_p): Accept an optional argument
217 FRAME.
218
816be8b8
EZ
2192000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
220
221 * term.c (insert_glyphs): Pass glyph, not &glyph, to
222 encode_terminal_code.
223
b635321e
EZ
2242000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
225
226 * dispnew.c (mode_line_string): Support termcap frames as well.
227
9b784e96
GM
2282000-01-01 Gerd Moellmann <gerd@gnu.org>
229
27189709
GM
230 * syntax.c (Fforward_word): Undo previous change.
231
232 * editfns.c (Fconstrain_to_field): Don't constrain if
233 inhibit-field-text-motion is non-nil.
234 (Fline_beginning_position): Undo previous change.
235 (Fline_end_position): Ditto.
236
237 * syntax.c (Fforward_word): Notice field boundaries only if
238 inhibit-field-text-motion is nil.
239
240 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
241
242 * editfns.c (Vinhibit_field_text_motion): New variable.
243 (inhibit-field-text-motion): New DEFVAR_LISP.
244 (Fline_beginning_position, Fline_end_position): Notice field
245 boundaries only if inhibit-field-text-motion is nil.
246
45158a91
GM
247 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
248 All calls adjusted.
249 (x_build_heuristic_mask): Likewise.
250 (xbm_load_image_from_file): Change error output.
251 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
252 (gif_load, gs_load, x_kill_gs_process): Ditto.
253
9b784e96
GM
254 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
255 color indices when accessing raster pixels.
63cec32f
GM
256 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
257 one of :file or :data.
258 (enum pbm_keyword_index): Add PBM_DATA.
259 (pbm_format): Add :data.
260 (pbm_image_p): Allow either :file or :data.
261 (pbm_read_file): New function.
262 (pbm_scan_number): Rewritten to read from string.
263 (pbm_load): Support :data.
9b784e96 264
5ad6a5fb
GM
2651999-12-31 Gerd Moellmann <gerd@gnu.org>
266
267 * xfns.c: New image functions adapted to Emacs conventions.
268 (png_load, tiff_load, jpeg_load, gif_load): Always GCPRO local
269 variable `file'.
270
63448a4d
WP
2711999-12-31 William M. Perry <wmperry@aventail.com>
272
273 * xfns.c (jpeg_format): Added the :data keyword
274 (jpeg_image_p): JPEG is valid with :file _or_ :data
275 (jpeg_memory_src): Defined new JPEG image source to read from a
276 memory buffer.
277 (jpeg_load): Pay attention to the :data keyword if specified.
278 Instantiates a jpeg_memory_src instead of jpeg_stdio_src if
279 found.
280 (png_format): Added the :data keyword
281 (png_image_p): PNG is valid with :file _or_ :data
282 (png_read_from_memory): New PNG read function to read from a
283 memory buffer.
284 (png_load): Pay attention to the :data keyword if specified. Uses
285 png_set_read_fn() instead of png_init_io() if specified.
286 (tiff_format): Added the :data keyword for TIFF images.
287 (tiff_image_p): TIFF is valid with :file _or_ :data
288 (tiff_read_from_memory): Defined new TIFF I/O functions to read
289 from a memory buffer.
290 (tiff_load): Pay attention to the :data keyword if specified.
291 Uses TIFFClientOpen() instead of TIFFOpen() if specified.
292 (gif_format): Added the :data keyword
293 (gif_image_p): GIF is valid with :file _or_ :data
294 (gif_read_from_memory): New GIF input function to read from a
295 memory buffer.
c65d14ee 296 (gif_load): Pay attention to the :data keyword. Uses DGifOpen()
63448a4d
WP
297 instead of DGifOpenFileName() if specified.
298
c880678e
GM
2991999-12-31 Gerd Moellmann <gerd@gnu.org>
300
301 * xdisp.c (next_element_from_buffer): Change assertion at the end
302 because it doesn't hold when there's an overlay string at the end
303 from which we deliver an image.
304
8ccb9a54
EZ
3051999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
306
307 * msdos.c (IT_update_begin): Don't dereference members of struct
308 window for deleted windows.
309
12ce2351
GM
3101999-12-30 Gerd Moellmann <gerd@gnu.org>
311
a915c648
GM
312 * abbrev.c (Fexpand_abbrev): If expanding an abbrev which has only
313 a hook, and the hook has a non-nil `no-self-insert' property, let
314 the return value of the hook specify whether an expansion took
315 place. If it returns nil, no expansion has been performed.
316
12ce2351
GM
317 * xterm.c (x_make_frame_visible): Wait for frame becoming visible
318 differently.
319
04ee4f45
EZ
3201999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
321
322 * msdos.c (IT_write_glyphs): Track last changes to struct glyph.
323
7f4bc0c3
EZ
3241999-12-29 Eli Zaretskii <eliz@is.elta.co.il>
325
326 * dispnew.c (mode_line_string): Support MS-DOS frames.
327
dac204bc
GM
3281999-12-29 Gerd Moellmann <gerd@gnu.org>
329
330 * eval.c (syms_of_eval): Initialize debugger_may_continue.
331
7b712ad8
KH
3321999-12-29 Kenichi Handa <handa@etl.go.jp>
333
334 * process.c (read_process_output): Fix the args CHARPOS and LENINS
335 to signal_after_change.
336
adb9900f
EZ
3371999-12-28 Eli Zaretskii <eliz@is.elta.co.il>
338
41ad069b
EZ
339 * msdos.c (dos_set_window_size) [__DJGPP__ > 1]: If the frame
340 dimensions changed, invalidate the mouse highlight info.
341 (disable_mouse_highlight, help_echo, previous_help_echo): New
342 variables.
343 (IT_set_mouse_pointer, show_mouse_face, clear_mouse_face)
344 (fast_find_position, IT_note_mode_line_highlight)
345 (IT_note_mouse_highlight): New functions.
346 (IT_update_begin): If the redisplay affects the window where the
347 mouse highlight is, clear the highlight. If the frame where the
348 highlight was displayed was killed, invalidate the highlight
349 info.
350 (IT_update_end): Reset the highlight flag. Reset the mouse
351 highlight-defer flag.
352 (IT_frame_up_to_date): New function, if mouse highlight was
353 deferred due to GC, do it now.
354 (internal_terminal_init): Initialize mouse-highlight related
355 members of the_only_x_display. Assign IT_frame_up_to_date to
356 frame_up_to_date_hook.
357 (dos_rawgetc): If the mouse moved, update mouse highlight. If
358 help_echo changed value, generate a HELP_EVENT event.
359 (syms_of_msdos): Staticpro help_echo and previous_help_echo.
360
adb9900f
EZ
361 * msdos.h (struct display_info): New.
362 (struct x_output): Add the display_info member.
363 (FRAME_X_DISPLAY_INFO): New macro.
364
481b5054
GM
3651999-12-28 Gerd Moellmann <gerd@gnu.org>
366
367 * xdisp.c (try_window_id): Compute BEG_UNCHANGED and END_UNCHANGED
368 if MODIFF > 1.
6448a6b3 369 (dump_glyph_row): Adapt to changes in struct glyph.
481b5054
GM
370
371 * buffer.c (modify_overlay): Always compute unchanged info.
372
a2882b0d
KH
3731999-12-27 Kenichi Handa <handa@etl.go.jp>
374
375 * dispextern.h (FACE_FROM_ID): Cast the arg ID to `unsigned'.
376
89ba5b5f
KH
3771999-12-27 Kenichi Handa <handa@etl.go.jp>
378
379 The following changes are to use more bits for face IDs.
380
381 * lisp.h (GLYPH): Defined as `int', not `unsigned int'. Now the
382 lowest 8 bits are single byte character code, the bits above are
383 face ID.
481b5054 384 (GLYPH_MASK_FACE, GLYPH_MASK_CHAR): Adjusted for the change
89ba5b5f 385 above.
481b5054
GM
386 (FAST_MAKE_GLYPH, FSST_GLYPH_FACE): Likewise.
387 (GLYPH_MASK_REV_DIR, GLYPH_MASK_PADDING): Macros deleted.
89ba5b5f
KH
388
389 * charset.h (CHAR_BYTES): Use ((1 << CHARACTERBITS) - 1) instead
390 of GLYPH_MASK_CHAR.
391
392 * charset.c (char_bytes): Use ((1 << CHARACTERBITS) - 1) instead
393 of GLYPH_MASK_CHAR.
394
395 * dispextern.h (struct glyph): Make face_id and padding_p the top
396 level members. Change members in union `u'.
397 (GLYPH_EQUAL_P): Check also members face_id and padding_p.
398 (GLYPH_CHAR_AND_FACE_EQUAL_P): New macro.
399 (SET_CHAR_GLYPH): Adjusted for the change of struct glyph.
400 (CHAR_GLYPH_PADDING_P): Likewise.
401 (GLYPH_FROM_CHAR_GLYPH): Likewise. Always return -1 for multibyte
402 characters.
403
481b5054 404 * dispnew.c (line_hash_code, direct_output_for_insert): Adjusted
89ba5b5f
KH
405 for the change of struct glyph.
406 (line_draw_cost): Adjusted for the change of
407 GLYPH_FROM_CHAR_GLYPH.
408 (count_match): Use macro GLYPH_CHAR_AND_FACE_EQUAL_P.
409
410 * term.c (encode_terminal_code): Adjusted for the change of struct
411 glyph and GLYPH_FROM_CHAR_GLYPH.
481b5054 412 (write_glyphs, insert_glyphs, append_glyph): Adjusted for the
89ba5b5f
KH
413 change of struct glyph.
414
415 * xdisp.c: All codes adjusted for the change of struct glyph.
416
417 * xterm.c: All codes adjusted for the change of struct glyph.
418
5bcd116c
KH
4191999-12-27 Kenichi Handa <handa@etl.go.jp>
420
421 * composite.h (struct composition): Change the order of declaring
422 members to reduce the byte size of the structure.
423
f21b06b7
GM
4241999-12-25 Gerd Moellmann <gerd@gnu.org>
425
426 * search.c (looking_at_1): Reset immediate_quit before modifying
427 global data.
428
e36557c9
KH
4291999-12-24 Kenichi Handa <handa@etl.go.jp>
430
431 * process.c (read_process_output): Fix the arg FROM to
432 update_compositions.
433
83c8f461 4341999-12-22 Richard M. Stallman <rms@gnu.org>
f7c9e039
RS
435
436 * search.c (Freplace_match): For nonliteral replacement in buffer,
437 construct all the new text first, then insert all at once.
438
0b863bd9
DL
4391999-12-22 Dave Love <fx@gnu.org>
440
441 * xfns.c (Fx_show_tip): Gcpro `timeout' too.
442
6d8e8ef3
GM
4431999-12-22 Gerd Moellmann <gerd@gnu.org>
444
28d7281d
GM
445 * xfns.c (Fx_create_frame): Move x_default_parameter calls that
446 lead to size changes to after the X window has been created.
447
e22ef6eb 448 * xfaces.c (realize_x_face): Don't use uninitialized local
6d8e8ef3
GM
449 variable in xassert.
450
8affcced
KH
4511999-12-22 Kenichi Handa <handa@etl.go.jp>
452
453 * xfaces.c (face_color_supported_p): Check by tty_defined_color
6d8e8ef3 454 only when the frame is not for a window system.
8affcced 455
f2be1146
GM
4561999-12-22 Gerd Moellmann <gerd@gnu.org>
457
deca1348
GM
458 * buffer.c (Fset_buffer_multibyte): Arrange for a thorough
459 redisplay after changing the multibyteness of a buffer.
460
f2be1146
GM
461 * xterm.c (XTread_socket): At the beginning of the loop, pass the
462 frame's X window to XFilterEvent instead of None because that's
463 the X window for which the IC was created. This makes dead
464 accents work when the pointer is not in Emacs' frame.
465 (XTread_socket) <KeyPress>: Don't call XFilterEvent here.
466
a744a2ec
DL
4671999-12-20 Dave Love <fx@gnu.org>
468
469 * xfns.c (Fx_show_tip): Add missing UNGCPRO.
470
9e6985ed
GM
4711999-12-19 Gerd Moellmann <gerd@gnu.org>
472
473 * eval.c (debugger_may_continue): New variable.
474 (syms_of_eval): Add a DEFVAR_BOOL for it.
475 (call_debugger): Bind it.
476
3b620731
EZ
4771999-12-19 Eli Zaretskii <eliz@is.elta.co.il>
478
479 * msdos.c (IT_set_face): Don't swap face colors when highlight or
480 fp->tty_reverse_p is set, unless the computed colors are identical
481 to frame colors. Print both original and computed colors to
482 termscript file.
483 (IT_write_glyphs): Track the changes in handling of composite
484 characters.
485 (IT_set_frame_parameters): Don't set frame colors from
486 unspecified-fg and unspecified-bg pseudo-colors.
487
0f9a51c4
DL
4881999-12-17 Dave Love <fx@gnu.org>
489
490 * data.c (Fkeywordp): New function.
491 (syms_of_data): Install it.
492
363e4e42
EZ
4931999-12-16 Eli Zaretskii <eliz@is.elta.co.il>
494
495 * xfaces.c (tty_defined_color): Fix last change.
496
cfad01b4
GM
4971999-12-15 Gerd Moellmann <gerd@gnu.org>
498
499 * xdisp.c (redisplay_window) <optional new window start>: Check
500 that window start is in [BEGV..ZV].
501
f9d2fdc4
EZ
5021999-12-15 Eli Zaretskii <eliz@is.elta.co.il>
503
504 * dispextern.h (FACE_TTY_DEFAULT_FG_COLOR)
505 (FACE_TTY_DEFAULT_BG_COLOR): New macros.
506
507 * xfaces.c (Qunspecified_fg, Qunspecified_bg): New variables.
508 (syms_of_xfaces): Initialize and staticpro them.
509 (tty_defined_color): If the color name is unspecified-fg or
510 unspecified-bg, return FACE_TTY_DEFAULT_FG_COLOR and
511 FACE_TTY_DEFAULT_BG_COLOR, respectively, as the pixel value.
512 (tty_color_name): If the color pixel value is either
513 FACE_TTY_DEFAULT_FG_COLOR or FACE_TTY_DEFAULT_BG_COLOR, return
514 Qunspecified_fg or Qunspecified_bg, respectively.
515 (Finternal_set_lisp_face_attribute): Allow values Qunspecified_fg
516 and Qunspecified_bg for foreground and background colors.
517 (realize_default_face): If the foreground and background colors
518 are not specified, default to Qunspecified_fg and Qunspecified_bg.
519 (realize_tty_face): By default, set the face colors to
520 FACE_TTY_DEFAULT_FG_COLOR and FACE_TTY_DEFAULT_BG_COLOR.
521 [MSDOS]: Handle FACE_TTY_DEFAULT_FG_COLOR and
522 FACE_TTY_DEFAULT_BG_COLOR when face colors are not defined.
523 Reverse the colors if the default colors were reversed.
524
525 * dispnew.c (init_display): Initialize the frame pixels of the
526 initial frame to FACE_TTY_DEFAULT_FG_COLOR and
527 FACE_TTY_DEFAULT_BG_COLOR.
528
529 * term.c (turn_on_face): If the default fore- and background
530 colors are reversed, enter inverse video mode. Don't send color
531 escape sequences for unspecified foreground and background colors.
532 (turn_off_face): Handle unspecified-fg and unspecified-bg colors.
533
534 * dosfns.c (unspecified_colors): New variable.
535 (msdos_stdcolor_idx): Handle unspecified-fg and unspecified-bg
536 color names, return FACE_TTY_DEFAULT_FG_COLOR and
537 FACE_TTY_DEFAULT_BG_COLOR, respectively.
538 (msdos_stdcolor_name): Handle FACE_TTY_DEFAULT_FG_COLOR and
539 FACE_TTY_DEFAULT_BG_COLOR, return Qunspecified_fg and
540 Qunspecified_bg, respectively.
541
542 * msdos.c (IT_set_face): Support FACE_TTY_DEFAULT_FG_COLOR and
543 FACE_TTY_DEFAULT_BG_COLOR as pixel values.
544
e19539f1
KH
5451999-12-15 Kenichi Handa <handa@etl.go.jp>
546
547 * coding.c (code_convert_region): Fix the secoding arg to
548 update_compositions.
549
5ec14d3c
KH
5501999-12-15 Kenichi Handa <handa@etl.go.jp>
551
552 The following changes are for the new composition mechanism. We
553 have deleted `composition' charset and composite characters,
554 instead introduced a special text property `composition'.
555
556 * Makefile.in (INTERVAL_SRC): Include composite.h.
557 (INTERVAL_OBJ): Include composite.o.
558 (SOME_MACHINE_OBJECTS): Include composite.o.
559 (casefiddle.o) (dispnew.o) (indent.o) (process.o) (search.o)
560 (syntax.o) (window.o) (xdisp.o) (xfaces.o) (xterm.o) (print.o):
561 Depend on composite.h.
562 (doc.o): Depend on charset.h.
563 (keyboard.o) (textprop.o) (intervals.o): Depend on INTERVAL_SRC.
564 (composite.o): New target.
565
566 * alloc.c (Fmake_string): Adjusted for the change of CHAR_STRING.
567
568 * callproc.c (Fcall_process): Call code_convert_string to encode
569 arguments. Use CODING_REQUIRE_DECODING to check if the process
570 output should be decoded.
571
572 * casefiddle.c: Include composite.h.
573 (casify_object): Use MAX_MULTIBYTE_LENGTH to allocate memory for a
574 multibyte character. Adjusted for the change of CHAR_STRING.
575 (casify_region): Likewise. Call update_compositions.
576
577 * category.h (CATEGORY_SET): Delete codes for a composite
578 character.
579
580 * category.c (word_boundary_p): Delete codes for a composite
581 character.
582 (Fmake_category_table): New function.
583 (syms_of_category): Defsubr it.
584
585 * ccl.c (CCL_WRITE_CHAR): Adjusted for the change of CHAR_STRING.
586 (ccl_driver): Delete codes for a composite character.
587
588 * charset.h: In this entry, just `Modified' means that codes for a
589 composite character is deleted.
590 (LEADING_CODE_COMPOSITION) (CHARSET_COMPOSITION)
591 (charset_composition) (MIN_CHAR_COMPOSITION)
592 (MAX_CHAR_COMPOSITION) (GENERIC_COMPOSITION_CHAR)
593 (COMPOSITE_CHAR_P) (MAKE_COMPOSITE_CHAR) (COMPOSITE_CHAR_ID)
594 (PARSE_COMPOSITE_SEQ) (PARSE_CHARACTER_SEQ): Deleted.
595 (MAX_CHAR) (CHARSET_VALID_P) (CHARSET_DEFINED_P) (CHARSET_AT)
596 (FIRST_CHARSET_AT) (SAME_CHARSET_P) (MAKE_NON_ASCII_CHAR)
597 (PARSE_MULTIBYTE_SEQ) (SPLIT_NON_ASCII_CHAR) (CHAR_PRINTABLE_P):
598 Modified.
599 (SPLIT_STRING): Call split_string, not split_non_ascii_string.
600 (CHAR_STRING): Delete WORKBUF argument. Call char_string, not
601 non_ascii_char_to_string.
602 (STRING_CHAR): Call string_to_char, not string_to_non_ascii_char.
603 (STRING_CHAR_AND_LENGTH): Likewise.
604 (FETCH_CHAR_ADVANCE): New macro.
605 (MAX_COMPONENT_COUNT) (struct cmpchar_info): Deleted.
606 (MAX_MULTIBYTE_LENGTH): New macro.
607 (MAX_LENGTH_OF_MULTI_BYTE_FORM): Deleted.
608 (find_charset_in_str): Argument adjusted.
609 (CHAR_LEN): Modified.
610
611 * charset.c: In this entry, just `Modified' means that codes for a
612 composite character is deleted.
613 (Qcomposition) (leading_code_composition)
614 (charset_composition) (min_composite_char) (cmpchar_table)
615 (cmpchar_table_size) (n_cmpchars): Deleted.
616 (SPLIT_COMPOSITE_SEQ): Deleted.
617 (SPLIT_MULTIBYTE_SEQ): Modified.
618 (char_to_string): Renamed from non_ascii_char_to_string.
619 Modified.
620 (string_to_char): Renamed from string_to_non_ascii_char.
621 (split_string): Renamed from split_non_ascii_string.
622 (char_printable_p) (Fsplit_char)
623 (Ffind_charset_region) (Ffind_charset_string) (char_valid_p)
624 (char_bytes) (Fchar_width) (strwidth): Modified.
625 (find_charset_in_str): Argument CMPCHARP deleted. Modified.
626 (Fstring): Adjusted for the change of CHAR_STRING. Modified.
627 (hash_string) (CMPCHAR_HASH_TABLE_SIZE) (cmpchar_hash_table)
628 (CMPCHAR_HASH_SIZE) (CMPCHAR_HASH_USED) (CMPCHAR_HASH_CMPCHAR_ID)
629 (str_cmpchar_id) (cmpchar_component) (Fcmpcharp)
630 (Fcmpchar_component) (Fcmpchar_cmp_rule) (Fcmpchar_cmp_rule_p)
631 (Fcmpchar_cmp_count): Deleted.
632 (Fcompose_string): Implemented by Emacs Lisp in composite.el.
633 (init_charset_once): Modified.
634 (syms_of_charset): Modified.
635
636 * cmds.c (internal_self_insert): Adjusted for the change of
637 CHAR_STRING.
638
639 * coding.h (emacs_code_class_type): Delete the member
640 EMACS_leading_code_composition.
641 (COMPOSING_NO) (COMPOSING_WITH_RULE_HEAD) (COMPOSING_NO_RULE_HEAD)
642 (COMPOSING_WITH_RULE_TAIL) (COMPOSING_NO_RULE_TAIL)
643 (COMPOSING_WITH_RULE_RULE) (COMPOSING_HEAD_P)
644 (COMPOSING_WITH_RULE_P): Macros deleted.
645 (COMPOSITION_DATA_SIZE) (COMPOSITION_DATA_MAX_BUNCH_LENGTH): New
646 macros.
647 (struct composition_data): New structure.
648 (CODING_FINISH_INSUFFICIENT_CMP): New macro.
649 (struct coding_system): New members composition_rule_follows,
650 cmp_data, cmp_data_start, cmp_data_index.
651 (coding_save_composition) (coding_free_composition_data)
652 (coding_adjust_composition_offset): Extern them.
653
654 * coding.c: Include composite.h.
655 (DECODE_CHARACTER_ASCII): Don't handle composition here.
656 (DECODE_CHARACTER_DIMENSION1): Likewise. Don't check the validity
657 of multibyte code here.
658 (DECODE_CHARACTER_DIMENSION2): Likewise.
659 (detect_coding_emacs_mule): Change the case label from
660 EMACS_leading_code_composition to 0x80.
661 (detect_coding_iso2022): Handle new composition sequence.
662 (DECODE_ISO_CHARACTER): Likewise.
663 (check_composing_code): Deleted.
664 (coding_allocate_composition_data): New function.
665 (CODING_ADD_COMPOSITION_START) (CODING_ADD_COMPOSITION_END)
666 (CODING_ADD_COMPOSITION_COMPONENT) (DECODE_COMPOSITION_START)
667 (DECODE_COMPOSITION_END) (DECODE_COMPOSITION_RULE): New macros.
668 (decode_coding_iso2022): Handle new composition sequence.
669 (ENCODE_ISO_CHARACTER): Don't check composition here.
670 (ENCODE_COMPOSITION_RULE) (ENCODE_COMPOSITION_START): New macros.
671 (ENCODE_COMPOSITION_NO_RULE_START)
672 (ENCODE_COMPOSITION_WITH_RULE_START): Deleted.
673 (ENCODE_COMPOSITION_END): Handle new composition sequence.
674 (ENCODE_COMPOSITION_FAKE_START): New macro.
675 (encode_coding_iso2022): Handle new composition sequence.
676 (ENCODE_SJIS_BIG5_CHARACTER): Delete superfluous `;' at the tail.
677 (encode_coding_sjis_big5): Ignore composition.
678 (setup_coding_system): Initialize new members of struct
679 coding_system. Enable composition only when the coding system has
680 `composition' property t.
681 (coding_free_composition_data) (coding_adjust_composition_offset)
682 (coding_save_composition) (coding_restore_composition): New
683 functions.
684 (code_convert_region): Call coding_save_composition for encoding
685 and coding_allocate_composition_data for decoding. Don't skip
686 ASCII characters if we handle composition on encoding. Call
687 signal_after_change with Check_BORDER.
688 (code_convert_string): Call coding_save_composition for encoding
689 and coding_allocate_composition_data for decoding. Don't skip
690 ASCII characters if we handle composition on encoding.
691 (code_convert_string1): Set Vlast_coding_system_used after calling
692 code_convert_string.
693 (code_convert_string_norecord): Disable composition.
694 (Fset_terminal_coding_system_internal): Likewise.
695 (Fset_safe_terminal_coding_system_internal): Likewise.
696 (Fset_keyboard_coding_system_internal): Likewise.
697 (init_coding_once): Set emacs_code_class[0x80] to
698 EMACS_invalid_code.
699
700 * composite.h: New file.
701
702 * composite.c: New file.
703
704 * data.c (Faref): Delete codes for a composite character..
705 (Faset): Likewise. Adjusted for the change of CHAR_STRING.
706
707 * dispextern.h (enum glyph_type): New member COMPOSITE_GLYPH.
708 (struct glyph): Add new sub-structure cmp to the union `u'.
709 (enum display_element_type): New member IT_COMPOSITION.
710 (enum prop_idx): New member COMPOSITION_PROP_IDX.
711 (struct it): New members cmp_id, cmp_len.
712
713 * dispnew.c (direct_output_forward_char): Check point moving into
714 or out of a composition. If so, give up direct method.
715
716 * doprnt.c (doprnt1): Adjusted for the change of CHAR_STRING.
717
718 * editfns.c (Fchar_to_string): Adjusted for the change of
719 CHAR_STRING.
720 (general_insert_function): Likewise.
721 (Finsert_char): Likewise.
722 (Fsubst_char_in_region): Likewise. Call update_compositions.
723 (Ftranslate_region): Call update_compositions.
724 (Ftranspose_regions): Call update_compositions.
725
726 * emacs.c (main): Call syms_of_composite.
727
728 * fileio.c (Fsubstitute_in_file_name): Adjusted for the change of
729 CHAR_STRING.
730 (Finsert_file_contents): Set Vlast_coding_system_used before
731 calling signal_after_change. Call update_compositions if some
732 texts are inserted..
733 (Fwrite_region): Adjusted for the change of a_write and e_write.
734 (a_write): Argument changed. Work based on character position,
735 not byte position.
736 (e_write): Argument changed. Handle new way of composition.
737
738 * fns.c (Flength): The length of char-table is MAX_CHAR.
739 (concat): Adjusted for the change of CHAR_STRING.
740 (Ffillarray): Adjusted for the change of CHAR_STRING.
741 (Fset_char_table_default): Delete codes for a composite character.
742 (hash_put): Return hash index.
743
744 * fontset.h (struct font_info): New member vertical_centering.
745 (Vvertical_centering_font_regexp): Extern it.
746
747 * fontset.c (Vvertical_centering_font_regexp): New variable.
748 (syms_of_fontset): Declare it as a Lisp variable and initialize.
749 Set Vignore_relative_composition to nil.
750 (fs_load_font): Initialize `vertical_centering' of struct
751 font_info.
752
753 * indent.c (check_composition): New function.
754 (MULTIBYTE_BYTES_WIDTH): Call STRING_CHAR_AND_LENGTH with
755 MAX_MULTIBYTE_LENGTH, not MAX_LENGTH_OF_MULTI_BYTE_FORM.
756 (current_column_1): Handle new way of composition.
757 (Fmove_to_column): Likewise.
758 (compute_motion): Likewise.
759
760 * insdel.c (copy_text): Adjusted for the change of CHAR_STRING.
761 (insert_char): Likewise.
762 (insert): Call update_compositions.
763 (insert_and_inherit): Likewise.
764 (insert_before_markers): Likewise.
765 (insert_before_markers_and_inherit): Likewise.
766 (insert_from_string): Likewise.
767 (insert_from_string_before_markers): Likewise.
768 (insert_from_buffer): Likewise.
769 (replace_range): Likewise.
770 (count_combining_composition): Deleted.
771 (count_combining_before): Delete codes for a composite character.
772 (count_combining_after): Likewise.
773 (del_range_1): Call update_compositions.
774 (del_range_byte): Likewise.
775 (del_range_both): Likewise.
776 (Fcombine_after_change_execute): Likewise.
777
778 * intervals.h: Include composite.h.
779 (get_property_and_range): Extern it.
780 (Vtext_property_default_nonsticky): Extern it.
781
782 * intervals.c (adjust_intervals_for_insertion): To check stickines
783 of properties, pay attention to text-property-default-nonsticky.
784 (merge_properties_sticky): Likewise.
785 (get_property_and_range): New function.
786
787 * keyboard.c (Vdisable_point_adjustment): New variable.
788 (Vglobal_disable_point_adjustment): New variable.
789 (syms_of_keyboard): Declare them as Lisp variables.
790 (command_loop_1): Check them and call adjust_point_for_property if
791 necessary.
792 (adjust_point_for_property): New function.
793
794 * keymap.c (push_key_description): Adjusted for the change of
795 CHAR_STRING.
796 (Ftext_char_description): Likewise.
797
798 * lisp.h (QCtest, QCweakness, Qequal): Extern them.
799 (hash_put): Adjusted for the change of the definition.
800 (signal_after_change): Likewise.
801 (check_point_in_composition): Extern it.
802
803 * lread.c (readchar): Adjusted for the change of CHAR_STRING.
804 Delete a code that handles an invalid too-long multibyte sequence
805 because we are now sure that we never encounter with such a
806 sequence.
807 (read_multibyte): Use macro MAX_MULTIBYTE_LENGTH, not
808 MAX_LENGTH_OF_MULTI_BYTE_FORM.
809 (init_obarray): Likewise.
810 (read1): Likewise. Adjusted for the change of CHAR_STRING.
811
812 * print.c (printchar): Adjusted for the change of CHAR_STRING.
813
814 * process.c: Include composite.h.
815 (read_process_output): Call update_compositions.
816
817 * regex.c (regex_compile): Adjusted for the change of CHAR_STRING.
818
819 * search.c (search_buffer): Adjusted for the change of CHAR_STRING.
820
821 * syntax.h (SYNTAX_ENTRY_INT): Delete codes for a composite
822 character.
823
824 * term.c (encode_terminal_code): Delete codes for a composite
825 character. Adjusted for the change of CHAR_STRING.
826 (produce_glyphs): When called, it->what can be IT_COMPOSITION.
827 Delete codes for a composite character.
828
829 * textprop.c (Vtext_property_default_nonsticky): New variable
830 (syms_of_textprop): Declare it as a Lisp variable.
831
832 * window.c (Frecenter): Clear all caches of compositions.
833
834 * xdisp.c (it_props): Add an entry for composition.
835 (face_before_or_after_it_pos): For composition, check face of a
836 character after the composition.
837 (handle_composition_prop): New function.
838 (get_next_display_element): Adjusted for the change of
839 CHAR_STRING.
840 (set_iterator_to_next): Handle the case that it->method ==
841 next_element_from_composition.
842 (next_element_from_composition): New function.
843 (message_dolog): Adjusted for the change of CHAR_STRING.
844 (set_message_1): Likewise.
845 (check_point_in_composition): New function.
846 (reconsider_clip_changes): If point moved into or out of
847 composition, set b->clip_changed to 1 to force updating of the
848 screen.
849 (disp_char_vector): Delete codes for a composite character.
850 (decode_mode_spec_coding): Adjusted for the change of CHAR_STRING.
851
852 * xfaces.c (choose_face_fontset_font): Delete codes for a
853 composite character.
854 (realize_x_face): Likewise. Change a place to set local variable
855 `f' to avoid a bug of GCC 2.8.1 on Solaris.
856
857 * xfns.c: Include intervals.h.
858 (syms_of_xfns): Make `display' property nonsticky by default.
859
860 * xselect.c (lisp_data_to_selection_data): Adjusted for the change
861 for find_charset_in_str.
862
863 * xterm.h (struct x_output): Change member font_baseline to
864 baseline_offset.
865
866 * xterm.c (x_append_glyph): Setup members of struct glyph properly
867 for composition.
868 (x_append_composite_glyph): New function.
869 (VCENTER_BASELINE_OFFSET): New macro.
870 (x_produce_glyphs): If it->what == IT_COMPOSITION, setup members
871 of struct it for the composition. Cache pixel offsets in the
872 struct composition. Delete codes for a composite character.
873 Handle Vignore_relative_composition in composition code.
874 (struct glyph_string): Delete member cmpcharp, add new member cmp.
875 (x_set_cursor_gc): Check s->cmp, not s->cmpcharp.
876 (x_compute_glyph_string_overhangs): Likewise.
877 (x_get_glyph_overhangs): Delete codes for a composite character.
878 (x_right_overwritten): Check s->cmp, not s->cmpcharp.
879 (x_draw_glyph_string_background): Likewise. Delete codes for
880 checking s->gidx for a composition.
881 (x_draw_glyph_string_foreground): Delete code for a composite
882 character.
883 (x_draw_composite_glyph_string_foreground): New function.
884 (x_draw_glyph_string_box): Check s->cmp, not s->cmpcharp.
885 (x_draw_glyph_string): Handle the case of COMPOSITE_GLYPH.
886 (struct work): Deleted.
887 (x_fill_composite_glyph_string): Argument changed. Mostly
888 rewritten for that.
889 (x_fill_glyph_string): Don't check CHARSET_COMPOSITION.
890 (BUILD_CHAR_GLYPH_STRINGS): Don't handle composition here.
891 (BUILD_COMPOSITE_GLYPH_STRING): New macro.
892 (BUILD_GLYPH_STRINGS): For composition, call
893 BUILD_COMPOSITE_GLYPH_STRING.
894 (x_new_font): Initialize f->output_data.x->baseline_offset, not
895 f->output_data.x->font_baseline.
896
c3c60f13
GM
8971999-12-14 Gerd Moellmann <gerd@gnu.org>
898
899 * xterm.c (show_mouse_face): Don't use updated_area, use
900 TEXT_AREA.
901
83c8f461 9021999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
903
904 * minibuf.c (Fall_completions): Doc fix.
905
83c8f461 9061999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
907
908 * macros.c (Fstart_kbd_macro): Handle case where last-kbd-macro
909 has been changed by the Lisp code.
910
d8eccf12
GM
9111999-12-12 Gerd Moellmann <gerd@gnu.org>
912
913 * xfns.c: Indentation fixes.
914
ae56feae
SM
9151999-12-10 Stefan Monnier <monnier@cs.yale.edu>
916
917 * xterm.c (x_initialize): Only setup xaw3d_* if they've been declared.
918
dfa1c6ae
GM
9191999-12-10 Gerd Moellmann <gerd@gnu.org>
920
921 * frame.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL)
922 [!MSDOS && !WINDOWSNT && !macintosh]: Moved here from xterm.h.
923
924 * xterm.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL): Moved
925 to frame.h.
926
ec18280f
SM
9271999-12-09 Stefan Monnier <monnier@cs.yale.edu>
928
929 * keyboard.c (Qratio): New symbol.
930 (scroll_bar_parts): Add `Qratio' to it.
931 (syms_of_keyboard): Init `Qratio'.
932 * termhooks.h (scroll_bar_part): Add `scroll_bar_move_ratio'.
933 * xterm.c (#includes): Allow compilation with only Xaw.
934 (xaw3d_arrow_scroll, xaw3d_pick_top): New variables.
935 (xt_action_hook): Replace XAW3D by XAW.
936 (xaw3d_jump_callback): Renamed to xaw_jump_callback.
937 (xaw_jump_callback): Renamed from xaw3d_jump_callback.
938 Determine epsilon dynamically and don't try to be too clever.
939 (xaw3d_scroll_callback): Renamed to xaw_scroll_callback.
940 (xaw_scroll_callback): Renamed from xaw3d_scroll_callback.
941 Handle both Xaw3d with arrow-scrollbars and with Xaw-style
942 scrollbar (using `ratio').
943 (x_create_toolkit_scroll_bar): Try to detect which style of Xaw3d
944 scrollbar we have so as to set it up more optimally and to fix
945 xaw3d_arrow_scroll and xaw3d_pick_top.
946 (x_set_toolkit_scroll_bar_thumb): Try to maintain 2 spare pixels at the
947 bottom of the Xaw3d scrollbar, to work around its tendency to refuse
948 shrinking the thumb. Also make sure that `XawScrollbarSetThumb'
949 is not ignored, using a major gross hack.
950 (x_initialize): Init default values for xaw3d_arrow_scroll and
951 xaw3d_pick_top.
952
83b6d970
DL
9531999-12-09 Dave Love <fx@gnu.org>
954
955 * frame.h: (PIX_TYPE) [! HAVE_X_WINDOWS]: Define PIX_TYPE.
956
3648c842
GM
9571999-12-08 Gerd Moellmann <gerd@gnu.org>
958
959 * eval.c: Remove conditional compilation on `standalone'.
960 (call_debugger): When entering the debugger while redisplaying,
961 reset redisplaying_p, and go back to the top-level if the debugger
962 returns.
963
05e71564
GM
9641999-12-07 Gerd Moellmann <gerd@gnu.org>
965
966 * xfaces.c (x_set_menu_resources_from_menu_face): Make sure
967 basic faces are realized before trying to use face `menu'.
968
969 * window.c (delete_window): Block input for the time window
970 matrices are being changed.
971
b46cd536
DL
9721999-12-07 Dave Love <fx@gnu.org>
973
974 * lread.c (Fintern_soft): Fix newlines in doc string.
975
96acb1f7
GM
9761999-12-07 Alexandre Oliva <oliva@dcc.unicamp.br>
977
978 * unexelf.c: Include <syms.h>, not <sym.h> on IRIX. Removed
979 duplicate definition of ElfW.
980 (find_section): Copied from unexsgi.c.
981 (unexec): Use find_section. Adjust whitespace. Initialize
982 new_data2_offset based on old_data, not sbss (this fixes a bug on
983 IRIX6). Change #ifdef __mips to __sgi, since it's IRIX-specific.
984 Adjust test for presence of .mdebug section to the new return
985 value of find_section.
986
9871999-12-07 Gerd Moellmann <gerd@gnu.org>
988
989 * unexelf.c: Merge changes from 20.5.
990 (unexec): Handle .lit4 and .lit8 unconditionally.
991
992 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexelf.o instead of
993 unexsgi.o again.
994
995 * m/iris5d.h (UNEXEC): Likewise.
996
7dae4502
SM
9971999-12-06 Stefan Monnier <monnier@cs.yale.edu>
998
999 * editfns.c (Fdelete_and_extract_region): New function.
05e71564
GM
1000 (syms_of_editfns): Register it.
1001 * insdel.c (del_range): Update del_range_1 call.
7dae4502
SM
1002 (del_range_1, del_range_2): Add a ret_string argument to
1003 request that the deleted text be returned.
1004 (del_range_byte, del_range_both): Update del_range_2 call.
05e71564 1005 * lisp.h (del_range_1, del_range_2): Change prototype
7dae4502
SM
1006 * casefiddle.c (casify_region): Update del_range_1 call.
1007 * coding.c (code_convert_region): Update del_range_2 call.
1008 * fileio.c (Finsert_file_contents): Update del_range_2 call.
1009
397e4fae
GM
10101999-12-06 Gerd Moellmann <gerd@gnu.org>
1011
1012 * xfaces.c (set_lface_from_font_name): Fix incomplete merge.
1013
3d973f71
GM
10141999-12-04 Hrvoje Niksic <hniksic@iskon.hr>
1015
1016 * lread.c (Fintern_soft): Accept a symbol argument.
1017
740e985f
EZ
10181999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
1019
1020 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Reduce to 40000.
809f3d51
EZ
1021
1022 * insdel.c (adjust_markers_for_delete): Fix last change.
1023
2d764c78
EZ
10241999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
1025
1026 Changes for automatic remapping of X colors on terminal frames:
1027
1028 * xfaces.c (XColor) [!HAVE_X_WINDOWS]: Provide a typedef for non-X
1029 frames.
1030 (Vface_tty_color_alist): Remove.
1031 (tty_defined_color): New function.
1032 (defined_color): Rewrite to support any type of frame.
1033 (tty_color_name): New function.
1034 (face_color_supported_p, Fface_color_gray_p,
1035 Fface_color_supported_p): Support non-X frames.
1036 (load_color): Enclose the color name in quotes, in the log
1037 messages. Remove DOS-specific version of load_color.
1038 (realize_tty_face): Take the supported colors from
1039 tty-color-alist. Support translation of X colors to the closest
1040 tty color, for both MSDOS and tty frames.
1041 [MSDOS]: Don't invert face colors if they were taken from the
1042 frame colors.
1043 (Fface_register_tty_color, Fface_clear_tty_colors): Remove.
1044
1045 * frame.h (struct x_output) [!MSDOS, !WINDOWSNT, !HAVE_X_WINDOWS]:
1046 Define a mostly empty surrogate.
1047 (tty_display): Declare.
1048
1049 * frame.c (make_terminal_frame) [!macintosh]: Don't use
1050 tty_display.
1051 (Fframe_parameters): Don't invert colors of non-FRAME_WINDOW_P
1052 frames when the frame's param_alist includes 'reverse.
1053 (tty_display): Define.
1054 (make_terminal_frame) [!MSDOS]: Assign &tty_display to the
1055 output_data.x member.
1056 (Fframe_parameters): Return foreground and background color names
1057 on tty frames as well, in addition to MSDOS frames.
1058
1059 * msdos.h (DisplayWidth, DisplayHeight): Changes for Lisp_Object
1060 selected_frame.
1061 (struct x_output): Remove unused members; document who uses each
1062 member.
1063 (FRAME_PARAM_FACES, FRAME_N_PARAM_FACES, FRAME_DEFAULT_PARAM_FACE,
1064 FRAME_MODE_LINE_PARAM_FACE, FRAME_COMPUTED_FACES,
1065 FRAME_N_COMPUTED_FACES, FRAME_SIZE_COMPUTED_FACES,
1066 FRAME_DEFAULT_FACE, FRAME_MODE_LINE_FACE, unload_color): Remove
1067 unused macro definintions.
1068
1069 * msdos.c (IT_set_frame_parameters): Don't call
1070 recompute_basic_faces, the next redisplay will, anyway.
1071 (x_current_display): Remove unused variable.
1072 Many functions: changes for Lisp_object selected_frame.
1073 (IT_set_face): If the tty_reverse_p flag is set for the face,
1074 reverse the foreground and background colors.
1075 (Fmsdos_remember_default_colors): New function.
1076 (syms_of_msdos): Defsubr it.
1077 (IT_set_frame_parameters): Use initial_screen_colors[] when
1078 creating a new frame. If the frame parameters include 'reverse,
1079 swap the foreground and background colors.
1080 (internal_terminal_init): Initialize initial_screen_colors to -1.
1081 (syms_of_msdos): Add DEFVAR_BOOL for x-stretch-cursor, to shut up
1082 cus-start.el.
1083
1084 * Makefile.in (lisp, shortlisp): Add lisp/term/tty-colors.elc.
1085
1086 * xfns.c (x_defined_color): Rename from defined_color. All
1087 callers changed.
1088 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
1089 all callers changed.
1090 (Fxw_color_values): Renamed from Fx_color_values; all callers
1091 changed.
1092 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
1093 callers changed.
1094 (x_window_to_frame, x_any_window_to_frame,
1095 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
1096 x_top_window_to_frame): Use !FRAME_X_P instead of
1097 f->output_data.nothing.
1098 * xterm.h (x_defined_color): Rename from defined_color.
1099
1100 * w32fns.c (x_window_to_frame): Use FRAME_W32_P instead of
1101 f->output_data.nothing.
1102 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
1103 all callers changed.
1104 (Fxw_color_values): Renamed from Fx_color_values; all callers
1105 changed.
1106 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
1107 callers changed.
1108
1109 * dispextern.h (tty_color_name): Add prototype.
1110
1111 * xmenu.c (menubar_id_to_frame): Use FRAME_WINDOW_P instead of
1112 f->output_data.nothing.
1113 * w32menu.c (menubar_id_to_frame): Likewise.
1114 * w32term.h (w32_output): Declare.
1115
1116 * dosfns.c (Qmsdos_color_translate): Remove.
1117 (msdos_stdcolor_name): Now returns a Lisp_Object.
1118 * dosfns.h (Qmsdos_color_translate): Remove.
1119
1120 * s/msdos.h (INTERNAL_TERMINAL): Add entries for color support.
1121
b3e5232e
KH
11221999-12-06 Kenichi Handa <handa@etl.go.jp>
1123
1124 * fileio.c (decide_coding_unwind): Renamed from
1125 set_auto_coding_unwind.
1126 (Finsert_file_contents): Make single unwind protect to call both
1127 Vset_auto_coding_function and Ffind_operation_coding_system.
1128
1129 * insdel.c (adjust_markers_for_delete): Make it non-static.
1130
db0e466c
SM
11311999-12-04 Stefan Monnier <monnier@cs.yale.edu>
1132
1133 * regex.c (regex_compile): Recognize *?, +? and ?? as non-greedy
1134 operators and handle them properly.
1135 * regex.h (RE_ALL_GREEDY): New option.
1136 (RE_UNMATCHED_RIGHT_PAREN_ORD): Moved to the end where alphabetic
1137 sorting would put it.
1138 (RE_SYNTAX_AWK, RE_SYNTAX_GREP, RE_SYNTAX_EGREP)
1139 (_RE_SYNTAX_POSIX_COMMON): Use the new option to keep old behavior.
1140
22afa6e8
DL
11411999-12-04 Dave Love <d.love@dl.ac.uk>
1142
1143 * m/arm.h: New file.
1144
40afb967
DL
11451999-12-03 Dave Love <fx@gnu.org>
1146
1147 * editfns.c (Fmessage_or_box): Use use_dialog_box.
1148
ddf8eff5
GM
11491999-12-02 Gerd Moellmann <gerd@gnu.org>
1150
1151 * s/usg5-4.h (LIBS_SYSTEM): Add -lgen because that's needed
1152 for building with Motif.
1153
1154 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexsgi.o instead of
1155 unexelf.o.
1156
1157 * m/iris5d.h (UNEXEC): Use unexsgi.o instead of unexelf.o.
1158
fa09a82d
DL
11591999-12-01 Dave Love <fx@gnu.org>
1160
1161 * emacs.c (main): Set LANG=C iff AX3_2 defined.
1162
ddf8eff5
GM
11631999-11-28 Gerd Moellmann <gerd@gnu.org>
1164
1165 * systime.h (EMACS_TIME_CMP, EMACS_TIME_EQ, EMACS_TIME_NE)
1166 (EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT,EMACS_TIME_LE): New
1167 macros.
1168
1169 * config.in (HAVE_SETITIMER, HAVE_UALARM): New.
1170
fa09a82d
DL
11711999-11-28 eliz <eliz@dlpx1>
1172
1173 * emacs.c (synchronize_locale): Avoid compiler warnings about
1174 pointer type mismatch.
1175
f9632fc8
GM
11761999-11-28 Gerd Moellmann <gerd@gnu.org>
1177
717d0121
GM
1178 * window.c (Fwindow_end): Don't call temp_set_pt_both with
1179 out of range position.
1180
f9632fc8
GM
1181 * xterm.c (XTread_socket) <ClientMessage, Xatom_Scrollbar>:
1182 Switch off busy-cursor by setting inhibit_busy_cursor to 2.
1183
59c65f1e
EZ
11841999-11-28 Eli Zaretskii <eliz@is.elta.co.il>
1185
613a8346
EZ
1186 * charset.c (Fmake_char_internal): Print the charset ID when
1187 signalling an error.
1188
59c65f1e
EZ
1189 * emacs.c (synchronize_locale): Avoid compiler warnings about
1190 pointer type mismatch.
1191
83c8f461 11921999-11-26 Richard M. Stallman <rms@gnu.org>
d01f3570
RS
1193
1194 * editfns.c (Fdelete_field): Make it noninteractive. Return nil.
1195
18df9369
GM
11961999-11-26 Gerd Moellmann <gerd@gnu.org>
1197
65a3ccf7
GM
1198 * puresize.h (BASE_PURESIZE): Increase to 550000.
1199
b3b98592
GM
1200 * textprop.c (set_text_properties): New function. Like
1201 Fset_text_properties, but with additional parameter
1202 SIGNAL_AFTER_CHANGE_P. If that is nil, don't signal after
1203 changes.
1204 (Fset_text_properties): Use it.
1205
1206 * insdel.c (insert_1_both): Call set_text_properties with last
1207 parameter nil so that no after changes will be signaled.
1208
1209 * lisp.h: Add prototype for set_text_properties.
1210
18df9369
GM
1211 * xfaces.c (set_lface_from_font_name): Fix previous change.
1212 (recompute_basic_faces): Change assert to abort.
1213
71a8e74b
DL
12141999-11-25 Dave Love <fx@gnu.org>
1215
1216 * fns.c (Fnthcdr, Fnreverse): Inline cdr.
1217 (Fmember, Fdelq, Fdelete): Inline car.
1218 (Fy_or_n_p): Doc fix.
1219
bc6a5782
GM
12201999-11-25 Gerd Moellmann <gerd@gnu.org>
1221
3221576b 1222 * xfaces.c (set_lface_from_font_name): New parameter may_fail_p.
18df9369 1223 Callers changed. If specified font name is bogus, and may_fail_p
3221576b
GM
1224 is not set, try to use a reasonable default.
1225
bc6a5782
GM
1226 * dispnew.c (direct_output_for_insert): Set glyph row's
1227 displays_text_p flag. Correct window's window_end_vpos if
1228 necessary.
1229
0c8559bb
PE
12301999-11-25 Paul Eggert <eggert@twinsun.com>
1231
1232 * emacs.c (fixup_locale): Don't bother to record initial locale.
1233 (synchronize_locale): If the desired locale is nil,
1234 treat it as if it were the empty string,
1235 so that we set the locale from the environment.
1236
35737351
KH
12371999-11-25 Kenichi Handa <handa@etl.go.jp>
1238
1239 * fileio.c (Finsert_file_contents): Set buffer-file-coding-system
1240 of the current buffer via Fset.
1241
5562b47f
DL
12421999-11-24 Dave Love <fx@gnu.org>
1243
1244 * xfns.c: Don't duplicate Qdisplay definition done elsewhere.
1245
1246 * xfaces.c: Don't duplicate Qmode_line definition done elsewhere.
1247
1248 * xfns.c: Don't duplicate Qdisplay definition done elsewhere.
1249
00da0e4a
GM
12501999-11-24 Gerd Moellmann <gerd@gnu.org>
1251
1252 * lisp.h (enum pvec_type): Put PVEC_FLAG in #if 0.
1253
1254 * emacs.c (PVEC_FLAG): New variable.
1255
b1775dc1
GM
12561999-11-23 Gerd Moellmann <gerd@gnu.org>
1257
1258 * unexaix.c (unexec): Use unsigned instead of uintptr_t because
1259 that fails on IBM PowerPC, AIX 4.2.
1260
08de6200
EZ
12611999-11-22 Eli Zaretskii <eliz@is.elta.co.il>
1262
1263 * buffer.c (syms_of_buffer): Add %z, %Z, %m and %& to the doc
1264 string of mode-line-format. Remove the obsolete %t.
1265
02fda8ff
GM
12661999-11-22 Gerd Moellmann <gerd@gnu.org>
1267
f2fa858f
GM
1268 * dispnew.c (direct_output_for_insert): Increment glyph positions
1269 for glyphs from buffer text only.
1270
02fda8ff
GM
1271 * emacs.c (gdb_valbits, gdb_gctypebits, gdb_emacs_intbits)
1272 (gdb_data_seg_bits): New variables.
1273
1274 * lisp.h (enum gdb_lisp_params): Put in #if 0, since it doesn't
1275 work on systems not allowing enumerators > INT_MAX, and it
1276 won't work if EMACS_INT is long long.
1277
1b0d24e7
PE
12781999-11-22 Paul Eggert <eggert@twinsun.com>
1279
1280 Port to SunOS 4.1.x again. Help out with Alpha port.
1281 Rename messages-locale to system-messages-locale,
1282 and likewise for time-locale.
1283
1284 * callproc.c (strerror): Remove decl.
1285 * fileio.c (strerror): Likewise.
1286 * process.c (strerror): Likewise.
1287 * emacs.c (strerror): Likewise.
1288 (Vsystem_messages_locale): Renamed from Vmessages_locale.
1289 All uses changed.
1290 (Vprevious_system_messages_locale): Likewise, from
1291 Vprevious_messages_locale.
1292 (Vsystem_time_locale): Likewise, from Vtime_locale.
1293 (Vprevious_system_time_locale): Likewise, from Vprevious_time_locale.
1294 (ABORT_RETURN_TYPE): New macro.
1295 (abort): Return type is now ABORT_RETURN_TYPE.
1296 (main): Always invoke init_signals, even if POSIX_SIGNALS is not
1297 defined.
1298 (syms_of_emacs): messages-locale -> system-messages-locale,
1299 previous-messages-locale -> previous-system-messages-locale,
1300 time-locale -> system-time-locale,
1301 previous-time-locale -> previous-system-time-locale.
1302
1303 * gmalloc.c (PP, __ptr_t): Assume ANSI C if STDC_HEADERS is defined.
1304 (const): Do not define; that's config.h's job.
1305 (<limits.h>): Include if HAVE_LIMITS_H is defined.
1306 (CHAR_BIT): Move test for definedness outside of limits.h condition.
1307 (<stddef.h>): Include if STDC_HEADERS is defined.
1308 (FREE_RETURN_TYPE): New macro.
1309 (free): Return type is now FREE_RETURN_TYPE.
1310
1311 * lisp.h (synchronize_system_time_locale): Renamed from
1312 synchronize_time_locale. All uses changed.
1313 (synchronize_system_messages_locale): Likewise, from
1314 synchronize_messages_locale.
1315
1316 * m/alpha.h (malloc, realloc, calloc): Remove decls;
1317 stdlib.h now does this.
1318
1319 * process.c (sys_siglist): Remove.
1320
1321 * s/sunos4-0.h (ABORT_RETURN_TYPE, FREE_RETURN_TYPE):
1322 New macros.
1323
1324 * syntax.c (scan_sexps_forward): Use abort, not assert.
1325
1326 * sysdep.c (my_sys_siglist): New var.
1327 (sys_siglist): New macro. Remove old initialized vars of same name.
1328 (init_signals): Initialize sys_siglist.
1329
1330 * xfns.c (abort): Remove decl; stdlib.h now does this.
1331
0dcd5b54
DL
13321999-11-18 Dave Love <fx@gnu.org>
1333
946173ad
DL
1334 * filelock.c: Add forward declaration for get_boot_time_1.
1335
0dcd5b54
DL
1336 * dispnew.c (Finternal_show_cursor_p): Fix doc string.
1337
71447e8f
GM
13381999-11-18 Gerd Moellmann <gerd@gnu.org>
1339
1340 * buffer.h (struct buffer_text): Add comment about moving
1341 buffer text if REL_ALLOC is defined.
1342
eeedff63
KH
13431999-11-18 Kenichi Handa <handa@etl.go.jp>
1344
1345 * lisp.h (KEY_DESCRIPTION_SIZE): New macro.
1346
1347 * keyboard.c (echo_char): Use KEY_DESCRIPTION_SIZE to check free
1348 memory for push_key_description.
1349
1350 * keymap.c (Fsingle_key_description): Use KEY_DESCRIPTION_SIZE to
1351 allocate memory for push_key_description.
1352 (describe_buffer_bindings): Likewise.
1353
5d7e4a2c
GM
13541999-11-17 Gerd Moellmann <gerd@gnu.org>
1355
1356 * xfns.c (Fx_show_busy_cursor): Doc-fix.
1357 (Fx_hide_busy_cursor): Ditto.
1358
13591999-11-17 Marco Walther <walther@siemens-pyramid.com>
1360
1361 * unexsni.c (unexec): Handle .rel.dyn section.
1362
b5b41e02
DL
13631999-11-16 Dave Love <fx@gnu.org>
1364
1365 * doc.c (Fdocumentation): Remove gcpro here too.
1366
e35b6123
GM
13671999-11-16 Gerd Moellmann <gerd@gnu.org>
1368
1369 * keyboard.c (command_loop_1): Remove no_redisplay.
1370
83c8f461 13711999-11-16 Richard M. Stallman <rms@gnu.org>
0a14b9bb
GM
1372
1373 * print.c (PRINTPREPARE): Don't call setup_echo_area_for_printing
1374 in noninteractive.
1375
b05d3bee
GM
13761999-11-14 Gerd Moellmann <gerd@gnu.org>
1377
5bcfeb49
GM
1378 * xdisp.c (ensure_echo_area_buffers): New.
1379 (with_echo_area_buffer): Use it.
1380 (setup_echo_area_for_printing): Ditto.
1381
b05d3bee
GM
1382 * buffer.c (indicate-empty-lines): Doc-fix.
1383
9b2e6e4c
GM
13841999-11-12 Gerd Moellmann <gerd@gnu.org>
1385
e7f90eab
GM
1386 * term.c (term_init): If "op" isn't available, don't support color
1387 because we can't switch back to the default foreground and
1388 background.
1389
9b2e6e4c
GM
1390 * doc.c (Fdocumentation_property): Remove GCPRO because
1391 Fsubstitute_command_keys gcpro's the string.
1392
1bf21027
KH
13931999-11-12 Kenichi Handa <handa@etl.go.jp>
1394
1395 * editfns.c (Ftranslate_region): Check the buffer multibyteness.
1396
3bc6df53
GM
13971999-11-11 Gerd Moellmann <gerd@gnu.org>
1398
1399 * print.c, keymap.c, indent.c, insdel.c, keyboard.c, intervals.c,
1400 lread.c, textprop.c, undo.c, emacs.c, lisp.h, intervals.h,
1401 buffer.h, config.in, Makefile.in: Remove USE_TEXT_PROPERTIES.
1402
35a5514b
GM
14031999-11-10 Gerd Moellmann <gerd@gnu.org>
1404
1405 * xfns.c (QCuser_data): Removed.
1406 (syms_of_xfns): Initialization of QCuser_data removed.
1407 (parse_image_spec): Don't handle :user-data specially. Allow
1408 unknown keys. Remove parameter ALLOW_OTHER_KEYS.
1409 (xbm_image_p, xbm_load, xpm_image_p, pbm_image_p, png_image_p)
1410 (tiff_image_p, jpeg_image_p, gif_image_p, gs_image_p): Call
1411 parse_image_spec accordingly.
1412
83c8f461 14131999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
1414
1415 * cmds.c (Fbeginning_of_line): Doc fix.
1416 (Fend_of_line): Doc fix.
1417
1418 * editfns.c (Fline_beginning_position): If N is not 1,
1419 pass t to Fconstrain_to_field for ESCAPE-FROM-EDGE.
1420
1421 * syntax.c (Fforward_word): Handle fields even if would have hit
1422 an edge of the buffer. Return nil if affected by fields.
1423
83c8f461 14241999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
1425
1426 * editfns.c (preceding_pos): Function deleted.
1427 (text_property_stickiness): Decrement POS directly.
1428 Fix a confusion that used PT instead of POS.
1429
1430 * editfns.c (find_field): Properly handle the case
1431 of a field boundary where `field' inherits from neither side.
1432
1433 * editfns.c (Ffield_beginning, Ffield_end): Doc fixes.
1434 (Ferase_field, Ffield_string, Ffield_string_no_properties): Doc fixes.
1435
fa9aabf6
GM
14361999-11-08 Gerd Moellmann <gerd@gnu.org>
1437
1438 * bytecode.c (Fbyte_code) <BinsertN, Bcall>: Do the
1439 BEFORE_POTENTIAL_GC before DISCARD.
1440
4015b3c0
GM
14411999-11-07 Gerd Moellmann <gerd@gnu.org>
1442
033a5fa3
GM
1443 * alloc.c (Fgarbage_collect): Call unmark_byte_stack.
1444
1445 * lisp.h: Add prototype for unmark_byte_stack.
1446
1447 * bytecode.c (mark_byte_stack): Use XMARKBIT and XMARK.
1448 (unmark_byte_stack): Renamed from relocate_byte_pcs. Use
1449 XUNMARK.
1450
55b064bd
GM
1451 * xdisp.c (resize_mini_window): Fix computation of needed
1452 mini-window height.
1453
1454 * alloc.c, buffer.c, editfns.c, xdisp.c: Remove conditional
1455 compilation on USE_TEXT_PROPERTIES.
01e9b9df 1456
4015b3c0
GM
1457 * Fbyte_code: Use block statements in cases and declare v1 and v2
1458 locally there. Rearrange case statements so that thos most
1459 frequently executed come first. Avoid goto's in frequently
1460 executed cases.
1461
fe512f27
GM
14621999-11-05 Gerd Moellmann <gerd@gnu.org>
1463
dd59e217
GM
1464 * bytecode.c (Fbyte_code): Use BEFORE_POTENTIAL_GC and
1465 AFTER_POTENTIAL_GC around internal_catch.
1466
bcf28080
GM
1467 * alloc.c (Fgarbage_collect): Call mark_byte_stack and
1468 relocate_byte_pcs.
1469 (init_alloc_once, init_alloc): Set byte_stack_list to null.
1470
1471 * eval.c (struct catchtag): Add member byte_stack.
1472 (internal_catch, Fcondition_case, internal_condition_case)
dd59e217 1473 (internal_condition_case_1): Save value of byte_stack_list in
bcf28080
GM
1474 catchtag.
1475 (unwind_to_catch): Restore byte_stack_list from catchtag.
1476
1477 * lisp.h: Add prototypes for new functions in bytecode.c.
1478 Add extern declaration for byte_stack_list.
1479
1480 * bytecode.c (struct byte_stack): New.
1481 (byte_stack_list, mark_byte_stack, relocate_byte_pcs): New
1482 (BEFORE_POTENTIAL_GC, AFTER_POTENTIAL_GC): New.
1483 (FETCH, PUSH, POP, DISCARD, TOP, MAYBE_GC): Rewritten.
1484 (HANDLE_RELOCATION): Removed.
1485 (Fbyte_code): Use byte_stack structures.
1486
4d59c34c
GM
1487 * filelock.c (Ffile_locked_p): Make FILENAME a required argument.
1488
fe512f27
GM
1489 * buffer.c (syms_of_buffer): Extend documentation of
1490 mode-line-format.
1491
60b64cd6
GM
14921999-11-04 Gerd Moellmann <gerd@gnu.org>
1493
1494 * editfns.c (Fdelete_field): Renamed from Ferase_field.
1495
1496 * minibuf.c (do_completion, Fminibuffer_complete_word): Use
1497 Ferase_field instead of Fdelete_field.
1498
b51b619b
GM
14991999-11-03 Gerd Moellmann <gerd@gnu.org>
1500
1501 * dispnew.c (Finternal_show_cursor): Change it to set the
1502 cursor on/off, not toggle its state.
1503 (Finternal_show_cursor_p): New.
1504 (syms_of_display): Defsubr Sinternal_show_cursor_p.
1505
5865af0d
DL
15061999-11-03 Dave Love <fx@gnu.org>
1507
1508 * charset.c (split_non_ascii_string): Define return value.
1509
82a700f3
GM
15101999-11-03 Gerd Moellmann <gerd@gnu.org>
1511
edfef199
GM
1512 * minibuf.c (string_to_object): New.
1513 (read_minibuf_noninteractive): New.
1514 (read_minibuf): Call read_minibuf_noninteractive if
1515 noninteractive. Use string_to_object.
1516
82a700f3
GM
1517 * doc.c (Fdocumentation_property): Fix bug bypassing UNGCPRO.
1518
b5540f0d
DL
15191999-11-02 Dave Love <fx@gnu.org>
1520
e69dcd60
DL
1521 * gnu-linux.h: Use SIGCHLD, not SIGCLD (not in glibc 2.1).
1522
827a1788
DL
1523 * process.c: Define _GNU_SOURCE before config.h to get strsignal
1524 declared with glibc2.
b5540f0d 1525
a69a6e61
GM
15261999-11-02 Gerd Moellmann <gerd@gnu.org>
1527
1528 * lisp.h (QUIT): Give it statement form.
1529
87e21fbd
DL
15301999-11-02 Dave Love <fx@gnu.org>
1531
1532 * eval.c (init_eval): Conditionalize declaration of gcpro_level.
1533
1b335865
GM
15341999-11-02 Gerd Moellmann <gerd@gnu.org>
1535
9fb5e03d
GM
1536 * xfns.c (QCuser_data): New.
1537 (syms_of_xfns): Initialize QCuser_data.
1538 (parse_image_spec): Ignore :user-data DATA properties.
1539
1b335865
GM
1540 * xdisp.c (display_line): Set charpos of first glyph in blank
1541 lines not corresponding to any text to -1, even if no glyphs are
1542 filled in in that line.
1543
e76f1c44
GM
15441999-11-01 Gerd Moellmann <gerd@gnu.org>
1545
36fcd3d9
GM
1546 * xfns.c (png_load) [PNG_READ_sRGB_SUPPORTED]: Put code using
1547 png_get_sRGB in #ifdef.
1548
111259b4
GM
1549 * dispnew.c (Finternal_show_cursor): Renamed from Fshow_cursor.
1550 (syms_of_display): Use the new name.
1551
dd5c96e8
GM
1552 * textprop.c (verify_interval_modification): Signal text-read-only
1553 instead of calling error.
1554
db8878fb
GM
1555 * data.c (Qtext_read_only): New built-in error.
1556 (syms_of_data): Initialize it.
1557
1558 * lisp.h: Add extern declaration for Qtext_read_only.
1559
e76f1c44
GM
1560 * syntax.c: Remove whitespace after open or in front of closing
1561 parentheses.
1562
83c8f461 15631999-11-01 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
1564
1565 * Makefile.in (w16select.o, sound.o): Don't depend on lisp.h.
1566
7843e09c
GM
15671999-10-31 Gerd Moellmann <gerd@gnu.org>
1568
575ed805
GM
1569 * xdisp.c (resize_mini_window): Compute needed height differently.
1570
7843e09c
GM
1571 * fns.c (Flength): Unroll loop over lists.
1572
1573 * xdisp.c (append_space): Return non-zero if space was appended.
1574 (display_line): Set charpos of first glyph to -1 only if that
1575 glyph is the space added by append_glyph.
1576
83c8f461 15771999-10-30 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
1578
1579 * print.c (strout): Consider `noninteractive' and use stdout
1580 only when PRINTCHARFUN is t.
1581
1582 * lisp.h (struct gcpro) [DEBUG_GCPRO]: New field `level'.
1583 (gcpro_level): Declare it extern.
1584 [DEBUG_GCPRO] (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5):
1585 Alternate definitions that set `level' and increment `gcpro_level'.
1586 [DEBUG_GCPRO] (UNGCPRO): Alternate definition that checks gcpro_level.
1587
1588 * eval.c [DEBUG_GCPRO] (gcpro_level): New variable.
1589 (init_eval) [DEBUG_GCPRO]: Initialize it.
1590 (unwind_to_catch) [DEBUG_GCPRO]: Set gcpro_level
1591 from remaining gcprolist.
1592
3636f7a3
KH
15931999-10-29 Kenichi Handa <handa@etl.go.jp>
1594
1595 * coding.c (code_convert_region): Update `dst' correctly.
1596
a2ad7096
GM
15971999-10-28 Gerd Moellmann <gerd@gnu.org>
1598
1599 * fns.c (Fmemq, Fassq, Frassq, assq_no_quit, Fassoc)
1600 (Frassoc): Rewritten.
1601
1e3196e8
GM
16021999-10-27 Noah Friedman <friedman@splode.com>
1603
1604 * s/gnu-linux.h [HAVE_DEV_PTMX]: Redefine FIRST_PTY_LETTER to 'z'.
1605 Define PTY_NAME_SPRINTF.
1606 Redefine PTY_TTY_NAME_SPRINTF.
1607 * config.in: Add undef for HAVE_DEV_PTMX.
1608
83c8f461 16091999-10-26 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
1610
1611 * regex.c (POP_FAILURE_POINT): Use failure_id.integer
1612 as arg to DEBUG_POP and DEBUG_PRINT.
1613
83c8f461 16141999-10-27 Richard M. Stallman <rms@gnu.org>
17dbfaad
GM
1615
1616 * data.c (Qad_activate_internal): Renamed from Qad_activate.
1617 (Ffset): Call Qad_activate_internal.
1618 (syms_of_data): Initialize Qad_activate_internal.
1619
26922151
GM
16201999-10-27 Gerd Moellmann <gerd@gnu.org>
1621
1622 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing if
1623 Vterminal_frame is selected and Vwindow_system is non-nil.
1624
67a5596f
GM
16251999-10-26 Gerd Moellmann <gerd@gnu.org>
1626
2bea706b
GM
1627 * xdisp.c (echo_area_display): Put previous change in #if 0.
1628
67a5596f
GM
1629 * emacs.c (standard_args): Add `file' as synonym for `visit',
1630 `execute' as synonym for `eval'.
1631 (main): Add new options to usage message.
1632
81dc5de5
GM
16331999-10-25 Gerd Moellmann <gerd@gnu.org>
1634
1635 * data.c (Qhash_table): New.
1636 (Ftype_of): Return it for hash tables.
1637 (syms_of_data): Initialize Qhash_table.
1638
83c8f461 16391999-10-25 Richard M. Stallman <rms@gnu.org>
bd3c545d
GM
1640
1641 * regex.c (POP_FAILURE_POINT): Extract failure_id as an integer.
1642
3a7093d8
KR
16431999-10-24 Ken Raeburn <raeburn@raeburn.org>
1644
7539e11f
KR
1645 * alloc.c: Undef HIDE_LISP_IMPLEMENTATION before including
1646 lisp.h.
1647
1648 * buffer.c (Fbuffer_list, Fget_file_buffer, get_truename_buffer,
1649 Fbuffer_local_variables, Fother_buffer, record_buffer,
1650 set_buffer_internal_1, Fbury_buffer, Fkill_all_local_variables,
1651 swap_out_buffer_local_variables, overlays_at, overlays_in,
1652 overlay_touches_p, overlay_strings, recenter_overlay_lists,
1653 fix_overlays_in_range, fix_overlays_before, Foverlay_get,
1654 Foverlay_put, report_overlay_modification, evaporate_overlays):
1655 Use XCAR, XCDR, and XFLOAT_DATA instead of explicit member
1656 references.
1657 * data.c (Fcar, Fcar_safe, Fcdr, Fcdr_safe, Fsetcar, Fsetcdr,
1658 swap_in_symval_forwarding, set_internal, default_value,
1659 Fset_default, Fmake_variable_buffer_local, Fmake_local_variable,
1660 Fmake_variable_frame_local, Flocal_variable_p,
1661 Flocal_variable_if_set_p, arithcompare, Fzerop, cons_to_long,
1662 Fnumber_to_string, float_arith_driver, Fadd1, Fsub1): Likewise.
1663 * dispnew.c (Fframe_or_buffer_changed_p): Likewise.
1664 * emacs.c (main): Likewise.
1665 * fontset.c (fs_load_font, fs_register_fontset,
1666 CACHED_FONTSET_NAME, CACHED_FONTSET_REGEX, Fquery_fontset,
1667 Fnew_fontset, Fset_fontset_font): Likewise.
1668 * frame.c (do_switch_frame, next_frame, prev_frame,
1669 other_visible_frames, Fdelete_frame, Fvisible_frame_list):
1670 Likewise.
1671 * keyboard.c (read_char, help_char_p, event_to_kboard,
1672 kbd_buffer_get_event, timer_start_idle, timer_check,
1673 make_lispy_event, apply_modifiers, reorder_modifiers,
1674 Fevent_convert_list, lucid_event_type_list_p, menu_bar_items,
1675 menu_bar_one_keymap, menu_item_eval_property_1, parse_menu_item,
1676 tool_bar_items, read_char_x_menu_prompt, read_key_sequence,
1677 Fcommand_execute, Fexecute_extended_command): Likewise.
1678 * minibuf.c (read_minibuf, get_minibuffer, Ftry_completion,
1679 Fall_completions): Likewise.
1680 * window.c (Fset_window_margins): Likewise.
1681
1682 * callint.c (quotify_args): Don't explicitly use struct
1683 Lisp_Cons, use Lisp_Object and XCAR/XCDR instead.
1684
3a7093d8
KR
1685 * s/netbsd.h (HAVE_GETLOADAVG): Define as 1.
1686 (UNEXEC, START_FILES, LIB_STANDARD, LIB_GCC): Define ELF versions,
1687 if __ELF__ is defined.
1688
2a3d7146
GM
16891999-10-24 Gerd Moellmann <gerd@gnu.org>
1690
1691 * window.c (Fnext_window): Add a QUIT in the loop.
1692
8ac52782
GM
16931999-10-23 Gerd Moellmann <gerd@gnu.org>
1694
1695 * Makefile.in (bootstrap, bootstrap-emacs, bootstrap-temacs):
1696 New targets.
1697
05f0d15a
DL
16981999-10-22 Dave Love <fx@gnu.org>
1699
1700 * emacs.c (main): Enable profiling conditional on __linux also.
1701
882fb0e6
GM
17021999-10-20 Gerd Moellmann <gerd@gnu.org>
1703
1704 * xrdb.c (x_load_resources): Set default resources for resource
1705 classes instead of for the specific Emacs.
1706
b5f5bc31
GM
17071999-10-19 Gerd Moellmann <gerd@gnu.org>
1708
66f4dd69
GM
1709 * s/freebsd.h (HAVE_GETLOADAVG): Define as 1 because config.h
1710 defines it that way.
1711
b5f5bc31
GM
1712 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing
1713 if selected_frame is equal to Vterminal_frame.
1714
68c45bf0
PE
17151999-10-19 Paul Eggert <eggert@twinsun.com>
1716
1717 Add support for large files, 64-bit Solaris, system locale codings.
1718
1719 * Makefile.in (emacs): Set the LC_ALL environment variable to "C"
1720 when dumping, so that the dumped Emacs doesn't have stray locale info.
1721 (dired.o): Depend on systime.h.
1722 (editfns.o): Depend on coding.h.
1723
1724 * alloc.c, buffer.c, callproc.c, ccl.c, charset.c, coding.c, data.c,
1725 dispnew.c, editfns.c, emacs.c, filelock.c, floatfns.c, hftctl.c,
1726 keyboard.c, process.c, sysdep.c, unexelf.c, unexhp9k800.c,
1727 unexsunos4.c, vmsfns.c, vmsgmalloc.c, w32faces.c, w32menu.c, w32term.c,
1728 w32xfns.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
1729 Include <config.h> before any system include files.
1730
1731 * alloc.c, buffer.c, ccl.c, data.c, editfns.c, emacs.c, eval.c,
1732 fileio.c, filelock.c, frame.c, insdel.c, keymap.c, lread.c,
1733 m/alpha.h, print.c, search.c, sysdep.c, xdisp.c, xfaces.c, xfns.c,
1734 xmenu.c, xterm.c:
1735 Do not include <stdlib.h>, as <config.h> does this now.
1736
1737 * callproc.c (Fcall_process):
1738 Synchronize messages locale before invoking strerror.
1739 Decode resulting string with locale-coding-system.
1740
1741 * coding.c (Vlocale_coding_system): New var.
1742 (syms_of_coding): Adjust to above change.
1743 (emacs_strerror): New function.
1744
1745 * coding.h (emacs_strerror, Vlocale_coding_system): New decls.
1746
1747 * config.in (HAVE_STDIO_EXT_H, HAVE_TM_GMTOFF, HAVE___FPENDING,
1748 HAVE_FTELLO, HAVE_GETLOADAVG, HAVE_MBLEN, HAVE_MBRLEN,
1749 HAVE_STRSIGNAL): New macros.
1750 (BITS_PER_LONG): Default to 64 if _LP64 is defined.
1751 <stdlib.h>: Include if HAVE_STDLIB_H is defined and NOT_C_CODE isn't.
1752
1753 * dired.c: Include "systime.h".
1754 (Ffile_attributes): Do not cast s.st_size to int; this loses
1755 information if int is 32 bits but st_size and EMACS_INT are larger.
1756 Treat large device numbers like large inode numbers.
1757
1758 * dispnew.c (PENDING_OUTPUT_COUNT): Use __fpending if available.
1759
1760 * editfns.c: Include coding.h.
1761 (emacs_strftime): Remove decl.
1762 (emacs_strftimeu): New decl.
1763 (emacs_memftimeu): Renamed from emacs_memftime; new arg UT.
1764 Use emacs_strftimeu instead of emacs_strftime.
1765 (Fformat_time_string): Convert format string using
1766 Vlocale_coding_system, and convert result back. Synchronize time
1767 locale before invoking lower level function. Invoke
1768 emacs_memftimeu, passing ut, instead of emacs_memftime.
1769
1770 * emacs.c: Include <locale.h> if HAVE_SETLOCALE is defined.
1771 (Vmessages_locale, Vprevious_messages_locale, Vtime_locale,
1772 Vprevious_time_locale): New variables.
1773 (main): Invoke setlocale early, so that initial error messages are
1774 localized properly. But skip locale-setting if LC_ALL is "C".
1775 Fix up locale when it's safe to do so.
1776 (fixup_locale): Moved here from xterm.c.
1777 (synchronize_locale, synchronize_time_locale,
1778 synchronize_messages_locale): New functions.
1779 (syms_of_emacs): Accommodate above changes.
1780
1781 * fileio.c (report_file_error): Convert strerror output according
1782 to Vlocale_coding_system.
1783 (Finsert_file_contents): Check for arithmetic overflow in
1784 computations that depend on file size. Report IO errors
1785 with emacs_strerror, not strerror.
1786
1787 * fns.c (Fgethash): Declare dflt parameter.
1788
1789 * gmalloc.c: Do not define const to nothing if HAVE_CONFIG_H
1790 is defined; that's config.h's job.
1791
1792 * lisp.h (EMACS_INT, BITS_PER_EMACS_INT, EMACS_UINT): If _LP64,
1793 default these values to long, BITS_PER_LONG, and unsigned long.
1794 (VALBITS, MARKBIT, XINT): Do not assume 32-bit EMACS_INT.
1795 (PNTR_COMPARISON_TYPE): Default to EMACS_UINT, not to unsigned int.
1796 (code_convert_string_norecord, fixup_locale,
1797 synchronize_messages_locale, synchronize_time_locale,
1798 emacs_open, emacs_close, emacs_read, emacs_write): New decls.
1799 All Emacs callers of open, close, read, write changed to use
1800 emacs_open, emacs_close, emacs_read, emacs_write.
1801
1802 * lread.c (file_offset, file_tell): New macros. All uses of ftell
1803 changed to file_tell.
1804 (saved_doc_string_position, prev_saved_doc_string_position): Now
1805 of type file_offset.
1806 (init_lread): Do not fix locale here; fixup_locale now does this.
1807
1808 * m/amdahl.h, s/usg5-4.h:
1809 (NSIG): Remove.
1810 (NSIG_MINIMUM): New macro.
1811
1812 * m/cydra5.h, m/dpx2.h, m/mips.h, m/pfa50.h, m/sps7.h, m/stride.h,
1813 m/ustation.h, s/gnu-linux.h, s/hpux.h, s/iris3-5.h, s/iris3-6.h,
1814 s/umips.h, s/usg5-4.h:
1815 (SIGIO): Do not undef.
1816 (BROKEN_SIGIO): New macro.
1817
1818 * m/ustation.h:
1819 (SIGTSTP): Do not undef.
1820 (BROKEN_SIGTSTP): New macro.
1821
1822 * s/gnu-linux.h:
1823 (SIGPOLL, SIGURG): Do not undef.
1824 (BROKEN_SIGPOLL, BROKEN_SIGURG): New macros.
1825
1826 * s/ptx4.h:
1827 (SIGINFO): Do not undef.
1828 (BROKEN_SIGINFO): New macros.
1829
1830 * m/delta.h, s/ptx.h, s/template.h: Doc fix.
1831
1832 * mktime.c, strftime.c: Update to glibc 2.1.2 version, with
1833 some Emacs-related changes merged.
1834
1835 * print.c (float_to_string): Prepend "-" to representation of a
1836 NaN if the NaN is negative.
1837
1838 * process.c (sys_siglist): Omit if HAVE_STRSIGNAL.
1839 (wait_reading_process_input): Use emacs_strerror, not strerror.
1840
1841 * process.c (status_message, sigchld_handler): Synchronize locale,
1842 then use strsignal istead of sys_siglist.
1843 * w32proc.c (sys_wait): Likewise.
1844
1845 * s/aix3-1.h, s/bsd4-1.h, s/dgux.h, s/gnu-linux.h, s/hiuxmpp.h,
1846 s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/osf1.h, s/rtu.h,
1847 s/sunos4-1.h, s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h,
1848 s/usg5-2.h, s/usg5-3.h, s/xenix.h:
1849 (open, close, read, write, INTERRUPTIBLE_OPEN,
1850 INTERRUPTIBLE_CLOSE, INTERRUPTIBLE_IO): Remove.
1851
1852 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): New macros.
1853
1854 * sysdep.c (sys_read, sys_write, read, write, sys_close, close,
1855 sys_open, open): Remove.
1856 (emacs_open, emacs_close, emacs_read, emacs_write): Always define;
1857 the old INTERRUPTIBLE_OPEN, INTERRUPTIBLE_CLOSE, and INTERRUPTIBLE_IO
1858 macros are no longer used.
1859 (emacs_open): Renamed from sys_open. Merge BSD4_1 version.
1860 (emacs_close): Renamed from sys_close.
1861 (emacs_read): Renamed from sys_read.
1862 (emacs_write): Renamed from sys_write.
1863 (sys_siglist): Do not declare if HAVE_STRSIGNAL.
1864 (dup2): Do not print error on failure; the real dup2 doesn't.
1865 (strsignal): New function, defined if !HAVE_STRSIGNAL.
1866
1867 * syssignal.h (SIGINFO): Undef if defined and if BROKEN_SIGINFO
1868 is defined.
1869 (SIGIO, SIGPOLL, SIGTSTP, SIGURG): Likewise.
1870 (NSIG): If less than NSIG_MINIMUM, define to NSIG_MINIMUM.
1871 (strsignal): Declare if !HAVE_STRSIGNAL.
1872
1873 * unexelf.c (ElfBitsW, ELFSIZE, ElfExpandBitsW): New macros.
1874 (ElfW): Define in terms of ElfExpandBitsW.
1875
1876 * w32proc.c (sys_siglist): Remove decl.
1877
1878 * xdisp.c (decode_mode_spec): 3rd arg is int, not char, to comply
1879 with ANSI C.
1880 (display_string): Declare face_string_pos arg.
1881
1882 * xfns.c (Fx_show_tip): Declare timeout param.
1883
1884 * xterm.c: No need to include locale.h.
1885 (x_alloc_lighter_color, x_setup_relief_color):
1886 Pass arg as double, not float, for compatibility with ANSI C.
1887 (fixup_locale): Move to emacs.c.
1888 (x_term_init): Do not setlocale or fixup locale; the main program
1889 does this now.
1890
2f0b74ea
DL
18911999-10-18 Dave Love <fx@gnu.org>
1892
1893 * doc.c (Fdocumentation_property): Gcpro `tem'.
1894
471aa4a0
KH
18951999-10-18 Kenichi Handa <handa@etl.go.jp>
1896
1897 * lread.c (Fload): Calculate bytes of filename correctly.
1898 (openp): Likewise.
1899
aca2020b
KH
19001999-10-18 Keisuke Nishida <kxn30@po.cwru.edu>
1901
1902 * print.c (print_preprocess): In case print-circle is nil,
1903 add OBJ to Vprint_number_table only when OBJ is a symbol.
1904
1f5fe392 19051999-10-18 Kenichi Handa <handa@etl.go.jp>
b843d1ae
KH
1906
1907 * coding.c (code_convert_string): Add record_unwind_protect to
1908 assure setting inhibit_pre_post_conversion back to zero. Take
1909 care of the multibyteness of the working buffer.
1910
1911 * coding.c (inhibit_pre_post_conversion): New variable.
1912 (setup_coding_system): If inhibit_pre_post_conversion is nonzero,
1913 ignore post-read-conversion and pre-write-conversion property of
1914 the coding system.
1915 (code_convert_region_unwind): New function.
1916 (code_convert_region): Set inhibit_pre_post_conversion to 1 while
1917 running pre-write-conversion and post-read-conversion.
1918 (code_convert_string): Likewise.
1919
cd876a91
GM
19201999-10-17 Miles Bader <miles@gnu.org>
1921
1922 * editfns.c: Doc fix.
1923
19241999-10-17 Miles Bader <miles@gnu.org>
1925
1926 * editfns.c (Fconstrain_to_field): Make sure we don't violate the
1927 argument preconditions of find_before_next_newline in the case
1928 where both ONLY_IN_LINE and ESCAPE_FROM_EDGE are set and OLD_POS
1929 was indeed at the edge.
1930
19311999-10-17 Miles Bader <miles@gnu.org>
1932
1933 * minibuf.c (Fminibuffer_complete_and_exit): Supply value for new
1934 ESCAPE_FROM_EDGE parameter to Ffield_beginning.
1935
1936 * editfns.c (text_property_eq, text_property_stickiness): Don't
1937 use initializers for auto variables of type Lisp_Object.
1938 (find_field): Likewise. Use braces around nested ifs.
1939 (Fline_end_position): Store the raw eol in a variable, so that the
1940 final expression doesn't look so ugly.
1941 (Fconstrain_to_field): Doc fix.
1942 (preceding_pos): Renamed from `preceeding_pos'.
1943 (text_property_stickiness, find_field): Call preceding_pos,
1944 not preceeding_pos.
1945
19461999-10-17 Miles Bader <miles@gnu.org>
1947
1948 * editfns.c (Ffield_string_no_properties): New function.
1949 (text_property_stickiness, preceeding_pos): New functions.
1950 (Ffield_string): Remove PROPS parameter.
1951 (find_field): Add MERGE_AT_BOUNDARY parameter.
1952 Rewrite to use stickiness of `field' property to resolve
1953 ambiguous cases.
1954 (Ffield_beginning, Ffield_end): Add ESCAPE_FROM_EDGE parameter.
1955 (Fconstrain_to_field): Likewise.
1956 (syms_of_editfns): Init Sfield_string_no_properties.
1957 (Ffield_string, Ferase_field, Ffield_end):
1958 Supply new MERGE_AT_BOUNDARY argument to find_field.
1959 (Fline_beginning_position, Fline_end_position): Supply new
1960 ESCAPE_FROM_EDGE parameter to Fconstrain_to_field.
1961 Pass a value of Qt for the ONLY_IN_LINE argument to
1962 Fconstrain_to_field (only matters if N != 1).
1963 * syntax.c (Fforward_word): Supply new ESCAPE_FROM_EDGE parameter
1964 to Fconstrain_to_field.
1965
1966 * minibuf.c (Fminibuffer_complete_word): Use
1967 Ffield_beginning to find the prompt end.
1968
19691999-10-17 Miles Bader <miles@gnu.org>
1970
1971 * editfns.c (Fconstrain_to_field): Add get/set-current-point
1972 behavior when NEW_POS is nil.
1973 (find_field): Use XSETFASTINT instead of make_number.
1974 * minibuf.c (Fminibuffer_complete_and_exit): Test for an empty
1975 input string by seeing where the field begins, instead of
1976 looking at text-properties.
1977
19781999-10-17 Miles Bader <miles@gnu.org>
1979
1980 * editfns.c (Qfield): New variable.
1981 (find_field, Ferase_field, Ffield_string,
1982 Ffield_beginning, Ffield_end, Fconstrain_to_field): New functions.
1983 (Fline_beginning_position, Fline_end_position): Constrain to any field.
1984 (make_buffer_string_both): Remove minibuffer-prompt hack.
1985 (syms_of_editfns): Initialize Qfield, and subr entries for
1986 field functions above.
1987 * minibuf.c (read_minibuf): Don't save minibuffer prompt length on
1988 minibuf_save_list.
1989 Don't initialize minibuffer prompt length.
1990 Wrap prompt text-properties around the entire prompt.
1991 Add 'prompt text-property to prompt.
1992 Get final value with Ffield_string instead of make_buffer_string.
1993 (read_minibuf_unwind): Don't restore minibuffer prompt length from
1994 minibuf_save_list.
1995 (do_completion): Get minibuffer input with Ffield_string
1996 instead of Fbuffer_string.
1997 Erase minibuffer input with Ferase_field instead of erase_buffer.
1998 (Fminibuffer_complete_and_exit): Likewise.
1999 Test whether buffer is empty by looking for the 'prompt text
2000 property at the end.
2001 Set prompt length by looking for the end of the prompt text property,
2002 and save prompt length for later use (since there is no longer a
2003 buffer variable to get it from).
2004 (Fminibuffer_prompt_width, Fminibuffer_prompt_end): Functions removed.
2005 (syms_of_minibuf): Remove initializations of
2006 Sminibuffer_prompt_width and Sminibuffer_prompt_end.
2007 * buffer.h (struct buffer): Remove prompt_end_charpos field.
2008 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer, Fkill_buffer):
2009 Don't initialize prompt_end_charpos field.
2010 * syntax.c (Fforward_word): Likewise.
2011 Constrain to any field.
2012
3f6f7508
GM
20131999-10-16 Gerd Moellmann <gerd@gnu.org>
2014
2015 * window.c (enum save_restore_action): New.
2016 (save_restore_orig_size): Change parameter list. Add
2017 functionality to check for valid orig_top and orig_height members
2018 in a window tree.
2019 (grow_mini_window): Call save_restore_orig_size with new parameter
2020 list.
2021 (shrink_mini_window): Restore old window sizes only if old
2022 size information is valid in all windows in a window tree.
2023
06482119
GM
20241999-10-15 Gerd Moellmann <gerd@gnu.org>
2025
2710454d
GM
2026 * xmenu.c (set_frame_menubar): Don't call
2027 x_set_menu_resources_from_menu_face here.
2028 (update_frame_menubar): Call x_set_menu_resources_from_menu_face.
2029
06482119
GM
2030 * xfns.c (gif_load): Fix handling of interlaced GIFs.
2031
17fa2837
DL
20321999-10-14 Dave Love <fx@gnu.org>
2033
2034 * xdisp.c (handle_fontified_prop): GCPRO `pos'.
2035
45f93416
GM
20361999-10-14 Gerd Moellmann <gerd@gnu.org>
2037
2038 * process.c (Fopen_network_stream): Don't loop if gethostbyname
2039 fails and h_errno is TRY_AGAIN.
2040
c765b723
DL
20411999-10-13 Dave Love <fx@gnu.org>
2042
2043 * filelock.c (lock_file): Move gcpro of `fn'.
2044
dace7f4e
GM
20451999-10-10 Gerd Moellmann <gerd@gnu.org>
2046
2047 * keyboard.c (auto-save-interval): Fix documentation.
2048
83c8f461 20491999-10-09 Richard M. Stallman <rms@gnu.org>
73fb36f1
RS
2050
2051 * print.c (print): When removing objects from Vprint_number_table,
2052 only scan the newly added objects.
2053 (print_preprocess): If OBJ is a gensym, and print-continuous-numbering,
2054 unconditionally force it to stay in the table.
2055
85177c86
GM
20561999-10-09 Gerd Moellmann <gerd@gnu.org>
2057
2058 * xfns.c (prepare_image_for_display): Don't try to load image if
2059 loading it failed before.
2060 (lookup_image, prepare_image_for_display): Remember if loading the
2061 image failed.
2062 (xpm_load): Add missing UNBLOCK_INPUT.
2063
2064 * dispextern.h (struct image): New member load_failed_p.
2065
11e4de5d
SM
20661999-10-08 Stefan Monnier <monnier@cs.yale.edu>
2067
f28eba7b 2068 * fileio.c (Fmake_temp_name): Add a reference to `make-temp-file'
11e4de5d
SM
2069 in the docstring.
2070
f1da8f06
GM
20711999-10-08 Gerd Moellmann <gerd@gnu.org>
2072
2073 * xterm.c (XTread_socket) <ClientMessage, WM_TAKE_FOCUS>:
2074 Don't call XSetInputFocus because that can generate additional
2075 FocusIn events.
2076
c37bbd4f
GM
20771999-10-07 Jeffrey C Honig <jch@bsdi.com>
2078
2079 * bsdos4.h [HAVE_LIBNCURSES]: Define TERMINFO and LIBS_TERMCAP.
2080
83c8f461 20811999-10-07 Richard M. Stallman <rms@gnu.org>
78cc5c64
GM
2082
2083 * process.c (wait_reading_process_input): When trying to suck
2084 input from one process, for accept-process-output,
2085 exit that loop if we get EAGAIN or EWOULDBLOCK.
2086
577d9e2f
GM
20871999-10-07 Gerd Moellmann <gerd@gnu.org>
2088
2089 * xfaces.c (Qbitmap_spec_p): Replaces Qpixmap_spec_p.
2090 (Fbitmap_spec_p): Replaces Fpixmap_spec_p.
2091 (load_pixmap): Use Fbitmap_spec_p and Qbitmap_spec_p instead of
2092 Fpixmap_spec_p and Qpixmap_spec_p.
2093 (load_face_colors, check_lface_attrs,
2094 merge_face_vector_with_property,
2095 Finternal_set_lisp_face_attribute): Use Fbitmap_spec_p.
2096 (syms_of_xfaces): Initialize Qbitmap_spec_p, defsubr
2097 Fbitmap_spec_p.
2098
f5737ad2
GM
20991999-10-07 Gerd Moellmann <gerd@gnu.org>
2100
2101 * xdisp.c (display_menu_bar): Use MENU_FACE_ID instead of
2102 MODE_LINE_FACE_ID.
2103
2104 * xfaces.c (toplevel) [USE_MOTIF]: Include some Motif headers.
2105 (struct x_resources) [USE_X_TOOLKIT]: New.
2106 (xm_apply_resources, xm_set_menu_resources_from_menu_face)
2107 [USE_MOTIF]: New.
2108 (xl_apply_resources, xl_set_menu_resources_from_menu_face)
2109 [USE_LUCID]: New.
2110 (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]: New.
2111 (Qmenu): New.
2112 (syms_of_xfaces): Initialize Qmenu.
2113 (realize_basic_faces): Realize face `menu'.
2114 (resolve_face_name): New.
2115 (lface_from_face_name): Use it.
2116 (Finternal_set_lisp_face_attribute): Ditto.
2117 (Fpixmap_spec_p): Rewritten. Extend doc string.
2118
2119 * xmenu.c (set_frame_menubar, xmenu_show): Call
2120 x_set_menu_resources_from_menu_face.
2121
2122 * dispextern.h (enum face_id): Add MENU_FACE_ID.
2123 (toplevel): Include X11/Intrinsic.h.
2124
6a1aa823
DL
21251999-10-03 Ken'ichi Handa <handa@gnu.org>
2126
2127 * coding.c (DECODE_CHARACTER_ASCII): Decode ASCII invocated to GR
2128 correctly.
2129
26901792
DL
21301999-09-30 Kenichi Handa <handa@etl.go.jp>
2131
2132 * category.c (modify_lower_category_set): Set default value of
2133 TABLE correctly.
2134
2135 * minibuf.c (Fminibuffer_complete_word): Calculate string byte
2136 size correctly.
2137
21381999-09-29 Gerd Moellmann <gerd@gnu.org>
2139
2140 * editfns.c (Fpropertize): Renamed from Fproperties.
2141
21421999-09-29 Gerd Moellmann <gerd@gnu.org>
2143
2144 * xdisp.c (resize_mini_window): Do nothing if frame is an X
2145 frame that hasn't been initialized yet.
2146
83c8f461 21471999-09-28 Richard M. Stallman <rms@gnu.org>
a04f1a93
PR
2148
2149 * keymap.c (Fsingle_key_description): Make tem big enough.
2150 (describe_buffer_bindings): Make buf big enough.
2151
83c8f461 21521999-09-27 Richard M. Stallman <rms@gnu.org>
d177c583
PR
2153
2154 * intervals.c (get_local_map): Use indirect_function,
2155 not Findirect_function.
2156
26901792
DL
21571999-09-27 Dave Love <fx@gnu.org>
2158
2159 * cm.h: Remove unneeded declaration of ospeed.
2160
21611999-09-26 Gerd Moellmann <gerd@gnu.org>
2162
2163 * lisp.h (toplevel): Add prototype for
2164 next_single_char_property_change.
2165
2166 * textprop.c (next_single_char_property_change): New.
2167
2168 * xdisp.c (display_prop_end, invisible_text_between_p): Use
2169 next_single_char_property_change.
2170
21711999-09-25 Gerd Moellmann <gerd@gnu.org>
2172
2173 * editfns.c (Fproperties): New.
2174 (syms_of_editfns): Defsubr it.
2175
2176 * xfns.c (lookup_image): Set image's timestamp because it's
2177 used when we look it up.
2178
21791999-09-23 Gerd Moellmann <gerd@gnu.org>
2180
2181 * window.c (enlarge_window): Add window parameter instead of using
2182 selected_window.
2183 (Fdisplay_buffer): Call it with window parameter instead of
2184 setting selected_window.
2185 (Fenlarge_window, Fshrink_window): Ditto.
2186 (shrink_mini_window): If there is no recorded height and position
2187 info, resize mini-window to height 1.
2188
2189 * xfns.c (image_error): Use add_to_log.
2190
2191 * xfaces.c (load_pixmap): Call add_to_log without frame parameter.
2192 (load_face_font_or_fontset, load_color,
2193 merge_face_vector_with_property): Ditto.
2194
2195 * dispextern.h: Add prototype for add_to_log.
2196
2197 * xfaces.c (add_to_log): Move to xdisp.c.
2198
2199 * xdisp.c (add_to_log): Moved from xfaces.c. Remove frame
2200 parameter.
2201
22021999-09-23 Gerd Moellmann <gerd@gnu.org>
2203
2204 * xterm.c (XTread_socket) <MotionNotify>: Change #ifdef
2205 USE_X_TOOLKIT to #ifdef USE_TOOLKIT_SCROLL_BARS.
2206
2207 * xdisp.c (resize_mini_window): Use grow_mini_window and
2208 shrink_mini_window.
2209
2210 * window.c (window_min_size): Add parameter ignore_fixed_p.
2211 (change_window_height): Call window_min_size with new parameter.
2212 (shrink_window_lowest_first, save_restore_orig_size,
2213 grow_mini_window, shrink_mini_window): New.
2214 (make_window, replace_window): Initialize orig_top and
2215 orig_height.
2216 (enlarge_window): Renamed from change_window_height. Make it
2217 static.
2218 (Fdisplay_buffer, Fenlage_window, Fshrink_window): Call
2219 enlarge_window instead of change_window_height.
2220
2221 * window.h (struct window): New members orig_top, orig_height.
2222 (toplevel): Add prototypes for grow_mini_window and
2223 shrink_mini_window. Remove prototype for change_window_height.
2224
22251999-09-21 Eli Zaretskii <eliz@gnu.org>
2226
2227 * frame.c (frame_name_fnn_p): Fix previous change.
2228
22291999-09-20 Gerd Moellmann <gerd@gnu.org>
2230
2231 * minibuf.c (toplevel): Move include of stdio.h to other includes.
2232
2233 * dispnew.c (direct_output_for_insert): Cast arguments to
2234 safe_bcopy to char *.
2235
2236 * lread.c (readchar): Remove unused variables.
2237 (read_filtered_event, read1, Fmapatoms): Ditto.
2238 (toplevel): Include intervals.h.
2239
2240 * eval.c (Fsignal): Remove unused variables.
2241 (Fcommandp, do_autoload): Ditto.
2242
2243 * lisp.h: Add prototype for safe_bcopy, fatal.
2244
2245 * editfns.c (init_editfns): Remove unused variables.
2246 (Fgoto_char, Fchar_after, Fformat): Ditto.
2247 (message_text, message_length): Put in #ifndef HAVE_MENUS.
2248
2249 * data.c (find_symbol_value): Remove unused variables.
2250 (Faref, Fstring_to_number): Ditto.
2251 (toplevel): Include stdio.h.
2252 (Fnumber_to_string): Cast XINT to long for %ld.
2253
2254 * casefiddle.c (casify_object): Remove unused variables.
2255 (casify_region): Ditto.
2256
2257 * filelock.c (get_boot_time): Put local variable used in
2258 conditinally compiled section in #ifdef.
2259 (toplevel): Include stdio.h.
2260
2261 * keymap.c (Flookup_key, Faccessible_keymaps, describe_vector,
2262 keys_of_keymap, syms_of_keymap): Remove unused variables.
2263
22641999-09-20 Gerd Moellmann <gerd@gnu.org>
2265
2266 * xdisp.c (sync_frame_with_window_matrix_rows): Disable frame rows
2267 whose corresponding window rows have been disabled in
2268 try_window_id.
2269
22701999-09-20 Gerd Moellmann <gerd@gnu.org>
2271
2272 * xdisp.c (compute_window_start_on_continuation_line): Handle case
2273 that window start is out of range.
2274 (handle_display_prop, handle_single_display_prop): Replace
2275 marginal area specifications like `left-margin' with `(margin
2276 left-margin)'.
2277 (Qmargin): New.
2278 (syms_of_xdisp): Initialize Qmargin.
2279
22801999-09-19 Gerd Moellmann <gerd@gnu.org>
2281
2282 * syntax.c (update_syntax_table, find_defun_start, back_comment,
2283 describe_syntax, skip_chars): Remove unused variables.
2284 (back_comment, forw_comment): Add braces to if-statement with
2285 if-else as dependent statement.
2286
2287 * process.c (list_processes_1): Remove unused variables.
2288 (Fopen_network_stream, create_process): Add parentheses to
2289 conditional expressions.
2290 (create_process): Put declaration of sigchld in #if 0.
2291 (Fopen_network_stream): Removed unused variables.
2292 (Fopen_network_stream, wait_reading_process_input,
2293 wait_reading_process_input, send_process, send_process): Ditto.
2294 (toplevel): Add prototypes for set_waiting_for_input and
2295 keyboard_bit_set.
2296
2297 * abbrev.c (Fexpand_abbrev): Remove unused variables.
2298
2299 * textprop.c (Fset_text_properties): Remove unused variables.
2300 (text_property_list, verify_interval_modification,
2301 interval_has_all_properties): Ditto.
2302
2303 * callproc.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
2304 (Fcall_process): Remove unused variable.
2305
2306 * keyboard.c (Frecursive_edit): Remove unused variable.
2307 (command_loop_1, safe_run_hooks, kbd_buffer_get_event,
2308 timer_check, make_lispy_event, menu_bar_items,
2309 menu_bar_one_keymap, menu_bar_item, parse_menu_item,
2310 parse_tool_bar_item, read_char_x_menu_prompt, read_key_sequence,
2311 kbd_buffer_get_event, make_lispy_event, read_char_x_menu_prompt,
2312 read_key_sequence): Ditto. Fread_key_sequence,
2313 Fread_key_sequence_vector, Fsuspend_emacs): Ditto.
2314 (read_key_sequence) [GOBBLE_FIRST_EVENT]: Put local variables only
2315 used when GOBBLE_FIRST_EVENT is defined in #ifdef
2316 (Fexecute_extended_command): Cast XINT to long for %ld.
2317 (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
2318 (toplevel): Include sys/types.h.
2319
2320 * lisp.h (RETURN_UNGCPRO): Use do-while (0) idiom.
2321 (toplevel): Add prototypes for stuff_char, and
2322 code_convert_string_norecord.
2323
23241999-09-19 Gerd Moellmann <gerd@gnu.org>
2325
2326 * buffer.h: Add prototype for r_re_alloc.
2327
2328 * insdel.c (copy_text): Removed unused variables.
2329 (count_combining_after, count_combining_after, insert_1_both,
2330 insert_from_string_1, insert_from_buffer_1, check_markers): Ditto.
2331 (adjust_after_replace, replace_range): Add parentheses to logical
2332 expressions. Remove unused variables.
2333 (CHECK_BYTE_COMBINING_FOR_INSERT): Add parentheses to logical
2334 expression.
2335
2336 * alloc.c (Fgarbage_collect): Remove unused variable.
2337 (compact_strings): Add parentheses around assignments in
2338 conditional context.
2339 (toplevel): Put declaration of unused function clear_marks
2340 in #if 0 like its definition.
2341
2342 * lisp.h: Add prototype for shrink_regexp_cache,
2343 sweep_weak_hash_tables.
2344
23451999-09-19 Dave Love <fx@gnu.org>
2346
2347 * process.c (Fopen_network_stream): Use strerror, not gai_strerror.
2348
2349 * doc.c (read_bytecode_char): Declare arg.
2350
2351 * lisp.h: Declare Fcurrent_message, Fmake_temp_name,
2352 read_bytecode_char, Fx_hide_busy_cursor, getloadavg.
2353
23541999-09-18 Richard Stallman <rms@gnu.org>
2355
2356 * xdisp.c (echo_area_display): Turn off code that returned
2357 without doing anything when using a terminal frame.
2358
83c8f461 23591999-09-17 Richard M. Stallman <rms@gnu.org>
27271329
PR
2360
2361 * unexelf.c (unexec): Don't get confused by a short section
2362 just before the bss section.
2363
26901792
DL
23641999-09-16 Gerd Moellmann <gerd@gnu.org>
2365
2366 * emacs.c (main): Remove unused variables.
2367 (sort_args, Fkill_emacs, Fkill_emacs): Ditto.
2368
2369 * lisp.h: Add prototype for uninterrupt_malloc, memory_warnings,
2370 init_fileio_once, syms_of_sound, init_xfns, init_fns
2371 init_sound, check_message_stack.
2372
2373 * emacs.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
2374
2375 * intervals.c (rotate_right, rotate_left): Add braces to avoid
2376 ambiguous else warning.
2377 (split_interval_left): Remove unused variables.
2378 (previous_interval, adjust_intervals_for_deletion,
2379 set_point_both, set_point_both, set_intervals_multibyte_1): Ditto.
2380 (icount, idepth, zero_length): Move into #if 0 section below
2381 original position where these are used.
2382
2383 * buffer.h [REL_ALLOC]: Add prototypes for r_alloc and r_alloc_free.
2384
2385 * buffer.c (Fkill_buffer): Remove unused variables.
2386 (Fkill_buffer, overlays_at, overlays_in, recenter_overlay_lists,
2387 fix_overlays_in_range, Fmove_overlay, Fprevious_overlay_change,
2388 init_buffer_once, (syms_of_buffer): Ditto.
2389
2390 * xrdb.c (get_fallback): Remove unused variable.
2391 (x_load_resources): Ditto. Put local variable used for Motif only
2392 in #ifdef USE_MOTIF.
2393
23941999-09-16 Gerd Moellmann <gerd@gnu.org>
2395
2396 * minibuf.c (read_minibuf): Remove unused variables.
2397 (read_minibuf, Fread_buffer, scmp, Fcompleting_read): Ditto.
2398 (do_completion): Move assignment out of conditional context.
2399 (Fdisplay_completion_list): Add parentheses to conditional expression.
2400
2401 * cm.c (toplevel) [HAVE_TERMCAP_H]: Include termcap.h.
2402
2403 * lisp.h: Add prototype for no_switch_window.
2404
2405 * window.c (Fset_window_buffer): Remove unused variables.
2406 (Fset_window_margins): Ditto.
2407
2408 * xdisp.c (resize_mini_window): Temporarily set the selected
2409 window's or Vminibuf_scroll_window's height to "fixed" around
2410 the call the change_window_height.
2411
2412 * window.c (window_fixed_size_p): Check window's height_fixed_p
2413 flag.
2414
2415 * window.h (struct window): New member height_fixed_p.
2416
2417 * dispnew.c (direct_output_forward_char): Don't use this method
2418 if showing a message or a message was just cleared because we
2419 might need to resize the mini-window.
2420
24211999-09-16 Gerd Moellmann <gerd@gnu.org>
2422
2423 * frame.c (Fdelete_frame): Correct local variable pointing to
2424 selected frame after selecting new frame.
2425
24261999-09-15 Richard Stallman <rms@gnu.org>
2427
2428 * puresize.h (BASE_PURESIZE): Increase to 525000.
2429
2430 * filelock.c (Vtemporary_file_directory): New variable.
2431 (syms_of_filelock): Set up Lisp variable.
2432
24331999-09-15 Gerd Moellmann <gerd@gnu.org>
2434
2435 * term.c (OUTPUT_IF, OUTPUT1_IF): Use do-while.
2436 (encode_terminal_code): Remove unused variables.
2437 (turn_off_face): Ditto.
2438 (toplevel): Include termcap.h if HAVE_TERMCAP_H.
2439
2440 * dispnew.c (update_frame_line): If writing whole desired line,
2441 don't clear to end of line if already at the end.
2442
24431999-09-15 Gerd Moellmann <gerd@gnu.org>
2444
2445 * xdisp.c (resize_mini_window): Don't report changed window
2446 height if it actually hasn't changed.
2447
2448 * widget.c (set_frame_size, EmacsFrameSetCharSize): Remove
2449 unused variables.
2450 (mark_shell_size_user_specified): Put in #if 0 because not used.
2451 (create_frame_gcs): Put in #if 0 because currently unused.
2452 (first_frame_p): Ditto.
2453
2454 * xmenu.c (single_menu_item, Fx_popup_menu, Fx_popup_menu,
2455 single_submenu, update_frame_menubar, set_frame_menubar,
2456 free_frame_menubar, xmenu_show, xdialog_show): Remove unused
2457 variables.
2458
2459 * print.c (PRINTFULLP): Removed because it is no longer used and
2460 is misleading.
2461 (Ferror_message_string): Remove unused variables.
2462 (print_object): Cast argument of sprintf to long for `%ld'
2463 specifier. Remove unused variable.
2464
24651999-09-14 Gerd Moellmann <gerd@gnu.org>
2466
2467 * sound.c (Fplay_sound): Remove usused variables.
2468 (be2hs): Put in #if 0 because it's currently not used.
2469
24701999-09-14 Ken Raeburn <raeburn@gnu.org>
2471
2472 * print.c (Ferror_message_string, print_error_message,
2473 print_object): Use XCAR, XCDR and XFLOAT_DATA instead of explicit
2474 member access.
2475
24761999-09-14 Gerd Moellmann <gerd@gnu.org>
2477
2478 * frame.h (CHECK_FRAME, CHECK_LIVE_FRAME): Put code in do-while.
2479
2480 * frame.c (Fnext_frame): Remove unused variable(s).
2481 (Fprevious_frame, Fmouse_pixel_position, frame_name_fnn_p): Ditto.
2482 (store_frame_param): Add parentheses to conditional expression.
2483 (Fmodify_frame_parameters): Remove unused variables.
2484 (Fmodify_frame_parameters, Fset_frame_size, Fset_frame_position):
2485 Ditto.
2486
2487 * xfns.c (x_set_background_color): Remove unused variable(s).
2488 (x_set_border_pixel): Ditto.
2489 (x_set_menu_bar_lines): Put local variable used only for
2490 non-toolkit case in #ifdef/#endif.
2491 (x_figure_window_size): Remove unused variable(s).
2492 (x_figure_window_size, x_window, lookup_image,
2493 xbm_read_bitmap_file_data, x_build_heuristic_mask, pbm_load,
2494 png_load, jpeg_load, gif_load, x_create_tip_frame,
2495 x_create_tip_frame, Fx_show_tip, x_set_border_pixel): Ditto.
2496
2497 * xterm.c (x_scroll_bar_handle_click): Compile only if
2498 not USE_TOOLKIT_SCROLL_BARS.
2499 (x_scroll_bar_set_handle, x_scroll_bar_note_movement): Ditto.
2500
2501 * dispextern.h: Add prototypes for gamma_correct and
2502 x_kill_gs_process.
2503
2504 * xterm.c (x_produce_glyphs): Remove unused variable(s).
2505 (x_alloc_nearest_color_for_widget, note_tool_bar_highlight,
2506 x_set_toolkit_scroll_bar_thumb): Ditto.
2507 (x_scroll_bar_create): Move local variable to the
2508 conditionally compiled section of code where it is used.
2509 (x_scroll_bar_create): Remove unused variable(s).
2510 (x_scroll_bar_remove, XTread_socket): Ditto.
2511 (XTread_socket) <ConfigureNotify>: Move variables used for
2512 non-toolkit case into conditionally compiled section of code.
2513
2514 * window.h (freeze_window_starts): Fix typo in prototype.
2515
2516 * xdisp.c (display_echo_area_1, try_window_id): Remove unused
2517 variable(s).
2518
2519 * lisp.h: Add prototype for debug_print.
2520
2521 * dispextern.h (xassert) [GLYPH_DEBUG]: Change definition
2522 to use do-while.
2523
2524 * fns.c (SXHASH_COMBINE): Add missing parentheses.
2525 (Fchar_table_range, Fset_char_table_default, mapcar1,
2526 Fyes_or_no_p, sweep_weak_hash_tables): Remove unused variable(s).
2527
2528 * lisp.h: Add prototype for getloadavg.
2529
25301999-09-14 Andreas Schwab <schwab@gnu.org>
2531
2532 * process.c (Fopen_network_stream): Avoid socket decriptor leak.
2533
2534 * lisp.h: Declare close_file_unwind.
2535
25361999-09-14 Richard Stallman <rms@gnu.org>
2537
2538 * filelock.c (get_boot_time): Make the temp name in the proper dir.
2539
25401999-09-13 Gerd Moellmann <gerd@gnu.org>
2541
2542 * xdisp.c (redisplay_window): Make sure start_at_line_beg
2543 is always set correctly.
2544
25451999-09-13 Dave Love <fx@gnu.org>
2546
2547 * xdisp.c (move_it_in_display_line_to): Make type consistent with
2548 declaration.
2549
25501999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
2551
2552 * xdisp.c (QCfile): Move here from xfns.c.
2553 (syms_of_xdisp): Initialize it.
2554 (message2_nolog): Change for Lisp_Object selected_frame.
2555 (message3_nolog, message_with_string, message,
2556 setup_echo_area_for_printing, truncate_echo_area,
2557 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
2558
25591999-09-13 Dave Love <fx@gnu.org>
2560
2561 * xterm.c: Don't continue #define args for benefit of old cc.
2562 (xt_action_hook): Indent #error for benefit of K&R cc.
2563
25641999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
2565
2566 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
2567 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
2568 (XRINGBELL): Removed.
2569
25701999-09-13 Dave Love <fx@gnu.org>
2571
2572 * xfns.c (x_put_x_image): Make type consistent with declaration.
2573
2574 * fns.c (Fmake_hash_table): Fix string continuation.
2575
25761999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
2577
2578 * xfns.c (QCfile): Moved to xdisp.c.
2579 (syms_of_xfns): Don't initialize QCfile.
2580 (check_x_frame): Change for Lisp_Object selected_frame.
2581 (check_x_display_info, x_get_resource_string): Ditto.
2582
25831999-09-13 Gerd Moellmann <gerd@gnu.org>
2584
2585 * minibuf.c (choose_minibuf_frame): Don't try to set the
2586 mini-buffer window's buffer, if the buffer is invalid.
2587
2588 * xfns.c (QCfile): Moved to xdisp.c.
2589 (syms_of_xfns): Don't initialize QCfile.
2590
2591 * xdisp.c (QCfile): Move here from xfns.c.
2592 (syms_of_xdisp): Initialize it.
2593
2594 * lisp.h (selected_frame): Add external declaration.
2595
2596 * xselect.c (x_own_selection): Change for Lisp_Object selected_frame.
2597 (Fx_store_cut_buffer_internal): Ditto.
2598 (Fx_rotate_cut_buffers_internal): Ditto.
2599
2600 * xfaces.c (frame_or_selected_frame): Change for Lisp_Object
2601 selected_frame.
2602 (Finternal_set_lisp_face_attribute): Ditto.
2603 (Finternal_get_lisp_face_attribute): Ditto.
2604 (Finternal_lisp_face_empty_p): Ditto.
2605 (Fdump_face): Ditto.
2606
2607 * term.c (OUTPUT): Change for Lisp_Object selected_frame.
2608 (OUTPUT_IF, ring_bell, set_terminal_modes, reset_terminal_modes,
2609 set_terminal_window, set_scroll_region, reassert_line_highlight,
2610 change_line_highlight, cursor_to, raw_cursor_to, clear_to_end,
2611 clear_end_of_line, clear_end_of_line_raw, clear_end_of_line_raw,
2612 encode_terminal_code, write_glyphs, term_init): Ditto.
2613
2614 * sysdep.c (reset_sys_modes): Change for Lisp_Object selected_frame.
2615 (kbd_input_ast, read_input_waiting): Ditto.
2616
2617 * minibuf.c (choose_minibuf_frame): Change for Lisp_Object
2618 selected_frame.
2619 (read_minibuf): Ditto.
2620
2621 * keyboard.c (command_loop_1): Change for Lisp_Object
2622 selected_frame.
2623 (cmd_error_internal, command_loop_1, read_char,
2624 kbd_buffer_get_event, read_avail_input,
2625 read_char_minibuf_menu_prompt, read_key_sequence, Fsuspend_emacs,
2626 interrupt_signal, quit_throw_to_read_char): Ditto.
2627
2628 * fontset.c (Ffont_info): Change for Lisp_Object selected_frame.
2629 (Ffontset_info): DItto.
2630
2631 * emacs.c (handle_USR1_signal): Change for Lisp_Object selected_frame.
2632
2633 * dispnew.c (selected_frame): Make it a Lisp_Object.
2634 (adjust_frame_glyphs_initially): Change for Lisp_Object selected_frame.
2635 (direct_output_for_insert, direct_output_forward_char,
2636 init_display): Ditto.
2637
2638 * data.c (swap_in_symval_forwarding): Change for Lisp_Object
2639 selected_frame.
2640 (set_internal): Ditto.
2641
2642 * buffer.c (Fother_buffer): Change for Lisp_Object selected_frame.
2643 (record_buffer): Ditto.
2644
2645 * frame.c (Fmake_terminal_frame): Use SELECTED_FRAME.
2646 (do_switch_frame): Change for Lisp_Object selected_frame.
2647 (Fselected_frame): Ditto.
2648 (Fframe_first_window): Use SELECTED_FRAME.
2649 (Fframe_root_window): Change for Lisp_Object selected_frame.
2650 (Fframe_selected_window, Fset_frame_selected_window, Fnext_frame,
2651 Fprevious_frame, other_visible_frames, Fdelete_frame,
2652 Fmouse_position, Fmouse_pixel_position, Fmake_frame_visible,
2653 Fmake_frame_invisible, Ficonify_frame, Fraise_frame, Flower_frame,
2654 Fframe_parameters, Fmodify_frame_parameters, Fframe_char_height,
2655 Fframe_char_width, Fframe_pixel_height, Fframe_pixel_width,
2656 Fset_frame_height, Fset_frame_width): Ditto.
2657
26581999-09-13 Gerd Moellmann <gerd@gnu.org>
2659
2660 * xdisp.c (message2_nolog): Change for Lisp_Object selected_frame.
2661 (message3_nolog, message_with_string, message,
2662 setup_echo_area_for_printing, truncate_echo_area,
2663 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
2664
2665 * xmenu.c (Fx_popup_menu): Change for Lisp_Object selected_frame.
2666 (Fx_popup_dialog): Ditto.
2667
2668 * xfns.c (check_x_frame): Change for Lisp_Object selected_frame.
2669 (check_x_display_info, x_get_resource_string): Ditto.
2670
2671 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
2672 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
2673 (XRINGBELL): Removed.
2674
2675 * window.c (Fminibuffer_window): Change for Lisp_Object
2676 selected_frame.
2677 (Fwindow_at, Fprevious_window, window_loop, select_window_1,
2678 display_buffer_1, Fdisplay_buffer, temp_output_buffer_show,
2679 Fcurrent_window_configuration, init_window_once): Ditto.
2680
2681 * frame.h (SELECTED_FRAME): New.
2682
26831999-09-12 Ken Raeburn <raeburn@gnu.org>
2684
2685 * category.c (word_boundary_p): Use XCAR and XCDR.
2686 * ccl.c (ccl_driver, resolve_symbol_ccl_program,
2687 Fregister_code_conversion_map): Likewise.
2688 * coding.c (setup_coding_system, detect_coding_system,
2689 Ffind_operation_coding_system, Fset_coding_priority_internal):
2690 Likewise.
2691 * doc.c (get_doc_string, Fdocumentation,
2692 store_function_docstring): Likewise.
2693 * editfns.c (save_restriction_restore): Likewise.
2694 * eval.c (Fcond, Fmacroexpand, Fcondition_case, wants_debugger,
2695 skip_debugger, find_handler_clause, Fautoload, Fapply,
2696 run_hook_with_args, run_hook_list_with_args, Ffetch_bytecode):
2697 Likewise.
2698 * fileio.c (Ffind_file_name_handler, Finsert_file_contents,
2699 Fwrite_region, do_auto_save_unwind, Fdo_auto_save,
2700 Fread_file_name): Likewise.
2701 * filelock.c (unlock_all_files): Likewise.
2702 * insdel.c (Fcombine_after_change_execute): Likewise.
2703 * intervals.c (adjust_intervals_for_insertion): Likewise.
2704 * keymap.c (get_keymap_1, Fkeymap_parent, Fset_keymap_parent,
2705 Fset_keymap_parent, fix_submap_inheritance, access_keymap,
2706 store_in_keymap, Fcopy_keymap, define_as_prefix,
2707 current_minor_maps, Faccessible_keymaps,
2708 accessible_keymaps_char_table, Fkey_description,
2709 Fwhere_is_internal, where_is_internal_2, where_is_internal_1,
2710 describe_buffer_bindings, describe_map_tree, shadow_lookup,
2711 describe_map): Likewise.
2712 * lread.c (Fload, load_unwind, close_load_descs, read_vector,
2713 read_list, init_lread): Likewise.
2714 * search.c (Fmatch_data): Likewise.
2715 * sunfns.c (Fsun_menu_internal): Likewise.
2716 * syntax.c (describe_syntax): Likewise.
2717 * undo.c (record_insert, record_delete, Fundo_boundary,
2718 truncate_undo_list): Likewise.
2719 * vmsproc.c (child_sig): Likewise.
2720
2721 * editfns.c (Fformat): Use XFLOAT_DATA.
2722
27231999-09-12 Gerd Moellmann <gerd@gnu.org>
2724
2725 * keyboard.c (command_loop_1): Resize mini-window to the
2726 exact size of a message displayed, if any.
2727
2728 * xdisp.c (resize_mini_window): Add parameter exact_p. Resize
2729 to exact size if exact_p is non-zero.
2730 (display_echo_area_1): Call resize_mini_window with
2731 new parameter.
2732 (redisplay_internal): Ditto.
2733 (resize_echo_area_axactly): New.
2734
2735 * minibuf.c (read_minibuf_unwind): Call resize_mini_window with
2736 new parameter.
2737
2738 * dispextern.h: Change prototype of resize_mini_window.
2739 Add prototype for resize_echo_area_axactly.
2740
2741 * xfaces.c (Fx_family_fonts): Replaces Fx_font_list.
2742 (syms_of_xfaces): Defsubr accordingly.
2743
2744 * xdisp.c (hscroll_window_tree): Choose cursor row from
2745 desired or current matrix.
2746 (redisplay_internal): Hscroll before updating.
2747
27481999-09-12 Gerd Moellmann <gerd@gnu.org>
2749
2750 * syntax.c (Fforward_word): Use prompt_end_charpos instead
2751 of minibuffer_prompt_length.
2752
2753 * minibuf.c (read_minibuf): Use prompt_end_charpos instead
2754 of minibuffer_prompt_length.
2755 (read_minibuf_unwind): Ditto.
2756 (Fminibuffer_complete_and_exit): Ditto.
2757 (Fminibuffer_complete_word): Ditto.
2758 (Fminibuffer_prompt_end): Ditto.
2759
2760 * editfns.c (Fbuffer_string): Use prompt_end_charpos instead
2761 of minibuffer_prompt_length.
2762 (Fline_beginning_position): Ditto.
2763
2764 * buffer.c (Fget_buffer_create): Use prompt_end_charpos instead
2765 of minibuffer_prompt_length.
2766 (Fmake_indirect_buffer): Ditto.
2767 (Fkill_buffer): Ditto.
2768 (Ferase_buffer): Ditto.
2769
2770 * buffer.h (prompt_end_charpos): Replaces
2771 minibuffer_prompt_length.
2772
2773 * minibuf.c (read_minibuf): Return mini-buffer contents
2774 without the prompt.
2775
2776 * editfns.c (make_buffer_string_both): Take out the code
2777 to handle mini-buffer prompts.
2778 (Fbuffer_string): Handle the prompt here, instead.
2779
2780 * xfaces.c (lface_from_face_name): Resolve face aliases.
2781 (Qmode_line): Replaces Qmodeline.
2782 (realize_basic_faces): Use Qmode_line.
2783 (syms_of_xfaces): Initialize Qmode_line.
2784
27851999-09-12 Gerd Moellmann <gerd@gnu.org>
2786
2787 * minibuf.c (read_minibuf): Set minibuf_prompt_width to the
2788 current column after inserting prompt.
2789 (Fminibuffer_prompt_width): Return minibuf_prompt_width.
2790
2791 * xfaces.c (Qframe_update_face_colors): New.
2792 (syms_of_xfaces): Initialize call.
2793 (update_face_from_frame_parameter): Call that function when
2794 the frame's background changes.
2795
27961999-09-12 Richard Stallman <rms@gnu.org>
2797
2798 * insdel.c (del_range_1): Don't treat minibuffer prompt specially.
2799
28001999-09-12 Ken Raeburn <raeburn@gnu.org>
2801
2802 * alloc.c (Fcons, pure_cons, Fpurecopy, Fgarbage_collect,
2803 mark_object, mark_buffer): Use XCAR and XCDR.
2804 * bytecode.c (Fbyte_code): Likewise.
2805 * callint.c (Fcall_interactively, Fprefix_numeric_value):
2806 Likewise.
2807 * callproc.c (Fcall_process, Fcall_process_region, child_setup,
2808 getenv_internal): Likewise.
2809 * dired.c (file_name_completion): Likewise.
2810 * fns.c (Fsafe_length, concat, Fcopy_alist, Fmember, Fmemq, Fassq,
2811 assq_no_quit, Fassoc, Frassq, Frassoc, Fdelq, Fdelete, Freverse,
2812 Fplist_get, Fplist_put, internal_equal, mapcar1): Likewise.
2813 * indent.c (Fcompute_motion): Likewise.
2814 * process.c (decode_status, Fprocess_status, Fprocess_exit_status,
2815 list_processes_1, Fstart_process, Fopen_network_stream,
2816 wait_reading_process_input, read_process_output_call,
2817 kill_buffer_processes, sigchld_handler, exec_sentinel_unwind,
2818 status_notify, wait_reading_process_input): Likewise.
2819 * textprop.c (PLIST_ELT_P, property_value, set_properties,
2820 extend_property_ranges): Likewise.
2821 * w32faces.c (Fpixmap_spec_p, merge_face_list): Likewise.
2822 * w32fns.c (x_window_to_frame, x_set_frame_parameters,
2823 x_report_frame_params, x_set_cursor_type, x_icon_type,
2824 x_figure_window_size, Fx_create_frame, w32_load_system_font,
2825 w32_load_font, enum_font_cb2, w32_list_bdf_fonts, w32_list_fonts,
2826 w32_list_synthesized_fonts, w32_find_ccl_program, Fx_list_fonts,
2827 Fw32_find_bdf_fonts, w32_find_bdf_fonts_in_dir,
2828 x_display_info_for_name, Fx_display_list): Likewise.
2829 * w32menu.c (menubar_id_to_frame, single_keymap_panes,
2830 Fx_popup_menu, Fx_popup_dialog): Likewise.
2831 * w32proc.c (Fw32_set_keyboard_layout): Likewise.
2832 * w32term.c (x_window_to_scroll_bar, w32_read_socket,
2833 w32_term_init, x_delete_display): Likewise.
2834 * xfns.c (x_window_to_frame, x_any_window_to_frame,
2835 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
2836 x_top_window_to_frame, x_set_frame_parameters,
2837 x_report_frame_params, x_set_cursor_type, x_icon_type,
2838 x_figure_window_size, Fx_create_frame, x_display_info_for_name,
2839 Fx_display_list, x_create_tip_frame): Likewise.
2840 * xmenu.c (menubar_id_to_frame, single_keymap_panes,
2841 Fx_popup_menu, Fx_popup_dialog): Likewise.
2842 * xselect.c (x_own_selection, x_get_local_selection,
2843 x_handle_selection_request, x_handle_selection_clear,
2844 x_clear_frame_selections, wait_for_property_change_unwind,
2845 wait_for_property_change, x_handle_property_notify,
2846 copy_multiple_data, x_get_foreign_selection,
2847 lisp_data_to_selection_data, clean_local_selection_data,
2848 x_handle_selection_notify, Fx_get_selection_internal,
2849 x_disown_buffer_selections): Likewise.
2850 * xterm.c (x_window_to_scroll_bar, XTread_socket, x_list_fonts,
2851 x_load_font, x_find_ccl_program, x_term_init, x_delete_display):
2852 Likewise.
2853
2854 * alloc.c (make_float, make_pure_float, Fpurecopy): Use
2855 XFLOAT_DATA.
2856 * bytecode.c (Fbyte_code): Likewise.
2857 * floatfns.c (extract_float, Fexpt, Fabs, rounding_driver,
2858 fmod_float): Likewise.
2859
28601999-09-11 Richard Stallman <rms@gnu.org>
2861
2862 * xdisp.c (run_window_scroll_functions): If hook functions switch
2863 buffers, switch back after.
2864
28651999-09-11 Ken Raeburn <raeburn@gnu.org>
2866
2867 * charset.h (GET_TRANSLATION_TABLE): Use XCDR.
2868 * frame.h (FOR_EACH_FRAME): Use XCAR and XCDR.
2869 (PIXEL_X_FROM_CANON_X, PIXEL_Y_FROM_CANON_Y): Use XFLOAT_DATA.
2870 * keyboard.h (EVENT_HEAD, EVENT_START, EVENT_END, POSN_WINDOW,
2871 POSN_BUFFER_POSN, POSN_WINDOW_POSN, POSN_TIMESTAMP): Use XCAR and
2872 XCDR.
2873 * syntax.h (SYNTAX, SYNTAX_WITH_FLAGS, SYNTAX_MATCH): Use XCAR and
2874 XCDR.
2875
28761999-09-10 Richard Stallman <rms@gnu.org>
2877
2878 * xterm.c (XTread_socket): In XSetInputFocus, use RevertToParent,
2879 not RevertToPointerRoot.
2880 (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
2881 Fix the code to clear around the scroll bar.
2882
28831999-09-10 Keisuke Nishida <kxn30@po.cwru.edu>
2884
2885 * print.c: Support print-circle and related features.
2886 (Vprint_gensym_alist): Removed.
2887 (Vprint_circle, Vprint_continuous_numbering, print_number_index
2888 Vprint_number_table): New variables.
2889 (PRINT_NUMBER_OBJECT, PRINT_NUMBER_STATUS): New macros.
2890 (PRINTPREPARE, PRINTFINISH): Don't set Vprint_gensym_alist.
2891 (print, print_preprocess, print_preprocess_string, print_object):
2892 New/modified functions with print-circle feature. Use
2893 Vprint_number_table instead of Vprint_gensym_alist for print-gensym.
2894 (syms_of_print): Defined new Lisp variables `print-circle',
2895 `print-continuous-numbering', `print-number-table'.
2896
28971999-09-10 Gerd Moellmann <gerd@gnu.org>
2898
2899 * xfns.c (x_build_heuristic_mask): Accept a list `(R G B)'
2900 as background color specification instead of an integer.
2901 (image-cache-eviction-delay): Replaces image-eviction-seconds.
2902 (Vimage_cache_eviction_delay): Replaces Vimage_eviction_seconds.
2903 (clear_image_cache, syms_of_xfns): Use it.
2904 (Qpostscript): Replaces Qghostscript.
2905 (gs_type): Use it.
2906 (gs_image_p): Ditto.
2907 (syms_of_xfns): Initialize Qpostscript.
2908
29091999-09-10 Richard Stallman <rms@gnu.org>
2910
2911 * buffer.c (Ferase_buffer): Don't erase the minibuffer prompt.
2912
29131999-09-09 Richard Stallman <rms@gnu.org>
2914
2915 * editfns.c (Fline_beginning_position): Handle minibuffer prompt here.
2916
2917 * cmds.c (Fbeginning_of_line): Don't handle minibuffer prompt here.
2918
29191999-09-09 Gerd Moellmann <gerd@gnu.org>
2920
2921 * fns.c (Fmakehash): Accept just one optional argument TEST.
2922
2923 * xfns.c (QCindex): New.
2924 (syms_of_xfns): Initialize QCindex.
2925 (gif_load): Use it instead of `:image'.
2926
29271999-09-09 Richard Stallman <rms@gnu.org>
2928
2929 * fileio.c (Fwrite_region): Finish renaming CONFIRM to MUSTBENEW.
2930 (Fwrite_region) [DOS_NT]: Handle `excl' here too.
2931
29321999-09-08 Gerd Moellmann <gerd@gnu.org>
2933
2934 * xdisp.c (Qwhen): Replaces QCwhen.
2935 (syms_of_xdisp): Initialized it instead of QCwhen.
2936 (handle_single_display_prop): Use it instead of QCwhen.
2937
29381999-09-08 Ken'ichi Handa <handa@gnu.org>
2939
2940 * charset.c (translate_char): Reset MSBs of arguments of
2941 MAKE_CHAR.
2942 (CHAR_COMPONENTS_VALID_P): Fix for ASCII.
2943
29441999-09-08 Lars Magne Ingebrigtsen <larsi@gnus.org>
2945
2946 * editfns.c (Fbufsize): Accept an extra BUFFER parameter.
2947
2948 * fns.c (Fbase64_decode_region): Don't place point outside of the
2949 current accessible portion.
2950
29511999-09-07 Richard Stallman <rms@gnu.org>
2952
2953 * keymap.c (fix_submap_inheritance): Do nothing if the proper
2954 parent is an ancestor of SUBMAP; otherwise, add it as the
2955 ultimate ancestor.
2956
29571999-09-07 Gerd Moellmann <gerd@gnu.org>
2958
2959 * xdisp.c (handle_single_display_prop): Change conditional
2960 display property to `:when FORM . VALUE'.
2961
29621999-09-07 Richard Stallman <rms@gnu.org>
2963
2964 * fileio.c (Fwrite_region): Doc fix.
2965
29661999-09-07 Stefan Monnier <monnier@cs.yale.edu>
2967
2968 * fileio.c (Qexcl): New variable.
2969 (report_file_error): Handle EEXIST specially.
2970 (Fwrite_region): Special handling for CONFIRM = `excl'.
2971 (syms_of_fileio): Initialize Qexcl.
2972
29731999-09-07 Gerd Moellmann <gerd@gnu.org>
2974
2975 * xfns.c (x_set_foreground_color): Call
2976 update_face_from_frame_parameter.
2977 (x_set_background_color): Ditto.
2978 (x_set_mouse_color): Ditto.
2979 (x_set_cursor_color): Ditto.
2980 (x_set_border_color): Ditto.
2981 (x_set_scroll_bar_foreground): Ditto.
2982 (x_set_scroll_bar_background): Ditto.
2983
2984 * xfaces.c (recompute_basic_faces): Clear face cache.
2985 (Finternal_set_lisp_face_attribute): Modify frame parameters
2986 if attributes of certain faces are changed.
2987 (update_face_from_frame_parameter): New.
2988
2989 * xfaces.c (realize_basic_faces): Realize new basic faces.
2990
2991 * dispextern.h (SCROLL_BAR_FACE_ID, BORDER_FACE_ID,
2992 CURSOR_FACE_ID, MOUSE_FACE_ID): New.
2993
2994 * xfaces.c (Qscroll_bar, Qcursor, Qborder, Qmouse): New.
2995 (syms_of_xfaces): Intialize new symbols.
2996
2997 * fns.c (Fmakehash): Take one argument, test, make all the
2998 rest keyword arguments.
2999
3000 * window.c (Fset_window_margins): Make window the first argument.
3001 (set_window_buffer): Call Fset_window_margins with window as first
3002 argument.
3003
30041999-09-07 Gerd Moellmann <gerd@gnu.org>
3005
3006 * xfaces.c (Qfringe): Replaces Qmargin.
3007
30081999-09-07 Kenichi Handa <handa@etl.go.jp>
3009
3010 * charset.h: Lots of comments fixed.
3011 (PARSE_MULTIBYTE_SEQ): Make it work also for ASCII string.
3012 (STRING_CHAR_AND_CHAR_LENGTH): This macro removed.
3013
3014 * charset.c : Lots of comments fixed.
3015 (SPLIT_MULTIBYTE_SEQ): Make it work also for ASCII string.
3016 (CHAR_COMPONENTS_VALID_P): Name changed from
3017 CHAR_COMPONENT_VALID_P. Caller changed.
3018
30191999-09-06 Richard Stallman <rms@gnu.org>
3020
3021 * insdel.c (syms_of_insdel): Define Lisp variable
3022 inhibit-modification-hooks.
3023
30241999-09-06 Michael Sperber [Mr. Preprocessor] <sperber@informatik.uni-tuebingen.de>
3025
3026 * s/aix4-2.h (ALIGN_DATA_RELOC): Undefined to support new
3027 unexaix.c.
3028
3029 * s/aix3-1.h (ALIGN_DATA_RELOC): Defined to support new unexaix.c.
3030
30311999-09-06 Dave Love <fx@gnu.org>
3032
3033 * unexaix.c: New version incorporating Michael Sperber's changes
3034 from XEmacs. Should solve problems on AIX 4.3.
3035
3036 * lread.c (Vbyte_boolean_vars): New variable.
3037 (defvar_bool, syms_of_lread): Use it.
3038
30391999-09-05 Richard Stallman <rms@gnu.org>
3040
3041 * minibuf.c (read_minibuf): Put all three properties on the
3042 same range, the whole prompt.
3043
30441999-09-05 Gerd Moellmann <gerd@gnu.org>
3045
3046 * sound.c (Qplay_sound_functions): Replaces Qplay_sound_hook.
3047 (Fplay_sound, syms_of_sound): Use it.
3048 (parse_sound): Allow float volume values in the range [0, 1].
3049 (Fplay_sound): Ditto.
3050
3051 * window.c (Fset_window_vscroll): Make window the first argument,
3052 amount to scroll the second. Take non-negative vscroll as
3053 argument.
3054 (Fwindow_vscroll): Return non-negative vscroll.
3055
3056 * xfns.c (Fx_show_tip): Improve documentation.
3057
30581999-09-05 Gerd Moellmann <gerd@gnu.org>
3059
3060 * buffer.c, buffer.h, dispextern.h, dispnew.c, keyboard.c,
3061 window.c, xdisp.c, xfaces.c, xterm.c, keyboard.h: Change
3062 `top-line' and `top_line' to `header-line' and `header_line'.
3063 Likewise for similar spellings.
3064
30651999-09-05 Gerd Moellmann <gerd@gnu.org>
3066
3067 * xdisp.c (row_containing_pos): New.
3068 (try_window_id): Use it.
3069
3070 * alloc.c, dispextern.h, dispnew.c, frame.c, frame.h, keyboard.c,
3071 lisp.h, termhooks.h, window.c xdisp.c, xfaces.c, xfns.c, xterm.c:
3072 Change spelling of `toolbar' to `tool_bar' or `tool-bar'.
3073 Likewise for upper-case etc.
3074
30751999-09-05 Gerd Moellmann <gerd@gnu.org>
3076
3077 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
3078 Fix reference to renamed variable.
3079
30801999-09-04 Gerd Moellmann <gerd@gnu.org>
3081
3082 * window.c (Qwindow_size_fixed): Replaces Qfixed_window_size.
3083 (window_fixed_size_p): Use Qwindow_size_fixed instead of
3084 Qfixed_window_size.
3085 (syms_of_window): Ditto.
3086
3087 * fns.c (Fmakehash): Exchange optional test and size arguments.
3088
30891999-09-03 Gerd Moellmann <gerd@gnu.org>
3090
3091 * xterm.c (XTset_vertical_scroll_bar): Block input when clearing
3092 under newly created scroll bar.
3093 (expose_window): If window is not yet fully initialized, do
3094 nothing. This can happen when toolkit scroll bars are used and a
3095 window is split. Reconfiguring the scroll bars will generate an
3096 expose for a newly created window.
3097
3098 * frame.h (struct frame): New member `gamma'.
3099
3100 * xfns.c: Include math.h. Add extern declaration for atof in case
3101 we don't see one.
3102 (Qscreen_gamma): New.
3103 (struct x_frame_parm_table): Add prototypes, add
3104 x_set_screen_gamma.
3105 (gamma_correct): New function.
3106 (defined_color): Call it.
3107 (x_set_screen_gamma): New.
3108 (x_set_title): Add parameter old_value.
3109 (RES_TYPE_FLOAT): New.
3110 (x_get_arg): Handle RES_TYPE_FLOAT.
3111 (Fx_create_frame): Call x_default_parameter for `screen-gamma'.
3112 (lookup_pixel_color): Change call to x_alloc_nearest_color to
3113 new prototype.
3114 (lookup_rgb_color): Ditto.
3115 (syms_of_xfns): Initialize Qscreen_gamma.
3116
3117 * xterm.c (x_alloc_nearest_color_for_widget) [USE_X_TOOLKIT]:
3118 New. Allocate color for lwlib widgets.
3119 (x_alloc_nearest_color): Change parameter list include the
3120 frame on which to allocate colors. Gamma-correct colors.
3121 (x_alloc_lighter_color): Call x_alloc_lighter_color with new
3122 parameter list.
3123
3124 * xterm.h: Change protorype of x_alloc_nearest_color.
3125
31261999-09-03 Richard Stallman <rms@gnu.org>
3127
3128 * callproc.c: Delete the system-independent include of stdlib.h
3129 (leaving only the one in the WINDOWSNT conditional).
3130
31311999-09-03 Andrew Choi <choi@cs.hku.hk>
3132
3133 * callproc.c (call-process) [macintosh]: Call mac_run_command in
3134 sysdep.c. The Mac code is modeled after the DOS code.
3135
3136 * dispextern.h [macintosh]: Include macterm.h to define substitute X
3137 Window types and macros.
3138
3139 * frame.h: Do nothing if included a second time.
3140 (enum output_method): Add mac_output frame type.
3141 (union output_data): Add new alternative `mac'.
3142 (FRAME_MAC_P): New macro.
3143
3144 * frame.c (Fframep) [macintosh]: Handle mac frame type.
3145 (syms_of_frame_1): Initialize Qmac.
3146 (make_terminal_frame) [macintosh]: Initialize output_data.mac fields.
3147 (Fmake_terminal_frame) [macintosh]: Add an alternate error check.
3148 (Fmodify_frame_parameters) [macintosh]: Call
3149 mac_set_frame_parameter in macterm.c.
3150
3151 * keyboard.c [macintosh]: Set KBD_BUFFER_SIZE to a smaller value
3152 (512) because Mac compilers limit local data of a function to 32K.
3153
3154 * make-docfiles.c: Correctly handle input files with Mac-style
3155 eol's.
3156
3157 * sysdep.c: Define numerous routines to emulate Unix system calls.
3158
3159 * xfaces.c: on MacOS, define the set of colors listed in rgb.txt
3160 file of an X Window environment.
3161
3162 * xfaces.c: on MacOS, define the Lisp functions x-display-color-p,
3163 x-display-grayscale, x-color-defined-p, and x-color-values.
3164
3165 * sysdep.c [macintosh] (stat, fstat, mkdir, rmdir, utime, access)
3166 (open, creat, unlink, read, write, rename, fopen, pause, alarm)
3167 (signal, sleep, gmtime, localtime, ctime, time, index, mktemp)
3168 (getpwuid, getpwnam, dup, dup2, isatty, getgid, getegid, getuid)
3169 (geteuid, getpid, getenv, uname, opendir, closedir, readdir, getwd.):
3170 New functions, replacing POSIX features.
3171
3172 * sysdep.c [macintosh] (Mac2UnixPathname, Unix2MacPathname, CheckAlarm)
3173 (InitMyPasswd, GetTempDirName, mystrchr, mystrtok, mystrcpy):
3174 (InitEmacsPasswdDir, run_mac_command): New subroutines.
3175
3176 * sysdep.c [macintosh] (targetTicks, alarm_signal_func, myPasswdName)
3177 (myPasswd, emacsPasswdDir, emacsPasswd, myPasswdInited, mask)
3178 (myPasswdDir, TempDirName, sys_siglist): New variables.
3179
3180 * sysdep.c [macintosh] (execvp, wait, croak, fork, kill, sigsetmask)
3181 (sigblock, request_sigio, unrequest_sigio, setpgrp, pipe, symlink)
3182 (link, lstat, readlink, umask, chmod, sbrk, fsync, ioctl):
3183 Define empty stubs so Emacs will link.
3184
31851999-09-03 Gerd Moellmann <gerd@gnu.org>
3186
3187 * xdisp.c: Use XCAR and XCDR instead of XCONS.
3188
3189 * window.h: New member frozen_window_start_p.
3190
3191 * window.c (foreach_window, foreach_window_1): New.
3192 (freeze_window_start, freeze_window_starts): New.
3193 (make_window): Initialize frozen_window_start_p.
3194 (replace_window): Ditto.
3195 (Fset_window_point): Remove references to deleted variables.
3196 (Fset_window_start): Ditto.
3197
3198 * xdisp.c (Vresize_mini_config, resize_mini_frame,
3199 resize_mini_initial_height): Removed.
3200 (syms_of_xdisp): Remove references to these variables.
3201 (resize_mini_window): Don't save window configuration, freeze
3202 window starts instead. Enlarge window until displaying an empty
3203 buffer, then shrink it. Make the function externally visible.
3204 (redisplay_window): Treat frozen window start like forced start,
3205 but accept point outside of the window.
3206
3207 * dispextern.h: Add function prototype for resize_mini_window.
3208
3209 * minibuf.c (read_minibuf_unwind): Resize mini-window when
3210 reaching minibuf_level 0.
3211
3212 * lisp.h: Remove extern declarations for variables deleted from
3213 xdisp.c.
3214
3215 * dispnew.c (adjust_frame_glyphs): Remove reference to
3216 Vresize_mini_config.
3217
32181999-09-03 Gerd Moellmann <gerd@gnu.org>
3219
3220 * xfns.c (x_set_scroll_bar_width): Change conditional compilation
3221 to USE_TOOLKIT_SCROLL_BARS.
3222
3223 * xterm.c (x_scroll_bar_create): Don't clear under scroll bar
3224 here.
3225 (XTset_vertical_scroll_bar): Clarify position computations. Clear
3226 under newly created scroll bar. Put toolkit scroll bars in the
3227 middle of the area reserved for the scroll bar.
3228
32291999-09-03 Kenichi Handa <handa@etl.go.jp>
3230
3231 The following changes are for the new handling of mulitbyte
3232 sequence. Now, except for a composite character, no multibyte
3233 character in string/buffer has trailing garbage bytes. For
3234 instance, the length of string "\201\300\300" is now 2, the first
3235 character is Latin-1 A-grave, the second is raw \300.
3236
3237 * charset.h (MAKE_NON_ASCII_CHAR): Handle the case that C1 or C2
3238 are negative.
3239 (MAKE_CHAR): Don't set MSBs of C1 and C2 to 0.
3240 (VALID_MULTIBYTE_CHAR_P): This macro deleted.
3241 (PARSE_COMPOSITE_SEQ): New macro.
3242 (PARSE_CHARACTER_SEQ): New macro.
3243 (PARSE_MULTIBYTE_SEQ): New macro.
3244 (CHAR_PRINTABLE_P): New macro.
3245 (STRING_CHAR): Adjusted for the change of string_to_non_ascii_char.
3246 (STRING_CHAR_AND_LENGTH): Likewise.
3247 (STRING_CHAR_AND_CHAR_LENGTH): Define it as STRING_CHAR_AND_LENGTH.
3248 (INC_POS): Use the macro PARSE_MULTIBYTE_SEQ.
3249 (DEC_POS, BUF_INC_POS, BUF_DEC_POS): Likewise,
3250
3251 * charset.c (SPLIT_COMPOSITE_SEQ): New macro.
3252 (SPLIT_CHARACTER_SEQ): New macro.
3253 (SPLIT_MULTIBYTE_SEQ): New macro.
3254 (CHAR_COMPONENT_VALID_P): New macro.
3255 (non_ascii_char_to_string): Generate a multibyte sequence as far
3256 as possible.
3257 (string_to_non_ascii_char): The 4th arg exclude_tail_garbage is
3258 deleted. Caller changed. Use the macro SPLIT_MULTIBYTE_SEQ.
3259 (split_non_ascii_string): Likewise.
3260 (multibyte_form_length): Use the macro PARSE_MULTIBYTE_SEQ.
3261 (char_printable_p): New function.
3262 (translate_char): Check character by NATNUMP instead of INTEGERP.
3263 (unibyte_char_to_multibyte): Call char_valid_p instead of
3264 VALID_MULTIBYTE_CHAR_P.
3265 (Fmake_char_internal): Check the arguments more rigidly.
3266 (Fcharset_after): Use the macro SPLIT_MULTIBYTE_SEQ.
3267 (char_valid_p): Check the validity by CHAR_COMPONENT_VALID_P.
3268 (Fmultibyte_char_to_unibyte): Check the validity of character by
3269 CHAR_VALID_P.
3270 (chars_in_text): Call multibyte_chars_in_text.
3271 (multibyte_chars_in_text): Use the macro PARSE_MULTIBYTE_SEQ.
3272 (Fcompose_string): Use the macro STRING_CHAR_AND_LENGTH instead of
3273 STRING_CHAR_AND_CHAR_LENGTH (which is obsolete now).
3274
3275 * data.c (Faset): Adjust the way to check byte-combining
3276 possibility for the new handling of multibyte sequence.
3277
3278 * editfns.c (Fsubst_char_in_region): Likewise.
3279
3280 * fns.c (count_combining): Use the macro PARSE_MULTIBYTE_SEQ.
3281 (string_char_to_byte): Likewise.
3282 (string_byte_to_char): Likewise.
3283
3284 * indent.c (MULTIBYTE_BYTES_WIDTH): Delete the 2nd arg C. Use the
3285 macro STRING_CHAR_AND_LENGTH. Caller changed.
3286
3287 * insdel.c (count_combining_composition): New function.
3288 (count_combining_before): Adjust the way to check byte-combining
3289 possibility for the new handling of multibyte sequence. Call
3290 count_combining_composition for a composite character.
3291 (count_combining_after): Likewise.
3292
3293 * print.c (print_string): Use the macro STRING_CHAR_AND_LENGTH.
3294 (print): Likewise.
3295
3296 * dispextern.h (struct it): Change the size of the member
3297 `ctl_chars'.
3298
3299 * xdisp.c (get_next_display_element): Display incomplete multibyte
3300 sequence (e.g. \222\300) by octal form.
3301
33021999-09-02 Gerd Moellmann <gerd@gnu.org>
3303
3304 * xterm.h (VERTICAL_SCROLL_BAR_WIDTH_TRIM): Change from 2 to 0.
3305
3306 * fns.c (Fhash_table_weakness): Replaces Fhash_table_weak.
3307 (cmpfn_eql, sxhash): Use XFLOAT_DATA.
3308
33091999-09-02 Gerd Moellmann <gerd@gnu.org>
3310
3311 * buffer.c (set_buffer_internal): Never set
3312 windows_or_buffers_changed.
3313
3314 * xdisp.c (try_window_id): Reset first_unchanged_at_end_row
3315 if we have displayed to the bottom of the window.
3316
3317 * syntax.c (Fforward_word): Stop at a mini-buffer prompt end
3318 in both directions. Extend documentation.
3319
33201999-09-01 Gerd Moellmann <gerd@gnu.org>
3321
3322 * minibuf.c (read_minibuf): Flush display after setting cursor to
3323 column 0.
3324
33251999-08-31 Gerd Moellmann <gerd@gnu.org>
3326
3327 * s/freebsd.h (__FreeBSD_version): Don't define it if it is
3328 already defined. This avoids a warning from buffer.c.
3329
33301999-08-30 Gerd Moellmann <gerd@gnu.org>
3331
3332 * xterm.h (FRAME_X_FLAGS_AREA_COLS): Define it as the total width
3333 of both margins.
3334 (FRAME_X_FLAGS_AREA_WIDTH): Likewise.
3335 (FRAME_X_LEFT_FLAGS_AREA_WIDTH): New.
3336 (FRAME_X_RIGHT_FLAGS_AREA_WIDTH): New.
3337
3338 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add in FRAME_FLAGS_AREA_COLS
3339 once instead of twice.
3340 (FRAME_LEFT_FLAGS_AREA_WIDTH): New.
3341
3342 * xterm.c: Remove unused bitmaps.
3343 (continued_bits, continuation_bits, overlay_bits): Change images.
3344 (x_draw_vertical_border): Use FRAME_X_RIGHT_FLAGS_AREA_WIDTH
3345 instead of FRAME_X_FLAGS_AREA_WIDTH.
3346 (x_after_update_window_line): Ditto.
3347 (x_draw_bitmap): Likewise.
3348 (x_draw_row_bitmaps): Likewise.
3349 (x_draw_glyph_string_box): Likewise.
3350 (x_draw_glyphs): Likewise.
3351 (x_scroll_run): Likewise.
3352 (expose_window_tree): Likewise.
3353 (note_mode_line_highlight): Likewise.
3354 (XTset_vertical_scroll_bar): Likewise.
3355 (x_clip_to_row): Likewise.
3356 (x_set_window_size): Likewise.
3357
3358 * xfns.c (x_figure_window_size): Use FRAME_FLAGS_AREA_COLS instead
3359 of 2 * that value.
3360
3361 * xdisp.c (window_box_width): Use FRAME_FLAGS_AREA_COLS instead of
3362 2 * that value.
3363 (window_box_left): Use FRAME_LEFT_FLAGS_AREA_WIDTH instead of
3364 FRAME_FLAGS_AREA_WIDTH.
3365
3366 * window.c (coordinates_in_window): Use
3367 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
3368 (window_internal_width): Subtract FRAME_FLAGS_AREA_WIDTH once
3369 instead of twice.
3370
3371 * widget.c (set_frame_size): Set flags_area_extra to
3372 FRAME_FLAGS_AREA_WIDTH instead of 2 * that width.
3373 (EmacsFrameSetCharSize): Ditto.
3374
3375 * dispnew.c (mode_line_string): Add FRAME_LEFT_FLAGS_AREA_WIDTH
3376 instead of FRAME_FLAGS_AREA_WIDTH.
3377
3378 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract
3379 FRAME_FLAGS_AREA_COLS once.
3380 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Add
3381 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
3382
33831999-08-30 Gerd Moellmann <gerd@gnu.org>
3384
3385 * freebsd.h (C_SWITCH_SYSTEM): Added to let configure find headers
3386 in /usr/X11R6/include which are checked for with AC_CHECK_HEADER.
3387
33881999-08-30 Gerd Moellmann <gerd@gnu.org>
3389
3390 * fns.c (QCweakness): Replaces QCweak.
3391 (Fmake_hash_table): Ditto.
3392 (Fmakehash): Ditto.
3393 (syms_of_fns): Ditto.
3394
33951999-08-29 Richard Stallman <rms@gnu.org>
3396
3397 * search.c (compile_pattern_1): Enable RE_CHAR_CLASSES for regexp.
3398
3399 * sysdep.c (read_input_waiting): Pass read_socket_hook just 4 args.
3400
3401 * syntax.h (SYNTAX_COMMENT_NESTED, SYNTAX_FLAGS_COMMENT_NESTED):
3402 Add support for nested comments.
3403
863476d1
SM
3404 * syntax.c (Fforward_comment, scan_lists, scan_sexps_forward):
3405 Consolidate the forward comment code into the new `forw_comment'.
3406 (forw_comment): New subroutine. Added support for nested comments.
3407 (lisp_parse_state, back_comment, Fmodify_syntax_entry)
3408 (Fparse_partial_sexp): Add support for nested comments.
26901792
DL
3409
34101999-08-28 Ken Raeburn <raeburn@gnu.org>
3411
3412 * lisp.h (struct Lisp_Cons, XCAR, XCDR, struct Lisp_Float): Change
3413 names of structure elements if HIDE_LISP_IMPLEMENTATION is
3414 defined, to help detect code that uses knowledge of the Lisp
3415 internals that it shouldn't have.
3416 (XFLOAT_DATA): New macro.
3417
34181999-08-25 Gerd Moellmann <gerd@gnu.org>
3419
3420 * syntax.c (Fforward_word): If in a mini-buffer and moving
3421 backwards, stop in front of the prompt to prevent accidentially
3422 moving into the read-only prompt.
3423
3424 * window.c (Frecenter): Clear frame if called with nil or no arg.
3425
3426 * xdisp.c (resize_mini_window): Don't resize if
3427 Vmax_mini_window_height is nil. Otherwise, use a default if
3428 Vmax_mini_window_height is not ot a number.
3429 (syms_of_xdisp): Extend documentation of Vmax_mini_window_height.
3430
34311999-08-25 Alexandre Oliva <oliva@dcc.unicamp.br>
3432
3433 * unexelf.c: Merge IRIX debugging info patch from unexsgi.c
3434 * m/iris4d.h: Use unexelf for IRIX 5.*.
3435 * m/iris5d.h: Use unexelf for IRIX 6.*.
3436 * unexsgi.c: Deleted.
3437
3438 * unexelf.c: Auto-detect .sbss section.
3439 (round_up): Make it static.
3440 (unexec): Declare alignment as Elf Word. Skip ``Program
3441 segment above .bss'' test on MIPS without .sbss.
3442 Copy sections .got and .sdata1 sections. Adjust offsets in
3443 sections .sdata, .lit4, .lit8, .got and .sdata1.
3444
34451999-08-25 Gerd Moellmann <gerd@gnu.org>
3446
3447 * xdisp.c (try_window_id): Remove typo.
3448
34491999-08-24 Gerd Moellmann <gerd@gnu.org>
3450
3451 * xdisp.c (try_window_id): Recognize case that PT == ZV and in
3452 unchanged text at the bottom when computing the cursor position.
3453 (message3_nolog): Raise frame only if minibuffer_auto_raise is
3454 set.
3455
3456 * lisp.h (PVEC_TYPE_MASK): Add the bit for hash tables.
3457
34581999-08-24 Gerd Moellmann <gerd@gnu.org>
3459
3460 * xfaces.c (Qmargin): Replacement for Qbitmap_area.
3461 (realize_basic_faces): Replace Qmargin for Qbitmap_area.
3462 (syms_of_xfaces): Ditto.
3463
3464 * window.c (Fset_window_point): Reset Vresize_mini_config.
3465 (Fset_window_start): Ditto.
3466 (set_window_buffer): Ditto.
3467
3468 * dispnew.c (adjust_frame_glyphs): Reset Vresize_mini_config.
3469
3470 * xdisp.c (redisplay_window): Don't ever test just_this_one_p
3471 before calling try_window.
3472 (echo_area_display): If height has changed, update other windows.
3473 (resize_mini_frame, resize_mini_initial_height): New.
3474 (resize_mini_window): Save/restore window configuration
3475 differently.
3476
3477 * lisp.h (Vresize_mini_config, resize_mini_frame,
3478 resize_mini_initial_height): Add extern declarations.
3479
3480 * xterm.c (expose_window_tree): Fix typo CANON_Y_UNIT to
3481 CANON_X_UNIT.
3482
3483 * xfns.c [HAVE_JPEG]: Work around a warning about HAVE_STDLIB_H
3484 being redefined in jconfig.h.
3485
34861999-08-23 Ken'ichi Handa <handa@gnu.org>
3487
3488 * coding.h: Include "ccl.h" instead of "../src/ccl.h".
3489
34901999-08-22 Gerd Moellmann <gerd@gnu.org>
3491
3492 * alloc.c (mark_glyph_matrix): Mark strings only.
3493
3494 * xdisp.c (redisplay_internal): Clear garbaged frames after
3495 resizing mini-window.
3496
34971999-08-22 Gerd Moellmann <gerd@gnu.org>
3498
3499 * xdisp.c (unwind_with_echo_area_buffer): Use
3500 set_buffer_internal_1 instead of set_buffer_internal.
3501 (with_echo_area_buffer): Ditto.
3502
3503 * buffer.c (set_buffer_internal): Set windows_or_buffers_changed
3504 only if buffer is displayed somewhere.
3505
3506 * buffer.h (BUF_COMPUTE_UNCHANGED): New.
3507
3508 * insdel.c (gap_left): Use BUF_COMPUTE_UNCHANGED.
3509 (gap_right): Ditto.
3510 (modify_region): Ditto.
3511
3512 * buffer.c (modify_overlay): Use BUF_COMPUTE_UNCHANGED.
3513
3514 * xdisp.c (Vresize_mini_config): New.
3515 (resize_mini_window): Use it to save restore original window
3516 configuration
3517 (syms_of_xdisp): Initialize it.
3518
3519 * buffer.h (struct buffer): Add prevent_redisplay_optimizations_p.
3520
3521 * dispextern.h (struct glyph_matrix): Add buffer, begv, and zv.
3522
3523 * xdisp.c (reconsider_clip_changes): New.
3524 (redisplay_internal, redisplay_window): Call it.
3525 (mark_window_display_accurate, redisplay_internal): Set current
3526 matrix' buffer, begv, zv.
3527
3528 * window.c (Fset_window_hscroll): Set
3529 prevent_redisplay_optimizations_p instead of clip_changed.
3530 (Fset_window_hscroll): Ditto.
3531 (temp_output_buffer_show): Ditto.
3532 (Fset_window_vscroll): Ditto.
3533
3534 * buffer.c (reset_buffer): Set clip_changed to 0 and
3535 prevent_redisplay_optimizations_p to 1.
3536 (Fget_buffer_create): Set prevent_redisplay_optimizations_p to 1.
3537
3538 * buffer.h (BUF_UNCHANGED_MODIFIED, UNCHANGED_MODIFIED,
3539 BUF_OVERLAY_UNCHANGED_MODIFIED, OVERLAY_UNCHANGED_MODIFIED,
3540 BUF_BEG_UNCHANGED, BEG_UNCHANGED, BUF_END_UNCHANGED,
3541 END_UNCHANGED): New.
3542 (struct buffer_text): Add beg_unchanged, end_unchanged,
3543 unchanged_modified, overlay_unchanged_modified.
3544
3545 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
3546 overlay_unchanged_modified): Removed.
3547 (with_echo_area_unwind_data): Don't save beg/end_unchanged.
3548 (unwind_with_echo_area_buffer): Don't restore them.
3549 (debug_beg_unchanged, debug_end_unchanged) [GLYPH_DEBUG]: Removed.
3550 (text_outside_line_unchanged_p, redisplay_internal,
3551 try_scrolling): Use/set buffer-specific beg/end_unchanged.
3552 (redisplay_window): Let try_window_id be called if more than one
3553 window is displayed. Use/set buffer-specific beg/end_unchanged.
3554 (get_last_unchanged_at_beg_row, get_first_unchanged_at_end_row,
3555 try_window_id):
3556 Use buffer-specific beg/end_unchanged.
3557
3558 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
3559 overlay_unchanged_modified): Remove extern declarations.
3560
3561 * keyboard.c (command_loop_1): Set beg/end_unchanged per
3562 buffer.
3563
3564 * insdel.c (gap_left): Compute beg/end_unchanged per buffer.
3565 (gap_right): Ditto.
3566 (adjust_after_replace): Likewise.
3567 (replace_range, del_range_2, modify_region): Likewise.
3568
3569 * dispnew.c (direct_output_for_insert): Set beg_unchanged
3570 and unchanged_modified per buffer.
3571
3572 * coding.c (code_convert_region): Compute beg/end_unchanged per
3573 buffer.
3574
3575 * buffer.c (modify_overlay): Compute beg/end_unchanged
3576 per buffer.
3577 (Fget_buffer_create): Initialize new members of the buffer
3578 structure.
3579
35801999-08-22 Gerd Moellmann <gerd@gnu.org>
3581
3582 * lisp.h: Add prototype for copy_hash_table and Fcopy_hash_table.
3583
3584 * fns.c (Qkey, Qvalue): Renamed from Qkey_weak, and Qvalue_weak.
3585 (Qkey_value_weak): Removed.
3586 (make_hash_table): Use nil, `key', `value', t for weakness.
3587 (Fmake_hash_table): Ditto.
3588 (copy_hash_table): New.
3589 (Fcopy_hash_table): New.
3590
35911999-08-22 Gerd Moellmann <gerd@gnu.org>
3592
3593 * xfns.c: Call change_frame_size and do_pending_window_change with
3594 new parameter.
3595
35961999-08-21 Gerd Moellmann <gerd@gnu.org>
3597
3598 * xdisp.c (resize_mini_window): Do it for truncate-lines t as
3599 well.
3600 (redisplay_internal): Resize mini-window only if text might
3601 have changed.
3602 (display_echo_area): Reset displayed echo_area_buffer to nil
3603 at the end if we're displaying a nil message.
3604
36051999-08-21 Gerd Moellmann <gerd@gnu.org>
3606
3607 * fns.c (hash_lookup): Test with EQ before calling key comparion
3608 function.
3609 (hash_remove): Ditto.
3610 (cmpfn_eq): Removed.
3611 (cmpfn_eql): Don't test with EQ.
3612 (cmpfn_equal): Ditto.
3613 (make_hash_table): Set comparison function for `eq' to null.
3614
3615 * buffer.c, cmds.c, editfns.c, indent.c, insdel.c, buffer.h:
3616 Remove conditional compilation on NO_PROMPT_IN_BUFFER.
3617
3618 * dispextern.h (NO_PROMPT_IN_BUFFER): Removed.
3619
3620 * window.c, widget.c, process.c, keyboard.c, frame.c, xdisp.c,
3621 xterm.c: Call change_frame_size and do_pending_window_change with
3622 new parameter.
3623
3624 * dispnew.c (do_pending_window_change): Add parameter `safe'.
3625 (change_frame_size): Ditto.
3626 (change_frame_size_1): Ditto. Deley size changes if redisplaying
3627 and not called from a safe place.
3628 (window_change_signal): Call change_frame_size with new parameter.
3629
3630 * dispextern.h: Change prototypes for do_pending_window_change
3631 and change_frame_size.
3632
3633 * xfaces.c (face_at_buffer_position): Don't xassert that
3634 window's buffers equals current_buffer; this is not the
3635 case during echo area display.
3636
36371999-08-21 Gerd Moellmann <gerd@gnu.org>
3638
3639 * xdisp.c, minibuf.c: Remove conditional compilation on
3640 NO_PROMPT_IN_BUFFER.
3641
3642 * minibuf.c (Fminibuffer_prompt_end): New.
3643 (syms_of_minibuf): Defsubr it. Remove
3644 minibuffer-prompt-in-buffer.
3645 (Fminibuffer_prompt_width): Return 0 if not in mini-buffer.
3646 Extend documentation.
3647
3648 * xdisp.c (get_next_display_element): Display \r as ^M.
3649
3650 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Clear
3651 under scroll bar widget.
3652
36531999-08-21 Gerd Moellmann <gerd@gnu.org>
3654
3655 * xdisp.c (minibuffer_scroll_overlap): Removed because not used
3656 anywhere.
3657 (unwind_redisplay): Return nil.
3658 (clear_garbaged_frames): New.
3659 (redisplay_internal): Use it.
3660 (echo_area_display): Ditto.
3661 (resize_mini_window): Mew.
3662 (display_echo_area_1): Use it to resize echo area window.
3663 (redisplay_internal): Use it to resize active mini-window.
3664
3665 * dispextern.h, lisp.h: Add function prototypes.
3666
3667 * dispnew.c (set_window_cursor_after_update): Do the
3668 cursor_in_echo_area case only for a mini-window showing
3669 a message. Don't let cursor end up after the end of a row.
3670
3671 * xdisp.c (echo_area_glyphs, echo_area_message,
3672 echo_area_glyphs_length, previous_echo_glyphs,
3673 previous_echo_area_message, previous_echo_area_glyphs_length):
3674 Removed.
3675 (Vmessage_stack, echo_area_buffer, echo_buffer,
3676 display_last_displayed_message_p, Vwith_echo_area_save_vector): New.
3677 (message2_nolog): Use set_message and clear_message.
3678 (message3): Rename parameter len to nbytes to make clear what
3679 it is.
3680 (message3_nolog): Ditto. Use set_message and clear_message.
3681 (update_echo_area): Rewritten.
3682 (with_echo_area_buffer): New.
3683 (with_echo_area_buffer_unwind_data, unwind_with_area_buffer): New.
3684 (setup_echo_area_for_printing): New.
3685 (display_echo_area, display_echo_area_1): New.
3686
3687 (current_message, current_message_1): New.
3688 (push_message, restore_message, pop_message,
3689 check_message_stack): New.
3690 (truncate_echo_area): Rewritten.
3691 (truncate_message_1): New.
3692 (set_message, set_message_1, clear_message): New.
3693 (echo_area_display): Rewritten.
3694 (redisplay_internal): Check for needed echo area update
3695 differently.
3696 (redisplay_preserve_echo_area): Rewritten.
3697 (redisplay_window): Check for mini-window displaying echo area
3698 message differently.
3699 (syms_of_xdisp): Initialize Vmessage_stack and echo area buffers.
3700 Remove initialzation of removed variables.
3701 (init_xdisp): Remove references to removed variables.
3702
3703 * dispnew.c (adjust_frame_message_buffer): Removed references
3704 to echo_area_glyphs and previous_echo_glyphs.
3705 (direct_output_for_insert): Check for mini-window displaying
3706 echo area message differently.
3707 (update_frame): Likewise.
3708 (set_window_cursor_after_update): Likewise. In echo area,
3709 don't try to set cursor on rows that aren't enabled.
3710
3711 * print.c: Remove conditional compilation on `standalone'.
3712 (glyph_len, str_to_glyph_cpy, str_to_glyph_ncpy,
3713 glyph_to_str_cpy): Remove that section because GLYPHs are no
3714 longer used in that way.
3715 (PRINTDECLARE): Add multibyte.
3716 (PRINTPREPARE, PRINTFINISH): Handle printcharfun t differently.
3717 (printbufidx): Removed.
3718 (printchar, strout): Rewritten.
3719
3720 * keyboard.c (ok_to_echo_at_next_pause): Make it a pointer to
3721 a struct kboard.
3722 (echo_kboard): New.
3723 (echo_now): Set echo_kboard to the current kboard.
3724 (cancel_echoing): Set echo_kboard to null.
3725 (cmd_error_internal): Use clear_message, remove references
3726 to echo_area_glyphs and echo_area_message.
3727 (command_loop_1): Check for echo area messages differently.
3728 (read_char): Likewise.
3729 (record_menu_key): Use clear_message.
3730 (Fexecute_extended_command): Check for echo area messages
3731 differently. Use push_message, restore_message, pop_message.
3732
3733 * alloc.c (Fgarbage_collect): Use push_message, restore_message,
3734 pop_message.
3735
3736 * emacs.c (shut_down_emacs): Call check_message_stack.
3737
3738 * lisp.h: Add function prototypes and extern declarations for
3739 new functions and variables.
3740
3741 * fileio.c (Fdo_auto_save): Use push_message, restore_message,
3742 pop_message.
3743
3744 * minibuf.c (read_minibuf): Use clear_message instead of
3745 setting echo_area_glyphs.
3746 (Fminibuffer_completion_help): Ditto.
3747
3748 * editfns.c (Fcurrent_message): Rewritten.
3749
3750 * frame.c, window.h: Remove references to echo_area_glyphs
3751 and previous_echo_glyphs.
3752
37531999-08-21 Dave Love <fx@gnu.org>
3754
3755 * aix3-2-5.h (C_DEBUG_SWITCH): Use -g -O.
3756 * aix4-1.h: Likewise.
3757
3758 * irix6-5.h (C_DEBUG_SWITCH): Set for debug and optimize.
3759
37601999-08-20 Gerd Moellmann <gerd@gnu.org>
3761
3762 * xfns.c: Remove tiff34 prefix from include.
3763
37641999-08-20 Dave Love <fx@gnu.org>
3765
3766 * cm.c: Revert previous change.
3767
37681999-08-19 Gerd Moellmann <gerd@gnu.org>
3769
3770 * xterm.c (XTset_vertical_scroll_bar): Fix previous change. Clear
3771 under scroll bar with width FRAME_SCROLL_BAR_COLS.
3772
37731999-08-18 Dave Love <fx@gnu.org>
3774
3775 * callproc.c, filelock.c, insdel.c, sysdep.c, xmenu.c: Use
3776 stdlib.h.
3777
3778 * doprnt.c: Use stdlib.h, unistd.h.
3779
3780 * config.in: Add HAVE_TERMCAP_H.
3781
3782 * cm.c: Use termcap.h.
3783
37841999-08-18 Gerd Moellmann <gerd@gnu.org>
3785
3786 * xfns.c (x_window) [USE_X_TOOLKIT]: Remove test for
3787 FRAME_X_WINDOW (f) being null at the of the function. If widgets
3788 cannot be created we will already have crashed earlier. Call
3789 lw_set_main_areas with a null menu-bar widget, so that we have
3790 a reasonable default.
3791 (Fx_create_frame): Rearranged so that Lisp errors during frame
3792 initialization cause less damage. Initialize menu bar widget
3793 here.
3794
37951999-08-18 Gerd Moellmann <gerd@gnu.org>
3796
3797 * dispnew.c (update_frame_line): Fix previous change. If writing
3798 whole line clear to end of frame.
3799
38001999-08-17 Gerd Moellmann <gerd@gnu.org>
3801
3802 * window.c (Fcoordinates_in_window_p): Return `left-bitmap-area'
3803 and `right-bitmap-area' if position is in the bitmap areas. This
3804 avoids an error when clicking on the bitmap areas. Instead, they
3805 are currently treated like clicks inside the window.
3806 (coordinates_in_window): Return 5 and 6 for bitmap areas.
3807 (Qleft_bitmap_area, Qright_bitmap_area): New.
3808 (syms_of_window): Initialize new symbols.
3809
3810 * dispnew.c (update_frame_line): If writing whole line,
3811 don't write trailing spaces unless we must.
3812
3813 * xdisp.c (unwind_redisplay): New. Resets flag redisplaying_p.
3814 (redisplay_internal): Register unwind_redisplay with
3815 register_unwind_protect.
3816 (try_window_reusing_current_matrix): If new start > old start,
3817 give up if start pos of first reusable row is not equal to new
3818 start.
3819
3820 * eval.c (Fsignal): Don't reset redisplaying_p here.
3821
3822 * xterm.c (expose_area): If row extends face to end of line,
3823 write the whole line.
3824
38251999-08-16 Gerd Moellmann <gerd@gnu.org>
3826
3827 * dispextern.h (struct it): Remove member
3828 show_trailing_whitespace_p.
3829
3830 * dispnew.c (direct_output_for_insert): Use
3831 Vshow_trailing_whitespace instead of former iterator member
3832 show_trailing_whitespace_p.
3833 (direct_output_forward_char): Don't do it if hightlighting
3834 trailing whitespace.
3835
3836 * xdisp.c (Qshow_trailing_whitespace): Removed.
3837 (Vshow_trailing_whitespace): Added.
3838 (init_iterator): Remove initialization code for
3839 show_trailing_whitespace_p.
3840 (redisplay_internal): Don't try cursor movement in this_line
3841 if showing trailing whitespace.
3842 (redisplay_window): Likewise for cursor movement in current
3843 matrix and try_window_id.
3844 (try_window_reusing_current_matrix): Likewise.
3845 (trailing_whitespace_p): Return 0 if trailing whitespace is
3846 in front of point.
3847 (display_line): Use Vshow_trailing_whitespace instead of
3848 former iterator member show_trailing_whitespace_p.
3849 (syms_of_xdisp): Add DEFVAR_LISP for show-trailing-whitespace.
3850
38511999-08-16 Gerd Moellmann <gerd@gnu.org>
3852
3853 * window.c (Fpos_visible_in_window_p): Rewritten.
3854
3855 * xfaces.c (add_to_log): Renamed from display_message.
3856 Don't display messages in echo area.
3857
3858 * xterm.c (x_draw_glyph_string_box): Use the background width
3859 of the glyph string for the width of the box.
3860
38611999-08-16 Stefan Monnier <monnier@cs.yale.edu>
3862
3863 * syntax.c (Fforward_comment): Set comstyle for Scomment_fence.
3864
38651999-08-16 Geoff Voelker <voelker@cs.washington.edu>
3866
3867 * xfns.c, w32fns.c (x_set_frame_parameters): Set foreground and
3868 background first, and then set other parameters that might
3869 depend upon their new values.
3870
38711999-08-15 Gerd Moellmann <gerd@gnu.org>
3872
3873 * xfaces.c (Vfont_list_limit): New.
3874 (syms_of_xfaces): Make it a user-variable.
3875 (DEFAULT_FONT_LIST_LIMIT): New.
3876 (sorted_font_list): If Vfont_list_limit is an integer > 0, list
3877 maximally that number of fonts, otherwise use
3878 DEFAULT_FONT_LIST_LIMIT.
3879 (Fx_font_family_list): Bind `font-list-limit' to higher values
3880 until we have all fonts.
3881 (Fxfont_list): Additionally return the full names of fonts and
3882 their registry and encoding.
3883
3884 * xterm.c (XTset_vertical_scroll_bar) [USE_TOOLKIT_SCROLL_BARS]:
3885 Simplify clearing "under" scroll bar.
3886
3887 * window.c (Qfixed_window_size): New.
3888 (syms_of_window): Initialiaze it.
3889 (check_all_windows): Add return type void.
3890 (window_fixed_size_p): New. Return non-zero if window
3891 is fixed-size.
3892 (window_min_size_1): New.
3893 (window_min_size): Handle fixed-size windows.
3894 (size_window): New. Rewritten combination of set_window_height and
3895 set_window_width that handles fixed-size windows.
3896 (set_window_height): Call it.
3897 (set_window_width): Call it.
3898 (Fsplit_window): Give an error on attempt to split a fixed-size
3899 window.
3900 (change_window_height): Partly rewritten to handle fixed-size
3901 windows.
3902
39031999-08-13 Wolfgang Rupprecht <wolfgang@wsrcc.com>
3904
3905 * process.c (Fopen_network_stream): Fix previous change.
3906
39071999-08-13 Karl Heuer <kwzh@gnu.org>
3908
3909 * xdisp.c (line_number_display_limit_width): New var.
3910 (decode_mode_spec): Use it instead of hardcoded value.
3911 (syms_of_xdisp): Defvar it.
3912
39131999-08-13 Richard M. Stallman <rms@gnu.org>
3914
3915 * eval.c (run_hook_list_with_args): Gcpro `globals'.
3916 (run_hook_with_args): Likewise.
3917
3918 * window.h (struct window): New field too_small_ok.
3919
3920 * window.c (set_window_height, set_window_width):
3921 If window starts out "too small", set its too_small_ok flag.
3922 If window's too_small_ok flag is set, don't delete it
3923 unless it is so small it would cause a crash.
3924
39251999-08-13 Gerd Moellmann <gerd@gnu.org>
3926
3927 * window.c (MINSIZE): Removed.
3928 (window_min_size): New.
3929 (set_window_height): Use window_min_size.
3930 (change_window_height): Ditto.
3931
39321999-08-12 Gerd Moellmann <gerd@gnu.org>
3933
3934 * indent.c (vmotion): Don't add in mini-buffer prompt width
3935 if prompts are inserted into mini-buffer.
3936
39371999-08-12 Wolfgang Rupprecht <wolfgang@wsrcc.com>
3938
3939 * config.in: Add HAVE_GETADDRINFO.
3940 * process.c (Fopen_network_stream): Use getaddrinfo.
3941
39421999-08-11 Gerd Moellmann <gerd@gnu.org>
3943
3944 * xdisp.c (get_overlay_arrow_glyph_row): Set the charpos of
3945 glyphs to -1.
3946
3947 * xdisp.c (face_before_or_after_it_pos): If position after
3948 or before iterator's current position in the buffer is out
3949 of bounds, return the iterator's original face id.
3950
3951 * dispnew.c (mirror_make_current): If desired row isn't enabled,
3952 just swap glyphs pointers between current and desired row.
3953 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Copy
3954 desired matrix method string to current matrix.
3955
39561999-08-11 Kenichi Handa <handa@etl.go.jp>
3957
3958 * lisp.h (CHAR_MODIFIER_MASK): New macro.
3959
3960 * lread.c (read_escape): For Control modifier, pay attention to
3961 multibyte character.
3962 (read1): Likewise. Singal error or a multibyte character which
3963 has a modifer bit. Check validity of Shift modifer.
3964
3965 * charset.c (non_ascii_char_to_string): Handle modifier bits as
3966 the same as Lisp reader.
3967
39681999-08-10 Richard M. Stallman <rms@gnu.org>
3969
3970 * charset.h (BCOPY_SHORT): Fix typo `unsigined'.
3971
39721999-08-10 Alexandre Oliva <oliva@dcc.unicamp.br>
3973
3974 * unexelf.c [__linux__ && __alpha__] (HAS_SBSS_SECTION): Define.
3975
39761999-08-10 Eli Zaretskii <eliz@gnu.org>
3977
3978 * msdos.c (IT_set_face): Abort if the default face is not realized
3979 and cached.
3980 (IT_write_glyphs): Reset the screen face to the default face
3981 before writing glyphs.
3982
3983 * xfaces.c (realize_default_face) [MSDOS]: Don't take default
3984 colors from the frame here.
3985 (realize_tty_face) [MSDOS]: Do it here. Update the face
3986 attributes with the actual name of the color taken from the
3987 frame.
3988
3989 * dosfns.c (msdos_stdcolor_name): Remove const from return value.
3990 * dosfns.h (msdos_stdcolor_name): Ditto for the prototype.
3991
3992 * frame.c (Fframe_parameters): Swap foreground and background
3993 colors returned in frame parameters if the frame has reverse in
3994 its parameter alist.
3995 (Fmake_terminal_frame): Make a unique copy of face_alist for
3996 each frame.
3997
39981999-08-07 Richard Stallman <rms@gnu.org>
3999
4000 * buffer.c (Fprevious_overlay_change): Just return
4001 the answer obtained from overlays_at.
4002
4003 * xfns.c (xpm_load) [!XpmAllocCloseColors]:
4004 Use XpmCloseness and attrs.closeness instead.
4005
40061999-08-06 Richard Stallman <rms@gnu.org>
4007
4008 * lread.c (Feval_buffer): New arg DO_ALLOW_PRINT.
4009
40101999-08-06 Geoff Voelker <voelker@cs.washington.edu>
4011
4012 * dired.c (directory_files_internal, Fdirectory_files_and_attributes,
4013 Ffile_attributes_lessp): New functions.
4014 (Fdirectory_files): Use directory_files_internal.
4015 (syms_of_dired): Initialize Fdirectory_files_and_attributes,
4016 Ffile_attributes_lessp.
4017
4018 * w32.c (stat): Check for directory ending in separator when
4019 doing readdir fast path.
4020
4021 * w32fns.c (x_set_icon_type): Support setting frame icons.
4022 * w32term.c (x_bitmap_icon): New function.
4023 (x_make_frame_visible, x_iconify_frame): Invoke x_bitmap_icon.
4024
40251999-08-06 Gerd Moellmann <gerd@gnu.org>
4026
4027 * xdisp.c (set_iterator_to_next): After delivering a character
4028 from a display vector, restore face and charset to what they were
4029 before the display vector was processed.
4030
40311999-08-06 Gerd Moellmann <gerd@gnu.org>
4032
4033 * xdisp.c (reseat_at_next_visible_line_start): New parameter
4034 on_newline_p.
4035 (set_iterator_to_next): After delivering last char
4036 from display vector, reseat on next visible line start if
4037 dpvec_char_len < 0.
4038 (next_element_from_buffer): Set dpvec_char_len to -1 for
4039 selective display.
4040
40411999-08-06 Gerd Moellmann <gerd@gnu.org>
4042
4043 * xdisp.c (compute_line_metrics): If first line's physical ascent
4044 is larger than its logical ascent, use the physical ascent, and
4045 make the row taller. Set row's overlapping_p flag.
4046
4047 * dispnew.c (redraw_overlapping_rows): Use flag overlapping_p.
4048 (direct_output_for_insert): Ditto.
4049
4050 * dispextern.h (struct glyph_row): Add overlapping_p.
4051
4052 * xterm.c (x_draw_phys_cursor_glyph): Redraw overlaps.
4053
4054 * dispextern.h (MATRIX_ROW_OVERLAPS_PRED_P): New.
4055 (MATRIX_ROW_OVERLAPS_SUCC_P): New.
4056
4057 * dispnew.c (direct_output_for_insert): Don't use this method if
4058 row is overlapped by others.
4059 (update_text_area): Write full line if current line is overlapped.
4060 (redraw_overlapped_rows): New.
4061 (update_window): Call it.
4062 (redraw_overlapping_rows): New.
4063 (update_window): Call it.
4064 (scrolling_window): Make sure overlapped_p flag in current rows is
4065 unchanged.
4066 (row_equal_p): Take rows overlapped_p flag into account.
4067
4068 * dispextern.h (struct glyph_row): Add flag overlapped_p.
4069
4070 * xterm.c (x_fix_overlapping_area): New.
4071 (x_redisplay_interface): Add x_fix_overlapping_area.
4072
4073 * dispnew.c (adjust_glyphs): Block input while adjusting matrices.
4074
40751999-08-06 Gerd Moellmann <gerd@gnu.org>
4076
4077 * xterm.c (x_draw_glyphs): Add parameter overlaps_p.
4078 (struct glyph_string): Add member for_overlaps_p.
4079 (x_get_glyph_string_clip_rect): If glyph string draws foreground
4080 of overlapping rows, clip to window bottom.
4081 (x_fill_glyph_string): Add parameter overlaps_p.
4082 (x_fill_composite_glyph_string): Ditto.
4083 (BUILD_GLYPH_STRINGS): Ditto.
4084 (BUILD_CHAR_GLYPH_STRINGS): Ditto.
4085 (x_draw_glyph_string): Don't draw anything but the foreground
4086 if glyph string draws row overlaps.
4087
4088 * dispnew.c (direct_output_for_insert): Don't use this
4089 optimization for rows that overlap others.
4090 (update_window_line): Return non-zero if display has changed.
4091 (update_text_area): Ditto.
4092 (update_window): Record if display has been changed.
4093
4094 * dispextern.h (MATRIX_ROW_OVERLAPPING_P): New.
4095
4096 * dispextern.h (struct redisplay_interface): Add
4097 fix_overlapping_area.
4098
4099 * xterm.c (x_append_glyph): Set glyph flag overlaps_vertically_p.
4100
4101 * dispextern.h (struct glyph): Add overlaps_vertically_p.
4102
4103 * xterm.c (x_produce_image_glyph): Compute iterator's physical
4104 ascent and descent.
4105 (x_produce_stretch_glyph): Ditto.
4106 (x_produce_glyphs): Ditto.
4107
4108 * xdisp.c (init_iterator): Reset physical line height info
4109 after producing special glyphs.
4110 (display_toolbar_line): Set physical line height info.
4111 (compute_line_metrics): Ditto.
4112 (display_line): Ditto.
4113 (display_string): Ditto.
4114
4115 * term.c (produce_glyphs): Set iterator's physical height
4116 information.
4117
4118 * dispnew.c (blank_row): Compute glyph row's physical height.
4119 (row_equal_p): Take physical row heights into account.
4120 (direct_output_for_insert): Ditto.
4121 (update_text_area): Ditto.
4122
4123 * dispextern.h (struct glyph_row): Add phys_ascent and
4124 phys_height.
4125 (struct it): Add phys_ascent, phys_descent, max_phys_ascent,
4126 max_phys_descent.
4127
41281999-08-04 Stefan Monnier <monnier@cs.yale.edu>
4129
4130 * buffer.c (switch_to_buffer_1): New subroutine, taken out from
4131 Fswitch_to_buffer.
4132 (no_switch_buffer): New function.
4133 (Fswitch_to_buffer): Call them. Don't get confused
4134 by "same-window" buffers in a dedicated frame.
4135
4136 * window.c (display-buffer): Don't get confused
4137 by "same-window" buffers in a dedicated frame.
4138
41391999-08-04 Andreas Schwab <schwab@gnu.org>
4140
4141 * insdel.c (insert_from_string_1): Check gap size against number
4142 of outgoing bytes, not incoming bytes.
4143
41441999-08-03 Tom Breton <tob@world.std.com>
4145
4146 * lread.c (read1): Added circular reading code to #N=.
4147 (SUBSTITUTE): New macro.
4148 (seen_list): New variable.
4149 (substitute_object_in_subtree): New function.
4150 (substitute_object_recurse): New function.
4151 (substitute_in_interval): New function.
4152
41531999-08-02 Eli Zaretskii <eliz@gnu.org>
4154
4155 * Makefile.in (frame.o, sysdep.o, xfaces.o): Depend on dosfns.h.
4156
4157 * frame.c (make_terminal_frame): Don't call init_frame_faces if
4158 noninteractive, for termcap frames as well.
4159
4160 * sysdep.c (init_sys_modes): Call init_frame_faces for termcap
4161 frames.
4162
41631999-08-01 Richard Stallman <rms@gnu.org>
4164
4165 * fns.c (internal_equal): Correct overlay comparison.
4166
83c8f461 41671999-07-31 Richard M. Stallman <rms@gnu.org>
26901792
DL
4168
4169 * xfns.c (x_set_internal_border_width):
4170 Call do_pending_window_change. Don't block input, don't call XFlush.
4171 (x_set_vertical_scroll_bars): Call do_pending_window_change.
4172 (x_set_scroll_bar_width, x_set_font): Likewise.
4173
4174 * frame.c (Fset_frame_height): Call do_pending_window_change.
4175 (Fset_frame_width, Fset_frame_size): Likewise.
4176
4177 * xterm.c (x_set_window_size): When calling change_frame_size,
4178 specify 1 for DELAY.
4179
4180 * widget.c (EmacsFrameSetCharSize): Don't call
4181 do_pending_window_change here.
4182
41831999-07-30 Dave Love <fx@gnu.org>
4184
4185 * config.in: Add HAVE_STDLIB_H.
4186
41871999-07-30 Richard M. Stallman <rms@gnu.org>
4188
4189 * process.c (create_process): Detect failure of `pipe'.
4190
41911999-07-30 Keisuke Nishida <kei@psn.net>
4192
4193 * alloc.c (allocate_vectorlike): Add missing increment.
4194
4195 * data.c (Fdefalias): Call Ffset instead of duplicating code.
4196
4197 * keymap.c (get_keymap_1, get_keyelt): Check the type of OBJECT
4198 before calling indirect_function.
4199
42001999-07-30 Eli Zaretskii <eliz@gnu.org>
4201
4202 * dispextern.h (load_color, lookup_derived_face): Declare
4203 prototypes.
4204
4205 * dispnew.c (init_display) [MSDOS]: Don't initialize frame faces,
4206 it will be done later.
4207
4208 * frame.c (make_terminal_frame) [MSDOS]: Don't call
4209 init_frame_faces if non-interactive.
4210 (Fframe_parameters) [MSDOS]: Replace indexing into colornames[]
4211 array with a call to msdos_stdcolor_name. The font name is now
4212 "ms-dos", consistent with realize_tty_face.
4213
4214 * keyboard.c (cmd_error_internal): Don't kill Emacs if this is an
4215 MSDOS frame.
4216
4217 * window.c (Fset_window_configuration) [MSDOS]: Don't call
4218 x_set_toolbar_lines.
4219
4220 * xfaces.c (load_color): Remove static from definition and remove
4221 prototype.
4222 [MSDOS]: Add a DOS-specific version of load_color.
4223 (lookup_face): Replace FRAME_TERMCAP_P with !FRAME_WINDOW_P.
4224 (lookup_derived_face): New function.
4225 (realize_default_face): Support MSDOS frames.
4226 [MSDOS]: If fore/background colors are unspecified, inherit them
4227 from the frame.
4228 (realize_face): Support MSDOS frames.
4229 (realize_tty_face): Support MSDOS frames.
4230 [MSDOS]: If the face color is not in Vface_tty_color_alist, call
4231 load_color to try to find a suitable approximation. If the face
4232 is inverse-video, swap the foreground and background colors.
4233
4234 * dosfns.c (msdos_stdcolor_name, msdos_stdcolor_idx): New
4235 functions.
4236
4237 * dosfns.h (msdos_stdcolor_name, msdos_stdcolor_idx): Declare.
4238
4239 * msdos.h: Remove redundant declarations (most of them are now in
4240 dispextern.h).
4241
4242 * msdos.c (IT_set_face): Rewritten for the new redisplay engine.
4243 Use default frame colors if the face doesn't specify them; invert
4244 the colors if highlight is ON.
4245 (IT_write_glyphs): Rewritten for the new redisplay engine.
4246 (IT_change_line_highlight): Add (unused) parameter Y, since that's
4247 how the hook is called by term.c.
4248 (IT_copy_glyphs): New function, copies an area of the display in
4249 video RAM.
4250 (IT_insert_glyphs): Rewritten to DTRT instead of aborting, since
4251 redisplay now calls it even if char_ins_del_ok is zero.
4252 (IT_set_frame_parameters): Prototype changed. Calls the new
4253 load_color. Puts the new fore/background colors into the default
4254 face on current frame.
4255 (IT_menu_display): Rewritten to handle the new struct glyph
4256 instead of a char array.
4257 (XMenuActivate): Call lookup_derived_face to create and use
4258 special faces for the pop-up and drop-down menus.
4259
42601999-07-29 Gerd Moellmann <gerd@gnu.org>
4261
4262 * xterm.c (x_set_toolkit_scroll_bar_thumb): Don't call
4263 XawScrollbarSetThumb if thumb parameters haven't changed because
4264 that function apparently isn't optimized for this case.
4265
42661999-07-29 Eli Zaretskii <eliz@gnu.org>
4267
4268 * msdos.c (getdefdir): Don't return failure indication when
4269 _fixpath sets errno to ENOSYS.
4270
42711999-07-28 Gerd Moellmann <gerd@gnu.org>
4272
4273 * xdisp.c (string_char_and_length): New. Use it everywhere
4274 instead of STRING_CHAR_AND_LENGTH in xdisp.c.
4275
42761999-07-28 Kenichi Handa <handa@etl.go.jp>
4277
4278 * fns.c (count_combining): New function.
4279 (struct textprop_rec): New structure.
4280 (concat): Copy text properties correctly when byte combining
4281 occurs.
4282
42831999-07-28 Gerd Moellmann <gerd@gnu.org>
4284
4285 * xterm.c (x_setup_relief_color): Don't try smart color allocation
4286 if display is mono.
4287 (x_draw_row_bitmaps): If face has stipple, don't switch
4288 to foreground color for clearing areas, and set the fill style.
4289
4290 * xfaces.c (load_face_colors): Load background color if setting
4291 stipple, too.
4292 (prepare_face_for_display): Use FillOpaqueStippled instead of
4293 FillStippled.
4294
42951999-07-26 Ken'ichi Handa <handa@gnu.org>
4296
4297 * xterm.c (x_find_ccl_program): Add casting.
4298
4299 * w32fns.c (w32_find_ccl_program): Add casting.
4300
43011999-07-27 Gerd Moellmann <gerd@gnu.org>
4302
4303 * dispextern.h (struct glyph_row): Flag internal_border_p removed.
4304
4305 * xfns.c (x_create_tip_frame): Don't set bitmapIcon resource
4306 because this will try to access a nonexisting widget.
4307
43081999-07-26 Markus Rost <rost@gnu.org>
4309
4310 * fns.c (Fgethash): Fix order of variables (patch by gerd).
4311 (Fputhash): Ditto.
4312 (Fremhash): Ditto.
4313
43141999-07-26 Gerd Moellmann <gerd@gnu.org>
4315
4316 * widget.c (EmacsFrameSetCharSize): Don't add XtNborderWidth
4317 value to frame width and height.
4318
4319 * xterm.c (x_get_glyph_string_clip_rect): Take internal border
4320 into account for full-width windows. Don't add scroll bar width
4321 to width of clip rect.
4322 (x_draw_glyph_string_box): Add 1 to right x of full width lines.
4323 (x_set_glyph_string_background_width): Add 1 to background width.
4324 (x_draw_glyphs): Take internal border into account for full-width
4325 lines.
4326
43271999-07-26 Richard M. Stallman <rms@gnu.org>
4328
4329 * xfns.c (x_set_mouse_color): Always unload the old color.
4330 Don't allow nil as color value.
4331 (x_set_cursor_color, x_set_background_color, x_set_foreground_color):
4332 Always unload the old color.
4333
4334 * indent.c (Fmove_to_column): Extend end of line only if FORCE is t.
4335
43361999-07-26 Karl Heuer <kwzh@gnu.org>
4337
4338 * fns.c (Fy_or_n_p): Doc fix.
4339
43401999-07-26 Kenichi Handa <handa@etl.go.jp>
4341
4342 * ccl.h (setup_ccl_program): The type is changed to `int'.
4343
4344 * ccl.c (ccl_driver) <CCL_Call>: Now CCL program ID to call may be
4345 stored in the following CCL code. Adjusted for the change of
4346 Vccl_program_table.
4347 (resolve_symbol_ccl_program): Adjusted for the new style of
4348 embedded symbols (SYMBOL . PROP) in CCL compiled code. Return Qt
4349 is resolving failed.
4350 (ccl_get_compiled_code): New function.
4351 (setup_ccl_program): Function type changed from `void' to `int'.
4352 Resolve symbols in CCL_PROG.
4353 (Fccl_program_p): New function.
4354 (Fccl_execute): Get compiled CCL code by just calling
4355 setup_ccl_program.
4356 (Fccl_execute_on_string): Likewise.
4357 (Fregister_ccl_program): Adjusted for the change of
4358 Vccl_program_table.
4359
4360 * coding.c (setup_coding_system): Get compiled CCL code by just
4361 calling setup_ccl_program.
4362
4363 * xterm.c (x_find_ccl_program): Get compiled CCL code by just
4364 calling setup_ccl_program.
4365
4366 * w32fns.c (w32_find_ccl_program): Get compiled CCL code by just
4367 calling setup_ccl_program.
4368
43691999-07-23 Gerd Moellmann <gerd@gnu.org>
4370
4371 * xfaces.c (frame_update_line_height): Just use the height of the
4372 frame's fontset or font, instead of taking face fonts into
4373 account.
4374
4375 * xdisp.c (get_next_display_element): Display DEL as `^?'.
4376
43771999-07-23 Richard M. Stallman <rms@gnu.org>
4378
4379 * window.c (Fsplit_window): For default size, round up for left window.
4380
43811999-07-21 Joe Ramey <ramey@ti.com>
4382
4383 * filelock.c (lock_if_free): Return -1 if check_lock_owner
4384 has returned -1 (lockfile exists but is not a symlink?).
4385
43861999-07-20 Gerd Moellmann <gerd@gnu.org>
4387
4388 * xterm.c (x_draw_bar_cursor): Use scratch_cursor_gc to
4389 because of a change in cursor_gc made in 20.4.
4390
43911999-07-19 Gerd Moellmann <gerd@gnu.org>
4392
4393 * xterm.c (x_calc_absolute_position): Subtract menu bar height
4394 for YNegative, if using X toolkit.
4395
4396 * xfns.c (x_real_positions): Don't subtract window borders
4397 from positions returned.
4398
43991999-07-17 Gerd Moellmann <gerd@gnu.org>
4400
4401 * xrdb.c (x_load_resources): Set double-click time defaults
4402 for Motif list boxes from double-click-time.
4403
4404 * fns.c (Vhash_table_tests): Remvoed.
4405 (Qhash_table_test): New.
4406 (syms_of_fns): Initialize Qhash_table_test.
4407 (Fmake_hash_table): Look up user-defined tests in symbol prop
4408 `hash-table-test'.
4409 (Fdefine_hash_table_test): Store test and hash function as
4410 symbol prop `hash-table-test'.
4411 (make_hash_table): Add parameters user_test and user_hash.
4412
4413 * window.c (set_window_buffer): Set window margins for tty
4414 frames, too.
4415 (Fset_window_margins): Ditto.
4416
4417 * term.c (append_glyph): Use glyph area of iterator instead of
4418 always TEXT_AREA.
4419
4420 * dispnew.c (update_frame_1): Add left margin width to cursor
4421 hpos.
4422 (direct_output_for_insert): Ditto.
4423 (direct_output_forward_char): Ditto.
4424
4425 * dispnew.c (adjust_glyph_matrix): Set glyph matrix' top_line_p.
4426
4427 * dispextern.h (struct glyph_matrix): Add top_line_p.
4428
44291999-07-16 Gerd Moellmann <gerd@gnu.org>
4430
4431 * frame.h (FRAME_WINDOW_REDISPLAY_P): Removed. Use FRAME_WINDOW_P
4432 instead.
4433
4434 * fns.c (cmpfn_eq): Add hash code parameters.
4435 (cmpfn_eql): Ditto.
4436 (cmpfn_equal): Ditto, and compare hash codes before calling Fequal.
4437 (cmpfn_user_defined): Likewise.
4438
44391999-07-15 Gerd Moellmann <gerd@gnu.org>
4440
4441 * lisp.h (DEFAULT_REHASH_THRESHOLD): Changed to 0.8.
4442
4443 * fns.c (maybe_resize_hash_table): Correct computation of
4444 index vector size.
4445 (make_hash_table): Ditto.
4446 (Fmakehash): New.
4447
4448 * xdisp.c (echo_area_display): Don't call redraw_garbaged_frames.
4449
4450 * alloc.c (gc_sweep): Call sweep_weak_hash_tables.
4451 (survives_gc_p): Make it externally visible.
4452 (mark_object): Ditto.
4453
4454 * fns.c (remove_hash_entry): Removed.
4455 (sweep_weak_hash_tables): New.
4456
4457 * print.c (print): Print more information about hash tables.
4458
4459 * xfns.c (image_spec_hash): Removed.
4460 (lookup_image): Use sxhash instead of image_spec_hash.
4461 (image_spec_equal_p): Removed.
4462 (lookup_image): Use Fequal instead of image_spec_equal_p.
4463
44641999-07-14 Gerd Moellmann <gerd@gnu.org>
4465
4466 * lisp.h (P_): Moved to top of file.
4467
4468 * fns.c (make_hash_table): Set new members.
4469
4470 * alloc.c (mark_object): Mark hash table's user_hash_function.
4471 Mark index vector for weak hash tables.
4472
4473 * lisp.h (struct Lisp_Hash_Table): Add user_cmp_function,
4474 user_hash_function, cmpfn, and hashfn.
4475
4476 * fns.c (build_hash): Removed.
4477 (hash_test): Removed.
4478 (cmpfn_eq, cmpfn_eql, cmpfn_equal, cmpfn_user_defined): New.
4479 (hashfn_eq, hashfn_eql, hashfn_equal, hashfn_user_defined): New.
4480
44811999-07-13 Gerd Moellmann <gerd@gnu.org>
4482
4483 * alloc.c (survives_gc_p): New.
4484
4485 * print.c (print): Add hash table handling.
4486
4487 * alloc.c (mark_object): Add code to mark hash tables.
4488
4489 * lisp.h (GC_HASH_TABLE_P): New.
4490
4491 * emacs.c (main): Call init_fns.
4492
4493 * fns.c (init_fns): New.
4494
4495 * fns.c: Add hash table implementation.
4496
4497 * lisp.h (PVEC_HASH_TABLE): New.
4498 (struct Lisp_Hash_Table): New.
4499 (XHASH_TABLE): New.
4500 (XSET_HASH_TABLE): New.
4501 (HASH_TABLE_P): New.
4502 (CHECK_HASH_TABLE): New.
4503 (DEFAULT_HASH_SIZE): New.
4504 (DEFAULT_REHASH_THRESHOLD): New.
4505 (DEFAULT_REHASH_SIZE): New.
4506
4507 * xterm.c (x_draw_glyphs): Add parameters real_start and real_end.
4508 (x_write_glyphs): Compute overwritten cursor using real start
4509 and end positions of display.
4510 (x_insert_glyphs): Ditto.
4511
45121999-07-10 Gerd Moellmann <gerd@gnu.org>
4513
4514 * keyboard.c (read_char): Use message3_nolog to show help-echo.
4515
4516 * dispnew.c (blank_row): Add y-position as parameter. Compute
4517 visible height.
4518
4519 * xdisp.c (next_element_from_string): Give padding spaces
4520 a position of -1.
4521
4522 * dispnew.c (adjust_glyph_matrix): Some work to support
4523 marginals areas on tty frames in a future version.
4524 (allocate_matrices_for_frame_redisplay): Ditto.
4525
4526 * xdisp.c (display_line): At ZV, set glyph row's displays_text_p
4527 to zero if number of glyphs in the row is <= 1.
4528
45291999-07-09 Gerd Moellmann <gerd@gnu.org>
4530
4531 * dispnew.c (buffer_posn_from_coords): Take left marginal area
4532 into account.
4533
4534 * xdisp.c (handle_display_prop): Don't reset area if handing
4535 a property from a string that came from a `display' property.
4536 (handle_single_display_prop): Don't handle recursive `display'
4537 properties.
4538 (handle_single_display_prop): Handle some display property
4539 forms for terminal frames.
4540 (Qimage): Moved here from xfns.c.
4541
4542 * dispextern.h (struct it): New field string_from_display_prop_p.
4543
4544 * xterm.c (x_clip_to_row): Don't let clip_rect include top
4545 line.
4546
45471999-07-08 Gerd Moellmann <gerd@gnu.org>
4548
4549 * xdisp.c (handle_single_display_prop): Handle `:when FORM'.
4550
4551 * window.c (set_window_buffer): Set window's vscroll to zero.
4552
4553 * xdisp.c (QCwhen): New.
4554 (display_prop_end): New.
4555 (handle_single_display_prop): Use it.
4556 (debug_method_add): Print buffer name if tracing.
4557 (try_window_reusing_current_matrix): Compute visible height
4558 of reused rows. Fix cursor position calculation in case of
4559 top-line.
4560
4561 * dispextern.h (struct redisplay_interface): Add parameter
4562 cursor_on_p to update_window_end_hook.
4563
4564 * xterm.c (x_update_window_end): Add parameter cursor_on_p.
4565
45661999-07-07 Gerd Moellmann <gerd@gnu.org>
4567
4568 * xdisp.c (redisplay_internal): Ensure that redisplayinp_p
4569 doesn't become negative when decrementing it.
4570
4571 * eval.c (Fsignal): Reset redisplaying_p to zero.
4572
4573 * xdisp.c (try_window_reusing_current_matrix): Call hooks
4574 for window update.
4575 (try_window_id): Ditto.
4576
4577 * xterm.c (x_clear_end_of_line): Handle top-line correctly.
4578 (x_scroll_run): Ditto.
4579 (any_help_event_p): New.
4580 (x_initialize): Set it to zero.
4581 (XTread_socket): Clear help echo only if any_help_event_p.
4582
4583 * xdisp.c (init_iterator): Set top_line_p.
4584 (start_display): Use correct initial y if top-line is present.
4585 (make_cursor_line_fully_visible): Bug fixes for top-line.
4586 (try_scrolling): Ditto.
4587 (try_window_reusing_current_matrix): Ditto.
4588
4589 * dispextern.h (struct it): Add top_line_p.
4590
4591 * dispnew.c (shift_glyph_matrix): Move some computations out
4592 of the loop.
4593
4594 * dispnew.c (margin_glyphs_to_reserve): Use NUMBERP and
4595 XFLOATINT.
4596
45971999-07-06 Gerd Moellmann <gerd@gnu.org>
4598
4599 * dispnew.c (update_frame_1): When setting cursor in echo area,
4600 skip only over padding spaces at the end.
4601
4602 * xfaces.c (realize_tty_face): Set face's font_name field to
4603 "tty".
4604
4605 * term.c (update_end): Turn cursor on only if selected window's
4606 cursor_off_p flag is not set.
4607
46081999-07-05 Gerd Moellmann <gerd@gnu.org>
4609
4610 * term.c (TS_cursor_visible): Renamed from TS_visual_mode.
4611 (TS_cursor_normal): Renamed from TS_end_visual_mode.
4612 (TS_cursor_invisible): New.
4613 (term_init): Initialize TS_cursor_invisible.
4614 (tty_hide_cursor): New.
4615 (tty_show_cursor): New.
4616 (update_end): Show tty cursor.
4617 (update_begin): Hide tty cursor to prevent cursor flickering
4618 during redisplays triggered by timers (stealth fontification).
4619
4620 * keyboard.c (make_lispy_event) <TOOLBAR_EVENT>: Apply modifiers.
4621
4622 * xterm.c (XTread_socket) [USE_MOTIF] <KeyPress>: Catch events
4623 in scroll bars.
4624 (x_handle_toolbar_click): Set modifier bits.
4625
46261999-07-04 Gerd Moellmann <gerd@gnu.org>
4627
4628 * keyboard.c (kbd_store_ptr): Declare it as a volatile pointer
4629 instead of a pointer to a volatile input_event.
4630 (kbd_buffer_store_event): Remove volatile modifier from
4631 declaration of local variable `sp'.
4632 (Fdiscard_input): Don't cast when assigning kbd_store_ptr
4633 to kbd_fetch_ptr.
4634
46351999-07-03 Gerd Moellmann <gerd@gnu.org>
4636
4637 * xdisp.c (try_window_id): Set beg_unchanged and end_unchanged
4638 only if buffer is modified. Return quickly if changes are
4639 above window start.
4640
46411999-07-02 Gerd Moellmann <gerd@gnu.org>
4642
4643 * dispextern.h (HSCROLL_WINDOWS): Removed.
4644
4645 * xdisp.c (mark_window_display_accurate): Don't set
4646 w->region_showing.
4647 (redisplay_internal): Don't call redraw_garbaged_frames.
4648
46491999-07-01 Gerd Moellmann <gerd@gnu.org>
4650
4651 * xdisp.c (echo_area_display): Don't display truncation marks
4652 for messages because 20.4 doesn't do it either.
4653 (redisplay_window): Case same window start. Instead of giving
4654 up when cursor is partially visible, make it fully visible.
4655 (mark_window_display_accurate): Some cleanup. Record window's
4656 last cursor information.
4657 (debug_method_add): Improved.
4658 (redisplay_internal): Record last cursor info only if not
4659 consider_all_windows_p.
4660
4661 * dispnew.c (update_window): Update top line after scrolling.
4662 (blank_row): Renamed from make_empty_enabled_row.
4663 (increment_glyph_row_buffer_positions): Increment positions
4664 in buffers, only.
4665
4666 * window.c (Fcoordinates_in_window_p): Add top-line to doc
4667 string.
4668
46691999-06-30 Gerd Moellmann <gerd@gnu.org>
4670
4671 * dispnew.c (update_window): Check that updated row is visible.
4672
4673 * xterm.c (x_draw_row_bitmaps): Check for invisible rows at
4674 top of window differently.
4675
4676 * xdisp.c (try_window_reusing_current_matrix): Don't do it
4677 if region is showing.
4678
4679 * dispnew.c (adjust_glyph_matrix): Check w->vscroll when
4680 avoiding matrix reallocation. Set window_vscroll in matrix.
4681
4682 * dispextern.h (struct glyph_matrix): Add member window_vscroll.
4683
26901792
DL
4684 * xdisp.c (debug_method_add): New.
4685 (debug_redisplay_method): Removed.
4686 (try_window_reusing_current_matrix): Handle case where old
4687 window start is the same as new window start.
4688
4689 * dispextern.h (struct glyph_matrix) [GLYPH_DEBUG]: Make `method'
4690 an array instead of a pointer.
4691
26901792
DL
4692 * xfns.c (Fx_show_tip): Undo previous change.
4693
4694 * xterm.c (x_append_glyph): Clear glyph->u.val.
4695
4696 * dispextern.h (struct glyph): Increase size of face_id bit-field
4697 for CHAR_GLYPH to 12.
4698
46991999-06-29 Gerd Moellmann <gerd@gnu.org>
4700
4701 * xfaces.c (x_charset_registry): Make it externally visible.
4702
47031999-06-28 Gerd Moellmann <gerd@gnu.org>
4704
4705 * dispnew.c (update_window): Use mode_line_p flag of rows
4706 instead of WINDOW_WANTS_MODELINE_P.
4707
4708 * xterm.c (clear_mouse_face): Make externally visible.
4709
4710 * xfns.c (Fx_show_tip): Clear mouse face before showing tip.
4711
4712 * xterm.c (expose_line): Handle exposure of top-lines.
4713
4714 * xterm.c (XTframe_up_to_date): Don't call note_mouse_highlight
4715 if mouse_face_mouse_frame is null.
4716
4717 * xdisp.c (redisplay_window): If window is echo_area_window,
4718 and update_mode_line is set, update menubar and toolbar.
4719
4720 * dispnew.c (space_glyph): Set its charpos to -1.
4721 (update_frame_1): Ignore trailing padding spaces.
4722
4723 * xdisp.c (next_element_from_c_string): Set position of padding
4724 glyphs to -1.
4725
47261999-06-27 Gerd Moellmann <gerd@gnu.org>
4727
4728 * xfns.c (x_laplace_read_row): Use XQueryColors instead of
4729 XQueryColor.
4730
4731 * xdisp.c (display_menu_bar): Remove unwarranted assertion.
4732 (set_cursor_from_row): Skip over glyphs having a null object at
4733 the start of rows.
4734 (insert_left_trunc_glyphs): Use charpos < 0 to indicate truncation
4735 glyphs.
4736 (handle_invisible_prop): Compute next change only when needed.
4737 (handle_face_prop): Don't correct DEFAULT_FACE_ID if in the mode
4738 line.
4739
47401999-06-26 Gerd Moellmann <gerd@gnu.org>
4741
4742 * xrdb.c (x_load_resources): Don't set resource for double-click
4743 time.
4744
4745 * xdisp.c (try_window_id): Return quickly if all changes are
4746 below the window's current matrix end.
4747
4748 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): Remove window
4749 parameter.
4750
4751 * xdisp.c (try_window_reusing_current_matrix): Set no_scrolling_p
4752 in desired not in current matrix.
4753 (try_window_reusing_current_matrix): Rotate matrices starting
4754 at start_vpos instead of 0.
4755
4756 * xterm.c (expose_window): Use window_text_bottom_y.
4757 (fast_find_position): Ditto.
4758
4759 * xdisp.c (redisplay_window): Use window_text_bottom_y.
4760 (try_window_reusing_current_matrix): Ditto.
4761 (get_last_unchanged_at_beg_row): Ditto.
4762 (init_iterator): Ditto.
4763
4764 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate one
4765 more row.
4766 (check_matrix_invariants): Use window_text_bottom_y.
4767 (update_window): Ditto.
4768 (scrolling_window): Ditto.
4769
4770 * xdisp.c (window_text_bottom_y): New.
4771
47721999-06-25 Gerd Moellmann <gerd@gnu.org>
4773
4774 * xterm.c (XTread_socket): Set mouse_face_frame to zero after
4775 clearing mouse face.
4776 (XTread_socket) <EnterNotify> [LESSTIF_VERSION]: If
4777 event.xcrossing.focus is not set, and focus is in the menu bar,
4778 set focus frame as if event.xcrossing.focus were set.
4779
47801999-06-24 Gerd Moellmann <gerd@gnu.org>
4781
4782 * keyboard.c (make_lispy_event): Handle mouse on top lines.
4783 * keyboard.c (make_lispy_movement): Ditto.
4784
4785 * window.c (coordinates_in_window): Return 4 if on top line.
4786 (Fcoordinates_in_window_p): Return `top-line' if on top line.
4787
4788 * xdisp.c (window_box_height): Subtract top line height.
4789 (window_box): Add top line height to top y position if top line
4790 exists.
4791 (init_iterator): If base_face_id is TOP_LINE_FACE_ID, set row to
4792 the top line row of the window. Set initial y-position to
4793 window's top line height plus delta.
4794 (start_display): Choose start glyph row depending on whether
4795 window has a top line.
4796 (try_scrolling): Take top line height into account for aggressive
4797 scrolling.
4798 (compute_window_start_on_continuation_line): Take top line into
4799 account.
4800 (redisplay_window): Ditto. If top line height has changed,
4801 trigger a new redisplay.
4802 (try_window_reusing_current_matrix): Take top line into account.
4803 (find_last_row_displaying_text): Ditto.
4804 (get_last_unchanged_at_beg_row): DItto.
4805 (try_window_id): Ditto.
4806 (compute_line_metrics): Ditto.
4807
4808 * dispnew.c (shift_glyph_matrix): Compute visible row height
4809 taking top line of window into account.
4810 (update_window): Update top line. If scrolling_window detects
4811 that all rows are equal, only set cursor.
4812 (update_window_line): Call after_update_window_line_hook if
4813 mode_line_p flag of rows has changed.
4814 (scrolling_window): Add parameter top_line_p. Return -1 if
4815 all rows are equal.
4816 (mode_line_string): Add parameter mode_line_p. Handle strings
4817 in top lines.
4818
4819 * dispextern.h (MATRIX_TOP_LINE_ROW): New.
4820 (MATRIX_FIRST_TEXT_ROW): New.
4821 (MATRIX_ROW_PARTIALLY_VISIBLE_P): Use row's visible_height.
4822 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_TOP_P): New.
4823 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_BOTTOM_P): New.
4824 (MATRIX_TOP_LINE_HEIGHT): New.
4825 (CURRENT_MODE_LINE_HEIGHT): Use estimate_mode_line_height.
4826 (CURRENT_TOP_LINE_HEIGHT): New.
4827 (DESIRED_TOP_LINE_HEIGHT): New.
4828 (WINDOW_DISPLAY_TOP_LINE_HEIGHT): New.
4829 (WINDOW_DISPLAY_HEIGHT_NO_MODE_LINE): Replaces
4830 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
4831 (WINDOW_DISPLAY_TEXT_HEIGHT): New.
4832
4833 * xterm.c (x_after_update_window_line): Don't draw bitmaps for top
4834 lines.
4835 (x_draw_row_bitmaps): Take top line into account when clearing
4836 bitmap area.
4837 (x_estimate_mode_line_height): Replacement for
4838 x_frame_mode_line_height.
4839 (x_get_glyph_string_clip_rect): Take top line into account.
4840 (x_clear_end_of_line): Ditto.
4841 (note_mode_line_highlight): Add parameter mode_line_p. Handle
4842 top lines.
4843 (note_mouse_highlight): Call note_mode_line_highlight for top lines.
4844 (x_erase_phys_cursor): Take top line into account.
4845
4846 * xdisp.c (window_box_height): Subtract top line height if
4847 window wants a top line.
4848 (display_mode_lines): New.
4849 (redisplay_window): Call it.
4850 (display_mode_line): Add parameters face_id and format.
4851
4852 * dispextern.h (CURRENT_TOP_LINE_HEIGHT): New.
4853 (MATRIX_TOP_LINE_HEIGHT): New.
4854
4855 * xterm.c (x_frame_mode_line_height): Add parameter face_id.
4856
4857 * term.c (estimate_mode_line_height): Renamed from
4858 frame_mode_line_height. Add parameter face_id.
4859 (estimate_mode_line_height_hook): Renamed from
4860 frame_mode_line_height_hook.
4861 (produce_special_glyphs_hook): Removed.
4862 (produce_glyphs_hook): Removed.
4863
48641999-06-23 Gerd Moellmann <gerd@gnu.org>
4865
4866 * dispextern.h (WINDOW_WANTS_TOP_LINE_P): New.
4867 (struct glyph_row): Add mode_line_p.
4868
4869 * xfaces.c (realize_basic_faces): Realize face `top-line'.
4870 (Qtop_line): New.
4871 (syms_of_xfaces): Initialize Qtop_line.
4872
4873 * dispextern.h (TOP_LINE_FACE_ID): New.
4874
4875 * buffer.c (init_buffer_once): Set default for
4876 top_line_format to nil.
4877 (init_buffer_once): Init top_line_format.
4878 (default-top-line-format): New.
4879 (top-line-format): New buffer-local variable.
4880
4881 * buffer.h: Add top_line_format.
4882
4883 * xdisp.c (overlay_arrow_changed_p): Removed because not used.
4884
48851999-06-17 Dave Love <fx@gnu.org>
4886
4887 * xfns.c: Move the PNG section before the JPEG one to avoid
4888 problems surrounding setjmp.h/png.h on GNU/Linux.
4889
48901999-06-17 Gerd Moellmann <gerd@gnu.org>
4891
4892 * xfns.c (x_kill_gs_process): Don't free colors.
4893
48941999-06-17 Dave Love <fx@gnu.org>
4895
4896 * s/gnu-linux.h: Zap spurious ~.
4897
48981999-06-16 Gerd Moellmann <gerd@gnu.org>
4899
4900 * xfns.c (gif_load): Improve multi-image support.
4901
49021999-06-15 Gerd Moellmann <gerd@gnu.org>
4903
4904 * xfns.c (gif_load): Support multi-image files.
4905
4906 * Makefile.in (LIBGIF): Use libungif.
4907
4908 * configure.in (HAVE_GIF): Use libungif instead of libgif
4909 because the former doesn't contain patented compression code.
4910
4911 * xdisp.c (compute_window_start_on_continuation_line): Don't
4912 do it if line start is too far away from window start.
4913
49141999-06-14 Gerd Moellmann <gerd@gnu.org>
4915
4916 * buffer.c (init_buffer_once): Set buffer_local_flags for
4917 scroll_*_aggressively.
4918 (syms_of_buffer): Add DEFVAR_PER_BUFFER for scroll-*-aggressively.
4919 (init_buffer_once): Set defaults for these variables.
4920 (syms_of_buffer): Add default-scroll-*-aggressively.
4921
4922 * buffer.h (scroll_up_aggressively): New.
4923 (scroll_down_aggressively): New.
4924
4925 * Makefile.in (LIBPNG): Add -lz -lm in case we're linking with
4926 a static PNG library.
4927
4928 * configure.in (HAVE_PNG): Add -lz -lm when checking for PNG lib
4929 in case it's a static library.
4930
4931 * Makefile.in (ctagsfiles): Split so that files starting
4932 with an `x' are found before files starting with `w32'.
4933 (ctagsfiles1): New.
4934 (ctagsfiles2): New.
4935 (TAGS): Use ctagsfiles[12] instead of ctagsfiles.
4936
4937 * xdisp.c (compute_window_start_on_continuation_line): New.
4938 (redisplay_window): Use it.
4939 (INFINITY): New.
4940 (reseat_to_string): Use it.
4941 (hscroll_window_tree): Ditto.
4942 (compute_window_start_on_continuation_line): Ditto.
4943 (redisplay_window): Don't force display with a new window start.
4944
49451999-06-06 Gerd Moellmann <gerd@gnu.org>
4946
4947 * xfns.c (x_report_frame_params): Don't report `outer-window-id'
4948 if widget not present.
4949
4950 * xdisp.c (prepare_menu_bars): Ignore tooltip frame.
4951
49521999-06-04 Gerd Moellmann <gerd@gnu.org>
4953
4954 * xfaces.c (recompute_basic_faces)[GLYPH_DEBUG]: Check return
4955 value of realize_basic_faces.
4956 (load_face_font_or_fontset): Store full font name in face.
4957 (realize_default_face): Use full font name.
4958
26901792
DL
4959 * xterm.c (x_produce_glyphs): Set member char_to_display.
4960 (x_append_glyph): Store char_to_display in glyphs.
4961
4962 * dispextern.h (struct it): Add char_to_display.
4963
4964 * xfns.c (x_set_font): Don't call face-set-after-frame-default
4965 if faces haven't been initialized.
4966 (Fx_create_frame): Call face-set-after-frame-default after
4967 faces have been initialized, and widget has been created.
4968
4969 * puresize.h (BASE_PURESIZE): Increased.
4970
49711999-06-01 Gerd Moellmann <gerd@gnu.org>
4972
4973 * xfaces.c (set_lface_from_font_name): Add parameter force_p.
4974 (Finternal_set_lisp_face_attribute): If frame is t when
4975 :font attribute is set, use the selected frame.
4976 (clear_face_cache): Add parameter clear_fonts_p.
4977 (Fclear_face_cache): Add optional parameter thorougly.
4978
4979 * xfaces.c (face_numeric_value): Return -1 if symbol is not
4980 in table.
4981 (Fclear_face_cache): New.
4982 (choose_face_fontset_font): If fontset doesn't contain font
4983 pattern for the given charset, use CHARSET_ASCII.
4984 (Finternal_set_lisp_face_attribute): Fix handling of nil
4985 stipple attribute.
4986 (Finternal_set_lisp_face_attribute): Fix handling of changing
4987 font-related face attributes of the default face.
4988 (set_lface_from_font_name): Set only attributes that aren't
4989 specified.
4990
49911999-05-31 Gerd Moellmann <gerd@gnu.org>
4992
4993 * xfaces.c (SCALABLE_FONTS): Define this to enable scalable
4994 font support.
4995 (Vscalable_fonts_allowed) [SCALABLE_FONTS]: New.
4996 (x_face_list_fonts): Add parameter scalable_fonts_p. Handle
4997 scalable fonts depending on the setting of SCALABLE_FONTS.
4998 (first_font_matching): List more than one font to find the
4999 first non-scalable matching font.
5000 (sorted_font_list): Let x_face_list_fonts return scalable fonts
5001 depending on SCALABLE_FONTS.
5002 (better_font_p): New parameter compare_pt_p. If zero, don't
5003 compare point sizes of fonts.
5004 (exact_face_match_p) [SCALABLE_FONTS]: New.
5005 (build_scalable_font_name) [SCALABLE_FONTS]: New.
5006 (may_use_scalable_font_p) [SCALABLE_FONTS]: New.
5007 (best_matching_font) [SCALABLE_FONTS]: Handle scalable fonts.
5008 (syms_of_xfaces): Add scalable-fonts-allowed.
5009
50101999-05-26 Gerd Moellmann <gerd@gnu.org>
5011
5012 * xfns.c (png_load): Let PNG lib handle gamma. Construct
5013 mask only if image contains simple transparency information.
5014 Otherwise, combine image with frame background color.
5015
5016 * configure.in (--with-png, HAVE_PNG): New.
5017
5018 * config.in (HAVE_PNG): New.
5019
5020 * Makefile.in: Add PNG library.
5021
5022 * xfns.c: Add PNG support.
5023
50241999-05-25 Gerd Moellmann <gerd@gnu.org>
5025
5026 * xdisp.c (init_xdisp): Initialize echo_area_message and
5027 previous_echo_area_message to nil.
5028
5029 * keyboard.c (read_char): Rename local variable echo_area_message
5030 because it shadows the global one.
5031
50321999-05-05 Gerd Moellmann <gerd@gnu.org>
5033
5034 * xterm.c (note_mode_line_highlight): Restructured.
5035
5036 * window.c (coordinates_in_window): Handle windows that don't have
5037 a mode line because their buffer's mode-line-format is nil.
5038 Recognize the mode line under x positions that correspond to
5039 flags areas and left scroll bar.
5040
50411999-05-02 Dave Love <fx@gnu.org>
5042
5043 * xterm.c (note_mouse_highlight): Separate help-echo processing
5044 from check on mouse-face so that it works generally.
5045
50461999-04-21 Gerd Moellmann <gerd@gnu.org>
5047
5048 * sound.c (Fplay_sound): Run hook play-sound-hook.
5049 (Qplay_sound_hook): New.
5050
50511999-04-20 Gerd Moellmann <gerd@gnu.org>
5052
5053 * xdisp.c (update_echo_area): Handle echo_area_message.
5054
50551999-04-19 Gerd Moellmann <gerd@gnu.org>
5056
5057 * editfns.c (Fmessage): Use message3.
5058
5059 * print.c (printchar): Set echo_area_message to nil.
5060 (strout): Ditto.
5061
5062 * minibuf.c (read_minibuf): Reset echo message strings to nil.
5063 (Fminibuffer_completion_help): Ditto.
5064
5065 * keyboard.c (cmd_error_internal): Set echo_areA_message.
5066 (command_loop_1): Test echo_areA_message.
5067 (read_char): Ditto.
5068 (record_menu_key): Set echo_area_message to nil.
5069 (Fexecute_extended_command): Test echo_area_message.
5070 (Fexecute_extended_command): Handle echo_area_message.
5071
5072 * fileio.c (Fdo_auto_save): Handle the case that echo_area_message
5073 is set.
5074
5075 * editfns.c (Fcurrent_message): If echo_area_message is set,
5076 return a substring of that string.
5077
5078 * dispnew.c (direct_output_for_insert): Test echo_area_message
5079 in addition to echo_area_glyphs.
5080 (set_window_cursor_after_update): Ditto.
5081 (update_frame_1): Ditto.
5082
5083 * alloc.c (Fgarbage_collect): Use message3_nolog to display
5084 old Lisp message string.
5085
5086 * xdisp.c (echo_area_message): New.
5087 (previous_echo_area_message): New.
5088 (syms_of_xdisp): Initialize and staticpro new variables.
5089 (echo_area_display): Display echo_area_message if set.
5090 (message2_nolog): Set echo_area_message and
5091 previous_echo_area_message.
5092 (echo_area_display): Set previous_echo_area_message.
5093 (redisplay_internal): Display echo area if echo_area_message
5094 or previous_echo_area_message are set.
5095 (redisplay_preserve_echo_area): Test/set echo_area_message and
5096 previous_echo_area_message.
5097 (redisplay_window): Test echo_area_message.
5098 (message3_nolog): New.
5099 (message3): New.
5100
5101 * editfns.c (Fformat): Add text properties to the result string
5102 from properties of the format string and properties of string
5103 arguments.
5104
5105 * textprop.c (text_property_list): New.
5106 (add_text_properties_from_list): New.
5107 (extend_property_ranges): New.
5108
51091999-03-29 Gerd Moellmann <gerd@gnu.org>
5110
5111 * xfaces.c (Qraised, Qsunken, QCshadow): Removed.
5112 (QCline_width, QCstyle, Qpressed_button, Qreleased_button): New.
5113 Use these symbols for the box face attribute instead of the
5114 removed ones.
5115
51161999-03-12 Gerd Moellmann <gerd@gnu.org>
5117
5118 * xfaces.c (realize_tty_face): Don't set alt_char_p of face.
5119 Correct wrong test for slant.
5120
51211999-03-10 Gerd Moellmann <gerd@gnu.org>
5122
5123 * xfaces.c: Use `unspecified' for unspecified face attributes,
5124 use t and nil for on/off.
5125
51261999-03-06 Gerd Moellmann <gerd@gnu.org>
5127
5128 * buffer.c (syms_of_buffer): Extend doc string of
5129 mode-line-format.
5130
5131 * xfaces.c (x_face_list_fonts): New parameter try_alternatives_p.
5132 (first_font_matching): New.
5133 (set_lface_from_font_name): Use it if font name is a pattern.
5134 (font_field_wildcard_p): Removed.
5135
5136 * dispnew.c (shift_glyph_matrix): Add `window' parameter.
5137 Recompute visible height of rows.
5138
5139 * xterm.c (note_mouse_highlight): Reorder code for help-echo.
5140 Don't accept non-strings for help-echo from overlays.
5141
51421999-03-04 Dave Love <fx@gnu.org>
5143
5144 * xterm.c (note_mouse_highlight): Check overlays for help-text
5145 property.
5146 (XTread_socket): Fix compiler warning.
5147
51481999-03-05 Gerd Moellmann <gerd@gnu.org>
5149
5150 * xterm.c (note_mouse_highlight): Don't restrict number of
5151 overlay to 10. Call overlays_at so that it doesn't try to
5152 extend the vector.
5153
5154 * xdisp.c (compute_line_metrics): Compute glyph row's visible
5155 height.
5156
5157 * dispnew.c (row_equal_p): Compare visible row height, only.
5158 (update_text_area): Draw whole line if visible heights of
5159 rows differ.
5160 (update_window_line): Call after_update_window_line_hook
5161 if visible row height has changed.
5162
5163 * dispextern.h (MATRIX_ROW_VISIBLE_HEIGHT): Removed.
5164 (struct glyph_row): New member visible_height.
5165
5166 * xfaces.c (font_field_wildcard_p): New.
5167 (set_lface_from_font_name): Remove parameter force_p. Accept
5168 font names containing wildcards.
5169
51701999-03-04 Gerd Moellmann <gerd@gnu.org>
5171
5172 * xterm.c (x_after_update_window_line): Clear internal border
5173 when windows_or_buffers_changed.
5174
5175 * dispextern.h (WINDOW_WANTS_MODELINE_P): Return zero if window's
5176 buffer has a nil mode_line_format.
5177
51781999-03-03 Gerd Moellmann <gerd@gnu.org>
5179
5180 * xterm.c (x_setup_relief_colors): Use either background color
5181 or specified color.
5182
5183 * xfaces.c (realize_x_face): Set face->use_box_color_for_shadows_p.
5184
5185 * dispextern.h (struct face): Add use_box_color_for_shadows_p.
5186
5187 * xterm.c (x_draw_box_rect): New.
5188 (x_draw_glyph_string_box): Renamed from
5189 x_draw_glyph_string_relief. Call x_draw_box_rect.
5190
5191 * xfns.c (QCrelief): New.
5192 (syms_of_xfns): Initialize it.
5193
5194 * dispextern.h (struct glyph): Rename left_shadow_p to
5195 left_box_line_p, right_shadow_p to right_box_line_p.
5196 (MAX_RELIEF_THICKNESS): Removed.
5197 (struct it): Rename members having `relief' in their names
5198 to contain `box' instead.
5199
5200 * xfaces.c (realize_x_face): Handle new box attribute values.
5201 (QCrelief, Qbox): Removed.
5202 (QCshadow, QCcolor, Qraised, Qsunken): New.
5203 (syms_of_xfaces): Initialize new symbols.
5204
52051999-03-02 Gerd Moellmann <gerd@gnu.org>
5206
5207 * dispextern.h (LFACE_RELIEF_INDEX): Removed.
5208
5209 * xfaces.c (LFACE_RELIEF): Removed.
5210 (merge_face_vector_with_property): Remove handling of `:relief'.
5211 (Finternal_set_lisp_face_attribute): Ditto.
5212 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
5213 (Finternal_get_lisp_face_attribute): Ditto.
5214 (realize_default_face): Ditto.
5215 (lface_hash): Don't compute hash from relief.
5216
5217 * dispextern.h (struct face): Replace member `relief' by
5218 `box_line_width'. Add member `box'.
5219 (face_box_type): New.
5220
5221 * xterm.c (x_produce_glyphs): If face has overline, add overline
5222 thickness + 1 to ascent.
5223
52241999-03-01 Gerd Moellmann <gerd@gnu.org>
5225
5226 * xterm.c (x_draw_glyph_string): Draw underline, overline,
5227 strike-through, and boxes.
5228 (x_draw_glyph_string_underline): Removed.
5229
5230 * xfaces.c (QCoverline, QCstrike_through, QCbox): New.
5231 (Qoverline, Qstrike_through, Qbox): New.
5232 (syms_of_xfaces): Define these symbols.
5233 (check_lface_attrs): Add checks for overline, strike-through,
5234 and box.
5235 (Finternal_set_lisp_face_attribute): Set new attributes.
5236 (LFACE_OVERLINE, LFACE_STRIKE_THROUGH, LFACE_BOX): New.
5237 (load_color): Handle new attributes.
5238 (realize_x_face): Ditto.
5239 (merge_face_vector_with_property): Ditto.
5240 (free_face_colors): Ditto.
5241 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
5242 (Finternal_get_lisp_face_attribute): Ditto.
5243 (Finternal_lisp_face_attribute_values): Ditto.
5244
5245 * dispextern.h (lface_attribute_index): Add enumerators for
5246 overstrike, strike-through, and box.
5247 (struct face): Add members for overline, strike-through, and
5248 box.
5249
52501999-02-17 Dave Love <fx@gnu.org>
5251
5252 * s/gnu-linux.h s/gnu.h s/irix5-0.h s/netbsd.h s/sco4.h s/sco5.h
5253 s/template.h (NARROWPROTO): Define on the basis of relevant X cf
5254 files.
5255
52561999-02-16 Gerd Moellmann <gerd@gnu.org>
5257
5258 * keyboard.c (toolbar_items): Call access_keymap with third
5259 parameter 1, so that we don't get inherited toolbar item
5260 definitions.
5261
5262 * xdisp.c (redisplay_internal): In optimization 1, don't decrement
5263 the window end vpos when in empty first line of window.
5264
52651999-02-15 Gerd Moellmann <gerd@gnu.org>
5266
5267 * xfaces.c (set_font_frame_param): New.
5268 (Finternal_set_lisp_face_attribute): Call it.
5269
5270Sun Feb 14 10:54:02 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
5271
5272 * xfaces.c (Finternal_set_lisp_face_attribute_from_resource):
5273 Accept specifications of color for underline.
5274
52751999-02-13 Gerd Moellmann <gerd@gnu.org>
5276
5277 * xfaces.c (Finternal_set_lisp_face_attribute): If parameter
5278 `frame' is t, operate on face defaults for new frames. If it
5279 is nil, operate on the selected frame.
5280
52811999-02-12 Gerd Moellmann <gerd@gnu.org>
5282
5283 * dispnew.c (check_matrix_invariants): Put it in #if 0.
5284 (update_window): Put the call to check_matrix_invariants in #if 0.
5285
5286Sun Feb 7 09:58:49 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
5287
5288 * dispextern.h: Remove all else block of UNDERLINE_COLOR.
5289 Remove definition of UNDERLINE_COLOR.
5290
5291Mon Jan 4 04:43:41 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
5292
5293 * xfaces.c (free_face_colors): Free the color for underline.
5294
5295 * xterm.c (x_draw_glyph_string_underline): Set the color for underline
5296 to the GC.
5297
5298Sun Jan 3 08:41:10 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
5299
5300 * dispextern.h (UNDERLINE_COLOR): Defined.
5301 (struct face): Added two new members.
5302 underline_color, underline_defaulted_p.
5303
5304 * xfaces.c (merge_face_vector_with_property):
5305 (check_lface_attrs): Accept the string value for underline.
5306 (Finternal_set_lisp_face_attribute): Likewise.
5307
5308 * xfaces.c (load_color): Change the last argument type to enum
5309 lface_attribute_index from int. And addec code for underling coloring.
5310 (load_face_colors): Pass LFACE_*_INDEX to load_color.
5311
53121999-02-12 Gerd Moellmann <gerd@gnu.org>
5313
5314 * xfns.c (Fx_image_header): Removed.
5315
53161999-02-07 Gerd Moellmann <gerd@gnu.org>
5317
5318 * xterm.c: Don't include <bitmaps/gray>.
5319 (x_term_init): Use gray_bitmap_width and gray_bitmap_height.
5320
5321 * xfns.c (Fx_image_header): Add missing `\n\'.
5322 (gray_bitmap_width, gray_bitmap_height, gray_bitmap_bits): New.
5323
53241999-02-01 Gerd Moellmann <gerd@gnu.org>
5325
5326 * xterm.c (x_scroll_bar_create): Set background pixel from
5327 specified scroll bar color.
5328 (x_scroll_bar_set_handle): Use scroll bar foreground color.
5329
5330 * xfns.c (x_set_scroll_bar_foreground): Remove all scroll bars.
5331 (x_set_scroll_bar_background): Ditto.
5332
5333 * xterm.c (x_create_toolkit_scroll_bar): Set scroll bar colors.
5334
5335 * xfns.c (x_default_scroll_bar_color_parameter): New.
5336 (Fx_create_frame): Call it.
5337
53381999-01-31 Gerd Moellmann <gerd@gnu.org>
5339
5340 * xfns.c (Fx_create_frame): Initialize scroll bar pixel color
5341 values in x_output structure.
5342 (Qscroll_bar_foreground, Qscroll_bar_background): New.
5343 (syms_of_xfns): Initialize these symbols.
5344
5345 * xterm.h (struct x_output): Add scroll bar pixel colors.
5346
5347 * xfns.c (x_frame_parms): Add entries for scroll bar colors.
5348 (x_set_scroll_bar_foreground): New.
5349 (x_set_scroll_bar_background): New.
5350
26901792
DL
53511999-01-12 Gerd Moellmann <gerd@gnu.org>
5352
5353 * xdisp.c (handle_single_display_prop): New.
5354 (handle_display_prop): Call it.
5355 (handle_raise_prop): Removed.
5356 (handle_height_prop): Removed.
5357 (handle_space_width_prop): Removed.
5358 (handle_face_prop): Remove handling of raised text.
5359 (handle_display_prop): Do it here.
5360
5361 * dispextern.h (DISPLAY_PROP_IDX): Replaces GLYPH_PROP_IDX.
5362 (RAISE_PROP_IDX): Removed.
5363 (HEIGHT_PROP_IDX): Removed.
5364 (SPACE_WIDTH_PROP_IDX): Removed.
5365
5366 * xdisp.c (Qdisplay): Replaces Qglyph.
5367 (handle_display_prop): Formerly handle_glyph_prop.
5368
53691999-01-11 Gerd Moellmann <gerd@gnu.org>
5370
5371 * xdisp.c (reseat_to_string): Set position in display vector to -1.
5372 (handle_stop): Set position in display vector to -1. Don't
5373 check overlay strings when set up to deliver characters from a
5374 display vector.
5375 (set_iterator_to_next): At the end of a run of characters from a
5376 display vector, check whether the display vector display replaces
5377 the display of a character.
5378
53791999-01-05 Gerd Moellmann <gerd@gnu.org>
5380
5381 * xfaces.c (init_frame_faces): Don't realize faces if frame's
5382 X window hasn't been created yet.
5383
53841998-12-06 Gerd Moellmann <gerd@gnu.org>
5385
5386 * sound.c: New.
5387
53881998-12-04 Gerd Moellmann <gerd@gnu.org>
5389
5390 * config.in (HAVE_SOUND): New.
5391
5392 * emacs.c (main): Call syms_of_sound and init_sound.
5393
5394 * Makefile.in (obj): Add sound.o.
5395
5396 * configure.in: Add checks for machine/soundcard.h and sys/soundcard.h.
5397
5398 * config.in (HAVE_MACHINE_SOUNDCARD_H): New.
5399 (HAVE_SYS_SOUNDCARD_H): New.
5400
54011998-12-03 Gerd Moellmann <gerd@gnu.org>
5402
5403 * buffer.h (struct buffer): indicate_empty_lines renamed from
5404 indicate_zv_lines.
5405
5406 * buffer.c (indicate-empty-lines): Renamed from indicate_zv_lines.
5407 (default-indicate-zv-lines): Likewise.
5408
5409 * dispextern.h (struct glyph_row): Rename indicate_zv_line_p
5410 to indicate_empty_line_p.
5411
5412 * xdisp.c (reseat_at_next_visible_line_start): Reset method
5413 to next_element_from_buffer.
5414
5415 * frame.c (make_frame): Set n_current_toolbar_items to 0.
5416
5417 * xdisp.c (handle_face_prop): Allow symbols of the form `N+'
5418 and `N-'.
5419
5420 * xfns.c (xbm_scan): New.
5421 (xbm_read_hexint): Removed.
5422 (xbm_read_bitmap_file_data): Use xbm_scan.
5423
5424 * fileio.c (Finsert_file_contents): Prevent redisplay optimizations.
5425
54261998-12-02 Gerd Moellmann <gerd@gnu.org>
5427
5428 * xfns.c (xbm_read_hexint): New.
5429 (xbm_read_bitmap_file_data): New.
5430 (xbm_load_image_from_file): Call xbm_read_bitmap_file_data
5431 instead of XReadBitmapFileData.
5432
5433 * xdisp.c (handle_raise_prop): Compute voffset from current font.
5434
5435 * xfaces.c (face_with_height): New.
5436
5437 * xdisp.c (eval_handler): Renamed from eval_mode_handler.
5438 (eval_form): Renamed from eval_mode_element.
5439 (handle_face_prop): Use it.
5440 (Qheight): Replaces Qsmaller.
5441 (handle_height_prop): Replaces handle_smaller_prop.
5442 (handle_face_prop): If iterator's font_height is not an
5443 integer, evaluate it to get the font height to use.
5444
5445 * dispextern.h (HEIGHT_PROP_IDX): Replaces SMALLER_PROP_IDX.
5446 (struct it): Use `font_height' instead of `smaller'.
5447
54481998-12-01 Gerd Moellmann <gerd@gnu.org>
5449
5450 * xdisp.c (reseat_1): New.
5451 (reseat): Call it.
5452 (move_it_vertically_backward): Ditto.
5453 (redisplay_window): Don't abort when cursor not found in recenter.
5454
54551998-11-30 Gerd Moellmann <gerd@gnu.org>
5456
5457 * xdisp.c (reseat_at_next_visible_line_start): When not
5458 currently delivering display elements from the current buffer,
5459 restore buffer position first.
5460 (init_from_display_pos): Don't set IT's position from the
5461 position passed to this function.
5462
54631998-11-28 Gerd Moellmann <gerd@gnu.org>
5464
5465 * config.in (PROTO): Removed.
5466
5467 * xterm.h: Change PROTO to P_.
5468
54691998-11-26 Gerd Moellmann <gerd@gnu.org>
5470
5471 * xterm.c (take_vertical_position_into_account): New.
5472 (x_produce_image_glyph): Call it.
5473 (x_produce_stretch_glyph): Ditto.
5474 (x_produce_glyphs): Ditto.
5475 (x_fill_glyph_string): Adjust base line for glyph's voffset.
5476 (x_fill_composite_glyph_string): Ditto.
5477 (x_fill_image_glyph_string): Ditto.
5478 (x_fill_stretch_glyph_string): Ditto.
5479
5480 * xdisp.c (display_line): Always compute row height from
5481 max_ascent and max_descent.
5482
5483 * dispextern.h (struct glyph): Add voffset.
5484 (struct it): Replace height by descent, max_height by max_descent.
5485
5486 * xterm.c (x_append_glyph): Set voffset
5487 (x_append_stretch_glyph): Ditto.
5488 (x_produce_image_glyph): Ditto.
5489 (x_produce_glyphs): Take voffset into account.
5490 (x_produce_image_glyph): Ditto.
5491 (x_produce_stretch_glyph): Ditto.
5492
5493 * dispextern.h (struct it): Add voffset.
5494 * xdisp.c (push_it): Save voffset.
5495 (pop_it): Restore it.
5496
5497 * xdisp.c (it_props): Add entry for `raise'.
5498 (handle_raise_prop): New.
5499
5500 * dispextern.h (RAISE_PROP_IDX): New.
5501
5502 * xdisp.c (Qraise): New.
5503 (syms_of_xdisp): Define Qraised.
5504
5505 * xterm.c (x_scroll_bar_move): Clear to the left and right
5506 of toolkit scroll bars differently.
5507 (x_scroll_bar_move): Removed.
5508 (XTset_vertical_scroll_bar): Move code from x_scroll_bar_move here.
5509
5510 * dispextern.h: Make it compilable --with-x=no.
5511 * alloc.c: Ditto.
5512 * emacs.c: Ditto.
5513 * dispnew.c: Ditto.
5514 * keyboard.c: Ditto.
5515 * term.c: Ditto.
5516 * xdisp.c: Ditto.
5517 * xfaces.c: Ditto.
5518 * xfns.c: Ditto.
5519 * xmenu.c: Ditto.
5520
55211998-11-25 Gerd Moellmann <gerd@gnu.org>
5522
5523 * xterm.c (XTread_socket): Cancel help-echo when leaving frame.
5524
55251998-11-24 Gerd Moellmann <gerd@gnu.org>
5526
5527 * xterm.c (x_set_toolkit_scroll_bar_thumb): When dragging,
5528 update slider size, only.
5529 (xm_scroll_callback): Set dragging member of the scroll bar.
5530 (xt_action_hook): Reset last_scroll_bar_part.
5531 (XTredeem_scroll_bar): Reset bar->dragging to nil.
5532
26901792
DL
5533 * xfns.c (Fx_hide_busy_cursor): Don't try to hide busy cursor
5534 window on newly created frames that don't have one.
5535
55361998-11-23 Gerd Moellmann <gerd@gnu.org>
5537
5538 * xdisp.c (restore_overlay_strings): Removed.
5539 (restore_dpvec): Removed.
5540 (init_from_display_pos): Inline both functions above.
5541
5542 * xfns.c (IMAGE_NON_NEGATIVE_INTEGER_VALUE): New.
5543 (parse_image_spec): Handle it.
5544 (xbm_format): Use it.
5545 (xpm_format): Ditto.
5546 (pbm_format): Ditto.
5547 (jpeg_format): Ditto.
5548 (tiff_format): Ditto.
5549 (gif_format): Ditto.
5550 (gs_format): Ditto.
5551
5552 * xdisp.c (set_window_cursor): Removed.
5553 (redisplay_internal): Case cursor motion in cursor line of
5554 selected window; use set_cursor_from_row.
5555
55561998-11-22 Gerd Moellmann <gerd@gnu.org>
5557
5558 * widget.c (EmacsFrameSetCharSize): Take widget's border width
5559 into account.
5560
55611998-11-21 Gerd Moellmann <gerd@gnu.org>
5562
5563 * xterm.c (expose_frame): Redraw menu bar window.
5564
5565 * xdisp.c (display_menu_bar): Record hpos instead of x-position
5566 in menu item.
5567
5568 * dispnew.c (change_frame_size_1): Use FRAME_TOP_MARGIN instead
5569 of FRAME_TOOLBAR_LINES. Use `f' instead of `frame'.
5570
5571 * widget.c (set_frame_size): Use FRAME_SCROLL_BAR_COLS
5572 to determine vertical_scroll_bar_extra.
5573 (EmacsFrameSetCharSize): Ditto.
5574 * xfns.c (x_figure_window_size): Ditto.
5575
5576 * xterm.c (x_draw_row_bitmaps): Draw in `bitmap-area' face.
5577 (x_draw_bitmap): Ditto.
5578
5579 * dispextern.h (face_id): New id BITMAP_AREA_FACE_ID.
5580 * xfaces.c (realize_basic_faces): Realize it.
5581
55821998-11-20 Gerd Moellmann <gerd@gnu.org>
5583
5584 * xmenu.c (xmenu_show): Add workaround for remaining button grab
5585 under LessTif Use the widget of the frame as parent for the
5586 menu, again.
5587
55881998-11-19 Gerd Moellmann <gerd@gnu.org>
5589
5590 * xterm.c (XTread_socket): Inhibit busy cursor for EnterNotify.
5591 When EnterNotify, don't generate a mouse movement event if
5592 notification is from a busy-cursor child window.
5593
5594 * xterm.h (struct x_output): Add busy_window, remove cursor.
5595
5596 * xfns.c (Fx_show_busy_cursor): Formerly Fx_display_busy_cursor.
5597 Use a transparent window to display the busy-cursor.
5598 (Fx_hide_busy_cursor): Formerly Fx_undisplay_busy_cursor.
5599
56001998-11-17 Gerd Moellmann <gerd@gnu.org>
5601
5602 * xdisp.c (check_window_end): New, for debugging.
5603 (CHECK_WINDOW_END): New.
5604 (try_window_id): Use it.
5605
5606 * xterm.c (process_expose_from_menu): Return int.
5607
5608 * keyboard.c (kbd_buffer_get_event): Set flag to prevent recording
5609 TOOLBAR_EVENT events in last_nonmenu_event.
5610
56111998-11-16 Gerd Moellmann <gerd@gnu.org>
5612
5613 * xdisp.c (redisplay_window): If windows_or_buffers_changed,
5614 window end isn't reliable, so set window_end_valid to nil.
5615 (redisplay_internal): If overlay arrow has changed, set
5616 windows_or_buffers_changed to redisplay thoroughly.
5617
5618 * dispnew.c (adjust_glyph_matrix): Invalidate window end, if
5619 necessary.
5620
5621 * xfns.c (file_dialog_cb): New.
5622 (Fx_file_dialog): New.
5623 * fileio.c (Fread_file_name): Call it.
5624
5625 * xrdb.c (x_load_resources): Add default resoures for file
5626 selection dialog.
5627
56281998-11-14 Gerd Moellmann <gerd@gnu.org>
5629
5630 * xterm.c (note_mouse_highlight): Don't highlight when popup
5631 is active.
5632
26901792
DL
5633 * keyboard.c (timer_check): Inhibit busy cursor around calls to
5634 timer-event-handler. This busy cursor tends to be anoying if
5635 fontifying stealthily.
5636
5637 * dispnew.c (direct_output_for_insert): Give up if current row
5638 contains trailing whitespace.
5639
56401998-11-13 Gerd Moellmann <gerd@gnu.org>
5641
5642 * dispextern.h (prop_idx): Add FONTIFIED_PROP_IDX.
5643
5644 * xdisp.c (handle_fontified_prop): New.
5645 (Vfontification_functions): New.
5646 (Qfontification_functions): New.
5647 (it_props): Add handle_fontified_prop.
5648
56491998-11-12 Gerd Moellmann <gerd@gnu.org>
5650
5651 * xmenu.c (xmenu_show): Use the frame's edit_widget as parent.
5652 Otherwise, under LessTif, after the popup has gone, all button
5653 press events come in for the frame's widget, and release events
5654 come in for the edit_widget.
5655 * xterm.c (XTread_socket): Remove workaround for that problem.
5656 (x_set_toolkit_scroll_bar_thumb): Add workaround for LessTif
5657 XmScrollBarSetValues.
5658 (SET_SAVED_MENU_EVENT): Give it statement form.
5659
26901792
DL
5660 * xfaces.c (display_message): If waiting_for_input, don't display
5661 the message.
5662
5663 * window.c (scroll_command): If not acting on current_buffer,
5664 make redisplay consider all windows.
5665
5666 * xfns.c (Fx_hide_tip): Return t if tooltip was open.
5667
5668 * xdisp.c (handle_glyph_prop): Set it->object for images to
5669 the object having the glyph property.
5670
5671 * xterm.c (x_draw_row_bitmaps): Don't draw if row is completely
5672 invisible.
5673
56741998-11-11 Gerd Moellmann <gerd@gnu.org>
5675
5676 * xterm.h (struct x_display_info): Add gray pixmap. * xterm.c
5677 (x_term_init): Create the gray pixmap.
5678 (x_setup_relief_color): Use it.
5679 (x_get_glyph_string_clip_rect): Draw a toolbar window over the
5680 internal border at the top of a frame.
5681 (x_init_glyph_string): Likewise.
5682 (x_draw_glyph_string_relief): Correct right x by 1 pixel for
5683 full-width lines.
5684 (XTflash): Don't flash the toolbar window.
5685
5686 * xterm.c (XTread_socket): Workaround for LessTif popup menus
5687 in case of ButtonPress events.
5688
56891998-11-10 Gerd Moellmann <gerd@gnu.org>
5690
5691 * xrdb.c (x_load_resources): Add grey background colors as
5692 defaults for menus, scroll bars, and dialogs.
5693
5694 * insdel.c (prepare_to_modify_buffer): Move setting
5695 windows_or_buffers_changed from modify_region here.
5696
5697 * xfns.c (Fx_show_tip): Inhibit redisplay.
5698 (Fx_hide_tip): Ditto.
5699 (Fx_image_header): New.
5700
57011998-11-09 Gerd Moellmann <gerd@gnu.org>
5702
5703 * dispnew.c (clear_window_matrices): Set window_end_valid to nil
5704 when clearing current window matrices.
5705
57061998-11-08 Gerd Moellmann <gerd@gnu.org>
5707
5708 * xdisp.c (handle_glyph_prop): Don't set an iterator's buffer
5709 position from a string position. Use the right end position
5710 if the property spans a whole overlay string.
5711
57121998-11-07 Gerd Moellmann <gerd@gnu.org>
5713
5714 * xmenu.c (menubar_selection_callback): Remove workaround for
5715 Lesstif not calling XmNpopdownCallback because it doesn't
5716 handle the case where users don't select any menu item.
5717
26901792
DL
5718 * insdel.c (modify_region): Set windows_or_buffers_changed.
5719
5720 * buffer.c (set_buffer_internal): Don't set
5721 windows_or_buffers_changed.
5722
26901792
DL
5723 * xmenu.c (HAVE_BOXES): Define if USE_X_TOOLKIT.
5724
26901792
DL
5725 * xmenu.c (menubar_selection_callback): Add workaround for
5726 Lesstif not calling XmNpopdownCallback.
5727
5728 * xdisp.c (eval_mode_element): New.
5729 (eval_mode_handler): New.
5730 (display_mode_element): Use eval_mode_element.
5731
5732 * xdisp.c (display_mode_element): Allow `(:eval FORM)'.
5733 Remove code looking at text props of default value.
5734
5735 * xmenu.c (HAVE_BOXES): Define if using Lucid menus.
5736
26901792
DL
57371998-11-06 Gerd Moellmann <gerd@gnu.org>
5738
5739 * xmenu.c (single_submenu): Set button_type of menu to
5740 BUTTON_TYPE_NONE.
5741 (single_submenu): Likewise for panes and menu items.
5742 (set_frame_menubar): Set button_type of menu bar to none.
5743 (xmenu_show): Likewise.
5744 (single_submenu): Set widget values selected slot.
5745 (xmenu_show): Likewise.
5746
26901792
DL
5747 * xmenu.c (push_menu_item): Add parameters `type' and
5748 `selected'. Store it in menu_items.
5749 (MENU_ITEMS_ITEM_TYPE): New.
5750 (MENU_ITEMS_ITEM_SELECTED): New.
5751 (MENU_ITEMS_ITEM_LENGTH): Increase by two.
5752
5753 * xfns.c (clear_image_cache): Get the current time, before
5754 doing anything.
5755 (cache_image): Set prev pointer of next image.
5756 (clear_image_cache): Clear current matrices if any image was
5757 freed.
5758
5759 * xterm.c (XTread_socket): Set inhibit_busy_cursor.
5760
5761 * xfns.c (x_set_cursor): New.
5762 (Fx_display_busy_cursor): New.
5763 (Fx_undisplay_busy_cursor): New.
5764
5765 * xterm.h (struct x_output): Add busy_cursor.
5766
5767 * xfns.c (Vx_busy_pointer_shape): New.
5768 (x_set_mouse_color): Create busy cursor.
5769
5770 * process.c (wait_reading_process_input): Show and hide busy
5771 cursor.
5772
5773 * keyboard.c (command_loop_1): Display busy cursor.
5774
5775 * eval.c (Fsignal): Hide busy cursor.
5776
5777 * buffer.c (set_buffer_internal): Don't set
5778 windows_or_buffers_changed.
5779
5780 * xterm.c (redo_mouse_highlight): New.
5781
57821998-11-04 Gerd Moellmann <gerd@gnu.org>
5783
26901792
DL
5784 * xfns.c (x_create_x_image_and_pixmap): Add depth parameter.
5785 (x_build_heuritic_mask): New.
5786 (lookup_image): Call it.
5787
5788 * xterm.c (note_toolbar_highlight): Always set up help_echo.
5789 (previous_help_echo): New.
5790 (XTread_socket): Generate help event with nil message when
5791 leaving a region with help-echo.
5792 (note_mouse_highlight): Handle `help-echo' over text.
5793 (XTread_socket): Dispatch VisibilityNotify, CirculateNotify,
5794 CirculateRequest.
5795 (clear_mouse_face): Don't clear if tooltip is shown.
5796 (XTread_socket): Redo mouse-highlight after tooltip is gone.
5797 Avoid SET_FRAME_GARBAGED when tooltip is mapped.
5798
5799 * keyboard.c (Vshow_help_function): New.
5800 (read_char): Use it.
5801
58021998-11-03 Gerd Moellmann <gerd@gnu.org>
5803
5804 * xfns.c (x_create_tip_frame): New.
5805 (Fx_show_tip): New.
5806 (Fx_hide_tip): New.
5807
5808 * xterm.c (x_destroy_window): Handle case that we don't have
5809 a widget.
5810
5811 * dispextern.h (struct glyph_row): Rename no_marginal_areas_p
5812 to full_width_p. Add internal_border_p.
5813
58141998-11-02 Gerd Moellmann <gerd@gnu.org>
5815
5816 * xterm.c (note_mode_line_highlight): Check the charpos of
5817 the glyph under the mouse pointer before accessing text
5818 properties at that position.
5819
58201998-11-01 Gerd Moellmann <gerd@gnu.org>
5821
5822 * xterm.c (x_draw_image_relief): Handle toolbar_button_relief.
5823
5824 * xdisp.c (auto-raise-toolbar-buttons): New.
5825 (build_desired_toolbar_string): Handle the flag.
5826 (toolbar-button-margin): New.
5827 (toolbar-button-relief): New.
5828 (build_desired_toolbar_string): Use margin and relief.
5829
5830 * xterm.c (x_set_toolkit_scroll_bar_thumb): Remove workaround
5831 for FreeBSD.
5832 (note_mode_line_highlight): New.
5833 (note_mouse_highlight): Call it.
5834
58351998-10-31 Gerd Moellmann <gerd@gnu.org>
5836
5837 * s/freebsd.h (NARROWPROTO): New.
5838
5839 * xdisp.c (display_string): New parameter face_string.
5840 (display_mode_element): When displaying a symbol with a string
5841 value, use text properties from the symbol's default value, maybe.
5842
5843 * xrdb.c (x_load_resources): Add font defaults for menus and
5844 dialogs.
5845
58461998-10-30 Gerd Moellmann <gerd@gnu.org>
5847
5848 * xfns.c (Fx_create_frame): Try 12pt Courier font first.
5849
58501998-10-29 Gerd Moellmann <gerd@gnu.org>
5851
5852 * xterm.c (x_produce_glyphs): Fix bug causing glyphs to be
5853 produced for characters with codes < 32 under certain
5854 circumstances.
5855
5856 * xdisp.c (redisplay_window): Handle values of PT in front
5857 of invisible, intangible text.
5858 (try_window_id): Set overlay_arrow_seen to zero before
5859 displaying lines.
5860 (display_mode_element): Assign to glyphs written for a mode
5861 line spec `%x' as object the Lisp format string, as position
5862 the position of the `%' in that string.
5863 (display_string): If displaying a C string, optionally get
5864 the face to use from a Lisp string.
5865
5866 * xterm.c (expose_window_tree): Include mode line height.
5867
5868 * xfns.c (Fx_create_frame): Add toolbar height to frame height.
5869
58701998-10-27 Gerd Moellmann <gerd@gnu.org>
5871
5872 * xterm.c (note_mouse_highlight): Change mouse pointer shape
5873 over mode line.
5874
58751998-10-26 Gerd Moellmann <gerd@gnu.org>
5876
5877 * window.c (coordinates_in_window): Use CURRENT_MODE_LINE_HEIGHT.
5878
5879 * xdisp.c (redisplay_window): If mode line height has changed,
5880 arrange for a thorough immediate redisplay using the correct mode
5881 line height.
5882 (window_box_height): Use CURRENT_MODE_LINE_HEIGHT.
5883
5884 * dispextern.h (MATRIX_MODE_LINE_HEIGHT): New.
5885 (CURRENT_MODE_LINE_HEIGHT): New.
5886 (DESIRED_MODE_LINE_HEIGHT): New.
5887
5888 * keyboard.c (make_lispy_event): Add string and string position
5889 info to mouse-click events.
5890 (read_key_sequence): Handle `local-map' property of mode line
5891 strings.
5892
5893 * keyboard.h (POSN_STRING): New.
5894
58951998-10-25 Gerd Moellmann <gerd@gnu.org>
5896
5897 * dispnew.c (mode_line_string): Mew.
5898
5899 * xterm.c (xt_action_hook): New.
5900 (x_create_toolkit_scroll_bar): Add action hook.
5901 (xm_scroll_callback): Implement dragging.
5902
5903 * keyboard.c (Qend_scroll): New.
5904 (scroll_bar_parts): Add it.
5905
5906 * termhooks.h (scroll_bar_end_scroll): New.
5907
5908 * xterm.c (XTread_socket): Bug fix.
5909
59101998-10-24 Gerd Moellmann <gerd@gnu.org>
5911
5912 * xdisp.c (redisplay_window): Finish scroll bars after
5913 redisplaying toolbar.
5914
5915 * keyboard.c (scroll_bar_parts): Add Qtop and Qbottom.
5916 (syms_of_keyboard): Add Qbottom.
5917
5918 * termhooks.h (scroll_bar_to_top): New.
5919 (scroll_bar_to_bottom): New.
5920
5921 * xdisp.c (redisplay_window): Always resize toolbar window if
5922 auto_resize_toolbar_p is non-zero.
5923 (auto_resize_toolbar_p): Renamed from auto_resize_toolbar.
5924 (window_box): New.
5925 (window_box_height): New.
5926 (window_box_width): New.
5927 (window_box_left): New.
5928 (window_box_right): New.
5929 (window_box_edges): New.
5930
59311998-10-23 Gerd Moellmann <gerd@gnu.org>
5932
5933 * xterm.c (x_set_toolkit_scroll_bar_thumb): Kluge for call to
5934 XawScrollbarSetThumb in FreeBSD.
5935 (x_create_toolkit_scroll_bar): Set resource "beNiceToColormap"
5936 to true.
5937
5938 * window.c (get_phys_cursor_glyph): Return null if cursor vpos
5939 is out of range.
5940
5941 * xterm.c (x_create_toolkit_scroll_bar): Set scroll_bar_pixel.
5942 (x_term_init): Initialize it.
5943
5944 * xterm.h (struct x_display_info): Add scroll_bar_pixel.
5945
5946 * xterm.c (x_create_toolkit_scroll_bar): Set LessTif scroll bar's
5947 cursor.
5948
59491998-10-22 Gerd Moellmann <gerd@gnu.org>
5950
5951 * keyboard.c (make_lispy_event): Handle scroll_bar_click
5952 differently when using toolkit scroll bars.
5953
5954 * xterm.c (x_send_scroll_bar_event): New.
5955 (x_scroll_bar_to_input_event): New.
5956 (xaw3d_scroll_callback): New.
5957 (xaw3d_jump_callback): New.
5958 (xm_scroll_callback): New.
5959 (x_toolkit_scroll_p): New.
5960 (XTread_socket): Handle scroll bar client message.
5961 (x_term_init): Initialize Xatom_Scrollbar.
5962 (x_scroll_bar_create): Set cursor.
5963 (xm_scroll_callback):
5964 (x_create_toolkit_scroll_bar): New.
5965 (x_set_toolkit_scroll_bar_thumb): New.
5966 (x_scroll_bar_create): Call x_create_toolkit_scroll_bar.
5967 (XTset_vertical_scroll_bar): Call x_set_toolkit_scroll_bar_thumb.
5968
5969 * xterm.h (struct x_display_info): Add Xatom_Scrollbar.
5970
59711998-10-21 Gerd Moellmann <gerd@gnu.org>
5972
5973 * xterm.c (x_scroll_bar_remove): Handle toolkit scroll bars.
5974 (XTread_socket): Don't handle mouse button events for scroll bars
5975 if using toolkit scroll bars.
5976 (XTset_vertical_scroll_bar): Set thumb size and position for
5977 Athena scroll bar.
5978
5979 * xterm.h (scroll_bar): Add x_widget_low and x_widget_high.
5980
5981 * xterm.c (XTread_socket): Dispatch expose event to widget
5982 if using toolkit scroll bars.
5983 (x_scroll_bar_expose): Make no-op for toolkit scroll bars.
5984 (x_scroll_bar_create): Create and show a scroll bar widget
5985 if using toolkit scroll bars.
5986 (x_scroll_bar_move): Handle tookit scroll bars.
5987
5988 * Makefile.in (LIBW): Use Xaw3d if present.
5989
5990 * configure.in (USE_TOOLKIT_SCROLL_BARS): New.
5991 (HAVE_XAW3D): New.
5992
5993 * config.in (USE_TOOLKIT_SCROLL_BARS): New.
5994 (HAVE_XAW3D): New.
5995
5996 * xterm.c (XTset_vertical_scroll_bar): Correct position of
5997 right vertical scroll bar.
5998
59991998-10-20 Gerd Moellmann <gerd@gnu.org>
6000
6001 * xfns.c (xpm_load): Support reading XPM images from string
6002 buffers containing data in the same format as an XPM file.
6003 Support `:color-symbols'.
6004 (xpm_format): Add `:data'.
6005 (xpm_keyword_index): Add XPM_DATA.
6006 (syms_of_xfns): Add `:color-symbols'.
6007 (xpm_keyword_index): Add XPM_COLOR_SYMBOLS.
6008 (xpm_valid_color_symbols_p): New.
6009 (xpm_image_p): Call it.
6010
6011 * xdisp.c (build_desired_toolbar_string): Add `:algorithm'
6012 attribute to the image if item is not enabled.
6013
6014 * xfns.c (x_laplace): New.
6015 (x_laplace_read_row): New.
6016 (x_laplace_write_row): New.
6017 (lookup_image): Handle common image attributes here. New
6018 attribute `:algorithm'.
6019
6020 * xfaces.c (clear_face_cache): Call clear_image_cache.
6021
6022 * xterm.c (x_inverted_image_mask): Removed.
6023 (x_draw_image_foreground_1): New.
6024 (x_draw_image_glyph_string): Draw images with mask to a temporary
6025 pixmap to reduce flickering.
6026
6027 * xdisp.c (redisplay_toolbar): Handle auto-resize-toolbars.
6028 (display_toolbar_line): Remove parameter `margin'.
6029
60301998-10-19 Gerd Moellmann <gerd@gnu.org>
6031
6032 * xdisp.c (toolbar_lines_needed): New.
6033 (auto-resize-toolbars): New.
6034
6035 * xfns.c (cache_image): Correct call to xrealloc.
6036
6037 * dispnew.c (Fset_toolbar_height): Removed.
6038
6039 * xdisp.c (init_xdisp): Use FRAME_TOP_MARGIN instead of
6040 FRAME_MENU_BAR_LINES.
6041
6042 * window.c (Fdelete_other_windows): Use FRAME_TOP_MARGIN
6043 instead of FRAME_MENU_BAR_LINES.
6044 (check_frame_size): Ditto.
6045
6046 * dispnew.c (adjust_frame_glyphs_initially): Use FRAME_TOP_MARGIN
6047 instead of FRAME_MENU_BAR_LINES.
6048 (adjust_frame_glyphs_for_frame_redisplay): Ditto.
6049 (build_frame_matrix): Ditto.
6050 (change_frame_size_1): Ditto.
6051
6052 * frame.h (FRAME_TOOLBAR_LINES): New.
6053 (FRAME_TOP_MARGIN): New.
6054
6055 * window.c (struct save_window_data): Add frame_toolbar_lines.
6056 (Fset_window_configuration): Handle toolbar lines.
6057 (Fcurrent_window_configuration): Save toolbar lines.
6058
6059 * frame.c (syms_of_frame_1): Add Qtoolbar_lines.
6060
6061 * xfns.c (Fx_create_frame): Add default parameter for toolbar.
6062
6063 * frame.h (struct frame): Rename top_margin to toolbar_lines.
6064
6065 * xfns.c (x_frame_parms): Add `toolbar-lines'.
6066 (x_set_toolbar_lines): New.
6067
6068 * keyboard.c (cmd_error_internal): Bug fix.
6069
6070 * xterm.c: Remove double include of syssignal.h.
6071
60721998-10-18 Gerd Moellmann <gerd@gnu.org>
6073
6074 * xterm.c (x_toolbar_item): New.
6075 (x_handle_toolbar_click): Use it.
6076 (note_toolbar_highlight): Use it.
6077
6078 * keyboard.c (syms_of_keyboard): Staticpro toolbar_item_properties
6079 and toolbar_items_vectors.
6080
6081 * xterm.c (help_echo): New.
6082 (draw_glyphs_face): Add DRAW_IMAGE_RAISED and DRAW_IMAGE_SUNKEN.
6083 (x_set_glyph_string_gc): Handle them.
6084 (x_after_update_window_line): Don't do anything in pseudo-windows.
6085 (x_produce_image_glyph): Take image margin and face relief into
6086 account.
6087 (x_get_glyph_string_clip_rect): Handle pseudo-windows.
6088 (x_draw_glyph_string_background): Optimize case when face has
6089 relief.
6090 (x_setup_relief_color): Take frame instead of glyph string
6091 parameter.
6092 (x_draw_relief_rect): New.
6093 (x_draw_glyph_string_relief): Call it.
6094 (x_draw_image_glyph_string_foreground): Handle margin and image
6095 relief.
6096 (x_draw_image_glyph_string_background): Ditto.
6097 (expose_frame): Redraw toolbar window.
6098 (expose_window): Don't draw cursor for pseudo-windows.
6099 (x_y_to_hpos_vpos): Handle pseudo-windows.
6100 (frame_to_window_pixel_xy): New.
6101 (note_mouse_highlight): Call note_toolbar_highlight.
6102 (x_handle_toolbar_click): New.
6103 (note_toolbar_highlight): New.
6104 (show_mouse_face): Change int parameter `hl' to parameter of
6105 type enum draw_glyphs_face. Handle image highlighting.
6106 (XTread_socket): Return a HELP_EVENT input event if help_echo is
6107 non-nil. Use x_handle_toolbar_click.
6108
6109 * termhooks.h (event_kind): Add HELP_EVENT, TOOLBAR_EVENT.
6110
6111 * xfns.c (image_value_type): Add IMAGE_INTEGER_VALUE,
6112 IMAGE_BOOL_VALUE.
6113 (parse_image_spec): Handle them.
6114 (image_spec_value): Additional parameter found.
6115 (free_image): Remove image from the vector `images' of the
6116 image cache.
6117 (clear_image_cache): Additional parameter force_p.
6118 (Fclear_image_cache): New.
6119 (x_find_image_file): New.
6120 (xbm_load): Handle `:margin' and `:relief'. Use
6121 x_find_image_file.
6122 (xpm_load): Likewise.
6123 (pbm_load): Likewise.
6124 (jpeg_load): Likewise.
6125 (tiff_load): Likewise.
6126 (gif_load): Likewise.
6127
6128 * keyboard.c (Qhelp_echo): New symbol.
6129 (read_char): Handle `toolbar' and `help_echo' events.
6130 (kbd_buffer_get_event): Handle HELP_ECHO input event.
6131 (make_lispy_event): Handle TOOLBAR_EVENT.
6132 (toolbar_items): New.
6133 (process_toolbar_item): New.
6134 (PROP): New.
6135 (init_toolbar_items): New.
6136 (append_toolbar_item): New.
6137 (read_char_x_menu_prompt): Handle `toolbar' event.
6138 (read_key_sequence): Ditto.
6139
6140 * xfaces.c (Qtoolbar): New.
6141 (realize_basic_faces): Realize `toolbar' face.
6142 (face_at_string_position): Remove parameter modeline_p, add
6143 base_face_id.
6144
6145 * xfns.c (xbm_load_image_from_file): Don't use Xmu function
6146 to read data.
6147
61481998-10-17 Gerd Moellmann <gerd@gnu.org>
6149
6150 * xdisp.c (init_iterator): Replace parameter modeline_p with
6151 base_face_id.
6152 (next_element_from_string): Call get_next_display_element
6153 recursively after handling text properties.
6154 (prepare_menu_bars): Call update_toolbar.
6155 (update_toolbar): New.
6156 (build_desired_toolbar_string): New.
6157 (display_toolbar_line): New.
6158 (redisplay_toolbar): New.
6159 (toolbar_item_info): New.
6160 (redisplay_window): Call redisplay_toolbar.
6161 (Fdump_toolbar_row): New. Defined if compiled with GLYPH_DEBUG.
6162
6163 * dispnew.c (clear_current_matrices): Clear matrices of toolbar
6164 window.
6165 (clear_desired_matrices): Ditto.
6166 (adjust_frame_glyphs_for_window_redisplay): Make toolbar window.
6167 (free_glyphs): Free matrices of toolbar window.
6168 (update_frame): Update toolbar window.
6169 (change_frame_size_1): Take toolbar into account.
6170 (Fset_toolbar_height): New.
6171
6172 * dispextern.h (struct it): Remove member modeline_p, add
6173 base_face_id.
6174 (struct image): Add members relief and margin.
6175 (IMAGE_ASCENT): Include margin in height.
6176
61771998-10-14 Gerd Moellmann <gerd@gnu.org>
6178
6179 * xfns.c (Fclear_image_cache): New.
6180
6181 * xfaces.c (realize_basic_faces): Realize toolbar face.
6182 (face_at_string_position): Remove parameter modeline_p, add
6183 base_face_id.
6184
6185 * dispextern.h (enum face_id): Add TOOLBAR_FACE_ID.
6186
61871998-10-13 Gerd Moellmann <gerd@gnu.org>
6188
6189 * keyboard.c (syms_of_keyboard): Intern `:help'.
6190
61911998-10-12 Gerd Moellmann <gerd@gnu.org>
6192
6193 * xterm.c (note_toolbar_highlight): New.
6194 (note_mouse_highlight): Call it.
6195
6196 * window.c (window_from_coordinates): Additional parameter toolbar_p.
6197 (coordinates_in_window): Handle toolbar window.
6198
6199 * keyboard.c (toolbar_items): New.
6200 (process_toolbar_item): New.
6201 (parse_toolbar_item): New.
6202 (init_toolbar_items): New.
6203 (append_toolbar_item): New.
6204
6205 * dispextern.h (enum toolbar_item_idx): New.
6206 (enum toolbar_item_image): New.
6207
6208 * frame.h (struct frame): Add toolbar-related members.
6209
6210 * xfaces.c (face_at_string_position): Remove assertion that
6211 current_buffer == window's buffer. This is not the case when
6212 called for the toolbar window.
6213
6214 * frame.c (make_frame): Initialize toolbar members.
6215
6216 * alloc.c (mark_object): Mark toolbar data of frames.
6217
6218 * frame.h (struct frame): Add toolbar-related members
6219 toolbar_window, desired_toolbar_items, current_toolbar_items,
6220 desired_toolbar_string, current_toolbar_string,
6221 n_desired_toolbar_items, n_current_toolbar_items. Add
6222 window_height.
6223
6224 * xterm.c (x_after_update_window_line): Don't draw bitmap
6225 areas for pseudo-windows.
6226 (expose_frame): Handle toolbar window.
6227 (expose_window): Don't do cursor stuff for pseudo-windows.
6228
6229 * xdisp.c (display_menu_bar): Correct calls to init_iterator.
6230
62311998-10-11 Gerd Moellmann <gerd@gnu.org>
6232
6233 * frame.c (make_frame): Initialize toolbar_window.
6234
6235 * alloc.c (mark_object): Make the toolbar window.
6236
6237 * dispnew.c (update_frame): Update frame's toolbar_window.
6238 (clear_current_matrices): Likewise.
6239 (clear_desired_matrices): Likewise.
6240 (adjust_frame_glyphs_for_window_redisplay): Make toolbar_window.
6241 (free_glyphs): Free the toolbar window and its matrices.
6242
6243 * frame.h (struct frame): Add toolbar_window.
6244
6245 * xterm.c (x_draw_glyph_string_relief): Handle mouse-face
6246 with relief.
6247
62481998-10-10 Gerd Moellmann <gerd@gnu.org>
6249
6250 * dispnew.c (buffer_posn_from_coords): Don't screw up if
6251 window start is not in the range BEGV..ZV.
6252
62531998-10-09 Gerd Moellmann <gerd@gnu.org>
6254
6255 * xdisp.c (try_scrolling): Experimentally handle the case
6256 that scroll-preserve-screen-position is set to `always'.
6257
6258 * window.c (Vscroll_preserve_screen_position): Replacement for
6259 scroll_preserve_screen_position.
6260
62611998-10-08 Gerd Moellmann <gerd@gnu.org>
6262
6263 * dispnew.c: Don't initialize auto structs; the HP/UX compiler
6264 doesn't like it.
6265 * xdisp.c: Ditto.
6266
6267 * xdisp.c (make_cursor_line_fully_visible): Adjust this_line_y.
6268
62691998-10-06 Gerd Moellmann <gerd@gnu.org>
6270
6271 * minibuf.c (Fminibuffer_complete_word): Fix computation of
6272 i_byte when prompts are inserted into minibuffers.
6273
6274 * dispextern.h (FRAME_INTERNAL_BORDER_WIDTH_SAFE): New.
6275 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Use it.
6276 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y): Ditto.
6277
62781998-10-04 Gerd Moellmann <gerd@gnu.org>
6279
6280 * xdisp.c (make_cursor_line_fully_visible): New.
6281 (try_scrolling): New.
6282 (redisplay_window): Move scrolling code to try_scrolling.
6283 (make_cursor_line_fully_visible): Handle case of window too small
6284 to show a single line.
6285 (redisplay_window): Case forced window start---use
6286 make_cursor_line_fully_visible.
6287 (redisplay_window): Case cursor movement via current matrix.
6288 If ending up on a partially visible line, make it fully visible
6289 instead of recentering.
6290 (try_scrolling): Additional parameter scroll_smoothly.
6291
6292 * xterm.c (x_draw_bitmap): Don't XClearArea under the pixmap.
6293
62941998-09-28 Gerd Moellmann <gerd@gnu.org>
6295
6296 * window.c (window_scroll_pixel_based): Bug fix: vpos used
6297 instead of y-position for scroll-preserved-screen-position.
6298
62991998-09-07 Gerd Moellmann <gerd@gnu.org>
6300
6301 * dispnew.c (update_frame_line): If current row is not enabled,
6302 write the whole line.
6303
63041998-09-06 Gerd Moellmann <gerd@gnu.org>
6305
6306 * lisp.h (HAVE_FACES): Removed.
6307
6308 * dispextern.h (HAVE_FACES): Removed.
6309
6310 * config.in (HAVE_FACES): Removed.
6311
6312 * dispnew.c (HAVE_FACES): Removed.
6313
6314 * xdisp.c (HAVE_FACES): Removed.
6315
6316 * xfaces.c (HAVE_FACES): Removed.
6317
63181998-09-05 Gerd Moellmann <gerd@gnu.org>
6319
6320 * xdisp.c (init_iterator): If face_change_count is non-zero,
6321 free realized faces.
6322
6323 * xfaces.c (free_all_realized_faces): Make it externally visible.
6324 (Finternal_set_lisp_face_attribute): Increment
6325 windows_or_buffers_changed.
6326
6327 * dispnew.c (direct_output_for_insert): Give up if
6328 face_change_count is non-zero.
6329 (direct_output_forward_char): Ditto.
6330
6331 * xfaces.c (face_change_count): New.
6332
63331998-09-04 Gerd Moellmann <gerd@gnu.org>
6334
6335 * xterm.c (x_draw_bar_cursor): Don't draw if cursor hpos is out
6336 of range.
6337
63381998-09-03 Gerd Moellmann <gerd@gnu.org>
6339
6340 * term.c (Ftty_display_color_p): New.
6341
63421998-09-02 Gerd Moellmann <gerd@gnu.org>
6343
6344 * xfaces.c (Ftty_defined_colors): New.
6345
6346 * xterm.c (x_produce_glyphs): Fix computation of
6347 contains_overlapping_glyphs_p for ASCII.
6348
6349 * dispnew.c (Fshow_cursor): Don't change cursor state while
6350 redisplaying.
6351 (direct_output_for_insert): If a glyph with lbearing or rbearing
6352 is among the new glyphs, set row flag contains_overlapping_glyph_p.
6353
63541998-09-01 Gerd Moellmann <gerd@gnu.org>
6355
6356 * term.c (OUTPUT_IF): Make replacement text have statement form.
6357 (OUTPUT1_IF): Ditto.
6358 (TS_italic_mode, TS_end_italic_mode): Removed.
6359 (TS_bold_mode): Removed.
6360 (TS_underscore_mode, TS_end_underscore_mode): Removed.
6361 (TS_enter_bold_mode, TS_enter_dim_mode, TS_enter_blink_mode): New.
6362 (TS_enter_reverse_mode): New.
6363 (TS_enter_underline_mode, TS_exit_underline_mode): New.
6364 (TN_magic_cookie_glitch_ul): New.
6365 (TS_enter_alt_charset_mode, TS_exit_alt_charset_mode): New.
6366 (TS_exit_attribute_mode): New.
6367 (TN_max_colors, TN_max_pairs, TS_orig_pairs): New.
6368 (TS_set_foreground, TS_set_background): New.
6369 (reset_terminal_modes): Switch colors back to default.
6370 (write_glyphs): Turn face on before writing text, turn it off
6371 afterwards.
6372 (insert_glyphs): Ditto.
6373 (term_init): Initialize new terminal capability variables.
6374 (turn_on_face): Turn a face on.
6375 (turn_off_face): Turn a face off.
6376
6377 * lisp.h (MAKE_GLYPH): Remove test for frame type.
6378 (GLYPH_CHAR): Ditto.
6379 (GLYPH_FACE): Ditto.
6380
6381 * xfaces.c (Vface_tty_color_alist): New.
6382 (face-register-tty-color): New.
6383 (face-clear-tty-colors): New.
6384
6385 * dispextern.h (FACE_TTY_DEFAULT_COLOR): New.
6386 (struct it): Remove member faces_p since we now always have faces.
6387
63881998-08-31 Gerd Moellmann <gerd@gnu.org>
6389
6390 * dispextern.h (struct face): Add tty appearance flags.
6391
6392 * xdisp.c (init_iterator): Always handle faces.
6393 (extend_face_to_end_of_line): Handle tty frames.
6394
6395 * dispnew.c (clear_glyph_matrix): Allow a null matrix to be
6396 passed in.
6397
63981998-08-30 Gerd Moellmann <gerd@gnu.org>
6399
6400 * xfaces.c (realize_default_face): Use empty strings to indicate
6401 that the face should use the default foreground/background
6402 color of the terminal. Fill font-related attributes with
6403 appropriate values for tty frames.
6404
6405 * emacs.c (main): Call syms_of_xfaces before init_window_once.
6406
6407 * xfaces.c (realize_default_face): If face `default' is not
6408 yet known, create it.
6409
6410 * frame.c (make_terminal_frame): Call init_frame_faces
6411 unconditionally.
6412
6413 * xfaces.c (init_frame_faces): Make it work for tty frames.
6414 (free_frame_faces): Ditto.
6415 (clear_face_cache): Ditto.
6416 (recompute_basic_faces): Ditto.
6417 (Fframe_face_alist): Ditto.
6418 (free_realized_face): Ditto.
6419 (prepare_face_for_display): Ditto.
6420 (clear_face_gcs): Ditto.
6421 (lookup_face): Ditto.
6422 (smaller_face): Ditto.
6423 (realize_default_face): Ditto.
6424 (realize_face): Ditto.
6425 (realize_face): Dispatch to functions depending on the frame type.
6426 (realize_x_face): X way of realizing faces.
6427 (realize_tty_face): TTY way of realizing faces.
6428
64291998-08-29 Gerd Moellmann <gerd@gnu.org>
6430
6431 * xfaces.c (realize_face): Remove parameter unibyte_registry,
6432 compute it instead.
6433 (lookup_face): Remove local variable unibyte_registry.
6434
64351998-08-22 Gerd Moellmann <gerd@gnu.org>
6436
6437 * xterm.c (x_draw_glyph_string_relief): Draw top and bottom lines
6438 1 pixel longer.
6439
6440 * xdisp.c (face_before_or_after_it_pos): Fix computation
6441 of face in buffer.
6442
6443 * editfns.c (make_buffer_string_both): If prompt in buffer,
6444 prevent start > end.
6445
6446 * indent.c (Fvertical_motion): Set current_buffer to window's
6447 buffer if it isn't already.
6448
64491998-08-21 Gerd Moellmann <gerd@gnu.org>
6450
6451 * dispextern.h (GLYPH_DEBUG): Use default 0.
6452
6453 * xdisp.c (it_props): New member `smaller'.
6454 (init_iterator): Initialize it.
6455 (Qsmaller): New.
6456 (push_it): Save value of `smaller' value on the stack.
6457 (pop_it): Restore `smaller' from the stack.
6458 (handle_smaller_prop): New.
6459 (handle_face_prop): Use `smaller' text property to select a
6460 suitable face.
6461
6462 * dispextern.h (SMALLER_PROP_IDX): New.
6463 (struct it): Add member `smaller'.
6464
6465 * xfaces.c (smaller_face): New.
6466
6467 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add bitmap area widths.
6468
6469 * dispnew.c (allocate_matrices_for_window_redisplay): Compute
6470 total pixel width of window differently.
6471
6472 * xdisp.c (init_iterator): Compute width of mode line differently.
6473
6474 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract width
6475 of bitmap areas.
6476
6477 * window.c (Fsplit_window): Include width of bitmap areas in
6478 window width.
6479 (window_internal_width): Subtract width of bitmap areas from
6480 total width.
6481
64821998-08-18 Gerd Moellmann <gerd@gnu.org>
6483
6484 * xdisp.c: Functions reordered for better readability.
6485
6486 * dispnew.c (update_text_area): Handle glyphs with arbitrary
6487 lbearing.
6488 (update_window_tree): Parameter no_scrolling_p removed.
6489 (update_single_window): Ditto.
6490
6491 * xterm.c (x_get_char_font_and_encoding): Renamed to
6492 x_get_char_face_and_encoding.
6493
6494 * dispnew.c (update_text_area): Don't call get_glyph_overhangs
6495 if end of current row reached.
6496
6497 * xterm.c (x_get_glyph_face_and_encoding): New.
6498 (x_get_glyph_overhangs): Call it.
6499
6500 * xdisp.c (Qshow_trailing_whitespace): New.
6501 (Qtrailing_whitespace): New.
6502 (enum prop_handled): New.
6503 (struct props, it_props): New.
6504 (next_overlay_change): New. Works like Fnext_overlay_change
6505 but doesn't use xmalloc.
6506 (handle_stop): Restructured.
6507 (face_before_or_after_it_pos): Case iteration over a string: fix
6508 handling of face before current position.
6509
65101998-08-16 Gerd Moellmann <gerd@gnu.org>
6511
6512 * dispnew.c (adjust_glyph_matrix): Don't optimize matrix
6513 reallocation matrix if fonts_changed_p.
6514 (update_text_area): Handle glyphs with lbearing.
6515
65161998-08-14 Gerd Moellmann <gerd@gnu.org>
6517
6518 * xdisp.c (struct props): New.
6519 (it_props): New.
6520 (compute_prop_info): New.
6521 (handle_stop): New.
6522
6523 * textprop.c (validate_interval_range): Make it externally
6524 visible.
6525
6526 * dispnew.c (direct_output_for_insert): Remove calls
6527 to compute_stop_pos.
6528
6529 * dispextern.h (struct it): Remove check_charpos,
6530 next_overlay_pos. Add what_changes.
6531
65321998-08-10 Gerd Moellmann <gerd@gnu.org>
6533
6534 * xterm.c (note_mouse_highlight): Set BEGV_BYTE, ZV_BYTE.
6535
6536 * xfaces.c (Vx_unibyte_registry_and_encoding): Removed. Use
6537 face_default_registry instead.
6538
6539 * syntax.c (scan_sexps_forward): Set up syntax table before
6540 jumping to initial state label.
6541
65421998-08-09 Gerd Moellmann <gerd@gnu.org>
6543
6544 * dispnew.c (check_matrix_invariants): Handle case of row end pos
6545 >= ZV specially.
6546
65471998-08-08 Gerd Moellmann <gerd@gnu.org>
6548
6549 * xdisp.c (redisplay_window): Case cursor movement---if cursor
6550 ends up in partially visible row, try to scroll. Case forced
6551 window start---handle windows not tall enough to show a single
6552 line.
6553
6554 * window.h (struct window): Member dy renamed vscroll.
6555
6556 * xterm.c (x_list_fonts): Re-activate suppression of scalable
6557 fonts.
6558 (x_draw_stretch_glyph_string): Set clipping if using GC that
6559 hasn't set it yet.
6560
6561 * xdisp.c (redisplay_window): Case forced window start -
6562 don't let cursor end on partially visible row. Use desired
6563 matrix to find a suitable PT if it doesn't appear.
6564 (decode_mode_spec): Merged with 20.2.97.
6565 (try_window_reusing_current_matrix): Give up if old or
6566 new display is vscrolled.
6567 (redisplay_window): Reset vscrolling if forced window start,
6568 or if recentering.
6569
65701998-08-06 Gerd Moellmann <gerd@gnu.org>
6571
6572 * xfaces.c (realize_default_face): Use the fontset name instead of
6573 the alias for the family attribute of the default face because we
6574 can't easily determine a good alias from fontset-alias-alist.
6575 (face_fontset): Use Fquery_fontset to find the fontset.
6576 (font_list): Additional pattern parameter.
6577 (try_font_list): Ditto.
6578 (set_lface_from_font_name): Set face family from font foundry
6579 and family.
6580 (font_list): If family contains a hyphen, build pattern differently.
6581
65821998-08-05 Gerd Moellmann <gerd@gnu.org>
6583
6584 * xfaces.c (free_realized_faces): Increment windows_or_buffers_-
6585 changed instead of setting the frame garbaged.
6586
6587 * xfaces.c (lface_equal_p): Don't assume equal Lisp types for
6588 all attribute values. This is wrong if values are unspecified,
6589 i.e. nil.
6590
6591 * xdisp.c (try_window_id): Give up if window start changed.
6592
6593 * xfaces.c (make_realized_face): Store registry as Lisp object.
6594 (load_face_font_or_fontset): Compute registry of a face
6595 differently. Make it `eq' to Vx_unibyte_registry_and_encoding if
6596 possible.
6597
6598 * dispextern.h (FACE_SUITABLE_FOR_CHARSET_P): Compare registries
6599 differently.
6600
6601 * alloc.c (mark_face_cache): Mark the registry member of faces.
6602
6603 * dispextern.h (struct face): Make registry a Lisp string.
6604
66051998-08-04 Gerd Moellmann <gerd@gnu.org>
6606
6607 * xterm.c (x_get_char_font_and_encoding): Additional parameter
6608 multibyte_p. Handle unibyte text.
6609 (x_append_glyph): Set the multibyte_p flag of glyphs.
6610 (x_produce_image_glyph): Ditto.
6611 (x_append_stretch_glyph): Ditto.
6612 (x_produce_glyphs): Handle unibyte text like ASCII.
6613
6614 * xdisp.c (push_it): Save the multibyte flag of an iterator on the
6615 stack.
6616 (pop_it): Restore it.
6617 (face_before_or_after_it_pos): Handle the case that the string or
6618 buffer is unibyte.
6619 (get_overlay_strings): Set the multibyte flag of the iterator if
6620 the new overlay string is multibyte.
6621 (get_glyph_property): Likewise.
6622 (get_next_display_element): Don't check for charset changes in
6623 unibyte text.
6624 (append_space): Compute face differently for unibyte text.
6625 (extend_face_to_end_of_line): Don't return quickly if face has
6626 stipple.
6627
6628 * xfaces.c (load_face_font_or_fontset): Store registry and
6629 encoding of the font in the registry member of the face.
6630 (make_realized_face): Additional parameter `registry'.
6631 (free_realized_face): Free the registry of a realized face.
6632 (face_suitable_for_charset_p): Function form of the macro
6633 with the same name in uppercase.
6634 (lookup_face): Use Vx_unibyte_registry_and_encoding if charset < 0.
6635 (choose_face_font): New parameter unibyte_registry.
6636 (choose_face_fontset_font): Ditto.
6637 (realize_default_face): Remember the registry and encoding of
6638 the specified frame font in Vx_unibyte_registry_and_encoding.
6639 (face_at_buffer_position): Handle unibyte.
6640 (face_at_string_position): Likewise.
6641 (realize_face): New parameter unibyte_registry.
6642 (compute_char_face): Handle the unibyte case.
6643
6644 * dispextern.h (struct glyph): Add bit multibyte_p.
6645 (struct face): New member registry holding the registry and
6646 encoding of the X font of the face.
6647 (FACE_UNIBYTE_P): Value is non-zero if face is for unibye text.
6648 (enum face_id): Add BASIC_FACE_ID_SENTINEL.
6649 (FACE_SUITABLE_FOR_CHARSET_P): Handle charset < 0 meansing unibyte
6650 text.
6651 (struct iterator_stack_entry): Add multibyte_p.
6652
6653 * xdisp.c (string_pos): Use string_char_to_byte.
6654 (char_charset): Removed.
6655
66561998-08-03 Gerd Moellmann <gerd@gnu.org>
6657
6658 * xterm.c (x_draw_image_glyph_string_foreground): Draw a
6659 rectangle for a block cursor over an image without a mask.
6660 (x_stretch_block_cursor): Added. Non-zero means don't draw
6661 a block cursor over a stretch as wide as that stretch.
6662 (x_draw_stretch_glyph_string): Use it.
6663 (x_draw_hollow_cursor): Ditto.
6664
6665 * minibuf.c (read_minibuf): Use minibuf_prompt instead of prompt.
6666 (read_minibuf): Add front-sticky text property for prompt.
6667
6668 * xdisp.c (char_charset): Return charset of a character,
6669 depending on whether or not multi-byte characters are enabled.
6670
6671 * xfaces.c (Fset_face_charset_registry): Removed.
6672 (x_charset_registry): Determine registry from charset plist.
6673
66741998-08-02 Gerd Moellmann <gerd@gnu.org>
6675
6676 * xdisp.c (get_next_display_element): Don't check for charset
6677 changes if multi-byte characters are not enabled.
6678
6679 * xdisp.c (echo_area_display): Use the flush function from the
6680 redisplay interface.
6681 * keyboard.c (detect_input_pending_run_timers): Likewise.
6682
6683 * dispextern.h (produce_*glyphs_hook): Removed.
6684 * term.c (produce_*glyphs): Ditto.
6685 (cursor_to): Remove pixel position parameters.
6686
6687 * dispnew.c: Remove hooks for window-based redisplay, introduce
6688 a redisplay interface structure.
6689
6690 * xterm.c (x_per_char_metric): Return default char metrics if per
6691 char metric exists but contains a zero width. Adobe Courier seems
6692 to contain such characters.
6693
6694 * xdisp.c (compute_line_metrics): Compute the width of rows
6695 without stopping at glyphs with zero width.
6696
66971998-08-01 Gerd Moellmann <gerd@gnu.org>
6698
6699 * xdisp.c (display_mode_line): If nothing was displayed at all,
6700 display a space.
6701 (hscroll_window_tree): Don't subtract 1 from target point if equal
6702 to ZV and window is not the selected window.
6703
6704 * dispnew.c (check_matrix_invariants): Remove check for window
6705 start at BEGV or after newline. This happens in rare cases
6706 intentionally.
6707
67081998-07-31 Gerd Moellmann <gerd@gnu.org>
6709
6710 * xfaces.c (x_charset_registry): Use STRING_BYTES.
6711 (syms_of_xfaces): Add Vface_default_registry.
6712 (x_charset_registry): Use it.
6713
6714 * xdisp.c (run_window_scroll_functions): Run window scroll functions.
6715 (redisplay_window): Use it.
6716
6717 * dispnew.c (update_text_area): Handle lbearing of deleted text
6718 by backing up one character.
6719
67201998-07-30 Gerd Moellmann <gerd@gnu.org>
6721
6722 * dispnew.c (adjust_glyph_matrix): Use a different check to
6723 decide to do nothing.
6724
6725 * xfaces.c (face_at_string_position): Additional parameter
6726 mode_line_p. If non-zero, merge with the mode line face
6727 instead of the default face.
6728 * dispextern.h (struct it): Add mode_line_p.
6729 * xdisp.c (init_iterator): Set it.
6730 (compute_face_in_string): Use it.
6731 (face_before_or_after_it_pos): Handle strings.
6732 (get_next_display_element): Don't look for relief end in C strings.
6733 (next_element_from_string): Deliver string position instead of
6734 buffer position.
6735
6736 * xterm.c (x_flush): Flush X output buffer.
6737 (XTflash): Use it.
6738
6739 * xfaces.c (lface_from_face_name): Renamed from lface_from_symbol.
6740 Allow strings as face names.
6741
6742 * xfns.c (forall_images_in_image_cache): Check that frame is
6743 alive.
6744
6745 * widget.c (EmacsFrameDestroy): Remove call to free_frame_faces;
6746 it's also called from x_destroy_window. Since this function is
6747 called from X, freeing stuff allocated with xmalloc is dangerous
6748 here, anyway.
6749
6750 * xfaces.c (free_realized_faces): Don't clear current matrices
6751 of a frame being destroyed.
6752
6753 * frame.c (make_frame): Call set_window_buffer instead of
6754 Fset_window_buffer.
6755
6756 * window.c (set_window_buffer): Extracted from Fset_window_buffer,
6757 with an additional argument specifying whether or not hooks may
6758 be called.
6759 (Fset_window_buffer): Call it.
6760
6761 * dispnew.c (clear_desired_matrices): Check that frame has
6762 a valid root window before clearing matrices in the window tree.
6763 (clear_current_matrices): Ditto.
6764 (clear_window_matrices): If GLYPH_DEBUG, check that hchild and
6765 vchild are valid windows if not nil.
6766
6767 * xfaces.c (merge_face_vector_with_property): Allow :reverse-video
6768 for :inverse-video.
6769 (Finternal_set_lisp_face_attribute): Ditto.
6770 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
6771 (Finternal_get_lisp_face_attribute): Ditto.
6772 (Finternal_lisp_face_attribute_values): Ditto.
6773 (syms_of_xfaces): Define the symbol `:reverse-video'.
6774
6775 * xdisp.c (get_glyph_property): Renamed from
6776 fill_iterator_from_glyph_property.
6777 (next_element_from_buffer): Handle case that no `glyph' property
6778 was found correctly.
6779 (display_line): Extend face to end of line only if we have faces.
6780
67811998-07-29 Gerd Moellmann <gerd@gnu.org>
6782
6783 * dispnew.c (Fshow_cursor): Renamed from blink_cursor. Take
6784 additional window argument.
6785
6786 * xdisp.c (reseat_at_previous_visible_line_start): Renamed from
6787 set_iterator_to_previous_visible_line_start.
6788 (reseat_at_next_visible_line_start): Likewise.
6789 (compute_stop_pos): Renamed from set_iterator_stop_pos.
6790 (face_before_or_after_it_pos): Renamed from get_face_at_it_pos.
6791 (compute_face_in_buffer): Renamed from
6792 compute_face_at_iterator_position.
6793 (compute_face_in_string): Renamed from
6794 compute_face_at_iterator_string_position.
6795 (get_space_width): Renamed from get_iterator_space_width.
6796 (next_overlay_string): Renamed from
6797 set_iterator_to_next_overlay_string.
6798 (get_overlay_strings): Renamed from
6799 get_overlay_strings_at_iterator_position.
6800 (restore_overlay_strings): Renamed from
6801 setup_overlay_strings_from_glyph_pos.
6802 (restore_dpvec): Renamed from setup_iterator_dpvec_from_glyph_pos.
6803 (init_from_display_pos): Renamed from init_iterator_from_glyph_pos.
6804 (init_to_row_start): Renamed from init_iterator_to_row_start.
6805 (init_to_row_end): Formerly init_iterator_to_next_row_start.
6806
6807 * xterm.c: Merge with 20.2.97.
6808 (x_produce_glyphs): Use x_append_stretch_glyph for tabs.
6809
6810 * dispextern.h (struct glyph): Replace text_pos position with
6811 simple charpos.
6812
6813 * xdisp.c (this_line_start_pos): Use struct text_pos.
6814 (this_line_end_pos): Renamed from .*endpos; use struct text_pos.
6815 (enum move_it_result): Renamed from move_iterator_result.
6816 (string_pos_nchars_ahead): Compute text_pos in a string from a
6817 known text_pos plus a character delta.
6818 (string_pos): Compute text_pos in string from charpos.
6819 (c_string_pos): Likewise for a C string.
6820 (number_of_chars): Return number of characters in a possibly
6821 multi-byte C string.
6822 (check_it): Renamed from check_iterator. Check that charpos and
6823 bytepos are in sync.
6824 (push_it): Renamed from save_iterator_settings.
6825 (pop_it): Renamed from restore_iterator_settings.
6826 (move_it_.*): Renamed from move_iterator_.*.
6827 (charset_at_position): Take charpos/bytepos into account.
6828 (back_to_previous_line_start): Set iterator to previous line start.
6829 (forward_to_next_line_start): Set iterator to next line start.
6830 (back_to_previous_visible_line_start): Renamed from
6831 move_iterator_previous_visible_line_start.
6832 (set_iterator_to_next_visible_line_start): Handle charpos/bytepos.
6833 (get_face_at_it_pos): Renamed from get_face_from_cursor_pos.
6834 Handle charpos/bytepos.
6835 (compute_face_at_iterator_position): Handle charpos/bytepos.
6836 (compute_face_at_iterator_string_position): Likewise.
6837 (get_iterator_space_width): Likewise.
6838 (load_overlay_strings): Likewise.
6839 (get_overlay_strings_at_iterator_position): Likewise.
6840 (reseat_iterator): Take a text_pos position argument.
6841 (setup_iterator_overlay_strings_from_glyph_pos): Handle charpos/
6842 bytepos.
6843 (init_iterator): Take additional bytepos parameter.
6844 (reseat_iterator_to_string): Handle charpos/bytepos.
6845 (start_display): Take a text_pos parameter. Handle charpos/bytepos.
6846 (next_element_from_string): Handle charpos/bytepos.
6847 (next_element_from_c_string): Likewise.
6848 (fill_iterator_from_glyph_property): Likewise.
6849 (next_element_from_buffer): Likewise.
6850 (set_iterator_to_next): Increment charpos and bytepos of an iterator.
6851 (move_iterator_in_display_line_to): Handle charpos/bytepos.
6852 (move_it_to): Likewise.
6853 (move_it_vertically_backward): Likewise.
6854 (move_it_vertically): Likewise.
6855 (move_it_by_lines): Likewise.
6856 (hscroll_window_tree): Likewise.
6857 (redisplay_internal): Likewise.
6858 (set_cursor_from_row): Likewise.
6859 (redisplay_window): Likewise.
6860 (try_window): Take a text_pos parameter. Handle charpos/bytepos.
6861 (try_window_reusing_current_matrix): Handle charpos/bytepos.
6862 (get_first_unchanged_at_end_row): Compute and return delta_bytes.
6863 (try_window_id): Handle charpos/bytepos.
6864 (Ftrace_redisplay_toggle): Return Qnil.
6865 (get_overlay_arrow_glyph_row): Handle charpos/bytepos.
6866 (insert_left_trunc_glyphs): Likewise.
6867
6868 * dispnew.c: `Merge' with 20.2.97 (it's really too different to
6869 do a real merge).
6870 (increment_glyph_matrix_buffer_positions): Add parameter delta_bytes.
6871 (increment_glyph_row_buffer_positions): Ditto.
6872 (copy_glyph_row_contents): Ditto.
6873 (check_matrix_invariants): Add additional checks for charpos/
6874 bytepos consistency.
6875 (direct_output_for_insert): Changed for charpos/bytepos.
6876 (buffer_posn_from_coords): Likewise. Put code dealing with
6877 `direction-reversed' in #if 0.
6878
6879 * xterm.h: Merge with 20.2.97.
6880
6881 * frame.h: Merge with 20.2.97.
6882
6883 * window.h: Merge with 20.2.97. Add window_end_bytepos.
6884
6885 * dispextern.h (MATRIX_ROW_START_CHARPOS): Get charpos of a row
6886 start.
6887 (MATRIX_ROW_START_BYTEPOS): Likewise for the byte position.
6888 (MATRIX_ROW_END_CHARPOS): Likewise for the row end.
6889 (MATRIX_ROW_END_BYTEPOS): Likewise for the row end byte position.
6890 (struct it): Various members renamed from .*pos to .*charpos.
6891 (IT_CHARPOS): Access current buffer character position of an
6892 iterator.
6893 (IT_BYTEPOS): Access current buffer byte position of an iterator.
6894 (IT_STRING_CHARPOS): Access current string character position of
6895 an iterator.
6896 (IT_STRING_BYTEPOS): Access current string byte position of
6897 an iterator.
6898 (globally): Add function prototypes from 20.2.97.
6899
6900 * everywhere: Use P_ instead of PROTO for function prototypes
6901 because everyone else seems to use P_.
6902
6903 * dispextern.h (struct text_pos): Structure describing a charpos/
6904 bytepos position in text.
6905 (BYTEPOS): Access the byte position part of a text_pos.
6906 (CHARPOS): Likewise for the character position.
6907 (SET_TEXT_POS): Set a text_pos from a character and byte position.
6908 (INC_TEXT_POS, DEC_TEXT_POS): Increment/decrement a text position.
6909 (SET_TEXT_POS_FROM_MARKER): Set a text_pos from a marker.
6910 (SET_MARKER_FROM_TEXT_POS): Set a marker from a text_pos.
6911 (TEXT_POS_EQUAL_P): Compare two text_pos structures for equality.
6912 (struct display_pos): Renamed from glyph_pos. Use struct text_pos
6913 for buffer and string positions.
6914 (struct glyph): Use text_pos.
6915 (struct it): Renamed from display_iterator. Use text_pos.
6916
69171998-07-23 Gerd Moellmann <gerd@gnu.org>
6918
6919 * xfns.c (x_kill_gs_process): Get image colors from XImage of a
6920 pixmap.
6921
69221998-07-21 Gerd Moellmann <gerd@gnu.org>
6923
6924 * dispextern.h (struct glyph_row): New flag indicate_zv_line_p.
6925 * xterm.c (x_draw_row_bitmaps): Use it.
6926 * dispnew.c (row_equal_p): Ditto.
6927 (update_window_line): Ditto.
6928
6929 * xfns.c (prepare_image_for_display): Don't set loading_failed_p
6930 flag of images.
6931
6932 * dispextern.h (struct image): Removed member loading_failed_p.
6933 It's probably better to have the chance to try to load an image
6934 again.
6935
69361998-07-20 Gerd Moellmann <gerd@gnu.org>
6937
6938 * xterm.c (x_draw_bitmap): Draw bitmap for empty lines ending
6939 at ZV if `indicate-zv-lines' is non-nil.
6940 (x_draw_row_bitmaps): Compute bitmap for `indicate-zv-lines'.
6941
6942 * dispnew.c (row_equal_p): Compare displays_text_p and
6943 ends_at_zv_p flags of rows.
6944 (update_window_line): Ditto.
6945
6946 * buffer.h (struct buffer): New member indicate_zv_lines.
6947
6948 * buffer.c (init_buffer_once): Add default for `indicate-zv-lines'.
6949 (init_buffer_once): New variable `default-indicate-zv-lines'.
6950 (syms_of_buffer): New buffer-local varianle `indicate-zv-lines'.
6951
6952 * xdisp.c (redisplay_window): Don't try moving the cursor
6953 if current glyph row w->last_cursor.vpos isn't enabled.
6954
6955 * xterm.c (bitmap_type): Add ZV_LINE_BITMAP.
6956
6957 * window.c (Fset_window_vscroll): Allow only negative scroll
6958 values. Others don't seem to make sense, and this way it's easy
6959 to restore a vscroll of zero.
6960
6961 * xterm.c (x_inverted_image_mask): Check that pixmap could be
6962 allocated.
6963 (x_draw_image_glyph_string_background): Don't clip if pixmap
6964 could not be created.
6965
6966 * xfns.c (xbm_load_image_from_file): Check that pixmap could
6967 be created.
6968 (xbm_load): Ditto.
6969 (gs_load): Ditto.
6970
6971 * xterm.c (x_get_glyph_overhangs): Take image and stretch
6972 glyphs into account.
6973
6974 * xfaces.c (realize_default_face): Don't set font family of
6975 the default face from the fontset alias name for `fontset-startup'.
6976
6977 * xfns.c (gs_load): Pass frame's pixel foreground and background
6978 color to the Lisp loader.
6979
69801998-07-19 Gerd Moellmann <gerd@gnu.org>
6981
6982 * xfns.c (tiff_image_p, tiff_load): Support TIFF images via
6983 libtiff34.
6984
6985 * configure.in (--with-tiff, HAVE_TIFF): Added.
6986
6987 * config.in (HAVE_TIFF): Added.
6988
6989 * Makefile.in (LIBTIFF): Added.
6990
6991 * xfns.c (jpeg_image_p, jpeg_load): Support JPEG images.
6992
6993 * Makefile.in (LIBJPEG): Added.
6994
6995 * xfns.c (resource_types): Enumerators renamed to RES_TYPE_NUMBER,
6996 RES_TYPE_BOOLEAN etc. because of conflict of `boolean' with
6997 jpeglib.h.
6998
6999 * configure.in (HAVE_JPEG, --with-jpeg): Added. On systems
7000 where the library is installed in /usr/local/lib, e.g. FreeBSD,
7001 configure must be run with `--x-includes=/usr/X11R6/include:
7002 /usr/local/include --x-libraries=/usr/X11R6/lib:/usr/local/lib'.
7003
70041998-07-18 Gerd Moellmann <gerd@gnu.org>
7005
7006 * config.in (HAVE_JPEG): Added.
7007
7008 * xfns.c (ct_init): Initialize color table used to map RGB colors
7009 from images to X pixel colors.
7010 (ct_free): Free color table.
7011 (ct_lookup): Look an RGB color up.
7012 (ct_allocated_colors): Get vector of allocated colors.
7013 (pbm_image_p): Test if image specification is a valid PPM
7014 image specification.
7015 (pbm_scan_number): Scan a decimal ASCII number from a file.
7016 (pbm_load): Load a PPM image.
7017
7018 * window.c (Fset_window_vscroll): Adjust glyph matrix if
7019 necessary. Take canonical character units as parameter.
7020 (Fwindow_vscroll): Return canonical character units.
7021
7022 * dispnew.c (allocate_matrices_for_window_redisplay): Add negative
7023 w->dy to display height for which glyph rows must be allocated.
7024
70251998-07-17 Gerd Moellmann <gerd@gnu.org>
7026
7027 * xfaces.c (face_at_string_position): Merge in region face
7028 so that it won't overwrite the font in the region.
7029 (face_at_buffer_position): Ditto.
7030 (realize_basic_faces): Don't realize region face.
7031
7032 * dispextern.h (enum face_id): REGION_FACE_ID removed.
7033
7034 * xterm.c (x_set_glyph_string_background_width): Don't let
7035 cursor face extend to end of line.
7036
7037 * xdisp.c (append_space): If adding space of default face,
7038 make sure glyph ist produced with right face.
7039
7040 * xterm.c (x_clear_glyph_string_rect): Draw a rectangle in the
7041 background color of a glyph string.
7042 (x_draw_glyph_string_background): Call it.
7043 (x_draw_glyph_string_bg_rect): Ditto.
7044 (x_draw_stretch_glyph_string): Ditto.
7045
70461998-07-15 Gerd Moellmann <gerd@gnu.org>
7047
7048 * xdisp.c (init_iterator): Initialize it->current_y to the
7049 window's vscroll w->dy.
7050
7051 * window.c (Fwindow_vscroll): Return number of pixels window
7052 is vscrolled smoothly.
7053 (Fset_window_vscroll): Set the number.
7054
7055 * xdisp.c (move_iterator_to): Recognize case MOVE_TO_POS and
7056 to_pos in truncated part of a line.
7057
70581998-07-14 Gerd Moellmann <gerd@gnu.org>
7059
7060 * xdisp.c (move_iterator_in_display_line_to): If very first glyph
7061 doesn't fit on the line, truncate it, despite truncate_lines nil.
7062 (display_line): Ditto.
7063
7064 * xfns.c: Experimental support for Ghostscript images.
7065
7066 * xterm.c (x_term_init): Initialize new atoms DONE and PAGE.
7067 (XTread_socket): React on events from Ghostscript.
7068 (expose_frame): If width or height are zero, redraw entire frame.
7069 (XTread_socket): Call expose_frame after receiving event from
7070 Ghostscript.
7071
7072 * xterm.h (struct x_display_info): Add atoms DONE and PAGE
7073 for Ghostscript support.
7074
7075 * xdisp.c (redisplay_internal): Return quickly if called
7076 recursively.
7077
7078 * alloc.c (NSTATICS): Increased to 1024.
7079
70801998-07-08 Gerd Moellmann <gerd@gnu.org>
7081
7082 * xterm.c (x_append_stretch_glyph): Append a stretch glyph to an
7083 iterator's glyph row.
7084 (x_produce_stretch_glyph): Call it.
7085 (x_produce_glyphs): Handle `space-width' property; call
7086 x_append_stretch_glyph.
7087
7088 * xdisp.c (syms_of_xdisp): Add symbol `space-width' used as a text
7089 property.
7090 (get_iterator_space_width): Determine value of `space-width'
7091 property at iterator's position.
7092 (reseat_iterator): Call it.
7093 (next_element_from_string): Ditto.
7094 (next_element_from_buffer): Ditto.
7095 (init_iterator): Initialize space_width of iterator.
7096 (redisplay_internal): Don't goto end_of_redisplay if PT hasn't
7097 moved, but cursor blinks.
7098 (redisplay_internal): Set w->last_cursor_off_p after update.
7099
7100 * dispextern.h (enum iterator_prop_idx): Add SPACE_WIDTH_PROP_IDX.
7101 (struct display_iterator): Add new member space_width.
7102
7103 * window.h (struct window): Add last_cursor_off_p.
7104
71051998-07-07 Gerd Moellmann <gerd@gnu.org>
7106
7107 * Saved.
7108
7109 * window.c (Fpos_visible_in_window_p): Case window not up to
7110 date---return nil if iterator hasn't reached position.
7111
71121998-07-06 Gerd Moellmann <gerd@gnu.org>
7113
7114 * xdisp.c (text_outside_line_unchanged_p): Fix case that
7115 overlays have changed.
7116 (redisplay_window): Case cursor movement. Don't try it if
7117 last_cursor.vpos is out of range.
7118
7119 * xdisp.c (set_cursor_from_row): Set this_line_.* variables. This
7120 way, the display optimization for the line containing the cursor
7121 is used more frequently, esp. when we have a blinking cursor.
7122 (display_line): Don't set this_line_.* variables.
7123
7124 * xterm.c (x_redraw_cursor): Removed.
7125 (x_display_and_set_cursor): Set cursor type depending on
7126 cursor_off_p flag of window.
7127
7128 * dispnew.c (redraw_cursor_hook): Removed.
7129 (Fblink_cursor): Additional parameter on_p to set the cursor_off_p
7130 member of the selected window.
7131
7132 * xfaces.c (Fface_font): Added for compatibility with 20.2.
7133
7134 * xterm.c (x_y_to_hpos_vpos): Return null if not over text.
7135 Return glyph area under x/y.
7136 (note_mouse_highlight): Use x_y_to_hpos_vpos in its new form.
7137
7138 * keyboard.c (detect_input_pending_run_timers): Call gobble_input
7139 after redisplaying.
7140
71411998-07-05 Gerd Moellmann <gerd@gnu.org>
7142
7143 * xdisp.c (text_outside_line_unchanged_p): Test if changes
7144 are all outside of a line of text.
7145 (redisplay_internal): Use it.
7146
71471998-06-30 Gerd Moellmann <gerd@gnu.org>
7148
7149 * xdisp.c (next_element_from_buffer): After skipping over
7150 invisible text, look for the `glyph' property.
7151 (set_iterator_stop_pos): Ignore check positions in front
7152 of an iterator's current position.
7153
7154 * xterm.c (show_mouse_face): Don't act on rows that don't exist
7155 anymore or which are marked as not having valid contents.
7156
7157 * xfaces.c (Finternal_set_lisp_face_attribute): Don't free
7158 realized faces if new attribute value is equal to old value.
7159
71601998-06-29 Gerd Moellmann <gerd@gnu.org>
7161
7162 * xfaces.c (Finternal_make_lisp_face): Increment
7163 lface_id_to_name_size when lface_id_to_name is reallocated.
7164
71651998-06-27 Gerd Moellmann <gerd@gnu.org>
7166
7167 * xdisp.c (set_iterator_stop_pos): Compute initial stop_pos
7168 as minimum of endpos and overlay_pos.
7169 (load_overlay_strings): Set next_overlay_pos of iterator to
7170 -1 if we don't have to check for more overlay strings.
7171
71721998-05-09 Gerd Moellmann <gerd@gnu.org>
7173
7174 * xdisp.c (set_iterator_to_next_visible_line_start): Don't
7175 do anything if iterator is at ZV because scan_buffer doesn't
7176 work otherwise.
7177
7178 * xterm.c (x_encode_char): Inline it.
7179 (x_get_char_font_and_encoding): Simplified.
7180 (x_per_char_metric): Inline it.
7181
7182 * xterm.c (x_draw_glyph_string_relief): Use clipping.
7183
7184 * xdisp.c (get_next_display_element): Check for end of relief
7185 face moved here from next_element_from_buffer.
7186
7187 * xterm.c (x_produce_image_glyph): Add relief thickness.
7188 (x_produce_stretch_glyph): Ditto.
7189
71901998-05-08 Gerd Moellmann <gerd@gnu.org>
7191
7192 * xdisp.c (fill_iterator_from_glyph_property): Handle glyph
7193 property value (space :width WIDTH :height HEIGHT :ascent ASCENT).
7194
7195 * xterm.c (x_produce_stretch_glyph): Produce a stretch glyph
7196 from a glyph property.
7197 (x_produce_glyphs): Use it.
7198
7199 * xdisp.c (set_iterator_to_next): Handle next_element_from_stretch.
7200
7201 * xterm.c (x_produce_image_glyph): Add to current_x only if
7202 in text area.
7203 (x_produce_glyphs): Ditto.
7204
7205 * xdisp.c (display_line): Compute row height from glyphs in
7206 marginal areas.
7207
7208 * xterm.c (x_draw_image_glyph_string_background): Draw
7209 background of an image glyph string.
7210 (x_draw_glyph_string_bg_rect): Draw a rectangular region of
7211 the background of a glyph string.
7212 (x_draw_image_glyph_string_foreground): Draw the foreground of
7213 an image glyph string.
7214 (x_inverted_image_mask): Return the inverted mask of an image.
7215
7216 * xfns.c (x_draw_image): Removed.
7217
7218 * dispextern.h (struct image_type): Remove drawing function.
7219
7220 * xfaces.c (load_face_colors): Swap colors if face is inverse.
7221
7222 * xdisp.c (get_next_display_element): In marginal areas, translate
7223 newlines, tabs, etc. like normal control characters.
7224
7225 * xfaces.c (Fface_color_supported_p): Transpose parameters frame
7226 and color.
7227 (free_realized_faces): Set frame garbaged.
7228
7229 * xfaces.c (syms_of_xfaces): Add defsubr for
7230 internal-lisp-face-attribute-values.
7231
72321998-05-07 Gerd Moellmann <gerd@gnu.org>
7233
7234 * xterm.c (x_produce_image_glyph): Don't add glyph if area is
7235 full.
7236 (x_produce_image_glyph): Set IT->nglyphs to 1.
7237 (x_draw_image_glyph_string): Use inverted mask to draw background.
7238
7239 * dispextern.h (struct image_type): Additional clipping rect
7240 parameters for drawing functions.
7241
7242 * xterm.c (x_get_glyph_string_clip_rect): Get clip rect for
7243 a glyph string.
7244 (x_draw_image_glyph_string): Use it and pass the rect to the
7245 image drawing function.
7246
7247 * xdisp.c (fill_iterator_from_glyph_property): Use position of
7248 first character with `glyph' property as image position. Set
7249 iterator back to that position as long as the image hasn't been
7250 consumed with set_iterator_to_next.
7251 (set_cursor_from_row): Accept when glyph with given position is
7252 not found in the row. Set cursor x to end of line in that case,
7253 so that we can hscroll.
7254 (redisplay_internal): Correct computation of delta by which
7255 positions have changed in redisplay optimization for cursor
7256 row of selected window.
7257
7258 * xdisp.c (display_line): Remove start_pos.
7259 (display_line): Fix bug preventing display optimization for
7260 cursor line of selected window.
7261 (next_element_from_buffer): Avoid XSETBUFFER, use it->w->buffer
7262 instead.
7263
7264 * dispnew.c (update_text_area): Use GLYPH_EQUAL_P.
7265 (update_text_area): Take glyph pixel width into account
7266 when trying to find a resync point.
7267 (row_equal_p): Compare glyphs in all areas.
7268
72691998-05-06 Gerd Moellmann <gerd@gnu.org>
7270
7271 * xterm.c (x_produce_glyphs): Don't add glyph if area is full.
7272
7273 * dispextern.h (struct glyph_row): Use unsigned hash value.
7274
7275 * xdisp.c (display_line): Simplified and made faster by setting
7276 the cursor with set_cursor_from_row.
7277 (set_cursor_from_row): Handle rows of desired matrix.
7278
72791998-05-05 Gerd Moellmann <gerd@gnu.org>
7280
7281 * xdisp.c (set_cursor_from_row): Don't put cursor on glyphs
7282 with type != CHAR_GLYPH.
7283 (fill_iterator_from_glyph_property): Return void. Set
7284 method to next_element_from_image.
7285 (next_element_from_image): Dummy function for delivering a
7286 single image id.
7287 (set_iterator_to_next): Add method next_element_from_image.
7288 (redisplay_window): When recentering, and cursor vpos is -1
7289 after display, assume middle of window is in first line displayed
7290 in window, and display again.
7291 (fill_iterator_from_glyph_property): Assign image glyph
7292 the position of the first character having the glyph property.
7293
7294 * dispextern.h (IMAGE_ASCENT): Compute ascent of image.
7295 * xfns.c (x_draw_image): Use it.
7296 * xterm.c (x_produce_image_glyph): Use it.
7297
7298 * xterm.c (x_produce_image_glyph): Set iterator's pixel_width.
7299
7300 * Makefile.in: Extraneous #define of LIBXPM removed.
7301
7302 * xterm.c (x_produce_glyphs): Produce a STRETCH_GLYPH for tabs.
7303 (x_fill_stretch_glyph_string): Fill a glyph string from a
7304 stretch glyph.
7305 (x_compute_glyph_string_overhangs): Compute overhangs only
7306 for text glyph strings.
7307 (x_draw_stretch_glyph_string): Draw a stretch glyph string.
7308 (x_draw_glyph_string): Call it.
7309
7310 * dispextern.h (glyph_type): Add STRETCH_GLYPH.
7311 (struct glyph): Add sub-structure for stretchable glyphs.
7312 (GLYPH_EQUAL_P): Compare glyph type and u.val.
7313
7314 * xdisp.c (get_overlay_arrow_glyph_row): Put face code into
7315 #ifdef HAVE_FACES.
7316
7317 * xterm.c (x_produce_glyphs): Use ASCII face for spaces of a TAB.
7318
7319 * xdisp.c (fill_iterator_from_glyph_property): Renamed from
7320 setup_iterator_from_glyph_property. Don't do it for terminal
7321 frames.
7322
7323 * xterm.c (x_produce_image_glyph): Produce glyph for image
7324 that can't be loaded.
7325
7326 * xfns.c (lookup_image): If image can't be loaded, set its
7327 width and height so that we can draw a rectangle.
7328 (x_draw_image): Draw a rectangle for images that don't have
7329 a pixmap.
7330 (make_image): Set hash value.
7331 (image_spec_equal_p): Use image_spec_value.
7332
7333 * xterm.c (expose_frame): Don't try to redraw if basic faces
7334 haven't benn realized yet.
7335 (x_draw_image_glyph_string): Fill background only if image
7336 is not as tall as row.
7337
73381998-05-04 Gerd Moellmann <gerd@gnu.org>
7339
7340 * Makefile.in (LIBXPM): If not already defined, define to -lXpm.
7341 (LIBX)[HAVE_X11]: Add LIBXPM.
7342
7343 * xfns.c (xpm_image_p): Implementation of image type functions
7344 for XPM.
7345 (xpm_load): Ditto.
7346
7347 * dispextern.h (struct image): Add mask pixmap for XPM.
7348
7349 * xfns.c (x_draw_image): Handle images with masks.
7350
7351 * configure.in: --with-xpm added. Code detecting -lXpm added.
7352
7353 * config.in: Add HAVE_XPM.
7354
7355 * xfns.c (xbm_draw): Removed.
7356 (x_draw_image): Default implementation for drawing images.
7357 (xbm_keyword_index): Remove XBM_DEPTH.
7358 (xbm_format): Remove `:depth'.
7359 (xbm_image_spec_from_file): Removed to reduce consing.
7360 (xbm_load_image_from_file): Added for the same reason.
7361
7362 * xterm.c (x_fill_image_glyph_string): Don't set ybase of
7363 glyph string.
7364 (x_draw_image_glyph_string): Pass ybase to image draw function.
7365
7366 * xfns.c (make_image): Set default baseline.
7367
7368 * xterm.c (x_produce_image_glyph): Compute ascent of image
7369 from its height and baseline percentage.
7370
7371 * xfns.c (xbm_keyword_index): Add XBM_BASELINE.
7372 (xbm_format): Add description for `:baseline'.
7373 (xbm_image_spec_from_file): Add keywords from original spec to
7374 result.
7375 (xbm_load): Set baseline of image.
7376 (xbm_image_p): Check range for baseline.
7377
7378 * dispextern.h (struct image): Add member baseline.
7379
7380 * xdisp.c (dump_glyph_matrix): Handle image glyphs.
7381
7382 * term.c (produce_glyphs): Change assertion to allow DISP_IMAGE.
7383
7384 * xdisp.c (get_next_display_element): Do character translations
7385 only if delivering characters.
7386
73871998-05-03 Gerd Moellmann <gerd@gnu.org>
7388
7389 * dispextern.h (ITERATOR_AT_END_OF_LINE_P): Test for
7390 DISP_CHARACTER.
7391
7392 * xterm.c (x_produce_image_glyph): Poduce image glyphs.
7393 (x_produce_glyphs): Call x_produce_glyphs for DISP_IMAGE.
7394
73951998-05-02 Gerd Moellmann <gerd@gnu.org>
7396
7397 * xfns.c (prepare_image_for_display): Set image timestamp.
7398 (clear_image_cache): Clear images if image's timestamp +
7399 Vimage_eviction_seconds is > now.
7400 (syms_of_xfns): New variables image-eviction-seconds, and
7401 image-types.
7402 (add_image_format): Add to image-types.
7403 (xbm_load): Support new image spec format.
7404 (x_alloc_image_color): Allocate a color for an image.
7405
7406 * dispextern.h (struct image): Add timestamp.
7407
7408 * xfns.c (xbm_image_p): Allow bool-vectors, vectors of strings and
7409 vectors of bool-vectors.
7410 (xbm_lisp_object_from_file): Build new format image spec.
7411
74121998-05-01 Gerd Moellmann <gerd@gnu.org>
7413
7414 * xfaces.c (init_frame_faces): Initialize image cache.
7415 (free_frame_faces): Free it.
7416
7417 * xterm.c (x_delete_display): Don't free image cache.
7418
7419 * emacs.c (main): Call init_xfns.
7420
74211998-04-30 Gerd Moellmann <gerd@gnu.org>
7422
7423 * alloc.c (mark_object): Mark objects in image cache.
7424
7425 * xfns.c (x_set_internal_border_width): Correct call to
7426 widget_store_internal_border_width.
7427
7428 * widget.c (widget_store_internal_border): Return void.
7429
7430 * xfns.c (x_destroy_bitmap): Use xfree instead of free. Return
7431 void.
7432 (init_x_parm_symbols): Return void.
7433 (x_report_frame_params): Ditto.
7434 (x_set_border_pixel): Ditto.
7435 (syms_of_xfns): Ditto.
7436 (x_destroy_all_bitmaps): Use xfree instead of free.
7437
7438 * xterm.h (FRAME_X_IMAGE_CACHE): Access the image cache of a frame.
7439
7440 * xterm.c (x_term_init): Initialize image_cache of display info.
7441 (x_delete_display): Free image cache.
7442
7443 * xterm.h (struct x_display_info): Add image_cache.
7444
7445 * xfns.c (make_image_cache): Allocate a new image cache.
7446 (free_image_cache): Free an image cache.
7447 (make_image): Allocate an image.
7448 (free_image): Free an image.
7449
7450 * dispextern.h (struct image): Structure describing an image.
7451 (struct image_cache): Structure describing an image cache.
7452
74531998-04-29 Gerd Moellmann <gerd@gnu.org>
7454
7455 * xdisp.c (check_iterator_glyph_property): Return int. Value is
7456 non-zero if iterator is filled with something to return.
7457 (next_element_from_buffer): Immediately return if
7458 setup_iterator_from_glyph_prop has filled iterator with pixmap.
7459 (next_element_from_string): Likewise.
7460
7461 * xfaces.c (load_pixmap): Allow to pass null for W_PTR and H_PTR.
7462
7463 * dispextern.h (struct glyph): Add pixmap_id.
7464 (display_element_type): Add DISP_PIXMAP.
7465
7466 * xmenu.c (popup_get_selection): Use xmalloc/xfree instead of
7467 malloc/free.
7468
7469 * xfaces.c (clear_font_table): Free fonts not used by fontsets.
7470 (clear_face_cache): Call it.
7471
7472 * xterm.c (x_query_font): Don't look at empty font table slots.
7473 (x_compute_min_glyph_bounds): Likewise.
7474 (x_term_init): Initialize font_table to null.
7475 (x_load_font): Change allocation of font_info structures so
7476 that it is possible to free fonts.
7477
7478 * xfns.c (Fx_close_connection): Use xfree instead of free.
7479 Only free fonts from filled font table entries.
7480
7481 * xfaces.c (best_matching_font): Support use of scalable fonts.
7482 (Fface_scalable_fonts_mode): Toggle use of scalable fonts.
7483
7484 * xterm.h (struct x_display_info): Remove screen_dpi, add resx
7485 and resy.
7486 * xterm.c (x_term_init): Compute resx and resy.
7487
7488 * xfaces.c (split_font_name): Don't reject scalable fonts.
7489
7490 * xterm.c (x_list_fonts): Set code exclusing scalable fonts
7491 in #if 0.
7492
7493 * xfaces.c (xlfd_point_size): Return 0 for fonts whose real
7494 point size cannot be determined.
7495
7496 * xterm.h (FRAME_SMALLEST_CHAR_WIDTH): Return smallest character
7497 width over all fonts on a frame.
7498 (FRAME_SMALLEST_FONT_HEIGHT): Likewise for font height.
7499 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Use these
7500 macros.
7501
7502 * xterm.c (x_font_min_bounds): Moved here from xfaces.c.
7503 (x_compute_min_char_bounds): Formerly min_char_bounds in xfaces.c.
7504 (x_load_font): Use x_compute_min_char_bounds.
7505
7506 * xterm.h (struct x_display_info): New members smallest_char_width
7507 and smallest_font_height.
7508
75091998-04-28 Gerd Moellmann <gerd@gnu.org>
7510
7511 * dispextern.h (PREPARE_FACE_FOR_DISPLAY): Call function with
7512 the same name if GC of face is zero.
7513
7514 * dispextern.h (struct face): Member non_ascii_gc removed.
7515
7516 * xterm.c (x_get_char_font_and_encoding): Return face's font
7517 for characters < 0177 in default face. Prepare face for
7518 display before returning it.
7519 (x_produce_glyphs): Use it->charset.
7520 (x_get_char_font_and_encoding): Simplified.
7521 (x_encode_char): Remove parameter `font'.
7522
7523 * xfaces.c (choose_face_font): If registry from charset symbol
7524 doesn't contain a `-', make it a pattern by appending "*-*".
7525
7526 * xdisp.c (check_iterator_glyph_property): Adjust limit for
7527 glyph_check_pos computation to character boundary.
7528
75291998-04-27 Gerd Moellmann <gerd@gnu.org>
7530
7531 * fontset.h (FONT_INFO_FROM_ID): Return null if ID is invalid.
7532
7533 * xfaces.c (ascii_face_of_lisp_face): Get the id of the realized
7534 ASCII face for a given Lisp face id.
7535
7536 * xdisp.c (set_iterator_stop_pos): Take glyph_check_pos into
7537 account.
7538 (reseat_iterator): Set glyph_check_pos. Handle case where
7539 new position is < original position.
7540 (check_iterator_glyph_property): Handle glyph property in strings.
7541 (next_element_from_string): Call above function.
7542 (next_element_from_display_vector): Handle faces in glyphs.
7543 (get_next_display_element): Set face_id of glyphs for
7544 control chars to zero.
7545
7546 * Makefile.in (term.o): Add dependency on dispextern.h.
7547
7548 * xdisp.c (syms_of_xdisp): Add symbol `glyph'.
7549 (display_line): Handle marginal areas.
7550 (move_iterator_in_display_line_to): Likewise.
7551
7552 * xfaces.c (Finternal_make_lisp_face): Assign Lisp faces an id.
7553
7554 * xfaces.c (face_at_buffer_position): Don't merge with nil
7555 text property.
7556 (face_at_string_position): Ditto.
7557
7558 * dispextern.h (struct display_iterator): Use a stack of saved
7559 values instead of saving check positions etc. individually.
7560
7561 * xdisp.c (set_iterator_to_next): If end of Lisp string reached,
7562 maybe pop the iterator's stack.
7563 (save_iterator_settings): Push a value on iterator's stack.
7564 (get_overlay_strings_at_iterator_position): Use it.
7565 (restore_iterator_settings): Pop the stack.
7566 (set_iterator_to_next_overlay_string): Use it.
7567
7568 * xfaces.c (try_font_list): Use alternative font families.
7569
75701998-04-26 Gerd Moellmann <gerd@gnu.org>
7571
7572 * xfaces.c (Fset_face_font_sort_order): Set the order in which
7573 font selection matches fonts.
7574 (Fface_font_sort_order): Return the font sort order.
7575 (best_matching_font): Find best matching font based on sort order.
7576 (cmp_font_names): Sort by given sort order.
7577
7578 * dispextern.h (struct display_iterator): New member faces_p.
7579 * xdisp.c (init_iterator): Initialize it->faces_p.
7580 (compute_face_at_iterator_string_position): Use it.
7581 (compute_face_at_iterator_position): Use it.
7582 (init_iterator): Use it.
7583 (display_mode_line): Ditto.
7584
7585 * xdisp.c (get_next_display_element): Put code choosing a face
7586 when the charset changes in #ifdef HAVE_FACES.
7587
7588 * dispextern.h (FACE_FOR_CHARSET): Replacement for function
7589 lookup_face_for_charset.
7590
7591 * xfaces.c (free_font_names): Renamed from free_split_font_names.
7592 (free_all_realized_faces): Renamed from remove_all_realized_faces.
7593
75941998-04-25 Gerd Moellmann <gerd@gnu.org>
7595
7596 * xfaces.c (best_matching_font): Return the name of the best
7597 matching font in an array of font_name structures.
7598 (choose_face_font): Use it.
7599 (choose_face_fontset_font): Use it.
7600 (find_best_weight_font): If final font found has same weight as
7601 the font we started with, return the original font because it is a
7602 better match for the resolution of the display.
7603 (find_best_slant_font): Likewise.
7604 (merge_face_vector_with_property): Check more invalid attribute
7605 values.
7606 (lface_suitable_for_charset_p): Replaced by a macro with the same
7607 name in upper-case.
7608
76091998-04-24 Gerd Moellmann <gerd@gnu.org>
7610
7611 * dispextern.h (struct face): Member
7612 fontset_chosen_for_realization_p removed.
7613
7614 * xfaces.c (cache_face): If face->fontset >= 0, add face to the
7615 end of the collision list, so that we find more specific faces
7616 first.
7617 (lookup_face_for_charset): Look up a new face if face->fontset >=
7618 0, and charset != CHARSET_COMPOSITION.
7619
7620 * xfaces.c (split_font_name): Return zero if point size of font
7621 couldn't be computed.
7622 (realize_default_face): Use ASCII font of a fontset to determine
7623 font-related attributes of the default face.
7624 (face_fontset): Return fontset id for face family.
7625 (font_list): Additional parameter font_pattern. If non-nil,
7626 return fonts matching that pattern.
7627
76281998-04-23 Gerd Moellmann <gerd@gnu.org>
7629
7630 * xfaces.c (choose_face_fontset): If new fontset cannot be
7631 constructed, or fontset name cannot be split, return the id of the
7632 standard fontset.
7633
7634 * xterm.c (XTframe_up_to_date): Check that frame is an X frame.
7635 When Emacs starts, it may be called for the initial frame which
7636 isn't an X frame.
7637
7638 * dispextern.h (struct face): New members foreground_defaulted_p,
7639 background_defaulted_p.
7640 (struct face): Members `mask' and `cache' removed.
7641
7642 * xfaces.c (load_color): Set them.
7643 (free_face_colors): Check them.
7644 (xlfd_point_size): Return -1 if resolution or point size of
7645 font unknown.
7646
7647 * xfaces.c (free_font): Removed.
7648 (load_face_font_or_fontset): Renamed from load_font.
7649 (load_face_font_or_fontset): Use message2 instead of signalling.
7650 (load_color): Likewise.
7651 (load_pixmap): Likewise.
7652
7653 * xterm.h (struct x_display_info): Add screen_dpi.
7654 * xterm.c (x_term_init): Initialize it.
7655 * xfaces.c (xlfd_point_size): Use it.
7656 (split_font_name): Compute numeric XLFD_RESY.
7657 (cmp_font_names): Make fonts with an y-resolution more
7658 similar to that of the frame appear first in the result.
7659
7660 * xfaces.c (cache_face): If fontset_chosen_for_realization_p
7661 is set for the face to cache, add it to the end of the collision
7662 list.
7663 (try_font_list): If fonts for given family and registry cannot
7664 be found, first try to keep the registry, and choose a different
7665 family.
7666 (choose_face_font): Allow nfonts == 0.
7667 (try_font_list): Give up if no font matches given registry.
7668
76691998-04-22 Gerd Moellmann <gerd@gnu.org>
7670
7671 * xterm.c (x_get_char_font_and_encoding): Get font_info from
7672 font info id of the face.
7673
7674 * xfaces.c (load_font): Set font_info_id.
7675 (realize_face): Ditto.
7676
7677 * dispextern.h (struct face): Change member font_info to
7678 font_info_id.
7679
7680 * fontset.h (FONT_INFO_ID): Build an ID from a font_info pointer.
7681 (FONT_INFO_FROM_ID): Get a font_info pointer from an ID.
7682
7683 * xdisp.c (extend_face_to_end_of_line): If IT's current charset
7684 isn't ASCII, get the ASCII face before adding a space.
7685 (append_space): Likewise.
7686 (insert_left_trunc_glyphs): Initialize truncate_it's charset
7687 to -1 so that it will compute the right face for the truncation
7688 glyphs.
7689
7690 * xfaces.c (realize_face): Set
7691 face->fontset_chosen_for_realization_p.
7692 (lookup_face_for_charset): If fontset wasn't specified originally
7693 and new charset != CHARSET_COMPOSITION, get a new face for that
7694 charset.
7695
7696 * dispextern.h (struct face): New member
7697 fontset_chosen_for_realization_p_specified_p. Set to 1 when
7698 realize_face has chosen a fontset to display composite characters
7699 for a Lisp face not specifying a fontset.
7700
7701 * xdisp.c (extend_face_to_end_of_line): Move tests for default
7702 face and line already filled here. Don't do anything if current
7703 face hasn't a relief or has a background equal to the frame
7704 background.
7705
7706 * xfaces.c (split_font_name): Additional parameter numeric_p.
7707 Don't compute numeric values if it is non-zero.
7708 (choose_face_fontset): Call split_font_name with numeric_p == 0.
7709 (choose_face_fontset): Print a message if fontset contains a
7710 font whose name cannot be split into fields.
7711
77121998-04-21 Gerd Moellmann <gerd@gnu.org>
7713
7714 * xfaces.c (try_font_list): Try to load a list of fonts,
7715 possibly using less restrictive patterns.
7716 (choose_face_font): Use it.
7717
7718 * xterm.c (x_get_char_font_and_encoding): For charset !=
7719 CHARSET_ASCII use font_info of face if face hasn't a fontset set.
7720
7721 * dispextern.h (struct face): New member font_info.
7722
7723 * xfaces.c (load_font): Use FS_LOAD_FONT to load fonts for faces
7724 specifying a fontset as well as those not having a fontset.
7725 (free_font): Make it empty.
7726 (realize_face): Use changed load_font.
7727
7728 * xterm.c (x_get_char_font_and_encoding): If face doesn't
7729 fit for charset, get the right one.
7730
7731 * xfaces.c (load_font): Take frame and name parameter, return
7732 font.
7733 (free_font): Likewise.
7734 (split_font_name): Compute numeric values for height, swidth etc.
7735 (cmp_font_names): Use them.
7736 (find_best_width_font): Ditto.
7737 (find_best_height_font): Ditto.
7738 (find_best_weight_font): Ditto.
7739 (find_best_slant_font): Ditto.
7740 (lface_hash): Add weight, slant, swidth and relief to hash value.
7741 (lface_equal_p): Make it faster.
7742 (lface_from_symbol): Use assq_no_quit.
7743 (Fnote_default_face_changed): Removed.
7744 (cmp_font_names): Use strcmp instead of xstricmp.
7745 (face_charset_registries): Removed.
7746
77471998-04-20 Gerd Moellmann <gerd@gnu.org>
7748
7749 * frame.h (CHECK_FRAME): Give this macro a statement form.
7750 (CHECK_LIVE_FRAME): Ditto.
7751
7752 * xfaces.c (find_best_width_font): Find the best matching font
7753 for a given width.
7754 (find_best_height_font): Likewise for height.
7755 (find_best_weight_font): Likewise for weight.
7756 (find_best_slant_font): Likewise for slant.
7757 (choose_face_font): Use them.
7758 (get_lface_attributes): Always return frame-local face attrs.
7759 (Finternal_merge_in_global_face): Merge local face with
7760 global face attributes.
7761
7762 * xfaces.c (check_lface_attrs, check_lface): Check consistency of
7763 Lisp face attributes.
7764
77651998-04-19 Gerd Moellmann <gerd@gnu.org>
7766
7767 * xfaces.c (Finternal_set_lisp_face_attribute): Add :bold
7768 and :italic for compatibility.
7769 (Finternal_set_lisp_face_attribute_from_resource): Handle
7770 :bold and :italic. Handle boolean resource values for
7771 :underline and :italic.
7772
7773 * xfns.c (display_x_get_resource): Make it externally visible.
7774
7775 * xfaces.c (lface_from_symbol): Take a frame as parameter.
7776 If that frame is non-null, return the frame-local face.
7777 (Finternal_make_lisp_face): Additional frame argument.
7778 (lface_attributes): Get face attributes from global and frame-local
7779 definitions.
7780 (Finternal_lisp_face_equal_p): Additional frame argument.
7781 (merge_lisp_face_vector_with_property): Ditto.
7782 (Frealize_basic_faces): Removed.
7783 (Finternal_get_lisp_face_attribute): Additional frame argument.
7784 (Finternal_lisp_face_p): Ditto.
7785 (load_color) [MSDOS]: Removed because it isn't clear how
7786 to do this for MS-DOS.
7787
7788 * xfaces.c (lface_from_symbol): Get global face definition
7789 from face-global-alist.
7790
7791 * xfaces.c (Finternal_set_lisp_face_attribute): Allow `t'
7792 as values for :underline and :inverse-video.
7793 (Finternal_set_lisp_face_attribute): Allow nil values.
7794
77951998-04-17 Gerd Moellmann <gerd@gnu.org>
7796
7797 * xfaces.c (Finternal_make_lisp_face): Return Lisp face vector.
7798
7799 * xfaces.c (syms_of_xfaces): Add Vall_faces.
7800 (Finternal_make_lisp_face): Add new face to Vall_faces.
7801
7802 * xdisp.c (echo_area_display): Remove code recomputing faces.
7803 (redisplay_internal): Ditto.
7804 (init_iterator): Do it here.
7805
7806 * xfaces.c (choose_face_font): Check that swidth doesn't change
7807 for subusequent attributes.
7808 (xlfd_point_size): Return int.
7809
7810 * xdisp.c (redisplay_internal, echo_area-display): If realized
7811 faces have been cleared, call recompute_basic_faces.
7812
7813 * xfaces.c (recompute_basic_faces): Free realized faces. Reset
7814 face_attributes_changed_p.
7815 (remove_all_realized_faces): Remove all realized faces on
7816 all frames.
7817 (Finternal_set_lisp_face_attribute): Call remove_all_realized_faces.
7818
7819 * xdisp.c (redisplay_internal): If face attributes have been
7820 changed since the last redisplay, recompute basic faces.
7821 (echo_area_display): Ditto.
7822
7823 * xfaces.c (clear_face_gcs): Renamed from clear_realized_face_cache.
7824
7825 * xfaces.c (min_char_bounds): If face cache not yet present,
7826 don't try to get font dimensions from faces.
7827
7828 * xterm.c (x_frame_mode_line_height): If face cache not present
7829 set, return default height.
7830
7831 * alloc.c (mark_face_cache): Check for null faces. Correct
7832 index bug.
7833
7834 * dispextern.h (struct face): Renamed from struct rface. Member
7835 underline renamed underline_p. Make it a bit-field.
7836
7837 * xfaces.c (init_frame_faces): Allocate face cache.
7838 (free_frame_faces): Free face cache.
7839 (recompute_basic_faces): Realize basic faces only if face cache is
7840 allocated, i.e. after init_frame_faces has been called.
7841
7842 * frame.c (make_frame): Initialze face cache with null.
7843
7844 * xfaces.c (same_size_fonts): Removed.
7845
7846 * xterm.c (x_set_glyph_string_gc): Add post-condition
7847 s->gc != 0.
7848 (x_set_mouse_face_gc): Ditto.
7849 (x_set_mode_line_face_gc): Ditto.
7850
7851 * xfaces.c (realize_default_face): Return int. Value is
7852 zero if frame params don't contain enough information to
7853 realize the default face.
7854 (realize_basic_faces): Ditto.
7855 (init_frame_faces): Realize basic faces.
7856
7857 * xfns.c (x_set_font): First store real font name in frame
7858 parameters, then call recompute_basic_faces.
7859
7860 * xfaces.c (recompute_basic_faces): Call realize_basic_faces.
7861
78621998-04-16 Gerd Moellmann <gerd@gnu.org>
7863
7864 * xfaces.c (syms_of_xfaces): Correct calls to defsubr.
7865
7866 * xfns.c (Fx_face_fixed_p): Removed.
7867 (Fx_list_fonts): Moved to xfaces.c.
7868
7869 * xfaces.c (compute_face_at_buffer_pos): Renamed to
7870 face_at_buffer_position. Parameter charset removed; always
7871 compute face for CHARSET_ASCII.
7872 (face_at_string_position): Renamed from
7873 compute_face_at_string_pos. Parameter charset removed; always
7874 compute for CHARSET_ASCII.
7875 (lookup_face_for_charset): Take frame parameter instead of
7876 face_cache.
7877 (lookup_face): Ditto.
7878 (compute_char_face): Renamed from compute_glyph_face.
7879
7880 * xdisp.c (init_iterator): Initialize charset member.
7881 (reseat_iterator_to_string): Ditto.
7882 (get_charset_at_buffer_position): Determine charset at
7883 buffer position in current_buffer.
7884 (reseat_iterator): Call above function.
7885 (compute_face_at_iterator_position): Call
7886 compute_face_at_buffer_pos.
7887 (compute_face_at_iterator_string_position): Call
7888 compute_face_at_string_pos.
7889 (get_face_from_id): Removed.
7890 (get_face_from_cursor_pos): Call compute_face_at_buffer_pos.
7891 Call get_charset_at_buffer_position.
7892 (reseat_iterator): Determine face if charset at pos differs
7893 from iterator's charset.
7894 (reseat_iterator_to_glyph_pos): Removed.
7895
7896 * xfaces.c (compute_face_at_bufpos): Remove parameter charset.
7897 Determine charset from buffer position.
7898 (compute_string_char_face): Renamed to compute_face_at_string_pos.
7899 (compute_face_at_bufpos): Renamed to compute_face_at_buffer_pos.
7900
7901 * dispextern.h (struct display_iterator): Add member charset.
7902
79031998-04-15 Gerd Moellmann <gerd@gnu.org>
7904
7905 * xfaces.c (compute_char_face): Removed.
7906
7907 * xdisp.c (get_overlay_arrow_glyph_row): Use compute_glyph_face
7908 with new parameter list.
7909
7910 * xfaces.c (region_face): Removed.
7911 (allocate_face): Removed.
7912 (copy_face): Ditto.
7913 (face_eql): Removed.
7914 (intern_face): Removed.
7915 (clear_face_cache): Removed.
7916 (load_font): Ditto.
7917 (unload_font): Ditto.
7918 (load_color): Ditto.
7919 (unload_color): Ditto.
7920 (new_computed_face): Ditto.
7921 (intern_computed_face): Ditto.
7922 (ensure_face_ready): Ditto.
7923 (merge_faces): Ditto.
7924 (compute_base_face): Ditto.
7925 (merge_face_list): Ditto.
7926 (Fmake_face_internal): Removed.
7927 (Fset_face_attribute_internal): Ditto.
7928 (face_name_id_number): Removed.
7929 (Fframe_face_alist): Ditto.
7930 (Fset_frame_face_alist): Ditto.
7931 (Finternal_next_face_id): Ditto.
7932
7933 * xterm.h (struct x_output): Remove computed_faces, and
7934 param_faces. Remove macros accessing them.
7935
7936 * xfaces.c: Entirely new face implementation added.
7937
79381998-04-11 Gerd Moellmann <gerd@gnu.org>
7939
7940 * dispextern.h (struct glyph_pos): Member `bufpos' renamed
7941 `charpos'.
7942
79431998-04-10 Gerd Moellmann <gerd@gnu.org>
7944
7945 * xterm.c (x_scroll_bar_move): Clear only regions not covered by
7946 scroll bar window to reduce flickering. Clear entire height.
7947
7948 * xdisp.c (move_iterator_vertically_backward): Set iterator's
7949 current_x and hpos to zero after moving to previous line
7950 start.
7951
79521998-04-03 Gerd Moellmann <gerd@gnu.org>
7953
7954 * frame.h (FRAME_FACE_CACHE): Access to a frame's face cache.
7955
7956 * xfaces.c (xlfd_point_size): Compute relative point size of
7957 fonts from font and frame resolution.
7958 (sort_fonts): New function to sort fonts, temporarily setting
7959 font_frame to the frame in effect.
7960 (xlfd_point_size): Take additional frame parameter to be able
7961 to get at the display's resolution.
7962
7963 * xterm.c (x_setup_relief_colors): Use WHITE_PIX_DEFAULT and
7964 BLACK_PIX_DEFAULT.
7965 (x_setup_relief_color): Use FRAME_X_SCREEN instead of default
7966 screen of display.
7967
79681998-03-31 Gerd Moellmann <gerd@gnu.org>
7969
7970 * xfaces.c (choose_face_fontset): Instantiate fontsets.
7971
7972 * fontset.h: Add external declarations for Vfontset_alias_alist
7973 and Vglobal_fontset_alist.
7974
7975 * xfaces.c (merge_lisp_face_vector_with_property): Simplified.
7976 (realize_default_face): If frame parameters contain an artificial
7977 font name naming a fontset, set the family of the default face to
7978 the fontset name given by the registry.
7979
7980 * Makefile.in (alloc.o): Add dependency to dispextern.h.
7981
79821998-03-22 Gerd Moellmann <gerd@gnu.org>
7983
7984 * alloc.c (mark_object): Add function prototype. Add cast to
7985 Lisp_Object pointer in call to mark_object for symbol names
7986 because this otherwise gives a warning from gcc 2.8.1.
7987 (mark_face_cache): Mark Lisp objects in realized faces.
7988
79891998-03-19 Gerd Moellmann <gerd@gnu.org>
7990
7991 * frame.h (struct frame): Add member face_cache.
7992
7993 * alloc.c (mark_object): Mark face cache.
7994 (mark_face_cache): Mark Lisp faces in face cache of frame.
7995
7996 * frame.c (make_frame): Initialize face_cache.
7997 (Fdelete_frame): Free it.
7998
79991998-03-18 Gerd Moellmann <gerd@gnu.org>
8000
8001 * xfaces.c: Very first skeleton of functions for face realization,
8002 face merging, face cache etc.
8003
8004 * dispextern.h (struct rface): Realized faces. Will replace
8005 struct face when tested.
8006 (struct face_cache): Realized face caches.
8007
8008 * xdisp.c (init_iterator): Initialize area member of display
8009 iterator.
8010
80111998-03-17 Gerd Moellmann <gerd@gnu.org>
8012
8013 * xterm.c (x_append_glyph): Use it->area to store glyphs.
8014
8015 * dispextern.h (struct display_iterator): New member area.
8016
8017 * xterm.c (note_overwritten_text_cursor): Note when the text
8018 cursor of a window is overwritten.
8019
8020 * xdisp.c (set_cursor_from_row): If PT is not found in the
8021 row, display the cursor at the start of the row.
8022
8023 * dispnew.c (direct_output_forward_char): Call
8024 set_cursor_from_row.
8025
8026 * xdisp.c (setup_iterator_overlay_strings_from_glyph_pos): If
8027 position is not in an overlay string, set iterator's position and
8028 method explicitly so.
8029 (set_cursor_from_row): Correct cursor position calculation.
8030 Make it externally visible.
8031 (redisplay_window): Call set_cursor_from_row so that there is only
8032 one place where the cursor position is calculated from a current
8033 row.
8034
8035 * dispextern.h (struct display_iterator): New member
8036 overlay_strings_at_end_processed_p.
8037
8038 * xdisp.c (check_iterator): Perform sanity checks on
8039 display_iterators.
8040 (next_element_from_buffer): Check for overlay strings at ZV.
8041
80421998-03-16 Gerd Moellmann <gerd@gnu.org>
8043
8044 * buffer.c (init_buffer_once): Add left_margin_width and
8045 right_margin_width to buffer_local_flags.
8046
8047 * dispnew.c (margin_glyphs_to_reserve): Function computing
8048 number of glyphs to reserve for a marginal area.
8049 (adjust_glyph_matrix): Call it.
8050 (adjust_frame_glyphs_for_frame_redisplay): Return if frame
8051 is not alive.
8052
8053 * window.c (Fset_window_margins): Allow floats.
8054
8055 * buffer.c (syms_of_buffer): Add buffer-local variables
8056 left-margin-width and right-margin-width. Add defaults
8057 default-left-margin-width and default-right-margin-width.
8058
8059 * buffer.h (struct buffer): New members left_margin_width
8060 and right_margin_width.
8061
8062 * window.c (Fset_window_margins): Make window the last and
8063 optional argument.
8064
8065 * xterm.c (x_draw_glyphs): Compute x-positions for rows with
8066 flag no_marginal_areas_p differently.
8067 (x_clear_end_of_line): Ditto.
8068 (x_draw_glyph_string_relief): Compute width of relief differently
8069 for rows with flag no_marginal_areas_p.
8070
8071 * dispnew.c (update_window_line): Update marginal areas only
8072 for rows that don't have no_marginal_areas_p set.
8073
8074 * xdisp.c (display_mode_line): Set row's flag no_marginal_areas_p.
8075 (display_menu_bar): Ditto.
8076
8077 * dispextern.h (struct glyph_row): New member no_marginal_areas_p.
8078
8079 * dispnew.c (adjust_glyph_matrix): Compute glyph pointers for
8080 marginal areas in window-based redisplay.
8081
8082 * dispextern.h (struct glyph_matrix): New members
8083 left_margin_glyphs and right_margin_glyphs.
8084
80851998-03-15 Gerd Moellmann <gerd@gnu.org>
8086
8087 * minibuf.c (read_minibuf_unwind): Return Lisp_Object.
8088
8089 * charset.c (non_ascii_char_to_string): Use char type parameters
8090 because the function is used that way from outside. Use unsigned
8091 char internally.
8092
8093 * window.c (change_window_height): Return void.
8094 (make_dummy_parent): Return void.
8095 (init_window_once): Return void.
8096 (syms_of_window): Ditto.
8097 (keys_of_window): Ditto.
8098 (delete_window): Correct return with and without value.
8099
8100 * buffer.c (record_buffer): Return void.
8101
8102 * marker.c (unchain_marker): Return void.
8103
8104 * window.c (unshow_buffer): Return void.
8105 (replace_window): Ditto.
8106 (delete_window): Ditto.
8107
8108 * term.c (delete_glyphs_hook): Void return type.
8109 (ring_bell_hook): Ditto.
8110 (set_terminal_window_hook): Ditto.
8111
8112 * sysdep.c (init_sigio): Return void.
8113
8114 * xterm.c (x_set_window_size): Return void.
8115 (x_calc_absolute_position): Ditto.
8116 (x_set_offset): Ditto.
8117 (x_focus_on_frame): Ditto.
8118 (x_unfocus_frame): Ditto.
8119 (x_make_frame_visible): Ditto.
8120 (x_make_frame_invisible): Ditto.
8121 (x_iconify_frame): Ditto.
8122 (x_destroy_window): Ditto.
8123 (x_wm_set_window_state): Ditto.
8124 (x_wm_set_icon_pixmap): Ditto.
8125 (x_wm_set_icon_position): Ditto.
8126 (x_initialize): Ditto.
8127 (x_error_quitter): Ditto.
8128 (x_destroy_window): Use xfree instead of free.
8129
8130 * keyboard.c (clear_waiting_for_input): Return void.
8131
8132 * xterm.c (x_wm_set_size_hint): Return void.
8133 (x_raise_frame): Ditto.
8134 (refreshicon): Ditto.
8135 (x_error_catcher): Ditto.
8136 (x_clear_errors): Ditto.
8137
8138 * keyboard.c (record_asynch_buffer_change): Return void.
8139
8140