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