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