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