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