(QCfilter): External declaration.
[bpt/emacs.git] / src / ChangeLog
CommitLineData
2c69ced2
GM
12000-06-26 Gerd Moellmann <gerd@gnu.org>
2
3 * xfns.c (Fimage_size): New function.
4 (syms_of_xfns): Defsubr it.
5
f978b2a2
AS
62000-06-26 Andreas Schwab <schwab@suse.de>
7
8 * coding.c (decode_coding_string): Re-fetch STRING_BYTES after
9 Fstring_as_unibyte.
10
94cc7892
DL
112000-06-25 Dave Love <fx@gnu.org>
12
13 * term.c [!HAVE_TERMCAP_H]: Declare tputs, tgetent, tgetflag,
14 tgetnum.
15
16 * Makefile.in (blockinput.h): Depend on atimer.h.
17 (atimer.h): Depend on systime.h.
18
19 * blockinput.h: Protect against multiple inclusion. Include
20 atimer.h.
21
22 * atimer.h: Protect against multiple inclusion. Include
23 systime.h.
24
25 * lisp.h (swap_in_global_binding): Declare.
26
b8c24556
KR
272000-06-24 Ken Raeburn <raeburn@gnu.org>
28
29 * process.c (Fopen_network_stream): Turn off atimers for duration
30 of call to connect. (Patch from Gerd.)
31
8cf8560b
DL
322000-06-23 Dave Love <fx@gnu.org>
33
511c7541
DL
34 * ralloc.c: Maybe include unistd.h
35
8cf8560b
DL
36 * emacs.c (setgrp): Undefine before defining.
37 (malloc_warning, set_time_zone_rule, index): Prototype.
38
39 * systime.h (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use
40 HAVE_STRUCT_TIMEZONE.
41
42 * s/osf1.h: Move string.h hack here from alpha.h and make it
43 conditional.
44 (C_SWITCH_SYSTEM): Use _OSF_SOURCE, not -BSD, which clashes with
45 _XOPEN_SOURCE.
46 (WAIT_USE_INT, SYS_SIGLIST_DECLARED, sys_siglist, NSIG): Define.
47 (SOCKLEN_TYPE): Don't define.
48
49 * m/alpha.h: Remove string.h hack.
50
51 * s/osf5-0.h: New file.
52
53 * filelock.c: Use feature tests for fcntl.h, string.h. Don't
54 include time.h, done by systime.h.
55 [__FreeBSD__]: Remove redundant includes.
56
57 * callproc.c: (setpgrp): Undefine before defining.
58 (delete_temp_file): Return Qnil to avoid warning.
59
60 * config.in (HAVE_TERM_H, HAVE_STRUCT_TIMEZONE): Add.
61
62 * xfaces.c: Include fontset.h dependent on HAVE_WINDOW_SYSTEM, not
63 HAVE_X_WINDOWS.
64
65 * fontset.h (free_face_fontset): Renamed from fs_free_face_fontset.
66
67 * composite.h (compose_text): Declare.
68
69 * xterm.c: Don't include sys/types.h unconditionally. Don't
70 protect its inclusion with !USG (following xmenu.c).
71
ea055732
GM
722000-06-23 Gerd Moellmann <gerd@gnu.org>
73
74 * xfns.c (x_create_tip_frame): Initialize frame's colors like
75 in x_create_frame.
76
74b01b80
EZ
772000-06-23 Eli Zaretskii <eliz@is.elta.co.il>
78
79 * coding.c (decode_eol_post_ccl): Special handling for undecided
80 and inconsistent EOL types.
81
64f3a166
GM
822000-06-22 Gerd Moellmann <gerd@gnu.org>
83
16cf31f7
GM
84 * xrdb.c (x_load_resources): Add default resource for scroll bar's
85 trough color and main window's background color.
86
87 * xfns.c (Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events
88 differently.
89
90 * xterm.h (Xt_app_con): External declaration.
91
92 * widget.c (EmacsFrameRealize): Fix typo.
93
486a103d
GM
94 * widget.c (EmacsFrameRealize): Remove SubstructureRedirectMask.
95
64f3a166
GM
96 * xdisp.c (handle_stop): Initialize it->add_overlay_start to zero.
97 (handle_invisible_prop): Record the start of invisible text in
98 it->add_overlay_start.
99 (struct overlay_entry): Add member `overlay'.
100 (handle_overlay_change): Simplify.
101 (next_overlay_string): After having processed overlay strings at the
102 end of the buffer, record that fact in
103 it->overlay_strings_at_end_processed_p.
104 (compare_overlay_entries): If before- and after-strings come
105 from the same overlay, let before-strings come first.
106 (RECORD_OVERLAY_STRING): Record the overlay that strings come from.
107 (load_overlay_strings): Take it->add_overlay_start into account
108 when adding overlay strings.
109
110 * dispextern.h (struct it): Add member add_overlay_start.
111
bb746ea6
DL
1122000-06-22 Dave Love <fx@gnu.org>
113
114 * s/isc3-0.h (C_SWITCH_SYSTEM): Define _XOPEN_SOURCE=500.
115
116 * s/gnu-linux.h (C_SWITCH_SYSTEM): Don't define _XOPEN_SOURCE here.
117
a8f573f3
KH
1182000-06-22 Kenichi Handa <handa@etl.go.jp>
119
120 * ccl.c (ccl_driver) <CCL_End>: Decrement stack_idx only when it
121 is greater than 0.
122
9f2bbc92
DL
1232000-06-21 Dave Love <fx@gnu.org>
124
125 * Makefile.in (GETLOADAVG_OBJ): Removed -- LIBOBJS does it.
126
3ee5041c
SM
1272000-06-21 Stefan Monnier <monnier@cs.yale.edu>
128
129 * syntax.c (back_comment): Simplify string-parity counting (with
130 the added benefit of handling multiple string-styles as long as
131 they are not intertwined).
132 Jump to the slow code as soon as a comment starter is found in
133 a "string_lossage" position. Fixes the case: " /* " /* " */.
134
4c343001
DL
1352000-06-21 Dave Love <fx@gnu.org>
136
137 * Makefile.in: Use GETLOADAVG_LIBS.
138
139 * config.in: Add HAVE_FCNTL_H, _FILE_OFFSET_BITS,
140 _LARGEFILE_SOURCE, _LARGE_FILES, _XOPEN_SOURCE.
141
e6365855
SM
1422000-06-20 Stefan Monnier <monnier@cs.yale.edu>
143
144 * syntax.c (describe_syntax): Recognize the `n'estable bit.
145 (Fforward_comment, scan_lists):
146 Check the comstyle of single-char comment-starters.
147 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
148 we're just at the beginning of the comment (f.ex with (*) ... (*)).
d355bd8a
SM
149 Check the comstyle of single-char comment-starters.
150 Clarify control-flow around the Scomment case.
e6365855 151
5700d2cc
DL
1522000-06-20 Dave Love <fx@gnu.org>
153
d355bd8a
SM
154 * fns.c (make_hash_table, maybe_resize_hash_table):
155 Cast arg of next_almost_prime.
5700d2cc
DL
156
157 * tparam.c [emacs]: Include lisp.h.
158
159 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
160 and unistd.h.
161
4a27bdfb
GM
1622000-06-20 Gerd Moellmann <gerd@gnu.org>
163
a61d762c
GM
164 * keyboard.c (adjust_point_for_property): Check if display
165 property should be treated as intangible by looking at its
166 value.
167
168 * xdisp.c (single_display_prop_intangible_p)
169 (display_prop_intangible_p): New functions.
170
171 * dispextern.h (display_prop_intangible_p): Add prototype.
172
173 * xdisp.c (dump_glyph_row): Show type of glyph->object.
174
4a27bdfb
GM
175 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
176 argument to sigprocmask.
177
178 * s/sco5.h (sigblock): Redefined to pass a pointer as second
179 argument to sigprocmask.
180
181 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
182 sigprocmask_set, and pass a pointer to it to sigprocmask.
183
184 * sysdep.c (sigprocmask_set): New variable.
185
186 * fileio.c (make_temp_name): Don't use `%s' in string passed to
187 report_file_error.
188
427ec082
SS
1892000-06-20 Sam Steingold <sds@gnu.org>
190
191 * xrdb.c: Don't declare xmalloc, xrealloc.
192
8972fe79 1932000-06-20 Stefan Monnier <monnier@cs.yale.edu>
8972fe79
SM
194
195 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
196 (re_comp): Cast gettext return value to avoid complaints when
197 !HAVE_LIBINTL.
198
074b6efe
DL
1992000-06-20 Dave Love <fx@gnu.org>
200
f85c008a
DL
201 * m/stride.h, m/mips.h: Don't define HAVE_GETWD,
202 HAVE_GETTIMEOFDAY.
203
5700d2cc 204 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
f85c008a 205
d355bd8a 206 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
f85c008a
DL
207
208 * m/alpha.h: Don't declare xmalloc, xrealloc.
209
0af4f205
DL
210 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
211
212 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
213
214 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
215
216 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
217 HAVE_GETWD.
218
074b6efe
DL
219 * keyboard.h (poll_for_input_1): Declare.
220
221 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
222
223 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
224
225 * doprnt.c: Don't declare xmalloc, xrealloc.
226
227 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
228 (getenv, ctime, getwd): Removed.
229 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
230
231 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
232 x_set_tool_bar_lines.
233
234 * config.in: Add HAVE_GETWD. Move some definitions above
235 machine/system includes.
236
68a5e97b
KH
2372000-06-20 Kenichi Handa <handa@etl.go.jp>
238
95417e1e
KH
239 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
240
68a5e97b
KH
241 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
242 contain information about ENCODING.
243
244 * fontset.c (FONTSET_ASCII): Use the first element of char table
245 for an ASCII font, not defalt slot.
246 (fontset_ref_via_base): If FONTSET doesn't contain information for
247 C, try the default fontset.
248 (make_fontset): Don't copy the default fontset.
249 (fontset_font_pattern): Likewise.
250 (accumulate_font_info): If ELT is nil, use the corresponding
251 element in the default fontset.
252
3b4fa1b2
DL
2532000-06-19 Dave Love <fx@gnu.org>
254
943e731c
DL
255 * syntax.c (Fparse_partial_sexp): Doc fix.
256
257 * regex.h: Test PROTOTYPES as well as __STDC__.
258
3b4fa1b2
DL
259 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
260 errno, strerror. Put text after #endif in comment.
261
262 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for
263 pcc).
264
265 * xterm.c (x_frame_of_widget): Likewise.
266
cdf0357b
GM
2672000-06-19 Gerd Moellmann <gerd@gnu.org>
268
269 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
270 to Vfundamental_mode_abbrev_table.
271
272 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
273 bogus objects are marked. This slows down GC by ~80 percent, but
274 it might be worth trying when debugging GC-related problems.
275 This feature requires conservative stack marking to be enabled.
276
277 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
278 returns XLookupChars, reset `modifiers' to zero.
279
998e9f8c
DL
2802000-06-19 Dave Love <fx@gnu.org>
281
282 * mktime.c: Unprotoized.
283
d1504184
GM
2842000-06-19 Richard Stallman <rms@caffeine.ai.mit.edu>
285
286 * data.c (set_internal): If variable is frame-local,
287 store the new value immediately into the frame parameter alist.
288
140c4ac6
KR
2892000-06-19 Ken Raeburn <raeburn@gnu.org>
290
14358466
KR
291 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
292 in the custom handler pointer.
293
140c4ac6
KR
294 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
295 value, or checks for CHAR_META can fail when Lisp_Object is a
296 union type.
297 * keymap.c (get_keyelt): Likewise.
298
10d7bf84
KH
2992000-06-19 Kenichi Handa <handa@etl.go.jp>
300
301 * ccl.h (struct ccl_program): New member eol_type.
302 (struct ccl_spec): New member cr_carryover.
303
304 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
305 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
306
307 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
308 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
309 (decode_eol_post_ccl): New function.
310 (decode_coding): Don't detect EOL format here for CCL based coding
311 systems.
312 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
313 decode_eol_post_ccl after running the CCL program.
314 (code_convert_region): Don't detect EOL format here for CCL based
315 coding systems.
316 (decode_coding_string): Likewise.
317
52e386c2
KR
3182000-06-18 Ken Raeburn <raeburn@gnu.org>
319
320 * charset.c (update_charset_table): Use XINT on "iso_final_char"
321 when treating it as an integer.
322
323 * coding.h (encode_coding_string): Declare.
324
325 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
326 it as an integer.
327
328 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
329 "xkeymap" to avoid shadowing the "enum map_type" value that needs
330 to be passed to get_local_map.
331
332 * sound.c (Fplay_sound): Don't call make_number on
333 Frun_hook_with_args count argument.
334
335 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
336 for lisp objects in X event structure data field, when lisp
337 objects are represented with unions.
338 (x_scroll_bar_to_input_event): Ditto.
339
b357b9d4
KR
3402000-06-16 Ken Raeburn <raeburn@gnu.org>
341
342 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
37d034d3
KR
343 termination of string. Fix sense of test whether
344 Vline_number_display_limit is an integer.
b357b9d4 345
a871441d
GM
3462000-06-16 Gerd Moellmann <gerd@gnu.org>
347
a9021acd
GM
348 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
349 only if HAVE_X_WINDOWS.
350
6344985d
GM
351 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
352 of titles.
353
427ec082 354 * dispnew.c (update_frame_1): Handle case that cursor vpos is
a871441d
GM
355 out of bounds.
356
228b083e
EZ
3572000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
358
359 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
360 of its headers.
361
c25b53a2
KH
3622000-06-15 Kenichi Handa <handa@etl.go.jp>
363
364 * coding.c (decode_coding_emacs_mule): Always set src_base at the
365 start of the while loop.
366
a6981b11
GM
3672000-06-15 Gerd Moellmann <gerd@gnu.org>
368
e9924e52
GM
369 * atimer.c (alarm_signal_handler): Add forward declaration.
370
a6981b11
GM
371 * data.c (set_internal): Remove debug code.
372
25fa6deb
GM
3732000-06-14 Gerd Moellmann <gerd@gnu.org>
374
dce6b995
GM
375 * Makefile.in (bootstrap-temacs): Add `-I../src'.
376
9f817ea4
GM
377 * unexec.c (toplevel) [COFF]: Include coff.h.
378
379 * s/lynxos.h: New file.
380
381 * keymap.c (Fsingle_key_description): Enclose function key and
382 event symbol names in angle brackets.
383
8a4e3c0c
GM
384 * xdisp.c (setup_echo_area_for_printing): Call
385 message_log_maybe_newline if message_buf_print is not set.
386
387 * print.c (printchar, strout): Don't check message_buf_print
427ec082 388 before calling setup_echo_area_for_printing because that
8a4e3c0c
GM
389 function does something useful even when message_buf_print is
390 already set.
391
25fa6deb
GM
392 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines): New
393 variables.
394 (ensure_echo_area_buffers): Initialize echo buffer's
395 truncate lines setting to nil.
396 (with_echo_area_buffer): Don't set the echo buffer's truncate
397 lines setting here.
8a4e3c0c 398 (set_message_1): Set it here instead, based on the value
25fa6deb
GM
399 of message_truncate_lines.
400 (resize_mini_window): Handle case that lines are truncated.
401 (syms_of_xdisp): Initialize Qmessage_truncate_lines. DEFVAR_BOOL
402 message-truncate-lines.
403
404 * keyboard.c (read_char): Bind message-truncate-lines to t
405 while displaying a help-echo.
406
407 * lisp.h (Qmessage_truncate_lines): External declaration.
408
163dcff3
GM
4092000-06-13 Gerd Moellmann <gerd@gnu.org>
410
1681ead6
GM
411 * xdisp.c (Vline_number_display_limit): Renamed from
412 line_number_display_limit.
413 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
414 Extend documentation string. Initialize
415 Vline_number_display_limit to nil meaning no limit.
416 (decode_mode_spec): Use Vline_number_display_limit with its new
417 meaning.
418
163dcff3
GM
419 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
420
4212000-06-13 Richard Stallman <rms@caffeine.ai.mit.edu>
422
423 * frame.c (Fmodify_frame_parameters): Doc fix.
427ec082 424
163dcff3
GM
425 * xfns.c (x_set_frame_parameters): Comment fix.
426
427 * frame.c (store_frame_param): Call swap_in_global_binding if the
428 variable's current binding was chosen based on this frame.
429
430 * data.c (swap_in_global_binding): New function.
431
a704139d
EZ
4322000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
433
434 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
435 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
436
9b6610db
EZ
4372000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
438
439 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
440
c68833d2
JR
4412000-06-12 Jason Rumney <jasonr@gnu.org>
442
443 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
444
445 * w32.h (EMACS_W32_H): Renamed from _NT_H_
446
447 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
448
449 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
450
ed1056b3
GM
4512000-06-12 Gerd Moellmann <gerd@gnu.org>
452
453 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
454 (syms_of_xfaces): Defsubr Sdump_colors.
455 (x_free_colors): Don't treat b&w specially on default visual.
456 (x_free_dpy_colors): New function.
457 (free_face_colors): Don't check visual class; it's done
458 in x_free_colors.
459
460 * xterm.c (x_frame_of_widget): New function.
461 (x_alloc_nearest_color_for_widget): Use it.
462 (x_copy_dpy_color): New function.
463 (x_destroy_window): Free various colors.
464
5050a2ef
KH
4652000-06-12 Kenichi Handa <handa@etl.go.jp>
466
467 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
468
469 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
470
471 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
472
473 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
474
475 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
476
fb1b041d
DL
4772000-06-11 Dave Love <fx@gnu.org>
478
479 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
480
ff96b5f4
EZ
4812000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
482
483 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
484
db8eeecd
GM
4852000-06-11 Gerd Moellmann <gerd@gnu.org>
486
ed1056b3 487 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
db8eeecd
GM
488 to `XEvent *'.
489
49b71c5f
KH
4902000-06-10 Kenichi Handa <handa@etl.go.jp>
491
c479bd55
KH
492 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
493 (regex_compile): Fix the code for handling the case of single byte
494 char and multibyte char being mixed in a range within [...].
495
ff6a65c2
KH
496 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
497 and dst_multibyte members of coding.
498
49b71c5f
KH
499 * charset.c (update_charset_table): Update the table
500 bytes_by_char_head.
501 (init_charset_once): Initialize elements of bytes_by_char_head to
502 1 except for leading codes for private charases.
503
504 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
505 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte
506 sequence.
507
9e80b57d
KR
5082000-06-09 Ken Raeburn <raeburn@gnu.org>
509
510 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
511 access the data it doesn't point to.
512
f83fe4b4
GM
5132000-06-08 Gerd Moellmann <gerd@gnu.org>
514
515 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
db8eeecd 516 will be translated to a switch-frame event when reading the
f83fe4b4
GM
517 event queue. This is necessary because Emacs otherwise won't
518 perform a switch-frame to a new frame until some other event, for
519 example a keystroke event, forces it to do so. This has various
520 effects, one visible being that the cursor of a frame created with
521 C-x 5 2 or switched to with a window manager key binding like
522 A-TAB stays hollow because selected_window isn't on the newly
523 focused frame until the switch-frame is performed.
524
525 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
526 generating a switch-frame event if necessary.
527
528 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
529
530 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
531 it's an integer.
532
0890801b
KH
5332000-06-08 Kenichi Handa <handa@etl.go.jp>
534
535 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a
536 charset.
537
173cbca8
GM
5382000-06-07 Gerd Moellmann <gerd@gnu.org>
539
3091c2a6
GM
540 * window.c (displayed_window_lines): Take empty lines at
541 the bottom of a window into account.
427ec082 542
f38952fe
GM
543 * window.c (displayed_window_lines): New function.
544 (Fmove_to_window_line): Use displayed_window_lines to determine
545 the number of lines to move, instead of using the window's height.
546
547 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
548 to stop reading, even if the form read sets point to a different
549 value when evaluated.
550
427ec082 551 * xdisp.c (display_line): Fix code deciding in which line to
173cbca8
GM
552 put the cursor.
553
6ba6c818
KH
5542000-06-07 Kenichi Handa <handa@etl.go.jp>
555
556 * fileio.c (e_write): Free composition data if stored in
557 coding->cmp_data.
558
5f1aea9a
GM
5592000-06-06 Gerd Moellmann <gerd@gnu.org>
560
666852af
GM
561 * xdisp.c (display_line): Set row's and iterator's
562 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
563 Set cursor even if row ends in the middle of a character.
564 (dump_glyph_row): Print values of new flags.
565 (redisplay_window) <cursor movement in unchanged window>: When
566 point has been moved forward, and PT is at the end of the cursor
567 row, don't place the cursor in the next row if the cursor row ends
568 in the middle of a character or at ZV.
569
570 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
571 (struct glyph_row): Add starts_in_middle_of_char_p and
572 ends_in_middle_of_char_p.
573 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
574 ends_in_middle_of_char_p flag.
575 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
576
d13f3e2e
GM
577 * term.c (append_glyph): Revert change of 2000-06-06.
578
579 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
580 padding glyph not fitting on line as whole character not
581 fitting on line.
582
5f1aea9a
GM
583 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
584 this isn't true for images with `:ascent 100'.
585
10cda9b0
KH
5862000-06-06 Kenichi Handa <handa@etl.go.jp>
587
ed00559d
KH
588 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
589 as modified if it is originally unmodified.
590
10cda9b0
KH
591 * term.c (encode_terminal_code): Change the way to check if
592 terminal coding does any conversion.
593 (append_glyph): Set glyph->pixel_width correctly.
594
595 * xdisp.c (display_line): While checking line continuation, pay
596 attention to a padding glyph.
597
1969fae2
GM
5982000-06-05 Gerd Moellmann <gerd@gnu.org>
599
600 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
601
162ccef4
DL
6022000-06-05 Dave Love <fx@gnu.org>
603
f19f32dd
DL
604 * xdisp.c: Include fontset.h.
605
606 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
607
608 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
609
610 * dispnew.c: Conditionally include term.h.
611
612 * coding.h: Declare code_convert_string_norecord.
613
614 * frame.h (struct frame): Use volatile unconditionally.
615
616 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
617
618 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
619
620 * systime.h: Protect against multiple inclusion.
621 (timezone) [USG5_4]: Define as time_t.
622
623 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
624 (Foptimize_char_table, make_temp_name): Declare.
625
626 * Makefile.in (xdisp.o): Depend on fontset.h.
627
628 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
629
630 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
631 (Foptimize_char_table, make_temp_name): Declare.
632
427ec082 633 * s/irix4-0.h:
162ccef4
DL
634 * s/irix5-0.h:
635 * s/netbsd.h: Don't define autoconfiscated MATHERR.
636
2082fe81
DL
6372000-06-02 Dave Love <fx@gnu.org>
638
639 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
640
dcf671d2
GM
6412000-06-02 Gerd Moellmann <gerd@gnu.org>
642
643 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
1969fae2 644 result face, set flags in that face indicating that colors may not
dcf671d2
GM
645 be freed.
646
647 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
648 glyph, use the ASCII NUL character to determine the face.
649
d42122a3
DL
6502000-06-02 Dave Love <fx@gnu.org>
651
652 * sysdep.c: Conditionally include stdlib.h, unistd.h.
653 (VFORK_RETURN_TYPE): Remove.
427ec082 654
d42122a3
DL
655 * config.in: Add NO_MATHERR.
656
dd432f16
DL
6572000-06-01 Dave Love <fx@gnu.org>
658
90aa4ea8
DL
659 * cmds.c (internal_self_insert): Don't check
660 Vbefore_change_function, Vafter_change_function.
661
662 * insdel.c (signal_before_change, signal_after_change): Likewise.
663
664 * buffer.c (Vbefore_change_function, Vafter_change_function):
665 Variables and their initializations deleted.
666
2330c9d4
DL
667 * callint.c (Fcall_interactively): Doc fix.
668
dd432f16
DL
669 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
670
bf9e8804
DL
6712000-05-31 Dave Love <fx@gnu.org>
672
673 * textprop.c: Revert last change -- duplicated.
674
3694b4ab
GM
6752000-05-31 Gerd Moellmann <gerd@gnu.org>
676
677 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
678 in #if 0.
679
680 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
681
f14156cd
JR
6822000-05-31 Jason Rumney <jasonr@gnu.org>
683
8119aab8
JR
684 * search.c (Fre_search_forward, Fre_search_backward)
685 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
686
f14156cd
JR
687 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
688
4aab9be3
JR
6892000-05-30 Jason Rumney <jasonr@gnu.org>
690
691 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
692 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
693
694 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type
695 member.
696
697 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
698 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
699 expand a nil default_filename.
700
701 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
702 pointer to glyph_to_pixel_coords, not a frame.
703
704 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
705 coding.h to dependencies.
706
707 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
708
709 * w32console.c (glyph_to_pixel_coords): Change first parameter to
710 window pointer to be consistent with w32term.c and xterm.c.
711
712 * w32fns.c: Format and doc changes to bring closer to xfns.c.
713 (VIETNAMESE_CHARSET): Define if not defined in system headers.
714 (Qline_spacing, Qcenter): New variables.
715 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
716 (x_set_line_spacing): New function.
717 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT
718 macros.
719 (x_specified_cursor_type): New function.
720 (x_set_cursor_type): Use it.
721 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
722 and icon strings.
723 (validate_x_resource_name, x_get_resource_string): Measure lengths
724 of external strings in bytes.
725 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
726 GetTextExtentPoint32 with NULL title.
727 (Fx_create_frame): Initialize Qline_spacing.
728 (w32_load_system_font): Initialize font->double_byte_p.
729 (x_to_w32_charset): Use Vw32_charset_info_alist.
730 (Image, busy cursor, tooltip functions): Merged changes from
731 xfns.c. Not yet functional on Windows.
732
733 * w32gui.h (W32FontStruct): Add double_byte_p member.
734
735 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
736 (emacs_button_translation): Use it.
737 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
738 in `mask' to be set.
739
740 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
741 menu strings.
742
743 * w32term.c: Format and doc changes to bring closer to xterm.c.
744 (w32_char_font_type): New enum.
745 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
746 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
747 (w32_encode_char): New function.
748 (x_encode_char): Removed.
749 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
750 x_encode_char and w32_font_is_double_byte.
751 (x_produce_image_glyph): Use image_ascent.
752 (x_produce_glyphs): Use new version of w32_per_char_metric and
753 handle NULL return value. Allow extra line spacing.
754 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
755 (w32_get_glyph_overhangs): Remove unicode_p param. Use
756 w32_font_type member of glyph instead.
757 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
758 (fast_find_position): Make sure not to consider rows not visible
759 in the window.
760 (w32_read_socket) [WM_MENUSELECT]: Cannot call
761 w32_menu_display_help with input blocked, as it can abort.
762 (x_display_and_set_cursor): Choose cursor depending
763 on buffer-local value of cursor_type.
764 (x_draw_bar_cursor): Add parameter WIDTH.
765
766 * w32term.h (CP_DEFAULT): Define.
767 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
768
10fc3187
GM
7692000-05-30 Gerd Moellmann <gerd@gnu.org>
770
771 * search.c (Fre_search_forward, Fre_search_backward)
772 (Fposix_search_backward, Fposix_search_forward): Doc fix.
773
d0555360
KH
7742000-05-30 Kenichi Handa <handa@etl.go.jp>
775
776 * coding.c (detect_coding_iso2022): Fix code for checking
777 CODING_CATEGORY_MASK_ISO_8_2.
778
f1ad044f
SM
7792000-05-29 Stefan Monnier <monnier@cs.yale.edu>
780
781 * regex.c (PREFETCH_NOLIMIT): New function.
782 (re_match_2_internal): Use it and adjust the end_match_2 logic.
783
84ec3b4b
GM
7842000-05-29 Gerd Moellmann <gerd@gnu.org>
785
66254a13
GM
786 * syntax.c (find_defun_start): Move test for
787 open_paren_in_column_0_is_defun_start outside of the loop.
788
49e70dec
GM
789 * xdisp.c (redisplay_window): Really switch buffers when
790 displaying mode lines, and temporarily set selected_frame to the
791 frame of the window that's redisplayed.
792
84ec3b4b
GM
793 * xfaces.c (free_realized_faces): Block/unblock input.
794 (free_realized_multibyte_face): Ditto.
795
869a3a14
DL
7962000-05-29 Dave Love <fx@gnu.org>
797
798 * textprop.c (Qkeymap): New variable.
799 (syms_of_textprop): Intern it.
800
801 * keymap.c: Include intervals.h.
802 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
803
804 * Makefile.in (keymap.o): Depend on intervals.h.
805
806 * keyboard.c (menu_bar_items, tool_bar_items)
807 (Fexecute_extended_command): Deal with `keymap' property.
808 (read_key_sequence): Track map from `keymap' property as well as
809 `local_map'.
810
811 * intervals.c (get_local_map): Extra arg to allow looking for
812 `keymap' too.
813
814 * intervals.h (map_property): New enum.
815 (get_local_map): Extra arg using it.
816 (Qkeymap): Declare.
817
84ec3b4b 818 * lisp.h (get_local_map): Don't declare here.
869a3a14 819
89d0c844
KH
8202000-05-29 Kenichi Handa <handa@etl.go.jp>
821
822 * Makefile.in (callproc.o): Depend on composite.h.
823
824 * callproc.c: Include composite.h.
825 (Fcall_process): Handle composition correctly.
826
827 * coding.h (coding_allocate_composition_data): Extern it.
828 (coding_restore_composition): Likewise.
829
830 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
831 yet allocated, finish decoding with result
832 CODING_FINISH_INSUFFICIENT_CMP.
833 (coding_allocate_composition_data): Make it non-static.
834 (coding_restore_composition): Likewise.
835
797a084a
EZ
8362000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
837
838 * charset.c (syms_of_charset): Revert last change.
839
cf872af5
EZ
8402000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
841
842 * term.c (produce_glyphs): Treat characters from the eight-bit-*
843 charsets as unibyte, with 1-column screen width. Sent by Kenichi
844 Handa.
845
5b1ae051
EZ
8462000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
847
848 * charset.c (syms_of_charset): Set width of character sets
849 eight-bit-control and eight-bit-graphic to 1 column.
850
34ec9ebe
GM
8512000-05-26 Gerd Moellmann <gerd@gnu.org>
852
853 * config.in (HAVE_SPEED_T): New define.
854
855 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
856 `extern speed_t'.
857
dd854dc2
DL
8582000-05-26 Dave Love <fx@gnu.org>
859
860 * coding.c (shrink_decoding_region): Initialize eol_conversion.
861
862 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
863 (Fsubr_arity): New function.
864 (syms_of_data): Install them.
865
ba9f8f95
KH
8662000-05-26 Kenichi Handa <handa@etl.go.jp>
867
0f3e0672
KH
868 * charset.c (init_charset_once): Set the table bytes_by_char_head
869 correctly.
870
cebefb44
KH
871 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
872 the default fontset to what Emacs uses by default.
0f3e0672
KH
873 (check_registry_encoding): This function deleted.
874 (Fset_fontset_font): Remove the adhoc condition for the default
875 fontset. Allow cons in FONTNAME.
cebefb44 876
0f3e0672
KH
877 * fns.c (map_char_table): Ignore char-table entries for
878 charsets eight-bit-control and eight-bit-graphic.
ba9f8f95 879
7a18af49
KR
8802000-05-25 Ken Raeburn <raeburn@gnu.org>
881
882 * emacs.c (main): Initialize keyboard syms before initializing
883 window code, so face names are available.
884
d2af47df
SM
8852000-05-25 Stefan Monnier <monnier@cs.yale.edu>
886
887 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
888 of an anchor at the beginning of a shy-group.
889
fc6a6a4e
GM
8902000-05-25 Gerd Moellmann <gerd@gnu.org>
891
892 * xdisp.c (handle_invisible_prop): Don't try to skip over
893 invisible text if end of text is already reached.
894
005f0d35
DL
8952000-05-25 Dave Love <fx@gnu.org>
896
02513cdd
DL
897 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
898
005f0d35
DL
899 * coding.c (encode_eol): Add null statement after label.
900
89f6ca4e
EZ
9012000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
902
903 * w16select.c (Fw16_set_clipboard_data): Fix the change from
904 2000-05-20.
905
a4e1759e
KH
9062000-05-25 Kenichi Handa <handa@etl.go.jp>
907
908 * ccl.c (ccl_driver): Fix previous change.
909
eacfd7fe
KH
9102000-05-25 Kenichi Handa <handa@etl.go.jp>
911
46ab33a9
KH
912 * coding.c (run_pre_post_conversion_on_str): Set point to the
913 beginning of buffer before calling coding->post_read_conversion.
914 (decode_coding_string): Give correct args to
915 run_pre_post_conversion_on_str.
916 (encode_coding_string): Likewise.
917
eacfd7fe
KH
918 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
919 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
920 eight-bit-graphic correctly.
921
f8569325
DL
9222000-05-24 Kenichi HANDA <handa@etl.go.jp>
923
924 * fileio.c (Finsert_file_contents): Even if a file is not found,
925 execute codes for setting up coding system. Call
926 after-insert-file-functions unconditionally.
927
04545643
GM
9282000-05-24 Gerd Moellmann <gerd@gnu.org>
929
930 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
931 BSD_PGRPS are not defined.
932
747d90ea
KH
9332000-05-24 Kenichi Handa <handa@etl.go.jp>
934
935 * charset.c (update_charset_table): Accept nil in LONG_NAME and
936 DESCRIPTION.
937 (syms_of_charset): Avoid building same strings.
938
716e3b88
GM
9392000-05-23 Gerd Moellmann <gerd@gnu.org>
940
941 * lread.c (Fload): Add a comment about the meaning of
942 Vuser_init_file being t.
943
944 * puresize.h (BASE_PURESIZE): Increase to 675000.
945
946 * s/gnu-linux.h (setpgrp): Don't define it here because this
947 prevents compilation on GNU/Linux systems with glib 2.2.
948
949 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
950 as setpgid.
427ec082 951
9aeb39fa
EZ
9522000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
953
954 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
955 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
956 version.
957 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
958
29ced61b
KH
9592000-05-23 Kenichi Handa <handa@etl.go.jp>
960
0574a2ed
KH
961 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE
962 unconditionally.
963
3d80f24d
KH
964 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
965
966 * term.c (encode_terminal_code): Set coding->src_multibyte
967 properly.
968
29ced61b
KH
969 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
970
d7e00792
KH
9712000-05-22 Kenichi Handa <handa@etl.go.jp>
972
c9d80d38
KH
973 * keyboard.c (read_char): Allow character codes 128..255 to be
974 handled by input-method-function.
975
d7e00792
KH
976 * insdel.c (adjust_markers_for_replace): Fix previous change.
977 (adjust_after_replace): If PREV_TEXT is nil, call
978 adjust_markers_for_insert, not adjust_markers_for_replace.
979
087121cc 9802000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
427ec082 981
087121cc
GM
982 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
983 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
984 [HAVE_GRANDPT]: Define.
985 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
986
987 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
988 like SYSV_PTYS.
989
990 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
991
992 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
993
c9671f81
KH
9942000-05-20 Kenichi Handa <handa@etl.go.jp>
995
996 The following changes are to handle 8-bit characters in a
997 multibyte buffer/string without facing with byte combining
998 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
999 eight-bit-graphic (for 0xA0..0xFF) are introduced.
1000
1001 * Makefile.in (fns.o): Depend on charset.h.
1002
1003 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
1004 convert it to unibyte.
1005 (make_string): Use parse_str_as_multibyte, not chars_in_text.
1006
1007 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
1008 apparent char boundary.
1009 (Fset_buffer_multibyte): Convert 8-bit characters in the range
1010 0x80..0x9F to/from multibyte form.
1011
1012 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
1013 to unibyte.
1014
1015 * callproc.c (Fcall_process): Always encode an argument string if
1016 it is multibyte. Setup src_multibyte and dst_multibyte members of
1017 process_coding properly.
ce75fd23 1018
c9671f81
KH
1019 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
1020 SPLIT_NON_ASCII_CHAR.
1021
1022 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
1023 as is.
1024 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
1025
1026 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New
1027 variables.
1028 (SPLIT_CHARACTER_SEQ): This macro deleted.
1029 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is
1030 valid.
1031 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
1032 and eight-bit-graphic.
1033 (char_to_string): Likewise. Signal an error for too large
1034 character code.
1035 (char_printable_p): Return 0 for 8-bit characters.
1036 (update_charset_table): Update iso_charset_table only when a final
1037 character is non-negative.
1038 (find_charset_in_text): Renamed from find_charset_in_str.
1039 Arguments and return value changed. Callers changed.
1040 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
1041 be -1 if CHARSET is used only internally.
1042 (Fmake_char_internal): Handle new charsets; eight-bit-control and
1043 eight-bit-graphic.
1044 (Fcharset_after): Simplified.
1045 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
1046 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
1047 (multibyte_chars_in_text): Simplified by assuming there's no
1048 invalid multibyte sequence.
1049 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
1050 str_as_unibyte): New functions.
1051 (Fstring): Simpified by assuming that byte combining never
1052 happens.
1053 (init_charset_once): Initialization for
1054 LEADING_CODE_8_BIT_CONTROL.
1055 (syms_of_charset): Intern and staticpro Qeight_bit_control and
1056 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
1057 eight-bit-control and eight-bit-graphic.
1058
1059 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL,
1060 CHARSET_8_BIT_GRAPHIC): New macros.
1061 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
1062 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
1063 (CHARSET_REVERSE_CHARSET): Likewise.
1064 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
1065 eight-bit-graphic.
1066 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
1067 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
1068 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
1069 encounter an invalid multibyte sequence.
1070 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
1071 sequence is always valid.
1072 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
1073 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New
1074 macros.
1075 (CHAR_STRING): For 8-bit characters, call char_to_string.
1076 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
1077 multibyte sequence is always valid.
1078 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
1079 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
1080 str_as_unibyte): Extern them.
1081 (BCOPY_SHORT): Fix a bug.
1082 (CHAR_LEN): This macro deleted. Callers changed to use
1083 CHAR_BYTES.
1084 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
1085 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
1086 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
1087
bd4bde7f 1088 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
c9671f81
KH
1089 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
1090 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
1091 EMIT_BYTES): New macros.
1092 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
1093 DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
1094 macros deleted.
1095 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
1096 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
1097 check the validity of multibyte sequence.
1098 (decode_coding_emacs_mule): New function.
1099 (encode_coding_emacs_mule): New macro.
1100 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
1101 the source.
1102 (DECODE_ISO_CHARACTER): Just return a character code.
1103 (DECODE_COMPOSITION_START): Set coding->result instead of result.
1104 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
1105 EMIT_CHAR to produced decoded characters. Exit the loop only by
1106 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
1107 block here.
1108 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
1109 only position codes for an invalid character.
1110 (encode_designation_at_bol): Return new destination pointer. 5th
1111 arg DSTP is changed to DST.
1112 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
1113 from the source by ONE_MORE_CHAR. Don't handle the case of last
1114 block here.
1115 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
1116 macros deleted.
1117 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
1118 detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
1119 TWO_MORE_BYTES to fetch a byte from the source.
1120 (encode_eol): Pay attention to coding->src_multibyte.
1121 (detect_coding, detect_eol): Preserve members src_multibyte and
1122 dst_multibyte.
1123 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
1124 (encoding_buffer_size): Set magnification to 3 for all coding
1125 systems that require encoding.
1126 (ccl_coding_driver): For decoding, be sure that the result is
1127 valid multibyte sequence.
1128 (decode_coding): Initialize coding->errors and coding->result.
1129 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
1130 and raw-text, always call decode_eol. Handle the case of last
1131 block here. If not coding->dst_multibyte, convert the resulting
1132 sequence to unibyte.
1133 (encode_coding): Initialize coding->errors and coding->result.
1134 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
1135 and raw-text, always call encode_eol. Handle the case of last
1136 block here.
1137 (shrink_decoding_region, shrink_encoding_region): Detect cases
1138 that we can't skip data more rigidly.
1139 (code_convert_region): Setup src_multibyte and dst_multibyte
1140 members of coding. For decoding, if the buffer is multibyte,
1141 convert the source sequence to unibyte in advance. For encoding,
1142 if the buffer is multibyte, convert the resulting sequence to
1143 multibyte afterward.
1144 (run_pre_post_conversion_on_str): New function.
1145 (code_convert_string): Deleted and divided into the following two.
1146 (decode_coding_string, encode_coding_string): New functions.
1147 (code_convert_string1, code_convert_string_norecord): Call one of
1148 above.
1149 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
1150 MAKE_NON_ASCII_CHAR.
1151 (Fset_terminal_coding_system_internal,
1152 Fset_safe_terminal_coding_system_internal): Setup src_multibyte
1153 and dst_multibyte members.
1154 (init_coding_once): Initialize iso_code_class with new enum
1155 ISO_control_0 and ISO_control_1.
1156
1157 * coding.h (enum iso_code_class_type): Member ISO_control_code is
1158 devided into ISO_control_0 and ISO_control_1.
1159 (struct coding_system): New members src_multibyte, dst_multibyte,
1160 errors, and result. Delete member fake_multibyte.
1161 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
1162 nonzero.
1163 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
1164 nonzero.
1165
1166 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
1167 (Faset): Likewise.
1168
1169 * editfns.c (Fformat): Be sure to convert 8-bit characters to
1170 multibyte form.
1171 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
1172 combining occurs.
1173 (Ftranspose_region): Delete codes for handling byte combining.
1174
1175 * fileio.c (Finsert_file_contents): Setup src_multibyte and
1176 dst_multibyte members of coding. On handling REPLACE on unibyte
1177 buffer, convert the result of decode_coding to unibyte. On
1178 inserting into a mutibyte buffer, always call code_convert_region.
bd4bde7f 1179 (e_write): Setup coding->src_multibyte according to the
c9671f81
KH
1180 multibyteness of the source (buffer or string).
1181
1182 * fns.c (concat): Handle 8-bit characters correctly.
1183 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
1184 unibyte in the result.
1185 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
1186 valid multibyte form in the result.
1187 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
1188 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
1189 return -1, signal an error.
1190 (base64_encode_1): New arg MULTIBYTE. Get each character by
1191 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
1192 character is found, return -1.
1193 (Fbase64_decode_region): Delete codes for handling byte-combining.
1194 Treat each decoded byte as a unibyte character.
1195 (Fbase64_decode_string): Return unibyte string.
1196 (Fcompare_strings, concat, string_byte_to_char): Use
1197 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
1198 FETCH_STRING_CHAR_ADVANCE.
1199 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
1200 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
1201
1202 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
1203 SPLIT_NON_ASCII_CHAR.
1204 (fontset_ref_via_base, fontset_set): Likewise
1205
1206 * insdel.c (adjust_markers_for_record_delete): Deleted.
1207 (adjust_markers_for_insert): Argument changed. Caller changed.
1208 (adjust_markers_for_replace): Likewise.
1209 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error,
1210 CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
1211 (copy_text): Delete unused local varialbe c_save. For converting
1212 to multibyte, be sure to make all 8-bit characters in valid
1213 multibyte form.
1214 (count_size_as_multibyte): Handle 8-bit characters correctly.
1215 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
1216 adjust_after_replace, replace_range, del_range_2)
1217 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
1218 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
1219 adjust_after_replace, replace_range, del_range_2) Delete codes for
1220 handling byte combining.
1221 (adjust_before_replace): Deleted.
427ec082 1222
c9671f81
KH
1223 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
1224 SPLIT_NON_ASCII_CHAR.
1225 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
1226 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE
1227 unconditionally.
1228 (Fkey_description): Likewise.
1229
1230 * lread.c (read1): On reading multibyte string, be sure to make
1231 all 8-bit chararacters in valid multibyte form.
1232 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
1233
1234 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
1235 unconditionally.
1236
1237 * process.c (Fstart_process): GCPRO current_dir before calling
1238 Ffind_operation_coding_system. Encode arguments here.
1239 (create_process): Don't encode arguments here. Setup
1240 src_multibyte and dst_multibyte members of struct coding.
1241 (read_process_output): Setup src_multibyte and dst_multibyte
1242 members of struct coding. If the output is to multibyte buffer,
1243 always decode the output of the process. Adjust the
1244 representation of 8-bit characters to the multibyteness of the
1245 output.
1246 (send_process): Setup coding->src_multibyte according to the
1247 multibyteness of the source.
1248
1249 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE
1250 unconditionally.
1251 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
1252 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
1253
1254 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of
1255 CHAR_LEN.
1256
1257 * w16select.c (Fw16_set_clipboard_data): Setup members
1258 src_multibyte and dst_multibyte of coding. Adjusted for the
1259 change for find_charset_in_str.
1260 (Fw16_get_clipboard_data): Likewise.
1261
1262 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
1263 dst_multibyte of coding.
1264 (x_to_w32_font): Likewise.
1265
1266 * w32select.c (Fw32_set_clipboard_data): Setup members
1267 src_multibyte and dst_multibyte of coding. Adjusted for the
1268 change for find_charset_in_str.
1269 (Fw32_get_clipboard_data): Likewise.
1270
1271 * xdisp.c (get_next_display_element): Handle 8-bit characters
1272 correctly.
1273 (next_element_from_display_vector): Use CHAR_BYTES instead of
1274 CHAR_LEN.
1275 (disp_char_vector): Use SPLIT_CHAR instead of
1276 SPLIT_NON_ASCII_CHAR.
1277
1278 * xselect.c (selection_data_to_lisp_data): Setup members
1279 src_multibyte and dst_multibyte of coding. Adjusted for the
1280 change for find_charset_in_str.
1281 (lisp_data_to_selection_data): Likewise.
1282
5f64c9e0
GM
12832000-05-19 Gerd Moellmann <gerd@gnu.org>
1284
2b63d473
GM
1285 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed
1286 buffer.
1287
5f64c9e0
GM
1288 * dispextern.h (Vimage_types): Add extern declaration.
1289
1290 * xdisp.c (Vimage_types): Moved here from xfns.c.
1291 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
1292
1293 * xfns.c (Vimages_types): Moved to xdisp.c.
1294 (syms_of_xfns): Move `image-types' to xdisp.c.
1295
1296 * w32fns.c (Vimage_types): Removed.
1297 (syms_of_w32fns): Remove `image-types'.
1298
813086ea
KH
12992000-05-18 Kenichi Handa <handa@etl.go.jp>
1300
1301 * fns.c (map_char_table): Pay attention to character number of
1302 charset. Check the validity of charset at the first level. For
1303 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
1304 the default value.
1305
1306 * fontset.c: Include "buffer.h".
1307 (fs_load_font): If the face has fontset, record the face ID in
1308 that fontset.
1309 (Finternal_char_font): New function.
1310 (accumulate_font_info): New function.
1311 (Ffontset_info): Rewritten for the new fontset implementation.
1312 (syms_of_fontset): Register Vdefault_fontset in the first element
1313 of Vfontset_table. Include Vdefault_fontset in
1314 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
1315 function.
1316
bdaebbf0
DL
13172000-05-16 Dave Love <fx@gnu.org>
1318
1319 * m/iris5d.h: Deleted -- unused.
1320
cb613bb8
GM
13212000-05-16 Gerd Moellmann <gerd@gnu.org>
1322
b15f3b77
GM
1323 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
1324 `invalid' instead of `illegal'.
1325
1326 * indent.c (Fmove_to_column): When ending within a tab, insert
1327 spaces first so that markers at the end of the tab get adjusted.
1328
835c1b36
GM
1329 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
1330 buffer list that wasn't selected in that frame.
1331
cb613bb8
GM
1332 * filelock.c (get_boot_time): To obtain an 8 char file name, which
1333 is needed on mescaline, use a 2 char prefix, and call
1334 make_temp_name with second arg non-zero.
1335
1336 * fileio.c (make_temp_name): New function, extracted from
1337 Fmake_temp_name.
1338 (Fmake_temp_name): Use it.
1339
f685bea9
EZ
13402000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
1341
1342 * window.c (coordinates_in_window): Subtract 1 when computing
1343 right_x.
1344
a1b8d58b
GM
13452000-05-15 Gerd Moellmann <gerd@gnu.org>
1346
1347 * Makefile.in (lisp): Add env.elc.
1348
1349 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
1350
a265079f
GM
13512000-05-12 Gerd Moellmann <gerd@gnu.org>
1352
1353 * search.c (Freplace_match): Handle case of `\N' in the
1354 replacement when there's no group N.
1355
da4496b6
GM
13562000-05-11 Gerd Moellmann <gerd@gnu.org>
1357
0ace421a
GM
1358 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
1359 of the message to message_dolog.
1360
1172eb8d
GM
1361 * keyboard.c (read_char): Don't clear current message for help
1362 events; let the code handling help events handle this. Change
1363 code detecting help events that should be ignored.
1364
da4496b6
GM
1365 * xdisp.c (handle_single_display_prop): Don't try to set PT if
1366 we're interating over a string.
1367
0623e40f
DL
13682000-05-09 Dave Love <fx@gnu.org>
1369
1370 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
1371 that offset before writing. Move gcpro region past call of
1372 Ffile_regular_p.
1373
bae2503b
DL
13742000-05-04 Dave Love <fx@gnu.org>
1375
1376 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
1377
ec82fb2f
GM
13782000-05-04 Gerd Moellmann <gerd@gnu.org>
1379
1380 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
1381 of inserted characters when BUF equals the current buffer, and PT
1382 is in front of or equal to FROM.
1383
cbf18892
GM
13842000-05-03 Gerd Moellmann <gerd@gnu.org>
1385
4ff40dd0
GM
1386 * xdisp.c (handle_single_display_prop): If display property value
1387 is invalid, or something not supported on the frame, restore
1388 iterator's position to what it was initially. Make sure to return
1389 0 for invalid and unsupported property values.
1390
cbf18892
GM
1391 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
1392 that x_per_char_metric returns null.
1393
1b0672c3
GM
13942000-05-02 Gerd Moellmann <gerd@gnu.org>
1395
576da55d
GM
1396 * xterm.h (struct face): Add forward declaration.
1397 (struct image): Ditto.
1398 (image_ascent): Add prototype.
1399
1400 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
1401 (x_draw_image_relief, x_draw_image_foreground_1): Call function
1402 image_ascent instead of using IMAGE_ASCENT.
1403
1404 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
1405 (IMAGE_ASCENT): Removed.
1406
1407 * xfns.c (Qcenter): New variable.
1408 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
1409 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
1410 (image_ascent): New function.
1411 (lookup_image): Recognize `:ascent center'.
1412 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
1413 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
1414 (xbm_load): Don't set image's ascent here.
1415 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
1416 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
1417 check ascent values here.
1418 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
1419 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
1420 (syms_of_xfns): Initialize Qcenter.
1421
1b0672c3
GM
1422 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
1423 to the limits, increase the limits.
1424
0d7811ed
KH
14252000-05-01 Kenichi Handa <handa@etl.go.jp>
1426
1427 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
1428 Check Vfont_encoding_alist against the full name of the opened
1429 font.
1430
a943a5ca
GM
14312000-04-28 Gerd Moellmann <gerd@gnu.org>
1432
1433 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
1434 taller than the window.
1435
5dba1e29
KH
14362000-04-28 Kenichi Handa <handa@etl.go.jp>
1437
1438 * xfaces.c (realize_x_face): Fix the argument of the second
1439 xassert. BASE_FACE may not be a face for ASCII.
1440
353964e3
GM
14412000-04-27 Gerd Moellmann <gerd@gnu.org>
1442
c76e04a8
GM
1443 * print.c (print_object): Treat print-length < 0 as nil.
1444
1445 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
1446
1447 * s/freebsd.h (TERMCAP_OBJ): Removed.
1448 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
1449
1450 * lread.c (read1): Don't treat period followed by certain
1451 characters as symbol start.
1452
1453 * xfns.c (slurp_file): New function.
1454 (xbm_image_p): Handle case of in-memory XBM files.
1455 (xbm_scan): Rewritten to work on memory buffers instead of files.
1456 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
1457 Work on memory buffers instead of files. If DATA is null test
1458 if buffer looks like an in-memory XBM file.
1459 (xbm_load_image): Renamed from xbm_load_image_file. Work on
1460 memory buffers instead of files.
1461 (xbm_file_p): New function.
1462 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
1463
353964e3
GM
1464 * lread.c (end_of_file_error): New function.
1465 (read1): Call it instead of signaling `end-of-file' directly.
1466
427ec082 1467 * print.c (print_error_message): Print data of `end-of-file'
353964e3
GM
1468 with Fprinc instead of Fprin1.
1469
24d744ac
KR
14702000-04-26 Ken Raeburn <raeburn@gnu.org>
1471
1472 * window.c (freeze_window_start): Check that minibuffer scroll
1473 window isn't nil before extracting the window structure pointer
1474 from it.
1475
1476 * undo.c (record_delete): If we hit the end of the undo list, stop
1477 picking elements apart.
1478
7464346d
GM
14792000-04-26 Gerd Moellmann <gerd@gnu.org>
1480
1481 * xdisp.c (display_line): If lines are continued, restore
1482 iterator's ascent/descent information to the values before the
1483 first glyph not fitting on the line.
1484
612839b6
GM
14852000-04-25 Gerd Moellmann <gerd@gnu.org>
1486
1487 * xdisp.c (try_window_id) <all changes above window start>: Adjust
1488 positions in glyph matrix. Don't compute new window end
1489 positions.
1490
1491 * dispnew.c (increment_matrix_positions): Renamed from
1492 increment_glyph_matrix_buffer_positions.
1493 (increment_row_positions): Renamed from
1494 increment_glyph_row_buffer_positions.
1495
1496 * dispextern.h: Change names of renamed functions from dispnew.c
1497 in prototypes.
1498
cc181e95
GM
14992000-04-24 Gerd Moellmann <gerd@gnu.org>
1500
abfcc168
GM
1501 * fileio.c (Fdo_auto_save): Create directories for auto-save
1502 list file if necessary.
1503
cc181e95
GM
1504 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
1505 from buffer or frame.
1506 (automatic_hscrolling_p): New variable.
1507 (hscroll_windows): Scroll windows horizontally only if automatic
1508 hscrolling is allowed.
1509 (syms_of_xdisp): New variable `automatic-hscrolling'.
1510
1511 * frame.h (struct frame): Add member extra_line_spacing.
1512
1513 * xfns.c (x_set_line_spacing): New function.
1514 (Fx_create_frame): Set line spacing from resources.
1515 (Qline_spacing): New variable.
1516 (syms_of_xfns): Initialize Qline_spacing.
427ec082 1517
cc181e95
GM
1518 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
1519
1520 * buffer.c (init_buffer_once): Handle extra_line_spacing.
1521 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
abfcc168 1522 (reset_buffer): Don't initialize extra2 and extra3. Initialize
cc181e95
GM
1523 extra_line_spacing from default value.
1524 (init_buffer_once): Initialize default value of extra_line_spacing.
1525
1526 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
1527 and extra3.
1528
1529 * xterm.c (x_produce_glyphs): Remove reference to struct it's
1530 prompt_width. Add extra line spacing.
1531
1532 * term.c (produce_glyphs): Remove reference to struct it's
1533 prompt_width.
1534
1535 * dispextern.h (struct it): Remove member prompt_width, add
1536 extra_line_spacing.
1537
58827478
GM
15382000-04-22 Gerd Moellmann <gerd@gnu.org>
1539
1540 * dispnew.c (update_frame_line): When writing a whole line, make
1541 sure cursor is in the right row afterwards, otherwise a use of
1542 capability `ch' in cmgoto might leave the cursor in the row below.
1543
25a87f42
GM
15442000-04-21 Gerd Moellmann <gerd@gnu.org>
1545
1546 * lisp.h (struct Lisp_Buffer_Cons): Remove.
1547
1548 * keyboard.c (timer_check): Fix typo in comment.
1549
54edf5c2
KH
15502000-04-21 Kenichi Handa <handa@etl.go.jp>
1551
1552 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
1553 name change: ch -> character.
1554
3a64eef5
GM
15552000-04-20 Gerd Moellmann <gerd@gnu.org>
1556
1557 * keyboard.c (echo_message_buffer): New variable.
1558 (echo_now): Set echo_message_buffer to the echo area buffer used
1559 to display the echo.
1560 (cancel_echoing): Reset echo_message_buffer to nil.
1561 (read_char): Code rewritten that handles canceling an echo or
1562 echoing a dash, respectively.
1563
1564 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
1565 directory doesn't exist.
1566
6142fdcb
DL
15672000-04-19 Dave Love <fx@gnu.org>
1568
1569 * fns.c (syms_of_fns): Defsubr mapc.
a9cacab7
DL
1570 (concat): Don't allow numeric args.
1571 (Fconcat): Doc change.
6142fdcb 1572
ac6b5352
SM
15732000-04-19 Stefan Monnier <monnier@cs.yale.edu>
1574
1575 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
1576 instead define end_match(1|2) more carefully.
1577 Use GET_CHAR_BEFORE_2 for `begline'.
1578
cb9215e4
GM
15792000-04-19 Gerd Moellmann <gerd@gnu.org>
1580
5e3dac3f
GM
1581 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
1582 on 64-bit systems where NULL is defined as `0'.
1583
1584 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
1585 the `variable argument list' to make it work on Alpha.
1586
cb9215e4
GM
1587 * m/alpha.h (_LP64) [!_LP64]: Define.
1588 (ORDINARY_LINK): Define for NetBSD.
1589
1590 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
427ec082 1591
f532dca0
DL
15922000-04-19 Dave Love <fx@gnu.org>
1593
c750667e
DL
1594 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
1595 change.
1596
1597 * Makefile.in (LIBS): Don't use.
1598 (GETLOADAVG_OBJ): Define again.
1599 (otherobj): Add GETLOADAVG_OBJ.
1600
f532dca0
DL
1601 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
1602
1c7e22fd
GM
16032000-04-18 Gerd Moellmann <gerd@gnu.org>
1604
f6d3257b
GM
1605 * lread.c (read_filtered_event): Cancel and start busy cursor.
1606
427ec082 1607 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
1c7e22fd
GM
1608 that the per-character metrics may be null.
1609
e10f64e7
GM
16102000-04-17 Gerd Moellmann <gerd@gnu.org>
1611
0daee095
GM
1612 * buffer.c (clone_per_buffer_values): New function.
1613 (Fmake_indirect_buffer): Add optional argument CLONE. Call
1614 clone_per_buffer_values if CLONE is not nil.
1615
e10f64e7
GM
1616 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
1617
38687d43
DL
16182000-04-16 Dave Love <fx@gnu.org>
1619
1620 * Makefile.in: Remove obsolete localcpp stuff.
1621 (GETLOADAVG_OBJ): Don't define.
1622 (obj): Move LIBOBJS...
1623 (otherobj): ... to here.
1624 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
1625 whitespace-only lines after the continuation (Irix).
1626
c21c7262
GM
16272000-04-14 Gerd Moellmann <gerd@gnu.org>
1628
1629 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
1630
1631 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
1632
314767c0
DL
16332000-04-14 Dave Love <fx@gnu.org>
1634
1635 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
1636 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
1637 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
1638 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
1639 NLIST_STRUCT.
1640
1641 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
1642 autoconfiscated HAVE_GETLOADAVG.
1643
1644 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
1645 BROKEN_MKTIME.
1646
a2522dca
GM
16472000-04-14 Gerd Moellmann <gerd@gnu.org>
1648
1649 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
1650 (fill_in_lock_file_name): Avoid existing files that aren't
1651 links.
1652
33744b5d
DL
16532000-04-14 Dave Love <fx@gnu.org>
1654
c21c7262 1655 * Makefile.in (LIBS, LIBOBJS): New variable.
33744b5d
DL
1656 (INTERVAL_SRC): Convert to make variable.
1657 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
1658 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
1659 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
1660 add LIBOBJS.
1661 (SOME_MACHINE_OBJECTS): Remove interval stuff.
1662 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
1663 (shortlisp): Add facemenu, float-sup, frame.
1664 (SOME_MACHINE_LISP): Remove them from here.
1665 (LIBES): Change unused LDLIBS to autoconf LIBS.
1666
1667 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
1668
9d3d5916
KH
16692000-04-14 Kenichi Handa <handa@etl.go.jp>
1670
1671 * composite.c (update_compositions): If FROM and TO are not in a
1672 valid range, do nothing.
1673
198e3c7a
GM
16742000-04-13 Gerd Moellmann <gerd@gnu.org>
1675
1676 * tparam.c (tparam1): Abort when encountering an unknown
1677 `%'-specifier.
1678
1679 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as
1680 terminfo.o.
1681
1682 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
1683 as TERMCAP_OBJ.
1684
055a28c9
EZ
16852000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
1686
1687 * fileio.c (a_write): Remove redundant semi-colons.
1688 (e_write): Return -1 if failed to write all the data.
1689 This fixes the changes made at 1999-12-15.
1690
f5c75033
DL
16912000-04-12 Dave Love <fx@gnu.org>
1692
1693 * fns.c (mapcar1): Test for null vals to support mapc.
1694 (Fmapc): New function.
1695
0c3cfc51
EZ
16962000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
1697
1698 * msdos.c (NUM_MOUSE_BUTTONS): Define.
1699 (IT_frame_up_to_date): Support the buffer local value of
1700 cursor-type, if defined.
1701
33465a31
DL
17022000-04-10 Dave Love <fx@gnu.org>
1703
1704 * editfns.c (preceding-char, following-char): Doc fix.
1705
6ed56568
KR
17062000-04-10 Ken Raeburn <raeburn@gnu.org>
1707
1708 * Makefile.in (temacs): Revert 2000-03-12 change.
1709
7cf80d4e
JR
17102000-04-10 Jason Rumney <jasonr@gnu.org>
1711
1712 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
1713
34f3f342
GM
17142000-04-10 Gerd Moellmann <gerd@gnu.org>
1715
1a1b1895
GM
1716 * xdisp.c (setup_echo_area_for_printing): Choose an echo
1717 area buffer, if it's not set up yet.
1718
34f3f342
GM
1719 * indent.c (compute_motion): Set immediate_quit.
1720
be0dbdab
GM
17212000-04-09 Gerd Moellmann <gerd@gnu.org>
1722
c45be9ac
GM
1723 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New
1724 variable.
1725 (realize_tty_face): Suppress boldness if colors are the inverse of
1726 the default colors, and tty_suppress_bold_inverse_default_colors_p
1727 is set.
1728 (Ftty_suppress_bold_inverse_default_colors): New function.
1729 (syms_of_xfaces): Defsubr it.
1730
be0dbdab
GM
1731 * buffer.c (Frestore_buffer_modified_p): New function.
1732 (syms_of_buffer): Defsubr it.
1733
e8413c3b
KR
17342000-04-08 Ken Raeburn <raeburn@gnu.org>
1735
87f67317
KR
1736 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
1737 charset id (int) argument, not a charset (Lisp_Object).
1738
e8413c3b
KR
1739 * coding.h (code_convert_string): Declare.
1740 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
1741 object, as the fourth argument to code_convert_string.
1742
1743 * fontset.c (make_fontset_for_ascii_face): Use XINT on return
1744 value.
1745 (Fset_fontset_font): Use EQ to compare lisp objects.
1746
7c752c80
KR
17472000-04-05 Ken Raeburn <raeburn@gnu.org>
1748
c0333abc
KR
1749 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
1750 a pointer that looks like a lisp object.
1751 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
1752 zero, instead see whether it's an integer object, since they can't
1753 have intervals.
1754 (GET_INTERVAL_OBJECT): Simply assign to the destination.
1755
7c752c80
KR
1756 * dispnew.c (allocate_matrices_for_frame_redisplay,
1757 direct_output_forward_char): Use X(U)INT and make_number as needed
1758 to convert between (unsigned) int values and lisp integers.
1759 * keyboard.c (read_key_sequence): Likewise.
1760 * lread.c (substitute_object_recurse): Likewise.
1761 * fns.c (concat, hash_lookup, hash_remove): Likewise.
1762 * minibuf.c (do_completion, Fminibuffer_complete_word,
1763 Fminibuffer_completion_help): Likewise.
1764 * term.c (produce_special_glyphs): Likewise.
1765
1766 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
1767 * print.c (print_preprocess, print_object): Likewise.
1768
1769 * search.c (compile_pattern): Use NILP when checking for nil.
1770
74e49b38
KR
1771 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
1772 __OPTIMIZE__]: Provide a GNU C macro version that handles
1773 lisp-object unions.
1774 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
1775 field, to better cope with ENABLE_CHECKING and calls that modify a
1776 Lisp_Object using its old value.
1777
685e5ed2
GM
17782000-04-04 Gerd Moellmann <gerd@gnu.org>
1779
c407c570
GM
1780 * window.c (compare_window_configurations): Signal an error
1781 if parameters C1 or C2 aren't window configurations.
1782
685e5ed2
GM
1783 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
1784 AFTER_POTENTIAL_GC calls around calls to functions that can
1785 signal an error and thus invoke the debugger.
1786
587a49ab
GM
17872000-04-03 Gerd Moellmann <gerd@gnu.org>
1788
62f20204
GM
1789 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
1790 an error if decoding fails.
1791
587a49ab
GM
1792 * keyboard.c (lispy_mouse_names): Variable removed.
1793 (Vlispy_mouse_stem): New variable.
1794 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
1795 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
1796 for any mouse button number. Increase size of mouse_syms and
1797 button_down_location as needed. Call modify_event_symbol with
1798 different arguments.
1799 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
1800 Call modify_event_symbol with different arguments.
1801 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
1802 for any button number. Call modify_event_symbol with different
1803 arguments.
1804 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
1805 Accept a string for NAME_ALIST_OR_STEM.
1806
1807 * lisp.h (larger_vector): Add prototype.
1808
1809 * fns.c (larger_vector): Make externally visible.
1810
1811 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
1812
2d1675e4
SM
18132000-04-02 Stefan Monnier <monnier@cs.yale.edu>
1814
1815 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
1816 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
1817 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
1818 we are between str1 and str2.
1819 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
1820 (PATFETCH): Use `TRANSLATE'.
1821 (PATFETCH_RAW): Fetch multibyte char if applicable.
1822 (PATUNFETCH): Remove.
1823 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
1824 When writing a char, write it directly into the pattern buffer rather
1825 than going needlessly through a temp char-array.
1826 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
1827 multibyte magic and remove the useless `#ifdef emacs'.
1828 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
1829 buffer.
1830
1831 * regex.h (struct re_pattern_buffer): Make field `multibyte'
1832 conditional on `emacs'.
1833
1834 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
1835
cc2d8c6b
KR
18362000-04-01 Ken Raeburn <raeburn@gnu.org>
1837
1838 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
1839 non-union-type versions of XMARK and friends here, because XMARK
1840 and friends won't work on an integer field if NO_UNION_TYPE is not
1841 defined.
1842 (make_number): Define as a function if it's not defined as a
1843 macro.
1844
09654086
KR
1845 * composite.c (run_composite_function): Use NILP when checking for
1846 nil.
1847 (syms_of_composite): Delete local var NARGS, pass an int as first
1848 argument to Fmake_hash_table.
1849
2387b382
KR
1850 * editfns.c (text_property_stickiness): Use NILP to test
1851 Lisp_Object boolean value.
1852 (Fmessage_or_box): Don't use NILP to test int variable.
c01fbf95
KR
1853 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
1854 problems reading from and changing the same lisp value in an
1855 XSETSTRING call.
1856
27660e89
GM
18572000-04-01 Gerd Moellmann <gerd@gnu.org>
1858
1859 * term.c (TN_no_color_video): New variable.
1860 (term_init): Intitialize TN_no_color_video.
1861 (enum no_color_bit): New enumeration.
1862 (MAY_USE_WITH_COLORS_P): New macro.
1863 (turn_on_face): Use it to determine if attributes may be used
1864 combined with colors.
1865
3578db3c
KR
18662000-04-01 Ken Raeburn <raeburn@gnu.org>
1867
1868 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
1869 with int lvalues via casts; instead, just yield lisp object
1870 lvalues.
1871 (enlarge_window): Variable sizep now points to Lisp_Object. Use
1872 proper accessor macros.
1873 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
1874 (grow_mini_window): Fix typo getting int value of root->height.
1875
6fc556fd
KR
1876 * xdisp.c (compute_string_pos): Fix order of arguments to
1877 string_pos_nchars_ahead.
1878 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
1879 count arg to variable-arg routines like Frun_hook_with_args and
1880 Fformat.
587a49ab
GM
1881 (back_to_previous_visible_line_start)
1882 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
6fc556fd
KR
1883 fixed-arg routines like Fget_char_property and Fmake_string.
1884 (reconsider_clip_changes): Use XINT when comparing integer lisp
1885 objects, or passing them as int arguments.
587a49ab
GM
1886 (mark_window_display_accurate, insert_left_trunc_glyphs)
1887 (append_space, extend_face_to_end_of_line): Use make_number when
6fc556fd
KR
1888 storing or passing integer values as lisp objects.
1889 (set_cursor_from_row, highlight_trailing_whitespace): Use
1890 INTEGERP, not implicit test against zero, for glyph object.
1891 (try_window_id): Don't use make_number when we want an int value.
1892
1893 * xfaces.c (xlfd_symbolic_value): Make last argument a
1894 Lisp_Object, to be consistent with callers.
1895 (Fbitmap_spec_p): Use XINT to get numeric value of height.
1896 (lface_hash): Apply XFASTINT to lisp values before folding in.
1897
1898 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
1899 fill in window width and height. Pass an int, not a lisp object,
1900 as first arg to Finsert.
1901
6e7b2457
GM
19022000-04-01 Gerd Moellmann <gerd@gnu.org>
1903
610d841e
GM
1904 * xfaces.c (realize_basic_faces): Block input while realizing
1905 the faces.
1906
6e7b2457
GM
1907 * keyboard.c (lispy_mouse_names): Add additional mouse names.
1908
1909 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
1910
aa110c0c
GM
19112000-03-31 Gerd Moellmann <gerd@gnu.org>
1912
1913 * xterm.c (x_produce_glyphs): When displaying unibyte text
610d841e 1914 or ASCII, handle case that per-char metric is null.
aa110c0c 1915
8801a864
KR
19162000-03-30 Ken Raeburn <raeburn@gnu.org>
1917
c6129d7e
KR
1918 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
1919
8801a864
KR
1920 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW,
1921 XSUBR, XBUFFER): Verify correct object type before returning
1922 pointer, using eassert.
1923 * frame.h (XFRAME): Likewise.
1924
1925 * buffer.c (Frename_buffer, Fset_buffer_multibyte,
1926 swap_out_buffer_local_variables, Fmove_overlay): Don't apply
1927 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong
1928 type.
1929 * data.c (set_internal): Likewise.
1930 * dispextern.h (WINDOW_WANTS_MODELINE_P,
1931 WINDOW_WANTS_HEADER_LINE_P): Likewise.
1932 * fileio.c (auto_save_1): Likewise.
1933 * insdel.c (check_markers): Likewise.
1934 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
1935 * undo.c (record_insert): Likewise.
1936 * vmsproc.c (child_sig): Likewise.
1937 * window.c (unshow_buffer, window_loop): Likewise.
1938 * xterm.c (x_erase_phys_cursor): Likewise.
1939
8e7af858
GM
19402000-03-30 Gerd Moellmann <gerd@gnu.org>
1941
1942 * xfns.c (free_image_cache): Free the cache structure itself
1943 last, after all its members have been freed.
1944
1945 * lisp.h (xstrdup): Add prototype.
1946
1947 * alloc.c (xstrdup): Moved here from xfaces.c.
1948 (allocating_for_lisp): Variable removed.
1949 (lisp_malloc): Block input around the calls to malloc and
1950 mem_insert.
1951
1952 * xfaces.c (realize_tty_face): Use find_symbol_value instead
1953 of Fsymbol_value.
1954 (xstrdup): Moved to alloc.c.
1955
e0b8c689
KR
19562000-03-29 Ken Raeburn <raeburn@gnu.org>
1957
b96f9fb7
KR
1958 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
1959
1960 * emacs.c (main): Fix sense of no-loadup test.
1961
e0b8c689
KR
1962 * config.in (ENABLE_CHECKING): Undef.
1963
1964 * lisp.h (struct interval): Replace "parent" field with a union of
1965 interval pointer and Lisp_Object; add new bitfield to use as
1966 discriminant. Change other flag fields to bitfields.
1967 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
1968 is defined and the supplied test fails, print a message and
1969 abort.
1970 (eassert): New macro. Use CHECK to provide an assert-like
1971 facility.
1972
1973 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
1974 pointers; abort if the value looks like a lisp object.
1975 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT,
1976 SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
1977 Modify for new interval parent definition.
1978
1979 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE,
1980 UNMARK_BALANCE_INTERVALS): Update references that need an
1981 addressable lisp object in the interval structure.
1982 (die): New function.
1983 (suppress_checking): New variable.
1984
1985 * intervals.c (interval_start_pos): Just return 0 if there's no
1986 parent object.
1987
f83c5440
GM
19882000-03-29 Gerd Moellmann <gerd@gnu.org>
1989
1990 * lread.c (read1): Accept `.' (period) as symbol start like in CL
1991 and earlier Emacs versions.
1992
1993 * keyboard.c (Ftop_level): Cancel busy-cursor.
1994
1995 * eval.c (call_debugger): Cancel busy-cursor.
1996
fdce64ff
KH
19972000-03-29 Kenichi Handa <handa@etl.go.jp>
1998
1999 * search.c (Freplace_match): Adjust multibyteness of the current
2000 buffer and NEWTEXT. Free allocated memory before signaling an
2001 error.
2002
f6a3f532
SM
20032000-03-28 Stefan Monnier <monnier@cs.yale.edu>
2004
2005 * regex.c (analyse_first): New function obtained by ripping out most
2006 of re_compile_fastmap and generalizing it a little bit so that it
2007 can also just return whether a given (sub)pattern can match the empty
2008 string or not.
2009 (regex_compile): Use `analyse_first' to decide whether the loop-check
2010 needs to be done or not for *, +, *? and +? (the loop check is costly
2011 for non-greedy repetition).
2012 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
2013
e9b309ac
DL
20142000-03-28 Dave Love <fx@gnu.org>
2015
bb15bd9a
DL
2016 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k,
2017 alpha.
2018
e9b309ac
DL
2019 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
2020
ed0767d8
SM
20212000-03-27 Stefan Monnier <monnier@cs.yale.edu>
2022
2023 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
2024 an expression.
2025 (enum re_opcode_t): Update description of succeed_n.
2026 (PATFETCH): Always define.
2027 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
2028 operators, char classes, shy-groups and intervals).
2029 Optimize special cases of intervals so as to only use succeed_n and
2030 jump_n when really needed.
2031 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
2032 that we don't have to handle the special cases any more.
2033 Simplify on_failure_jump handling as well.
2034
e11e7e46
JR
20352000-03-28 Jason Rumney <jasonr@gnu.org>
2036
2037 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
2038
88faab89
GM
20392000-03-27 Gerd Moellmann <gerd@gnu.org>
2040
182ff242
GM
2041 * s/freebsd.h (GC_SETJMP_WORKS): Define.
2042
2043 * s/msdos.h (GC_SETJMP_WORKS): Define.
427ec082 2044
182ff242
GM
2045 * alloc.c (mark_maybe_object): New function.
2046 (mark_memory): Use it.
2047 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
2048 (setjmp_tested_p, longjmp_done): New variables.
2049 (test_setjmp): New function.
2050 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
2051 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
2052
c1005d06
GM
2053 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
2054 to DEC_TEXT_POS and INC_TEXT_POS.
2055
2056 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
2057 with parameter MULTIBYTE_P.
2058
427ec082 2059 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter
c1005d06
GM
2060 MULTIBYTE_P.
2061
7439e5b9 2062 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
182ff242
GM
2063 buffers because it looks for multibyte character byte sequences
2064 which don't exist in unibyte text.
7439e5b9 2065
d9c545da
GM
2066 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
2067
11fd416e 2068 * xfaces.c (register_color, unregister_color, unregister_colors)
d9c545da
GM
2069 [DEBUG_X_COLORS]: New functions.
2070 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
2071
2072 * xfns.c (x_set_cursor_color): Get color reference counts right.
2073
2074 * xterm.c (x_copy_color): New function.
2075 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
2076
2077 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
2078 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
2079 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
2080 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
2081 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
2082 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
2083 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
2084 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
2085 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
2086 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
2087
11fd416e
GM
2088 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
2089 names for handling per-buffer variables.
d9c545da
GM
2090
2091 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
2092 instead of MAX_BUFFER_LOCAL_VARS.
2093 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
2094
2095 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
2096
88faab89
GM
2097 * xfns.c (x_specified_cursor_type): New function.
2098 (x_set_cursor_type): Use it.
2099
2100 * buffer.h (struct buffer): Add cursor_type.
2101
d80f42b7
SM
21022000-03-26 Stefan Monnier <monnier@cs.yale.edu>
2103
2104 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
427ec082 2105 (print_partial_compiled_pattern, re_compile_fastmap): Handle new
88faab89 2106 opcode.
d80f42b7
SM
2107 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
2108 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
2109 executing it as well as when popping it off the stack to find infinite
2110 loops in non-greedy repetition operators.
2111
89e80928
GM
21122000-03-26 Gerd Moellmann <gerd@gnu.org>
2113
3d4ff2dd
GM
2114 * doc.c (Qfunction_documentation): New variable.
2115 (syms_of_doc): Initialize Qfunction_documentation.
2116 (Fdocumentation): If FUNCTION is a symbol with non-nil
2117 `function-documentation' property, return a documentation derived
2118 from that.
2119
bd96bd79
GM
2120 * buffer.c (syms_of_buffer): Add default-cursor-type.
2121 (init_buffer_once): Don't let cursor_type have a local value
2122 in every buffer.
2123
19d1bc27
GM
2124 * xterm.c (x_display_and_set_cursor): Choose cursor depending
2125 on buffer-local value of cursor_type.
2126 (x_draw_bar_cursor): Add parameter WIDTH.
2127
2128 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
2129 (init_buffer_once): Set default cursor_type value to t.
2130 Mark cursor_type as local everywhere.
2131 (syms_of_buffer): New per-buffer variable cursor-type.
2132
89e80928
GM
2133 * buffer.h (struct buffer): Remove member local_var_flags,
2134 add local_flags.
2135 (MAX_BUFFER_LOCAL_VARS): New macro.
2136 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
2137 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
2138 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
2139 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
2140
2141 * print.c (print_object): Use new macros for per-buffer
2142 variables.
2143
2144 * category.c (Fset_category_table): Use new macros for per-buffer
2145 variables.
2146
2147 * buffer.c (buffer_permanent_local_flags): Make a char array.
2148 (max_buffer_local_idx): New variable.
2149 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
2150 for new handling of per-buffer variables.
2151 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
2152 (init_buffer_once): Initialize per-buffer vars differently.
2153 Set max_buffer_local_idx.
2154
2155 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
2156 variables.
2157
2158 * lread.c (defvar_per_buffer): Use new macros for per-buffer
2159 variables.
2160
2161 * data.c (do_symval_forwarding, store_symval_forwarding)
2162 (find_symbol_value, set_internal, default_value, Fset_default)
2163 (Fkill_local_variable, Flocal_variable_p): Use new macros for
2164 per-buffer variables.
2165
2166 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
2167
9a0dd3dc
GM
21682000-03-24 Gerd Moellmann <gerd@gnu.org>
2169
b68c375f
GM
2170 * xterm.c (x_term_init): Unblock input around call1 of
2171 Qvendor_specific_keysyms.
2172
9a0dd3dc
GM
2173 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
2174 (find_defun_start): Consider an open parenthesis in column 0
2175 a defun start only if open_paren_in_column_0_is_defun_start is set.
2176 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
2177
7973e637
SM
21782000-03-24 Stefan Monnier <monnier@cs.yale.edu>
2179
2180 * eval.c (Fautoload): Add entry in load-history (if after dump).
2181 * lread.c (load-history): Update docstring.
2182
39210e90
GM
21832000-03-24 Gerd Moellmann <gerd@gnu.org>
2184
2185 * indent.c (Fvertical_motion): Always use the current buffer.
2186 Temporarily change the window's buffer, if necessary.
2187
72db3ab5
GM
21882000-03-23 Gerd Moellmann <gerd@gnu.org>
2189
2190 * xterm.c (fast_find_position): Make sure not to consider rows
2191 not visible in the window.
2192
990b2375
SM
21932000-03-22 Stefan Monnier <monnier@cs.yale.edu>
2194
2195 * regex.c (enum syntaxcode): Provide default for non-Emacs.
2196 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
2197
ff4df011
JR
21982000-03-22 Jason Rumney <jasonr@gnu.org>
2199
2200 * w32menu.c (single_submenu): Set help string to NULL if none.
2201 (w32_menu_show): Set help string correctly.
2202 (add-menu-item): Set help string in MIIM_DATA for menu item.
2203 Load SetMenuItemInfoA explicitly.
2204 (w32_menu_display_help): New function.
427ec082 2205
ff4df011
JR
2206 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
2207 (QCdata): Moved to xdisp.c.
2208
2209 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
2210 (Vw32_charset_to_codepage_alist): Removed.
2211 (Vw32_charset_info_alist): New variable.
2212 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312,
2213 chinesebig5, oem, easteurope, turkish, baltic, russian, arabic,
2214 greek, hebrew, thai, johab, mac, unicode]): New symbols.
2215 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
2216 with TODO comment.
2217 (w32_codepage_for_font): Use Vw32_charset_info_alist.
2218 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
2219 Define Vw32_charset_info_alist and w32_charset symbols.
2220
22212000-03-22 Jason Rumney <jasonr@gnu.org>
2222
2223 * makefile.nt (w32bdf.obj): Update dependencies.
2224
2225 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
2226
2227 * w32fns.c: Include fontset.h after dispextern.h.
2228 (Fx_create_frame): Do not create fontset.
2229 (w32_load_system_font): Doc fix.
2230 (Fx_close_connection): Free full_name if it is not shared.
2231
2232 * w32term.c: Include fontset.h after dispextern.h.
2233 (x_get_glyph_face_and_encoding): New parameter two_byte_p. Callers
2234 updated.
2235 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
2236 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
2237 (w32_font_is_double_byte): New function, needs body.
2238 (x_append_glyph): Set glyph->glyph_not_available_p.
2239 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
2240 it->charset. If it->multibyte_p is zero and it->c is a multibyte
2241 character, convert it to a unibyte character.
2242 (struct glyph_string): Delete member `charset'.
2243 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
2244 calculating it is found.
2245 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
2246 the case that per char metric is not available correctly.
2247 (x_fill_glyph_string): Handle the case that the specific glyph is
2248 not available correctly.
2249 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
2250 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
2251 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
2252 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
2253 fontset. Don't call FS_LOAD_FONT.
2254
439d5cb4
KR
22552000-03-22 Ken Raeburn <raeburn@gnu.org>
2256
2257 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
2258 (INT_LISPLIKE): New macro.
2259 (NULL_INTERVAL_P): Use it.
2260 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT,
2261 SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT,
2262 GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
2263
2264 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
2265 explicit references to "parent" field of struct interval and
2266 associated unclean type conversions.
2267 * intervals.c (create_root_interval, root_interval, rotate_right,
2268 rotate_left, balance_possible_root_interval, split_interval_right,
2269 split_interval_left, interval_start_pos, find_interval,
2270 next_interval, previous_interval, update_interval,
2271 adjust_intervals_for_insertion, delete_node, delete_interval,
2272 adjust_intervals_for_deletion, merge_interval_right,
2273 merge_interval_left, reproduce_tree, graft_intervals_into_buffer,
2274 copy_intervals_to_string): Likewise.
2275 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
2276 Likewise.
2277 * syntax.c (update_syntax_table): Likewise.
2278
2279 * intervals.c (reproduce_tree_obj): New function, like
2280 reproduce_tree but takes a Lisp_Object for the parent. Declare
2281 with prototype.
2282 (graft_intervals_into_buffer): Use it when appropriate.
2283 (reproduce_tree): Declare with prototype.
2284 (balance_possible_root_interval): Check that the parent is a lisp
2285 object before trying to examine its type.
2286
ee1c5b21
GM
22872000-03-22 Gerd Moellmann <gerd@gnu.org>
2288
2289 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
2290 as strings only if both are known to be strings.
2291
2292 * s/openbsd.h (LIBS_TERMCAP): Undef.
2293
1fb352e0
SM
22942000-03-21 Stefan Monnier <monnier@cs.yale.edu>
2295
2296 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
2297 definitions for non-Emacs compilation.
2298 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
2299 outside of `#ifdef emacs'.
2300 (print_partial_compiled_pattern): Update.
2301 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
2302 (re_compile_fastmap): Merge handling of charset and charset_not (for
2303 emacs and non-emacs compilation as well).
2304 Similarly for (not)categoryspec and (not)syntaxspec.
2305 Don't use the fastmap when reaching `anychar' since the added
2306 complexity is not justified.
2307 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
2308 and (not)syntaxspec. Merge (not)categoryspec.
2309
fdaa1f77
KH
23102000-03-22 Kenichi Handa <handa@etl.go.jp>
2311
ff1a0d8e
KH
2312 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P,
2313 FACE_FOR_CHAR): Define them differently for the configuration of
2314 --without-x.
fdaa1f77 2315
d152fb46
DL
23162000-03-21 Dave Love <fx@gnu.org>
2317
2318 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
2319 doc string.
2320
d2cafc8c
GM
23212000-03-21 Gerd Moellmann <gerd@gnu.org>
2322
2323 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
2324 (lface_fully_specified_p): Don't check contents of
2325 LFACE_FONT_INDEX because that attribute is optional.
2326 (realize_x_face): Remove now unwarranted xassert.
2327
9111d4b5
KH
23282000-03-21 Kenichi HANDA <handa@etl.go.jp>
2329
2330 The following changes are to make font selection based on
2331 characters, not charset. In addition, they recover fontset
2332 facilities while utilizing the new font selection mechanism.
2333
6c4bfdc0
KH
2334 * Makefile.in (fontset.o): Depend on dispextern.h.
2335
2336 * alloc.c (mark_face_cache): Don't mark face->registry.
2337
9111d4b5
KH
2338 * dispextern.h (struct glyph): New member glyph_not_available_p.
2339 Use 22 bits for face_id.
2340 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
2341 (struct face): Delete member registry, new member ascii_face.
2342 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
2343 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
2344 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
2345 (struct it): Delete member charset, new member
2346 glyph_not_available_p.
2347
2348 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
2349 (struct fontset_info, struct fontset_data): Structs removed.
2350 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset,
2351 Vglobale_fontset_alist, font_idx_temp): Externs removed.
2352 (fs_load_font, fs_query_fontset): Adjusted for new argument.
2353 (fs_free_face_fontset, fontset_font_pattern,
2354 face_suitable_for_char_p, face_for_char,
2355 make_fontset_for_ascii_face): Extern them.
2356 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
2357 (FS_LOAD_FACE_FONT): New macro.
2358
2359 * fontset.c: All codes rewritten or adjusted for the change of
2360 fontset implementation. Now fontset is represented by char table.
2361 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl): Variables
2362 removed.
2363 (my_strcasecmp): Function removed.
2364 (Vfontset_table, next_fontset_id, Vdefault_fontset): New
2365 variables.
2366 (AREF, ASIZE): New macros.
2367 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME,
2368 FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF,
2369 FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
2370 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset,
2371 fontset_id_valid_p, font_family_registry, fontset_name,
2372 fontset_ascii, free_face_fontset, face_suitable_for_char_p,
2373 face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
2374 New functions.
2375 (fs_load_font): New arg FACE. Caller changed.
2376 (fs_query_fontset): Argument changed. Caller changed.
2377 (Fquery_fontset): call fs_query_fontset.
2378 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
2379 Functions removed.
2380 (clear_fontset_elements, check_registry_encoding,
2381 check_fontset_name): New functions.
2382 (syms_of_fontset): Set char-table-extra-slots property of fontset
2383 to 3. Staticpro and initialize Vfontset_table and
2384 Vdefault_fontset. Defsubr fontset_font and fontset_list.
2385
2386 * frame.h (struct frame): Member `fontset_data' removed.
2387 (FRAME_FONTSET_DATA): Macro removed.
2388
2389 * frame.c (make_frame): Don't allocate f->fontset_data.
2390 (Fdelete_frame): Don't free f->fontset_data.
2391
6c4bfdc0
KH
2392 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
2393
9111d4b5
KH
2394 * xdisp.c (charset_at_position): Function removed.
2395 (init_iterator): Don't set member charset of struct `it'.
2396 (handle_face_prop, reseat_to_string, set_iterator_to_next,
2397 next_element_from_display_vector, insert_left_trunc_glyphs):
2398 Likewise.
2399 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
2400 FACE_FOR_CHARSET.
2401 (get_next_display_element, append_space,
2402 extend_face_to_end_of_line): Likewise.
2403
2404 * xfaces.c (Qx_charset_registry, Vface_default_registry):
2405 Variables removed.
2406 (clear_font_table, frame_update_line_height, load_face_font):
2407 Adjusted for the change of fontset implementation.
2408 (load_face_fontset_font): Function removed.
2409 (pixel_point_size): New function.
2410 (font_list): Argument type changed. Caller changed.
2411 (LFACE_FONT): New macro.
2412 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
2413 (set_lface_from_font_name): Type of arg FONTNAME is changed to
2414 Lisp_Object. Determine the font name by actually loading a font
2415 by the specified pattern. Set LFACE_FONT (lface) to the specified
2416 pattern. Even if a font is not found, don't try alternatives.
2417 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
2418 (set_font_frame_param): If `font' is specified in lface, use it.
2419 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
2420 (lface_same_font_attributes_p): Likewise.
2421 (make_realized_face): Arguent changed. Caller changed. Set
2422 face->ascii_face to face itself.
2423 (free_realized_face): Free face->fontset if face is for ASCII.
2424 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p,
2425 deduce_unibyte_registry, x_charset_registry): Functions removed.
2426 (free_realized_multibyte_face): New function.
2427 (lookup_face, lookup_named_face, lookup_derived_face): Argument
2428 changed. Caller changed.
2429 (try_font_list): Argument type changed.
2430 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
2431 (choose_face_font): Argument changed. Handle fontset properly.
2432 (choose_face_fontset_font): Function removed.
2433 (realize_default_face, realize_named_face): Don't remove the
2434 former face here.
2435 (realize_face): Argument changed. Caller changed. Remove face
2436 with the arg former_face_id in advance. Load font for the new
2437 face.
2438 (realize_x_face): Argument changed. Caller changed. For a
2439 multibyte character, share fontset with base_face. For a single
2440 byte character, make a new realized fontset. Don't load a font
2441 here.
2442 (realize_tty_face): Argument changed. Caller changed.
2443 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
2444 (face_at_buffer_position): Don't check multibyte_p for returning
2445 DEFAULT_FACE_ID.
2446 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
2447 FACE_SUITABLE_FOR_CHARSET_P.
2448 (syms_of_xfaces): Remove code for Qx_charset_registry and
2449 Vface_default_registry.
2450
6c4bfdc0
KH
2451 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
2452 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
9111d4b5
KH
2453 (x_per_char_metric): Don't try FONT->default_char. Even if
2454 pcm->width is zero, glyph bits may exist.
2455 (x_encode_char): Always initialize char2b->byte1.
2456 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
2457 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller
2458 changed.
2459 (x_append_glyph): Set glyph->glyph_not_available_p.
2460 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
2461 it->charset. Handle the case that per char metric is not
2462 available. If it->multibyte_p is zero and it->c is a multibyte
2463 character, convert it to a unibyte character.
2464 (struct glyph_string): Delete member `charset'.
2465 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
2466 the case that per char metric is not available correctly.
2467 (x_fill_glyph_string): Handle the case that the specific glyph is
2468 not available correctly.
2469 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
2470 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
2471 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
2472 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
2473 fontset. Don't call FS_LOAD_FONT.
2474
2475 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
2476 (x_create_tip_frame): Likewise.
2477 (Fx_close_connection): Free full_name of font_info.
2478
2479 * fns.c (optimize_sub_char_table): New function.
2480 (Foptimize_char_table): New function.
2481 (syms_of_fns): Defsubr Soptimize_char_table.
2482
b33dd3b0
GM
24832000-03-20 Gerd Moellmann <gerd@gnu.org>
2484
2485 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
2486 only if buffer is displayed in some window.
2487
2488 * xdisp.c (handle_single_display_prop): Initialize local `value'.
2489 (try_window_reusing_current_matrix): Don't call scroll run
2490 function if run's current and desired position are the same;
2491 this prevents cursor flickering.
2492
4e8a9132
SM
24932000-03-19 Stefan Monnier <monnier@cs.yale.edu>
2494
2495 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
2496
2497 * regex.c (RE_STRING_CHAR): New macro.
2498 (GET_CHAR_AFER_2): Remove.
2499 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
2500 (enum re_opcode_t): Remove on_failure_jump_exclusive.
2501 (print_partial_compiled_pattern, re_compile_fastmap)
2502 (re_match_2_internal): Remove on_failure_jump_exclusive.
2503 (regex_compile): Turn optimizable P+ loops into PP*, so that the
2504 optimization only need to work for * (ie. can use of_keep_string_jump).
2505 Remove the special case for .*\n since it is now covered by the general
2506 optimization.
2507 (re_search_2): Don't bother with `room'.
2508 (skip_one_char): New function.
2509 (skip_noops): Simplify since `memory' is not needed any more.
2510 (mutually_exclusive_p): Restructure slightly to use `switch' and
2511 add handling for "all" remaining cases.
2512 (re_match_2_internal): Change on_failure_jump_smart to use
2513 on_failure_keep_string_jump (and redirect the end-of-loop jump)
2514 rather than on_failure_jump_exclusive.
2515
2136fdd4
GM
25162000-03-19 Gerd Moellmann <gerd@gnu.org>
2517
2518 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
2519 number of bits per RGB because it's everywhere used as the depth
2520 of the visual.
2521
2522 * term.c (calculate_costs): Remove code dealing with X frames.
2523
e53ae11c
RS
25242000-03-19 Richard M. Stallman <rms@caffeine.ai.mit.edu>
2525
2526 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
2527
d7b511c4
GM
25282000-03-18 Gerd Moellmann <gerd@gnu.org>
2529
2530 * lread.c (read_integer): Unread the last char not consumed.
2531
16b5d424
GM
25322000-03-17 Gerd Moellmann <gerd@gnu.org>
2533
2534 * xterm.c (x_update_window_cursor): Don't update in frames
d7b511c4 2535 which are in the process of being deleted.
16b5d424 2536
1fa28578
GM
25372000-03-16 Gerd Moellmann <gerd@gnu.org>
2538
83488cce
GM
2539 * Makefile.in (mostlyclean): Add `*.core'.
2540 (clean): Add `bootstrap-emacs'.
2541
1fa28578
GM
2542 * lread.c (read_integer): New function.
2543 (read1): Support read syntax #o, #x, #b, #r.
2544
99633e97
SM
25452000-03-15 Stefan Monnier <monnier@cs.yale.edu>
2546
1fa28578
GM
2547 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
2548 make sure POINTER_TO_OFFSET gives the same value before and after
2549 PREFETCH. Use `dfail' to guarantee "atomic" matching.
99633e97
SM
2550 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
2551 (debug): Now only active if > 0 rather than if != 0.
2552 (DEBUG_*): Update for the new meaning of `debug'.
1fa28578
GM
2553 (print_partial_compiled_pattern): Add missing `succeed' case. Use
2554 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
2555 in `succeed_n', `jump_n' and `set_number_at'.
99633e97
SM
2556 (store_op1, store_op2, insert_op1, insert_op2)
2557 (at_begline_loc_p, at_endline_loc_p): Add prototype.
1fa28578
GM
2558 (group_in_compile_stack): Move to after its arg's types are
2559 declared and add a prototype.
99633e97 2560 (PATFETCH): Define in terms of PATFETCH_RAW.
1fa28578
GM
2561 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)'
2562 wrapper.
99633e97 2563 (QUIT): Redefine as a nop except for NTemacs.
1fa28578
GM
2564 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
2565 indentation of the greedy-op and shy-group code.
99633e97
SM
2566 (at_(beg|end)line_loc_p): Fix argument's types.
2567 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
2568 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
2569 (MATCHING_IN_FIRST_STRING): Remove.
1fa28578
GM
2570 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
2571 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
2572 QUIT unconditionally.
99633e97 2573
699238d9
GM
25742000-03-15 Gerd Moellmann <gerd@gnu.org>
2575
2576 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
2577 a sole completion.
2578
2579 * process.c (send_process): Add a hint that the function
2580 can call Lisp code to its comment.
2581
2582 * lread.c (load_dangerous_libraries): New variable.
2583 (Vbytecomp_version_regexp): New variable.
2584 (safe_to_load_p): New function.
2585 (Fload): Handle files not compiled with Emacs specially.
2586 (syms_of_lread): New Lisp variable load-dangerous-libraries.
2587
34e23e5a
GM
25882000-03-14 Gerd Moellmann <gerd@gnu.org>
2589
9c763cca
GM
2590 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
2591
2592 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
2593 support functions only if HAVE_X11R6_XIM is defined.
2594 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
2595
2596 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
2597
2598 * xfns.c (X_I18N_INHIBITED): Don't define.
2599 (create_frame_xic): Remove conditional compilation on
2600 X_I18N_INHIBITED.
2601 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
2602
2603 * config.in (HAVE_X_I18N): Moved here from xterm.h.
2604 (HAVE_X11R6_XIM): Define.
2605
2606 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
2607
34e23e5a
GM
2608 * xterm.c (x_term_init): Add support for X resource `synchronous'.
2609 If set, call XSynchronize.
2610
66f0296e
SM
26112000-03-13 Stefan Monnier <monnier@cs.yale.edu>
2612
34e23e5a
GM
2613 * regex.c: Declare a new type `re_char' used throughout the code
2614 for the string char type. It's `const unsigned char' to match the
2615 rest of Emacs. Consistently make sure all pointers to strings use
2616 it and make sure all pointers into the pattern use `unsigned
2617 char'.
66f0296e 2618 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
34e23e5a
GM
2619 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
2620 code duplication.
66f0296e
SM
2621
2622 * charset.h (GET_CHAR_AFTER_2): Remove.
2623 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
2624
854a025c
KR
26252000-03-12 Ken Raeburn <raeburn@gnu.org>
2626
2627 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
2628 variable before the invocation of YMF_PASS_LDFLAGS, in case both
2629 of them try to use backquotes.
2630
b9d2c7e2
DL
26312000-03-12 Dave Love <fx@gnu.org>
2632
2633 * unexelf.c: Restore changes of 1999-10-19.
2634 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
2635 fix its type and alignment; copy it from current process.
2636
5e5dff44
GM
26372000-03-12 Gerd Moellmann <gerd@gnu.org>
2638
9b2f3c38
GM
2639 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
2640 has been found. Fix bug not computing timer's predecessor.
2641
427ec082 2642 * fileio.c (Fread_file_name): Handle case that DIR contains a
9172b88d
GM
2643 file name.
2644
e1cff360
GM
2645 * window.c (Fsave_window_excursion): Doc fix.
2646
5e5dff44
GM
2647 * xfns.c (x_defined_color): Rewritten to use
2648 x_allocate_nearest_color.
2649
e411ce4b
EZ
26502000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
2651
2652 * msdos.c (vga_installed): New function, code moved from
2653 dos_set_window_size.
2654 (Qbar, Qcursor_type, outside_cursor): New variables.
2655 (syms_of_msdos): Intern and staticpro them.
2656 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
2657 shape used outside Emacs when called for the first time.
2658 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
2659 cursor shape used outside Emacs.
2660 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
2661 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
2662 type has changed.
2663 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
2664 parameters specify the cursor. Make qreverse a global
2665 variable (renamed to Qreverse).
2666
80460654
GM
26672000-03-09 Gerd Moellmann <gerd@gnu.org>
2668
2669 * fns.c (Fy_or_n_p): Cancel busy-cursor.
2670
95cd4c40
SM
26712000-03-08 Stefan Monnier <monnier@cs.yale.edu>
2672
2673 This is a big redesign of failure-stack and register handling, prompted
2674 by bugs revealed when trying to add shy-groups. Overall, what happened
2675 is that loops are now structured a little differently, groups can be
2676 shy and the code is a little simpler.
2677
2678 * regex.h: Update the copyright.
2679 (RE_SHY_GROUPS): New value.
2680 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
2681 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
2682
80460654
GM
2683 * regex.c (enum re_opcode_t): Remove jump_past_alt,
2684 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
2685 on_failure_jump_(exclusive, loop and smart). Also fix the comment
2686 for (start|stop)_memory since they now only take one argument (the
2687 second has becomes unnecessary).
2688 (print_partial_compiled_pattern): Adjust for changes in
2689 re_opcode_t.
2690 (print_compiled_pattern): Use %ld to printf long ints and flush to
2691 make debugging a little easier.
95cd4c40
SM
2692 (union fail_stack_elt): Make the integer unsigned.
2693 (struct fail_stack_type): Add a `frame' element.
2694 (INIT_FAIL_STACK): Init `frame' as well.
2695 (POP_PATTERN_OP): New macro for re_compile_fastmap.
2696 (DEBUG_PUSH, DEBUG_POP): Remove.
2697 (NUM_REG_ITEMS): Remove.
2698 (NUM_NONREG_ITEMS): Adjust.
80460654
GM
2699 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
2700 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
95cd4c40 2701 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
80460654
GM
2702 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP): New
2703 macros.
2704 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
2705 address pushed is not the destination of the jump but the source
2706 of it instead.
95cd4c40
SM
2707 (NUM_FAILURE_ITEMS): Remove.
2708 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
80460654
GM
2709 registers before the actual failure point). Don't hardcode any
2710 meaning for str==NULL anymore.
95cd4c40 2711 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
80460654
GM
2712 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
2713 Remove.
95cd4c40
SM
2714 (REG_UNSET_VALUE): Use NULL (why not?).
2715 (compile_range): Remove declaration since it doesn't exist.
2716 (struct compile_stack_elt_t): Remove inner_group_offset.
2717 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
2718 (regex_grow_registers): Remove dead code.
2719 (FIXUP_ALT_JUMP): New macro.
80460654
GM
2720 (regex_compile): Add shy-groups Change loops to use
2721 on_failure_jump_smart&jump instead of
2722 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
2723 initial (dummy_failure_)jump. Remove c1_base (looks like unused
2724 variable to me). Use `jump' instead of `jump_past_alt' and don't
2725 bother with push_dummy_failure in alternatives since it is now
2726 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
2727 emacs' for (re)allocating the stack.
2728 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
2729 from loop when bufp->can_be_null rather than jumping to `done'.
2730 Avoid jumping backwards so as to ensure termination. Use
2731 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
2732 backreferences. Remove dead code in handling of `anychar'.
95cd4c40 2733 (skip_noops, mutually_exclusive_p): New functions taken from the
80460654
GM
2734 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
2735 improve mutually_exclusive_p to handle ".+\n".
2736 (lowest_active_reg, highest_active_reg,
2737 NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
2738 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
2739 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
2740 variables. Push register (in `start_memory') on the stack rather
2741 than storing it in old_reg(start|end). Remove the cycle detection
2742 from `stop_memory', replaced by the use of on_failure_jump_loop
2743 for greedy loops. Add code for the new on_failure_jump_<foo>.
2744 Remove ad-hoc code in `on_failure_jump' to push more registers in
2745 the case of a loop. Take out code from `maybe_pop_jump' into
2746 separate functions and adapt it to the semantics of
2747 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
2748 and push_dummy_failure. Remove dummy_failure handling and
2749 handling of `failures to jump to on_failure_jump' (this last one
2750 was already dead code, it seems).
2751 (group_match_null_string_p, alt_match_null_string_p)
2752 (common_op_match_null_string_p): Remove.
95cd4c40 2753
7397acc4
DL
27542000-03-08 Dave Love <fx@gnu.org>
2755
2756 * config.in: Don't depend on __STDC__ for volatile.
2757 Add POINTER_TYPE, PTR, PROTOTYPES.
2758
2759 * hftctl.c, strftime.c: Use PROTOTYPES.
2760 * eval.c (find_handler_clause): Likewise.
2761
2762 * mem-limits.h: Use POINTER_TYPE.
2763
2764 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
2765 (memory_warnings): Declare using POINTER_TYPE.
2766
5e91ff9e
GM
27672000-03-08 Gerd Moellmann <gerd@gnu.org>
2768
feab4fba
GM
2769 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
2770
25edb08f
GM
2771 * xdisp.c (display_echo_area): Temporarily inhibit garbage
2772 collection.
2773
5e91ff9e
GM
2774 * xfns.c: Remove obsolete code in #if 0.
2775 (Fx_focus_frame): New function.
2776
a735b7e1
KH
27772000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
2778
2779 * coding.c (coding_category_name): Add coding-category-utf-8,
2780 coding-category-utf-16-be, coding-category-utf-16-le.
2781 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
2782 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
2783 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
2784 (detect_coding_utf_8): New function.
2785 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
2786 UTF_16_LOW_SURROGATE_P): New macros.
2787 (detect_coding_utf_16): New function
2788 (detect_coding_mask): When priorities are specified, skip any
2789 categories that have `nil' coding-system. Fix bug of returning
2790 wrong mask when PRIORITIES is specified and detect_coding_XXX()
2791 returns a mask not set in PRIORITIES.
2792 (detect_eol_type_in_2_octet_form): New function.
2793 (detect_eol): selects detect_eol_type_XXX to call according to
2794 cooding->category_idx.
2795 (detect_coding_system): Remove `nil' coding-system in the result.
2796 (Fupdate_coding_systems_internal): Update all coding-categories.
2797
2798 * coding.h (CODING_CATEGORY_IDX_UTF_8,
2799 CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE): New
2800 macros.
2801 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY,
2802 CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
2803 CODING_CATEGORY_IDX_UTF_16_LE.
2804 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE,
2805 CODING_CATEGORY_MASK_UTF_16_LE): New macros.
2806 (CODING_CATEGORY_MASK_ANY): Include the above macros.
2807 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
2808
9994cc69
GM
28092000-03-07 Gerd Moellmann <gerd@gnu.org>
2810
e9b4e5ff
GM
2811 * doc.c (Fdocumentation_property): If value is not a string,
2812 and doesn't refer to etc/DOC, evaluate it to obtain a string.
2813
f7daf1e1
GM
2814 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
2815 close the display with XtCloseDisplay. This caused a bus error
2816 on OpenWindows.
2817
9994cc69
GM
2818 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
2819 complete but not unique.
2820
4336c705
GM
28212000-03-06 Gerd Moellmann <gerd@gnu.org>
2822
18bb0684
GM
2823 * process.c (send_process): Remove local variable `procname' that
2824 might become invalid when a GC happens. Instead, access the
2825 process name slot directly.
2826
4336c705
GM
2827 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
2828 orig_height if set.
2829
2830 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
2831 orig_height if set.
2832
515d0d0e
EZ
28332000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
2834
2835 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
2836 glyph matrices have been freed.
2837
100b3cbb
GM
28382000-03-05 Gerd Moellmann <gerd@gnu.org>
2839
50df5e5a 2840 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
6178bc23 2841 (bootstrap-temacs): Set LC_ALL to C like for temacs.
50df5e5a
GM
2842
2843 * xfns.c (QCdata): Moved to xdisp.c.
2844
2845 * xdisp.c (QCdata): Moved here from xfns.c.
2846 (syms_of_xdisp): Initialize QCdata.
2847
2848 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
2849
2850 * window.c (coordinates_in_window): Use
2851 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
2852 FRAME_INTERNAL_BORDER_WIDTH.
2853
100b3cbb 2854 * xdisp.c (try_window_id): Recompute unchanged information if
4336c705 2855 it is obviously invalid.
100b3cbb
GM
2856
2857 * xterm.c (x_term_init): Create a colormap if not using the
2858 default visual.
2859
2860 * xterm.h (select_visual): Change prototype.
2861
2862 * xfns.c (select_visual): Rewritten. Recognize user-specified
2863 visual classes.
2864 (visual_classes): New variable.
2865
64d739c4
GM
28662000-03-04 Gerd Moellmann <gerd@gnu.org>
2867
2868 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
2869 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
2870 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
2871 (x_decode_color): Don't handle allocation of white and black
2872 specially.
2873 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
2874 XtNcolormap resources.
2875 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
2876 (Fx_create_frame): Initialize color members of x_output structure.
2877 (xpm_load): Pass colormap to XPM lib.
2878
2879 * xfaces.c (x_free_colors): Access colormap of frame using
2880 FRAME_X_COLORMAP. Be paranoid about freeing black and white
2881 when default colormap is used.
2882
2883 * xterm.c (x_term_init): Set Colormap member of x_display_info
2884 structure. Copy colormap if resource `privateColormap' is
2885 specified (PseudoColor only).
2886 (x_setup_relief_color): Access colormap of frame using
2887 FRAME_X_COLORMAP.
2888
2889 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
2890 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
2891
c3cee013
JR
28922000-03-04 Jason Rumney <jasonr@gnu.org>
2893
2894 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
2895 other non-platform-specific equivalents.
64d739c4 2896 [WINDOWSNT]: Include w32term.h, fontset.h and define X
c3cee013
JR
2897 specific functions and macros as their w32 equivalents where
2898 non-platform-specifics are not available.
2899 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
2900 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
2901 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
2902 (frame_update_line_height): Use macros to access f->output_data.
2903 (defined_color): Remove FIXME comments; fixed.
2904 (x_face_list_fonts, prepare_face_for_display): Put X specifics
2905 into #ifdef blocks. Add WINDOWSNT blocks.
2906 (Fx_list_fonts): Use macros for accessing font data.
2907 (set_lface_from_font_name): Different default fonts for X and
2908 WINDOWSNT.
2909 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
2910 scalable for backward compatibility.
64d739c4 2911 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
c3cee013
JR
2912 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
2913
64d739c4 2914 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
c3cee013
JR
2915 syms_of_w32faces.
2916
2917 * makefile.nt (w32faces.obj): Remove.
2918 (xfaces.obj): Add.
2919
807cc41c
JR
29202000-03-03 Jason Rumney <jasonr@gnu.org>
2921
2922 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
2923 correct parameters.
2924
0007072a
KR
29252000-03-03 Ken Raeburn <raeburn@gnu.org>
2926
2927 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
2928 standard ELF definitions here if the system header does not.
2929
71a6ba55
GM
29302000-03-03 Gerd Moellmann <gerd@gnu.org>
2931
2932 * xterm.c (PER_CHAR_METRIC): Removed.
2933 (x_per_char_metric_1, x_default_char): New functions.
2934 (x_per_char_metric): If font's default char is invalid, return
2935 metrics of a suitably chosen usable default char.
2936 (x_draw_glyph_string_foreground): If font has an invalid default
64d739c4
GM
2937 char, replace occurrences of unprintable chars with a suitably
2938 chosen usable default char.
71a6ba55 2939
900fa1f1
GM
29402000-03-02 Gerd Moellmann <gerd@gnu.org>
2941
42f55fe0
GM
2942 * xterm.c (note_mouse_highlight): Return quickly if frame's
2943 glyph matrices have been freed.
2944
2945 * dispnew.c (free_glyphs): Block input while freeing matrices.
2946
900fa1f1
GM
2947 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
2948
2949 * xterm.c (x_alloc_lighter_color, x_setup_relief_color): Use
2950 x_free_colors.
2951
2952 * dispextern.h (x_free_colors): Add prototype.
2953
2954 * xfaces.c (x_free_colors): New function.
2955 (unload_color, free_face_colors): Use it.
2956
2f950292
EZ
29572000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
2958
2959 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
2960
2961 * window.c [MSDOS]: Include msdos.h.
2962
54d04320
DL
29632000-03-02 Dave Love <fx@gnu.org>
2964
2965 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
2966
2967 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
2968 set C_OPTIMIZE_SWITCH for gcc.
2969
0ba93ac4
KH
29702000-03-02 Kenichi Handa <handa@etl.go.jp>
2971
2972 * coding.c (coding_save_composition): Be sure to allocate
2973 composition data area in coding even if there's no composition in
2974 the current run.
2975
a2bc11d4
JR
29762000-03-01 Jason Rumney <jasonr@gnu.org>
2977
2978 * w32term.c: Equivalent changes to those made to xterm.c on
2979 2000-02-25 and 2000-02-24.
2980
2981 * w32fns.c: Equivalent changes to those made to xfns.c on
2982 2000-02-25 and 2000-02-21.
2983
2984 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
2985 correct line-end convention is followed.
2986
2987 * w32menu.c [HAVE_BOXES]: Remove #undef.
2988 (single_keymap_panes): Remove code for simulating checkmarks.
2989 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
2990 Remove code for drawing simulated checkmarks.
2991 (w32_menu_show): make unibyte help string correctly.
2992 (add_menu_item): draw standard Windows checkmarks. Draw radio
2993 buttons as radio buttons if possible.
2994
72d19d75
GM
29952000-03-01 Gerd Moellmann <gerd@gnu.org>
2996
2df636f4
GM
2997 * sysdep.c (start_of_text): Don't define this function for NetBSD
2998 with ELF.
2999
427ec082 3000 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
2df636f4
GM
3001 Don't define.
3002 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
3003 (LINKER): Don't undef if __NetBSD__ is defined.
3004
3005 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
3006
3007 * fileio.c [__NetBSD__]: Define `unix'.
3008
72d19d75
GM
3009 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
3010
ed4d0512
GM
30112000-02-29 Gerd Moellmann <gerd@gnu.org>
3012
50b1039f
GM
3013 * atimer.c (start_atimer): Don't abort when timers are stopped.
3014 (append_atimer_lists): New function.
3015 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
3016 arbitrary lists of stopped and running atimers.
3017
ed4d0512
GM
3018 * atimer.c (cancel_atimer): Handle canceling an atimer when
3019 some timers are stopped.
3020
3021 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
3022 after canceling it.
3023
3024 * fns.c (maybe_resize_hash_table): Handle case of new size
3025 coming out as being the same as old size.
3026
387023ee
JR
30272000-02-27 Jason Rumney <jasonr@gnu.org>
3028
3029 * makefile.nt: Add atimer.h to dependencies.
3030 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
3031 * w32console.c: Only disable window system features for dispextern.h
3032 (initialize_w32_display): Build a display info for the console.
3033 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
3034 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
3035 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
3036 as 2 button mice.
3037 * w32gui.h (struct W32FontStruct): Revert last change after change
3038 to xdisp.c.
3039 * w32menu.c (single_submenu): Set up help string.
3040 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
3041 (w32_dialog_show): Set up help string.
3042 * w32term.c (w32_display_info_for_display): Remove unused function.
3043 (w32_draw_bitmap): Use pre-built bitmaps.
3044 (w32_initialize_display_info): New function to initialize parts of
3045 display info that are common to both GUI and console frames.
3046 (w32_term_init): Use w32_initialize_display_info. Do not set
3047 Vw32_num_mouse_buttons here, as it is not called for console
3048 frames. Build bitmaps for indicating truncated lines etc.
3049 (x_delete_display): Destroy pre-built bitmaps.
3050 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
3051 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
3052
4516715a
DL
30532000-02-27 Dave Love <fx@gnu.org>
3054
3055 * lisp.h: Add a bunch of prototypes.
3056
171ca836
KH
30572000-02-26 Kenichi Handa <handa@etl.go.jp>
3058
3059 * keyboard.c (read_char): Set `usec' correctly.
3060
4013921d
KH
30612000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
3062
3063 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
3064 `lambda', set reg[RRR] to the map index.
3065 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
3066 reg[RRR] to 0. Otherwise, set it to -1.
3067
9244a058
GM
30682000-02-25 Gerd Moellmann <gerd@gnu.org>
3069
2df636f4 3070 * emacs.c (main): Remove code snippet commented out with `//'.
9244a058 3071
f43d79c1 30722000-02-25 Richard M. Stallman <rms@caffeine.ai.mit.edu>
427ec082 3073
f43d79c1
GM
3074 * fileio.c (Ffile_symlink_p): If result starts with a `/'
3075 and contains a `:', prepend `/:'.
3076
3077 * window.c (select_window_1): If selected_window is nil,
3078 don't "swap out" the buffer's point.
3079 (Fset_window_configuration): Set selected_window to nil
3080 before calling Fselect_window.
3081 (unshow_buffer): Don't set point in buffer from window's point
3082 if another more recently selected window also shows the buffer.
3083
bed0c171
GM
30842000-02-25 Gerd Moellmann <gerd@gnu.org>
3085
449c3c52
GM
3086 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
3087
f5b58615
GM
3088 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
3089 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
3090 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay): New
3091 variables.
3092 (DEFAULT_BUSY_CURSOR_DELAY): New define.
3093 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
3094 (hide_busy_cursor): New functions.
3095 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
3096
3097 * minibuf.c (read_minibuf): Cancel busy-cursor.
3098
3099 * keyboard.c (command_loop_1): Call start_busy_cursor before
3100 Fcommand_execute and cancel_busy_cursor after it.
3101 (timer_check): Remove busy-cursor code.
3102 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
3103 cursor timer.
3104
3105 * process.c (wait_reading_process_input): Remove busy-cursor code.
3106
3107 * eval.c (Fsignal): Call cancel_busy_cursor instead of
3108 Fx_hide_busy_cursor.
3109
3110 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
3111 Remove prototyoes.
3112 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
3113
3114 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
3115
3116 * xterm.c (XTread_socket): Remove busy-cursor code.
3117
4eb8436f
GM
3118 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
3119 (build_frame_matrix_from_leaf_window): Put code handling
3120 glyph row's not being a slice of a frame row in #if 0.
3121 (sync_window_with_frame_matrix_rows): New function.
3122 (frame_row_to_window): New function.
3123 (mirror_line_dance): Handle copies between windows.
3124
3cb65b0e
GM
3125 * lread.c (Fload): Use `xfree' instead of `free'.
3126 (init_obarray): Use `xmalloc' instead of `malloc'.
3127
bed0c171
GM
3128 * window.c (Fset_window_buffer): Set WINDOW to the window
3129 after decoding.
2add4349
GM
3130 (coordinates_in_window): Take frame's internal border width
3131 into account.
bed0c171 3132
42088c12
GM
31332000-02-24 Gerd Moellmann <gerd@gnu.org>
3134
3135 * xterm.c (x_display_and_set_cursor): Display cursor of
3136 non-selected windows depending on the setting of
3137 cursor_in_non_selected_windows.
3138
3139 * xdisp.c (cursor_in_non_selected_windows): New variable.
3140 (syms_of_xdisp): DEFVAR_BOOL it.
3141
d1e103b2
GM
31422000-02-23 Gerd Moellmann <gerd@gnu.org>
3143
723e779c
GM
3144 * data.c (Fstring_to_number): If number is greater than what
3145 fits into an integer, return a float.
3146
d1e103b2
GM
3147 * eval.c (specbind): Remove references to
3148 keyword_symbols_constant_flag.
3149
3150 * data.c (keyword_symbols_constant_flag): Removed.
3151 (Fmakunbound, set_internal, syms_of_data): Remove references to
3152 keyword_symbols_constant_flag.
3153
3154 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
3155
214f877f
KH
31562000-02-23 Kenichi Handa <handa@etl.go.jp>
3157
3158 * syntax.c (multibyte_syntax_as_symbol): New variable.
3159 (syms_of_syntax): Declare it as a Lisp variable.
3160 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
3161 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
3162 nonzero, treat all multibyte characters as symbol.
42088c12 3163 (init_syntax_once): Give syntax `word' to all multibyte
214f877f
KH
3164 characters.
3165
130adcb7
EZ
31662000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
3167
3cb65b0e 3168 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
130adcb7
EZ
3169 a deleted frame.
3170
17cbbf95
GM
31712000-02-21 Gerd Moellmann <gerd@gnu.org>
3172
3173 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
3174
3175 * xfns.c (x_window_to_frame, x_any_window_to_frame)
3176 (x_non_menubar_window_to_frame): Check the busy-cursor window.
3177
beb0bc36
DL
31782000-02-21 Dave Love <fx@gnu.org>
3179
3180 * frame.c (Vmouse_position_function): New variable.
3181 (Fmouse_position): Use it.
3182 (syms_of_frame): Install it.
3183
3184 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
3185
1d92afcd
GM
31862000-02-20 Gerd Moellmann <gerd@gnu.org>
3187
3188 * fileio.c (Finsert_file_contents): Unbind the binding of
3189 standard-output done by temp_output_buffer_setup.
329eed9f
GM
3190
3191 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
3192 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
3193 (specbind, unbind_to): Handle most common case of non-constant
3194 symbol with trivial value specially.
3195
3196 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
3197
2d06696f
RS
31982000-02-20 Richard M. Stallman <rms@caffeine.ai.mit.edu>
3199
3200 * data.c (Fmake_variable_buffer_local): Doc fix.
3201 Init found_for_buffer to 0.
3202 (Fmake_variable_frame_local): If the variable has already
3203 been buffer-local, set the check_frame field.
3204
1d4311c3
EZ
32052000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
3206
3207 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
3208 produced for CODING_MODE_LAST_BLOCK requires.
3209
2dc95ddd
DL
32102000-02-18 Dave Love <fx@gnu.org>
3211
3212 * keyboard.c (echo_keystrokes): Remove declaration.
3213 (Vecho_keystrokes) New variable.
3214 (read_char, record_menu_key, read_key_sequence): Use it to allow
3215 use of float value.
3216 (syms_of_keyboard): Change Vecho_keystrokes declaration.
3217
3218 * lread.c: Undef feature selection macros before defining.
3219
f0930f35
GM
32202000-02-18 Gerd Moellmann <gerd@gnu.org>
3221
3222 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
3223 for symbols other than the symbol in question.
3224
e3d4de90
DL
32252000-02-17 Dave Love <fx@gnu.org>
3226
3227 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
3228
0b378936
GM
32292000-02-17 Gerd Moellmann <gerd@gnu.org>
3230
d621caf7
GM
3231 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
3232
0b378936
GM
3233 * alloc.c (enum mem_type): Compile unconditionally.
3234
3b451f74
EZ
32352000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
3236
3237 * xfaces.c (tty_defined_color): Don't return faulire indication
3238 for unspecified-fg and unspecified-bg pseudo-colors.
3239
10689a01
GM
32402000-02-17 Gerd Moellmann <gerd@gnu.org>
3241
1216f5e4
GM
3242 * alloc.c (mark_object): Don't mark symbol names in pure space.
3243 (gc_sweep): Don't unmark symbol names in pure space.
3244
3245 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
3246 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
3247 [GC_MARK_STACK]: New defines.
427ec082 3248 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
1216f5e4
GM
3249 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
3250
3251 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
3252
3253 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
3254 allocate_buffer instead of xmalloc.
3255
3256 * alloc.c (toplevel): Include setjmp.h.
3257 (PURE_POINTER_P): New define.
3258 (enum mem_type) [GC_MARK_STACK]: New enumeration.
3259 (Vdead) [GC_MARK_STACK]: New variable.
3260 (lisp_malloc): Add parameter TYPE, call mem_insert if
3261 GC_MARK_STACK is defined.
3262 (allocate_buffer): New function.
427ec082 3263 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
1216f5e4
GM
3264 (free_float) [GC_MARK_STACK]: Set type to Vdead.
3265 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
3266 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
3267 (MEM_NIL) [GC_MARK_STACK]: New define.
3268 (struct mem_node) [GC_MARK_STACK]: New structure.
3269 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
3270 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
3271 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
3272 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
3273 (mark_stack) [GC_MARK_STACK]: New functions.
3274 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
3275 (clear_marks): Removed.
3276 (gc_sweep): Set free conses' car, free floats' type, free
3277 symbols' function to Vdead. Use lisp_free to free buffers.
3278 (init_alloc_once): Initialize Vdead.
3279 (survives_gc_p): Return non-zero for pure objects.
3280
3281 * alloc.c: Add comments throughout the file.
3282
2503c8b1
GM
3283 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
3284 that unblocks alarms.
3285
8389e1e2
GM
3286 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
3287 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
3288 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
3289
10689a01 3290 * frame.c (make_frame): Set frame initiallly to `garbaged'.
427ec082 3291
bfc17d18
KH
32922000-02-17 Kenichi Handa <handa@etl.go.jp>
3293
4a09dee0
KH
3294 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
3295 avoid infinite error signaling. Allocate sufficient memory for
3296 eol_str in the case that eoltype is Lisp_Int.
bfc17d18 3297
2b927d02
SM
32982000-02-17 Stefan Monnier <monnier@cs.yale.edu>
3299
3300 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
3301 depends on the previous behavior.
3302
b49cb764
GM
33032000-02-16 Gerd Moellmann <gerd@gnu.org>
3304
3305 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
3306
99e95407
GM
33072000-02-15 Gerd Moellmann <gerd@gnu.org>
3308
3309 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
3310
3311 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
b49cb764 3312 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
99e95407
GM
3313 write(2).
3314
6ffd3cf7
RS
33152000-02-15 Richard M. Stallman <rms@gnu.org>
3316
3317 * data.c (set_internal): Don't make variable buffer-local
3318 if within a let-binding for the same buffer.
3319 (let_shadows_buffer_binding_p): New function.
3320
3321 * eval.c (specbind): For buffer-local value,
3322 record the current buffer also.
3323 (unbind_to): Cope with that change.
3324
cad53475
GM
33252000-02-15 Gerd Moellmann <gerd@gnu.org>
3326
3327 * window.c (Fsave_window_excursion): Doc fix.
3328
1aa963c8
SM
33292000-02-15 Stefan Monnier <monnier@cs.yale.edu>
3330
3331 * syntax.c (back_comment): Make sure we only consider comment-starters
3332 of the relevant style and return -1 in case of a failure to find the
3333 beginning of the comment.
3334 (Fforward_comment): If back_comment fails, go back to the position just
3335 after the comment-end.
3336 (scan_lists): Add comment describing a very minor bug.
3337
b9b84fd3
SM
33382000-02-14 Stefan Monnier <monnier@cs.yale.edu>
3339
3340 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
3341 `completion-regexp-list' in the docstring.
3342
3a28db80
DL
33432000-02-14 Dave Love <fx@gnu.org>
3344
3345 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
3346
fb4a568d
SM
33472000-02-14 Stefan Monnier <monnier@cs.yale.edu>
3348
3349 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
3350 to Emacs' syntax. Also fix the comment about set/not-set meanings
3351 since Emacs syntax is not the value 0 any more.
3352 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
3353 since it's now part of RE_SYNTAX_EMACS.
3354
1063ebb5
DL
33552000-02-12 Dave Love <fx@gnu.org>
3356
3357 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on
3358 Alpha.
3359
fb07a302
GM
33602000-02-12 Gerd Moellmann <gerd@gnu.org>
3361
3362 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
3363
aaf2320c
DL
33642000-02-12 Dave Love <fx@gnu.org>
3365
3366 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
3367
3368 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
fb07a302
GM
3369 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
3370 * s/hpux.h: Don't define HAVE_VFORK.
aaf2320c
DL
3371
3372 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
3373
3374 * s/nextstep.h: Don't define HAVE_ALLOCA.
3375
3376 * config.in: Add vfork bits.
3377
eedf8bde
GM
33782000-02-12 Gerd Moellmann <gerd@gnu.org>
3379
3380 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
3381 unwind function to undo the effect of stopping atimers.
3382
3383 * keyboard.c (bind_polling_period): Stop all timers except
3384 poll_timer.
3385
3386 * atimer.c (stopped_atimers): New variable.
3387 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
3388 New functions.
3389
3390 * atimer.h (stop_other_atimers, run_all_atimers)
3391 (unwind_stop_other_atimers): Add function prototypes.
427ec082 3392
eedf8bde
GM
3393 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
3394
8476c2f8
KR
33952000-02-11 Ken Raeburn <raeburn@gnu.org>
3396
3397 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
3398 library may depend on jpeg.
3399 (atimer.o): Depends on atimer.c.
3400
0e85e4a3
KH
34012000-02-11 Kenichi Handa <handa@etl.go.jp>
3402
3403 * insdel.c (del_range_1): Call update_compositions.
3404 (del_range_both): Call update_compositions just once..
3405
97fa0cc8
DL
34062000-02-10 Dave Love <fx@gnu.org>
3407
3408 * xfns.c (create_frame_xic): Fix initialization of automatic
3409 aggregates for pcc.
3410
25566a3c
KH
34112000-02-09 Kenichi Handa <handa@etl.go.jp>
3412
3413 * ccl.c (CCL_MAKE_CHAR): New macro.
3414 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
3415 registers by CCL_MAKE_CHAR before calling translate_char.
3416 <CCL_TranslateCharacterConstTbl> Likewise.
3417
69da54ba
DL
34182000-02-08 Dave Love <fx@gnu.org>
3419
3420 * lread.c (__EXTENSIONS__): Define.
3421
f7136ee8
GM
34222000-02-08 Gerd Moellmann <gerd@gnu.org>
3423
3424 * puresize.h (BASE_PURESIZE): Increase to 650000.
3425
7768790b
EZ
34262000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
3427
3428 * msdos.c (XMenuActivate): Turn off the cursor after displaying
3429 the help message.
3430
38fd211b
EZ
34312000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
3432
3433 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
3434 md, mh, mb, mr, and me to the fake termcap entry.
3435
66e4690f
KR
34362000-02-06 Ken Raeburn <raeburn@gnu.org>
3437
3438 * sound.c (sound_cleanup): Don't call device close routine if the
3439 function pointer is null.
3440
a75dfea0
AI
34412000-02-06 Andrew Innes <andrewi@gnu.org>
3442
3443 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
3444 around image definitions and prototypes.
3445 (gamma_correct) [WINDOWSNT]: New prototype.
3446
3447 * w32term.c (x_make_frame_visible): Replace call to
3448 input_poll_signal with poll_for_input.
3449
3450 * window.c [WINDOWSNT]: Include w32term.h.
3451
3452 * xdisp.c [WINDOWSNT]: Include w32term.h.
3453
3454 * makefile.nt: Add dependencies on w32gui.h.
3455 (OBJ1): Include atimer.obj.
3456 ($(BLD)\atimer.obj): New dependency rule.
3457
3458 * w32.c (sigmask): New function (does nothing).
3459 (sigunblock): Ditto.
3460
3461 * frame.c [WINDOWSNT]: Include w32term.h.
3462
3463 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
3464
3465 * lread.c (syms_of_lread): Fix literal newlines.
3466
3467 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
3468 the string constant limit (2048 bytes) in MSVC.
3469 (main): Ditto.
3470
59ddecde
GM
34712000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
3472
3473 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit
3474 area.
3475 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
3476 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
3477 dispatch the event.
3478
07590973
DL
34792000-02-04 Dave Love <fx@gnu.org>
3480
3481 * fileio.c: Remove some unused vars.
3482 (_GNU_SOURCE): Define (for euidaccess).
3483
3484 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
3485
3486 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
3487 gcpro1, gcpro2.
3488 (read_minibuf): Deal with allow_props correctly.
3489
649351f9
EZ
34902000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
3491
3492 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
3493
66e4690f 34942000-02-03 Ken Raeburn <raeburn@gnu.org>
f1b9c7c1
KR
3495
3496 * search.c (compile_pattern): If a cache entry has a nil regexp,
3497 fill in that entry instead of clobbering a previously cached
3498 string regexp.
3499
66e4690f 35002000-02-02 Ken Raeburn <raeburn@gnu.org>
15c9cf81
KR
3501
3502 * puresize.h (BASE_PURESIZE): Increase to 610000.
3503
d240a249
GM
35042000-02-02 Gerd Moellmann <gerd@gnu.org>
3505
3506 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
3507 can GC.
3508
ca91fb26
KH
35092000-02-02 Kenichi Handa <handa@etl.go.jp>
3510
25660570
KH
3511 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
3512 instead of incrementing ic directly.
3513 <CCL_WriteExprConst> Likewise.
3514 <ccl_set_expr>: Set ic to jump_address.
3515
ca91fb26
KH
3516 * fileio.c (e_write): Fix the handling of
3517 CODING_FINISH_INSUFFICIENT_SRC.
3518
2ede9689
DL
35192000-02-01 Dave Love <fx@gnu.org>
3520
3521 * editfns.c (Fpropertize): Doc fix.
3522
3523 * process.c (Fstart_process): Doc fix.
3524
3525 * eval.c: Fix various doc strings not to duplicate information
3526 from help-manyarg-func-alist.
3527
3528 * window.c (Fset_window_margins): Don't make interactive. Doc
3529 fix.
3530
3531 * doc.c (Vhelp_manyarg_func_alist): New variable.
3532 (Fdocumentation): Use it.
3533 (syms_of_doc): Define it.
3534
b6680a0e
GM
35352000-01-31 Gerd Moellmann <gerd@gnu.org>
3536
2cb750ba
GM
3537 * xterm.c (xim_open_dpy): Remove unused local variable.
3538
74e9213b
GM
3539 * emacs.c (USAGE): Use term `display options' instead of `X
3540 options'.
3541
3542 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
3543 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
3544
b6680a0e
GM
3545 * fns.c (sweep_weak_table): New function.
3546 (sweep_weak_hash_tables): Use it. Keep on marking until there
3547 is no more change.
3548
994c5afe
GM
35492000-01-30 Gerd Moellmann <gerd@gnu.org>
3550
3551 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
3552 that XTread_socket does not crash by trying to call XNoOp on a
3553 closed display.
427ec082 3554
f00276e3
JR
35552000-01-30 Jason Rumney <jasonr@gnu.org>
3556
3557 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
3558 Change selected_frame to SELECTED_FRAME ().
3559 (w32_console_mouse_position): Remove #ifndef MULE from around
3560 `insist' parameter.
3561
3562 * makefile.nt: Remove dosfns.obj.
3563
3564 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
3565
3566 * w32fns.c (w32_defined_color): Check for valid frame before
3567 applying gamma correction. Eliminate dependency on frame elsewhere.
3568 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
3569 (w32_to_x_font): Use resx and resy not height_in and width_in.
3570 (x_to_w32_font): Doc fix.
3571 (xlfd_strip_height): New function to strip and return font height.
3572 (w32_font_match): Compare height separately from rest of xlfd
3573 spec, using xlfd_strip_height.
3574
3575 * w32term.c (w32_term_init): Swap resx and height_in, resy and
3576 width_in. Use w32_defined_color in place of defined_color.
3577
3578 * w32faces.c: Merge more of DOS and X specifics in preparation for
3579 merge with xfaces.c.
3580 (defined_color): Remove FIXME comment.
3581 (tty_color_name): Provide w32-specific function.
3582 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
3583
3584 * w32console.c (turn_on_face, turn_off_face): Removed.
3585 (w32_face_attributes): New function.
3586 (Global_variables): Reduce scope where possible.
3587 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
3588 fill attribute.
3589 (hl_mode): Don't modify text attributes.
3590 (write_glyphs): Don't do anything if len <= 0. Use
3591 w32_face_attributes to get attributes for drawing. Write
3592 terminating codes using char_attr_normal.
3593 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
3594 (update_begin, update_end): Likewise.
3595 (vga_stdcolor_name): New function.
3596 (initialize_w32_display): Remove char_attr_reverse and char_attr.
3597 (Fset_screen_color): Remove char_attr_reverse.
3598
b08e8bb2
GM
35992000-01-29 Gerd Moellmann <gerd@gnu.org>
3600
3601 * xfns.c (xic_set_preeditarea): Take window parameter and
3602 window-relative pixel-positions.
3603
3604 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
3605 is its frame's selected window.
3606 (xim_instantiate_callback): Likewise.
3607
3608 * xfns.c (x_create_im): Removed.
3609 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
3610 (supported_xim_styles): Renamed from supported_styles.
3611 (best_xim_style): Renamed from best_style.
3612 (create_frame_xic): Renamed from xic_create_frame.
3613 (free_frame_xic): Renamed from xic_destroy_frame.
427ec082 3614
b08e8bb2
GM
36152000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
3616
3617 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
3618 our frames, call XFilterEvent with 2nd parameter `None'.
3619 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
3620 returning XBufferOverflow.
3621 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status
3622 area.
3623 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
3624 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
3625 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
3626 (xim_initialize, xim_close)
3627 [HAVE_X_I18N && HAVE_X11R6]: New functions.
3628 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
3629 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
3630 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
3631
3632 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
3633 and `xim_styles'.
3634 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
3635 `xic_style' and `xic_xfs'.
3636 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
3637 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
3638 (FRAME_XIM): Removed.
3639
3640 * xfns.c (supported_styles): New variable.
3641 (DEFAULT_STYLE, DEFAULT_FONT): New macros
3642 (xic_create_xfontset, best_style, xic_create_frame)
3643 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
3644 (xic_set_xfontset): New functions.
3645
142e109c
DL
36462000-01-28 Dave Love <fx@gnu.org>
3647
3648 * s/irix6-5.h: Revert last change after change to irix5-0.h.
3649
3650 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
3651
b02786f9
GM
36522000-01-28 Gerd Moellmann <gerd@gnu.org>
3653
d060bc9f
GM
3654 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
3655 for *scratch* if it already existed.
3656
b02786f9
GM
3657 * emacs.c (USAGE): New macro.
3658 (main): Use it to display usage information.
3659
2c52d7e4
EZ
36602000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
3661
3662 Support for the menu-help feature:
3663
3664 * msdos.h: Change prototypes of XMenuAddSelection and
3665 XMenuActivate.
3666
3667 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
3668 part of the line to the termscript file.
3669 (IT_clear_to_end): Clear the entire line, not just its beginning.
3670 (menu_help_message, prev_menu_help_message): New variables.
3671 (IT_menu_make_room): Make room for the help_text member.
3672 (IT_menu_display): New argument disp_help; all callers changed.
3673 If disp_help is non-zero, store the help text of the active menu
3674 item in menu_help_message.
3675 (XMenuAddPane): Initialize the help_text member to NULL.
3676 (XMenuAddSelection): New argument help_text. Store it in the
3677 XMenu structure.
3678 (XMenuActivate): New argument help_callback. If the value of
3679 menu_help_message has changed since the last time, display the
3680 menu help message text while waiting for the mouse to move. Clear
3681 the echo area before exiting.
3682 (XMenuDestroy): Free the help_text member.
3683
ffe0bcd1
GM
36842000-01-27 Gerd Moellmann <gerd@gnu.org>
3685
3686 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
3687 XMenuAddSelection. Pass help callback to XMenuActivate.
3688 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
3689
50dbd23f
EZ
36902000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
3691
3692 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
3693 and EMACS_SET_USECS.
3694
f5941bf8
GM
36952000-01-26 Dave Love <fx@gnu.org>
3696
6c67ddee
DL
3697 * editfns.c (Fchar_after, Fchar_before): Doc fix.
3698
f5941bf8
GM
3699 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
3700 an error may be signalled.
3701
9e49c990
GM
37022000-01-26 Gerd Moellmann <gerd@gnu.org>
3703
fc3cb460
GM
3704 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
3705 LD_SWITCH_SYSTEM inherited from irix5-0.h.
3706
9e49c990
GM
3707 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
3708
d0c037d8
GM
37092000-01-25 Gerd Moellmann <gerd@gnu.org>
3710
3711 * charset.c (Fstring): If there is a multibyte char among
3712 the args, always return a multibyte string.
3713
e12489f9
GM
37142000-01-25 Gerd Moellmann <gerd@gnu.org>
3715
3716 * sysdep.c (sys_select): Turn atimers off and on instead of
3717 recording and restoring old alarm handler
3718
3719 * process.c (toplevel): Include atimer.h.
3720 (create_process_1): Rewritten.
3721 (create_process): Use atimers instead of alarm.
3722 (wait_reading_process_input) [hpux]: Turn atimers off instead
3723 of turning off SIGALRM.
3724 (wait_reading_process_input): Turn off atimers instead off
3725 calling stop_polling.
3726
3727 * emacs.c (main): Call init_atimer.
3728
3729 * keyboard.c (toplevel): Include systime.h and atimer.h.
3730 (polling_for_input): Removed because unused.
3731 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
3732 (poll_timer): New variable.
3733 (poll_for_input, poll_for_input_1): New functions.
3734 (start_polling, stop_polling): Rewritten.
3735
3736 * keyboard.h (polling_for_input): Removed.
427ec082 3737
e12489f9
GM
3738 * atimer.h, atimer.c: New files.
3739
3740 * Makefile.in (obj): Add atimer.o.
3741 (atimer.o): New target.
3742
3743 * blockinput.h (pending_atimers): Add extern declaration.
3744 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
3745
3746 * lisp.h (popup_activated_flag): Add extern declaration.
3747
3748 * xmenu.c (popup_activated_flag): Make externally visible.
3749 (popup_activate_callback) [USE_MOTIF]: Increment
3750 popup_activated_flag.
3751 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
3752
3753 * xterm.c (toplevel): Include atimer.h.
3754 (toolkit_scroll_bar_interaction): New variable.
3755 (Fxt_process_timeouts): Removed.
3756 (x_process_timeouts): New function.
3757 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
3758 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
3759 (x_make_frame_visible): Call poll_for_input_1 instead of
3760 input_poll_signal. Don't call alarm.
3761 (x_initialize): Install timer calling x_process_timeouts.
427ec082 3762
1e5279b9
DL
37632000-01-24 Dave Love <fx@gnu.org>
3764
6c67ddee 3765 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
1e5279b9
DL
3766 Don't use -cckr -- apparently not now necessary.
3767
edf6aeb8
EZ
37682000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
3769
3770 * msdos.c (IT_menu_display): Truncate long menu lines at the right
3771 screen boundary.
3772
9badad41
JR
37732000-01-23 Jason Rumney <jasonr@gnu.org>
3774
3775 * w32fns.c (w32_defined_color): Apply gamma correction before
3776 trying to map to the palette.
3777 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
3778 to w32_clear_rect.
3779
3780 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
3781 here. Callers changed to always pass real device context.
3782 (w32_draw_bitmap): Likewise.
3783 (w32_get_glyph_overhangs): Likewise.
3784 (w32_draw_box_rect): Make use of s->hdc rather than getting a new
3785 one.
3786 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
3787 pfnSetScrollInfo and SetScrollRange.
3788 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
3789 back into MULE characters after decoding them.
3790 (x_get_glyph_face_and_encoding): Likewise.
3791 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
3792 GetCharABCWidthsW fails, since this is defined on Windows 9x.
3793 (x_produce_glyphs): Calculate per char metrics for a character
3794 that we know exists in default font when font_not_found_p is true.
3795
63bd786b
JR
37962000-01-22 Jason Rumney <jasonr@gnu.org>
3797
3798 * makefile.nt (intervals.obj, composite.obj): New modules.
3799 (composite.h): Added as dependency where appropriate.
3800
3801 * w32gui.h (XGCValue): New struct for emulating X GCs.
3802
3803 * w32term.h (XCharStruct): New struct for emulating X.
3804
3805 * w32console.c (turn_on_face, turn_off_face): New functions.
3806 (change_line_highlight): New prototype for new redisplay.
3807 (write_glyphs): Support multibyte text. Support faces.
3808
3809 * w32faces.c: Complete rewrite for new redisplay based on new
3810 xfaces.c.
3811
3812 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
3813 throughout. struct frame * in place of FRAME_PTR.
3814 Skeleton support for images, toolbars, tooltips from xfns.c.
3815 (Fx_create_frame): Use system default for default scroll bar
3816 width.
3817 (w32_get_arg): Renamed from x_get_arg.
3818 (Fx_file_dialog): New function.
3819 (w32_list_fonts): Check cache before asking system.
3820 (Vw32_enable_synthesized_fonts): New variable.
3821 (Vw32_enable_italics): Obsolete, removed.
3822
3823 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
3824 Use SELECTED_FRAME macro.
3825
3826 * w32menu.c: Add skeleton support for help strings on menus.
3827 (add_menu_item): Native checkbox and radio support added, but not
3828 yet enabled due to bugs.
3829 (push_menu_item): Add parameters type, selection and help.
3830 Callers updated.
3831 Formatting changes to reduce unnecessary diffs with xmenu.c.
3832
3833 * w32select.c (Fw32_set_clipboard_data): Update call to
3834 find_charset_in_str.
3835
3836 * w32term.c: Complete rewrite for new redisplay based on new
3837 xterm.c with necessary sections merged back in from old w32term.c.
3838
6ffd3cf7 38392000-01-21 Richard M. Stallman <rms@gnu.org>
b50c9214
RS
3840
3841 * data.c (set_internal): Further fix in same criterion.
3842
6ffd3cf7 38432000-01-20 Richard M. Stallman <rms@gnu.org>
8cc95642
RS
3844
3845 * data.c (set_internal): Fix the criteria for whether
3846 to swap out the old cached binding.
3847
60af03f1
DL
38482000-01-19 Dave Love <fx@gnu.org>
3849
3850 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
3851
f9be074f
KH
38522000-01-18 Kenichi Handa <handa@etl.go.jp>
3853
3854 * regex.c (re_compile_fastmap): While checking a range table for
3855 `charset', skip flag bits for a character class correctly.
3856
52b8dbf9
GM
38572000-01-17 Gerd Moellmann <gerd@gnu.org>
3858
d36100c9
GM
3859 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
3860
52b8dbf9
GM
3861 * xfns.c (x_window): Call lw_create_widget with new parameter
3862 list.
3863
3864 * widget.c (EmacsFrameSetCharSize): Change size of children first
3865 because of problems with main window geometry management under
3866 Lesstif.
3867
3868 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
3869 MENU_ITEMS_ITEM_.*.
3870 (MENU_ITEMS_ITEM_HELP): New enumerator.
3871 (push_menu_item): Add parameter HELP. Record help in menu_items.
3872 (single_menu_item, single_submenu, list_of_items): Call
3873 push_menu_item with new parameter.
3874 (single_submenu): Set help string in widget value.
3875 (menu_highlight_callback): New function.
3876 (set_frame_menubar): Call lw_create_widget with new
3877 parameter list.
3878 (xmenu_show, xdialog_show): Ditto.
3879
3139018f
GM
38802000-01-13 Gerd Moellmann <gerd@gnu.org>
3881
3882 * sound.c (Fplay_sound): Improve doc string.
3883
83c8f461
RS
38842000-01-11 Richard M. Stallman <rms@gnu.org>
3885
3886 * lisp.h (set_internal): Enter the new arg.
3887
3888 * eval.c (specbind): Record buffer-local variables specially,
3889 indicating which buffer's binding was saved.
3890 (unbind_to): Restore buffer-local variables specially
3891 in the proper buffer.
3892
3893 * data.c (set_internal): New arg BUF.
427ec082 3894
83c8f461
RS
3895 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
3896 * data.c (Fset): Pass new arg to set_internal.
3897 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
427ec082 3898
1fab1775
GM
38992000-01-11 Gerd Moellmann <gerd@gnu.org>
3900
3901 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload,
3902 xprintsym.
3903
83c8f461 39042000-01-11 Richard M. Stallman <rms@gnu.org>
6f59462e
RS
3905
3906 * minibuf.c (Ftry_completion): Doc fix.
3907
7a85e4df
GM
39082000-01-11 Gerd Moellmann <gerd@gnu.org>
3909
3910 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
3911 vector, too.
3912
a970dae4
AS
39132000-01-11 Andreas Schwab <schwab@suse.de>
3914
3915 * coding.c (code_convert_region): Initialize total_skip.
3916
c65d14ee
DL
39172000-01-08 Dave Love <fx@gnu.org>
3918
3919 * eval.c (Fuser_variable_p): Check customizability too.
3920
834938d2
GM
39212000-01-07 Gerd Moellmann <gerd@gnu.org>
3922
3923 * minibuf.c (Fcompleting_read): Doc fix.
3924
e0303cd6
GM
39252000-01-05 Gerd Moellmann <gerd@gnu.org>
3926
8a26744b
GM
3927 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
3928 -L /usr/local/lib.
3929
e0303cd6
GM
3930 * xfns.c (x_create_im): New function to set IM and IC of a frame.
3931 Check that input style is supported before trying to create an
3932 IC for it.
3933 (x_window): Call x_create_im.
427ec082 3934
2e471eb5
GM
39352000-01-04 Gerd Moellmann <gerd@gnu.org>
3936
560a7bd2
GM
3937 * xfns.c (current_gif_memory_src): New variable.
3938 (gif_load): Record the address of the current memory source
3939 in current_gif_memory_src.
3940 (gif_read_from_memory): Use current_gif_memory_src.
3941
f9ee84a3
GM
3942 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
3943 macros statement form.
3944
d1299cde
GM
3945 * sound.c (struct sound): Renamed from struct sound_file.
3946 (struct sound): Add members `data' and `header_size'.
3947 (enum sound_attr): Add SOUND_DATA.
3948 (current_sound, current_sound_device): Variables renamed from
3949 sound_file and sound_device.
3950 (parse_sound): Parse :data.
3951 (parse_sound): Handle sound data in strings.
3952 (find_sound_type): Function renamed from find_sound_file_type.
427ec082 3953 (wav_init, au_init): Fail if sound's header_size is smaller than
d1299cde
GM
3954 needed header size.
3955 (wav_play, au_play): Play sounds from string data.
3956
2e471eb5
GM
3957 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
3958
3959 * lisp.h: Add prototype for allocate_string_data.
3960
3961 * alloc.c (Fgarbage_collect): Return number of live and free
3962 strings.
3963
3964 * alloc.c (mark_buffer): Remove code in #if 0.
3965 (gc_sweep): Ditto.
3966 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
3967 (strings_consed): New variable.
3968 (allocate_string): Set it.
3969 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
3970 (Fmemory_use_counts): Return strings_consed. Use Flist.
3971
3972 * alloc.c: General cleanup in comments etc. Remove conditional
3973 compilation for `standalone'.
3974
3975 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
3976
3977 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
3978 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
3979 (DONT_COPY_FLAG): Removed.
3980 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
3981 (struct sdata, struct sblock): New
3982 (struct string_block): Rewritten.
3983 (STRINGS_IN_STRING_BLOCK): New macro.
3984 (oldest_sblock, current_sblock, total_strings, total_free_strings)
3985 (large_sblocks, string_blocks, string_free_list): New variables.
3986 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
3987 (init_strings): Rewritten.
3988 (allocate_string, allocate_string_data, compact_small_strings)
3989 (free_large_strings, sweep_strings): New functions.
3990 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
3991 (struct string_block_head, current_string_block)
3992 (first_string_block, large_string_blocks, STRING_FULLSIZE)
3993 (STRING_PAD): Removed.
3994 (make_uninit_multibyte_string, make_pure_string): Rewritten.
3995 (Fgarbage_collect): Don't set mark bit in large strings.
3996 (mark_object): Mark strings differently. Mark symbol names
3997 differently.
3998 (survives_gc_p): Test marked strings differently.
427ec082 3999 (gc_sweep): Sweep strings differently, unmark strings in
2e471eb5
GM
4000 symbol names.
4001 (compact_strings): Removed.
4002
42608ba8
EZ
40032000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
4004
4005 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
4006 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
4007
e0a09e1a
KH
40082000-01-04 Kenichi Handa <handa@etl.go.jp>
4009
dd9f0750 4010 * fileio.c (Finsert_file_contents): Signal error if visiting file
427ec082 4011 in a non-empty buffer.
dd9f0750 4012
3c0f3b15 4013 * term.c (encode_terminal_code): Fix the previous change.
e0a09e1a 4014
44cd3ae5
GM
40152000-01-03 Gerd Moellmann <gerd@gnu.org>
4016
4017 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
4018 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
4019
4020 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
4021
c182a70f
EZ
40222000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
4023
4024 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
4025 need to test for MSDOS frames.
4026
24480d5b
EZ
40272000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
4028
4029 * dosfns.c (unspecified_colors): Remove.
4030 (msdos_stdcolor_idx): Use global variables unspecified_fg and
4031 unspecified_bg.
4032 (msdos_stdcolor_name): Return strings for unspecified fore- and
4033 back-ground colors.
4034
4035 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
aaf2320c 4036 (syms_of_xfaces): Remove their staticpro's.
24480d5b
EZ
4037 (tty_color_name): Return Lisp strings for unspecified fore- and
4038 back-ground colors.
4039 (Finternal_set_lisp_face_attribute): Remove the special treatment
4040 for Qunspecified_{f,b}g.
4041 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp
4042 string.
4043
047f434a
GM
40442000-01-03 Gerd Moellmann <gerd@gnu.org>
4045
4046 * xdisp.c (reseat_at_next_visible_line_start): Position before
4047 newline only if ending up on a newline.
4048 (next_element_from_ellipsis): Return success. Handle case of
4049 displaying no ellipsis. Fix case of ellipsis defined in display
4050 table.
4051 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
4052 returns 0.
4053
d684c676
EZ
40542000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
4055
4056 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
4057 (Fcolor_supported_p): Renamed from face-color-supported-p.
4058
5fe1d139
EZ
40592000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4060
4061 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
4062 list of colors renamed to tty-defined-color-alist.
4063 (tty_color_name): Pass the frame to tty-color-by-index.
4064 (realize_tty_face): tty-color-alist is now a function which
4065 accepts the frame as argument.
4066
4067 * term.c (Ftty_display_color_p): Accept an optional argument
4068 FRAME.
4069
816be8b8
EZ
40702000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4071
4072 * term.c (insert_glyphs): Pass glyph, not &glyph, to
4073 encode_terminal_code.
4074
b635321e
EZ
40752000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4076
4077 * dispnew.c (mode_line_string): Support termcap frames as well.
4078
9b784e96
GM
40792000-01-01 Gerd Moellmann <gerd@gnu.org>
4080
27189709
GM
4081 * syntax.c (Fforward_word): Undo previous change.
4082
4083 * editfns.c (Fconstrain_to_field): Don't constrain if
4084 inhibit-field-text-motion is non-nil.
4085 (Fline_beginning_position): Undo previous change.
4086 (Fline_end_position): Ditto.
4087
4088 * syntax.c (Fforward_word): Notice field boundaries only if
4089 inhibit-field-text-motion is nil.
4090
4091 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
4092
4093 * editfns.c (Vinhibit_field_text_motion): New variable.
4094 (inhibit-field-text-motion): New DEFVAR_LISP.
4095 (Fline_beginning_position, Fline_end_position): Notice field
4096 boundaries only if inhibit-field-text-motion is nil.
4097
45158a91
GM
4098 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
4099 All calls adjusted.
4100 (x_build_heuristic_mask): Likewise.
4101 (xbm_load_image_from_file): Change error output.
4102 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
4103 (gif_load, gs_load, x_kill_gs_process): Ditto.
4104
9b784e96
GM
4105 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
4106 color indices when accessing raster pixels.
63cec32f
GM
4107 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
4108 one of :file or :data.
4109 (enum pbm_keyword_index): Add PBM_DATA.
4110 (pbm_format): Add :data.
4111 (pbm_image_p): Allow either :file or :data.
4112 (pbm_read_file): New function.
4113 (pbm_scan_number): Rewritten to read from string.
4114 (pbm_load): Support :data.
9b784e96 4115
5ad6a5fb
GM
41161999-12-31 Gerd Moellmann <gerd@gnu.org>
4117
4118 * xfns.c: New image functions adapted to Emacs conventions.
4119 (png_load, tiff_load, jpeg_load, gif_load): Always GCPRO local
4120 variable `file'.
4121
63448a4d
WP
41221999-12-31 William M. Perry <wmperry@aventail.com>
4123
4124 * xfns.c (jpeg_format): Added the :data keyword
4125 (jpeg_image_p): JPEG is valid with :file _or_ :data
4126 (jpeg_memory_src): Defined new JPEG image source to read from a
4127 memory buffer.
4128 (jpeg_load): Pay attention to the :data keyword if specified.
4129 Instantiates a jpeg_memory_src instead of jpeg_stdio_src if
4130 found.
4131 (png_format): Added the :data keyword
4132 (png_image_p): PNG is valid with :file _or_ :data
4133 (png_read_from_memory): New PNG read function to read from a
4134 memory buffer.
4135 (png_load): Pay attention to the :data keyword if specified. Uses
4136 png_set_read_fn() instead of png_init_io() if specified.
4137 (tiff_format): Added the :data keyword for TIFF images.
4138 (tiff_image_p): TIFF is valid with :file _or_ :data
4139 (tiff_read_from_memory): Defined new TIFF I/O functions to read
4140 from a memory buffer.
4141 (tiff_load): Pay attention to the :data keyword if specified.
4142 Uses TIFFClientOpen() instead of TIFFOpen() if specified.
4143 (gif_format): Added the :data keyword
4144 (gif_image_p): GIF is valid with :file _or_ :data
4145 (gif_read_from_memory): New GIF input function to read from a
4146 memory buffer.
c65d14ee 4147 (gif_load): Pay attention to the :data keyword. Uses DGifOpen()
63448a4d
WP
4148 instead of DGifOpenFileName() if specified.
4149
c880678e
GM
41501999-12-31 Gerd Moellmann <gerd@gnu.org>
4151
4152 * xdisp.c (next_element_from_buffer): Change assertion at the end
4153 because it doesn't hold when there's an overlay string at the end
4154 from which we deliver an image.
4155
8ccb9a54
EZ
41561999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
4157
4158 * msdos.c (IT_update_begin): Don't dereference members of struct
4159 window for deleted windows.
4160
12ce2351
GM
41611999-12-30 Gerd Moellmann <gerd@gnu.org>
4162
a915c648
GM
4163 * abbrev.c (Fexpand_abbrev): If expanding an abbrev which has only
4164 a hook, and the hook has a non-nil `no-self-insert' property, let
4165 the return value of the hook specify whether an expansion took
4166 place. If it returns nil, no expansion has been performed.
4167
12ce2351
GM
4168 * xterm.c (x_make_frame_visible): Wait for frame becoming visible
4169 differently.
4170
04ee4f45
EZ
41711999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
4172
4173 * msdos.c (IT_write_glyphs): Track last changes to struct glyph.
4174
7f4bc0c3
EZ
41751999-12-29 Eli Zaretskii <eliz@is.elta.co.il>
4176
4177 * dispnew.c (mode_line_string): Support MS-DOS frames.
4178
dac204bc
GM
41791999-12-29 Gerd Moellmann <gerd@gnu.org>
4180
4181 * eval.c (syms_of_eval): Initialize debugger_may_continue.
4182
7b712ad8
KH
41831999-12-29 Kenichi Handa <handa@etl.go.jp>
4184
4185 * process.c (read_process_output): Fix the args CHARPOS and LENINS
4186 to signal_after_change.
4187
adb9900f
EZ
41881999-12-28 Eli Zaretskii <eliz@is.elta.co.il>
4189
41ad069b
EZ
4190 * msdos.c (dos_set_window_size) [__DJGPP__ > 1]: If the frame
4191 dimensions changed, invalidate the mouse highlight info.
4192 (disable_mouse_highlight, help_echo, previous_help_echo): New
4193 variables.
4194 (IT_set_mouse_pointer, show_mouse_face, clear_mouse_face)
4195 (fast_find_position, IT_note_mode_line_highlight)
4196 (IT_note_mouse_highlight): New functions.
4197 (IT_update_begin): If the redisplay affects the window where the
4198 mouse highlight is, clear the highlight. If the frame where the
4199 highlight was displayed was killed, invalidate the highlight
4200 info.
4201 (IT_update_end): Reset the highlight flag. Reset the mouse
4202 highlight-defer flag.
4203 (IT_frame_up_to_date): New function, if mouse highlight was
4204 deferred due to GC, do it now.
4205 (internal_terminal_init): Initialize mouse-highlight related
4206 members of the_only_x_display. Assign IT_frame_up_to_date to
4207 frame_up_to_date_hook.
4208 (dos_rawgetc): If the mouse moved, update mouse highlight. If
4209 help_echo changed value, generate a HELP_EVENT event.
4210 (syms_of_msdos): Staticpro help_echo and previous_help_echo.
4211
adb9900f
EZ
4212 * msdos.h (struct display_info): New.
4213 (struct x_output): Add the display_info member.
4214 (FRAME_X_DISPLAY_INFO): New macro.
4215
481b5054
GM
42161999-12-28 Gerd Moellmann <gerd@gnu.org>
4217
4218 * xdisp.c (try_window_id): Compute BEG_UNCHANGED and END_UNCHANGED
4219 if MODIFF > 1.
6448a6b3 4220 (dump_glyph_row): Adapt to changes in struct glyph.
481b5054
GM
4221
4222 * buffer.c (modify_overlay): Always compute unchanged info.
4223
a2882b0d
KH
42241999-12-27 Kenichi Handa <handa@etl.go.jp>
4225
4226 * dispextern.h (FACE_FROM_ID): Cast the arg ID to `unsigned'.
4227
89ba5b5f
KH
42281999-12-27 Kenichi Handa <handa@etl.go.jp>
4229
4230 The following changes are to use more bits for face IDs.
4231
4232 * lisp.h (GLYPH): Defined as `int', not `unsigned int'. Now the
4233 lowest 8 bits are single byte character code, the bits above are
4234 face ID.
481b5054 4235 (GLYPH_MASK_FACE, GLYPH_MASK_CHAR): Adjusted for the change
89ba5b5f 4236 above.
481b5054
GM
4237 (FAST_MAKE_GLYPH, FSST_GLYPH_FACE): Likewise.
4238 (GLYPH_MASK_REV_DIR, GLYPH_MASK_PADDING): Macros deleted.
89ba5b5f
KH
4239
4240 * charset.h (CHAR_BYTES): Use ((1 << CHARACTERBITS) - 1) instead
4241 of GLYPH_MASK_CHAR.
4242
4243 * charset.c (char_bytes): Use ((1 << CHARACTERBITS) - 1) instead
4244 of GLYPH_MASK_CHAR.
4245
4246 * dispextern.h (struct glyph): Make face_id and padding_p the top
4247 level members. Change members in union `u'.
4248 (GLYPH_EQUAL_P): Check also members face_id and padding_p.
4249 (GLYPH_CHAR_AND_FACE_EQUAL_P): New macro.
4250 (SET_CHAR_GLYPH): Adjusted for the change of struct glyph.
4251 (CHAR_GLYPH_PADDING_P): Likewise.
4252 (GLYPH_FROM_CHAR_GLYPH): Likewise. Always return -1 for multibyte
4253 characters.
4254
481b5054 4255 * dispnew.c (line_hash_code, direct_output_for_insert): Adjusted
89ba5b5f
KH
4256 for the change of struct glyph.
4257 (line_draw_cost): Adjusted for the change of
4258 GLYPH_FROM_CHAR_GLYPH.
4259 (count_match): Use macro GLYPH_CHAR_AND_FACE_EQUAL_P.
4260
4261 * term.c (encode_terminal_code): Adjusted for the change of struct
4262 glyph and GLYPH_FROM_CHAR_GLYPH.
481b5054 4263 (write_glyphs, insert_glyphs, append_glyph): Adjusted for the
89ba5b5f
KH
4264 change of struct glyph.
4265
4266 * xdisp.c: All codes adjusted for the change of struct glyph.
4267
4268 * xterm.c: All codes adjusted for the change of struct glyph.
4269
5bcd116c
KH
42701999-12-27 Kenichi Handa <handa@etl.go.jp>
4271
4272 * composite.h (struct composition): Change the order of declaring
4273 members to reduce the byte size of the structure.
4274
f21b06b7
GM
42751999-12-25 Gerd Moellmann <gerd@gnu.org>
4276
4277 * search.c (looking_at_1): Reset immediate_quit before modifying
4278 global data.
4279
e36557c9
KH
42801999-12-24 Kenichi Handa <handa@etl.go.jp>
4281
4282 * process.c (read_process_output): Fix the arg FROM to
4283 update_compositions.
4284
83c8f461 42851999-12-22 Richard M. Stallman <rms@gnu.org>
f7c9e039
RS
4286
4287 * search.c (Freplace_match): For nonliteral replacement in buffer,
4288 construct all the new text first, then insert all at once.
4289
0b863bd9
DL
42901999-12-22 Dave Love <fx@gnu.org>
4291
4292 * xfns.c (Fx_show_tip): Gcpro `timeout' too.
4293
6d8e8ef3
GM
42941999-12-22 Gerd Moellmann <gerd@gnu.org>
4295
28d7281d
GM
4296 * xfns.c (Fx_create_frame): Move x_default_parameter calls that
4297 lead to size changes to after the X window has been created.
4298
e22ef6eb 4299 * xfaces.c (realize_x_face): Don't use uninitialized local
6d8e8ef3
GM
4300 variable in xassert.
4301
8affcced
KH
43021999-12-22 Kenichi Handa <handa@etl.go.jp>
4303
4304 * xfaces.c (face_color_supported_p): Check by tty_defined_color
6d8e8ef3 4305 only when the frame is not for a window system.
8affcced 4306
f2be1146
GM
43071999-12-22 Gerd Moellmann <gerd@gnu.org>
4308
deca1348
GM
4309 * buffer.c (Fset_buffer_multibyte): Arrange for a thorough
4310 redisplay after changing the multibyteness of a buffer.
4311
f2be1146
GM
4312 * xterm.c (XTread_socket): At the beginning of the loop, pass the
4313 frame's X window to XFilterEvent instead of None because that's
4314 the X window for which the IC was created. This makes dead
4315 accents work when the pointer is not in Emacs' frame.
4316 (XTread_socket) <KeyPress>: Don't call XFilterEvent here.
4317
a744a2ec
DL
43181999-12-20 Dave Love <fx@gnu.org>
4319
4320 * xfns.c (Fx_show_tip): Add missing UNGCPRO.
4321
9e6985ed
GM
43221999-12-19 Gerd Moellmann <gerd@gnu.org>
4323
4324 * eval.c (debugger_may_continue): New variable.
4325 (syms_of_eval): Add a DEFVAR_BOOL for it.
4326 (call_debugger): Bind it.
4327
3b620731
EZ
43281999-12-19 Eli Zaretskii <eliz@is.elta.co.il>
4329
4330 * msdos.c (IT_set_face): Don't swap face colors when highlight or
4331 fp->tty_reverse_p is set, unless the computed colors are identical
4332 to frame colors. Print both original and computed colors to
4333 termscript file.
4334 (IT_write_glyphs): Track the changes in handling of composite
4335 characters.
4336 (IT_set_frame_parameters): Don't set frame colors from
4337 unspecified-fg and unspecified-bg pseudo-colors.
4338
0f9a51c4
DL
43391999-12-17 Dave Love <fx@gnu.org>
4340
4341 * data.c (Fkeywordp): New function.
4342 (syms_of_data): Install it.
4343
363e4e42
EZ
43441999-12-16 Eli Zaretskii <eliz@is.elta.co.il>
4345
4346 * xfaces.c (tty_defined_color): Fix last change.
4347
cfad01b4
GM
43481999-12-15 Gerd Moellmann <gerd@gnu.org>
4349
4350 * xdisp.c (redisplay_window) <optional new window start>: Check
4351 that window start is in [BEGV..ZV].
4352
f9d2fdc4
EZ
43531999-12-15 Eli Zaretskii <eliz@is.elta.co.il>
4354
4355 * dispextern.h (FACE_TTY_DEFAULT_FG_COLOR)
4356 (FACE_TTY_DEFAULT_BG_COLOR): New macros.
4357
4358 * xfaces.c (Qunspecified_fg, Qunspecified_bg): New variables.
4359 (syms_of_xfaces): Initialize and staticpro them.
4360 (tty_defined_color): If the color name is unspecified-fg or
4361 unspecified-bg, return FACE_TTY_DEFAULT_FG_COLOR and
4362 FACE_TTY_DEFAULT_BG_COLOR, respectively, as the pixel value.
4363 (tty_color_name): If the color pixel value is either
4364 FACE_TTY_DEFAULT_FG_COLOR or FACE_TTY_DEFAULT_BG_COLOR, return
4365 Qunspecified_fg or Qunspecified_bg, respectively.
4366 (Finternal_set_lisp_face_attribute): Allow values Qunspecified_fg
4367 and Qunspecified_bg for foreground and background colors.
4368 (realize_default_face): If the foreground and background colors
4369 are not specified, default to Qunspecified_fg and Qunspecified_bg.
4370 (realize_tty_face): By default, set the face colors to
4371 FACE_TTY_DEFAULT_FG_COLOR and FACE_TTY_DEFAULT_BG_COLOR.
4372 [MSDOS]: Handle FACE_TTY_DEFAULT_FG_COLOR and
4373 FACE_TTY_DEFAULT_BG_COLOR when face colors are not defined.
4374 Reverse the colors if the default colors were reversed.
4375
4376 * dispnew.c (init_display): Initialize the frame pixels of the
4377 initial frame to FACE_TTY_DEFAULT_FG_COLOR and
4378 FACE_TTY_DEFAULT_BG_COLOR.
4379
4380 * term.c (turn_on_face): If the default fore- and background
4381 colors are reversed, enter inverse video mode. Don't send color
4382 escape sequences for unspecified foreground and background colors.
4383 (turn_off_face): Handle unspecified-fg and unspecified-bg colors.
4384
4385 * dosfns.c (unspecified_colors): New variable.
4386 (msdos_stdcolor_idx): Handle unspecified-fg and unspecified-bg
4387 color names, return FACE_TTY_DEFAULT_FG_COLOR and
4388 FACE_TTY_DEFAULT_BG_COLOR, respectively.
4389 (msdos_stdcolor_name): Handle FACE_TTY_DEFAULT_FG_COLOR and
4390 FACE_TTY_DEFAULT_BG_COLOR, return Qunspecified_fg and
4391 Qunspecified_bg, respectively.
4392
4393 * msdos.c (IT_set_face): Support FACE_TTY_DEFAULT_FG_COLOR and
4394 FACE_TTY_DEFAULT_BG_COLOR as pixel values.
4395
e19539f1
KH
43961999-12-15 Kenichi Handa <handa@etl.go.jp>
4397
4398 * coding.c (code_convert_region): Fix the secoding arg to
4399 update_compositions.
4400
5ec14d3c
KH
44011999-12-15 Kenichi Handa <handa@etl.go.jp>
4402
4403 The following changes are for the new composition mechanism. We
4404 have deleted `composition' charset and composite characters,
4405 instead introduced a special text property `composition'.
4406
4407 * Makefile.in (INTERVAL_SRC): Include composite.h.
4408 (INTERVAL_OBJ): Include composite.o.
4409 (SOME_MACHINE_OBJECTS): Include composite.o.
4410 (casefiddle.o) (dispnew.o) (indent.o) (process.o) (search.o)
4411 (syntax.o) (window.o) (xdisp.o) (xfaces.o) (xterm.o) (print.o):
4412 Depend on composite.h.
4413 (doc.o): Depend on charset.h.
4414 (keyboard.o) (textprop.o) (intervals.o): Depend on INTERVAL_SRC.
4415 (composite.o): New target.
427ec082 4416
5ec14d3c
KH
4417 * alloc.c (Fmake_string): Adjusted for the change of CHAR_STRING.
4418
4419 * callproc.c (Fcall_process): Call code_convert_string to encode
4420 arguments. Use CODING_REQUIRE_DECODING to check if the process
4421 output should be decoded.
4422
4423 * casefiddle.c: Include composite.h.
4424 (casify_object): Use MAX_MULTIBYTE_LENGTH to allocate memory for a
4425 multibyte character. Adjusted for the change of CHAR_STRING.
4426 (casify_region): Likewise. Call update_compositions.
4427
4428 * category.h (CATEGORY_SET): Delete codes for a composite
4429 character.
4430
4431 * category.c (word_boundary_p): Delete codes for a composite
4432 character.
4433 (Fmake_category_table): New function.
4434 (syms_of_category): Defsubr it.
4435
4436 * ccl.c (CCL_WRITE_CHAR): Adjusted for the change of CHAR_STRING.
4437 (ccl_driver): Delete codes for a composite character.
4438
4439 * charset.h: In this entry, just `Modified' means that codes for a
4440 composite character is deleted.
4441 (LEADING_CODE_COMPOSITION) (CHARSET_COMPOSITION)
4442 (charset_composition) (MIN_CHAR_COMPOSITION)
4443 (MAX_CHAR_COMPOSITION) (GENERIC_COMPOSITION_CHAR)
4444 (COMPOSITE_CHAR_P) (MAKE_COMPOSITE_CHAR) (COMPOSITE_CHAR_ID)
4445 (PARSE_COMPOSITE_SEQ) (PARSE_CHARACTER_SEQ): Deleted.
4446 (MAX_CHAR) (CHARSET_VALID_P) (CHARSET_DEFINED_P) (CHARSET_AT)
4447 (FIRST_CHARSET_AT) (SAME_CHARSET_P) (MAKE_NON_ASCII_CHAR)
4448 (PARSE_MULTIBYTE_SEQ) (SPLIT_NON_ASCII_CHAR) (CHAR_PRINTABLE_P):
4449 Modified.
4450 (SPLIT_STRING): Call split_string, not split_non_ascii_string.
4451 (CHAR_STRING): Delete WORKBUF argument. Call char_string, not
4452 non_ascii_char_to_string.
4453 (STRING_CHAR): Call string_to_char, not string_to_non_ascii_char.
4454 (STRING_CHAR_AND_LENGTH): Likewise.
4455 (FETCH_CHAR_ADVANCE): New macro.
4456 (MAX_COMPONENT_COUNT) (struct cmpchar_info): Deleted.
4457 (MAX_MULTIBYTE_LENGTH): New macro.
4458 (MAX_LENGTH_OF_MULTI_BYTE_FORM): Deleted.
4459 (find_charset_in_str): Argument adjusted.
4460 (CHAR_LEN): Modified.
427ec082 4461
5ec14d3c
KH
4462 * charset.c: In this entry, just `Modified' means that codes for a
4463 composite character is deleted.
4464 (Qcomposition) (leading_code_composition)
4465 (charset_composition) (min_composite_char) (cmpchar_table)
4466 (cmpchar_table_size) (n_cmpchars): Deleted.
4467 (SPLIT_COMPOSITE_SEQ): Deleted.
4468 (SPLIT_MULTIBYTE_SEQ): Modified.
4469 (char_to_string): Renamed from non_ascii_char_to_string.
4470 Modified.
4471 (string_to_char): Renamed from string_to_non_ascii_char.
4472 (split_string): Renamed from split_non_ascii_string.
4473 (char_printable_p) (Fsplit_char)
4474 (Ffind_charset_region) (Ffind_charset_string) (char_valid_p)
4475 (char_bytes) (Fchar_width) (strwidth): Modified.
4476 (find_charset_in_str): Argument CMPCHARP deleted. Modified.
4477 (Fstring): Adjusted for the change of CHAR_STRING. Modified.
4478 (hash_string) (CMPCHAR_HASH_TABLE_SIZE) (cmpchar_hash_table)
4479 (CMPCHAR_HASH_SIZE) (CMPCHAR_HASH_USED) (CMPCHAR_HASH_CMPCHAR_ID)
4480 (str_cmpchar_id) (cmpchar_component) (Fcmpcharp)
4481 (Fcmpchar_component) (Fcmpchar_cmp_rule) (Fcmpchar_cmp_rule_p)
4482 (Fcmpchar_cmp_count): Deleted.
4483 (Fcompose_string): Implemented by Emacs Lisp in composite.el.
4484 (init_charset_once): Modified.
4485 (syms_of_charset): Modified.
4486
4487 * cmds.c (internal_self_insert): Adjusted for the change of
4488 CHAR_STRING.
4489
4490 * coding.h (emacs_code_class_type): Delete the member
4491 EMACS_leading_code_composition.
4492 (COMPOSING_NO) (COMPOSING_WITH_RULE_HEAD) (COMPOSING_NO_RULE_HEAD)
4493 (COMPOSING_WITH_RULE_TAIL) (COMPOSING_NO_RULE_TAIL)
4494 (COMPOSING_WITH_RULE_RULE) (COMPOSING_HEAD_P)
4495 (COMPOSING_WITH_RULE_P): Macros deleted.
4496 (COMPOSITION_DATA_SIZE) (COMPOSITION_DATA_MAX_BUNCH_LENGTH): New
4497 macros.
4498 (struct composition_data): New structure.
4499 (CODING_FINISH_INSUFFICIENT_CMP): New macro.
4500 (struct coding_system): New members composition_rule_follows,
4501 cmp_data, cmp_data_start, cmp_data_index.
4502 (coding_save_composition) (coding_free_composition_data)
4503 (coding_adjust_composition_offset): Extern them.
4504
4505 * coding.c: Include composite.h.
4506 (DECODE_CHARACTER_ASCII): Don't handle composition here.
4507 (DECODE_CHARACTER_DIMENSION1): Likewise. Don't check the validity
4508 of multibyte code here.
4509 (DECODE_CHARACTER_DIMENSION2): Likewise.
4510 (detect_coding_emacs_mule): Change the case label from
4511 EMACS_leading_code_composition to 0x80.
4512 (detect_coding_iso2022): Handle new composition sequence.
4513 (DECODE_ISO_CHARACTER): Likewise.
4514 (check_composing_code): Deleted.
4515 (coding_allocate_composition_data): New function.
4516 (CODING_ADD_COMPOSITION_START) (CODING_ADD_COMPOSITION_END)
4517 (CODING_ADD_COMPOSITION_COMPONENT) (DECODE_COMPOSITION_START)
4518 (DECODE_COMPOSITION_END) (DECODE_COMPOSITION_RULE): New macros.
4519 (decode_coding_iso2022): Handle new composition sequence.
4520 (ENCODE_ISO_CHARACTER): Don't check composition here.
4521 (ENCODE_COMPOSITION_RULE) (ENCODE_COMPOSITION_START): New macros.
4522 (ENCODE_COMPOSITION_NO_RULE_START)
4523 (ENCODE_COMPOSITION_WITH_RULE_START): Deleted.
4524 (ENCODE_COMPOSITION_END): Handle new composition sequence.
4525 (ENCODE_COMPOSITION_FAKE_START): New macro.
4526 (encode_coding_iso2022): Handle new composition sequence.
4527 (ENCODE_SJIS_BIG5_CHARACTER): Delete superfluous `;' at the tail.
4528 (encode_coding_sjis_big5): Ignore composition.
4529 (setup_coding_system): Initialize new members of struct
4530 coding_system. Enable composition only when the coding system has
4531 `composition' property t.
4532 (coding_free_composition_data) (coding_adjust_composition_offset)
4533 (coding_save_composition) (coding_restore_composition): New
4534 functions.
4535 (code_convert_region): Call coding_save_composition for encoding
4536 and coding_allocate_composition_data for decoding. Don't skip
4537 ASCII characters if we handle composition on encoding. Call
4538 signal_after_change with Check_BORDER.
4539 (code_convert_string): Call coding_save_composition for encoding
4540 and coding_allocate_composition_data for decoding. Don't skip
4541 ASCII characters if we handle composition on encoding.
4542 (code_convert_string1): Set Vlast_coding_system_used after calling
4543 code_convert_string.
4544 (code_convert_string_norecord): Disable composition.
4545 (Fset_terminal_coding_system_internal): Likewise.
4546 (Fset_safe_terminal_coding_system_internal): Likewise.
4547 (Fset_keyboard_coding_system_internal): Likewise.
4548 (init_coding_once): Set emacs_code_class[0x80] to
4549 EMACS_invalid_code.
4550
4551 * composite.h: New file.
4552
4553 * composite.c: New file.
4554
4555 * data.c (Faref): Delete codes for a composite character..
4556 (Faset): Likewise. Adjusted for the change of CHAR_STRING.
4557
4558 * dispextern.h (enum glyph_type): New member COMPOSITE_GLYPH.
4559 (struct glyph): Add new sub-structure cmp to the union `u'.
4560 (enum display_element_type): New member IT_COMPOSITION.
4561 (enum prop_idx): New member COMPOSITION_PROP_IDX.
4562 (struct it): New members cmp_id, cmp_len.
4563
4564 * dispnew.c (direct_output_forward_char): Check point moving into
4565 or out of a composition. If so, give up direct method.
4566
4567 * doprnt.c (doprnt1): Adjusted for the change of CHAR_STRING.
4568
4569 * editfns.c (Fchar_to_string): Adjusted for the change of
4570 CHAR_STRING.
4571 (general_insert_function): Likewise.
4572 (Finsert_char): Likewise.
4573 (Fsubst_char_in_region): Likewise. Call update_compositions.
4574 (Ftranslate_region): Call update_compositions.
4575 (Ftranspose_regions): Call update_compositions.
4576
4577 * emacs.c (main): Call syms_of_composite.
4578
4579 * fileio.c (Fsubstitute_in_file_name): Adjusted for the change of
4580 CHAR_STRING.
4581 (Finsert_file_contents): Set Vlast_coding_system_used before
4582 calling signal_after_change. Call update_compositions if some
4583 texts are inserted..
4584 (Fwrite_region): Adjusted for the change of a_write and e_write.
4585 (a_write): Argument changed. Work based on character position,
4586 not byte position.
4587 (e_write): Argument changed. Handle new way of composition.
4588
4589 * fns.c (Flength): The length of char-table is MAX_CHAR.
4590 (concat): Adjusted for the change of CHAR_STRING.
4591 (Ffillarray): Adjusted for the change of CHAR_STRING.
4592 (Fset_char_table_default): Delete codes for a composite character.
4593 (hash_put): Return hash index.
4594
4595 * fontset.h (struct font_info): New member vertical_centering.
4596 (Vvertical_centering_font_regexp): Extern it.
4597
4598 * fontset.c (Vvertical_centering_font_regexp): New variable.
4599 (syms_of_fontset): Declare it as a Lisp variable and initialize.
4600 Set Vignore_relative_composition to nil.
4601 (fs_load_font): Initialize `vertical_centering' of struct
4602 font_info.
4603
4604 * indent.c (check_composition): New function.
4605 (MULTIBYTE_BYTES_WIDTH): Call STRING_CHAR_AND_LENGTH with
4606 MAX_MULTIBYTE_LENGTH, not MAX_LENGTH_OF_MULTI_BYTE_FORM.
4607 (current_column_1): Handle new way of composition.
4608 (Fmove_to_column): Likewise.
4609 (compute_motion): Likewise.
4610
4611 * insdel.c (copy_text): Adjusted for the change of CHAR_STRING.
4612 (insert_char): Likewise.
4613 (insert): Call update_compositions.
4614 (insert_and_inherit): Likewise.
4615 (insert_before_markers): Likewise.
4616 (insert_before_markers_and_inherit): Likewise.
4617 (insert_from_string): Likewise.
4618 (insert_from_string_before_markers): Likewise.
4619 (insert_from_buffer): Likewise.
4620 (replace_range): Likewise.
4621 (count_combining_composition): Deleted.
4622 (count_combining_before): Delete codes for a composite character.
4623 (count_combining_after): Likewise.
4624 (del_range_1): Call update_compositions.
4625 (del_range_byte): Likewise.
4626 (del_range_both): Likewise.
4627 (Fcombine_after_change_execute): Likewise.
4628
4629 * intervals.h: Include composite.h.
4630 (get_property_and_range): Extern it.
4631 (Vtext_property_default_nonsticky): Extern it.
427ec082 4632
5ec14d3c
KH
4633 * intervals.c (adjust_intervals_for_insertion): To check stickines
4634 of properties, pay attention to text-property-default-nonsticky.
4635 (merge_properties_sticky): Likewise.
4636 (get_property_and_range): New function.
4637
4638 * keyboard.c (Vdisable_point_adjustment): New variable.
4639 (Vglobal_disable_point_adjustment): New variable.
4640 (syms_of_keyboard): Declare them as Lisp variables.
4641 (command_loop_1): Check them and call adjust_point_for_property if
4642 necessary.
4643 (adjust_point_for_property): New function.
4644
4645 * keymap.c (push_key_description): Adjusted for the change of
4646 CHAR_STRING.
4647 (Ftext_char_description): Likewise.
4648
4649 * lisp.h (QCtest, QCweakness, Qequal): Extern them.
4650 (hash_put): Adjusted for the change of the definition.
4651 (signal_after_change): Likewise.
4652 (check_point_in_composition): Extern it.
4653
4654 * lread.c (readchar): Adjusted for the change of CHAR_STRING.
4655 Delete a code that handles an invalid too-long multibyte sequence
4656 because we are now sure that we never encounter with such a
4657 sequence.
4658 (read_multibyte): Use macro MAX_MULTIBYTE_LENGTH, not
4659 MAX_LENGTH_OF_MULTI_BYTE_FORM.
4660 (init_obarray): Likewise.
4661 (read1): Likewise. Adjusted for the change of CHAR_STRING.
4662
4663 * print.c (printchar): Adjusted for the change of CHAR_STRING.
4664
4665 * process.c: Include composite.h.
4666 (read_process_output): Call update_compositions.
4667
4668 * regex.c (regex_compile): Adjusted for the change of CHAR_STRING.
4669
4670 * search.c (search_buffer): Adjusted for the change of CHAR_STRING.
4671
4672 * syntax.h (SYNTAX_ENTRY_INT): Delete codes for a composite
4673 character.
4674
4675 * term.c (encode_terminal_code): Delete codes for a composite
4676 character. Adjusted for the change of CHAR_STRING.
4677 (produce_glyphs): When called, it->what can be IT_COMPOSITION.
4678 Delete codes for a composite character.
4679
4680 * textprop.c (Vtext_property_default_nonsticky): New variable
4681 (syms_of_textprop): Declare it as a Lisp variable.
4682
4683 * window.c (Frecenter): Clear all caches of compositions.
4684
4685 * xdisp.c (it_props): Add an entry for composition.
4686 (face_before_or_after_it_pos): For composition, check face of a
4687 character after the composition.
4688 (handle_composition_prop): New function.
4689 (get_next_display_element): Adjusted for the change of
4690 CHAR_STRING.
4691 (set_iterator_to_next): Handle the case that it->method ==
4692 next_element_from_composition.
4693 (next_element_from_composition): New function.
4694 (message_dolog): Adjusted for the change of CHAR_STRING.
4695 (set_message_1): Likewise.
4696 (check_point_in_composition): New function.
4697 (reconsider_clip_changes): If point moved into or out of
4698 composition, set b->clip_changed to 1 to force updating of the
4699 screen.
4700 (disp_char_vector): Delete codes for a composite character.
4701 (decode_mode_spec_coding): Adjusted for the change of CHAR_STRING.
4702
4703 * xfaces.c (choose_face_fontset_font): Delete codes for a
4704 composite character.
4705 (realize_x_face): Likewise. Change a place to set local variable
4706 `f' to avoid a bug of GCC 2.8.1 on Solaris.
4707
4708 * xfns.c: Include intervals.h.
4709 (syms_of_xfns): Make `display' property nonsticky by default.
4710
4711 * xselect.c (lisp_data_to_selection_data): Adjusted for the change
4712 for find_charset_in_str.
4713
4714 * xterm.h (struct x_output): Change member font_baseline to
4715 baseline_offset.
4716
4717 * xterm.c (x_append_glyph): Setup members of struct glyph properly
4718 for composition.
4719 (x_append_composite_glyph): New function.
4720 (VCENTER_BASELINE_OFFSET): New macro.
4721 (x_produce_glyphs): If it->what == IT_COMPOSITION, setup members
4722 of struct it for the composition. Cache pixel offsets in the
4723 struct composition. Delete codes for a composite character.
4724 Handle Vignore_relative_composition in composition code.
4725 (struct glyph_string): Delete member cmpcharp, add new member cmp.
4726 (x_set_cursor_gc): Check s->cmp, not s->cmpcharp.
4727 (x_compute_glyph_string_overhangs): Likewise.
4728 (x_get_glyph_overhangs): Delete codes for a composite character.
4729 (x_right_overwritten): Check s->cmp, not s->cmpcharp.
4730 (x_draw_glyph_string_background): Likewise. Delete codes for
4731 checking s->gidx for a composition.
4732 (x_draw_glyph_string_foreground): Delete code for a composite
4733 character.
4734 (x_draw_composite_glyph_string_foreground): New function.
4735 (x_draw_glyph_string_box): Check s->cmp, not s->cmpcharp.
4736 (x_draw_glyph_string): Handle the case of COMPOSITE_GLYPH.
4737 (struct work): Deleted.
4738 (x_fill_composite_glyph_string): Argument changed. Mostly
4739 rewritten for that.
4740 (x_fill_glyph_string): Don't check CHARSET_COMPOSITION.
4741 (BUILD_CHAR_GLYPH_STRINGS): Don't handle composition here.
4742 (BUILD_COMPOSITE_GLYPH_STRING): New macro.
4743 (BUILD_GLYPH_STRINGS): For composition, call
4744 BUILD_COMPOSITE_GLYPH_STRING.
4745 (x_new_font): Initialize f->output_data.x->baseline_offset, not
4746 f->output_data.x->font_baseline.
4747
c3c60f13
GM
47481999-12-14 Gerd Moellmann <gerd@gnu.org>
4749
4750 * xterm.c (show_mouse_face): Don't use updated_area, use
4751 TEXT_AREA.
4752
83c8f461 47531999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
4754
4755 * minibuf.c (Fall_completions): Doc fix.
4756
83c8f461 47571999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
4758
4759 * macros.c (Fstart_kbd_macro): Handle case where last-kbd-macro
4760 has been changed by the Lisp code.
4761
d8eccf12
GM
47621999-12-12 Gerd Moellmann <gerd@gnu.org>
4763
4764 * xfns.c: Indentation fixes.
4765
ae56feae
SM
47661999-12-10 Stefan Monnier <monnier@cs.yale.edu>
4767
4768 * xterm.c (x_initialize): Only setup xaw3d_* if they've been declared.
4769
dfa1c6ae
GM
47701999-12-10 Gerd Moellmann <gerd@gnu.org>
4771
4772 * frame.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL)
4773 [!MSDOS && !WINDOWSNT && !macintosh]: Moved here from xterm.h.
4774
4775 * xterm.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL): Moved
4776 to frame.h.
4777
ec18280f
SM
47781999-12-09 Stefan Monnier <monnier@cs.yale.edu>
4779
4780 * keyboard.c (Qratio): New symbol.
4781 (scroll_bar_parts): Add `Qratio' to it.
4782 (syms_of_keyboard): Init `Qratio'.
4783 * termhooks.h (scroll_bar_part): Add `scroll_bar_move_ratio'.
4784 * xterm.c (#includes): Allow compilation with only Xaw.
4785 (xaw3d_arrow_scroll, xaw3d_pick_top): New variables.
4786 (xt_action_hook): Replace XAW3D by XAW.
4787 (xaw3d_jump_callback): Renamed to xaw_jump_callback.
4788 (xaw_jump_callback): Renamed from xaw3d_jump_callback.
4789 Determine epsilon dynamically and don't try to be too clever.
4790 (xaw3d_scroll_callback): Renamed to xaw_scroll_callback.
4791 (xaw_scroll_callback): Renamed from xaw3d_scroll_callback.
4792 Handle both Xaw3d with arrow-scrollbars and with Xaw-style
4793 scrollbar (using `ratio').
4794 (x_create_toolkit_scroll_bar): Try to detect which style of Xaw3d
4795 scrollbar we have so as to set it up more optimally and to fix
4796 xaw3d_arrow_scroll and xaw3d_pick_top.
4797 (x_set_toolkit_scroll_bar_thumb): Try to maintain 2 spare pixels at the
4798 bottom of the Xaw3d scrollbar, to work around its tendency to refuse
4799 shrinking the thumb. Also make sure that `XawScrollbarSetThumb'
4800 is not ignored, using a major gross hack.
4801 (x_initialize): Init default values for xaw3d_arrow_scroll and
4802 xaw3d_pick_top.
4803
83b6d970
DL
48041999-12-09 Dave Love <fx@gnu.org>
4805
4806 * frame.h: (PIX_TYPE) [! HAVE_X_WINDOWS]: Define PIX_TYPE.
4807
3648c842
GM
48081999-12-08 Gerd Moellmann <gerd@gnu.org>
4809
4810 * eval.c: Remove conditional compilation on `standalone'.
4811 (call_debugger): When entering the debugger while redisplaying,
4812 reset redisplaying_p, and go back to the top-level if the debugger
4813 returns.
4814
05e71564
GM
48151999-12-07 Gerd Moellmann <gerd@gnu.org>
4816
4817 * xfaces.c (x_set_menu_resources_from_menu_face): Make sure
4818 basic faces are realized before trying to use face `menu'.
4819
4820 * window.c (delete_window): Block input for the time window
4821 matrices are being changed.
4822
b46cd536
DL
48231999-12-07 Dave Love <fx@gnu.org>
4824
4825 * lread.c (Fintern_soft): Fix newlines in doc string.
4826
96acb1f7
GM
48271999-12-07 Alexandre Oliva <oliva@dcc.unicamp.br>
4828
4829 * unexelf.c: Include <syms.h>, not <sym.h> on IRIX. Removed
4830 duplicate definition of ElfW.
4831 (find_section): Copied from unexsgi.c.
4832 (unexec): Use find_section. Adjust whitespace. Initialize
4833 new_data2_offset based on old_data, not sbss (this fixes a bug on
4834 IRIX6). Change #ifdef __mips to __sgi, since it's IRIX-specific.
4835 Adjust test for presence of .mdebug section to the new return
4836 value of find_section.
427ec082 4837
96acb1f7
GM
48381999-12-07 Gerd Moellmann <gerd@gnu.org>
4839
4840 * unexelf.c: Merge changes from 20.5.
4841 (unexec): Handle .lit4 and .lit8 unconditionally.
4842
4843 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexelf.o instead of
4844 unexsgi.o again.
427ec082 4845
96acb1f7
GM
4846 * m/iris5d.h (UNEXEC): Likewise.
4847
7dae4502
SM
48481999-12-06 Stefan Monnier <monnier@cs.yale.edu>
4849
4850 * editfns.c (Fdelete_and_extract_region): New function.
05e71564
GM
4851 (syms_of_editfns): Register it.
4852 * insdel.c (del_range): Update del_range_1 call.
7dae4502
SM
4853 (del_range_1, del_range_2): Add a ret_string argument to
4854 request that the deleted text be returned.
4855 (del_range_byte, del_range_both): Update del_range_2 call.
05e71564 4856 * lisp.h (del_range_1, del_range_2): Change prototype
7dae4502
SM
4857 * casefiddle.c (casify_region): Update del_range_1 call.
4858 * coding.c (code_convert_region): Update del_range_2 call.
4859 * fileio.c (Finsert_file_contents): Update del_range_2 call.
4860
397e4fae
GM
48611999-12-06 Gerd Moellmann <gerd@gnu.org>
4862
4863 * xfaces.c (set_lface_from_font_name): Fix incomplete merge.
4864
3d973f71
GM
48651999-12-04 Hrvoje Niksic <hniksic@iskon.hr>
4866
4867 * lread.c (Fintern_soft): Accept a symbol argument.
427ec082 4868
740e985f
EZ
48691999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
4870
4871 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Reduce to 40000.
809f3d51
EZ
4872
4873 * insdel.c (adjust_markers_for_delete): Fix last change.
4874
2d764c78
EZ
48751999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
4876
4877 Changes for automatic remapping of X colors on terminal frames:
4878
4879 * xfaces.c (XColor) [!HAVE_X_WINDOWS]: Provide a typedef for non-X
4880 frames.
4881 (Vface_tty_color_alist): Remove.
4882 (tty_defined_color): New function.
4883 (defined_color): Rewrite to support any type of frame.
4884 (tty_color_name): New function.
4885 (face_color_supported_p, Fface_color_gray_p,
4886 Fface_color_supported_p): Support non-X frames.
4887 (load_color): Enclose the color name in quotes, in the log
4888 messages. Remove DOS-specific version of load_color.
4889 (realize_tty_face): Take the supported colors from
4890 tty-color-alist. Support translation of X colors to the closest
4891 tty color, for both MSDOS and tty frames.
4892 [MSDOS]: Don't invert face colors if they were taken from the
4893 frame colors.
4894 (Fface_register_tty_color, Fface_clear_tty_colors): Remove.
4895
4896 * frame.h (struct x_output) [!MSDOS, !WINDOWSNT, !HAVE_X_WINDOWS]:
4897 Define a mostly empty surrogate.
4898 (tty_display): Declare.
4899
4900 * frame.c (make_terminal_frame) [!macintosh]: Don't use
4901 tty_display.
4902 (Fframe_parameters): Don't invert colors of non-FRAME_WINDOW_P
4903 frames when the frame's param_alist includes 'reverse.
4904 (tty_display): Define.
4905 (make_terminal_frame) [!MSDOS]: Assign &tty_display to the
4906 output_data.x member.
4907 (Fframe_parameters): Return foreground and background color names
4908 on tty frames as well, in addition to MSDOS frames.
4909
4910 * msdos.h (DisplayWidth, DisplayHeight): Changes for Lisp_Object
4911 selected_frame.
4912 (struct x_output): Remove unused members; document who uses each
4913 member.
4914 (FRAME_PARAM_FACES, FRAME_N_PARAM_FACES, FRAME_DEFAULT_PARAM_FACE,
4915 FRAME_MODE_LINE_PARAM_FACE, FRAME_COMPUTED_FACES,
4916 FRAME_N_COMPUTED_FACES, FRAME_SIZE_COMPUTED_FACES,
4917 FRAME_DEFAULT_FACE, FRAME_MODE_LINE_FACE, unload_color): Remove
4918 unused macro definintions.
4919
4920 * msdos.c (IT_set_frame_parameters): Don't call
4921 recompute_basic_faces, the next redisplay will, anyway.
4922 (x_current_display): Remove unused variable.
4923 Many functions: changes for Lisp_object selected_frame.
4924 (IT_set_face): If the tty_reverse_p flag is set for the face,
4925 reverse the foreground and background colors.
4926 (Fmsdos_remember_default_colors): New function.
4927 (syms_of_msdos): Defsubr it.
4928 (IT_set_frame_parameters): Use initial_screen_colors[] when
4929 creating a new frame. If the frame parameters include 'reverse,
4930 swap the foreground and background colors.
4931 (internal_terminal_init): Initialize initial_screen_colors to -1.
4932 (syms_of_msdos): Add DEFVAR_BOOL for x-stretch-cursor, to shut up
4933 cus-start.el.
4934
4935 * Makefile.in (lisp, shortlisp): Add lisp/term/tty-colors.elc.
4936
4937 * xfns.c (x_defined_color): Rename from defined_color. All
4938 callers changed.
4939 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
4940 all callers changed.
4941 (Fxw_color_values): Renamed from Fx_color_values; all callers
4942 changed.
4943 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
4944 callers changed.
4945 (x_window_to_frame, x_any_window_to_frame,
4946 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
4947 x_top_window_to_frame): Use !FRAME_X_P instead of
4948 f->output_data.nothing.
4949 * xterm.h (x_defined_color): Rename from defined_color.
4950
4951 * w32fns.c (x_window_to_frame): Use FRAME_W32_P instead of
4952 f->output_data.nothing.
4953 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
4954 all callers changed.
4955 (Fxw_color_values): Renamed from Fx_color_values; all callers
4956 changed.
4957 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
4958 callers changed.
4959
4960 * dispextern.h (tty_color_name): Add prototype.
4961
4962 * xmenu.c (menubar_id_to_frame): Use FRAME_WINDOW_P instead of
4963 f->output_data.nothing.
4964 * w32menu.c (menubar_id_to_frame): Likewise.
4965 * w32term.h (w32_output): Declare.
4966
4967 * dosfns.c (Qmsdos_color_translate): Remove.
4968 (msdos_stdcolor_name): Now returns a Lisp_Object.
4969 * dosfns.h (Qmsdos_color_translate): Remove.
4970
4971 * s/msdos.h (INTERNAL_TERMINAL): Add entries for color support.
4972
b3e5232e
KH
49731999-12-06 Kenichi Handa <handa@etl.go.jp>
4974
4975 * fileio.c (decide_coding_unwind): Renamed from
4976 set_auto_coding_unwind.
4977 (Finsert_file_contents): Make single unwind protect to call both
4978 Vset_auto_coding_function and Ffind_operation_coding_system.
4979
4980 * insdel.c (adjust_markers_for_delete): Make it non-static.
4981
db0e466c
SM
49821999-12-04 Stefan Monnier <monnier@cs.yale.edu>
4983
4984 * regex.c (regex_compile): Recognize *?, +? and ?? as non-greedy
4985 operators and handle them properly.
4986 * regex.h (RE_ALL_GREEDY): New option.
4987 (RE_UNMATCHED_RIGHT_PAREN_ORD): Moved to the end where alphabetic
4988 sorting would put it.
4989 (RE_SYNTAX_AWK, RE_SYNTAX_GREP, RE_SYNTAX_EGREP)
4990 (_RE_SYNTAX_POSIX_COMMON): Use the new option to keep old behavior.
4991
22afa6e8
DL
49921999-12-04 Dave Love <d.love@dl.ac.uk>
4993
4994 * m/arm.h: New file.
4995
40afb967
DL
49961999-12-03 Dave Love <fx@gnu.org>
4997
4998 * editfns.c (Fmessage_or_box): Use use_dialog_box.
4999
ddf8eff5
GM
50001999-12-02 Gerd Moellmann <gerd@gnu.org>
5001
5002 * s/usg5-4.h (LIBS_SYSTEM): Add -lgen because that's needed
5003 for building with Motif.
5004
5005 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexsgi.o instead of
5006 unexelf.o.
427ec082 5007
ddf8eff5
GM
5008 * m/iris5d.h (UNEXEC): Use unexsgi.o instead of unexelf.o.
5009
fa09a82d
DL
50101999-12-01 Dave Love <fx@gnu.org>
5011
5012 * emacs.c (main): Set LANG=C iff AX3_2 defined.
5013
ddf8eff5
GM
50141999-11-28 Gerd Moellmann <gerd@gnu.org>
5015
5016 * systime.h (EMACS_TIME_CMP, EMACS_TIME_EQ, EMACS_TIME_NE)
5017 (EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT,EMACS_TIME_LE): New
5018 macros.
5019
5020 * config.in (HAVE_SETITIMER, HAVE_UALARM): New.
5021
fa09a82d
DL
50221999-11-28 eliz <eliz@dlpx1>
5023
5024 * emacs.c (synchronize_locale): Avoid compiler warnings about
5025 pointer type mismatch.
5026
f9632fc8
GM
50271999-11-28 Gerd Moellmann <gerd@gnu.org>
5028
717d0121
GM
5029 * window.c (Fwindow_end): Don't call temp_set_pt_both with
5030 out of range position.
5031
427ec082 5032 * xterm.c (XTread_socket) <ClientMessage, Xatom_Scrollbar>:
f9632fc8
GM
5033 Switch off busy-cursor by setting inhibit_busy_cursor to 2.
5034
59c65f1e
EZ
50351999-11-28 Eli Zaretskii <eliz@is.elta.co.il>
5036
613a8346
EZ
5037 * charset.c (Fmake_char_internal): Print the charset ID when
5038 signalling an error.
5039
59c65f1e
EZ
5040 * emacs.c (synchronize_locale): Avoid compiler warnings about
5041 pointer type mismatch.
5042
83c8f461 50431999-11-26 Richard M. Stallman <rms@gnu.org>
d01f3570
RS
5044
5045 * editfns.c (Fdelete_field): Make it noninteractive. Return nil.
5046
18df9369
GM
50471999-11-26 Gerd Moellmann <gerd@gnu.org>
5048
65a3ccf7
GM
5049 * puresize.h (BASE_PURESIZE): Increase to 550000.
5050
b3b98592
GM
5051 * textprop.c (set_text_properties): New function. Like
5052 Fset_text_properties, but with additional parameter
5053 SIGNAL_AFTER_CHANGE_P. If that is nil, don't signal after
5054 changes.
5055 (Fset_text_properties): Use it.
5056
5057 * insdel.c (insert_1_both): Call set_text_properties with last
5058 parameter nil so that no after changes will be signaled.
5059
5060 * lisp.h: Add prototype for set_text_properties.
5061
18df9369
GM
5062 * xfaces.c (set_lface_from_font_name): Fix previous change.
5063 (recompute_basic_faces): Change assert to abort.
5064
71a8e74b
DL
50651999-11-25 Dave Love <fx@gnu.org>
5066
5067 * fns.c (Fnthcdr, Fnreverse): Inline cdr.
5068 (Fmember, Fdelq, Fdelete): Inline car.
5069 (Fy_or_n_p): Doc fix.
5070
bc6a5782
GM
50711999-11-25 Gerd Moellmann <gerd@gnu.org>
5072
3221576b 5073 * xfaces.c (set_lface_from_font_name): New parameter may_fail_p.
18df9369 5074 Callers changed. If specified font name is bogus, and may_fail_p
3221576b
GM
5075 is not set, try to use a reasonable default.
5076
bc6a5782
GM
5077 * dispnew.c (direct_output_for_insert): Set glyph row's
5078 displays_text_p flag. Correct window's window_end_vpos if
5079 necessary.
5080
0c8559bb
PE
50811999-11-25 Paul Eggert <eggert@twinsun.com>
5082
5083 * emacs.c (fixup_locale): Don't bother to record initial locale.
5084 (synchronize_locale): If the desired locale is nil,
5085 treat it as if it were the empty string,
5086 so that we set the locale from the environment.
5087
35737351
KH
50881999-11-25 Kenichi Handa <handa@etl.go.jp>
5089
5090 * fileio.c (Finsert_file_contents): Set buffer-file-coding-system
5091 of the current buffer via Fset.
5092
5562b47f
DL
50931999-11-24 Dave Love <fx@gnu.org>
5094
5562b47f
DL
5095 * xfaces.c: Don't duplicate Qmode_line definition done elsewhere.
5096
5097 * xfns.c: Don't duplicate Qdisplay definition done elsewhere.
5098
00da0e4a
GM
50991999-11-24 Gerd Moellmann <gerd@gnu.org>
5100
5101 * lisp.h (enum pvec_type): Put PVEC_FLAG in #if 0.
5102
5103 * emacs.c (PVEC_FLAG): New variable.
5104
b1775dc1
GM
51051999-11-23 Gerd Moellmann <gerd@gnu.org>
5106
5107 * unexaix.c (unexec): Use unsigned instead of uintptr_t because
5108 that fails on IBM PowerPC, AIX 4.2.
427ec082 5109
08de6200
EZ
51101999-11-22 Eli Zaretskii <eliz@is.elta.co.il>
5111
5112 * buffer.c (syms_of_buffer): Add %z, %Z, %m and %& to the doc
5113 string of mode-line-format. Remove the obsolete %t.
5114
02fda8ff
GM
51151999-11-22 Gerd Moellmann <gerd@gnu.org>
5116
f2fa858f
GM
5117 * dispnew.c (direct_output_for_insert): Increment glyph positions
5118 for glyphs from buffer text only.
5119
02fda8ff
GM
5120 * emacs.c (gdb_valbits, gdb_gctypebits, gdb_emacs_intbits)
5121 (gdb_data_seg_bits): New variables.
427ec082 5122
02fda8ff
GM
5123 * lisp.h (enum gdb_lisp_params): Put in #if 0, since it doesn't
5124 work on systems not allowing enumerators > INT_MAX, and it
5125 won't work if EMACS_INT is long long.
5126
1b0d24e7
PE
51271999-11-22 Paul Eggert <eggert@twinsun.com>
5128
5129 Port to SunOS 4.1.x again. Help out with Alpha port.
5130 Rename messages-locale to system-messages-locale,
5131 and likewise for time-locale.
427ec082 5132
1b0d24e7
PE
5133 * callproc.c (strerror): Remove decl.
5134 * fileio.c (strerror): Likewise.
5135 * process.c (strerror): Likewise.
5136 * emacs.c (strerror): Likewise.
5137 (Vsystem_messages_locale): Renamed from Vmessages_locale.
5138 All uses changed.
5139 (Vprevious_system_messages_locale): Likewise, from
5140 Vprevious_messages_locale.
5141 (Vsystem_time_locale): Likewise, from Vtime_locale.
5142 (Vprevious_system_time_locale): Likewise, from Vprevious_time_locale.
5143 (ABORT_RETURN_TYPE): New macro.
5144 (abort): Return type is now ABORT_RETURN_TYPE.
5145 (main): Always invoke init_signals, even if POSIX_SIGNALS is not
5146 defined.
5147 (syms_of_emacs): messages-locale -> system-messages-locale,
5148 previous-messages-locale -> previous-system-messages-locale,
5149 time-locale -> system-time-locale,
5150 previous-time-locale -> previous-system-time-locale.
5151
5152 * gmalloc.c (PP, __ptr_t): Assume ANSI C if STDC_HEADERS is defined.
5153 (const): Do not define; that's config.h's job.
5154 (<limits.h>): Include if HAVE_LIMITS_H is defined.
5155 (CHAR_BIT): Move test for definedness outside of limits.h condition.
5156 (<stddef.h>): Include if STDC_HEADERS is defined.
5157 (FREE_RETURN_TYPE): New macro.
5158 (free): Return type is now FREE_RETURN_TYPE.
5159
5160 * lisp.h (synchronize_system_time_locale): Renamed from
5161 synchronize_time_locale. All uses changed.
5162 (synchronize_system_messages_locale): Likewise, from
5163 synchronize_messages_locale.
5164
5165 * m/alpha.h (malloc, realloc, calloc): Remove decls;
5166 stdlib.h now does this.
5167
5168 * process.c (sys_siglist): Remove.
5169
5170 * s/sunos4-0.h (ABORT_RETURN_TYPE, FREE_RETURN_TYPE):
5171 New macros.
5172
5173 * syntax.c (scan_sexps_forward): Use abort, not assert.
5174
5175 * sysdep.c (my_sys_siglist): New var.
5176 (sys_siglist): New macro. Remove old initialized vars of same name.
5177 (init_signals): Initialize sys_siglist.
5178
5179 * xfns.c (abort): Remove decl; stdlib.h now does this.
5180
0dcd5b54
DL
51811999-11-18 Dave Love <fx@gnu.org>
5182
946173ad
DL
5183 * filelock.c: Add forward declaration for get_boot_time_1.
5184
0dcd5b54
DL
5185 * dispnew.c (Finternal_show_cursor_p): Fix doc string.
5186
71447e8f
GM
51871999-11-18 Gerd Moellmann <gerd@gnu.org>
5188
5189 * buffer.h (struct buffer_text): Add comment about moving
5190 buffer text if REL_ALLOC is defined.
5191
eeedff63
KH
51921999-11-18 Kenichi Handa <handa@etl.go.jp>
5193
5194 * lisp.h (KEY_DESCRIPTION_SIZE): New macro.
5195
5196 * keyboard.c (echo_char): Use KEY_DESCRIPTION_SIZE to check free
5197 memory for push_key_description.
5198
5199 * keymap.c (Fsingle_key_description): Use KEY_DESCRIPTION_SIZE to
5200 allocate memory for push_key_description.
5201 (describe_buffer_bindings): Likewise.
5202
5d7e4a2c
GM
52031999-11-17 Gerd Moellmann <gerd@gnu.org>
5204
5205 * xfns.c (Fx_show_busy_cursor): Doc-fix.
5206 (Fx_hide_busy_cursor): Ditto.
5207
52081999-11-17 Marco Walther <walther@siemens-pyramid.com>
5209
5210 * unexsni.c (unexec): Handle .rel.dyn section.
5211
b5b41e02
DL
52121999-11-16 Dave Love <fx@gnu.org>
5213
5214 * doc.c (Fdocumentation): Remove gcpro here too.
5215
e35b6123
GM
52161999-11-16 Gerd Moellmann <gerd@gnu.org>
5217
5218 * keyboard.c (command_loop_1): Remove no_redisplay.
5219
83c8f461 52201999-11-16 Richard M. Stallman <rms@gnu.org>
0a14b9bb
GM
5221
5222 * print.c (PRINTPREPARE): Don't call setup_echo_area_for_printing
5223 in noninteractive.
5224
b05d3bee
GM
52251999-11-14 Gerd Moellmann <gerd@gnu.org>
5226
5bcfeb49
GM
5227 * xdisp.c (ensure_echo_area_buffers): New.
5228 (with_echo_area_buffer): Use it.
5229 (setup_echo_area_for_printing): Ditto.
5230
b05d3bee
GM
5231 * buffer.c (indicate-empty-lines): Doc-fix.
5232
9b2e6e4c
GM
52331999-11-12 Gerd Moellmann <gerd@gnu.org>
5234
e7f90eab
GM
5235 * term.c (term_init): If "op" isn't available, don't support color
5236 because we can't switch back to the default foreground and
5237 background.
5238
9b2e6e4c
GM
5239 * doc.c (Fdocumentation_property): Remove GCPRO because
5240 Fsubstitute_command_keys gcpro's the string.
5241
1bf21027
KH
52421999-11-12 Kenichi Handa <handa@etl.go.jp>
5243
5244 * editfns.c (Ftranslate_region): Check the buffer multibyteness.
5245
3bc6df53
GM
52461999-11-11 Gerd Moellmann <gerd@gnu.org>
5247
5248 * print.c, keymap.c, indent.c, insdel.c, keyboard.c, intervals.c,
5249 lread.c, textprop.c, undo.c, emacs.c, lisp.h, intervals.h,
5250 buffer.h, config.in, Makefile.in: Remove USE_TEXT_PROPERTIES.
5251
35a5514b
GM
52521999-11-10 Gerd Moellmann <gerd@gnu.org>
5253
5254 * xfns.c (QCuser_data): Removed.
5255 (syms_of_xfns): Initialization of QCuser_data removed.
5256 (parse_image_spec): Don't handle :user-data specially. Allow
5257 unknown keys. Remove parameter ALLOW_OTHER_KEYS.
5258 (xbm_image_p, xbm_load, xpm_image_p, pbm_image_p, png_image_p)
5259 (tiff_image_p, jpeg_image_p, gif_image_p, gs_image_p): Call
5260 parse_image_spec accordingly.
5261
83c8f461 52621999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5263
5264 * cmds.c (Fbeginning_of_line): Doc fix.
5265 (Fend_of_line): Doc fix.
5266
5267 * editfns.c (Fline_beginning_position): If N is not 1,
5268 pass t to Fconstrain_to_field for ESCAPE-FROM-EDGE.
5269
5270 * syntax.c (Fforward_word): Handle fields even if would have hit
5271 an edge of the buffer. Return nil if affected by fields.
5272
83c8f461 52731999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5274
5275 * editfns.c (preceding_pos): Function deleted.
5276 (text_property_stickiness): Decrement POS directly.
5277 Fix a confusion that used PT instead of POS.
5278
5279 * editfns.c (find_field): Properly handle the case
5280 of a field boundary where `field' inherits from neither side.
5281
5282 * editfns.c (Ffield_beginning, Ffield_end): Doc fixes.
5283 (Ferase_field, Ffield_string, Ffield_string_no_properties): Doc fixes.
5284
fa9aabf6
GM
52851999-11-08 Gerd Moellmann <gerd@gnu.org>
5286
5287 * bytecode.c (Fbyte_code) <BinsertN, Bcall>: Do the
5288 BEFORE_POTENTIAL_GC before DISCARD.
5289
4015b3c0
GM
52901999-11-07 Gerd Moellmann <gerd@gnu.org>
5291
033a5fa3
GM
5292 * alloc.c (Fgarbage_collect): Call unmark_byte_stack.
5293
5294 * lisp.h: Add prototype for unmark_byte_stack.
5295
5296 * bytecode.c (mark_byte_stack): Use XMARKBIT and XMARK.
5297 (unmark_byte_stack): Renamed from relocate_byte_pcs. Use
5298 XUNMARK.
5299
55b064bd
GM
5300 * xdisp.c (resize_mini_window): Fix computation of needed
5301 mini-window height.
5302
5303 * alloc.c, buffer.c, editfns.c, xdisp.c: Remove conditional
5304 compilation on USE_TEXT_PROPERTIES.
01e9b9df 5305
4015b3c0 5306 * Fbyte_code: Use block statements in cases and declare v1 and v2
60af03f1 5307 locally there. Rearrange case statements so that those most
4015b3c0
GM
5308 frequently executed come first. Avoid goto's in frequently
5309 executed cases.
5310
fe512f27
GM
53111999-11-05 Gerd Moellmann <gerd@gnu.org>
5312
dd59e217
GM
5313 * bytecode.c (Fbyte_code): Use BEFORE_POTENTIAL_GC and
5314 AFTER_POTENTIAL_GC around internal_catch.
5315
bcf28080
GM
5316 * alloc.c (Fgarbage_collect): Call mark_byte_stack and
5317 relocate_byte_pcs.
5318 (init_alloc_once, init_alloc): Set byte_stack_list to null.
5319
5320 * eval.c (struct catchtag): Add member byte_stack.
5321 (internal_catch, Fcondition_case, internal_condition_case)
dd59e217 5322 (internal_condition_case_1): Save value of byte_stack_list in
bcf28080
GM
5323 catchtag.
5324 (unwind_to_catch): Restore byte_stack_list from catchtag.
5325
5326 * lisp.h: Add prototypes for new functions in bytecode.c.
5327 Add extern declaration for byte_stack_list.
5328
5329 * bytecode.c (struct byte_stack): New.
5330 (byte_stack_list, mark_byte_stack, relocate_byte_pcs): New
5331 (BEFORE_POTENTIAL_GC, AFTER_POTENTIAL_GC): New.
5332 (FETCH, PUSH, POP, DISCARD, TOP, MAYBE_GC): Rewritten.
5333 (HANDLE_RELOCATION): Removed.
5334 (Fbyte_code): Use byte_stack structures.
5335
4d59c34c
GM
5336 * filelock.c (Ffile_locked_p): Make FILENAME a required argument.
5337
fe512f27
GM
5338 * buffer.c (syms_of_buffer): Extend documentation of
5339 mode-line-format.
5340
60b64cd6
GM
53411999-11-04 Gerd Moellmann <gerd@gnu.org>
5342
5343 * editfns.c (Fdelete_field): Renamed from Ferase_field.
5344
5345 * minibuf.c (do_completion, Fminibuffer_complete_word): Use
5346 Ferase_field instead of Fdelete_field.
5347
b51b619b
GM
53481999-11-03 Gerd Moellmann <gerd@gnu.org>
5349
5350 * dispnew.c (Finternal_show_cursor): Change it to set the
5351 cursor on/off, not toggle its state.
5352 (Finternal_show_cursor_p): New.
5353 (syms_of_display): Defsubr Sinternal_show_cursor_p.
5354
5865af0d
DL
53551999-11-03 Dave Love <fx@gnu.org>
5356
5357 * charset.c (split_non_ascii_string): Define return value.
5358
82a700f3
GM
53591999-11-03 Gerd Moellmann <gerd@gnu.org>
5360
edfef199
GM
5361 * minibuf.c (string_to_object): New.
5362 (read_minibuf_noninteractive): New.
5363 (read_minibuf): Call read_minibuf_noninteractive if
5364 noninteractive. Use string_to_object.
5365
82a700f3
GM
5366 * doc.c (Fdocumentation_property): Fix bug bypassing UNGCPRO.
5367
b5540f0d
DL
53681999-11-02 Dave Love <fx@gnu.org>
5369
e69dcd60
DL
5370 * gnu-linux.h: Use SIGCHLD, not SIGCLD (not in glibc 2.1).
5371
827a1788
DL
5372 * process.c: Define _GNU_SOURCE before config.h to get strsignal
5373 declared with glibc2.
b5540f0d 5374
a69a6e61
GM
53751999-11-02 Gerd Moellmann <gerd@gnu.org>
5376
5377 * lisp.h (QUIT): Give it statement form.
5378
87e21fbd
DL
53791999-11-02 Dave Love <fx@gnu.org>
5380
5381 * eval.c (init_eval): Conditionalize declaration of gcpro_level.
5382
1b335865
GM
53831999-11-02 Gerd Moellmann <gerd@gnu.org>
5384
9fb5e03d
GM
5385 * xfns.c (QCuser_data): New.
5386 (syms_of_xfns): Initialize QCuser_data.
5387 (parse_image_spec): Ignore :user-data DATA properties.
5388
1b335865
GM
5389 * xdisp.c (display_line): Set charpos of first glyph in blank
5390 lines not corresponding to any text to -1, even if no glyphs are
5391 filled in in that line.
5392
e76f1c44
GM
53931999-11-01 Gerd Moellmann <gerd@gnu.org>
5394
427ec082 5395 * xfns.c (png_load) [PNG_READ_sRGB_SUPPORTED]: Put code using
36fcd3d9
GM
5396 png_get_sRGB in #ifdef.
5397
111259b4
GM
5398 * dispnew.c (Finternal_show_cursor): Renamed from Fshow_cursor.
5399 (syms_of_display): Use the new name.
5400
dd5c96e8
GM
5401 * textprop.c (verify_interval_modification): Signal text-read-only
5402 instead of calling error.
5403
db8878fb
GM
5404 * data.c (Qtext_read_only): New built-in error.
5405 (syms_of_data): Initialize it.
5406
5407 * lisp.h: Add extern declaration for Qtext_read_only.
5408
e76f1c44
GM
5409 * syntax.c: Remove whitespace after open or in front of closing
5410 parentheses.
5411
83c8f461 54121999-11-01 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
5413
5414 * Makefile.in (w16select.o, sound.o): Don't depend on lisp.h.
5415
7843e09c
GM
54161999-10-31 Gerd Moellmann <gerd@gnu.org>
5417
575ed805
GM
5418 * xdisp.c (resize_mini_window): Compute needed height differently.
5419
7843e09c
GM
5420 * fns.c (Flength): Unroll loop over lists.
5421
5422 * xdisp.c (append_space): Return non-zero if space was appended.
5423 (display_line): Set charpos of first glyph to -1 only if that
5424 glyph is the space added by append_glyph.
5425
83c8f461 54261999-10-30 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
5427
5428 * print.c (strout): Consider `noninteractive' and use stdout
5429 only when PRINTCHARFUN is t.
5430
5431 * lisp.h (struct gcpro) [DEBUG_GCPRO]: New field `level'.
5432 (gcpro_level): Declare it extern.
5433 [DEBUG_GCPRO] (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5):
5434 Alternate definitions that set `level' and increment `gcpro_level'.
5435 [DEBUG_GCPRO] (UNGCPRO): Alternate definition that checks gcpro_level.
5436
5437 * eval.c [DEBUG_GCPRO] (gcpro_level): New variable.
5438 (init_eval) [DEBUG_GCPRO]: Initialize it.
5439 (unwind_to_catch) [DEBUG_GCPRO]: Set gcpro_level
5440 from remaining gcprolist.
5441
3636f7a3
KH
54421999-10-29 Kenichi Handa <handa@etl.go.jp>
5443
5444 * coding.c (code_convert_region): Update `dst' correctly.
5445
a2ad7096
GM
54461999-10-28 Gerd Moellmann <gerd@gnu.org>
5447
5448 * fns.c (Fmemq, Fassq, Frassq, assq_no_quit, Fassoc)
5449 (Frassoc): Rewritten.
5450
1e3196e8
GM
54511999-10-27 Noah Friedman <friedman@splode.com>
5452
5453 * s/gnu-linux.h [HAVE_DEV_PTMX]: Redefine FIRST_PTY_LETTER to 'z'.
5454 Define PTY_NAME_SPRINTF.
5455 Redefine PTY_TTY_NAME_SPRINTF.
5456 * config.in: Add undef for HAVE_DEV_PTMX.
5457
83c8f461 54581999-10-26 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5459
5460 * regex.c (POP_FAILURE_POINT): Use failure_id.integer
5461 as arg to DEBUG_POP and DEBUG_PRINT.
5462
83c8f461 54631999-10-27 Richard M. Stallman <rms@gnu.org>
17dbfaad
GM
5464
5465 * data.c (Qad_activate_internal): Renamed from Qad_activate.
5466 (Ffset): Call Qad_activate_internal.
5467 (syms_of_data): Initialize Qad_activate_internal.
5468
26922151
GM
54691999-10-27 Gerd Moellmann <gerd@gnu.org>
5470
5471 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing if
5472 Vterminal_frame is selected and Vwindow_system is non-nil.
5473
67a5596f
GM
54741999-10-26 Gerd Moellmann <gerd@gnu.org>
5475
2bea706b
GM
5476 * xdisp.c (echo_area_display): Put previous change in #if 0.
5477
67a5596f
GM
5478 * emacs.c (standard_args): Add `file' as synonym for `visit',
5479 `execute' as synonym for `eval'.
5480 (main): Add new options to usage message.
5481
81dc5de5
GM
54821999-10-25 Gerd Moellmann <gerd@gnu.org>
5483
5484 * data.c (Qhash_table): New.
5485 (Ftype_of): Return it for hash tables.
5486 (syms_of_data): Initialize Qhash_table.
5487
83c8f461 54881999-10-25 Richard M. Stallman <rms@gnu.org>
bd3c545d
GM
5489
5490 * regex.c (POP_FAILURE_POINT): Extract failure_id as an integer.
5491
66e4690f 54921999-10-24 Ken Raeburn <raeburn@gnu.org>
3a7093d8 5493
7539e11f
KR
5494 * alloc.c: Undef HIDE_LISP_IMPLEMENTATION before including
5495 lisp.h.
5496
5497 * buffer.c (Fbuffer_list, Fget_file_buffer, get_truename_buffer,
5498 Fbuffer_local_variables, Fother_buffer, record_buffer,
5499 set_buffer_internal_1, Fbury_buffer, Fkill_all_local_variables,
5500 swap_out_buffer_local_variables, overlays_at, overlays_in,
5501 overlay_touches_p, overlay_strings, recenter_overlay_lists,
5502 fix_overlays_in_range, fix_overlays_before, Foverlay_get,
5503 Foverlay_put, report_overlay_modification, evaporate_overlays):
5504 Use XCAR, XCDR, and XFLOAT_DATA instead of explicit member
5505 references.
5506 * data.c (Fcar, Fcar_safe, Fcdr, Fcdr_safe, Fsetcar, Fsetcdr,
5507 swap_in_symval_forwarding, set_internal, default_value,
5508 Fset_default, Fmake_variable_buffer_local, Fmake_local_variable,
5509 Fmake_variable_frame_local, Flocal_variable_p,
5510 Flocal_variable_if_set_p, arithcompare, Fzerop, cons_to_long,
5511 Fnumber_to_string, float_arith_driver, Fadd1, Fsub1): Likewise.
5512 * dispnew.c (Fframe_or_buffer_changed_p): Likewise.
5513 * emacs.c (main): Likewise.
5514 * fontset.c (fs_load_font, fs_register_fontset,
5515 CACHED_FONTSET_NAME, CACHED_FONTSET_REGEX, Fquery_fontset,
5516 Fnew_fontset, Fset_fontset_font): Likewise.
5517 * frame.c (do_switch_frame, next_frame, prev_frame,
5518 other_visible_frames, Fdelete_frame, Fvisible_frame_list):
5519 Likewise.
5520 * keyboard.c (read_char, help_char_p, event_to_kboard,
5521 kbd_buffer_get_event, timer_start_idle, timer_check,
5522 make_lispy_event, apply_modifiers, reorder_modifiers,
5523 Fevent_convert_list, lucid_event_type_list_p, menu_bar_items,
5524 menu_bar_one_keymap, menu_item_eval_property_1, parse_menu_item,
5525 tool_bar_items, read_char_x_menu_prompt, read_key_sequence,
5526 Fcommand_execute, Fexecute_extended_command): Likewise.
5527 * minibuf.c (read_minibuf, get_minibuffer, Ftry_completion,
5528 Fall_completions): Likewise.
5529 * window.c (Fset_window_margins): Likewise.
5530
5531 * callint.c (quotify_args): Don't explicitly use struct
5532 Lisp_Cons, use Lisp_Object and XCAR/XCDR instead.
5533
3a7093d8
KR
5534 * s/netbsd.h (HAVE_GETLOADAVG): Define as 1.
5535 (UNEXEC, START_FILES, LIB_STANDARD, LIB_GCC): Define ELF versions,
5536 if __ELF__ is defined.
5537
2a3d7146
GM
55381999-10-24 Gerd Moellmann <gerd@gnu.org>
5539
5540 * window.c (Fnext_window): Add a QUIT in the loop.
5541
8ac52782
GM
55421999-10-23 Gerd Moellmann <gerd@gnu.org>
5543
427ec082 5544 * Makefile.in (bootstrap, bootstrap-emacs, bootstrap-temacs):
8ac52782
GM
5545 New targets.
5546
05f0d15a
DL
55471999-10-22 Dave Love <fx@gnu.org>
5548
5549 * emacs.c (main): Enable profiling conditional on __linux also.
5550
882fb0e6
GM
55511999-10-20 Gerd Moellmann <gerd@gnu.org>
5552
5553 * xrdb.c (x_load_resources): Set default resources for resource
5554 classes instead of for the specific Emacs.
5555
b5f5bc31
GM
55561999-10-19 Gerd Moellmann <gerd@gnu.org>
5557
66f4dd69
GM
5558 * s/freebsd.h (HAVE_GETLOADAVG): Define as 1 because config.h
5559 defines it that way.
427ec082 5560
b5f5bc31
GM
5561 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing
5562 if selected_frame is equal to Vterminal_frame.
5563
68c45bf0 55641999-10-19 Paul Eggert <eggert@twinsun.com>
427ec082 5565
68c45bf0 5566 Add support for large files, 64-bit Solaris, system locale codings.
427ec082 5567
68c45bf0
PE
5568 * Makefile.in (emacs): Set the LC_ALL environment variable to "C"
5569 when dumping, so that the dumped Emacs doesn't have stray locale info.
5570 (dired.o): Depend on systime.h.
5571 (editfns.o): Depend on coding.h.
5572
5573 * alloc.c, buffer.c, callproc.c, ccl.c, charset.c, coding.c, data.c,
5574 dispnew.c, editfns.c, emacs.c, filelock.c, floatfns.c, hftctl.c,
5575 keyboard.c, process.c, sysdep.c, unexelf.c, unexhp9k800.c,
5576 unexsunos4.c, vmsfns.c, vmsgmalloc.c, w32faces.c, w32menu.c, w32term.c,
5577 w32xfns.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
5578 Include <config.h> before any system include files.
5579
5580 * alloc.c, buffer.c, ccl.c, data.c, editfns.c, emacs.c, eval.c,
5581 fileio.c, filelock.c, frame.c, insdel.c, keymap.c, lread.c,
5582 m/alpha.h, print.c, search.c, sysdep.c, xdisp.c, xfaces.c, xfns.c,
5583 xmenu.c, xterm.c:
5584 Do not include <stdlib.h>, as <config.h> does this now.
5585
5586 * callproc.c (Fcall_process):
5587 Synchronize messages locale before invoking strerror.
5588 Decode resulting string with locale-coding-system.
5589
5590 * coding.c (Vlocale_coding_system): New var.
5591 (syms_of_coding): Adjust to above change.
5592 (emacs_strerror): New function.
5593
5594 * coding.h (emacs_strerror, Vlocale_coding_system): New decls.
427ec082 5595
68c45bf0
PE
5596 * config.in (HAVE_STDIO_EXT_H, HAVE_TM_GMTOFF, HAVE___FPENDING,
5597 HAVE_FTELLO, HAVE_GETLOADAVG, HAVE_MBLEN, HAVE_MBRLEN,
5598 HAVE_STRSIGNAL): New macros.
5599 (BITS_PER_LONG): Default to 64 if _LP64 is defined.
5600 <stdlib.h>: Include if HAVE_STDLIB_H is defined and NOT_C_CODE isn't.
5601
5602 * dired.c: Include "systime.h".
5603 (Ffile_attributes): Do not cast s.st_size to int; this loses
5604 information if int is 32 bits but st_size and EMACS_INT are larger.
5605 Treat large device numbers like large inode numbers.
5606
5607 * dispnew.c (PENDING_OUTPUT_COUNT): Use __fpending if available.
5608
5609 * editfns.c: Include coding.h.
5610 (emacs_strftime): Remove decl.
5611 (emacs_strftimeu): New decl.
5612 (emacs_memftimeu): Renamed from emacs_memftime; new arg UT.
5613 Use emacs_strftimeu instead of emacs_strftime.
5614 (Fformat_time_string): Convert format string using
5615 Vlocale_coding_system, and convert result back. Synchronize time
5616 locale before invoking lower level function. Invoke
5617 emacs_memftimeu, passing ut, instead of emacs_memftime.
427ec082 5618
68c45bf0
PE
5619 * emacs.c: Include <locale.h> if HAVE_SETLOCALE is defined.
5620 (Vmessages_locale, Vprevious_messages_locale, Vtime_locale,
5621 Vprevious_time_locale): New variables.
5622 (main): Invoke setlocale early, so that initial error messages are
5623 localized properly. But skip locale-setting if LC_ALL is "C".
5624 Fix up locale when it's safe to do so.
5625 (fixup_locale): Moved here from xterm.c.
5626 (synchronize_locale, synchronize_time_locale,
5627 synchronize_messages_locale): New functions.
5628 (syms_of_emacs): Accommodate above changes.
5629
5630 * fileio.c (report_file_error): Convert strerror output according
5631 to Vlocale_coding_system.
5632 (Finsert_file_contents): Check for arithmetic overflow in
5633 computations that depend on file size. Report IO errors
5634 with emacs_strerror, not strerror.
5635
5636 * fns.c (Fgethash): Declare dflt parameter.
5637
5638 * gmalloc.c: Do not define const to nothing if HAVE_CONFIG_H
5639 is defined; that's config.h's job.
5640
5641 * lisp.h (EMACS_INT, BITS_PER_EMACS_INT, EMACS_UINT): If _LP64,
5642 default these values to long, BITS_PER_LONG, and unsigned long.
5643 (VALBITS, MARKBIT, XINT): Do not assume 32-bit EMACS_INT.
5644 (PNTR_COMPARISON_TYPE): Default to EMACS_UINT, not to unsigned int.
5645 (code_convert_string_norecord, fixup_locale,
5646 synchronize_messages_locale, synchronize_time_locale,
5647 emacs_open, emacs_close, emacs_read, emacs_write): New decls.
5648 All Emacs callers of open, close, read, write changed to use
5649 emacs_open, emacs_close, emacs_read, emacs_write.
5650
5651 * lread.c (file_offset, file_tell): New macros. All uses of ftell
5652 changed to file_tell.
5653 (saved_doc_string_position, prev_saved_doc_string_position): Now
5654 of type file_offset.
5655 (init_lread): Do not fix locale here; fixup_locale now does this.
5656
5657 * m/amdahl.h, s/usg5-4.h:
5658 (NSIG): Remove.
5659 (NSIG_MINIMUM): New macro.
5660
5661 * m/cydra5.h, m/dpx2.h, m/mips.h, m/pfa50.h, m/sps7.h, m/stride.h,
5662 m/ustation.h, s/gnu-linux.h, s/hpux.h, s/iris3-5.h, s/iris3-6.h,
5663 s/umips.h, s/usg5-4.h:
5664 (SIGIO): Do not undef.
5665 (BROKEN_SIGIO): New macro.
5666
5667 * m/ustation.h:
5668 (SIGTSTP): Do not undef.
5669 (BROKEN_SIGTSTP): New macro.
5670
5671 * s/gnu-linux.h:
5672 (SIGPOLL, SIGURG): Do not undef.
5673 (BROKEN_SIGPOLL, BROKEN_SIGURG): New macros.
5674
5675 * s/ptx4.h:
5676 (SIGINFO): Do not undef.
5677 (BROKEN_SIGINFO): New macros.
427ec082 5678
68c45bf0
PE
5679 * m/delta.h, s/ptx.h, s/template.h: Doc fix.
5680
5681 * mktime.c, strftime.c: Update to glibc 2.1.2 version, with
5682 some Emacs-related changes merged.
5683
5684 * print.c (float_to_string): Prepend "-" to representation of a
5685 NaN if the NaN is negative.
5686
5687 * process.c (sys_siglist): Omit if HAVE_STRSIGNAL.
5688 (wait_reading_process_input): Use emacs_strerror, not strerror.
427ec082 5689
68c45bf0
PE
5690 * process.c (status_message, sigchld_handler): Synchronize locale,
5691 then use strsignal istead of sys_siglist.
5692 * w32proc.c (sys_wait): Likewise.
427ec082 5693
68c45bf0
PE
5694 * s/aix3-1.h, s/bsd4-1.h, s/dgux.h, s/gnu-linux.h, s/hiuxmpp.h,
5695 s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/osf1.h, s/rtu.h,
5696 s/sunos4-1.h, s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h,
5697 s/usg5-2.h, s/usg5-3.h, s/xenix.h:
5698 (open, close, read, write, INTERRUPTIBLE_OPEN,
5699 INTERRUPTIBLE_CLOSE, INTERRUPTIBLE_IO): Remove.
5700
5701 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): New macros.
5702
5703 * sysdep.c (sys_read, sys_write, read, write, sys_close, close,
5704 sys_open, open): Remove.
5705 (emacs_open, emacs_close, emacs_read, emacs_write): Always define;
5706 the old INTERRUPTIBLE_OPEN, INTERRUPTIBLE_CLOSE, and INTERRUPTIBLE_IO
5707 macros are no longer used.
5708 (emacs_open): Renamed from sys_open. Merge BSD4_1 version.
5709 (emacs_close): Renamed from sys_close.
5710 (emacs_read): Renamed from sys_read.
5711 (emacs_write): Renamed from sys_write.
5712 (sys_siglist): Do not declare if HAVE_STRSIGNAL.
5713 (dup2): Do not print error on failure; the real dup2 doesn't.
5714 (strsignal): New function, defined if !HAVE_STRSIGNAL.
5715
5716 * syssignal.h (SIGINFO): Undef if defined and if BROKEN_SIGINFO
5717 is defined.
5718 (SIGIO, SIGPOLL, SIGTSTP, SIGURG): Likewise.
5719 (NSIG): If less than NSIG_MINIMUM, define to NSIG_MINIMUM.
5720 (strsignal): Declare if !HAVE_STRSIGNAL.
5721
5722 * unexelf.c (ElfBitsW, ELFSIZE, ElfExpandBitsW): New macros.
5723 (ElfW): Define in terms of ElfExpandBitsW.
5724
5725 * w32proc.c (sys_siglist): Remove decl.
5726
5727 * xdisp.c (decode_mode_spec): 3rd arg is int, not char, to comply
5728 with ANSI C.
5729 (display_string): Declare face_string_pos arg.
5730
5731 * xfns.c (Fx_show_tip): Declare timeout param.
5732
5733 * xterm.c: No need to include locale.h.
5734 (x_alloc_lighter_color, x_setup_relief_color):
5735 Pass arg as double, not float, for compatibility with ANSI C.
5736 (fixup_locale): Move to emacs.c.
5737 (x_term_init): Do not setlocale or fixup locale; the main program
5738 does this now.
5739
2f0b74ea
DL
57401999-10-18 Dave Love <fx@gnu.org>
5741
5742 * doc.c (Fdocumentation_property): Gcpro `tem'.
5743
471aa4a0
KH
57441999-10-18 Kenichi Handa <handa@etl.go.jp>
5745
5746 * lread.c (Fload): Calculate bytes of filename correctly.
5747 (openp): Likewise.
5748
aca2020b
KH
57491999-10-18 Keisuke Nishida <kxn30@po.cwru.edu>
5750
5751 * print.c (print_preprocess): In case print-circle is nil,
5752 add OBJ to Vprint_number_table only when OBJ is a symbol.
5753
1f5fe392 57541999-10-18 Kenichi Handa <handa@etl.go.jp>
b843d1ae
KH
5755
5756 * coding.c (code_convert_string): Add record_unwind_protect to
5757 assure setting inhibit_pre_post_conversion back to zero. Take
5758 care of the multibyteness of the working buffer.
5759
5760 * coding.c (inhibit_pre_post_conversion): New variable.
5761 (setup_coding_system): If inhibit_pre_post_conversion is nonzero,
5762 ignore post-read-conversion and pre-write-conversion property of
5763 the coding system.
5764 (code_convert_region_unwind): New function.
5765 (code_convert_region): Set inhibit_pre_post_conversion to 1 while
5766 running pre-write-conversion and post-read-conversion.
5767 (code_convert_string): Likewise.
5768
cd876a91
GM
57691999-10-17 Miles Bader <miles@gnu.org>
5770
5771 * editfns.c: Doc fix.
5772
57731999-10-17 Miles Bader <miles@gnu.org>
5774
5775 * editfns.c (Fconstrain_to_field): Make sure we don't violate the
5776 argument preconditions of find_before_next_newline in the case
5777 where both ONLY_IN_LINE and ESCAPE_FROM_EDGE are set and OLD_POS
5778 was indeed at the edge.
5779
57801999-10-17 Miles Bader <miles@gnu.org>
5781
5782 * minibuf.c (Fminibuffer_complete_and_exit): Supply value for new
5783 ESCAPE_FROM_EDGE parameter to Ffield_beginning.
5784
5785 * editfns.c (text_property_eq, text_property_stickiness): Don't
5786 use initializers for auto variables of type Lisp_Object.
5787 (find_field): Likewise. Use braces around nested ifs.
5788 (Fline_end_position): Store the raw eol in a variable, so that the
5789 final expression doesn't look so ugly.
5790 (Fconstrain_to_field): Doc fix.
5791 (preceding_pos): Renamed from `preceeding_pos'.
5792 (text_property_stickiness, find_field): Call preceding_pos,
5793 not preceeding_pos.
5794
57951999-10-17 Miles Bader <miles@gnu.org>
5796
5797 * editfns.c (Ffield_string_no_properties): New function.
5798 (text_property_stickiness, preceeding_pos): New functions.
5799 (Ffield_string): Remove PROPS parameter.
5800 (find_field): Add MERGE_AT_BOUNDARY parameter.
5801 Rewrite to use stickiness of `field' property to resolve
5802 ambiguous cases.
5803 (Ffield_beginning, Ffield_end): Add ESCAPE_FROM_EDGE parameter.
5804 (Fconstrain_to_field): Likewise.
5805 (syms_of_editfns): Init Sfield_string_no_properties.
427ec082 5806 (Ffield_string, Ferase_field, Ffield_end):
cd876a91
GM
5807 Supply new MERGE_AT_BOUNDARY argument to find_field.
5808 (Fline_beginning_position, Fline_end_position): Supply new
5809 ESCAPE_FROM_EDGE parameter to Fconstrain_to_field.
5810 Pass a value of Qt for the ONLY_IN_LINE argument to
5811 Fconstrain_to_field (only matters if N != 1).
5812 * syntax.c (Fforward_word): Supply new ESCAPE_FROM_EDGE parameter
5813 to Fconstrain_to_field.
5814
5815 * minibuf.c (Fminibuffer_complete_word): Use
5816 Ffield_beginning to find the prompt end.
5817
58181999-10-17 Miles Bader <miles@gnu.org>
5819
5820 * editfns.c (Fconstrain_to_field): Add get/set-current-point
5821 behavior when NEW_POS is nil.
5822 (find_field): Use XSETFASTINT instead of make_number.
5823 * minibuf.c (Fminibuffer_complete_and_exit): Test for an empty
5824 input string by seeing where the field begins, instead of
5825 looking at text-properties.
5826
58271999-10-17 Miles Bader <miles@gnu.org>
5828
5829 * editfns.c (Qfield): New variable.
5830 (find_field, Ferase_field, Ffield_string,
5831 Ffield_beginning, Ffield_end, Fconstrain_to_field): New functions.
5832 (Fline_beginning_position, Fline_end_position): Constrain to any field.
5833 (make_buffer_string_both): Remove minibuffer-prompt hack.
5834 (syms_of_editfns): Initialize Qfield, and subr entries for
5835 field functions above.
5836 * minibuf.c (read_minibuf): Don't save minibuffer prompt length on
5837 minibuf_save_list.
5838 Don't initialize minibuffer prompt length.
5839 Wrap prompt text-properties around the entire prompt.
5840 Add 'prompt text-property to prompt.
5841 Get final value with Ffield_string instead of make_buffer_string.
5842 (read_minibuf_unwind): Don't restore minibuffer prompt length from
5843 minibuf_save_list.
5844 (do_completion): Get minibuffer input with Ffield_string
5845 instead of Fbuffer_string.
5846 Erase minibuffer input with Ferase_field instead of erase_buffer.
5847 (Fminibuffer_complete_and_exit): Likewise.
5848 Test whether buffer is empty by looking for the 'prompt text
5849 property at the end.
5850 Set prompt length by looking for the end of the prompt text property,
5851 and save prompt length for later use (since there is no longer a
5852 buffer variable to get it from).
5853 (Fminibuffer_prompt_width, Fminibuffer_prompt_end): Functions removed.
5854 (syms_of_minibuf): Remove initializations of
5855 Sminibuffer_prompt_width and Sminibuffer_prompt_end.
5856 * buffer.h (struct buffer): Remove prompt_end_charpos field.
427ec082 5857 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer, Fkill_buffer):
cd876a91
GM
5858 Don't initialize prompt_end_charpos field.
5859 * syntax.c (Fforward_word): Likewise.
5860 Constrain to any field.
5861
3f6f7508
GM
58621999-10-16 Gerd Moellmann <gerd@gnu.org>
5863
5864 * window.c (enum save_restore_action): New.
5865 (save_restore_orig_size): Change parameter list. Add
5866 functionality to check for valid orig_top and orig_height members
5867 in a window tree.
5868 (grow_mini_window): Call save_restore_orig_size with new parameter
5869 list.
5870 (shrink_mini_window): Restore old window sizes only if old
5871 size information is valid in all windows in a window tree.
427ec082 5872
06482119
GM
58731999-10-15 Gerd Moellmann <gerd@gnu.org>
5874
2710454d
GM
5875 * xmenu.c (set_frame_menubar): Don't call
5876 x_set_menu_resources_from_menu_face here.
5877 (update_frame_menubar): Call x_set_menu_resources_from_menu_face.
5878
06482119
GM
5879 * xfns.c (gif_load): Fix handling of interlaced GIFs.
5880
17fa2837
DL
58811999-10-14 Dave Love <fx@gnu.org>
5882
5883 * xdisp.c (handle_fontified_prop): GCPRO `pos'.
5884
45f93416
GM
58851999-10-14 Gerd Moellmann <gerd@gnu.org>
5886
5887 * process.c (Fopen_network_stream): Don't loop if gethostbyname
5888 fails and h_errno is TRY_AGAIN.
5889
c765b723
DL
58901999-10-13 Dave Love <fx@gnu.org>
5891
5892 * filelock.c (lock_file): Move gcpro of `fn'.
5893
dace7f4e
GM
58941999-10-10 Gerd Moellmann <gerd@gnu.org>
5895
5896 * keyboard.c (auto-save-interval): Fix documentation.
427ec082 5897
83c8f461 58981999-10-09 Richard M. Stallman <rms@gnu.org>
73fb36f1
RS
5899
5900 * print.c (print): When removing objects from Vprint_number_table,
5901 only scan the newly added objects.
5902 (print_preprocess): If OBJ is a gensym, and print-continuous-numbering,
5903 unconditionally force it to stay in the table.
5904
85177c86
GM
59051999-10-09 Gerd Moellmann <gerd@gnu.org>
5906
5907 * xfns.c (prepare_image_for_display): Don't try to load image if
5908 loading it failed before.
5909 (lookup_image, prepare_image_for_display): Remember if loading the
5910 image failed.
5911 (xpm_load): Add missing UNBLOCK_INPUT.
5912
5913 * dispextern.h (struct image): New member load_failed_p.
5914
11e4de5d
SM
59151999-10-08 Stefan Monnier <monnier@cs.yale.edu>
5916
f28eba7b 5917 * fileio.c (Fmake_temp_name): Add a reference to `make-temp-file'
11e4de5d
SM
5918 in the docstring.
5919
f1da8f06
GM
59201999-10-08 Gerd Moellmann <gerd@gnu.org>
5921
5922 * xterm.c (XTread_socket) <ClientMessage, WM_TAKE_FOCUS>:
5923 Don't call XSetInputFocus because that can generate additional
5924 FocusIn events.
427ec082 5925
c37bbd4f
GM
59261999-10-07 Jeffrey C Honig <jch@bsdi.com>
5927
5928 * bsdos4.h [HAVE_LIBNCURSES]: Define TERMINFO and LIBS_TERMCAP.
5929
83c8f461 59301999-10-07 Richard M. Stallman <rms@gnu.org>
78cc5c64
GM
5931
5932 * process.c (wait_reading_process_input): When trying to suck
5933 input from one process, for accept-process-output,
5934 exit that loop if we get EAGAIN or EWOULDBLOCK.
5935
577d9e2f
GM
59361999-10-07 Gerd Moellmann <gerd@gnu.org>
5937
5938 * xfaces.c (Qbitmap_spec_p): Replaces Qpixmap_spec_p.
5939 (Fbitmap_spec_p): Replaces Fpixmap_spec_p.
5940 (load_pixmap): Use Fbitmap_spec_p and Qbitmap_spec_p instead of
5941 Fpixmap_spec_p and Qpixmap_spec_p.
5942 (load_face_colors, check_lface_attrs,
5943 merge_face_vector_with_property,
5944 Finternal_set_lisp_face_attribute): Use Fbitmap_spec_p.
5945 (syms_of_xfaces): Initialize Qbitmap_spec_p, defsubr
5946 Fbitmap_spec_p.
5947
f5737ad2
GM
59481999-10-07 Gerd Moellmann <gerd@gnu.org>
5949
5950 * xdisp.c (display_menu_bar): Use MENU_FACE_ID instead of
5951 MODE_LINE_FACE_ID.
5952
5953 * xfaces.c (toplevel) [USE_MOTIF]: Include some Motif headers.
5954 (struct x_resources) [USE_X_TOOLKIT]: New.
5955 (xm_apply_resources, xm_set_menu_resources_from_menu_face)
5956 [USE_MOTIF]: New.
5957 (xl_apply_resources, xl_set_menu_resources_from_menu_face)
5958 [USE_LUCID]: New.
5959 (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]: New.
5960 (Qmenu): New.
5961 (syms_of_xfaces): Initialize Qmenu.
5962 (realize_basic_faces): Realize face `menu'.
5963 (resolve_face_name): New.
5964 (lface_from_face_name): Use it.
5965 (Finternal_set_lisp_face_attribute): Ditto.
5966 (Fpixmap_spec_p): Rewritten. Extend doc string.
5967
5968 * xmenu.c (set_frame_menubar, xmenu_show): Call
5969 x_set_menu_resources_from_menu_face.
5970
5971 * dispextern.h (enum face_id): Add MENU_FACE_ID.
5972 (toplevel): Include X11/Intrinsic.h.
5973
6a1aa823
DL
59741999-10-03 Ken'ichi Handa <handa@gnu.org>
5975
5976 * coding.c (DECODE_CHARACTER_ASCII): Decode ASCII invocated to GR
5977 correctly.
5978
26901792
DL
59791999-09-30 Kenichi Handa <handa@etl.go.jp>
5980
5981 * category.c (modify_lower_category_set): Set default value of
5982 TABLE correctly.
5983
5984 * minibuf.c (Fminibuffer_complete_word): Calculate string byte
5985 size correctly.
5986
59871999-09-29 Gerd Moellmann <gerd@gnu.org>
5988
5989 * editfns.c (Fpropertize): Renamed from Fproperties.
5990
59911999-09-29 Gerd Moellmann <gerd@gnu.org>
5992
5993 * xdisp.c (resize_mini_window): Do nothing if frame is an X
5994 frame that hasn't been initialized yet.
5995
83c8f461 59961999-09-28 Richard M. Stallman <rms@gnu.org>
a04f1a93
PR
5997
5998 * keymap.c (Fsingle_key_description): Make tem big enough.
5999 (describe_buffer_bindings): Make buf big enough.
6000
83c8f461 60011999-09-27 Richard M. Stallman <rms@gnu.org>
d177c583
PR
6002
6003 * intervals.c (get_local_map): Use indirect_function,
6004 not Findirect_function.
6005
26901792
DL
60061999-09-27 Dave Love <fx@gnu.org>
6007
6008 * cm.h: Remove unneeded declaration of ospeed.
6009
60101999-09-26 Gerd Moellmann <gerd@gnu.org>
6011
6012 * lisp.h (toplevel): Add prototype for
6013 next_single_char_property_change.
6014
6015 * textprop.c (next_single_char_property_change): New.
6016
6017 * xdisp.c (display_prop_end, invisible_text_between_p): Use
6018 next_single_char_property_change.
6019
60201999-09-25 Gerd Moellmann <gerd@gnu.org>
6021
6022 * editfns.c (Fproperties): New.
6023 (syms_of_editfns): Defsubr it.
6024
6025 * xfns.c (lookup_image): Set image's timestamp because it's
6026 used when we look it up.
6027
60281999-09-23 Gerd Moellmann <gerd@gnu.org>
6029
6030 * window.c (enlarge_window): Add window parameter instead of using
6031 selected_window.
6032 (Fdisplay_buffer): Call it with window parameter instead of
6033 setting selected_window.
6034 (Fenlarge_window, Fshrink_window): Ditto.
6035 (shrink_mini_window): If there is no recorded height and position
6036 info, resize mini-window to height 1.
6037
6038 * xfns.c (image_error): Use add_to_log.
6039
6040 * xfaces.c (load_pixmap): Call add_to_log without frame parameter.
6041 (load_face_font_or_fontset, load_color,
6042 merge_face_vector_with_property): Ditto.
6043
6044 * dispextern.h: Add prototype for add_to_log.
6045
6046 * xfaces.c (add_to_log): Move to xdisp.c.
6047
6048 * xdisp.c (add_to_log): Moved from xfaces.c. Remove frame
6049 parameter.
6050
60511999-09-23 Gerd Moellmann <gerd@gnu.org>
6052
6053 * xterm.c (XTread_socket) <MotionNotify>: Change #ifdef
6054 USE_X_TOOLKIT to #ifdef USE_TOOLKIT_SCROLL_BARS.
6055
6056 * xdisp.c (resize_mini_window): Use grow_mini_window and
6057 shrink_mini_window.
6058
6059 * window.c (window_min_size): Add parameter ignore_fixed_p.
6060 (change_window_height): Call window_min_size with new parameter.
6061 (shrink_window_lowest_first, save_restore_orig_size,
6062 grow_mini_window, shrink_mini_window): New.
6063 (make_window, replace_window): Initialize orig_top and
6064 orig_height.
6065 (enlarge_window): Renamed from change_window_height. Make it
6066 static.
6067 (Fdisplay_buffer, Fenlage_window, Fshrink_window): Call
6068 enlarge_window instead of change_window_height.
6069
6070 * window.h (struct window): New members orig_top, orig_height.
6071 (toplevel): Add prototypes for grow_mini_window and
6072 shrink_mini_window. Remove prototype for change_window_height.
6073
60741999-09-21 Eli Zaretskii <eliz@gnu.org>
6075
6076 * frame.c (frame_name_fnn_p): Fix previous change.
6077
60781999-09-20 Gerd Moellmann <gerd@gnu.org>
6079
6080 * minibuf.c (toplevel): Move include of stdio.h to other includes.
6081
6082 * dispnew.c (direct_output_for_insert): Cast arguments to
6083 safe_bcopy to char *.
6084
6085 * lread.c (readchar): Remove unused variables.
6086 (read_filtered_event, read1, Fmapatoms): Ditto.
6087 (toplevel): Include intervals.h.
6088
6089 * eval.c (Fsignal): Remove unused variables.
6090 (Fcommandp, do_autoload): Ditto.
6091
6092 * lisp.h: Add prototype for safe_bcopy, fatal.
6093
6094 * editfns.c (init_editfns): Remove unused variables.
6095 (Fgoto_char, Fchar_after, Fformat): Ditto.
6096 (message_text, message_length): Put in #ifndef HAVE_MENUS.
6097
6098 * data.c (find_symbol_value): Remove unused variables.
6099 (Faref, Fstring_to_number): Ditto.
6100 (toplevel): Include stdio.h.
6101 (Fnumber_to_string): Cast XINT to long for %ld.
6102
6103 * casefiddle.c (casify_object): Remove unused variables.
6104 (casify_region): Ditto.
6105
427ec082 6106 * filelock.c (get_boot_time): Put local variable used in
26901792
DL
6107 conditinally compiled section in #ifdef.
6108 (toplevel): Include stdio.h.
6109
6110 * keymap.c (Flookup_key, Faccessible_keymaps, describe_vector,
6111 keys_of_keymap, syms_of_keymap): Remove unused variables.
6112
61131999-09-20 Gerd Moellmann <gerd@gnu.org>
6114
6115 * xdisp.c (sync_frame_with_window_matrix_rows): Disable frame rows
6116 whose corresponding window rows have been disabled in
6117 try_window_id.
6118
61191999-09-20 Gerd Moellmann <gerd@gnu.org>
6120
6121 * xdisp.c (compute_window_start_on_continuation_line): Handle case
6122 that window start is out of range.
6123 (handle_display_prop, handle_single_display_prop): Replace
6124 marginal area specifications like `left-margin' with `(margin
6125 left-margin)'.
6126 (Qmargin): New.
6127 (syms_of_xdisp): Initialize Qmargin.
6128
61291999-09-19 Gerd Moellmann <gerd@gnu.org>
6130
6131 * syntax.c (update_syntax_table, find_defun_start, back_comment,
6132 describe_syntax, skip_chars): Remove unused variables.
6133 (back_comment, forw_comment): Add braces to if-statement with
6134 if-else as dependent statement.
6135
6136 * process.c (list_processes_1): Remove unused variables.
6137 (Fopen_network_stream, create_process): Add parentheses to
6138 conditional expressions.
6139 (create_process): Put declaration of sigchld in #if 0.
6140 (Fopen_network_stream): Removed unused variables.
6141 (Fopen_network_stream, wait_reading_process_input,
6142 wait_reading_process_input, send_process, send_process): Ditto.
6143 (toplevel): Add prototypes for set_waiting_for_input and
6144 keyboard_bit_set.
6145
6146 * abbrev.c (Fexpand_abbrev): Remove unused variables.
6147
6148 * textprop.c (Fset_text_properties): Remove unused variables.
6149 (text_property_list, verify_interval_modification,
6150 interval_has_all_properties): Ditto.
6151
6152 * callproc.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6153 (Fcall_process): Remove unused variable.
6154
6155 * keyboard.c (Frecursive_edit): Remove unused variable.
6156 (command_loop_1, safe_run_hooks, kbd_buffer_get_event,
6157 timer_check, make_lispy_event, menu_bar_items,
6158 menu_bar_one_keymap, menu_bar_item, parse_menu_item,
6159 parse_tool_bar_item, read_char_x_menu_prompt, read_key_sequence,
6160 kbd_buffer_get_event, make_lispy_event, read_char_x_menu_prompt,
6161 read_key_sequence): Ditto. Fread_key_sequence,
6162 Fread_key_sequence_vector, Fsuspend_emacs): Ditto.
6163 (read_key_sequence) [GOBBLE_FIRST_EVENT]: Put local variables only
6164 used when GOBBLE_FIRST_EVENT is defined in #ifdef
6165 (Fexecute_extended_command): Cast XINT to long for %ld.
6166 (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6167 (toplevel): Include sys/types.h.
6168
6169 * lisp.h (RETURN_UNGCPRO): Use do-while (0) idiom.
6170 (toplevel): Add prototypes for stuff_char, and
6171 code_convert_string_norecord.
6172
61731999-09-19 Gerd Moellmann <gerd@gnu.org>
6174
6175 * buffer.h: Add prototype for r_re_alloc.
6176
6177 * insdel.c (copy_text): Removed unused variables.
6178 (count_combining_after, count_combining_after, insert_1_both,
6179 insert_from_string_1, insert_from_buffer_1, check_markers): Ditto.
6180 (adjust_after_replace, replace_range): Add parentheses to logical
6181 expressions. Remove unused variables.
6182 (CHECK_BYTE_COMBINING_FOR_INSERT): Add parentheses to logical
6183 expression.
6184
6185 * alloc.c (Fgarbage_collect): Remove unused variable.
6186 (compact_strings): Add parentheses around assignments in
6187 conditional context.
6188 (toplevel): Put declaration of unused function clear_marks
6189 in #if 0 like its definition.
6190
6191 * lisp.h: Add prototype for shrink_regexp_cache,
6192 sweep_weak_hash_tables.
6193
61941999-09-19 Dave Love <fx@gnu.org>
6195
6196 * process.c (Fopen_network_stream): Use strerror, not gai_strerror.
6197
6198 * doc.c (read_bytecode_char): Declare arg.
6199
6200 * lisp.h: Declare Fcurrent_message, Fmake_temp_name,
6201 read_bytecode_char, Fx_hide_busy_cursor, getloadavg.
6202
62031999-09-18 Richard Stallman <rms@gnu.org>
6204
6205 * xdisp.c (echo_area_display): Turn off code that returned
6206 without doing anything when using a terminal frame.
6207
83c8f461 62081999-09-17 Richard M. Stallman <rms@gnu.org>
27271329
PR
6209
6210 * unexelf.c (unexec): Don't get confused by a short section
6211 just before the bss section.
6212
26901792
DL
62131999-09-16 Gerd Moellmann <gerd@gnu.org>
6214
6215 * emacs.c (main): Remove unused variables.
6216 (sort_args, Fkill_emacs, Fkill_emacs): Ditto.
6217
6218 * lisp.h: Add prototype for uninterrupt_malloc, memory_warnings,
6219 init_fileio_once, syms_of_sound, init_xfns, init_fns
6220 init_sound, check_message_stack.
6221
6222 * emacs.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6223
6224 * intervals.c (rotate_right, rotate_left): Add braces to avoid
6225 ambiguous else warning.
6226 (split_interval_left): Remove unused variables.
6227 (previous_interval, adjust_intervals_for_deletion,
6228 set_point_both, set_point_both, set_intervals_multibyte_1): Ditto.
6229 (icount, idepth, zero_length): Move into #if 0 section below
6230 original position where these are used.
6231
6232 * buffer.h [REL_ALLOC]: Add prototypes for r_alloc and r_alloc_free.
6233
6234 * buffer.c (Fkill_buffer): Remove unused variables.
6235 (Fkill_buffer, overlays_at, overlays_in, recenter_overlay_lists,
6236 fix_overlays_in_range, Fmove_overlay, Fprevious_overlay_change,
6237 init_buffer_once, (syms_of_buffer): Ditto.
6238
6239 * xrdb.c (get_fallback): Remove unused variable.
6240 (x_load_resources): Ditto. Put local variable used for Motif only
6241 in #ifdef USE_MOTIF.
6242
62431999-09-16 Gerd Moellmann <gerd@gnu.org>
6244
6245 * minibuf.c (read_minibuf): Remove unused variables.
6246 (read_minibuf, Fread_buffer, scmp, Fcompleting_read): Ditto.
6247 (do_completion): Move assignment out of conditional context.
6248 (Fdisplay_completion_list): Add parentheses to conditional expression.
6249
6250 * cm.c (toplevel) [HAVE_TERMCAP_H]: Include termcap.h.
6251
6252 * lisp.h: Add prototype for no_switch_window.
6253
6254 * window.c (Fset_window_buffer): Remove unused variables.
6255 (Fset_window_margins): Ditto.
6256
6257 * xdisp.c (resize_mini_window): Temporarily set the selected
6258 window's or Vminibuf_scroll_window's height to "fixed" around
6259 the call the change_window_height.
6260
6261 * window.c (window_fixed_size_p): Check window's height_fixed_p
6262 flag.
6263
6264 * window.h (struct window): New member height_fixed_p.
6265
6266 * dispnew.c (direct_output_forward_char): Don't use this method
6267 if showing a message or a message was just cleared because we
6268 might need to resize the mini-window.
6269
62701999-09-16 Gerd Moellmann <gerd@gnu.org>
6271
6272 * frame.c (Fdelete_frame): Correct local variable pointing to
6273 selected frame after selecting new frame.
6274
62751999-09-15 Richard Stallman <rms@gnu.org>
6276
6277 * puresize.h (BASE_PURESIZE): Increase to 525000.
6278
6279 * filelock.c (Vtemporary_file_directory): New variable.
6280 (syms_of_filelock): Set up Lisp variable.
6281
62821999-09-15 Gerd Moellmann <gerd@gnu.org>
6283
6284 * term.c (OUTPUT_IF, OUTPUT1_IF): Use do-while.
6285 (encode_terminal_code): Remove unused variables.
6286 (turn_off_face): Ditto.
6287 (toplevel): Include termcap.h if HAVE_TERMCAP_H.
6288
6289 * dispnew.c (update_frame_line): If writing whole desired line,
6290 don't clear to end of line if already at the end.
6291
62921999-09-15 Gerd Moellmann <gerd@gnu.org>
6293
6294 * xdisp.c (resize_mini_window): Don't report changed window
6295 height if it actually hasn't changed.
6296
427ec082 6297 * widget.c (set_frame_size, EmacsFrameSetCharSize): Remove
26901792
DL
6298 unused variables.
6299 (mark_shell_size_user_specified): Put in #if 0 because not used.
6300 (create_frame_gcs): Put in #if 0 because currently unused.
6301 (first_frame_p): Ditto.
6302
6303 * xmenu.c (single_menu_item, Fx_popup_menu, Fx_popup_menu,
6304 single_submenu, update_frame_menubar, set_frame_menubar,
6305 free_frame_menubar, xmenu_show, xdialog_show): Remove unused
6306 variables.
6307
6308 * print.c (PRINTFULLP): Removed because it is no longer used and
6309 is misleading.
6310 (Ferror_message_string): Remove unused variables.
6311 (print_object): Cast argument of sprintf to long for `%ld'
6312 specifier. Remove unused variable.
6313
63141999-09-14 Gerd Moellmann <gerd@gnu.org>
6315
6316 * sound.c (Fplay_sound): Remove usused variables.
6317 (be2hs): Put in #if 0 because it's currently not used.
6318
63191999-09-14 Ken Raeburn <raeburn@gnu.org>
6320
6321 * print.c (Ferror_message_string, print_error_message,
6322 print_object): Use XCAR, XCDR and XFLOAT_DATA instead of explicit
6323 member access.
6324
63251999-09-14 Gerd Moellmann <gerd@gnu.org>
6326
6327 * frame.h (CHECK_FRAME, CHECK_LIVE_FRAME): Put code in do-while.
6328
6329 * frame.c (Fnext_frame): Remove unused variable(s).
6330 (Fprevious_frame, Fmouse_pixel_position, frame_name_fnn_p): Ditto.
6331 (store_frame_param): Add parentheses to conditional expression.
6332 (Fmodify_frame_parameters): Remove unused variables.
6333 (Fmodify_frame_parameters, Fset_frame_size, Fset_frame_position):
6334 Ditto.
6335
6336 * xfns.c (x_set_background_color): Remove unused variable(s).
6337 (x_set_border_pixel): Ditto.
6338 (x_set_menu_bar_lines): Put local variable used only for
6339 non-toolkit case in #ifdef/#endif.
6340 (x_figure_window_size): Remove unused variable(s).
427ec082 6341 (x_figure_window_size, x_window, lookup_image,
26901792
DL
6342 xbm_read_bitmap_file_data, x_build_heuristic_mask, pbm_load,
6343 png_load, jpeg_load, gif_load, x_create_tip_frame,
6344 x_create_tip_frame, Fx_show_tip, x_set_border_pixel): Ditto.
6345
6346 * xterm.c (x_scroll_bar_handle_click): Compile only if
6347 not USE_TOOLKIT_SCROLL_BARS.
6348 (x_scroll_bar_set_handle, x_scroll_bar_note_movement): Ditto.
6349
6350 * dispextern.h: Add prototypes for gamma_correct and
6351 x_kill_gs_process.
6352
6353 * xterm.c (x_produce_glyphs): Remove unused variable(s).
6354 (x_alloc_nearest_color_for_widget, note_tool_bar_highlight,
6355 x_set_toolkit_scroll_bar_thumb): Ditto.
6356 (x_scroll_bar_create): Move local variable to the
6357 conditionally compiled section of code where it is used.
6358 (x_scroll_bar_create): Remove unused variable(s).
6359 (x_scroll_bar_remove, XTread_socket): Ditto.
6360 (XTread_socket) <ConfigureNotify>: Move variables used for
6361 non-toolkit case into conditionally compiled section of code.
6362
6363 * window.h (freeze_window_starts): Fix typo in prototype.
6364
6365 * xdisp.c (display_echo_area_1, try_window_id): Remove unused
6366 variable(s).
6367
6368 * lisp.h: Add prototype for debug_print.
6369
6370 * dispextern.h (xassert) [GLYPH_DEBUG]: Change definition
6371 to use do-while.
6372
6373 * fns.c (SXHASH_COMBINE): Add missing parentheses.
6374 (Fchar_table_range, Fset_char_table_default, mapcar1,
6375 Fyes_or_no_p, sweep_weak_hash_tables): Remove unused variable(s).
6376
6377 * lisp.h: Add prototype for getloadavg.
6378
63791999-09-14 Andreas Schwab <schwab@gnu.org>
6380
6381 * process.c (Fopen_network_stream): Avoid socket decriptor leak.
6382
6383 * lisp.h: Declare close_file_unwind.
6384
63851999-09-14 Richard Stallman <rms@gnu.org>
6386
6387 * filelock.c (get_boot_time): Make the temp name in the proper dir.
6388
63891999-09-13 Gerd Moellmann <gerd@gnu.org>
6390
6391 * xdisp.c (redisplay_window): Make sure start_at_line_beg
6392 is always set correctly.
6393
63941999-09-13 Dave Love <fx@gnu.org>
6395
6396 * xdisp.c (move_it_in_display_line_to): Make type consistent with
6397 declaration.
6398
63991999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6400
6401 * xdisp.c (QCfile): Move here from xfns.c.
6402 (syms_of_xdisp): Initialize it.
6403 (message2_nolog): Change for Lisp_Object selected_frame.
6404 (message3_nolog, message_with_string, message,
6405 setup_echo_area_for_printing, truncate_echo_area,
6406 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
6407
64081999-09-13 Dave Love <fx@gnu.org>
6409
6410 * xterm.c: Don't continue #define args for benefit of old cc.
6411 (xt_action_hook): Indent #error for benefit of K&R cc.
6412
64131999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6414
6415 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
6416 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
6417 (XRINGBELL): Removed.
6418
64191999-09-13 Dave Love <fx@gnu.org>
6420
6421 * xfns.c (x_put_x_image): Make type consistent with declaration.
6422
6423 * fns.c (Fmake_hash_table): Fix string continuation.
6424
64251999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6426
6427 * xfns.c (QCfile): Moved to xdisp.c.
6428 (syms_of_xfns): Don't initialize QCfile.
6429 (check_x_frame): Change for Lisp_Object selected_frame.
6430 (check_x_display_info, x_get_resource_string): Ditto.
6431
64321999-09-13 Gerd Moellmann <gerd@gnu.org>
6433
6434 * minibuf.c (choose_minibuf_frame): Don't try to set the
6435 mini-buffer window's buffer, if the buffer is invalid.
6436
6437 * xfns.c (QCfile): Moved to xdisp.c.
6438 (syms_of_xfns): Don't initialize QCfile.
6439
6440 * xdisp.c (QCfile): Move here from xfns.c.
6441 (syms_of_xdisp): Initialize it.
6442
6443 * lisp.h (selected_frame): Add external declaration.
6444
6445 * xselect.c (x_own_selection): Change for Lisp_Object selected_frame.
6446 (Fx_store_cut_buffer_internal): Ditto.
6447 (Fx_rotate_cut_buffers_internal): Ditto.
6448
6449 * xfaces.c (frame_or_selected_frame): Change for Lisp_Object
6450 selected_frame.
6451 (Finternal_set_lisp_face_attribute): Ditto.
6452 (Finternal_get_lisp_face_attribute): Ditto.
6453 (Finternal_lisp_face_empty_p): Ditto.
6454 (Fdump_face): Ditto.
6455
6456 * term.c (OUTPUT): Change for Lisp_Object selected_frame.
6457 (OUTPUT_IF, ring_bell, set_terminal_modes, reset_terminal_modes,
6458 set_terminal_window, set_scroll_region, reassert_line_highlight,
6459 change_line_highlight, cursor_to, raw_cursor_to, clear_to_end,
6460 clear_end_of_line, clear_end_of_line_raw, clear_end_of_line_raw,
6461 encode_terminal_code, write_glyphs, term_init): Ditto.
6462
6463 * sysdep.c (reset_sys_modes): Change for Lisp_Object selected_frame.
6464 (kbd_input_ast, read_input_waiting): Ditto.
6465
6466 * minibuf.c (choose_minibuf_frame): Change for Lisp_Object
6467 selected_frame.
6468 (read_minibuf): Ditto.
6469
6470 * keyboard.c (command_loop_1): Change for Lisp_Object
6471 selected_frame.
6472 (cmd_error_internal, command_loop_1, read_char,
6473 kbd_buffer_get_event, read_avail_input,
6474 read_char_minibuf_menu_prompt, read_key_sequence, Fsuspend_emacs,
6475 interrupt_signal, quit_throw_to_read_char): Ditto.
6476
6477 * fontset.c (Ffont_info): Change for Lisp_Object selected_frame.
6478 (Ffontset_info): DItto.
6479
6480 * emacs.c (handle_USR1_signal): Change for Lisp_Object selected_frame.
6481
6482 * dispnew.c (selected_frame): Make it a Lisp_Object.
6483 (adjust_frame_glyphs_initially): Change for Lisp_Object selected_frame.
6484 (direct_output_for_insert, direct_output_forward_char,
6485 init_display): Ditto.
6486
6487 * data.c (swap_in_symval_forwarding): Change for Lisp_Object
6488 selected_frame.
6489 (set_internal): Ditto.
6490
6491 * buffer.c (Fother_buffer): Change for Lisp_Object selected_frame.
6492 (record_buffer): Ditto.
6493
6494 * frame.c (Fmake_terminal_frame): Use SELECTED_FRAME.
6495 (do_switch_frame): Change for Lisp_Object selected_frame.
6496 (Fselected_frame): Ditto.
6497 (Fframe_first_window): Use SELECTED_FRAME.
6498 (Fframe_root_window): Change for Lisp_Object selected_frame.
6499 (Fframe_selected_window, Fset_frame_selected_window, Fnext_frame,
6500 Fprevious_frame, other_visible_frames, Fdelete_frame,
6501 Fmouse_position, Fmouse_pixel_position, Fmake_frame_visible,
6502 Fmake_frame_invisible, Ficonify_frame, Fraise_frame, Flower_frame,
6503 Fframe_parameters, Fmodify_frame_parameters, Fframe_char_height,
6504 Fframe_char_width, Fframe_pixel_height, Fframe_pixel_width,
6505 Fset_frame_height, Fset_frame_width): Ditto.
6506
65071999-09-13 Gerd Moellmann <gerd@gnu.org>
6508
6509 * xdisp.c (message2_nolog): Change for Lisp_Object selected_frame.
6510 (message3_nolog, message_with_string, message,
6511 setup_echo_area_for_printing, truncate_echo_area,
6512 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
6513
6514 * xmenu.c (Fx_popup_menu): Change for Lisp_Object selected_frame.
6515 (Fx_popup_dialog): Ditto.
6516
6517 * xfns.c (check_x_frame): Change for Lisp_Object selected_frame.
6518 (check_x_display_info, x_get_resource_string): Ditto.
6519
6520 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
6521 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
6522 (XRINGBELL): Removed.
6523
6524 * window.c (Fminibuffer_window): Change for Lisp_Object
6525 selected_frame.
6526 (Fwindow_at, Fprevious_window, window_loop, select_window_1,
6527 display_buffer_1, Fdisplay_buffer, temp_output_buffer_show,
6528 Fcurrent_window_configuration, init_window_once): Ditto.
6529
6530 * frame.h (SELECTED_FRAME): New.
6531
65321999-09-12 Ken Raeburn <raeburn@gnu.org>
6533
6534 * category.c (word_boundary_p): Use XCAR and XCDR.
6535 * ccl.c (ccl_driver, resolve_symbol_ccl_program,
6536 Fregister_code_conversion_map): Likewise.
6537 * coding.c (setup_coding_system, detect_coding_system,
6538 Ffind_operation_coding_system, Fset_coding_priority_internal):
6539 Likewise.
6540 * doc.c (get_doc_string, Fdocumentation,
6541 store_function_docstring): Likewise.
6542 * editfns.c (save_restriction_restore): Likewise.
6543 * eval.c (Fcond, Fmacroexpand, Fcondition_case, wants_debugger,
6544 skip_debugger, find_handler_clause, Fautoload, Fapply,
6545 run_hook_with_args, run_hook_list_with_args, Ffetch_bytecode):
6546 Likewise.
6547 * fileio.c (Ffind_file_name_handler, Finsert_file_contents,
6548 Fwrite_region, do_auto_save_unwind, Fdo_auto_save,
6549 Fread_file_name): Likewise.
6550 * filelock.c (unlock_all_files): Likewise.
6551 * insdel.c (Fcombine_after_change_execute): Likewise.
6552 * intervals.c (adjust_intervals_for_insertion): Likewise.
6553 * keymap.c (get_keymap_1, Fkeymap_parent, Fset_keymap_parent,
6554 Fset_keymap_parent, fix_submap_inheritance, access_keymap,
6555 store_in_keymap, Fcopy_keymap, define_as_prefix,
6556 current_minor_maps, Faccessible_keymaps,
6557 accessible_keymaps_char_table, Fkey_description,
6558 Fwhere_is_internal, where_is_internal_2, where_is_internal_1,
6559 describe_buffer_bindings, describe_map_tree, shadow_lookup,
6560 describe_map): Likewise.
6561 * lread.c (Fload, load_unwind, close_load_descs, read_vector,
6562 read_list, init_lread): Likewise.
6563 * search.c (Fmatch_data): Likewise.
6564 * sunfns.c (Fsun_menu_internal): Likewise.
6565 * syntax.c (describe_syntax): Likewise.
6566 * undo.c (record_insert, record_delete, Fundo_boundary,
6567 truncate_undo_list): Likewise.
6568 * vmsproc.c (child_sig): Likewise.
6569
6570 * editfns.c (Fformat): Use XFLOAT_DATA.
6571
65721999-09-12 Gerd Moellmann <gerd@gnu.org>
6573
6574 * keyboard.c (command_loop_1): Resize mini-window to the
6575 exact size of a message displayed, if any.
6576
6577 * xdisp.c (resize_mini_window): Add parameter exact_p. Resize
6578 to exact size if exact_p is non-zero.
6579 (display_echo_area_1): Call resize_mini_window with
6580 new parameter.
6581 (redisplay_internal): Ditto.
6582 (resize_echo_area_axactly): New.
6583
6584 * minibuf.c (read_minibuf_unwind): Call resize_mini_window with
6585 new parameter.
6586
6587 * dispextern.h: Change prototype of resize_mini_window.
6588 Add prototype for resize_echo_area_axactly.
6589
6590 * xfaces.c (Fx_family_fonts): Replaces Fx_font_list.
6591 (syms_of_xfaces): Defsubr accordingly.
6592
6593 * xdisp.c (hscroll_window_tree): Choose cursor row from
6594 desired or current matrix.
6595 (redisplay_internal): Hscroll before updating.
6596
65971999-09-12 Gerd Moellmann <gerd@gnu.org>
6598
6599 * syntax.c (Fforward_word): Use prompt_end_charpos instead
6600 of minibuffer_prompt_length.
6601
6602 * minibuf.c (read_minibuf): Use prompt_end_charpos instead
6603 of minibuffer_prompt_length.
6604 (read_minibuf_unwind): Ditto.
6605 (Fminibuffer_complete_and_exit): Ditto.
6606 (Fminibuffer_complete_word): Ditto.
6607 (Fminibuffer_prompt_end): Ditto.
6608
6609 * editfns.c (Fbuffer_string): Use prompt_end_charpos instead
6610 of minibuffer_prompt_length.
6611 (Fline_beginning_position): Ditto.
6612
6613 * buffer.c (Fget_buffer_create): Use prompt_end_charpos instead
6614 of minibuffer_prompt_length.
6615 (Fmake_indirect_buffer): Ditto.
6616 (Fkill_buffer): Ditto.
6617 (Ferase_buffer): Ditto.
6618
6619 * buffer.h (prompt_end_charpos): Replaces
6620 minibuffer_prompt_length.
6621
427ec082 6622 * minibuf.c (read_minibuf): Return mini-buffer contents
26901792
DL
6623 without the prompt.
6624
6625 * editfns.c (make_buffer_string_both): Take out the code
6626 to handle mini-buffer prompts.
6627 (Fbuffer_string): Handle the prompt here, instead.
6628
6629 * xfaces.c (lface_from_face_name): Resolve face aliases.
6630 (Qmode_line): Replaces Qmodeline.
6631 (realize_basic_faces): Use Qmode_line.
6632 (syms_of_xfaces): Initialize Qmode_line.
6633
66341999-09-12 Gerd Moellmann <gerd@gnu.org>
6635
6636 * minibuf.c (read_minibuf): Set minibuf_prompt_width to the
6637 current column after inserting prompt.
6638 (Fminibuffer_prompt_width): Return minibuf_prompt_width.
6639
6640 * xfaces.c (Qframe_update_face_colors): New.
6641 (syms_of_xfaces): Initialize call.
6642 (update_face_from_frame_parameter): Call that function when
6643 the frame's background changes.
6644
66451999-09-12 Richard Stallman <rms@gnu.org>
6646
6647 * insdel.c (del_range_1): Don't treat minibuffer prompt specially.
6648
66491999-09-12 Ken Raeburn <raeburn@gnu.org>
6650
6651 * alloc.c (Fcons, pure_cons, Fpurecopy, Fgarbage_collect,
6652 mark_object, mark_buffer): Use XCAR and XCDR.
6653 * bytecode.c (Fbyte_code): Likewise.
6654 * callint.c (Fcall_interactively, Fprefix_numeric_value):
6655 Likewise.
6656 * callproc.c (Fcall_process, Fcall_process_region, child_setup,
6657 getenv_internal): Likewise.
6658 * dired.c (file_name_completion): Likewise.
6659 * fns.c (Fsafe_length, concat, Fcopy_alist, Fmember, Fmemq, Fassq,
6660 assq_no_quit, Fassoc, Frassq, Frassoc, Fdelq, Fdelete, Freverse,
6661 Fplist_get, Fplist_put, internal_equal, mapcar1): Likewise.
6662 * indent.c (Fcompute_motion): Likewise.
6663 * process.c (decode_status, Fprocess_status, Fprocess_exit_status,
6664 list_processes_1, Fstart_process, Fopen_network_stream,
6665 wait_reading_process_input, read_process_output_call,
6666 kill_buffer_processes, sigchld_handler, exec_sentinel_unwind,
6667 status_notify, wait_reading_process_input): Likewise.
6668 * textprop.c (PLIST_ELT_P, property_value, set_properties,
6669 extend_property_ranges): Likewise.
6670 * w32faces.c (Fpixmap_spec_p, merge_face_list): Likewise.
6671 * w32fns.c (x_window_to_frame, x_set_frame_parameters,
6672 x_report_frame_params, x_set_cursor_type, x_icon_type,
6673 x_figure_window_size, Fx_create_frame, w32_load_system_font,
6674 w32_load_font, enum_font_cb2, w32_list_bdf_fonts, w32_list_fonts,
6675 w32_list_synthesized_fonts, w32_find_ccl_program, Fx_list_fonts,
6676 Fw32_find_bdf_fonts, w32_find_bdf_fonts_in_dir,
6677 x_display_info_for_name, Fx_display_list): Likewise.
6678 * w32menu.c (menubar_id_to_frame, single_keymap_panes,
6679 Fx_popup_menu, Fx_popup_dialog): Likewise.
6680 * w32proc.c (Fw32_set_keyboard_layout): Likewise.
6681 * w32term.c (x_window_to_scroll_bar, w32_read_socket,
6682 w32_term_init, x_delete_display): Likewise.
6683 * xfns.c (x_window_to_frame, x_any_window_to_frame,
6684 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
6685 x_top_window_to_frame, x_set_frame_parameters,
6686 x_report_frame_params, x_set_cursor_type, x_icon_type,
6687 x_figure_window_size, Fx_create_frame, x_display_info_for_name,
6688 Fx_display_list, x_create_tip_frame): Likewise.
6689 * xmenu.c (menubar_id_to_frame, single_keymap_panes,
6690 Fx_popup_menu, Fx_popup_dialog): Likewise.
6691 * xselect.c (x_own_selection, x_get_local_selection,
6692 x_handle_selection_request, x_handle_selection_clear,
6693 x_clear_frame_selections, wait_for_property_change_unwind,
6694 wait_for_property_change, x_handle_property_notify,
6695 copy_multiple_data, x_get_foreign_selection,
6696 lisp_data_to_selection_data, clean_local_selection_data,
6697 x_handle_selection_notify, Fx_get_selection_internal,
6698 x_disown_buffer_selections): Likewise.
6699 * xterm.c (x_window_to_scroll_bar, XTread_socket, x_list_fonts,
6700 x_load_font, x_find_ccl_program, x_term_init, x_delete_display):
6701 Likewise.
6702
6703 * alloc.c (make_float, make_pure_float, Fpurecopy): Use
6704 XFLOAT_DATA.
6705 * bytecode.c (Fbyte_code): Likewise.
6706 * floatfns.c (extract_float, Fexpt, Fabs, rounding_driver,
6707 fmod_float): Likewise.
6708
67091999-09-11 Richard Stallman <rms@gnu.org>
6710
6711 * xdisp.c (run_window_scroll_functions): If hook functions switch
6712 buffers, switch back after.
6713
67141999-09-11 Ken Raeburn <raeburn@gnu.org>
6715
6716 * charset.h (GET_TRANSLATION_TABLE): Use XCDR.
6717 * frame.h (FOR_EACH_FRAME): Use XCAR and XCDR.
6718 (PIXEL_X_FROM_CANON_X, PIXEL_Y_FROM_CANON_Y): Use XFLOAT_DATA.
6719 * keyboard.h (EVENT_HEAD, EVENT_START, EVENT_END, POSN_WINDOW,
6720 POSN_BUFFER_POSN, POSN_WINDOW_POSN, POSN_TIMESTAMP): Use XCAR and
6721 XCDR.
6722 * syntax.h (SYNTAX, SYNTAX_WITH_FLAGS, SYNTAX_MATCH): Use XCAR and
6723 XCDR.
6724
67251999-09-10 Richard Stallman <rms@gnu.org>
6726
6727 * xterm.c (XTread_socket): In XSetInputFocus, use RevertToParent,
6728 not RevertToPointerRoot.
6729 (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
6730 Fix the code to clear around the scroll bar.
6731
67321999-09-10 Keisuke Nishida <kxn30@po.cwru.edu>
6733
6734 * print.c: Support print-circle and related features.
6735 (Vprint_gensym_alist): Removed.
6736 (Vprint_circle, Vprint_continuous_numbering, print_number_index
6737 Vprint_number_table): New variables.
6738 (PRINT_NUMBER_OBJECT, PRINT_NUMBER_STATUS): New macros.
6739 (PRINTPREPARE, PRINTFINISH): Don't set Vprint_gensym_alist.
6740 (print, print_preprocess, print_preprocess_string, print_object):
6741 New/modified functions with print-circle feature. Use
6742 Vprint_number_table instead of Vprint_gensym_alist for print-gensym.
6743 (syms_of_print): Defined new Lisp variables `print-circle',
6744 `print-continuous-numbering', `print-number-table'.
6745
67461999-09-10 Gerd Moellmann <gerd@gnu.org>
6747
6748 * xfns.c (x_build_heuristic_mask): Accept a list `(R G B)'
6749 as background color specification instead of an integer.
6750 (image-cache-eviction-delay): Replaces image-eviction-seconds.
6751 (Vimage_cache_eviction_delay): Replaces Vimage_eviction_seconds.
6752 (clear_image_cache, syms_of_xfns): Use it.
6753 (Qpostscript): Replaces Qghostscript.
6754 (gs_type): Use it.
6755 (gs_image_p): Ditto.
6756 (syms_of_xfns): Initialize Qpostscript.
6757
67581999-09-10 Richard Stallman <rms@gnu.org>
6759
6760 * buffer.c (Ferase_buffer): Don't erase the minibuffer prompt.
6761
67621999-09-09 Richard Stallman <rms@gnu.org>
6763
6764 * editfns.c (Fline_beginning_position): Handle minibuffer prompt here.
6765
6766 * cmds.c (Fbeginning_of_line): Don't handle minibuffer prompt here.
6767
67681999-09-09 Gerd Moellmann <gerd@gnu.org>
6769
6770 * fns.c (Fmakehash): Accept just one optional argument TEST.
6771
6772 * xfns.c (QCindex): New.
6773 (syms_of_xfns): Initialize QCindex.
6774 (gif_load): Use it instead of `:image'.
6775
67761999-09-09 Richard Stallman <rms@gnu.org>
6777
6778 * fileio.c (Fwrite_region): Finish renaming CONFIRM to MUSTBENEW.
6779 (Fwrite_region) [DOS_NT]: Handle `excl' here too.
6780
67811999-09-08 Gerd Moellmann <gerd@gnu.org>
6782
6783 * xdisp.c (Qwhen): Replaces QCwhen.
6784 (syms_of_xdisp): Initialized it instead of QCwhen.
6785 (handle_single_display_prop): Use it instead of QCwhen.
6786
67871999-09-08 Ken'ichi Handa <handa@gnu.org>
6788
6789 * charset.c (translate_char): Reset MSBs of arguments of
6790 MAKE_CHAR.
6791 (CHAR_COMPONENTS_VALID_P): Fix for ASCII.
6792
67931999-09-08 Lars Magne Ingebrigtsen <larsi@gnus.org>
6794
6795 * editfns.c (Fbufsize): Accept an extra BUFFER parameter.
6796
6797 * fns.c (Fbase64_decode_region): Don't place point outside of the
6798 current accessible portion.
6799
68001999-09-07 Richard Stallman <rms@gnu.org>
6801
6802 * keymap.c (fix_submap_inheritance): Do nothing if the proper
6803 parent is an ancestor of SUBMAP; otherwise, add it as the
6804 ultimate ancestor.
6805
68061999-09-07 Gerd Moellmann <gerd@gnu.org>
6807
6808 * xdisp.c (handle_single_display_prop): Change conditional
6809 display property to `:when FORM . VALUE'.
6810
68111999-09-07 Richard Stallman <rms@gnu.org>
6812
6813 * fileio.c (Fwrite_region): Doc fix.
6814
68151999-09-07 Stefan Monnier <monnier@cs.yale.edu>
6816
6817 * fileio.c (Qexcl): New variable.
6818 (report_file_error): Handle EEXIST specially.
6819 (Fwrite_region): Special handling for CONFIRM = `excl'.
6820 (syms_of_fileio): Initialize Qexcl.
6821
68221999-09-07 Gerd Moellmann <gerd@gnu.org>
6823
6824 * xfns.c (x_set_foreground_color): Call
6825 update_face_from_frame_parameter.
6826 (x_set_background_color): Ditto.
6827 (x_set_mouse_color): Ditto.
6828 (x_set_cursor_color): Ditto.
6829 (x_set_border_color): Ditto.
6830 (x_set_scroll_bar_foreground): Ditto.
6831 (x_set_scroll_bar_background): Ditto.
6832
6833 * xfaces.c (recompute_basic_faces): Clear face cache.
6834 (Finternal_set_lisp_face_attribute): Modify frame parameters
6835 if attributes of certain faces are changed.
6836 (update_face_from_frame_parameter): New.
6837
6838 * xfaces.c (realize_basic_faces): Realize new basic faces.
6839
6840 * dispextern.h (SCROLL_BAR_FACE_ID, BORDER_FACE_ID,
6841 CURSOR_FACE_ID, MOUSE_FACE_ID): New.
6842
6843 * xfaces.c (Qscroll_bar, Qcursor, Qborder, Qmouse): New.
6844 (syms_of_xfaces): Intialize new symbols.
6845
6846 * fns.c (Fmakehash): Take one argument, test, make all the
6847 rest keyword arguments.
6848
6849 * window.c (Fset_window_margins): Make window the first argument.
6850 (set_window_buffer): Call Fset_window_margins with window as first
6851 argument.
6852
68531999-09-07 Gerd Moellmann <gerd@gnu.org>
6854
6855 * xfaces.c (Qfringe): Replaces Qmargin.
6856
68571999-09-07 Kenichi Handa <handa@etl.go.jp>
6858
6859 * charset.h: Lots of comments fixed.
6860 (PARSE_MULTIBYTE_SEQ): Make it work also for ASCII string.
6861 (STRING_CHAR_AND_CHAR_LENGTH): This macro removed.
6862
6863 * charset.c : Lots of comments fixed.
6864 (SPLIT_MULTIBYTE_SEQ): Make it work also for ASCII string.
6865 (CHAR_COMPONENTS_VALID_P): Name changed from
6866 CHAR_COMPONENT_VALID_P. Caller changed.
6867
68681999-09-06 Richard Stallman <rms@gnu.org>
6869
6870 * insdel.c (syms_of_insdel): Define Lisp variable
6871 inhibit-modification-hooks.
6872
68731999-09-06 Michael Sperber [Mr. Preprocessor] <sperber@informatik.uni-tuebingen.de>
6874
6875 * s/aix4-2.h (ALIGN_DATA_RELOC): Undefined to support new
6876 unexaix.c.
6877
6878 * s/aix3-1.h (ALIGN_DATA_RELOC): Defined to support new unexaix.c.
6879
68801999-09-06 Dave Love <fx@gnu.org>
6881
6882 * unexaix.c: New version incorporating Michael Sperber's changes
6883 from XEmacs. Should solve problems on AIX 4.3.
6884
6885 * lread.c (Vbyte_boolean_vars): New variable.
6886 (defvar_bool, syms_of_lread): Use it.
6887
68881999-09-05 Richard Stallman <rms@gnu.org>
6889
6890 * minibuf.c (read_minibuf): Put all three properties on the
6891 same range, the whole prompt.
6892
68931999-09-05 Gerd Moellmann <gerd@gnu.org>
6894
6895 * sound.c (Qplay_sound_functions): Replaces Qplay_sound_hook.
6896 (Fplay_sound, syms_of_sound): Use it.
6897 (parse_sound): Allow float volume values in the range [0, 1].
6898 (Fplay_sound): Ditto.
6899
6900 * window.c (Fset_window_vscroll): Make window the first argument,
6901 amount to scroll the second. Take non-negative vscroll as
6902 argument.
6903 (Fwindow_vscroll): Return non-negative vscroll.
6904
6905 * xfns.c (Fx_show_tip): Improve documentation.
6906
69071999-09-05 Gerd Moellmann <gerd@gnu.org>
6908
6909 * buffer.c, buffer.h, dispextern.h, dispnew.c, keyboard.c,
6910 window.c, xdisp.c, xfaces.c, xterm.c, keyboard.h: Change
6911 `top-line' and `top_line' to `header-line' and `header_line'.
6912 Likewise for similar spellings.
6913
69141999-09-05 Gerd Moellmann <gerd@gnu.org>
6915
6916 * xdisp.c (row_containing_pos): New.
6917 (try_window_id): Use it.
6918
6919 * alloc.c, dispextern.h, dispnew.c, frame.c, frame.h, keyboard.c,
6920 lisp.h, termhooks.h, window.c xdisp.c, xfaces.c, xfns.c, xterm.c:
6921 Change spelling of `toolbar' to `tool_bar' or `tool-bar'.
6922 Likewise for upper-case etc.
6923
69241999-09-05 Gerd Moellmann <gerd@gnu.org>
6925
6926 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
6927 Fix reference to renamed variable.
6928
69291999-09-04 Gerd Moellmann <gerd@gnu.org>
6930
6931 * window.c (Qwindow_size_fixed): Replaces Qfixed_window_size.
427ec082 6932 (window_fixed_size_p): Use Qwindow_size_fixed instead of
26901792
DL
6933 Qfixed_window_size.
6934 (syms_of_window): Ditto.
6935
6936 * fns.c (Fmakehash): Exchange optional test and size arguments.
6937
69381999-09-03 Gerd Moellmann <gerd@gnu.org>
6939
6940 * xterm.c (XTset_vertical_scroll_bar): Block input when clearing
6941 under newly created scroll bar.
6942 (expose_window): If window is not yet fully initialized, do
6943 nothing. This can happen when toolkit scroll bars are used and a
6944 window is split. Reconfiguring the scroll bars will generate an
6945 expose for a newly created window.
6946
6947 * frame.h (struct frame): New member `gamma'.
6948
6949 * xfns.c: Include math.h. Add extern declaration for atof in case
6950 we don't see one.
6951 (Qscreen_gamma): New.
6952 (struct x_frame_parm_table): Add prototypes, add
6953 x_set_screen_gamma.
6954 (gamma_correct): New function.
6955 (defined_color): Call it.
6956 (x_set_screen_gamma): New.
6957 (x_set_title): Add parameter old_value.
6958 (RES_TYPE_FLOAT): New.
6959 (x_get_arg): Handle RES_TYPE_FLOAT.
6960 (Fx_create_frame): Call x_default_parameter for `screen-gamma'.
6961 (lookup_pixel_color): Change call to x_alloc_nearest_color to
6962 new prototype.
6963 (lookup_rgb_color): Ditto.
6964 (syms_of_xfns): Initialize Qscreen_gamma.
6965
6966 * xterm.c (x_alloc_nearest_color_for_widget) [USE_X_TOOLKIT]:
6967 New. Allocate color for lwlib widgets.
6968 (x_alloc_nearest_color): Change parameter list include the
6969 frame on which to allocate colors. Gamma-correct colors.
6970 (x_alloc_lighter_color): Call x_alloc_lighter_color with new
6971 parameter list.
6972
6973 * xterm.h: Change protorype of x_alloc_nearest_color.
6974
69751999-09-03 Richard Stallman <rms@gnu.org>
6976
6977 * callproc.c: Delete the system-independent include of stdlib.h
6978 (leaving only the one in the WINDOWSNT conditional).
6979
69801999-09-03 Andrew Choi <choi@cs.hku.hk>
6981
6982 * callproc.c (call-process) [macintosh]: Call mac_run_command in
6983 sysdep.c. The Mac code is modeled after the DOS code.
427ec082 6984
26901792
DL
6985 * dispextern.h [macintosh]: Include macterm.h to define substitute X
6986 Window types and macros.
6987
6988 * frame.h: Do nothing if included a second time.
6989 (enum output_method): Add mac_output frame type.
6990 (union output_data): Add new alternative `mac'.
6991 (FRAME_MAC_P): New macro.
427ec082 6992
26901792
DL
6993 * frame.c (Fframep) [macintosh]: Handle mac frame type.
6994 (syms_of_frame_1): Initialize Qmac.
6995 (make_terminal_frame) [macintosh]: Initialize output_data.mac fields.
6996 (Fmake_terminal_frame) [macintosh]: Add an alternate error check.
6997 (Fmodify_frame_parameters) [macintosh]: Call
6998 mac_set_frame_parameter in macterm.c.
427ec082 6999
26901792
DL
7000 * keyboard.c [macintosh]: Set KBD_BUFFER_SIZE to a smaller value
7001 (512) because Mac compilers limit local data of a function to 32K.
427ec082 7002
26901792
DL
7003 * make-docfiles.c: Correctly handle input files with Mac-style
7004 eol's.
427ec082 7005
26901792 7006 * sysdep.c: Define numerous routines to emulate Unix system calls.
427ec082 7007
26901792
DL
7008 * xfaces.c: on MacOS, define the set of colors listed in rgb.txt
7009 file of an X Window environment.
427ec082 7010
26901792
DL
7011 * xfaces.c: on MacOS, define the Lisp functions x-display-color-p,
7012 x-display-grayscale, x-color-defined-p, and x-color-values.
427ec082 7013
26901792
DL
7014 * sysdep.c [macintosh] (stat, fstat, mkdir, rmdir, utime, access)
7015 (open, creat, unlink, read, write, rename, fopen, pause, alarm)
7016 (signal, sleep, gmtime, localtime, ctime, time, index, mktemp)
7017 (getpwuid, getpwnam, dup, dup2, isatty, getgid, getegid, getuid)
7018 (geteuid, getpid, getenv, uname, opendir, closedir, readdir, getwd.):
7019 New functions, replacing POSIX features.
427ec082 7020
26901792
DL
7021 * sysdep.c [macintosh] (Mac2UnixPathname, Unix2MacPathname, CheckAlarm)
7022 (InitMyPasswd, GetTempDirName, mystrchr, mystrtok, mystrcpy):
7023 (InitEmacsPasswdDir, run_mac_command): New subroutines.
7024
7025 * sysdep.c [macintosh] (targetTicks, alarm_signal_func, myPasswdName)
7026 (myPasswd, emacsPasswdDir, emacsPasswd, myPasswdInited, mask)
7027 (myPasswdDir, TempDirName, sys_siglist): New variables.
7028
7029 * sysdep.c [macintosh] (execvp, wait, croak, fork, kill, sigsetmask)
7030 (sigblock, request_sigio, unrequest_sigio, setpgrp, pipe, symlink)
7031 (link, lstat, readlink, umask, chmod, sbrk, fsync, ioctl):
7032 Define empty stubs so Emacs will link.
7033
70341999-09-03 Gerd Moellmann <gerd@gnu.org>
7035
7036 * xdisp.c: Use XCAR and XCDR instead of XCONS.
7037
7038 * window.h: New member frozen_window_start_p.
7039
7040 * window.c (foreach_window, foreach_window_1): New.
7041 (freeze_window_start, freeze_window_starts): New.
7042 (make_window): Initialize frozen_window_start_p.
7043 (replace_window): Ditto.
7044 (Fset_window_point): Remove references to deleted variables.
7045 (Fset_window_start): Ditto.
7046
7047 * xdisp.c (Vresize_mini_config, resize_mini_frame,
7048 resize_mini_initial_height): Removed.
7049 (syms_of_xdisp): Remove references to these variables.
7050 (resize_mini_window): Don't save window configuration, freeze
7051 window starts instead. Enlarge window until displaying an empty
7052 buffer, then shrink it. Make the function externally visible.
7053 (redisplay_window): Treat frozen window start like forced start,
7054 but accept point outside of the window.
7055
7056 * dispextern.h: Add function prototype for resize_mini_window.
7057
7058 * minibuf.c (read_minibuf_unwind): Resize mini-window when
7059 reaching minibuf_level 0.
7060
7061 * lisp.h: Remove extern declarations for variables deleted from
7062 xdisp.c.
7063
7064 * dispnew.c (adjust_frame_glyphs): Remove reference to
7065 Vresize_mini_config.
7066
70671999-09-03 Gerd Moellmann <gerd@gnu.org>
7068
7069 * xfns.c (x_set_scroll_bar_width): Change conditional compilation
7070 to USE_TOOLKIT_SCROLL_BARS.
7071
7072 * xterm.c (x_scroll_bar_create): Don't clear under scroll bar
7073 here.
7074 (XTset_vertical_scroll_bar): Clarify position computations. Clear
7075 under newly created scroll bar. Put toolkit scroll bars in the
7076 middle of the area reserved for the scroll bar.
7077
70781999-09-03 Kenichi Handa <handa@etl.go.jp>
7079
7080 The following changes are for the new handling of mulitbyte
7081 sequence. Now, except for a composite character, no multibyte
7082 character in string/buffer has trailing garbage bytes. For
7083 instance, the length of string "\201\300\300" is now 2, the first
7084 character is Latin-1 A-grave, the second is raw \300.
7085
7086 * charset.h (MAKE_NON_ASCII_CHAR): Handle the case that C1 or C2
7087 are negative.
7088 (MAKE_CHAR): Don't set MSBs of C1 and C2 to 0.
7089 (VALID_MULTIBYTE_CHAR_P): This macro deleted.
7090 (PARSE_COMPOSITE_SEQ): New macro.
7091 (PARSE_CHARACTER_SEQ): New macro.
427ec082 7092 (PARSE_MULTIBYTE_SEQ): New macro.
26901792
DL
7093 (CHAR_PRINTABLE_P): New macro.
7094 (STRING_CHAR): Adjusted for the change of string_to_non_ascii_char.
7095 (STRING_CHAR_AND_LENGTH): Likewise.
7096 (STRING_CHAR_AND_CHAR_LENGTH): Define it as STRING_CHAR_AND_LENGTH.
7097 (INC_POS): Use the macro PARSE_MULTIBYTE_SEQ.
7098 (DEC_POS, BUF_INC_POS, BUF_DEC_POS): Likewise,
7099
7100 * charset.c (SPLIT_COMPOSITE_SEQ): New macro.
7101 (SPLIT_CHARACTER_SEQ): New macro.
7102 (SPLIT_MULTIBYTE_SEQ): New macro.
7103 (CHAR_COMPONENT_VALID_P): New macro.
7104 (non_ascii_char_to_string): Generate a multibyte sequence as far
7105 as possible.
7106 (string_to_non_ascii_char): The 4th arg exclude_tail_garbage is
7107 deleted. Caller changed. Use the macro SPLIT_MULTIBYTE_SEQ.
7108 (split_non_ascii_string): Likewise.
7109 (multibyte_form_length): Use the macro PARSE_MULTIBYTE_SEQ.
7110 (char_printable_p): New function.
7111 (translate_char): Check character by NATNUMP instead of INTEGERP.
7112 (unibyte_char_to_multibyte): Call char_valid_p instead of
7113 VALID_MULTIBYTE_CHAR_P.
7114 (Fmake_char_internal): Check the arguments more rigidly.
7115 (Fcharset_after): Use the macro SPLIT_MULTIBYTE_SEQ.
7116 (char_valid_p): Check the validity by CHAR_COMPONENT_VALID_P.
7117 (Fmultibyte_char_to_unibyte): Check the validity of character by
7118 CHAR_VALID_P.
7119 (chars_in_text): Call multibyte_chars_in_text.
7120 (multibyte_chars_in_text): Use the macro PARSE_MULTIBYTE_SEQ.
7121 (Fcompose_string): Use the macro STRING_CHAR_AND_LENGTH instead of
7122 STRING_CHAR_AND_CHAR_LENGTH (which is obsolete now).
7123
7124 * data.c (Faset): Adjust the way to check byte-combining
7125 possibility for the new handling of multibyte sequence.
7126
7127 * editfns.c (Fsubst_char_in_region): Likewise.
7128
7129 * fns.c (count_combining): Use the macro PARSE_MULTIBYTE_SEQ.
7130 (string_char_to_byte): Likewise.
7131 (string_byte_to_char): Likewise.
7132
7133 * indent.c (MULTIBYTE_BYTES_WIDTH): Delete the 2nd arg C. Use the
7134 macro STRING_CHAR_AND_LENGTH. Caller changed.
7135
7136 * insdel.c (count_combining_composition): New function.
7137 (count_combining_before): Adjust the way to check byte-combining
7138 possibility for the new handling of multibyte sequence. Call
7139 count_combining_composition for a composite character.
7140 (count_combining_after): Likewise.
7141
7142 * print.c (print_string): Use the macro STRING_CHAR_AND_LENGTH.
7143 (print): Likewise.
7144
7145 * dispextern.h (struct it): Change the size of the member
7146 `ctl_chars'.
7147
7148 * xdisp.c (get_next_display_element): Display incomplete multibyte
7149 sequence (e.g. \222\300) by octal form.
7150
71511999-09-02 Gerd Moellmann <gerd@gnu.org>
7152
7153 * xterm.h (VERTICAL_SCROLL_BAR_WIDTH_TRIM): Change from 2 to 0.
7154
7155 * fns.c (Fhash_table_weakness): Replaces Fhash_table_weak.
7156 (cmpfn_eql, sxhash): Use XFLOAT_DATA.
7157
71581999-09-02 Gerd Moellmann <gerd@gnu.org>
7159
7160 * buffer.c (set_buffer_internal): Never set
7161 windows_or_buffers_changed.
7162
7163 * xdisp.c (try_window_id): Reset first_unchanged_at_end_row
7164 if we have displayed to the bottom of the window.
7165
7166 * syntax.c (Fforward_word): Stop at a mini-buffer prompt end
7167 in both directions. Extend documentation.
7168
71691999-09-01 Gerd Moellmann <gerd@gnu.org>
7170
7171 * minibuf.c (read_minibuf): Flush display after setting cursor to
7172 column 0.
7173
71741999-08-31 Gerd Moellmann <gerd@gnu.org>
7175
7176 * s/freebsd.h (__FreeBSD_version): Don't define it if it is
7177 already defined. This avoids a warning from buffer.c.
7178
71791999-08-30 Gerd Moellmann <gerd@gnu.org>
7180
7181 * xterm.h (FRAME_X_FLAGS_AREA_COLS): Define it as the total width
7182 of both margins.
7183 (FRAME_X_FLAGS_AREA_WIDTH): Likewise.
7184 (FRAME_X_LEFT_FLAGS_AREA_WIDTH): New.
7185 (FRAME_X_RIGHT_FLAGS_AREA_WIDTH): New.
7186
7187 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add in FRAME_FLAGS_AREA_COLS
7188 once instead of twice.
7189 (FRAME_LEFT_FLAGS_AREA_WIDTH): New.
7190
7191 * xterm.c: Remove unused bitmaps.
7192 (continued_bits, continuation_bits, overlay_bits): Change images.
7193 (x_draw_vertical_border): Use FRAME_X_RIGHT_FLAGS_AREA_WIDTH
7194 instead of FRAME_X_FLAGS_AREA_WIDTH.
7195 (x_after_update_window_line): Ditto.
7196 (x_draw_bitmap): Likewise.
7197 (x_draw_row_bitmaps): Likewise.
7198 (x_draw_glyph_string_box): Likewise.
7199 (x_draw_glyphs): Likewise.
7200 (x_scroll_run): Likewise.
7201 (expose_window_tree): Likewise.
7202 (note_mode_line_highlight): Likewise.
7203 (XTset_vertical_scroll_bar): Likewise.
7204 (x_clip_to_row): Likewise.
7205 (x_set_window_size): Likewise.
7206
7207 * xfns.c (x_figure_window_size): Use FRAME_FLAGS_AREA_COLS instead
7208 of 2 * that value.
7209
7210 * xdisp.c (window_box_width): Use FRAME_FLAGS_AREA_COLS instead of
7211 2 * that value.
7212 (window_box_left): Use FRAME_LEFT_FLAGS_AREA_WIDTH instead of
7213 FRAME_FLAGS_AREA_WIDTH.
7214
7215 * window.c (coordinates_in_window): Use
7216 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
7217 (window_internal_width): Subtract FRAME_FLAGS_AREA_WIDTH once
7218 instead of twice.
7219
427ec082 7220 * widget.c (set_frame_size): Set flags_area_extra to
26901792
DL
7221 FRAME_FLAGS_AREA_WIDTH instead of 2 * that width.
7222 (EmacsFrameSetCharSize): Ditto.
7223
7224 * dispnew.c (mode_line_string): Add FRAME_LEFT_FLAGS_AREA_WIDTH
7225 instead of FRAME_FLAGS_AREA_WIDTH.
7226
7227 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract
7228 FRAME_FLAGS_AREA_COLS once.
7229 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Add
7230 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
7231
72321999-08-30 Gerd Moellmann <gerd@gnu.org>
7233
7234 * freebsd.h (C_SWITCH_SYSTEM): Added to let configure find headers
7235 in /usr/X11R6/include which are checked for with AC_CHECK_HEADER.
7236
72371999-08-30 Gerd Moellmann <gerd@gnu.org>
7238
7239 * fns.c (QCweakness): Replaces QCweak.
7240 (Fmake_hash_table): Ditto.
7241 (Fmakehash): Ditto.
7242 (syms_of_fns): Ditto.
7243
72441999-08-29 Richard Stallman <rms@gnu.org>
7245
7246 * search.c (compile_pattern_1): Enable RE_CHAR_CLASSES for regexp.
7247
7248 * sysdep.c (read_input_waiting): Pass read_socket_hook just 4 args.
7249
7250 * syntax.h (SYNTAX_COMMENT_NESTED, SYNTAX_FLAGS_COMMENT_NESTED):
7251 Add support for nested comments.
7252
863476d1
SM
7253 * syntax.c (Fforward_comment, scan_lists, scan_sexps_forward):
7254 Consolidate the forward comment code into the new `forw_comment'.
7255 (forw_comment): New subroutine. Added support for nested comments.
7256 (lisp_parse_state, back_comment, Fmodify_syntax_entry)
7257 (Fparse_partial_sexp): Add support for nested comments.
26901792
DL
7258
72591999-08-28 Ken Raeburn <raeburn@gnu.org>
7260
7261 * lisp.h (struct Lisp_Cons, XCAR, XCDR, struct Lisp_Float): Change
7262 names of structure elements if HIDE_LISP_IMPLEMENTATION is
7263 defined, to help detect code that uses knowledge of the Lisp
7264 internals that it shouldn't have.
7265 (XFLOAT_DATA): New macro.
7266
72671999-08-25 Gerd Moellmann <gerd@gnu.org>
7268
7269 * syntax.c (Fforward_word): If in a mini-buffer and moving
7270 backwards, stop in front of the prompt to prevent accidentially
7271 moving into the read-only prompt.
7272
7273 * window.c (Frecenter): Clear frame if called with nil or no arg.
7274
7275 * xdisp.c (resize_mini_window): Don't resize if
7276 Vmax_mini_window_height is nil. Otherwise, use a default if
7277 Vmax_mini_window_height is not ot a number.
7278 (syms_of_xdisp): Extend documentation of Vmax_mini_window_height.
7279
72801999-08-25 Alexandre Oliva <oliva@dcc.unicamp.br>
7281
7282 * unexelf.c: Merge IRIX debugging info patch from unexsgi.c
7283 * m/iris4d.h: Use unexelf for IRIX 5.*.
7284 * m/iris5d.h: Use unexelf for IRIX 6.*.
7285 * unexsgi.c: Deleted.
7286
7287 * unexelf.c: Auto-detect .sbss section.
7288 (round_up): Make it static.
7289 (unexec): Declare alignment as Elf Word. Skip ``Program
7290 segment above .bss'' test on MIPS without .sbss.
7291 Copy sections .got and .sdata1 sections. Adjust offsets in
7292 sections .sdata, .lit4, .lit8, .got and .sdata1.
7293
72941999-08-25 Gerd Moellmann <gerd@gnu.org>
7295
7296 * xdisp.c (try_window_id): Remove typo.
7297
72981999-08-24 Gerd Moellmann <gerd@gnu.org>
7299
7300 * xdisp.c (try_window_id): Recognize case that PT == ZV and in
7301 unchanged text at the bottom when computing the cursor position.
7302 (message3_nolog): Raise frame only if minibuffer_auto_raise is
7303 set.
7304
7305 * lisp.h (PVEC_TYPE_MASK): Add the bit for hash tables.
7306
73071999-08-24 Gerd Moellmann <gerd@gnu.org>
7308
7309 * xfaces.c (Qmargin): Replacement for Qbitmap_area.
7310 (realize_basic_faces): Replace Qmargin for Qbitmap_area.
7311 (syms_of_xfaces): Ditto.
7312
7313 * window.c (Fset_window_point): Reset Vresize_mini_config.
7314 (Fset_window_start): Ditto.
7315 (set_window_buffer): Ditto.
7316
7317 * dispnew.c (adjust_frame_glyphs): Reset Vresize_mini_config.
7318
7319 * xdisp.c (redisplay_window): Don't ever test just_this_one_p
7320 before calling try_window.
7321 (echo_area_display): If height has changed, update other windows.
7322 (resize_mini_frame, resize_mini_initial_height): New.
7323 (resize_mini_window): Save/restore window configuration
7324 differently.
7325
427ec082 7326 * lisp.h (Vresize_mini_config, resize_mini_frame,
26901792
DL
7327 resize_mini_initial_height): Add extern declarations.
7328
7329 * xterm.c (expose_window_tree): Fix typo CANON_Y_UNIT to
7330 CANON_X_UNIT.
7331
7332 * xfns.c [HAVE_JPEG]: Work around a warning about HAVE_STDLIB_H
7333 being redefined in jconfig.h.
7334
73351999-08-23 Ken'ichi Handa <handa@gnu.org>
7336
7337 * coding.h: Include "ccl.h" instead of "../src/ccl.h".
7338
73391999-08-22 Gerd Moellmann <gerd@gnu.org>
7340
7341 * alloc.c (mark_glyph_matrix): Mark strings only.
7342
7343 * xdisp.c (redisplay_internal): Clear garbaged frames after
7344 resizing mini-window.
7345
73461999-08-22 Gerd Moellmann <gerd@gnu.org>
7347
7348 * xdisp.c (unwind_with_echo_area_buffer): Use
7349 set_buffer_internal_1 instead of set_buffer_internal.
7350 (with_echo_area_buffer): Ditto.
7351
7352 * buffer.c (set_buffer_internal): Set windows_or_buffers_changed
7353 only if buffer is displayed somewhere.
7354
7355 * buffer.h (BUF_COMPUTE_UNCHANGED): New.
7356
7357 * insdel.c (gap_left): Use BUF_COMPUTE_UNCHANGED.
7358 (gap_right): Ditto.
7359 (modify_region): Ditto.
7360
7361 * buffer.c (modify_overlay): Use BUF_COMPUTE_UNCHANGED.
7362
7363 * xdisp.c (Vresize_mini_config): New.
7364 (resize_mini_window): Use it to save restore original window
7365 configuration
7366 (syms_of_xdisp): Initialize it.
7367
7368 * buffer.h (struct buffer): Add prevent_redisplay_optimizations_p.
7369
7370 * dispextern.h (struct glyph_matrix): Add buffer, begv, and zv.
7371
7372 * xdisp.c (reconsider_clip_changes): New.
7373 (redisplay_internal, redisplay_window): Call it.
7374 (mark_window_display_accurate, redisplay_internal): Set current
7375 matrix' buffer, begv, zv.
7376
7377 * window.c (Fset_window_hscroll): Set
7378 prevent_redisplay_optimizations_p instead of clip_changed.
7379 (Fset_window_hscroll): Ditto.
7380 (temp_output_buffer_show): Ditto.
7381 (Fset_window_vscroll): Ditto.
7382
7383 * buffer.c (reset_buffer): Set clip_changed to 0 and
7384 prevent_redisplay_optimizations_p to 1.
7385 (Fget_buffer_create): Set prevent_redisplay_optimizations_p to 1.
7386
7387 * buffer.h (BUF_UNCHANGED_MODIFIED, UNCHANGED_MODIFIED,
7388 BUF_OVERLAY_UNCHANGED_MODIFIED, OVERLAY_UNCHANGED_MODIFIED,
7389 BUF_BEG_UNCHANGED, BEG_UNCHANGED, BUF_END_UNCHANGED,
7390 END_UNCHANGED): New.
7391 (struct buffer_text): Add beg_unchanged, end_unchanged,
7392 unchanged_modified, overlay_unchanged_modified.
7393
7394 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
7395 overlay_unchanged_modified): Removed.
7396 (with_echo_area_unwind_data): Don't save beg/end_unchanged.
7397 (unwind_with_echo_area_buffer): Don't restore them.
7398 (debug_beg_unchanged, debug_end_unchanged) [GLYPH_DEBUG]: Removed.
7399 (text_outside_line_unchanged_p, redisplay_internal,
7400 try_scrolling): Use/set buffer-specific beg/end_unchanged.
7401 (redisplay_window): Let try_window_id be called if more than one
7402 window is displayed. Use/set buffer-specific beg/end_unchanged.
7403 (get_last_unchanged_at_beg_row, get_first_unchanged_at_end_row,
7404 try_window_id):
7405 Use buffer-specific beg/end_unchanged.
7406
7407 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
7408 overlay_unchanged_modified): Remove extern declarations.
7409
7410 * keyboard.c (command_loop_1): Set beg/end_unchanged per
7411 buffer.
7412
7413 * insdel.c (gap_left): Compute beg/end_unchanged per buffer.
7414 (gap_right): Ditto.
7415 (adjust_after_replace): Likewise.
7416 (replace_range, del_range_2, modify_region): Likewise.
7417
7418 * dispnew.c (direct_output_for_insert): Set beg_unchanged
7419 and unchanged_modified per buffer.
7420
7421 * coding.c (code_convert_region): Compute beg/end_unchanged per
7422 buffer.
7423
7424 * buffer.c (modify_overlay): Compute beg/end_unchanged
7425 per buffer.
427ec082 7426 (Fget_buffer_create): Initialize new members of the buffer
26901792
DL
7427 structure.
7428
74291999-08-22 Gerd Moellmann <gerd@gnu.org>
7430
7431 * lisp.h: Add prototype for copy_hash_table and Fcopy_hash_table.
7432
7433 * fns.c (Qkey, Qvalue): Renamed from Qkey_weak, and Qvalue_weak.
7434 (Qkey_value_weak): Removed.
7435 (make_hash_table): Use nil, `key', `value', t for weakness.
7436 (Fmake_hash_table): Ditto.
7437 (copy_hash_table): New.
7438 (Fcopy_hash_table): New.
7439
74401999-08-22 Gerd Moellmann <gerd@gnu.org>
7441
7442 * xfns.c: Call change_frame_size and do_pending_window_change with
427ec082 7443 new parameter.
26901792
DL
7444
74451999-08-21 Gerd Moellmann <gerd@gnu.org>
7446
7447 * xdisp.c (resize_mini_window): Do it for truncate-lines t as
7448 well.
427ec082 7449 (redisplay_internal): Resize mini-window only if text might
26901792
DL
7450 have changed.
7451 (display_echo_area): Reset displayed echo_area_buffer to nil
7452 at the end if we're displaying a nil message.
7453
74541999-08-21 Gerd Moellmann <gerd@gnu.org>
427ec082 7455
26901792
DL
7456 * fns.c (hash_lookup): Test with EQ before calling key comparion
7457 function.
7458 (hash_remove): Ditto.
7459 (cmpfn_eq): Removed.
7460 (cmpfn_eql): Don't test with EQ.
7461 (cmpfn_equal): Ditto.
7462 (make_hash_table): Set comparison function for `eq' to null.
7463
7464 * buffer.c, cmds.c, editfns.c, indent.c, insdel.c, buffer.h:
7465 Remove conditional compilation on NO_PROMPT_IN_BUFFER.
7466
7467 * dispextern.h (NO_PROMPT_IN_BUFFER): Removed.
7468
7469 * window.c, widget.c, process.c, keyboard.c, frame.c, xdisp.c,
7470 xterm.c: Call change_frame_size and do_pending_window_change with
7471 new parameter.
7472
7473 * dispnew.c (do_pending_window_change): Add parameter `safe'.
7474 (change_frame_size): Ditto.
7475 (change_frame_size_1): Ditto. Deley size changes if redisplaying
7476 and not called from a safe place.
7477 (window_change_signal): Call change_frame_size with new parameter.
7478
7479 * dispextern.h: Change prototypes for do_pending_window_change
7480 and change_frame_size.
7481
7482 * xfaces.c (face_at_buffer_position): Don't xassert that
427ec082 7483 window's buffers equals current_buffer; this is not the
26901792
DL
7484 case during echo area display.
7485
74861999-08-21 Gerd Moellmann <gerd@gnu.org>
7487
7488 * xdisp.c, minibuf.c: Remove conditional compilation on
7489 NO_PROMPT_IN_BUFFER.
7490
7491 * minibuf.c (Fminibuffer_prompt_end): New.
7492 (syms_of_minibuf): Defsubr it. Remove
7493 minibuffer-prompt-in-buffer.
7494 (Fminibuffer_prompt_width): Return 0 if not in mini-buffer.
7495 Extend documentation.
7496
7497 * xdisp.c (get_next_display_element): Display \r as ^M.
7498
7499 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Clear
7500 under scroll bar widget.
7501
75021999-08-21 Gerd Moellmann <gerd@gnu.org>
7503
7504 * xdisp.c (minibuffer_scroll_overlap): Removed because not used
7505 anywhere.
7506 (unwind_redisplay): Return nil.
7507 (clear_garbaged_frames): New.
7508 (redisplay_internal): Use it.
7509 (echo_area_display): Ditto.
7510 (resize_mini_window): Mew.
7511 (display_echo_area_1): Use it to resize echo area window.
7512 (redisplay_internal): Use it to resize active mini-window.
7513
7514 * dispextern.h, lisp.h: Add function prototypes.
7515
427ec082 7516 * dispnew.c (set_window_cursor_after_update): Do the
26901792
DL
7517 cursor_in_echo_area case only for a mini-window showing
7518 a message. Don't let cursor end up after the end of a row.
7519
7520 * xdisp.c (echo_area_glyphs, echo_area_message,
7521 echo_area_glyphs_length, previous_echo_glyphs,
7522 previous_echo_area_message, previous_echo_area_glyphs_length):
7523 Removed.
7524 (Vmessage_stack, echo_area_buffer, echo_buffer,
7525 display_last_displayed_message_p, Vwith_echo_area_save_vector): New.
7526 (message2_nolog): Use set_message and clear_message.
7527 (message3): Rename parameter len to nbytes to make clear what
7528 it is.
7529 (message3_nolog): Ditto. Use set_message and clear_message.
7530 (update_echo_area): Rewritten.
7531 (with_echo_area_buffer): New.
7532 (with_echo_area_buffer_unwind_data, unwind_with_area_buffer): New.
7533 (setup_echo_area_for_printing): New.
7534 (display_echo_area, display_echo_area_1): New.
7535
7536 (current_message, current_message_1): New.
427ec082 7537 (push_message, restore_message, pop_message,
26901792
DL
7538 check_message_stack): New.
7539 (truncate_echo_area): Rewritten.
7540 (truncate_message_1): New.
7541 (set_message, set_message_1, clear_message): New.
7542 (echo_area_display): Rewritten.
7543 (redisplay_internal): Check for needed echo area update
7544 differently.
7545 (redisplay_preserve_echo_area): Rewritten.
427ec082 7546 (redisplay_window): Check for mini-window displaying echo area
26901792
DL
7547 message differently.
7548 (syms_of_xdisp): Initialize Vmessage_stack and echo area buffers.
7549 Remove initialzation of removed variables.
7550 (init_xdisp): Remove references to removed variables.
7551
7552 * dispnew.c (adjust_frame_message_buffer): Removed references
7553 to echo_area_glyphs and previous_echo_glyphs.
7554 (direct_output_for_insert): Check for mini-window displaying
7555 echo area message differently.
7556 (update_frame): Likewise.
7557 (set_window_cursor_after_update): Likewise. In echo area,
7558 don't try to set cursor on rows that aren't enabled.
7559
7560 * print.c: Remove conditional compilation on `standalone'.
7561 (glyph_len, str_to_glyph_cpy, str_to_glyph_ncpy,
427ec082 7562 glyph_to_str_cpy): Remove that section because GLYPHs are no
26901792
DL
7563 longer used in that way.
7564 (PRINTDECLARE): Add multibyte.
7565 (PRINTPREPARE, PRINTFINISH): Handle printcharfun t differently.
7566 (printbufidx): Removed.
7567 (printchar, strout): Rewritten.
7568
7569 * keyboard.c (ok_to_echo_at_next_pause): Make it a pointer to
7570 a struct kboard.
7571 (echo_kboard): New.
7572 (echo_now): Set echo_kboard to the current kboard.
7573 (cancel_echoing): Set echo_kboard to null.
7574 (cmd_error_internal): Use clear_message, remove references
7575 to echo_area_glyphs and echo_area_message.
7576 (command_loop_1): Check for echo area messages differently.
7577 (read_char): Likewise.
7578 (record_menu_key): Use clear_message.
7579 (Fexecute_extended_command): Check for echo area messages
7580 differently. Use push_message, restore_message, pop_message.
7581
7582 * alloc.c (Fgarbage_collect): Use push_message, restore_message,
7583 pop_message.
7584
7585 * emacs.c (shut_down_emacs): Call check_message_stack.
7586
7587 * lisp.h: Add function prototypes and extern declarations for
7588 new functions and variables.
7589
7590 * fileio.c (Fdo_auto_save): Use push_message, restore_message,
7591 pop_message.
7592
427ec082 7593 * minibuf.c (read_minibuf): Use clear_message instead of
26901792
DL
7594 setting echo_area_glyphs.
7595 (Fminibuffer_completion_help): Ditto.
7596
7597 * editfns.c (Fcurrent_message): Rewritten.
7598
7599 * frame.c, window.h: Remove references to echo_area_glyphs
7600 and previous_echo_glyphs.
7601
76021999-08-21 Dave Love <fx@gnu.org>
7603
7604 * aix3-2-5.h (C_DEBUG_SWITCH): Use -g -O.
7605 * aix4-1.h: Likewise.
7606
7607 * irix6-5.h (C_DEBUG_SWITCH): Set for debug and optimize.
7608
76091999-08-20 Gerd Moellmann <gerd@gnu.org>
7610
7611 * xfns.c: Remove tiff34 prefix from include.
7612
76131999-08-20 Dave Love <fx@gnu.org>
7614
7615 * cm.c: Revert previous change.
7616
76171999-08-19 Gerd Moellmann <gerd@gnu.org>
7618
7619 * xterm.c (XTset_vertical_scroll_bar): Fix previous change. Clear
7620 under scroll bar with width FRAME_SCROLL_BAR_COLS.
7621
76221999-08-18 Dave Love <fx@gnu.org>
7623
7624 * callproc.c, filelock.c, insdel.c, sysdep.c, xmenu.c: Use
7625 stdlib.h.
7626
7627 * doprnt.c: Use stdlib.h, unistd.h.
7628
7629 * config.in: Add HAVE_TERMCAP_H.
7630
7631 * cm.c: Use termcap.h.
7632
76331999-08-18 Gerd Moellmann <gerd@gnu.org>
7634
7635 * xfns.c (x_window) [USE_X_TOOLKIT]: Remove test for
7636 FRAME_X_WINDOW (f) being null at the of the function. If widgets
7637 cannot be created we will already have crashed earlier. Call
7638 lw_set_main_areas with a null menu-bar widget, so that we have
7639 a reasonable default.
7640 (Fx_create_frame): Rearranged so that Lisp errors during frame
7641 initialization cause less damage. Initialize menu bar widget
7642 here.
7643
76441999-08-18 Gerd Moellmann <gerd@gnu.org>
427ec082 7645
26901792
DL
7646 * dispnew.c (update_frame_line): Fix previous change. If writing
7647 whole line clear to end of frame.
7648
76491999-08-17 Gerd Moellmann <gerd@gnu.org>
7650
7651 * window.c (Fcoordinates_in_window_p): Return `left-bitmap-area'
7652 and `right-bitmap-area' if position is in the bitmap areas. This
7653 avoids an error when clicking on the bitmap areas. Instead, they
7654 are currently treated like clicks inside the window.
7655 (coordinates_in_window): Return 5 and 6 for bitmap areas.
7656 (Qleft_bitmap_area, Qright_bitmap_area): New.
7657 (syms_of_window): Initialize new symbols.
7658
7659 * dispnew.c (update_frame_line): If writing whole line,
7660 don't write trailing spaces unless we must.
7661
7662 * xdisp.c (unwind_redisplay): New. Resets flag redisplaying_p.
7663 (redisplay_internal): Register unwind_redisplay with
7664 register_unwind_protect.
7665 (try_window_reusing_current_matrix): If new start > old start,
7666 give up if start pos of first reusable row is not equal to new
7667 start.
7668
7669 * eval.c (Fsignal): Don't reset redisplaying_p here.
7670
7671 * xterm.c (expose_area): If row extends face to end of line,
7672 write the whole line.
7673
76741999-08-16 Gerd Moellmann <gerd@gnu.org>
7675
7676 * dispextern.h (struct it): Remove member
7677 show_trailing_whitespace_p.
7678
7679 * dispnew.c (direct_output_for_insert): Use
7680 Vshow_trailing_whitespace instead of former iterator member
7681 show_trailing_whitespace_p.
7682 (direct_output_forward_char): Don't do it if hightlighting
7683 trailing whitespace.
7684
7685 * xdisp.c (Qshow_trailing_whitespace): Removed.
7686 (Vshow_trailing_whitespace): Added.
7687 (init_iterator): Remove initialization code for
7688 show_trailing_whitespace_p.
7689 (redisplay_internal): Don't try cursor movement in this_line
7690 if showing trailing whitespace.
7691 (redisplay_window): Likewise for cursor movement in current
7692 matrix and try_window_id.
7693 (try_window_reusing_current_matrix): Likewise.
7694 (trailing_whitespace_p): Return 0 if trailing whitespace is
7695 in front of point.
7696 (display_line): Use Vshow_trailing_whitespace instead of
7697 former iterator member show_trailing_whitespace_p.
7698 (syms_of_xdisp): Add DEFVAR_LISP for show-trailing-whitespace.
7699
77001999-08-16 Gerd Moellmann <gerd@gnu.org>
7701
7702 * window.c (Fpos_visible_in_window_p): Rewritten.
7703
7704 * xfaces.c (add_to_log): Renamed from display_message.
7705 Don't display messages in echo area.
7706
7707 * xterm.c (x_draw_glyph_string_box): Use the background width
7708 of the glyph string for the width of the box.
7709
77101999-08-16 Stefan Monnier <monnier@cs.yale.edu>
7711
7712 * syntax.c (Fforward_comment): Set comstyle for Scomment_fence.
7713
77141999-08-16 Geoff Voelker <voelker@cs.washington.edu>
7715
7716 * xfns.c, w32fns.c (x_set_frame_parameters): Set foreground and
7717 background first, and then set other parameters that might
7718 depend upon their new values.
7719
77201999-08-15 Gerd Moellmann <gerd@gnu.org>
7721
7722 * xfaces.c (Vfont_list_limit): New.
7723 (syms_of_xfaces): Make it a user-variable.
7724 (DEFAULT_FONT_LIST_LIMIT): New.
7725 (sorted_font_list): If Vfont_list_limit is an integer > 0, list
7726 maximally that number of fonts, otherwise use
7727 DEFAULT_FONT_LIST_LIMIT.
427ec082 7728 (Fx_font_family_list): Bind `font-list-limit' to higher values
26901792
DL
7729 until we have all fonts.
7730 (Fxfont_list): Additionally return the full names of fonts and
7731 their registry and encoding.
7732
427ec082 7733 * xterm.c (XTset_vertical_scroll_bar) [USE_TOOLKIT_SCROLL_BARS]:
26901792
DL
7734 Simplify clearing "under" scroll bar.
7735
7736 * window.c (Qfixed_window_size): New.
7737 (syms_of_window): Initialiaze it.
7738 (check_all_windows): Add return type void.
7739 (window_fixed_size_p): New. Return non-zero if window
7740 is fixed-size.
7741 (window_min_size_1): New.
7742 (window_min_size): Handle fixed-size windows.
7743 (size_window): New. Rewritten combination of set_window_height and
7744 set_window_width that handles fixed-size windows.
7745 (set_window_height): Call it.
7746 (set_window_width): Call it.
7747 (Fsplit_window): Give an error on attempt to split a fixed-size
7748 window.
7749 (change_window_height): Partly rewritten to handle fixed-size
7750 windows.
7751
77521999-08-13 Wolfgang Rupprecht <wolfgang@wsrcc.com>
7753
7754 * process.c (Fopen_network_stream): Fix previous change.
7755
77561999-08-13 Karl Heuer <kwzh@gnu.org>
7757
7758 * xdisp.c (line_number_display_limit_width): New var.
7759 (decode_mode_spec): Use it instead of hardcoded value.
7760 (syms_of_xdisp): Defvar it.
7761
77621999-08-13 Richard M. Stallman <rms@gnu.org>
7763
7764 * eval.c (run_hook_list_with_args): Gcpro `globals'.
7765 (run_hook_with_args): Likewise.
7766
7767 * window.h (struct window): New field too_small_ok.
7768
427ec082 7769 * window.c (set_window_height, set_window_width):
26901792
DL
7770 If window starts out "too small", set its too_small_ok flag.
7771 If window's too_small_ok flag is set, don't delete it
7772 unless it is so small it would cause a crash.
7773
77741999-08-13 Gerd Moellmann <gerd@gnu.org>
7775
7776 * window.c (MINSIZE): Removed.
7777 (window_min_size): New.
7778 (set_window_height): Use window_min_size.
7779 (change_window_height): Ditto.
7780
77811999-08-12 Gerd Moellmann <gerd@gnu.org>
7782
7783 * indent.c (vmotion): Don't add in mini-buffer prompt width
7784 if prompts are inserted into mini-buffer.
7785
77861999-08-12 Wolfgang Rupprecht <wolfgang@wsrcc.com>
7787
7788 * config.in: Add HAVE_GETADDRINFO.
7789 * process.c (Fopen_network_stream): Use getaddrinfo.
7790
77911999-08-11 Gerd Moellmann <gerd@gnu.org>
7792
7793 * xdisp.c (get_overlay_arrow_glyph_row): Set the charpos of
7794 glyphs to -1.
7795
7796 * xdisp.c (face_before_or_after_it_pos): If position after
7797 or before iterator's current position in the buffer is out
7798 of bounds, return the iterator's original face id.
7799
7800 * dispnew.c (mirror_make_current): If desired row isn't enabled,
7801 just swap glyphs pointers between current and desired row.
7802 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Copy
7803 desired matrix method string to current matrix.
7804
78051999-08-11 Kenichi Handa <handa@etl.go.jp>
7806
7807 * lisp.h (CHAR_MODIFIER_MASK): New macro.
7808
7809 * lread.c (read_escape): For Control modifier, pay attention to
7810 multibyte character.
7811 (read1): Likewise. Singal error or a multibyte character which
7812 has a modifer bit. Check validity of Shift modifer.
7813
7814 * charset.c (non_ascii_char_to_string): Handle modifier bits as
7815 the same as Lisp reader.
7816
78171999-08-10 Richard M. Stallman <rms@gnu.org>
7818
7819 * charset.h (BCOPY_SHORT): Fix typo `unsigined'.
7820
78211999-08-10 Alexandre Oliva <oliva@dcc.unicamp.br>
7822
7823 * unexelf.c [__linux__ && __alpha__] (HAS_SBSS_SECTION): Define.
7824
78251999-08-10 Eli Zaretskii <eliz@gnu.org>
7826
7827 * msdos.c (IT_set_face): Abort if the default face is not realized
7828 and cached.
7829 (IT_write_glyphs): Reset the screen face to the default face
7830 before writing glyphs.
7831
7832 * xfaces.c (realize_default_face) [MSDOS]: Don't take default
7833 colors from the frame here.
7834 (realize_tty_face) [MSDOS]: Do it here. Update the face
7835 attributes with the actual name of the color taken from the
7836 frame.
7837
7838 * dosfns.c (msdos_stdcolor_name): Remove const from return value.
7839 * dosfns.h (msdos_stdcolor_name): Ditto for the prototype.
7840
7841 * frame.c (Fframe_parameters): Swap foreground and background
7842 colors returned in frame parameters if the frame has reverse in
7843 its parameter alist.
7844 (Fmake_terminal_frame): Make a unique copy of face_alist for
7845 each frame.
7846
78471999-08-07 Richard Stallman <rms@gnu.org>
7848
7849 * buffer.c (Fprevious_overlay_change): Just return
7850 the answer obtained from overlays_at.
7851
7852 * xfns.c (xpm_load) [!XpmAllocCloseColors]:
7853 Use XpmCloseness and attrs.closeness instead.
7854
78551999-08-06 Richard Stallman <rms@gnu.org>
7856
7857 * lread.c (Feval_buffer): New arg DO_ALLOW_PRINT.
7858
78591999-08-06 Geoff Voelker <voelker@cs.washington.edu>
7860
427ec082 7861 * dired.c (directory_files_internal, Fdirectory_files_and_attributes,
26901792
DL
7862 Ffile_attributes_lessp): New functions.
7863 (Fdirectory_files): Use directory_files_internal.
7864 (syms_of_dired): Initialize Fdirectory_files_and_attributes,
7865 Ffile_attributes_lessp.
7866
7867 * w32.c (stat): Check for directory ending in separator when
7868 doing readdir fast path.
7869
7870 * w32fns.c (x_set_icon_type): Support setting frame icons.
7871 * w32term.c (x_bitmap_icon): New function.
7872 (x_make_frame_visible, x_iconify_frame): Invoke x_bitmap_icon.
427ec082 7873
26901792
DL
78741999-08-06 Gerd Moellmann <gerd@gnu.org>
7875
7876 * xdisp.c (set_iterator_to_next): After delivering a character
7877 from a display vector, restore face and charset to what they were
7878 before the display vector was processed.
7879
78801999-08-06 Gerd Moellmann <gerd@gnu.org>
7881
7882 * xdisp.c (reseat_at_next_visible_line_start): New parameter
7883 on_newline_p.
7884 (set_iterator_to_next): After delivering last char
427ec082 7885 from display vector, reseat on next visible line start if
26901792
DL
7886 dpvec_char_len < 0.
7887 (next_element_from_buffer): Set dpvec_char_len to -1 for
7888 selective display.
7889
78901999-08-06 Gerd Moellmann <gerd@gnu.org>
7891
7892 * xdisp.c (compute_line_metrics): If first line's physical ascent
7893 is larger than its logical ascent, use the physical ascent, and
7894 make the row taller. Set row's overlapping_p flag.
7895
7896 * dispnew.c (redraw_overlapping_rows): Use flag overlapping_p.
7897 (direct_output_for_insert): Ditto.
7898
7899 * dispextern.h (struct glyph_row): Add overlapping_p.
7900
7901 * xterm.c (x_draw_phys_cursor_glyph): Redraw overlaps.
7902
7903 * dispextern.h (MATRIX_ROW_OVERLAPS_PRED_P): New.
7904 (MATRIX_ROW_OVERLAPS_SUCC_P): New.
7905
7906 * dispnew.c (direct_output_for_insert): Don't use this method if
7907 row is overlapped by others.
7908 (update_text_area): Write full line if current line is overlapped.
7909 (redraw_overlapped_rows): New.
7910 (update_window): Call it.
7911 (redraw_overlapping_rows): New.
7912 (update_window): Call it.
7913 (scrolling_window): Make sure overlapped_p flag in current rows is
7914 unchanged.
7915 (row_equal_p): Take rows overlapped_p flag into account.
7916
7917 * dispextern.h (struct glyph_row): Add flag overlapped_p.
7918
7919 * xterm.c (x_fix_overlapping_area): New.
7920 (x_redisplay_interface): Add x_fix_overlapping_area.
7921
7922 * dispnew.c (adjust_glyphs): Block input while adjusting matrices.
7923
79241999-08-06 Gerd Moellmann <gerd@gnu.org>
7925
7926 * xterm.c (x_draw_glyphs): Add parameter overlaps_p.
7927 (struct glyph_string): Add member for_overlaps_p.
7928 (x_get_glyph_string_clip_rect): If glyph string draws foreground
7929 of overlapping rows, clip to window bottom.
7930 (x_fill_glyph_string): Add parameter overlaps_p.
7931 (x_fill_composite_glyph_string): Ditto.
7932 (BUILD_GLYPH_STRINGS): Ditto.
7933 (BUILD_CHAR_GLYPH_STRINGS): Ditto.
7934 (x_draw_glyph_string): Don't draw anything but the foreground
7935 if glyph string draws row overlaps.
7936
7937 * dispnew.c (direct_output_for_insert): Don't use this
7938 optimization for rows that overlap others.
7939 (update_window_line): Return non-zero if display has changed.
7940 (update_text_area): Ditto.
7941 (update_window): Record if display has been changed.
7942
7943 * dispextern.h (MATRIX_ROW_OVERLAPPING_P): New.
7944
7945 * dispextern.h (struct redisplay_interface): Add
7946 fix_overlapping_area.
7947
7948 * xterm.c (x_append_glyph): Set glyph flag overlaps_vertically_p.
7949
7950 * dispextern.h (struct glyph): Add overlaps_vertically_p.
7951
7952 * xterm.c (x_produce_image_glyph): Compute iterator's physical
7953 ascent and descent.
7954 (x_produce_stretch_glyph): Ditto.
7955 (x_produce_glyphs): Ditto.
7956
7957 * xdisp.c (init_iterator): Reset physical line height info
7958 after producing special glyphs.
7959 (display_toolbar_line): Set physical line height info.
7960 (compute_line_metrics): Ditto.
7961 (display_line): Ditto.
7962 (display_string): Ditto.
7963
7964 * term.c (produce_glyphs): Set iterator's physical height
7965 information.
7966
7967 * dispnew.c (blank_row): Compute glyph row's physical height.
7968 (row_equal_p): Take physical row heights into account.
7969 (direct_output_for_insert): Ditto.
7970 (update_text_area): Ditto.
7971
7972 * dispextern.h (struct glyph_row): Add phys_ascent and
7973 phys_height.
7974 (struct it): Add phys_ascent, phys_descent, max_phys_ascent,
7975 max_phys_descent.
7976
79771999-08-04 Stefan Monnier <monnier@cs.yale.edu>
7978
7979 * buffer.c (switch_to_buffer_1): New subroutine, taken out from
7980 Fswitch_to_buffer.
7981 (no_switch_buffer): New function.
7982 (Fswitch_to_buffer): Call them. Don't get confused
7983 by "same-window" buffers in a dedicated frame.
7984
7985 * window.c (display-buffer): Don't get confused
7986 by "same-window" buffers in a dedicated frame.
7987
79881999-08-04 Andreas Schwab <schwab@gnu.org>
7989
7990 * insdel.c (insert_from_string_1): Check gap size against number
7991 of outgoing bytes, not incoming bytes.
7992
79931999-08-03 Tom Breton <tob@world.std.com>
7994
7995 * lread.c (read1): Added circular reading code to #N=.
7996 (SUBSTITUTE): New macro.
7997 (seen_list): New variable.
7998 (substitute_object_in_subtree): New function.
7999 (substitute_object_recurse): New function.
8000 (substitute_in_interval): New function.
8001
80021999-08-02 Eli Zaretskii <eliz@gnu.org>
8003
8004 * Makefile.in (frame.o, sysdep.o, xfaces.o): Depend on dosfns.h.
8005
8006 * frame.c (make_terminal_frame): Don't call init_frame_faces if
8007 noninteractive, for termcap frames as well.
8008
8009 * sysdep.c (init_sys_modes): Call init_frame_faces for termcap
8010 frames.
8011
80121999-08-01 Richard Stallman <rms@gnu.org>
8013
8014 * fns.c (internal_equal): Correct overlay comparison.
8015
83c8f461 80161999-07-31 Richard M. Stallman <rms@gnu.org>
26901792 8017
427ec082 8018 * xfns.c (x_set_internal_border_width):
26901792
DL
8019 Call do_pending_window_change. Don't block input, don't call XFlush.
8020 (x_set_vertical_scroll_bars): Call do_pending_window_change.
8021 (x_set_scroll_bar_width, x_set_font): Likewise.
8022
8023 * frame.c (Fset_frame_height): Call do_pending_window_change.
8024 (Fset_frame_width, Fset_frame_size): Likewise.
8025
8026 * xterm.c (x_set_window_size): When calling change_frame_size,
8027 specify 1 for DELAY.
8028
8029 * widget.c (EmacsFrameSetCharSize): Don't call
8030 do_pending_window_change here.
8031
80321999-07-30 Dave Love <fx@gnu.org>
8033
8034 * config.in: Add HAVE_STDLIB_H.
8035
80361999-07-30 Richard M. Stallman <rms@gnu.org>
8037
8038 * process.c (create_process): Detect failure of `pipe'.
8039
80401999-07-30 Keisuke Nishida <kei@psn.net>
8041
8042 * alloc.c (allocate_vectorlike): Add missing increment.
8043
8044 * data.c (Fdefalias): Call Ffset instead of duplicating code.
8045
8046 * keymap.c (get_keymap_1, get_keyelt): Check the type of OBJECT
8047 before calling indirect_function.
8048
80491999-07-30 Eli Zaretskii <eliz@gnu.org>
8050
8051 * dispextern.h (load_color, lookup_derived_face): Declare
8052 prototypes.
8053
8054 * dispnew.c (init_display) [MSDOS]: Don't initialize frame faces,
8055 it will be done later.
8056
8057 * frame.c (make_terminal_frame) [MSDOS]: Don't call
8058 init_frame_faces if non-interactive.
8059 (Fframe_parameters) [MSDOS]: Replace indexing into colornames[]
8060 array with a call to msdos_stdcolor_name. The font name is now
8061 "ms-dos", consistent with realize_tty_face.
8062
8063 * keyboard.c (cmd_error_internal): Don't kill Emacs if this is an
8064 MSDOS frame.
8065
8066 * window.c (Fset_window_configuration) [MSDOS]: Don't call
8067 x_set_toolbar_lines.
8068
8069 * xfaces.c (load_color): Remove static from definition and remove
8070 prototype.
8071 [MSDOS]: Add a DOS-specific version of load_color.
8072 (lookup_face): Replace FRAME_TERMCAP_P with !FRAME_WINDOW_P.
8073 (lookup_derived_face): New function.
8074 (realize_default_face): Support MSDOS frames.
8075 [MSDOS]: If fore/background colors are unspecified, inherit them
8076 from the frame.
8077 (realize_face): Support MSDOS frames.
8078 (realize_tty_face): Support MSDOS frames.
8079 [MSDOS]: If the face color is not in Vface_tty_color_alist, call
8080 load_color to try to find a suitable approximation. If the face
8081 is inverse-video, swap the foreground and background colors.
8082
8083 * dosfns.c (msdos_stdcolor_name, msdos_stdcolor_idx): New
8084 functions.
8085
8086 * dosfns.h (msdos_stdcolor_name, msdos_stdcolor_idx): Declare.
8087
8088 * msdos.h: Remove redundant declarations (most of them are now in
8089 dispextern.h).
8090
8091 * msdos.c (IT_set_face): Rewritten for the new redisplay engine.
8092 Use default frame colors if the face doesn't specify them; invert
8093 the colors if highlight is ON.
8094 (IT_write_glyphs): Rewritten for the new redisplay engine.
8095 (IT_change_line_highlight): Add (unused) parameter Y, since that's
8096 how the hook is called by term.c.
8097 (IT_copy_glyphs): New function, copies an area of the display in
8098 video RAM.
8099 (IT_insert_glyphs): Rewritten to DTRT instead of aborting, since
8100 redisplay now calls it even if char_ins_del_ok is zero.
8101 (IT_set_frame_parameters): Prototype changed. Calls the new
8102 load_color. Puts the new fore/background colors into the default
8103 face on current frame.
8104 (IT_menu_display): Rewritten to handle the new struct glyph
8105 instead of a char array.
8106 (XMenuActivate): Call lookup_derived_face to create and use
8107 special faces for the pop-up and drop-down menus.
8108
81091999-07-29 Gerd Moellmann <gerd@gnu.org>
8110
8111 * xterm.c (x_set_toolkit_scroll_bar_thumb): Don't call
8112 XawScrollbarSetThumb if thumb parameters haven't changed because
8113 that function apparently isn't optimized for this case.
8114
81151999-07-29 Eli Zaretskii <eliz@gnu.org>
8116
8117 * msdos.c (getdefdir): Don't return failure indication when
8118 _fixpath sets errno to ENOSYS.
8119
81201999-07-28 Gerd Moellmann <gerd@gnu.org>
8121
8122 * xdisp.c (string_char_and_length): New. Use it everywhere
8123 instead of STRING_CHAR_AND_LENGTH in xdisp.c.
8124
81251999-07-28 Kenichi Handa <handa@etl.go.jp>
8126
8127 * fns.c (count_combining): New function.
8128 (struct textprop_rec): New structure.
8129 (concat): Copy text properties correctly when byte combining
8130 occurs.
8131
81321999-07-28 Gerd Moellmann <gerd@gnu.org>
8133
8134 * xterm.c (x_setup_relief_color): Don't try smart color allocation
8135 if display is mono.
8136 (x_draw_row_bitmaps): If face has stipple, don't switch
8137 to foreground color for clearing areas, and set the fill style.
8138
8139 * xfaces.c (load_face_colors): Load background color if setting
8140 stipple, too.
427ec082 8141 (prepare_face_for_display): Use FillOpaqueStippled instead of
26901792
DL
8142 FillStippled.
8143
81441999-07-26 Ken'ichi Handa <handa@gnu.org>
8145
8146 * xterm.c (x_find_ccl_program): Add casting.
8147
8148 * w32fns.c (w32_find_ccl_program): Add casting.
8149
81501999-07-27 Gerd Moellmann <gerd@gnu.org>
8151
8152 * dispextern.h (struct glyph_row): Flag internal_border_p removed.
8153
8154 * xfns.c (x_create_tip_frame): Don't set bitmapIcon resource
8155 because this will try to access a nonexisting widget.
8156
81571999-07-26 Markus Rost <rost@gnu.org>
8158
427ec082 8159 * fns.c (Fgethash): Fix order of variables (patch by gerd).
26901792
DL
8160 (Fputhash): Ditto.
8161 (Fremhash): Ditto.
8162
81631999-07-26 Gerd Moellmann <gerd@gnu.org>
427ec082 8164
26901792
DL
8165 * widget.c (EmacsFrameSetCharSize): Don't add XtNborderWidth
8166 value to frame width and height.
8167
8168 * xterm.c (x_get_glyph_string_clip_rect): Take internal border
8169 into account for full-width windows. Don't add scroll bar width
8170 to width of clip rect.
8171 (x_draw_glyph_string_box): Add 1 to right x of full width lines.
8172 (x_set_glyph_string_background_width): Add 1 to background width.
8173 (x_draw_glyphs): Take internal border into account for full-width
8174 lines.
8175
81761999-07-26 Richard M. Stallman <rms@gnu.org>
8177
8178 * xfns.c (x_set_mouse_color): Always unload the old color.
8179 Don't allow nil as color value.
427ec082 8180 (x_set_cursor_color, x_set_background_color, x_set_foreground_color):
26901792
DL
8181 Always unload the old color.
8182
8183 * indent.c (Fmove_to_column): Extend end of line only if FORCE is t.
8184
81851999-07-26 Karl Heuer <kwzh@gnu.org>
8186
8187 * fns.c (Fy_or_n_p): Doc fix.
8188
81891999-07-26 Kenichi Handa <handa@etl.go.jp>
8190
8191 * ccl.h (setup_ccl_program): The type is changed to `int'.
8192
8193 * ccl.c (ccl_driver) <CCL_Call>: Now CCL program ID to call may be
8194 stored in the following CCL code. Adjusted for the change of
8195 Vccl_program_table.
8196 (resolve_symbol_ccl_program): Adjusted for the new style of
8197 embedded symbols (SYMBOL . PROP) in CCL compiled code. Return Qt
8198 is resolving failed.
8199 (ccl_get_compiled_code): New function.
8200 (setup_ccl_program): Function type changed from `void' to `int'.
8201 Resolve symbols in CCL_PROG.
8202 (Fccl_program_p): New function.
8203 (Fccl_execute): Get compiled CCL code by just calling
8204 setup_ccl_program.
8205 (Fccl_execute_on_string): Likewise.
8206 (Fregister_ccl_program): Adjusted for the change of
8207 Vccl_program_table.
8208
8209 * coding.c (setup_coding_system): Get compiled CCL code by just
8210 calling setup_ccl_program.
8211
8212 * xterm.c (x_find_ccl_program): Get compiled CCL code by just
8213 calling setup_ccl_program.
8214
8215 * w32fns.c (w32_find_ccl_program): Get compiled CCL code by just
8216 calling setup_ccl_program.
8217
82181999-07-23 Gerd Moellmann <gerd@gnu.org>
8219
8220 * xfaces.c (frame_update_line_height): Just use the height of the
8221 frame's fontset or font, instead of taking face fonts into
8222 account.
8223
8224 * xdisp.c (get_next_display_element): Display DEL as `^?'.
8225
82261999-07-23 Richard M. Stallman <rms@gnu.org>
8227
8228 * window.c (Fsplit_window): For default size, round up for left window.
8229
82301999-07-21 Joe Ramey <ramey@ti.com>
8231
8232 * filelock.c (lock_if_free): Return -1 if check_lock_owner
8233 has returned -1 (lockfile exists but is not a symlink?).
8234
82351999-07-20 Gerd Moellmann <gerd@gnu.org>
8236
8237 * xterm.c (x_draw_bar_cursor): Use scratch_cursor_gc to
8238 because of a change in cursor_gc made in 20.4.
8239
82401999-07-19 Gerd Moellmann <gerd@gnu.org>
8241
8242 * xterm.c (x_calc_absolute_position): Subtract menu bar height
8243 for YNegative, if using X toolkit.
8244
427ec082 8245 * xfns.c (x_real_positions): Don't subtract window borders
26901792
DL
8246 from positions returned.
8247
82481999-07-17 Gerd Moellmann <gerd@gnu.org>
8249
8250 * xrdb.c (x_load_resources): Set double-click time defaults
8251 for Motif list boxes from double-click-time.
8252
8253 * fns.c (Vhash_table_tests): Remvoed.
8254 (Qhash_table_test): New.
8255 (syms_of_fns): Initialize Qhash_table_test.
8256 (Fmake_hash_table): Look up user-defined tests in symbol prop
8257 `hash-table-test'.
8258 (Fdefine_hash_table_test): Store test and hash function as
8259 symbol prop `hash-table-test'.
8260 (make_hash_table): Add parameters user_test and user_hash.
8261
8262 * window.c (set_window_buffer): Set window margins for tty
8263 frames, too.
8264 (Fset_window_margins): Ditto.
8265
8266 * term.c (append_glyph): Use glyph area of iterator instead of
8267 always TEXT_AREA.
8268
8269 * dispnew.c (update_frame_1): Add left margin width to cursor
8270 hpos.
8271 (direct_output_for_insert): Ditto.
8272 (direct_output_forward_char): Ditto.
8273
8274 * dispnew.c (adjust_glyph_matrix): Set glyph matrix' top_line_p.
8275
8276 * dispextern.h (struct glyph_matrix): Add top_line_p.
8277
82781999-07-16 Gerd Moellmann <gerd@gnu.org>
8279
8280 * frame.h (FRAME_WINDOW_REDISPLAY_P): Removed. Use FRAME_WINDOW_P
8281 instead.
8282
8283 * fns.c (cmpfn_eq): Add hash code parameters.
8284 (cmpfn_eql): Ditto.
8285 (cmpfn_equal): Ditto, and compare hash codes before calling Fequal.
8286 (cmpfn_user_defined): Likewise.
8287
82881999-07-15 Gerd Moellmann <gerd@gnu.org>
8289
8290 * lisp.h (DEFAULT_REHASH_THRESHOLD): Changed to 0.8.
8291
8292 * fns.c (maybe_resize_hash_table): Correct computation of
8293 index vector size.
8294 (make_hash_table): Ditto.
8295 (Fmakehash): New.
8296
8297 * xdisp.c (echo_area_display): Don't call redraw_garbaged_frames.
8298
8299 * alloc.c (gc_sweep): Call sweep_weak_hash_tables.
8300 (survives_gc_p): Make it externally visible.
8301 (mark_object): Ditto.
8302
8303 * fns.c (remove_hash_entry): Removed.
8304 (sweep_weak_hash_tables): New.
8305
8306 * print.c (print): Print more information about hash tables.
8307
8308 * xfns.c (image_spec_hash): Removed.
8309 (lookup_image): Use sxhash instead of image_spec_hash.
8310 (image_spec_equal_p): Removed.
8311 (lookup_image): Use Fequal instead of image_spec_equal_p.
8312
83131999-07-14 Gerd Moellmann <gerd@gnu.org>
8314
8315 * lisp.h (P_): Moved to top of file.
8316
8317 * fns.c (make_hash_table): Set new members.
8318
8319 * alloc.c (mark_object): Mark hash table's user_hash_function.
8320 Mark index vector for weak hash tables.
8321
8322 * lisp.h (struct Lisp_Hash_Table): Add user_cmp_function,
8323 user_hash_function, cmpfn, and hashfn.
8324
8325 * fns.c (build_hash): Removed.
8326 (hash_test): Removed.
8327 (cmpfn_eq, cmpfn_eql, cmpfn_equal, cmpfn_user_defined): New.
8328 (hashfn_eq, hashfn_eql, hashfn_equal, hashfn_user_defined): New.
8329
83301999-07-13 Gerd Moellmann <gerd@gnu.org>
8331
8332 * alloc.c (survives_gc_p): New.
8333
8334 * print.c (print): Add hash table handling.
8335
8336 * alloc.c (mark_object): Add code to mark hash tables.
8337
8338 * lisp.h (GC_HASH_TABLE_P): New.
8339
8340 * emacs.c (main): Call init_fns.
8341
8342 * fns.c (init_fns): New.
8343
8344 * fns.c: Add hash table implementation.
8345
8346 * lisp.h (PVEC_HASH_TABLE): New.
8347 (struct Lisp_Hash_Table): New.
8348 (XHASH_TABLE): New.
8349 (XSET_HASH_TABLE): New.
8350 (HASH_TABLE_P): New.
8351 (CHECK_HASH_TABLE): New.
8352 (DEFAULT_HASH_SIZE): New.
8353 (DEFAULT_REHASH_THRESHOLD): New.
8354 (DEFAULT_REHASH_SIZE): New.
8355
8356 * xterm.c (x_draw_glyphs): Add parameters real_start and real_end.
8357 (x_write_glyphs): Compute overwritten cursor using real start
8358 and end positions of display.
8359 (x_insert_glyphs): Ditto.
8360
83611999-07-10 Gerd Moellmann <gerd@gnu.org>
8362
8363 * keyboard.c (read_char): Use message3_nolog to show help-echo.
8364
8365 * dispnew.c (blank_row): Add y-position as parameter. Compute
8366 visible height.
8367
8368 * xdisp.c (next_element_from_string): Give padding spaces
8369 a position of -1.
8370
427ec082 8371 * dispnew.c (adjust_glyph_matrix): Some work to support
26901792
DL
8372 marginals areas on tty frames in a future version.
8373 (allocate_matrices_for_frame_redisplay): Ditto.
8374
8375 * xdisp.c (display_line): At ZV, set glyph row's displays_text_p
8376 to zero if number of glyphs in the row is <= 1.
8377
83781999-07-09 Gerd Moellmann <gerd@gnu.org>
8379
8380 * dispnew.c (buffer_posn_from_coords): Take left marginal area
8381 into account.
8382
8383 * xdisp.c (handle_display_prop): Don't reset area if handing
8384 a property from a string that came from a `display' property.
8385 (handle_single_display_prop): Don't handle recursive `display'
8386 properties.
8387 (handle_single_display_prop): Handle some display property
8388 forms for terminal frames.
8389 (Qimage): Moved here from xfns.c.
8390
8391 * dispextern.h (struct it): New field string_from_display_prop_p.
8392
8393 * xterm.c (x_clip_to_row): Don't let clip_rect include top
8394 line.
8395
83961999-07-08 Gerd Moellmann <gerd@gnu.org>
8397
8398 * xdisp.c (handle_single_display_prop): Handle `:when FORM'.
8399
8400 * window.c (set_window_buffer): Set window's vscroll to zero.
8401
8402 * xdisp.c (QCwhen): New.
8403 (display_prop_end): New.
8404 (handle_single_display_prop): Use it.
8405 (debug_method_add): Print buffer name if tracing.
8406 (try_window_reusing_current_matrix): Compute visible height
8407 of reused rows. Fix cursor position calculation in case of
8408 top-line.
8409
8410 * dispextern.h (struct redisplay_interface): Add parameter
8411 cursor_on_p to update_window_end_hook.
8412
8413 * xterm.c (x_update_window_end): Add parameter cursor_on_p.
8414
84151999-07-07 Gerd Moellmann <gerd@gnu.org>
8416
427ec082 8417 * xdisp.c (redisplay_internal): Ensure that redisplayinp_p
26901792
DL
8418 doesn't become negative when decrementing it.
8419
8420 * eval.c (Fsignal): Reset redisplaying_p to zero.
8421
8422 * xdisp.c (try_window_reusing_current_matrix): Call hooks
8423 for window update.
8424 (try_window_id): Ditto.
8425
8426 * xterm.c (x_clear_end_of_line): Handle top-line correctly.
8427 (x_scroll_run): Ditto.
8428 (any_help_event_p): New.
8429 (x_initialize): Set it to zero.
8430 (XTread_socket): Clear help echo only if any_help_event_p.
8431
8432 * xdisp.c (init_iterator): Set top_line_p.
8433 (start_display): Use correct initial y if top-line is present.
8434 (make_cursor_line_fully_visible): Bug fixes for top-line.
8435 (try_scrolling): Ditto.
8436 (try_window_reusing_current_matrix): Ditto.
8437
8438 * dispextern.h (struct it): Add top_line_p.
8439
8440 * dispnew.c (shift_glyph_matrix): Move some computations out
8441 of the loop.
8442
427ec082 8443 * dispnew.c (margin_glyphs_to_reserve): Use NUMBERP and
26901792
DL
8444 XFLOATINT.
8445
84461999-07-06 Gerd Moellmann <gerd@gnu.org>
8447
8448 * dispnew.c (update_frame_1): When setting cursor in echo area,
8449 skip only over padding spaces at the end.
8450
8451 * xfaces.c (realize_tty_face): Set face's font_name field to
8452 "tty".
8453
8454 * term.c (update_end): Turn cursor on only if selected window's
8455 cursor_off_p flag is not set.
8456
84571999-07-05 Gerd Moellmann <gerd@gnu.org>
8458
8459 * term.c (TS_cursor_visible): Renamed from TS_visual_mode.
8460 (TS_cursor_normal): Renamed from TS_end_visual_mode.
8461 (TS_cursor_invisible): New.
8462 (term_init): Initialize TS_cursor_invisible.
8463 (tty_hide_cursor): New.
8464 (tty_show_cursor): New.
8465 (update_end): Show tty cursor.
8466 (update_begin): Hide tty cursor to prevent cursor flickering
8467 during redisplays triggered by timers (stealth fontification).
8468
8469 * keyboard.c (make_lispy_event) <TOOLBAR_EVENT>: Apply modifiers.
8470
8471 * xterm.c (XTread_socket) [USE_MOTIF] <KeyPress>: Catch events
8472 in scroll bars.
8473 (x_handle_toolbar_click): Set modifier bits.
8474
84751999-07-04 Gerd Moellmann <gerd@gnu.org>
8476
8477 * keyboard.c (kbd_store_ptr): Declare it as a volatile pointer
8478 instead of a pointer to a volatile input_event.
427ec082 8479 (kbd_buffer_store_event): Remove volatile modifier from
26901792
DL
8480 declaration of local variable `sp'.
8481 (Fdiscard_input): Don't cast when assigning kbd_store_ptr
8482 to kbd_fetch_ptr.
8483
84841999-07-03 Gerd Moellmann <gerd@gnu.org>
8485
8486 * xdisp.c (try_window_id): Set beg_unchanged and end_unchanged
8487 only if buffer is modified. Return quickly if changes are
8488 above window start.
8489
84901999-07-02 Gerd Moellmann <gerd@gnu.org>
8491
8492 * dispextern.h (HSCROLL_WINDOWS): Removed.
8493
8494 * xdisp.c (mark_window_display_accurate): Don't set
8495 w->region_showing.
8496 (redisplay_internal): Don't call redraw_garbaged_frames.
8497
84981999-07-01 Gerd Moellmann <gerd@gnu.org>
8499
8500 * xdisp.c (echo_area_display): Don't display truncation marks
8501 for messages because 20.4 doesn't do it either.
8502 (redisplay_window): Case same window start. Instead of giving
8503 up when cursor is partially visible, make it fully visible.
8504 (mark_window_display_accurate): Some cleanup. Record window's
8505 last cursor information.
8506 (debug_method_add): Improved.
8507 (redisplay_internal): Record last cursor info only if not
8508 consider_all_windows_p.
8509
8510 * dispnew.c (update_window): Update top line after scrolling.
8511 (blank_row): Renamed from make_empty_enabled_row.
8512 (increment_glyph_row_buffer_positions): Increment positions
8513 in buffers, only.
8514
8515 * window.c (Fcoordinates_in_window_p): Add top-line to doc
8516 string.
8517
85181999-06-30 Gerd Moellmann <gerd@gnu.org>
8519
8520 * dispnew.c (update_window): Check that updated row is visible.
8521
8522 * xterm.c (x_draw_row_bitmaps): Check for invisible rows at
8523 top of window differently.
8524
8525 * xdisp.c (try_window_reusing_current_matrix): Don't do it
8526 if region is showing.
8527
8528 * dispnew.c (adjust_glyph_matrix): Check w->vscroll when
8529 avoiding matrix reallocation. Set window_vscroll in matrix.
8530
8531 * dispextern.h (struct glyph_matrix): Add member window_vscroll.
8532
26901792
DL
8533 * xdisp.c (debug_method_add): New.
8534 (debug_redisplay_method): Removed.
8535 (try_window_reusing_current_matrix): Handle case where old
8536 window start is the same as new window start.
8537
8538 * dispextern.h (struct glyph_matrix) [GLYPH_DEBUG]: Make `method'
8539 an array instead of a pointer.
8540
26901792
DL
8541 * xfns.c (Fx_show_tip): Undo previous change.
8542
8543 * xterm.c (x_append_glyph): Clear glyph->u.val.
8544
8545 * dispextern.h (struct glyph): Increase size of face_id bit-field
8546 for CHAR_GLYPH to 12.
8547
85481999-06-29 Gerd Moellmann <gerd@gnu.org>
8549
8550 * xfaces.c (x_charset_registry): Make it externally visible.
8551
85521999-06-28 Gerd Moellmann <gerd@gnu.org>
8553
427ec082 8554 * dispnew.c (update_window): Use mode_line_p flag of rows
26901792
DL
8555 instead of WINDOW_WANTS_MODELINE_P.
8556
8557 * xterm.c (clear_mouse_face): Make externally visible.
8558
8559 * xfns.c (Fx_show_tip): Clear mouse face before showing tip.
8560
8561 * xterm.c (expose_line): Handle exposure of top-lines.
8562
8563 * xterm.c (XTframe_up_to_date): Don't call note_mouse_highlight
8564 if mouse_face_mouse_frame is null.
8565
8566 * xdisp.c (redisplay_window): If window is echo_area_window,
8567 and update_mode_line is set, update menubar and toolbar.
8568
8569 * dispnew.c (space_glyph): Set its charpos to -1.
8570 (update_frame_1): Ignore trailing padding spaces.
8571
8572 * xdisp.c (next_element_from_c_string): Set position of padding
8573 glyphs to -1.
8574
85751999-06-27 Gerd Moellmann <gerd@gnu.org>
8576
8577 * xfns.c (x_laplace_read_row): Use XQueryColors instead of
8578 XQueryColor.
8579
8580 * xdisp.c (display_menu_bar): Remove unwarranted assertion.
8581 (set_cursor_from_row): Skip over glyphs having a null object at
8582 the start of rows.
8583 (insert_left_trunc_glyphs): Use charpos < 0 to indicate truncation
8584 glyphs.
8585 (handle_invisible_prop): Compute next change only when needed.
8586 (handle_face_prop): Don't correct DEFAULT_FACE_ID if in the mode
8587 line.
8588
85891999-06-26 Gerd Moellmann <gerd@gnu.org>
8590
8591 * xrdb.c (x_load_resources): Don't set resource for double-click
8592 time.
8593
8594 * xdisp.c (try_window_id): Return quickly if all changes are
8595 below the window's current matrix end.
8596
8597 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): Remove window
8598 parameter.
8599
8600 * xdisp.c (try_window_reusing_current_matrix): Set no_scrolling_p
8601 in desired not in current matrix.
8602 (try_window_reusing_current_matrix): Rotate matrices starting
8603 at start_vpos instead of 0.
8604
8605 * xterm.c (expose_window): Use window_text_bottom_y.
8606 (fast_find_position): Ditto.
8607
8608 * xdisp.c (redisplay_window): Use window_text_bottom_y.
8609 (try_window_reusing_current_matrix): Ditto.
8610 (get_last_unchanged_at_beg_row): Ditto.
8611 (init_iterator): Ditto.
8612
8613 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate one
8614 more row.
8615 (check_matrix_invariants): Use window_text_bottom_y.
8616 (update_window): Ditto.
8617 (scrolling_window): Ditto.
8618
8619 * xdisp.c (window_text_bottom_y): New.
8620
86211999-06-25 Gerd Moellmann <gerd@gnu.org>
8622
8623 * xterm.c (XTread_socket): Set mouse_face_frame to zero after
8624 clearing mouse face.
8625 (XTread_socket) <EnterNotify> [LESSTIF_VERSION]: If
8626 event.xcrossing.focus is not set, and focus is in the menu bar,
8627 set focus frame as if event.xcrossing.focus were set.
8628
86291999-06-24 Gerd Moellmann <gerd@gnu.org>
8630
8631 * keyboard.c (make_lispy_event): Handle mouse on top lines.
8632 * keyboard.c (make_lispy_movement): Ditto.
8633
8634 * window.c (coordinates_in_window): Return 4 if on top line.
8635 (Fcoordinates_in_window_p): Return `top-line' if on top line.
8636
8637 * xdisp.c (window_box_height): Subtract top line height.
8638 (window_box): Add top line height to top y position if top line
8639 exists.
8640 (init_iterator): If base_face_id is TOP_LINE_FACE_ID, set row to
8641 the top line row of the window. Set initial y-position to
8642 window's top line height plus delta.
8643 (start_display): Choose start glyph row depending on whether
8644 window has a top line.
8645 (try_scrolling): Take top line height into account for aggressive
8646 scrolling.
8647 (compute_window_start_on_continuation_line): Take top line into
8648 account.
427ec082 8649 (redisplay_window): Ditto. If top line height has changed,
26901792
DL
8650 trigger a new redisplay.
8651 (try_window_reusing_current_matrix): Take top line into account.
8652 (find_last_row_displaying_text): Ditto.
8653 (get_last_unchanged_at_beg_row): DItto.
8654 (try_window_id): Ditto.
8655 (compute_line_metrics): Ditto.
8656
8657 * dispnew.c (shift_glyph_matrix): Compute visible row height
8658 taking top line of window into account.
8659 (update_window): Update top line. If scrolling_window detects
8660 that all rows are equal, only set cursor.
8661 (update_window_line): Call after_update_window_line_hook if
8662 mode_line_p flag of rows has changed.
8663 (scrolling_window): Add parameter top_line_p. Return -1 if
8664 all rows are equal.
8665 (mode_line_string): Add parameter mode_line_p. Handle strings
8666 in top lines.
8667
8668 * dispextern.h (MATRIX_TOP_LINE_ROW): New.
8669 (MATRIX_FIRST_TEXT_ROW): New.
8670 (MATRIX_ROW_PARTIALLY_VISIBLE_P): Use row's visible_height.
8671 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_TOP_P): New.
8672 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_BOTTOM_P): New.
8673 (MATRIX_TOP_LINE_HEIGHT): New.
8674 (CURRENT_MODE_LINE_HEIGHT): Use estimate_mode_line_height.
8675 (CURRENT_TOP_LINE_HEIGHT): New.
8676 (DESIRED_TOP_LINE_HEIGHT): New.
8677 (WINDOW_DISPLAY_TOP_LINE_HEIGHT): New.
8678 (WINDOW_DISPLAY_HEIGHT_NO_MODE_LINE): Replaces
8679 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
8680 (WINDOW_DISPLAY_TEXT_HEIGHT): New.
8681
8682 * xterm.c (x_after_update_window_line): Don't draw bitmaps for top
8683 lines.
8684 (x_draw_row_bitmaps): Take top line into account when clearing
8685 bitmap area.
8686 (x_estimate_mode_line_height): Replacement for
8687 x_frame_mode_line_height.
8688 (x_get_glyph_string_clip_rect): Take top line into account.
8689 (x_clear_end_of_line): Ditto.
8690 (note_mode_line_highlight): Add parameter mode_line_p. Handle
8691 top lines.
8692 (note_mouse_highlight): Call note_mode_line_highlight for top lines.
8693 (x_erase_phys_cursor): Take top line into account.
8694
8695 * xdisp.c (window_box_height): Subtract top line height if
8696 window wants a top line.
8697 (display_mode_lines): New.
8698 (redisplay_window): Call it.
8699 (display_mode_line): Add parameters face_id and format.
8700
8701 * dispextern.h (CURRENT_TOP_LINE_HEIGHT): New.
8702 (MATRIX_TOP_LINE_HEIGHT): New.
8703
8704 * xterm.c (x_frame_mode_line_height): Add parameter face_id.
8705
8706 * term.c (estimate_mode_line_height): Renamed from
8707 frame_mode_line_height. Add parameter face_id.
8708 (estimate_mode_line_height_hook): Renamed from
8709 frame_mode_line_height_hook.
8710 (produce_special_glyphs_hook): Removed.
8711 (produce_glyphs_hook): Removed.
8712
87131999-06-23 Gerd Moellmann <gerd@gnu.org>
8714
8715 * dispextern.h (WINDOW_WANTS_TOP_LINE_P): New.
8716 (struct glyph_row): Add mode_line_p.
8717
8718 * xfaces.c (realize_basic_faces): Realize face `top-line'.
8719 (Qtop_line): New.
8720 (syms_of_xfaces): Initialize Qtop_line.
8721
8722 * dispextern.h (TOP_LINE_FACE_ID): New.
8723
8724 * buffer.c (init_buffer_once): Set default for
8725 top_line_format to nil.
8726 (init_buffer_once): Init top_line_format.
8727 (default-top-line-format): New.
8728 (top-line-format): New buffer-local variable.
8729
8730 * buffer.h: Add top_line_format.
8731
8732 * xdisp.c (overlay_arrow_changed_p): Removed because not used.
8733
87341999-06-17 Dave Love <fx@gnu.org>
8735
8736 * xfns.c: Move the PNG section before the JPEG one to avoid
8737 problems surrounding setjmp.h/png.h on GNU/Linux.
427ec082 8738
26901792
DL
87391999-06-17 Gerd Moellmann <gerd@gnu.org>
8740
8741 * xfns.c (x_kill_gs_process): Don't free colors.
8742
87431999-06-17 Dave Love <fx@gnu.org>
8744
8745 * s/gnu-linux.h: Zap spurious ~.
8746
87471999-06-16 Gerd Moellmann <gerd@gnu.org>
8748
8749 * xfns.c (gif_load): Improve multi-image support.
8750
87511999-06-15 Gerd Moellmann <gerd@gnu.org>
8752
8753 * xfns.c (gif_load): Support multi-image files.
8754
8755 * Makefile.in (LIBGIF): Use libungif.
8756
8757 * configure.in (HAVE_GIF): Use libungif instead of libgif
8758 because the former doesn't contain patented compression code.
8759
8760 * xdisp.c (compute_window_start_on_continuation_line): Don't
8761 do it if line start is too far away from window start.
8762
87631999-06-14 Gerd Moellmann <gerd@gnu.org>
8764
8765 * buffer.c (init_buffer_once): Set buffer_local_flags for
8766 scroll_*_aggressively.
8767 (syms_of_buffer): Add DEFVAR_PER_BUFFER for scroll-*-aggressively.
8768 (init_buffer_once): Set defaults for these variables.
8769 (syms_of_buffer): Add default-scroll-*-aggressively.
8770
8771 * buffer.h (scroll_up_aggressively): New.
8772 (scroll_down_aggressively): New.
8773
8774 * Makefile.in (LIBPNG): Add -lz -lm in case we're linking with
8775 a static PNG library.
8776
8777 * configure.in (HAVE_PNG): Add -lz -lm when checking for PNG lib
8778 in case it's a static library.
8779
8780 * Makefile.in (ctagsfiles): Split so that files starting
8781 with an `x' are found before files starting with `w32'.
8782 (ctagsfiles1): New.
8783 (ctagsfiles2): New.
8784 (TAGS): Use ctagsfiles[12] instead of ctagsfiles.
8785
8786 * xdisp.c (compute_window_start_on_continuation_line): New.
8787 (redisplay_window): Use it.
8788 (INFINITY): New.
8789 (reseat_to_string): Use it.
8790 (hscroll_window_tree): Ditto.
8791 (compute_window_start_on_continuation_line): Ditto.
8792 (redisplay_window): Don't force display with a new window start.
8793
87941999-06-06 Gerd Moellmann <gerd@gnu.org>
8795
8796 * xfns.c (x_report_frame_params): Don't report `outer-window-id'
8797 if widget not present.
8798
8799 * xdisp.c (prepare_menu_bars): Ignore tooltip frame.
8800
88011999-06-04 Gerd Moellmann <gerd@gnu.org>
8802
8803 * xfaces.c (recompute_basic_faces)[GLYPH_DEBUG]: Check return
8804 value of realize_basic_faces.
8805 (load_face_font_or_fontset): Store full font name in face.
8806 (realize_default_face): Use full font name.
8807
26901792
DL
8808 * xterm.c (x_produce_glyphs): Set member char_to_display.
8809 (x_append_glyph): Store char_to_display in glyphs.
8810
8811 * dispextern.h (struct it): Add char_to_display.
8812
8813 * xfns.c (x_set_font): Don't call face-set-after-frame-default
8814 if faces haven't been initialized.
8815 (Fx_create_frame): Call face-set-after-frame-default after
8816 faces have been initialized, and widget has been created.
8817
8818 * puresize.h (BASE_PURESIZE): Increased.
8819
88201999-06-01 Gerd Moellmann <gerd@gnu.org>
8821
8822 * xfaces.c (set_lface_from_font_name): Add parameter force_p.
8823 (Finternal_set_lisp_face_attribute): If frame is t when
8824 :font attribute is set, use the selected frame.
8825 (clear_face_cache): Add parameter clear_fonts_p.
8826 (Fclear_face_cache): Add optional parameter thorougly.
8827
8828 * xfaces.c (face_numeric_value): Return -1 if symbol is not
8829 in table.
8830 (Fclear_face_cache): New.
8831 (choose_face_fontset_font): If fontset doesn't contain font
8832 pattern for the given charset, use CHARSET_ASCII.
8833 (Finternal_set_lisp_face_attribute): Fix handling of nil
8834 stipple attribute.
8835 (Finternal_set_lisp_face_attribute): Fix handling of changing
8836 font-related face attributes of the default face.
8837 (set_lface_from_font_name): Set only attributes that aren't
8838 specified.
8839
88401999-05-31 Gerd Moellmann <gerd@gnu.org>
8841
8842 * xfaces.c (SCALABLE_FONTS): Define this to enable scalable
8843 font support.
8844 (Vscalable_fonts_allowed) [SCALABLE_FONTS]: New.
8845 (x_face_list_fonts): Add parameter scalable_fonts_p. Handle
8846 scalable fonts depending on the setting of SCALABLE_FONTS.
8847 (first_font_matching): List more than one font to find the
8848 first non-scalable matching font.
8849 (sorted_font_list): Let x_face_list_fonts return scalable fonts
8850 depending on SCALABLE_FONTS.
8851 (better_font_p): New parameter compare_pt_p. If zero, don't
8852 compare point sizes of fonts.
8853 (exact_face_match_p) [SCALABLE_FONTS]: New.
8854 (build_scalable_font_name) [SCALABLE_FONTS]: New.
8855 (may_use_scalable_font_p) [SCALABLE_FONTS]: New.
8856 (best_matching_font) [SCALABLE_FONTS]: Handle scalable fonts.
8857 (syms_of_xfaces): Add scalable-fonts-allowed.
8858
88591999-05-26 Gerd Moellmann <gerd@gnu.org>
8860
8861 * xfns.c (png_load): Let PNG lib handle gamma. Construct
8862 mask only if image contains simple transparency information.
8863 Otherwise, combine image with frame background color.
8864
8865 * configure.in (--with-png, HAVE_PNG): New.
8866
8867 * config.in (HAVE_PNG): New.
8868
8869 * Makefile.in: Add PNG library.
8870
8871 * xfns.c: Add PNG support.
8872
88731999-05-25 Gerd Moellmann <gerd@gnu.org>
8874
8875 * xdisp.c (init_xdisp): Initialize echo_area_message and
8876 previous_echo_area_message to nil.
8877
8878 * keyboard.c (read_char): Rename local variable echo_area_message
8879 because it shadows the global one.
8880
88811999-05-05 Gerd Moellmann <gerd@gnu.org>
8882
8883 * xterm.c (note_mode_line_highlight): Restructured.
8884
8885 * window.c (coordinates_in_window): Handle windows that don't have
8886 a mode line because their buffer's mode-line-format is nil.
8887 Recognize the mode line under x positions that correspond to
8888 flags areas and left scroll bar.
8889
88901999-05-02 Dave Love <fx@gnu.org>
8891
8892 * xterm.c (note_mouse_highlight): Separate help-echo processing
8893 from check on mouse-face so that it works generally.
8894
88951999-04-21 Gerd Moellmann <gerd@gnu.org>
8896
8897 * sound.c (Fplay_sound): Run hook play-sound-hook.
8898 (Qplay_sound_hook): New.
8899
89001999-04-20 Gerd Moellmann <gerd@gnu.org>
8901
8902 * xdisp.c (update_echo_area): Handle echo_area_message.
8903
89041999-04-19 Gerd Moellmann <gerd@gnu.org>
8905
8906 * editfns.c (Fmessage): Use message3.
8907
8908 * print.c (printchar): Set echo_area_message to nil.
8909 (strout): Ditto.
8910
8911 * minibuf.c (read_minibuf): Reset echo message strings to nil.
8912 (Fminibuffer_completion_help): Ditto.
8913
8914 * keyboard.c (cmd_error_internal): Set echo_areA_message.
8915 (command_loop_1): Test echo_areA_message.
8916 (read_char): Ditto.
8917 (record_menu_key): Set echo_area_message to nil.
8918 (Fexecute_extended_command): Test echo_area_message.
8919 (Fexecute_extended_command): Handle echo_area_message.
8920
8921 * fileio.c (Fdo_auto_save): Handle the case that echo_area_message
8922 is set.
8923
8924 * editfns.c (Fcurrent_message): If echo_area_message is set,
8925 return a substring of that string.
8926
8927 * dispnew.c (direct_output_for_insert): Test echo_area_message
8928 in addition to echo_area_glyphs.
8929 (set_window_cursor_after_update): Ditto.
8930 (update_frame_1): Ditto.
8931
8932 * alloc.c (Fgarbage_collect): Use message3_nolog to display
8933 old Lisp message string.
8934
8935 * xdisp.c (echo_area_message): New.
8936 (previous_echo_area_message): New.
8937 (syms_of_xdisp): Initialize and staticpro new variables.
8938 (echo_area_display): Display echo_area_message if set.
8939 (message2_nolog): Set echo_area_message and
8940 previous_echo_area_message.
8941 (echo_area_display): Set previous_echo_area_message.
8942 (redisplay_internal): Display echo area if echo_area_message
8943 or previous_echo_area_message are set.
8944 (redisplay_preserve_echo_area): Test/set echo_area_message and
8945 previous_echo_area_message.
8946 (redisplay_window): Test echo_area_message.
8947 (message3_nolog): New.
8948 (message3): New.
8949
8950 * editfns.c (Fformat): Add text properties to the result string
8951 from properties of the format string and properties of string
8952 arguments.
8953
8954 * textprop.c (text_property_list): New.
8955 (add_text_properties_from_list): New.
8956 (extend_property_ranges): New.
8957
89581999-03-29 Gerd Moellmann <gerd@gnu.org>
8959
8960 * xfaces.c (Qraised, Qsunken, QCshadow): Removed.
8961 (QCline_width, QCstyle, Qpressed_button, Qreleased_button): New.
8962 Use these symbols for the box face attribute instead of the
8963 removed ones.
8964
89651999-03-12 Gerd Moellmann <gerd@gnu.org>
8966
8967 * xfaces.c (realize_tty_face): Don't set alt_char_p of face.
8968 Correct wrong test for slant.
8969
89701999-03-10 Gerd Moellmann <gerd@gnu.org>
8971
8972 * xfaces.c: Use `unspecified' for unspecified face attributes,
8973 use t and nil for on/off.
8974
89751999-03-06 Gerd Moellmann <gerd@gnu.org>
8976
8977 * buffer.c (syms_of_buffer): Extend doc string of
8978 mode-line-format.
8979
8980 * xfaces.c (x_face_list_fonts): New parameter try_alternatives_p.
8981 (first_font_matching): New.
8982 (set_lface_from_font_name): Use it if font name is a pattern.
8983 (font_field_wildcard_p): Removed.
8984
8985 * dispnew.c (shift_glyph_matrix): Add `window' parameter.
8986 Recompute visible height of rows.
8987
8988 * xterm.c (note_mouse_highlight): Reorder code for help-echo.
8989 Don't accept non-strings for help-echo from overlays.
8990
89911999-03-04 Dave Love <fx@gnu.org>
8992
8993 * xterm.c (note_mouse_highlight): Check overlays for help-text
8994 property.
8995 (XTread_socket): Fix compiler warning.
427ec082 8996
26901792
DL
89971999-03-05 Gerd Moellmann <gerd@gnu.org>
8998
427ec082 8999 * xterm.c (note_mouse_highlight): Don't restrict number of
26901792
DL
9000 overlay to 10. Call overlays_at so that it doesn't try to
9001 extend the vector.
9002
9003 * xdisp.c (compute_line_metrics): Compute glyph row's visible
9004 height.
9005
9006 * dispnew.c (row_equal_p): Compare visible row height, only.
9007 (update_text_area): Draw whole line if visible heights of
9008 rows differ.
9009 (update_window_line): Call after_update_window_line_hook
9010 if visible row height has changed.
9011
9012 * dispextern.h (MATRIX_ROW_VISIBLE_HEIGHT): Removed.
9013 (struct glyph_row): New member visible_height.
9014
9015 * xfaces.c (font_field_wildcard_p): New.
9016 (set_lface_from_font_name): Remove parameter force_p. Accept
9017 font names containing wildcards.
9018
90191999-03-04 Gerd Moellmann <gerd@gnu.org>
9020
9021 * xterm.c (x_after_update_window_line): Clear internal border
9022 when windows_or_buffers_changed.
9023
9024 * dispextern.h (WINDOW_WANTS_MODELINE_P): Return zero if window's
9025 buffer has a nil mode_line_format.
9026
90271999-03-03 Gerd Moellmann <gerd@gnu.org>
9028
9029 * xterm.c (x_setup_relief_colors): Use either background color
9030 or specified color.
9031
9032 * xfaces.c (realize_x_face): Set face->use_box_color_for_shadows_p.
9033
9034 * dispextern.h (struct face): Add use_box_color_for_shadows_p.
9035
9036 * xterm.c (x_draw_box_rect): New.
9037 (x_draw_glyph_string_box): Renamed from
9038 x_draw_glyph_string_relief. Call x_draw_box_rect.
9039
9040 * xfns.c (QCrelief): New.
9041 (syms_of_xfns): Initialize it.
9042
9043 * dispextern.h (struct glyph): Rename left_shadow_p to
9044 left_box_line_p, right_shadow_p to right_box_line_p.
9045 (MAX_RELIEF_THICKNESS): Removed.
9046 (struct it): Rename members having `relief' in their names
9047 to contain `box' instead.
9048
9049 * xfaces.c (realize_x_face): Handle new box attribute values.
9050 (QCrelief, Qbox): Removed.
9051 (QCshadow, QCcolor, Qraised, Qsunken): New.
9052 (syms_of_xfaces): Initialize new symbols.
9053
90541999-03-02 Gerd Moellmann <gerd@gnu.org>
9055
9056 * dispextern.h (LFACE_RELIEF_INDEX): Removed.
9057
9058 * xfaces.c (LFACE_RELIEF): Removed.
9059 (merge_face_vector_with_property): Remove handling of `:relief'.
9060 (Finternal_set_lisp_face_attribute): Ditto.
9061 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
9062 (Finternal_get_lisp_face_attribute): Ditto.
9063 (realize_default_face): Ditto.
9064 (lface_hash): Don't compute hash from relief.
9065
9066 * dispextern.h (struct face): Replace member `relief' by
9067 `box_line_width'. Add member `box'.
9068 (face_box_type): New.
9069
9070 * xterm.c (x_produce_glyphs): If face has overline, add overline
9071 thickness + 1 to ascent.
9072
90731999-03-01 Gerd Moellmann <gerd@gnu.org>
9074
9075 * xterm.c (x_draw_glyph_string): Draw underline, overline,
9076 strike-through, and boxes.
9077 (x_draw_glyph_string_underline): Removed.
9078
9079 * xfaces.c (QCoverline, QCstrike_through, QCbox): New.
9080 (Qoverline, Qstrike_through, Qbox): New.
9081 (syms_of_xfaces): Define these symbols.
9082 (check_lface_attrs): Add checks for overline, strike-through,
9083 and box.
9084 (Finternal_set_lisp_face_attribute): Set new attributes.
9085 (LFACE_OVERLINE, LFACE_STRIKE_THROUGH, LFACE_BOX): New.
9086 (load_color): Handle new attributes.
9087 (realize_x_face): Ditto.
9088 (merge_face_vector_with_property): Ditto.
9089 (free_face_colors): Ditto.
9090 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
9091 (Finternal_get_lisp_face_attribute): Ditto.
9092 (Finternal_lisp_face_attribute_values): Ditto.
9093
9094 * dispextern.h (lface_attribute_index): Add enumerators for
9095 overstrike, strike-through, and box.
9096 (struct face): Add members for overline, strike-through, and
9097 box.
9098
90991999-02-17 Dave Love <fx@gnu.org>
9100
9101 * s/gnu-linux.h s/gnu.h s/irix5-0.h s/netbsd.h s/sco4.h s/sco5.h
9102 s/template.h (NARROWPROTO): Define on the basis of relevant X cf
9103 files.
9104
91051999-02-16 Gerd Moellmann <gerd@gnu.org>
9106
9107 * keyboard.c (toolbar_items): Call access_keymap with third
9108 parameter 1, so that we don't get inherited toolbar item
9109 definitions.
9110
9111 * xdisp.c (redisplay_internal): In optimization 1, don't decrement
9112 the window end vpos when in empty first line of window.
9113
91141999-02-15 Gerd Moellmann <gerd@gnu.org>
9115
9116 * xfaces.c (set_font_frame_param): New.
9117 (Finternal_set_lisp_face_attribute): Call it.
9118
9119Sun Feb 14 10:54:02 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9120
9121 * xfaces.c (Finternal_set_lisp_face_attribute_from_resource):
9122 Accept specifications of color for underline.
9123
91241999-02-13 Gerd Moellmann <gerd@gnu.org>
9125
9126 * xfaces.c (Finternal_set_lisp_face_attribute): If parameter
9127 `frame' is t, operate on face defaults for new frames. If it
9128 is nil, operate on the selected frame.
9129
91301999-02-12 Gerd Moellmann <gerd@gnu.org>
9131
9132 * dispnew.c (check_matrix_invariants): Put it in #if 0.
9133 (update_window): Put the call to check_matrix_invariants in #if 0.
9134
9135Sun Feb 7 09:58:49 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9136
9137 * dispextern.h: Remove all else block of UNDERLINE_COLOR.
9138 Remove definition of UNDERLINE_COLOR.
9139
9140Mon Jan 4 04:43:41 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9141
9142 * xfaces.c (free_face_colors): Free the color for underline.
9143
9144 * xterm.c (x_draw_glyph_string_underline): Set the color for underline
9145 to the GC.
9146
9147Sun Jan 3 08:41:10 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9148
9149 * dispextern.h (UNDERLINE_COLOR): Defined.
9150 (struct face): Added two new members.
9151 underline_color, underline_defaulted_p.
9152
427ec082 9153 * xfaces.c (merge_face_vector_with_property):
26901792 9154 (check_lface_attrs): Accept the string value for underline.
427ec082 9155 (Finternal_set_lisp_face_attribute): Likewise.
26901792
DL
9156
9157 * xfaces.c (load_color): Change the last argument type to enum
9158 lface_attribute_index from int. And addec code for underling coloring.
9159 (load_face_colors): Pass LFACE_*_INDEX to load_color.
427ec082 9160
26901792
DL
91611999-02-12 Gerd Moellmann <gerd@gnu.org>
9162
9163 * xfns.c (Fx_image_header): Removed.
9164
91651999-02-07 Gerd Moellmann <gerd@gnu.org>
9166
9167 * xterm.c: Don't include <bitmaps/gray>.
9168 (x_term_init): Use gray_bitmap_width and gray_bitmap_height.
9169
9170 * xfns.c (Fx_image_header): Add missing `\n\'.
9171 (gray_bitmap_width, gray_bitmap_height, gray_bitmap_bits): New.
9172
91731999-02-01 Gerd Moellmann <gerd@gnu.org>
9174
9175 * xterm.c (x_scroll_bar_create): Set background pixel from
9176 specified scroll bar color.
9177 (x_scroll_bar_set_handle): Use scroll bar foreground color.
9178
9179 * xfns.c (x_set_scroll_bar_foreground): Remove all scroll bars.
9180 (x_set_scroll_bar_background): Ditto.
9181
9182 * xterm.c (x_create_toolkit_scroll_bar): Set scroll bar colors.
9183
9184 * xfns.c (x_default_scroll_bar_color_parameter): New.
9185 (Fx_create_frame): Call it.
9186
91871999-01-31 Gerd Moellmann <gerd@gnu.org>
9188
9189 * xfns.c (Fx_create_frame): Initialize scroll bar pixel color
427ec082 9190 values in x_output structure.
26901792
DL
9191 (Qscroll_bar_foreground, Qscroll_bar_background): New.
9192 (syms_of_xfns): Initialize these symbols.
9193
9194 * xterm.h (struct x_output): Add scroll bar pixel colors.
9195
9196 * xfns.c (x_frame_parms): Add entries for scroll bar colors.
9197 (x_set_scroll_bar_foreground): New.
9198 (x_set_scroll_bar_background): New.
9199
26901792
DL
92001999-01-12 Gerd Moellmann <gerd@gnu.org>
9201
9202 * xdisp.c (handle_single_display_prop): New.
9203 (handle_display_prop): Call it.
9204 (handle_raise_prop): Removed.
9205 (handle_height_prop): Removed.
9206 (handle_space_width_prop): Removed.
9207 (handle_face_prop): Remove handling of raised text.
9208 (handle_display_prop): Do it here.
9209
9210 * dispextern.h (DISPLAY_PROP_IDX): Replaces GLYPH_PROP_IDX.
9211 (RAISE_PROP_IDX): Removed.
9212 (HEIGHT_PROP_IDX): Removed.
9213 (SPACE_WIDTH_PROP_IDX): Removed.
9214
9215 * xdisp.c (Qdisplay): Replaces Qglyph.
9216 (handle_display_prop): Formerly handle_glyph_prop.
9217
92181999-01-11 Gerd Moellmann <gerd@gnu.org>
9219
9220 * xdisp.c (reseat_to_string): Set position in display vector to -1.
9221 (handle_stop): Set position in display vector to -1. Don't
9222 check overlay strings when set up to deliver characters from a
9223 display vector.
9224 (set_iterator_to_next): At the end of a run of characters from a
9225 display vector, check whether the display vector display replaces
9226 the display of a character.
9227
92281999-01-05 Gerd Moellmann <gerd@gnu.org>
9229
9230 * xfaces.c (init_frame_faces): Don't realize faces if frame's
9231 X window hasn't been created yet.
9232
92331998-12-06 Gerd Moellmann <gerd@gnu.org>
9234
9235 * sound.c: New.
9236
92371998-12-04 Gerd Moellmann <gerd@gnu.org>
9238
9239 * config.in (HAVE_SOUND): New.
9240
9241 * emacs.c (main): Call syms_of_sound and init_sound.
9242
9243 * Makefile.in (obj): Add sound.o.
9244
9245 * configure.in: Add checks for machine/soundcard.h and sys/soundcard.h.
9246
9247 * config.in (HAVE_MACHINE_SOUNDCARD_H): New.
9248 (HAVE_SYS_SOUNDCARD_H): New.
9249
92501998-12-03 Gerd Moellmann <gerd@gnu.org>
9251
9252 * buffer.h (struct buffer): indicate_empty_lines renamed from
9253 indicate_zv_lines.
9254
9255 * buffer.c (indicate-empty-lines): Renamed from indicate_zv_lines.
9256 (default-indicate-zv-lines): Likewise.
9257
9258 * dispextern.h (struct glyph_row): Rename indicate_zv_line_p
9259 to indicate_empty_line_p.
9260
9261 * xdisp.c (reseat_at_next_visible_line_start): Reset method
9262 to next_element_from_buffer.
9263
9264 * frame.c (make_frame): Set n_current_toolbar_items to 0.
9265
9266 * xdisp.c (handle_face_prop): Allow symbols of the form `N+'
9267 and `N-'.
9268
9269 * xfns.c (xbm_scan): New.
9270 (xbm_read_hexint): Removed.
9271 (xbm_read_bitmap_file_data): Use xbm_scan.
9272
9273 * fileio.c (Finsert_file_contents): Prevent redisplay optimizations.
9274
92751998-12-02 Gerd Moellmann <gerd@gnu.org>
9276
9277 * xfns.c (xbm_read_hexint): New.
9278 (xbm_read_bitmap_file_data): New.
9279 (xbm_load_image_from_file): Call xbm_read_bitmap_file_data
9280 instead of XReadBitmapFileData.
9281
9282 * xdisp.c (handle_raise_prop): Compute voffset from current font.
9283
9284 * xfaces.c (face_with_height): New.
9285
9286 * xdisp.c (eval_handler): Renamed from eval_mode_handler.
9287 (eval_form): Renamed from eval_mode_element.
9288 (handle_face_prop): Use it.
9289 (Qheight): Replaces Qsmaller.
9290 (handle_height_prop): Replaces handle_smaller_prop.
427ec082 9291 (handle_face_prop): If iterator's font_height is not an
26901792
DL
9292 integer, evaluate it to get the font height to use.
9293
9294 * dispextern.h (HEIGHT_PROP_IDX): Replaces SMALLER_PROP_IDX.
9295 (struct it): Use `font_height' instead of `smaller'.
9296
92971998-12-01 Gerd Moellmann <gerd@gnu.org>
9298
9299 * xdisp.c (reseat_1): New.
9300 (reseat): Call it.
9301 (move_it_vertically_backward): Ditto.
9302 (redisplay_window): Don't abort when cursor not found in recenter.
9303
93041998-11-30 Gerd Moellmann <gerd@gnu.org>
9305
9306 * xdisp.c (reseat_at_next_visible_line_start): When not
9307 currently delivering display elements from the current buffer,
9308 restore buffer position first.
9309 (init_from_display_pos): Don't set IT's position from the
9310 position passed to this function.
9311
93121998-11-28 Gerd Moellmann <gerd@gnu.org>
9313
9314 * config.in (PROTO): Removed.
9315
9316 * xterm.h: Change PROTO to P_.
9317
93181998-11-26 Gerd Moellmann <gerd@gnu.org>
9319
9320 * xterm.c (take_vertical_position_into_account): New.
9321 (x_produce_image_glyph): Call it.
9322 (x_produce_stretch_glyph): Ditto.
9323 (x_produce_glyphs): Ditto.
9324 (x_fill_glyph_string): Adjust base line for glyph's voffset.
9325 (x_fill_composite_glyph_string): Ditto.
9326 (x_fill_image_glyph_string): Ditto.
9327 (x_fill_stretch_glyph_string): Ditto.
9328
9329 * xdisp.c (display_line): Always compute row height from
9330 max_ascent and max_descent.
9331
9332 * dispextern.h (struct glyph): Add voffset.
9333 (struct it): Replace height by descent, max_height by max_descent.
9334
9335 * xterm.c (x_append_glyph): Set voffset
9336 (x_append_stretch_glyph): Ditto.
9337 (x_produce_image_glyph): Ditto.
9338 (x_produce_glyphs): Take voffset into account.
9339 (x_produce_image_glyph): Ditto.
9340 (x_produce_stretch_glyph): Ditto.
9341
9342 * dispextern.h (struct it): Add voffset.
9343 * xdisp.c (push_it): Save voffset.
9344 (pop_it): Restore it.
9345
9346 * xdisp.c (it_props): Add entry for `raise'.
9347 (handle_raise_prop): New.
9348
9349 * dispextern.h (RAISE_PROP_IDX): New.
9350
9351 * xdisp.c (Qraise): New.
9352 (syms_of_xdisp): Define Qraised.
9353
9354 * xterm.c (x_scroll_bar_move): Clear to the left and right
9355 of toolkit scroll bars differently.
9356 (x_scroll_bar_move): Removed.
9357 (XTset_vertical_scroll_bar): Move code from x_scroll_bar_move here.
9358
9359 * dispextern.h: Make it compilable --with-x=no.
9360 * alloc.c: Ditto.
9361 * emacs.c: Ditto.
9362 * dispnew.c: Ditto.
9363 * keyboard.c: Ditto.
9364 * term.c: Ditto.
9365 * xdisp.c: Ditto.
9366 * xfaces.c: Ditto.
9367 * xfns.c: Ditto.
9368 * xmenu.c: Ditto.
9369
93701998-11-25 Gerd Moellmann <gerd@gnu.org>
9371
9372 * xterm.c (XTread_socket): Cancel help-echo when leaving frame.
9373
93741998-11-24 Gerd Moellmann <gerd@gnu.org>
9375
9376 * xterm.c (x_set_toolkit_scroll_bar_thumb): When dragging,
9377 update slider size, only.
9378 (xm_scroll_callback): Set dragging member of the scroll bar.
9379 (xt_action_hook): Reset last_scroll_bar_part.
9380 (XTredeem_scroll_bar): Reset bar->dragging to nil.
9381
26901792
DL
9382 * xfns.c (Fx_hide_busy_cursor): Don't try to hide busy cursor
9383 window on newly created frames that don't have one.
9384
93851998-11-23 Gerd Moellmann <gerd@gnu.org>
9386
9387 * xdisp.c (restore_overlay_strings): Removed.
9388 (restore_dpvec): Removed.
9389 (init_from_display_pos): Inline both functions above.
9390
9391 * xfns.c (IMAGE_NON_NEGATIVE_INTEGER_VALUE): New.
9392 (parse_image_spec): Handle it.
9393 (xbm_format): Use it.
9394 (xpm_format): Ditto.
9395 (pbm_format): Ditto.
9396 (jpeg_format): Ditto.
9397 (tiff_format): Ditto.
9398 (gif_format): Ditto.
9399 (gs_format): Ditto.
9400
9401 * xdisp.c (set_window_cursor): Removed.
9402 (redisplay_internal): Case cursor motion in cursor line of
9403 selected window; use set_cursor_from_row.
9404
94051998-11-22 Gerd Moellmann <gerd@gnu.org>
9406
9407 * widget.c (EmacsFrameSetCharSize): Take widget's border width
9408 into account.
9409
94101998-11-21 Gerd Moellmann <gerd@gnu.org>
9411
9412 * xterm.c (expose_frame): Redraw menu bar window.
9413
9414 * xdisp.c (display_menu_bar): Record hpos instead of x-position
9415 in menu item.
9416
9417 * dispnew.c (change_frame_size_1): Use FRAME_TOP_MARGIN instead
9418 of FRAME_TOOLBAR_LINES. Use `f' instead of `frame'.
9419
9420 * widget.c (set_frame_size): Use FRAME_SCROLL_BAR_COLS
9421 to determine vertical_scroll_bar_extra.
9422 (EmacsFrameSetCharSize): Ditto.
9423 * xfns.c (x_figure_window_size): Ditto.
9424
9425 * xterm.c (x_draw_row_bitmaps): Draw in `bitmap-area' face.
9426 (x_draw_bitmap): Ditto.
9427
9428 * dispextern.h (face_id): New id BITMAP_AREA_FACE_ID.
9429 * xfaces.c (realize_basic_faces): Realize it.
9430
94311998-11-20 Gerd Moellmann <gerd@gnu.org>
9432
9433 * xmenu.c (xmenu_show): Add workaround for remaining button grab
427ec082 9434 under LessTif Use the widget of the frame as parent for the
26901792
DL
9435 menu, again.
9436
94371998-11-19 Gerd Moellmann <gerd@gnu.org>
9438
9439 * xterm.c (XTread_socket): Inhibit busy cursor for EnterNotify.
9440 When EnterNotify, don't generate a mouse movement event if
9441 notification is from a busy-cursor child window.
9442
9443 * xterm.h (struct x_output): Add busy_window, remove cursor.
9444
9445 * xfns.c (Fx_show_busy_cursor): Formerly Fx_display_busy_cursor.
9446 Use a transparent window to display the busy-cursor.
9447 (Fx_hide_busy_cursor): Formerly Fx_undisplay_busy_cursor.
9448
94491998-11-17 Gerd Moellmann <gerd@gnu.org>
9450
9451 * xdisp.c (check_window_end): New, for debugging.
9452 (CHECK_WINDOW_END): New.
9453 (try_window_id): Use it.
9454
9455 * xterm.c (process_expose_from_menu): Return int.
9456
9457 * keyboard.c (kbd_buffer_get_event): Set flag to prevent recording
9458 TOOLBAR_EVENT events in last_nonmenu_event.
9459
94601998-11-16 Gerd Moellmann <gerd@gnu.org>
9461
9462 * xdisp.c (redisplay_window): If windows_or_buffers_changed,
9463 window end isn't reliable, so set window_end_valid to nil.
9464 (redisplay_internal): If overlay arrow has changed, set
9465 windows_or_buffers_changed to redisplay thoroughly.
9466
9467 * dispnew.c (adjust_glyph_matrix): Invalidate window end, if
9468 necessary.
9469
9470 * xfns.c (file_dialog_cb): New.
9471 (Fx_file_dialog): New.
9472 * fileio.c (Fread_file_name): Call it.
9473
427ec082 9474 * xrdb.c (x_load_resources): Add default resoures for file
26901792
DL
9475 selection dialog.
9476
94771998-11-14 Gerd Moellmann <gerd@gnu.org>
9478
9479 * xterm.c (note_mouse_highlight): Don't highlight when popup
9480 is active.
9481
26901792
DL
9482 * keyboard.c (timer_check): Inhibit busy cursor around calls to
9483 timer-event-handler. This busy cursor tends to be anoying if
9484 fontifying stealthily.
9485
9486 * dispnew.c (direct_output_for_insert): Give up if current row
9487 contains trailing whitespace.
9488
94891998-11-13 Gerd Moellmann <gerd@gnu.org>
9490
9491 * dispextern.h (prop_idx): Add FONTIFIED_PROP_IDX.
9492
9493 * xdisp.c (handle_fontified_prop): New.
9494 (Vfontification_functions): New.
9495 (Qfontification_functions): New.
9496 (it_props): Add handle_fontified_prop.
9497
94981998-11-12 Gerd Moellmann <gerd@gnu.org>
9499
9500 * xmenu.c (xmenu_show): Use the frame's edit_widget as parent.
9501 Otherwise, under LessTif, after the popup has gone, all button
9502 press events come in for the frame's widget, and release events
9503 come in for the edit_widget.
9504 * xterm.c (XTread_socket): Remove workaround for that problem.
9505 (x_set_toolkit_scroll_bar_thumb): Add workaround for LessTif
9506 XmScrollBarSetValues.
9507 (SET_SAVED_MENU_EVENT): Give it statement form.
9508
26901792
DL
9509 * xfaces.c (display_message): If waiting_for_input, don't display
9510 the message.
9511
9512 * window.c (scroll_command): If not acting on current_buffer,
9513 make redisplay consider all windows.
9514
9515 * xfns.c (Fx_hide_tip): Return t if tooltip was open.
9516
9517 * xdisp.c (handle_glyph_prop): Set it->object for images to
9518 the object having the glyph property.
9519
9520 * xterm.c (x_draw_row_bitmaps): Don't draw if row is completely
9521 invisible.
9522
95231998-11-11 Gerd Moellmann <gerd@gnu.org>
9524
9525 * xterm.h (struct x_display_info): Add gray pixmap. * xterm.c
9526 (x_term_init): Create the gray pixmap.
9527 (x_setup_relief_color): Use it.
9528 (x_get_glyph_string_clip_rect): Draw a toolbar window over the
9529 internal border at the top of a frame.
9530 (x_init_glyph_string): Likewise.
427ec082 9531 (x_draw_glyph_string_relief): Correct right x by 1 pixel for
26901792
DL
9532 full-width lines.
9533 (XTflash): Don't flash the toolbar window.
9534
9535 * xterm.c (XTread_socket): Workaround for LessTif popup menus
9536 in case of ButtonPress events.
9537
95381998-11-10 Gerd Moellmann <gerd@gnu.org>
9539
9540 * xrdb.c (x_load_resources): Add grey background colors as
9541 defaults for menus, scroll bars, and dialogs.
9542
9543 * insdel.c (prepare_to_modify_buffer): Move setting
9544 windows_or_buffers_changed from modify_region here.
9545
9546 * xfns.c (Fx_show_tip): Inhibit redisplay.
9547 (Fx_hide_tip): Ditto.
9548 (Fx_image_header): New.
9549
95501998-11-09 Gerd Moellmann <gerd@gnu.org>
9551
9552 * dispnew.c (clear_window_matrices): Set window_end_valid to nil
9553 when clearing current window matrices.
9554
95551998-11-08 Gerd Moellmann <gerd@gnu.org>
9556
9557 * xdisp.c (handle_glyph_prop): Don't set an iterator's buffer
9558 position from a string position. Use the right end position
9559 if the property spans a whole overlay string.
9560
95611998-11-07 Gerd Moellmann <gerd@gnu.org>
9562
9563 * xmenu.c (menubar_selection_callback): Remove workaround for
9564 Lesstif not calling XmNpopdownCallback because it doesn't
9565 handle the case where users don't select any menu item.
9566
26901792
DL
9567 * insdel.c (modify_region): Set windows_or_buffers_changed.
9568
9569 * buffer.c (set_buffer_internal): Don't set
9570 windows_or_buffers_changed.
9571
26901792
DL
9572 * xmenu.c (HAVE_BOXES): Define if USE_X_TOOLKIT.
9573
26901792
DL
9574 * xmenu.c (menubar_selection_callback): Add workaround for
9575 Lesstif not calling XmNpopdownCallback.
9576
9577 * xdisp.c (eval_mode_element): New.
9578 (eval_mode_handler): New.
9579 (display_mode_element): Use eval_mode_element.
9580
9581 * xdisp.c (display_mode_element): Allow `(:eval FORM)'.
9582 Remove code looking at text props of default value.
9583
9584 * xmenu.c (HAVE_BOXES): Define if using Lucid menus.
9585
26901792
DL
95861998-11-06 Gerd Moellmann <gerd@gnu.org>
9587
427ec082 9588 * xmenu.c (single_submenu): Set button_type of menu to
26901792
DL
9589 BUTTON_TYPE_NONE.
9590 (single_submenu): Likewise for panes and menu items.
9591 (set_frame_menubar): Set button_type of menu bar to none.
9592 (xmenu_show): Likewise.
9593 (single_submenu): Set widget values selected slot.
9594 (xmenu_show): Likewise.
9595
26901792
DL
9596 * xmenu.c (push_menu_item): Add parameters `type' and
9597 `selected'. Store it in menu_items.
9598 (MENU_ITEMS_ITEM_TYPE): New.
9599 (MENU_ITEMS_ITEM_SELECTED): New.
9600 (MENU_ITEMS_ITEM_LENGTH): Increase by two.
9601
9602 * xfns.c (clear_image_cache): Get the current time, before
9603 doing anything.
9604 (cache_image): Set prev pointer of next image.
9605 (clear_image_cache): Clear current matrices if any image was
9606 freed.
9607
9608 * xterm.c (XTread_socket): Set inhibit_busy_cursor.
9609
9610 * xfns.c (x_set_cursor): New.
9611 (Fx_display_busy_cursor): New.
9612 (Fx_undisplay_busy_cursor): New.
9613
9614 * xterm.h (struct x_output): Add busy_cursor.
9615
9616 * xfns.c (Vx_busy_pointer_shape): New.
9617 (x_set_mouse_color): Create busy cursor.
9618
9619 * process.c (wait_reading_process_input): Show and hide busy
9620 cursor.
9621
9622 * keyboard.c (command_loop_1): Display busy cursor.
9623
9624 * eval.c (Fsignal): Hide busy cursor.
9625
9626 * buffer.c (set_buffer_internal): Don't set
9627 windows_or_buffers_changed.
9628
9629 * xterm.c (redo_mouse_highlight): New.
9630
96311998-11-04 Gerd Moellmann <gerd@gnu.org>
9632
26901792
DL
9633 * xfns.c (x_create_x_image_and_pixmap): Add depth parameter.
9634 (x_build_heuritic_mask): New.
9635 (lookup_image): Call it.
9636
9637 * xterm.c (note_toolbar_highlight): Always set up help_echo.
9638 (previous_help_echo): New.
9639 (XTread_socket): Generate help event with nil message when
9640 leaving a region with help-echo.
9641 (note_mouse_highlight): Handle `help-echo' over text.
9642 (XTread_socket): Dispatch VisibilityNotify, CirculateNotify,
9643 CirculateRequest.
9644 (clear_mouse_face): Don't clear if tooltip is shown.
9645 (XTread_socket): Redo mouse-highlight after tooltip is gone.
9646 Avoid SET_FRAME_GARBAGED when tooltip is mapped.
9647
9648 * keyboard.c (Vshow_help_function): New.
9649 (read_char): Use it.
9650
96511998-11-03 Gerd Moellmann <gerd@gnu.org>
9652
9653 * xfns.c (x_create_tip_frame): New.
9654 (Fx_show_tip): New.
9655 (Fx_hide_tip): New.
9656
427ec082 9657 * xterm.c (x_destroy_window): Handle case that we don't have
26901792
DL
9658 a widget.
9659
9660 * dispextern.h (struct glyph_row): Rename no_marginal_areas_p
9661 to full_width_p. Add internal_border_p.
9662
96631998-11-02 Gerd Moellmann <gerd@gnu.org>
9664
9665 * xterm.c (note_mode_line_highlight): Check the charpos of
9666 the glyph under the mouse pointer before accessing text
9667 properties at that position.
9668
96691998-11-01 Gerd Moellmann <gerd@gnu.org>
9670
9671 * xterm.c (x_draw_image_relief): Handle toolbar_button_relief.
9672
9673 * xdisp.c (auto-raise-toolbar-buttons): New.
9674 (build_desired_toolbar_string): Handle the flag.
9675 (toolbar-button-margin): New.
9676 (toolbar-button-relief): New.
9677 (build_desired_toolbar_string): Use margin and relief.
9678
9679 * xterm.c (x_set_toolkit_scroll_bar_thumb): Remove workaround
9680 for FreeBSD.
9681 (note_mode_line_highlight): New.
9682 (note_mouse_highlight): Call it.
9683
96841998-10-31 Gerd Moellmann <gerd@gnu.org>
9685
9686 * s/freebsd.h (NARROWPROTO): New.
9687
9688 * xdisp.c (display_string): New parameter face_string.
9689 (display_mode_element): When displaying a symbol with a string
9690 value, use text properties from the symbol's default value, maybe.
9691
9692 * xrdb.c (x_load_resources): Add font defaults for menus and
9693 dialogs.
9694
96951998-10-30 Gerd Moellmann <gerd@gnu.org>
9696
9697 * xfns.c (Fx_create_frame): Try 12pt Courier font first.
9698
96991998-10-29 Gerd Moellmann <gerd@gnu.org>
9700
9701 * xterm.c (x_produce_glyphs): Fix bug causing glyphs to be
9702 produced for characters with codes < 32 under certain
9703 circumstances.
9704
9705 * xdisp.c (redisplay_window): Handle values of PT in front
9706 of invisible, intangible text.
427ec082 9707 (try_window_id): Set overlay_arrow_seen to zero before
26901792
DL
9708 displaying lines.
9709 (display_mode_element): Assign to glyphs written for a mode
9710 line spec `%x' as object the Lisp format string, as position
9711 the position of the `%' in that string.
9712 (display_string): If displaying a C string, optionally get
9713 the face to use from a Lisp string.
9714
9715 * xterm.c (expose_window_tree): Include mode line height.
9716
9717 * xfns.c (Fx_create_frame): Add toolbar height to frame height.
9718
97191998-10-27 Gerd Moellmann <gerd@gnu.org>
9720
9721 * xterm.c (note_mouse_highlight): Change mouse pointer shape
9722 over mode line.
9723
97241998-10-26 Gerd Moellmann <gerd@gnu.org>
9725
9726 * window.c (coordinates_in_window): Use CURRENT_MODE_LINE_HEIGHT.
9727
9728 * xdisp.c (redisplay_window): If mode line height has changed,
9729 arrange for a thorough immediate redisplay using the correct mode
9730 line height.
9731 (window_box_height): Use CURRENT_MODE_LINE_HEIGHT.
9732
9733 * dispextern.h (MATRIX_MODE_LINE_HEIGHT): New.
9734 (CURRENT_MODE_LINE_HEIGHT): New.
9735 (DESIRED_MODE_LINE_HEIGHT): New.
9736
9737 * keyboard.c (make_lispy_event): Add string and string position
9738 info to mouse-click events.
9739 (read_key_sequence): Handle `local-map' property of mode line
9740 strings.
9741
9742 * keyboard.h (POSN_STRING): New.
9743
97441998-10-25 Gerd Moellmann <gerd@gnu.org>
9745
9746 * dispnew.c (mode_line_string): Mew.
9747
9748 * xterm.c (xt_action_hook): New.
9749 (x_create_toolkit_scroll_bar): Add action hook.
9750 (xm_scroll_callback): Implement dragging.
9751
9752 * keyboard.c (Qend_scroll): New.
9753 (scroll_bar_parts): Add it.
9754
9755 * termhooks.h (scroll_bar_end_scroll): New.
9756
9757 * xterm.c (XTread_socket): Bug fix.
9758
97591998-10-24 Gerd Moellmann <gerd@gnu.org>
9760
9761 * xdisp.c (redisplay_window): Finish scroll bars after
9762 redisplaying toolbar.
9763
9764 * keyboard.c (scroll_bar_parts): Add Qtop and Qbottom.
9765 (syms_of_keyboard): Add Qbottom.
9766
9767 * termhooks.h (scroll_bar_to_top): New.
9768 (scroll_bar_to_bottom): New.
9769
9770 * xdisp.c (redisplay_window): Always resize toolbar window if
9771 auto_resize_toolbar_p is non-zero.
9772 (auto_resize_toolbar_p): Renamed from auto_resize_toolbar.
9773 (window_box): New.
9774 (window_box_height): New.
9775 (window_box_width): New.
9776 (window_box_left): New.
9777 (window_box_right): New.
9778 (window_box_edges): New.
9779
97801998-10-23 Gerd Moellmann <gerd@gnu.org>
9781
9782 * xterm.c (x_set_toolkit_scroll_bar_thumb): Kluge for call to
9783 XawScrollbarSetThumb in FreeBSD.
9784 (x_create_toolkit_scroll_bar): Set resource "beNiceToColormap"
9785 to true.
9786
9787 * window.c (get_phys_cursor_glyph): Return null if cursor vpos
9788 is out of range.
9789
9790 * xterm.c (x_create_toolkit_scroll_bar): Set scroll_bar_pixel.
9791 (x_term_init): Initialize it.
9792
9793 * xterm.h (struct x_display_info): Add scroll_bar_pixel.
9794
9795 * xterm.c (x_create_toolkit_scroll_bar): Set LessTif scroll bar's
9796 cursor.
9797
97981998-10-22 Gerd Moellmann <gerd@gnu.org>
9799
9800 * keyboard.c (make_lispy_event): Handle scroll_bar_click
9801 differently when using toolkit scroll bars.
9802
9803 * xterm.c (x_send_scroll_bar_event): New.
9804 (x_scroll_bar_to_input_event): New.
9805 (xaw3d_scroll_callback): New.
9806 (xaw3d_jump_callback): New.
9807 (xm_scroll_callback): New.
9808 (x_toolkit_scroll_p): New.
9809 (XTread_socket): Handle scroll bar client message.
9810 (x_term_init): Initialize Xatom_Scrollbar.
9811 (x_scroll_bar_create): Set cursor.
9812 (xm_scroll_callback):
9813 (x_create_toolkit_scroll_bar): New.
9814 (x_set_toolkit_scroll_bar_thumb): New.
9815 (x_scroll_bar_create): Call x_create_toolkit_scroll_bar.
9816 (XTset_vertical_scroll_bar): Call x_set_toolkit_scroll_bar_thumb.
9817
9818 * xterm.h (struct x_display_info): Add Xatom_Scrollbar.
9819
98201998-10-21 Gerd Moellmann <gerd@gnu.org>
9821
9822 * xterm.c (x_scroll_bar_remove): Handle toolkit scroll bars.
9823 (XTread_socket): Don't handle mouse button events for scroll bars
9824 if using toolkit scroll bars.
9825 (XTset_vertical_scroll_bar): Set thumb size and position for
9826 Athena scroll bar.
9827
9828 * xterm.h (scroll_bar): Add x_widget_low and x_widget_high.
9829
9830 * xterm.c (XTread_socket): Dispatch expose event to widget
9831 if using toolkit scroll bars.
9832 (x_scroll_bar_expose): Make no-op for toolkit scroll bars.
427ec082 9833 (x_scroll_bar_create): Create and show a scroll bar widget
26901792
DL
9834 if using toolkit scroll bars.
9835 (x_scroll_bar_move): Handle tookit scroll bars.
9836
9837 * Makefile.in (LIBW): Use Xaw3d if present.
9838
9839 * configure.in (USE_TOOLKIT_SCROLL_BARS): New.
9840 (HAVE_XAW3D): New.
427ec082 9841
26901792
DL
9842 * config.in (USE_TOOLKIT_SCROLL_BARS): New.
9843 (HAVE_XAW3D): New.
9844
427ec082 9845 * xterm.c (XTset_vertical_scroll_bar): Correct position of
26901792
DL
9846 right vertical scroll bar.
9847
98481998-10-20 Gerd Moellmann <gerd@gnu.org>
9849
9850 * xfns.c (xpm_load): Support reading XPM images from string
9851 buffers containing data in the same format as an XPM file.
9852 Support `:color-symbols'.
9853 (xpm_format): Add `:data'.
9854 (xpm_keyword_index): Add XPM_DATA.
9855 (syms_of_xfns): Add `:color-symbols'.
9856 (xpm_keyword_index): Add XPM_COLOR_SYMBOLS.
9857 (xpm_valid_color_symbols_p): New.
9858 (xpm_image_p): Call it.
9859
9860 * xdisp.c (build_desired_toolbar_string): Add `:algorithm'
9861 attribute to the image if item is not enabled.
9862
9863 * xfns.c (x_laplace): New.
9864 (x_laplace_read_row): New.
9865 (x_laplace_write_row): New.
9866 (lookup_image): Handle common image attributes here. New
9867 attribute `:algorithm'.
9868
9869 * xfaces.c (clear_face_cache): Call clear_image_cache.
9870
9871 * xterm.c (x_inverted_image_mask): Removed.
9872 (x_draw_image_foreground_1): New.
9873 (x_draw_image_glyph_string): Draw images with mask to a temporary
9874 pixmap to reduce flickering.
9875
9876 * xdisp.c (redisplay_toolbar): Handle auto-resize-toolbars.
9877 (display_toolbar_line): Remove parameter `margin'.
9878
98791998-10-19 Gerd Moellmann <gerd@gnu.org>
9880
9881 * xdisp.c (toolbar_lines_needed): New.
9882 (auto-resize-toolbars): New.
9883
9884 * xfns.c (cache_image): Correct call to xrealloc.
9885
9886 * dispnew.c (Fset_toolbar_height): Removed.
9887
9888 * xdisp.c (init_xdisp): Use FRAME_TOP_MARGIN instead of
9889 FRAME_MENU_BAR_LINES.
9890
9891 * window.c (Fdelete_other_windows): Use FRAME_TOP_MARGIN
9892 instead of FRAME_MENU_BAR_LINES.
9893 (check_frame_size): Ditto.
9894
9895 * dispnew.c (adjust_frame_glyphs_initially): Use FRAME_TOP_MARGIN
9896 instead of FRAME_MENU_BAR_LINES.
9897 (adjust_frame_glyphs_for_frame_redisplay): Ditto.
9898 (build_frame_matrix): Ditto.
9899 (change_frame_size_1): Ditto.
9900
9901 * frame.h (FRAME_TOOLBAR_LINES): New.
9902 (FRAME_TOP_MARGIN): New.
9903
9904 * window.c (struct save_window_data): Add frame_toolbar_lines.
9905 (Fset_window_configuration): Handle toolbar lines.
9906 (Fcurrent_window_configuration): Save toolbar lines.
9907
9908 * frame.c (syms_of_frame_1): Add Qtoolbar_lines.
9909
9910 * xfns.c (Fx_create_frame): Add default parameter for toolbar.
9911
9912 * frame.h (struct frame): Rename top_margin to toolbar_lines.
9913
9914 * xfns.c (x_frame_parms): Add `toolbar-lines'.
9915 (x_set_toolbar_lines): New.
9916
9917 * keyboard.c (cmd_error_internal): Bug fix.
9918
9919 * xterm.c: Remove double include of syssignal.h.
9920
99211998-10-18 Gerd Moellmann <gerd@gnu.org>
9922
9923 * xterm.c (x_toolbar_item): New.
9924 (x_handle_toolbar_click): Use it.
9925 (note_toolbar_highlight): Use it.
9926
9927 * keyboard.c (syms_of_keyboard): Staticpro toolbar_item_properties
9928 and toolbar_items_vectors.
9929
9930 * xterm.c (help_echo): New.
9931 (draw_glyphs_face): Add DRAW_IMAGE_RAISED and DRAW_IMAGE_SUNKEN.
9932 (x_set_glyph_string_gc): Handle them.
9933 (x_after_update_window_line): Don't do anything in pseudo-windows.
9934 (x_produce_image_glyph): Take image margin and face relief into
9935 account.
9936 (x_get_glyph_string_clip_rect): Handle pseudo-windows.
9937 (x_draw_glyph_string_background): Optimize case when face has
9938 relief.
9939 (x_setup_relief_color): Take frame instead of glyph string
9940 parameter.
9941 (x_draw_relief_rect): New.
9942 (x_draw_glyph_string_relief): Call it.
9943 (x_draw_image_glyph_string_foreground): Handle margin and image
9944 relief.
9945 (x_draw_image_glyph_string_background): Ditto.
9946 (expose_frame): Redraw toolbar window.
9947 (expose_window): Don't draw cursor for pseudo-windows.
9948 (x_y_to_hpos_vpos): Handle pseudo-windows.
9949 (frame_to_window_pixel_xy): New.
9950 (note_mouse_highlight): Call note_toolbar_highlight.
9951 (x_handle_toolbar_click): New.
9952 (note_toolbar_highlight): New.
9953 (show_mouse_face): Change int parameter `hl' to parameter of
9954 type enum draw_glyphs_face. Handle image highlighting.
9955 (XTread_socket): Return a HELP_EVENT input event if help_echo is
9956 non-nil. Use x_handle_toolbar_click.
9957
9958 * termhooks.h (event_kind): Add HELP_EVENT, TOOLBAR_EVENT.
9959
9960 * xfns.c (image_value_type): Add IMAGE_INTEGER_VALUE,
9961 IMAGE_BOOL_VALUE.
9962 (parse_image_spec): Handle them.
9963 (image_spec_value): Additional parameter found.
427ec082 9964 (free_image): Remove image from the vector `images' of the
26901792
DL
9965 image cache.
9966 (clear_image_cache): Additional parameter force_p.
9967 (Fclear_image_cache): New.
9968 (x_find_image_file): New.
9969 (xbm_load): Handle `:margin' and `:relief'. Use
9970 x_find_image_file.
9971 (xpm_load): Likewise.
9972 (pbm_load): Likewise.
9973 (jpeg_load): Likewise.
9974 (tiff_load): Likewise.
9975 (gif_load): Likewise.
9976
9977 * keyboard.c (Qhelp_echo): New symbol.
9978 (read_char): Handle `toolbar' and `help_echo' events.
9979 (kbd_buffer_get_event): Handle HELP_ECHO input event.
9980 (make_lispy_event): Handle TOOLBAR_EVENT.
9981 (toolbar_items): New.
9982 (process_toolbar_item): New.
9983 (PROP): New.
9984 (init_toolbar_items): New.
9985 (append_toolbar_item): New.
9986 (read_char_x_menu_prompt): Handle `toolbar' event.
9987 (read_key_sequence): Ditto.
9988
9989 * xfaces.c (Qtoolbar): New.
9990 (realize_basic_faces): Realize `toolbar' face.
9991 (face_at_string_position): Remove parameter modeline_p, add
9992 base_face_id.
9993
9994 * xfns.c (xbm_load_image_from_file): Don't use Xmu function
9995 to read data.
9996
99971998-10-17 Gerd Moellmann <gerd@gnu.org>
9998
9999 * xdisp.c (init_iterator): Replace parameter modeline_p with
10000 base_face_id.
10001 (next_element_from_string): Call get_next_display_element
10002 recursively after handling text properties.
10003 (prepare_menu_bars): Call update_toolbar.
10004 (update_toolbar): New.
10005 (build_desired_toolbar_string): New.
10006 (display_toolbar_line): New.
10007 (redisplay_toolbar): New.
10008 (toolbar_item_info): New.
10009 (redisplay_window): Call redisplay_toolbar.
10010 (Fdump_toolbar_row): New. Defined if compiled with GLYPH_DEBUG.
10011
10012 * dispnew.c (clear_current_matrices): Clear matrices of toolbar
10013 window.
10014 (clear_desired_matrices): Ditto.
10015 (adjust_frame_glyphs_for_window_redisplay): Make toolbar window.
10016 (free_glyphs): Free matrices of toolbar window.
10017 (update_frame): Update toolbar window.
10018 (change_frame_size_1): Take toolbar into account.
10019 (Fset_toolbar_height): New.
10020
10021 * dispextern.h (struct it): Remove member modeline_p, add
10022 base_face_id.
10023 (struct image): Add members relief and margin.
10024 (IMAGE_ASCENT): Include margin in height.
10025
100261998-10-14 Gerd Moellmann <gerd@gnu.org>
10027
10028 * xfns.c (Fclear_image_cache): New.
10029
10030 * xfaces.c (realize_basic_faces): Realize toolbar face.
10031 (face_at_string_position): Remove parameter modeline_p, add
10032 base_face_id.
10033
10034 * dispextern.h (enum face_id): Add TOOLBAR_FACE_ID.
10035
100361998-10-13 Gerd Moellmann <gerd@gnu.org>
10037
10038 * keyboard.c (syms_of_keyboard): Intern `:help'.
10039
100401998-10-12 Gerd Moellmann <gerd@gnu.org>
10041
10042 * xterm.c (note_toolbar_highlight): New.
10043 (note_mouse_highlight): Call it.
10044
10045 * window.c (window_from_coordinates): Additional parameter toolbar_p.
10046 (coordinates_in_window): Handle toolbar window.
10047
10048 * keyboard.c (toolbar_items): New.
10049 (process_toolbar_item): New.
10050 (parse_toolbar_item): New.
10051 (init_toolbar_items): New.
10052 (append_toolbar_item): New.
10053
10054 * dispextern.h (enum toolbar_item_idx): New.
10055 (enum toolbar_item_image): New.
10056
10057 * frame.h (struct frame): Add toolbar-related members.
10058
10059 * xfaces.c (face_at_string_position): Remove assertion that
10060 current_buffer == window's buffer. This is not the case when
10061 called for the toolbar window.
10062
10063 * frame.c (make_frame): Initialize toolbar members.
10064
10065 * alloc.c (mark_object): Mark toolbar data of frames.
10066
10067 * frame.h (struct frame): Add toolbar-related members
10068 toolbar_window, desired_toolbar_items, current_toolbar_items,
10069 desired_toolbar_string, current_toolbar_string,
10070 n_desired_toolbar_items, n_current_toolbar_items. Add
10071 window_height.
10072
10073 * xterm.c (x_after_update_window_line): Don't draw bitmap
10074 areas for pseudo-windows.
10075 (expose_frame): Handle toolbar window.
10076 (expose_window): Don't do cursor stuff for pseudo-windows.
10077
10078 * xdisp.c (display_menu_bar): Correct calls to init_iterator.
10079
100801998-10-11 Gerd Moellmann <gerd@gnu.org>
10081
10082 * frame.c (make_frame): Initialize toolbar_window.
10083
10084 * alloc.c (mark_object): Make the toolbar window.
10085
10086 * dispnew.c (update_frame): Update frame's toolbar_window.
10087 (clear_current_matrices): Likewise.
10088 (clear_desired_matrices): Likewise.
10089 (adjust_frame_glyphs_for_window_redisplay): Make toolbar_window.
10090 (free_glyphs): Free the toolbar window and its matrices.
10091
10092 * frame.h (struct frame): Add toolbar_window.
10093
10094 * xterm.c (x_draw_glyph_string_relief): Handle mouse-face
10095 with relief.
10096
100971998-10-10 Gerd Moellmann <gerd@gnu.org>
10098
427ec082 10099 * dispnew.c (buffer_posn_from_coords): Don't screw up if
26901792
DL
10100 window start is not in the range BEGV..ZV.
10101
101021998-10-09 Gerd Moellmann <gerd@gnu.org>
10103
10104 * xdisp.c (try_scrolling): Experimentally handle the case
10105 that scroll-preserve-screen-position is set to `always'.
10106
10107 * window.c (Vscroll_preserve_screen_position): Replacement for
10108 scroll_preserve_screen_position.
10109
101101998-10-08 Gerd Moellmann <gerd@gnu.org>
10111
10112 * dispnew.c: Don't initialize auto structs; the HP/UX compiler
10113 doesn't like it.
10114 * xdisp.c: Ditto.
10115
10116 * xdisp.c (make_cursor_line_fully_visible): Adjust this_line_y.
10117
101181998-10-06 Gerd Moellmann <gerd@gnu.org>
10119
427ec082 10120 * minibuf.c (Fminibuffer_complete_word): Fix computation of
26901792
DL
10121 i_byte when prompts are inserted into minibuffers.
10122
10123 * dispextern.h (FRAME_INTERNAL_BORDER_WIDTH_SAFE): New.
10124 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Use it.
10125 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y): Ditto.
10126
101271998-10-04 Gerd Moellmann <gerd@gnu.org>
10128
10129 * xdisp.c (make_cursor_line_fully_visible): New.
10130 (try_scrolling): New.
10131 (redisplay_window): Move scrolling code to try_scrolling.
10132 (make_cursor_line_fully_visible): Handle case of window too small
10133 to show a single line.
10134 (redisplay_window): Case forced window start---use
10135 make_cursor_line_fully_visible.
10136 (redisplay_window): Case cursor movement via current matrix.
10137 If ending up on a partially visible line, make it fully visible
10138 instead of recentering.
10139 (try_scrolling): Additional parameter scroll_smoothly.
10140
10141 * xterm.c (x_draw_bitmap): Don't XClearArea under the pixmap.
10142
101431998-09-28 Gerd Moellmann <gerd@gnu.org>
10144
10145 * window.c (window_scroll_pixel_based): Bug fix: vpos used
10146 instead of y-position for scroll-preserved-screen-position.
10147
101481998-09-07 Gerd Moellmann <gerd@gnu.org>
10149
10150 * dispnew.c (update_frame_line): If current row is not enabled,
10151 write the whole line.
10152
101531998-09-06 Gerd Moellmann <gerd@gnu.org>
10154
10155 * lisp.h (HAVE_FACES): Removed.
10156
10157 * dispextern.h (HAVE_FACES): Removed.
10158
10159 * config.in (HAVE_FACES): Removed.
10160
10161 * dispnew.c (HAVE_FACES): Removed.
10162
10163 * xdisp.c (HAVE_FACES): Removed.
10164
10165 * xfaces.c (HAVE_FACES): Removed.
10166
101671998-09-05 Gerd Moellmann <gerd@gnu.org>
10168
10169 * xdisp.c (init_iterator): If face_change_count is non-zero,
10170 free realized faces.
10171
10172 * xfaces.c (free_all_realized_faces): Make it externally visible.
10173 (Finternal_set_lisp_face_attribute): Increment
10174 windows_or_buffers_changed.
10175
10176 * dispnew.c (direct_output_for_insert): Give up if
10177 face_change_count is non-zero.
10178 (direct_output_forward_char): Ditto.
10179
10180 * xfaces.c (face_change_count): New.
10181
101821998-09-04 Gerd Moellmann <gerd@gnu.org>
10183
10184 * xterm.c (x_draw_bar_cursor): Don't draw if cursor hpos is out
10185 of range.
10186
101871998-09-03 Gerd Moellmann <gerd@gnu.org>
10188
10189 * term.c (Ftty_display_color_p): New.
10190
101911998-09-02 Gerd Moellmann <gerd@gnu.org>
10192
10193 * xfaces.c (Ftty_defined_colors): New.
10194
10195 * xterm.c (x_produce_glyphs): Fix computation of
10196 contains_overlapping_glyphs_p for ASCII.
10197
10198 * dispnew.c (Fshow_cursor): Don't change cursor state while
10199 redisplaying.
10200 (direct_output_for_insert): If a glyph with lbearing or rbearing
10201 is among the new glyphs, set row flag contains_overlapping_glyph_p.
10202
102031998-09-01 Gerd Moellmann <gerd@gnu.org>
10204
10205 * term.c (OUTPUT_IF): Make replacement text have statement form.
10206 (OUTPUT1_IF): Ditto.
10207 (TS_italic_mode, TS_end_italic_mode): Removed.
10208 (TS_bold_mode): Removed.
10209 (TS_underscore_mode, TS_end_underscore_mode): Removed.
10210 (TS_enter_bold_mode, TS_enter_dim_mode, TS_enter_blink_mode): New.
10211 (TS_enter_reverse_mode): New.
10212 (TS_enter_underline_mode, TS_exit_underline_mode): New.
10213 (TN_magic_cookie_glitch_ul): New.
10214 (TS_enter_alt_charset_mode, TS_exit_alt_charset_mode): New.
10215 (TS_exit_attribute_mode): New.
10216 (TN_max_colors, TN_max_pairs, TS_orig_pairs): New.
10217 (TS_set_foreground, TS_set_background): New.
10218 (reset_terminal_modes): Switch colors back to default.
10219 (write_glyphs): Turn face on before writing text, turn it off
10220 afterwards.
10221 (insert_glyphs): Ditto.
10222 (term_init): Initialize new terminal capability variables.
10223 (turn_on_face): Turn a face on.
10224 (turn_off_face): Turn a face off.
10225
10226 * lisp.h (MAKE_GLYPH): Remove test for frame type.
10227 (GLYPH_CHAR): Ditto.
10228 (GLYPH_FACE): Ditto.
10229
10230 * xfaces.c (Vface_tty_color_alist): New.
10231 (face-register-tty-color): New.
10232 (face-clear-tty-colors): New.
10233
10234 * dispextern.h (FACE_TTY_DEFAULT_COLOR): New.
10235 (struct it): Remove member faces_p since we now always have faces.
10236
102371998-08-31 Gerd Moellmann <gerd@gnu.org>
10238
10239 * dispextern.h (struct face): Add tty appearance flags.
10240
10241 * xdisp.c (init_iterator): Always handle faces.
10242 (extend_face_to_end_of_line): Handle tty frames.
10243
10244 * dispnew.c (clear_glyph_matrix): Allow a null matrix to be
10245 passed in.
10246
102471998-08-30 Gerd Moellmann <gerd@gnu.org>
10248
10249 * xfaces.c (realize_default_face): Use empty strings to indicate
10250 that the face should use the default foreground/background
427ec082 10251 color of the terminal. Fill font-related attributes with
26901792
DL
10252 appropriate values for tty frames.
10253
10254 * emacs.c (main): Call syms_of_xfaces before init_window_once.
10255
10256 * xfaces.c (realize_default_face): If face `default' is not
10257 yet known, create it.
10258
10259 * frame.c (make_terminal_frame): Call init_frame_faces
10260 unconditionally.
10261
10262 * xfaces.c (init_frame_faces): Make it work for tty frames.
10263 (free_frame_faces): Ditto.
10264 (clear_face_cache): Ditto.
10265 (recompute_basic_faces): Ditto.
10266 (Fframe_face_alist): Ditto.
10267 (free_realized_face): Ditto.
10268 (prepare_face_for_display): Ditto.
10269 (clear_face_gcs): Ditto.
10270 (lookup_face): Ditto.
10271 (smaller_face): Ditto.
10272 (realize_default_face): Ditto.
10273 (realize_face): Ditto.
10274 (realize_face): Dispatch to functions depending on the frame type.
10275 (realize_x_face): X way of realizing faces.
10276 (realize_tty_face): TTY way of realizing faces.
10277
102781998-08-29 Gerd Moellmann <gerd@gnu.org>
10279
10280 * xfaces.c (realize_face): Remove parameter unibyte_registry,
10281 compute it instead.
10282 (lookup_face): Remove local variable unibyte_registry.
10283
102841998-08-22 Gerd Moellmann <gerd@gnu.org>
10285
10286 * xterm.c (x_draw_glyph_string_relief): Draw top and bottom lines
10287 1 pixel longer.
10288
427ec082 10289 * xdisp.c (face_before_or_after_it_pos): Fix computation
26901792
DL
10290 of face in buffer.
10291
10292 * editfns.c (make_buffer_string_both): If prompt in buffer,
10293 prevent start > end.
10294
10295 * indent.c (Fvertical_motion): Set current_buffer to window's
10296 buffer if it isn't already.
10297
102981998-08-21 Gerd Moellmann <gerd@gnu.org>
10299
10300 * dispextern.h (GLYPH_DEBUG): Use default 0.
10301
10302 * xdisp.c (it_props): New member `smaller'.
10303 (init_iterator): Initialize it.
10304 (Qsmaller): New.
10305 (push_it): Save value of `smaller' value on the stack.
10306 (pop_it): Restore `smaller' from the stack.
10307 (handle_smaller_prop): New.
10308 (handle_face_prop): Use `smaller' text property to select a
10309 suitable face.
10310
10311 * dispextern.h (SMALLER_PROP_IDX): New.
10312 (struct it): Add member `smaller'.
10313
10314 * xfaces.c (smaller_face): New.
10315
10316 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add bitmap area widths.
10317
10318 * dispnew.c (allocate_matrices_for_window_redisplay): Compute
10319 total pixel width of window differently.
10320
10321 * xdisp.c (init_iterator): Compute width of mode line differently.
10322
10323 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract width
10324 of bitmap areas.
10325
10326 * window.c (Fsplit_window): Include width of bitmap areas in
10327 window width.
10328 (window_internal_width): Subtract width of bitmap areas from
10329 total width.
10330
103311998-08-18 Gerd Moellmann <gerd@gnu.org>
10332
10333 * xdisp.c: Functions reordered for better readability.
10334
10335 * dispnew.c (update_text_area): Handle glyphs with arbitrary
10336 lbearing.
10337 (update_window_tree): Parameter no_scrolling_p removed.
10338 (update_single_window): Ditto.
10339
10340 * xterm.c (x_get_char_font_and_encoding): Renamed to
10341 x_get_char_face_and_encoding.
10342
10343 * dispnew.c (update_text_area): Don't call get_glyph_overhangs
10344 if end of current row reached.
10345
10346 * xterm.c (x_get_glyph_face_and_encoding): New.
10347 (x_get_glyph_overhangs): Call it.
10348
10349 * xdisp.c (Qshow_trailing_whitespace): New.
10350 (Qtrailing_whitespace): New.
10351 (enum prop_handled): New.
10352 (struct props, it_props): New.
10353 (next_overlay_change): New. Works like Fnext_overlay_change
10354 but doesn't use xmalloc.
10355 (handle_stop): Restructured.
10356 (face_before_or_after_it_pos): Case iteration over a string: fix
10357 handling of face before current position.
10358
103591998-08-16 Gerd Moellmann <gerd@gnu.org>
10360
10361 * dispnew.c (adjust_glyph_matrix): Don't optimize matrix
10362 reallocation matrix if fonts_changed_p.
10363 (update_text_area): Handle glyphs with lbearing.
10364
103651998-08-14 Gerd Moellmann <gerd@gnu.org>
10366
10367 * xdisp.c (struct props): New.
10368 (it_props): New.
10369 (compute_prop_info): New.
10370 (handle_stop): New.
10371
10372 * textprop.c (validate_interval_range): Make it externally
10373 visible.
10374
10375 * dispnew.c (direct_output_for_insert): Remove calls
10376 to compute_stop_pos.
10377
10378 * dispextern.h (struct it): Remove check_charpos,
10379 next_overlay_pos. Add what_changes.
10380
103811998-08-10 Gerd Moellmann <gerd@gnu.org>
10382
10383 * xterm.c (note_mouse_highlight): Set BEGV_BYTE, ZV_BYTE.
10384
10385 * xfaces.c (Vx_unibyte_registry_and_encoding): Removed. Use
10386 face_default_registry instead.
10387
10388 * syntax.c (scan_sexps_forward): Set up syntax table before
10389 jumping to initial state label.
10390
103911998-08-09 Gerd Moellmann <gerd@gnu.org>
10392
10393 * dispnew.c (check_matrix_invariants): Handle case of row end pos
10394 >= ZV specially.
10395
103961998-08-08 Gerd Moellmann <gerd@gnu.org>
10397
10398 * xdisp.c (redisplay_window): Case cursor movement---if cursor
10399 ends up in partially visible row, try to scroll. Case forced
10400 window start---handle windows not tall enough to show a single
10401 line.
10402
10403 * window.h (struct window): Member dy renamed vscroll.
10404
10405 * xterm.c (x_list_fonts): Re-activate suppression of scalable
10406 fonts.
10407 (x_draw_stretch_glyph_string): Set clipping if using GC that
10408 hasn't set it yet.
10409
10410 * xdisp.c (redisplay_window): Case forced window start -
10411 don't let cursor end on partially visible row. Use desired
10412 matrix to find a suitable PT if it doesn't appear.
10413 (decode_mode_spec): Merged with 20.2.97.
10414 (try_window_reusing_current_matrix): Give up if old or
10415 new display is vscrolled.
10416 (redisplay_window): Reset vscrolling if forced window start,
10417 or if recentering.
10418
104191998-08-06 Gerd Moellmann <gerd@gnu.org>
10420
10421 * xfaces.c (realize_default_face): Use the fontset name instead of
10422 the alias for the family attribute of the default face because we
10423 can't easily determine a good alias from fontset-alias-alist.
10424 (face_fontset): Use Fquery_fontset to find the fontset.
10425 (font_list): Additional pattern parameter.
10426 (try_font_list): Ditto.
10427 (set_lface_from_font_name): Set face family from font foundry
10428 and family.
10429 (font_list): If family contains a hyphen, build pattern differently.
10430
104311998-08-05 Gerd Moellmann <gerd@gnu.org>
10432
10433 * xfaces.c (free_realized_faces): Increment windows_or_buffers_-
10434 changed instead of setting the frame garbaged.
10435
10436 * xfaces.c (lface_equal_p): Don't assume equal Lisp types for
10437 all attribute values. This is wrong if values are unspecified,
10438 i.e. nil.
10439
10440 * xdisp.c (try_window_id): Give up if window start changed.
10441
10442 * xfaces.c (make_realized_face): Store registry as Lisp object.
10443 (load_face_font_or_fontset): Compute registry of a face
10444 differently. Make it `eq' to Vx_unibyte_registry_and_encoding if
10445 possible.
10446
10447 * dispextern.h (FACE_SUITABLE_FOR_CHARSET_P): Compare registries
10448 differently.
10449
10450 * alloc.c (mark_face_cache): Mark the registry member of faces.
10451
10452 * dispextern.h (struct face): Make registry a Lisp string.
10453
104541998-08-04 Gerd Moellmann <gerd@gnu.org>
10455
10456 * xterm.c (x_get_char_font_and_encoding): Additional parameter
10457 multibyte_p. Handle unibyte text.
10458 (x_append_glyph): Set the multibyte_p flag of glyphs.
10459 (x_produce_image_glyph): Ditto.
10460 (x_append_stretch_glyph): Ditto.
10461 (x_produce_glyphs): Handle unibyte text like ASCII.
10462
10463 * xdisp.c (push_it): Save the multibyte flag of an iterator on the
10464 stack.
10465 (pop_it): Restore it.
10466 (face_before_or_after_it_pos): Handle the case that the string or
10467 buffer is unibyte.
10468 (get_overlay_strings): Set the multibyte flag of the iterator if
10469 the new overlay string is multibyte.
10470 (get_glyph_property): Likewise.
10471 (get_next_display_element): Don't check for charset changes in
10472 unibyte text.
10473 (append_space): Compute face differently for unibyte text.
10474 (extend_face_to_end_of_line): Don't return quickly if face has
10475 stipple.
10476
10477 * xfaces.c (load_face_font_or_fontset): Store registry and
10478 encoding of the font in the registry member of the face.
10479 (make_realized_face): Additional parameter `registry'.
10480 (free_realized_face): Free the registry of a realized face.
10481 (face_suitable_for_charset_p): Function form of the macro
10482 with the same name in uppercase.
10483 (lookup_face): Use Vx_unibyte_registry_and_encoding if charset < 0.
10484 (choose_face_font): New parameter unibyte_registry.
10485 (choose_face_fontset_font): Ditto.
10486 (realize_default_face): Remember the registry and encoding of
10487 the specified frame font in Vx_unibyte_registry_and_encoding.
10488 (face_at_buffer_position): Handle unibyte.
10489 (face_at_string_position): Likewise.
427ec082 10490 (realize_face): New parameter unibyte_registry.
26901792
DL
10491 (compute_char_face): Handle the unibyte case.
10492
10493 * dispextern.h (struct glyph): Add bit multibyte_p.
10494 (struct face): New member registry holding the registry and
10495 encoding of the X font of the face.
10496 (FACE_UNIBYTE_P): Value is non-zero if face is for unibye text.
10497 (enum face_id): Add BASIC_FACE_ID_SENTINEL.
10498 (FACE_SUITABLE_FOR_CHARSET_P): Handle charset < 0 meansing unibyte
10499 text.
10500 (struct iterator_stack_entry): Add multibyte_p.
10501
10502 * xdisp.c (string_pos): Use string_char_to_byte.
10503 (char_charset): Removed.
10504
105051998-08-03 Gerd Moellmann <gerd@gnu.org>
10506
10507 * xterm.c (x_draw_image_glyph_string_foreground): Draw a
10508 rectangle for a block cursor over an image without a mask.
10509 (x_stretch_block_cursor): Added. Non-zero means don't draw
10510 a block cursor over a stretch as wide as that stretch.
10511 (x_draw_stretch_glyph_string): Use it.
10512 (x_draw_hollow_cursor): Ditto.
10513
10514 * minibuf.c (read_minibuf): Use minibuf_prompt instead of prompt.
10515 (read_minibuf): Add front-sticky text property for prompt.
10516
10517 * xdisp.c (char_charset): Return charset of a character,
10518 depending on whether or not multi-byte characters are enabled.
10519
10520 * xfaces.c (Fset_face_charset_registry): Removed.
10521 (x_charset_registry): Determine registry from charset plist.
10522
105231998-08-02 Gerd Moellmann <gerd@gnu.org>
10524
10525 * xdisp.c (get_next_display_element): Don't check for charset
10526 changes if multi-byte characters are not enabled.
427ec082 10527
26901792 10528 * xdisp.c (echo_area_display): Use the flush function from the
427ec082 10529 redisplay interface.
26901792
DL
10530 * keyboard.c (detect_input_pending_run_timers): Likewise.
10531
10532 * dispextern.h (produce_*glyphs_hook): Removed.
10533 * term.c (produce_*glyphs): Ditto.
10534 (cursor_to): Remove pixel position parameters.
10535
10536 * dispnew.c: Remove hooks for window-based redisplay, introduce
10537 a redisplay interface structure.
10538
10539 * xterm.c (x_per_char_metric): Return default char metrics if per
10540 char metric exists but contains a zero width. Adobe Courier seems
10541 to contain such characters.
10542
10543 * xdisp.c (compute_line_metrics): Compute the width of rows
10544 without stopping at glyphs with zero width.
10545
105461998-08-01 Gerd Moellmann <gerd@gnu.org>
10547
10548 * xdisp.c (display_mode_line): If nothing was displayed at all,
10549 display a space.
10550 (hscroll_window_tree): Don't subtract 1 from target point if equal
10551 to ZV and window is not the selected window.
10552
10553 * dispnew.c (check_matrix_invariants): Remove check for window
10554 start at BEGV or after newline. This happens in rare cases
10555 intentionally.
10556
105571998-07-31 Gerd Moellmann <gerd@gnu.org>
10558
10559 * xfaces.c (x_charset_registry): Use STRING_BYTES.
10560 (syms_of_xfaces): Add Vface_default_registry.
10561 (x_charset_registry): Use it.
10562
10563 * xdisp.c (run_window_scroll_functions): Run window scroll functions.
10564 (redisplay_window): Use it.
10565
10566 * dispnew.c (update_text_area): Handle lbearing of deleted text
10567 by backing up one character.
10568
105691998-07-30 Gerd Moellmann <gerd@gnu.org>
10570
427ec082 10571 * dispnew.c (adjust_glyph_matrix): Use a different check to
26901792
DL
10572 decide to do nothing.
10573
10574 * xfaces.c (face_at_string_position): Additional parameter
10575 mode_line_p. If non-zero, merge with the mode line face
10576 instead of the default face.
10577 * dispextern.h (struct it): Add mode_line_p.
10578 * xdisp.c (init_iterator): Set it.
10579 (compute_face_in_string): Use it.
10580 (face_before_or_after_it_pos): Handle strings.
10581 (get_next_display_element): Don't look for relief end in C strings.
10582 (next_element_from_string): Deliver string position instead of
10583 buffer position.
10584
10585 * xterm.c (x_flush): Flush X output buffer.
10586 (XTflash): Use it.
10587
10588 * xfaces.c (lface_from_face_name): Renamed from lface_from_symbol.
10589 Allow strings as face names.
10590
10591 * xfns.c (forall_images_in_image_cache): Check that frame is
10592 alive.
10593
10594 * widget.c (EmacsFrameDestroy): Remove call to free_frame_faces;
10595 it's also called from x_destroy_window. Since this function is
10596 called from X, freeing stuff allocated with xmalloc is dangerous
10597 here, anyway.
10598
10599 * xfaces.c (free_realized_faces): Don't clear current matrices
10600 of a frame being destroyed.
10601
427ec082 10602 * frame.c (make_frame): Call set_window_buffer instead of
26901792
DL
10603 Fset_window_buffer.
10604
10605 * window.c (set_window_buffer): Extracted from Fset_window_buffer,
10606 with an additional argument specifying whether or not hooks may
10607 be called.
10608 (Fset_window_buffer): Call it.
10609
10610 * dispnew.c (clear_desired_matrices): Check that frame has
10611 a valid root window before clearing matrices in the window tree.
10612 (clear_current_matrices): Ditto.
10613 (clear_window_matrices): If GLYPH_DEBUG, check that hchild and
10614 vchild are valid windows if not nil.
10615
10616 * xfaces.c (merge_face_vector_with_property): Allow :reverse-video
10617 for :inverse-video.
10618 (Finternal_set_lisp_face_attribute): Ditto.
10619 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
10620 (Finternal_get_lisp_face_attribute): Ditto.
10621 (Finternal_lisp_face_attribute_values): Ditto.
10622 (syms_of_xfaces): Define the symbol `:reverse-video'.
10623
10624 * xdisp.c (get_glyph_property): Renamed from
10625 fill_iterator_from_glyph_property.
10626 (next_element_from_buffer): Handle case that no `glyph' property
10627 was found correctly.
10628 (display_line): Extend face to end of line only if we have faces.
10629
106301998-07-29 Gerd Moellmann <gerd@gnu.org>
10631
10632 * dispnew.c (Fshow_cursor): Renamed from blink_cursor. Take
10633 additional window argument.
10634
10635 * xdisp.c (reseat_at_previous_visible_line_start): Renamed from
10636 set_iterator_to_previous_visible_line_start.
10637 (reseat_at_next_visible_line_start): Likewise.
10638 (compute_stop_pos): Renamed from set_iterator_stop_pos.
10639 (face_before_or_after_it_pos): Renamed from get_face_at_it_pos.
10640 (compute_face_in_buffer): Renamed from
10641 compute_face_at_iterator_position.
10642 (compute_face_in_string): Renamed from
10643 compute_face_at_iterator_string_position.
10644 (get_space_width): Renamed from get_iterator_space_width.
10645 (next_overlay_string): Renamed from
10646 set_iterator_to_next_overlay_string.
10647 (get_overlay_strings): Renamed from
10648 get_overlay_strings_at_iterator_position.
10649 (restore_overlay_strings): Renamed from
10650 setup_overlay_strings_from_glyph_pos.
10651 (restore_dpvec): Renamed from setup_iterator_dpvec_from_glyph_pos.
10652 (init_from_display_pos): Renamed from init_iterator_from_glyph_pos.
10653 (init_to_row_start): Renamed from init_iterator_to_row_start.
10654 (init_to_row_end): Formerly init_iterator_to_next_row_start.
10655
10656 * xterm.c: Merge with 20.2.97.
10657 (x_produce_glyphs): Use x_append_stretch_glyph for tabs.
10658
10659 * dispextern.h (struct glyph): Replace text_pos position with
10660 simple charpos.
10661
10662 * xdisp.c (this_line_start_pos): Use struct text_pos.
10663 (this_line_end_pos): Renamed from .*endpos; use struct text_pos.
10664 (enum move_it_result): Renamed from move_iterator_result.
10665 (string_pos_nchars_ahead): Compute text_pos in a string from a
10666 known text_pos plus a character delta.
10667 (string_pos): Compute text_pos in string from charpos.
10668 (c_string_pos): Likewise for a C string.
10669 (number_of_chars): Return number of characters in a possibly
10670 multi-byte C string.
10671 (check_it): Renamed from check_iterator. Check that charpos and
10672 bytepos are in sync.
10673 (push_it): Renamed from save_iterator_settings.
10674 (pop_it): Renamed from restore_iterator_settings.
10675 (move_it_.*): Renamed from move_iterator_.*.
10676 (charset_at_position): Take charpos/bytepos into account.
10677 (back_to_previous_line_start): Set iterator to previous line start.
10678 (forward_to_next_line_start): Set iterator to next line start.
427ec082 10679 (back_to_previous_visible_line_start): Renamed from
26901792
DL
10680 move_iterator_previous_visible_line_start.
10681 (set_iterator_to_next_visible_line_start): Handle charpos/bytepos.
10682 (get_face_at_it_pos): Renamed from get_face_from_cursor_pos.
10683 Handle charpos/bytepos.
10684 (compute_face_at_iterator_position): Handle charpos/bytepos.
10685 (compute_face_at_iterator_string_position): Likewise.
10686 (get_iterator_space_width): Likewise.
10687 (load_overlay_strings): Likewise.
10688 (get_overlay_strings_at_iterator_position): Likewise.
10689 (reseat_iterator): Take a text_pos position argument.
10690 (setup_iterator_overlay_strings_from_glyph_pos): Handle charpos/
10691 bytepos.
10692 (init_iterator): Take additional bytepos parameter.
10693 (reseat_iterator_to_string): Handle charpos/bytepos.
10694 (start_display): Take a text_pos parameter. Handle charpos/bytepos.
10695 (next_element_from_string): Handle charpos/bytepos.
10696 (next_element_from_c_string): Likewise.
10697 (fill_iterator_from_glyph_property): Likewise.
10698 (next_element_from_buffer): Likewise.
10699 (set_iterator_to_next): Increment charpos and bytepos of an iterator.
10700 (move_iterator_in_display_line_to): Handle charpos/bytepos.
10701 (move_it_to): Likewise.
10702 (move_it_vertically_backward): Likewise.
10703 (move_it_vertically): Likewise.
10704 (move_it_by_lines): Likewise.
10705 (hscroll_window_tree): Likewise.
10706 (redisplay_internal): Likewise.
10707 (set_cursor_from_row): Likewise.
10708 (redisplay_window): Likewise.
10709 (try_window): Take a text_pos parameter. Handle charpos/bytepos.
10710 (try_window_reusing_current_matrix): Handle charpos/bytepos.
10711 (get_first_unchanged_at_end_row): Compute and return delta_bytes.
10712 (try_window_id): Handle charpos/bytepos.
10713 (Ftrace_redisplay_toggle): Return Qnil.
10714 (get_overlay_arrow_glyph_row): Handle charpos/bytepos.
10715 (insert_left_trunc_glyphs): Likewise.
10716
10717 * dispnew.c: `Merge' with 20.2.97 (it's really too different to
10718 do a real merge).
10719 (increment_glyph_matrix_buffer_positions): Add parameter delta_bytes.
10720 (increment_glyph_row_buffer_positions): Ditto.
10721 (copy_glyph_row_contents): Ditto.
10722 (check_matrix_invariants): Add additional checks for charpos/
10723 bytepos consistency.
10724 (direct_output_for_insert): Changed for charpos/bytepos.
427ec082 10725 (buffer_posn_from_coords): Likewise. Put code dealing with
26901792
DL
10726 `direction-reversed' in #if 0.
10727
10728 * xterm.h: Merge with 20.2.97.
427ec082 10729
26901792
DL
10730 * frame.h: Merge with 20.2.97.
10731
10732 * window.h: Merge with 20.2.97. Add window_end_bytepos.
10733
10734 * dispextern.h (MATRIX_ROW_START_CHARPOS): Get charpos of a row
10735 start.
10736 (MATRIX_ROW_START_BYTEPOS): Likewise for the byte position.
10737 (MATRIX_ROW_END_CHARPOS): Likewise for the row end.
10738 (MATRIX_ROW_END_BYTEPOS): Likewise for the row end byte position.
10739 (struct it): Various members renamed from .*pos to .*charpos.
10740 (IT_CHARPOS): Access current buffer character position of an
10741 iterator.
10742 (IT_BYTEPOS): Access current buffer byte position of an iterator.
10743 (IT_STRING_CHARPOS): Access current string character position of
10744 an iterator.
10745 (IT_STRING_BYTEPOS): Access current string byte position of
10746 an iterator.
10747 (globally): Add function prototypes from 20.2.97.
10748
10749 * everywhere: Use P_ instead of PROTO for function prototypes
10750 because everyone else seems to use P_.
10751
10752 * dispextern.h (struct text_pos): Structure describing a charpos/
10753 bytepos position in text.
10754 (BYTEPOS): Access the byte position part of a text_pos.
10755 (CHARPOS): Likewise for the character position.
10756 (SET_TEXT_POS): Set a text_pos from a character and byte position.
10757 (INC_TEXT_POS, DEC_TEXT_POS): Increment/decrement a text position.
10758 (SET_TEXT_POS_FROM_MARKER): Set a text_pos from a marker.
10759 (SET_MARKER_FROM_TEXT_POS): Set a marker from a text_pos.
10760 (TEXT_POS_EQUAL_P): Compare two text_pos structures for equality.
10761 (struct display_pos): Renamed from glyph_pos. Use struct text_pos
10762 for buffer and string positions.
10763 (struct glyph): Use text_pos.
10764 (struct it): Renamed from display_iterator. Use text_pos.
10765
107661998-07-23 Gerd Moellmann <gerd@gnu.org>
10767
10768 * xfns.c (x_kill_gs_process): Get image colors from XImage of a
10769 pixmap.
10770
107711998-07-21 Gerd Moellmann <gerd@gnu.org>
10772
10773 * dispextern.h (struct glyph_row): New flag indicate_zv_line_p.
10774 * xterm.c (x_draw_row_bitmaps): Use it.
10775 * dispnew.c (row_equal_p): Ditto.
10776 (update_window_line): Ditto.
10777
10778 * xfns.c (prepare_image_for_display): Don't set loading_failed_p
10779 flag of images.
10780
10781 * dispextern.h (struct image): Removed member loading_failed_p.
10782 It's probably better to have the chance to try to load an image
10783 again.
10784
107851998-07-20 Gerd Moellmann <gerd@gnu.org>
10786
10787 * xterm.c (x_draw_bitmap): Draw bitmap for empty lines ending
10788 at ZV if `indicate-zv-lines' is non-nil.
10789 (x_draw_row_bitmaps): Compute bitmap for `indicate-zv-lines'.
10790
10791 * dispnew.c (row_equal_p): Compare displays_text_p and
10792 ends_at_zv_p flags of rows.
10793 (update_window_line): Ditto.
10794
10795 * buffer.h (struct buffer): New member indicate_zv_lines.
10796
10797 * buffer.c (init_buffer_once): Add default for `indicate-zv-lines'.
10798 (init_buffer_once): New variable `default-indicate-zv-lines'.
10799 (syms_of_buffer): New buffer-local varianle `indicate-zv-lines'.
10800
10801 * xdisp.c (redisplay_window): Don't try moving the cursor
10802 if current glyph row w->last_cursor.vpos isn't enabled.
10803
10804 * xterm.c (bitmap_type): Add ZV_LINE_BITMAP.
10805
10806 * window.c (Fset_window_vscroll): Allow only negative scroll
10807 values. Others don't seem to make sense, and this way it's easy
10808 to restore a vscroll of zero.
10809
10810 * xterm.c (x_inverted_image_mask): Check that pixmap could be
10811 allocated.
10812 (x_draw_image_glyph_string_background): Don't clip if pixmap
10813 could not be created.
10814
10815 * xfns.c (xbm_load_image_from_file): Check that pixmap could
10816 be created.
10817 (xbm_load): Ditto.
10818 (gs_load): Ditto.
10819
10820 * xterm.c (x_get_glyph_overhangs): Take image and stretch
10821 glyphs into account.
10822
10823 * xfaces.c (realize_default_face): Don't set font family of
10824 the default face from the fontset alias name for `fontset-startup'.
10825
10826 * xfns.c (gs_load): Pass frame's pixel foreground and background
10827 color to the Lisp loader.
10828
108291998-07-19 Gerd Moellmann <gerd@gnu.org>
10830
10831 * xfns.c (tiff_image_p, tiff_load): Support TIFF images via
10832 libtiff34.
10833
10834 * configure.in (--with-tiff, HAVE_TIFF): Added.
10835
10836 * config.in (HAVE_TIFF): Added.
10837
10838 * Makefile.in (LIBTIFF): Added.
10839
10840 * xfns.c (jpeg_image_p, jpeg_load): Support JPEG images.
10841
10842 * Makefile.in (LIBJPEG): Added.
10843
10844 * xfns.c (resource_types): Enumerators renamed to RES_TYPE_NUMBER,
10845 RES_TYPE_BOOLEAN etc. because of conflict of `boolean' with
10846 jpeglib.h.
10847
427ec082 10848 * configure.in (HAVE_JPEG, --with-jpeg): Added. On systems
26901792
DL
10849 where the library is installed in /usr/local/lib, e.g. FreeBSD,
10850 configure must be run with `--x-includes=/usr/X11R6/include:
10851 /usr/local/include --x-libraries=/usr/X11R6/lib:/usr/local/lib'.
10852
108531998-07-18 Gerd Moellmann <gerd@gnu.org>
10854
10855 * config.in (HAVE_JPEG): Added.
10856
10857 * xfns.c (ct_init): Initialize color table used to map RGB colors
10858 from images to X pixel colors.
10859 (ct_free): Free color table.
10860 (ct_lookup): Look an RGB color up.
10861 (ct_allocated_colors): Get vector of allocated colors.
427ec082 10862 (pbm_image_p): Test if image specification is a valid PPM
26901792
DL
10863 image specification.
10864 (pbm_scan_number): Scan a decimal ASCII number from a file.
10865 (pbm_load): Load a PPM image.
10866
10867 * window.c (Fset_window_vscroll): Adjust glyph matrix if
10868 necessary. Take canonical character units as parameter.
10869 (Fwindow_vscroll): Return canonical character units.
10870
10871 * dispnew.c (allocate_matrices_for_window_redisplay): Add negative
10872 w->dy to display height for which glyph rows must be allocated.
10873
108741998-07-17 Gerd Moellmann <gerd@gnu.org>
10875
10876 * xfaces.c (face_at_string_position): Merge in region face
10877 so that it won't overwrite the font in the region.
10878 (face_at_buffer_position): Ditto.
10879 (realize_basic_faces): Don't realize region face.
10880
10881 * dispextern.h (enum face_id): REGION_FACE_ID removed.
10882
10883 * xterm.c (x_set_glyph_string_background_width): Don't let
10884 cursor face extend to end of line.
10885
10886 * xdisp.c (append_space): If adding space of default face,
10887 make sure glyph ist produced with right face.
10888
10889 * xterm.c (x_clear_glyph_string_rect): Draw a rectangle in the
10890 background color of a glyph string.
10891 (x_draw_glyph_string_background): Call it.
10892 (x_draw_glyph_string_bg_rect): Ditto.
10893 (x_draw_stretch_glyph_string): Ditto.
10894
108951998-07-15 Gerd Moellmann <gerd@gnu.org>
10896
10897 * xdisp.c (init_iterator): Initialize it->current_y to the
10898 window's vscroll w->dy.
10899
10900 * window.c (Fwindow_vscroll): Return number of pixels window
10901 is vscrolled smoothly.
10902 (Fset_window_vscroll): Set the number.
10903
10904 * xdisp.c (move_iterator_to): Recognize case MOVE_TO_POS and
10905 to_pos in truncated part of a line.
10906
109071998-07-14 Gerd Moellmann <gerd@gnu.org>
10908
10909 * xdisp.c (move_iterator_in_display_line_to): If very first glyph
10910 doesn't fit on the line, truncate it, despite truncate_lines nil.
10911 (display_line): Ditto.
10912
10913 * xfns.c: Experimental support for Ghostscript images.
10914
10915 * xterm.c (x_term_init): Initialize new atoms DONE and PAGE.
10916 (XTread_socket): React on events from Ghostscript.
10917 (expose_frame): If width or height are zero, redraw entire frame.
10918 (XTread_socket): Call expose_frame after receiving event from
10919 Ghostscript.
10920
10921 * xterm.h (struct x_display_info): Add atoms DONE and PAGE
10922 for Ghostscript support.
10923
10924 * xdisp.c (redisplay_internal): Return quickly if called
10925 recursively.
10926
10927 * alloc.c (NSTATICS): Increased to 1024.
10928
109291998-07-08 Gerd Moellmann <gerd@gnu.org>
10930
10931 * xterm.c (x_append_stretch_glyph): Append a stretch glyph to an
10932 iterator's glyph row.
10933 (x_produce_stretch_glyph): Call it.
10934 (x_produce_glyphs): Handle `space-width' property; call
10935 x_append_stretch_glyph.
10936
10937 * xdisp.c (syms_of_xdisp): Add symbol `space-width' used as a text
10938 property.
10939 (get_iterator_space_width): Determine value of `space-width'
10940 property at iterator's position.
10941 (reseat_iterator): Call it.
10942 (next_element_from_string): Ditto.
10943 (next_element_from_buffer): Ditto.
10944 (init_iterator): Initialize space_width of iterator.
10945 (redisplay_internal): Don't goto end_of_redisplay if PT hasn't
10946 moved, but cursor blinks.
10947 (redisplay_internal): Set w->last_cursor_off_p after update.
10948
10949 * dispextern.h (enum iterator_prop_idx): Add SPACE_WIDTH_PROP_IDX.
10950 (struct display_iterator): Add new member space_width.
10951
10952 * window.h (struct window): Add last_cursor_off_p.
10953
109541998-07-07 Gerd Moellmann <gerd@gnu.org>
10955
10956 * Saved.
10957
10958 * window.c (Fpos_visible_in_window_p): Case window not up to
10959 date---return nil if iterator hasn't reached position.
10960
109611998-07-06 Gerd Moellmann <gerd@gnu.org>
10962
10963 * xdisp.c (text_outside_line_unchanged_p): Fix case that
10964 overlays have changed.
10965 (redisplay_window): Case cursor movement. Don't try it if
10966 last_cursor.vpos is out of range.
10967
10968 * xdisp.c (set_cursor_from_row): Set this_line_.* variables. This
10969 way, the display optimization for the line containing the cursor
10970 is used more frequently, esp. when we have a blinking cursor.
10971 (display_line): Don't set this_line_.* variables.
10972
10973 * xterm.c (x_redraw_cursor): Removed.
10974 (x_display_and_set_cursor): Set cursor type depending on
10975 cursor_off_p flag of window.
10976
10977 * dispnew.c (redraw_cursor_hook): Removed.
10978 (Fblink_cursor): Additional parameter on_p to set the cursor_off_p
10979 member of the selected window.
10980
10981 * xfaces.c (Fface_font): Added for compatibility with 20.2.
10982
10983 * xterm.c (x_y_to_hpos_vpos): Return null if not over text.
10984 Return glyph area under x/y.
10985 (note_mouse_highlight): Use x_y_to_hpos_vpos in its new form.
10986
10987 * keyboard.c (detect_input_pending_run_timers): Call gobble_input
10988 after redisplaying.
10989
109901998-07-05 Gerd Moellmann <gerd@gnu.org>
10991
10992 * xdisp.c (text_outside_line_unchanged_p): Test if changes
10993 are all outside of a line of text.
10994 (redisplay_internal): Use it.
10995
109961998-06-30 Gerd Moellmann <gerd@gnu.org>
10997
10998 * xdisp.c (next_element_from_buffer): After skipping over
10999 invisible text, look for the `glyph' property.
11000 (set_iterator_stop_pos): Ignore check positions in front
11001 of an iterator's current position.
11002
11003 * xterm.c (show_mouse_face): Don't act on rows that don't exist
11004 anymore or which are marked as not having valid contents.
11005
11006 * xfaces.c (Finternal_set_lisp_face_attribute): Don't free
11007 realized faces if new attribute value is equal to old value.
11008
110091998-06-29 Gerd Moellmann <gerd@gnu.org>
11010
11011 * xfaces.c (Finternal_make_lisp_face): Increment
11012 lface_id_to_name_size when lface_id_to_name is reallocated.
11013
110141998-06-27 Gerd Moellmann <gerd@gnu.org>
11015
11016 * xdisp.c (set_iterator_stop_pos): Compute initial stop_pos
11017 as minimum of endpos and overlay_pos.
11018 (load_overlay_strings): Set next_overlay_pos of iterator to
11019 -1 if we don't have to check for more overlay strings.
11020
110211998-05-09 Gerd Moellmann <gerd@gnu.org>
11022
11023 * xdisp.c (set_iterator_to_next_visible_line_start): Don't
11024 do anything if iterator is at ZV because scan_buffer doesn't
11025 work otherwise.
11026
11027 * xterm.c (x_encode_char): Inline it.
11028 (x_get_char_font_and_encoding): Simplified.
11029 (x_per_char_metric): Inline it.
11030
11031 * xterm.c (x_draw_glyph_string_relief): Use clipping.
11032
11033 * xdisp.c (get_next_display_element): Check for end of relief
11034 face moved here from next_element_from_buffer.
11035
11036 * xterm.c (x_produce_image_glyph): Add relief thickness.
11037 (x_produce_stretch_glyph): Ditto.
11038
110391998-05-08 Gerd Moellmann <gerd@gnu.org>
11040
11041 * xdisp.c (fill_iterator_from_glyph_property): Handle glyph
11042 property value (space :width WIDTH :height HEIGHT :ascent ASCENT).
11043
11044 * xterm.c (x_produce_stretch_glyph): Produce a stretch glyph
11045 from a glyph property.
11046 (x_produce_glyphs): Use it.
11047
11048 * xdisp.c (set_iterator_to_next): Handle next_element_from_stretch.
11049
427ec082 11050 * xterm.c (x_produce_image_glyph): Add to current_x only if
26901792
DL
11051 in text area.
11052 (x_produce_glyphs): Ditto.
11053
427ec082 11054 * xdisp.c (display_line): Compute row height from glyphs in
26901792
DL
11055 marginal areas.
11056
427ec082 11057 * xterm.c (x_draw_image_glyph_string_background): Draw
26901792 11058 background of an image glyph string.
427ec082 11059 (x_draw_glyph_string_bg_rect): Draw a rectangular region of
26901792
DL
11060 the background of a glyph string.
11061 (x_draw_image_glyph_string_foreground): Draw the foreground of
11062 an image glyph string.
11063 (x_inverted_image_mask): Return the inverted mask of an image.
11064
11065 * xfns.c (x_draw_image): Removed.
11066
11067 * dispextern.h (struct image_type): Remove drawing function.
11068
11069 * xfaces.c (load_face_colors): Swap colors if face is inverse.
11070
11071 * xdisp.c (get_next_display_element): In marginal areas, translate
11072 newlines, tabs, etc. like normal control characters.
11073
11074 * xfaces.c (Fface_color_supported_p): Transpose parameters frame
11075 and color.
11076 (free_realized_faces): Set frame garbaged.
11077
11078 * xfaces.c (syms_of_xfaces): Add defsubr for
11079 internal-lisp-face-attribute-values.
11080
110811998-05-07 Gerd Moellmann <gerd@gnu.org>
11082
11083 * xterm.c (x_produce_image_glyph): Don't add glyph if area is
11084 full.
11085 (x_produce_image_glyph): Set IT->nglyphs to 1.
11086 (x_draw_image_glyph_string): Use inverted mask to draw background.
11087
11088 * dispextern.h (struct image_type): Additional clipping rect
11089 parameters for drawing functions.
11090
427ec082 11091 * xterm.c (x_get_glyph_string_clip_rect): Get clip rect for
26901792
DL
11092 a glyph string.
11093 (x_draw_image_glyph_string): Use it and pass the rect to the
11094 image drawing function.
11095
11096 * xdisp.c (fill_iterator_from_glyph_property): Use position of
11097 first character with `glyph' property as image position. Set
11098 iterator back to that position as long as the image hasn't been
11099 consumed with set_iterator_to_next.
11100 (set_cursor_from_row): Accept when glyph with given position is
11101 not found in the row. Set cursor x to end of line in that case,
11102 so that we can hscroll.
11103 (redisplay_internal): Correct computation of delta by which
11104 positions have changed in redisplay optimization for cursor
11105 row of selected window.
11106
11107 * xdisp.c (display_line): Remove start_pos.
427ec082 11108 (display_line): Fix bug preventing display optimization for
26901792
DL
11109 cursor line of selected window.
11110 (next_element_from_buffer): Avoid XSETBUFFER, use it->w->buffer
11111 instead.
11112
11113 * dispnew.c (update_text_area): Use GLYPH_EQUAL_P.
11114 (update_text_area): Take glyph pixel width into account
11115 when trying to find a resync point.
11116 (row_equal_p): Compare glyphs in all areas.
11117
111181998-05-06 Gerd Moellmann <gerd@gnu.org>
11119
11120 * xterm.c (x_produce_glyphs): Don't add glyph if area is full.
11121
11122 * dispextern.h (struct glyph_row): Use unsigned hash value.
11123
11124 * xdisp.c (display_line): Simplified and made faster by setting
11125 the cursor with set_cursor_from_row.
11126 (set_cursor_from_row): Handle rows of desired matrix.
11127
111281998-05-05 Gerd Moellmann <gerd@gnu.org>
11129
11130 * xdisp.c (set_cursor_from_row): Don't put cursor on glyphs
11131 with type != CHAR_GLYPH.
11132 (fill_iterator_from_glyph_property): Return void. Set
11133 method to next_element_from_image.
11134 (next_element_from_image): Dummy function for delivering a
11135 single image id.
11136 (set_iterator_to_next): Add method next_element_from_image.
11137 (redisplay_window): When recentering, and cursor vpos is -1
11138 after display, assume middle of window is in first line displayed
11139 in window, and display again.
427ec082 11140 (fill_iterator_from_glyph_property): Assign image glyph
26901792
DL
11141 the position of the first character having the glyph property.
11142
11143 * dispextern.h (IMAGE_ASCENT): Compute ascent of image.
11144 * xfns.c (x_draw_image): Use it.
11145 * xterm.c (x_produce_image_glyph): Use it.
11146
11147 * xterm.c (x_produce_image_glyph): Set iterator's pixel_width.
11148
11149 * Makefile.in: Extraneous #define of LIBXPM removed.
11150
11151 * xterm.c (x_produce_glyphs): Produce a STRETCH_GLYPH for tabs.
427ec082 11152 (x_fill_stretch_glyph_string): Fill a glyph string from a
26901792
DL
11153 stretch glyph.
11154 (x_compute_glyph_string_overhangs): Compute overhangs only
11155 for text glyph strings.
11156 (x_draw_stretch_glyph_string): Draw a stretch glyph string.
11157 (x_draw_glyph_string): Call it.
11158
11159 * dispextern.h (glyph_type): Add STRETCH_GLYPH.
11160 (struct glyph): Add sub-structure for stretchable glyphs.
11161 (GLYPH_EQUAL_P): Compare glyph type and u.val.
11162
11163 * xdisp.c (get_overlay_arrow_glyph_row): Put face code into
11164 #ifdef HAVE_FACES.
11165
11166 * xterm.c (x_produce_glyphs): Use ASCII face for spaces of a TAB.
11167
11168 * xdisp.c (fill_iterator_from_glyph_property): Renamed from
11169 setup_iterator_from_glyph_property. Don't do it for terminal
11170 frames.
11171
11172 * xterm.c (x_produce_image_glyph): Produce glyph for image
11173 that can't be loaded.
11174
11175 * xfns.c (lookup_image): If image can't be loaded, set its
11176 width and height so that we can draw a rectangle.
11177 (x_draw_image): Draw a rectangle for images that don't have
11178 a pixmap.
11179 (make_image): Set hash value.
11180 (image_spec_equal_p): Use image_spec_value.
11181
11182 * xterm.c (expose_frame): Don't try to redraw if basic faces
11183 haven't benn realized yet.
427ec082 11184 (x_draw_image_glyph_string): Fill background only if image
26901792
DL
11185 is not as tall as row.
11186
111871998-05-04 Gerd Moellmann <gerd@gnu.org>
11188
11189 * Makefile.in (LIBXPM): If not already defined, define to -lXpm.
11190 (LIBX)[HAVE_X11]: Add LIBXPM.
11191
11192 * xfns.c (xpm_image_p): Implementation of image type functions
11193 for XPM.
11194 (xpm_load): Ditto.
11195
11196 * dispextern.h (struct image): Add mask pixmap for XPM.
11197
11198 * xfns.c (x_draw_image): Handle images with masks.
11199
11200 * configure.in: --with-xpm added. Code detecting -lXpm added.
11201
11202 * config.in: Add HAVE_XPM.
11203
11204 * xfns.c (xbm_draw): Removed.
11205 (x_draw_image): Default implementation for drawing images.
11206 (xbm_keyword_index): Remove XBM_DEPTH.
11207 (xbm_format): Remove `:depth'.
11208 (xbm_image_spec_from_file): Removed to reduce consing.
427ec082 11209 (xbm_load_image_from_file): Added for the same reason.
26901792 11210
427ec082 11211 * xterm.c (x_fill_image_glyph_string): Don't set ybase of
26901792
DL
11212 glyph string.
11213 (x_draw_image_glyph_string): Pass ybase to image draw function.
11214
11215 * xfns.c (make_image): Set default baseline.
11216
11217 * xterm.c (x_produce_image_glyph): Compute ascent of image
11218 from its height and baseline percentage.
11219
11220 * xfns.c (xbm_keyword_index): Add XBM_BASELINE.
11221 (xbm_format): Add description for `:baseline'.
11222 (xbm_image_spec_from_file): Add keywords from original spec to
11223 result.
11224 (xbm_load): Set baseline of image.
11225 (xbm_image_p): Check range for baseline.
11226
11227 * dispextern.h (struct image): Add member baseline.
11228
11229 * xdisp.c (dump_glyph_matrix): Handle image glyphs.
11230
11231 * term.c (produce_glyphs): Change assertion to allow DISP_IMAGE.
11232
11233 * xdisp.c (get_next_display_element): Do character translations
11234 only if delivering characters.
11235
112361998-05-03 Gerd Moellmann <gerd@gnu.org>
11237
427ec082 11238 * dispextern.h (ITERATOR_AT_END_OF_LINE_P): Test for
26901792
DL
11239 DISP_CHARACTER.
11240
11241 * xterm.c (x_produce_image_glyph): Poduce image glyphs.
11242 (x_produce_glyphs): Call x_produce_glyphs for DISP_IMAGE.
11243
112441998-05-02 Gerd Moellmann <gerd@gnu.org>
11245
11246 * xfns.c (prepare_image_for_display): Set image timestamp.
11247 (clear_image_cache): Clear images if image's timestamp +
11248 Vimage_eviction_seconds is > now.
11249 (syms_of_xfns): New variables image-eviction-seconds, and
11250 image-types.
11251 (add_image_format): Add to image-types.
11252 (xbm_load): Support new image spec format.
11253 (x_alloc_image_color): Allocate a color for an image.
11254
11255 * dispextern.h (struct image): Add timestamp.
11256
11257 * xfns.c (xbm_image_p): Allow bool-vectors, vectors of strings and
11258 vectors of bool-vectors.
11259 (xbm_lisp_object_from_file): Build new format image spec.
11260
112611998-05-01 Gerd Moellmann <gerd@gnu.org>
11262
11263 * xfaces.c (init_frame_faces): Initialize image cache.
11264 (free_frame_faces): Free it.
11265
11266 * xterm.c (x_delete_display): Don't free image cache.
11267
11268 * emacs.c (main): Call init_xfns.
11269
112701998-04-30 Gerd Moellmann <gerd@gnu.org>
11271
11272 * alloc.c (mark_object): Mark objects in image cache.
11273
427ec082 11274 * xfns.c (x_set_internal_border_width): Correct call to
26901792
DL
11275 widget_store_internal_border_width.
11276
11277 * widget.c (widget_store_internal_border): Return void.
11278
11279 * xfns.c (x_destroy_bitmap): Use xfree instead of free. Return
11280 void.
11281 (init_x_parm_symbols): Return void.
11282 (x_report_frame_params): Ditto.
11283 (x_set_border_pixel): Ditto.
11284 (syms_of_xfns): Ditto.
11285 (x_destroy_all_bitmaps): Use xfree instead of free.
11286
11287 * xterm.h (FRAME_X_IMAGE_CACHE): Access the image cache of a frame.
11288
11289 * xterm.c (x_term_init): Initialize image_cache of display info.
11290 (x_delete_display): Free image cache.
11291
11292 * xterm.h (struct x_display_info): Add image_cache.
11293
11294 * xfns.c (make_image_cache): Allocate a new image cache.
11295 (free_image_cache): Free an image cache.
11296 (make_image): Allocate an image.
11297 (free_image): Free an image.
11298
11299 * dispextern.h (struct image): Structure describing an image.
11300 (struct image_cache): Structure describing an image cache.
11301
113021998-04-29 Gerd Moellmann <gerd@gnu.org>
11303
11304 * xdisp.c (check_iterator_glyph_property): Return int. Value is
11305 non-zero if iterator is filled with something to return.
11306 (next_element_from_buffer): Immediately return if
11307 setup_iterator_from_glyph_prop has filled iterator with pixmap.
11308 (next_element_from_string): Likewise.
11309
11310 * xfaces.c (load_pixmap): Allow to pass null for W_PTR and H_PTR.
11311
11312 * dispextern.h (struct glyph): Add pixmap_id.
11313 (display_element_type): Add DISP_PIXMAP.
11314
11315 * xmenu.c (popup_get_selection): Use xmalloc/xfree instead of
11316 malloc/free.
11317
11318 * xfaces.c (clear_font_table): Free fonts not used by fontsets.
11319 (clear_face_cache): Call it.
11320
11321 * xterm.c (x_query_font): Don't look at empty font table slots.
11322 (x_compute_min_glyph_bounds): Likewise.
11323 (x_term_init): Initialize font_table to null.
11324 (x_load_font): Change allocation of font_info structures so
11325 that it is possible to free fonts.
11326
427ec082 11327 * xfns.c (Fx_close_connection): Use xfree instead of free.
26901792
DL
11328 Only free fonts from filled font table entries.
11329
11330 * xfaces.c (best_matching_font): Support use of scalable fonts.
11331 (Fface_scalable_fonts_mode): Toggle use of scalable fonts.
11332
11333 * xterm.h (struct x_display_info): Remove screen_dpi, add resx
11334 and resy.
11335 * xterm.c (x_term_init): Compute resx and resy.
11336
11337 * xfaces.c (split_font_name): Don't reject scalable fonts.
11338
427ec082 11339 * xterm.c (x_list_fonts): Set code exclusing scalable fonts
26901792
DL
11340 in #if 0.
11341
11342 * xfaces.c (xlfd_point_size): Return 0 for fonts whose real
11343 point size cannot be determined.
11344
11345 * xterm.h (FRAME_SMALLEST_CHAR_WIDTH): Return smallest character
11346 width over all fonts on a frame.
11347 (FRAME_SMALLEST_FONT_HEIGHT): Likewise for font height.
11348 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Use these
11349 macros.
11350
11351 * xterm.c (x_font_min_bounds): Moved here from xfaces.c.
11352 (x_compute_min_char_bounds): Formerly min_char_bounds in xfaces.c.
11353 (x_load_font): Use x_compute_min_char_bounds.
11354
11355 * xterm.h (struct x_display_info): New members smallest_char_width
11356 and smallest_font_height.
11357
113581998-04-28 Gerd Moellmann <gerd@gnu.org>
11359
11360 * dispextern.h (PREPARE_FACE_FOR_DISPLAY): Call function with
11361 the same name if GC of face is zero.
11362
11363 * dispextern.h (struct face): Member non_ascii_gc removed.
11364
11365 * xterm.c (x_get_char_font_and_encoding): Return face's font
427ec082 11366 for characters < 0177 in default face. Prepare face for
26901792
DL
11367 display before returning it.
11368 (x_produce_glyphs): Use it->charset.
11369 (x_get_char_font_and_encoding): Simplified.
11370 (x_encode_char): Remove parameter `font'.
11371
11372 * xfaces.c (choose_face_font): If registry from charset symbol
11373 doesn't contain a `-', make it a pattern by appending "*-*".
11374
11375 * xdisp.c (check_iterator_glyph_property): Adjust limit for
11376 glyph_check_pos computation to character boundary.
11377
113781998-04-27 Gerd Moellmann <gerd@gnu.org>
11379
11380 * fontset.h (FONT_INFO_FROM_ID): Return null if ID is invalid.
11381
11382 * xfaces.c (ascii_face_of_lisp_face): Get the id of the realized
11383 ASCII face for a given Lisp face id.
11384
11385 * xdisp.c (set_iterator_stop_pos): Take glyph_check_pos into
11386 account.
427ec082 11387 (reseat_iterator): Set glyph_check_pos. Handle case where
26901792
DL
11388 new position is < original position.
11389 (check_iterator_glyph_property): Handle glyph property in strings.
11390 (next_element_from_string): Call above function.
11391 (next_element_from_display_vector): Handle faces in glyphs.
11392 (get_next_display_element): Set face_id of glyphs for
11393 control chars to zero.
11394
11395 * Makefile.in (term.o): Add dependency on dispextern.h.
11396
11397 * xdisp.c (syms_of_xdisp): Add symbol `glyph'.
11398 (display_line): Handle marginal areas.
11399 (move_iterator_in_display_line_to): Likewise.
11400
11401 * xfaces.c (Finternal_make_lisp_face): Assign Lisp faces an id.
11402
11403 * xfaces.c (face_at_buffer_position): Don't merge with nil
11404 text property.
11405 (face_at_string_position): Ditto.
11406
11407 * dispextern.h (struct display_iterator): Use a stack of saved
11408 values instead of saving check positions etc. individually.
11409
11410 * xdisp.c (set_iterator_to_next): If end of Lisp string reached,
11411 maybe pop the iterator's stack.
11412 (save_iterator_settings): Push a value on iterator's stack.
11413 (get_overlay_strings_at_iterator_position): Use it.
11414 (restore_iterator_settings): Pop the stack.
11415 (set_iterator_to_next_overlay_string): Use it.
11416
11417 * xfaces.c (try_font_list): Use alternative font families.
11418
114191998-04-26 Gerd Moellmann <gerd@gnu.org>
11420
11421 * xfaces.c (Fset_face_font_sort_order): Set the order in which
11422 font selection matches fonts.
11423 (Fface_font_sort_order): Return the font sort order.
11424 (best_matching_font): Find best matching font based on sort order.
11425 (cmp_font_names): Sort by given sort order.
11426
11427 * dispextern.h (struct display_iterator): New member faces_p.
11428 * xdisp.c (init_iterator): Initialize it->faces_p.
11429 (compute_face_at_iterator_string_position): Use it.
11430 (compute_face_at_iterator_position): Use it.
11431 (init_iterator): Use it.
11432 (display_mode_line): Ditto.
11433
11434 * xdisp.c (get_next_display_element): Put code choosing a face
11435 when the charset changes in #ifdef HAVE_FACES.
11436
427ec082 11437 * dispextern.h (FACE_FOR_CHARSET): Replacement for function
26901792
DL
11438 lookup_face_for_charset.
11439
11440 * xfaces.c (free_font_names): Renamed from free_split_font_names.
11441 (free_all_realized_faces): Renamed from remove_all_realized_faces.
11442
114431998-04-25 Gerd Moellmann <gerd@gnu.org>
11444
11445 * xfaces.c (best_matching_font): Return the name of the best
11446 matching font in an array of font_name structures.
11447 (choose_face_font): Use it.
11448 (choose_face_fontset_font): Use it.
11449 (find_best_weight_font): If final font found has same weight as
11450 the font we started with, return the original font because it is a
11451 better match for the resolution of the display.
11452 (find_best_slant_font): Likewise.
11453 (merge_face_vector_with_property): Check more invalid attribute
11454 values.
11455 (lface_suitable_for_charset_p): Replaced by a macro with the same
11456 name in upper-case.
11457
114581998-04-24 Gerd Moellmann <gerd@gnu.org>
11459
11460 * dispextern.h (struct face): Member
11461 fontset_chosen_for_realization_p removed.
11462
11463 * xfaces.c (cache_face): If face->fontset >= 0, add face to the
11464 end of the collision list, so that we find more specific faces
11465 first.
11466 (lookup_face_for_charset): Look up a new face if face->fontset >=
11467 0, and charset != CHARSET_COMPOSITION.
11468
11469 * xfaces.c (split_font_name): Return zero if point size of font
11470 couldn't be computed.
11471 (realize_default_face): Use ASCII font of a fontset to determine
11472 font-related attributes of the default face.
11473 (face_fontset): Return fontset id for face family.
11474 (font_list): Additional parameter font_pattern. If non-nil,
11475 return fonts matching that pattern.
11476
114771998-04-23 Gerd Moellmann <gerd@gnu.org>
11478
11479 * xfaces.c (choose_face_fontset): If new fontset cannot be
11480 constructed, or fontset name cannot be split, return the id of the
11481 standard fontset.
11482
11483 * xterm.c (XTframe_up_to_date): Check that frame is an X frame.
11484 When Emacs starts, it may be called for the initial frame which
11485 isn't an X frame.
11486
11487 * dispextern.h (struct face): New members foreground_defaulted_p,
11488 background_defaulted_p.
11489 (struct face): Members `mask' and `cache' removed.
11490
11491 * xfaces.c (load_color): Set them.
11492 (free_face_colors): Check them.
427ec082 11493 (xlfd_point_size): Return -1 if resolution or point size of
26901792
DL
11494 font unknown.
11495
11496 * xfaces.c (free_font): Removed.
11497 (load_face_font_or_fontset): Renamed from load_font.
11498 (load_face_font_or_fontset): Use message2 instead of signalling.
11499 (load_color): Likewise.
11500 (load_pixmap): Likewise.
11501
11502 * xterm.h (struct x_display_info): Add screen_dpi.
11503 * xterm.c (x_term_init): Initialize it.
11504 * xfaces.c (xlfd_point_size): Use it.
11505 (split_font_name): Compute numeric XLFD_RESY.
427ec082 11506 (cmp_font_names): Make fonts with an y-resolution more
26901792
DL
11507 similar to that of the frame appear first in the result.
11508
11509 * xfaces.c (cache_face): If fontset_chosen_for_realization_p
11510 is set for the face to cache, add it to the end of the collision
11511 list.
11512 (try_font_list): If fonts for given family and registry cannot
11513 be found, first try to keep the registry, and choose a different
11514 family.
11515 (choose_face_font): Allow nfonts == 0.
11516 (try_font_list): Give up if no font matches given registry.
11517
115181998-04-22 Gerd Moellmann <gerd@gnu.org>
11519
11520 * xterm.c (x_get_char_font_and_encoding): Get font_info from
11521 font info id of the face.
11522
11523 * xfaces.c (load_font): Set font_info_id.
11524 (realize_face): Ditto.
11525
11526 * dispextern.h (struct face): Change member font_info to
11527 font_info_id.
11528
11529 * fontset.h (FONT_INFO_ID): Build an ID from a font_info pointer.
11530 (FONT_INFO_FROM_ID): Get a font_info pointer from an ID.
11531
11532 * xdisp.c (extend_face_to_end_of_line): If IT's current charset
11533 isn't ASCII, get the ASCII face before adding a space.
11534 (append_space): Likewise.
11535 (insert_left_trunc_glyphs): Initialize truncate_it's charset
11536 to -1 so that it will compute the right face for the truncation
11537 glyphs.
11538
11539 * xfaces.c (realize_face): Set
11540 face->fontset_chosen_for_realization_p.
11541 (lookup_face_for_charset): If fontset wasn't specified originally
11542 and new charset != CHARSET_COMPOSITION, get a new face for that
11543 charset.
11544
11545 * dispextern.h (struct face): New member
11546 fontset_chosen_for_realization_p_specified_p. Set to 1 when
11547 realize_face has chosen a fontset to display composite characters
11548 for a Lisp face not specifying a fontset.
11549
11550 * xdisp.c (extend_face_to_end_of_line): Move tests for default
11551 face and line already filled here. Don't do anything if current
11552 face hasn't a relief or has a background equal to the frame
11553 background.
11554
11555 * xfaces.c (split_font_name): Additional parameter numeric_p.
11556 Don't compute numeric values if it is non-zero.
11557 (choose_face_fontset): Call split_font_name with numeric_p == 0.
427ec082 11558 (choose_face_fontset): Print a message if fontset contains a
26901792
DL
11559 font whose name cannot be split into fields.
11560
115611998-04-21 Gerd Moellmann <gerd@gnu.org>
11562
427ec082 11563 * xfaces.c (try_font_list): Try to load a list of fonts,
26901792
DL
11564 possibly using less restrictive patterns.
11565 (choose_face_font): Use it.
11566
11567 * xterm.c (x_get_char_font_and_encoding): For charset !=
11568 CHARSET_ASCII use font_info of face if face hasn't a fontset set.
11569
11570 * dispextern.h (struct face): New member font_info.
11571
11572 * xfaces.c (load_font): Use FS_LOAD_FONT to load fonts for faces
11573 specifying a fontset as well as those not having a fontset.
11574 (free_font): Make it empty.
11575 (realize_face): Use changed load_font.
11576
11577 * xterm.c (x_get_char_font_and_encoding): If face doesn't
11578 fit for charset, get the right one.
11579
11580 * xfaces.c (load_font): Take frame and name parameter, return
11581 font.
11582 (free_font): Likewise.
11583 (split_font_name): Compute numeric values for height, swidth etc.
11584 (cmp_font_names): Use them.
11585 (find_best_width_font): Ditto.
11586 (find_best_height_font): Ditto.
11587 (find_best_weight_font): Ditto.
11588 (find_best_slant_font): Ditto.
11589 (lface_hash): Add weight, slant, swidth and relief to hash value.
11590 (lface_equal_p): Make it faster.
11591 (lface_from_symbol): Use assq_no_quit.
11592 (Fnote_default_face_changed): Removed.
11593 (cmp_font_names): Use strcmp instead of xstricmp.
11594 (face_charset_registries): Removed.
11595
115961998-04-20 Gerd Moellmann <gerd@gnu.org>
11597
11598 * frame.h (CHECK_FRAME): Give this macro a statement form.
11599 (CHECK_LIVE_FRAME): Ditto.
11600
11601 * xfaces.c (find_best_width_font): Find the best matching font
11602 for a given width.
11603 (find_best_height_font): Likewise for height.
11604 (find_best_weight_font): Likewise for weight.
11605 (find_best_slant_font): Likewise for slant.
11606 (choose_face_font): Use them.
11607 (get_lface_attributes): Always return frame-local face attrs.
427ec082 11608 (Finternal_merge_in_global_face): Merge local face with
26901792
DL
11609 global face attributes.
11610
11611 * xfaces.c (check_lface_attrs, check_lface): Check consistency of
11612 Lisp face attributes.
11613
116141998-04-19 Gerd Moellmann <gerd@gnu.org>
11615
11616 * xfaces.c (Finternal_set_lisp_face_attribute): Add :bold
11617 and :italic for compatibility.
11618 (Finternal_set_lisp_face_attribute_from_resource): Handle
427ec082 11619 :bold and :italic. Handle boolean resource values for
26901792
DL
11620 :underline and :italic.
11621
11622 * xfns.c (display_x_get_resource): Make it externally visible.
11623
11624 * xfaces.c (lface_from_symbol): Take a frame as parameter.
11625 If that frame is non-null, return the frame-local face.
11626 (Finternal_make_lisp_face): Additional frame argument.
11627 (lface_attributes): Get face attributes from global and frame-local
11628 definitions.
11629 (Finternal_lisp_face_equal_p): Additional frame argument.
11630 (merge_lisp_face_vector_with_property): Ditto.
11631 (Frealize_basic_faces): Removed.
11632 (Finternal_get_lisp_face_attribute): Additional frame argument.
11633 (Finternal_lisp_face_p): Ditto.
11634 (load_color) [MSDOS]: Removed because it isn't clear how
11635 to do this for MS-DOS.
11636
11637 * xfaces.c (lface_from_symbol): Get global face definition
11638 from face-global-alist.
11639
11640 * xfaces.c (Finternal_set_lisp_face_attribute): Allow `t'
11641 as values for :underline and :inverse-video.
11642 (Finternal_set_lisp_face_attribute): Allow nil values.
11643
116441998-04-17 Gerd Moellmann <gerd@gnu.org>
11645
11646 * xfaces.c (Finternal_make_lisp_face): Return Lisp face vector.
11647
11648 * xfaces.c (syms_of_xfaces): Add Vall_faces.
11649 (Finternal_make_lisp_face): Add new face to Vall_faces.
11650
11651 * xdisp.c (echo_area_display): Remove code recomputing faces.
11652 (redisplay_internal): Ditto.
11653 (init_iterator): Do it here.
11654
11655 * xfaces.c (choose_face_font): Check that swidth doesn't change
11656 for subusequent attributes.
11657 (xlfd_point_size): Return int.
11658
11659 * xdisp.c (redisplay_internal, echo_area-display): If realized
11660 faces have been cleared, call recompute_basic_faces.
11661
11662 * xfaces.c (recompute_basic_faces): Free realized faces. Reset
11663 face_attributes_changed_p.
427ec082 11664 (remove_all_realized_faces): Remove all realized faces on
26901792
DL
11665 all frames.
11666 (Finternal_set_lisp_face_attribute): Call remove_all_realized_faces.
11667
11668 * xdisp.c (redisplay_internal): If face attributes have been
11669 changed since the last redisplay, recompute basic faces.
11670 (echo_area_display): Ditto.
11671
11672 * xfaces.c (clear_face_gcs): Renamed from clear_realized_face_cache.
11673
11674 * xfaces.c (min_char_bounds): If face cache not yet present,
11675 don't try to get font dimensions from faces.
11676
11677 * xterm.c (x_frame_mode_line_height): If face cache not present
11678 set, return default height.
11679
11680 * alloc.c (mark_face_cache): Check for null faces. Correct
11681 index bug.
11682
11683 * dispextern.h (struct face): Renamed from struct rface. Member
11684 underline renamed underline_p. Make it a bit-field.
11685
11686 * xfaces.c (init_frame_faces): Allocate face cache.
11687 (free_frame_faces): Free face cache.
11688 (recompute_basic_faces): Realize basic faces only if face cache is
11689 allocated, i.e. after init_frame_faces has been called.
11690
11691 * frame.c (make_frame): Initialze face cache with null.
11692
11693 * xfaces.c (same_size_fonts): Removed.
11694
427ec082 11695 * xterm.c (x_set_glyph_string_gc): Add post-condition
26901792
DL
11696 s->gc != 0.
11697 (x_set_mouse_face_gc): Ditto.
11698 (x_set_mode_line_face_gc): Ditto.
11699
427ec082
SS
11700 * xfaces.c (realize_default_face): Return int. Value is
11701 zero if frame params don't contain enough information to
26901792
DL
11702 realize the default face.
11703 (realize_basic_faces): Ditto.
11704 (init_frame_faces): Realize basic faces.
11705
11706 * xfns.c (x_set_font): First store real font name in frame
11707 parameters, then call recompute_basic_faces.
11708
11709 * xfaces.c (recompute_basic_faces): Call realize_basic_faces.
11710
117111998-04-16 Gerd Moellmann <gerd@gnu.org>
11712
11713 * xfaces.c (syms_of_xfaces): Correct calls to defsubr.
11714
11715 * xfns.c (Fx_face_fixed_p): Removed.
11716 (Fx_list_fonts): Moved to xfaces.c.
11717
11718 * xfaces.c (compute_face_at_buffer_pos): Renamed to
11719 face_at_buffer_position. Parameter charset removed; always
11720 compute face for CHARSET_ASCII.
11721 (face_at_string_position): Renamed from
11722 compute_face_at_string_pos. Parameter charset removed; always
11723 compute for CHARSET_ASCII.
427ec082 11724 (lookup_face_for_charset): Take frame parameter instead of
26901792
DL
11725 face_cache.
11726 (lookup_face): Ditto.
11727 (compute_char_face): Renamed from compute_glyph_face.
11728
11729 * xdisp.c (init_iterator): Initialize charset member.
11730 (reseat_iterator_to_string): Ditto.
11731 (get_charset_at_buffer_position): Determine charset at
11732 buffer position in current_buffer.
11733 (reseat_iterator): Call above function.
11734 (compute_face_at_iterator_position): Call
11735 compute_face_at_buffer_pos.
11736 (compute_face_at_iterator_string_position): Call
11737 compute_face_at_string_pos.
11738 (get_face_from_id): Removed.
11739 (get_face_from_cursor_pos): Call compute_face_at_buffer_pos.
11740 Call get_charset_at_buffer_position.
11741 (reseat_iterator): Determine face if charset at pos differs
11742 from iterator's charset.
11743 (reseat_iterator_to_glyph_pos): Removed.
11744
11745 * xfaces.c (compute_face_at_bufpos): Remove parameter charset.
11746 Determine charset from buffer position.
11747 (compute_string_char_face): Renamed to compute_face_at_string_pos.
11748 (compute_face_at_bufpos): Renamed to compute_face_at_buffer_pos.
11749
11750 * dispextern.h (struct display_iterator): Add member charset.
11751
117521998-04-15 Gerd Moellmann <gerd@gnu.org>
11753
11754 * xfaces.c (compute_char_face): Removed.
11755
11756 * xdisp.c (get_overlay_arrow_glyph_row): Use compute_glyph_face
11757 with new parameter list.
11758
11759 * xfaces.c (region_face): Removed.
11760 (allocate_face): Removed.
11761 (copy_face): Ditto.
11762 (face_eql): Removed.
11763 (intern_face): Removed.
11764 (clear_face_cache): Removed.
11765 (load_font): Ditto.
11766 (unload_font): Ditto.
11767 (load_color): Ditto.
11768 (unload_color): Ditto.
11769 (new_computed_face): Ditto.
11770 (intern_computed_face): Ditto.
11771 (ensure_face_ready): Ditto.
11772 (merge_faces): Ditto.
11773 (compute_base_face): Ditto.
11774 (merge_face_list): Ditto.
11775 (Fmake_face_internal): Removed.
11776 (Fset_face_attribute_internal): Ditto.
11777 (face_name_id_number): Removed.
11778 (Fframe_face_alist): Ditto.
11779 (Fset_frame_face_alist): Ditto.
11780 (Finternal_next_face_id): Ditto.
11781
11782 * xterm.h (struct x_output): Remove computed_faces, and
11783 param_faces. Remove macros accessing them.
11784
11785 * xfaces.c: Entirely new face implementation added.
11786
117871998-04-11 Gerd Moellmann <gerd@gnu.org>
11788
11789 * dispextern.h (struct glyph_pos): Member `bufpos' renamed
11790 `charpos'.
11791
117921998-04-10 Gerd Moellmann <gerd@gnu.org>
11793
11794 * xterm.c (x_scroll_bar_move): Clear only regions not covered by
11795 scroll bar window to reduce flickering. Clear entire height.
11796
11797 * xdisp.c (move_iterator_vertically_backward): Set iterator's
11798 current_x and hpos to zero after moving to previous line
11799 start.
11800
118011998-04-03 Gerd Moellmann <gerd@gnu.org>
11802
11803 * frame.h (FRAME_FACE_CACHE): Access to a frame's face cache.
11804
11805 * xfaces.c (xlfd_point_size): Compute relative point size of
11806 fonts from font and frame resolution.
11807 (sort_fonts): New function to sort fonts, temporarily setting
11808 font_frame to the frame in effect.
11809 (xlfd_point_size): Take additional frame parameter to be able
11810 to get at the display's resolution.
11811
11812 * xterm.c (x_setup_relief_colors): Use WHITE_PIX_DEFAULT and
11813 BLACK_PIX_DEFAULT.
11814 (x_setup_relief_color): Use FRAME_X_SCREEN instead of default
11815 screen of display.
11816
118171998-03-31 Gerd Moellmann <gerd@gnu.org>
11818
11819 * xfaces.c (choose_face_fontset): Instantiate fontsets.
11820
11821 * fontset.h: Add external declarations for Vfontset_alias_alist
11822 and Vglobal_fontset_alist.
11823
11824 * xfaces.c (merge_lisp_face_vector_with_property): Simplified.
11825 (realize_default_face): If frame parameters contain an artificial
11826 font name naming a fontset, set the family of the default face to
11827 the fontset name given by the registry.
11828
11829 * Makefile.in (alloc.o): Add dependency to dispextern.h.
11830
118311998-03-22 Gerd Moellmann <gerd@gnu.org>
11832
11833 * alloc.c (mark_object): Add function prototype. Add cast to
11834 Lisp_Object pointer in call to mark_object for symbol names
11835 because this otherwise gives a warning from gcc 2.8.1.
11836 (mark_face_cache): Mark Lisp objects in realized faces.
11837
118381998-03-19 Gerd Moellmann <gerd@gnu.org>
11839
11840 * frame.h (struct frame): Add member face_cache.
11841
11842 * alloc.c (mark_object): Mark face cache.
11843 (mark_face_cache): Mark Lisp faces in face cache of frame.
11844
11845 * frame.c (make_frame): Initialize face_cache.
11846 (Fdelete_frame): Free it.
11847
118481998-03-18 Gerd Moellmann <gerd@gnu.org>
11849
11850 * xfaces.c: Very first skeleton of functions for face realization,
11851 face merging, face cache etc.
11852
11853 * dispextern.h (struct rface): Realized faces. Will replace
11854 struct face when tested.
11855 (struct face_cache): Realized face caches.
11856
11857 * xdisp.c (init_iterator): Initialize area member of display
11858 iterator.
11859
118601998-03-17 Gerd Moellmann <gerd@gnu.org>
11861
11862 * xterm.c (x_append_glyph): Use it->area to store glyphs.
11863
11864 * dispextern.h (struct display_iterator): New member area.
11865
11866 * xterm.c (note_overwritten_text_cursor): Note when the text
11867 cursor of a window is overwritten.
11868
11869 * xdisp.c (set_cursor_from_row): If PT is not found in the
11870 row, display the cursor at the start of the row.
11871
11872 * dispnew.c (direct_output_forward_char): Call
11873 set_cursor_from_row.
11874
11875 * xdisp.c (setup_iterator_overlay_strings_from_glyph_pos): If
11876 position is not in an overlay string, set iterator's position and
11877 method explicitly so.
427ec082 11878 (set_cursor_from_row): Correct cursor position calculation.
26901792
DL
11879 Make it externally visible.
11880 (redisplay_window): Call set_cursor_from_row so that there is only
11881 one place where the cursor position is calculated from a current
11882 row.
11883
11884 * dispextern.h (struct display_iterator): New member
11885 overlay_strings_at_end_processed_p.
11886
11887 * xdisp.c (check_iterator): Perform sanity checks on
11888 display_iterators.
11889 (next_element_from_buffer): Check for overlay strings at ZV.
11890
118911998-03-16 Gerd Moellmann <gerd@gnu.org>
11892
11893 * buffer.c (init_buffer_once): Add left_margin_width and
11894 right_margin_width to buffer_local_flags.
11895
11896 * dispnew.c (margin_glyphs_to_reserve): Function computing
11897 number of glyphs to reserve for a marginal area.
11898 (adjust_glyph_matrix): Call it.
11899 (adjust_frame_glyphs_for_frame_redisplay): Return if frame
11900 is not alive.
11901
11902 * window.c (Fset_window_margins): Allow floats.
11903
11904 * buffer.c (syms_of_buffer): Add buffer-local variables
11905 left-margin-width and right-margin-width. Add defaults
11906 default-left-margin-width and default-right-margin-width.
11907
11908 * buffer.h (struct buffer): New members left_margin_width
11909 and right_margin_width.
11910
11911 * window.c (Fset_window_margins): Make window the last and
11912 optional argument.
11913
11914 * xterm.c (x_draw_glyphs): Compute x-positions for rows with
11915 flag no_marginal_areas_p differently.
11916 (x_clear_end_of_line): Ditto.
11917 (x_draw_glyph_string_relief): Compute width of relief differently
11918 for rows with flag no_marginal_areas_p.
11919
11920 * dispnew.c (update_window_line): Update marginal areas only
11921 for rows that don't have no_marginal_areas_p set.
11922
11923 * xdisp.c (display_mode_line): Set row's flag no_marginal_areas_p.
11924 (display_menu_bar): Ditto.
11925
11926 * dispextern.h (struct glyph_row): New member no_marginal_areas_p.
11927
11928 * dispnew.c (adjust_glyph_matrix): Compute glyph pointers for
11929 marginal areas in window-based redisplay.
11930
11931 * dispextern.h (struct glyph_matrix): New members
11932 left_margin_glyphs and right_margin_glyphs.
11933
119341998-03-15 Gerd Moellmann <gerd@gnu.org>
11935
11936 * minibuf.c (read_minibuf_unwind): Return Lisp_Object.
11937
11938 * charset.c (non_ascii_char_to_string): Use char type parameters
11939 because the function is used that way from outside. Use unsigned
11940 char internally.
11941
11942 * window.c (change_window_height): Return void.
11943 (make_dummy_parent): Return void.
11944 (init_window_once): Return void.
11945 (syms_of_window): Ditto.
11946 (keys_of_window): Ditto.
11947 (delete_window): Correct return with and without value.
11948
11949 * buffer.c (record_buffer): Return void.
11950
11951 * marker.c (unchain_marker): Return void.
11952
11953 * window.c (unshow_buffer): Return void.
11954 (replace_window): Ditto.
11955 (delete_window): Ditto.
11956
11957 * term.c (delete_glyphs_hook): Void return type.
11958 (ring_bell_hook): Ditto.
11959 (set_terminal_window_hook): Ditto.
11960
11961 * sysdep.c (init_sigio): Return void.
11962
11963 * xterm.c (x_set_window_size): Return void.
11964 (x_calc_absolute_position): Ditto.
11965 (x_set_offset): Ditto.
11966 (x_focus_on_frame): Ditto.
11967 (x_unfocus_frame): Ditto.
11968 (x_make_frame_visible): Ditto.
11969 (x_make_frame_invisible): Ditto.
11970 (x_iconify_frame): Ditto.
11971 (x_destroy_window): Ditto.
11972 (x_wm_set_window_state): Ditto.
11973 (x_wm_set_icon_pixmap): Ditto.
11974 (x_wm_set_icon_position): Ditto.
11975 (x_initialize): Ditto.
11976 (x_error_quitter): Ditto.
11977 (x_destroy_window): Use xfree instead of free.
11978
11979 * keyboard.c (clear_waiting_for_input): Return void.
11980
11981 * xterm.c (x_wm_set_size_hint): Return void.
11982 (x_raise_frame): Ditto.
11983 (refreshicon): Ditto.
11984 (x_error_catcher): Ditto.
11985 (x_clear_errors): Ditto.
11986
11987 * keyboard.c (record_asynch_buffer_change): Return void.
11988
11989