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