(GC_SETJMP_WORKS): Define.
[bpt/emacs.git] / src / ChangeLog
CommitLineData
88faab89
GM
12000-03-27 Gerd Moellmann <gerd@gnu.org>
2
c1005d06
GM
3 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
4 to DEC_TEXT_POS and INC_TEXT_POS.
5
6 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
7 with parameter MULTIBYTE_P.
8
9 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter
10 MULTIBYTE_P.
11
7439e5b9
GM
12 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
13 buffers because it looks for multibyte character sequences which
14 don't exist in unibyte text.
15
d9c545da
GM
16 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
17
18 * xfaces.c (register_color, unregister_colors, unregister_colors)
19 [DEBUG_X_COLORS]: New functions.
20 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
21
22 * xfns.c (x_set_cursor_color): Get color reference counts right.
23
24 * xterm.c (x_copy_color): New function.
25 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
26
27 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
28 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
29 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
30 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
31 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
32 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
33 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
34 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
35 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
36 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
37
38 * category.c, data.c, syntax.c, print.c: Use new macro names
39 for handling per-buffer variables.
40
41 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
42 instead of MAX_BUFFER_LOCAL_VARS.
43 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
44
45 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
46
88faab89
GM
47 * xfns.c (x_specified_cursor_type): New function.
48 (x_set_cursor_type): Use it.
49
50 * buffer.h (struct buffer): Add cursor_type.
51
d80f42b7
SM
522000-03-26 Stefan Monnier <monnier@cs.yale.edu>
53
54 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
88faab89
GM
55 (print_partial_compiled_pattern, re_compile_fastmap): Handle new
56 opcode.
d80f42b7
SM
57 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
58 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
59 executing it as well as when popping it off the stack to find infinite
60 loops in non-greedy repetition operators.
61
89e80928
GM
622000-03-26 Gerd Moellmann <gerd@gnu.org>
63
3d4ff2dd
GM
64 * doc.c (Qfunction_documentation): New variable.
65 (syms_of_doc): Initialize Qfunction_documentation.
66 (Fdocumentation): If FUNCTION is a symbol with non-nil
67 `function-documentation' property, return a documentation derived
68 from that.
69
bd96bd79
GM
70 * buffer.c (syms_of_buffer): Add default-cursor-type.
71 (init_buffer_once): Don't let cursor_type have a local value
72 in every buffer.
73
19d1bc27
GM
74 * xterm.c (x_display_and_set_cursor): Choose cursor depending
75 on buffer-local value of cursor_type.
76 (x_draw_bar_cursor): Add parameter WIDTH.
77
78 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
79 (init_buffer_once): Set default cursor_type value to t.
80 Mark cursor_type as local everywhere.
81 (syms_of_buffer): New per-buffer variable cursor-type.
82
89e80928
GM
83 * buffer.h (struct buffer): Remove member local_var_flags,
84 add local_flags.
85 (MAX_BUFFER_LOCAL_VARS): New macro.
86 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
87 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
88 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
89 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
90
91 * print.c (print_object): Use new macros for per-buffer
92 variables.
93
94 * category.c (Fset_category_table): Use new macros for per-buffer
95 variables.
96
97 * buffer.c (buffer_permanent_local_flags): Make a char array.
98 (max_buffer_local_idx): New variable.
99 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
100 for new handling of per-buffer variables.
101 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
102 (init_buffer_once): Initialize per-buffer vars differently.
103 Set max_buffer_local_idx.
104
105 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
106 variables.
107
108 * lread.c (defvar_per_buffer): Use new macros for per-buffer
109 variables.
110
111 * data.c (do_symval_forwarding, store_symval_forwarding)
112 (find_symbol_value, set_internal, default_value, Fset_default)
113 (Fkill_local_variable, Flocal_variable_p): Use new macros for
114 per-buffer variables.
115
116 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
117
9a0dd3dc
GM
1182000-03-24 Gerd Moellmann <gerd@gnu.org>
119
b68c375f
GM
120 * xterm.c (x_term_init): Unblock input around call1 of
121 Qvendor_specific_keysyms.
122
9a0dd3dc
GM
123 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
124 (find_defun_start): Consider an open parenthesis in column 0
125 a defun start only if open_paren_in_column_0_is_defun_start is set.
126 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
127
7973e637
SM
1282000-03-24 Stefan Monnier <monnier@cs.yale.edu>
129
130 * eval.c (Fautoload): Add entry in load-history (if after dump).
131 * lread.c (load-history): Update docstring.
132
39210e90
GM
1332000-03-24 Gerd Moellmann <gerd@gnu.org>
134
135 * indent.c (Fvertical_motion): Always use the current buffer.
136 Temporarily change the window's buffer, if necessary.
137
72db3ab5
GM
1382000-03-23 Gerd Moellmann <gerd@gnu.org>
139
140 * xterm.c (fast_find_position): Make sure not to consider rows
141 not visible in the window.
142
990b2375
SM
1432000-03-22 Stefan Monnier <monnier@cs.yale.edu>
144
145 * regex.c (enum syntaxcode): Provide default for non-Emacs.
146 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
147
ff4df011
JR
1482000-03-22 Jason Rumney <jasonr@gnu.org>
149
150 * w32menu.c (single_submenu): Set help string to NULL if none.
151 (w32_menu_show): Set help string correctly.
152 (add-menu-item): Set help string in MIIM_DATA for menu item.
153 Load SetMenuItemInfoA explicitly.
154 (w32_menu_display_help): New function.
155
156 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
157 (QCdata): Moved to xdisp.c.
158
159 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
160 (Vw32_charset_to_codepage_alist): Removed.
161 (Vw32_charset_info_alist): New variable.
162 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312,
163 chinesebig5, oem, easteurope, turkish, baltic, russian, arabic,
164 greek, hebrew, thai, johab, mac, unicode]): New symbols.
165 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
166 with TODO comment.
167 (w32_codepage_for_font): Use Vw32_charset_info_alist.
168 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
169 Define Vw32_charset_info_alist and w32_charset symbols.
170
1712000-03-22 Jason Rumney <jasonr@gnu.org>
172
173 * makefile.nt (w32bdf.obj): Update dependencies.
174
175 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
176
177 * w32fns.c: Include fontset.h after dispextern.h.
178 (Fx_create_frame): Do not create fontset.
179 (w32_load_system_font): Doc fix.
180 (Fx_close_connection): Free full_name if it is not shared.
181
182 * w32term.c: Include fontset.h after dispextern.h.
183 (x_get_glyph_face_and_encoding): New parameter two_byte_p. Callers
184 updated.
185 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
186 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
187 (w32_font_is_double_byte): New function, needs body.
188 (x_append_glyph): Set glyph->glyph_not_available_p.
189 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
190 it->charset. If it->multibyte_p is zero and it->c is a multibyte
191 character, convert it to a unibyte character.
192 (struct glyph_string): Delete member `charset'.
193 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
194 calculating it is found.
195 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
196 the case that per char metric is not available correctly.
197 (x_fill_glyph_string): Handle the case that the specific glyph is
198 not available correctly.
199 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
200 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
201 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
202 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
203 fontset. Don't call FS_LOAD_FONT.
204
439d5cb4
KR
2052000-03-22 Ken Raeburn <raeburn@gnu.org>
206
207 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
208 (INT_LISPLIKE): New macro.
209 (NULL_INTERVAL_P): Use it.
210 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT,
211 SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT,
212 GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
213
214 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
215 explicit references to "parent" field of struct interval and
216 associated unclean type conversions.
217 * intervals.c (create_root_interval, root_interval, rotate_right,
218 rotate_left, balance_possible_root_interval, split_interval_right,
219 split_interval_left, interval_start_pos, find_interval,
220 next_interval, previous_interval, update_interval,
221 adjust_intervals_for_insertion, delete_node, delete_interval,
222 adjust_intervals_for_deletion, merge_interval_right,
223 merge_interval_left, reproduce_tree, graft_intervals_into_buffer,
224 copy_intervals_to_string): Likewise.
225 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
226 Likewise.
227 * syntax.c (update_syntax_table): Likewise.
228
229 * intervals.c (reproduce_tree_obj): New function, like
230 reproduce_tree but takes a Lisp_Object for the parent. Declare
231 with prototype.
232 (graft_intervals_into_buffer): Use it when appropriate.
233 (reproduce_tree): Declare with prototype.
234 (balance_possible_root_interval): Check that the parent is a lisp
235 object before trying to examine its type.
236
ee1c5b21
GM
2372000-03-22 Gerd Moellmann <gerd@gnu.org>
238
239 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
240 as strings only if both are known to be strings.
241
242 * s/openbsd.h (LIBS_TERMCAP): Undef.
243
1fb352e0
SM
2442000-03-21 Stefan Monnier <monnier@cs.yale.edu>
245
246 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
247 definitions for non-Emacs compilation.
248 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
249 outside of `#ifdef emacs'.
250 (print_partial_compiled_pattern): Update.
251 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
252 (re_compile_fastmap): Merge handling of charset and charset_not (for
253 emacs and non-emacs compilation as well).
254 Similarly for (not)categoryspec and (not)syntaxspec.
255 Don't use the fastmap when reaching `anychar' since the added
256 complexity is not justified.
257 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
258 and (not)syntaxspec. Merge (not)categoryspec.
259
fdaa1f77
KH
2602000-03-22 Kenichi Handa <handa@etl.go.jp>
261
ff1a0d8e
KH
262 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P,
263 FACE_FOR_CHAR): Define them differently for the configuration of
264 --without-x.
fdaa1f77 265
d152fb46
DL
2662000-03-21 Dave Love <fx@gnu.org>
267
268 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
269 doc string.
270
d2cafc8c
GM
2712000-03-21 Gerd Moellmann <gerd@gnu.org>
272
273 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
274 (lface_fully_specified_p): Don't check contents of
275 LFACE_FONT_INDEX because that attribute is optional.
276 (realize_x_face): Remove now unwarranted xassert.
277
9111d4b5
KH
2782000-03-21 Kenichi HANDA <handa@etl.go.jp>
279
280 The following changes are to make font selection based on
281 characters, not charset. In addition, they recover fontset
282 facilities while utilizing the new font selection mechanism.
283
6c4bfdc0
KH
284 * Makefile.in (fontset.o): Depend on dispextern.h.
285
286 * alloc.c (mark_face_cache): Don't mark face->registry.
287
9111d4b5
KH
288 * dispextern.h (struct glyph): New member glyph_not_available_p.
289 Use 22 bits for face_id.
290 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
291 (struct face): Delete member registry, new member ascii_face.
292 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
293 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
294 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
295 (struct it): Delete member charset, new member
296 glyph_not_available_p.
297
298 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
299 (struct fontset_info, struct fontset_data): Structs removed.
300 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset,
301 Vglobale_fontset_alist, font_idx_temp): Externs removed.
302 (fs_load_font, fs_query_fontset): Adjusted for new argument.
303 (fs_free_face_fontset, fontset_font_pattern,
304 face_suitable_for_char_p, face_for_char,
305 make_fontset_for_ascii_face): Extern them.
306 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
307 (FS_LOAD_FACE_FONT): New macro.
308
309 * fontset.c: All codes rewritten or adjusted for the change of
310 fontset implementation. Now fontset is represented by char table.
311 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl): Variables
312 removed.
313 (my_strcasecmp): Function removed.
314 (Vfontset_table, next_fontset_id, Vdefault_fontset): New
315 variables.
316 (AREF, ASIZE): New macros.
317 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME,
318 FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF,
319 FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
320 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset,
321 fontset_id_valid_p, font_family_registry, fontset_name,
322 fontset_ascii, free_face_fontset, face_suitable_for_char_p,
323 face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
324 New functions.
325 (fs_load_font): New arg FACE. Caller changed.
326 (fs_query_fontset): Argument changed. Caller changed.
327 (Fquery_fontset): call fs_query_fontset.
328 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
329 Functions removed.
330 (clear_fontset_elements, check_registry_encoding,
331 check_fontset_name): New functions.
332 (syms_of_fontset): Set char-table-extra-slots property of fontset
333 to 3. Staticpro and initialize Vfontset_table and
334 Vdefault_fontset. Defsubr fontset_font and fontset_list.
335
336 * frame.h (struct frame): Member `fontset_data' removed.
337 (FRAME_FONTSET_DATA): Macro removed.
338
339 * frame.c (make_frame): Don't allocate f->fontset_data.
340 (Fdelete_frame): Don't free f->fontset_data.
341
6c4bfdc0
KH
342 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
343
9111d4b5
KH
344 * xdisp.c (charset_at_position): Function removed.
345 (init_iterator): Don't set member charset of struct `it'.
346 (handle_face_prop, reseat_to_string, set_iterator_to_next,
347 next_element_from_display_vector, insert_left_trunc_glyphs):
348 Likewise.
349 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
350 FACE_FOR_CHARSET.
351 (get_next_display_element, append_space,
352 extend_face_to_end_of_line): Likewise.
353
354 * xfaces.c (Qx_charset_registry, Vface_default_registry):
355 Variables removed.
356 (clear_font_table, frame_update_line_height, load_face_font):
357 Adjusted for the change of fontset implementation.
358 (load_face_fontset_font): Function removed.
359 (pixel_point_size): New function.
360 (font_list): Argument type changed. Caller changed.
361 (LFACE_FONT): New macro.
362 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
363 (set_lface_from_font_name): Type of arg FONTNAME is changed to
364 Lisp_Object. Determine the font name by actually loading a font
365 by the specified pattern. Set LFACE_FONT (lface) to the specified
366 pattern. Even if a font is not found, don't try alternatives.
367 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
368 (set_font_frame_param): If `font' is specified in lface, use it.
369 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
370 (lface_same_font_attributes_p): Likewise.
371 (make_realized_face): Arguent changed. Caller changed. Set
372 face->ascii_face to face itself.
373 (free_realized_face): Free face->fontset if face is for ASCII.
374 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p,
375 deduce_unibyte_registry, x_charset_registry): Functions removed.
376 (free_realized_multibyte_face): New function.
377 (lookup_face, lookup_named_face, lookup_derived_face): Argument
378 changed. Caller changed.
379 (try_font_list): Argument type changed.
380 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
381 (choose_face_font): Argument changed. Handle fontset properly.
382 (choose_face_fontset_font): Function removed.
383 (realize_default_face, realize_named_face): Don't remove the
384 former face here.
385 (realize_face): Argument changed. Caller changed. Remove face
386 with the arg former_face_id in advance. Load font for the new
387 face.
388 (realize_x_face): Argument changed. Caller changed. For a
389 multibyte character, share fontset with base_face. For a single
390 byte character, make a new realized fontset. Don't load a font
391 here.
392 (realize_tty_face): Argument changed. Caller changed.
393 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
394 (face_at_buffer_position): Don't check multibyte_p for returning
395 DEFAULT_FACE_ID.
396 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
397 FACE_SUITABLE_FOR_CHARSET_P.
398 (syms_of_xfaces): Remove code for Qx_charset_registry and
399 Vface_default_registry.
400
6c4bfdc0
KH
401 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
402 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
9111d4b5
KH
403 (x_per_char_metric): Don't try FONT->default_char. Even if
404 pcm->width is zero, glyph bits may exist.
405 (x_encode_char): Always initialize char2b->byte1.
406 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
407 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller
408 changed.
409 (x_append_glyph): Set glyph->glyph_not_available_p.
410 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
411 it->charset. Handle the case that per char metric is not
412 available. If it->multibyte_p is zero and it->c is a multibyte
413 character, convert it to a unibyte character.
414 (struct glyph_string): Delete member `charset'.
415 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
416 the case that per char metric is not available correctly.
417 (x_fill_glyph_string): Handle the case that the specific glyph is
418 not available correctly.
419 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
420 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
421 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
422 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
423 fontset. Don't call FS_LOAD_FONT.
424
425 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
426 (x_create_tip_frame): Likewise.
427 (Fx_close_connection): Free full_name of font_info.
428
429 * fns.c (optimize_sub_char_table): New function.
430 (Foptimize_char_table): New function.
431 (syms_of_fns): Defsubr Soptimize_char_table.
432
b33dd3b0
GM
4332000-03-20 Gerd Moellmann <gerd@gnu.org>
434
435 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
436 only if buffer is displayed in some window.
437
438 * xdisp.c (handle_single_display_prop): Initialize local `value'.
439 (try_window_reusing_current_matrix): Don't call scroll run
440 function if run's current and desired position are the same;
441 this prevents cursor flickering.
442
4e8a9132
SM
4432000-03-19 Stefan Monnier <monnier@cs.yale.edu>
444
445 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
446
447 * regex.c (RE_STRING_CHAR): New macro.
448 (GET_CHAR_AFER_2): Remove.
449 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
450 (enum re_opcode_t): Remove on_failure_jump_exclusive.
451 (print_partial_compiled_pattern, re_compile_fastmap)
452 (re_match_2_internal): Remove on_failure_jump_exclusive.
453 (regex_compile): Turn optimizable P+ loops into PP*, so that the
454 optimization only need to work for * (ie. can use of_keep_string_jump).
455 Remove the special case for .*\n since it is now covered by the general
456 optimization.
457 (re_search_2): Don't bother with `room'.
458 (skip_one_char): New function.
459 (skip_noops): Simplify since `memory' is not needed any more.
460 (mutually_exclusive_p): Restructure slightly to use `switch' and
461 add handling for "all" remaining cases.
462 (re_match_2_internal): Change on_failure_jump_smart to use
463 on_failure_keep_string_jump (and redirect the end-of-loop jump)
464 rather than on_failure_jump_exclusive.
465
2136fdd4
GM
4662000-03-19 Gerd Moellmann <gerd@gnu.org>
467
468 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
469 number of bits per RGB because it's everywhere used as the depth
470 of the visual.
471
472 * term.c (calculate_costs): Remove code dealing with X frames.
473
e53ae11c
RS
4742000-03-19 Richard M. Stallman <rms@caffeine.ai.mit.edu>
475
476 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
477
d7b511c4
GM
4782000-03-18 Gerd Moellmann <gerd@gnu.org>
479
480 * lread.c (read_integer): Unread the last char not consumed.
481
16b5d424
GM
4822000-03-17 Gerd Moellmann <gerd@gnu.org>
483
484 * xterm.c (x_update_window_cursor): Don't update in frames
d7b511c4 485 which are in the process of being deleted.
16b5d424 486
1fa28578
GM
4872000-03-16 Gerd Moellmann <gerd@gnu.org>
488
83488cce
GM
489 * Makefile.in (mostlyclean): Add `*.core'.
490 (clean): Add `bootstrap-emacs'.
491
1fa28578
GM
492 * lread.c (read_integer): New function.
493 (read1): Support read syntax #o, #x, #b, #r.
494
99633e97
SM
4952000-03-15 Stefan Monnier <monnier@cs.yale.edu>
496
1fa28578
GM
497 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
498 make sure POINTER_TO_OFFSET gives the same value before and after
499 PREFETCH. Use `dfail' to guarantee "atomic" matching.
99633e97
SM
500 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
501 (debug): Now only active if > 0 rather than if != 0.
502 (DEBUG_*): Update for the new meaning of `debug'.
1fa28578
GM
503 (print_partial_compiled_pattern): Add missing `succeed' case. Use
504 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
505 in `succeed_n', `jump_n' and `set_number_at'.
99633e97
SM
506 (store_op1, store_op2, insert_op1, insert_op2)
507 (at_begline_loc_p, at_endline_loc_p): Add prototype.
1fa28578
GM
508 (group_in_compile_stack): Move to after its arg's types are
509 declared and add a prototype.
99633e97 510 (PATFETCH): Define in terms of PATFETCH_RAW.
1fa28578
GM
511 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)'
512 wrapper.
99633e97 513 (QUIT): Redefine as a nop except for NTemacs.
1fa28578
GM
514 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
515 indentation of the greedy-op and shy-group code.
99633e97
SM
516 (at_(beg|end)line_loc_p): Fix argument's types.
517 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
518 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
519 (MATCHING_IN_FIRST_STRING): Remove.
1fa28578
GM
520 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
521 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
522 QUIT unconditionally.
99633e97 523
699238d9
GM
5242000-03-15 Gerd Moellmann <gerd@gnu.org>
525
526 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
527 a sole completion.
528
529 * process.c (send_process): Add a hint that the function
530 can call Lisp code to its comment.
531
532 * lread.c (load_dangerous_libraries): New variable.
533 (Vbytecomp_version_regexp): New variable.
534 (safe_to_load_p): New function.
535 (Fload): Handle files not compiled with Emacs specially.
536 (syms_of_lread): New Lisp variable load-dangerous-libraries.
537
34e23e5a
GM
5382000-03-14 Gerd Moellmann <gerd@gnu.org>
539
9c763cca
GM
540 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
541
542 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
543 support functions only if HAVE_X11R6_XIM is defined.
544 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
545
546 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
547
548 * xfns.c (X_I18N_INHIBITED): Don't define.
549 (create_frame_xic): Remove conditional compilation on
550 X_I18N_INHIBITED.
551 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
552
553 * config.in (HAVE_X_I18N): Moved here from xterm.h.
554 (HAVE_X11R6_XIM): Define.
555
556 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
557
34e23e5a
GM
558 * xterm.c (x_term_init): Add support for X resource `synchronous'.
559 If set, call XSynchronize.
560
66f0296e
SM
5612000-03-13 Stefan Monnier <monnier@cs.yale.edu>
562
34e23e5a
GM
563 * regex.c: Declare a new type `re_char' used throughout the code
564 for the string char type. It's `const unsigned char' to match the
565 rest of Emacs. Consistently make sure all pointers to strings use
566 it and make sure all pointers into the pattern use `unsigned
567 char'.
66f0296e 568 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
34e23e5a
GM
569 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
570 code duplication.
66f0296e
SM
571
572 * charset.h (GET_CHAR_AFTER_2): Remove.
573 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
574
854a025c
KR
5752000-03-12 Ken Raeburn <raeburn@gnu.org>
576
577 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
578 variable before the invocation of YMF_PASS_LDFLAGS, in case both
579 of them try to use backquotes.
580
b9d2c7e2
DL
5812000-03-12 Dave Love <fx@gnu.org>
582
583 * unexelf.c: Restore changes of 1999-10-19.
584 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
585 fix its type and alignment; copy it from current process.
586
5e5dff44
GM
5872000-03-12 Gerd Moellmann <gerd@gnu.org>
588
9b2f3c38
GM
589 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
590 has been found. Fix bug not computing timer's predecessor.
591
9172b88d
GM
592 * fileio.c (Fread_file_name): Handle case that DIR contains a
593 file name.
594
e1cff360
GM
595 * window.c (Fsave_window_excursion): Doc fix.
596
5e5dff44
GM
597 * xfns.c (x_defined_color): Rewritten to use
598 x_allocate_nearest_color.
599
e411ce4b
EZ
6002000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
601
602 * msdos.c (vga_installed): New function, code moved from
603 dos_set_window_size.
604 (Qbar, Qcursor_type, outside_cursor): New variables.
605 (syms_of_msdos): Intern and staticpro them.
606 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
607 shape used outside Emacs when called for the first time.
608 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
609 cursor shape used outside Emacs.
610 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
611 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
612 type has changed.
613 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
614 parameters specify the cursor. Make qreverse a global
615 variable (renamed to Qreverse).
616
80460654
GM
6172000-03-09 Gerd Moellmann <gerd@gnu.org>
618
619 * fns.c (Fy_or_n_p): Cancel busy-cursor.
620
95cd4c40
SM
6212000-03-08 Stefan Monnier <monnier@cs.yale.edu>
622
623 This is a big redesign of failure-stack and register handling, prompted
624 by bugs revealed when trying to add shy-groups. Overall, what happened
625 is that loops are now structured a little differently, groups can be
626 shy and the code is a little simpler.
627
628 * regex.h: Update the copyright.
629 (RE_SHY_GROUPS): New value.
630 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
631 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
632
80460654
GM
633 * regex.c (enum re_opcode_t): Remove jump_past_alt,
634 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
635 on_failure_jump_(exclusive, loop and smart). Also fix the comment
636 for (start|stop)_memory since they now only take one argument (the
637 second has becomes unnecessary).
638 (print_partial_compiled_pattern): Adjust for changes in
639 re_opcode_t.
640 (print_compiled_pattern): Use %ld to printf long ints and flush to
641 make debugging a little easier.
95cd4c40
SM
642 (union fail_stack_elt): Make the integer unsigned.
643 (struct fail_stack_type): Add a `frame' element.
644 (INIT_FAIL_STACK): Init `frame' as well.
645 (POP_PATTERN_OP): New macro for re_compile_fastmap.
646 (DEBUG_PUSH, DEBUG_POP): Remove.
647 (NUM_REG_ITEMS): Remove.
648 (NUM_NONREG_ITEMS): Adjust.
80460654
GM
649 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
650 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
95cd4c40 651 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
80460654
GM
652 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP): New
653 macros.
654 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
655 address pushed is not the destination of the jump but the source
656 of it instead.
95cd4c40
SM
657 (NUM_FAILURE_ITEMS): Remove.
658 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
80460654
GM
659 registers before the actual failure point). Don't hardcode any
660 meaning for str==NULL anymore.
95cd4c40 661 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
80460654
GM
662 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
663 Remove.
95cd4c40
SM
664 (REG_UNSET_VALUE): Use NULL (why not?).
665 (compile_range): Remove declaration since it doesn't exist.
666 (struct compile_stack_elt_t): Remove inner_group_offset.
667 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
668 (regex_grow_registers): Remove dead code.
669 (FIXUP_ALT_JUMP): New macro.
80460654
GM
670 (regex_compile): Add shy-groups Change loops to use
671 on_failure_jump_smart&jump instead of
672 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
673 initial (dummy_failure_)jump. Remove c1_base (looks like unused
674 variable to me). Use `jump' instead of `jump_past_alt' and don't
675 bother with push_dummy_failure in alternatives since it is now
676 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
677 emacs' for (re)allocating the stack.
678 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
679 from loop when bufp->can_be_null rather than jumping to `done'.
680 Avoid jumping backwards so as to ensure termination. Use
681 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
682 backreferences. Remove dead code in handling of `anychar'.
95cd4c40 683 (skip_noops, mutually_exclusive_p): New functions taken from the
80460654
GM
684 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
685 improve mutually_exclusive_p to handle ".+\n".
686 (lowest_active_reg, highest_active_reg,
687 NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
688 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
689 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
690 variables. Push register (in `start_memory') on the stack rather
691 than storing it in old_reg(start|end). Remove the cycle detection
692 from `stop_memory', replaced by the use of on_failure_jump_loop
693 for greedy loops. Add code for the new on_failure_jump_<foo>.
694 Remove ad-hoc code in `on_failure_jump' to push more registers in
695 the case of a loop. Take out code from `maybe_pop_jump' into
696 separate functions and adapt it to the semantics of
697 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
698 and push_dummy_failure. Remove dummy_failure handling and
699 handling of `failures to jump to on_failure_jump' (this last one
700 was already dead code, it seems).
701 (group_match_null_string_p, alt_match_null_string_p)
702 (common_op_match_null_string_p): Remove.
95cd4c40 703
7397acc4
DL
7042000-03-08 Dave Love <fx@gnu.org>
705
706 * config.in: Don't depend on __STDC__ for volatile.
707 Add POINTER_TYPE, PTR, PROTOTYPES.
708
709 * hftctl.c, strftime.c: Use PROTOTYPES.
710 * eval.c (find_handler_clause): Likewise.
711
712 * mem-limits.h: Use POINTER_TYPE.
713
714 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
715 (memory_warnings): Declare using POINTER_TYPE.
716
5e91ff9e
GM
7172000-03-08 Gerd Moellmann <gerd@gnu.org>
718
feab4fba
GM
719 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
720
25edb08f
GM
721 * xdisp.c (display_echo_area): Temporarily inhibit garbage
722 collection.
723
5e91ff9e
GM
724 * xfns.c: Remove obsolete code in #if 0.
725 (Fx_focus_frame): New function.
726
a735b7e1
KH
7272000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
728
729 * coding.c (coding_category_name): Add coding-category-utf-8,
730 coding-category-utf-16-be, coding-category-utf-16-le.
731 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
732 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
733 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
734 (detect_coding_utf_8): New function.
735 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
736 UTF_16_LOW_SURROGATE_P): New macros.
737 (detect_coding_utf_16): New function
738 (detect_coding_mask): When priorities are specified, skip any
739 categories that have `nil' coding-system. Fix bug of returning
740 wrong mask when PRIORITIES is specified and detect_coding_XXX()
741 returns a mask not set in PRIORITIES.
742 (detect_eol_type_in_2_octet_form): New function.
743 (detect_eol): selects detect_eol_type_XXX to call according to
744 cooding->category_idx.
745 (detect_coding_system): Remove `nil' coding-system in the result.
746 (Fupdate_coding_systems_internal): Update all coding-categories.
747
748 * coding.h (CODING_CATEGORY_IDX_UTF_8,
749 CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE): New
750 macros.
751 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY,
752 CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
753 CODING_CATEGORY_IDX_UTF_16_LE.
754 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE,
755 CODING_CATEGORY_MASK_UTF_16_LE): New macros.
756 (CODING_CATEGORY_MASK_ANY): Include the above macros.
757 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
758
9994cc69
GM
7592000-03-07 Gerd Moellmann <gerd@gnu.org>
760
e9b4e5ff
GM
761 * doc.c (Fdocumentation_property): If value is not a string,
762 and doesn't refer to etc/DOC, evaluate it to obtain a string.
763
f7daf1e1
GM
764 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
765 close the display with XtCloseDisplay. This caused a bus error
766 on OpenWindows.
767
9994cc69
GM
768 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
769 complete but not unique.
770
4336c705
GM
7712000-03-06 Gerd Moellmann <gerd@gnu.org>
772
18bb0684
GM
773 * process.c (send_process): Remove local variable `procname' that
774 might become invalid when a GC happens. Instead, access the
775 process name slot directly.
776
4336c705
GM
777 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
778 orig_height if set.
779
780 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
781 orig_height if set.
782
515d0d0e
EZ
7832000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
784
785 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
786 glyph matrices have been freed.
787
100b3cbb
GM
7882000-03-05 Gerd Moellmann <gerd@gnu.org>
789
50df5e5a 790 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
6178bc23 791 (bootstrap-temacs): Set LC_ALL to C like for temacs.
50df5e5a
GM
792
793 * xfns.c (QCdata): Moved to xdisp.c.
794
795 * xdisp.c (QCdata): Moved here from xfns.c.
796 (syms_of_xdisp): Initialize QCdata.
797
798 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
799
800 * window.c (coordinates_in_window): Use
801 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
802 FRAME_INTERNAL_BORDER_WIDTH.
803
100b3cbb 804 * xdisp.c (try_window_id): Recompute unchanged information if
4336c705 805 it is obviously invalid.
100b3cbb
GM
806
807 * xterm.c (x_term_init): Create a colormap if not using the
808 default visual.
809
810 * xterm.h (select_visual): Change prototype.
811
812 * xfns.c (select_visual): Rewritten. Recognize user-specified
813 visual classes.
814 (visual_classes): New variable.
815
64d739c4
GM
8162000-03-04 Gerd Moellmann <gerd@gnu.org>
817
818 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
819 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
820 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
821 (x_decode_color): Don't handle allocation of white and black
822 specially.
823 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
824 XtNcolormap resources.
825 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
826 (Fx_create_frame): Initialize color members of x_output structure.
827 (xpm_load): Pass colormap to XPM lib.
828
829 * xfaces.c (x_free_colors): Access colormap of frame using
830 FRAME_X_COLORMAP. Be paranoid about freeing black and white
831 when default colormap is used.
832
833 * xterm.c (x_term_init): Set Colormap member of x_display_info
834 structure. Copy colormap if resource `privateColormap' is
835 specified (PseudoColor only).
836 (x_setup_relief_color): Access colormap of frame using
837 FRAME_X_COLORMAP.
838
839 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
840 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
841
c3cee013
JR
8422000-03-04 Jason Rumney <jasonr@gnu.org>
843
844 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
845 other non-platform-specific equivalents.
64d739c4 846 [WINDOWSNT]: Include w32term.h, fontset.h and define X
c3cee013
JR
847 specific functions and macros as their w32 equivalents where
848 non-platform-specifics are not available.
849 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
850 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
851 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
852 (frame_update_line_height): Use macros to access f->output_data.
853 (defined_color): Remove FIXME comments; fixed.
854 (x_face_list_fonts, prepare_face_for_display): Put X specifics
855 into #ifdef blocks. Add WINDOWSNT blocks.
856 (Fx_list_fonts): Use macros for accessing font data.
857 (set_lface_from_font_name): Different default fonts for X and
858 WINDOWSNT.
859 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
860 scalable for backward compatibility.
64d739c4 861 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
c3cee013
JR
862 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
863
64d739c4 864 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
c3cee013
JR
865 syms_of_w32faces.
866
867 * makefile.nt (w32faces.obj): Remove.
868 (xfaces.obj): Add.
869
807cc41c
JR
8702000-03-03 Jason Rumney <jasonr@gnu.org>
871
872 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
873 correct parameters.
874
0007072a
KR
8752000-03-03 Ken Raeburn <raeburn@gnu.org>
876
877 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
878 standard ELF definitions here if the system header does not.
879
71a6ba55
GM
8802000-03-03 Gerd Moellmann <gerd@gnu.org>
881
882 * xterm.c (PER_CHAR_METRIC): Removed.
883 (x_per_char_metric_1, x_default_char): New functions.
884 (x_per_char_metric): If font's default char is invalid, return
885 metrics of a suitably chosen usable default char.
886 (x_draw_glyph_string_foreground): If font has an invalid default
64d739c4
GM
887 char, replace occurrences of unprintable chars with a suitably
888 chosen usable default char.
71a6ba55 889
900fa1f1
GM
8902000-03-02 Gerd Moellmann <gerd@gnu.org>
891
42f55fe0
GM
892 * xterm.c (note_mouse_highlight): Return quickly if frame's
893 glyph matrices have been freed.
894
895 * dispnew.c (free_glyphs): Block input while freeing matrices.
896
900fa1f1
GM
897 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
898
899 * xterm.c (x_alloc_lighter_color, x_setup_relief_color): Use
900 x_free_colors.
901
902 * dispextern.h (x_free_colors): Add prototype.
903
904 * xfaces.c (x_free_colors): New function.
905 (unload_color, free_face_colors): Use it.
906
2f950292
EZ
9072000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
908
909 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
910
911 * window.c [MSDOS]: Include msdos.h.
912
54d04320
DL
9132000-03-02 Dave Love <fx@gnu.org>
914
915 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
916
917 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
918 set C_OPTIMIZE_SWITCH for gcc.
919
0ba93ac4
KH
9202000-03-02 Kenichi Handa <handa@etl.go.jp>
921
922 * coding.c (coding_save_composition): Be sure to allocate
923 composition data area in coding even if there's no composition in
924 the current run.
925
a2bc11d4
JR
9262000-03-01 Jason Rumney <jasonr@gnu.org>
927
928 * w32term.c: Equivalent changes to those made to xterm.c on
929 2000-02-25 and 2000-02-24.
930
931 * w32fns.c: Equivalent changes to those made to xfns.c on
932 2000-02-25 and 2000-02-21.
933
934 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
935 correct line-end convention is followed.
936
937 * w32menu.c [HAVE_BOXES]: Remove #undef.
938 (single_keymap_panes): Remove code for simulating checkmarks.
939 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
940 Remove code for drawing simulated checkmarks.
941 (w32_menu_show): make unibyte help string correctly.
942 (add_menu_item): draw standard Windows checkmarks. Draw radio
943 buttons as radio buttons if possible.
944
72d19d75
GM
9452000-03-01 Gerd Moellmann <gerd@gnu.org>
946
2df636f4
GM
947 * sysdep.c (start_of_text): Don't define this function for NetBSD
948 with ELF.
949
950 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
951 Don't define.
952 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
953 (LINKER): Don't undef if __NetBSD__ is defined.
954
955 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
956
957 * fileio.c [__NetBSD__]: Define `unix'.
958
72d19d75
GM
959 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
960
ed4d0512
GM
9612000-02-29 Gerd Moellmann <gerd@gnu.org>
962
50b1039f
GM
963 * atimer.c (start_atimer): Don't abort when timers are stopped.
964 (append_atimer_lists): New function.
965 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
966 arbitrary lists of stopped and running atimers.
967
ed4d0512
GM
968 * atimer.c (cancel_atimer): Handle canceling an atimer when
969 some timers are stopped.
970
971 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
972 after canceling it.
973
974 * fns.c (maybe_resize_hash_table): Handle case of new size
975 coming out as being the same as old size.
976
387023ee
JR
9772000-02-27 Jason Rumney <jasonr@gnu.org>
978
979 * makefile.nt: Add atimer.h to dependencies.
980 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
981 * w32console.c: Only disable window system features for dispextern.h
982 (initialize_w32_display): Build a display info for the console.
983 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
984 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
985 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
986 as 2 button mice.
987 * w32gui.h (struct W32FontStruct): Revert last change after change
988 to xdisp.c.
989 * w32menu.c (single_submenu): Set up help string.
990 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
991 (w32_dialog_show): Set up help string.
992 * w32term.c (w32_display_info_for_display): Remove unused function.
993 (w32_draw_bitmap): Use pre-built bitmaps.
994 (w32_initialize_display_info): New function to initialize parts of
995 display info that are common to both GUI and console frames.
996 (w32_term_init): Use w32_initialize_display_info. Do not set
997 Vw32_num_mouse_buttons here, as it is not called for console
998 frames. Build bitmaps for indicating truncated lines etc.
999 (x_delete_display): Destroy pre-built bitmaps.
1000 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
1001 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
1002
4516715a
DL
10032000-02-27 Dave Love <fx@gnu.org>
1004
1005 * lisp.h: Add a bunch of prototypes.
1006
171ca836
KH
10072000-02-26 Kenichi Handa <handa@etl.go.jp>
1008
1009 * keyboard.c (read_char): Set `usec' correctly.
1010
4013921d
KH
10112000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
1012
1013 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
1014 `lambda', set reg[RRR] to the map index.
1015 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
1016 reg[RRR] to 0. Otherwise, set it to -1.
1017
9244a058
GM
10182000-02-25 Gerd Moellmann <gerd@gnu.org>
1019
2df636f4 1020 * emacs.c (main): Remove code snippet commented out with `//'.
9244a058 1021
f43d79c1
GM
10222000-02-25 Richard M. Stallman <rms@caffeine.ai.mit.edu>
1023
1024 * fileio.c (Ffile_symlink_p): If result starts with a `/'
1025 and contains a `:', prepend `/:'.
1026
1027 * window.c (select_window_1): If selected_window is nil,
1028 don't "swap out" the buffer's point.
1029 (Fset_window_configuration): Set selected_window to nil
1030 before calling Fselect_window.
1031 (unshow_buffer): Don't set point in buffer from window's point
1032 if another more recently selected window also shows the buffer.
1033
bed0c171
GM
10342000-02-25 Gerd Moellmann <gerd@gnu.org>
1035
449c3c52
GM
1036 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
1037
f5b58615
GM
1038 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
1039 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
1040 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay): New
1041 variables.
1042 (DEFAULT_BUSY_CURSOR_DELAY): New define.
1043 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
1044 (hide_busy_cursor): New functions.
1045 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
1046
1047 * minibuf.c (read_minibuf): Cancel busy-cursor.
1048
1049 * keyboard.c (command_loop_1): Call start_busy_cursor before
1050 Fcommand_execute and cancel_busy_cursor after it.
1051 (timer_check): Remove busy-cursor code.
1052 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
1053 cursor timer.
1054
1055 * process.c (wait_reading_process_input): Remove busy-cursor code.
1056
1057 * eval.c (Fsignal): Call cancel_busy_cursor instead of
1058 Fx_hide_busy_cursor.
1059
1060 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
1061 Remove prototyoes.
1062 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
1063
1064 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
1065
1066 * xterm.c (XTread_socket): Remove busy-cursor code.
1067
4eb8436f
GM
1068 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
1069 (build_frame_matrix_from_leaf_window): Put code handling
1070 glyph row's not being a slice of a frame row in #if 0.
1071 (sync_window_with_frame_matrix_rows): New function.
1072 (frame_row_to_window): New function.
1073 (mirror_line_dance): Handle copies between windows.
1074
3cb65b0e
GM
1075 * lread.c (Fload): Use `xfree' instead of `free'.
1076 (init_obarray): Use `xmalloc' instead of `malloc'.
1077
bed0c171
GM
1078 * window.c (Fset_window_buffer): Set WINDOW to the window
1079 after decoding.
2add4349
GM
1080 (coordinates_in_window): Take frame's internal border width
1081 into account.
bed0c171 1082
42088c12
GM
10832000-02-24 Gerd Moellmann <gerd@gnu.org>
1084
1085 * xterm.c (x_display_and_set_cursor): Display cursor of
1086 non-selected windows depending on the setting of
1087 cursor_in_non_selected_windows.
1088
1089 * xdisp.c (cursor_in_non_selected_windows): New variable.
1090 (syms_of_xdisp): DEFVAR_BOOL it.
1091
d1e103b2
GM
10922000-02-23 Gerd Moellmann <gerd@gnu.org>
1093
723e779c
GM
1094 * data.c (Fstring_to_number): If number is greater than what
1095 fits into an integer, return a float.
1096
d1e103b2
GM
1097 * eval.c (specbind): Remove references to
1098 keyword_symbols_constant_flag.
1099
1100 * data.c (keyword_symbols_constant_flag): Removed.
1101 (Fmakunbound, set_internal, syms_of_data): Remove references to
1102 keyword_symbols_constant_flag.
1103
1104 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
1105
214f877f
KH
11062000-02-23 Kenichi Handa <handa@etl.go.jp>
1107
1108 * syntax.c (multibyte_syntax_as_symbol): New variable.
1109 (syms_of_syntax): Declare it as a Lisp variable.
1110 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
1111 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
1112 nonzero, treat all multibyte characters as symbol.
42088c12 1113 (init_syntax_once): Give syntax `word' to all multibyte
214f877f
KH
1114 characters.
1115
130adcb7
EZ
11162000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
1117
3cb65b0e 1118 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
130adcb7
EZ
1119 a deleted frame.
1120
17cbbf95
GM
11212000-02-21 Gerd Moellmann <gerd@gnu.org>
1122
1123 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
1124
1125 * xfns.c (x_window_to_frame, x_any_window_to_frame)
1126 (x_non_menubar_window_to_frame): Check the busy-cursor window.
1127
beb0bc36
DL
11282000-02-21 Dave Love <fx@gnu.org>
1129
1130 * frame.c (Vmouse_position_function): New variable.
1131 (Fmouse_position): Use it.
1132 (syms_of_frame): Install it.
1133
1134 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
1135
1d92afcd
GM
11362000-02-20 Gerd Moellmann <gerd@gnu.org>
1137
1138 * fileio.c (Finsert_file_contents): Unbind the binding of
1139 standard-output done by temp_output_buffer_setup.
329eed9f
GM
1140
1141 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
1142 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
1143 (specbind, unbind_to): Handle most common case of non-constant
1144 symbol with trivial value specially.
1145
1146 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
1147
2d06696f
RS
11482000-02-20 Richard M. Stallman <rms@caffeine.ai.mit.edu>
1149
1150 * data.c (Fmake_variable_buffer_local): Doc fix.
1151 Init found_for_buffer to 0.
1152 (Fmake_variable_frame_local): If the variable has already
1153 been buffer-local, set the check_frame field.
1154
1d4311c3
EZ
11552000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
1156
1157 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
1158 produced for CODING_MODE_LAST_BLOCK requires.
1159
2dc95ddd
DL
11602000-02-18 Dave Love <fx@gnu.org>
1161
1162 * keyboard.c (echo_keystrokes): Remove declaration.
1163 (Vecho_keystrokes) New variable.
1164 (read_char, record_menu_key, read_key_sequence): Use it to allow
1165 use of float value.
1166 (syms_of_keyboard): Change Vecho_keystrokes declaration.
1167
1168 * lread.c: Undef feature selection macros before defining.
1169
f0930f35
GM
11702000-02-18 Gerd Moellmann <gerd@gnu.org>
1171
1172 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
1173 for symbols other than the symbol in question.
1174
e3d4de90
DL
11752000-02-17 Dave Love <fx@gnu.org>
1176
1177 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
1178
0b378936
GM
11792000-02-17 Gerd Moellmann <gerd@gnu.org>
1180
d621caf7
GM
1181 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
1182
0b378936
GM
1183 * alloc.c (enum mem_type): Compile unconditionally.
1184
3b451f74
EZ
11852000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
1186
1187 * xfaces.c (tty_defined_color): Don't return faulire indication
1188 for unspecified-fg and unspecified-bg pseudo-colors.
1189
10689a01
GM
11902000-02-17 Gerd Moellmann <gerd@gnu.org>
1191
1216f5e4
GM
1192 * alloc.c (mark_object): Don't mark symbol names in pure space.
1193 (gc_sweep): Don't unmark symbol names in pure space.
1194
1195 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
1196 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
1197 [GC_MARK_STACK]: New defines.
1198 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
1199 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
1200
1201 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
1202
1203 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
1204 allocate_buffer instead of xmalloc.
1205
1206 * alloc.c (toplevel): Include setjmp.h.
1207 (PURE_POINTER_P): New define.
1208 (enum mem_type) [GC_MARK_STACK]: New enumeration.
1209 (Vdead) [GC_MARK_STACK]: New variable.
1210 (lisp_malloc): Add parameter TYPE, call mem_insert if
1211 GC_MARK_STACK is defined.
1212 (allocate_buffer): New function.
1213 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
1214 (free_float) [GC_MARK_STACK]: Set type to Vdead.
1215 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
1216 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
1217 (MEM_NIL) [GC_MARK_STACK]: New define.
1218 (struct mem_node) [GC_MARK_STACK]: New structure.
1219 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
1220 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
1221 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
1222 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
1223 (mark_stack) [GC_MARK_STACK]: New functions.
1224 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
1225 (clear_marks): Removed.
1226 (gc_sweep): Set free conses' car, free floats' type, free
1227 symbols' function to Vdead. Use lisp_free to free buffers.
1228 (init_alloc_once): Initialize Vdead.
1229 (survives_gc_p): Return non-zero for pure objects.
1230
1231 * alloc.c: Add comments throughout the file.
1232
2503c8b1
GM
1233 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
1234 that unblocks alarms.
1235
8389e1e2
GM
1236 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
1237 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
1238 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
1239
10689a01
GM
1240 * frame.c (make_frame): Set frame initiallly to `garbaged'.
1241
bfc17d18
KH
12422000-02-17 Kenichi Handa <handa@etl.go.jp>
1243
4a09dee0
KH
1244 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
1245 avoid infinite error signaling. Allocate sufficient memory for
1246 eol_str in the case that eoltype is Lisp_Int.
bfc17d18 1247
2b927d02
SM
12482000-02-17 Stefan Monnier <monnier@cs.yale.edu>
1249
1250 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
1251 depends on the previous behavior.
1252
b49cb764
GM
12532000-02-16 Gerd Moellmann <gerd@gnu.org>
1254
1255 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
1256
99e95407
GM
12572000-02-15 Gerd Moellmann <gerd@gnu.org>
1258
1259 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
1260
1261 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
b49cb764 1262 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
99e95407
GM
1263 write(2).
1264
6ffd3cf7
RS
12652000-02-15 Richard M. Stallman <rms@gnu.org>
1266
1267 * data.c (set_internal): Don't make variable buffer-local
1268 if within a let-binding for the same buffer.
1269 (let_shadows_buffer_binding_p): New function.
1270
1271 * eval.c (specbind): For buffer-local value,
1272 record the current buffer also.
1273 (unbind_to): Cope with that change.
1274
cad53475
GM
12752000-02-15 Gerd Moellmann <gerd@gnu.org>
1276
1277 * window.c (Fsave_window_excursion): Doc fix.
1278
1aa963c8
SM
12792000-02-15 Stefan Monnier <monnier@cs.yale.edu>
1280
1281 * syntax.c (back_comment): Make sure we only consider comment-starters
1282 of the relevant style and return -1 in case of a failure to find the
1283 beginning of the comment.
1284 (Fforward_comment): If back_comment fails, go back to the position just
1285 after the comment-end.
1286 (scan_lists): Add comment describing a very minor bug.
1287
b9b84fd3
SM
12882000-02-14 Stefan Monnier <monnier@cs.yale.edu>
1289
1290 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
1291 `completion-regexp-list' in the docstring.
1292
3a28db80
DL
12932000-02-14 Dave Love <fx@gnu.org>
1294
1295 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
1296
fb4a568d
SM
12972000-02-14 Stefan Monnier <monnier@cs.yale.edu>
1298
1299 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
1300 to Emacs' syntax. Also fix the comment about set/not-set meanings
1301 since Emacs syntax is not the value 0 any more.
1302 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
1303 since it's now part of RE_SYNTAX_EMACS.
1304
1063ebb5
DL
13052000-02-12 Dave Love <fx@gnu.org>
1306
1307 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on
1308 Alpha.
1309
fb07a302
GM
13102000-02-12 Gerd Moellmann <gerd@gnu.org>
1311
1312 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
1313
aaf2320c
DL
13142000-02-12 Dave Love <fx@gnu.org>
1315
1316 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
1317
1318 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
fb07a302
GM
1319 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
1320 * s/hpux.h: Don't define HAVE_VFORK.
aaf2320c
DL
1321
1322 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
1323
1324 * s/nextstep.h: Don't define HAVE_ALLOCA.
1325
1326 * config.in: Add vfork bits.
1327
eedf8bde
GM
13282000-02-12 Gerd Moellmann <gerd@gnu.org>
1329
1330 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
1331 unwind function to undo the effect of stopping atimers.
1332
1333 * keyboard.c (bind_polling_period): Stop all timers except
1334 poll_timer.
1335
1336 * atimer.c (stopped_atimers): New variable.
1337 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
1338 New functions.
1339
1340 * atimer.h (stop_other_atimers, run_all_atimers)
1341 (unwind_stop_other_atimers): Add function prototypes.
1342
1343 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
1344
8476c2f8
KR
13452000-02-11 Ken Raeburn <raeburn@gnu.org>
1346
1347 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
1348 library may depend on jpeg.
1349 (atimer.o): Depends on atimer.c.
1350
0e85e4a3
KH
13512000-02-11 Kenichi Handa <handa@etl.go.jp>
1352
1353 * insdel.c (del_range_1): Call update_compositions.
1354 (del_range_both): Call update_compositions just once..
1355
97fa0cc8
DL
13562000-02-10 Dave Love <fx@gnu.org>
1357
1358 * xfns.c (create_frame_xic): Fix initialization of automatic
1359 aggregates for pcc.
1360
25566a3c
KH
13612000-02-09 Kenichi Handa <handa@etl.go.jp>
1362
1363 * ccl.c (CCL_MAKE_CHAR): New macro.
1364 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
1365 registers by CCL_MAKE_CHAR before calling translate_char.
1366 <CCL_TranslateCharacterConstTbl> Likewise.
1367
69da54ba
DL
13682000-02-08 Dave Love <fx@gnu.org>
1369
1370 * lread.c (__EXTENSIONS__): Define.
1371
f7136ee8
GM
13722000-02-08 Gerd Moellmann <gerd@gnu.org>
1373
1374 * puresize.h (BASE_PURESIZE): Increase to 650000.
1375
7768790b
EZ
13762000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
1377
1378 * msdos.c (XMenuActivate): Turn off the cursor after displaying
1379 the help message.
1380
38fd211b
EZ
13812000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
1382
1383 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
1384 md, mh, mb, mr, and me to the fake termcap entry.
1385
66e4690f
KR
13862000-02-06 Ken Raeburn <raeburn@gnu.org>
1387
1388 * sound.c (sound_cleanup): Don't call device close routine if the
1389 function pointer is null.
1390
a75dfea0
AI
13912000-02-06 Andrew Innes <andrewi@gnu.org>
1392
1393 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
1394 around image definitions and prototypes.
1395 (gamma_correct) [WINDOWSNT]: New prototype.
1396
1397 * w32term.c (x_make_frame_visible): Replace call to
1398 input_poll_signal with poll_for_input.
1399
1400 * window.c [WINDOWSNT]: Include w32term.h.
1401
1402 * xdisp.c [WINDOWSNT]: Include w32term.h.
1403
1404 * makefile.nt: Add dependencies on w32gui.h.
1405 (OBJ1): Include atimer.obj.
1406 ($(BLD)\atimer.obj): New dependency rule.
1407
1408 * w32.c (sigmask): New function (does nothing).
1409 (sigunblock): Ditto.
1410
1411 * frame.c [WINDOWSNT]: Include w32term.h.
1412
1413 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
1414
1415 * lread.c (syms_of_lread): Fix literal newlines.
1416
1417 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
1418 the string constant limit (2048 bytes) in MSVC.
1419 (main): Ditto.
1420
59ddecde
GM
14212000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
1422
1423 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit
1424 area.
1425 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
1426 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
1427 dispatch the event.
1428
07590973
DL
14292000-02-04 Dave Love <fx@gnu.org>
1430
1431 * fileio.c: Remove some unused vars.
1432 (_GNU_SOURCE): Define (for euidaccess).
1433
1434 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
1435
1436 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
1437 gcpro1, gcpro2.
1438 (read_minibuf): Deal with allow_props correctly.
1439
649351f9
EZ
14402000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
1441
1442 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
1443
66e4690f 14442000-02-03 Ken Raeburn <raeburn@gnu.org>
f1b9c7c1
KR
1445
1446 * search.c (compile_pattern): If a cache entry has a nil regexp,
1447 fill in that entry instead of clobbering a previously cached
1448 string regexp.
1449
66e4690f 14502000-02-02 Ken Raeburn <raeburn@gnu.org>
15c9cf81
KR
1451
1452 * puresize.h (BASE_PURESIZE): Increase to 610000.
1453
d240a249
GM
14542000-02-02 Gerd Moellmann <gerd@gnu.org>
1455
1456 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
1457 can GC.
1458
ca91fb26
KH
14592000-02-02 Kenichi Handa <handa@etl.go.jp>
1460
25660570
KH
1461 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
1462 instead of incrementing ic directly.
1463 <CCL_WriteExprConst> Likewise.
1464 <ccl_set_expr>: Set ic to jump_address.
1465
ca91fb26
KH
1466 * fileio.c (e_write): Fix the handling of
1467 CODING_FINISH_INSUFFICIENT_SRC.
1468
2ede9689
DL
14692000-02-01 Dave Love <fx@gnu.org>
1470
1471 * editfns.c (Fpropertize): Doc fix.
1472
1473 * process.c (Fstart_process): Doc fix.
1474
1475 * eval.c: Fix various doc strings not to duplicate information
1476 from help-manyarg-func-alist.
1477
1478 * window.c (Fset_window_margins): Don't make interactive. Doc
1479 fix.
1480
1481 * doc.c (Vhelp_manyarg_func_alist): New variable.
1482 (Fdocumentation): Use it.
1483 (syms_of_doc): Define it.
1484
b6680a0e
GM
14852000-01-31 Gerd Moellmann <gerd@gnu.org>
1486
2cb750ba
GM
1487 * xterm.c (xim_open_dpy): Remove unused local variable.
1488
74e9213b
GM
1489 * emacs.c (USAGE): Use term `display options' instead of `X
1490 options'.
1491
1492 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
1493 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
1494
b6680a0e
GM
1495 * fns.c (sweep_weak_table): New function.
1496 (sweep_weak_hash_tables): Use it. Keep on marking until there
1497 is no more change.
1498
994c5afe
GM
14992000-01-30 Gerd Moellmann <gerd@gnu.org>
1500
1501 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
1502 that XTread_socket does not crash by trying to call XNoOp on a
1503 closed display.
1504
f00276e3
JR
15052000-01-30 Jason Rumney <jasonr@gnu.org>
1506
1507 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
1508 Change selected_frame to SELECTED_FRAME ().
1509 (w32_console_mouse_position): Remove #ifndef MULE from around
1510 `insist' parameter.
1511
1512 * makefile.nt: Remove dosfns.obj.
1513
1514 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
1515
1516 * w32fns.c (w32_defined_color): Check for valid frame before
1517 applying gamma correction. Eliminate dependency on frame elsewhere.
1518 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
1519 (w32_to_x_font): Use resx and resy not height_in and width_in.
1520 (x_to_w32_font): Doc fix.
1521 (xlfd_strip_height): New function to strip and return font height.
1522 (w32_font_match): Compare height separately from rest of xlfd
1523 spec, using xlfd_strip_height.
1524
1525 * w32term.c (w32_term_init): Swap resx and height_in, resy and
1526 width_in. Use w32_defined_color in place of defined_color.
1527
1528 * w32faces.c: Merge more of DOS and X specifics in preparation for
1529 merge with xfaces.c.
1530 (defined_color): Remove FIXME comment.
1531 (tty_color_name): Provide w32-specific function.
1532 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
1533
1534 * w32console.c (turn_on_face, turn_off_face): Removed.
1535 (w32_face_attributes): New function.
1536 (Global_variables): Reduce scope where possible.
1537 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
1538 fill attribute.
1539 (hl_mode): Don't modify text attributes.
1540 (write_glyphs): Don't do anything if len <= 0. Use
1541 w32_face_attributes to get attributes for drawing. Write
1542 terminating codes using char_attr_normal.
1543 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
1544 (update_begin, update_end): Likewise.
1545 (vga_stdcolor_name): New function.
1546 (initialize_w32_display): Remove char_attr_reverse and char_attr.
1547 (Fset_screen_color): Remove char_attr_reverse.
1548
b08e8bb2
GM
15492000-01-29 Gerd Moellmann <gerd@gnu.org>
1550
1551 * xfns.c (xic_set_preeditarea): Take window parameter and
1552 window-relative pixel-positions.
1553
1554 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
1555 is its frame's selected window.
1556 (xim_instantiate_callback): Likewise.
1557
1558 * xfns.c (x_create_im): Removed.
1559 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
1560 (supported_xim_styles): Renamed from supported_styles.
1561 (best_xim_style): Renamed from best_style.
1562 (create_frame_xic): Renamed from xic_create_frame.
1563 (free_frame_xic): Renamed from xic_destroy_frame.
1564
15652000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
1566
1567 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
1568 our frames, call XFilterEvent with 2nd parameter `None'.
1569 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
1570 returning XBufferOverflow.
1571 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status
1572 area.
1573 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
1574 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
1575 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
1576 (xim_initialize, xim_close)
1577 [HAVE_X_I18N && HAVE_X11R6]: New functions.
1578 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
1579 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
1580 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
1581
1582 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
1583 and `xim_styles'.
1584 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
1585 `xic_style' and `xic_xfs'.
1586 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
1587 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
1588 (FRAME_XIM): Removed.
1589
1590 * xfns.c (supported_styles): New variable.
1591 (DEFAULT_STYLE, DEFAULT_FONT): New macros
1592 (xic_create_xfontset, best_style, xic_create_frame)
1593 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
1594 (xic_set_xfontset): New functions.
1595
142e109c
DL
15962000-01-28 Dave Love <fx@gnu.org>
1597
1598 * s/irix6-5.h: Revert last change after change to irix5-0.h.
1599
1600 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
1601
b02786f9
GM
16022000-01-28 Gerd Moellmann <gerd@gnu.org>
1603
d060bc9f
GM
1604 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
1605 for *scratch* if it already existed.
1606
b02786f9
GM
1607 * emacs.c (USAGE): New macro.
1608 (main): Use it to display usage information.
1609
2c52d7e4
EZ
16102000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
1611
1612 Support for the menu-help feature:
1613
1614 * msdos.h: Change prototypes of XMenuAddSelection and
1615 XMenuActivate.
1616
1617 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
1618 part of the line to the termscript file.
1619 (IT_clear_to_end): Clear the entire line, not just its beginning.
1620 (menu_help_message, prev_menu_help_message): New variables.
1621 (IT_menu_make_room): Make room for the help_text member.
1622 (IT_menu_display): New argument disp_help; all callers changed.
1623 If disp_help is non-zero, store the help text of the active menu
1624 item in menu_help_message.
1625 (XMenuAddPane): Initialize the help_text member to NULL.
1626 (XMenuAddSelection): New argument help_text. Store it in the
1627 XMenu structure.
1628 (XMenuActivate): New argument help_callback. If the value of
1629 menu_help_message has changed since the last time, display the
1630 menu help message text while waiting for the mouse to move. Clear
1631 the echo area before exiting.
1632 (XMenuDestroy): Free the help_text member.
1633
ffe0bcd1
GM
16342000-01-27 Gerd Moellmann <gerd@gnu.org>
1635
1636 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
1637 XMenuAddSelection. Pass help callback to XMenuActivate.
1638 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
1639
50dbd23f
EZ
16402000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
1641
1642 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
1643 and EMACS_SET_USECS.
1644
f5941bf8
GM
16452000-01-26 Dave Love <fx@gnu.org>
1646
6c67ddee
DL
1647 * editfns.c (Fchar_after, Fchar_before): Doc fix.
1648
f5941bf8
GM
1649 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
1650 an error may be signalled.
1651
9e49c990
GM
16522000-01-26 Gerd Moellmann <gerd@gnu.org>
1653
fc3cb460
GM
1654 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
1655 LD_SWITCH_SYSTEM inherited from irix5-0.h.
1656
9e49c990
GM
1657 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
1658
d0c037d8
GM
16592000-01-25 Gerd Moellmann <gerd@gnu.org>
1660
1661 * charset.c (Fstring): If there is a multibyte char among
1662 the args, always return a multibyte string.
1663
e12489f9
GM
16642000-01-25 Gerd Moellmann <gerd@gnu.org>
1665
1666 * sysdep.c (sys_select): Turn atimers off and on instead of
1667 recording and restoring old alarm handler
1668
1669 * process.c (toplevel): Include atimer.h.
1670 (create_process_1): Rewritten.
1671 (create_process): Use atimers instead of alarm.
1672 (wait_reading_process_input) [hpux]: Turn atimers off instead
1673 of turning off SIGALRM.
1674 (wait_reading_process_input): Turn off atimers instead off
1675 calling stop_polling.
1676
1677 * emacs.c (main): Call init_atimer.
1678
1679 * keyboard.c (toplevel): Include systime.h and atimer.h.
1680 (polling_for_input): Removed because unused.
1681 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
1682 (poll_timer): New variable.
1683 (poll_for_input, poll_for_input_1): New functions.
1684 (start_polling, stop_polling): Rewritten.
1685
1686 * keyboard.h (polling_for_input): Removed.
1687
1688 * atimer.h, atimer.c: New files.
1689
1690 * Makefile.in (obj): Add atimer.o.
1691 (atimer.o): New target.
1692
1693 * blockinput.h (pending_atimers): Add extern declaration.
1694 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
1695
1696 * lisp.h (popup_activated_flag): Add extern declaration.
1697
1698 * xmenu.c (popup_activated_flag): Make externally visible.
1699 (popup_activate_callback) [USE_MOTIF]: Increment
1700 popup_activated_flag.
1701 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
1702
1703 * xterm.c (toplevel): Include atimer.h.
1704 (toolkit_scroll_bar_interaction): New variable.
1705 (Fxt_process_timeouts): Removed.
1706 (x_process_timeouts): New function.
1707 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
1708 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
1709 (x_make_frame_visible): Call poll_for_input_1 instead of
1710 input_poll_signal. Don't call alarm.
1711 (x_initialize): Install timer calling x_process_timeouts.
1712
1e5279b9
DL
17132000-01-24 Dave Love <fx@gnu.org>
1714
6c67ddee 1715 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
1e5279b9
DL
1716 Don't use -cckr -- apparently not now necessary.
1717
edf6aeb8
EZ
17182000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
1719
1720 * msdos.c (IT_menu_display): Truncate long menu lines at the right
1721 screen boundary.
1722
9badad41
JR
17232000-01-23 Jason Rumney <jasonr@gnu.org>
1724
1725 * w32fns.c (w32_defined_color): Apply gamma correction before
1726 trying to map to the palette.
1727 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
1728 to w32_clear_rect.
1729
1730 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
1731 here. Callers changed to always pass real device context.
1732 (w32_draw_bitmap): Likewise.
1733 (w32_get_glyph_overhangs): Likewise.
1734 (w32_draw_box_rect): Make use of s->hdc rather than getting a new
1735 one.
1736 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
1737 pfnSetScrollInfo and SetScrollRange.
1738 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
1739 back into MULE characters after decoding them.
1740 (x_get_glyph_face_and_encoding): Likewise.
1741 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
1742 GetCharABCWidthsW fails, since this is defined on Windows 9x.
1743 (x_produce_glyphs): Calculate per char metrics for a character
1744 that we know exists in default font when font_not_found_p is true.
1745
63bd786b
JR
17462000-01-22 Jason Rumney <jasonr@gnu.org>
1747
1748 * makefile.nt (intervals.obj, composite.obj): New modules.
1749 (composite.h): Added as dependency where appropriate.
1750
1751 * w32gui.h (XGCValue): New struct for emulating X GCs.
1752
1753 * w32term.h (XCharStruct): New struct for emulating X.
1754
1755 * w32console.c (turn_on_face, turn_off_face): New functions.
1756 (change_line_highlight): New prototype for new redisplay.
1757 (write_glyphs): Support multibyte text. Support faces.
1758
1759 * w32faces.c: Complete rewrite for new redisplay based on new
1760 xfaces.c.
1761
1762 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
1763 throughout. struct frame * in place of FRAME_PTR.
1764 Skeleton support for images, toolbars, tooltips from xfns.c.
1765 (Fx_create_frame): Use system default for default scroll bar
1766 width.
1767 (w32_get_arg): Renamed from x_get_arg.
1768 (Fx_file_dialog): New function.
1769 (w32_list_fonts): Check cache before asking system.
1770 (Vw32_enable_synthesized_fonts): New variable.
1771 (Vw32_enable_italics): Obsolete, removed.
1772
1773 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
1774 Use SELECTED_FRAME macro.
1775
1776 * w32menu.c: Add skeleton support for help strings on menus.
1777 (add_menu_item): Native checkbox and radio support added, but not
1778 yet enabled due to bugs.
1779 (push_menu_item): Add parameters type, selection and help.
1780 Callers updated.
1781 Formatting changes to reduce unnecessary diffs with xmenu.c.
1782
1783 * w32select.c (Fw32_set_clipboard_data): Update call to
1784 find_charset_in_str.
1785
1786 * w32term.c: Complete rewrite for new redisplay based on new
1787 xterm.c with necessary sections merged back in from old w32term.c.
1788
6ffd3cf7 17892000-01-21 Richard M. Stallman <rms@gnu.org>
b50c9214
RS
1790
1791 * data.c (set_internal): Further fix in same criterion.
1792
6ffd3cf7 17932000-01-20 Richard M. Stallman <rms@gnu.org>
8cc95642
RS
1794
1795 * data.c (set_internal): Fix the criteria for whether
1796 to swap out the old cached binding.
1797
60af03f1
DL
17982000-01-19 Dave Love <fx@gnu.org>
1799
1800 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
1801
f9be074f
KH
18022000-01-18 Kenichi Handa <handa@etl.go.jp>
1803
1804 * regex.c (re_compile_fastmap): While checking a range table for
1805 `charset', skip flag bits for a character class correctly.
1806
52b8dbf9
GM
18072000-01-17 Gerd Moellmann <gerd@gnu.org>
1808
d36100c9
GM
1809 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
1810
52b8dbf9
GM
1811 * xfns.c (x_window): Call lw_create_widget with new parameter
1812 list.
1813
1814 * widget.c (EmacsFrameSetCharSize): Change size of children first
1815 because of problems with main window geometry management under
1816 Lesstif.
1817
1818 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
1819 MENU_ITEMS_ITEM_.*.
1820 (MENU_ITEMS_ITEM_HELP): New enumerator.
1821 (push_menu_item): Add parameter HELP. Record help in menu_items.
1822 (single_menu_item, single_submenu, list_of_items): Call
1823 push_menu_item with new parameter.
1824 (single_submenu): Set help string in widget value.
1825 (menu_highlight_callback): New function.
1826 (set_frame_menubar): Call lw_create_widget with new
1827 parameter list.
1828 (xmenu_show, xdialog_show): Ditto.
1829
3139018f
GM
18302000-01-13 Gerd Moellmann <gerd@gnu.org>
1831
1832 * sound.c (Fplay_sound): Improve doc string.
1833
83c8f461
RS
18342000-01-11 Richard M. Stallman <rms@gnu.org>
1835
1836 * lisp.h (set_internal): Enter the new arg.
1837
1838 * eval.c (specbind): Record buffer-local variables specially,
1839 indicating which buffer's binding was saved.
1840 (unbind_to): Restore buffer-local variables specially
1841 in the proper buffer.
1842
1843 * data.c (set_internal): New arg BUF.
1844
1845 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
1846 * data.c (Fset): Pass new arg to set_internal.
1847 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
1848
1fab1775
GM
18492000-01-11 Gerd Moellmann <gerd@gnu.org>
1850
1851 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload,
1852 xprintsym.
1853
83c8f461 18542000-01-11 Richard M. Stallman <rms@gnu.org>
6f59462e
RS
1855
1856 * minibuf.c (Ftry_completion): Doc fix.
1857
7a85e4df
GM
18582000-01-11 Gerd Moellmann <gerd@gnu.org>
1859
1860 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
1861 vector, too.
1862
a970dae4
AS
18632000-01-11 Andreas Schwab <schwab@suse.de>
1864
1865 * coding.c (code_convert_region): Initialize total_skip.
1866
c65d14ee
DL
18672000-01-08 Dave Love <fx@gnu.org>
1868
1869 * eval.c (Fuser_variable_p): Check customizability too.
1870
834938d2
GM
18712000-01-07 Gerd Moellmann <gerd@gnu.org>
1872
1873 * minibuf.c (Fcompleting_read): Doc fix.
1874
e0303cd6
GM
18752000-01-05 Gerd Moellmann <gerd@gnu.org>
1876
8a26744b
GM
1877 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
1878 -L /usr/local/lib.
1879
e0303cd6
GM
1880 * xfns.c (x_create_im): New function to set IM and IC of a frame.
1881 Check that input style is supported before trying to create an
1882 IC for it.
1883 (x_window): Call x_create_im.
1884
2e471eb5
GM
18852000-01-04 Gerd Moellmann <gerd@gnu.org>
1886
560a7bd2
GM
1887 * xfns.c (current_gif_memory_src): New variable.
1888 (gif_load): Record the address of the current memory source
1889 in current_gif_memory_src.
1890 (gif_read_from_memory): Use current_gif_memory_src.
1891
f9ee84a3
GM
1892 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
1893 macros statement form.
1894
d1299cde
GM
1895 * sound.c (struct sound): Renamed from struct sound_file.
1896 (struct sound): Add members `data' and `header_size'.
1897 (enum sound_attr): Add SOUND_DATA.
1898 (current_sound, current_sound_device): Variables renamed from
1899 sound_file and sound_device.
1900 (parse_sound): Parse :data.
1901 (parse_sound): Handle sound data in strings.
1902 (find_sound_type): Function renamed from find_sound_file_type.
1903 (wav_init, au_init): Fail if sound's header_size is smaller than
1904 needed header size.
1905 (wav_play, au_play): Play sounds from string data.
1906
2e471eb5
GM
1907 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
1908
1909 * lisp.h: Add prototype for allocate_string_data.
1910
1911 * alloc.c (Fgarbage_collect): Return number of live and free
1912 strings.
1913
1914 * alloc.c (mark_buffer): Remove code in #if 0.
1915 (gc_sweep): Ditto.
1916 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
1917 (strings_consed): New variable.
1918 (allocate_string): Set it.
1919 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
1920 (Fmemory_use_counts): Return strings_consed. Use Flist.
1921
1922 * alloc.c: General cleanup in comments etc. Remove conditional
1923 compilation for `standalone'.
1924
1925 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
1926
1927 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
1928 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
1929 (DONT_COPY_FLAG): Removed.
1930 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
1931 (struct sdata, struct sblock): New
1932 (struct string_block): Rewritten.
1933 (STRINGS_IN_STRING_BLOCK): New macro.
1934 (oldest_sblock, current_sblock, total_strings, total_free_strings)
1935 (large_sblocks, string_blocks, string_free_list): New variables.
1936 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
1937 (init_strings): Rewritten.
1938 (allocate_string, allocate_string_data, compact_small_strings)
1939 (free_large_strings, sweep_strings): New functions.
1940 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
1941 (struct string_block_head, current_string_block)
1942 (first_string_block, large_string_blocks, STRING_FULLSIZE)
1943 (STRING_PAD): Removed.
1944 (make_uninit_multibyte_string, make_pure_string): Rewritten.
1945 (Fgarbage_collect): Don't set mark bit in large strings.
1946 (mark_object): Mark strings differently. Mark symbol names
1947 differently.
1948 (survives_gc_p): Test marked strings differently.
1949 (gc_sweep): Sweep strings differently, unmark strings in
1950 symbol names.
1951 (compact_strings): Removed.
1952
42608ba8
EZ
19532000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
1954
1955 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
1956 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
1957
e0a09e1a
KH
19582000-01-04 Kenichi Handa <handa@etl.go.jp>
1959
dd9f0750
KH
1960 * fileio.c (Finsert_file_contents): Signal error if visiting file
1961 in a non-empty buffer.
1962
3c0f3b15 1963 * term.c (encode_terminal_code): Fix the previous change.
e0a09e1a 1964
44cd3ae5
GM
19652000-01-03 Gerd Moellmann <gerd@gnu.org>
1966
1967 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
1968 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
1969
1970 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
1971
c182a70f
EZ
19722000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
1973
1974 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
1975 need to test for MSDOS frames.
1976
24480d5b
EZ
19772000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
1978
1979 * dosfns.c (unspecified_colors): Remove.
1980 (msdos_stdcolor_idx): Use global variables unspecified_fg and
1981 unspecified_bg.
1982 (msdos_stdcolor_name): Return strings for unspecified fore- and
1983 back-ground colors.
1984
1985 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
aaf2320c 1986 (syms_of_xfaces): Remove their staticpro's.
24480d5b
EZ
1987 (tty_color_name): Return Lisp strings for unspecified fore- and
1988 back-ground colors.
1989 (Finternal_set_lisp_face_attribute): Remove the special treatment
1990 for Qunspecified_{f,b}g.
1991 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp
1992 string.
1993
047f434a
GM
19942000-01-03 Gerd Moellmann <gerd@gnu.org>
1995
1996 * xdisp.c (reseat_at_next_visible_line_start): Position before
1997 newline only if ending up on a newline.
1998 (next_element_from_ellipsis): Return success. Handle case of
1999 displaying no ellipsis. Fix case of ellipsis defined in display
2000 table.
2001 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
2002 returns 0.
2003
d684c676
EZ
20042000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
2005
2006 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
2007 (Fcolor_supported_p): Renamed from face-color-supported-p.
2008
5fe1d139
EZ
20092000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
2010
2011 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
2012 list of colors renamed to tty-defined-color-alist.
2013 (tty_color_name): Pass the frame to tty-color-by-index.
2014 (realize_tty_face): tty-color-alist is now a function which
2015 accepts the frame as argument.
2016
2017 * term.c (Ftty_display_color_p): Accept an optional argument
2018 FRAME.
2019
816be8b8
EZ
20202000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
2021
2022 * term.c (insert_glyphs): Pass glyph, not &glyph, to
2023 encode_terminal_code.
2024
b635321e
EZ
20252000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
2026
2027 * dispnew.c (mode_line_string): Support termcap frames as well.
2028
9b784e96
GM
20292000-01-01 Gerd Moellmann <gerd@gnu.org>
2030
27189709
GM
2031 * syntax.c (Fforward_word): Undo previous change.
2032
2033 * editfns.c (Fconstrain_to_field): Don't constrain if
2034 inhibit-field-text-motion is non-nil.
2035 (Fline_beginning_position): Undo previous change.
2036 (Fline_end_position): Ditto.
2037
2038 * syntax.c (Fforward_word): Notice field boundaries only if
2039 inhibit-field-text-motion is nil.
2040
2041 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
2042
2043 * editfns.c (Vinhibit_field_text_motion): New variable.
2044 (inhibit-field-text-motion): New DEFVAR_LISP.
2045 (Fline_beginning_position, Fline_end_position): Notice field
2046 boundaries only if inhibit-field-text-motion is nil.
2047
45158a91
GM
2048 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
2049 All calls adjusted.
2050 (x_build_heuristic_mask): Likewise.
2051 (xbm_load_image_from_file): Change error output.
2052 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
2053 (gif_load, gs_load, x_kill_gs_process): Ditto.
2054
9b784e96
GM
2055 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
2056 color indices when accessing raster pixels.
63cec32f
GM
2057 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
2058 one of :file or :data.
2059 (enum pbm_keyword_index): Add PBM_DATA.
2060 (pbm_format): Add :data.
2061 (pbm_image_p): Allow either :file or :data.
2062 (pbm_read_file): New function.
2063 (pbm_scan_number): Rewritten to read from string.
2064 (pbm_load): Support :data.
9b784e96 2065
5ad6a5fb
GM
20661999-12-31 Gerd Moellmann <gerd@gnu.org>
2067
2068 * xfns.c: New image functions adapted to Emacs conventions.
2069 (png_load, tiff_load, jpeg_load, gif_load): Always GCPRO local
2070 variable `file'.
2071
63448a4d
WP
20721999-12-31 William M. Perry <wmperry@aventail.com>
2073
2074 * xfns.c (jpeg_format): Added the :data keyword
2075 (jpeg_image_p): JPEG is valid with :file _or_ :data
2076 (jpeg_memory_src): Defined new JPEG image source to read from a
2077 memory buffer.
2078 (jpeg_load): Pay attention to the :data keyword if specified.
2079 Instantiates a jpeg_memory_src instead of jpeg_stdio_src if
2080 found.
2081 (png_format): Added the :data keyword
2082 (png_image_p): PNG is valid with :file _or_ :data
2083 (png_read_from_memory): New PNG read function to read from a
2084 memory buffer.
2085 (png_load): Pay attention to the :data keyword if specified. Uses
2086 png_set_read_fn() instead of png_init_io() if specified.
2087 (tiff_format): Added the :data keyword for TIFF images.
2088 (tiff_image_p): TIFF is valid with :file _or_ :data
2089 (tiff_read_from_memory): Defined new TIFF I/O functions to read
2090 from a memory buffer.
2091 (tiff_load): Pay attention to the :data keyword if specified.
2092 Uses TIFFClientOpen() instead of TIFFOpen() if specified.
2093 (gif_format): Added the :data keyword
2094 (gif_image_p): GIF is valid with :file _or_ :data
2095 (gif_read_from_memory): New GIF input function to read from a
2096 memory buffer.
c65d14ee 2097 (gif_load): Pay attention to the :data keyword. Uses DGifOpen()
63448a4d
WP
2098 instead of DGifOpenFileName() if specified.
2099
c880678e
GM
21001999-12-31 Gerd Moellmann <gerd@gnu.org>
2101
2102 * xdisp.c (next_element_from_buffer): Change assertion at the end
2103 because it doesn't hold when there's an overlay string at the end
2104 from which we deliver an image.
2105
8ccb9a54
EZ
21061999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
2107
2108 * msdos.c (IT_update_begin): Don't dereference members of struct
2109 window for deleted windows.
2110
12ce2351
GM
21111999-12-30 Gerd Moellmann <gerd@gnu.org>
2112
a915c648
GM
2113 * abbrev.c (Fexpand_abbrev): If expanding an abbrev which has only
2114 a hook, and the hook has a non-nil `no-self-insert' property, let
2115 the return value of the hook specify whether an expansion took
2116 place. If it returns nil, no expansion has been performed.
2117
12ce2351
GM
2118 * xterm.c (x_make_frame_visible): Wait for frame becoming visible
2119 differently.
2120
04ee4f45
EZ
21211999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
2122
2123 * msdos.c (IT_write_glyphs): Track last changes to struct glyph.
2124
7f4bc0c3
EZ
21251999-12-29 Eli Zaretskii <eliz@is.elta.co.il>
2126
2127 * dispnew.c (mode_line_string): Support MS-DOS frames.
2128
dac204bc
GM
21291999-12-29 Gerd Moellmann <gerd@gnu.org>
2130
2131 * eval.c (syms_of_eval): Initialize debugger_may_continue.
2132
7b712ad8
KH
21331999-12-29 Kenichi Handa <handa@etl.go.jp>
2134
2135 * process.c (read_process_output): Fix the args CHARPOS and LENINS
2136 to signal_after_change.
2137
adb9900f
EZ
21381999-12-28 Eli Zaretskii <eliz@is.elta.co.il>
2139
41ad069b
EZ
2140 * msdos.c (dos_set_window_size) [__DJGPP__ > 1]: If the frame
2141 dimensions changed, invalidate the mouse highlight info.
2142 (disable_mouse_highlight, help_echo, previous_help_echo): New
2143 variables.
2144 (IT_set_mouse_pointer, show_mouse_face, clear_mouse_face)
2145 (fast_find_position, IT_note_mode_line_highlight)
2146 (IT_note_mouse_highlight): New functions.
2147 (IT_update_begin): If the redisplay affects the window where the
2148 mouse highlight is, clear the highlight. If the frame where the
2149 highlight was displayed was killed, invalidate the highlight
2150 info.
2151 (IT_update_end): Reset the highlight flag. Reset the mouse
2152 highlight-defer flag.
2153 (IT_frame_up_to_date): New function, if mouse highlight was
2154 deferred due to GC, do it now.
2155 (internal_terminal_init): Initialize mouse-highlight related
2156 members of the_only_x_display. Assign IT_frame_up_to_date to
2157 frame_up_to_date_hook.
2158 (dos_rawgetc): If the mouse moved, update mouse highlight. If
2159 help_echo changed value, generate a HELP_EVENT event.
2160 (syms_of_msdos): Staticpro help_echo and previous_help_echo.
2161
adb9900f
EZ
2162 * msdos.h (struct display_info): New.
2163 (struct x_output): Add the display_info member.
2164 (FRAME_X_DISPLAY_INFO): New macro.
2165
481b5054
GM
21661999-12-28 Gerd Moellmann <gerd@gnu.org>
2167
2168 * xdisp.c (try_window_id): Compute BEG_UNCHANGED and END_UNCHANGED
2169 if MODIFF > 1.
6448a6b3 2170 (dump_glyph_row): Adapt to changes in struct glyph.
481b5054
GM
2171
2172 * buffer.c (modify_overlay): Always compute unchanged info.
2173
a2882b0d
KH
21741999-12-27 Kenichi Handa <handa@etl.go.jp>
2175
2176 * dispextern.h (FACE_FROM_ID): Cast the arg ID to `unsigned'.
2177
89ba5b5f
KH
21781999-12-27 Kenichi Handa <handa@etl.go.jp>
2179
2180 The following changes are to use more bits for face IDs.
2181
2182 * lisp.h (GLYPH): Defined as `int', not `unsigned int'. Now the
2183 lowest 8 bits are single byte character code, the bits above are
2184 face ID.
481b5054 2185 (GLYPH_MASK_FACE, GLYPH_MASK_CHAR): Adjusted for the change
89ba5b5f 2186 above.
481b5054
GM
2187 (FAST_MAKE_GLYPH, FSST_GLYPH_FACE): Likewise.
2188 (GLYPH_MASK_REV_DIR, GLYPH_MASK_PADDING): Macros deleted.
89ba5b5f
KH
2189
2190 * charset.h (CHAR_BYTES): Use ((1 << CHARACTERBITS) - 1) instead
2191 of GLYPH_MASK_CHAR.
2192
2193 * charset.c (char_bytes): Use ((1 << CHARACTERBITS) - 1) instead
2194 of GLYPH_MASK_CHAR.
2195
2196 * dispextern.h (struct glyph): Make face_id and padding_p the top
2197 level members. Change members in union `u'.
2198 (GLYPH_EQUAL_P): Check also members face_id and padding_p.
2199 (GLYPH_CHAR_AND_FACE_EQUAL_P): New macro.
2200 (SET_CHAR_GLYPH): Adjusted for the change of struct glyph.
2201 (CHAR_GLYPH_PADDING_P): Likewise.
2202 (GLYPH_FROM_CHAR_GLYPH): Likewise. Always return -1 for multibyte
2203 characters.
2204
481b5054 2205 * dispnew.c (line_hash_code, direct_output_for_insert): Adjusted
89ba5b5f
KH
2206 for the change of struct glyph.
2207 (line_draw_cost): Adjusted for the change of
2208 GLYPH_FROM_CHAR_GLYPH.
2209 (count_match): Use macro GLYPH_CHAR_AND_FACE_EQUAL_P.
2210
2211 * term.c (encode_terminal_code): Adjusted for the change of struct
2212 glyph and GLYPH_FROM_CHAR_GLYPH.
481b5054 2213 (write_glyphs, insert_glyphs, append_glyph): Adjusted for the
89ba5b5f
KH
2214 change of struct glyph.
2215
2216 * xdisp.c: All codes adjusted for the change of struct glyph.
2217
2218 * xterm.c: All codes adjusted for the change of struct glyph.
2219
5bcd116c
KH
22201999-12-27 Kenichi Handa <handa@etl.go.jp>
2221
2222 * composite.h (struct composition): Change the order of declaring
2223 members to reduce the byte size of the structure.
2224
f21b06b7
GM
22251999-12-25 Gerd Moellmann <gerd@gnu.org>
2226
2227 * search.c (looking_at_1): Reset immediate_quit before modifying
2228 global data.
2229
e36557c9
KH
22301999-12-24 Kenichi Handa <handa@etl.go.jp>
2231
2232 * process.c (read_process_output): Fix the arg FROM to
2233 update_compositions.
2234
83c8f461 22351999-12-22 Richard M. Stallman <rms@gnu.org>
f7c9e039
RS
2236
2237 * search.c (Freplace_match): For nonliteral replacement in buffer,
2238 construct all the new text first, then insert all at once.
2239
0b863bd9
DL
22401999-12-22 Dave Love <fx@gnu.org>
2241
2242 * xfns.c (Fx_show_tip): Gcpro `timeout' too.
2243
6d8e8ef3
GM
22441999-12-22 Gerd Moellmann <gerd@gnu.org>
2245
28d7281d
GM
2246 * xfns.c (Fx_create_frame): Move x_default_parameter calls that
2247 lead to size changes to after the X window has been created.
2248
e22ef6eb 2249 * xfaces.c (realize_x_face): Don't use uninitialized local
6d8e8ef3
GM
2250 variable in xassert.
2251
8affcced
KH
22521999-12-22 Kenichi Handa <handa@etl.go.jp>
2253
2254 * xfaces.c (face_color_supported_p): Check by tty_defined_color
6d8e8ef3 2255 only when the frame is not for a window system.
8affcced 2256
f2be1146
GM
22571999-12-22 Gerd Moellmann <gerd@gnu.org>
2258
deca1348
GM
2259 * buffer.c (Fset_buffer_multibyte): Arrange for a thorough
2260 redisplay after changing the multibyteness of a buffer.
2261
f2be1146
GM
2262 * xterm.c (XTread_socket): At the beginning of the loop, pass the
2263 frame's X window to XFilterEvent instead of None because that's
2264 the X window for which the IC was created. This makes dead
2265 accents work when the pointer is not in Emacs' frame.
2266 (XTread_socket) <KeyPress>: Don't call XFilterEvent here.
2267
a744a2ec
DL
22681999-12-20 Dave Love <fx@gnu.org>
2269
2270 * xfns.c (Fx_show_tip): Add missing UNGCPRO.
2271
9e6985ed
GM
22721999-12-19 Gerd Moellmann <gerd@gnu.org>
2273
2274 * eval.c (debugger_may_continue): New variable.
2275 (syms_of_eval): Add a DEFVAR_BOOL for it.
2276 (call_debugger): Bind it.
2277
3b620731
EZ
22781999-12-19 Eli Zaretskii <eliz@is.elta.co.il>
2279
2280 * msdos.c (IT_set_face): Don't swap face colors when highlight or
2281 fp->tty_reverse_p is set, unless the computed colors are identical
2282 to frame colors. Print both original and computed colors to
2283 termscript file.
2284 (IT_write_glyphs): Track the changes in handling of composite
2285 characters.
2286 (IT_set_frame_parameters): Don't set frame colors from
2287 unspecified-fg and unspecified-bg pseudo-colors.
2288
0f9a51c4
DL
22891999-12-17 Dave Love <fx@gnu.org>
2290
2291 * data.c (Fkeywordp): New function.
2292 (syms_of_data): Install it.
2293
363e4e42
EZ
22941999-12-16 Eli Zaretskii <eliz@is.elta.co.il>
2295
2296 * xfaces.c (tty_defined_color): Fix last change.
2297
cfad01b4
GM
22981999-12-15 Gerd Moellmann <gerd@gnu.org>
2299
2300 * xdisp.c (redisplay_window) <optional new window start>: Check
2301 that window start is in [BEGV..ZV].
2302
f9d2fdc4
EZ
23031999-12-15 Eli Zaretskii <eliz@is.elta.co.il>
2304
2305 * dispextern.h (FACE_TTY_DEFAULT_FG_COLOR)
2306 (FACE_TTY_DEFAULT_BG_COLOR): New macros.
2307
2308 * xfaces.c (Qunspecified_fg, Qunspecified_bg): New variables.
2309 (syms_of_xfaces): Initialize and staticpro them.
2310 (tty_defined_color): If the color name is unspecified-fg or
2311 unspecified-bg, return FACE_TTY_DEFAULT_FG_COLOR and
2312 FACE_TTY_DEFAULT_BG_COLOR, respectively, as the pixel value.
2313 (tty_color_name): If the color pixel value is either
2314 FACE_TTY_DEFAULT_FG_COLOR or FACE_TTY_DEFAULT_BG_COLOR, return
2315 Qunspecified_fg or Qunspecified_bg, respectively.
2316 (Finternal_set_lisp_face_attribute): Allow values Qunspecified_fg
2317 and Qunspecified_bg for foreground and background colors.
2318 (realize_default_face): If the foreground and background colors
2319 are not specified, default to Qunspecified_fg and Qunspecified_bg.
2320 (realize_tty_face): By default, set the face colors to
2321 FACE_TTY_DEFAULT_FG_COLOR and FACE_TTY_DEFAULT_BG_COLOR.
2322 [MSDOS]: Handle FACE_TTY_DEFAULT_FG_COLOR and
2323 FACE_TTY_DEFAULT_BG_COLOR when face colors are not defined.
2324 Reverse the colors if the default colors were reversed.
2325
2326 * dispnew.c (init_display): Initialize the frame pixels of the
2327 initial frame to FACE_TTY_DEFAULT_FG_COLOR and
2328 FACE_TTY_DEFAULT_BG_COLOR.
2329
2330 * term.c (turn_on_face): If the default fore- and background
2331 colors are reversed, enter inverse video mode. Don't send color
2332 escape sequences for unspecified foreground and background colors.
2333 (turn_off_face): Handle unspecified-fg and unspecified-bg colors.
2334
2335 * dosfns.c (unspecified_colors): New variable.
2336 (msdos_stdcolor_idx): Handle unspecified-fg and unspecified-bg
2337 color names, return FACE_TTY_DEFAULT_FG_COLOR and
2338 FACE_TTY_DEFAULT_BG_COLOR, respectively.
2339 (msdos_stdcolor_name): Handle FACE_TTY_DEFAULT_FG_COLOR and
2340 FACE_TTY_DEFAULT_BG_COLOR, return Qunspecified_fg and
2341 Qunspecified_bg, respectively.
2342
2343 * msdos.c (IT_set_face): Support FACE_TTY_DEFAULT_FG_COLOR and
2344 FACE_TTY_DEFAULT_BG_COLOR as pixel values.
2345
e19539f1
KH
23461999-12-15 Kenichi Handa <handa@etl.go.jp>
2347
2348 * coding.c (code_convert_region): Fix the secoding arg to
2349 update_compositions.
2350
5ec14d3c
KH
23511999-12-15 Kenichi Handa <handa@etl.go.jp>
2352
2353 The following changes are for the new composition mechanism. We
2354 have deleted `composition' charset and composite characters,
2355 instead introduced a special text property `composition'.
2356
2357 * Makefile.in (INTERVAL_SRC): Include composite.h.
2358 (INTERVAL_OBJ): Include composite.o.
2359 (SOME_MACHINE_OBJECTS): Include composite.o.
2360 (casefiddle.o) (dispnew.o) (indent.o) (process.o) (search.o)
2361 (syntax.o) (window.o) (xdisp.o) (xfaces.o) (xterm.o) (print.o):
2362 Depend on composite.h.
2363 (doc.o): Depend on charset.h.
2364 (keyboard.o) (textprop.o) (intervals.o): Depend on INTERVAL_SRC.
2365 (composite.o): New target.
2366
2367 * alloc.c (Fmake_string): Adjusted for the change of CHAR_STRING.
2368
2369 * callproc.c (Fcall_process): Call code_convert_string to encode
2370 arguments. Use CODING_REQUIRE_DECODING to check if the process
2371 output should be decoded.
2372
2373 * casefiddle.c: Include composite.h.
2374 (casify_object): Use MAX_MULTIBYTE_LENGTH to allocate memory for a
2375 multibyte character. Adjusted for the change of CHAR_STRING.
2376 (casify_region): Likewise. Call update_compositions.
2377
2378 * category.h (CATEGORY_SET): Delete codes for a composite
2379 character.
2380
2381 * category.c (word_boundary_p): Delete codes for a composite
2382 character.
2383 (Fmake_category_table): New function.
2384 (syms_of_category): Defsubr it.
2385
2386 * ccl.c (CCL_WRITE_CHAR): Adjusted for the change of CHAR_STRING.
2387 (ccl_driver): Delete codes for a composite character.
2388
2389 * charset.h: In this entry, just `Modified' means that codes for a
2390 composite character is deleted.
2391 (LEADING_CODE_COMPOSITION) (CHARSET_COMPOSITION)
2392 (charset_composition) (MIN_CHAR_COMPOSITION)
2393 (MAX_CHAR_COMPOSITION) (GENERIC_COMPOSITION_CHAR)
2394 (COMPOSITE_CHAR_P) (MAKE_COMPOSITE_CHAR) (COMPOSITE_CHAR_ID)
2395 (PARSE_COMPOSITE_SEQ) (PARSE_CHARACTER_SEQ): Deleted.
2396 (MAX_CHAR) (CHARSET_VALID_P) (CHARSET_DEFINED_P) (CHARSET_AT)
2397 (FIRST_CHARSET_AT) (SAME_CHARSET_P) (MAKE_NON_ASCII_CHAR)
2398 (PARSE_MULTIBYTE_SEQ) (SPLIT_NON_ASCII_CHAR) (CHAR_PRINTABLE_P):
2399 Modified.
2400 (SPLIT_STRING): Call split_string, not split_non_ascii_string.
2401 (CHAR_STRING): Delete WORKBUF argument. Call char_string, not
2402 non_ascii_char_to_string.
2403 (STRING_CHAR): Call string_to_char, not string_to_non_ascii_char.
2404 (STRING_CHAR_AND_LENGTH): Likewise.
2405 (FETCH_CHAR_ADVANCE): New macro.
2406 (MAX_COMPONENT_COUNT) (struct cmpchar_info): Deleted.
2407 (MAX_MULTIBYTE_LENGTH): New macro.
2408 (MAX_LENGTH_OF_MULTI_BYTE_FORM): Deleted.
2409 (find_charset_in_str): Argument adjusted.
2410 (CHAR_LEN): Modified.
2411
2412 * charset.c: In this entry, just `Modified' means that codes for a
2413 composite character is deleted.
2414 (Qcomposition) (leading_code_composition)
2415 (charset_composition) (min_composite_char) (cmpchar_table)
2416 (cmpchar_table_size) (n_cmpchars): Deleted.
2417 (SPLIT_COMPOSITE_SEQ): Deleted.
2418 (SPLIT_MULTIBYTE_SEQ): Modified.
2419 (char_to_string): Renamed from non_ascii_char_to_string.
2420 Modified.
2421 (string_to_char): Renamed from string_to_non_ascii_char.
2422 (split_string): Renamed from split_non_ascii_string.
2423 (char_printable_p) (Fsplit_char)
2424 (Ffind_charset_region) (Ffind_charset_string) (char_valid_p)
2425 (char_bytes) (Fchar_width) (strwidth): Modified.
2426 (find_charset_in_str): Argument CMPCHARP deleted. Modified.
2427 (Fstring): Adjusted for the change of CHAR_STRING. Modified.
2428 (hash_string) (CMPCHAR_HASH_TABLE_SIZE) (cmpchar_hash_table)
2429 (CMPCHAR_HASH_SIZE) (CMPCHAR_HASH_USED) (CMPCHAR_HASH_CMPCHAR_ID)
2430 (str_cmpchar_id) (cmpchar_component) (Fcmpcharp)
2431 (Fcmpchar_component) (Fcmpchar_cmp_rule) (Fcmpchar_cmp_rule_p)
2432 (Fcmpchar_cmp_count): Deleted.
2433 (Fcompose_string): Implemented by Emacs Lisp in composite.el.
2434 (init_charset_once): Modified.
2435 (syms_of_charset): Modified.
2436
2437 * cmds.c (internal_self_insert): Adjusted for the change of
2438 CHAR_STRING.
2439
2440 * coding.h (emacs_code_class_type): Delete the member
2441 EMACS_leading_code_composition.
2442 (COMPOSING_NO) (COMPOSING_WITH_RULE_HEAD) (COMPOSING_NO_RULE_HEAD)
2443 (COMPOSING_WITH_RULE_TAIL) (COMPOSING_NO_RULE_TAIL)
2444 (COMPOSING_WITH_RULE_RULE) (COMPOSING_HEAD_P)
2445 (COMPOSING_WITH_RULE_P): Macros deleted.
2446 (COMPOSITION_DATA_SIZE) (COMPOSITION_DATA_MAX_BUNCH_LENGTH): New
2447 macros.
2448 (struct composition_data): New structure.
2449 (CODING_FINISH_INSUFFICIENT_CMP): New macro.
2450 (struct coding_system): New members composition_rule_follows,
2451 cmp_data, cmp_data_start, cmp_data_index.
2452 (coding_save_composition) (coding_free_composition_data)
2453 (coding_adjust_composition_offset): Extern them.
2454
2455 * coding.c: Include composite.h.
2456 (DECODE_CHARACTER_ASCII): Don't handle composition here.
2457 (DECODE_CHARACTER_DIMENSION1): Likewise. Don't check the validity
2458 of multibyte code here.
2459 (DECODE_CHARACTER_DIMENSION2): Likewise.
2460 (detect_coding_emacs_mule): Change the case label from
2461 EMACS_leading_code_composition to 0x80.
2462 (detect_coding_iso2022): Handle new composition sequence.
2463 (DECODE_ISO_CHARACTER): Likewise.
2464 (check_composing_code): Deleted.
2465 (coding_allocate_composition_data): New function.
2466 (CODING_ADD_COMPOSITION_START) (CODING_ADD_COMPOSITION_END)
2467 (CODING_ADD_COMPOSITION_COMPONENT) (DECODE_COMPOSITION_START)
2468 (DECODE_COMPOSITION_END) (DECODE_COMPOSITION_RULE): New macros.
2469 (decode_coding_iso2022): Handle new composition sequence.
2470 (ENCODE_ISO_CHARACTER): Don't check composition here.
2471 (ENCODE_COMPOSITION_RULE) (ENCODE_COMPOSITION_START): New macros.
2472 (ENCODE_COMPOSITION_NO_RULE_START)
2473 (ENCODE_COMPOSITION_WITH_RULE_START): Deleted.
2474 (ENCODE_COMPOSITION_END): Handle new composition sequence.
2475 (ENCODE_COMPOSITION_FAKE_START): New macro.
2476 (encode_coding_iso2022): Handle new composition sequence.
2477 (ENCODE_SJIS_BIG5_CHARACTER): Delete superfluous `;' at the tail.
2478 (encode_coding_sjis_big5): Ignore composition.
2479 (setup_coding_system): Initialize new members of struct
2480 coding_system. Enable composition only when the coding system has
2481 `composition' property t.
2482 (coding_free_composition_data) (coding_adjust_composition_offset)
2483 (coding_save_composition) (coding_restore_composition): New
2484 functions.
2485 (code_convert_region): Call coding_save_composition for encoding
2486 and coding_allocate_composition_data for decoding. Don't skip
2487 ASCII characters if we handle composition on encoding. Call
2488 signal_after_change with Check_BORDER.
2489 (code_convert_string): Call coding_save_composition for encoding
2490 and coding_allocate_composition_data for decoding. Don't skip
2491 ASCII characters if we handle composition on encoding.
2492 (code_convert_string1): Set Vlast_coding_system_used after calling
2493 code_convert_string.
2494 (code_convert_string_norecord): Disable composition.
2495 (Fset_terminal_coding_system_internal): Likewise.
2496 (Fset_safe_terminal_coding_system_internal): Likewise.
2497 (Fset_keyboard_coding_system_internal): Likewise.
2498 (init_coding_once): Set emacs_code_class[0x80] to
2499 EMACS_invalid_code.
2500
2501 * composite.h: New file.
2502
2503 * composite.c: New file.
2504
2505 * data.c (Faref): Delete codes for a composite character..
2506 (Faset): Likewise. Adjusted for the change of CHAR_STRING.
2507
2508 * dispextern.h (enum glyph_type): New member COMPOSITE_GLYPH.
2509 (struct glyph): Add new sub-structure cmp to the union `u'.
2510 (enum display_element_type): New member IT_COMPOSITION.
2511 (enum prop_idx): New member COMPOSITION_PROP_IDX.
2512 (struct it): New members cmp_id, cmp_len.
2513
2514 * dispnew.c (direct_output_forward_char): Check point moving into
2515 or out of a composition. If so, give up direct method.
2516
2517 * doprnt.c (doprnt1): Adjusted for the change of CHAR_STRING.
2518
2519 * editfns.c (Fchar_to_string): Adjusted for the change of
2520 CHAR_STRING.
2521 (general_insert_function): Likewise.
2522 (Finsert_char): Likewise.
2523 (Fsubst_char_in_region): Likewise. Call update_compositions.
2524 (Ftranslate_region): Call update_compositions.
2525 (Ftranspose_regions): Call update_compositions.
2526
2527 * emacs.c (main): Call syms_of_composite.
2528
2529 * fileio.c (Fsubstitute_in_file_name): Adjusted for the change of
2530 CHAR_STRING.
2531 (Finsert_file_contents): Set Vlast_coding_system_used before
2532 calling signal_after_change. Call update_compositions if some
2533 texts are inserted..
2534 (Fwrite_region): Adjusted for the change of a_write and e_write.
2535 (a_write): Argument changed. Work based on character position,
2536 not byte position.
2537 (e_write): Argument changed. Handle new way of composition.
2538
2539 * fns.c (Flength): The length of char-table is MAX_CHAR.
2540 (concat): Adjusted for the change of CHAR_STRING.
2541 (Ffillarray): Adjusted for the change of CHAR_STRING.
2542 (Fset_char_table_default): Delete codes for a composite character.
2543 (hash_put): Return hash index.
2544
2545 * fontset.h (struct font_info): New member vertical_centering.
2546 (Vvertical_centering_font_regexp): Extern it.
2547
2548 * fontset.c (Vvertical_centering_font_regexp): New variable.
2549 (syms_of_fontset): Declare it as a Lisp variable and initialize.
2550 Set Vignore_relative_composition to nil.
2551 (fs_load_font): Initialize `vertical_centering' of struct
2552 font_info.
2553
2554 * indent.c (check_composition): New function.
2555 (MULTIBYTE_BYTES_WIDTH): Call STRING_CHAR_AND_LENGTH with
2556 MAX_MULTIBYTE_LENGTH, not MAX_LENGTH_OF_MULTI_BYTE_FORM.
2557 (current_column_1): Handle new way of composition.
2558 (Fmove_to_column): Likewise.
2559 (compute_motion): Likewise.
2560
2561 * insdel.c (copy_text): Adjusted for the change of CHAR_STRING.
2562 (insert_char): Likewise.
2563 (insert): Call update_compositions.
2564 (insert_and_inherit): Likewise.
2565 (insert_before_markers): Likewise.
2566 (insert_before_markers_and_inherit): Likewise.
2567 (insert_from_string): Likewise.
2568 (insert_from_string_before_markers): Likewise.
2569 (insert_from_buffer): Likewise.
2570 (replace_range): Likewise.
2571 (count_combining_composition): Deleted.
2572 (count_combining_before): Delete codes for a composite character.
2573 (count_combining_after): Likewise.
2574 (del_range_1): Call update_compositions.
2575 (del_range_byte): Likewise.
2576 (del_range_both): Likewise.
2577 (Fcombine_after_change_execute): Likewise.
2578
2579 * intervals.h: Include composite.h.
2580 (get_property_and_range): Extern it.
2581 (Vtext_property_default_nonsticky): Extern it.
2582
2583 * intervals.c (adjust_intervals_for_insertion): To check stickines
2584 of properties, pay attention to text-property-default-nonsticky.
2585 (merge_properties_sticky): Likewise.
2586 (get_property_and_range): New function.
2587
2588 * keyboard.c (Vdisable_point_adjustment): New variable.
2589 (Vglobal_disable_point_adjustment): New variable.
2590 (syms_of_keyboard): Declare them as Lisp variables.
2591 (command_loop_1): Check them and call adjust_point_for_property if
2592 necessary.
2593 (adjust_point_for_property): New function.
2594
2595 * keymap.c (push_key_description): Adjusted for the change of
2596 CHAR_STRING.
2597 (Ftext_char_description): Likewise.
2598
2599 * lisp.h (QCtest, QCweakness, Qequal): Extern them.
2600 (hash_put): Adjusted for the change of the definition.
2601 (signal_after_change): Likewise.
2602 (check_point_in_composition): Extern it.
2603
2604 * lread.c (readchar): Adjusted for the change of CHAR_STRING.
2605 Delete a code that handles an invalid too-long multibyte sequence
2606 because we are now sure that we never encounter with such a
2607 sequence.
2608 (read_multibyte): Use macro MAX_MULTIBYTE_LENGTH, not
2609 MAX_LENGTH_OF_MULTI_BYTE_FORM.
2610 (init_obarray): Likewise.
2611 (read1): Likewise. Adjusted for the change of CHAR_STRING.
2612
2613 * print.c (printchar): Adjusted for the change of CHAR_STRING.
2614
2615 * process.c: Include composite.h.
2616 (read_process_output): Call update_compositions.
2617
2618 * regex.c (regex_compile): Adjusted for the change of CHAR_STRING.
2619
2620 * search.c (search_buffer): Adjusted for the change of CHAR_STRING.
2621
2622 * syntax.h (SYNTAX_ENTRY_INT): Delete codes for a composite
2623 character.
2624
2625 * term.c (encode_terminal_code): Delete codes for a composite
2626 character. Adjusted for the change of CHAR_STRING.
2627 (produce_glyphs): When called, it->what can be IT_COMPOSITION.
2628 Delete codes for a composite character.
2629
2630 * textprop.c (Vtext_property_default_nonsticky): New variable
2631 (syms_of_textprop): Declare it as a Lisp variable.
2632
2633 * window.c (Frecenter): Clear all caches of compositions.
2634
2635 * xdisp.c (it_props): Add an entry for composition.
2636 (face_before_or_after_it_pos): For composition, check face of a
2637 character after the composition.
2638 (handle_composition_prop): New function.
2639 (get_next_display_element): Adjusted for the change of
2640 CHAR_STRING.
2641 (set_iterator_to_next): Handle the case that it->method ==
2642 next_element_from_composition.
2643 (next_element_from_composition): New function.
2644 (message_dolog): Adjusted for the change of CHAR_STRING.
2645 (set_message_1): Likewise.
2646 (check_point_in_composition): New function.
2647 (reconsider_clip_changes): If point moved into or out of
2648 composition, set b->clip_changed to 1 to force updating of the
2649 screen.
2650 (disp_char_vector): Delete codes for a composite character.
2651 (decode_mode_spec_coding): Adjusted for the change of CHAR_STRING.
2652
2653 * xfaces.c (choose_face_fontset_font): Delete codes for a
2654 composite character.
2655 (realize_x_face): Likewise. Change a place to set local variable
2656 `f' to avoid a bug of GCC 2.8.1 on Solaris.
2657
2658 * xfns.c: Include intervals.h.
2659 (syms_of_xfns): Make `display' property nonsticky by default.
2660
2661 * xselect.c (lisp_data_to_selection_data): Adjusted for the change
2662 for find_charset_in_str.
2663
2664 * xterm.h (struct x_output): Change member font_baseline to
2665 baseline_offset.
2666
2667 * xterm.c (x_append_glyph): Setup members of struct glyph properly
2668 for composition.
2669 (x_append_composite_glyph): New function.
2670 (VCENTER_BASELINE_OFFSET): New macro.
2671 (x_produce_glyphs): If it->what == IT_COMPOSITION, setup members
2672 of struct it for the composition. Cache pixel offsets in the
2673 struct composition. Delete codes for a composite character.
2674 Handle Vignore_relative_composition in composition code.
2675 (struct glyph_string): Delete member cmpcharp, add new member cmp.
2676 (x_set_cursor_gc): Check s->cmp, not s->cmpcharp.
2677 (x_compute_glyph_string_overhangs): Likewise.
2678 (x_get_glyph_overhangs): Delete codes for a composite character.
2679 (x_right_overwritten): Check s->cmp, not s->cmpcharp.
2680 (x_draw_glyph_string_background): Likewise. Delete codes for
2681 checking s->gidx for a composition.
2682 (x_draw_glyph_string_foreground): Delete code for a composite
2683 character.
2684 (x_draw_composite_glyph_string_foreground): New function.
2685 (x_draw_glyph_string_box): Check s->cmp, not s->cmpcharp.
2686 (x_draw_glyph_string): Handle the case of COMPOSITE_GLYPH.
2687 (struct work): Deleted.
2688 (x_fill_composite_glyph_string): Argument changed. Mostly
2689 rewritten for that.
2690 (x_fill_glyph_string): Don't check CHARSET_COMPOSITION.
2691 (BUILD_CHAR_GLYPH_STRINGS): Don't handle composition here.
2692 (BUILD_COMPOSITE_GLYPH_STRING): New macro.
2693 (BUILD_GLYPH_STRINGS): For composition, call
2694 BUILD_COMPOSITE_GLYPH_STRING.
2695 (x_new_font): Initialize f->output_data.x->baseline_offset, not
2696 f->output_data.x->font_baseline.
2697
c3c60f13
GM
26981999-12-14 Gerd Moellmann <gerd@gnu.org>
2699
2700 * xterm.c (show_mouse_face): Don't use updated_area, use
2701 TEXT_AREA.
2702
83c8f461 27031999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
2704
2705 * minibuf.c (Fall_completions): Doc fix.
2706
83c8f461 27071999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
2708
2709 * macros.c (Fstart_kbd_macro): Handle case where last-kbd-macro
2710 has been changed by the Lisp code.
2711
d8eccf12
GM
27121999-12-12 Gerd Moellmann <gerd@gnu.org>
2713
2714 * xfns.c: Indentation fixes.
2715
ae56feae
SM
27161999-12-10 Stefan Monnier <monnier@cs.yale.edu>
2717
2718 * xterm.c (x_initialize): Only setup xaw3d_* if they've been declared.
2719
dfa1c6ae
GM
27201999-12-10 Gerd Moellmann <gerd@gnu.org>
2721
2722 * frame.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL)
2723 [!MSDOS && !WINDOWSNT && !macintosh]: Moved here from xterm.h.
2724
2725 * xterm.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL): Moved
2726 to frame.h.
2727
ec18280f
SM
27281999-12-09 Stefan Monnier <monnier@cs.yale.edu>
2729
2730 * keyboard.c (Qratio): New symbol.
2731 (scroll_bar_parts): Add `Qratio' to it.
2732 (syms_of_keyboard): Init `Qratio'.
2733 * termhooks.h (scroll_bar_part): Add `scroll_bar_move_ratio'.
2734 * xterm.c (#includes): Allow compilation with only Xaw.
2735 (xaw3d_arrow_scroll, xaw3d_pick_top): New variables.
2736 (xt_action_hook): Replace XAW3D by XAW.
2737 (xaw3d_jump_callback): Renamed to xaw_jump_callback.
2738 (xaw_jump_callback): Renamed from xaw3d_jump_callback.
2739 Determine epsilon dynamically and don't try to be too clever.
2740 (xaw3d_scroll_callback): Renamed to xaw_scroll_callback.
2741 (xaw_scroll_callback): Renamed from xaw3d_scroll_callback.
2742 Handle both Xaw3d with arrow-scrollbars and with Xaw-style
2743 scrollbar (using `ratio').
2744 (x_create_toolkit_scroll_bar): Try to detect which style of Xaw3d
2745 scrollbar we have so as to set it up more optimally and to fix
2746 xaw3d_arrow_scroll and xaw3d_pick_top.
2747 (x_set_toolkit_scroll_bar_thumb): Try to maintain 2 spare pixels at the
2748 bottom of the Xaw3d scrollbar, to work around its tendency to refuse
2749 shrinking the thumb. Also make sure that `XawScrollbarSetThumb'
2750 is not ignored, using a major gross hack.
2751 (x_initialize): Init default values for xaw3d_arrow_scroll and
2752 xaw3d_pick_top.
2753
83b6d970
DL
27541999-12-09 Dave Love <fx@gnu.org>
2755
2756 * frame.h: (PIX_TYPE) [! HAVE_X_WINDOWS]: Define PIX_TYPE.
2757
3648c842
GM
27581999-12-08 Gerd Moellmann <gerd@gnu.org>
2759
2760 * eval.c: Remove conditional compilation on `standalone'.
2761 (call_debugger): When entering the debugger while redisplaying,
2762 reset redisplaying_p, and go back to the top-level if the debugger
2763 returns.
2764
05e71564
GM
27651999-12-07 Gerd Moellmann <gerd@gnu.org>
2766
2767 * xfaces.c (x_set_menu_resources_from_menu_face): Make sure
2768 basic faces are realized before trying to use face `menu'.
2769
2770 * window.c (delete_window): Block input for the time window
2771 matrices are being changed.
2772
b46cd536
DL
27731999-12-07 Dave Love <fx@gnu.org>
2774
2775 * lread.c (Fintern_soft): Fix newlines in doc string.
2776
96acb1f7
GM
27771999-12-07 Alexandre Oliva <oliva@dcc.unicamp.br>
2778
2779 * unexelf.c: Include <syms.h>, not <sym.h> on IRIX. Removed
2780 duplicate definition of ElfW.
2781 (find_section): Copied from unexsgi.c.
2782 (unexec): Use find_section. Adjust whitespace. Initialize
2783 new_data2_offset based on old_data, not sbss (this fixes a bug on
2784 IRIX6). Change #ifdef __mips to __sgi, since it's IRIX-specific.
2785 Adjust test for presence of .mdebug section to the new return
2786 value of find_section.
2787
27881999-12-07 Gerd Moellmann <gerd@gnu.org>
2789
2790 * unexelf.c: Merge changes from 20.5.
2791 (unexec): Handle .lit4 and .lit8 unconditionally.
2792
2793 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexelf.o instead of
2794 unexsgi.o again.
2795
2796 * m/iris5d.h (UNEXEC): Likewise.
2797
7dae4502
SM
27981999-12-06 Stefan Monnier <monnier@cs.yale.edu>
2799
2800 * editfns.c (Fdelete_and_extract_region): New function.
05e71564
GM
2801 (syms_of_editfns): Register it.
2802 * insdel.c (del_range): Update del_range_1 call.
7dae4502
SM
2803 (del_range_1, del_range_2): Add a ret_string argument to
2804 request that the deleted text be returned.
2805 (del_range_byte, del_range_both): Update del_range_2 call.
05e71564 2806 * lisp.h (del_range_1, del_range_2): Change prototype
7dae4502
SM
2807 * casefiddle.c (casify_region): Update del_range_1 call.
2808 * coding.c (code_convert_region): Update del_range_2 call.
2809 * fileio.c (Finsert_file_contents): Update del_range_2 call.
2810
397e4fae
GM
28111999-12-06 Gerd Moellmann <gerd@gnu.org>
2812
2813 * xfaces.c (set_lface_from_font_name): Fix incomplete merge.
2814
3d973f71
GM
28151999-12-04 Hrvoje Niksic <hniksic@iskon.hr>
2816
2817 * lread.c (Fintern_soft): Accept a symbol argument.
2818
740e985f
EZ
28191999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
2820
2821 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Reduce to 40000.
809f3d51
EZ
2822
2823 * insdel.c (adjust_markers_for_delete): Fix last change.
2824
2d764c78
EZ
28251999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
2826
2827 Changes for automatic remapping of X colors on terminal frames:
2828
2829 * xfaces.c (XColor) [!HAVE_X_WINDOWS]: Provide a typedef for non-X
2830 frames.
2831 (Vface_tty_color_alist): Remove.
2832 (tty_defined_color): New function.
2833 (defined_color): Rewrite to support any type of frame.
2834 (tty_color_name): New function.
2835 (face_color_supported_p, Fface_color_gray_p,
2836 Fface_color_supported_p): Support non-X frames.
2837 (load_color): Enclose the color name in quotes, in the log
2838 messages. Remove DOS-specific version of load_color.
2839 (realize_tty_face): Take the supported colors from
2840 tty-color-alist. Support translation of X colors to the closest
2841 tty color, for both MSDOS and tty frames.
2842 [MSDOS]: Don't invert face colors if they were taken from the
2843 frame colors.
2844 (Fface_register_tty_color, Fface_clear_tty_colors): Remove.
2845
2846 * frame.h (struct x_output) [!MSDOS, !WINDOWSNT, !HAVE_X_WINDOWS]:
2847 Define a mostly empty surrogate.
2848 (tty_display): Declare.
2849
2850 * frame.c (make_terminal_frame) [!macintosh]: Don't use
2851 tty_display.
2852 (Fframe_parameters): Don't invert colors of non-FRAME_WINDOW_P
2853 frames when the frame's param_alist includes 'reverse.
2854 (tty_display): Define.
2855 (make_terminal_frame) [!MSDOS]: Assign &tty_display to the
2856 output_data.x member.
2857 (Fframe_parameters): Return foreground and background color names
2858 on tty frames as well, in addition to MSDOS frames.
2859
2860 * msdos.h (DisplayWidth, DisplayHeight): Changes for Lisp_Object
2861 selected_frame.
2862 (struct x_output): Remove unused members; document who uses each
2863 member.
2864 (FRAME_PARAM_FACES, FRAME_N_PARAM_FACES, FRAME_DEFAULT_PARAM_FACE,
2865 FRAME_MODE_LINE_PARAM_FACE, FRAME_COMPUTED_FACES,
2866 FRAME_N_COMPUTED_FACES, FRAME_SIZE_COMPUTED_FACES,
2867 FRAME_DEFAULT_FACE, FRAME_MODE_LINE_FACE, unload_color): Remove
2868 unused macro definintions.
2869
2870 * msdos.c (IT_set_frame_parameters): Don't call
2871 recompute_basic_faces, the next redisplay will, anyway.
2872 (x_current_display): Remove unused variable.
2873 Many functions: changes for Lisp_object selected_frame.
2874 (IT_set_face): If the tty_reverse_p flag is set for the face,
2875 reverse the foreground and background colors.
2876 (Fmsdos_remember_default_colors): New function.
2877 (syms_of_msdos): Defsubr it.
2878 (IT_set_frame_parameters): Use initial_screen_colors[] when
2879 creating a new frame. If the frame parameters include 'reverse,
2880 swap the foreground and background colors.
2881 (internal_terminal_init): Initialize initial_screen_colors to -1.
2882 (syms_of_msdos): Add DEFVAR_BOOL for x-stretch-cursor, to shut up
2883 cus-start.el.
2884
2885 * Makefile.in (lisp, shortlisp): Add lisp/term/tty-colors.elc.
2886
2887 * xfns.c (x_defined_color): Rename from defined_color. All
2888 callers changed.
2889 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
2890 all callers changed.
2891 (Fxw_color_values): Renamed from Fx_color_values; all callers
2892 changed.
2893 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
2894 callers changed.
2895 (x_window_to_frame, x_any_window_to_frame,
2896 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
2897 x_top_window_to_frame): Use !FRAME_X_P instead of
2898 f->output_data.nothing.
2899 * xterm.h (x_defined_color): Rename from defined_color.
2900
2901 * w32fns.c (x_window_to_frame): Use FRAME_W32_P instead of
2902 f->output_data.nothing.
2903 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
2904 all callers changed.
2905 (Fxw_color_values): Renamed from Fx_color_values; all callers
2906 changed.
2907 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
2908 callers changed.
2909
2910 * dispextern.h (tty_color_name): Add prototype.
2911
2912 * xmenu.c (menubar_id_to_frame): Use FRAME_WINDOW_P instead of
2913 f->output_data.nothing.
2914 * w32menu.c (menubar_id_to_frame): Likewise.
2915 * w32term.h (w32_output): Declare.
2916
2917 * dosfns.c (Qmsdos_color_translate): Remove.
2918 (msdos_stdcolor_name): Now returns a Lisp_Object.
2919 * dosfns.h (Qmsdos_color_translate): Remove.
2920
2921 * s/msdos.h (INTERNAL_TERMINAL): Add entries for color support.
2922
b3e5232e
KH
29231999-12-06 Kenichi Handa <handa@etl.go.jp>
2924
2925 * fileio.c (decide_coding_unwind): Renamed from
2926 set_auto_coding_unwind.
2927 (Finsert_file_contents): Make single unwind protect to call both
2928 Vset_auto_coding_function and Ffind_operation_coding_system.
2929
2930 * insdel.c (adjust_markers_for_delete): Make it non-static.
2931
db0e466c
SM
29321999-12-04 Stefan Monnier <monnier@cs.yale.edu>
2933
2934 * regex.c (regex_compile): Recognize *?, +? and ?? as non-greedy
2935 operators and handle them properly.
2936 * regex.h (RE_ALL_GREEDY): New option.
2937 (RE_UNMATCHED_RIGHT_PAREN_ORD): Moved to the end where alphabetic
2938 sorting would put it.
2939 (RE_SYNTAX_AWK, RE_SYNTAX_GREP, RE_SYNTAX_EGREP)
2940 (_RE_SYNTAX_POSIX_COMMON): Use the new option to keep old behavior.
2941
22afa6e8
DL
29421999-12-04 Dave Love <d.love@dl.ac.uk>
2943
2944 * m/arm.h: New file.
2945
40afb967
DL
29461999-12-03 Dave Love <fx@gnu.org>
2947
2948 * editfns.c (Fmessage_or_box): Use use_dialog_box.
2949
ddf8eff5
GM
29501999-12-02 Gerd Moellmann <gerd@gnu.org>
2951
2952 * s/usg5-4.h (LIBS_SYSTEM): Add -lgen because that's needed
2953 for building with Motif.
2954
2955 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexsgi.o instead of
2956 unexelf.o.
2957
2958 * m/iris5d.h (UNEXEC): Use unexsgi.o instead of unexelf.o.
2959
fa09a82d
DL
29601999-12-01 Dave Love <fx@gnu.org>
2961
2962 * emacs.c (main): Set LANG=C iff AX3_2 defined.
2963
ddf8eff5
GM
29641999-11-28 Gerd Moellmann <gerd@gnu.org>
2965
2966 * systime.h (EMACS_TIME_CMP, EMACS_TIME_EQ, EMACS_TIME_NE)
2967 (EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT,EMACS_TIME_LE): New
2968 macros.
2969
2970 * config.in (HAVE_SETITIMER, HAVE_UALARM): New.
2971
fa09a82d
DL
29721999-11-28 eliz <eliz@dlpx1>
2973
2974 * emacs.c (synchronize_locale): Avoid compiler warnings about
2975 pointer type mismatch.
2976
f9632fc8
GM
29771999-11-28 Gerd Moellmann <gerd@gnu.org>
2978
717d0121
GM
2979 * window.c (Fwindow_end): Don't call temp_set_pt_both with
2980 out of range position.
2981
f9632fc8
GM
2982 * xterm.c (XTread_socket) <ClientMessage, Xatom_Scrollbar>:
2983 Switch off busy-cursor by setting inhibit_busy_cursor to 2.
2984
59c65f1e
EZ
29851999-11-28 Eli Zaretskii <eliz@is.elta.co.il>
2986
613a8346
EZ
2987 * charset.c (Fmake_char_internal): Print the charset ID when
2988 signalling an error.
2989
59c65f1e
EZ
2990 * emacs.c (synchronize_locale): Avoid compiler warnings about
2991 pointer type mismatch.
2992
83c8f461 29931999-11-26 Richard M. Stallman <rms@gnu.org>
d01f3570
RS
2994
2995 * editfns.c (Fdelete_field): Make it noninteractive. Return nil.
2996
18df9369
GM
29971999-11-26 Gerd Moellmann <gerd@gnu.org>
2998
65a3ccf7
GM
2999 * puresize.h (BASE_PURESIZE): Increase to 550000.
3000
b3b98592
GM
3001 * textprop.c (set_text_properties): New function. Like
3002 Fset_text_properties, but with additional parameter
3003 SIGNAL_AFTER_CHANGE_P. If that is nil, don't signal after
3004 changes.
3005 (Fset_text_properties): Use it.
3006
3007 * insdel.c (insert_1_both): Call set_text_properties with last
3008 parameter nil so that no after changes will be signaled.
3009
3010 * lisp.h: Add prototype for set_text_properties.
3011
18df9369
GM
3012 * xfaces.c (set_lface_from_font_name): Fix previous change.
3013 (recompute_basic_faces): Change assert to abort.
3014
71a8e74b
DL
30151999-11-25 Dave Love <fx@gnu.org>
3016
3017 * fns.c (Fnthcdr, Fnreverse): Inline cdr.
3018 (Fmember, Fdelq, Fdelete): Inline car.
3019 (Fy_or_n_p): Doc fix.
3020
bc6a5782
GM
30211999-11-25 Gerd Moellmann <gerd@gnu.org>
3022
3221576b 3023 * xfaces.c (set_lface_from_font_name): New parameter may_fail_p.
18df9369 3024 Callers changed. If specified font name is bogus, and may_fail_p
3221576b
GM
3025 is not set, try to use a reasonable default.
3026
bc6a5782
GM
3027 * dispnew.c (direct_output_for_insert): Set glyph row's
3028 displays_text_p flag. Correct window's window_end_vpos if
3029 necessary.
3030
0c8559bb
PE
30311999-11-25 Paul Eggert <eggert@twinsun.com>
3032
3033 * emacs.c (fixup_locale): Don't bother to record initial locale.
3034 (synchronize_locale): If the desired locale is nil,
3035 treat it as if it were the empty string,
3036 so that we set the locale from the environment.
3037
35737351
KH
30381999-11-25 Kenichi Handa <handa@etl.go.jp>
3039
3040 * fileio.c (Finsert_file_contents): Set buffer-file-coding-system
3041 of the current buffer via Fset.
3042
5562b47f
DL
30431999-11-24 Dave Love <fx@gnu.org>
3044
3045 * xfns.c: Don't duplicate Qdisplay definition done elsewhere.
3046
3047 * xfaces.c: Don't duplicate Qmode_line definition done elsewhere.
3048
3049 * xfns.c: Don't duplicate Qdisplay definition done elsewhere.
3050
00da0e4a
GM
30511999-11-24 Gerd Moellmann <gerd@gnu.org>
3052
3053 * lisp.h (enum pvec_type): Put PVEC_FLAG in #if 0.
3054
3055 * emacs.c (PVEC_FLAG): New variable.
3056
b1775dc1
GM
30571999-11-23 Gerd Moellmann <gerd@gnu.org>
3058
3059 * unexaix.c (unexec): Use unsigned instead of uintptr_t because
3060 that fails on IBM PowerPC, AIX 4.2.
3061
08de6200
EZ
30621999-11-22 Eli Zaretskii <eliz@is.elta.co.il>
3063
3064 * buffer.c (syms_of_buffer): Add %z, %Z, %m and %& to the doc
3065 string of mode-line-format. Remove the obsolete %t.
3066
02fda8ff
GM
30671999-11-22 Gerd Moellmann <gerd@gnu.org>
3068
f2fa858f
GM
3069 * dispnew.c (direct_output_for_insert): Increment glyph positions
3070 for glyphs from buffer text only.
3071
02fda8ff
GM
3072 * emacs.c (gdb_valbits, gdb_gctypebits, gdb_emacs_intbits)
3073 (gdb_data_seg_bits): New variables.
3074
3075 * lisp.h (enum gdb_lisp_params): Put in #if 0, since it doesn't
3076 work on systems not allowing enumerators > INT_MAX, and it
3077 won't work if EMACS_INT is long long.
3078
1b0d24e7
PE
30791999-11-22 Paul Eggert <eggert@twinsun.com>
3080
3081 Port to SunOS 4.1.x again. Help out with Alpha port.
3082 Rename messages-locale to system-messages-locale,
3083 and likewise for time-locale.
3084
3085 * callproc.c (strerror): Remove decl.
3086 * fileio.c (strerror): Likewise.
3087 * process.c (strerror): Likewise.
3088 * emacs.c (strerror): Likewise.
3089 (Vsystem_messages_locale): Renamed from Vmessages_locale.
3090 All uses changed.
3091 (Vprevious_system_messages_locale): Likewise, from
3092 Vprevious_messages_locale.
3093 (Vsystem_time_locale): Likewise, from Vtime_locale.
3094 (Vprevious_system_time_locale): Likewise, from Vprevious_time_locale.
3095 (ABORT_RETURN_TYPE): New macro.
3096 (abort): Return type is now ABORT_RETURN_TYPE.
3097 (main): Always invoke init_signals, even if POSIX_SIGNALS is not
3098 defined.
3099 (syms_of_emacs): messages-locale -> system-messages-locale,
3100 previous-messages-locale -> previous-system-messages-locale,
3101 time-locale -> system-time-locale,
3102 previous-time-locale -> previous-system-time-locale.
3103
3104 * gmalloc.c (PP, __ptr_t): Assume ANSI C if STDC_HEADERS is defined.
3105 (const): Do not define; that's config.h's job.
3106 (<limits.h>): Include if HAVE_LIMITS_H is defined.
3107 (CHAR_BIT): Move test for definedness outside of limits.h condition.
3108 (<stddef.h>): Include if STDC_HEADERS is defined.
3109 (FREE_RETURN_TYPE): New macro.
3110 (free): Return type is now FREE_RETURN_TYPE.
3111
3112 * lisp.h (synchronize_system_time_locale): Renamed from
3113 synchronize_time_locale. All uses changed.
3114 (synchronize_system_messages_locale): Likewise, from
3115 synchronize_messages_locale.
3116
3117 * m/alpha.h (malloc, realloc, calloc): Remove decls;
3118 stdlib.h now does this.
3119
3120 * process.c (sys_siglist): Remove.
3121
3122 * s/sunos4-0.h (ABORT_RETURN_TYPE, FREE_RETURN_TYPE):
3123 New macros.
3124
3125 * syntax.c (scan_sexps_forward): Use abort, not assert.
3126
3127 * sysdep.c (my_sys_siglist): New var.
3128 (sys_siglist): New macro. Remove old initialized vars of same name.
3129 (init_signals): Initialize sys_siglist.
3130
3131 * xfns.c (abort): Remove decl; stdlib.h now does this.
3132
0dcd5b54
DL
31331999-11-18 Dave Love <fx@gnu.org>
3134
946173ad
DL
3135 * filelock.c: Add forward declaration for get_boot_time_1.
3136
0dcd5b54
DL
3137 * dispnew.c (Finternal_show_cursor_p): Fix doc string.
3138
71447e8f
GM
31391999-11-18 Gerd Moellmann <gerd@gnu.org>
3140
3141 * buffer.h (struct buffer_text): Add comment about moving
3142 buffer text if REL_ALLOC is defined.
3143
eeedff63
KH
31441999-11-18 Kenichi Handa <handa@etl.go.jp>
3145
3146 * lisp.h (KEY_DESCRIPTION_SIZE): New macro.
3147
3148 * keyboard.c (echo_char): Use KEY_DESCRIPTION_SIZE to check free
3149 memory for push_key_description.
3150
3151 * keymap.c (Fsingle_key_description): Use KEY_DESCRIPTION_SIZE to
3152 allocate memory for push_key_description.
3153 (describe_buffer_bindings): Likewise.
3154
5d7e4a2c
GM
31551999-11-17 Gerd Moellmann <gerd@gnu.org>
3156
3157 * xfns.c (Fx_show_busy_cursor): Doc-fix.
3158 (Fx_hide_busy_cursor): Ditto.
3159
31601999-11-17 Marco Walther <walther@siemens-pyramid.com>
3161
3162 * unexsni.c (unexec): Handle .rel.dyn section.
3163
b5b41e02
DL
31641999-11-16 Dave Love <fx@gnu.org>
3165
3166 * doc.c (Fdocumentation): Remove gcpro here too.
3167
e35b6123
GM
31681999-11-16 Gerd Moellmann <gerd@gnu.org>
3169
3170 * keyboard.c (command_loop_1): Remove no_redisplay.
3171
83c8f461 31721999-11-16 Richard M. Stallman <rms@gnu.org>
0a14b9bb
GM
3173
3174 * print.c (PRINTPREPARE): Don't call setup_echo_area_for_printing
3175 in noninteractive.
3176
b05d3bee
GM
31771999-11-14 Gerd Moellmann <gerd@gnu.org>
3178
5bcfeb49
GM
3179 * xdisp.c (ensure_echo_area_buffers): New.
3180 (with_echo_area_buffer): Use it.
3181 (setup_echo_area_for_printing): Ditto.
3182
b05d3bee
GM
3183 * buffer.c (indicate-empty-lines): Doc-fix.
3184
9b2e6e4c
GM
31851999-11-12 Gerd Moellmann <gerd@gnu.org>
3186
e7f90eab
GM
3187 * term.c (term_init): If "op" isn't available, don't support color
3188 because we can't switch back to the default foreground and
3189 background.
3190
9b2e6e4c
GM
3191 * doc.c (Fdocumentation_property): Remove GCPRO because
3192 Fsubstitute_command_keys gcpro's the string.
3193
1bf21027
KH
31941999-11-12 Kenichi Handa <handa@etl.go.jp>
3195
3196 * editfns.c (Ftranslate_region): Check the buffer multibyteness.
3197
3bc6df53
GM
31981999-11-11 Gerd Moellmann <gerd@gnu.org>
3199
3200 * print.c, keymap.c, indent.c, insdel.c, keyboard.c, intervals.c,
3201 lread.c, textprop.c, undo.c, emacs.c, lisp.h, intervals.h,
3202 buffer.h, config.in, Makefile.in: Remove USE_TEXT_PROPERTIES.
3203
35a5514b
GM
32041999-11-10 Gerd Moellmann <gerd@gnu.org>
3205
3206 * xfns.c (QCuser_data): Removed.
3207 (syms_of_xfns): Initialization of QCuser_data removed.
3208 (parse_image_spec): Don't handle :user-data specially. Allow
3209 unknown keys. Remove parameter ALLOW_OTHER_KEYS.
3210 (xbm_image_p, xbm_load, xpm_image_p, pbm_image_p, png_image_p)
3211 (tiff_image_p, jpeg_image_p, gif_image_p, gs_image_p): Call
3212 parse_image_spec accordingly.
3213
83c8f461 32141999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
3215
3216 * cmds.c (Fbeginning_of_line): Doc fix.
3217 (Fend_of_line): Doc fix.
3218
3219 * editfns.c (Fline_beginning_position): If N is not 1,
3220 pass t to Fconstrain_to_field for ESCAPE-FROM-EDGE.
3221
3222 * syntax.c (Fforward_word): Handle fields even if would have hit
3223 an edge of the buffer. Return nil if affected by fields.
3224
83c8f461 32251999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
3226
3227 * editfns.c (preceding_pos): Function deleted.
3228 (text_property_stickiness): Decrement POS directly.
3229 Fix a confusion that used PT instead of POS.
3230
3231 * editfns.c (find_field): Properly handle the case
3232 of a field boundary where `field' inherits from neither side.
3233
3234 * editfns.c (Ffield_beginning, Ffield_end): Doc fixes.
3235 (Ferase_field, Ffield_string, Ffield_string_no_properties): Doc fixes.
3236
fa9aabf6
GM
32371999-11-08 Gerd Moellmann <gerd@gnu.org>
3238
3239 * bytecode.c (Fbyte_code) <BinsertN, Bcall>: Do the
3240 BEFORE_POTENTIAL_GC before DISCARD.
3241
4015b3c0
GM
32421999-11-07 Gerd Moellmann <gerd@gnu.org>
3243
033a5fa3
GM
3244 * alloc.c (Fgarbage_collect): Call unmark_byte_stack.
3245
3246 * lisp.h: Add prototype for unmark_byte_stack.
3247
3248 * bytecode.c (mark_byte_stack): Use XMARKBIT and XMARK.
3249 (unmark_byte_stack): Renamed from relocate_byte_pcs. Use
3250 XUNMARK.
3251
55b064bd
GM
3252 * xdisp.c (resize_mini_window): Fix computation of needed
3253 mini-window height.
3254
3255 * alloc.c, buffer.c, editfns.c, xdisp.c: Remove conditional
3256 compilation on USE_TEXT_PROPERTIES.
01e9b9df 3257
4015b3c0 3258 * Fbyte_code: Use block statements in cases and declare v1 and v2
60af03f1 3259 locally there. Rearrange case statements so that those most
4015b3c0
GM
3260 frequently executed come first. Avoid goto's in frequently
3261 executed cases.
3262
fe512f27
GM
32631999-11-05 Gerd Moellmann <gerd@gnu.org>
3264
dd59e217
GM
3265 * bytecode.c (Fbyte_code): Use BEFORE_POTENTIAL_GC and
3266 AFTER_POTENTIAL_GC around internal_catch.
3267
bcf28080
GM
3268 * alloc.c (Fgarbage_collect): Call mark_byte_stack and
3269 relocate_byte_pcs.
3270 (init_alloc_once, init_alloc): Set byte_stack_list to null.
3271
3272 * eval.c (struct catchtag): Add member byte_stack.
3273 (internal_catch, Fcondition_case, internal_condition_case)
dd59e217 3274 (internal_condition_case_1): Save value of byte_stack_list in
bcf28080
GM
3275 catchtag.
3276 (unwind_to_catch): Restore byte_stack_list from catchtag.
3277
3278 * lisp.h: Add prototypes for new functions in bytecode.c.
3279 Add extern declaration for byte_stack_list.
3280
3281 * bytecode.c (struct byte_stack): New.
3282 (byte_stack_list, mark_byte_stack, relocate_byte_pcs): New
3283 (BEFORE_POTENTIAL_GC, AFTER_POTENTIAL_GC): New.
3284 (FETCH, PUSH, POP, DISCARD, TOP, MAYBE_GC): Rewritten.
3285 (HANDLE_RELOCATION): Removed.
3286 (Fbyte_code): Use byte_stack structures.
3287
4d59c34c
GM
3288 * filelock.c (Ffile_locked_p): Make FILENAME a required argument.
3289
fe512f27
GM
3290 * buffer.c (syms_of_buffer): Extend documentation of
3291 mode-line-format.
3292
60b64cd6
GM
32931999-11-04 Gerd Moellmann <gerd@gnu.org>
3294
3295 * editfns.c (Fdelete_field): Renamed from Ferase_field.
3296
3297 * minibuf.c (do_completion, Fminibuffer_complete_word): Use
3298 Ferase_field instead of Fdelete_field.
3299
b51b619b
GM
33001999-11-03 Gerd Moellmann <gerd@gnu.org>
3301
3302 * dispnew.c (Finternal_show_cursor): Change it to set the
3303 cursor on/off, not toggle its state.
3304 (Finternal_show_cursor_p): New.
3305 (syms_of_display): Defsubr Sinternal_show_cursor_p.
3306
5865af0d
DL
33071999-11-03 Dave Love <fx@gnu.org>
3308
3309 * charset.c (split_non_ascii_string): Define return value.
3310
82a700f3
GM
33111999-11-03 Gerd Moellmann <gerd@gnu.org>
3312
edfef199
GM
3313 * minibuf.c (string_to_object): New.
3314 (read_minibuf_noninteractive): New.
3315 (read_minibuf): Call read_minibuf_noninteractive if
3316 noninteractive. Use string_to_object.
3317
82a700f3
GM
3318 * doc.c (Fdocumentation_property): Fix bug bypassing UNGCPRO.
3319
b5540f0d
DL
33201999-11-02 Dave Love <fx@gnu.org>
3321
e69dcd60
DL
3322 * gnu-linux.h: Use SIGCHLD, not SIGCLD (not in glibc 2.1).
3323
827a1788
DL
3324 * process.c: Define _GNU_SOURCE before config.h to get strsignal
3325 declared with glibc2.
b5540f0d 3326
a69a6e61
GM
33271999-11-02 Gerd Moellmann <gerd@gnu.org>
3328
3329 * lisp.h (QUIT): Give it statement form.
3330
87e21fbd
DL
33311999-11-02 Dave Love <fx@gnu.org>
3332
3333 * eval.c (init_eval): Conditionalize declaration of gcpro_level.
3334
1b335865
GM
33351999-11-02 Gerd Moellmann <gerd@gnu.org>
3336
9fb5e03d
GM
3337 * xfns.c (QCuser_data): New.
3338 (syms_of_xfns): Initialize QCuser_data.
3339 (parse_image_spec): Ignore :user-data DATA properties.
3340
1b335865
GM
3341 * xdisp.c (display_line): Set charpos of first glyph in blank
3342 lines not corresponding to any text to -1, even if no glyphs are
3343 filled in in that line.
3344
e76f1c44
GM
33451999-11-01 Gerd Moellmann <gerd@gnu.org>
3346
36fcd3d9
GM
3347 * xfns.c (png_load) [PNG_READ_sRGB_SUPPORTED]: Put code using
3348 png_get_sRGB in #ifdef.
3349
111259b4
GM
3350 * dispnew.c (Finternal_show_cursor): Renamed from Fshow_cursor.
3351 (syms_of_display): Use the new name.
3352
dd5c96e8
GM
3353 * textprop.c (verify_interval_modification): Signal text-read-only
3354 instead of calling error.
3355
db8878fb
GM
3356 * data.c (Qtext_read_only): New built-in error.
3357 (syms_of_data): Initialize it.
3358
3359 * lisp.h: Add extern declaration for Qtext_read_only.
3360
e76f1c44
GM
3361 * syntax.c: Remove whitespace after open or in front of closing
3362 parentheses.
3363
83c8f461 33641999-11-01 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
3365
3366 * Makefile.in (w16select.o, sound.o): Don't depend on lisp.h.
3367
7843e09c
GM
33681999-10-31 Gerd Moellmann <gerd@gnu.org>
3369
575ed805
GM
3370 * xdisp.c (resize_mini_window): Compute needed height differently.
3371
7843e09c
GM
3372 * fns.c (Flength): Unroll loop over lists.
3373
3374 * xdisp.c (append_space): Return non-zero if space was appended.
3375 (display_line): Set charpos of first glyph to -1 only if that
3376 glyph is the space added by append_glyph.
3377
83c8f461 33781999-10-30 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
3379
3380 * print.c (strout): Consider `noninteractive' and use stdout
3381 only when PRINTCHARFUN is t.
3382
3383 * lisp.h (struct gcpro) [DEBUG_GCPRO]: New field `level'.
3384 (gcpro_level): Declare it extern.
3385 [DEBUG_GCPRO] (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5):
3386 Alternate definitions that set `level' and increment `gcpro_level'.
3387 [DEBUG_GCPRO] (UNGCPRO): Alternate definition that checks gcpro_level.
3388
3389 * eval.c [DEBUG_GCPRO] (gcpro_level): New variable.
3390 (init_eval) [DEBUG_GCPRO]: Initialize it.
3391 (unwind_to_catch) [DEBUG_GCPRO]: Set gcpro_level
3392 from remaining gcprolist.
3393
3636f7a3
KH
33941999-10-29 Kenichi Handa <handa@etl.go.jp>
3395
3396 * coding.c (code_convert_region): Update `dst' correctly.
3397
a2ad7096
GM
33981999-10-28 Gerd Moellmann <gerd@gnu.org>
3399
3400 * fns.c (Fmemq, Fassq, Frassq, assq_no_quit, Fassoc)
3401 (Frassoc): Rewritten.
3402
1e3196e8
GM
34031999-10-27 Noah Friedman <friedman@splode.com>
3404
3405 * s/gnu-linux.h [HAVE_DEV_PTMX]: Redefine FIRST_PTY_LETTER to 'z'.
3406 Define PTY_NAME_SPRINTF.
3407 Redefine PTY_TTY_NAME_SPRINTF.
3408 * config.in: Add undef for HAVE_DEV_PTMX.
3409
83c8f461 34101999-10-26 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
3411
3412 * regex.c (POP_FAILURE_POINT): Use failure_id.integer
3413 as arg to DEBUG_POP and DEBUG_PRINT.
3414
83c8f461 34151999-10-27 Richard M. Stallman <rms@gnu.org>
17dbfaad
GM
3416
3417 * data.c (Qad_activate_internal): Renamed from Qad_activate.
3418 (Ffset): Call Qad_activate_internal.
3419 (syms_of_data): Initialize Qad_activate_internal.
3420
26922151
GM
34211999-10-27 Gerd Moellmann <gerd@gnu.org>
3422
3423 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing if
3424 Vterminal_frame is selected and Vwindow_system is non-nil.
3425
67a5596f
GM
34261999-10-26 Gerd Moellmann <gerd@gnu.org>
3427
2bea706b
GM
3428 * xdisp.c (echo_area_display): Put previous change in #if 0.
3429
67a5596f
GM
3430 * emacs.c (standard_args): Add `file' as synonym for `visit',
3431 `execute' as synonym for `eval'.
3432 (main): Add new options to usage message.
3433
81dc5de5
GM
34341999-10-25 Gerd Moellmann <gerd@gnu.org>
3435
3436 * data.c (Qhash_table): New.
3437 (Ftype_of): Return it for hash tables.
3438 (syms_of_data): Initialize Qhash_table.
3439
83c8f461 34401999-10-25 Richard M. Stallman <rms@gnu.org>
bd3c545d
GM
3441
3442 * regex.c (POP_FAILURE_POINT): Extract failure_id as an integer.
3443
66e4690f 34441999-10-24 Ken Raeburn <raeburn@gnu.org>
3a7093d8 3445
7539e11f
KR
3446 * alloc.c: Undef HIDE_LISP_IMPLEMENTATION before including
3447 lisp.h.
3448
3449 * buffer.c (Fbuffer_list, Fget_file_buffer, get_truename_buffer,
3450 Fbuffer_local_variables, Fother_buffer, record_buffer,
3451 set_buffer_internal_1, Fbury_buffer, Fkill_all_local_variables,
3452 swap_out_buffer_local_variables, overlays_at, overlays_in,
3453 overlay_touches_p, overlay_strings, recenter_overlay_lists,
3454 fix_overlays_in_range, fix_overlays_before, Foverlay_get,
3455 Foverlay_put, report_overlay_modification, evaporate_overlays):
3456 Use XCAR, XCDR, and XFLOAT_DATA instead of explicit member
3457 references.
3458 * data.c (Fcar, Fcar_safe, Fcdr, Fcdr_safe, Fsetcar, Fsetcdr,
3459 swap_in_symval_forwarding, set_internal, default_value,
3460 Fset_default, Fmake_variable_buffer_local, Fmake_local_variable,
3461 Fmake_variable_frame_local, Flocal_variable_p,
3462 Flocal_variable_if_set_p, arithcompare, Fzerop, cons_to_long,
3463 Fnumber_to_string, float_arith_driver, Fadd1, Fsub1): Likewise.
3464 * dispnew.c (Fframe_or_buffer_changed_p): Likewise.
3465 * emacs.c (main): Likewise.
3466 * fontset.c (fs_load_font, fs_register_fontset,
3467 CACHED_FONTSET_NAME, CACHED_FONTSET_REGEX, Fquery_fontset,
3468 Fnew_fontset, Fset_fontset_font): Likewise.
3469 * frame.c (do_switch_frame, next_frame, prev_frame,
3470 other_visible_frames, Fdelete_frame, Fvisible_frame_list):
3471 Likewise.
3472 * keyboard.c (read_char, help_char_p, event_to_kboard,
3473 kbd_buffer_get_event, timer_start_idle, timer_check,
3474 make_lispy_event, apply_modifiers, reorder_modifiers,
3475 Fevent_convert_list, lucid_event_type_list_p, menu_bar_items,
3476 menu_bar_one_keymap, menu_item_eval_property_1, parse_menu_item,
3477 tool_bar_items, read_char_x_menu_prompt, read_key_sequence,
3478 Fcommand_execute, Fexecute_extended_command): Likewise.
3479 * minibuf.c (read_minibuf, get_minibuffer, Ftry_completion,
3480 Fall_completions): Likewise.
3481 * window.c (Fset_window_margins): Likewise.
3482
3483 * callint.c (quotify_args): Don't explicitly use struct
3484 Lisp_Cons, use Lisp_Object and XCAR/XCDR instead.
3485
3a7093d8
KR
3486 * s/netbsd.h (HAVE_GETLOADAVG): Define as 1.
3487 (UNEXEC, START_FILES, LIB_STANDARD, LIB_GCC): Define ELF versions,
3488 if __ELF__ is defined.
3489
2a3d7146
GM
34901999-10-24 Gerd Moellmann <gerd@gnu.org>
3491
3492 * window.c (Fnext_window): Add a QUIT in the loop.
3493
8ac52782
GM
34941999-10-23 Gerd Moellmann <gerd@gnu.org>
3495
3496 * Makefile.in (bootstrap, bootstrap-emacs, bootstrap-temacs):
3497 New targets.
3498
05f0d15a
DL
34991999-10-22 Dave Love <fx@gnu.org>
3500
3501 * emacs.c (main): Enable profiling conditional on __linux also.
3502
882fb0e6
GM
35031999-10-20 Gerd Moellmann <gerd@gnu.org>
3504
3505 * xrdb.c (x_load_resources): Set default resources for resource
3506 classes instead of for the specific Emacs.
3507
b5f5bc31
GM
35081999-10-19 Gerd Moellmann <gerd@gnu.org>
3509
66f4dd69
GM
3510 * s/freebsd.h (HAVE_GETLOADAVG): Define as 1 because config.h
3511 defines it that way.
3512
b5f5bc31
GM
3513 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing
3514 if selected_frame is equal to Vterminal_frame.
3515
68c45bf0
PE
35161999-10-19 Paul Eggert <eggert@twinsun.com>
3517
3518 Add support for large files, 64-bit Solaris, system locale codings.
3519
3520 * Makefile.in (emacs): Set the LC_ALL environment variable to "C"
3521 when dumping, so that the dumped Emacs doesn't have stray locale info.
3522 (dired.o): Depend on systime.h.
3523 (editfns.o): Depend on coding.h.
3524
3525 * alloc.c, buffer.c, callproc.c, ccl.c, charset.c, coding.c, data.c,
3526 dispnew.c, editfns.c, emacs.c, filelock.c, floatfns.c, hftctl.c,
3527 keyboard.c, process.c, sysdep.c, unexelf.c, unexhp9k800.c,
3528 unexsunos4.c, vmsfns.c, vmsgmalloc.c, w32faces.c, w32menu.c, w32term.c,
3529 w32xfns.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
3530 Include <config.h> before any system include files.
3531
3532 * alloc.c, buffer.c, ccl.c, data.c, editfns.c, emacs.c, eval.c,
3533 fileio.c, filelock.c, frame.c, insdel.c, keymap.c, lread.c,
3534 m/alpha.h, print.c, search.c, sysdep.c, xdisp.c, xfaces.c, xfns.c,
3535 xmenu.c, xterm.c:
3536 Do not include <stdlib.h>, as <config.h> does this now.
3537
3538 * callproc.c (Fcall_process):
3539 Synchronize messages locale before invoking strerror.
3540 Decode resulting string with locale-coding-system.
3541
3542 * coding.c (Vlocale_coding_system): New var.
3543 (syms_of_coding): Adjust to above change.
3544 (emacs_strerror): New function.
3545
3546 * coding.h (emacs_strerror, Vlocale_coding_system): New decls.
3547
3548 * config.in (HAVE_STDIO_EXT_H, HAVE_TM_GMTOFF, HAVE___FPENDING,
3549 HAVE_FTELLO, HAVE_GETLOADAVG, HAVE_MBLEN, HAVE_MBRLEN,
3550 HAVE_STRSIGNAL): New macros.
3551 (BITS_PER_LONG): Default to 64 if _LP64 is defined.
3552 <stdlib.h>: Include if HAVE_STDLIB_H is defined and NOT_C_CODE isn't.
3553
3554 * dired.c: Include "systime.h".
3555 (Ffile_attributes): Do not cast s.st_size to int; this loses
3556 information if int is 32 bits but st_size and EMACS_INT are larger.
3557 Treat large device numbers like large inode numbers.
3558
3559 * dispnew.c (PENDING_OUTPUT_COUNT): Use __fpending if available.
3560
3561 * editfns.c: Include coding.h.
3562 (emacs_strftime): Remove decl.
3563 (emacs_strftimeu): New decl.
3564 (emacs_memftimeu): Renamed from emacs_memftime; new arg UT.
3565 Use emacs_strftimeu instead of emacs_strftime.
3566 (Fformat_time_string): Convert format string using
3567 Vlocale_coding_system, and convert result back. Synchronize time
3568 locale before invoking lower level function. Invoke
3569 emacs_memftimeu, passing ut, instead of emacs_memftime.
3570
3571 * emacs.c: Include <locale.h> if HAVE_SETLOCALE is defined.
3572 (Vmessages_locale, Vprevious_messages_locale, Vtime_locale,
3573 Vprevious_time_locale): New variables.
3574 (main): Invoke setlocale early, so that initial error messages are
3575 localized properly. But skip locale-setting if LC_ALL is "C".
3576 Fix up locale when it's safe to do so.
3577 (fixup_locale): Moved here from xterm.c.
3578 (synchronize_locale, synchronize_time_locale,
3579 synchronize_messages_locale): New functions.
3580 (syms_of_emacs): Accommodate above changes.
3581
3582 * fileio.c (report_file_error): Convert strerror output according
3583 to Vlocale_coding_system.
3584 (Finsert_file_contents): Check for arithmetic overflow in
3585 computations that depend on file size. Report IO errors
3586 with emacs_strerror, not strerror.
3587
3588 * fns.c (Fgethash): Declare dflt parameter.
3589
3590 * gmalloc.c: Do not define const to nothing if HAVE_CONFIG_H
3591 is defined; that's config.h's job.
3592
3593 * lisp.h (EMACS_INT, BITS_PER_EMACS_INT, EMACS_UINT): If _LP64,
3594 default these values to long, BITS_PER_LONG, and unsigned long.
3595 (VALBITS, MARKBIT, XINT): Do not assume 32-bit EMACS_INT.
3596 (PNTR_COMPARISON_TYPE): Default to EMACS_UINT, not to unsigned int.
3597 (code_convert_string_norecord, fixup_locale,
3598 synchronize_messages_locale, synchronize_time_locale,
3599 emacs_open, emacs_close, emacs_read, emacs_write): New decls.
3600 All Emacs callers of open, close, read, write changed to use
3601 emacs_open, emacs_close, emacs_read, emacs_write.
3602
3603 * lread.c (file_offset, file_tell): New macros. All uses of ftell
3604 changed to file_tell.
3605 (saved_doc_string_position, prev_saved_doc_string_position): Now
3606 of type file_offset.
3607 (init_lread): Do not fix locale here; fixup_locale now does this.
3608
3609 * m/amdahl.h, s/usg5-4.h:
3610 (NSIG): Remove.
3611 (NSIG_MINIMUM): New macro.
3612
3613 * m/cydra5.h, m/dpx2.h, m/mips.h, m/pfa50.h, m/sps7.h, m/stride.h,
3614 m/ustation.h, s/gnu-linux.h, s/hpux.h, s/iris3-5.h, s/iris3-6.h,
3615 s/umips.h, s/usg5-4.h:
3616 (SIGIO): Do not undef.
3617 (BROKEN_SIGIO): New macro.
3618
3619 * m/ustation.h:
3620 (SIGTSTP): Do not undef.
3621 (BROKEN_SIGTSTP): New macro.
3622
3623 * s/gnu-linux.h:
3624 (SIGPOLL, SIGURG): Do not undef.
3625 (BROKEN_SIGPOLL, BROKEN_SIGURG): New macros.
3626
3627 * s/ptx4.h:
3628 (SIGINFO): Do not undef.
3629 (BROKEN_SIGINFO): New macros.
3630
3631 * m/delta.h, s/ptx.h, s/template.h: Doc fix.
3632
3633 * mktime.c, strftime.c: Update to glibc 2.1.2 version, with
3634 some Emacs-related changes merged.
3635
3636 * print.c (float_to_string): Prepend "-" to representation of a
3637 NaN if the NaN is negative.
3638
3639 * process.c (sys_siglist): Omit if HAVE_STRSIGNAL.
3640 (wait_reading_process_input): Use emacs_strerror, not strerror.
3641
3642 * process.c (status_message, sigchld_handler): Synchronize locale,
3643 then use strsignal istead of sys_siglist.
3644 * w32proc.c (sys_wait): Likewise.
3645
3646 * s/aix3-1.h, s/bsd4-1.h, s/dgux.h, s/gnu-linux.h, s/hiuxmpp.h,
3647 s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/osf1.h, s/rtu.h,
3648 s/sunos4-1.h, s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h,
3649 s/usg5-2.h, s/usg5-3.h, s/xenix.h:
3650 (open, close, read, write, INTERRUPTIBLE_OPEN,
3651 INTERRUPTIBLE_CLOSE, INTERRUPTIBLE_IO): Remove.
3652
3653 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): New macros.
3654
3655 * sysdep.c (sys_read, sys_write, read, write, sys_close, close,
3656 sys_open, open): Remove.
3657 (emacs_open, emacs_close, emacs_read, emacs_write): Always define;
3658 the old INTERRUPTIBLE_OPEN, INTERRUPTIBLE_CLOSE, and INTERRUPTIBLE_IO
3659 macros are no longer used.
3660 (emacs_open): Renamed from sys_open. Merge BSD4_1 version.
3661 (emacs_close): Renamed from sys_close.
3662 (emacs_read): Renamed from sys_read.
3663 (emacs_write): Renamed from sys_write.
3664 (sys_siglist): Do not declare if HAVE_STRSIGNAL.
3665 (dup2): Do not print error on failure; the real dup2 doesn't.
3666 (strsignal): New function, defined if !HAVE_STRSIGNAL.
3667
3668 * syssignal.h (SIGINFO): Undef if defined and if BROKEN_SIGINFO
3669 is defined.
3670 (SIGIO, SIGPOLL, SIGTSTP, SIGURG): Likewise.
3671 (NSIG): If less than NSIG_MINIMUM, define to NSIG_MINIMUM.
3672 (strsignal): Declare if !HAVE_STRSIGNAL.
3673
3674 * unexelf.c (ElfBitsW, ELFSIZE, ElfExpandBitsW): New macros.
3675 (ElfW): Define in terms of ElfExpandBitsW.
3676
3677 * w32proc.c (sys_siglist): Remove decl.
3678
3679 * xdisp.c (decode_mode_spec): 3rd arg is int, not char, to comply
3680 with ANSI C.
3681 (display_string): Declare face_string_pos arg.
3682
3683 * xfns.c (Fx_show_tip): Declare timeout param.
3684
3685 * xterm.c: No need to include locale.h.
3686 (x_alloc_lighter_color, x_setup_relief_color):
3687 Pass arg as double, not float, for compatibility with ANSI C.
3688 (fixup_locale): Move to emacs.c.
3689 (x_term_init): Do not setlocale or fixup locale; the main program
3690 does this now.
3691
2f0b74ea
DL
36921999-10-18 Dave Love <fx@gnu.org>
3693
3694 * doc.c (Fdocumentation_property): Gcpro `tem'.
3695
471aa4a0
KH
36961999-10-18 Kenichi Handa <handa@etl.go.jp>
3697
3698 * lread.c (Fload): Calculate bytes of filename correctly.
3699 (openp): Likewise.
3700
aca2020b
KH
37011999-10-18 Keisuke Nishida <kxn30@po.cwru.edu>
3702
3703 * print.c (print_preprocess): In case print-circle is nil,
3704 add OBJ to Vprint_number_table only when OBJ is a symbol.
3705
1f5fe392 37061999-10-18 Kenichi Handa <handa@etl.go.jp>
b843d1ae
KH
3707
3708 * coding.c (code_convert_string): Add record_unwind_protect to
3709 assure setting inhibit_pre_post_conversion back to zero. Take
3710 care of the multibyteness of the working buffer.
3711
3712 * coding.c (inhibit_pre_post_conversion): New variable.
3713 (setup_coding_system): If inhibit_pre_post_conversion is nonzero,
3714 ignore post-read-conversion and pre-write-conversion property of
3715 the coding system.
3716 (code_convert_region_unwind): New function.
3717 (code_convert_region): Set inhibit_pre_post_conversion to 1 while
3718 running pre-write-conversion and post-read-conversion.
3719 (code_convert_string): Likewise.
3720
cd876a91
GM
37211999-10-17 Miles Bader <miles@gnu.org>
3722
3723 * editfns.c: Doc fix.
3724
37251999-10-17 Miles Bader <miles@gnu.org>
3726
3727 * editfns.c (Fconstrain_to_field): Make sure we don't violate the
3728 argument preconditions of find_before_next_newline in the case
3729 where both ONLY_IN_LINE and ESCAPE_FROM_EDGE are set and OLD_POS
3730 was indeed at the edge.
3731
37321999-10-17 Miles Bader <miles@gnu.org>
3733
3734 * minibuf.c (Fminibuffer_complete_and_exit): Supply value for new
3735 ESCAPE_FROM_EDGE parameter to Ffield_beginning.
3736
3737 * editfns.c (text_property_eq, text_property_stickiness): Don't
3738 use initializers for auto variables of type Lisp_Object.
3739 (find_field): Likewise. Use braces around nested ifs.
3740 (Fline_end_position): Store the raw eol in a variable, so that the
3741 final expression doesn't look so ugly.
3742 (Fconstrain_to_field): Doc fix.
3743 (preceding_pos): Renamed from `preceeding_pos'.
3744 (text_property_stickiness, find_field): Call preceding_pos,
3745 not preceeding_pos.
3746
37471999-10-17 Miles Bader <miles@gnu.org>
3748
3749 * editfns.c (Ffield_string_no_properties): New function.
3750 (text_property_stickiness, preceeding_pos): New functions.
3751 (Ffield_string): Remove PROPS parameter.
3752 (find_field): Add MERGE_AT_BOUNDARY parameter.
3753 Rewrite to use stickiness of `field' property to resolve
3754 ambiguous cases.
3755 (Ffield_beginning, Ffield_end): Add ESCAPE_FROM_EDGE parameter.
3756 (Fconstrain_to_field): Likewise.
3757 (syms_of_editfns): Init Sfield_string_no_properties.
3758 (Ffield_string, Ferase_field, Ffield_end):
3759 Supply new MERGE_AT_BOUNDARY argument to find_field.
3760 (Fline_beginning_position, Fline_end_position): Supply new
3761 ESCAPE_FROM_EDGE parameter to Fconstrain_to_field.
3762 Pass a value of Qt for the ONLY_IN_LINE argument to
3763 Fconstrain_to_field (only matters if N != 1).
3764 * syntax.c (Fforward_word): Supply new ESCAPE_FROM_EDGE parameter
3765 to Fconstrain_to_field.
3766
3767 * minibuf.c (Fminibuffer_complete_word): Use
3768 Ffield_beginning to find the prompt end.
3769
37701999-10-17 Miles Bader <miles@gnu.org>
3771
3772 * editfns.c (Fconstrain_to_field): Add get/set-current-point
3773 behavior when NEW_POS is nil.
3774 (find_field): Use XSETFASTINT instead of make_number.
3775 * minibuf.c (Fminibuffer_complete_and_exit): Test for an empty
3776 input string by seeing where the field begins, instead of
3777 looking at text-properties.
3778
37791999-10-17 Miles Bader <miles@gnu.org>
3780
3781 * editfns.c (Qfield): New variable.
3782 (find_field, Ferase_field, Ffield_string,
3783 Ffield_beginning, Ffield_end, Fconstrain_to_field): New functions.
3784 (Fline_beginning_position, Fline_end_position): Constrain to any field.
3785 (make_buffer_string_both): Remove minibuffer-prompt hack.
3786 (syms_of_editfns): Initialize Qfield, and subr entries for
3787 field functions above.
3788 * minibuf.c (read_minibuf): Don't save minibuffer prompt length on
3789 minibuf_save_list.
3790 Don't initialize minibuffer prompt length.
3791 Wrap prompt text-properties around the entire prompt.
3792 Add 'prompt text-property to prompt.
3793 Get final value with Ffield_string instead of make_buffer_string.
3794 (read_minibuf_unwind): Don't restore minibuffer prompt length from
3795 minibuf_save_list.
3796 (do_completion): Get minibuffer input with Ffield_string
3797 instead of Fbuffer_string.
3798 Erase minibuffer input with Ferase_field instead of erase_buffer.
3799 (Fminibuffer_complete_and_exit): Likewise.
3800 Test whether buffer is empty by looking for the 'prompt text
3801 property at the end.
3802 Set prompt length by looking for the end of the prompt text property,
3803 and save prompt length for later use (since there is no longer a
3804 buffer variable to get it from).
3805 (Fminibuffer_prompt_width, Fminibuffer_prompt_end): Functions removed.
3806 (syms_of_minibuf): Remove initializations of
3807 Sminibuffer_prompt_width and Sminibuffer_prompt_end.
3808 * buffer.h (struct buffer): Remove prompt_end_charpos field.
3809 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer, Fkill_buffer):
3810 Don't initialize prompt_end_charpos field.
3811 * syntax.c (Fforward_word): Likewise.
3812 Constrain to any field.
3813
3f6f7508
GM
38141999-10-16 Gerd Moellmann <gerd@gnu.org>
3815
3816 * window.c (enum save_restore_action): New.
3817 (save_restore_orig_size): Change parameter list. Add
3818 functionality to check for valid orig_top and orig_height members
3819 in a window tree.
3820 (grow_mini_window): Call save_restore_orig_size with new parameter
3821 list.
3822 (shrink_mini_window): Restore old window sizes only if old
3823 size information is valid in all windows in a window tree.
3824
06482119
GM
38251999-10-15 Gerd Moellmann <gerd@gnu.org>
3826
2710454d
GM
3827 * xmenu.c (set_frame_menubar): Don't call
3828 x_set_menu_resources_from_menu_face here.
3829 (update_frame_menubar): Call x_set_menu_resources_from_menu_face.
3830
06482119
GM
3831 * xfns.c (gif_load): Fix handling of interlaced GIFs.
3832
17fa2837
DL
38331999-10-14 Dave Love <fx@gnu.org>
3834
3835 * xdisp.c (handle_fontified_prop): GCPRO `pos'.
3836
45f93416
GM
38371999-10-14 Gerd Moellmann <gerd@gnu.org>
3838
3839 * process.c (Fopen_network_stream): Don't loop if gethostbyname
3840 fails and h_errno is TRY_AGAIN.
3841
c765b723
DL
38421999-10-13 Dave Love <fx@gnu.org>
3843
3844 * filelock.c (lock_file): Move gcpro of `fn'.
3845
dace7f4e
GM
38461999-10-10 Gerd Moellmann <gerd@gnu.org>
3847
3848 * keyboard.c (auto-save-interval): Fix documentation.
3849
83c8f461 38501999-10-09 Richard M. Stallman <rms@gnu.org>
73fb36f1
RS
3851
3852 * print.c (print): When removing objects from Vprint_number_table,
3853 only scan the newly added objects.
3854 (print_preprocess): If OBJ is a gensym, and print-continuous-numbering,
3855 unconditionally force it to stay in the table.
3856
85177c86
GM
38571999-10-09 Gerd Moellmann <gerd@gnu.org>
3858
3859 * xfns.c (prepare_image_for_display): Don't try to load image if
3860 loading it failed before.
3861 (lookup_image, prepare_image_for_display): Remember if loading the
3862 image failed.
3863 (xpm_load): Add missing UNBLOCK_INPUT.
3864
3865 * dispextern.h (struct image): New member load_failed_p.
3866
11e4de5d
SM
38671999-10-08 Stefan Monnier <monnier@cs.yale.edu>
3868
f28eba7b 3869 * fileio.c (Fmake_temp_name): Add a reference to `make-temp-file'
11e4de5d
SM
3870 in the docstring.
3871
f1da8f06
GM
38721999-10-08 Gerd Moellmann <gerd@gnu.org>
3873
3874 * xterm.c (XTread_socket) <ClientMessage, WM_TAKE_FOCUS>:
3875 Don't call XSetInputFocus because that can generate additional
3876 FocusIn events.
3877
c37bbd4f
GM
38781999-10-07 Jeffrey C Honig <jch@bsdi.com>
3879
3880 * bsdos4.h [HAVE_LIBNCURSES]: Define TERMINFO and LIBS_TERMCAP.
3881
83c8f461 38821999-10-07 Richard M. Stallman <rms@gnu.org>
78cc5c64
GM
3883
3884 * process.c (wait_reading_process_input): When trying to suck
3885 input from one process, for accept-process-output,
3886 exit that loop if we get EAGAIN or EWOULDBLOCK.
3887
577d9e2f
GM
38881999-10-07 Gerd Moellmann <gerd@gnu.org>
3889
3890 * xfaces.c (Qbitmap_spec_p): Replaces Qpixmap_spec_p.
3891 (Fbitmap_spec_p): Replaces Fpixmap_spec_p.
3892 (load_pixmap): Use Fbitmap_spec_p and Qbitmap_spec_p instead of
3893 Fpixmap_spec_p and Qpixmap_spec_p.
3894 (load_face_colors, check_lface_attrs,
3895 merge_face_vector_with_property,
3896 Finternal_set_lisp_face_attribute): Use Fbitmap_spec_p.
3897 (syms_of_xfaces): Initialize Qbitmap_spec_p, defsubr
3898 Fbitmap_spec_p.
3899
f5737ad2
GM
39001999-10-07 Gerd Moellmann <gerd@gnu.org>
3901
3902 * xdisp.c (display_menu_bar): Use MENU_FACE_ID instead of
3903 MODE_LINE_FACE_ID.
3904
3905 * xfaces.c (toplevel) [USE_MOTIF]: Include some Motif headers.
3906 (struct x_resources) [USE_X_TOOLKIT]: New.
3907 (xm_apply_resources, xm_set_menu_resources_from_menu_face)
3908 [USE_MOTIF]: New.
3909 (xl_apply_resources, xl_set_menu_resources_from_menu_face)
3910 [USE_LUCID]: New.
3911 (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]: New.
3912 (Qmenu): New.
3913 (syms_of_xfaces): Initialize Qmenu.
3914 (realize_basic_faces): Realize face `menu'.
3915 (resolve_face_name): New.
3916 (lface_from_face_name): Use it.
3917 (Finternal_set_lisp_face_attribute): Ditto.
3918 (Fpixmap_spec_p): Rewritten. Extend doc string.
3919
3920 * xmenu.c (set_frame_menubar, xmenu_show): Call
3921 x_set_menu_resources_from_menu_face.
3922
3923 * dispextern.h (enum face_id): Add MENU_FACE_ID.
3924 (toplevel): Include X11/Intrinsic.h.
3925
6a1aa823
DL
39261999-10-03 Ken'ichi Handa <handa@gnu.org>
3927
3928 * coding.c (DECODE_CHARACTER_ASCII): Decode ASCII invocated to GR
3929 correctly.
3930
26901792
DL
39311999-09-30 Kenichi Handa <handa@etl.go.jp>
3932
3933 * category.c (modify_lower_category_set): Set default value of
3934 TABLE correctly.
3935
3936 * minibuf.c (Fminibuffer_complete_word): Calculate string byte
3937 size correctly.
3938
39391999-09-29 Gerd Moellmann <gerd@gnu.org>
3940
3941 * editfns.c (Fpropertize): Renamed from Fproperties.
3942
39431999-09-29 Gerd Moellmann <gerd@gnu.org>
3944
3945 * xdisp.c (resize_mini_window): Do nothing if frame is an X
3946 frame that hasn't been initialized yet.
3947
83c8f461 39481999-09-28 Richard M. Stallman <rms@gnu.org>
a04f1a93
PR
3949
3950 * keymap.c (Fsingle_key_description): Make tem big enough.
3951 (describe_buffer_bindings): Make buf big enough.
3952
83c8f461 39531999-09-27 Richard M. Stallman <rms@gnu.org>
d177c583
PR
3954
3955 * intervals.c (get_local_map): Use indirect_function,
3956 not Findirect_function.
3957
26901792
DL
39581999-09-27 Dave Love <fx@gnu.org>
3959
3960 * cm.h: Remove unneeded declaration of ospeed.
3961
39621999-09-26 Gerd Moellmann <gerd@gnu.org>
3963
3964 * lisp.h (toplevel): Add prototype for
3965 next_single_char_property_change.
3966
3967 * textprop.c (next_single_char_property_change): New.
3968
3969 * xdisp.c (display_prop_end, invisible_text_between_p): Use
3970 next_single_char_property_change.
3971
39721999-09-25 Gerd Moellmann <gerd@gnu.org>
3973
3974 * editfns.c (Fproperties): New.
3975 (syms_of_editfns): Defsubr it.
3976
3977 * xfns.c (lookup_image): Set image's timestamp because it's
3978 used when we look it up.
3979
39801999-09-23 Gerd Moellmann <gerd@gnu.org>
3981
3982 * window.c (enlarge_window): Add window parameter instead of using
3983 selected_window.
3984 (Fdisplay_buffer): Call it with window parameter instead of
3985 setting selected_window.
3986 (Fenlarge_window, Fshrink_window): Ditto.
3987 (shrink_mini_window): If there is no recorded height and position
3988 info, resize mini-window to height 1.
3989
3990 * xfns.c (image_error): Use add_to_log.
3991
3992 * xfaces.c (load_pixmap): Call add_to_log without frame parameter.
3993 (load_face_font_or_fontset, load_color,
3994 merge_face_vector_with_property): Ditto.
3995
3996 * dispextern.h: Add prototype for add_to_log.
3997
3998 * xfaces.c (add_to_log): Move to xdisp.c.
3999
4000 * xdisp.c (add_to_log): Moved from xfaces.c. Remove frame
4001 parameter.
4002
40031999-09-23 Gerd Moellmann <gerd@gnu.org>
4004
4005 * xterm.c (XTread_socket) <MotionNotify>: Change #ifdef
4006 USE_X_TOOLKIT to #ifdef USE_TOOLKIT_SCROLL_BARS.
4007
4008 * xdisp.c (resize_mini_window): Use grow_mini_window and
4009 shrink_mini_window.
4010
4011 * window.c (window_min_size): Add parameter ignore_fixed_p.
4012 (change_window_height): Call window_min_size with new parameter.
4013 (shrink_window_lowest_first, save_restore_orig_size,
4014 grow_mini_window, shrink_mini_window): New.
4015 (make_window, replace_window): Initialize orig_top and
4016 orig_height.
4017 (enlarge_window): Renamed from change_window_height. Make it
4018 static.
4019 (Fdisplay_buffer, Fenlage_window, Fshrink_window): Call
4020 enlarge_window instead of change_window_height.
4021
4022 * window.h (struct window): New members orig_top, orig_height.
4023 (toplevel): Add prototypes for grow_mini_window and
4024 shrink_mini_window. Remove prototype for change_window_height.
4025
40261999-09-21 Eli Zaretskii <eliz@gnu.org>
4027
4028 * frame.c (frame_name_fnn_p): Fix previous change.
4029
40301999-09-20 Gerd Moellmann <gerd@gnu.org>
4031
4032 * minibuf.c (toplevel): Move include of stdio.h to other includes.
4033
4034 * dispnew.c (direct_output_for_insert): Cast arguments to
4035 safe_bcopy to char *.
4036
4037 * lread.c (readchar): Remove unused variables.
4038 (read_filtered_event, read1, Fmapatoms): Ditto.
4039 (toplevel): Include intervals.h.
4040
4041 * eval.c (Fsignal): Remove unused variables.
4042 (Fcommandp, do_autoload): Ditto.
4043
4044 * lisp.h: Add prototype for safe_bcopy, fatal.
4045
4046 * editfns.c (init_editfns): Remove unused variables.
4047 (Fgoto_char, Fchar_after, Fformat): Ditto.
4048 (message_text, message_length): Put in #ifndef HAVE_MENUS.
4049
4050 * data.c (find_symbol_value): Remove unused variables.
4051 (Faref, Fstring_to_number): Ditto.
4052 (toplevel): Include stdio.h.
4053 (Fnumber_to_string): Cast XINT to long for %ld.
4054
4055 * casefiddle.c (casify_object): Remove unused variables.
4056 (casify_region): Ditto.
4057
4058 * filelock.c (get_boot_time): Put local variable used in
4059 conditinally compiled section in #ifdef.
4060 (toplevel): Include stdio.h.
4061
4062 * keymap.c (Flookup_key, Faccessible_keymaps, describe_vector,
4063 keys_of_keymap, syms_of_keymap): Remove unused variables.
4064
40651999-09-20 Gerd Moellmann <gerd@gnu.org>
4066
4067 * xdisp.c (sync_frame_with_window_matrix_rows): Disable frame rows
4068 whose corresponding window rows have been disabled in
4069 try_window_id.
4070
40711999-09-20 Gerd Moellmann <gerd@gnu.org>
4072
4073 * xdisp.c (compute_window_start_on_continuation_line): Handle case
4074 that window start is out of range.
4075 (handle_display_prop, handle_single_display_prop): Replace
4076 marginal area specifications like `left-margin' with `(margin
4077 left-margin)'.
4078 (Qmargin): New.
4079 (syms_of_xdisp): Initialize Qmargin.
4080
40811999-09-19 Gerd Moellmann <gerd@gnu.org>
4082
4083 * syntax.c (update_syntax_table, find_defun_start, back_comment,
4084 describe_syntax, skip_chars): Remove unused variables.
4085 (back_comment, forw_comment): Add braces to if-statement with
4086 if-else as dependent statement.
4087
4088 * process.c (list_processes_1): Remove unused variables.
4089 (Fopen_network_stream, create_process): Add parentheses to
4090 conditional expressions.
4091 (create_process): Put declaration of sigchld in #if 0.
4092 (Fopen_network_stream): Removed unused variables.
4093 (Fopen_network_stream, wait_reading_process_input,
4094 wait_reading_process_input, send_process, send_process): Ditto.
4095 (toplevel): Add prototypes for set_waiting_for_input and
4096 keyboard_bit_set.
4097
4098 * abbrev.c (Fexpand_abbrev): Remove unused variables.
4099
4100 * textprop.c (Fset_text_properties): Remove unused variables.
4101 (text_property_list, verify_interval_modification,
4102 interval_has_all_properties): Ditto.
4103
4104 * callproc.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
4105 (Fcall_process): Remove unused variable.
4106
4107 * keyboard.c (Frecursive_edit): Remove unused variable.
4108 (command_loop_1, safe_run_hooks, kbd_buffer_get_event,
4109 timer_check, make_lispy_event, menu_bar_items,
4110 menu_bar_one_keymap, menu_bar_item, parse_menu_item,
4111 parse_tool_bar_item, read_char_x_menu_prompt, read_key_sequence,
4112 kbd_buffer_get_event, make_lispy_event, read_char_x_menu_prompt,
4113 read_key_sequence): Ditto. Fread_key_sequence,
4114 Fread_key_sequence_vector, Fsuspend_emacs): Ditto.
4115 (read_key_sequence) [GOBBLE_FIRST_EVENT]: Put local variables only
4116 used when GOBBLE_FIRST_EVENT is defined in #ifdef
4117 (Fexecute_extended_command): Cast XINT to long for %ld.
4118 (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
4119 (toplevel): Include sys/types.h.
4120
4121 * lisp.h (RETURN_UNGCPRO): Use do-while (0) idiom.
4122 (toplevel): Add prototypes for stuff_char, and
4123 code_convert_string_norecord.
4124
41251999-09-19 Gerd Moellmann <gerd@gnu.org>
4126
4127 * buffer.h: Add prototype for r_re_alloc.
4128
4129 * insdel.c (copy_text): Removed unused variables.
4130 (count_combining_after, count_combining_after, insert_1_both,
4131 insert_from_string_1, insert_from_buffer_1, check_markers): Ditto.
4132 (adjust_after_replace, replace_range): Add parentheses to logical
4133 expressions. Remove unused variables.
4134 (CHECK_BYTE_COMBINING_FOR_INSERT): Add parentheses to logical
4135 expression.
4136
4137 * alloc.c (Fgarbage_collect): Remove unused variable.
4138 (compact_strings): Add parentheses around assignments in
4139 conditional context.
4140 (toplevel): Put declaration of unused function clear_marks
4141 in #if 0 like its definition.
4142
4143 * lisp.h: Add prototype for shrink_regexp_cache,
4144 sweep_weak_hash_tables.
4145
41461999-09-19 Dave Love <fx@gnu.org>
4147
4148 * process.c (Fopen_network_stream): Use strerror, not gai_strerror.
4149
4150 * doc.c (read_bytecode_char): Declare arg.
4151
4152 * lisp.h: Declare Fcurrent_message, Fmake_temp_name,
4153 read_bytecode_char, Fx_hide_busy_cursor, getloadavg.
4154
41551999-09-18 Richard Stallman <rms@gnu.org>
4156
4157 * xdisp.c (echo_area_display): Turn off code that returned
4158 without doing anything when using a terminal frame.
4159
83c8f461 41601999-09-17 Richard M. Stallman <rms@gnu.org>
27271329
PR
4161
4162 * unexelf.c (unexec): Don't get confused by a short section
4163 just before the bss section.
4164
26901792
DL
41651999-09-16 Gerd Moellmann <gerd@gnu.org>
4166
4167 * emacs.c (main): Remove unused variables.
4168 (sort_args, Fkill_emacs, Fkill_emacs): Ditto.
4169
4170 * lisp.h: Add prototype for uninterrupt_malloc, memory_warnings,
4171 init_fileio_once, syms_of_sound, init_xfns, init_fns
4172 init_sound, check_message_stack.
4173
4174 * emacs.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
4175
4176 * intervals.c (rotate_right, rotate_left): Add braces to avoid
4177 ambiguous else warning.
4178 (split_interval_left): Remove unused variables.
4179 (previous_interval, adjust_intervals_for_deletion,
4180 set_point_both, set_point_both, set_intervals_multibyte_1): Ditto.
4181 (icount, idepth, zero_length): Move into #if 0 section below
4182 original position where these are used.
4183
4184 * buffer.h [REL_ALLOC]: Add prototypes for r_alloc and r_alloc_free.
4185
4186 * buffer.c (Fkill_buffer): Remove unused variables.
4187 (Fkill_buffer, overlays_at, overlays_in, recenter_overlay_lists,
4188 fix_overlays_in_range, Fmove_overlay, Fprevious_overlay_change,
4189 init_buffer_once, (syms_of_buffer): Ditto.
4190
4191 * xrdb.c (get_fallback): Remove unused variable.
4192 (x_load_resources): Ditto. Put local variable used for Motif only
4193 in #ifdef USE_MOTIF.
4194
41951999-09-16 Gerd Moellmann <gerd@gnu.org>
4196
4197 * minibuf.c (read_minibuf): Remove unused variables.
4198 (read_minibuf, Fread_buffer, scmp, Fcompleting_read): Ditto.
4199 (do_completion): Move assignment out of conditional context.
4200 (Fdisplay_completion_list): Add parentheses to conditional expression.
4201
4202 * cm.c (toplevel) [HAVE_TERMCAP_H]: Include termcap.h.
4203
4204 * lisp.h: Add prototype for no_switch_window.
4205
4206 * window.c (Fset_window_buffer): Remove unused variables.
4207 (Fset_window_margins): Ditto.
4208
4209 * xdisp.c (resize_mini_window): Temporarily set the selected
4210 window's or Vminibuf_scroll_window's height to "fixed" around
4211 the call the change_window_height.
4212
4213 * window.c (window_fixed_size_p): Check window's height_fixed_p
4214 flag.
4215
4216 * window.h (struct window): New member height_fixed_p.
4217
4218 * dispnew.c (direct_output_forward_char): Don't use this method
4219 if showing a message or a message was just cleared because we
4220 might need to resize the mini-window.
4221
42221999-09-16 Gerd Moellmann <gerd@gnu.org>
4223
4224 * frame.c (Fdelete_frame): Correct local variable pointing to
4225 selected frame after selecting new frame.
4226
42271999-09-15 Richard Stallman <rms@gnu.org>
4228
4229 * puresize.h (BASE_PURESIZE): Increase to 525000.
4230
4231 * filelock.c (Vtemporary_file_directory): New variable.
4232 (syms_of_filelock): Set up Lisp variable.
4233
42341999-09-15 Gerd Moellmann <gerd@gnu.org>
4235
4236 * term.c (OUTPUT_IF, OUTPUT1_IF): Use do-while.
4237 (encode_terminal_code): Remove unused variables.
4238 (turn_off_face): Ditto.
4239 (toplevel): Include termcap.h if HAVE_TERMCAP_H.
4240
4241 * dispnew.c (update_frame_line): If writing whole desired line,
4242 don't clear to end of line if already at the end.
4243
42441999-09-15 Gerd Moellmann <gerd@gnu.org>
4245
4246 * xdisp.c (resize_mini_window): Don't report changed window
4247 height if it actually hasn't changed.
4248
4249 * widget.c (set_frame_size, EmacsFrameSetCharSize): Remove
4250 unused variables.
4251 (mark_shell_size_user_specified): Put in #if 0 because not used.
4252 (create_frame_gcs): Put in #if 0 because currently unused.
4253 (first_frame_p): Ditto.
4254
4255 * xmenu.c (single_menu_item, Fx_popup_menu, Fx_popup_menu,
4256 single_submenu, update_frame_menubar, set_frame_menubar,
4257 free_frame_menubar, xmenu_show, xdialog_show): Remove unused
4258 variables.
4259
4260 * print.c (PRINTFULLP): Removed because it is no longer used and
4261 is misleading.
4262 (Ferror_message_string): Remove unused variables.
4263 (print_object): Cast argument of sprintf to long for `%ld'
4264 specifier. Remove unused variable.
4265
42661999-09-14 Gerd Moellmann <gerd@gnu.org>
4267
4268 * sound.c (Fplay_sound): Remove usused variables.
4269 (be2hs): Put in #if 0 because it's currently not used.
4270
42711999-09-14 Ken Raeburn <raeburn@gnu.org>
4272
4273 * print.c (Ferror_message_string, print_error_message,
4274 print_object): Use XCAR, XCDR and XFLOAT_DATA instead of explicit
4275 member access.
4276
42771999-09-14 Gerd Moellmann <gerd@gnu.org>
4278
4279 * frame.h (CHECK_FRAME, CHECK_LIVE_FRAME): Put code in do-while.
4280
4281 * frame.c (Fnext_frame): Remove unused variable(s).
4282 (Fprevious_frame, Fmouse_pixel_position, frame_name_fnn_p): Ditto.
4283 (store_frame_param): Add parentheses to conditional expression.
4284 (Fmodify_frame_parameters): Remove unused variables.
4285 (Fmodify_frame_parameters, Fset_frame_size, Fset_frame_position):
4286 Ditto.
4287
4288 * xfns.c (x_set_background_color): Remove unused variable(s).
4289 (x_set_border_pixel): Ditto.
4290 (x_set_menu_bar_lines): Put local variable used only for
4291 non-toolkit case in #ifdef/#endif.
4292 (x_figure_window_size): Remove unused variable(s).
4293 (x_figure_window_size, x_window, lookup_image,
4294 xbm_read_bitmap_file_data, x_build_heuristic_mask, pbm_load,
4295 png_load, jpeg_load, gif_load, x_create_tip_frame,
4296 x_create_tip_frame, Fx_show_tip, x_set_border_pixel): Ditto.
4297
4298 * xterm.c (x_scroll_bar_handle_click): Compile only if
4299 not USE_TOOLKIT_SCROLL_BARS.
4300 (x_scroll_bar_set_handle, x_scroll_bar_note_movement): Ditto.
4301
4302 * dispextern.h: Add prototypes for gamma_correct and
4303 x_kill_gs_process.
4304
4305 * xterm.c (x_produce_glyphs): Remove unused variable(s).
4306 (x_alloc_nearest_color_for_widget, note_tool_bar_highlight,
4307 x_set_toolkit_scroll_bar_thumb): Ditto.
4308 (x_scroll_bar_create): Move local variable to the
4309 conditionally compiled section of code where it is used.
4310 (x_scroll_bar_create): Remove unused variable(s).
4311 (x_scroll_bar_remove, XTread_socket): Ditto.
4312 (XTread_socket) <ConfigureNotify>: Move variables used for
4313 non-toolkit case into conditionally compiled section of code.
4314
4315 * window.h (freeze_window_starts): Fix typo in prototype.
4316
4317 * xdisp.c (display_echo_area_1, try_window_id): Remove unused
4318 variable(s).
4319
4320 * lisp.h: Add prototype for debug_print.
4321
4322 * dispextern.h (xassert) [GLYPH_DEBUG]: Change definition
4323 to use do-while.
4324
4325 * fns.c (SXHASH_COMBINE): Add missing parentheses.
4326 (Fchar_table_range, Fset_char_table_default, mapcar1,
4327 Fyes_or_no_p, sweep_weak_hash_tables): Remove unused variable(s).
4328
4329 * lisp.h: Add prototype for getloadavg.
4330
43311999-09-14 Andreas Schwab <schwab@gnu.org>
4332
4333 * process.c (Fopen_network_stream): Avoid socket decriptor leak.
4334
4335 * lisp.h: Declare close_file_unwind.
4336
43371999-09-14 Richard Stallman <rms@gnu.org>
4338
4339 * filelock.c (get_boot_time): Make the temp name in the proper dir.
4340
43411999-09-13 Gerd Moellmann <gerd@gnu.org>
4342
4343 * xdisp.c (redisplay_window): Make sure start_at_line_beg
4344 is always set correctly.
4345
43461999-09-13 Dave Love <fx@gnu.org>
4347
4348 * xdisp.c (move_it_in_display_line_to): Make type consistent with
4349 declaration.
4350
43511999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
4352
4353 * xdisp.c (QCfile): Move here from xfns.c.
4354 (syms_of_xdisp): Initialize it.
4355 (message2_nolog): Change for Lisp_Object selected_frame.
4356 (message3_nolog, message_with_string, message,
4357 setup_echo_area_for_printing, truncate_echo_area,
4358 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
4359
43601999-09-13 Dave Love <fx@gnu.org>
4361
4362 * xterm.c: Don't continue #define args for benefit of old cc.
4363 (xt_action_hook): Indent #error for benefit of K&R cc.
4364
43651999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
4366
4367 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
4368 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
4369 (XRINGBELL): Removed.
4370
43711999-09-13 Dave Love <fx@gnu.org>
4372
4373 * xfns.c (x_put_x_image): Make type consistent with declaration.
4374
4375 * fns.c (Fmake_hash_table): Fix string continuation.
4376
43771999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
4378
4379 * xfns.c (QCfile): Moved to xdisp.c.
4380 (syms_of_xfns): Don't initialize QCfile.
4381 (check_x_frame): Change for Lisp_Object selected_frame.
4382 (check_x_display_info, x_get_resource_string): Ditto.
4383
43841999-09-13 Gerd Moellmann <gerd@gnu.org>
4385
4386 * minibuf.c (choose_minibuf_frame): Don't try to set the
4387 mini-buffer window's buffer, if the buffer is invalid.
4388
4389 * xfns.c (QCfile): Moved to xdisp.c.
4390 (syms_of_xfns): Don't initialize QCfile.
4391
4392 * xdisp.c (QCfile): Move here from xfns.c.
4393 (syms_of_xdisp): Initialize it.
4394
4395 * lisp.h (selected_frame): Add external declaration.
4396
4397 * xselect.c (x_own_selection): Change for Lisp_Object selected_frame.
4398 (Fx_store_cut_buffer_internal): Ditto.
4399 (Fx_rotate_cut_buffers_internal): Ditto.
4400
4401 * xfaces.c (frame_or_selected_frame): Change for Lisp_Object
4402 selected_frame.
4403 (Finternal_set_lisp_face_attribute): Ditto.
4404 (Finternal_get_lisp_face_attribute): Ditto.
4405 (Finternal_lisp_face_empty_p): Ditto.
4406 (Fdump_face): Ditto.
4407
4408 * term.c (OUTPUT): Change for Lisp_Object selected_frame.
4409 (OUTPUT_IF, ring_bell, set_terminal_modes, reset_terminal_modes,
4410 set_terminal_window, set_scroll_region, reassert_line_highlight,
4411 change_line_highlight, cursor_to, raw_cursor_to, clear_to_end,
4412 clear_end_of_line, clear_end_of_line_raw, clear_end_of_line_raw,
4413 encode_terminal_code, write_glyphs, term_init): Ditto.
4414
4415 * sysdep.c (reset_sys_modes): Change for Lisp_Object selected_frame.
4416 (kbd_input_ast, read_input_waiting): Ditto.
4417
4418 * minibuf.c (choose_minibuf_frame): Change for Lisp_Object
4419 selected_frame.
4420 (read_minibuf): Ditto.
4421
4422 * keyboard.c (command_loop_1): Change for Lisp_Object
4423 selected_frame.
4424 (cmd_error_internal, command_loop_1, read_char,
4425 kbd_buffer_get_event, read_avail_input,
4426 read_char_minibuf_menu_prompt, read_key_sequence, Fsuspend_emacs,
4427 interrupt_signal, quit_throw_to_read_char): Ditto.
4428
4429 * fontset.c (Ffont_info): Change for Lisp_Object selected_frame.
4430 (Ffontset_info): DItto.
4431
4432 * emacs.c (handle_USR1_signal): Change for Lisp_Object selected_frame.
4433
4434 * dispnew.c (selected_frame): Make it a Lisp_Object.
4435 (adjust_frame_glyphs_initially): Change for Lisp_Object selected_frame.
4436 (direct_output_for_insert, direct_output_forward_char,
4437 init_display): Ditto.
4438
4439 * data.c (swap_in_symval_forwarding): Change for Lisp_Object
4440 selected_frame.
4441 (set_internal): Ditto.
4442
4443 * buffer.c (Fother_buffer): Change for Lisp_Object selected_frame.
4444 (record_buffer): Ditto.
4445
4446 * frame.c (Fmake_terminal_frame): Use SELECTED_FRAME.
4447 (do_switch_frame): Change for Lisp_Object selected_frame.
4448 (Fselected_frame): Ditto.
4449 (Fframe_first_window): Use SELECTED_FRAME.
4450 (Fframe_root_window): Change for Lisp_Object selected_frame.
4451 (Fframe_selected_window, Fset_frame_selected_window, Fnext_frame,
4452 Fprevious_frame, other_visible_frames, Fdelete_frame,
4453 Fmouse_position, Fmouse_pixel_position, Fmake_frame_visible,
4454 Fmake_frame_invisible, Ficonify_frame, Fraise_frame, Flower_frame,
4455 Fframe_parameters, Fmodify_frame_parameters, Fframe_char_height,
4456 Fframe_char_width, Fframe_pixel_height, Fframe_pixel_width,
4457 Fset_frame_height, Fset_frame_width): Ditto.
4458
44591999-09-13 Gerd Moellmann <gerd@gnu.org>
4460
4461 * xdisp.c (message2_nolog): Change for Lisp_Object selected_frame.
4462 (message3_nolog, message_with_string, message,
4463 setup_echo_area_for_printing, truncate_echo_area,
4464 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
4465
4466 * xmenu.c (Fx_popup_menu): Change for Lisp_Object selected_frame.
4467 (Fx_popup_dialog): Ditto.
4468
4469 * xfns.c (check_x_frame): Change for Lisp_Object selected_frame.
4470 (check_x_display_info, x_get_resource_string): Ditto.
4471
4472 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
4473 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
4474 (XRINGBELL): Removed.
4475
4476 * window.c (Fminibuffer_window): Change for Lisp_Object
4477 selected_frame.
4478 (Fwindow_at, Fprevious_window, window_loop, select_window_1,
4479 display_buffer_1, Fdisplay_buffer, temp_output_buffer_show,
4480 Fcurrent_window_configuration, init_window_once): Ditto.
4481
4482 * frame.h (SELECTED_FRAME): New.
4483
44841999-09-12 Ken Raeburn <raeburn@gnu.org>
4485
4486 * category.c (word_boundary_p): Use XCAR and XCDR.
4487 * ccl.c (ccl_driver, resolve_symbol_ccl_program,
4488 Fregister_code_conversion_map): Likewise.
4489 * coding.c (setup_coding_system, detect_coding_system,
4490 Ffind_operation_coding_system, Fset_coding_priority_internal):
4491 Likewise.
4492 * doc.c (get_doc_string, Fdocumentation,
4493 store_function_docstring): Likewise.
4494 * editfns.c (save_restriction_restore): Likewise.
4495 * eval.c (Fcond, Fmacroexpand, Fcondition_case, wants_debugger,
4496 skip_debugger, find_handler_clause, Fautoload, Fapply,
4497 run_hook_with_args, run_hook_list_with_args, Ffetch_bytecode):
4498 Likewise.
4499 * fileio.c (Ffind_file_name_handler, Finsert_file_contents,
4500 Fwrite_region, do_auto_save_unwind, Fdo_auto_save,
4501 Fread_file_name): Likewise.
4502 * filelock.c (unlock_all_files): Likewise.
4503 * insdel.c (Fcombine_after_change_execute): Likewise.
4504 * intervals.c (adjust_intervals_for_insertion): Likewise.
4505 * keymap.c (get_keymap_1, Fkeymap_parent, Fset_keymap_parent,
4506 Fset_keymap_parent, fix_submap_inheritance, access_keymap,
4507 store_in_keymap, Fcopy_keymap, define_as_prefix,
4508 current_minor_maps, Faccessible_keymaps,
4509 accessible_keymaps_char_table, Fkey_description,
4510 Fwhere_is_internal, where_is_internal_2, where_is_internal_1,
4511 describe_buffer_bindings, describe_map_tree, shadow_lookup,
4512 describe_map): Likewise.
4513 * lread.c (Fload, load_unwind, close_load_descs, read_vector,
4514 read_list, init_lread): Likewise.
4515 * search.c (Fmatch_data): Likewise.
4516 * sunfns.c (Fsun_menu_internal): Likewise.
4517 * syntax.c (describe_syntax): Likewise.
4518 * undo.c (record_insert, record_delete, Fundo_boundary,
4519 truncate_undo_list): Likewise.
4520 * vmsproc.c (child_sig): Likewise.
4521
4522 * editfns.c (Fformat): Use XFLOAT_DATA.
4523
45241999-09-12 Gerd Moellmann <gerd@gnu.org>
4525
4526 * keyboard.c (command_loop_1): Resize mini-window to the
4527 exact size of a message displayed, if any.
4528
4529 * xdisp.c (resize_mini_window): Add parameter exact_p. Resize
4530 to exact size if exact_p is non-zero.
4531 (display_echo_area_1): Call resize_mini_window with
4532 new parameter.
4533 (redisplay_internal): Ditto.
4534 (resize_echo_area_axactly): New.
4535
4536 * minibuf.c (read_minibuf_unwind): Call resize_mini_window with
4537 new parameter.
4538
4539 * dispextern.h: Change prototype of resize_mini_window.
4540 Add prototype for resize_echo_area_axactly.
4541
4542 * xfaces.c (Fx_family_fonts): Replaces Fx_font_list.
4543 (syms_of_xfaces): Defsubr accordingly.
4544
4545 * xdisp.c (hscroll_window_tree): Choose cursor row from
4546 desired or current matrix.
4547 (redisplay_internal): Hscroll before updating.
4548
45491999-09-12 Gerd Moellmann <gerd@gnu.org>
4550
4551 * syntax.c (Fforward_word): Use prompt_end_charpos instead
4552 of minibuffer_prompt_length.
4553
4554 * minibuf.c (read_minibuf): Use prompt_end_charpos instead
4555 of minibuffer_prompt_length.
4556 (read_minibuf_unwind): Ditto.
4557 (Fminibuffer_complete_and_exit): Ditto.
4558 (Fminibuffer_complete_word): Ditto.
4559 (Fminibuffer_prompt_end): Ditto.
4560
4561 * editfns.c (Fbuffer_string): Use prompt_end_charpos instead
4562 of minibuffer_prompt_length.
4563 (Fline_beginning_position): Ditto.
4564
4565 * buffer.c (Fget_buffer_create): Use prompt_end_charpos instead
4566 of minibuffer_prompt_length.
4567 (Fmake_indirect_buffer): Ditto.
4568 (Fkill_buffer): Ditto.
4569 (Ferase_buffer): Ditto.
4570
4571 * buffer.h (prompt_end_charpos): Replaces
4572 minibuffer_prompt_length.
4573
4574 * minibuf.c (read_minibuf): Return mini-buffer contents
4575 without the prompt.
4576
4577 * editfns.c (make_buffer_string_both): Take out the code
4578 to handle mini-buffer prompts.
4579 (Fbuffer_string): Handle the prompt here, instead.
4580
4581 * xfaces.c (lface_from_face_name): Resolve face aliases.
4582 (Qmode_line): Replaces Qmodeline.
4583 (realize_basic_faces): Use Qmode_line.
4584 (syms_of_xfaces): Initialize Qmode_line.
4585
45861999-09-12 Gerd Moellmann <gerd@gnu.org>
4587
4588 * minibuf.c (read_minibuf): Set minibuf_prompt_width to the
4589 current column after inserting prompt.
4590 (Fminibuffer_prompt_width): Return minibuf_prompt_width.
4591
4592 * xfaces.c (Qframe_update_face_colors): New.
4593 (syms_of_xfaces): Initialize call.
4594 (update_face_from_frame_parameter): Call that function when
4595 the frame's background changes.
4596
45971999-09-12 Richard Stallman <rms@gnu.org>
4598
4599 * insdel.c (del_range_1): Don't treat minibuffer prompt specially.
4600
46011999-09-12 Ken Raeburn <raeburn@gnu.org>
4602
4603 * alloc.c (Fcons, pure_cons, Fpurecopy, Fgarbage_collect,
4604 mark_object, mark_buffer): Use XCAR and XCDR.
4605 * bytecode.c (Fbyte_code): Likewise.
4606 * callint.c (Fcall_interactively, Fprefix_numeric_value):
4607 Likewise.
4608 * callproc.c (Fcall_process, Fcall_process_region, child_setup,
4609 getenv_internal): Likewise.
4610 * dired.c (file_name_completion): Likewise.
4611 * fns.c (Fsafe_length, concat, Fcopy_alist, Fmember, Fmemq, Fassq,
4612 assq_no_quit, Fassoc, Frassq, Frassoc, Fdelq, Fdelete, Freverse,
4613 Fplist_get, Fplist_put, internal_equal, mapcar1): Likewise.
4614 * indent.c (Fcompute_motion): Likewise.
4615 * process.c (decode_status, Fprocess_status, Fprocess_exit_status,
4616 list_processes_1, Fstart_process, Fopen_network_stream,
4617 wait_reading_process_input, read_process_output_call,
4618 kill_buffer_processes, sigchld_handler, exec_sentinel_unwind,
4619 status_notify, wait_reading_process_input): Likewise.
4620 * textprop.c (PLIST_ELT_P, property_value, set_properties,
4621 extend_property_ranges): Likewise.
4622 * w32faces.c (Fpixmap_spec_p, merge_face_list): Likewise.
4623 * w32fns.c (x_window_to_frame, x_set_frame_parameters,
4624 x_report_frame_params, x_set_cursor_type, x_icon_type,
4625 x_figure_window_size, Fx_create_frame, w32_load_system_font,
4626 w32_load_font, enum_font_cb2, w32_list_bdf_fonts, w32_list_fonts,
4627 w32_list_synthesized_fonts, w32_find_ccl_program, Fx_list_fonts,
4628 Fw32_find_bdf_fonts, w32_find_bdf_fonts_in_dir,
4629 x_display_info_for_name, Fx_display_list): Likewise.
4630 * w32menu.c (menubar_id_to_frame, single_keymap_panes,
4631 Fx_popup_menu, Fx_popup_dialog): Likewise.
4632 * w32proc.c (Fw32_set_keyboard_layout): Likewise.
4633 * w32term.c (x_window_to_scroll_bar, w32_read_socket,
4634 w32_term_init, x_delete_display): Likewise.
4635 * xfns.c (x_window_to_frame, x_any_window_to_frame,
4636 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
4637 x_top_window_to_frame, x_set_frame_parameters,
4638 x_report_frame_params, x_set_cursor_type, x_icon_type,
4639 x_figure_window_size, Fx_create_frame, x_display_info_for_name,
4640 Fx_display_list, x_create_tip_frame): Likewise.
4641 * xmenu.c (menubar_id_to_frame, single_keymap_panes,
4642 Fx_popup_menu, Fx_popup_dialog): Likewise.
4643 * xselect.c (x_own_selection, x_get_local_selection,
4644 x_handle_selection_request, x_handle_selection_clear,
4645 x_clear_frame_selections, wait_for_property_change_unwind,
4646 wait_for_property_change, x_handle_property_notify,
4647 copy_multiple_data, x_get_foreign_selection,
4648 lisp_data_to_selection_data, clean_local_selection_data,
4649 x_handle_selection_notify, Fx_get_selection_internal,
4650 x_disown_buffer_selections): Likewise.
4651 * xterm.c (x_window_to_scroll_bar, XTread_socket, x_list_fonts,
4652 x_load_font, x_find_ccl_program, x_term_init, x_delete_display):
4653 Likewise.
4654
4655 * alloc.c (make_float, make_pure_float, Fpurecopy): Use
4656 XFLOAT_DATA.
4657 * bytecode.c (Fbyte_code): Likewise.
4658 * floatfns.c (extract_float, Fexpt, Fabs, rounding_driver,
4659 fmod_float): Likewise.
4660
46611999-09-11 Richard Stallman <rms@gnu.org>
4662
4663 * xdisp.c (run_window_scroll_functions): If hook functions switch
4664 buffers, switch back after.
4665
46661999-09-11 Ken Raeburn <raeburn@gnu.org>
4667
4668 * charset.h (GET_TRANSLATION_TABLE): Use XCDR.
4669 * frame.h (FOR_EACH_FRAME): Use XCAR and XCDR.
4670 (PIXEL_X_FROM_CANON_X, PIXEL_Y_FROM_CANON_Y): Use XFLOAT_DATA.
4671 * keyboard.h (EVENT_HEAD, EVENT_START, EVENT_END, POSN_WINDOW,
4672 POSN_BUFFER_POSN, POSN_WINDOW_POSN, POSN_TIMESTAMP): Use XCAR and
4673 XCDR.
4674 * syntax.h (SYNTAX, SYNTAX_WITH_FLAGS, SYNTAX_MATCH): Use XCAR and
4675 XCDR.
4676
46771999-09-10 Richard Stallman <rms@gnu.org>
4678
4679 * xterm.c (XTread_socket): In XSetInputFocus, use RevertToParent,
4680 not RevertToPointerRoot.
4681 (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
4682 Fix the code to clear around the scroll bar.
4683
46841999-09-10 Keisuke Nishida <kxn30@po.cwru.edu>
4685
4686 * print.c: Support print-circle and related features.
4687 (Vprint_gensym_alist): Removed.
4688 (Vprint_circle, Vprint_continuous_numbering, print_number_index
4689 Vprint_number_table): New variables.
4690 (PRINT_NUMBER_OBJECT, PRINT_NUMBER_STATUS): New macros.
4691 (PRINTPREPARE, PRINTFINISH): Don't set Vprint_gensym_alist.
4692 (print, print_preprocess, print_preprocess_string, print_object):
4693 New/modified functions with print-circle feature. Use
4694 Vprint_number_table instead of Vprint_gensym_alist for print-gensym.
4695 (syms_of_print): Defined new Lisp variables `print-circle',
4696 `print-continuous-numbering', `print-number-table'.
4697
46981999-09-10 Gerd Moellmann <gerd@gnu.org>
4699
4700 * xfns.c (x_build_heuristic_mask): Accept a list `(R G B)'
4701 as background color specification instead of an integer.
4702 (image-cache-eviction-delay): Replaces image-eviction-seconds.
4703 (Vimage_cache_eviction_delay): Replaces Vimage_eviction_seconds.
4704 (clear_image_cache, syms_of_xfns): Use it.
4705 (Qpostscript): Replaces Qghostscript.
4706 (gs_type): Use it.
4707 (gs_image_p): Ditto.
4708 (syms_of_xfns): Initialize Qpostscript.
4709
47101999-09-10 Richard Stallman <rms@gnu.org>
4711
4712 * buffer.c (Ferase_buffer): Don't erase the minibuffer prompt.
4713
47141999-09-09 Richard Stallman <rms@gnu.org>
4715
4716 * editfns.c (Fline_beginning_position): Handle minibuffer prompt here.
4717
4718 * cmds.c (Fbeginning_of_line): Don't handle minibuffer prompt here.
4719
47201999-09-09 Gerd Moellmann <gerd@gnu.org>
4721
4722 * fns.c (Fmakehash): Accept just one optional argument TEST.
4723
4724 * xfns.c (QCindex): New.
4725 (syms_of_xfns): Initialize QCindex.
4726 (gif_load): Use it instead of `:image'.
4727
47281999-09-09 Richard Stallman <rms@gnu.org>
4729
4730 * fileio.c (Fwrite_region): Finish renaming CONFIRM to MUSTBENEW.
4731 (Fwrite_region) [DOS_NT]: Handle `excl' here too.
4732
47331999-09-08 Gerd Moellmann <gerd@gnu.org>
4734
4735 * xdisp.c (Qwhen): Replaces QCwhen.
4736 (syms_of_xdisp): Initialized it instead of QCwhen.
4737 (handle_single_display_prop): Use it instead of QCwhen.
4738
47391999-09-08 Ken'ichi Handa <handa@gnu.org>
4740
4741 * charset.c (translate_char): Reset MSBs of arguments of
4742 MAKE_CHAR.
4743 (CHAR_COMPONENTS_VALID_P): Fix for ASCII.
4744
47451999-09-08 Lars Magne Ingebrigtsen <larsi@gnus.org>
4746
4747 * editfns.c (Fbufsize): Accept an extra BUFFER parameter.
4748
4749 * fns.c (Fbase64_decode_region): Don't place point outside of the
4750 current accessible portion.
4751
47521999-09-07 Richard Stallman <rms@gnu.org>
4753
4754 * keymap.c (fix_submap_inheritance): Do nothing if the proper
4755 parent is an ancestor of SUBMAP; otherwise, add it as the
4756 ultimate ancestor.
4757
47581999-09-07 Gerd Moellmann <gerd@gnu.org>
4759
4760 * xdisp.c (handle_single_display_prop): Change conditional
4761 display property to `:when FORM . VALUE'.
4762
47631999-09-07 Richard Stallman <rms@gnu.org>
4764
4765 * fileio.c (Fwrite_region): Doc fix.
4766
47671999-09-07 Stefan Monnier <monnier@cs.yale.edu>
4768
4769 * fileio.c (Qexcl): New variable.
4770 (report_file_error): Handle EEXIST specially.
4771 (Fwrite_region): Special handling for CONFIRM = `excl'.
4772 (syms_of_fileio): Initialize Qexcl.
4773
47741999-09-07 Gerd Moellmann <gerd@gnu.org>
4775
4776 * xfns.c (x_set_foreground_color): Call
4777 update_face_from_frame_parameter.
4778 (x_set_background_color): Ditto.
4779 (x_set_mouse_color): Ditto.
4780 (x_set_cursor_color): Ditto.
4781 (x_set_border_color): Ditto.
4782 (x_set_scroll_bar_foreground): Ditto.
4783 (x_set_scroll_bar_background): Ditto.
4784
4785 * xfaces.c (recompute_basic_faces): Clear face cache.
4786 (Finternal_set_lisp_face_attribute): Modify frame parameters
4787 if attributes of certain faces are changed.
4788 (update_face_from_frame_parameter): New.
4789
4790 * xfaces.c (realize_basic_faces): Realize new basic faces.
4791
4792 * dispextern.h (SCROLL_BAR_FACE_ID, BORDER_FACE_ID,
4793 CURSOR_FACE_ID, MOUSE_FACE_ID): New.
4794
4795 * xfaces.c (Qscroll_bar, Qcursor, Qborder, Qmouse): New.
4796 (syms_of_xfaces): Intialize new symbols.
4797
4798 * fns.c (Fmakehash): Take one argument, test, make all the
4799 rest keyword arguments.
4800
4801 * window.c (Fset_window_margins): Make window the first argument.
4802 (set_window_buffer): Call Fset_window_margins with window as first
4803 argument.
4804
48051999-09-07 Gerd Moellmann <gerd@gnu.org>
4806
4807 * xfaces.c (Qfringe): Replaces Qmargin.
4808
48091999-09-07 Kenichi Handa <handa@etl.go.jp>
4810
4811 * charset.h: Lots of comments fixed.
4812 (PARSE_MULTIBYTE_SEQ): Make it work also for ASCII string.
4813 (STRING_CHAR_AND_CHAR_LENGTH): This macro removed.
4814
4815 * charset.c : Lots of comments fixed.
4816 (SPLIT_MULTIBYTE_SEQ): Make it work also for ASCII string.
4817 (CHAR_COMPONENTS_VALID_P): Name changed from
4818 CHAR_COMPONENT_VALID_P. Caller changed.
4819
48201999-09-06 Richard Stallman <rms@gnu.org>
4821
4822 * insdel.c (syms_of_insdel): Define Lisp variable
4823 inhibit-modification-hooks.
4824
48251999-09-06 Michael Sperber [Mr. Preprocessor] <sperber@informatik.uni-tuebingen.de>
4826
4827 * s/aix4-2.h (ALIGN_DATA_RELOC): Undefined to support new
4828 unexaix.c.
4829
4830 * s/aix3-1.h (ALIGN_DATA_RELOC): Defined to support new unexaix.c.
4831
48321999-09-06 Dave Love <fx@gnu.org>
4833
4834 * unexaix.c: New version incorporating Michael Sperber's changes
4835 from XEmacs. Should solve problems on AIX 4.3.
4836
4837 * lread.c (Vbyte_boolean_vars): New variable.
4838 (defvar_bool, syms_of_lread): Use it.
4839
48401999-09-05 Richard Stallman <rms@gnu.org>
4841
4842 * minibuf.c (read_minibuf): Put all three properties on the
4843 same range, the whole prompt.
4844
48451999-09-05 Gerd Moellmann <gerd@gnu.org>
4846
4847 * sound.c (Qplay_sound_functions): Replaces Qplay_sound_hook.
4848 (Fplay_sound, syms_of_sound): Use it.
4849 (parse_sound): Allow float volume values in the range [0, 1].
4850 (Fplay_sound): Ditto.
4851
4852 * window.c (Fset_window_vscroll): Make window the first argument,
4853 amount to scroll the second. Take non-negative vscroll as
4854 argument.
4855 (Fwindow_vscroll): Return non-negative vscroll.
4856
4857 * xfns.c (Fx_show_tip): Improve documentation.
4858
48591999-09-05 Gerd Moellmann <gerd@gnu.org>
4860
4861 * buffer.c, buffer.h, dispextern.h, dispnew.c, keyboard.c,
4862 window.c, xdisp.c, xfaces.c, xterm.c, keyboard.h: Change
4863 `top-line' and `top_line' to `header-line' and `header_line'.
4864 Likewise for similar spellings.
4865
48661999-09-05 Gerd Moellmann <gerd@gnu.org>
4867
4868 * xdisp.c (row_containing_pos): New.
4869 (try_window_id): Use it.
4870
4871 * alloc.c, dispextern.h, dispnew.c, frame.c, frame.h, keyboard.c,
4872 lisp.h, termhooks.h, window.c xdisp.c, xfaces.c, xfns.c, xterm.c:
4873 Change spelling of `toolbar' to `tool_bar' or `tool-bar'.
4874 Likewise for upper-case etc.
4875
48761999-09-05 Gerd Moellmann <gerd@gnu.org>
4877
4878 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
4879 Fix reference to renamed variable.
4880
48811999-09-04 Gerd Moellmann <gerd@gnu.org>
4882
4883 * window.c (Qwindow_size_fixed): Replaces Qfixed_window_size.
4884 (window_fixed_size_p): Use Qwindow_size_fixed instead of
4885 Qfixed_window_size.
4886 (syms_of_window): Ditto.
4887
4888 * fns.c (Fmakehash): Exchange optional test and size arguments.
4889
48901999-09-03 Gerd Moellmann <gerd@gnu.org>
4891
4892 * xterm.c (XTset_vertical_scroll_bar): Block input when clearing
4893 under newly created scroll bar.
4894 (expose_window): If window is not yet fully initialized, do
4895 nothing. This can happen when toolkit scroll bars are used and a
4896 window is split. Reconfiguring the scroll bars will generate an
4897 expose for a newly created window.
4898
4899 * frame.h (struct frame): New member `gamma'.
4900
4901 * xfns.c: Include math.h. Add extern declaration for atof in case
4902 we don't see one.
4903 (Qscreen_gamma): New.
4904 (struct x_frame_parm_table): Add prototypes, add
4905 x_set_screen_gamma.
4906 (gamma_correct): New function.
4907 (defined_color): Call it.
4908 (x_set_screen_gamma): New.
4909 (x_set_title): Add parameter old_value.
4910 (RES_TYPE_FLOAT): New.
4911 (x_get_arg): Handle RES_TYPE_FLOAT.
4912 (Fx_create_frame): Call x_default_parameter for `screen-gamma'.
4913 (lookup_pixel_color): Change call to x_alloc_nearest_color to
4914 new prototype.
4915 (lookup_rgb_color): Ditto.
4916 (syms_of_xfns): Initialize Qscreen_gamma.
4917
4918 * xterm.c (x_alloc_nearest_color_for_widget) [USE_X_TOOLKIT]:
4919 New. Allocate color for lwlib widgets.
4920 (x_alloc_nearest_color): Change parameter list include the
4921 frame on which to allocate colors. Gamma-correct colors.
4922 (x_alloc_lighter_color): Call x_alloc_lighter_color with new
4923 parameter list.
4924
4925 * xterm.h: Change protorype of x_alloc_nearest_color.
4926
49271999-09-03 Richard Stallman <rms@gnu.org>
4928
4929 * callproc.c: Delete the system-independent include of stdlib.h
4930 (leaving only the one in the WINDOWSNT conditional).
4931
49321999-09-03 Andrew Choi <choi@cs.hku.hk>
4933
4934 * callproc.c (call-process) [macintosh]: Call mac_run_command in
4935 sysdep.c. The Mac code is modeled after the DOS code.
4936
4937 * dispextern.h [macintosh]: Include macterm.h to define substitute X
4938 Window types and macros.
4939
4940 * frame.h: Do nothing if included a second time.
4941 (enum output_method): Add mac_output frame type.
4942 (union output_data): Add new alternative `mac'.
4943 (FRAME_MAC_P): New macro.
4944
4945 * frame.c (Fframep) [macintosh]: Handle mac frame type.
4946 (syms_of_frame_1): Initialize Qmac.
4947 (make_terminal_frame) [macintosh]: Initialize output_data.mac fields.
4948 (Fmake_terminal_frame) [macintosh]: Add an alternate error check.
4949 (Fmodify_frame_parameters) [macintosh]: Call
4950 mac_set_frame_parameter in macterm.c.
4951
4952 * keyboard.c [macintosh]: Set KBD_BUFFER_SIZE to a smaller value
4953 (512) because Mac compilers limit local data of a function to 32K.
4954
4955 * make-docfiles.c: Correctly handle input files with Mac-style
4956 eol's.
4957
4958 * sysdep.c: Define numerous routines to emulate Unix system calls.
4959
4960 * xfaces.c: on MacOS, define the set of colors listed in rgb.txt
4961 file of an X Window environment.
4962
4963 * xfaces.c: on MacOS, define the Lisp functions x-display-color-p,
4964 x-display-grayscale, x-color-defined-p, and x-color-values.
4965
4966 * sysdep.c [macintosh] (stat, fstat, mkdir, rmdir, utime, access)
4967 (open, creat, unlink, read, write, rename, fopen, pause, alarm)
4968 (signal, sleep, gmtime, localtime, ctime, time, index, mktemp)
4969 (getpwuid, getpwnam, dup, dup2, isatty, getgid, getegid, getuid)
4970 (geteuid, getpid, getenv, uname, opendir, closedir, readdir, getwd.):
4971 New functions, replacing POSIX features.
4972
4973 * sysdep.c [macintosh] (Mac2UnixPathname, Unix2MacPathname, CheckAlarm)
4974 (InitMyPasswd, GetTempDirName, mystrchr, mystrtok, mystrcpy):
4975 (InitEmacsPasswdDir, run_mac_command): New subroutines.
4976
4977 * sysdep.c [macintosh] (targetTicks, alarm_signal_func, myPasswdName)
4978 (myPasswd, emacsPasswdDir, emacsPasswd, myPasswdInited, mask)
4979 (myPasswdDir, TempDirName, sys_siglist): New variables.
4980
4981 * sysdep.c [macintosh] (execvp, wait, croak, fork, kill, sigsetmask)
4982 (sigblock, request_sigio, unrequest_sigio, setpgrp, pipe, symlink)
4983 (link, lstat, readlink, umask, chmod, sbrk, fsync, ioctl):
4984 Define empty stubs so Emacs will link.
4985
49861999-09-03 Gerd Moellmann <gerd@gnu.org>
4987
4988 * xdisp.c: Use XCAR and XCDR instead of XCONS.
4989
4990 * window.h: New member frozen_window_start_p.
4991
4992 * window.c (foreach_window, foreach_window_1): New.
4993 (freeze_window_start, freeze_window_starts): New.
4994 (make_window): Initialize frozen_window_start_p.
4995 (replace_window): Ditto.
4996 (Fset_window_point): Remove references to deleted variables.
4997 (Fset_window_start): Ditto.
4998
4999 * xdisp.c (Vresize_mini_config, resize_mini_frame,
5000 resize_mini_initial_height): Removed.
5001 (syms_of_xdisp): Remove references to these variables.
5002 (resize_mini_window): Don't save window configuration, freeze
5003 window starts instead. Enlarge window until displaying an empty
5004 buffer, then shrink it. Make the function externally visible.
5005 (redisplay_window): Treat frozen window start like forced start,
5006 but accept point outside of the window.
5007
5008 * dispextern.h: Add function prototype for resize_mini_window.
5009
5010 * minibuf.c (read_minibuf_unwind): Resize mini-window when
5011 reaching minibuf_level 0.
5012
5013 * lisp.h: Remove extern declarations for variables deleted from
5014 xdisp.c.
5015
5016 * dispnew.c (adjust_frame_glyphs): Remove reference to
5017 Vresize_mini_config.
5018
50191999-09-03 Gerd Moellmann <gerd@gnu.org>
5020
5021 * xfns.c (x_set_scroll_bar_width): Change conditional compilation
5022 to USE_TOOLKIT_SCROLL_BARS.
5023
5024 * xterm.c (x_scroll_bar_create): Don't clear under scroll bar
5025 here.
5026 (XTset_vertical_scroll_bar): Clarify position computations. Clear
5027 under newly created scroll bar. Put toolkit scroll bars in the
5028 middle of the area reserved for the scroll bar.
5029
50301999-09-03 Kenichi Handa <handa@etl.go.jp>
5031
5032 The following changes are for the new handling of mulitbyte
5033 sequence. Now, except for a composite character, no multibyte
5034 character in string/buffer has trailing garbage bytes. For
5035 instance, the length of string "\201\300\300" is now 2, the first
5036 character is Latin-1 A-grave, the second is raw \300.
5037
5038 * charset.h (MAKE_NON_ASCII_CHAR): Handle the case that C1 or C2
5039 are negative.
5040 (MAKE_CHAR): Don't set MSBs of C1 and C2 to 0.
5041 (VALID_MULTIBYTE_CHAR_P): This macro deleted.
5042 (PARSE_COMPOSITE_SEQ): New macro.
5043 (PARSE_CHARACTER_SEQ): New macro.
5044 (PARSE_MULTIBYTE_SEQ): New macro.
5045 (CHAR_PRINTABLE_P): New macro.
5046 (STRING_CHAR): Adjusted for the change of string_to_non_ascii_char.
5047 (STRING_CHAR_AND_LENGTH): Likewise.
5048 (STRING_CHAR_AND_CHAR_LENGTH): Define it as STRING_CHAR_AND_LENGTH.
5049 (INC_POS): Use the macro PARSE_MULTIBYTE_SEQ.
5050 (DEC_POS, BUF_INC_POS, BUF_DEC_POS): Likewise,
5051
5052 * charset.c (SPLIT_COMPOSITE_SEQ): New macro.
5053 (SPLIT_CHARACTER_SEQ): New macro.
5054 (SPLIT_MULTIBYTE_SEQ): New macro.
5055 (CHAR_COMPONENT_VALID_P): New macro.
5056 (non_ascii_char_to_string): Generate a multibyte sequence as far
5057 as possible.
5058 (string_to_non_ascii_char): The 4th arg exclude_tail_garbage is
5059 deleted. Caller changed. Use the macro SPLIT_MULTIBYTE_SEQ.
5060 (split_non_ascii_string): Likewise.
5061 (multibyte_form_length): Use the macro PARSE_MULTIBYTE_SEQ.
5062 (char_printable_p): New function.
5063 (translate_char): Check character by NATNUMP instead of INTEGERP.
5064 (unibyte_char_to_multibyte): Call char_valid_p instead of
5065 VALID_MULTIBYTE_CHAR_P.
5066 (Fmake_char_internal): Check the arguments more rigidly.
5067 (Fcharset_after): Use the macro SPLIT_MULTIBYTE_SEQ.
5068 (char_valid_p): Check the validity by CHAR_COMPONENT_VALID_P.
5069 (Fmultibyte_char_to_unibyte): Check the validity of character by
5070 CHAR_VALID_P.
5071 (chars_in_text): Call multibyte_chars_in_text.
5072 (multibyte_chars_in_text): Use the macro PARSE_MULTIBYTE_SEQ.
5073 (Fcompose_string): Use the macro STRING_CHAR_AND_LENGTH instead of
5074 STRING_CHAR_AND_CHAR_LENGTH (which is obsolete now).
5075
5076 * data.c (Faset): Adjust the way to check byte-combining
5077 possibility for the new handling of multibyte sequence.
5078
5079 * editfns.c (Fsubst_char_in_region): Likewise.
5080
5081 * fns.c (count_combining): Use the macro PARSE_MULTIBYTE_SEQ.
5082 (string_char_to_byte): Likewise.
5083 (string_byte_to_char): Likewise.
5084
5085 * indent.c (MULTIBYTE_BYTES_WIDTH): Delete the 2nd arg C. Use the
5086 macro STRING_CHAR_AND_LENGTH. Caller changed.
5087
5088 * insdel.c (count_combining_composition): New function.
5089 (count_combining_before): Adjust the way to check byte-combining
5090 possibility for the new handling of multibyte sequence. Call
5091 count_combining_composition for a composite character.
5092 (count_combining_after): Likewise.
5093
5094 * print.c (print_string): Use the macro STRING_CHAR_AND_LENGTH.
5095 (print): Likewise.
5096
5097 * dispextern.h (struct it): Change the size of the member
5098 `ctl_chars'.
5099
5100 * xdisp.c (get_next_display_element): Display incomplete multibyte
5101 sequence (e.g. \222\300) by octal form.
5102
51031999-09-02 Gerd Moellmann <gerd@gnu.org>
5104
5105 * xterm.h (VERTICAL_SCROLL_BAR_WIDTH_TRIM): Change from 2 to 0.
5106
5107 * fns.c (Fhash_table_weakness): Replaces Fhash_table_weak.
5108 (cmpfn_eql, sxhash): Use XFLOAT_DATA.
5109
51101999-09-02 Gerd Moellmann <gerd@gnu.org>
5111
5112 * buffer.c (set_buffer_internal): Never set
5113 windows_or_buffers_changed.
5114
5115 * xdisp.c (try_window_id): Reset first_unchanged_at_end_row
5116 if we have displayed to the bottom of the window.
5117
5118 * syntax.c (Fforward_word): Stop at a mini-buffer prompt end
5119 in both directions. Extend documentation.
5120
51211999-09-01 Gerd Moellmann <gerd@gnu.org>
5122
5123 * minibuf.c (read_minibuf): Flush display after setting cursor to
5124 column 0.
5125
51261999-08-31 Gerd Moellmann <gerd@gnu.org>
5127
5128 * s/freebsd.h (__FreeBSD_version): Don't define it if it is
5129 already defined. This avoids a warning from buffer.c.
5130
51311999-08-30 Gerd Moellmann <gerd@gnu.org>
5132
5133 * xterm.h (FRAME_X_FLAGS_AREA_COLS): Define it as the total width
5134 of both margins.
5135 (FRAME_X_FLAGS_AREA_WIDTH): Likewise.
5136 (FRAME_X_LEFT_FLAGS_AREA_WIDTH): New.
5137 (FRAME_X_RIGHT_FLAGS_AREA_WIDTH): New.
5138
5139 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add in FRAME_FLAGS_AREA_COLS
5140 once instead of twice.
5141 (FRAME_LEFT_FLAGS_AREA_WIDTH): New.
5142
5143 * xterm.c: Remove unused bitmaps.
5144 (continued_bits, continuation_bits, overlay_bits): Change images.
5145 (x_draw_vertical_border): Use FRAME_X_RIGHT_FLAGS_AREA_WIDTH
5146 instead of FRAME_X_FLAGS_AREA_WIDTH.
5147 (x_after_update_window_line): Ditto.
5148 (x_draw_bitmap): Likewise.
5149 (x_draw_row_bitmaps): Likewise.
5150 (x_draw_glyph_string_box): Likewise.
5151 (x_draw_glyphs): Likewise.
5152 (x_scroll_run): Likewise.
5153 (expose_window_tree): Likewise.
5154 (note_mode_line_highlight): Likewise.
5155 (XTset_vertical_scroll_bar): Likewise.
5156 (x_clip_to_row): Likewise.
5157 (x_set_window_size): Likewise.
5158
5159 * xfns.c (x_figure_window_size): Use FRAME_FLAGS_AREA_COLS instead
5160 of 2 * that value.
5161
5162 * xdisp.c (window_box_width): Use FRAME_FLAGS_AREA_COLS instead of
5163 2 * that value.
5164 (window_box_left): Use FRAME_LEFT_FLAGS_AREA_WIDTH instead of
5165 FRAME_FLAGS_AREA_WIDTH.
5166
5167 * window.c (coordinates_in_window): Use
5168 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
5169 (window_internal_width): Subtract FRAME_FLAGS_AREA_WIDTH once
5170 instead of twice.
5171
5172 * widget.c (set_frame_size): Set flags_area_extra to
5173 FRAME_FLAGS_AREA_WIDTH instead of 2 * that width.
5174 (EmacsFrameSetCharSize): Ditto.
5175
5176 * dispnew.c (mode_line_string): Add FRAME_LEFT_FLAGS_AREA_WIDTH
5177 instead of FRAME_FLAGS_AREA_WIDTH.
5178
5179 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract
5180 FRAME_FLAGS_AREA_COLS once.
5181 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Add
5182 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
5183
51841999-08-30 Gerd Moellmann <gerd@gnu.org>
5185
5186 * freebsd.h (C_SWITCH_SYSTEM): Added to let configure find headers
5187 in /usr/X11R6/include which are checked for with AC_CHECK_HEADER.
5188
51891999-08-30 Gerd Moellmann <gerd@gnu.org>
5190
5191 * fns.c (QCweakness): Replaces QCweak.
5192 (Fmake_hash_table): Ditto.
5193 (Fmakehash): Ditto.
5194 (syms_of_fns): Ditto.
5195
51961999-08-29 Richard Stallman <rms@gnu.org>
5197
5198 * search.c (compile_pattern_1): Enable RE_CHAR_CLASSES for regexp.
5199
5200 * sysdep.c (read_input_waiting): Pass read_socket_hook just 4 args.
5201
5202 * syntax.h (SYNTAX_COMMENT_NESTED, SYNTAX_FLAGS_COMMENT_NESTED):
5203 Add support for nested comments.
5204
863476d1
SM
5205 * syntax.c (Fforward_comment, scan_lists, scan_sexps_forward):
5206 Consolidate the forward comment code into the new `forw_comment'.
5207 (forw_comment): New subroutine. Added support for nested comments.
5208 (lisp_parse_state, back_comment, Fmodify_syntax_entry)
5209 (Fparse_partial_sexp): Add support for nested comments.
26901792
DL
5210
52111999-08-28 Ken Raeburn <raeburn@gnu.org>
5212
5213 * lisp.h (struct Lisp_Cons, XCAR, XCDR, struct Lisp_Float): Change
5214 names of structure elements if HIDE_LISP_IMPLEMENTATION is
5215 defined, to help detect code that uses knowledge of the Lisp
5216 internals that it shouldn't have.
5217 (XFLOAT_DATA): New macro.
5218
52191999-08-25 Gerd Moellmann <gerd@gnu.org>
5220
5221 * syntax.c (Fforward_word): If in a mini-buffer and moving
5222 backwards, stop in front of the prompt to prevent accidentially
5223 moving into the read-only prompt.
5224
5225 * window.c (Frecenter): Clear frame if called with nil or no arg.
5226
5227 * xdisp.c (resize_mini_window): Don't resize if
5228 Vmax_mini_window_height is nil. Otherwise, use a default if
5229 Vmax_mini_window_height is not ot a number.
5230 (syms_of_xdisp): Extend documentation of Vmax_mini_window_height.
5231
52321999-08-25 Alexandre Oliva <oliva@dcc.unicamp.br>
5233
5234 * unexelf.c: Merge IRIX debugging info patch from unexsgi.c
5235 * m/iris4d.h: Use unexelf for IRIX 5.*.
5236 * m/iris5d.h: Use unexelf for IRIX 6.*.
5237 * unexsgi.c: Deleted.
5238
5239 * unexelf.c: Auto-detect .sbss section.
5240 (round_up): Make it static.
5241 (unexec): Declare alignment as Elf Word. Skip ``Program
5242 segment above .bss'' test on MIPS without .sbss.
5243 Copy sections .got and .sdata1 sections. Adjust offsets in
5244 sections .sdata, .lit4, .lit8, .got and .sdata1.
5245
52461999-08-25 Gerd Moellmann <gerd@gnu.org>
5247
5248 * xdisp.c (try_window_id): Remove typo.
5249
52501999-08-24 Gerd Moellmann <gerd@gnu.org>
5251
5252 * xdisp.c (try_window_id): Recognize case that PT == ZV and in
5253 unchanged text at the bottom when computing the cursor position.
5254 (message3_nolog): Raise frame only if minibuffer_auto_raise is
5255 set.
5256
5257 * lisp.h (PVEC_TYPE_MASK): Add the bit for hash tables.
5258
52591999-08-24 Gerd Moellmann <gerd@gnu.org>
5260
5261 * xfaces.c (Qmargin): Replacement for Qbitmap_area.
5262 (realize_basic_faces): Replace Qmargin for Qbitmap_area.
5263 (syms_of_xfaces): Ditto.
5264
5265 * window.c (Fset_window_point): Reset Vresize_mini_config.
5266 (Fset_window_start): Ditto.
5267 (set_window_buffer): Ditto.
5268
5269 * dispnew.c (adjust_frame_glyphs): Reset Vresize_mini_config.
5270
5271 * xdisp.c (redisplay_window): Don't ever test just_this_one_p
5272 before calling try_window.
5273 (echo_area_display): If height has changed, update other windows.
5274 (resize_mini_frame, resize_mini_initial_height): New.
5275 (resize_mini_window): Save/restore window configuration
5276 differently.
5277
5278 * lisp.h (Vresize_mini_config, resize_mini_frame,
5279 resize_mini_initial_height): Add extern declarations.
5280
5281 * xterm.c (expose_window_tree): Fix typo CANON_Y_UNIT to
5282 CANON_X_UNIT.
5283
5284 * xfns.c [HAVE_JPEG]: Work around a warning about HAVE_STDLIB_H
5285 being redefined in jconfig.h.
5286
52871999-08-23 Ken'ichi Handa <handa@gnu.org>
5288
5289 * coding.h: Include "ccl.h" instead of "../src/ccl.h".
5290
52911999-08-22 Gerd Moellmann <gerd@gnu.org>
5292
5293 * alloc.c (mark_glyph_matrix): Mark strings only.
5294
5295 * xdisp.c (redisplay_internal): Clear garbaged frames after
5296 resizing mini-window.
5297
52981999-08-22 Gerd Moellmann <gerd@gnu.org>
5299
5300 * xdisp.c (unwind_with_echo_area_buffer): Use
5301 set_buffer_internal_1 instead of set_buffer_internal.
5302 (with_echo_area_buffer): Ditto.
5303
5304 * buffer.c (set_buffer_internal): Set windows_or_buffers_changed
5305 only if buffer is displayed somewhere.
5306
5307 * buffer.h (BUF_COMPUTE_UNCHANGED): New.
5308
5309 * insdel.c (gap_left): Use BUF_COMPUTE_UNCHANGED.
5310 (gap_right): Ditto.
5311 (modify_region): Ditto.
5312
5313 * buffer.c (modify_overlay): Use BUF_COMPUTE_UNCHANGED.
5314
5315 * xdisp.c (Vresize_mini_config): New.
5316 (resize_mini_window): Use it to save restore original window
5317 configuration
5318 (syms_of_xdisp): Initialize it.
5319
5320 * buffer.h (struct buffer): Add prevent_redisplay_optimizations_p.
5321
5322 * dispextern.h (struct glyph_matrix): Add buffer, begv, and zv.
5323
5324 * xdisp.c (reconsider_clip_changes): New.
5325 (redisplay_internal, redisplay_window): Call it.
5326 (mark_window_display_accurate, redisplay_internal): Set current
5327 matrix' buffer, begv, zv.
5328
5329 * window.c (Fset_window_hscroll): Set
5330 prevent_redisplay_optimizations_p instead of clip_changed.
5331 (Fset_window_hscroll): Ditto.
5332 (temp_output_buffer_show): Ditto.
5333 (Fset_window_vscroll): Ditto.
5334
5335 * buffer.c (reset_buffer): Set clip_changed to 0 and
5336 prevent_redisplay_optimizations_p to 1.
5337 (Fget_buffer_create): Set prevent_redisplay_optimizations_p to 1.
5338
5339 * buffer.h (BUF_UNCHANGED_MODIFIED, UNCHANGED_MODIFIED,
5340 BUF_OVERLAY_UNCHANGED_MODIFIED, OVERLAY_UNCHANGED_MODIFIED,
5341 BUF_BEG_UNCHANGED, BEG_UNCHANGED, BUF_END_UNCHANGED,
5342 END_UNCHANGED): New.
5343 (struct buffer_text): Add beg_unchanged, end_unchanged,
5344 unchanged_modified, overlay_unchanged_modified.
5345
5346 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
5347 overlay_unchanged_modified): Removed.
5348 (with_echo_area_unwind_data): Don't save beg/end_unchanged.
5349 (unwind_with_echo_area_buffer): Don't restore them.
5350 (debug_beg_unchanged, debug_end_unchanged) [GLYPH_DEBUG]: Removed.
5351 (text_outside_line_unchanged_p, redisplay_internal,
5352 try_scrolling): Use/set buffer-specific beg/end_unchanged.
5353 (redisplay_window): Let try_window_id be called if more than one
5354 window is displayed. Use/set buffer-specific beg/end_unchanged.
5355 (get_last_unchanged_at_beg_row, get_first_unchanged_at_end_row,
5356 try_window_id):
5357 Use buffer-specific beg/end_unchanged.
5358
5359 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
5360 overlay_unchanged_modified): Remove extern declarations.
5361
5362 * keyboard.c (command_loop_1): Set beg/end_unchanged per
5363 buffer.
5364
5365 * insdel.c (gap_left): Compute beg/end_unchanged per buffer.
5366 (gap_right): Ditto.
5367 (adjust_after_replace): Likewise.
5368 (replace_range, del_range_2, modify_region): Likewise.
5369
5370 * dispnew.c (direct_output_for_insert): Set beg_unchanged
5371 and unchanged_modified per buffer.
5372
5373 * coding.c (code_convert_region): Compute beg/end_unchanged per
5374 buffer.
5375
5376 * buffer.c (modify_overlay): Compute beg/end_unchanged
5377 per buffer.
5378 (Fget_buffer_create): Initialize new members of the buffer
5379 structure.
5380
53811999-08-22 Gerd Moellmann <gerd@gnu.org>
5382
5383 * lisp.h: Add prototype for copy_hash_table and Fcopy_hash_table.
5384
5385 * fns.c (Qkey, Qvalue): Renamed from Qkey_weak, and Qvalue_weak.
5386 (Qkey_value_weak): Removed.
5387 (make_hash_table): Use nil, `key', `value', t for weakness.
5388 (Fmake_hash_table): Ditto.
5389 (copy_hash_table): New.
5390 (Fcopy_hash_table): New.
5391
53921999-08-22 Gerd Moellmann <gerd@gnu.org>
5393
5394 * xfns.c: Call change_frame_size and do_pending_window_change with
5395 new parameter.
5396
53971999-08-21 Gerd Moellmann <gerd@gnu.org>
5398
5399 * xdisp.c (resize_mini_window): Do it for truncate-lines t as
5400 well.
5401 (redisplay_internal): Resize mini-window only if text might
5402 have changed.
5403 (display_echo_area): Reset displayed echo_area_buffer to nil
5404 at the end if we're displaying a nil message.
5405
54061999-08-21 Gerd Moellmann <gerd@gnu.org>
5407
5408 * fns.c (hash_lookup): Test with EQ before calling key comparion
5409 function.
5410 (hash_remove): Ditto.
5411 (cmpfn_eq): Removed.
5412 (cmpfn_eql): Don't test with EQ.
5413 (cmpfn_equal): Ditto.
5414 (make_hash_table): Set comparison function for `eq' to null.
5415
5416 * buffer.c, cmds.c, editfns.c, indent.c, insdel.c, buffer.h:
5417 Remove conditional compilation on NO_PROMPT_IN_BUFFER.
5418
5419 * dispextern.h (NO_PROMPT_IN_BUFFER): Removed.
5420
5421 * window.c, widget.c, process.c, keyboard.c, frame.c, xdisp.c,
5422 xterm.c: Call change_frame_size and do_pending_window_change with
5423 new parameter.
5424
5425 * dispnew.c (do_pending_window_change): Add parameter `safe'.
5426 (change_frame_size): Ditto.
5427 (change_frame_size_1): Ditto. Deley size changes if redisplaying
5428 and not called from a safe place.
5429 (window_change_signal): Call change_frame_size with new parameter.
5430
5431 * dispextern.h: Change prototypes for do_pending_window_change
5432 and change_frame_size.
5433
5434 * xfaces.c (face_at_buffer_position): Don't xassert that
5435 window's buffers equals current_buffer; this is not the
5436 case during echo area display.
5437
54381999-08-21 Gerd Moellmann <gerd@gnu.org>
5439
5440 * xdisp.c, minibuf.c: Remove conditional compilation on
5441 NO_PROMPT_IN_BUFFER.
5442
5443 * minibuf.c (Fminibuffer_prompt_end): New.
5444 (syms_of_minibuf): Defsubr it. Remove
5445 minibuffer-prompt-in-buffer.
5446 (Fminibuffer_prompt_width): Return 0 if not in mini-buffer.
5447 Extend documentation.
5448
5449 * xdisp.c (get_next_display_element): Display \r as ^M.
5450
5451 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Clear
5452 under scroll bar widget.
5453
54541999-08-21 Gerd Moellmann <gerd@gnu.org>
5455
5456 * xdisp.c (minibuffer_scroll_overlap): Removed because not used
5457 anywhere.
5458 (unwind_redisplay): Return nil.
5459 (clear_garbaged_frames): New.
5460 (redisplay_internal): Use it.
5461 (echo_area_display): Ditto.
5462 (resize_mini_window): Mew.
5463 (display_echo_area_1): Use it to resize echo area window.
5464 (redisplay_internal): Use it to resize active mini-window.
5465
5466 * dispextern.h, lisp.h: Add function prototypes.
5467
5468 * dispnew.c (set_window_cursor_after_update): Do the
5469 cursor_in_echo_area case only for a mini-window showing
5470 a message. Don't let cursor end up after the end of a row.
5471
5472 * xdisp.c (echo_area_glyphs, echo_area_message,
5473 echo_area_glyphs_length, previous_echo_glyphs,
5474 previous_echo_area_message, previous_echo_area_glyphs_length):
5475 Removed.
5476 (Vmessage_stack, echo_area_buffer, echo_buffer,
5477 display_last_displayed_message_p, Vwith_echo_area_save_vector): New.
5478 (message2_nolog): Use set_message and clear_message.
5479 (message3): Rename parameter len to nbytes to make clear what
5480 it is.
5481 (message3_nolog): Ditto. Use set_message and clear_message.
5482 (update_echo_area): Rewritten.
5483 (with_echo_area_buffer): New.
5484 (with_echo_area_buffer_unwind_data, unwind_with_area_buffer): New.
5485 (setup_echo_area_for_printing): New.
5486 (display_echo_area, display_echo_area_1): New.
5487
5488 (current_message, current_message_1): New.
5489 (push_message, restore_message, pop_message,
5490 check_message_stack): New.
5491 (truncate_echo_area): Rewritten.
5492 (truncate_message_1): New.
5493 (set_message, set_message_1, clear_message): New.
5494 (echo_area_display): Rewritten.
5495 (redisplay_internal): Check for needed echo area update
5496 differently.
5497 (redisplay_preserve_echo_area): Rewritten.
5498 (redisplay_window): Check for mini-window displaying echo area
5499 message differently.
5500 (syms_of_xdisp): Initialize Vmessage_stack and echo area buffers.
5501 Remove initialzation of removed variables.
5502 (init_xdisp): Remove references to removed variables.
5503
5504 * dispnew.c (adjust_frame_message_buffer): Removed references
5505 to echo_area_glyphs and previous_echo_glyphs.
5506 (direct_output_for_insert): Check for mini-window displaying
5507 echo area message differently.
5508 (update_frame): Likewise.
5509 (set_window_cursor_after_update): Likewise. In echo area,
5510 don't try to set cursor on rows that aren't enabled.
5511
5512 * print.c: Remove conditional compilation on `standalone'.
5513 (glyph_len, str_to_glyph_cpy, str_to_glyph_ncpy,
5514 glyph_to_str_cpy): Remove that section because GLYPHs are no
5515 longer used in that way.
5516 (PRINTDECLARE): Add multibyte.
5517 (PRINTPREPARE, PRINTFINISH): Handle printcharfun t differently.
5518 (printbufidx): Removed.
5519 (printchar, strout): Rewritten.
5520
5521 * keyboard.c (ok_to_echo_at_next_pause): Make it a pointer to
5522 a struct kboard.
5523 (echo_kboard): New.
5524 (echo_now): Set echo_kboard to the current kboard.
5525 (cancel_echoing): Set echo_kboard to null.
5526 (cmd_error_internal): Use clear_message, remove references
5527 to echo_area_glyphs and echo_area_message.
5528 (command_loop_1): Check for echo area messages differently.
5529 (read_char): Likewise.
5530 (record_menu_key): Use clear_message.
5531 (Fexecute_extended_command): Check for echo area messages
5532 differently. Use push_message, restore_message, pop_message.
5533
5534 * alloc.c (Fgarbage_collect): Use push_message, restore_message,
5535 pop_message.
5536
5537 * emacs.c (shut_down_emacs): Call check_message_stack.
5538
5539 * lisp.h: Add function prototypes and extern declarations for
5540 new functions and variables.
5541
5542 * fileio.c (Fdo_auto_save): Use push_message, restore_message,
5543 pop_message.
5544
5545 * minibuf.c (read_minibuf): Use clear_message instead of
5546 setting echo_area_glyphs.
5547 (Fminibuffer_completion_help): Ditto.
5548
5549 * editfns.c (Fcurrent_message): Rewritten.
5550
5551 * frame.c, window.h: Remove references to echo_area_glyphs
5552 and previous_echo_glyphs.
5553
55541999-08-21 Dave Love <fx@gnu.org>
5555
5556 * aix3-2-5.h (C_DEBUG_SWITCH): Use -g -O.
5557 * aix4-1.h: Likewise.
5558
5559 * irix6-5.h (C_DEBUG_SWITCH): Set for debug and optimize.
5560
55611999-08-20 Gerd Moellmann <gerd@gnu.org>
5562
5563 * xfns.c: Remove tiff34 prefix from include.
5564
55651999-08-20 Dave Love <fx@gnu.org>
5566
5567 * cm.c: Revert previous change.
5568
55691999-08-19 Gerd Moellmann <gerd@gnu.org>
5570
5571 * xterm.c (XTset_vertical_scroll_bar): Fix previous change. Clear
5572 under scroll bar with width FRAME_SCROLL_BAR_COLS.
5573
55741999-08-18 Dave Love <fx@gnu.org>
5575
5576 * callproc.c, filelock.c, insdel.c, sysdep.c, xmenu.c: Use
5577 stdlib.h.
5578
5579 * doprnt.c: Use stdlib.h, unistd.h.
5580
5581 * config.in: Add HAVE_TERMCAP_H.
5582
5583 * cm.c: Use termcap.h.
5584
55851999-08-18 Gerd Moellmann <gerd@gnu.org>
5586
5587 * xfns.c (x_window) [USE_X_TOOLKIT]: Remove test for
5588 FRAME_X_WINDOW (f) being null at the of the function. If widgets
5589 cannot be created we will already have crashed earlier. Call
5590 lw_set_main_areas with a null menu-bar widget, so that we have
5591 a reasonable default.
5592 (Fx_create_frame): Rearranged so that Lisp errors during frame
5593 initialization cause less damage. Initialize menu bar widget
5594 here.
5595
55961999-08-18 Gerd Moellmann <gerd@gnu.org>
5597
5598 * dispnew.c (update_frame_line): Fix previous change. If writing
5599 whole line clear to end of frame.
5600
56011999-08-17 Gerd Moellmann <gerd@gnu.org>
5602
5603 * window.c (Fcoordinates_in_window_p): Return `left-bitmap-area'
5604 and `right-bitmap-area' if position is in the bitmap areas. This
5605 avoids an error when clicking on the bitmap areas. Instead, they
5606 are currently treated like clicks inside the window.
5607 (coordinates_in_window): Return 5 and 6 for bitmap areas.
5608 (Qleft_bitmap_area, Qright_bitmap_area): New.
5609 (syms_of_window): Initialize new symbols.
5610
5611 * dispnew.c (update_frame_line): If writing whole line,
5612 don't write trailing spaces unless we must.
5613
5614 * xdisp.c (unwind_redisplay): New. Resets flag redisplaying_p.
5615 (redisplay_internal): Register unwind_redisplay with
5616 register_unwind_protect.
5617 (try_window_reusing_current_matrix): If new start > old start,
5618 give up if start pos of first reusable row is not equal to new
5619 start.
5620
5621 * eval.c (Fsignal): Don't reset redisplaying_p here.
5622
5623 * xterm.c (expose_area): If row extends face to end of line,
5624 write the whole line.
5625
56261999-08-16 Gerd Moellmann <gerd@gnu.org>
5627
5628 * dispextern.h (struct it): Remove member
5629 show_trailing_whitespace_p.
5630
5631 * dispnew.c (direct_output_for_insert): Use
5632 Vshow_trailing_whitespace instead of former iterator member
5633 show_trailing_whitespace_p.
5634 (direct_output_forward_char): Don't do it if hightlighting
5635 trailing whitespace.
5636
5637 * xdisp.c (Qshow_trailing_whitespace): Removed.
5638 (Vshow_trailing_whitespace): Added.
5639 (init_iterator): Remove initialization code for
5640 show_trailing_whitespace_p.
5641 (redisplay_internal): Don't try cursor movement in this_line
5642 if showing trailing whitespace.
5643 (redisplay_window): Likewise for cursor movement in current
5644 matrix and try_window_id.
5645 (try_window_reusing_current_matrix): Likewise.
5646 (trailing_whitespace_p): Return 0 if trailing whitespace is
5647 in front of point.
5648 (display_line): Use Vshow_trailing_whitespace instead of
5649 former iterator member show_trailing_whitespace_p.
5650 (syms_of_xdisp): Add DEFVAR_LISP for show-trailing-whitespace.
5651
56521999-08-16 Gerd Moellmann <gerd@gnu.org>
5653
5654 * window.c (Fpos_visible_in_window_p): Rewritten.
5655
5656 * xfaces.c (add_to_log): Renamed from display_message.
5657 Don't display messages in echo area.
5658
5659 * xterm.c (x_draw_glyph_string_box): Use the background width
5660 of the glyph string for the width of the box.
5661
56621999-08-16 Stefan Monnier <monnier@cs.yale.edu>
5663
5664 * syntax.c (Fforward_comment): Set comstyle for Scomment_fence.
5665
56661999-08-16 Geoff Voelker <voelker@cs.washington.edu>
5667
5668 * xfns.c, w32fns.c (x_set_frame_parameters): Set foreground and
5669 background first, and then set other parameters that might
5670 depend upon their new values.
5671
56721999-08-15 Gerd Moellmann <gerd@gnu.org>
5673
5674 * xfaces.c (Vfont_list_limit): New.
5675 (syms_of_xfaces): Make it a user-variable.
5676 (DEFAULT_FONT_LIST_LIMIT): New.
5677 (sorted_font_list): If Vfont_list_limit is an integer > 0, list
5678 maximally that number of fonts, otherwise use
5679 DEFAULT_FONT_LIST_LIMIT.
5680 (Fx_font_family_list): Bind `font-list-limit' to higher values
5681 until we have all fonts.
5682 (Fxfont_list): Additionally return the full names of fonts and
5683 their registry and encoding.
5684
5685 * xterm.c (XTset_vertical_scroll_bar) [USE_TOOLKIT_SCROLL_BARS]:
5686 Simplify clearing "under" scroll bar.
5687
5688 * window.c (Qfixed_window_size): New.
5689 (syms_of_window): Initialiaze it.
5690 (check_all_windows): Add return type void.
5691 (window_fixed_size_p): New. Return non-zero if window
5692 is fixed-size.
5693 (window_min_size_1): New.
5694 (window_min_size): Handle fixed-size windows.
5695 (size_window): New. Rewritten combination of set_window_height and
5696 set_window_width that handles fixed-size windows.
5697 (set_window_height): Call it.
5698 (set_window_width): Call it.
5699 (Fsplit_window): Give an error on attempt to split a fixed-size
5700 window.
5701 (change_window_height): Partly rewritten to handle fixed-size
5702 windows.
5703
57041999-08-13 Wolfgang Rupprecht <wolfgang@wsrcc.com>
5705
5706 * process.c (Fopen_network_stream): Fix previous change.
5707
57081999-08-13 Karl Heuer <kwzh@gnu.org>
5709
5710 * xdisp.c (line_number_display_limit_width): New var.
5711 (decode_mode_spec): Use it instead of hardcoded value.
5712 (syms_of_xdisp): Defvar it.
5713
57141999-08-13 Richard M. Stallman <rms@gnu.org>
5715
5716 * eval.c (run_hook_list_with_args): Gcpro `globals'.
5717 (run_hook_with_args): Likewise.
5718
5719 * window.h (struct window): New field too_small_ok.
5720
5721 * window.c (set_window_height, set_window_width):
5722 If window starts out "too small", set its too_small_ok flag.
5723 If window's too_small_ok flag is set, don't delete it
5724 unless it is so small it would cause a crash.
5725
57261999-08-13 Gerd Moellmann <gerd@gnu.org>
5727
5728 * window.c (MINSIZE): Removed.
5729 (window_min_size): New.
5730 (set_window_height): Use window_min_size.
5731 (change_window_height): Ditto.
5732
57331999-08-12 Gerd Moellmann <gerd@gnu.org>
5734
5735 * indent.c (vmotion): Don't add in mini-buffer prompt width
5736 if prompts are inserted into mini-buffer.
5737
57381999-08-12 Wolfgang Rupprecht <wolfgang@wsrcc.com>
5739
5740 * config.in: Add HAVE_GETADDRINFO.
5741 * process.c (Fopen_network_stream): Use getaddrinfo.
5742
57431999-08-11 Gerd Moellmann <gerd@gnu.org>
5744
5745 * xdisp.c (get_overlay_arrow_glyph_row): Set the charpos of
5746 glyphs to -1.
5747
5748 * xdisp.c (face_before_or_after_it_pos): If position after
5749 or before iterator's current position in the buffer is out
5750 of bounds, return the iterator's original face id.
5751
5752 * dispnew.c (mirror_make_current): If desired row isn't enabled,
5753 just swap glyphs pointers between current and desired row.
5754 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Copy
5755 desired matrix method string to current matrix.
5756
57571999-08-11 Kenichi Handa <handa@etl.go.jp>
5758
5759 * lisp.h (CHAR_MODIFIER_MASK): New macro.
5760
5761 * lread.c (read_escape): For Control modifier, pay attention to
5762 multibyte character.
5763 (read1): Likewise. Singal error or a multibyte character which
5764 has a modifer bit. Check validity of Shift modifer.
5765
5766 * charset.c (non_ascii_char_to_string): Handle modifier bits as
5767 the same as Lisp reader.
5768
57691999-08-10 Richard M. Stallman <rms@gnu.org>
5770
5771 * charset.h (BCOPY_SHORT): Fix typo `unsigined'.
5772
57731999-08-10 Alexandre Oliva <oliva@dcc.unicamp.br>
5774
5775 * unexelf.c [__linux__ && __alpha__] (HAS_SBSS_SECTION): Define.
5776
57771999-08-10 Eli Zaretskii <eliz@gnu.org>
5778
5779 * msdos.c (IT_set_face): Abort if the default face is not realized
5780 and cached.
5781 (IT_write_glyphs): Reset the screen face to the default face
5782 before writing glyphs.
5783
5784 * xfaces.c (realize_default_face) [MSDOS]: Don't take default
5785 colors from the frame here.
5786 (realize_tty_face) [MSDOS]: Do it here. Update the face
5787 attributes with the actual name of the color taken from the
5788 frame.
5789
5790 * dosfns.c (msdos_stdcolor_name): Remove const from return value.
5791 * dosfns.h (msdos_stdcolor_name): Ditto for the prototype.
5792
5793 * frame.c (Fframe_parameters): Swap foreground and background
5794 colors returned in frame parameters if the frame has reverse in
5795 its parameter alist.
5796 (Fmake_terminal_frame): Make a unique copy of face_alist for
5797 each frame.
5798
57991999-08-07 Richard Stallman <rms@gnu.org>
5800
5801 * buffer.c (Fprevious_overlay_change): Just return
5802 the answer obtained from overlays_at.
5803
5804 * xfns.c (xpm_load) [!XpmAllocCloseColors]:
5805 Use XpmCloseness and attrs.closeness instead.
5806
58071999-08-06 Richard Stallman <rms@gnu.org>
5808
5809 * lread.c (Feval_buffer): New arg DO_ALLOW_PRINT.
5810
58111999-08-06 Geoff Voelker <voelker@cs.washington.edu>
5812
5813 * dired.c (directory_files_internal, Fdirectory_files_and_attributes,
5814 Ffile_attributes_lessp): New functions.
5815 (Fdirectory_files): Use directory_files_internal.
5816 (syms_of_dired): Initialize Fdirectory_files_and_attributes,
5817 Ffile_attributes_lessp.
5818
5819 * w32.c (stat): Check for directory ending in separator when
5820 doing readdir fast path.
5821
5822 * w32fns.c (x_set_icon_type): Support setting frame icons.
5823 * w32term.c (x_bitmap_icon): New function.
5824 (x_make_frame_visible, x_iconify_frame): Invoke x_bitmap_icon.
5825
58261999-08-06 Gerd Moellmann <gerd@gnu.org>
5827
5828 * xdisp.c (set_iterator_to_next): After delivering a character
5829 from a display vector, restore face and charset to what they were
5830 before the display vector was processed.
5831
58321999-08-06 Gerd Moellmann <gerd@gnu.org>
5833
5834 * xdisp.c (reseat_at_next_visible_line_start): New parameter
5835 on_newline_p.
5836 (set_iterator_to_next): After delivering last char
5837 from display vector, reseat on next visible line start if
5838 dpvec_char_len < 0.
5839 (next_element_from_buffer): Set dpvec_char_len to -1 for
5840 selective display.
5841
58421999-08-06 Gerd Moellmann <gerd@gnu.org>
5843
5844 * xdisp.c (compute_line_metrics): If first line's physical ascent
5845 is larger than its logical ascent, use the physical ascent, and
5846 make the row taller. Set row's overlapping_p flag.
5847
5848 * dispnew.c (redraw_overlapping_rows): Use flag overlapping_p.
5849 (direct_output_for_insert): Ditto.
5850
5851 * dispextern.h (struct glyph_row): Add overlapping_p.
5852
5853 * xterm.c (x_draw_phys_cursor_glyph): Redraw overlaps.
5854
5855 * dispextern.h (MATRIX_ROW_OVERLAPS_PRED_P): New.
5856 (MATRIX_ROW_OVERLAPS_SUCC_P): New.
5857
5858 * dispnew.c (direct_output_for_insert): Don't use this method if
5859 row is overlapped by others.
5860 (update_text_area): Write full line if current line is overlapped.
5861 (redraw_overlapped_rows): New.
5862 (update_window): Call it.
5863 (redraw_overlapping_rows): New.
5864 (update_window): Call it.
5865 (scrolling_window): Make sure overlapped_p flag in current rows is
5866 unchanged.
5867 (row_equal_p): Take rows overlapped_p flag into account.
5868
5869 * dispextern.h (struct glyph_row): Add flag overlapped_p.
5870
5871 * xterm.c (x_fix_overlapping_area): New.
5872 (x_redisplay_interface): Add x_fix_overlapping_area.
5873
5874 * dispnew.c (adjust_glyphs): Block input while adjusting matrices.
5875
58761999-08-06 Gerd Moellmann <gerd@gnu.org>
5877
5878 * xterm.c (x_draw_glyphs): Add parameter overlaps_p.
5879 (struct glyph_string): Add member for_overlaps_p.
5880 (x_get_glyph_string_clip_rect): If glyph string draws foreground
5881 of overlapping rows, clip to window bottom.
5882 (x_fill_glyph_string): Add parameter overlaps_p.
5883 (x_fill_composite_glyph_string): Ditto.
5884 (BUILD_GLYPH_STRINGS): Ditto.
5885 (BUILD_CHAR_GLYPH_STRINGS): Ditto.
5886 (x_draw_glyph_string): Don't draw anything but the foreground
5887 if glyph string draws row overlaps.
5888
5889 * dispnew.c (direct_output_for_insert): Don't use this
5890 optimization for rows that overlap others.
5891 (update_window_line): Return non-zero if display has changed.
5892 (update_text_area): Ditto.
5893 (update_window): Record if display has been changed.
5894
5895 * dispextern.h (MATRIX_ROW_OVERLAPPING_P): New.
5896
5897 * dispextern.h (struct redisplay_interface): Add
5898 fix_overlapping_area.
5899
5900 * xterm.c (x_append_glyph): Set glyph flag overlaps_vertically_p.
5901
5902 * dispextern.h (struct glyph): Add overlaps_vertically_p.
5903
5904 * xterm.c (x_produce_image_glyph): Compute iterator's physical
5905 ascent and descent.
5906 (x_produce_stretch_glyph): Ditto.
5907 (x_produce_glyphs): Ditto.
5908
5909 * xdisp.c (init_iterator): Reset physical line height info
5910 after producing special glyphs.
5911 (display_toolbar_line): Set physical line height info.
5912 (compute_line_metrics): Ditto.
5913 (display_line): Ditto.
5914 (display_string): Ditto.
5915
5916 * term.c (produce_glyphs): Set iterator's physical height
5917 information.
5918
5919 * dispnew.c (blank_row): Compute glyph row's physical height.
5920 (row_equal_p): Take physical row heights into account.
5921 (direct_output_for_insert): Ditto.
5922 (update_text_area): Ditto.
5923
5924 * dispextern.h (struct glyph_row): Add phys_ascent and
5925 phys_height.
5926 (struct it): Add phys_ascent, phys_descent, max_phys_ascent,
5927 max_phys_descent.
5928
59291999-08-04 Stefan Monnier <monnier@cs.yale.edu>
5930
5931 * buffer.c (switch_to_buffer_1): New subroutine, taken out from
5932 Fswitch_to_buffer.
5933 (no_switch_buffer): New function.
5934 (Fswitch_to_buffer): Call them. Don't get confused
5935 by "same-window" buffers in a dedicated frame.
5936
5937 * window.c (display-buffer): Don't get confused
5938 by "same-window" buffers in a dedicated frame.
5939
59401999-08-04 Andreas Schwab <schwab@gnu.org>
5941
5942 * insdel.c (insert_from_string_1): Check gap size against number
5943 of outgoing bytes, not incoming bytes.
5944
59451999-08-03 Tom Breton <tob@world.std.com>
5946
5947 * lread.c (read1): Added circular reading code to #N=.
5948 (SUBSTITUTE): New macro.
5949 (seen_list): New variable.
5950 (substitute_object_in_subtree): New function.
5951 (substitute_object_recurse): New function.
5952 (substitute_in_interval): New function.
5953
59541999-08-02 Eli Zaretskii <eliz@gnu.org>
5955
5956 * Makefile.in (frame.o, sysdep.o, xfaces.o): Depend on dosfns.h.
5957
5958 * frame.c (make_terminal_frame): Don't call init_frame_faces if
5959 noninteractive, for termcap frames as well.
5960
5961 * sysdep.c (init_sys_modes): Call init_frame_faces for termcap
5962 frames.
5963
59641999-08-01 Richard Stallman <rms@gnu.org>
5965
5966 * fns.c (internal_equal): Correct overlay comparison.
5967
83c8f461 59681999-07-31 Richard M. Stallman <rms@gnu.org>
26901792
DL
5969
5970 * xfns.c (x_set_internal_border_width):
5971 Call do_pending_window_change. Don't block input, don't call XFlush.
5972 (x_set_vertical_scroll_bars): Call do_pending_window_change.
5973 (x_set_scroll_bar_width, x_set_font): Likewise.
5974
5975 * frame.c (Fset_frame_height): Call do_pending_window_change.
5976 (Fset_frame_width, Fset_frame_size): Likewise.
5977
5978 * xterm.c (x_set_window_size): When calling change_frame_size,
5979 specify 1 for DELAY.
5980
5981 * widget.c (EmacsFrameSetCharSize): Don't call
5982 do_pending_window_change here.
5983
59841999-07-30 Dave Love <fx@gnu.org>
5985
5986 * config.in: Add HAVE_STDLIB_H.
5987
59881999-07-30 Richard M. Stallman <rms@gnu.org>
5989
5990 * process.c (create_process): Detect failure of `pipe'.
5991
59921999-07-30 Keisuke Nishida <kei@psn.net>
5993
5994 * alloc.c (allocate_vectorlike): Add missing increment.
5995
5996 * data.c (Fdefalias): Call Ffset instead of duplicating code.
5997
5998 * keymap.c (get_keymap_1, get_keyelt): Check the type of OBJECT
5999 before calling indirect_function.
6000
60011999-07-30 Eli Zaretskii <eliz@gnu.org>
6002
6003 * dispextern.h (load_color, lookup_derived_face): Declare
6004 prototypes.
6005
6006 * dispnew.c (init_display) [MSDOS]: Don't initialize frame faces,
6007 it will be done later.
6008
6009 * frame.c (make_terminal_frame) [MSDOS]: Don't call
6010 init_frame_faces if non-interactive.
6011 (Fframe_parameters) [MSDOS]: Replace indexing into colornames[]
6012 array with a call to msdos_stdcolor_name. The font name is now
6013 "ms-dos", consistent with realize_tty_face.
6014
6015 * keyboard.c (cmd_error_internal): Don't kill Emacs if this is an
6016 MSDOS frame.
6017
6018 * window.c (Fset_window_configuration) [MSDOS]: Don't call
6019 x_set_toolbar_lines.
6020
6021 * xfaces.c (load_color): Remove static from definition and remove
6022 prototype.
6023 [MSDOS]: Add a DOS-specific version of load_color.
6024 (lookup_face): Replace FRAME_TERMCAP_P with !FRAME_WINDOW_P.
6025 (lookup_derived_face): New function.
6026 (realize_default_face): Support MSDOS frames.
6027 [MSDOS]: If fore/background colors are unspecified, inherit them
6028 from the frame.
6029 (realize_face): Support MSDOS frames.
6030 (realize_tty_face): Support MSDOS frames.
6031 [MSDOS]: If the face color is not in Vface_tty_color_alist, call
6032 load_color to try to find a suitable approximation. If the face
6033 is inverse-video, swap the foreground and background colors.
6034
6035 * dosfns.c (msdos_stdcolor_name, msdos_stdcolor_idx): New
6036 functions.
6037
6038 * dosfns.h (msdos_stdcolor_name, msdos_stdcolor_idx): Declare.
6039
6040 * msdos.h: Remove redundant declarations (most of them are now in
6041 dispextern.h).
6042
6043 * msdos.c (IT_set_face): Rewritten for the new redisplay engine.
6044 Use default frame colors if the face doesn't specify them; invert
6045 the colors if highlight is ON.
6046 (IT_write_glyphs): Rewritten for the new redisplay engine.
6047 (IT_change_line_highlight): Add (unused) parameter Y, since that's
6048 how the hook is called by term.c.
6049 (IT_copy_glyphs): New function, copies an area of the display in
6050 video RAM.
6051 (IT_insert_glyphs): Rewritten to DTRT instead of aborting, since
6052 redisplay now calls it even if char_ins_del_ok is zero.
6053 (IT_set_frame_parameters): Prototype changed. Calls the new
6054 load_color. Puts the new fore/background colors into the default
6055 face on current frame.
6056 (IT_menu_display): Rewritten to handle the new struct glyph
6057 instead of a char array.
6058 (XMenuActivate): Call lookup_derived_face to create and use
6059 special faces for the pop-up and drop-down menus.
6060
60611999-07-29 Gerd Moellmann <gerd@gnu.org>
6062
6063 * xterm.c (x_set_toolkit_scroll_bar_thumb): Don't call
6064 XawScrollbarSetThumb if thumb parameters haven't changed because
6065 that function apparently isn't optimized for this case.
6066
60671999-07-29 Eli Zaretskii <eliz@gnu.org>
6068
6069 * msdos.c (getdefdir): Don't return failure indication when
6070 _fixpath sets errno to ENOSYS.
6071
60721999-07-28 Gerd Moellmann <gerd@gnu.org>
6073
6074 * xdisp.c (string_char_and_length): New. Use it everywhere
6075 instead of STRING_CHAR_AND_LENGTH in xdisp.c.
6076
60771999-07-28 Kenichi Handa <handa@etl.go.jp>
6078
6079 * fns.c (count_combining): New function.
6080 (struct textprop_rec): New structure.
6081 (concat): Copy text properties correctly when byte combining
6082 occurs.
6083
60841999-07-28 Gerd Moellmann <gerd@gnu.org>
6085
6086 * xterm.c (x_setup_relief_color): Don't try smart color allocation
6087 if display is mono.
6088 (x_draw_row_bitmaps): If face has stipple, don't switch
6089 to foreground color for clearing areas, and set the fill style.
6090
6091 * xfaces.c (load_face_colors): Load background color if setting
6092 stipple, too.
6093 (prepare_face_for_display): Use FillOpaqueStippled instead of
6094 FillStippled.
6095
60961999-07-26 Ken'ichi Handa <handa@gnu.org>
6097
6098 * xterm.c (x_find_ccl_program): Add casting.
6099
6100 * w32fns.c (w32_find_ccl_program): Add casting.
6101
61021999-07-27 Gerd Moellmann <gerd@gnu.org>
6103
6104 * dispextern.h (struct glyph_row): Flag internal_border_p removed.
6105
6106 * xfns.c (x_create_tip_frame): Don't set bitmapIcon resource
6107 because this will try to access a nonexisting widget.
6108
61091999-07-26 Markus Rost <rost@gnu.org>
6110
6111 * fns.c (Fgethash): Fix order of variables (patch by gerd).
6112 (Fputhash): Ditto.
6113 (Fremhash): Ditto.
6114
61151999-07-26 Gerd Moellmann <gerd@gnu.org>
6116
6117 * widget.c (EmacsFrameSetCharSize): Don't add XtNborderWidth
6118 value to frame width and height.
6119
6120 * xterm.c (x_get_glyph_string_clip_rect): Take internal border
6121 into account for full-width windows. Don't add scroll bar width
6122 to width of clip rect.
6123 (x_draw_glyph_string_box): Add 1 to right x of full width lines.
6124 (x_set_glyph_string_background_width): Add 1 to background width.
6125 (x_draw_glyphs): Take internal border into account for full-width
6126 lines.
6127
61281999-07-26 Richard M. Stallman <rms@gnu.org>
6129
6130 * xfns.c (x_set_mouse_color): Always unload the old color.
6131 Don't allow nil as color value.
6132 (x_set_cursor_color, x_set_background_color, x_set_foreground_color):
6133 Always unload the old color.
6134
6135 * indent.c (Fmove_to_column): Extend end of line only if FORCE is t.
6136
61371999-07-26 Karl Heuer <kwzh@gnu.org>
6138
6139 * fns.c (Fy_or_n_p): Doc fix.
6140
61411999-07-26 Kenichi Handa <handa@etl.go.jp>
6142
6143 * ccl.h (setup_ccl_program): The type is changed to `int'.
6144
6145 * ccl.c (ccl_driver) <CCL_Call>: Now CCL program ID to call may be
6146 stored in the following CCL code. Adjusted for the change of
6147 Vccl_program_table.
6148 (resolve_symbol_ccl_program): Adjusted for the new style of
6149 embedded symbols (SYMBOL . PROP) in CCL compiled code. Return Qt
6150 is resolving failed.
6151 (ccl_get_compiled_code): New function.
6152 (setup_ccl_program): Function type changed from `void' to `int'.
6153 Resolve symbols in CCL_PROG.
6154 (Fccl_program_p): New function.
6155 (Fccl_execute): Get compiled CCL code by just calling
6156 setup_ccl_program.
6157 (Fccl_execute_on_string): Likewise.
6158 (Fregister_ccl_program): Adjusted for the change of
6159 Vccl_program_table.
6160
6161 * coding.c (setup_coding_system): Get compiled CCL code by just
6162 calling setup_ccl_program.
6163
6164 * xterm.c (x_find_ccl_program): Get compiled CCL code by just
6165 calling setup_ccl_program.
6166
6167 * w32fns.c (w32_find_ccl_program): Get compiled CCL code by just
6168 calling setup_ccl_program.
6169
61701999-07-23 Gerd Moellmann <gerd@gnu.org>
6171
6172 * xfaces.c (frame_update_line_height): Just use the height of the
6173 frame's fontset or font, instead of taking face fonts into
6174 account.
6175
6176 * xdisp.c (get_next_display_element): Display DEL as `^?'.
6177
61781999-07-23 Richard M. Stallman <rms@gnu.org>
6179
6180 * window.c (Fsplit_window): For default size, round up for left window.
6181
61821999-07-21 Joe Ramey <ramey@ti.com>
6183
6184 * filelock.c (lock_if_free): Return -1 if check_lock_owner
6185 has returned -1 (lockfile exists but is not a symlink?).
6186
61871999-07-20 Gerd Moellmann <gerd@gnu.org>
6188
6189 * xterm.c (x_draw_bar_cursor): Use scratch_cursor_gc to
6190 because of a change in cursor_gc made in 20.4.
6191
61921999-07-19 Gerd Moellmann <gerd@gnu.org>
6193
6194 * xterm.c (x_calc_absolute_position): Subtract menu bar height
6195 for YNegative, if using X toolkit.
6196
6197 * xfns.c (x_real_positions): Don't subtract window borders
6198 from positions returned.
6199
62001999-07-17 Gerd Moellmann <gerd@gnu.org>
6201
6202 * xrdb.c (x_load_resources): Set double-click time defaults
6203 for Motif list boxes from double-click-time.
6204
6205 * fns.c (Vhash_table_tests): Remvoed.
6206 (Qhash_table_test): New.
6207 (syms_of_fns): Initialize Qhash_table_test.
6208 (Fmake_hash_table): Look up user-defined tests in symbol prop
6209 `hash-table-test'.
6210 (Fdefine_hash_table_test): Store test and hash function as
6211 symbol prop `hash-table-test'.
6212 (make_hash_table): Add parameters user_test and user_hash.
6213
6214 * window.c (set_window_buffer): Set window margins for tty
6215 frames, too.
6216 (Fset_window_margins): Ditto.
6217
6218 * term.c (append_glyph): Use glyph area of iterator instead of
6219 always TEXT_AREA.
6220
6221 * dispnew.c (update_frame_1): Add left margin width to cursor
6222 hpos.
6223 (direct_output_for_insert): Ditto.
6224 (direct_output_forward_char): Ditto.
6225
6226 * dispnew.c (adjust_glyph_matrix): Set glyph matrix' top_line_p.
6227
6228 * dispextern.h (struct glyph_matrix): Add top_line_p.
6229
62301999-07-16 Gerd Moellmann <gerd@gnu.org>
6231
6232 * frame.h (FRAME_WINDOW_REDISPLAY_P): Removed. Use FRAME_WINDOW_P
6233 instead.
6234
6235 * fns.c (cmpfn_eq): Add hash code parameters.
6236 (cmpfn_eql): Ditto.
6237 (cmpfn_equal): Ditto, and compare hash codes before calling Fequal.
6238 (cmpfn_user_defined): Likewise.
6239
62401999-07-15 Gerd Moellmann <gerd@gnu.org>
6241
6242 * lisp.h (DEFAULT_REHASH_THRESHOLD): Changed to 0.8.
6243
6244 * fns.c (maybe_resize_hash_table): Correct computation of
6245 index vector size.
6246 (make_hash_table): Ditto.
6247 (Fmakehash): New.
6248
6249 * xdisp.c (echo_area_display): Don't call redraw_garbaged_frames.
6250
6251 * alloc.c (gc_sweep): Call sweep_weak_hash_tables.
6252 (survives_gc_p): Make it externally visible.
6253 (mark_object): Ditto.
6254
6255 * fns.c (remove_hash_entry): Removed.
6256 (sweep_weak_hash_tables): New.
6257
6258 * print.c (print): Print more information about hash tables.
6259
6260 * xfns.c (image_spec_hash): Removed.
6261 (lookup_image): Use sxhash instead of image_spec_hash.
6262 (image_spec_equal_p): Removed.
6263 (lookup_image): Use Fequal instead of image_spec_equal_p.
6264
62651999-07-14 Gerd Moellmann <gerd@gnu.org>
6266
6267 * lisp.h (P_): Moved to top of file.
6268
6269 * fns.c (make_hash_table): Set new members.
6270
6271 * alloc.c (mark_object): Mark hash table's user_hash_function.
6272 Mark index vector for weak hash tables.
6273
6274 * lisp.h (struct Lisp_Hash_Table): Add user_cmp_function,
6275 user_hash_function, cmpfn, and hashfn.
6276
6277 * fns.c (build_hash): Removed.
6278 (hash_test): Removed.
6279 (cmpfn_eq, cmpfn_eql, cmpfn_equal, cmpfn_user_defined): New.
6280 (hashfn_eq, hashfn_eql, hashfn_equal, hashfn_user_defined): New.
6281
62821999-07-13 Gerd Moellmann <gerd@gnu.org>
6283
6284 * alloc.c (survives_gc_p): New.
6285
6286 * print.c (print): Add hash table handling.
6287
6288 * alloc.c (mark_object): Add code to mark hash tables.
6289
6290 * lisp.h (GC_HASH_TABLE_P): New.
6291
6292 * emacs.c (main): Call init_fns.
6293
6294 * fns.c (init_fns): New.
6295
6296 * fns.c: Add hash table implementation.
6297
6298 * lisp.h (PVEC_HASH_TABLE): New.
6299 (struct Lisp_Hash_Table): New.
6300 (XHASH_TABLE): New.
6301 (XSET_HASH_TABLE): New.
6302 (HASH_TABLE_P): New.
6303 (CHECK_HASH_TABLE): New.
6304 (DEFAULT_HASH_SIZE): New.
6305 (DEFAULT_REHASH_THRESHOLD): New.
6306 (DEFAULT_REHASH_SIZE): New.
6307
6308 * xterm.c (x_draw_glyphs): Add parameters real_start and real_end.
6309 (x_write_glyphs): Compute overwritten cursor using real start
6310 and end positions of display.
6311 (x_insert_glyphs): Ditto.
6312
63131999-07-10 Gerd Moellmann <gerd@gnu.org>
6314
6315 * keyboard.c (read_char): Use message3_nolog to show help-echo.
6316
6317 * dispnew.c (blank_row): Add y-position as parameter. Compute
6318 visible height.
6319
6320 * xdisp.c (next_element_from_string): Give padding spaces
6321 a position of -1.
6322
6323 * dispnew.c (adjust_glyph_matrix): Some work to support
6324 marginals areas on tty frames in a future version.
6325 (allocate_matrices_for_frame_redisplay): Ditto.
6326
6327 * xdisp.c (display_line): At ZV, set glyph row's displays_text_p
6328 to zero if number of glyphs in the row is <= 1.
6329
63301999-07-09 Gerd Moellmann <gerd@gnu.org>
6331
6332 * dispnew.c (buffer_posn_from_coords): Take left marginal area
6333 into account.
6334
6335 * xdisp.c (handle_display_prop): Don't reset area if handing
6336 a property from a string that came from a `display' property.
6337 (handle_single_display_prop): Don't handle recursive `display'
6338 properties.
6339 (handle_single_display_prop): Handle some display property
6340 forms for terminal frames.
6341 (Qimage): Moved here from xfns.c.
6342
6343 * dispextern.h (struct it): New field string_from_display_prop_p.
6344
6345 * xterm.c (x_clip_to_row): Don't let clip_rect include top
6346 line.
6347
63481999-07-08 Gerd Moellmann <gerd@gnu.org>
6349
6350 * xdisp.c (handle_single_display_prop): Handle `:when FORM'.
6351
6352 * window.c (set_window_buffer): Set window's vscroll to zero.
6353
6354 * xdisp.c (QCwhen): New.
6355 (display_prop_end): New.
6356 (handle_single_display_prop): Use it.
6357 (debug_method_add): Print buffer name if tracing.
6358 (try_window_reusing_current_matrix): Compute visible height
6359 of reused rows. Fix cursor position calculation in case of
6360 top-line.
6361
6362 * dispextern.h (struct redisplay_interface): Add parameter
6363 cursor_on_p to update_window_end_hook.
6364
6365 * xterm.c (x_update_window_end): Add parameter cursor_on_p.
6366
63671999-07-07 Gerd Moellmann <gerd@gnu.org>
6368
6369 * xdisp.c (redisplay_internal): Ensure that redisplayinp_p
6370 doesn't become negative when decrementing it.
6371
6372 * eval.c (Fsignal): Reset redisplaying_p to zero.
6373
6374 * xdisp.c (try_window_reusing_current_matrix): Call hooks
6375 for window update.
6376 (try_window_id): Ditto.
6377
6378 * xterm.c (x_clear_end_of_line): Handle top-line correctly.
6379 (x_scroll_run): Ditto.
6380 (any_help_event_p): New.
6381 (x_initialize): Set it to zero.
6382 (XTread_socket): Clear help echo only if any_help_event_p.
6383
6384 * xdisp.c (init_iterator): Set top_line_p.
6385 (start_display): Use correct initial y if top-line is present.
6386 (make_cursor_line_fully_visible): Bug fixes for top-line.
6387 (try_scrolling): Ditto.
6388 (try_window_reusing_current_matrix): Ditto.
6389
6390 * dispextern.h (struct it): Add top_line_p.
6391
6392 * dispnew.c (shift_glyph_matrix): Move some computations out
6393 of the loop.
6394
6395 * dispnew.c (margin_glyphs_to_reserve): Use NUMBERP and
6396 XFLOATINT.
6397
63981999-07-06 Gerd Moellmann <gerd@gnu.org>
6399
6400 * dispnew.c (update_frame_1): When setting cursor in echo area,
6401 skip only over padding spaces at the end.
6402
6403 * xfaces.c (realize_tty_face): Set face's font_name field to
6404 "tty".
6405
6406 * term.c (update_end): Turn cursor on only if selected window's
6407 cursor_off_p flag is not set.
6408
64091999-07-05 Gerd Moellmann <gerd@gnu.org>
6410
6411 * term.c (TS_cursor_visible): Renamed from TS_visual_mode.
6412 (TS_cursor_normal): Renamed from TS_end_visual_mode.
6413 (TS_cursor_invisible): New.
6414 (term_init): Initialize TS_cursor_invisible.
6415 (tty_hide_cursor): New.
6416 (tty_show_cursor): New.
6417 (update_end): Show tty cursor.
6418 (update_begin): Hide tty cursor to prevent cursor flickering
6419 during redisplays triggered by timers (stealth fontification).
6420
6421 * keyboard.c (make_lispy_event) <TOOLBAR_EVENT>: Apply modifiers.
6422
6423 * xterm.c (XTread_socket) [USE_MOTIF] <KeyPress>: Catch events
6424 in scroll bars.
6425 (x_handle_toolbar_click): Set modifier bits.
6426
64271999-07-04 Gerd Moellmann <gerd@gnu.org>
6428
6429 * keyboard.c (kbd_store_ptr): Declare it as a volatile pointer
6430 instead of a pointer to a volatile input_event.
6431 (kbd_buffer_store_event): Remove volatile modifier from
6432 declaration of local variable `sp'.
6433 (Fdiscard_input): Don't cast when assigning kbd_store_ptr
6434 to kbd_fetch_ptr.
6435
64361999-07-03 Gerd Moellmann <gerd@gnu.org>
6437
6438 * xdisp.c (try_window_id): Set beg_unchanged and end_unchanged
6439 only if buffer is modified. Return quickly if changes are
6440 above window start.
6441
64421999-07-02 Gerd Moellmann <gerd@gnu.org>
6443
6444 * dispextern.h (HSCROLL_WINDOWS): Removed.
6445
6446 * xdisp.c (mark_window_display_accurate): Don't set
6447 w->region_showing.
6448 (redisplay_internal): Don't call redraw_garbaged_frames.
6449
64501999-07-01 Gerd Moellmann <gerd@gnu.org>
6451
6452 * xdisp.c (echo_area_display): Don't display truncation marks
6453 for messages because 20.4 doesn't do it either.
6454 (redisplay_window): Case same window start. Instead of giving
6455 up when cursor is partially visible, make it fully visible.
6456 (mark_window_display_accurate): Some cleanup. Record window's
6457 last cursor information.
6458 (debug_method_add): Improved.
6459 (redisplay_internal): Record last cursor info only if not
6460 consider_all_windows_p.
6461
6462 * dispnew.c (update_window): Update top line after scrolling.
6463 (blank_row): Renamed from make_empty_enabled_row.
6464 (increment_glyph_row_buffer_positions): Increment positions
6465 in buffers, only.
6466
6467 * window.c (Fcoordinates_in_window_p): Add top-line to doc
6468 string.
6469
64701999-06-30 Gerd Moellmann <gerd@gnu.org>
6471
6472 * dispnew.c (update_window): Check that updated row is visible.
6473
6474 * xterm.c (x_draw_row_bitmaps): Check for invisible rows at
6475 top of window differently.
6476
6477 * xdisp.c (try_window_reusing_current_matrix): Don't do it
6478 if region is showing.
6479
6480 * dispnew.c (adjust_glyph_matrix): Check w->vscroll when
6481 avoiding matrix reallocation. Set window_vscroll in matrix.
6482
6483 * dispextern.h (struct glyph_matrix): Add member window_vscroll.
6484
26901792
DL
6485 * xdisp.c (debug_method_add): New.
6486 (debug_redisplay_method): Removed.
6487 (try_window_reusing_current_matrix): Handle case where old
6488 window start is the same as new window start.
6489
6490 * dispextern.h (struct glyph_matrix) [GLYPH_DEBUG]: Make `method'
6491 an array instead of a pointer.
6492
26901792
DL
6493 * xfns.c (Fx_show_tip): Undo previous change.
6494
6495 * xterm.c (x_append_glyph): Clear glyph->u.val.
6496
6497 * dispextern.h (struct glyph): Increase size of face_id bit-field
6498 for CHAR_GLYPH to 12.
6499
65001999-06-29 Gerd Moellmann <gerd@gnu.org>
6501
6502 * xfaces.c (x_charset_registry): Make it externally visible.
6503
65041999-06-28 Gerd Moellmann <gerd@gnu.org>
6505
6506 * dispnew.c (update_window): Use mode_line_p flag of rows
6507 instead of WINDOW_WANTS_MODELINE_P.
6508
6509 * xterm.c (clear_mouse_face): Make externally visible.
6510
6511 * xfns.c (Fx_show_tip): Clear mouse face before showing tip.
6512
6513 * xterm.c (expose_line): Handle exposure of top-lines.
6514
6515 * xterm.c (XTframe_up_to_date): Don't call note_mouse_highlight
6516 if mouse_face_mouse_frame is null.
6517
6518 * xdisp.c (redisplay_window): If window is echo_area_window,
6519 and update_mode_line is set, update menubar and toolbar.
6520
6521 * dispnew.c (space_glyph): Set its charpos to -1.
6522 (update_frame_1): Ignore trailing padding spaces.
6523
6524 * xdisp.c (next_element_from_c_string): Set position of padding
6525 glyphs to -1.
6526
65271999-06-27 Gerd Moellmann <gerd@gnu.org>
6528
6529 * xfns.c (x_laplace_read_row): Use XQueryColors instead of
6530 XQueryColor.
6531
6532 * xdisp.c (display_menu_bar): Remove unwarranted assertion.
6533 (set_cursor_from_row): Skip over glyphs having a null object at
6534 the start of rows.
6535 (insert_left_trunc_glyphs): Use charpos < 0 to indicate truncation
6536 glyphs.
6537 (handle_invisible_prop): Compute next change only when needed.
6538 (handle_face_prop): Don't correct DEFAULT_FACE_ID if in the mode
6539 line.
6540
65411999-06-26 Gerd Moellmann <gerd@gnu.org>
6542
6543 * xrdb.c (x_load_resources): Don't set resource for double-click
6544 time.
6545
6546 * xdisp.c (try_window_id): Return quickly if all changes are
6547 below the window's current matrix end.
6548
6549 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): Remove window
6550 parameter.
6551
6552 * xdisp.c (try_window_reusing_current_matrix): Set no_scrolling_p
6553 in desired not in current matrix.
6554 (try_window_reusing_current_matrix): Rotate matrices starting
6555 at start_vpos instead of 0.
6556
6557 * xterm.c (expose_window): Use window_text_bottom_y.
6558 (fast_find_position): Ditto.
6559
6560 * xdisp.c (redisplay_window): Use window_text_bottom_y.
6561 (try_window_reusing_current_matrix): Ditto.
6562 (get_last_unchanged_at_beg_row): Ditto.
6563 (init_iterator): Ditto.
6564
6565 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate one
6566 more row.
6567 (check_matrix_invariants): Use window_text_bottom_y.
6568 (update_window): Ditto.
6569 (scrolling_window): Ditto.
6570
6571 * xdisp.c (window_text_bottom_y): New.
6572
65731999-06-25 Gerd Moellmann <gerd@gnu.org>
6574
6575 * xterm.c (XTread_socket): Set mouse_face_frame to zero after
6576 clearing mouse face.
6577 (XTread_socket) <EnterNotify> [LESSTIF_VERSION]: If
6578 event.xcrossing.focus is not set, and focus is in the menu bar,
6579 set focus frame as if event.xcrossing.focus were set.
6580
65811999-06-24 Gerd Moellmann <gerd@gnu.org>
6582
6583 * keyboard.c (make_lispy_event): Handle mouse on top lines.
6584 * keyboard.c (make_lispy_movement): Ditto.
6585
6586 * window.c (coordinates_in_window): Return 4 if on top line.
6587 (Fcoordinates_in_window_p): Return `top-line' if on top line.
6588
6589 * xdisp.c (window_box_height): Subtract top line height.
6590 (window_box): Add top line height to top y position if top line
6591 exists.
6592 (init_iterator): If base_face_id is TOP_LINE_FACE_ID, set row to
6593 the top line row of the window. Set initial y-position to
6594 window's top line height plus delta.
6595 (start_display): Choose start glyph row depending on whether
6596 window has a top line.
6597 (try_scrolling): Take top line height into account for aggressive
6598 scrolling.
6599 (compute_window_start_on_continuation_line): Take top line into
6600 account.
6601 (redisplay_window): Ditto. If top line height has changed,
6602 trigger a new redisplay.
6603 (try_window_reusing_current_matrix): Take top line into account.
6604 (find_last_row_displaying_text): Ditto.
6605 (get_last_unchanged_at_beg_row): DItto.
6606 (try_window_id): Ditto.
6607 (compute_line_metrics): Ditto.
6608
6609 * dispnew.c (shift_glyph_matrix): Compute visible row height
6610 taking top line of window into account.
6611 (update_window): Update top line. If scrolling_window detects
6612 that all rows are equal, only set cursor.
6613 (update_window_line): Call after_update_window_line_hook if
6614 mode_line_p flag of rows has changed.
6615 (scrolling_window): Add parameter top_line_p. Return -1 if
6616 all rows are equal.
6617 (mode_line_string): Add parameter mode_line_p. Handle strings
6618 in top lines.
6619
6620 * dispextern.h (MATRIX_TOP_LINE_ROW): New.
6621 (MATRIX_FIRST_TEXT_ROW): New.
6622 (MATRIX_ROW_PARTIALLY_VISIBLE_P): Use row's visible_height.
6623 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_TOP_P): New.
6624 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_BOTTOM_P): New.
6625 (MATRIX_TOP_LINE_HEIGHT): New.
6626 (CURRENT_MODE_LINE_HEIGHT): Use estimate_mode_line_height.
6627 (CURRENT_TOP_LINE_HEIGHT): New.
6628 (DESIRED_TOP_LINE_HEIGHT): New.
6629 (WINDOW_DISPLAY_TOP_LINE_HEIGHT): New.
6630 (WINDOW_DISPLAY_HEIGHT_NO_MODE_LINE): Replaces
6631 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
6632 (WINDOW_DISPLAY_TEXT_HEIGHT): New.
6633
6634 * xterm.c (x_after_update_window_line): Don't draw bitmaps for top
6635 lines.
6636 (x_draw_row_bitmaps): Take top line into account when clearing
6637 bitmap area.
6638 (x_estimate_mode_line_height): Replacement for
6639 x_frame_mode_line_height.
6640 (x_get_glyph_string_clip_rect): Take top line into account.
6641 (x_clear_end_of_line): Ditto.
6642 (note_mode_line_highlight): Add parameter mode_line_p. Handle
6643 top lines.
6644 (note_mouse_highlight): Call note_mode_line_highlight for top lines.
6645 (x_erase_phys_cursor): Take top line into account.
6646
6647 * xdisp.c (window_box_height): Subtract top line height if
6648 window wants a top line.
6649 (display_mode_lines): New.
6650 (redisplay_window): Call it.
6651 (display_mode_line): Add parameters face_id and format.
6652
6653 * dispextern.h (CURRENT_TOP_LINE_HEIGHT): New.
6654 (MATRIX_TOP_LINE_HEIGHT): New.
6655
6656 * xterm.c (x_frame_mode_line_height): Add parameter face_id.
6657
6658 * term.c (estimate_mode_line_height): Renamed from
6659 frame_mode_line_height. Add parameter face_id.
6660 (estimate_mode_line_height_hook): Renamed from
6661 frame_mode_line_height_hook.
6662 (produce_special_glyphs_hook): Removed.
6663 (produce_glyphs_hook): Removed.
6664
66651999-06-23 Gerd Moellmann <gerd@gnu.org>
6666
6667 * dispextern.h (WINDOW_WANTS_TOP_LINE_P): New.
6668 (struct glyph_row): Add mode_line_p.
6669
6670 * xfaces.c (realize_basic_faces): Realize face `top-line'.
6671 (Qtop_line): New.
6672 (syms_of_xfaces): Initialize Qtop_line.
6673
6674 * dispextern.h (TOP_LINE_FACE_ID): New.
6675
6676 * buffer.c (init_buffer_once): Set default for
6677 top_line_format to nil.
6678 (init_buffer_once): Init top_line_format.
6679 (default-top-line-format): New.
6680 (top-line-format): New buffer-local variable.
6681
6682 * buffer.h: Add top_line_format.
6683
6684 * xdisp.c (overlay_arrow_changed_p): Removed because not used.
6685
66861999-06-17 Dave Love <fx@gnu.org>
6687
6688 * xfns.c: Move the PNG section before the JPEG one to avoid
6689 problems surrounding setjmp.h/png.h on GNU/Linux.
6690
66911999-06-17 Gerd Moellmann <gerd@gnu.org>
6692
6693 * xfns.c (x_kill_gs_process): Don't free colors.
6694
66951999-06-17 Dave Love <fx@gnu.org>
6696
6697 * s/gnu-linux.h: Zap spurious ~.
6698
66991999-06-16 Gerd Moellmann <gerd@gnu.org>
6700
6701 * xfns.c (gif_load): Improve multi-image support.
6702
67031999-06-15 Gerd Moellmann <gerd@gnu.org>
6704
6705 * xfns.c (gif_load): Support multi-image files.
6706
6707 * Makefile.in (LIBGIF): Use libungif.
6708
6709 * configure.in (HAVE_GIF): Use libungif instead of libgif
6710 because the former doesn't contain patented compression code.
6711
6712 * xdisp.c (compute_window_start_on_continuation_line): Don't
6713 do it if line start is too far away from window start.
6714
67151999-06-14 Gerd Moellmann <gerd@gnu.org>
6716
6717 * buffer.c (init_buffer_once): Set buffer_local_flags for
6718 scroll_*_aggressively.
6719 (syms_of_buffer): Add DEFVAR_PER_BUFFER for scroll-*-aggressively.
6720 (init_buffer_once): Set defaults for these variables.
6721 (syms_of_buffer): Add default-scroll-*-aggressively.
6722
6723 * buffer.h (scroll_up_aggressively): New.
6724 (scroll_down_aggressively): New.
6725
6726 * Makefile.in (LIBPNG): Add -lz -lm in case we're linking with
6727 a static PNG library.
6728
6729 * configure.in (HAVE_PNG): Add -lz -lm when checking for PNG lib
6730 in case it's a static library.
6731
6732 * Makefile.in (ctagsfiles): Split so that files starting
6733 with an `x' are found before files starting with `w32'.
6734 (ctagsfiles1): New.
6735 (ctagsfiles2): New.
6736 (TAGS): Use ctagsfiles[12] instead of ctagsfiles.
6737
6738 * xdisp.c (compute_window_start_on_continuation_line): New.
6739 (redisplay_window): Use it.
6740 (INFINITY): New.
6741 (reseat_to_string): Use it.
6742 (hscroll_window_tree): Ditto.
6743 (compute_window_start_on_continuation_line): Ditto.
6744 (redisplay_window): Don't force display with a new window start.
6745
67461999-06-06 Gerd Moellmann <gerd@gnu.org>
6747
6748 * xfns.c (x_report_frame_params): Don't report `outer-window-id'
6749 if widget not present.
6750
6751 * xdisp.c (prepare_menu_bars): Ignore tooltip frame.
6752
67531999-06-04 Gerd Moellmann <gerd@gnu.org>
6754
6755 * xfaces.c (recompute_basic_faces)[GLYPH_DEBUG]: Check return
6756 value of realize_basic_faces.
6757 (load_face_font_or_fontset): Store full font name in face.
6758 (realize_default_face): Use full font name.
6759
26901792
DL
6760 * xterm.c (x_produce_glyphs): Set member char_to_display.
6761 (x_append_glyph): Store char_to_display in glyphs.
6762
6763 * dispextern.h (struct it): Add char_to_display.
6764
6765 * xfns.c (x_set_font): Don't call face-set-after-frame-default
6766 if faces haven't been initialized.
6767 (Fx_create_frame): Call face-set-after-frame-default after
6768 faces have been initialized, and widget has been created.
6769
6770 * puresize.h (BASE_PURESIZE): Increased.
6771
67721999-06-01 Gerd Moellmann <gerd@gnu.org>
6773
6774 * xfaces.c (set_lface_from_font_name): Add parameter force_p.
6775 (Finternal_set_lisp_face_attribute): If frame is t when
6776 :font attribute is set, use the selected frame.
6777 (clear_face_cache): Add parameter clear_fonts_p.
6778 (Fclear_face_cache): Add optional parameter thorougly.
6779
6780 * xfaces.c (face_numeric_value): Return -1 if symbol is not
6781 in table.
6782 (Fclear_face_cache): New.
6783 (choose_face_fontset_font): If fontset doesn't contain font
6784 pattern for the given charset, use CHARSET_ASCII.
6785 (Finternal_set_lisp_face_attribute): Fix handling of nil
6786 stipple attribute.
6787 (Finternal_set_lisp_face_attribute): Fix handling of changing
6788 font-related face attributes of the default face.
6789 (set_lface_from_font_name): Set only attributes that aren't
6790 specified.
6791
67921999-05-31 Gerd Moellmann <gerd@gnu.org>
6793
6794 * xfaces.c (SCALABLE_FONTS): Define this to enable scalable
6795 font support.
6796 (Vscalable_fonts_allowed) [SCALABLE_FONTS]: New.
6797 (x_face_list_fonts): Add parameter scalable_fonts_p. Handle
6798 scalable fonts depending on the setting of SCALABLE_FONTS.
6799 (first_font_matching): List more than one font to find the
6800 first non-scalable matching font.
6801 (sorted_font_list): Let x_face_list_fonts return scalable fonts
6802 depending on SCALABLE_FONTS.
6803 (better_font_p): New parameter compare_pt_p. If zero, don't
6804 compare point sizes of fonts.
6805 (exact_face_match_p) [SCALABLE_FONTS]: New.
6806 (build_scalable_font_name) [SCALABLE_FONTS]: New.
6807 (may_use_scalable_font_p) [SCALABLE_FONTS]: New.
6808 (best_matching_font) [SCALABLE_FONTS]: Handle scalable fonts.
6809 (syms_of_xfaces): Add scalable-fonts-allowed.
6810
68111999-05-26 Gerd Moellmann <gerd@gnu.org>
6812
6813 * xfns.c (png_load): Let PNG lib handle gamma. Construct
6814 mask only if image contains simple transparency information.
6815 Otherwise, combine image with frame background color.
6816
6817 * configure.in (--with-png, HAVE_PNG): New.
6818
6819 * config.in (HAVE_PNG): New.
6820
6821 * Makefile.in: Add PNG library.
6822
6823 * xfns.c: Add PNG support.
6824
68251999-05-25 Gerd Moellmann <gerd@gnu.org>
6826
6827 * xdisp.c (init_xdisp): Initialize echo_area_message and
6828 previous_echo_area_message to nil.
6829
6830 * keyboard.c (read_char): Rename local variable echo_area_message
6831 because it shadows the global one.
6832
68331999-05-05 Gerd Moellmann <gerd@gnu.org>
6834
6835 * xterm.c (note_mode_line_highlight): Restructured.
6836
6837 * window.c (coordinates_in_window): Handle windows that don't have
6838 a mode line because their buffer's mode-line-format is nil.
6839 Recognize the mode line under x positions that correspond to
6840 flags areas and left scroll bar.
6841
68421999-05-02 Dave Love <fx@gnu.org>
6843
6844 * xterm.c (note_mouse_highlight): Separate help-echo processing
6845 from check on mouse-face so that it works generally.
6846
68471999-04-21 Gerd Moellmann <gerd@gnu.org>
6848
6849 * sound.c (Fplay_sound): Run hook play-sound-hook.
6850 (Qplay_sound_hook): New.
6851
68521999-04-20 Gerd Moellmann <gerd@gnu.org>
6853
6854 * xdisp.c (update_echo_area): Handle echo_area_message.
6855
68561999-04-19 Gerd Moellmann <gerd@gnu.org>
6857
6858 * editfns.c (Fmessage): Use message3.
6859
6860 * print.c (printchar): Set echo_area_message to nil.
6861 (strout): Ditto.
6862
6863 * minibuf.c (read_minibuf): Reset echo message strings to nil.
6864 (Fminibuffer_completion_help): Ditto.
6865
6866 * keyboard.c (cmd_error_internal): Set echo_areA_message.
6867 (command_loop_1): Test echo_areA_message.
6868 (read_char): Ditto.
6869 (record_menu_key): Set echo_area_message to nil.
6870 (Fexecute_extended_command): Test echo_area_message.
6871 (Fexecute_extended_command): Handle echo_area_message.
6872
6873 * fileio.c (Fdo_auto_save): Handle the case that echo_area_message
6874 is set.
6875
6876 * editfns.c (Fcurrent_message): If echo_area_message is set,
6877 return a substring of that string.
6878
6879 * dispnew.c (direct_output_for_insert): Test echo_area_message
6880 in addition to echo_area_glyphs.
6881 (set_window_cursor_after_update): Ditto.
6882 (update_frame_1): Ditto.
6883
6884 * alloc.c (Fgarbage_collect): Use message3_nolog to display
6885 old Lisp message string.
6886
6887 * xdisp.c (echo_area_message): New.
6888 (previous_echo_area_message): New.
6889 (syms_of_xdisp): Initialize and staticpro new variables.
6890 (echo_area_display): Display echo_area_message if set.
6891 (message2_nolog): Set echo_area_message and
6892 previous_echo_area_message.
6893 (echo_area_display): Set previous_echo_area_message.
6894 (redisplay_internal): Display echo area if echo_area_message
6895 or previous_echo_area_message are set.
6896 (redisplay_preserve_echo_area): Test/set echo_area_message and
6897 previous_echo_area_message.
6898 (redisplay_window): Test echo_area_message.
6899 (message3_nolog): New.
6900 (message3): New.
6901
6902 * editfns.c (Fformat): Add text properties to the result string
6903 from properties of the format string and properties of string
6904 arguments.
6905
6906 * textprop.c (text_property_list): New.
6907 (add_text_properties_from_list): New.
6908 (extend_property_ranges): New.
6909
69101999-03-29 Gerd Moellmann <gerd@gnu.org>
6911
6912 * xfaces.c (Qraised, Qsunken, QCshadow): Removed.
6913 (QCline_width, QCstyle, Qpressed_button, Qreleased_button): New.
6914 Use these symbols for the box face attribute instead of the
6915 removed ones.
6916
69171999-03-12 Gerd Moellmann <gerd@gnu.org>
6918
6919 * xfaces.c (realize_tty_face): Don't set alt_char_p of face.
6920 Correct wrong test for slant.
6921
69221999-03-10 Gerd Moellmann <gerd@gnu.org>
6923
6924 * xfaces.c: Use `unspecified' for unspecified face attributes,
6925 use t and nil for on/off.
6926
69271999-03-06 Gerd Moellmann <gerd@gnu.org>
6928
6929 * buffer.c (syms_of_buffer): Extend doc string of
6930 mode-line-format.
6931
6932 * xfaces.c (x_face_list_fonts): New parameter try_alternatives_p.
6933 (first_font_matching): New.
6934 (set_lface_from_font_name): Use it if font name is a pattern.
6935 (font_field_wildcard_p): Removed.
6936
6937 * dispnew.c (shift_glyph_matrix): Add `window' parameter.
6938 Recompute visible height of rows.
6939
6940 * xterm.c (note_mouse_highlight): Reorder code for help-echo.
6941 Don't accept non-strings for help-echo from overlays.
6942
69431999-03-04 Dave Love <fx@gnu.org>
6944
6945 * xterm.c (note_mouse_highlight): Check overlays for help-text
6946 property.
6947 (XTread_socket): Fix compiler warning.
6948
69491999-03-05 Gerd Moellmann <gerd@gnu.org>
6950
6951 * xterm.c (note_mouse_highlight): Don't restrict number of
6952 overlay to 10. Call overlays_at so that it doesn't try to
6953 extend the vector.
6954
6955 * xdisp.c (compute_line_metrics): Compute glyph row's visible
6956 height.
6957
6958 * dispnew.c (row_equal_p): Compare visible row height, only.
6959 (update_text_area): Draw whole line if visible heights of
6960 rows differ.
6961 (update_window_line): Call after_update_window_line_hook
6962 if visible row height has changed.
6963
6964 * dispextern.h (MATRIX_ROW_VISIBLE_HEIGHT): Removed.
6965 (struct glyph_row): New member visible_height.
6966
6967 * xfaces.c (font_field_wildcard_p): New.
6968 (set_lface_from_font_name): Remove parameter force_p. Accept
6969 font names containing wildcards.
6970
69711999-03-04 Gerd Moellmann <gerd@gnu.org>
6972
6973 * xterm.c (x_after_update_window_line): Clear internal border
6974 when windows_or_buffers_changed.
6975
6976 * dispextern.h (WINDOW_WANTS_MODELINE_P): Return zero if window's
6977 buffer has a nil mode_line_format.
6978
69791999-03-03 Gerd Moellmann <gerd@gnu.org>
6980
6981 * xterm.c (x_setup_relief_colors): Use either background color
6982 or specified color.
6983
6984 * xfaces.c (realize_x_face): Set face->use_box_color_for_shadows_p.
6985
6986 * dispextern.h (struct face): Add use_box_color_for_shadows_p.
6987
6988 * xterm.c (x_draw_box_rect): New.
6989 (x_draw_glyph_string_box): Renamed from
6990 x_draw_glyph_string_relief. Call x_draw_box_rect.
6991
6992 * xfns.c (QCrelief): New.
6993 (syms_of_xfns): Initialize it.
6994
6995 * dispextern.h (struct glyph): Rename left_shadow_p to
6996 left_box_line_p, right_shadow_p to right_box_line_p.
6997 (MAX_RELIEF_THICKNESS): Removed.
6998 (struct it): Rename members having `relief' in their names
6999 to contain `box' instead.
7000
7001 * xfaces.c (realize_x_face): Handle new box attribute values.
7002 (QCrelief, Qbox): Removed.
7003 (QCshadow, QCcolor, Qraised, Qsunken): New.
7004 (syms_of_xfaces): Initialize new symbols.
7005
70061999-03-02 Gerd Moellmann <gerd@gnu.org>
7007
7008 * dispextern.h (LFACE_RELIEF_INDEX): Removed.
7009
7010 * xfaces.c (LFACE_RELIEF): Removed.
7011 (merge_face_vector_with_property): Remove handling of `:relief'.
7012 (Finternal_set_lisp_face_attribute): Ditto.
7013 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
7014 (Finternal_get_lisp_face_attribute): Ditto.
7015 (realize_default_face): Ditto.
7016 (lface_hash): Don't compute hash from relief.
7017
7018 * dispextern.h (struct face): Replace member `relief' by
7019 `box_line_width'. Add member `box'.
7020 (face_box_type): New.
7021
7022 * xterm.c (x_produce_glyphs): If face has overline, add overline
7023 thickness + 1 to ascent.
7024
70251999-03-01 Gerd Moellmann <gerd@gnu.org>
7026
7027 * xterm.c (x_draw_glyph_string): Draw underline, overline,
7028 strike-through, and boxes.
7029 (x_draw_glyph_string_underline): Removed.
7030
7031 * xfaces.c (QCoverline, QCstrike_through, QCbox): New.
7032 (Qoverline, Qstrike_through, Qbox): New.
7033 (syms_of_xfaces): Define these symbols.
7034 (check_lface_attrs): Add checks for overline, strike-through,
7035 and box.
7036 (Finternal_set_lisp_face_attribute): Set new attributes.
7037 (LFACE_OVERLINE, LFACE_STRIKE_THROUGH, LFACE_BOX): New.
7038 (load_color): Handle new attributes.
7039 (realize_x_face): Ditto.
7040 (merge_face_vector_with_property): Ditto.
7041 (free_face_colors): Ditto.
7042 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
7043 (Finternal_get_lisp_face_attribute): Ditto.
7044 (Finternal_lisp_face_attribute_values): Ditto.
7045
7046 * dispextern.h (lface_attribute_index): Add enumerators for
7047 overstrike, strike-through, and box.
7048 (struct face): Add members for overline, strike-through, and
7049 box.
7050
70511999-02-17 Dave Love <fx@gnu.org>
7052
7053 * s/gnu-linux.h s/gnu.h s/irix5-0.h s/netbsd.h s/sco4.h s/sco5.h
7054 s/template.h (NARROWPROTO): Define on the basis of relevant X cf
7055 files.
7056
70571999-02-16 Gerd Moellmann <gerd@gnu.org>
7058
7059 * keyboard.c (toolbar_items): Call access_keymap with third
7060 parameter 1, so that we don't get inherited toolbar item
7061 definitions.
7062
7063 * xdisp.c (redisplay_internal): In optimization 1, don't decrement
7064 the window end vpos when in empty first line of window.
7065
70661999-02-15 Gerd Moellmann <gerd@gnu.org>
7067
7068 * xfaces.c (set_font_frame_param): New.
7069 (Finternal_set_lisp_face_attribute): Call it.
7070
7071Sun Feb 14 10:54:02 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
7072
7073 * xfaces.c (Finternal_set_lisp_face_attribute_from_resource):
7074 Accept specifications of color for underline.
7075
70761999-02-13 Gerd Moellmann <gerd@gnu.org>
7077
7078 * xfaces.c (Finternal_set_lisp_face_attribute): If parameter
7079 `frame' is t, operate on face defaults for new frames. If it
7080 is nil, operate on the selected frame.
7081
70821999-02-12 Gerd Moellmann <gerd@gnu.org>
7083
7084 * dispnew.c (check_matrix_invariants): Put it in #if 0.
7085 (update_window): Put the call to check_matrix_invariants in #if 0.
7086
7087Sun Feb 7 09:58:49 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
7088
7089 * dispextern.h: Remove all else block of UNDERLINE_COLOR.
7090 Remove definition of UNDERLINE_COLOR.
7091
7092Mon Jan 4 04:43:41 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
7093
7094 * xfaces.c (free_face_colors): Free the color for underline.
7095
7096 * xterm.c (x_draw_glyph_string_underline): Set the color for underline
7097 to the GC.
7098
7099Sun Jan 3 08:41:10 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
7100
7101 * dispextern.h (UNDERLINE_COLOR): Defined.
7102 (struct face): Added two new members.
7103 underline_color, underline_defaulted_p.
7104
7105 * xfaces.c (merge_face_vector_with_property):
7106 (check_lface_attrs): Accept the string value for underline.
7107 (Finternal_set_lisp_face_attribute): Likewise.
7108
7109 * xfaces.c (load_color): Change the last argument type to enum
7110 lface_attribute_index from int. And addec code for underling coloring.
7111 (load_face_colors): Pass LFACE_*_INDEX to load_color.
7112
71131999-02-12 Gerd Moellmann <gerd@gnu.org>
7114
7115 * xfns.c (Fx_image_header): Removed.
7116
71171999-02-07 Gerd Moellmann <gerd@gnu.org>
7118
7119 * xterm.c: Don't include <bitmaps/gray>.
7120 (x_term_init): Use gray_bitmap_width and gray_bitmap_height.
7121
7122 * xfns.c (Fx_image_header): Add missing `\n\'.
7123 (gray_bitmap_width, gray_bitmap_height, gray_bitmap_bits): New.
7124
71251999-02-01 Gerd Moellmann <gerd@gnu.org>
7126
7127 * xterm.c (x_scroll_bar_create): Set background pixel from
7128 specified scroll bar color.
7129 (x_scroll_bar_set_handle): Use scroll bar foreground color.
7130
7131 * xfns.c (x_set_scroll_bar_foreground): Remove all scroll bars.
7132 (x_set_scroll_bar_background): Ditto.
7133
7134 * xterm.c (x_create_toolkit_scroll_bar): Set scroll bar colors.
7135
7136 * xfns.c (x_default_scroll_bar_color_parameter): New.
7137 (Fx_create_frame): Call it.
7138
71391999-01-31 Gerd Moellmann <gerd@gnu.org>
7140
7141 * xfns.c (Fx_create_frame): Initialize scroll bar pixel color
7142 values in x_output structure.
7143 (Qscroll_bar_foreground, Qscroll_bar_background): New.
7144 (syms_of_xfns): Initialize these symbols.
7145
7146 * xterm.h (struct x_output): Add scroll bar pixel colors.
7147
7148 * xfns.c (x_frame_parms): Add entries for scroll bar colors.
7149 (x_set_scroll_bar_foreground): New.
7150 (x_set_scroll_bar_background): New.
7151
26901792
DL
71521999-01-12 Gerd Moellmann <gerd@gnu.org>
7153
7154 * xdisp.c (handle_single_display_prop): New.
7155 (handle_display_prop): Call it.
7156 (handle_raise_prop): Removed.
7157 (handle_height_prop): Removed.
7158 (handle_space_width_prop): Removed.
7159 (handle_face_prop): Remove handling of raised text.
7160 (handle_display_prop): Do it here.
7161
7162 * dispextern.h (DISPLAY_PROP_IDX): Replaces GLYPH_PROP_IDX.
7163 (RAISE_PROP_IDX): Removed.
7164 (HEIGHT_PROP_IDX): Removed.
7165 (SPACE_WIDTH_PROP_IDX): Removed.
7166
7167 * xdisp.c (Qdisplay): Replaces Qglyph.
7168 (handle_display_prop): Formerly handle_glyph_prop.
7169
71701999-01-11 Gerd Moellmann <gerd@gnu.org>
7171
7172 * xdisp.c (reseat_to_string): Set position in display vector to -1.
7173 (handle_stop): Set position in display vector to -1. Don't
7174 check overlay strings when set up to deliver characters from a
7175 display vector.
7176 (set_iterator_to_next): At the end of a run of characters from a
7177 display vector, check whether the display vector display replaces
7178 the display of a character.
7179
71801999-01-05 Gerd Moellmann <gerd@gnu.org>
7181
7182 * xfaces.c (init_frame_faces): Don't realize faces if frame's
7183 X window hasn't been created yet.
7184
71851998-12-06 Gerd Moellmann <gerd@gnu.org>
7186
7187 * sound.c: New.
7188
71891998-12-04 Gerd Moellmann <gerd@gnu.org>
7190
7191 * config.in (HAVE_SOUND): New.
7192
7193 * emacs.c (main): Call syms_of_sound and init_sound.
7194
7195 * Makefile.in (obj): Add sound.o.
7196
7197 * configure.in: Add checks for machine/soundcard.h and sys/soundcard.h.
7198
7199 * config.in (HAVE_MACHINE_SOUNDCARD_H): New.
7200 (HAVE_SYS_SOUNDCARD_H): New.
7201
72021998-12-03 Gerd Moellmann <gerd@gnu.org>
7203
7204 * buffer.h (struct buffer): indicate_empty_lines renamed from
7205 indicate_zv_lines.
7206
7207 * buffer.c (indicate-empty-lines): Renamed from indicate_zv_lines.
7208 (default-indicate-zv-lines): Likewise.
7209
7210 * dispextern.h (struct glyph_row): Rename indicate_zv_line_p
7211 to indicate_empty_line_p.
7212
7213 * xdisp.c (reseat_at_next_visible_line_start): Reset method
7214 to next_element_from_buffer.
7215
7216 * frame.c (make_frame): Set n_current_toolbar_items to 0.
7217
7218 * xdisp.c (handle_face_prop): Allow symbols of the form `N+'
7219 and `N-'.
7220
7221 * xfns.c (xbm_scan): New.
7222 (xbm_read_hexint): Removed.
7223 (xbm_read_bitmap_file_data): Use xbm_scan.
7224
7225 * fileio.c (Finsert_file_contents): Prevent redisplay optimizations.
7226
72271998-12-02 Gerd Moellmann <gerd@gnu.org>
7228
7229 * xfns.c (xbm_read_hexint): New.
7230 (xbm_read_bitmap_file_data): New.
7231 (xbm_load_image_from_file): Call xbm_read_bitmap_file_data
7232 instead of XReadBitmapFileData.
7233
7234 * xdisp.c (handle_raise_prop): Compute voffset from current font.
7235
7236 * xfaces.c (face_with_height): New.
7237
7238 * xdisp.c (eval_handler): Renamed from eval_mode_handler.
7239 (eval_form): Renamed from eval_mode_element.
7240 (handle_face_prop): Use it.
7241 (Qheight): Replaces Qsmaller.
7242 (handle_height_prop): Replaces handle_smaller_prop.
7243 (handle_face_prop): If iterator's font_height is not an
7244 integer, evaluate it to get the font height to use.
7245
7246 * dispextern.h (HEIGHT_PROP_IDX): Replaces SMALLER_PROP_IDX.
7247 (struct it): Use `font_height' instead of `smaller'.
7248
72491998-12-01 Gerd Moellmann <gerd@gnu.org>
7250
7251 * xdisp.c (reseat_1): New.
7252 (reseat): Call it.
7253 (move_it_vertically_backward): Ditto.
7254 (redisplay_window): Don't abort when cursor not found in recenter.
7255
72561998-11-30 Gerd Moellmann <gerd@gnu.org>
7257
7258 * xdisp.c (reseat_at_next_visible_line_start): When not
7259 currently delivering display elements from the current buffer,
7260 restore buffer position first.
7261 (init_from_display_pos): Don't set IT's position from the
7262 position passed to this function.
7263
72641998-11-28 Gerd Moellmann <gerd@gnu.org>
7265
7266 * config.in (PROTO): Removed.
7267
7268 * xterm.h: Change PROTO to P_.
7269
72701998-11-26 Gerd Moellmann <gerd@gnu.org>
7271
7272 * xterm.c (take_vertical_position_into_account): New.
7273 (x_produce_image_glyph): Call it.
7274 (x_produce_stretch_glyph): Ditto.
7275 (x_produce_glyphs): Ditto.
7276 (x_fill_glyph_string): Adjust base line for glyph's voffset.
7277 (x_fill_composite_glyph_string): Ditto.
7278 (x_fill_image_glyph_string): Ditto.
7279 (x_fill_stretch_glyph_string): Ditto.
7280
7281 * xdisp.c (display_line): Always compute row height from
7282 max_ascent and max_descent.
7283
7284 * dispextern.h (struct glyph): Add voffset.
7285 (struct it): Replace height by descent, max_height by max_descent.
7286
7287 * xterm.c (x_append_glyph): Set voffset
7288 (x_append_stretch_glyph): Ditto.
7289 (x_produce_image_glyph): Ditto.
7290 (x_produce_glyphs): Take voffset into account.
7291 (x_produce_image_glyph): Ditto.
7292 (x_produce_stretch_glyph): Ditto.
7293
7294 * dispextern.h (struct it): Add voffset.
7295 * xdisp.c (push_it): Save voffset.
7296 (pop_it): Restore it.
7297
7298 * xdisp.c (it_props): Add entry for `raise'.
7299 (handle_raise_prop): New.
7300
7301 * dispextern.h (RAISE_PROP_IDX): New.
7302
7303 * xdisp.c (Qraise): New.
7304 (syms_of_xdisp): Define Qraised.
7305
7306 * xterm.c (x_scroll_bar_move): Clear to the left and right
7307 of toolkit scroll bars differently.
7308 (x_scroll_bar_move): Removed.
7309 (XTset_vertical_scroll_bar): Move code from x_scroll_bar_move here.
7310
7311 * dispextern.h: Make it compilable --with-x=no.
7312 * alloc.c: Ditto.
7313 * emacs.c: Ditto.
7314 * dispnew.c: Ditto.
7315 * keyboard.c: Ditto.
7316 * term.c: Ditto.
7317 * xdisp.c: Ditto.
7318 * xfaces.c: Ditto.
7319 * xfns.c: Ditto.
7320 * xmenu.c: Ditto.
7321
73221998-11-25 Gerd Moellmann <gerd@gnu.org>
7323
7324 * xterm.c (XTread_socket): Cancel help-echo when leaving frame.
7325
73261998-11-24 Gerd Moellmann <gerd@gnu.org>
7327
7328 * xterm.c (x_set_toolkit_scroll_bar_thumb): When dragging,
7329 update slider size, only.
7330 (xm_scroll_callback): Set dragging member of the scroll bar.
7331 (xt_action_hook): Reset last_scroll_bar_part.
7332 (XTredeem_scroll_bar): Reset bar->dragging to nil.
7333
26901792
DL
7334 * xfns.c (Fx_hide_busy_cursor): Don't try to hide busy cursor
7335 window on newly created frames that don't have one.
7336
73371998-11-23 Gerd Moellmann <gerd@gnu.org>
7338
7339 * xdisp.c (restore_overlay_strings): Removed.
7340 (restore_dpvec): Removed.
7341 (init_from_display_pos): Inline both functions above.
7342
7343 * xfns.c (IMAGE_NON_NEGATIVE_INTEGER_VALUE): New.
7344 (parse_image_spec): Handle it.
7345 (xbm_format): Use it.
7346 (xpm_format): Ditto.
7347 (pbm_format): Ditto.
7348 (jpeg_format): Ditto.
7349 (tiff_format): Ditto.
7350 (gif_format): Ditto.
7351 (gs_format): Ditto.
7352
7353 * xdisp.c (set_window_cursor): Removed.
7354 (redisplay_internal): Case cursor motion in cursor line of
7355 selected window; use set_cursor_from_row.
7356
73571998-11-22 Gerd Moellmann <gerd@gnu.org>
7358
7359 * widget.c (EmacsFrameSetCharSize): Take widget's border width
7360 into account.
7361
73621998-11-21 Gerd Moellmann <gerd@gnu.org>
7363
7364 * xterm.c (expose_frame): Redraw menu bar window.
7365
7366 * xdisp.c (display_menu_bar): Record hpos instead of x-position
7367 in menu item.
7368
7369 * dispnew.c (change_frame_size_1): Use FRAME_TOP_MARGIN instead
7370 of FRAME_TOOLBAR_LINES. Use `f' instead of `frame'.
7371
7372 * widget.c (set_frame_size): Use FRAME_SCROLL_BAR_COLS
7373 to determine vertical_scroll_bar_extra.
7374 (EmacsFrameSetCharSize): Ditto.
7375 * xfns.c (x_figure_window_size): Ditto.
7376
7377 * xterm.c (x_draw_row_bitmaps): Draw in `bitmap-area' face.
7378 (x_draw_bitmap): Ditto.
7379
7380 * dispextern.h (face_id): New id BITMAP_AREA_FACE_ID.
7381 * xfaces.c (realize_basic_faces): Realize it.
7382
73831998-11-20 Gerd Moellmann <gerd@gnu.org>
7384
7385 * xmenu.c (xmenu_show): Add workaround for remaining button grab
7386 under LessTif Use the widget of the frame as parent for the
7387 menu, again.
7388
73891998-11-19 Gerd Moellmann <gerd@gnu.org>
7390
7391 * xterm.c (XTread_socket): Inhibit busy cursor for EnterNotify.
7392 When EnterNotify, don't generate a mouse movement event if
7393 notification is from a busy-cursor child window.
7394
7395 * xterm.h (struct x_output): Add busy_window, remove cursor.
7396
7397 * xfns.c (Fx_show_busy_cursor): Formerly Fx_display_busy_cursor.
7398 Use a transparent window to display the busy-cursor.
7399 (Fx_hide_busy_cursor): Formerly Fx_undisplay_busy_cursor.
7400
74011998-11-17 Gerd Moellmann <gerd@gnu.org>
7402
7403 * xdisp.c (check_window_end): New, for debugging.
7404 (CHECK_WINDOW_END): New.
7405 (try_window_id): Use it.
7406
7407 * xterm.c (process_expose_from_menu): Return int.
7408
7409 * keyboard.c (kbd_buffer_get_event): Set flag to prevent recording
7410 TOOLBAR_EVENT events in last_nonmenu_event.
7411
74121998-11-16 Gerd Moellmann <gerd@gnu.org>
7413
7414 * xdisp.c (redisplay_window): If windows_or_buffers_changed,
7415 window end isn't reliable, so set window_end_valid to nil.
7416 (redisplay_internal): If overlay arrow has changed, set
7417 windows_or_buffers_changed to redisplay thoroughly.
7418
7419 * dispnew.c (adjust_glyph_matrix): Invalidate window end, if
7420 necessary.
7421
7422 * xfns.c (file_dialog_cb): New.
7423 (Fx_file_dialog): New.
7424 * fileio.c (Fread_file_name): Call it.
7425
7426 * xrdb.c (x_load_resources): Add default resoures for file
7427 selection dialog.
7428
74291998-11-14 Gerd Moellmann <gerd@gnu.org>
7430
7431 * xterm.c (note_mouse_highlight): Don't highlight when popup
7432 is active.
7433
26901792
DL
7434 * keyboard.c (timer_check): Inhibit busy cursor around calls to
7435 timer-event-handler. This busy cursor tends to be anoying if
7436 fontifying stealthily.
7437
7438 * dispnew.c (direct_output_for_insert): Give up if current row
7439 contains trailing whitespace.
7440
74411998-11-13 Gerd Moellmann <gerd@gnu.org>
7442
7443 * dispextern.h (prop_idx): Add FONTIFIED_PROP_IDX.
7444
7445 * xdisp.c (handle_fontified_prop): New.
7446 (Vfontification_functions): New.
7447 (Qfontification_functions): New.
7448 (it_props): Add handle_fontified_prop.
7449
74501998-11-12 Gerd Moellmann <gerd@gnu.org>
7451
7452 * xmenu.c (xmenu_show): Use the frame's edit_widget as parent.
7453 Otherwise, under LessTif, after the popup has gone, all button
7454 press events come in for the frame's widget, and release events
7455 come in for the edit_widget.
7456 * xterm.c (XTread_socket): Remove workaround for that problem.
7457 (x_set_toolkit_scroll_bar_thumb): Add workaround for LessTif
7458 XmScrollBarSetValues.
7459 (SET_SAVED_MENU_EVENT): Give it statement form.
7460
26901792
DL
7461 * xfaces.c (display_message): If waiting_for_input, don't display
7462 the message.
7463
7464 * window.c (scroll_command): If not acting on current_buffer,
7465 make redisplay consider all windows.
7466
7467 * xfns.c (Fx_hide_tip): Return t if tooltip was open.
7468
7469 * xdisp.c (handle_glyph_prop): Set it->object for images to
7470 the object having the glyph property.
7471
7472 * xterm.c (x_draw_row_bitmaps): Don't draw if row is completely
7473 invisible.
7474
74751998-11-11 Gerd Moellmann <gerd@gnu.org>
7476
7477 * xterm.h (struct x_display_info): Add gray pixmap. * xterm.c
7478 (x_term_init): Create the gray pixmap.
7479 (x_setup_relief_color): Use it.
7480 (x_get_glyph_string_clip_rect): Draw a toolbar window over the
7481 internal border at the top of a frame.
7482 (x_init_glyph_string): Likewise.
7483 (x_draw_glyph_string_relief): Correct right x by 1 pixel for
7484 full-width lines.
7485 (XTflash): Don't flash the toolbar window.
7486
7487 * xterm.c (XTread_socket): Workaround for LessTif popup menus
7488 in case of ButtonPress events.
7489
74901998-11-10 Gerd Moellmann <gerd@gnu.org>
7491
7492 * xrdb.c (x_load_resources): Add grey background colors as
7493 defaults for menus, scroll bars, and dialogs.
7494
7495 * insdel.c (prepare_to_modify_buffer): Move setting
7496 windows_or_buffers_changed from modify_region here.
7497
7498 * xfns.c (Fx_show_tip): Inhibit redisplay.
7499 (Fx_hide_tip): Ditto.
7500 (Fx_image_header): New.
7501
75021998-11-09 Gerd Moellmann <gerd@gnu.org>
7503
7504 * dispnew.c (clear_window_matrices): Set window_end_valid to nil
7505 when clearing current window matrices.
7506
75071998-11-08 Gerd Moellmann <gerd@gnu.org>
7508
7509 * xdisp.c (handle_glyph_prop): Don't set an iterator's buffer
7510 position from a string position. Use the right end position
7511 if the property spans a whole overlay string.
7512
75131998-11-07 Gerd Moellmann <gerd@gnu.org>
7514
7515 * xmenu.c (menubar_selection_callback): Remove workaround for
7516 Lesstif not calling XmNpopdownCallback because it doesn't
7517 handle the case where users don't select any menu item.
7518
26901792
DL
7519 * insdel.c (modify_region): Set windows_or_buffers_changed.
7520
7521 * buffer.c (set_buffer_internal): Don't set
7522 windows_or_buffers_changed.
7523
26901792
DL
7524 * xmenu.c (HAVE_BOXES): Define if USE_X_TOOLKIT.
7525
26901792
DL
7526 * xmenu.c (menubar_selection_callback): Add workaround for
7527 Lesstif not calling XmNpopdownCallback.
7528
7529 * xdisp.c (eval_mode_element): New.
7530 (eval_mode_handler): New.
7531 (display_mode_element): Use eval_mode_element.
7532
7533 * xdisp.c (display_mode_element): Allow `(:eval FORM)'.
7534 Remove code looking at text props of default value.
7535
7536 * xmenu.c (HAVE_BOXES): Define if using Lucid menus.
7537
26901792
DL
75381998-11-06 Gerd Moellmann <gerd@gnu.org>
7539
7540 * xmenu.c (single_submenu): Set button_type of menu to
7541 BUTTON_TYPE_NONE.
7542 (single_submenu): Likewise for panes and menu items.
7543 (set_frame_menubar): Set button_type of menu bar to none.
7544 (xmenu_show): Likewise.
7545 (single_submenu): Set widget values selected slot.
7546 (xmenu_show): Likewise.
7547
26901792
DL
7548 * xmenu.c (push_menu_item): Add parameters `type' and
7549 `selected'. Store it in menu_items.
7550 (MENU_ITEMS_ITEM_TYPE): New.
7551 (MENU_ITEMS_ITEM_SELECTED): New.
7552 (MENU_ITEMS_ITEM_LENGTH): Increase by two.
7553
7554 * xfns.c (clear_image_cache): Get the current time, before
7555 doing anything.
7556 (cache_image): Set prev pointer of next image.
7557 (clear_image_cache): Clear current matrices if any image was
7558 freed.
7559
7560 * xterm.c (XTread_socket): Set inhibit_busy_cursor.
7561
7562 * xfns.c (x_set_cursor): New.
7563 (Fx_display_busy_cursor): New.
7564 (Fx_undisplay_busy_cursor): New.
7565
7566 * xterm.h (struct x_output): Add busy_cursor.
7567
7568 * xfns.c (Vx_busy_pointer_shape): New.
7569 (x_set_mouse_color): Create busy cursor.
7570
7571 * process.c (wait_reading_process_input): Show and hide busy
7572 cursor.
7573
7574 * keyboard.c (command_loop_1): Display busy cursor.
7575
7576 * eval.c (Fsignal): Hide busy cursor.
7577
7578 * buffer.c (set_buffer_internal): Don't set
7579 windows_or_buffers_changed.
7580
7581 * xterm.c (redo_mouse_highlight): New.
7582
75831998-11-04 Gerd Moellmann <gerd@gnu.org>
7584
26901792
DL
7585 * xfns.c (x_create_x_image_and_pixmap): Add depth parameter.
7586 (x_build_heuritic_mask): New.
7587 (lookup_image): Call it.
7588
7589 * xterm.c (note_toolbar_highlight): Always set up help_echo.
7590 (previous_help_echo): New.
7591 (XTread_socket): Generate help event with nil message when
7592 leaving a region with help-echo.
7593 (note_mouse_highlight): Handle `help-echo' over text.
7594 (XTread_socket): Dispatch VisibilityNotify, CirculateNotify,
7595 CirculateRequest.
7596 (clear_mouse_face): Don't clear if tooltip is shown.
7597 (XTread_socket): Redo mouse-highlight after tooltip is gone.
7598 Avoid SET_FRAME_GARBAGED when tooltip is mapped.
7599
7600 * keyboard.c (Vshow_help_function): New.
7601 (read_char): Use it.
7602
76031998-11-03 Gerd Moellmann <gerd@gnu.org>
7604
7605 * xfns.c (x_create_tip_frame): New.
7606 (Fx_show_tip): New.
7607 (Fx_hide_tip): New.
7608
7609 * xterm.c (x_destroy_window): Handle case that we don't have
7610 a widget.
7611
7612 * dispextern.h (struct glyph_row): Rename no_marginal_areas_p
7613 to full_width_p. Add internal_border_p.
7614
76151998-11-02 Gerd Moellmann <gerd@gnu.org>
7616
7617 * xterm.c (note_mode_line_highlight): Check the charpos of
7618 the glyph under the mouse pointer before accessing text
7619 properties at that position.
7620
76211998-11-01 Gerd Moellmann <gerd@gnu.org>
7622
7623 * xterm.c (x_draw_image_relief): Handle toolbar_button_relief.
7624
7625 * xdisp.c (auto-raise-toolbar-buttons): New.
7626 (build_desired_toolbar_string): Handle the flag.
7627 (toolbar-button-margin): New.
7628 (toolbar-button-relief): New.
7629 (build_desired_toolbar_string): Use margin and relief.
7630
7631 * xterm.c (x_set_toolkit_scroll_bar_thumb): Remove workaround
7632 for FreeBSD.
7633 (note_mode_line_highlight): New.
7634 (note_mouse_highlight): Call it.
7635
76361998-10-31 Gerd Moellmann <gerd@gnu.org>
7637
7638 * s/freebsd.h (NARROWPROTO): New.
7639
7640 * xdisp.c (display_string): New parameter face_string.
7641 (display_mode_element): When displaying a symbol with a string
7642 value, use text properties from the symbol's default value, maybe.
7643
7644 * xrdb.c (x_load_resources): Add font defaults for menus and
7645 dialogs.
7646
76471998-10-30 Gerd Moellmann <gerd@gnu.org>
7648
7649 * xfns.c (Fx_create_frame): Try 12pt Courier font first.
7650
76511998-10-29 Gerd Moellmann <gerd@gnu.org>
7652
7653 * xterm.c (x_produce_glyphs): Fix bug causing glyphs to be
7654 produced for characters with codes < 32 under certain
7655 circumstances.
7656
7657 * xdisp.c (redisplay_window): Handle values of PT in front
7658 of invisible, intangible text.
7659 (try_window_id): Set overlay_arrow_seen to zero before
7660 displaying lines.
7661 (display_mode_element): Assign to glyphs written for a mode
7662 line spec `%x' as object the Lisp format string, as position
7663 the position of the `%' in that string.
7664 (display_string): If displaying a C string, optionally get
7665 the face to use from a Lisp string.
7666
7667 * xterm.c (expose_window_tree): Include mode line height.
7668
7669 * xfns.c (Fx_create_frame): Add toolbar height to frame height.
7670
76711998-10-27 Gerd Moellmann <gerd@gnu.org>
7672
7673 * xterm.c (note_mouse_highlight): Change mouse pointer shape
7674 over mode line.
7675
76761998-10-26 Gerd Moellmann <gerd@gnu.org>
7677
7678 * window.c (coordinates_in_window): Use CURRENT_MODE_LINE_HEIGHT.
7679
7680 * xdisp.c (redisplay_window): If mode line height has changed,
7681 arrange for a thorough immediate redisplay using the correct mode
7682 line height.
7683 (window_box_height): Use CURRENT_MODE_LINE_HEIGHT.
7684
7685 * dispextern.h (MATRIX_MODE_LINE_HEIGHT): New.
7686 (CURRENT_MODE_LINE_HEIGHT): New.
7687 (DESIRED_MODE_LINE_HEIGHT): New.
7688
7689 * keyboard.c (make_lispy_event): Add string and string position
7690 info to mouse-click events.
7691 (read_key_sequence): Handle `local-map' property of mode line
7692 strings.
7693
7694 * keyboard.h (POSN_STRING): New.
7695
76961998-10-25 Gerd Moellmann <gerd@gnu.org>
7697
7698 * dispnew.c (mode_line_string): Mew.
7699
7700 * xterm.c (xt_action_hook): New.
7701 (x_create_toolkit_scroll_bar): Add action hook.
7702 (xm_scroll_callback): Implement dragging.
7703
7704 * keyboard.c (Qend_scroll): New.
7705 (scroll_bar_parts): Add it.
7706
7707 * termhooks.h (scroll_bar_end_scroll): New.
7708
7709 * xterm.c (XTread_socket): Bug fix.
7710
77111998-10-24 Gerd Moellmann <gerd@gnu.org>
7712
7713 * xdisp.c (redisplay_window): Finish scroll bars after
7714 redisplaying toolbar.
7715
7716 * keyboard.c (scroll_bar_parts): Add Qtop and Qbottom.
7717 (syms_of_keyboard): Add Qbottom.
7718
7719 * termhooks.h (scroll_bar_to_top): New.
7720 (scroll_bar_to_bottom): New.
7721
7722 * xdisp.c (redisplay_window): Always resize toolbar window if
7723 auto_resize_toolbar_p is non-zero.
7724 (auto_resize_toolbar_p): Renamed from auto_resize_toolbar.
7725 (window_box): New.
7726 (window_box_height): New.
7727 (window_box_width): New.
7728 (window_box_left): New.
7729 (window_box_right): New.
7730 (window_box_edges): New.
7731
77321998-10-23 Gerd Moellmann <gerd@gnu.org>
7733
7734 * xterm.c (x_set_toolkit_scroll_bar_thumb): Kluge for call to
7735 XawScrollbarSetThumb in FreeBSD.
7736 (x_create_toolkit_scroll_bar): Set resource "beNiceToColormap"
7737 to true.
7738
7739 * window.c (get_phys_cursor_glyph): Return null if cursor vpos
7740 is out of range.
7741
7742 * xterm.c (x_create_toolkit_scroll_bar): Set scroll_bar_pixel.
7743 (x_term_init): Initialize it.
7744
7745 * xterm.h (struct x_display_info): Add scroll_bar_pixel.
7746
7747 * xterm.c (x_create_toolkit_scroll_bar): Set LessTif scroll bar's
7748 cursor.
7749
77501998-10-22 Gerd Moellmann <gerd@gnu.org>
7751
7752 * keyboard.c (make_lispy_event): Handle scroll_bar_click
7753 differently when using toolkit scroll bars.
7754
7755 * xterm.c (x_send_scroll_bar_event): New.
7756 (x_scroll_bar_to_input_event): New.
7757 (xaw3d_scroll_callback): New.
7758 (xaw3d_jump_callback): New.
7759 (xm_scroll_callback): New.
7760 (x_toolkit_scroll_p): New.
7761 (XTread_socket): Handle scroll bar client message.
7762 (x_term_init): Initialize Xatom_Scrollbar.
7763 (x_scroll_bar_create): Set cursor.
7764 (xm_scroll_callback):
7765 (x_create_toolkit_scroll_bar): New.
7766 (x_set_toolkit_scroll_bar_thumb): New.
7767 (x_scroll_bar_create): Call x_create_toolkit_scroll_bar.
7768 (XTset_vertical_scroll_bar): Call x_set_toolkit_scroll_bar_thumb.
7769
7770 * xterm.h (struct x_display_info): Add Xatom_Scrollbar.
7771
77721998-10-21 Gerd Moellmann <gerd@gnu.org>
7773
7774 * xterm.c (x_scroll_bar_remove): Handle toolkit scroll bars.
7775 (XTread_socket): Don't handle mouse button events for scroll bars
7776 if using toolkit scroll bars.
7777 (XTset_vertical_scroll_bar): Set thumb size and position for
7778 Athena scroll bar.
7779
7780 * xterm.h (scroll_bar): Add x_widget_low and x_widget_high.
7781
7782 * xterm.c (XTread_socket): Dispatch expose event to widget
7783 if using toolkit scroll bars.
7784 (x_scroll_bar_expose): Make no-op for toolkit scroll bars.
7785 (x_scroll_bar_create): Create and show a scroll bar widget
7786 if using toolkit scroll bars.
7787 (x_scroll_bar_move): Handle tookit scroll bars.
7788
7789 * Makefile.in (LIBW): Use Xaw3d if present.
7790
7791 * configure.in (USE_TOOLKIT_SCROLL_BARS): New.
7792 (HAVE_XAW3D): New.
7793
7794 * config.in (USE_TOOLKIT_SCROLL_BARS): New.
7795 (HAVE_XAW3D): New.
7796
7797 * xterm.c (XTset_vertical_scroll_bar): Correct position of
7798 right vertical scroll bar.
7799
78001998-10-20 Gerd Moellmann <gerd@gnu.org>
7801
7802 * xfns.c (xpm_load): Support reading XPM images from string
7803 buffers containing data in the same format as an XPM file.
7804 Support `:color-symbols'.
7805 (xpm_format): Add `:data'.
7806 (xpm_keyword_index): Add XPM_DATA.
7807 (syms_of_xfns): Add `:color-symbols'.
7808 (xpm_keyword_index): Add XPM_COLOR_SYMBOLS.
7809 (xpm_valid_color_symbols_p): New.
7810 (xpm_image_p): Call it.
7811
7812 * xdisp.c (build_desired_toolbar_string): Add `:algorithm'
7813 attribute to the image if item is not enabled.
7814
7815 * xfns.c (x_laplace): New.
7816 (x_laplace_read_row): New.
7817 (x_laplace_write_row): New.
7818 (lookup_image): Handle common image attributes here. New
7819 attribute `:algorithm'.
7820
7821 * xfaces.c (clear_face_cache): Call clear_image_cache.
7822
7823 * xterm.c (x_inverted_image_mask): Removed.
7824 (x_draw_image_foreground_1): New.
7825 (x_draw_image_glyph_string): Draw images with mask to a temporary
7826 pixmap to reduce flickering.
7827
7828 * xdisp.c (redisplay_toolbar): Handle auto-resize-toolbars.
7829 (display_toolbar_line): Remove parameter `margin'.
7830
78311998-10-19 Gerd Moellmann <gerd@gnu.org>
7832
7833 * xdisp.c (toolbar_lines_needed): New.
7834 (auto-resize-toolbars): New.
7835
7836 * xfns.c (cache_image): Correct call to xrealloc.
7837
7838 * dispnew.c (Fset_toolbar_height): Removed.
7839
7840 * xdisp.c (init_xdisp): Use FRAME_TOP_MARGIN instead of
7841 FRAME_MENU_BAR_LINES.
7842
7843 * window.c (Fdelete_other_windows): Use FRAME_TOP_MARGIN
7844 instead of FRAME_MENU_BAR_LINES.
7845 (check_frame_size): Ditto.
7846
7847 * dispnew.c (adjust_frame_glyphs_initially): Use FRAME_TOP_MARGIN
7848 instead of FRAME_MENU_BAR_LINES.
7849 (adjust_frame_glyphs_for_frame_redisplay): Ditto.
7850 (build_frame_matrix): Ditto.
7851 (change_frame_size_1): Ditto.
7852
7853 * frame.h (FRAME_TOOLBAR_LINES): New.
7854 (FRAME_TOP_MARGIN): New.
7855
7856 * window.c (struct save_window_data): Add frame_toolbar_lines.
7857 (Fset_window_configuration): Handle toolbar lines.
7858 (Fcurrent_window_configuration): Save toolbar lines.
7859
7860 * frame.c (syms_of_frame_1): Add Qtoolbar_lines.
7861
7862 * xfns.c (Fx_create_frame): Add default parameter for toolbar.
7863
7864 * frame.h (struct frame): Rename top_margin to toolbar_lines.
7865
7866 * xfns.c (x_frame_parms): Add `toolbar-lines'.
7867 (x_set_toolbar_lines): New.
7868
7869 * keyboard.c (cmd_error_internal): Bug fix.
7870
7871 * xterm.c: Remove double include of syssignal.h.
7872
78731998-10-18 Gerd Moellmann <gerd@gnu.org>
7874
7875 * xterm.c (x_toolbar_item): New.
7876 (x_handle_toolbar_click): Use it.
7877 (note_toolbar_highlight): Use it.
7878
7879 * keyboard.c (syms_of_keyboard): Staticpro toolbar_item_properties
7880 and toolbar_items_vectors.
7881
7882 * xterm.c (help_echo): New.
7883 (draw_glyphs_face): Add DRAW_IMAGE_RAISED and DRAW_IMAGE_SUNKEN.
7884 (x_set_glyph_string_gc): Handle them.
7885 (x_after_update_window_line): Don't do anything in pseudo-windows.
7886 (x_produce_image_glyph): Take image margin and face relief into
7887 account.
7888 (x_get_glyph_string_clip_rect): Handle pseudo-windows.
7889 (x_draw_glyph_string_background): Optimize case when face has
7890 relief.
7891 (x_setup_relief_color): Take frame instead of glyph string
7892 parameter.
7893 (x_draw_relief_rect): New.
7894 (x_draw_glyph_string_relief): Call it.
7895 (x_draw_image_glyph_string_foreground): Handle margin and image
7896 relief.
7897 (x_draw_image_glyph_string_background): Ditto.
7898 (expose_frame): Redraw toolbar window.
7899 (expose_window): Don't draw cursor for pseudo-windows.
7900 (x_y_to_hpos_vpos): Handle pseudo-windows.
7901 (frame_to_window_pixel_xy): New.
7902 (note_mouse_highlight): Call note_toolbar_highlight.
7903 (x_handle_toolbar_click): New.
7904 (note_toolbar_highlight): New.
7905 (show_mouse_face): Change int parameter `hl' to parameter of
7906 type enum draw_glyphs_face. Handle image highlighting.
7907 (XTread_socket): Return a HELP_EVENT input event if help_echo is
7908 non-nil. Use x_handle_toolbar_click.
7909
7910 * termhooks.h (event_kind): Add HELP_EVENT, TOOLBAR_EVENT.
7911
7912 * xfns.c (image_value_type): Add IMAGE_INTEGER_VALUE,
7913 IMAGE_BOOL_VALUE.
7914 (parse_image_spec): Handle them.
7915 (image_spec_value): Additional parameter found.
7916 (free_image): Remove image from the vector `images' of the
7917 image cache.
7918 (clear_image_cache): Additional parameter force_p.
7919 (Fclear_image_cache): New.
7920 (x_find_image_file): New.
7921 (xbm_load): Handle `:margin' and `:relief'. Use
7922 x_find_image_file.
7923 (xpm_load): Likewise.
7924 (pbm_load): Likewise.
7925 (jpeg_load): Likewise.
7926 (tiff_load): Likewise.
7927 (gif_load): Likewise.
7928
7929 * keyboard.c (Qhelp_echo): New symbol.
7930 (read_char): Handle `toolbar' and `help_echo' events.
7931 (kbd_buffer_get_event): Handle HELP_ECHO input event.
7932 (make_lispy_event): Handle TOOLBAR_EVENT.
7933 (toolbar_items): New.
7934 (process_toolbar_item): New.
7935 (PROP): New.
7936 (init_toolbar_items): New.
7937 (append_toolbar_item): New.
7938 (read_char_x_menu_prompt): Handle `toolbar' event.
7939 (read_key_sequence): Ditto.
7940
7941 * xfaces.c (Qtoolbar): New.
7942 (realize_basic_faces): Realize `toolbar' face.
7943 (face_at_string_position): Remove parameter modeline_p, add
7944 base_face_id.
7945
7946 * xfns.c (xbm_load_image_from_file): Don't use Xmu function
7947 to read data.
7948
79491998-10-17 Gerd Moellmann <gerd@gnu.org>
7950
7951 * xdisp.c (init_iterator): Replace parameter modeline_p with
7952 base_face_id.
7953 (next_element_from_string): Call get_next_display_element
7954 recursively after handling text properties.
7955 (prepare_menu_bars): Call update_toolbar.
7956 (update_toolbar): New.
7957 (build_desired_toolbar_string): New.
7958 (display_toolbar_line): New.
7959 (redisplay_toolbar): New.
7960 (toolbar_item_info): New.
7961 (redisplay_window): Call redisplay_toolbar.
7962 (Fdump_toolbar_row): New. Defined if compiled with GLYPH_DEBUG.
7963
7964 * dispnew.c (clear_current_matrices): Clear matrices of toolbar
7965 window.
7966 (clear_desired_matrices): Ditto.
7967 (adjust_frame_glyphs_for_window_redisplay): Make toolbar window.
7968 (free_glyphs): Free matrices of toolbar window.
7969 (update_frame): Update toolbar window.
7970 (change_frame_size_1): Take toolbar into account.
7971 (Fset_toolbar_height): New.
7972
7973 * dispextern.h (struct it): Remove member modeline_p, add
7974 base_face_id.
7975 (struct image): Add members relief and margin.
7976 (IMAGE_ASCENT): Include margin in height.
7977
79781998-10-14 Gerd Moellmann <gerd@gnu.org>
7979
7980 * xfns.c (Fclear_image_cache): New.
7981
7982 * xfaces.c (realize_basic_faces): Realize toolbar face.
7983 (face_at_string_position): Remove parameter modeline_p, add
7984 base_face_id.
7985
7986 * dispextern.h (enum face_id): Add TOOLBAR_FACE_ID.
7987
79881998-10-13 Gerd Moellmann <gerd@gnu.org>
7989
7990 * keyboard.c (syms_of_keyboard): Intern `:help'.
7991
79921998-10-12 Gerd Moellmann <gerd@gnu.org>
7993
7994 * xterm.c (note_toolbar_highlight): New.
7995 (note_mouse_highlight): Call it.
7996
7997 * window.c (window_from_coordinates): Additional parameter toolbar_p.
7998 (coordinates_in_window): Handle toolbar window.
7999
8000 * keyboard.c (toolbar_items): New.
8001 (process_toolbar_item): New.
8002 (parse_toolbar_item): New.
8003 (init_toolbar_items): New.
8004 (append_toolbar_item): New.
8005
8006 * dispextern.h (enum toolbar_item_idx): New.
8007 (enum toolbar_item_image): New.
8008
8009 * frame.h (struct frame): Add toolbar-related members.
8010
8011 * xfaces.c (face_at_string_position): Remove assertion that
8012 current_buffer == window's buffer. This is not the case when
8013 called for the toolbar window.
8014
8015 * frame.c (make_frame): Initialize toolbar members.
8016
8017 * alloc.c (mark_object): Mark toolbar data of frames.
8018
8019 * frame.h (struct frame): Add toolbar-related members
8020 toolbar_window, desired_toolbar_items, current_toolbar_items,
8021 desired_toolbar_string, current_toolbar_string,
8022 n_desired_toolbar_items, n_current_toolbar_items. Add
8023 window_height.
8024
8025 * xterm.c (x_after_update_window_line): Don't draw bitmap
8026 areas for pseudo-windows.
8027 (expose_frame): Handle toolbar window.
8028 (expose_window): Don't do cursor stuff for pseudo-windows.
8029
8030 * xdisp.c (display_menu_bar): Correct calls to init_iterator.
8031
80321998-10-11 Gerd Moellmann <gerd@gnu.org>
8033
8034 * frame.c (make_frame): Initialize toolbar_window.
8035
8036 * alloc.c (mark_object): Make the toolbar window.
8037
8038 * dispnew.c (update_frame): Update frame's toolbar_window.
8039 (clear_current_matrices): Likewise.
8040 (clear_desired_matrices): Likewise.
8041 (adjust_frame_glyphs_for_window_redisplay): Make toolbar_window.
8042 (free_glyphs): Free the toolbar window and its matrices.
8043
8044 * frame.h (struct frame): Add toolbar_window.
8045
8046 * xterm.c (x_draw_glyph_string_relief): Handle mouse-face
8047 with relief.
8048
80491998-10-10 Gerd Moellmann <gerd@gnu.org>
8050
8051 * dispnew.c (buffer_posn_from_coords): Don't screw up if
8052 window start is not in the range BEGV..ZV.
8053
80541998-10-09 Gerd Moellmann <gerd@gnu.org>
8055
8056 * xdisp.c (try_scrolling): Experimentally handle the case
8057 that scroll-preserve-screen-position is set to `always'.
8058
8059 * window.c (Vscroll_preserve_screen_position): Replacement for
8060 scroll_preserve_screen_position.
8061
80621998-10-08 Gerd Moellmann <gerd@gnu.org>
8063
8064 * dispnew.c: Don't initialize auto structs; the HP/UX compiler
8065 doesn't like it.
8066 * xdisp.c: Ditto.
8067
8068 * xdisp.c (make_cursor_line_fully_visible): Adjust this_line_y.
8069
80701998-10-06 Gerd Moellmann <gerd@gnu.org>
8071
8072 * minibuf.c (Fminibuffer_complete_word): Fix computation of
8073 i_byte when prompts are inserted into minibuffers.
8074
8075 * dispextern.h (FRAME_INTERNAL_BORDER_WIDTH_SAFE): New.
8076 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Use it.
8077 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y): Ditto.
8078
80791998-10-04 Gerd Moellmann <gerd@gnu.org>
8080
8081 * xdisp.c (make_cursor_line_fully_visible): New.
8082 (try_scrolling): New.
8083 (redisplay_window): Move scrolling code to try_scrolling.
8084 (make_cursor_line_fully_visible): Handle case of window too small
8085 to show a single line.
8086 (redisplay_window): Case forced window start---use
8087 make_cursor_line_fully_visible.
8088 (redisplay_window): Case cursor movement via current matrix.
8089 If ending up on a partially visible line, make it fully visible
8090 instead of recentering.
8091 (try_scrolling): Additional parameter scroll_smoothly.
8092
8093 * xterm.c (x_draw_bitmap): Don't XClearArea under the pixmap.
8094
80951998-09-28 Gerd Moellmann <gerd@gnu.org>
8096
8097 * window.c (window_scroll_pixel_based): Bug fix: vpos used
8098 instead of y-position for scroll-preserved-screen-position.
8099
81001998-09-07 Gerd Moellmann <gerd@gnu.org>
8101
8102 * dispnew.c (update_frame_line): If current row is not enabled,
8103 write the whole line.
8104
81051998-09-06 Gerd Moellmann <gerd@gnu.org>
8106
8107 * lisp.h (HAVE_FACES): Removed.
8108
8109 * dispextern.h (HAVE_FACES): Removed.
8110
8111 * config.in (HAVE_FACES): Removed.
8112
8113 * dispnew.c (HAVE_FACES): Removed.
8114
8115 * xdisp.c (HAVE_FACES): Removed.
8116
8117 * xfaces.c (HAVE_FACES): Removed.
8118
81191998-09-05 Gerd Moellmann <gerd@gnu.org>
8120
8121 * xdisp.c (init_iterator): If face_change_count is non-zero,
8122 free realized faces.
8123
8124 * xfaces.c (free_all_realized_faces): Make it externally visible.
8125 (Finternal_set_lisp_face_attribute): Increment
8126 windows_or_buffers_changed.
8127
8128 * dispnew.c (direct_output_for_insert): Give up if
8129 face_change_count is non-zero.
8130 (direct_output_forward_char): Ditto.
8131
8132 * xfaces.c (face_change_count): New.
8133
81341998-09-04 Gerd Moellmann <gerd@gnu.org>
8135
8136 * xterm.c (x_draw_bar_cursor): Don't draw if cursor hpos is out
8137 of range.
8138
81391998-09-03 Gerd Moellmann <gerd@gnu.org>
8140
8141 * term.c (Ftty_display_color_p): New.
8142
81431998-09-02 Gerd Moellmann <gerd@gnu.org>
8144
8145 * xfaces.c (Ftty_defined_colors): New.
8146
8147 * xterm.c (x_produce_glyphs): Fix computation of
8148 contains_overlapping_glyphs_p for ASCII.
8149
8150 * dispnew.c (Fshow_cursor): Don't change cursor state while
8151 redisplaying.
8152 (direct_output_for_insert): If a glyph with lbearing or rbearing
8153 is among the new glyphs, set row flag contains_overlapping_glyph_p.
8154
81551998-09-01 Gerd Moellmann <gerd@gnu.org>
8156
8157 * term.c (OUTPUT_IF): Make replacement text have statement form.
8158 (OUTPUT1_IF): Ditto.
8159 (TS_italic_mode, TS_end_italic_mode): Removed.
8160 (TS_bold_mode): Removed.
8161 (TS_underscore_mode, TS_end_underscore_mode): Removed.
8162 (TS_enter_bold_mode, TS_enter_dim_mode, TS_enter_blink_mode): New.
8163 (TS_enter_reverse_mode): New.
8164 (TS_enter_underline_mode, TS_exit_underline_mode): New.
8165 (TN_magic_cookie_glitch_ul): New.
8166 (TS_enter_alt_charset_mode, TS_exit_alt_charset_mode): New.
8167 (TS_exit_attribute_mode): New.
8168 (TN_max_colors, TN_max_pairs, TS_orig_pairs): New.
8169 (TS_set_foreground, TS_set_background): New.
8170 (reset_terminal_modes): Switch colors back to default.
8171 (write_glyphs): Turn face on before writing text, turn it off
8172 afterwards.
8173 (insert_glyphs): Ditto.
8174 (term_init): Initialize new terminal capability variables.
8175 (turn_on_face): Turn a face on.
8176 (turn_off_face): Turn a face off.
8177
8178 * lisp.h (MAKE_GLYPH): Remove test for frame type.
8179 (GLYPH_CHAR): Ditto.
8180 (GLYPH_FACE): Ditto.
8181
8182 * xfaces.c (Vface_tty_color_alist): New.
8183 (face-register-tty-color): New.
8184 (face-clear-tty-colors): New.
8185
8186 * dispextern.h (FACE_TTY_DEFAULT_COLOR): New.
8187 (struct it): Remove member faces_p since we now always have faces.
8188
81891998-08-31 Gerd Moellmann <gerd@gnu.org>
8190
8191 * dispextern.h (struct face): Add tty appearance flags.
8192
8193 * xdisp.c (init_iterator): Always handle faces.
8194 (extend_face_to_end_of_line): Handle tty frames.
8195
8196 * dispnew.c (clear_glyph_matrix): Allow a null matrix to be
8197 passed in.
8198
81991998-08-30 Gerd Moellmann <gerd@gnu.org>
8200
8201 * xfaces.c (realize_default_face): Use empty strings to indicate
8202 that the face should use the default foreground/background
8203 color of the terminal. Fill font-related attributes with
8204 appropriate values for tty frames.
8205
8206 * emacs.c (main): Call syms_of_xfaces before init_window_once.
8207
8208 * xfaces.c (realize_default_face): If face `default' is not
8209 yet known, create it.
8210
8211 * frame.c (make_terminal_frame): Call init_frame_faces
8212 unconditionally.
8213
8214 * xfaces.c (init_frame_faces): Make it work for tty frames.
8215 (free_frame_faces): Ditto.
8216 (clear_face_cache): Ditto.
8217 (recompute_basic_faces): Ditto.
8218 (Fframe_face_alist): Ditto.
8219 (free_realized_face): Ditto.
8220 (prepare_face_for_display): Ditto.
8221 (clear_face_gcs): Ditto.
8222 (lookup_face): Ditto.
8223 (smaller_face): Ditto.
8224 (realize_default_face): Ditto.
8225 (realize_face): Ditto.
8226 (realize_face): Dispatch to functions depending on the frame type.
8227 (realize_x_face): X way of realizing faces.
8228 (realize_tty_face): TTY way of realizing faces.
8229
82301998-08-29 Gerd Moellmann <gerd@gnu.org>
8231
8232 * xfaces.c (realize_face): Remove parameter unibyte_registry,
8233 compute it instead.
8234 (lookup_face): Remove local variable unibyte_registry.
8235
82361998-08-22 Gerd Moellmann <gerd@gnu.org>
8237
8238 * xterm.c (x_draw_glyph_string_relief): Draw top and bottom lines
8239 1 pixel longer.
8240
8241 * xdisp.c (face_before_or_after_it_pos): Fix computation
8242 of face in buffer.
8243
8244 * editfns.c (make_buffer_string_both): If prompt in buffer,
8245 prevent start > end.
8246
8247 * indent.c (Fvertical_motion): Set current_buffer to window's
8248 buffer if it isn't already.
8249
82501998-08-21 Gerd Moellmann <gerd@gnu.org>
8251
8252 * dispextern.h (GLYPH_DEBUG): Use default 0.
8253
8254 * xdisp.c (it_props): New member `smaller'.
8255 (init_iterator): Initialize it.
8256 (Qsmaller): New.
8257 (push_it): Save value of `smaller' value on the stack.
8258 (pop_it): Restore `smaller' from the stack.
8259 (handle_smaller_prop): New.
8260 (handle_face_prop): Use `smaller' text property to select a
8261 suitable face.
8262
8263 * dispextern.h (SMALLER_PROP_IDX): New.
8264 (struct it): Add member `smaller'.
8265
8266 * xfaces.c (smaller_face): New.
8267
8268 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add bitmap area widths.
8269
8270 * dispnew.c (allocate_matrices_for_window_redisplay): Compute
8271 total pixel width of window differently.
8272
8273 * xdisp.c (init_iterator): Compute width of mode line differently.
8274
8275 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract width
8276 of bitmap areas.
8277
8278 * window.c (Fsplit_window): Include width of bitmap areas in
8279 window width.
8280 (window_internal_width): Subtract width of bitmap areas from
8281 total width.
8282
82831998-08-18 Gerd Moellmann <gerd@gnu.org>
8284
8285 * xdisp.c: Functions reordered for better readability.
8286
8287 * dispnew.c (update_text_area): Handle glyphs with arbitrary
8288 lbearing.
8289 (update_window_tree): Parameter no_scrolling_p removed.
8290 (update_single_window): Ditto.
8291
8292 * xterm.c (x_get_char_font_and_encoding): Renamed to
8293 x_get_char_face_and_encoding.
8294
8295 * dispnew.c (update_text_area): Don't call get_glyph_overhangs
8296 if end of current row reached.
8297
8298 * xterm.c (x_get_glyph_face_and_encoding): New.
8299 (x_get_glyph_overhangs): Call it.
8300
8301 * xdisp.c (Qshow_trailing_whitespace): New.
8302 (Qtrailing_whitespace): New.
8303 (enum prop_handled): New.
8304 (struct props, it_props): New.
8305 (next_overlay_change): New. Works like Fnext_overlay_change
8306 but doesn't use xmalloc.
8307 (handle_stop): Restructured.
8308 (face_before_or_after_it_pos): Case iteration over a string: fix
8309 handling of face before current position.
8310
83111998-08-16 Gerd Moellmann <gerd@gnu.org>
8312
8313 * dispnew.c (adjust_glyph_matrix): Don't optimize matrix
8314 reallocation matrix if fonts_changed_p.
8315 (update_text_area): Handle glyphs with lbearing.
8316
83171998-08-14 Gerd Moellmann <gerd@gnu.org>
8318
8319 * xdisp.c (struct props): New.
8320 (it_props): New.
8321 (compute_prop_info): New.
8322 (handle_stop): New.
8323
8324 * textprop.c (validate_interval_range): Make it externally
8325 visible.
8326
8327 * dispnew.c (direct_output_for_insert): Remove calls
8328 to compute_stop_pos.
8329
8330 * dispextern.h (struct it): Remove check_charpos,
8331 next_overlay_pos. Add what_changes.
8332
83331998-08-10 Gerd Moellmann <gerd@gnu.org>
8334
8335 * xterm.c (note_mouse_highlight): Set BEGV_BYTE, ZV_BYTE.
8336
8337 * xfaces.c (Vx_unibyte_registry_and_encoding): Removed. Use
8338 face_default_registry instead.
8339
8340 * syntax.c (scan_sexps_forward): Set up syntax table before
8341 jumping to initial state label.
8342
83431998-08-09 Gerd Moellmann <gerd@gnu.org>
8344
8345 * dispnew.c (check_matrix_invariants): Handle case of row end pos
8346 >= ZV specially.
8347
83481998-08-08 Gerd Moellmann <gerd@gnu.org>
8349
8350 * xdisp.c (redisplay_window): Case cursor movement---if cursor
8351 ends up in partially visible row, try to scroll. Case forced
8352 window start---handle windows not tall enough to show a single
8353 line.
8354
8355 * window.h (struct window): Member dy renamed vscroll.
8356
8357 * xterm.c (x_list_fonts): Re-activate suppression of scalable
8358 fonts.
8359 (x_draw_stretch_glyph_string): Set clipping if using GC that
8360 hasn't set it yet.
8361
8362 * xdisp.c (redisplay_window): Case forced window start -
8363 don't let cursor end on partially visible row. Use desired
8364 matrix to find a suitable PT if it doesn't appear.
8365 (decode_mode_spec): Merged with 20.2.97.
8366 (try_window_reusing_current_matrix): Give up if old or
8367 new display is vscrolled.
8368 (redisplay_window): Reset vscrolling if forced window start,
8369 or if recentering.
8370
83711998-08-06 Gerd Moellmann <gerd@gnu.org>
8372
8373 * xfaces.c (realize_default_face): Use the fontset name instead of
8374 the alias for the family attribute of the default face because we
8375 can't easily determine a good alias from fontset-alias-alist.
8376 (face_fontset): Use Fquery_fontset to find the fontset.
8377 (font_list): Additional pattern parameter.
8378 (try_font_list): Ditto.
8379 (set_lface_from_font_name): Set face family from font foundry
8380 and family.
8381 (font_list): If family contains a hyphen, build pattern differently.
8382
83831998-08-05 Gerd Moellmann <gerd@gnu.org>
8384
8385 * xfaces.c (free_realized_faces): Increment windows_or_buffers_-
8386 changed instead of setting the frame garbaged.
8387
8388 * xfaces.c (lface_equal_p): Don't assume equal Lisp types for
8389 all attribute values. This is wrong if values are unspecified,
8390 i.e. nil.
8391
8392 * xdisp.c (try_window_id): Give up if window start changed.
8393
8394 * xfaces.c (make_realized_face): Store registry as Lisp object.
8395 (load_face_font_or_fontset): Compute registry of a face
8396 differently. Make it `eq' to Vx_unibyte_registry_and_encoding if
8397 possible.
8398
8399 * dispextern.h (FACE_SUITABLE_FOR_CHARSET_P): Compare registries
8400 differently.
8401
8402 * alloc.c (mark_face_cache): Mark the registry member of faces.
8403
8404 * dispextern.h (struct face): Make registry a Lisp string.
8405
84061998-08-04 Gerd Moellmann <gerd@gnu.org>
8407
8408 * xterm.c (x_get_char_font_and_encoding): Additional parameter
8409 multibyte_p. Handle unibyte text.
8410 (x_append_glyph): Set the multibyte_p flag of glyphs.
8411 (x_produce_image_glyph): Ditto.
8412 (x_append_stretch_glyph): Ditto.
8413 (x_produce_glyphs): Handle unibyte text like ASCII.
8414
8415 * xdisp.c (push_it): Save the multibyte flag of an iterator on the
8416 stack.
8417 (pop_it): Restore it.
8418 (face_before_or_after_it_pos): Handle the case that the string or
8419 buffer is unibyte.
8420 (get_overlay_strings): Set the multibyte flag of the iterator if
8421 the new overlay string is multibyte.
8422 (get_glyph_property): Likewise.
8423 (get_next_display_element): Don't check for charset changes in
8424 unibyte text.
8425 (append_space): Compute face differently for unibyte text.
8426 (extend_face_to_end_of_line): Don't return quickly if face has
8427 stipple.
8428
8429 * xfaces.c (load_face_font_or_fontset): Store registry and
8430 encoding of the font in the registry member of the face.
8431 (make_realized_face): Additional parameter `registry'.
8432 (free_realized_face): Free the registry of a realized face.
8433 (face_suitable_for_charset_p): Function form of the macro
8434 with the same name in uppercase.
8435 (lookup_face): Use Vx_unibyte_registry_and_encoding if charset < 0.
8436 (choose_face_font): New parameter unibyte_registry.
8437 (choose_face_fontset_font): Ditto.
8438 (realize_default_face): Remember the registry and encoding of
8439 the specified frame font in Vx_unibyte_registry_and_encoding.
8440 (face_at_buffer_position): Handle unibyte.
8441 (face_at_string_position): Likewise.
8442 (realize_face): New parameter unibyte_registry.
8443 (compute_char_face): Handle the unibyte case.
8444
8445 * dispextern.h (struct glyph): Add bit multibyte_p.
8446 (struct face): New member registry holding the registry and
8447 encoding of the X font of the face.
8448 (FACE_UNIBYTE_P): Value is non-zero if face is for unibye text.
8449 (enum face_id): Add BASIC_FACE_ID_SENTINEL.
8450 (FACE_SUITABLE_FOR_CHARSET_P): Handle charset < 0 meansing unibyte
8451 text.
8452 (struct iterator_stack_entry): Add multibyte_p.
8453
8454 * xdisp.c (string_pos): Use string_char_to_byte.
8455 (char_charset): Removed.
8456
84571998-08-03 Gerd Moellmann <gerd@gnu.org>
8458
8459 * xterm.c (x_draw_image_glyph_string_foreground): Draw a
8460 rectangle for a block cursor over an image without a mask.
8461 (x_stretch_block_cursor): Added. Non-zero means don't draw
8462 a block cursor over a stretch as wide as that stretch.
8463 (x_draw_stretch_glyph_string): Use it.
8464 (x_draw_hollow_cursor): Ditto.
8465
8466 * minibuf.c (read_minibuf): Use minibuf_prompt instead of prompt.
8467 (read_minibuf): Add front-sticky text property for prompt.
8468
8469 * xdisp.c (char_charset): Return charset of a character,
8470 depending on whether or not multi-byte characters are enabled.
8471
8472 * xfaces.c (Fset_face_charset_registry): Removed.
8473 (x_charset_registry): Determine registry from charset plist.
8474
84751998-08-02 Gerd Moellmann <gerd@gnu.org>
8476
8477 * xdisp.c (get_next_display_element): Don't check for charset
8478 changes if multi-byte characters are not enabled.
8479
8480 * xdisp.c (echo_area_display): Use the flush function from the
8481 redisplay interface.
8482 * keyboard.c (detect_input_pending_run_timers): Likewise.
8483
8484 * dispextern.h (produce_*glyphs_hook): Removed.
8485 * term.c (produce_*glyphs): Ditto.
8486 (cursor_to): Remove pixel position parameters.
8487
8488 * dispnew.c: Remove hooks for window-based redisplay, introduce
8489 a redisplay interface structure.
8490
8491 * xterm.c (x_per_char_metric): Return default char metrics if per
8492 char metric exists but contains a zero width. Adobe Courier seems
8493 to contain such characters.
8494
8495 * xdisp.c (compute_line_metrics): Compute the width of rows
8496 without stopping at glyphs with zero width.
8497
84981998-08-01 Gerd Moellmann <gerd@gnu.org>
8499
8500 * xdisp.c (display_mode_line): If nothing was displayed at all,
8501 display a space.
8502 (hscroll_window_tree): Don't subtract 1 from target point if equal
8503 to ZV and window is not the selected window.
8504
8505 * dispnew.c (check_matrix_invariants): Remove check for window
8506 start at BEGV or after newline. This happens in rare cases
8507 intentionally.
8508
85091998-07-31 Gerd Moellmann <gerd@gnu.org>
8510
8511 * xfaces.c (x_charset_registry): Use STRING_BYTES.
8512 (syms_of_xfaces): Add Vface_default_registry.
8513 (x_charset_registry): Use it.
8514
8515 * xdisp.c (run_window_scroll_functions): Run window scroll functions.
8516 (redisplay_window): Use it.
8517
8518 * dispnew.c (update_text_area): Handle lbearing of deleted text
8519 by backing up one character.
8520
85211998-07-30 Gerd Moellmann <gerd@gnu.org>
8522
8523 * dispnew.c (adjust_glyph_matrix): Use a different check to
8524 decide to do nothing.
8525
8526 * xfaces.c (face_at_string_position): Additional parameter
8527 mode_line_p. If non-zero, merge with the mode line face
8528 instead of the default face.
8529 * dispextern.h (struct it): Add mode_line_p.
8530 * xdisp.c (init_iterator): Set it.
8531 (compute_face_in_string): Use it.
8532 (face_before_or_after_it_pos): Handle strings.
8533 (get_next_display_element): Don't look for relief end in C strings.
8534 (next_element_from_string): Deliver string position instead of
8535 buffer position.
8536
8537 * xterm.c (x_flush): Flush X output buffer.
8538 (XTflash): Use it.
8539
8540 * xfaces.c (lface_from_face_name): Renamed from lface_from_symbol.
8541 Allow strings as face names.
8542
8543 * xfns.c (forall_images_in_image_cache): Check that frame is
8544 alive.
8545
8546 * widget.c (EmacsFrameDestroy): Remove call to free_frame_faces;
8547 it's also called from x_destroy_window. Since this function is
8548 called from X, freeing stuff allocated with xmalloc is dangerous
8549 here, anyway.
8550
8551 * xfaces.c (free_realized_faces): Don't clear current matrices
8552 of a frame being destroyed.
8553
8554 * frame.c (make_frame): Call set_window_buffer instead of
8555 Fset_window_buffer.
8556
8557 * window.c (set_window_buffer): Extracted from Fset_window_buffer,
8558 with an additional argument specifying whether or not hooks may
8559 be called.
8560 (Fset_window_buffer): Call it.
8561
8562 * dispnew.c (clear_desired_matrices): Check that frame has
8563 a valid root window before clearing matrices in the window tree.
8564 (clear_current_matrices): Ditto.
8565 (clear_window_matrices): If GLYPH_DEBUG, check that hchild and
8566 vchild are valid windows if not nil.
8567
8568 * xfaces.c (merge_face_vector_with_property): Allow :reverse-video
8569 for :inverse-video.
8570 (Finternal_set_lisp_face_attribute): Ditto.
8571 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
8572 (Finternal_get_lisp_face_attribute): Ditto.
8573 (Finternal_lisp_face_attribute_values): Ditto.
8574 (syms_of_xfaces): Define the symbol `:reverse-video'.
8575
8576 * xdisp.c (get_glyph_property): Renamed from
8577 fill_iterator_from_glyph_property.
8578 (next_element_from_buffer): Handle case that no `glyph' property
8579 was found correctly.
8580 (display_line): Extend face to end of line only if we have faces.
8581
85821998-07-29 Gerd Moellmann <gerd@gnu.org>
8583
8584 * dispnew.c (Fshow_cursor): Renamed from blink_cursor. Take
8585 additional window argument.
8586
8587 * xdisp.c (reseat_at_previous_visible_line_start): Renamed from
8588 set_iterator_to_previous_visible_line_start.
8589 (reseat_at_next_visible_line_start): Likewise.
8590 (compute_stop_pos): Renamed from set_iterator_stop_pos.
8591 (face_before_or_after_it_pos): Renamed from get_face_at_it_pos.
8592 (compute_face_in_buffer): Renamed from
8593 compute_face_at_iterator_position.
8594 (compute_face_in_string): Renamed from
8595 compute_face_at_iterator_string_position.
8596 (get_space_width): Renamed from get_iterator_space_width.
8597 (next_overlay_string): Renamed from
8598 set_iterator_to_next_overlay_string.
8599 (get_overlay_strings): Renamed from
8600 get_overlay_strings_at_iterator_position.
8601 (restore_overlay_strings): Renamed from
8602 setup_overlay_strings_from_glyph_pos.
8603 (restore_dpvec): Renamed from setup_iterator_dpvec_from_glyph_pos.
8604 (init_from_display_pos): Renamed from init_iterator_from_glyph_pos.
8605 (init_to_row_start): Renamed from init_iterator_to_row_start.
8606 (init_to_row_end): Formerly init_iterator_to_next_row_start.
8607
8608 * xterm.c: Merge with 20.2.97.
8609 (x_produce_glyphs): Use x_append_stretch_glyph for tabs.
8610
8611 * dispextern.h (struct glyph): Replace text_pos position with
8612 simple charpos.
8613
8614 * xdisp.c (this_line_start_pos): Use struct text_pos.
8615 (this_line_end_pos): Renamed from .*endpos; use struct text_pos.
8616 (enum move_it_result): Renamed from move_iterator_result.
8617 (string_pos_nchars_ahead): Compute text_pos in a string from a
8618 known text_pos plus a character delta.
8619 (string_pos): Compute text_pos in string from charpos.
8620 (c_string_pos): Likewise for a C string.
8621 (number_of_chars): Return number of characters in a possibly
8622 multi-byte C string.
8623 (check_it): Renamed from check_iterator. Check that charpos and
8624 bytepos are in sync.
8625 (push_it): Renamed from save_iterator_settings.
8626 (pop_it): Renamed from restore_iterator_settings.
8627 (move_it_.*): Renamed from move_iterator_.*.
8628 (charset_at_position): Take charpos/bytepos into account.
8629 (back_to_previous_line_start): Set iterator to previous line start.
8630 (forward_to_next_line_start): Set iterator to next line start.
8631 (back_to_previous_visible_line_start): Renamed from
8632 move_iterator_previous_visible_line_start.
8633 (set_iterator_to_next_visible_line_start): Handle charpos/bytepos.
8634 (get_face_at_it_pos): Renamed from get_face_from_cursor_pos.
8635 Handle charpos/bytepos.
8636 (compute_face_at_iterator_position): Handle charpos/bytepos.
8637 (compute_face_at_iterator_string_position): Likewise.
8638 (get_iterator_space_width): Likewise.
8639 (load_overlay_strings): Likewise.
8640 (get_overlay_strings_at_iterator_position): Likewise.
8641 (reseat_iterator): Take a text_pos position argument.
8642 (setup_iterator_overlay_strings_from_glyph_pos): Handle charpos/
8643 bytepos.
8644 (init_iterator): Take additional bytepos parameter.
8645 (reseat_iterator_to_string): Handle charpos/bytepos.
8646 (start_display): Take a text_pos parameter. Handle charpos/bytepos.
8647 (next_element_from_string): Handle charpos/bytepos.
8648 (next_element_from_c_string): Likewise.
8649 (fill_iterator_from_glyph_property): Likewise.
8650 (next_element_from_buffer): Likewise.
8651 (set_iterator_to_next): Increment charpos and bytepos of an iterator.
8652 (move_iterator_in_display_line_to): Handle charpos/bytepos.
8653 (move_it_to): Likewise.
8654 (move_it_vertically_backward): Likewise.
8655 (move_it_vertically): Likewise.
8656 (move_it_by_lines): Likewise.
8657 (hscroll_window_tree): Likewise.
8658 (redisplay_internal): Likewise.
8659 (set_cursor_from_row): Likewise.
8660 (redisplay_window): Likewise.
8661 (try_window): Take a text_pos parameter. Handle charpos/bytepos.
8662 (try_window_reusing_current_matrix): Handle charpos/bytepos.
8663 (get_first_unchanged_at_end_row): Compute and return delta_bytes.
8664 (try_window_id): Handle charpos/bytepos.
8665 (Ftrace_redisplay_toggle): Return Qnil.
8666 (get_overlay_arrow_glyph_row): Handle charpos/bytepos.
8667 (insert_left_trunc_glyphs): Likewise.
8668
8669 * dispnew.c: `Merge' with 20.2.97 (it's really too different to
8670 do a real merge).
8671 (increment_glyph_matrix_buffer_positions): Add parameter delta_bytes.
8672 (increment_glyph_row_buffer_positions): Ditto.
8673 (copy_glyph_row_contents): Ditto.
8674 (check_matrix_invariants): Add additional checks for charpos/
8675 bytepos consistency.
8676 (direct_output_for_insert): Changed for charpos/bytepos.
8677 (buffer_posn_from_coords): Likewise. Put code dealing with
8678 `direction-reversed' in #if 0.
8679
8680 * xterm.h: Merge with 20.2.97.
8681
8682 * frame.h: Merge with 20.2.97.
8683
8684 * window.h: Merge with 20.2.97. Add window_end_bytepos.
8685
8686 * dispextern.h (MATRIX_ROW_START_CHARPOS): Get charpos of a row
8687 start.
8688 (MATRIX_ROW_START_BYTEPOS): Likewise for the byte position.
8689 (MATRIX_ROW_END_CHARPOS): Likewise for the row end.
8690 (MATRIX_ROW_END_BYTEPOS): Likewise for the row end byte position.
8691 (struct it): Various members renamed from .*pos to .*charpos.
8692 (IT_CHARPOS): Access current buffer character position of an
8693 iterator.
8694 (IT_BYTEPOS): Access current buffer byte position of an iterator.
8695 (IT_STRING_CHARPOS): Access current string character position of
8696 an iterator.
8697 (IT_STRING_BYTEPOS): Access current string byte position of
8698 an iterator.
8699 (globally): Add function prototypes from 20.2.97.
8700
8701 * everywhere: Use P_ instead of PROTO for function prototypes
8702 because everyone else seems to use P_.
8703
8704 * dispextern.h (struct text_pos): Structure describing a charpos/
8705 bytepos position in text.
8706 (BYTEPOS): Access the byte position part of a text_pos.
8707 (CHARPOS): Likewise for the character position.
8708 (SET_TEXT_POS): Set a text_pos from a character and byte position.
8709 (INC_TEXT_POS, DEC_TEXT_POS): Increment/decrement a text position.
8710 (SET_TEXT_POS_FROM_MARKER): Set a text_pos from a marker.
8711 (SET_MARKER_FROM_TEXT_POS): Set a marker from a text_pos.
8712 (TEXT_POS_EQUAL_P): Compare two text_pos structures for equality.
8713 (struct display_pos): Renamed from glyph_pos. Use struct text_pos
8714 for buffer and string positions.
8715 (struct glyph): Use text_pos.
8716 (struct it): Renamed from display_iterator. Use text_pos.
8717
87181998-07-23 Gerd Moellmann <gerd@gnu.org>
8719
8720 * xfns.c (x_kill_gs_process): Get image colors from XImage of a
8721 pixmap.
8722
87231998-07-21 Gerd Moellmann <gerd@gnu.org>
8724
8725 * dispextern.h (struct glyph_row): New flag indicate_zv_line_p.
8726 * xterm.c (x_draw_row_bitmaps): Use it.
8727 * dispnew.c (row_equal_p): Ditto.
8728 (update_window_line): Ditto.
8729
8730 * xfns.c (prepare_image_for_display): Don't set loading_failed_p
8731 flag of images.
8732
8733 * dispextern.h (struct image): Removed member loading_failed_p.
8734 It's probably better to have the chance to try to load an image
8735 again.
8736
87371998-07-20 Gerd Moellmann <gerd@gnu.org>
8738
8739 * xterm.c (x_draw_bitmap): Draw bitmap for empty lines ending
8740 at ZV if `indicate-zv-lines' is non-nil.
8741 (x_draw_row_bitmaps): Compute bitmap for `indicate-zv-lines'.
8742
8743 * dispnew.c (row_equal_p): Compare displays_text_p and
8744 ends_at_zv_p flags of rows.
8745 (update_window_line): Ditto.
8746
8747 * buffer.h (struct buffer): New member indicate_zv_lines.
8748
8749 * buffer.c (init_buffer_once): Add default for `indicate-zv-lines'.
8750 (init_buffer_once): New variable `default-indicate-zv-lines'.
8751 (syms_of_buffer): New buffer-local varianle `indicate-zv-lines'.
8752
8753 * xdisp.c (redisplay_window): Don't try moving the cursor
8754 if current glyph row w->last_cursor.vpos isn't enabled.
8755
8756 * xterm.c (bitmap_type): Add ZV_LINE_BITMAP.
8757
8758 * window.c (Fset_window_vscroll): Allow only negative scroll
8759 values. Others don't seem to make sense, and this way it's easy
8760 to restore a vscroll of zero.
8761
8762 * xterm.c (x_inverted_image_mask): Check that pixmap could be
8763 allocated.
8764 (x_draw_image_glyph_string_background): Don't clip if pixmap
8765 could not be created.
8766
8767 * xfns.c (xbm_load_image_from_file): Check that pixmap could
8768 be created.
8769 (xbm_load): Ditto.
8770 (gs_load): Ditto.
8771
8772 * xterm.c (x_get_glyph_overhangs): Take image and stretch
8773 glyphs into account.
8774
8775 * xfaces.c (realize_default_face): Don't set font family of
8776 the default face from the fontset alias name for `fontset-startup'.
8777
8778 * xfns.c (gs_load): Pass frame's pixel foreground and background
8779 color to the Lisp loader.
8780
87811998-07-19 Gerd Moellmann <gerd@gnu.org>
8782
8783 * xfns.c (tiff_image_p, tiff_load): Support TIFF images via
8784 libtiff34.
8785
8786 * configure.in (--with-tiff, HAVE_TIFF): Added.
8787
8788 * config.in (HAVE_TIFF): Added.
8789
8790 * Makefile.in (LIBTIFF): Added.
8791
8792 * xfns.c (jpeg_image_p, jpeg_load): Support JPEG images.
8793
8794 * Makefile.in (LIBJPEG): Added.
8795
8796 * xfns.c (resource_types): Enumerators renamed to RES_TYPE_NUMBER,
8797 RES_TYPE_BOOLEAN etc. because of conflict of `boolean' with
8798 jpeglib.h.
8799
8800 * configure.in (HAVE_JPEG, --with-jpeg): Added. On systems
8801 where the library is installed in /usr/local/lib, e.g. FreeBSD,
8802 configure must be run with `--x-includes=/usr/X11R6/include:
8803 /usr/local/include --x-libraries=/usr/X11R6/lib:/usr/local/lib'.
8804
88051998-07-18 Gerd Moellmann <gerd@gnu.org>
8806
8807 * config.in (HAVE_JPEG): Added.
8808
8809 * xfns.c (ct_init): Initialize color table used to map RGB colors
8810 from images to X pixel colors.
8811 (ct_free): Free color table.
8812 (ct_lookup): Look an RGB color up.
8813 (ct_allocated_colors): Get vector of allocated colors.
8814 (pbm_image_p): Test if image specification is a valid PPM
8815 image specification.
8816 (pbm_scan_number): Scan a decimal ASCII number from a file.
8817 (pbm_load): Load a PPM image.
8818
8819 * window.c (Fset_window_vscroll): Adjust glyph matrix if
8820 necessary. Take canonical character units as parameter.
8821 (Fwindow_vscroll): Return canonical character units.
8822
8823 * dispnew.c (allocate_matrices_for_window_redisplay): Add negative
8824 w->dy to display height for which glyph rows must be allocated.
8825
88261998-07-17 Gerd Moellmann <gerd@gnu.org>
8827
8828 * xfaces.c (face_at_string_position): Merge in region face
8829 so that it won't overwrite the font in the region.
8830 (face_at_buffer_position): Ditto.
8831 (realize_basic_faces): Don't realize region face.
8832
8833 * dispextern.h (enum face_id): REGION_FACE_ID removed.
8834
8835 * xterm.c (x_set_glyph_string_background_width): Don't let
8836 cursor face extend to end of line.
8837
8838 * xdisp.c (append_space): If adding space of default face,
8839 make sure glyph ist produced with right face.
8840
8841 * xterm.c (x_clear_glyph_string_rect): Draw a rectangle in the
8842 background color of a glyph string.
8843 (x_draw_glyph_string_background): Call it.
8844 (x_draw_glyph_string_bg_rect): Ditto.
8845 (x_draw_stretch_glyph_string): Ditto.
8846
88471998-07-15 Gerd Moellmann <gerd@gnu.org>
8848
8849 * xdisp.c (init_iterator): Initialize it->current_y to the
8850 window's vscroll w->dy.
8851
8852 * window.c (Fwindow_vscroll): Return number of pixels window
8853 is vscrolled smoothly.
8854 (Fset_window_vscroll): Set the number.
8855
8856 * xdisp.c (move_iterator_to): Recognize case MOVE_TO_POS and
8857 to_pos in truncated part of a line.
8858
88591998-07-14 Gerd Moellmann <gerd@gnu.org>
8860
8861 * xdisp.c (move_iterator_in_display_line_to): If very first glyph
8862 doesn't fit on the line, truncate it, despite truncate_lines nil.
8863 (display_line): Ditto.
8864
8865 * xfns.c: Experimental support for Ghostscript images.
8866
8867 * xterm.c (x_term_init): Initialize new atoms DONE and PAGE.
8868 (XTread_socket): React on events from Ghostscript.
8869 (expose_frame): If width or height are zero, redraw entire frame.
8870 (XTread_socket): Call expose_frame after receiving event from
8871 Ghostscript.
8872
8873 * xterm.h (struct x_display_info): Add atoms DONE and PAGE
8874 for Ghostscript support.
8875
8876 * xdisp.c (redisplay_internal): Return quickly if called
8877 recursively.
8878
8879 * alloc.c (NSTATICS): Increased to 1024.
8880
88811998-07-08 Gerd Moellmann <gerd@gnu.org>
8882
8883 * xterm.c (x_append_stretch_glyph): Append a stretch glyph to an
8884 iterator's glyph row.
8885 (x_produce_stretch_glyph): Call it.
8886 (x_produce_glyphs): Handle `space-width' property; call
8887 x_append_stretch_glyph.
8888
8889 * xdisp.c (syms_of_xdisp): Add symbol `space-width' used as a text
8890 property.
8891 (get_iterator_space_width): Determine value of `space-width'
8892 property at iterator's position.
8893 (reseat_iterator): Call it.
8894 (next_element_from_string): Ditto.
8895 (next_element_from_buffer): Ditto.
8896 (init_iterator): Initialize space_width of iterator.
8897 (redisplay_internal): Don't goto end_of_redisplay if PT hasn't
8898 moved, but cursor blinks.
8899 (redisplay_internal): Set w->last_cursor_off_p after update.
8900
8901 * dispextern.h (enum iterator_prop_idx): Add SPACE_WIDTH_PROP_IDX.
8902 (struct display_iterator): Add new member space_width.
8903
8904 * window.h (struct window): Add last_cursor_off_p.
8905
89061998-07-07 Gerd Moellmann <gerd@gnu.org>
8907
8908 * Saved.
8909
8910 * window.c (Fpos_visible_in_window_p): Case window not up to
8911 date---return nil if iterator hasn't reached position.
8912
89131998-07-06 Gerd Moellmann <gerd@gnu.org>
8914
8915 * xdisp.c (text_outside_line_unchanged_p): Fix case that
8916 overlays have changed.
8917 (redisplay_window): Case cursor movement. Don't try it if
8918 last_cursor.vpos is out of range.
8919
8920 * xdisp.c (set_cursor_from_row): Set this_line_.* variables. This
8921 way, the display optimization for the line containing the cursor
8922 is used more frequently, esp. when we have a blinking cursor.
8923 (display_line): Don't set this_line_.* variables.
8924
8925 * xterm.c (x_redraw_cursor): Removed.
8926 (x_display_and_set_cursor): Set cursor type depending on
8927 cursor_off_p flag of window.
8928
8929 * dispnew.c (redraw_cursor_hook): Removed.
8930 (Fblink_cursor): Additional parameter on_p to set the cursor_off_p
8931 member of the selected window.
8932
8933 * xfaces.c (Fface_font): Added for compatibility with 20.2.
8934
8935 * xterm.c (x_y_to_hpos_vpos): Return null if not over text.
8936 Return glyph area under x/y.
8937 (note_mouse_highlight): Use x_y_to_hpos_vpos in its new form.
8938
8939 * keyboard.c (detect_input_pending_run_timers): Call gobble_input
8940 after redisplaying.
8941
89421998-07-05 Gerd Moellmann <gerd@gnu.org>
8943
8944 * xdisp.c (text_outside_line_unchanged_p): Test if changes
8945 are all outside of a line of text.
8946 (redisplay_internal): Use it.
8947
89481998-06-30 Gerd Moellmann <gerd@gnu.org>
8949
8950 * xdisp.c (next_element_from_buffer): After skipping over
8951 invisible text, look for the `glyph' property.
8952 (set_iterator_stop_pos): Ignore check positions in front
8953 of an iterator's current position.
8954
8955 * xterm.c (show_mouse_face): Don't act on rows that don't exist
8956 anymore or which are marked as not having valid contents.
8957
8958 * xfaces.c (Finternal_set_lisp_face_attribute): Don't free
8959 realized faces if new attribute value is equal to old value.
8960
89611998-06-29 Gerd Moellmann <gerd@gnu.org>
8962
8963 * xfaces.c (Finternal_make_lisp_face): Increment
8964 lface_id_to_name_size when lface_id_to_name is reallocated.
8965
89661998-06-27 Gerd Moellmann <gerd@gnu.org>
8967
8968 * xdisp.c (set_iterator_stop_pos): Compute initial stop_pos
8969 as minimum of endpos and overlay_pos.
8970 (load_overlay_strings): Set next_overlay_pos of iterator to
8971 -1 if we don't have to check for more overlay strings.
8972
89731998-05-09 Gerd Moellmann <gerd@gnu.org>
8974
8975 * xdisp.c (set_iterator_to_next_visible_line_start): Don't
8976 do anything if iterator is at ZV because scan_buffer doesn't
8977 work otherwise.
8978
8979 * xterm.c (x_encode_char): Inline it.
8980 (x_get_char_font_and_encoding): Simplified.
8981 (x_per_char_metric): Inline it.
8982
8983 * xterm.c (x_draw_glyph_string_relief): Use clipping.
8984
8985 * xdisp.c (get_next_display_element): Check for end of relief
8986 face moved here from next_element_from_buffer.
8987
8988 * xterm.c (x_produce_image_glyph): Add relief thickness.
8989 (x_produce_stretch_glyph): Ditto.
8990
89911998-05-08 Gerd Moellmann <gerd@gnu.org>
8992
8993 * xdisp.c (fill_iterator_from_glyph_property): Handle glyph
8994 property value (space :width WIDTH :height HEIGHT :ascent ASCENT).
8995
8996 * xterm.c (x_produce_stretch_glyph): Produce a stretch glyph
8997 from a glyph property.
8998 (x_produce_glyphs): Use it.
8999
9000 * xdisp.c (set_iterator_to_next): Handle next_element_from_stretch.
9001
9002 * xterm.c (x_produce_image_glyph): Add to current_x only if
9003 in text area.
9004 (x_produce_glyphs): Ditto.
9005
9006 * xdisp.c (display_line): Compute row height from glyphs in
9007 marginal areas.
9008
9009 * xterm.c (x_draw_image_glyph_string_background): Draw
9010 background of an image glyph string.
9011 (x_draw_glyph_string_bg_rect): Draw a rectangular region of
9012 the background of a glyph string.
9013 (x_draw_image_glyph_string_foreground): Draw the foreground of
9014 an image glyph string.
9015 (x_inverted_image_mask): Return the inverted mask of an image.
9016
9017 * xfns.c (x_draw_image): Removed.
9018
9019 * dispextern.h (struct image_type): Remove drawing function.
9020
9021 * xfaces.c (load_face_colors): Swap colors if face is inverse.
9022
9023 * xdisp.c (get_next_display_element): In marginal areas, translate
9024 newlines, tabs, etc. like normal control characters.
9025
9026 * xfaces.c (Fface_color_supported_p): Transpose parameters frame
9027 and color.
9028 (free_realized_faces): Set frame garbaged.
9029
9030 * xfaces.c (syms_of_xfaces): Add defsubr for
9031 internal-lisp-face-attribute-values.
9032
90331998-05-07 Gerd Moellmann <gerd@gnu.org>
9034
9035 * xterm.c (x_produce_image_glyph): Don't add glyph if area is
9036 full.
9037 (x_produce_image_glyph): Set IT->nglyphs to 1.
9038 (x_draw_image_glyph_string): Use inverted mask to draw background.
9039
9040 * dispextern.h (struct image_type): Additional clipping rect
9041 parameters for drawing functions.
9042
9043 * xterm.c (x_get_glyph_string_clip_rect): Get clip rect for
9044 a glyph string.
9045 (x_draw_image_glyph_string): Use it and pass the rect to the
9046 image drawing function.
9047
9048 * xdisp.c (fill_iterator_from_glyph_property): Use position of
9049 first character with `glyph' property as image position. Set
9050 iterator back to that position as long as the image hasn't been
9051 consumed with set_iterator_to_next.
9052 (set_cursor_from_row): Accept when glyph with given position is
9053 not found in the row. Set cursor x to end of line in that case,
9054 so that we can hscroll.
9055 (redisplay_internal): Correct computation of delta by which
9056 positions have changed in redisplay optimization for cursor
9057 row of selected window.
9058
9059 * xdisp.c (display_line): Remove start_pos.
9060 (display_line): Fix bug preventing display optimization for
9061 cursor line of selected window.
9062 (next_element_from_buffer): Avoid XSETBUFFER, use it->w->buffer
9063 instead.
9064
9065 * dispnew.c (update_text_area): Use GLYPH_EQUAL_P.
9066 (update_text_area): Take glyph pixel width into account
9067 when trying to find a resync point.
9068 (row_equal_p): Compare glyphs in all areas.
9069
90701998-05-06 Gerd Moellmann <gerd@gnu.org>
9071
9072 * xterm.c (x_produce_glyphs): Don't add glyph if area is full.
9073
9074 * dispextern.h (struct glyph_row): Use unsigned hash value.
9075
9076 * xdisp.c (display_line): Simplified and made faster by setting
9077 the cursor with set_cursor_from_row.
9078 (set_cursor_from_row): Handle rows of desired matrix.
9079
90801998-05-05 Gerd Moellmann <gerd@gnu.org>
9081
9082 * xdisp.c (set_cursor_from_row): Don't put cursor on glyphs
9083 with type != CHAR_GLYPH.
9084 (fill_iterator_from_glyph_property): Return void. Set
9085 method to next_element_from_image.
9086 (next_element_from_image): Dummy function for delivering a
9087 single image id.
9088 (set_iterator_to_next): Add method next_element_from_image.
9089 (redisplay_window): When recentering, and cursor vpos is -1
9090 after display, assume middle of window is in first line displayed
9091 in window, and display again.
9092 (fill_iterator_from_glyph_property): Assign image glyph
9093 the position of the first character having the glyph property.
9094
9095 * dispextern.h (IMAGE_ASCENT): Compute ascent of image.
9096 * xfns.c (x_draw_image): Use it.
9097 * xterm.c (x_produce_image_glyph): Use it.
9098
9099 * xterm.c (x_produce_image_glyph): Set iterator's pixel_width.
9100
9101 * Makefile.in: Extraneous #define of LIBXPM removed.
9102
9103 * xterm.c (x_produce_glyphs): Produce a STRETCH_GLYPH for tabs.
9104 (x_fill_stretch_glyph_string): Fill a glyph string from a
9105 stretch glyph.
9106 (x_compute_glyph_string_overhangs): Compute overhangs only
9107 for text glyph strings.
9108 (x_draw_stretch_glyph_string): Draw a stretch glyph string.
9109 (x_draw_glyph_string): Call it.
9110
9111 * dispextern.h (glyph_type): Add STRETCH_GLYPH.
9112 (struct glyph): Add sub-structure for stretchable glyphs.
9113 (GLYPH_EQUAL_P): Compare glyph type and u.val.
9114
9115 * xdisp.c (get_overlay_arrow_glyph_row): Put face code into
9116 #ifdef HAVE_FACES.
9117
9118 * xterm.c (x_produce_glyphs): Use ASCII face for spaces of a TAB.
9119
9120 * xdisp.c (fill_iterator_from_glyph_property): Renamed from
9121 setup_iterator_from_glyph_property. Don't do it for terminal
9122 frames.
9123
9124 * xterm.c (x_produce_image_glyph): Produce glyph for image
9125 that can't be loaded.
9126
9127 * xfns.c (lookup_image): If image can't be loaded, set its
9128 width and height so that we can draw a rectangle.
9129 (x_draw_image): Draw a rectangle for images that don't have
9130 a pixmap.
9131 (make_image): Set hash value.
9132 (image_spec_equal_p): Use image_spec_value.
9133
9134 * xterm.c (expose_frame): Don't try to redraw if basic faces
9135 haven't benn realized yet.
9136 (x_draw_image_glyph_string): Fill background only if image
9137 is not as tall as row.
9138
91391998-05-04 Gerd Moellmann <gerd@gnu.org>
9140
9141 * Makefile.in (LIBXPM): If not already defined, define to -lXpm.
9142 (LIBX)[HAVE_X11]: Add LIBXPM.
9143
9144 * xfns.c (xpm_image_p): Implementation of image type functions
9145 for XPM.
9146 (xpm_load): Ditto.
9147
9148 * dispextern.h (struct image): Add mask pixmap for XPM.
9149
9150 * xfns.c (x_draw_image): Handle images with masks.
9151
9152 * configure.in: --with-xpm added. Code detecting -lXpm added.
9153
9154 * config.in: Add HAVE_XPM.
9155
9156 * xfns.c (xbm_draw): Removed.
9157 (x_draw_image): Default implementation for drawing images.
9158 (xbm_keyword_index): Remove XBM_DEPTH.
9159 (xbm_format): Remove `:depth'.
9160 (xbm_image_spec_from_file): Removed to reduce consing.
9161 (xbm_load_image_from_file): Added for the same reason.
9162
9163 * xterm.c (x_fill_image_glyph_string): Don't set ybase of
9164 glyph string.
9165 (x_draw_image_glyph_string): Pass ybase to image draw function.
9166
9167 * xfns.c (make_image): Set default baseline.
9168
9169 * xterm.c (x_produce_image_glyph): Compute ascent of image
9170 from its height and baseline percentage.
9171
9172 * xfns.c (xbm_keyword_index): Add XBM_BASELINE.
9173 (xbm_format): Add description for `:baseline'.
9174 (xbm_image_spec_from_file): Add keywords from original spec to
9175 result.
9176 (xbm_load): Set baseline of image.
9177 (xbm_image_p): Check range for baseline.
9178
9179 * dispextern.h (struct image): Add member baseline.
9180
9181 * xdisp.c (dump_glyph_matrix): Handle image glyphs.
9182
9183 * term.c (produce_glyphs): Change assertion to allow DISP_IMAGE.
9184
9185 * xdisp.c (get_next_display_element): Do character translations
9186 only if delivering characters.
9187
91881998-05-03 Gerd Moellmann <gerd@gnu.org>
9189
9190 * dispextern.h (ITERATOR_AT_END_OF_LINE_P): Test for
9191 DISP_CHARACTER.
9192
9193 * xterm.c (x_produce_image_glyph): Poduce image glyphs.
9194 (x_produce_glyphs): Call x_produce_glyphs for DISP_IMAGE.
9195
91961998-05-02 Gerd Moellmann <gerd@gnu.org>
9197
9198 * xfns.c (prepare_image_for_display): Set image timestamp.
9199 (clear_image_cache): Clear images if image's timestamp +
9200 Vimage_eviction_seconds is > now.
9201 (syms_of_xfns): New variables image-eviction-seconds, and
9202 image-types.
9203 (add_image_format): Add to image-types.
9204 (xbm_load): Support new image spec format.
9205 (x_alloc_image_color): Allocate a color for an image.
9206
9207 * dispextern.h (struct image): Add timestamp.
9208
9209 * xfns.c (xbm_image_p): Allow bool-vectors, vectors of strings and
9210 vectors of bool-vectors.
9211 (xbm_lisp_object_from_file): Build new format image spec.
9212
92131998-05-01 Gerd Moellmann <gerd@gnu.org>
9214
9215 * xfaces.c (init_frame_faces): Initialize image cache.
9216 (free_frame_faces): Free it.
9217
9218 * xterm.c (x_delete_display): Don't free image cache.
9219
9220 * emacs.c (main): Call init_xfns.
9221
92221998-04-30 Gerd Moellmann <gerd@gnu.org>
9223
9224 * alloc.c (mark_object): Mark objects in image cache.
9225
9226 * xfns.c (x_set_internal_border_width): Correct call to
9227 widget_store_internal_border_width.
9228
9229 * widget.c (widget_store_internal_border): Return void.
9230
9231 * xfns.c (x_destroy_bitmap): Use xfree instead of free. Return
9232 void.
9233 (init_x_parm_symbols): Return void.
9234 (x_report_frame_params): Ditto.
9235 (x_set_border_pixel): Ditto.
9236 (syms_of_xfns): Ditto.
9237 (x_destroy_all_bitmaps): Use xfree instead of free.
9238
9239 * xterm.h (FRAME_X_IMAGE_CACHE): Access the image cache of a frame.
9240
9241 * xterm.c (x_term_init): Initialize image_cache of display info.
9242 (x_delete_display): Free image cache.
9243
9244 * xterm.h (struct x_display_info): Add image_cache.
9245
9246 * xfns.c (make_image_cache): Allocate a new image cache.
9247 (free_image_cache): Free an image cache.
9248 (make_image): Allocate an image.
9249 (free_image): Free an image.
9250
9251 * dispextern.h (struct image): Structure describing an image.
9252 (struct image_cache): Structure describing an image cache.
9253
92541998-04-29 Gerd Moellmann <gerd@gnu.org>
9255
9256 * xdisp.c (check_iterator_glyph_property): Return int. Value is
9257 non-zero if iterator is filled with something to return.
9258 (next_element_from_buffer): Immediately return if
9259 setup_iterator_from_glyph_prop has filled iterator with pixmap.
9260 (next_element_from_string): Likewise.
9261
9262 * xfaces.c (load_pixmap): Allow to pass null for W_PTR and H_PTR.
9263
9264 * dispextern.h (struct glyph): Add pixmap_id.
9265 (display_element_type): Add DISP_PIXMAP.
9266
9267 * xmenu.c (popup_get_selection): Use xmalloc/xfree instead of
9268 malloc/free.
9269
9270 * xfaces.c (clear_font_table): Free fonts not used by fontsets.
9271 (clear_face_cache): Call it.
9272
9273 * xterm.c (x_query_font): Don't look at empty font table slots.
9274 (x_compute_min_glyph_bounds): Likewise.
9275 (x_term_init): Initialize font_table to null.
9276 (x_load_font): Change allocation of font_info structures so
9277 that it is possible to free fonts.
9278
9279 * xfns.c (Fx_close_connection): Use xfree instead of free.
9280 Only free fonts from filled font table entries.
9281
9282 * xfaces.c (best_matching_font): Support use of scalable fonts.
9283 (Fface_scalable_fonts_mode): Toggle use of scalable fonts.
9284
9285 * xterm.h (struct x_display_info): Remove screen_dpi, add resx
9286 and resy.
9287 * xterm.c (x_term_init): Compute resx and resy.
9288
9289 * xfaces.c (split_font_name): Don't reject scalable fonts.
9290
9291 * xterm.c (x_list_fonts): Set code exclusing scalable fonts
9292 in #if 0.
9293
9294 * xfaces.c (xlfd_point_size): Return 0 for fonts whose real
9295 point size cannot be determined.
9296
9297 * xterm.h (FRAME_SMALLEST_CHAR_WIDTH): Return smallest character
9298 width over all fonts on a frame.
9299 (FRAME_SMALLEST_FONT_HEIGHT): Likewise for font height.
9300 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Use these
9301 macros.
9302
9303 * xterm.c (x_font_min_bounds): Moved here from xfaces.c.
9304 (x_compute_min_char_bounds): Formerly min_char_bounds in xfaces.c.
9305 (x_load_font): Use x_compute_min_char_bounds.
9306
9307 * xterm.h (struct x_display_info): New members smallest_char_width
9308 and smallest_font_height.
9309
93101998-04-28 Gerd Moellmann <gerd@gnu.org>
9311
9312 * dispextern.h (PREPARE_FACE_FOR_DISPLAY): Call function with
9313 the same name if GC of face is zero.
9314
9315 * dispextern.h (struct face): Member non_ascii_gc removed.
9316
9317 * xterm.c (x_get_char_font_and_encoding): Return face's font
9318 for characters < 0177 in default face. Prepare face for
9319 display before returning it.
9320 (x_produce_glyphs): Use it->charset.
9321 (x_get_char_font_and_encoding): Simplified.
9322 (x_encode_char): Remove parameter `font'.
9323
9324 * xfaces.c (choose_face_font): If registry from charset symbol
9325 doesn't contain a `-', make it a pattern by appending "*-*".
9326
9327 * xdisp.c (check_iterator_glyph_property): Adjust limit for
9328 glyph_check_pos computation to character boundary.
9329
93301998-04-27 Gerd Moellmann <gerd@gnu.org>
9331
9332 * fontset.h (FONT_INFO_FROM_ID): Return null if ID is invalid.
9333
9334 * xfaces.c (ascii_face_of_lisp_face): Get the id of the realized
9335 ASCII face for a given Lisp face id.
9336
9337 * xdisp.c (set_iterator_stop_pos): Take glyph_check_pos into
9338 account.
9339 (reseat_iterator): Set glyph_check_pos. Handle case where
9340 new position is < original position.
9341 (check_iterator_glyph_property): Handle glyph property in strings.
9342 (next_element_from_string): Call above function.
9343 (next_element_from_display_vector): Handle faces in glyphs.
9344 (get_next_display_element): Set face_id of glyphs for
9345 control chars to zero.
9346
9347 * Makefile.in (term.o): Add dependency on dispextern.h.
9348
9349 * xdisp.c (syms_of_xdisp): Add symbol `glyph'.
9350 (display_line): Handle marginal areas.
9351 (move_iterator_in_display_line_to): Likewise.
9352
9353 * xfaces.c (Finternal_make_lisp_face): Assign Lisp faces an id.
9354
9355 * xfaces.c (face_at_buffer_position): Don't merge with nil
9356 text property.
9357 (face_at_string_position): Ditto.
9358
9359 * dispextern.h (struct display_iterator): Use a stack of saved
9360 values instead of saving check positions etc. individually.
9361
9362 * xdisp.c (set_iterator_to_next): If end of Lisp string reached,
9363 maybe pop the iterator's stack.
9364 (save_iterator_settings): Push a value on iterator's stack.
9365 (get_overlay_strings_at_iterator_position): Use it.
9366 (restore_iterator_settings): Pop the stack.
9367 (set_iterator_to_next_overlay_string): Use it.
9368
9369 * xfaces.c (try_font_list): Use alternative font families.
9370
93711998-04-26 Gerd Moellmann <gerd@gnu.org>
9372
9373 * xfaces.c (Fset_face_font_sort_order): Set the order in which
9374 font selection matches fonts.
9375 (Fface_font_sort_order): Return the font sort order.
9376 (best_matching_font): Find best matching font based on sort order.
9377 (cmp_font_names): Sort by given sort order.
9378
9379 * dispextern.h (struct display_iterator): New member faces_p.
9380 * xdisp.c (init_iterator): Initialize it->faces_p.
9381 (compute_face_at_iterator_string_position): Use it.
9382 (compute_face_at_iterator_position): Use it.
9383 (init_iterator): Use it.
9384 (display_mode_line): Ditto.
9385
9386 * xdisp.c (get_next_display_element): Put code choosing a face
9387 when the charset changes in #ifdef HAVE_FACES.
9388
9389 * dispextern.h (FACE_FOR_CHARSET): Replacement for function
9390 lookup_face_for_charset.
9391
9392 * xfaces.c (free_font_names): Renamed from free_split_font_names.
9393 (free_all_realized_faces): Renamed from remove_all_realized_faces.
9394
93951998-04-25 Gerd Moellmann <gerd@gnu.org>
9396
9397 * xfaces.c (best_matching_font): Return the name of the best
9398 matching font in an array of font_name structures.
9399 (choose_face_font): Use it.
9400 (choose_face_fontset_font): Use it.
9401 (find_best_weight_font): If final font found has same weight as
9402 the font we started with, return the original font because it is a
9403 better match for the resolution of the display.
9404 (find_best_slant_font): Likewise.
9405 (merge_face_vector_with_property): Check more invalid attribute
9406 values.
9407 (lface_suitable_for_charset_p): Replaced by a macro with the same
9408 name in upper-case.
9409
94101998-04-24 Gerd Moellmann <gerd@gnu.org>
9411
9412 * dispextern.h (struct face): Member
9413 fontset_chosen_for_realization_p removed.
9414
9415 * xfaces.c (cache_face): If face->fontset >= 0, add face to the
9416 end of the collision list, so that we find more specific faces
9417 first.
9418 (lookup_face_for_charset): Look up a new face if face->fontset >=
9419 0, and charset != CHARSET_COMPOSITION.
9420
9421 * xfaces.c (split_font_name): Return zero if point size of font
9422 couldn't be computed.
9423 (realize_default_face): Use ASCII font of a fontset to determine
9424 font-related attributes of the default face.
9425 (face_fontset): Return fontset id for face family.
9426 (font_list): Additional parameter font_pattern. If non-nil,
9427 return fonts matching that pattern.
9428
94291998-04-23 Gerd Moellmann <gerd@gnu.org>
9430
9431 * xfaces.c (choose_face_fontset): If new fontset cannot be
9432 constructed, or fontset name cannot be split, return the id of the
9433 standard fontset.
9434
9435 * xterm.c (XTframe_up_to_date): Check that frame is an X frame.
9436 When Emacs starts, it may be called for the initial frame which
9437 isn't an X frame.
9438
9439 * dispextern.h (struct face): New members foreground_defaulted_p,
9440 background_defaulted_p.
9441 (struct face): Members `mask' and `cache' removed.
9442
9443 * xfaces.c (load_color): Set them.
9444 (free_face_colors): Check them.
9445 (xlfd_point_size): Return -1 if resolution or point size of
9446 font unknown.
9447
9448 * xfaces.c (free_font): Removed.
9449 (load_face_font_or_fontset): Renamed from load_font.
9450 (load_face_font_or_fontset): Use message2 instead of signalling.
9451 (load_color): Likewise.
9452 (load_pixmap): Likewise.
9453
9454 * xterm.h (struct x_display_info): Add screen_dpi.
9455 * xterm.c (x_term_init): Initialize it.
9456 * xfaces.c (xlfd_point_size): Use it.
9457 (split_font_name): Compute numeric XLFD_RESY.
9458 (cmp_font_names): Make fonts with an y-resolution more
9459 similar to that of the frame appear first in the result.
9460
9461 * xfaces.c (cache_face): If fontset_chosen_for_realization_p
9462 is set for the face to cache, add it to the end of the collision
9463 list.
9464 (try_font_list): If fonts for given family and registry cannot
9465 be found, first try to keep the registry, and choose a different
9466 family.
9467 (choose_face_font): Allow nfonts == 0.
9468 (try_font_list): Give up if no font matches given registry.
9469
94701998-04-22 Gerd Moellmann <gerd@gnu.org>
9471
9472 * xterm.c (x_get_char_font_and_encoding): Get font_info from
9473 font info id of the face.
9474
9475 * xfaces.c (load_font): Set font_info_id.
9476 (realize_face): Ditto.
9477
9478 * dispextern.h (struct face): Change member font_info to
9479 font_info_id.
9480
9481 * fontset.h (FONT_INFO_ID): Build an ID from a font_info pointer.
9482 (FONT_INFO_FROM_ID): Get a font_info pointer from an ID.
9483
9484 * xdisp.c (extend_face_to_end_of_line): If IT's current charset
9485 isn't ASCII, get the ASCII face before adding a space.
9486 (append_space): Likewise.
9487 (insert_left_trunc_glyphs): Initialize truncate_it's charset
9488 to -1 so that it will compute the right face for the truncation
9489 glyphs.
9490
9491 * xfaces.c (realize_face): Set
9492 face->fontset_chosen_for_realization_p.
9493 (lookup_face_for_charset): If fontset wasn't specified originally
9494 and new charset != CHARSET_COMPOSITION, get a new face for that
9495 charset.
9496
9497 * dispextern.h (struct face): New member
9498 fontset_chosen_for_realization_p_specified_p. Set to 1 when
9499 realize_face has chosen a fontset to display composite characters
9500 for a Lisp face not specifying a fontset.
9501
9502 * xdisp.c (extend_face_to_end_of_line): Move tests for default
9503 face and line already filled here. Don't do anything if current
9504 face hasn't a relief or has a background equal to the frame
9505 background.
9506
9507 * xfaces.c (split_font_name): Additional parameter numeric_p.
9508 Don't compute numeric values if it is non-zero.
9509 (choose_face_fontset): Call split_font_name with numeric_p == 0.
9510 (choose_face_fontset): Print a message if fontset contains a
9511 font whose name cannot be split into fields.
9512
95131998-04-21 Gerd Moellmann <gerd@gnu.org>
9514
9515 * xfaces.c (try_font_list): Try to load a list of fonts,
9516 possibly using less restrictive patterns.
9517 (choose_face_font): Use it.
9518
9519 * xterm.c (x_get_char_font_and_encoding): For charset !=
9520 CHARSET_ASCII use font_info of face if face hasn't a fontset set.
9521
9522 * dispextern.h (struct face): New member font_info.
9523
9524 * xfaces.c (load_font): Use FS_LOAD_FONT to load fonts for faces
9525 specifying a fontset as well as those not having a fontset.
9526 (free_font): Make it empty.
9527 (realize_face): Use changed load_font.
9528
9529 * xterm.c (x_get_char_font_and_encoding): If face doesn't
9530 fit for charset, get the right one.
9531
9532 * xfaces.c (load_font): Take frame and name parameter, return
9533 font.
9534 (free_font): Likewise.
9535 (split_font_name): Compute numeric values for height, swidth etc.
9536 (cmp_font_names): Use them.
9537 (find_best_width_font): Ditto.
9538 (find_best_height_font): Ditto.
9539 (find_best_weight_font): Ditto.
9540 (find_best_slant_font): Ditto.
9541 (lface_hash): Add weight, slant, swidth and relief to hash value.
9542 (lface_equal_p): Make it faster.
9543 (lface_from_symbol): Use assq_no_quit.
9544 (Fnote_default_face_changed): Removed.
9545 (cmp_font_names): Use strcmp instead of xstricmp.
9546 (face_charset_registries): Removed.
9547
95481998-04-20 Gerd Moellmann <gerd@gnu.org>
9549
9550 * frame.h (CHECK_FRAME): Give this macro a statement form.
9551 (CHECK_LIVE_FRAME): Ditto.
9552
9553 * xfaces.c (find_best_width_font): Find the best matching font
9554 for a given width.
9555 (find_best_height_font): Likewise for height.
9556 (find_best_weight_font): Likewise for weight.
9557 (find_best_slant_font): Likewise for slant.
9558 (choose_face_font): Use them.
9559 (get_lface_attributes): Always return frame-local face attrs.
9560 (Finternal_merge_in_global_face): Merge local face with
9561 global face attributes.
9562
9563 * xfaces.c (check_lface_attrs, check_lface): Check consistency of
9564 Lisp face attributes.
9565
95661998-04-19 Gerd Moellmann <gerd@gnu.org>
9567
9568 * xfaces.c (Finternal_set_lisp_face_attribute): Add :bold
9569 and :italic for compatibility.
9570 (Finternal_set_lisp_face_attribute_from_resource): Handle
9571 :bold and :italic. Handle boolean resource values for
9572 :underline and :italic.
9573
9574 * xfns.c (display_x_get_resource): Make it externally visible.
9575
9576 * xfaces.c (lface_from_symbol): Take a frame as parameter.
9577 If that frame is non-null, return the frame-local face.
9578 (Finternal_make_lisp_face): Additional frame argument.
9579 (lface_attributes): Get face attributes from global and frame-local
9580 definitions.
9581 (Finternal_lisp_face_equal_p): Additional frame argument.
9582 (merge_lisp_face_vector_with_property): Ditto.
9583 (Frealize_basic_faces): Removed.
9584 (Finternal_get_lisp_face_attribute): Additional frame argument.
9585 (Finternal_lisp_face_p): Ditto.
9586 (load_color) [MSDOS]: Removed because it isn't clear how
9587 to do this for MS-DOS.
9588
9589 * xfaces.c (lface_from_symbol): Get global face definition
9590 from face-global-alist.
9591
9592 * xfaces.c (Finternal_set_lisp_face_attribute): Allow `t'
9593 as values for :underline and :inverse-video.
9594 (Finternal_set_lisp_face_attribute): Allow nil values.
9595
95961998-04-17 Gerd Moellmann <gerd@gnu.org>
9597
9598 * xfaces.c (Finternal_make_lisp_face): Return Lisp face vector.
9599
9600 * xfaces.c (syms_of_xfaces): Add Vall_faces.
9601 (Finternal_make_lisp_face): Add new face to Vall_faces.
9602
9603 * xdisp.c (echo_area_display): Remove code recomputing faces.
9604 (redisplay_internal): Ditto.
9605 (init_iterator): Do it here.
9606
9607 * xfaces.c (choose_face_font): Check that swidth doesn't change
9608 for subusequent attributes.
9609 (xlfd_point_size): Return int.
9610
9611 * xdisp.c (redisplay_internal, echo_area-display): If realized
9612 faces have been cleared, call recompute_basic_faces.
9613
9614 * xfaces.c (recompute_basic_faces): Free realized faces. Reset
9615 face_attributes_changed_p.
9616 (remove_all_realized_faces): Remove all realized faces on
9617 all frames.
9618 (Finternal_set_lisp_face_attribute): Call remove_all_realized_faces.
9619
9620 * xdisp.c (redisplay_internal): If face attributes have been
9621 changed since the last redisplay, recompute basic faces.
9622 (echo_area_display): Ditto.
9623
9624 * xfaces.c (clear_face_gcs): Renamed from clear_realized_face_cache.
9625
9626 * xfaces.c (min_char_bounds): If face cache not yet present,
9627 don't try to get font dimensions from faces.
9628
9629 * xterm.c (x_frame_mode_line_height): If face cache not present
9630 set, return default height.
9631
9632 * alloc.c (mark_face_cache): Check for null faces. Correct
9633 index bug.
9634
9635 * dispextern.h (struct face): Renamed from struct rface. Member
9636 underline renamed underline_p. Make it a bit-field.
9637
9638 * xfaces.c (init_frame_faces): Allocate face cache.
9639 (free_frame_faces): Free face cache.
9640 (recompute_basic_faces): Realize basic faces only if face cache is
9641 allocated, i.e. after init_frame_faces has been called.
9642
9643 * frame.c (make_frame): Initialze face cache with null.
9644
9645 * xfaces.c (same_size_fonts): Removed.
9646
9647 * xterm.c (x_set_glyph_string_gc): Add post-condition
9648 s->gc != 0.
9649 (x_set_mouse_face_gc): Ditto.
9650 (x_set_mode_line_face_gc): Ditto.
9651
9652 * xfaces.c (realize_default_face): Return int. Value is
9653 zero if frame params don't contain enough information to
9654 realize the default face.
9655 (realize_basic_faces): Ditto.
9656 (init_frame_faces): Realize basic faces.
9657
9658 * xfns.c (x_set_font): First store real font name in frame
9659 parameters, then call recompute_basic_faces.
9660
9661 * xfaces.c (recompute_basic_faces): Call realize_basic_faces.
9662
96631998-04-16 Gerd Moellmann <gerd@gnu.org>
9664
9665 * xfaces.c (syms_of_xfaces): Correct calls to defsubr.
9666
9667 * xfns.c (Fx_face_fixed_p): Removed.
9668 (Fx_list_fonts): Moved to xfaces.c.
9669
9670 * xfaces.c (compute_face_at_buffer_pos): Renamed to
9671 face_at_buffer_position. Parameter charset removed; always
9672 compute face for CHARSET_ASCII.
9673 (face_at_string_position): Renamed from
9674 compute_face_at_string_pos. Parameter charset removed; always
9675 compute for CHARSET_ASCII.
9676 (lookup_face_for_charset): Take frame parameter instead of
9677 face_cache.
9678 (lookup_face): Ditto.
9679 (compute_char_face): Renamed from compute_glyph_face.
9680
9681 * xdisp.c (init_iterator): Initialize charset member.
9682 (reseat_iterator_to_string): Ditto.
9683 (get_charset_at_buffer_position): Determine charset at
9684 buffer position in current_buffer.
9685 (reseat_iterator): Call above function.
9686 (compute_face_at_iterator_position): Call
9687 compute_face_at_buffer_pos.
9688 (compute_face_at_iterator_string_position): Call
9689 compute_face_at_string_pos.
9690 (get_face_from_id): Removed.
9691 (get_face_from_cursor_pos): Call compute_face_at_buffer_pos.
9692 Call get_charset_at_buffer_position.
9693 (reseat_iterator): Determine face if charset at pos differs
9694 from iterator's charset.
9695 (reseat_iterator_to_glyph_pos): Removed.
9696
9697 * xfaces.c (compute_face_at_bufpos): Remove parameter charset.
9698 Determine charset from buffer position.
9699 (compute_string_char_face): Renamed to compute_face_at_string_pos.
9700 (compute_face_at_bufpos): Renamed to compute_face_at_buffer_pos.
9701
9702 * dispextern.h (struct display_iterator): Add member charset.
9703
97041998-04-15 Gerd Moellmann <gerd@gnu.org>
9705
9706 * xfaces.c (compute_char_face): Removed.
9707
9708 * xdisp.c (get_overlay_arrow_glyph_row): Use compute_glyph_face
9709 with new parameter list.
9710
9711 * xfaces.c (region_face): Removed.
9712 (allocate_face): Removed.
9713 (copy_face): Ditto.
9714 (face_eql): Removed.
9715 (intern_face): Removed.
9716 (clear_face_cache): Removed.
9717 (load_font): Ditto.
9718 (unload_font): Ditto.
9719 (load_color): Ditto.
9720 (unload_color): Ditto.
9721 (new_computed_face): Ditto.
9722 (intern_computed_face): Ditto.
9723 (ensure_face_ready): Ditto.
9724 (merge_faces): Ditto.
9725 (compute_base_face): Ditto.
9726 (merge_face_list): Ditto.
9727 (Fmake_face_internal): Removed.
9728 (Fset_face_attribute_internal): Ditto.
9729 (face_name_id_number): Removed.
9730 (Fframe_face_alist): Ditto.
9731 (Fset_frame_face_alist): Ditto.
9732 (Finternal_next_face_id): Ditto.
9733
9734 * xterm.h (struct x_output): Remove computed_faces, and
9735 param_faces. Remove macros accessing them.
9736
9737 * xfaces.c: Entirely new face implementation added.
9738
97391998-04-11 Gerd Moellmann <gerd@gnu.org>
9740
9741 * dispextern.h (struct glyph_pos): Member `bufpos' renamed
9742 `charpos'.
9743
97441998-04-10 Gerd Moellmann <gerd@gnu.org>
9745
9746 * xterm.c (x_scroll_bar_move): Clear only regions not covered by
9747 scroll bar window to reduce flickering. Clear entire height.
9748
9749 * xdisp.c (move_iterator_vertically_backward): Set iterator's
9750 current_x and hpos to zero after moving to previous line
9751 start.
9752
97531998-04-03 Gerd Moellmann <gerd@gnu.org>
9754
9755 * frame.h (FRAME_FACE_CACHE): Access to a frame's face cache.
9756
9757 * xfaces.c (xlfd_point_size): Compute relative point size of
9758 fonts from font and frame resolution.
9759 (sort_fonts): New function to sort fonts, temporarily setting
9760 font_frame to the frame in effect.
9761 (xlfd_point_size): Take additional frame parameter to be able
9762 to get at the display's resolution.
9763
9764 * xterm.c (x_setup_relief_colors): Use WHITE_PIX_DEFAULT and
9765 BLACK_PIX_DEFAULT.
9766 (x_setup_relief_color): Use FRAME_X_SCREEN instead of default
9767 screen of display.
9768
97691998-03-31 Gerd Moellmann <gerd@gnu.org>
9770
9771 * xfaces.c (choose_face_fontset): Instantiate fontsets.
9772
9773 * fontset.h: Add external declarations for Vfontset_alias_alist
9774 and Vglobal_fontset_alist.
9775
9776 * xfaces.c (merge_lisp_face_vector_with_property): Simplified.
9777 (realize_default_face): If frame parameters contain an artificial
9778 font name naming a fontset, set the family of the default face to
9779 the fontset name given by the registry.
9780
9781 * Makefile.in (alloc.o): Add dependency to dispextern.h.
9782
97831998-03-22 Gerd Moellmann <gerd@gnu.org>
9784
9785 * alloc.c (mark_object): Add function prototype. Add cast to
9786 Lisp_Object pointer in call to mark_object for symbol names
9787 because this otherwise gives a warning from gcc 2.8.1.
9788 (mark_face_cache): Mark Lisp objects in realized faces.
9789
97901998-03-19 Gerd Moellmann <gerd@gnu.org>
9791
9792 * frame.h (struct frame): Add member face_cache.
9793
9794 * alloc.c (mark_object): Mark face cache.
9795 (mark_face_cache): Mark Lisp faces in face cache of frame.
9796
9797 * frame.c (make_frame): Initialize face_cache.
9798 (Fdelete_frame): Free it.
9799
98001998-03-18 Gerd Moellmann <gerd@gnu.org>
9801
9802 * xfaces.c: Very first skeleton of functions for face realization,
9803 face merging, face cache etc.
9804
9805 * dispextern.h (struct rface): Realized faces. Will replace
9806 struct face when tested.
9807 (struct face_cache): Realized face caches.
9808
9809 * xdisp.c (init_iterator): Initialize area member of display
9810 iterator.
9811
98121998-03-17 Gerd Moellmann <gerd@gnu.org>
9813
9814 * xterm.c (x_append_glyph): Use it->area to store glyphs.
9815
9816 * dispextern.h (struct display_iterator): New member area.
9817
9818 * xterm.c (note_overwritten_text_cursor): Note when the text
9819 cursor of a window is overwritten.
9820
9821 * xdisp.c (set_cursor_from_row): If PT is not found in the
9822 row, display the cursor at the start of the row.
9823
9824 * dispnew.c (direct_output_forward_char): Call
9825 set_cursor_from_row.
9826
9827 * xdisp.c (setup_iterator_overlay_strings_from_glyph_pos): If
9828 position is not in an overlay string, set iterator's position and
9829 method explicitly so.
9830 (set_cursor_from_row): Correct cursor position calculation.
9831 Make it externally visible.
9832 (redisplay_window): Call set_cursor_from_row so that there is only
9833 one place where the cursor position is calculated from a current
9834 row.
9835
9836 * dispextern.h (struct display_iterator): New member
9837 overlay_strings_at_end_processed_p.
9838
9839 * xdisp.c (check_iterator): Perform sanity checks on
9840 display_iterators.
9841 (next_element_from_buffer): Check for overlay strings at ZV.
9842
98431998-03-16 Gerd Moellmann <gerd@gnu.org>
9844
9845 * buffer.c (init_buffer_once): Add left_margin_width and
9846 right_margin_width to buffer_local_flags.
9847
9848 * dispnew.c (margin_glyphs_to_reserve): Function computing
9849 number of glyphs to reserve for a marginal area.
9850 (adjust_glyph_matrix): Call it.
9851 (adjust_frame_glyphs_for_frame_redisplay): Return if frame
9852 is not alive.
9853
9854 * window.c (Fset_window_margins): Allow floats.
9855
9856 * buffer.c (syms_of_buffer): Add buffer-local variables
9857 left-margin-width and right-margin-width. Add defaults
9858 default-left-margin-width and default-right-margin-width.
9859
9860 * buffer.h (struct buffer): New members left_margin_width
9861 and right_margin_width.
9862
9863 * window.c (Fset_window_margins): Make window the last and
9864 optional argument.
9865
9866 * xterm.c (x_draw_glyphs): Compute x-positions for rows with
9867 flag no_marginal_areas_p differently.
9868 (x_clear_end_of_line): Ditto.
9869 (x_draw_glyph_string_relief): Compute width of relief differently
9870 for rows with flag no_marginal_areas_p.
9871
9872 * dispnew.c (update_window_line): Update marginal areas only
9873 for rows that don't have no_marginal_areas_p set.
9874
9875 * xdisp.c (display_mode_line): Set row's flag no_marginal_areas_p.
9876 (display_menu_bar): Ditto.
9877
9878 * dispextern.h (struct glyph_row): New member no_marginal_areas_p.
9879
9880 * dispnew.c (adjust_glyph_matrix): Compute glyph pointers for
9881 marginal areas in window-based redisplay.
9882
9883 * dispextern.h (struct glyph_matrix): New members
9884 left_margin_glyphs and right_margin_glyphs.
9885
98861998-03-15 Gerd Moellmann <gerd@gnu.org>
9887
9888 * minibuf.c (read_minibuf_unwind): Return Lisp_Object.
9889
9890 * charset.c (non_ascii_char_to_string): Use char type parameters
9891 because the function is used that way from outside. Use unsigned
9892 char internally.
9893
9894 * window.c (change_window_height): Return void.
9895 (make_dummy_parent): Return void.
9896 (init_window_once): Return void.
9897 (syms_of_window): Ditto.
9898 (keys_of_window): Ditto.
9899 (delete_window): Correct return with and without value.
9900
9901 * buffer.c (record_buffer): Return void.
9902
9903 * marker.c (unchain_marker): Return void.
9904
9905 * window.c (unshow_buffer): Return void.
9906 (replace_window): Ditto.
9907 (delete_window): Ditto.
9908
9909 * term.c (delete_glyphs_hook): Void return type.
9910 (ring_bell_hook): Ditto.
9911 (set_terminal_window_hook): Ditto.
9912
9913 * sysdep.c (init_sigio): Return void.
9914
9915 * xterm.c (x_set_window_size): Return void.
9916 (x_calc_absolute_position): Ditto.
9917 (x_set_offset): Ditto.
9918 (x_focus_on_frame): Ditto.
9919 (x_unfocus_frame): Ditto.
9920 (x_make_frame_visible): Ditto.
9921 (x_make_frame_invisible): Ditto.
9922 (x_iconify_frame): Ditto.
9923 (x_destroy_window): Ditto.
9924 (x_wm_set_window_state): Ditto.
9925 (x_wm_set_icon_pixmap): Ditto.
9926 (x_wm_set_icon_position): Ditto.
9927 (x_initialize): Ditto.
9928 (x_error_quitter): Ditto.
9929 (x_destroy_window): Use xfree instead of free.
9930
9931 * keyboard.c (clear_waiting_for_input): Return void.
9932
9933 * xterm.c (x_wm_set_size_hint): Return void.
9934 (x_raise_frame): Ditto.
9935 (refreshicon): Ditto.
9936 (x_error_catcher): Ditto.
9937 (x_clear_errors): Ditto.
9938
9939 * keyboard.c (record_asynch_buffer_change): Return void.
9940
9941