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