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