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