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