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