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