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