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