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