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