*** empty log message ***
[bpt/emacs.git] / src / ChangeLog
CommitLineData
831a6cb0
GM
12000-07-03 Gerd Moellmann <gerd@gnu.org>
2
3 * frame.c (next_frame, prev_frame): If MINIBUF is a window,
4 include those frames as candidates which have their focus
5 redirected to the minibuffer frame.
6
d9c4f922
SM
72000-07-03 Stefan Monnier <monnier@cs.yale.edu>
8
9 * fns.c (Fputhash): Return `value' rather than nil.
10
3780bc22
GM
112000-06-30 Gerd Moellmann <gerd@gnu.org>
12
97d176db
GM
13 * frame.c (next_frame): Don't check focus redirection in case
14 MINIBUF is a window. Doing so excludes frames using MINIBUF
3780bc22
GM
15 unless their focus is redirected, which contradicts the
16 specification of next-frame, and leads to infinite loops in
17 certain situations when cycling through windows with next-window.
18
dca9961d
KH
192000-06-30 Kenichi Handa <handa@etl.go.jp>
20
21 * coding.c (code_convert_region): Even if the length of text is
22 zero, try to convert it if coding->type is coding_type_ccl.
23 (decode_coding_string, encode_coding_string): Likewise.
24
d5483ab1
GM
252000-06-28 Gerd Moellmann <gerd@gnu.org>
26
af5c25e1 27 * xdisp.c (try_window_reusing_current_matrix): Don't try to reuse
97d176db 28 the display if windows_or_buffers_changed.
af5c25e1
GM
29
30 * dispnew.c (struct row_entry): New structure.
31 (row_entry_pool, row_entry_pool_size, row_entry_idx, row_table)
32 (row_table_size, old_lines, new_lines, old_lines_size)
33 (new_lines_size, run_pool, runs_size, runs): New variables.
34 (add_row_entry): New function.
35 (scrolling_window): Use data structures allocated with xmalloc and
97d176db 36 held in global variables, instead of allocating them with alloca and
af5c25e1
GM
37 holding them in local variables. Use a larger hash table whose
38 size depends on glyph matrix sizes. Don't use bzero to clear the
39 hash table; instead, clear used slots only.
40
41 * fns.c (next_almost_prime): Make it externally visible.
42
43 * lisp.h (next_almost_prime): Add prototype.
44
d5483ab1
GM
45 * s/isc4-0.h (sigunblock): Define.
46
47 * s/sco5.h (sigunblock): Define.
48
93e40f40
DL
492000-06-27 Dave Love <fx@gnu.org>
50
51 * s/osf1.h (C_SWITCH_SYSTEM, LIBS_SYSTEM): Revert last change
52 (moved to osf5-0.h).
53 [!NOT_C_CODE]: Protect string.h stuff.
54
55 * s/osf5-0.h (C_SWITCH_SYSTEM, WAIT_USE_INT, SYS_SIGLIST_DECLARED)
56 (sys_siglist, NSIG): Definitions moved here from osf1.h.
57
3c4b7685
GM
582000-06-27 Gerd Moellmann <gerd@gnu.org>
59
97d176db 60 * xdisp.c (resize_mini_window): Subtract the extra line spacing
3c4b7685
GM
61 below the last line from the needed window height.
62
32cad0aa
SM
632000-06-26 Stefan Monnier <monnier@cs.yale.edu>
64
65 * fns.c (Fplist_member): Renamed from Fwidget_plist_member.
66 (Fwidget_get): Use it.
67 (syms_of_fns): Defsubr it.
68
2c69ced2
GM
692000-06-26 Gerd Moellmann <gerd@gnu.org>
70
1d36487c
GM
71 * xterm.c (xim_initialize) [!USE_XIM]: Don't set up the
72 display info for XIM.
73 (xim_open_dpy): Likewise.
74 (xim_close_dpy): Don't free the display info's XIM.
75
76 * xfns.c (x_window) [!USE_XIM]: Don't call create_frame_ic.
77
78 * config.in (USE_XIM): New define.
79
3fc720e4
GM
80 * keymap.c (get_keyelt): For menu-items containing a `:filter
81 FILTER', apply FILTER to the menu-item's definition to get the
82 real definition to use.
83
84 * lisp.h (QCfilter): External declaration.
85
2c69ced2
GM
86 * xfns.c (Fimage_size): New function.
87 (syms_of_xfns): Defsubr it.
88
f978b2a2
AS
892000-06-26 Andreas Schwab <schwab@suse.de>
90
91 * coding.c (decode_coding_string): Re-fetch STRING_BYTES after
92 Fstring_as_unibyte.
93
94cc7892
DL
942000-06-25 Dave Love <fx@gnu.org>
95
96 * term.c [!HAVE_TERMCAP_H]: Declare tputs, tgetent, tgetflag,
97 tgetnum.
98
99 * Makefile.in (blockinput.h): Depend on atimer.h.
100 (atimer.h): Depend on systime.h.
101
102 * blockinput.h: Protect against multiple inclusion. Include
103 atimer.h.
104
105 * atimer.h: Protect against multiple inclusion. Include
106 systime.h.
107
108 * lisp.h (swap_in_global_binding): Declare.
109
b8c24556
KR
1102000-06-24 Ken Raeburn <raeburn@gnu.org>
111
112 * process.c (Fopen_network_stream): Turn off atimers for duration
113 of call to connect. (Patch from Gerd.)
114
8cf8560b
DL
1152000-06-23 Dave Love <fx@gnu.org>
116
511c7541
DL
117 * ralloc.c: Maybe include unistd.h
118
8cf8560b
DL
119 * emacs.c (setgrp): Undefine before defining.
120 (malloc_warning, set_time_zone_rule, index): Prototype.
121
122 * systime.h (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use
123 HAVE_STRUCT_TIMEZONE.
124
125 * s/osf1.h: Move string.h hack here from alpha.h and make it
126 conditional.
127 (C_SWITCH_SYSTEM): Use _OSF_SOURCE, not -BSD, which clashes with
128 _XOPEN_SOURCE.
129 (WAIT_USE_INT, SYS_SIGLIST_DECLARED, sys_siglist, NSIG): Define.
130 (SOCKLEN_TYPE): Don't define.
131
132 * m/alpha.h: Remove string.h hack.
133
134 * s/osf5-0.h: New file.
135
136 * filelock.c: Use feature tests for fcntl.h, string.h. Don't
137 include time.h, done by systime.h.
138 [__FreeBSD__]: Remove redundant includes.
139
3fc720e4 140 * callproc.c (setpgrp): Undefine before defining.
8cf8560b
DL
141 (delete_temp_file): Return Qnil to avoid warning.
142
143 * config.in (HAVE_TERM_H, HAVE_STRUCT_TIMEZONE): Add.
144
145 * xfaces.c: Include fontset.h dependent on HAVE_WINDOW_SYSTEM, not
146 HAVE_X_WINDOWS.
147
148 * fontset.h (free_face_fontset): Renamed from fs_free_face_fontset.
149
150 * composite.h (compose_text): Declare.
151
152 * xterm.c: Don't include sys/types.h unconditionally. Don't
153 protect its inclusion with !USG (following xmenu.c).
154
ea055732
GM
1552000-06-23 Gerd Moellmann <gerd@gnu.org>
156
157 * xfns.c (x_create_tip_frame): Initialize frame's colors like
158 in x_create_frame.
159
74b01b80
EZ
1602000-06-23 Eli Zaretskii <eliz@is.elta.co.il>
161
162 * coding.c (decode_eol_post_ccl): Special handling for undecided
163 and inconsistent EOL types.
164
64f3a166
GM
1652000-06-22 Gerd Moellmann <gerd@gnu.org>
166
16cf31f7
GM
167 * xrdb.c (x_load_resources): Add default resource for scroll bar's
168 trough color and main window's background color.
169
170 * xfns.c (Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events
171 differently.
172
173 * xterm.h (Xt_app_con): External declaration.
174
175 * widget.c (EmacsFrameRealize): Fix typo.
176
486a103d
GM
177 * widget.c (EmacsFrameRealize): Remove SubstructureRedirectMask.
178
64f3a166
GM
179 * xdisp.c (handle_stop): Initialize it->add_overlay_start to zero.
180 (handle_invisible_prop): Record the start of invisible text in
181 it->add_overlay_start.
182 (struct overlay_entry): Add member `overlay'.
183 (handle_overlay_change): Simplify.
184 (next_overlay_string): After having processed overlay strings at the
185 end of the buffer, record that fact in
186 it->overlay_strings_at_end_processed_p.
187 (compare_overlay_entries): If before- and after-strings come
188 from the same overlay, let before-strings come first.
189 (RECORD_OVERLAY_STRING): Record the overlay that strings come from.
190 (load_overlay_strings): Take it->add_overlay_start into account
191 when adding overlay strings.
192
193 * dispextern.h (struct it): Add member add_overlay_start.
194
bb746ea6
DL
1952000-06-22 Dave Love <fx@gnu.org>
196
197 * s/isc3-0.h (C_SWITCH_SYSTEM): Define _XOPEN_SOURCE=500.
198
199 * s/gnu-linux.h (C_SWITCH_SYSTEM): Don't define _XOPEN_SOURCE here.
200
a8f573f3
KH
2012000-06-22 Kenichi Handa <handa@etl.go.jp>
202
203 * ccl.c (ccl_driver) <CCL_End>: Decrement stack_idx only when it
204 is greater than 0.
205
9f2bbc92
DL
2062000-06-21 Dave Love <fx@gnu.org>
207
208 * Makefile.in (GETLOADAVG_OBJ): Removed -- LIBOBJS does it.
209
3ee5041c
SM
2102000-06-21 Stefan Monnier <monnier@cs.yale.edu>
211
212 * syntax.c (back_comment): Simplify string-parity counting (with
213 the added benefit of handling multiple string-styles as long as
214 they are not intertwined).
215 Jump to the slow code as soon as a comment starter is found in
216 a "string_lossage" position. Fixes the case: " /* " /* " */.
217
4c343001
DL
2182000-06-21 Dave Love <fx@gnu.org>
219
220 * Makefile.in: Use GETLOADAVG_LIBS.
221
222 * config.in: Add HAVE_FCNTL_H, _FILE_OFFSET_BITS,
223 _LARGEFILE_SOURCE, _LARGE_FILES, _XOPEN_SOURCE.
224
e6365855
SM
2252000-06-20 Stefan Monnier <monnier@cs.yale.edu>
226
227 * syntax.c (describe_syntax): Recognize the `n'estable bit.
228 (Fforward_comment, scan_lists):
229 Check the comstyle of single-char comment-starters.
230 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
231 we're just at the beginning of the comment (f.ex with (*) ... (*)).
d355bd8a
SM
232 Check the comstyle of single-char comment-starters.
233 Clarify control-flow around the Scomment case.
e6365855 234
5700d2cc
DL
2352000-06-20 Dave Love <fx@gnu.org>
236
d355bd8a
SM
237 * fns.c (make_hash_table, maybe_resize_hash_table):
238 Cast arg of next_almost_prime.
5700d2cc
DL
239
240 * tparam.c [emacs]: Include lisp.h.
241
242 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
243 and unistd.h.
244
4a27bdfb
GM
2452000-06-20 Gerd Moellmann <gerd@gnu.org>
246
a61d762c
GM
247 * keyboard.c (adjust_point_for_property): Check if display
248 property should be treated as intangible by looking at its
249 value.
250
251 * xdisp.c (single_display_prop_intangible_p)
252 (display_prop_intangible_p): New functions.
253
254 * dispextern.h (display_prop_intangible_p): Add prototype.
255
256 * xdisp.c (dump_glyph_row): Show type of glyph->object.
257
4a27bdfb
GM
258 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
259 argument to sigprocmask.
260
261 * s/sco5.h (sigblock): Redefined to pass a pointer as second
262 argument to sigprocmask.
263
264 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
265 sigprocmask_set, and pass a pointer to it to sigprocmask.
266
267 * sysdep.c (sigprocmask_set): New variable.
268
269 * fileio.c (make_temp_name): Don't use `%s' in string passed to
270 report_file_error.
271
427ec082
SS
2722000-06-20 Sam Steingold <sds@gnu.org>
273
274 * xrdb.c: Don't declare xmalloc, xrealloc.
275
8972fe79 2762000-06-20 Stefan Monnier <monnier@cs.yale.edu>
8972fe79
SM
277
278 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
279 (re_comp): Cast gettext return value to avoid complaints when
280 !HAVE_LIBINTL.
281
074b6efe
DL
2822000-06-20 Dave Love <fx@gnu.org>
283
f85c008a
DL
284 * m/stride.h, m/mips.h: Don't define HAVE_GETWD,
285 HAVE_GETTIMEOFDAY.
286
5700d2cc 287 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
f85c008a 288
d355bd8a 289 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
f85c008a
DL
290
291 * m/alpha.h: Don't declare xmalloc, xrealloc.
292
0af4f205
DL
293 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
294
295 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
296
297 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
298
299 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
300 HAVE_GETWD.
301
074b6efe
DL
302 * keyboard.h (poll_for_input_1): Declare.
303
304 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
305
306 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
307
308 * doprnt.c: Don't declare xmalloc, xrealloc.
309
310 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
311 (getenv, ctime, getwd): Removed.
312 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
313
314 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
315 x_set_tool_bar_lines.
316
317 * config.in: Add HAVE_GETWD. Move some definitions above
318 machine/system includes.
319
68a5e97b
KH
3202000-06-20 Kenichi Handa <handa@etl.go.jp>
321
95417e1e
KH
322 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
323
68a5e97b
KH
324 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
325 contain information about ENCODING.
326
327 * fontset.c (FONTSET_ASCII): Use the first element of char table
328 for an ASCII font, not defalt slot.
329 (fontset_ref_via_base): If FONTSET doesn't contain information for
330 C, try the default fontset.
331 (make_fontset): Don't copy the default fontset.
332 (fontset_font_pattern): Likewise.
333 (accumulate_font_info): If ELT is nil, use the corresponding
334 element in the default fontset.
335
3b4fa1b2
DL
3362000-06-19 Dave Love <fx@gnu.org>
337
943e731c
DL
338 * syntax.c (Fparse_partial_sexp): Doc fix.
339
340 * regex.h: Test PROTOTYPES as well as __STDC__.
341
3b4fa1b2
DL
342 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
343 errno, strerror. Put text after #endif in comment.
344
345 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for
346 pcc).
347
348 * xterm.c (x_frame_of_widget): Likewise.
349
cdf0357b
GM
3502000-06-19 Gerd Moellmann <gerd@gnu.org>
351
352 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
353 to Vfundamental_mode_abbrev_table.
354
355 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
356 bogus objects are marked. This slows down GC by ~80 percent, but
357 it might be worth trying when debugging GC-related problems.
358 This feature requires conservative stack marking to be enabled.
359
360 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
361 returns XLookupChars, reset `modifiers' to zero.
362
998e9f8c
DL
3632000-06-19 Dave Love <fx@gnu.org>
364
365 * mktime.c: Unprotoized.
366
d1504184
GM
3672000-06-19 Richard Stallman <rms@caffeine.ai.mit.edu>
368
369 * data.c (set_internal): If variable is frame-local,
370 store the new value immediately into the frame parameter alist.
371
140c4ac6
KR
3722000-06-19 Ken Raeburn <raeburn@gnu.org>
373
14358466
KR
374 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
375 in the custom handler pointer.
376
140c4ac6
KR
377 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
378 value, or checks for CHAR_META can fail when Lisp_Object is a
379 union type.
380 * keymap.c (get_keyelt): Likewise.
381
10d7bf84
KH
3822000-06-19 Kenichi Handa <handa@etl.go.jp>
383
384 * ccl.h (struct ccl_program): New member eol_type.
385 (struct ccl_spec): New member cr_carryover.
386
387 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
388 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
389
390 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
391 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
392 (decode_eol_post_ccl): New function.
393 (decode_coding): Don't detect EOL format here for CCL based coding
394 systems.
395 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
396 decode_eol_post_ccl after running the CCL program.
397 (code_convert_region): Don't detect EOL format here for CCL based
398 coding systems.
399 (decode_coding_string): Likewise.
400
52e386c2
KR
4012000-06-18 Ken Raeburn <raeburn@gnu.org>
402
403 * charset.c (update_charset_table): Use XINT on "iso_final_char"
404 when treating it as an integer.
405
406 * coding.h (encode_coding_string): Declare.
407
408 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
409 it as an integer.
410
411 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
412 "xkeymap" to avoid shadowing the "enum map_type" value that needs
413 to be passed to get_local_map.
414
415 * sound.c (Fplay_sound): Don't call make_number on
416 Frun_hook_with_args count argument.
417
418 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
419 for lisp objects in X event structure data field, when lisp
420 objects are represented with unions.
421 (x_scroll_bar_to_input_event): Ditto.
422
b357b9d4
KR
4232000-06-16 Ken Raeburn <raeburn@gnu.org>
424
425 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
37d034d3
KR
426 termination of string. Fix sense of test whether
427 Vline_number_display_limit is an integer.
b357b9d4 428
a871441d
GM
4292000-06-16 Gerd Moellmann <gerd@gnu.org>
430
a9021acd
GM
431 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
432 only if HAVE_X_WINDOWS.
433
6344985d
GM
434 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
435 of titles.
436
427ec082 437 * dispnew.c (update_frame_1): Handle case that cursor vpos is
a871441d
GM
438 out of bounds.
439
228b083e
EZ
4402000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
441
442 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
443 of its headers.
444
c25b53a2
KH
4452000-06-15 Kenichi Handa <handa@etl.go.jp>
446
447 * coding.c (decode_coding_emacs_mule): Always set src_base at the
448 start of the while loop.
449
a6981b11
GM
4502000-06-15 Gerd Moellmann <gerd@gnu.org>
451
e9924e52
GM
452 * atimer.c (alarm_signal_handler): Add forward declaration.
453
a6981b11
GM
454 * data.c (set_internal): Remove debug code.
455
25fa6deb
GM
4562000-06-14 Gerd Moellmann <gerd@gnu.org>
457
dce6b995
GM
458 * Makefile.in (bootstrap-temacs): Add `-I../src'.
459
9f817ea4
GM
460 * unexec.c (toplevel) [COFF]: Include coff.h.
461
462 * s/lynxos.h: New file.
463
464 * keymap.c (Fsingle_key_description): Enclose function key and
465 event symbol names in angle brackets.
466
8a4e3c0c
GM
467 * xdisp.c (setup_echo_area_for_printing): Call
468 message_log_maybe_newline if message_buf_print is not set.
469
470 * print.c (printchar, strout): Don't check message_buf_print
427ec082 471 before calling setup_echo_area_for_printing because that
8a4e3c0c
GM
472 function does something useful even when message_buf_print is
473 already set.
474
25fa6deb
GM
475 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines): New
476 variables.
477 (ensure_echo_area_buffers): Initialize echo buffer's
478 truncate lines setting to nil.
479 (with_echo_area_buffer): Don't set the echo buffer's truncate
480 lines setting here.
8a4e3c0c 481 (set_message_1): Set it here instead, based on the value
25fa6deb
GM
482 of message_truncate_lines.
483 (resize_mini_window): Handle case that lines are truncated.
484 (syms_of_xdisp): Initialize Qmessage_truncate_lines. DEFVAR_BOOL
485 message-truncate-lines.
486
487 * keyboard.c (read_char): Bind message-truncate-lines to t
488 while displaying a help-echo.
489
490 * lisp.h (Qmessage_truncate_lines): External declaration.
491
163dcff3
GM
4922000-06-13 Gerd Moellmann <gerd@gnu.org>
493
1681ead6
GM
494 * xdisp.c (Vline_number_display_limit): Renamed from
495 line_number_display_limit.
496 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
497 Extend documentation string. Initialize
498 Vline_number_display_limit to nil meaning no limit.
499 (decode_mode_spec): Use Vline_number_display_limit with its new
500 meaning.
501
163dcff3
GM
502 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
503
5042000-06-13 Richard Stallman <rms@caffeine.ai.mit.edu>
505
506 * frame.c (Fmodify_frame_parameters): Doc fix.
427ec082 507
163dcff3
GM
508 * xfns.c (x_set_frame_parameters): Comment fix.
509
510 * frame.c (store_frame_param): Call swap_in_global_binding if the
511 variable's current binding was chosen based on this frame.
512
513 * data.c (swap_in_global_binding): New function.
514
a704139d
EZ
5152000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
516
517 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
518 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
519
9b6610db
EZ
5202000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
521
522 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
523
c68833d2
JR
5242000-06-12 Jason Rumney <jasonr@gnu.org>
525
526 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
527
528 * w32.h (EMACS_W32_H): Renamed from _NT_H_
529
530 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
531
532 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
533
ed1056b3
GM
5342000-06-12 Gerd Moellmann <gerd@gnu.org>
535
536 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
537 (syms_of_xfaces): Defsubr Sdump_colors.
538 (x_free_colors): Don't treat b&w specially on default visual.
539 (x_free_dpy_colors): New function.
540 (free_face_colors): Don't check visual class; it's done
541 in x_free_colors.
542
543 * xterm.c (x_frame_of_widget): New function.
544 (x_alloc_nearest_color_for_widget): Use it.
545 (x_copy_dpy_color): New function.
546 (x_destroy_window): Free various colors.
547
5050a2ef
KH
5482000-06-12 Kenichi Handa <handa@etl.go.jp>
549
550 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
551
552 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
553
554 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
555
556 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
557
558 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
559
fb1b041d
DL
5602000-06-11 Dave Love <fx@gnu.org>
561
562 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
563
ff96b5f4
EZ
5642000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
565
566 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
567
db8eeecd
GM
5682000-06-11 Gerd Moellmann <gerd@gnu.org>
569
ed1056b3 570 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
db8eeecd
GM
571 to `XEvent *'.
572
49b71c5f
KH
5732000-06-10 Kenichi Handa <handa@etl.go.jp>
574
c479bd55
KH
575 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
576 (regex_compile): Fix the code for handling the case of single byte
577 char and multibyte char being mixed in a range within [...].
578
ff6a65c2
KH
579 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
580 and dst_multibyte members of coding.
581
49b71c5f
KH
582 * charset.c (update_charset_table): Update the table
583 bytes_by_char_head.
584 (init_charset_once): Initialize elements of bytes_by_char_head to
585 1 except for leading codes for private charases.
586
587 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
588 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte
589 sequence.
590
9e80b57d
KR
5912000-06-09 Ken Raeburn <raeburn@gnu.org>
592
593 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
594 access the data it doesn't point to.
595
f83fe4b4
GM
5962000-06-08 Gerd Moellmann <gerd@gnu.org>
597
598 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
db8eeecd 599 will be translated to a switch-frame event when reading the
f83fe4b4
GM
600 event queue. This is necessary because Emacs otherwise won't
601 perform a switch-frame to a new frame until some other event, for
602 example a keystroke event, forces it to do so. This has various
603 effects, one visible being that the cursor of a frame created with
604 C-x 5 2 or switched to with a window manager key binding like
605 A-TAB stays hollow because selected_window isn't on the newly
606 focused frame until the switch-frame is performed.
607
608 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
609 generating a switch-frame event if necessary.
610
611 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
612
613 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
614 it's an integer.
615
0890801b
KH
6162000-06-08 Kenichi Handa <handa@etl.go.jp>
617
618 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a
619 charset.
620
173cbca8
GM
6212000-06-07 Gerd Moellmann <gerd@gnu.org>
622
3091c2a6
GM
623 * window.c (displayed_window_lines): Take empty lines at
624 the bottom of a window into account.
427ec082 625
f38952fe
GM
626 * window.c (displayed_window_lines): New function.
627 (Fmove_to_window_line): Use displayed_window_lines to determine
628 the number of lines to move, instead of using the window's height.
629
630 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
631 to stop reading, even if the form read sets point to a different
632 value when evaluated.
633
427ec082 634 * xdisp.c (display_line): Fix code deciding in which line to
173cbca8
GM
635 put the cursor.
636
6ba6c818
KH
6372000-06-07 Kenichi Handa <handa@etl.go.jp>
638
639 * fileio.c (e_write): Free composition data if stored in
640 coding->cmp_data.
641
5f1aea9a
GM
6422000-06-06 Gerd Moellmann <gerd@gnu.org>
643
666852af
GM
644 * xdisp.c (display_line): Set row's and iterator's
645 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
646 Set cursor even if row ends in the middle of a character.
647 (dump_glyph_row): Print values of new flags.
648 (redisplay_window) <cursor movement in unchanged window>: When
649 point has been moved forward, and PT is at the end of the cursor
650 row, don't place the cursor in the next row if the cursor row ends
651 in the middle of a character or at ZV.
652
653 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
654 (struct glyph_row): Add starts_in_middle_of_char_p and
655 ends_in_middle_of_char_p.
656 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
657 ends_in_middle_of_char_p flag.
658 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
659
d13f3e2e
GM
660 * term.c (append_glyph): Revert change of 2000-06-06.
661
662 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
663 padding glyph not fitting on line as whole character not
664 fitting on line.
665
5f1aea9a
GM
666 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
667 this isn't true for images with `:ascent 100'.
668
10cda9b0
KH
6692000-06-06 Kenichi Handa <handa@etl.go.jp>
670
ed00559d
KH
671 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
672 as modified if it is originally unmodified.
673
10cda9b0
KH
674 * term.c (encode_terminal_code): Change the way to check if
675 terminal coding does any conversion.
676 (append_glyph): Set glyph->pixel_width correctly.
677
678 * xdisp.c (display_line): While checking line continuation, pay
679 attention to a padding glyph.
680
1969fae2
GM
6812000-06-05 Gerd Moellmann <gerd@gnu.org>
682
683 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
684
162ccef4
DL
6852000-06-05 Dave Love <fx@gnu.org>
686
f19f32dd
DL
687 * xdisp.c: Include fontset.h.
688
689 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
690
691 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
692
693 * dispnew.c: Conditionally include term.h.
694
695 * coding.h: Declare code_convert_string_norecord.
696
697 * frame.h (struct frame): Use volatile unconditionally.
698
699 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
700
701 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
702
703 * systime.h: Protect against multiple inclusion.
704 (timezone) [USG5_4]: Define as time_t.
705
706 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
707 (Foptimize_char_table, make_temp_name): Declare.
708
709 * Makefile.in (xdisp.o): Depend on fontset.h.
710
711 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
712
713 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
714 (Foptimize_char_table, make_temp_name): Declare.
715
427ec082 716 * s/irix4-0.h:
162ccef4
DL
717 * s/irix5-0.h:
718 * s/netbsd.h: Don't define autoconfiscated MATHERR.
719
2082fe81
DL
7202000-06-02 Dave Love <fx@gnu.org>
721
722 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
723
dcf671d2
GM
7242000-06-02 Gerd Moellmann <gerd@gnu.org>
725
726 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
1969fae2 727 result face, set flags in that face indicating that colors may not
dcf671d2
GM
728 be freed.
729
730 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
731 glyph, use the ASCII NUL character to determine the face.
732
d42122a3
DL
7332000-06-02 Dave Love <fx@gnu.org>
734
735 * sysdep.c: Conditionally include stdlib.h, unistd.h.
736 (VFORK_RETURN_TYPE): Remove.
427ec082 737
d42122a3
DL
738 * config.in: Add NO_MATHERR.
739
dd432f16
DL
7402000-06-01 Dave Love <fx@gnu.org>
741
90aa4ea8
DL
742 * cmds.c (internal_self_insert): Don't check
743 Vbefore_change_function, Vafter_change_function.
744
745 * insdel.c (signal_before_change, signal_after_change): Likewise.
746
747 * buffer.c (Vbefore_change_function, Vafter_change_function):
748 Variables and their initializations deleted.
749
2330c9d4
DL
750 * callint.c (Fcall_interactively): Doc fix.
751
dd432f16
DL
752 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
753
bf9e8804
DL
7542000-05-31 Dave Love <fx@gnu.org>
755
756 * textprop.c: Revert last change -- duplicated.
757
3694b4ab
GM
7582000-05-31 Gerd Moellmann <gerd@gnu.org>
759
760 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
761 in #if 0.
762
763 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
764
f14156cd
JR
7652000-05-31 Jason Rumney <jasonr@gnu.org>
766
8119aab8
JR
767 * search.c (Fre_search_forward, Fre_search_backward)
768 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
769
f14156cd
JR
770 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
771
4aab9be3
JR
7722000-05-30 Jason Rumney <jasonr@gnu.org>
773
774 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
775 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
776
777 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type
778 member.
779
780 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
781 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
782 expand a nil default_filename.
783
784 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
785 pointer to glyph_to_pixel_coords, not a frame.
786
787 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
788 coding.h to dependencies.
789
790 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
791
792 * w32console.c (glyph_to_pixel_coords): Change first parameter to
793 window pointer to be consistent with w32term.c and xterm.c.
794
795 * w32fns.c: Format and doc changes to bring closer to xfns.c.
796 (VIETNAMESE_CHARSET): Define if not defined in system headers.
797 (Qline_spacing, Qcenter): New variables.
798 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
799 (x_set_line_spacing): New function.
800 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT
801 macros.
802 (x_specified_cursor_type): New function.
803 (x_set_cursor_type): Use it.
804 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
805 and icon strings.
806 (validate_x_resource_name, x_get_resource_string): Measure lengths
807 of external strings in bytes.
808 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
809 GetTextExtentPoint32 with NULL title.
810 (Fx_create_frame): Initialize Qline_spacing.
811 (w32_load_system_font): Initialize font->double_byte_p.
812 (x_to_w32_charset): Use Vw32_charset_info_alist.
813 (Image, busy cursor, tooltip functions): Merged changes from
814 xfns.c. Not yet functional on Windows.
815
816 * w32gui.h (W32FontStruct): Add double_byte_p member.
817
818 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
819 (emacs_button_translation): Use it.
820 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
821 in `mask' to be set.
822
823 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
824 menu strings.
825
826 * w32term.c: Format and doc changes to bring closer to xterm.c.
827 (w32_char_font_type): New enum.
828 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
829 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
830 (w32_encode_char): New function.
831 (x_encode_char): Removed.
832 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
833 x_encode_char and w32_font_is_double_byte.
834 (x_produce_image_glyph): Use image_ascent.
835 (x_produce_glyphs): Use new version of w32_per_char_metric and
836 handle NULL return value. Allow extra line spacing.
837 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
838 (w32_get_glyph_overhangs): Remove unicode_p param. Use
839 w32_font_type member of glyph instead.
840 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
841 (fast_find_position): Make sure not to consider rows not visible
842 in the window.
843 (w32_read_socket) [WM_MENUSELECT]: Cannot call
844 w32_menu_display_help with input blocked, as it can abort.
845 (x_display_and_set_cursor): Choose cursor depending
846 on buffer-local value of cursor_type.
847 (x_draw_bar_cursor): Add parameter WIDTH.
848
849 * w32term.h (CP_DEFAULT): Define.
850 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
851
10fc3187
GM
8522000-05-30 Gerd Moellmann <gerd@gnu.org>
853
854 * search.c (Fre_search_forward, Fre_search_backward)
855 (Fposix_search_backward, Fposix_search_forward): Doc fix.
856
d0555360
KH
8572000-05-30 Kenichi Handa <handa@etl.go.jp>
858
859 * coding.c (detect_coding_iso2022): Fix code for checking
860 CODING_CATEGORY_MASK_ISO_8_2.
861
f1ad044f
SM
8622000-05-29 Stefan Monnier <monnier@cs.yale.edu>
863
864 * regex.c (PREFETCH_NOLIMIT): New function.
865 (re_match_2_internal): Use it and adjust the end_match_2 logic.
866
84ec3b4b
GM
8672000-05-29 Gerd Moellmann <gerd@gnu.org>
868
66254a13
GM
869 * syntax.c (find_defun_start): Move test for
870 open_paren_in_column_0_is_defun_start outside of the loop.
871
49e70dec
GM
872 * xdisp.c (redisplay_window): Really switch buffers when
873 displaying mode lines, and temporarily set selected_frame to the
874 frame of the window that's redisplayed.
875
84ec3b4b
GM
876 * xfaces.c (free_realized_faces): Block/unblock input.
877 (free_realized_multibyte_face): Ditto.
878
869a3a14
DL
8792000-05-29 Dave Love <fx@gnu.org>
880
881 * textprop.c (Qkeymap): New variable.
882 (syms_of_textprop): Intern it.
883
884 * keymap.c: Include intervals.h.
885 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
886
887 * Makefile.in (keymap.o): Depend on intervals.h.
888
889 * keyboard.c (menu_bar_items, tool_bar_items)
890 (Fexecute_extended_command): Deal with `keymap' property.
891 (read_key_sequence): Track map from `keymap' property as well as
892 `local_map'.
893
894 * intervals.c (get_local_map): Extra arg to allow looking for
895 `keymap' too.
896
897 * intervals.h (map_property): New enum.
898 (get_local_map): Extra arg using it.
899 (Qkeymap): Declare.
900
84ec3b4b 901 * lisp.h (get_local_map): Don't declare here.
869a3a14 902
89d0c844
KH
9032000-05-29 Kenichi Handa <handa@etl.go.jp>
904
905 * Makefile.in (callproc.o): Depend on composite.h.
906
907 * callproc.c: Include composite.h.
908 (Fcall_process): Handle composition correctly.
909
910 * coding.h (coding_allocate_composition_data): Extern it.
911 (coding_restore_composition): Likewise.
912
913 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
914 yet allocated, finish decoding with result
915 CODING_FINISH_INSUFFICIENT_CMP.
916 (coding_allocate_composition_data): Make it non-static.
917 (coding_restore_composition): Likewise.
918
797a084a
EZ
9192000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
920
921 * charset.c (syms_of_charset): Revert last change.
922
cf872af5
EZ
9232000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
924
925 * term.c (produce_glyphs): Treat characters from the eight-bit-*
926 charsets as unibyte, with 1-column screen width. Sent by Kenichi
927 Handa.
928
5b1ae051
EZ
9292000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
930
931 * charset.c (syms_of_charset): Set width of character sets
932 eight-bit-control and eight-bit-graphic to 1 column.
933
34ec9ebe
GM
9342000-05-26 Gerd Moellmann <gerd@gnu.org>
935
936 * config.in (HAVE_SPEED_T): New define.
937
938 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
939 `extern speed_t'.
940
dd854dc2
DL
9412000-05-26 Dave Love <fx@gnu.org>
942
943 * coding.c (shrink_decoding_region): Initialize eol_conversion.
944
945 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
946 (Fsubr_arity): New function.
947 (syms_of_data): Install them.
948
ba9f8f95
KH
9492000-05-26 Kenichi Handa <handa@etl.go.jp>
950
0f3e0672
KH
951 * charset.c (init_charset_once): Set the table bytes_by_char_head
952 correctly.
953
cebefb44
KH
954 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
955 the default fontset to what Emacs uses by default.
0f3e0672
KH
956 (check_registry_encoding): This function deleted.
957 (Fset_fontset_font): Remove the adhoc condition for the default
958 fontset. Allow cons in FONTNAME.
cebefb44 959
0f3e0672
KH
960 * fns.c (map_char_table): Ignore char-table entries for
961 charsets eight-bit-control and eight-bit-graphic.
ba9f8f95 962
7a18af49
KR
9632000-05-25 Ken Raeburn <raeburn@gnu.org>
964
965 * emacs.c (main): Initialize keyboard syms before initializing
966 window code, so face names are available.
967
d2af47df
SM
9682000-05-25 Stefan Monnier <monnier@cs.yale.edu>
969
970 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
971 of an anchor at the beginning of a shy-group.
972
fc6a6a4e
GM
9732000-05-25 Gerd Moellmann <gerd@gnu.org>
974
975 * xdisp.c (handle_invisible_prop): Don't try to skip over
976 invisible text if end of text is already reached.
977
005f0d35
DL
9782000-05-25 Dave Love <fx@gnu.org>
979
02513cdd
DL
980 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
981
005f0d35
DL
982 * coding.c (encode_eol): Add null statement after label.
983
89f6ca4e
EZ
9842000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
985
986 * w16select.c (Fw16_set_clipboard_data): Fix the change from
987 2000-05-20.
988
a4e1759e
KH
9892000-05-25 Kenichi Handa <handa@etl.go.jp>
990
991 * ccl.c (ccl_driver): Fix previous change.
992
eacfd7fe
KH
9932000-05-25 Kenichi Handa <handa@etl.go.jp>
994
46ab33a9
KH
995 * coding.c (run_pre_post_conversion_on_str): Set point to the
996 beginning of buffer before calling coding->post_read_conversion.
997 (decode_coding_string): Give correct args to
998 run_pre_post_conversion_on_str.
999 (encode_coding_string): Likewise.
1000
eacfd7fe
KH
1001 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
1002 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
1003 eight-bit-graphic correctly.
1004
f8569325
DL
10052000-05-24 Kenichi HANDA <handa@etl.go.jp>
1006
1007 * fileio.c (Finsert_file_contents): Even if a file is not found,
1008 execute codes for setting up coding system. Call
1009 after-insert-file-functions unconditionally.
1010
04545643
GM
10112000-05-24 Gerd Moellmann <gerd@gnu.org>
1012
1013 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
1014 BSD_PGRPS are not defined.
1015
747d90ea
KH
10162000-05-24 Kenichi Handa <handa@etl.go.jp>
1017
1018 * charset.c (update_charset_table): Accept nil in LONG_NAME and
1019 DESCRIPTION.
1020 (syms_of_charset): Avoid building same strings.
1021
716e3b88
GM
10222000-05-23 Gerd Moellmann <gerd@gnu.org>
1023
1024 * lread.c (Fload): Add a comment about the meaning of
1025 Vuser_init_file being t.
1026
1027 * puresize.h (BASE_PURESIZE): Increase to 675000.
1028
1029 * s/gnu-linux.h (setpgrp): Don't define it here because this
1030 prevents compilation on GNU/Linux systems with glib 2.2.
1031
1032 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
1033 as setpgid.
427ec082 1034
9aeb39fa
EZ
10352000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
1036
1037 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
1038 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
1039 version.
1040 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
1041
29ced61b
KH
10422000-05-23 Kenichi Handa <handa@etl.go.jp>
1043
0574a2ed
KH
1044 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE
1045 unconditionally.
1046
3d80f24d
KH
1047 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
1048
1049 * term.c (encode_terminal_code): Set coding->src_multibyte
1050 properly.
1051
29ced61b
KH
1052 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
1053
d7e00792
KH
10542000-05-22 Kenichi Handa <handa@etl.go.jp>
1055
c9d80d38
KH
1056 * keyboard.c (read_char): Allow character codes 128..255 to be
1057 handled by input-method-function.
1058
d7e00792
KH
1059 * insdel.c (adjust_markers_for_replace): Fix previous change.
1060 (adjust_after_replace): If PREV_TEXT is nil, call
1061 adjust_markers_for_insert, not adjust_markers_for_replace.
1062
087121cc 10632000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
427ec082 1064
087121cc
GM
1065 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
1066 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
1067 [HAVE_GRANDPT]: Define.
1068 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
1069
1070 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
1071 like SYSV_PTYS.
1072
1073 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
1074
1075 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
1076
c9671f81
KH
10772000-05-20 Kenichi Handa <handa@etl.go.jp>
1078
1079 The following changes are to handle 8-bit characters in a
1080 multibyte buffer/string without facing with byte combining
1081 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
1082 eight-bit-graphic (for 0xA0..0xFF) are introduced.
1083
1084 * Makefile.in (fns.o): Depend on charset.h.
1085
1086 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
1087 convert it to unibyte.
1088 (make_string): Use parse_str_as_multibyte, not chars_in_text.
1089
1090 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
1091 apparent char boundary.
1092 (Fset_buffer_multibyte): Convert 8-bit characters in the range
1093 0x80..0x9F to/from multibyte form.
1094
1095 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
1096 to unibyte.
1097
1098 * callproc.c (Fcall_process): Always encode an argument string if
1099 it is multibyte. Setup src_multibyte and dst_multibyte members of
1100 process_coding properly.
ce75fd23 1101
c9671f81
KH
1102 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
1103 SPLIT_NON_ASCII_CHAR.
1104
1105 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
1106 as is.
1107 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
1108
1109 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New
1110 variables.
1111 (SPLIT_CHARACTER_SEQ): This macro deleted.
1112 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is
1113 valid.
1114 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
1115 and eight-bit-graphic.
1116 (char_to_string): Likewise. Signal an error for too large
1117 character code.
1118 (char_printable_p): Return 0 for 8-bit characters.
1119 (update_charset_table): Update iso_charset_table only when a final
1120 character is non-negative.
1121 (find_charset_in_text): Renamed from find_charset_in_str.
1122 Arguments and return value changed. Callers changed.
1123 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
1124 be -1 if CHARSET is used only internally.
1125 (Fmake_char_internal): Handle new charsets; eight-bit-control and
1126 eight-bit-graphic.
1127 (Fcharset_after): Simplified.
1128 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
1129 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
1130 (multibyte_chars_in_text): Simplified by assuming there's no
1131 invalid multibyte sequence.
1132 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
1133 str_as_unibyte): New functions.
1134 (Fstring): Simpified by assuming that byte combining never
1135 happens.
1136 (init_charset_once): Initialization for
1137 LEADING_CODE_8_BIT_CONTROL.
1138 (syms_of_charset): Intern and staticpro Qeight_bit_control and
1139 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
1140 eight-bit-control and eight-bit-graphic.
1141
1142 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL,
1143 CHARSET_8_BIT_GRAPHIC): New macros.
1144 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
1145 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
1146 (CHARSET_REVERSE_CHARSET): Likewise.
1147 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
1148 eight-bit-graphic.
1149 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
1150 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
1151 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
1152 encounter an invalid multibyte sequence.
1153 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
1154 sequence is always valid.
1155 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
1156 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New
1157 macros.
1158 (CHAR_STRING): For 8-bit characters, call char_to_string.
1159 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
1160 multibyte sequence is always valid.
1161 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
1162 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
1163 str_as_unibyte): Extern them.
1164 (BCOPY_SHORT): Fix a bug.
1165 (CHAR_LEN): This macro deleted. Callers changed to use
1166 CHAR_BYTES.
1167 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
1168 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
1169 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
1170
bd4bde7f 1171 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
c9671f81
KH
1172 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
1173 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
1174 EMIT_BYTES): New macros.
1175 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
1176 DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
1177 macros deleted.
1178 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
1179 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
1180 check the validity of multibyte sequence.
1181 (decode_coding_emacs_mule): New function.
1182 (encode_coding_emacs_mule): New macro.
1183 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
1184 the source.
1185 (DECODE_ISO_CHARACTER): Just return a character code.
1186 (DECODE_COMPOSITION_START): Set coding->result instead of result.
1187 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
1188 EMIT_CHAR to produced decoded characters. Exit the loop only by
1189 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
1190 block here.
1191 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
1192 only position codes for an invalid character.
1193 (encode_designation_at_bol): Return new destination pointer. 5th
1194 arg DSTP is changed to DST.
1195 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
1196 from the source by ONE_MORE_CHAR. Don't handle the case of last
1197 block here.
1198 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
1199 macros deleted.
1200 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
1201 detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
1202 TWO_MORE_BYTES to fetch a byte from the source.
1203 (encode_eol): Pay attention to coding->src_multibyte.
1204 (detect_coding, detect_eol): Preserve members src_multibyte and
1205 dst_multibyte.
1206 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
1207 (encoding_buffer_size): Set magnification to 3 for all coding
1208 systems that require encoding.
1209 (ccl_coding_driver): For decoding, be sure that the result is
1210 valid multibyte sequence.
1211 (decode_coding): Initialize coding->errors and coding->result.
1212 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
1213 and raw-text, always call decode_eol. Handle the case of last
1214 block here. If not coding->dst_multibyte, convert the resulting
1215 sequence to unibyte.
1216 (encode_coding): Initialize coding->errors and coding->result.
1217 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
1218 and raw-text, always call encode_eol. Handle the case of last
1219 block here.
1220 (shrink_decoding_region, shrink_encoding_region): Detect cases
1221 that we can't skip data more rigidly.
1222 (code_convert_region): Setup src_multibyte and dst_multibyte
1223 members of coding. For decoding, if the buffer is multibyte,
1224 convert the source sequence to unibyte in advance. For encoding,
1225 if the buffer is multibyte, convert the resulting sequence to
1226 multibyte afterward.
1227 (run_pre_post_conversion_on_str): New function.
1228 (code_convert_string): Deleted and divided into the following two.
1229 (decode_coding_string, encode_coding_string): New functions.
1230 (code_convert_string1, code_convert_string_norecord): Call one of
1231 above.
1232 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
1233 MAKE_NON_ASCII_CHAR.
1234 (Fset_terminal_coding_system_internal,
1235 Fset_safe_terminal_coding_system_internal): Setup src_multibyte
1236 and dst_multibyte members.
1237 (init_coding_once): Initialize iso_code_class with new enum
1238 ISO_control_0 and ISO_control_1.
1239
1240 * coding.h (enum iso_code_class_type): Member ISO_control_code is
1241 devided into ISO_control_0 and ISO_control_1.
1242 (struct coding_system): New members src_multibyte, dst_multibyte,
1243 errors, and result. Delete member fake_multibyte.
1244 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
1245 nonzero.
1246 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
1247 nonzero.
1248
1249 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
1250 (Faset): Likewise.
1251
1252 * editfns.c (Fformat): Be sure to convert 8-bit characters to
1253 multibyte form.
1254 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
1255 combining occurs.
1256 (Ftranspose_region): Delete codes for handling byte combining.
1257
1258 * fileio.c (Finsert_file_contents): Setup src_multibyte and
1259 dst_multibyte members of coding. On handling REPLACE on unibyte
1260 buffer, convert the result of decode_coding to unibyte. On
1261 inserting into a mutibyte buffer, always call code_convert_region.
bd4bde7f 1262 (e_write): Setup coding->src_multibyte according to the
c9671f81
KH
1263 multibyteness of the source (buffer or string).
1264
1265 * fns.c (concat): Handle 8-bit characters correctly.
1266 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
1267 unibyte in the result.
1268 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
1269 valid multibyte form in the result.
1270 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
1271 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
1272 return -1, signal an error.
1273 (base64_encode_1): New arg MULTIBYTE. Get each character by
1274 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
1275 character is found, return -1.
1276 (Fbase64_decode_region): Delete codes for handling byte-combining.
1277 Treat each decoded byte as a unibyte character.
1278 (Fbase64_decode_string): Return unibyte string.
1279 (Fcompare_strings, concat, string_byte_to_char): Use
1280 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
1281 FETCH_STRING_CHAR_ADVANCE.
1282 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
1283 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
1284
1285 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
1286 SPLIT_NON_ASCII_CHAR.
1287 (fontset_ref_via_base, fontset_set): Likewise
1288
1289 * insdel.c (adjust_markers_for_record_delete): Deleted.
1290 (adjust_markers_for_insert): Argument changed. Caller changed.
1291 (adjust_markers_for_replace): Likewise.
1292 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error,
1293 CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
1294 (copy_text): Delete unused local varialbe c_save. For converting
1295 to multibyte, be sure to make all 8-bit characters in valid
1296 multibyte form.
1297 (count_size_as_multibyte): Handle 8-bit characters correctly.
1298 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
1299 adjust_after_replace, replace_range, del_range_2)
1300 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
1301 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
1302 adjust_after_replace, replace_range, del_range_2) Delete codes for
1303 handling byte combining.
1304 (adjust_before_replace): Deleted.
427ec082 1305
c9671f81
KH
1306 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
1307 SPLIT_NON_ASCII_CHAR.
1308 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
1309 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE
1310 unconditionally.
1311 (Fkey_description): Likewise.
1312
1313 * lread.c (read1): On reading multibyte string, be sure to make
1314 all 8-bit chararacters in valid multibyte form.
1315 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
1316
1317 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
1318 unconditionally.
1319
1320 * process.c (Fstart_process): GCPRO current_dir before calling
1321 Ffind_operation_coding_system. Encode arguments here.
1322 (create_process): Don't encode arguments here. Setup
1323 src_multibyte and dst_multibyte members of struct coding.
1324 (read_process_output): Setup src_multibyte and dst_multibyte
1325 members of struct coding. If the output is to multibyte buffer,
1326 always decode the output of the process. Adjust the
1327 representation of 8-bit characters to the multibyteness of the
1328 output.
1329 (send_process): Setup coding->src_multibyte according to the
1330 multibyteness of the source.
1331
1332 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE
1333 unconditionally.
1334 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
1335 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
1336
1337 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of
1338 CHAR_LEN.
1339
1340 * w16select.c (Fw16_set_clipboard_data): Setup members
1341 src_multibyte and dst_multibyte of coding. Adjusted for the
1342 change for find_charset_in_str.
1343 (Fw16_get_clipboard_data): Likewise.
1344
1345 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
1346 dst_multibyte of coding.
1347 (x_to_w32_font): Likewise.
1348
1349 * w32select.c (Fw32_set_clipboard_data): Setup members
1350 src_multibyte and dst_multibyte of coding. Adjusted for the
1351 change for find_charset_in_str.
1352 (Fw32_get_clipboard_data): Likewise.
1353
1354 * xdisp.c (get_next_display_element): Handle 8-bit characters
1355 correctly.
1356 (next_element_from_display_vector): Use CHAR_BYTES instead of
1357 CHAR_LEN.
1358 (disp_char_vector): Use SPLIT_CHAR instead of
1359 SPLIT_NON_ASCII_CHAR.
1360
1361 * xselect.c (selection_data_to_lisp_data): Setup members
1362 src_multibyte and dst_multibyte of coding. Adjusted for the
1363 change for find_charset_in_str.
1364 (lisp_data_to_selection_data): Likewise.
1365
5f64c9e0
GM
13662000-05-19 Gerd Moellmann <gerd@gnu.org>
1367
2b63d473
GM
1368 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed
1369 buffer.
1370
5f64c9e0
GM
1371 * dispextern.h (Vimage_types): Add extern declaration.
1372
1373 * xdisp.c (Vimage_types): Moved here from xfns.c.
1374 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
1375
1376 * xfns.c (Vimages_types): Moved to xdisp.c.
1377 (syms_of_xfns): Move `image-types' to xdisp.c.
1378
1379 * w32fns.c (Vimage_types): Removed.
1380 (syms_of_w32fns): Remove `image-types'.
1381
813086ea
KH
13822000-05-18 Kenichi Handa <handa@etl.go.jp>
1383
1384 * fns.c (map_char_table): Pay attention to character number of
1385 charset. Check the validity of charset at the first level. For
1386 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
1387 the default value.
1388
1389 * fontset.c: Include "buffer.h".
1390 (fs_load_font): If the face has fontset, record the face ID in
1391 that fontset.
1392 (Finternal_char_font): New function.
1393 (accumulate_font_info): New function.
1394 (Ffontset_info): Rewritten for the new fontset implementation.
1395 (syms_of_fontset): Register Vdefault_fontset in the first element
1396 of Vfontset_table. Include Vdefault_fontset in
1397 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
1398 function.
1399
bdaebbf0
DL
14002000-05-16 Dave Love <fx@gnu.org>
1401
1402 * m/iris5d.h: Deleted -- unused.
1403
cb613bb8
GM
14042000-05-16 Gerd Moellmann <gerd@gnu.org>
1405
b15f3b77
GM
1406 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
1407 `invalid' instead of `illegal'.
1408
1409 * indent.c (Fmove_to_column): When ending within a tab, insert
1410 spaces first so that markers at the end of the tab get adjusted.
1411
835c1b36
GM
1412 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
1413 buffer list that wasn't selected in that frame.
1414
cb613bb8
GM
1415 * filelock.c (get_boot_time): To obtain an 8 char file name, which
1416 is needed on mescaline, use a 2 char prefix, and call
1417 make_temp_name with second arg non-zero.
1418
1419 * fileio.c (make_temp_name): New function, extracted from
1420 Fmake_temp_name.
1421 (Fmake_temp_name): Use it.
1422
f685bea9
EZ
14232000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
1424
1425 * window.c (coordinates_in_window): Subtract 1 when computing
1426 right_x.
1427
a1b8d58b
GM
14282000-05-15 Gerd Moellmann <gerd@gnu.org>
1429
1430 * Makefile.in (lisp): Add env.elc.
1431
1432 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
1433
a265079f
GM
14342000-05-12 Gerd Moellmann <gerd@gnu.org>
1435
1436 * search.c (Freplace_match): Handle case of `\N' in the
1437 replacement when there's no group N.
1438
da4496b6
GM
14392000-05-11 Gerd Moellmann <gerd@gnu.org>
1440
0ace421a
GM
1441 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
1442 of the message to message_dolog.
1443
1172eb8d
GM
1444 * keyboard.c (read_char): Don't clear current message for help
1445 events; let the code handling help events handle this. Change
1446 code detecting help events that should be ignored.
1447
da4496b6
GM
1448 * xdisp.c (handle_single_display_prop): Don't try to set PT if
1449 we're interating over a string.
1450
0623e40f
DL
14512000-05-09 Dave Love <fx@gnu.org>
1452
1453 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
1454 that offset before writing. Move gcpro region past call of
1455 Ffile_regular_p.
1456
bae2503b
DL
14572000-05-04 Dave Love <fx@gnu.org>
1458
1459 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
1460
ec82fb2f
GM
14612000-05-04 Gerd Moellmann <gerd@gnu.org>
1462
1463 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
1464 of inserted characters when BUF equals the current buffer, and PT
1465 is in front of or equal to FROM.
1466
cbf18892
GM
14672000-05-03 Gerd Moellmann <gerd@gnu.org>
1468
4ff40dd0
GM
1469 * xdisp.c (handle_single_display_prop): If display property value
1470 is invalid, or something not supported on the frame, restore
1471 iterator's position to what it was initially. Make sure to return
1472 0 for invalid and unsupported property values.
1473
cbf18892
GM
1474 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
1475 that x_per_char_metric returns null.
1476
1b0672c3
GM
14772000-05-02 Gerd Moellmann <gerd@gnu.org>
1478
576da55d
GM
1479 * xterm.h (struct face): Add forward declaration.
1480 (struct image): Ditto.
1481 (image_ascent): Add prototype.
1482
1483 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
1484 (x_draw_image_relief, x_draw_image_foreground_1): Call function
1485 image_ascent instead of using IMAGE_ASCENT.
1486
1487 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
1488 (IMAGE_ASCENT): Removed.
1489
1490 * xfns.c (Qcenter): New variable.
1491 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
1492 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
1493 (image_ascent): New function.
1494 (lookup_image): Recognize `:ascent center'.
1495 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
1496 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
1497 (xbm_load): Don't set image's ascent here.
1498 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
1499 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
1500 check ascent values here.
1501 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
1502 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
1503 (syms_of_xfns): Initialize Qcenter.
1504
1b0672c3
GM
1505 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
1506 to the limits, increase the limits.
1507
0d7811ed
KH
15082000-05-01 Kenichi Handa <handa@etl.go.jp>
1509
1510 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
1511 Check Vfont_encoding_alist against the full name of the opened
1512 font.
1513
a943a5ca
GM
15142000-04-28 Gerd Moellmann <gerd@gnu.org>
1515
1516 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
1517 taller than the window.
1518
5dba1e29
KH
15192000-04-28 Kenichi Handa <handa@etl.go.jp>
1520
1521 * xfaces.c (realize_x_face): Fix the argument of the second
1522 xassert. BASE_FACE may not be a face for ASCII.
1523
353964e3
GM
15242000-04-27 Gerd Moellmann <gerd@gnu.org>
1525
c76e04a8
GM
1526 * print.c (print_object): Treat print-length < 0 as nil.
1527
1528 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
1529
1530 * s/freebsd.h (TERMCAP_OBJ): Removed.
1531 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
1532
1533 * lread.c (read1): Don't treat period followed by certain
1534 characters as symbol start.
1535
1536 * xfns.c (slurp_file): New function.
1537 (xbm_image_p): Handle case of in-memory XBM files.
1538 (xbm_scan): Rewritten to work on memory buffers instead of files.
1539 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
1540 Work on memory buffers instead of files. If DATA is null test
1541 if buffer looks like an in-memory XBM file.
1542 (xbm_load_image): Renamed from xbm_load_image_file. Work on
1543 memory buffers instead of files.
1544 (xbm_file_p): New function.
1545 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
1546
353964e3
GM
1547 * lread.c (end_of_file_error): New function.
1548 (read1): Call it instead of signaling `end-of-file' directly.
1549
427ec082 1550 * print.c (print_error_message): Print data of `end-of-file'
353964e3
GM
1551 with Fprinc instead of Fprin1.
1552
24d744ac
KR
15532000-04-26 Ken Raeburn <raeburn@gnu.org>
1554
1555 * window.c (freeze_window_start): Check that minibuffer scroll
1556 window isn't nil before extracting the window structure pointer
1557 from it.
1558
1559 * undo.c (record_delete): If we hit the end of the undo list, stop
1560 picking elements apart.
1561
7464346d
GM
15622000-04-26 Gerd Moellmann <gerd@gnu.org>
1563
1564 * xdisp.c (display_line): If lines are continued, restore
1565 iterator's ascent/descent information to the values before the
1566 first glyph not fitting on the line.
1567
612839b6
GM
15682000-04-25 Gerd Moellmann <gerd@gnu.org>
1569
1570 * xdisp.c (try_window_id) <all changes above window start>: Adjust
1571 positions in glyph matrix. Don't compute new window end
1572 positions.
1573
1574 * dispnew.c (increment_matrix_positions): Renamed from
1575 increment_glyph_matrix_buffer_positions.
1576 (increment_row_positions): Renamed from
1577 increment_glyph_row_buffer_positions.
1578
1579 * dispextern.h: Change names of renamed functions from dispnew.c
1580 in prototypes.
1581
cc181e95
GM
15822000-04-24 Gerd Moellmann <gerd@gnu.org>
1583
abfcc168
GM
1584 * fileio.c (Fdo_auto_save): Create directories for auto-save
1585 list file if necessary.
1586
cc181e95
GM
1587 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
1588 from buffer or frame.
1589 (automatic_hscrolling_p): New variable.
1590 (hscroll_windows): Scroll windows horizontally only if automatic
1591 hscrolling is allowed.
1592 (syms_of_xdisp): New variable `automatic-hscrolling'.
1593
1594 * frame.h (struct frame): Add member extra_line_spacing.
1595
1596 * xfns.c (x_set_line_spacing): New function.
1597 (Fx_create_frame): Set line spacing from resources.
1598 (Qline_spacing): New variable.
1599 (syms_of_xfns): Initialize Qline_spacing.
427ec082 1600
cc181e95
GM
1601 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
1602
1603 * buffer.c (init_buffer_once): Handle extra_line_spacing.
1604 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
abfcc168 1605 (reset_buffer): Don't initialize extra2 and extra3. Initialize
cc181e95
GM
1606 extra_line_spacing from default value.
1607 (init_buffer_once): Initialize default value of extra_line_spacing.
1608
1609 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
1610 and extra3.
1611
1612 * xterm.c (x_produce_glyphs): Remove reference to struct it's
1613 prompt_width. Add extra line spacing.
1614
1615 * term.c (produce_glyphs): Remove reference to struct it's
1616 prompt_width.
1617
1618 * dispextern.h (struct it): Remove member prompt_width, add
1619 extra_line_spacing.
1620
58827478
GM
16212000-04-22 Gerd Moellmann <gerd@gnu.org>
1622
1623 * dispnew.c (update_frame_line): When writing a whole line, make
1624 sure cursor is in the right row afterwards, otherwise a use of
1625 capability `ch' in cmgoto might leave the cursor in the row below.
1626
25a87f42
GM
16272000-04-21 Gerd Moellmann <gerd@gnu.org>
1628
1629 * lisp.h (struct Lisp_Buffer_Cons): Remove.
1630
1631 * keyboard.c (timer_check): Fix typo in comment.
1632
54edf5c2
KH
16332000-04-21 Kenichi Handa <handa@etl.go.jp>
1634
1635 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
1636 name change: ch -> character.
1637
3a64eef5
GM
16382000-04-20 Gerd Moellmann <gerd@gnu.org>
1639
1640 * keyboard.c (echo_message_buffer): New variable.
1641 (echo_now): Set echo_message_buffer to the echo area buffer used
1642 to display the echo.
1643 (cancel_echoing): Reset echo_message_buffer to nil.
1644 (read_char): Code rewritten that handles canceling an echo or
1645 echoing a dash, respectively.
1646
1647 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
1648 directory doesn't exist.
1649
6142fdcb
DL
16502000-04-19 Dave Love <fx@gnu.org>
1651
1652 * fns.c (syms_of_fns): Defsubr mapc.
a9cacab7
DL
1653 (concat): Don't allow numeric args.
1654 (Fconcat): Doc change.
6142fdcb 1655
ac6b5352
SM
16562000-04-19 Stefan Monnier <monnier@cs.yale.edu>
1657
1658 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
1659 instead define end_match(1|2) more carefully.
1660 Use GET_CHAR_BEFORE_2 for `begline'.
1661
cb9215e4
GM
16622000-04-19 Gerd Moellmann <gerd@gnu.org>
1663
5e3dac3f
GM
1664 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
1665 on 64-bit systems where NULL is defined as `0'.
1666
1667 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
1668 the `variable argument list' to make it work on Alpha.
1669
cb9215e4
GM
1670 * m/alpha.h (_LP64) [!_LP64]: Define.
1671 (ORDINARY_LINK): Define for NetBSD.
1672
1673 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
427ec082 1674
f532dca0
DL
16752000-04-19 Dave Love <fx@gnu.org>
1676
c750667e
DL
1677 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
1678 change.
1679
1680 * Makefile.in (LIBS): Don't use.
1681 (GETLOADAVG_OBJ): Define again.
1682 (otherobj): Add GETLOADAVG_OBJ.
1683
f532dca0
DL
1684 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
1685
1c7e22fd
GM
16862000-04-18 Gerd Moellmann <gerd@gnu.org>
1687
f6d3257b
GM
1688 * lread.c (read_filtered_event): Cancel and start busy cursor.
1689
427ec082 1690 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
1c7e22fd
GM
1691 that the per-character metrics may be null.
1692
e10f64e7
GM
16932000-04-17 Gerd Moellmann <gerd@gnu.org>
1694
0daee095
GM
1695 * buffer.c (clone_per_buffer_values): New function.
1696 (Fmake_indirect_buffer): Add optional argument CLONE. Call
1697 clone_per_buffer_values if CLONE is not nil.
1698
e10f64e7
GM
1699 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
1700
38687d43
DL
17012000-04-16 Dave Love <fx@gnu.org>
1702
1703 * Makefile.in: Remove obsolete localcpp stuff.
1704 (GETLOADAVG_OBJ): Don't define.
1705 (obj): Move LIBOBJS...
1706 (otherobj): ... to here.
1707 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
1708 whitespace-only lines after the continuation (Irix).
1709
c21c7262
GM
17102000-04-14 Gerd Moellmann <gerd@gnu.org>
1711
1712 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
1713
1714 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
1715
314767c0
DL
17162000-04-14 Dave Love <fx@gnu.org>
1717
1718 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
1719 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
1720 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
1721 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
1722 NLIST_STRUCT.
1723
1724 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
1725 autoconfiscated HAVE_GETLOADAVG.
1726
1727 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
1728 BROKEN_MKTIME.
1729
a2522dca
GM
17302000-04-14 Gerd Moellmann <gerd@gnu.org>
1731
1732 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
1733 (fill_in_lock_file_name): Avoid existing files that aren't
1734 links.
1735
33744b5d
DL
17362000-04-14 Dave Love <fx@gnu.org>
1737
c21c7262 1738 * Makefile.in (LIBS, LIBOBJS): New variable.
33744b5d
DL
1739 (INTERVAL_SRC): Convert to make variable.
1740 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
1741 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
1742 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
1743 add LIBOBJS.
1744 (SOME_MACHINE_OBJECTS): Remove interval stuff.
1745 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
1746 (shortlisp): Add facemenu, float-sup, frame.
1747 (SOME_MACHINE_LISP): Remove them from here.
1748 (LIBES): Change unused LDLIBS to autoconf LIBS.
1749
1750 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
1751
9d3d5916
KH
17522000-04-14 Kenichi Handa <handa@etl.go.jp>
1753
1754 * composite.c (update_compositions): If FROM and TO are not in a
1755 valid range, do nothing.
1756
198e3c7a
GM
17572000-04-13 Gerd Moellmann <gerd@gnu.org>
1758
1759 * tparam.c (tparam1): Abort when encountering an unknown
1760 `%'-specifier.
1761
1762 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as
1763 terminfo.o.
1764
1765 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
1766 as TERMCAP_OBJ.
1767
055a28c9
EZ
17682000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
1769
1770 * fileio.c (a_write): Remove redundant semi-colons.
1771 (e_write): Return -1 if failed to write all the data.
1772 This fixes the changes made at 1999-12-15.
1773
f5c75033
DL
17742000-04-12 Dave Love <fx@gnu.org>
1775
1776 * fns.c (mapcar1): Test for null vals to support mapc.
1777 (Fmapc): New function.
1778
0c3cfc51
EZ
17792000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
1780
1781 * msdos.c (NUM_MOUSE_BUTTONS): Define.
1782 (IT_frame_up_to_date): Support the buffer local value of
1783 cursor-type, if defined.
1784
33465a31
DL
17852000-04-10 Dave Love <fx@gnu.org>
1786
1787 * editfns.c (preceding-char, following-char): Doc fix.
1788
6ed56568
KR
17892000-04-10 Ken Raeburn <raeburn@gnu.org>
1790
1791 * Makefile.in (temacs): Revert 2000-03-12 change.
1792
7cf80d4e
JR
17932000-04-10 Jason Rumney <jasonr@gnu.org>
1794
1795 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
1796
34f3f342
GM
17972000-04-10 Gerd Moellmann <gerd@gnu.org>
1798
1a1b1895
GM
1799 * xdisp.c (setup_echo_area_for_printing): Choose an echo
1800 area buffer, if it's not set up yet.
1801
34f3f342
GM
1802 * indent.c (compute_motion): Set immediate_quit.
1803
be0dbdab
GM
18042000-04-09 Gerd Moellmann <gerd@gnu.org>
1805
c45be9ac
GM
1806 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New
1807 variable.
1808 (realize_tty_face): Suppress boldness if colors are the inverse of
1809 the default colors, and tty_suppress_bold_inverse_default_colors_p
1810 is set.
1811 (Ftty_suppress_bold_inverse_default_colors): New function.
1812 (syms_of_xfaces): Defsubr it.
1813
be0dbdab
GM
1814 * buffer.c (Frestore_buffer_modified_p): New function.
1815 (syms_of_buffer): Defsubr it.
1816
e8413c3b
KR
18172000-04-08 Ken Raeburn <raeburn@gnu.org>
1818
87f67317
KR
1819 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
1820 charset id (int) argument, not a charset (Lisp_Object).
1821
e8413c3b
KR
1822 * coding.h (code_convert_string): Declare.
1823 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
1824 object, as the fourth argument to code_convert_string.
1825
1826 * fontset.c (make_fontset_for_ascii_face): Use XINT on return
1827 value.
1828 (Fset_fontset_font): Use EQ to compare lisp objects.
1829
7c752c80
KR
18302000-04-05 Ken Raeburn <raeburn@gnu.org>
1831
c0333abc
KR
1832 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
1833 a pointer that looks like a lisp object.
1834 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
1835 zero, instead see whether it's an integer object, since they can't
1836 have intervals.
1837 (GET_INTERVAL_OBJECT): Simply assign to the destination.
1838
7c752c80
KR
1839 * dispnew.c (allocate_matrices_for_frame_redisplay,
1840 direct_output_forward_char): Use X(U)INT and make_number as needed
1841 to convert between (unsigned) int values and lisp integers.
1842 * keyboard.c (read_key_sequence): Likewise.
1843 * lread.c (substitute_object_recurse): Likewise.
1844 * fns.c (concat, hash_lookup, hash_remove): Likewise.
1845 * minibuf.c (do_completion, Fminibuffer_complete_word,
1846 Fminibuffer_completion_help): Likewise.
1847 * term.c (produce_special_glyphs): Likewise.
1848
1849 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
1850 * print.c (print_preprocess, print_object): Likewise.
1851
1852 * search.c (compile_pattern): Use NILP when checking for nil.
1853
74e49b38
KR
1854 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
1855 __OPTIMIZE__]: Provide a GNU C macro version that handles
1856 lisp-object unions.
1857 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
1858 field, to better cope with ENABLE_CHECKING and calls that modify a
1859 Lisp_Object using its old value.
1860
685e5ed2
GM
18612000-04-04 Gerd Moellmann <gerd@gnu.org>
1862
c407c570
GM
1863 * window.c (compare_window_configurations): Signal an error
1864 if parameters C1 or C2 aren't window configurations.
1865
685e5ed2
GM
1866 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
1867 AFTER_POTENTIAL_GC calls around calls to functions that can
1868 signal an error and thus invoke the debugger.
1869
587a49ab
GM
18702000-04-03 Gerd Moellmann <gerd@gnu.org>
1871
62f20204
GM
1872 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
1873 an error if decoding fails.
1874
587a49ab
GM
1875 * keyboard.c (lispy_mouse_names): Variable removed.
1876 (Vlispy_mouse_stem): New variable.
1877 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
1878 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
1879 for any mouse button number. Increase size of mouse_syms and
1880 button_down_location as needed. Call modify_event_symbol with
1881 different arguments.
1882 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
1883 Call modify_event_symbol with different arguments.
1884 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
1885 for any button number. Call modify_event_symbol with different
1886 arguments.
1887 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
1888 Accept a string for NAME_ALIST_OR_STEM.
1889
1890 * lisp.h (larger_vector): Add prototype.
1891
1892 * fns.c (larger_vector): Make externally visible.
1893
1894 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
1895
2d1675e4
SM
18962000-04-02 Stefan Monnier <monnier@cs.yale.edu>
1897
1898 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
1899 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
1900 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
1901 we are between str1 and str2.
1902 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
1903 (PATFETCH): Use `TRANSLATE'.
1904 (PATFETCH_RAW): Fetch multibyte char if applicable.
1905 (PATUNFETCH): Remove.
1906 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
1907 When writing a char, write it directly into the pattern buffer rather
1908 than going needlessly through a temp char-array.
1909 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
1910 multibyte magic and remove the useless `#ifdef emacs'.
1911 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
1912 buffer.
1913
1914 * regex.h (struct re_pattern_buffer): Make field `multibyte'
1915 conditional on `emacs'.
1916
1917 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
1918
cc2d8c6b
KR
19192000-04-01 Ken Raeburn <raeburn@gnu.org>
1920
1921 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
1922 non-union-type versions of XMARK and friends here, because XMARK
1923 and friends won't work on an integer field if NO_UNION_TYPE is not
1924 defined.
1925 (make_number): Define as a function if it's not defined as a
1926 macro.
1927
09654086
KR
1928 * composite.c (run_composite_function): Use NILP when checking for
1929 nil.
1930 (syms_of_composite): Delete local var NARGS, pass an int as first
1931 argument to Fmake_hash_table.
1932
2387b382
KR
1933 * editfns.c (text_property_stickiness): Use NILP to test
1934 Lisp_Object boolean value.
1935 (Fmessage_or_box): Don't use NILP to test int variable.
c01fbf95
KR
1936 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
1937 problems reading from and changing the same lisp value in an
1938 XSETSTRING call.
1939
27660e89
GM
19402000-04-01 Gerd Moellmann <gerd@gnu.org>
1941
1942 * term.c (TN_no_color_video): New variable.
1943 (term_init): Intitialize TN_no_color_video.
1944 (enum no_color_bit): New enumeration.
1945 (MAY_USE_WITH_COLORS_P): New macro.
1946 (turn_on_face): Use it to determine if attributes may be used
1947 combined with colors.
1948
3578db3c
KR
19492000-04-01 Ken Raeburn <raeburn@gnu.org>
1950
1951 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
1952 with int lvalues via casts; instead, just yield lisp object
1953 lvalues.
1954 (enlarge_window): Variable sizep now points to Lisp_Object. Use
1955 proper accessor macros.
1956 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
1957 (grow_mini_window): Fix typo getting int value of root->height.
1958
6fc556fd
KR
1959 * xdisp.c (compute_string_pos): Fix order of arguments to
1960 string_pos_nchars_ahead.
1961 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
1962 count arg to variable-arg routines like Frun_hook_with_args and
1963 Fformat.
587a49ab
GM
1964 (back_to_previous_visible_line_start)
1965 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
6fc556fd
KR
1966 fixed-arg routines like Fget_char_property and Fmake_string.
1967 (reconsider_clip_changes): Use XINT when comparing integer lisp
1968 objects, or passing them as int arguments.
587a49ab
GM
1969 (mark_window_display_accurate, insert_left_trunc_glyphs)
1970 (append_space, extend_face_to_end_of_line): Use make_number when
6fc556fd
KR
1971 storing or passing integer values as lisp objects.
1972 (set_cursor_from_row, highlight_trailing_whitespace): Use
1973 INTEGERP, not implicit test against zero, for glyph object.
1974 (try_window_id): Don't use make_number when we want an int value.
1975
1976 * xfaces.c (xlfd_symbolic_value): Make last argument a
1977 Lisp_Object, to be consistent with callers.
1978 (Fbitmap_spec_p): Use XINT to get numeric value of height.
1979 (lface_hash): Apply XFASTINT to lisp values before folding in.
1980
1981 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
1982 fill in window width and height. Pass an int, not a lisp object,
1983 as first arg to Finsert.
1984
6e7b2457
GM
19852000-04-01 Gerd Moellmann <gerd@gnu.org>
1986
610d841e
GM
1987 * xfaces.c (realize_basic_faces): Block input while realizing
1988 the faces.
1989
6e7b2457
GM
1990 * keyboard.c (lispy_mouse_names): Add additional mouse names.
1991
1992 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
1993
aa110c0c
GM
19942000-03-31 Gerd Moellmann <gerd@gnu.org>
1995
1996 * xterm.c (x_produce_glyphs): When displaying unibyte text
610d841e 1997 or ASCII, handle case that per-char metric is null.
aa110c0c 1998
8801a864
KR
19992000-03-30 Ken Raeburn <raeburn@gnu.org>
2000
c6129d7e
KR
2001 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
2002
8801a864
KR
2003 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW,
2004 XSUBR, XBUFFER): Verify correct object type before returning
2005 pointer, using eassert.
2006 * frame.h (XFRAME): Likewise.
2007
2008 * buffer.c (Frename_buffer, Fset_buffer_multibyte,
2009 swap_out_buffer_local_variables, Fmove_overlay): Don't apply
2010 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong
2011 type.
2012 * data.c (set_internal): Likewise.
2013 * dispextern.h (WINDOW_WANTS_MODELINE_P,
2014 WINDOW_WANTS_HEADER_LINE_P): Likewise.
2015 * fileio.c (auto_save_1): Likewise.
2016 * insdel.c (check_markers): Likewise.
2017 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
2018 * undo.c (record_insert): Likewise.
2019 * vmsproc.c (child_sig): Likewise.
2020 * window.c (unshow_buffer, window_loop): Likewise.
2021 * xterm.c (x_erase_phys_cursor): Likewise.
2022
8e7af858
GM
20232000-03-30 Gerd Moellmann <gerd@gnu.org>
2024
2025 * xfns.c (free_image_cache): Free the cache structure itself
2026 last, after all its members have been freed.
2027
2028 * lisp.h (xstrdup): Add prototype.
2029
2030 * alloc.c (xstrdup): Moved here from xfaces.c.
2031 (allocating_for_lisp): Variable removed.
2032 (lisp_malloc): Block input around the calls to malloc and
2033 mem_insert.
2034
2035 * xfaces.c (realize_tty_face): Use find_symbol_value instead
2036 of Fsymbol_value.
2037 (xstrdup): Moved to alloc.c.
2038
e0b8c689
KR
20392000-03-29 Ken Raeburn <raeburn@gnu.org>
2040
b96f9fb7
KR
2041 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
2042
2043 * emacs.c (main): Fix sense of no-loadup test.
2044
e0b8c689
KR
2045 * config.in (ENABLE_CHECKING): Undef.
2046
2047 * lisp.h (struct interval): Replace "parent" field with a union of
2048 interval pointer and Lisp_Object; add new bitfield to use as
2049 discriminant. Change other flag fields to bitfields.
2050 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
2051 is defined and the supplied test fails, print a message and
2052 abort.
2053 (eassert): New macro. Use CHECK to provide an assert-like
2054 facility.
2055
2056 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
2057 pointers; abort if the value looks like a lisp object.
2058 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT,
2059 SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
2060 Modify for new interval parent definition.
2061
2062 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE,
2063 UNMARK_BALANCE_INTERVALS): Update references that need an
2064 addressable lisp object in the interval structure.
2065 (die): New function.
2066 (suppress_checking): New variable.
2067
2068 * intervals.c (interval_start_pos): Just return 0 if there's no
2069 parent object.
2070
f83c5440
GM
20712000-03-29 Gerd Moellmann <gerd@gnu.org>
2072
2073 * lread.c (read1): Accept `.' (period) as symbol start like in CL
2074 and earlier Emacs versions.
2075
2076 * keyboard.c (Ftop_level): Cancel busy-cursor.
2077
2078 * eval.c (call_debugger): Cancel busy-cursor.
2079
fdce64ff
KH
20802000-03-29 Kenichi Handa <handa@etl.go.jp>
2081
2082 * search.c (Freplace_match): Adjust multibyteness of the current
2083 buffer and NEWTEXT. Free allocated memory before signaling an
2084 error.
2085
f6a3f532
SM
20862000-03-28 Stefan Monnier <monnier@cs.yale.edu>
2087
2088 * regex.c (analyse_first): New function obtained by ripping out most
2089 of re_compile_fastmap and generalizing it a little bit so that it
2090 can also just return whether a given (sub)pattern can match the empty
2091 string or not.
2092 (regex_compile): Use `analyse_first' to decide whether the loop-check
2093 needs to be done or not for *, +, *? and +? (the loop check is costly
2094 for non-greedy repetition).
2095 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
2096
e9b309ac
DL
20972000-03-28 Dave Love <fx@gnu.org>
2098
bb15bd9a
DL
2099 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k,
2100 alpha.
2101
e9b309ac
DL
2102 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
2103
ed0767d8
SM
21042000-03-27 Stefan Monnier <monnier@cs.yale.edu>
2105
2106 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
2107 an expression.
2108 (enum re_opcode_t): Update description of succeed_n.
2109 (PATFETCH): Always define.
2110 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
2111 operators, char classes, shy-groups and intervals).
2112 Optimize special cases of intervals so as to only use succeed_n and
2113 jump_n when really needed.
2114 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
2115 that we don't have to handle the special cases any more.
2116 Simplify on_failure_jump handling as well.
2117
e11e7e46
JR
21182000-03-28 Jason Rumney <jasonr@gnu.org>
2119
2120 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
2121
88faab89
GM
21222000-03-27 Gerd Moellmann <gerd@gnu.org>
2123
182ff242
GM
2124 * s/freebsd.h (GC_SETJMP_WORKS): Define.
2125
2126 * s/msdos.h (GC_SETJMP_WORKS): Define.
427ec082 2127
182ff242
GM
2128 * alloc.c (mark_maybe_object): New function.
2129 (mark_memory): Use it.
2130 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
2131 (setjmp_tested_p, longjmp_done): New variables.
2132 (test_setjmp): New function.
2133 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
2134 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
2135
c1005d06
GM
2136 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
2137 to DEC_TEXT_POS and INC_TEXT_POS.
2138
2139 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
2140 with parameter MULTIBYTE_P.
2141
427ec082 2142 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter
c1005d06
GM
2143 MULTIBYTE_P.
2144
7439e5b9 2145 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
182ff242
GM
2146 buffers because it looks for multibyte character byte sequences
2147 which don't exist in unibyte text.
7439e5b9 2148
d9c545da
GM
2149 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
2150
11fd416e 2151 * xfaces.c (register_color, unregister_color, unregister_colors)
d9c545da
GM
2152 [DEBUG_X_COLORS]: New functions.
2153 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
2154
2155 * xfns.c (x_set_cursor_color): Get color reference counts right.
2156
2157 * xterm.c (x_copy_color): New function.
2158 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
2159
2160 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
2161 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
2162 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
2163 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
2164 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
2165 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
2166 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
2167 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
2168 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
2169 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
2170
11fd416e
GM
2171 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
2172 names for handling per-buffer variables.
d9c545da
GM
2173
2174 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
2175 instead of MAX_BUFFER_LOCAL_VARS.
2176 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
2177
2178 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
2179
88faab89
GM
2180 * xfns.c (x_specified_cursor_type): New function.
2181 (x_set_cursor_type): Use it.
2182
2183 * buffer.h (struct buffer): Add cursor_type.
2184
d80f42b7
SM
21852000-03-26 Stefan Monnier <monnier@cs.yale.edu>
2186
2187 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
427ec082 2188 (print_partial_compiled_pattern, re_compile_fastmap): Handle new
88faab89 2189 opcode.
d80f42b7
SM
2190 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
2191 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
2192 executing it as well as when popping it off the stack to find infinite
2193 loops in non-greedy repetition operators.
2194
89e80928
GM
21952000-03-26 Gerd Moellmann <gerd@gnu.org>
2196
3d4ff2dd
GM
2197 * doc.c (Qfunction_documentation): New variable.
2198 (syms_of_doc): Initialize Qfunction_documentation.
2199 (Fdocumentation): If FUNCTION is a symbol with non-nil
2200 `function-documentation' property, return a documentation derived
2201 from that.
2202
bd96bd79
GM
2203 * buffer.c (syms_of_buffer): Add default-cursor-type.
2204 (init_buffer_once): Don't let cursor_type have a local value
2205 in every buffer.
2206
19d1bc27
GM
2207 * xterm.c (x_display_and_set_cursor): Choose cursor depending
2208 on buffer-local value of cursor_type.
2209 (x_draw_bar_cursor): Add parameter WIDTH.
2210
2211 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
2212 (init_buffer_once): Set default cursor_type value to t.
2213 Mark cursor_type as local everywhere.
2214 (syms_of_buffer): New per-buffer variable cursor-type.
2215
89e80928
GM
2216 * buffer.h (struct buffer): Remove member local_var_flags,
2217 add local_flags.
2218 (MAX_BUFFER_LOCAL_VARS): New macro.
2219 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
2220 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
2221 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
2222 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
2223
2224 * print.c (print_object): Use new macros for per-buffer
2225 variables.
2226
2227 * category.c (Fset_category_table): Use new macros for per-buffer
2228 variables.
2229
2230 * buffer.c (buffer_permanent_local_flags): Make a char array.
2231 (max_buffer_local_idx): New variable.
2232 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
2233 for new handling of per-buffer variables.
2234 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
2235 (init_buffer_once): Initialize per-buffer vars differently.
2236 Set max_buffer_local_idx.
2237
2238 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
2239 variables.
2240
2241 * lread.c (defvar_per_buffer): Use new macros for per-buffer
2242 variables.
2243
2244 * data.c (do_symval_forwarding, store_symval_forwarding)
2245 (find_symbol_value, set_internal, default_value, Fset_default)
2246 (Fkill_local_variable, Flocal_variable_p): Use new macros for
2247 per-buffer variables.
2248
2249 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
2250
9a0dd3dc
GM
22512000-03-24 Gerd Moellmann <gerd@gnu.org>
2252
b68c375f
GM
2253 * xterm.c (x_term_init): Unblock input around call1 of
2254 Qvendor_specific_keysyms.
2255
9a0dd3dc
GM
2256 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
2257 (find_defun_start): Consider an open parenthesis in column 0
2258 a defun start only if open_paren_in_column_0_is_defun_start is set.
2259 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
2260
7973e637
SM
22612000-03-24 Stefan Monnier <monnier@cs.yale.edu>
2262
2263 * eval.c (Fautoload): Add entry in load-history (if after dump).
2264 * lread.c (load-history): Update docstring.
2265
39210e90
GM
22662000-03-24 Gerd Moellmann <gerd@gnu.org>
2267
2268 * indent.c (Fvertical_motion): Always use the current buffer.
2269 Temporarily change the window's buffer, if necessary.
2270
72db3ab5
GM
22712000-03-23 Gerd Moellmann <gerd@gnu.org>
2272
2273 * xterm.c (fast_find_position): Make sure not to consider rows
2274 not visible in the window.
2275
990b2375
SM
22762000-03-22 Stefan Monnier <monnier@cs.yale.edu>
2277
2278 * regex.c (enum syntaxcode): Provide default for non-Emacs.
2279 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
2280
ff4df011
JR
22812000-03-22 Jason Rumney <jasonr@gnu.org>
2282
2283 * w32menu.c (single_submenu): Set help string to NULL if none.
2284 (w32_menu_show): Set help string correctly.
2285 (add-menu-item): Set help string in MIIM_DATA for menu item.
2286 Load SetMenuItemInfoA explicitly.
2287 (w32_menu_display_help): New function.
427ec082 2288
ff4df011
JR
2289 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
2290 (QCdata): Moved to xdisp.c.
2291
2292 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
2293 (Vw32_charset_to_codepage_alist): Removed.
2294 (Vw32_charset_info_alist): New variable.
2295 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312,
2296 chinesebig5, oem, easteurope, turkish, baltic, russian, arabic,
2297 greek, hebrew, thai, johab, mac, unicode]): New symbols.
2298 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
2299 with TODO comment.
2300 (w32_codepage_for_font): Use Vw32_charset_info_alist.
2301 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
2302 Define Vw32_charset_info_alist and w32_charset symbols.
2303
23042000-03-22 Jason Rumney <jasonr@gnu.org>
2305
2306 * makefile.nt (w32bdf.obj): Update dependencies.
2307
2308 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
2309
2310 * w32fns.c: Include fontset.h after dispextern.h.
2311 (Fx_create_frame): Do not create fontset.
2312 (w32_load_system_font): Doc fix.
2313 (Fx_close_connection): Free full_name if it is not shared.
2314
2315 * w32term.c: Include fontset.h after dispextern.h.
2316 (x_get_glyph_face_and_encoding): New parameter two_byte_p. Callers
2317 updated.
2318 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
2319 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
2320 (w32_font_is_double_byte): New function, needs body.
2321 (x_append_glyph): Set glyph->glyph_not_available_p.
2322 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
2323 it->charset. If it->multibyte_p is zero and it->c is a multibyte
2324 character, convert it to a unibyte character.
2325 (struct glyph_string): Delete member `charset'.
2326 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
2327 calculating it is found.
2328 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
2329 the case that per char metric is not available correctly.
2330 (x_fill_glyph_string): Handle the case that the specific glyph is
2331 not available correctly.
2332 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
2333 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
2334 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
2335 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
2336 fontset. Don't call FS_LOAD_FONT.
2337
439d5cb4
KR
23382000-03-22 Ken Raeburn <raeburn@gnu.org>
2339
2340 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
2341 (INT_LISPLIKE): New macro.
2342 (NULL_INTERVAL_P): Use it.
2343 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT,
2344 SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT,
2345 GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
2346
2347 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
2348 explicit references to "parent" field of struct interval and
2349 associated unclean type conversions.
2350 * intervals.c (create_root_interval, root_interval, rotate_right,
2351 rotate_left, balance_possible_root_interval, split_interval_right,
2352 split_interval_left, interval_start_pos, find_interval,
2353 next_interval, previous_interval, update_interval,
2354 adjust_intervals_for_insertion, delete_node, delete_interval,
2355 adjust_intervals_for_deletion, merge_interval_right,
2356 merge_interval_left, reproduce_tree, graft_intervals_into_buffer,
2357 copy_intervals_to_string): Likewise.
2358 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
2359 Likewise.
2360 * syntax.c (update_syntax_table): Likewise.
2361
2362 * intervals.c (reproduce_tree_obj): New function, like
2363 reproduce_tree but takes a Lisp_Object for the parent. Declare
2364 with prototype.
2365 (graft_intervals_into_buffer): Use it when appropriate.
2366 (reproduce_tree): Declare with prototype.
2367 (balance_possible_root_interval): Check that the parent is a lisp
2368 object before trying to examine its type.
2369
ee1c5b21
GM
23702000-03-22 Gerd Moellmann <gerd@gnu.org>
2371
2372 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
2373 as strings only if both are known to be strings.
2374
2375 * s/openbsd.h (LIBS_TERMCAP): Undef.
2376
1fb352e0
SM
23772000-03-21 Stefan Monnier <monnier@cs.yale.edu>
2378
2379 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
2380 definitions for non-Emacs compilation.
2381 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
2382 outside of `#ifdef emacs'.
2383 (print_partial_compiled_pattern): Update.
2384 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
2385 (re_compile_fastmap): Merge handling of charset and charset_not (for
2386 emacs and non-emacs compilation as well).
2387 Similarly for (not)categoryspec and (not)syntaxspec.
2388 Don't use the fastmap when reaching `anychar' since the added
2389 complexity is not justified.
2390 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
2391 and (not)syntaxspec. Merge (not)categoryspec.
2392
fdaa1f77
KH
23932000-03-22 Kenichi Handa <handa@etl.go.jp>
2394
ff1a0d8e
KH
2395 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P,
2396 FACE_FOR_CHAR): Define them differently for the configuration of
2397 --without-x.
fdaa1f77 2398
d152fb46
DL
23992000-03-21 Dave Love <fx@gnu.org>
2400
2401 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
2402 doc string.
2403
d2cafc8c
GM
24042000-03-21 Gerd Moellmann <gerd@gnu.org>
2405
2406 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
2407 (lface_fully_specified_p): Don't check contents of
2408 LFACE_FONT_INDEX because that attribute is optional.
2409 (realize_x_face): Remove now unwarranted xassert.
2410
9111d4b5
KH
24112000-03-21 Kenichi HANDA <handa@etl.go.jp>
2412
2413 The following changes are to make font selection based on
2414 characters, not charset. In addition, they recover fontset
2415 facilities while utilizing the new font selection mechanism.
2416
6c4bfdc0
KH
2417 * Makefile.in (fontset.o): Depend on dispextern.h.
2418
2419 * alloc.c (mark_face_cache): Don't mark face->registry.
2420
9111d4b5
KH
2421 * dispextern.h (struct glyph): New member glyph_not_available_p.
2422 Use 22 bits for face_id.
2423 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
2424 (struct face): Delete member registry, new member ascii_face.
2425 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
2426 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
2427 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
2428 (struct it): Delete member charset, new member
2429 glyph_not_available_p.
2430
2431 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
2432 (struct fontset_info, struct fontset_data): Structs removed.
2433 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset,
2434 Vglobale_fontset_alist, font_idx_temp): Externs removed.
2435 (fs_load_font, fs_query_fontset): Adjusted for new argument.
2436 (fs_free_face_fontset, fontset_font_pattern,
2437 face_suitable_for_char_p, face_for_char,
2438 make_fontset_for_ascii_face): Extern them.
2439 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
2440 (FS_LOAD_FACE_FONT): New macro.
2441
2442 * fontset.c: All codes rewritten or adjusted for the change of
2443 fontset implementation. Now fontset is represented by char table.
2444 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl): Variables
2445 removed.
2446 (my_strcasecmp): Function removed.
2447 (Vfontset_table, next_fontset_id, Vdefault_fontset): New
2448 variables.
2449 (AREF, ASIZE): New macros.
2450 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME,
2451 FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF,
2452 FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
2453 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset,
2454 fontset_id_valid_p, font_family_registry, fontset_name,
2455 fontset_ascii, free_face_fontset, face_suitable_for_char_p,
2456 face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
2457 New functions.
2458 (fs_load_font): New arg FACE. Caller changed.
2459 (fs_query_fontset): Argument changed. Caller changed.
2460 (Fquery_fontset): call fs_query_fontset.
2461 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
2462 Functions removed.
2463 (clear_fontset_elements, check_registry_encoding,
2464 check_fontset_name): New functions.
2465 (syms_of_fontset): Set char-table-extra-slots property of fontset
2466 to 3. Staticpro and initialize Vfontset_table and
2467 Vdefault_fontset. Defsubr fontset_font and fontset_list.
2468
2469 * frame.h (struct frame): Member `fontset_data' removed.
2470 (FRAME_FONTSET_DATA): Macro removed.
2471
2472 * frame.c (make_frame): Don't allocate f->fontset_data.
2473 (Fdelete_frame): Don't free f->fontset_data.
2474
6c4bfdc0
KH
2475 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
2476
9111d4b5
KH
2477 * xdisp.c (charset_at_position): Function removed.
2478 (init_iterator): Don't set member charset of struct `it'.
2479 (handle_face_prop, reseat_to_string, set_iterator_to_next,
2480 next_element_from_display_vector, insert_left_trunc_glyphs):
2481 Likewise.
2482 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
2483 FACE_FOR_CHARSET.
2484 (get_next_display_element, append_space,
2485 extend_face_to_end_of_line): Likewise.
2486
2487 * xfaces.c (Qx_charset_registry, Vface_default_registry):
2488 Variables removed.
2489 (clear_font_table, frame_update_line_height, load_face_font):
2490 Adjusted for the change of fontset implementation.
2491 (load_face_fontset_font): Function removed.
2492 (pixel_point_size): New function.
2493 (font_list): Argument type changed. Caller changed.
2494 (LFACE_FONT): New macro.
2495 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
2496 (set_lface_from_font_name): Type of arg FONTNAME is changed to
2497 Lisp_Object. Determine the font name by actually loading a font
2498 by the specified pattern. Set LFACE_FONT (lface) to the specified
2499 pattern. Even if a font is not found, don't try alternatives.
2500 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
2501 (set_font_frame_param): If `font' is specified in lface, use it.
2502 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
2503 (lface_same_font_attributes_p): Likewise.
2504 (make_realized_face): Arguent changed. Caller changed. Set
2505 face->ascii_face to face itself.
2506 (free_realized_face): Free face->fontset if face is for ASCII.
2507 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p,
2508 deduce_unibyte_registry, x_charset_registry): Functions removed.
2509 (free_realized_multibyte_face): New function.
2510 (lookup_face, lookup_named_face, lookup_derived_face): Argument
2511 changed. Caller changed.
2512 (try_font_list): Argument type changed.
2513 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
2514 (choose_face_font): Argument changed. Handle fontset properly.
2515 (choose_face_fontset_font): Function removed.
2516 (realize_default_face, realize_named_face): Don't remove the
2517 former face here.
2518 (realize_face): Argument changed. Caller changed. Remove face
2519 with the arg former_face_id in advance. Load font for the new
2520 face.
2521 (realize_x_face): Argument changed. Caller changed. For a
2522 multibyte character, share fontset with base_face. For a single
2523 byte character, make a new realized fontset. Don't load a font
2524 here.
2525 (realize_tty_face): Argument changed. Caller changed.
2526 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
2527 (face_at_buffer_position): Don't check multibyte_p for returning
2528 DEFAULT_FACE_ID.
2529 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
2530 FACE_SUITABLE_FOR_CHARSET_P.
2531 (syms_of_xfaces): Remove code for Qx_charset_registry and
2532 Vface_default_registry.
2533
6c4bfdc0
KH
2534 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
2535 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
9111d4b5
KH
2536 (x_per_char_metric): Don't try FONT->default_char. Even if
2537 pcm->width is zero, glyph bits may exist.
2538 (x_encode_char): Always initialize char2b->byte1.
2539 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
2540 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller
2541 changed.
2542 (x_append_glyph): Set glyph->glyph_not_available_p.
2543 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
2544 it->charset. Handle the case that per char metric is not
2545 available. If it->multibyte_p is zero and it->c is a multibyte
2546 character, convert it to a unibyte character.
2547 (struct glyph_string): Delete member `charset'.
2548 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
2549 the case that per char metric is not available correctly.
2550 (x_fill_glyph_string): Handle the case that the specific glyph is
2551 not available correctly.
2552 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
2553 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
2554 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
2555 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
2556 fontset. Don't call FS_LOAD_FONT.
2557
2558 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
2559 (x_create_tip_frame): Likewise.
2560 (Fx_close_connection): Free full_name of font_info.
2561
2562 * fns.c (optimize_sub_char_table): New function.
2563 (Foptimize_char_table): New function.
2564 (syms_of_fns): Defsubr Soptimize_char_table.
2565
b33dd3b0
GM
25662000-03-20 Gerd Moellmann <gerd@gnu.org>
2567
2568 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
2569 only if buffer is displayed in some window.
2570
2571 * xdisp.c (handle_single_display_prop): Initialize local `value'.
2572 (try_window_reusing_current_matrix): Don't call scroll run
2573 function if run's current and desired position are the same;
2574 this prevents cursor flickering.
2575
4e8a9132
SM
25762000-03-19 Stefan Monnier <monnier@cs.yale.edu>
2577
2578 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
2579
2580 * regex.c (RE_STRING_CHAR): New macro.
2581 (GET_CHAR_AFER_2): Remove.
2582 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
2583 (enum re_opcode_t): Remove on_failure_jump_exclusive.
2584 (print_partial_compiled_pattern, re_compile_fastmap)
2585 (re_match_2_internal): Remove on_failure_jump_exclusive.
2586 (regex_compile): Turn optimizable P+ loops into PP*, so that the
2587 optimization only need to work for * (ie. can use of_keep_string_jump).
2588 Remove the special case for .*\n since it is now covered by the general
2589 optimization.
2590 (re_search_2): Don't bother with `room'.
2591 (skip_one_char): New function.
2592 (skip_noops): Simplify since `memory' is not needed any more.
2593 (mutually_exclusive_p): Restructure slightly to use `switch' and
2594 add handling for "all" remaining cases.
2595 (re_match_2_internal): Change on_failure_jump_smart to use
2596 on_failure_keep_string_jump (and redirect the end-of-loop jump)
2597 rather than on_failure_jump_exclusive.
2598
2136fdd4
GM
25992000-03-19 Gerd Moellmann <gerd@gnu.org>
2600
2601 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
2602 number of bits per RGB because it's everywhere used as the depth
2603 of the visual.
2604
2605 * term.c (calculate_costs): Remove code dealing with X frames.
2606
e53ae11c
RS
26072000-03-19 Richard M. Stallman <rms@caffeine.ai.mit.edu>
2608
2609 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
2610
d7b511c4
GM
26112000-03-18 Gerd Moellmann <gerd@gnu.org>
2612
2613 * lread.c (read_integer): Unread the last char not consumed.
2614
16b5d424
GM
26152000-03-17 Gerd Moellmann <gerd@gnu.org>
2616
2617 * xterm.c (x_update_window_cursor): Don't update in frames
d7b511c4 2618 which are in the process of being deleted.
16b5d424 2619
1fa28578
GM
26202000-03-16 Gerd Moellmann <gerd@gnu.org>
2621
83488cce
GM
2622 * Makefile.in (mostlyclean): Add `*.core'.
2623 (clean): Add `bootstrap-emacs'.
2624
1fa28578
GM
2625 * lread.c (read_integer): New function.
2626 (read1): Support read syntax #o, #x, #b, #r.
2627
99633e97
SM
26282000-03-15 Stefan Monnier <monnier@cs.yale.edu>
2629
1fa28578
GM
2630 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
2631 make sure POINTER_TO_OFFSET gives the same value before and after
2632 PREFETCH. Use `dfail' to guarantee "atomic" matching.
99633e97
SM
2633 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
2634 (debug): Now only active if > 0 rather than if != 0.
2635 (DEBUG_*): Update for the new meaning of `debug'.
1fa28578
GM
2636 (print_partial_compiled_pattern): Add missing `succeed' case. Use
2637 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
2638 in `succeed_n', `jump_n' and `set_number_at'.
99633e97
SM
2639 (store_op1, store_op2, insert_op1, insert_op2)
2640 (at_begline_loc_p, at_endline_loc_p): Add prototype.
1fa28578
GM
2641 (group_in_compile_stack): Move to after its arg's types are
2642 declared and add a prototype.
99633e97 2643 (PATFETCH): Define in terms of PATFETCH_RAW.
1fa28578
GM
2644 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)'
2645 wrapper.
99633e97 2646 (QUIT): Redefine as a nop except for NTemacs.
1fa28578
GM
2647 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
2648 indentation of the greedy-op and shy-group code.
99633e97
SM
2649 (at_(beg|end)line_loc_p): Fix argument's types.
2650 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
2651 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
2652 (MATCHING_IN_FIRST_STRING): Remove.
1fa28578
GM
2653 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
2654 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
2655 QUIT unconditionally.
99633e97 2656
699238d9
GM
26572000-03-15 Gerd Moellmann <gerd@gnu.org>
2658
2659 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
2660 a sole completion.
2661
2662 * process.c (send_process): Add a hint that the function
2663 can call Lisp code to its comment.
2664
2665 * lread.c (load_dangerous_libraries): New variable.
2666 (Vbytecomp_version_regexp): New variable.
2667 (safe_to_load_p): New function.
2668 (Fload): Handle files not compiled with Emacs specially.
2669 (syms_of_lread): New Lisp variable load-dangerous-libraries.
2670
34e23e5a
GM
26712000-03-14 Gerd Moellmann <gerd@gnu.org>
2672
9c763cca
GM
2673 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
2674
2675 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
2676 support functions only if HAVE_X11R6_XIM is defined.
2677 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
2678
2679 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
2680
2681 * xfns.c (X_I18N_INHIBITED): Don't define.
2682 (create_frame_xic): Remove conditional compilation on
2683 X_I18N_INHIBITED.
2684 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
2685
2686 * config.in (HAVE_X_I18N): Moved here from xterm.h.
2687 (HAVE_X11R6_XIM): Define.
2688
2689 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
2690
34e23e5a
GM
2691 * xterm.c (x_term_init): Add support for X resource `synchronous'.
2692 If set, call XSynchronize.
2693
66f0296e
SM
26942000-03-13 Stefan Monnier <monnier@cs.yale.edu>
2695
34e23e5a
GM
2696 * regex.c: Declare a new type `re_char' used throughout the code
2697 for the string char type. It's `const unsigned char' to match the
2698 rest of Emacs. Consistently make sure all pointers to strings use
2699 it and make sure all pointers into the pattern use `unsigned
2700 char'.
66f0296e 2701 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
34e23e5a
GM
2702 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
2703 code duplication.
66f0296e
SM
2704
2705 * charset.h (GET_CHAR_AFTER_2): Remove.
2706 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
2707
854a025c
KR
27082000-03-12 Ken Raeburn <raeburn@gnu.org>
2709
2710 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
2711 variable before the invocation of YMF_PASS_LDFLAGS, in case both
2712 of them try to use backquotes.
2713
b9d2c7e2
DL
27142000-03-12 Dave Love <fx@gnu.org>
2715
2716 * unexelf.c: Restore changes of 1999-10-19.
2717 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
2718 fix its type and alignment; copy it from current process.
2719
5e5dff44
GM
27202000-03-12 Gerd Moellmann <gerd@gnu.org>
2721
9b2f3c38
GM
2722 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
2723 has been found. Fix bug not computing timer's predecessor.
2724
427ec082 2725 * fileio.c (Fread_file_name): Handle case that DIR contains a
9172b88d
GM
2726 file name.
2727
e1cff360
GM
2728 * window.c (Fsave_window_excursion): Doc fix.
2729
5e5dff44
GM
2730 * xfns.c (x_defined_color): Rewritten to use
2731 x_allocate_nearest_color.
2732
e411ce4b
EZ
27332000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
2734
2735 * msdos.c (vga_installed): New function, code moved from
2736 dos_set_window_size.
2737 (Qbar, Qcursor_type, outside_cursor): New variables.
2738 (syms_of_msdos): Intern and staticpro them.
2739 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
2740 shape used outside Emacs when called for the first time.
2741 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
2742 cursor shape used outside Emacs.
2743 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
2744 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
2745 type has changed.
2746 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
2747 parameters specify the cursor. Make qreverse a global
2748 variable (renamed to Qreverse).
2749
80460654
GM
27502000-03-09 Gerd Moellmann <gerd@gnu.org>
2751
2752 * fns.c (Fy_or_n_p): Cancel busy-cursor.
2753
95cd4c40
SM
27542000-03-08 Stefan Monnier <monnier@cs.yale.edu>
2755
2756 This is a big redesign of failure-stack and register handling, prompted
2757 by bugs revealed when trying to add shy-groups. Overall, what happened
2758 is that loops are now structured a little differently, groups can be
2759 shy and the code is a little simpler.
2760
2761 * regex.h: Update the copyright.
2762 (RE_SHY_GROUPS): New value.
2763 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
2764 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
2765
80460654
GM
2766 * regex.c (enum re_opcode_t): Remove jump_past_alt,
2767 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
2768 on_failure_jump_(exclusive, loop and smart). Also fix the comment
2769 for (start|stop)_memory since they now only take one argument (the
2770 second has becomes unnecessary).
2771 (print_partial_compiled_pattern): Adjust for changes in
2772 re_opcode_t.
2773 (print_compiled_pattern): Use %ld to printf long ints and flush to
2774 make debugging a little easier.
95cd4c40
SM
2775 (union fail_stack_elt): Make the integer unsigned.
2776 (struct fail_stack_type): Add a `frame' element.
2777 (INIT_FAIL_STACK): Init `frame' as well.
2778 (POP_PATTERN_OP): New macro for re_compile_fastmap.
2779 (DEBUG_PUSH, DEBUG_POP): Remove.
2780 (NUM_REG_ITEMS): Remove.
2781 (NUM_NONREG_ITEMS): Adjust.
80460654
GM
2782 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
2783 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
95cd4c40 2784 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
80460654
GM
2785 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP): New
2786 macros.
2787 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
2788 address pushed is not the destination of the jump but the source
2789 of it instead.
95cd4c40
SM
2790 (NUM_FAILURE_ITEMS): Remove.
2791 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
80460654
GM
2792 registers before the actual failure point). Don't hardcode any
2793 meaning for str==NULL anymore.
95cd4c40 2794 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
80460654
GM
2795 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
2796 Remove.
95cd4c40
SM
2797 (REG_UNSET_VALUE): Use NULL (why not?).
2798 (compile_range): Remove declaration since it doesn't exist.
2799 (struct compile_stack_elt_t): Remove inner_group_offset.
2800 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
2801 (regex_grow_registers): Remove dead code.
2802 (FIXUP_ALT_JUMP): New macro.
80460654
GM
2803 (regex_compile): Add shy-groups Change loops to use
2804 on_failure_jump_smart&jump instead of
2805 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
2806 initial (dummy_failure_)jump. Remove c1_base (looks like unused
2807 variable to me). Use `jump' instead of `jump_past_alt' and don't
2808 bother with push_dummy_failure in alternatives since it is now
2809 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
2810 emacs' for (re)allocating the stack.
2811 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
2812 from loop when bufp->can_be_null rather than jumping to `done'.
2813 Avoid jumping backwards so as to ensure termination. Use
2814 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
2815 backreferences. Remove dead code in handling of `anychar'.
95cd4c40 2816 (skip_noops, mutually_exclusive_p): New functions taken from the
80460654
GM
2817 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
2818 improve mutually_exclusive_p to handle ".+\n".
2819 (lowest_active_reg, highest_active_reg,
2820 NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
2821 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
2822 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
2823 variables. Push register (in `start_memory') on the stack rather
2824 than storing it in old_reg(start|end). Remove the cycle detection
2825 from `stop_memory', replaced by the use of on_failure_jump_loop
2826 for greedy loops. Add code for the new on_failure_jump_<foo>.
2827 Remove ad-hoc code in `on_failure_jump' to push more registers in
2828 the case of a loop. Take out code from `maybe_pop_jump' into
2829 separate functions and adapt it to the semantics of
2830 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
2831 and push_dummy_failure. Remove dummy_failure handling and
2832 handling of `failures to jump to on_failure_jump' (this last one
2833 was already dead code, it seems).
2834 (group_match_null_string_p, alt_match_null_string_p)
2835 (common_op_match_null_string_p): Remove.
95cd4c40 2836
7397acc4
DL
28372000-03-08 Dave Love <fx@gnu.org>
2838
2839 * config.in: Don't depend on __STDC__ for volatile.
2840 Add POINTER_TYPE, PTR, PROTOTYPES.
2841
2842 * hftctl.c, strftime.c: Use PROTOTYPES.
2843 * eval.c (find_handler_clause): Likewise.
2844
2845 * mem-limits.h: Use POINTER_TYPE.
2846
2847 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
2848 (memory_warnings): Declare using POINTER_TYPE.
2849
5e91ff9e
GM
28502000-03-08 Gerd Moellmann <gerd@gnu.org>
2851
feab4fba
GM
2852 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
2853
25edb08f
GM
2854 * xdisp.c (display_echo_area): Temporarily inhibit garbage
2855 collection.
2856
5e91ff9e
GM
2857 * xfns.c: Remove obsolete code in #if 0.
2858 (Fx_focus_frame): New function.
2859
a735b7e1
KH
28602000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
2861
2862 * coding.c (coding_category_name): Add coding-category-utf-8,
2863 coding-category-utf-16-be, coding-category-utf-16-le.
2864 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
2865 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
2866 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
2867 (detect_coding_utf_8): New function.
2868 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
2869 UTF_16_LOW_SURROGATE_P): New macros.
2870 (detect_coding_utf_16): New function
2871 (detect_coding_mask): When priorities are specified, skip any
2872 categories that have `nil' coding-system. Fix bug of returning
2873 wrong mask when PRIORITIES is specified and detect_coding_XXX()
2874 returns a mask not set in PRIORITIES.
2875 (detect_eol_type_in_2_octet_form): New function.
2876 (detect_eol): selects detect_eol_type_XXX to call according to
2877 cooding->category_idx.
2878 (detect_coding_system): Remove `nil' coding-system in the result.
2879 (Fupdate_coding_systems_internal): Update all coding-categories.
2880
2881 * coding.h (CODING_CATEGORY_IDX_UTF_8,
2882 CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE): New
2883 macros.
2884 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY,
2885 CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
2886 CODING_CATEGORY_IDX_UTF_16_LE.
2887 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE,
2888 CODING_CATEGORY_MASK_UTF_16_LE): New macros.
2889 (CODING_CATEGORY_MASK_ANY): Include the above macros.
2890 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
2891
9994cc69
GM
28922000-03-07 Gerd Moellmann <gerd@gnu.org>
2893
e9b4e5ff
GM
2894 * doc.c (Fdocumentation_property): If value is not a string,
2895 and doesn't refer to etc/DOC, evaluate it to obtain a string.
2896
f7daf1e1
GM
2897 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
2898 close the display with XtCloseDisplay. This caused a bus error
2899 on OpenWindows.
2900
9994cc69
GM
2901 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
2902 complete but not unique.
2903
4336c705
GM
29042000-03-06 Gerd Moellmann <gerd@gnu.org>
2905
18bb0684
GM
2906 * process.c (send_process): Remove local variable `procname' that
2907 might become invalid when a GC happens. Instead, access the
2908 process name slot directly.
2909
4336c705
GM
2910 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
2911 orig_height if set.
2912
2913 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
2914 orig_height if set.
2915
515d0d0e
EZ
29162000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
2917
2918 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
2919 glyph matrices have been freed.
2920
100b3cbb
GM
29212000-03-05 Gerd Moellmann <gerd@gnu.org>
2922
50df5e5a 2923 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
6178bc23 2924 (bootstrap-temacs): Set LC_ALL to C like for temacs.
50df5e5a
GM
2925
2926 * xfns.c (QCdata): Moved to xdisp.c.
2927
2928 * xdisp.c (QCdata): Moved here from xfns.c.
2929 (syms_of_xdisp): Initialize QCdata.
2930
2931 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
2932
2933 * window.c (coordinates_in_window): Use
2934 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
2935 FRAME_INTERNAL_BORDER_WIDTH.
2936
100b3cbb 2937 * xdisp.c (try_window_id): Recompute unchanged information if
4336c705 2938 it is obviously invalid.
100b3cbb
GM
2939
2940 * xterm.c (x_term_init): Create a colormap if not using the
2941 default visual.
2942
2943 * xterm.h (select_visual): Change prototype.
2944
2945 * xfns.c (select_visual): Rewritten. Recognize user-specified
2946 visual classes.
2947 (visual_classes): New variable.
2948
64d739c4
GM
29492000-03-04 Gerd Moellmann <gerd@gnu.org>
2950
2951 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
2952 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
2953 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
2954 (x_decode_color): Don't handle allocation of white and black
2955 specially.
2956 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
2957 XtNcolormap resources.
2958 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
2959 (Fx_create_frame): Initialize color members of x_output structure.
2960 (xpm_load): Pass colormap to XPM lib.
2961
2962 * xfaces.c (x_free_colors): Access colormap of frame using
2963 FRAME_X_COLORMAP. Be paranoid about freeing black and white
2964 when default colormap is used.
2965
2966 * xterm.c (x_term_init): Set Colormap member of x_display_info
2967 structure. Copy colormap if resource `privateColormap' is
2968 specified (PseudoColor only).
2969 (x_setup_relief_color): Access colormap of frame using
2970 FRAME_X_COLORMAP.
2971
2972 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
2973 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
2974
c3cee013
JR
29752000-03-04 Jason Rumney <jasonr@gnu.org>
2976
2977 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
2978 other non-platform-specific equivalents.
64d739c4 2979 [WINDOWSNT]: Include w32term.h, fontset.h and define X
c3cee013
JR
2980 specific functions and macros as their w32 equivalents where
2981 non-platform-specifics are not available.
2982 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
2983 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
2984 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
2985 (frame_update_line_height): Use macros to access f->output_data.
2986 (defined_color): Remove FIXME comments; fixed.
2987 (x_face_list_fonts, prepare_face_for_display): Put X specifics
2988 into #ifdef blocks. Add WINDOWSNT blocks.
2989 (Fx_list_fonts): Use macros for accessing font data.
2990 (set_lface_from_font_name): Different default fonts for X and
2991 WINDOWSNT.
2992 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
2993 scalable for backward compatibility.
64d739c4 2994 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
c3cee013
JR
2995 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
2996
64d739c4 2997 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
c3cee013
JR
2998 syms_of_w32faces.
2999
3000 * makefile.nt (w32faces.obj): Remove.
3001 (xfaces.obj): Add.
3002
807cc41c
JR
30032000-03-03 Jason Rumney <jasonr@gnu.org>
3004
3005 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
3006 correct parameters.
3007
0007072a
KR
30082000-03-03 Ken Raeburn <raeburn@gnu.org>
3009
3010 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
3011 standard ELF definitions here if the system header does not.
3012
71a6ba55
GM
30132000-03-03 Gerd Moellmann <gerd@gnu.org>
3014
3015 * xterm.c (PER_CHAR_METRIC): Removed.
3016 (x_per_char_metric_1, x_default_char): New functions.
3017 (x_per_char_metric): If font's default char is invalid, return
3018 metrics of a suitably chosen usable default char.
3019 (x_draw_glyph_string_foreground): If font has an invalid default
64d739c4
GM
3020 char, replace occurrences of unprintable chars with a suitably
3021 chosen usable default char.
71a6ba55 3022
900fa1f1
GM
30232000-03-02 Gerd Moellmann <gerd@gnu.org>
3024
42f55fe0
GM
3025 * xterm.c (note_mouse_highlight): Return quickly if frame's
3026 glyph matrices have been freed.
3027
3028 * dispnew.c (free_glyphs): Block input while freeing matrices.
3029
900fa1f1
GM
3030 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
3031
3032 * xterm.c (x_alloc_lighter_color, x_setup_relief_color): Use
3033 x_free_colors.
3034
3035 * dispextern.h (x_free_colors): Add prototype.
3036
3037 * xfaces.c (x_free_colors): New function.
3038 (unload_color, free_face_colors): Use it.
3039
2f950292
EZ
30402000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
3041
3042 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
3043
3044 * window.c [MSDOS]: Include msdos.h.
3045
54d04320
DL
30462000-03-02 Dave Love <fx@gnu.org>
3047
3048 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
3049
3050 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
3051 set C_OPTIMIZE_SWITCH for gcc.
3052
0ba93ac4
KH
30532000-03-02 Kenichi Handa <handa@etl.go.jp>
3054
3055 * coding.c (coding_save_composition): Be sure to allocate
3056 composition data area in coding even if there's no composition in
3057 the current run.
3058
a2bc11d4
JR
30592000-03-01 Jason Rumney <jasonr@gnu.org>
3060
3061 * w32term.c: Equivalent changes to those made to xterm.c on
3062 2000-02-25 and 2000-02-24.
3063
3064 * w32fns.c: Equivalent changes to those made to xfns.c on
3065 2000-02-25 and 2000-02-21.
3066
3067 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
3068 correct line-end convention is followed.
3069
3070 * w32menu.c [HAVE_BOXES]: Remove #undef.
3071 (single_keymap_panes): Remove code for simulating checkmarks.
3072 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
3073 Remove code for drawing simulated checkmarks.
3074 (w32_menu_show): make unibyte help string correctly.
3075 (add_menu_item): draw standard Windows checkmarks. Draw radio
3076 buttons as radio buttons if possible.
3077
72d19d75
GM
30782000-03-01 Gerd Moellmann <gerd@gnu.org>
3079
2df636f4
GM
3080 * sysdep.c (start_of_text): Don't define this function for NetBSD
3081 with ELF.
3082
427ec082 3083 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
2df636f4
GM
3084 Don't define.
3085 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
3086 (LINKER): Don't undef if __NetBSD__ is defined.
3087
3088 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
3089
3090 * fileio.c [__NetBSD__]: Define `unix'.
3091
72d19d75
GM
3092 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
3093
ed4d0512
GM
30942000-02-29 Gerd Moellmann <gerd@gnu.org>
3095
50b1039f
GM
3096 * atimer.c (start_atimer): Don't abort when timers are stopped.
3097 (append_atimer_lists): New function.
3098 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
3099 arbitrary lists of stopped and running atimers.
3100
ed4d0512
GM
3101 * atimer.c (cancel_atimer): Handle canceling an atimer when
3102 some timers are stopped.
3103
3104 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
3105 after canceling it.
3106
3107 * fns.c (maybe_resize_hash_table): Handle case of new size
3108 coming out as being the same as old size.
3109
387023ee
JR
31102000-02-27 Jason Rumney <jasonr@gnu.org>
3111
3112 * makefile.nt: Add atimer.h to dependencies.
3113 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
3114 * w32console.c: Only disable window system features for dispextern.h
3115 (initialize_w32_display): Build a display info for the console.
3116 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
3117 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
3118 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
3119 as 2 button mice.
3120 * w32gui.h (struct W32FontStruct): Revert last change after change
3121 to xdisp.c.
3122 * w32menu.c (single_submenu): Set up help string.
3123 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
3124 (w32_dialog_show): Set up help string.
3125 * w32term.c (w32_display_info_for_display): Remove unused function.
3126 (w32_draw_bitmap): Use pre-built bitmaps.
3127 (w32_initialize_display_info): New function to initialize parts of
3128 display info that are common to both GUI and console frames.
3129 (w32_term_init): Use w32_initialize_display_info. Do not set
3130 Vw32_num_mouse_buttons here, as it is not called for console
3131 frames. Build bitmaps for indicating truncated lines etc.
3132 (x_delete_display): Destroy pre-built bitmaps.
3133 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
3134 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
3135
4516715a
DL
31362000-02-27 Dave Love <fx@gnu.org>
3137
3138 * lisp.h: Add a bunch of prototypes.
3139
171ca836
KH
31402000-02-26 Kenichi Handa <handa@etl.go.jp>
3141
3142 * keyboard.c (read_char): Set `usec' correctly.
3143
4013921d
KH
31442000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
3145
3146 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
3147 `lambda', set reg[RRR] to the map index.
3148 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
3149 reg[RRR] to 0. Otherwise, set it to -1.
3150
9244a058
GM
31512000-02-25 Gerd Moellmann <gerd@gnu.org>
3152
2df636f4 3153 * emacs.c (main): Remove code snippet commented out with `//'.
9244a058 3154
f43d79c1 31552000-02-25 Richard M. Stallman <rms@caffeine.ai.mit.edu>
427ec082 3156
f43d79c1
GM
3157 * fileio.c (Ffile_symlink_p): If result starts with a `/'
3158 and contains a `:', prepend `/:'.
3159
3160 * window.c (select_window_1): If selected_window is nil,
3161 don't "swap out" the buffer's point.
3162 (Fset_window_configuration): Set selected_window to nil
3163 before calling Fselect_window.
3164 (unshow_buffer): Don't set point in buffer from window's point
3165 if another more recently selected window also shows the buffer.
3166
bed0c171
GM
31672000-02-25 Gerd Moellmann <gerd@gnu.org>
3168
449c3c52
GM
3169 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
3170
f5b58615
GM
3171 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
3172 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
3173 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay): New
3174 variables.
3175 (DEFAULT_BUSY_CURSOR_DELAY): New define.
3176 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
3177 (hide_busy_cursor): New functions.
3178 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
3179
3180 * minibuf.c (read_minibuf): Cancel busy-cursor.
3181
3182 * keyboard.c (command_loop_1): Call start_busy_cursor before
3183 Fcommand_execute and cancel_busy_cursor after it.
3184 (timer_check): Remove busy-cursor code.
3185 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
3186 cursor timer.
3187
3188 * process.c (wait_reading_process_input): Remove busy-cursor code.
3189
3190 * eval.c (Fsignal): Call cancel_busy_cursor instead of
3191 Fx_hide_busy_cursor.
3192
3193 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
3194 Remove prototyoes.
3195 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
3196
3197 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
3198
3199 * xterm.c (XTread_socket): Remove busy-cursor code.
3200
4eb8436f
GM
3201 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
3202 (build_frame_matrix_from_leaf_window): Put code handling
3203 glyph row's not being a slice of a frame row in #if 0.
3204 (sync_window_with_frame_matrix_rows): New function.
3205 (frame_row_to_window): New function.
3206 (mirror_line_dance): Handle copies between windows.
3207
3cb65b0e
GM
3208 * lread.c (Fload): Use `xfree' instead of `free'.
3209 (init_obarray): Use `xmalloc' instead of `malloc'.
3210
bed0c171
GM
3211 * window.c (Fset_window_buffer): Set WINDOW to the window
3212 after decoding.
2add4349
GM
3213 (coordinates_in_window): Take frame's internal border width
3214 into account.
bed0c171 3215
42088c12
GM
32162000-02-24 Gerd Moellmann <gerd@gnu.org>
3217
3218 * xterm.c (x_display_and_set_cursor): Display cursor of
3219 non-selected windows depending on the setting of
3220 cursor_in_non_selected_windows.
3221
3222 * xdisp.c (cursor_in_non_selected_windows): New variable.
3223 (syms_of_xdisp): DEFVAR_BOOL it.
3224
d1e103b2
GM
32252000-02-23 Gerd Moellmann <gerd@gnu.org>
3226
723e779c
GM
3227 * data.c (Fstring_to_number): If number is greater than what
3228 fits into an integer, return a float.
3229
d1e103b2
GM
3230 * eval.c (specbind): Remove references to
3231 keyword_symbols_constant_flag.
3232
3233 * data.c (keyword_symbols_constant_flag): Removed.
3234 (Fmakunbound, set_internal, syms_of_data): Remove references to
3235 keyword_symbols_constant_flag.
3236
3237 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
3238
214f877f
KH
32392000-02-23 Kenichi Handa <handa@etl.go.jp>
3240
3241 * syntax.c (multibyte_syntax_as_symbol): New variable.
3242 (syms_of_syntax): Declare it as a Lisp variable.
3243 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
3244 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
3245 nonzero, treat all multibyte characters as symbol.
42088c12 3246 (init_syntax_once): Give syntax `word' to all multibyte
214f877f
KH
3247 characters.
3248
130adcb7
EZ
32492000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
3250
3cb65b0e 3251 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
130adcb7
EZ
3252 a deleted frame.
3253
17cbbf95
GM
32542000-02-21 Gerd Moellmann <gerd@gnu.org>
3255
3256 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
3257
3258 * xfns.c (x_window_to_frame, x_any_window_to_frame)
3259 (x_non_menubar_window_to_frame): Check the busy-cursor window.
3260
beb0bc36
DL
32612000-02-21 Dave Love <fx@gnu.org>
3262
3263 * frame.c (Vmouse_position_function): New variable.
3264 (Fmouse_position): Use it.
3265 (syms_of_frame): Install it.
3266
3267 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
3268
1d92afcd
GM
32692000-02-20 Gerd Moellmann <gerd@gnu.org>
3270
3271 * fileio.c (Finsert_file_contents): Unbind the binding of
3272 standard-output done by temp_output_buffer_setup.
329eed9f
GM
3273
3274 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
3275 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
3276 (specbind, unbind_to): Handle most common case of non-constant
3277 symbol with trivial value specially.
3278
3279 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
3280
2d06696f
RS
32812000-02-20 Richard M. Stallman <rms@caffeine.ai.mit.edu>
3282
3283 * data.c (Fmake_variable_buffer_local): Doc fix.
3284 Init found_for_buffer to 0.
3285 (Fmake_variable_frame_local): If the variable has already
3286 been buffer-local, set the check_frame field.
3287
1d4311c3
EZ
32882000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
3289
3290 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
3291 produced for CODING_MODE_LAST_BLOCK requires.
3292
2dc95ddd
DL
32932000-02-18 Dave Love <fx@gnu.org>
3294
3295 * keyboard.c (echo_keystrokes): Remove declaration.
3296 (Vecho_keystrokes) New variable.
3297 (read_char, record_menu_key, read_key_sequence): Use it to allow
3298 use of float value.
3299 (syms_of_keyboard): Change Vecho_keystrokes declaration.
3300
3301 * lread.c: Undef feature selection macros before defining.
3302
f0930f35
GM
33032000-02-18 Gerd Moellmann <gerd@gnu.org>
3304
3305 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
3306 for symbols other than the symbol in question.
3307
e3d4de90
DL
33082000-02-17 Dave Love <fx@gnu.org>
3309
3310 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
3311
0b378936
GM
33122000-02-17 Gerd Moellmann <gerd@gnu.org>
3313
d621caf7
GM
3314 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
3315
0b378936
GM
3316 * alloc.c (enum mem_type): Compile unconditionally.
3317
3b451f74
EZ
33182000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
3319
3320 * xfaces.c (tty_defined_color): Don't return faulire indication
3321 for unspecified-fg and unspecified-bg pseudo-colors.
3322
10689a01
GM
33232000-02-17 Gerd Moellmann <gerd@gnu.org>
3324
1216f5e4
GM
3325 * alloc.c (mark_object): Don't mark symbol names in pure space.
3326 (gc_sweep): Don't unmark symbol names in pure space.
3327
3328 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
3329 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
3330 [GC_MARK_STACK]: New defines.
427ec082 3331 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
1216f5e4
GM
3332 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
3333
3334 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
3335
3336 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
3337 allocate_buffer instead of xmalloc.
3338
3339 * alloc.c (toplevel): Include setjmp.h.
3340 (PURE_POINTER_P): New define.
3341 (enum mem_type) [GC_MARK_STACK]: New enumeration.
3342 (Vdead) [GC_MARK_STACK]: New variable.
3343 (lisp_malloc): Add parameter TYPE, call mem_insert if
3344 GC_MARK_STACK is defined.
3345 (allocate_buffer): New function.
427ec082 3346 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
1216f5e4
GM
3347 (free_float) [GC_MARK_STACK]: Set type to Vdead.
3348 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
3349 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
3350 (MEM_NIL) [GC_MARK_STACK]: New define.
3351 (struct mem_node) [GC_MARK_STACK]: New structure.
3352 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
3353 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
3354 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
3355 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
3356 (mark_stack) [GC_MARK_STACK]: New functions.
3357 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
3358 (clear_marks): Removed.
3359 (gc_sweep): Set free conses' car, free floats' type, free
3360 symbols' function to Vdead. Use lisp_free to free buffers.
3361 (init_alloc_once): Initialize Vdead.
3362 (survives_gc_p): Return non-zero for pure objects.
3363
3364 * alloc.c: Add comments throughout the file.
3365
2503c8b1
GM
3366 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
3367 that unblocks alarms.
3368
8389e1e2
GM
3369 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
3370 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
3371 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
3372
10689a01 3373 * frame.c (make_frame): Set frame initiallly to `garbaged'.
427ec082 3374
bfc17d18
KH
33752000-02-17 Kenichi Handa <handa@etl.go.jp>
3376
4a09dee0
KH
3377 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
3378 avoid infinite error signaling. Allocate sufficient memory for
3379 eol_str in the case that eoltype is Lisp_Int.
bfc17d18 3380
2b927d02
SM
33812000-02-17 Stefan Monnier <monnier@cs.yale.edu>
3382
3383 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
3384 depends on the previous behavior.
3385
b49cb764
GM
33862000-02-16 Gerd Moellmann <gerd@gnu.org>
3387
3388 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
3389
99e95407
GM
33902000-02-15 Gerd Moellmann <gerd@gnu.org>
3391
3392 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
3393
3394 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
b49cb764 3395 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
99e95407
GM
3396 write(2).
3397
6ffd3cf7
RS
33982000-02-15 Richard M. Stallman <rms@gnu.org>
3399
3400 * data.c (set_internal): Don't make variable buffer-local
3401 if within a let-binding for the same buffer.
3402 (let_shadows_buffer_binding_p): New function.
3403
3404 * eval.c (specbind): For buffer-local value,
3405 record the current buffer also.
3406 (unbind_to): Cope with that change.
3407
cad53475
GM
34082000-02-15 Gerd Moellmann <gerd@gnu.org>
3409
3410 * window.c (Fsave_window_excursion): Doc fix.
3411
1aa963c8
SM
34122000-02-15 Stefan Monnier <monnier@cs.yale.edu>
3413
3414 * syntax.c (back_comment): Make sure we only consider comment-starters
3415 of the relevant style and return -1 in case of a failure to find the
3416 beginning of the comment.
3417 (Fforward_comment): If back_comment fails, go back to the position just
3418 after the comment-end.
3419 (scan_lists): Add comment describing a very minor bug.
3420
b9b84fd3
SM
34212000-02-14 Stefan Monnier <monnier@cs.yale.edu>
3422
3423 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
3424 `completion-regexp-list' in the docstring.
3425
3a28db80
DL
34262000-02-14 Dave Love <fx@gnu.org>
3427
3428 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
3429
fb4a568d
SM
34302000-02-14 Stefan Monnier <monnier@cs.yale.edu>
3431
3432 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
3433 to Emacs' syntax. Also fix the comment about set/not-set meanings
3434 since Emacs syntax is not the value 0 any more.
3435 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
3436 since it's now part of RE_SYNTAX_EMACS.
3437
1063ebb5
DL
34382000-02-12 Dave Love <fx@gnu.org>
3439
3440 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on
3441 Alpha.
3442
fb07a302
GM
34432000-02-12 Gerd Moellmann <gerd@gnu.org>
3444
3445 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
3446
aaf2320c
DL
34472000-02-12 Dave Love <fx@gnu.org>
3448
3449 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
3450
3451 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
fb07a302
GM
3452 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
3453 * s/hpux.h: Don't define HAVE_VFORK.
aaf2320c
DL
3454
3455 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
3456
3457 * s/nextstep.h: Don't define HAVE_ALLOCA.
3458
3459 * config.in: Add vfork bits.
3460
eedf8bde
GM
34612000-02-12 Gerd Moellmann <gerd@gnu.org>
3462
3463 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
3464 unwind function to undo the effect of stopping atimers.
3465
3466 * keyboard.c (bind_polling_period): Stop all timers except
3467 poll_timer.
3468
3469 * atimer.c (stopped_atimers): New variable.
3470 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
3471 New functions.
3472
3473 * atimer.h (stop_other_atimers, run_all_atimers)
3474 (unwind_stop_other_atimers): Add function prototypes.
427ec082 3475
eedf8bde
GM
3476 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
3477
8476c2f8
KR
34782000-02-11 Ken Raeburn <raeburn@gnu.org>
3479
3480 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
3481 library may depend on jpeg.
3482 (atimer.o): Depends on atimer.c.
3483
0e85e4a3
KH
34842000-02-11 Kenichi Handa <handa@etl.go.jp>
3485
3486 * insdel.c (del_range_1): Call update_compositions.
3487 (del_range_both): Call update_compositions just once..
3488
97fa0cc8
DL
34892000-02-10 Dave Love <fx@gnu.org>
3490
3491 * xfns.c (create_frame_xic): Fix initialization of automatic
3492 aggregates for pcc.
3493
25566a3c
KH
34942000-02-09 Kenichi Handa <handa@etl.go.jp>
3495
3496 * ccl.c (CCL_MAKE_CHAR): New macro.
3497 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
3498 registers by CCL_MAKE_CHAR before calling translate_char.
3499 <CCL_TranslateCharacterConstTbl> Likewise.
3500
69da54ba
DL
35012000-02-08 Dave Love <fx@gnu.org>
3502
3503 * lread.c (__EXTENSIONS__): Define.
3504
f7136ee8
GM
35052000-02-08 Gerd Moellmann <gerd@gnu.org>
3506
3507 * puresize.h (BASE_PURESIZE): Increase to 650000.
3508
7768790b
EZ
35092000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
3510
3511 * msdos.c (XMenuActivate): Turn off the cursor after displaying
3512 the help message.
3513
38fd211b
EZ
35142000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
3515
3516 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
3517 md, mh, mb, mr, and me to the fake termcap entry.
3518
66e4690f
KR
35192000-02-06 Ken Raeburn <raeburn@gnu.org>
3520
3521 * sound.c (sound_cleanup): Don't call device close routine if the
3522 function pointer is null.
3523
a75dfea0
AI
35242000-02-06 Andrew Innes <andrewi@gnu.org>
3525
3526 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
3527 around image definitions and prototypes.
3528 (gamma_correct) [WINDOWSNT]: New prototype.
3529
3530 * w32term.c (x_make_frame_visible): Replace call to
3531 input_poll_signal with poll_for_input.
3532
3533 * window.c [WINDOWSNT]: Include w32term.h.
3534
3535 * xdisp.c [WINDOWSNT]: Include w32term.h.
3536
3537 * makefile.nt: Add dependencies on w32gui.h.
3538 (OBJ1): Include atimer.obj.
3539 ($(BLD)\atimer.obj): New dependency rule.
3540
3541 * w32.c (sigmask): New function (does nothing).
3542 (sigunblock): Ditto.
3543
3544 * frame.c [WINDOWSNT]: Include w32term.h.
3545
3546 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
3547
3548 * lread.c (syms_of_lread): Fix literal newlines.
3549
3550 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
3551 the string constant limit (2048 bytes) in MSVC.
3552 (main): Ditto.
3553
59ddecde
GM
35542000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
3555
3556 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit
3557 area.
3558 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
3559 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
3560 dispatch the event.
3561
07590973
DL
35622000-02-04 Dave Love <fx@gnu.org>
3563
3564 * fileio.c: Remove some unused vars.
3565 (_GNU_SOURCE): Define (for euidaccess).
3566
3567 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
3568
3569 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
3570 gcpro1, gcpro2.
3571 (read_minibuf): Deal with allow_props correctly.
3572
649351f9
EZ
35732000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
3574
3575 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
3576
66e4690f 35772000-02-03 Ken Raeburn <raeburn@gnu.org>
f1b9c7c1
KR
3578
3579 * search.c (compile_pattern): If a cache entry has a nil regexp,
3580 fill in that entry instead of clobbering a previously cached
3581 string regexp.
3582
66e4690f 35832000-02-02 Ken Raeburn <raeburn@gnu.org>
15c9cf81
KR
3584
3585 * puresize.h (BASE_PURESIZE): Increase to 610000.
3586
d240a249
GM
35872000-02-02 Gerd Moellmann <gerd@gnu.org>
3588
3589 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
3590 can GC.
3591
ca91fb26
KH
35922000-02-02 Kenichi Handa <handa@etl.go.jp>
3593
25660570
KH
3594 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
3595 instead of incrementing ic directly.
3596 <CCL_WriteExprConst> Likewise.
3597 <ccl_set_expr>: Set ic to jump_address.
3598
ca91fb26
KH
3599 * fileio.c (e_write): Fix the handling of
3600 CODING_FINISH_INSUFFICIENT_SRC.
3601
2ede9689
DL
36022000-02-01 Dave Love <fx@gnu.org>
3603
3604 * editfns.c (Fpropertize): Doc fix.
3605
3606 * process.c (Fstart_process): Doc fix.
3607
3608 * eval.c: Fix various doc strings not to duplicate information
3609 from help-manyarg-func-alist.
3610
3611 * window.c (Fset_window_margins): Don't make interactive. Doc
3612 fix.
3613
3614 * doc.c (Vhelp_manyarg_func_alist): New variable.
3615 (Fdocumentation): Use it.
3616 (syms_of_doc): Define it.
3617
b6680a0e
GM
36182000-01-31 Gerd Moellmann <gerd@gnu.org>
3619
2cb750ba
GM
3620 * xterm.c (xim_open_dpy): Remove unused local variable.
3621
74e9213b
GM
3622 * emacs.c (USAGE): Use term `display options' instead of `X
3623 options'.
3624
3625 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
3626 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
3627
b6680a0e
GM
3628 * fns.c (sweep_weak_table): New function.
3629 (sweep_weak_hash_tables): Use it. Keep on marking until there
3630 is no more change.
3631
994c5afe
GM
36322000-01-30 Gerd Moellmann <gerd@gnu.org>
3633
3634 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
3635 that XTread_socket does not crash by trying to call XNoOp on a
3636 closed display.
427ec082 3637
f00276e3
JR
36382000-01-30 Jason Rumney <jasonr@gnu.org>
3639
3640 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
3641 Change selected_frame to SELECTED_FRAME ().
3642 (w32_console_mouse_position): Remove #ifndef MULE from around
3643 `insist' parameter.
3644
3645 * makefile.nt: Remove dosfns.obj.
3646
3647 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
3648
3649 * w32fns.c (w32_defined_color): Check for valid frame before
3650 applying gamma correction. Eliminate dependency on frame elsewhere.
3651 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
3652 (w32_to_x_font): Use resx and resy not height_in and width_in.
3653 (x_to_w32_font): Doc fix.
3654 (xlfd_strip_height): New function to strip and return font height.
3655 (w32_font_match): Compare height separately from rest of xlfd
3656 spec, using xlfd_strip_height.
3657
3658 * w32term.c (w32_term_init): Swap resx and height_in, resy and
3659 width_in. Use w32_defined_color in place of defined_color.
3660
3661 * w32faces.c: Merge more of DOS and X specifics in preparation for
3662 merge with xfaces.c.
3663 (defined_color): Remove FIXME comment.
3664 (tty_color_name): Provide w32-specific function.
3665 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
3666
3667 * w32console.c (turn_on_face, turn_off_face): Removed.
3668 (w32_face_attributes): New function.
3669 (Global_variables): Reduce scope where possible.
3670 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
3671 fill attribute.
3672 (hl_mode): Don't modify text attributes.
3673 (write_glyphs): Don't do anything if len <= 0. Use
3674 w32_face_attributes to get attributes for drawing. Write
3675 terminating codes using char_attr_normal.
3676 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
3677 (update_begin, update_end): Likewise.
3678 (vga_stdcolor_name): New function.
3679 (initialize_w32_display): Remove char_attr_reverse and char_attr.
3680 (Fset_screen_color): Remove char_attr_reverse.
3681
b08e8bb2
GM
36822000-01-29 Gerd Moellmann <gerd@gnu.org>
3683
3684 * xfns.c (xic_set_preeditarea): Take window parameter and
3685 window-relative pixel-positions.
3686
3687 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
3688 is its frame's selected window.
3689 (xim_instantiate_callback): Likewise.
3690
3691 * xfns.c (x_create_im): Removed.
3692 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
3693 (supported_xim_styles): Renamed from supported_styles.
3694 (best_xim_style): Renamed from best_style.
3695 (create_frame_xic): Renamed from xic_create_frame.
3696 (free_frame_xic): Renamed from xic_destroy_frame.
427ec082 3697
b08e8bb2
GM
36982000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
3699
3700 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
3701 our frames, call XFilterEvent with 2nd parameter `None'.
3702 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
3703 returning XBufferOverflow.
3704 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status
3705 area.
3706 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
3707 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
3708 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
3709 (xim_initialize, xim_close)
3710 [HAVE_X_I18N && HAVE_X11R6]: New functions.
3711 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
3712 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
3713 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
3714
3715 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
3716 and `xim_styles'.
3717 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
3718 `xic_style' and `xic_xfs'.
3719 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
3720 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
3721 (FRAME_XIM): Removed.
3722
3723 * xfns.c (supported_styles): New variable.
3724 (DEFAULT_STYLE, DEFAULT_FONT): New macros
3725 (xic_create_xfontset, best_style, xic_create_frame)
3726 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
3727 (xic_set_xfontset): New functions.
3728
142e109c
DL
37292000-01-28 Dave Love <fx@gnu.org>
3730
3731 * s/irix6-5.h: Revert last change after change to irix5-0.h.
3732
3733 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
3734
b02786f9
GM
37352000-01-28 Gerd Moellmann <gerd@gnu.org>
3736
d060bc9f
GM
3737 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
3738 for *scratch* if it already existed.
3739
b02786f9
GM
3740 * emacs.c (USAGE): New macro.
3741 (main): Use it to display usage information.
3742
2c52d7e4
EZ
37432000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
3744
3745 Support for the menu-help feature:
3746
3747 * msdos.h: Change prototypes of XMenuAddSelection and
3748 XMenuActivate.
3749
3750 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
3751 part of the line to the termscript file.
3752 (IT_clear_to_end): Clear the entire line, not just its beginning.
3753 (menu_help_message, prev_menu_help_message): New variables.
3754 (IT_menu_make_room): Make room for the help_text member.
3755 (IT_menu_display): New argument disp_help; all callers changed.
3756 If disp_help is non-zero, store the help text of the active menu
3757 item in menu_help_message.
3758 (XMenuAddPane): Initialize the help_text member to NULL.
3759 (XMenuAddSelection): New argument help_text. Store it in the
3760 XMenu structure.
3761 (XMenuActivate): New argument help_callback. If the value of
3762 menu_help_message has changed since the last time, display the
3763 menu help message text while waiting for the mouse to move. Clear
3764 the echo area before exiting.
3765 (XMenuDestroy): Free the help_text member.
3766
ffe0bcd1
GM
37672000-01-27 Gerd Moellmann <gerd@gnu.org>
3768
3769 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
3770 XMenuAddSelection. Pass help callback to XMenuActivate.
3771 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
3772
50dbd23f
EZ
37732000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
3774
3775 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
3776 and EMACS_SET_USECS.
3777
f5941bf8
GM
37782000-01-26 Dave Love <fx@gnu.org>
3779
6c67ddee
DL
3780 * editfns.c (Fchar_after, Fchar_before): Doc fix.
3781
f5941bf8
GM
3782 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
3783 an error may be signalled.
3784
9e49c990
GM
37852000-01-26 Gerd Moellmann <gerd@gnu.org>
3786
fc3cb460
GM
3787 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
3788 LD_SWITCH_SYSTEM inherited from irix5-0.h.
3789
9e49c990
GM
3790 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
3791
d0c037d8
GM
37922000-01-25 Gerd Moellmann <gerd@gnu.org>
3793
3794 * charset.c (Fstring): If there is a multibyte char among
3795 the args, always return a multibyte string.
3796
e12489f9
GM
37972000-01-25 Gerd Moellmann <gerd@gnu.org>
3798
3799 * sysdep.c (sys_select): Turn atimers off and on instead of
3800 recording and restoring old alarm handler
3801
3802 * process.c (toplevel): Include atimer.h.
3803 (create_process_1): Rewritten.
3804 (create_process): Use atimers instead of alarm.
3805 (wait_reading_process_input) [hpux]: Turn atimers off instead
3806 of turning off SIGALRM.
3807 (wait_reading_process_input): Turn off atimers instead off
3808 calling stop_polling.
3809
3810 * emacs.c (main): Call init_atimer.
3811
3812 * keyboard.c (toplevel): Include systime.h and atimer.h.
3813 (polling_for_input): Removed because unused.
3814 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
3815 (poll_timer): New variable.
3816 (poll_for_input, poll_for_input_1): New functions.
3817 (start_polling, stop_polling): Rewritten.
3818
3819 * keyboard.h (polling_for_input): Removed.
427ec082 3820
e12489f9
GM
3821 * atimer.h, atimer.c: New files.
3822
3823 * Makefile.in (obj): Add atimer.o.
3824 (atimer.o): New target.
3825
3826 * blockinput.h (pending_atimers): Add extern declaration.
3827 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
3828
3829 * lisp.h (popup_activated_flag): Add extern declaration.
3830
3831 * xmenu.c (popup_activated_flag): Make externally visible.
3832 (popup_activate_callback) [USE_MOTIF]: Increment
3833 popup_activated_flag.
3834 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
3835
3836 * xterm.c (toplevel): Include atimer.h.
3837 (toolkit_scroll_bar_interaction): New variable.
3838 (Fxt_process_timeouts): Removed.
3839 (x_process_timeouts): New function.
3840 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
3841 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
3842 (x_make_frame_visible): Call poll_for_input_1 instead of
3843 input_poll_signal. Don't call alarm.
3844 (x_initialize): Install timer calling x_process_timeouts.
427ec082 3845
1e5279b9
DL
38462000-01-24 Dave Love <fx@gnu.org>
3847
6c67ddee 3848 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
1e5279b9
DL
3849 Don't use -cckr -- apparently not now necessary.
3850
edf6aeb8
EZ
38512000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
3852
3853 * msdos.c (IT_menu_display): Truncate long menu lines at the right
3854 screen boundary.
3855
9badad41
JR
38562000-01-23 Jason Rumney <jasonr@gnu.org>
3857
3858 * w32fns.c (w32_defined_color): Apply gamma correction before
3859 trying to map to the palette.
3860 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
3861 to w32_clear_rect.
3862
3863 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
3864 here. Callers changed to always pass real device context.
3865 (w32_draw_bitmap): Likewise.
3866 (w32_get_glyph_overhangs): Likewise.
3867 (w32_draw_box_rect): Make use of s->hdc rather than getting a new
3868 one.
3869 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
3870 pfnSetScrollInfo and SetScrollRange.
3871 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
3872 back into MULE characters after decoding them.
3873 (x_get_glyph_face_and_encoding): Likewise.
3874 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
3875 GetCharABCWidthsW fails, since this is defined on Windows 9x.
3876 (x_produce_glyphs): Calculate per char metrics for a character
3877 that we know exists in default font when font_not_found_p is true.
3878
63bd786b
JR
38792000-01-22 Jason Rumney <jasonr@gnu.org>
3880
3881 * makefile.nt (intervals.obj, composite.obj): New modules.
3882 (composite.h): Added as dependency where appropriate.
3883
3884 * w32gui.h (XGCValue): New struct for emulating X GCs.
3885
3886 * w32term.h (XCharStruct): New struct for emulating X.
3887
3888 * w32console.c (turn_on_face, turn_off_face): New functions.
3889 (change_line_highlight): New prototype for new redisplay.
3890 (write_glyphs): Support multibyte text. Support faces.
3891
3892 * w32faces.c: Complete rewrite for new redisplay based on new
3893 xfaces.c.
3894
3895 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
3896 throughout. struct frame * in place of FRAME_PTR.
3897 Skeleton support for images, toolbars, tooltips from xfns.c.
3898 (Fx_create_frame): Use system default for default scroll bar
3899 width.
3900 (w32_get_arg): Renamed from x_get_arg.
3901 (Fx_file_dialog): New function.
3902 (w32_list_fonts): Check cache before asking system.
3903 (Vw32_enable_synthesized_fonts): New variable.
3904 (Vw32_enable_italics): Obsolete, removed.
3905
3906 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
3907 Use SELECTED_FRAME macro.
3908
3909 * w32menu.c: Add skeleton support for help strings on menus.
3910 (add_menu_item): Native checkbox and radio support added, but not
3911 yet enabled due to bugs.
3912 (push_menu_item): Add parameters type, selection and help.
3913 Callers updated.
3914 Formatting changes to reduce unnecessary diffs with xmenu.c.
3915
3916 * w32select.c (Fw32_set_clipboard_data): Update call to
3917 find_charset_in_str.
3918
3919 * w32term.c: Complete rewrite for new redisplay based on new
3920 xterm.c with necessary sections merged back in from old w32term.c.
3921
6ffd3cf7 39222000-01-21 Richard M. Stallman <rms@gnu.org>
b50c9214
RS
3923
3924 * data.c (set_internal): Further fix in same criterion.
3925
6ffd3cf7 39262000-01-20 Richard M. Stallman <rms@gnu.org>
8cc95642
RS
3927
3928 * data.c (set_internal): Fix the criteria for whether
3929 to swap out the old cached binding.
3930
60af03f1
DL
39312000-01-19 Dave Love <fx@gnu.org>
3932
3933 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
3934
f9be074f
KH
39352000-01-18 Kenichi Handa <handa@etl.go.jp>
3936
3937 * regex.c (re_compile_fastmap): While checking a range table for
3938 `charset', skip flag bits for a character class correctly.
3939
52b8dbf9
GM
39402000-01-17 Gerd Moellmann <gerd@gnu.org>
3941
d36100c9
GM
3942 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
3943
52b8dbf9
GM
3944 * xfns.c (x_window): Call lw_create_widget with new parameter
3945 list.
3946
3947 * widget.c (EmacsFrameSetCharSize): Change size of children first
3948 because of problems with main window geometry management under
3949 Lesstif.
3950
3951 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
3952 MENU_ITEMS_ITEM_.*.
3953 (MENU_ITEMS_ITEM_HELP): New enumerator.
3954 (push_menu_item): Add parameter HELP. Record help in menu_items.
3955 (single_menu_item, single_submenu, list_of_items): Call
3956 push_menu_item with new parameter.
3957 (single_submenu): Set help string in widget value.
3958 (menu_highlight_callback): New function.
3959 (set_frame_menubar): Call lw_create_widget with new
3960 parameter list.
3961 (xmenu_show, xdialog_show): Ditto.
3962
3139018f
GM
39632000-01-13 Gerd Moellmann <gerd@gnu.org>
3964
3965 * sound.c (Fplay_sound): Improve doc string.
3966
83c8f461
RS
39672000-01-11 Richard M. Stallman <rms@gnu.org>
3968
3969 * lisp.h (set_internal): Enter the new arg.
3970
3971 * eval.c (specbind): Record buffer-local variables specially,
3972 indicating which buffer's binding was saved.
3973 (unbind_to): Restore buffer-local variables specially
3974 in the proper buffer.
3975
3976 * data.c (set_internal): New arg BUF.
427ec082 3977
83c8f461
RS
3978 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
3979 * data.c (Fset): Pass new arg to set_internal.
3980 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
427ec082 3981
1fab1775
GM
39822000-01-11 Gerd Moellmann <gerd@gnu.org>
3983
3984 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload,
3985 xprintsym.
3986
83c8f461 39872000-01-11 Richard M. Stallman <rms@gnu.org>
6f59462e
RS
3988
3989 * minibuf.c (Ftry_completion): Doc fix.
3990
7a85e4df
GM
39912000-01-11 Gerd Moellmann <gerd@gnu.org>
3992
3993 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
3994 vector, too.
3995
a970dae4
AS
39962000-01-11 Andreas Schwab <schwab@suse.de>
3997
3998 * coding.c (code_convert_region): Initialize total_skip.
3999
c65d14ee
DL
40002000-01-08 Dave Love <fx@gnu.org>
4001
4002 * eval.c (Fuser_variable_p): Check customizability too.
4003
834938d2
GM
40042000-01-07 Gerd Moellmann <gerd@gnu.org>
4005
4006 * minibuf.c (Fcompleting_read): Doc fix.
4007
e0303cd6
GM
40082000-01-05 Gerd Moellmann <gerd@gnu.org>
4009
8a26744b
GM
4010 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
4011 -L /usr/local/lib.
4012
e0303cd6
GM
4013 * xfns.c (x_create_im): New function to set IM and IC of a frame.
4014 Check that input style is supported before trying to create an
4015 IC for it.
4016 (x_window): Call x_create_im.
427ec082 4017
2e471eb5
GM
40182000-01-04 Gerd Moellmann <gerd@gnu.org>
4019
560a7bd2
GM
4020 * xfns.c (current_gif_memory_src): New variable.
4021 (gif_load): Record the address of the current memory source
4022 in current_gif_memory_src.
4023 (gif_read_from_memory): Use current_gif_memory_src.
4024
f9ee84a3
GM
4025 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
4026 macros statement form.
4027
d1299cde
GM
4028 * sound.c (struct sound): Renamed from struct sound_file.
4029 (struct sound): Add members `data' and `header_size'.
4030 (enum sound_attr): Add SOUND_DATA.
4031 (current_sound, current_sound_device): Variables renamed from
4032 sound_file and sound_device.
4033 (parse_sound): Parse :data.
4034 (parse_sound): Handle sound data in strings.
4035 (find_sound_type): Function renamed from find_sound_file_type.
427ec082 4036 (wav_init, au_init): Fail if sound's header_size is smaller than
d1299cde
GM
4037 needed header size.
4038 (wav_play, au_play): Play sounds from string data.
4039
2e471eb5
GM
4040 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
4041
4042 * lisp.h: Add prototype for allocate_string_data.
4043
4044 * alloc.c (Fgarbage_collect): Return number of live and free
4045 strings.
4046
4047 * alloc.c (mark_buffer): Remove code in #if 0.
4048 (gc_sweep): Ditto.
4049 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
4050 (strings_consed): New variable.
4051 (allocate_string): Set it.
4052 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
4053 (Fmemory_use_counts): Return strings_consed. Use Flist.
4054
4055 * alloc.c: General cleanup in comments etc. Remove conditional
4056 compilation for `standalone'.
4057
4058 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
4059
4060 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
4061 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
4062 (DONT_COPY_FLAG): Removed.
4063 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
4064 (struct sdata, struct sblock): New
4065 (struct string_block): Rewritten.
4066 (STRINGS_IN_STRING_BLOCK): New macro.
4067 (oldest_sblock, current_sblock, total_strings, total_free_strings)
4068 (large_sblocks, string_blocks, string_free_list): New variables.
4069 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
4070 (init_strings): Rewritten.
4071 (allocate_string, allocate_string_data, compact_small_strings)
4072 (free_large_strings, sweep_strings): New functions.
4073 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
4074 (struct string_block_head, current_string_block)
4075 (first_string_block, large_string_blocks, STRING_FULLSIZE)
4076 (STRING_PAD): Removed.
4077 (make_uninit_multibyte_string, make_pure_string): Rewritten.
4078 (Fgarbage_collect): Don't set mark bit in large strings.
4079 (mark_object): Mark strings differently. Mark symbol names
4080 differently.
4081 (survives_gc_p): Test marked strings differently.
427ec082 4082 (gc_sweep): Sweep strings differently, unmark strings in
2e471eb5
GM
4083 symbol names.
4084 (compact_strings): Removed.
4085
42608ba8
EZ
40862000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
4087
4088 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
4089 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
4090
e0a09e1a
KH
40912000-01-04 Kenichi Handa <handa@etl.go.jp>
4092
dd9f0750 4093 * fileio.c (Finsert_file_contents): Signal error if visiting file
427ec082 4094 in a non-empty buffer.
dd9f0750 4095
3c0f3b15 4096 * term.c (encode_terminal_code): Fix the previous change.
e0a09e1a 4097
44cd3ae5
GM
40982000-01-03 Gerd Moellmann <gerd@gnu.org>
4099
4100 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
4101 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
4102
4103 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
4104
c182a70f
EZ
41052000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
4106
4107 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
4108 need to test for MSDOS frames.
4109
24480d5b
EZ
41102000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
4111
4112 * dosfns.c (unspecified_colors): Remove.
4113 (msdos_stdcolor_idx): Use global variables unspecified_fg and
4114 unspecified_bg.
4115 (msdos_stdcolor_name): Return strings for unspecified fore- and
4116 back-ground colors.
4117
4118 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
aaf2320c 4119 (syms_of_xfaces): Remove their staticpro's.
24480d5b
EZ
4120 (tty_color_name): Return Lisp strings for unspecified fore- and
4121 back-ground colors.
4122 (Finternal_set_lisp_face_attribute): Remove the special treatment
4123 for Qunspecified_{f,b}g.
4124 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp
4125 string.
4126
047f434a
GM
41272000-01-03 Gerd Moellmann <gerd@gnu.org>
4128
4129 * xdisp.c (reseat_at_next_visible_line_start): Position before
4130 newline only if ending up on a newline.
4131 (next_element_from_ellipsis): Return success. Handle case of
4132 displaying no ellipsis. Fix case of ellipsis defined in display
4133 table.
4134 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
4135 returns 0.
4136
d684c676
EZ
41372000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
4138
4139 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
4140 (Fcolor_supported_p): Renamed from face-color-supported-p.
4141
5fe1d139
EZ
41422000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4143
4144 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
4145 list of colors renamed to tty-defined-color-alist.
4146 (tty_color_name): Pass the frame to tty-color-by-index.
4147 (realize_tty_face): tty-color-alist is now a function which
4148 accepts the frame as argument.
4149
4150 * term.c (Ftty_display_color_p): Accept an optional argument
4151 FRAME.
4152
816be8b8
EZ
41532000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4154
4155 * term.c (insert_glyphs): Pass glyph, not &glyph, to
4156 encode_terminal_code.
4157
b635321e
EZ
41582000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4159
4160 * dispnew.c (mode_line_string): Support termcap frames as well.
4161
9b784e96
GM
41622000-01-01 Gerd Moellmann <gerd@gnu.org>
4163
27189709
GM
4164 * syntax.c (Fforward_word): Undo previous change.
4165
4166 * editfns.c (Fconstrain_to_field): Don't constrain if
4167 inhibit-field-text-motion is non-nil.
4168 (Fline_beginning_position): Undo previous change.
4169 (Fline_end_position): Ditto.
4170
4171 * syntax.c (Fforward_word): Notice field boundaries only if
4172 inhibit-field-text-motion is nil.
4173
4174 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
4175
4176 * editfns.c (Vinhibit_field_text_motion): New variable.
4177 (inhibit-field-text-motion): New DEFVAR_LISP.
4178 (Fline_beginning_position, Fline_end_position): Notice field
4179 boundaries only if inhibit-field-text-motion is nil.
4180
45158a91
GM
4181 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
4182 All calls adjusted.
4183 (x_build_heuristic_mask): Likewise.
4184 (xbm_load_image_from_file): Change error output.
4185 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
4186 (gif_load, gs_load, x_kill_gs_process): Ditto.
4187
9b784e96
GM
4188 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
4189 color indices when accessing raster pixels.
63cec32f
GM
4190 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
4191 one of :file or :data.
4192 (enum pbm_keyword_index): Add PBM_DATA.
4193 (pbm_format): Add :data.
4194 (pbm_image_p): Allow either :file or :data.
4195 (pbm_read_file): New function.
4196 (pbm_scan_number): Rewritten to read from string.
4197 (pbm_load): Support :data.
9b784e96 4198
5ad6a5fb
GM
41991999-12-31 Gerd Moellmann <gerd@gnu.org>
4200
4201 * xfns.c: New image functions adapted to Emacs conventions.
4202 (png_load, tiff_load, jpeg_load, gif_load): Always GCPRO local
4203 variable `file'.
4204
63448a4d
WP
42051999-12-31 William M. Perry <wmperry@aventail.com>
4206
4207 * xfns.c (jpeg_format): Added the :data keyword
4208 (jpeg_image_p): JPEG is valid with :file _or_ :data
4209 (jpeg_memory_src): Defined new JPEG image source to read from a
4210 memory buffer.
4211 (jpeg_load): Pay attention to the :data keyword if specified.
4212 Instantiates a jpeg_memory_src instead of jpeg_stdio_src if
4213 found.
4214 (png_format): Added the :data keyword
4215 (png_image_p): PNG is valid with :file _or_ :data
4216 (png_read_from_memory): New PNG read function to read from a
4217 memory buffer.
4218 (png_load): Pay attention to the :data keyword if specified. Uses
4219 png_set_read_fn() instead of png_init_io() if specified.
4220 (tiff_format): Added the :data keyword for TIFF images.
4221 (tiff_image_p): TIFF is valid with :file _or_ :data
4222 (tiff_read_from_memory): Defined new TIFF I/O functions to read
4223 from a memory buffer.
4224 (tiff_load): Pay attention to the :data keyword if specified.
4225 Uses TIFFClientOpen() instead of TIFFOpen() if specified.
4226 (gif_format): Added the :data keyword
4227 (gif_image_p): GIF is valid with :file _or_ :data
4228 (gif_read_from_memory): New GIF input function to read from a
4229 memory buffer.
c65d14ee 4230 (gif_load): Pay attention to the :data keyword. Uses DGifOpen()
63448a4d
WP
4231 instead of DGifOpenFileName() if specified.
4232
c880678e
GM
42331999-12-31 Gerd Moellmann <gerd@gnu.org>
4234
4235 * xdisp.c (next_element_from_buffer): Change assertion at the end
4236 because it doesn't hold when there's an overlay string at the end
4237 from which we deliver an image.
4238
8ccb9a54
EZ
42391999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
4240
4241 * msdos.c (IT_update_begin): Don't dereference members of struct
4242 window for deleted windows.
4243
12ce2351
GM
42441999-12-30 Gerd Moellmann <gerd@gnu.org>
4245
a915c648
GM
4246 * abbrev.c (Fexpand_abbrev): If expanding an abbrev which has only
4247 a hook, and the hook has a non-nil `no-self-insert' property, let
4248 the return value of the hook specify whether an expansion took
4249 place. If it returns nil, no expansion has been performed.
4250
12ce2351
GM
4251 * xterm.c (x_make_frame_visible): Wait for frame becoming visible
4252 differently.
4253
04ee4f45
EZ
42541999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
4255
4256 * msdos.c (IT_write_glyphs): Track last changes to struct glyph.
4257
7f4bc0c3
EZ
42581999-12-29 Eli Zaretskii <eliz@is.elta.co.il>
4259
4260 * dispnew.c (mode_line_string): Support MS-DOS frames.
4261
dac204bc
GM
42621999-12-29 Gerd Moellmann <gerd@gnu.org>
4263
4264 * eval.c (syms_of_eval): Initialize debugger_may_continue.
4265
7b712ad8
KH
42661999-12-29 Kenichi Handa <handa@etl.go.jp>
4267
4268 * process.c (read_process_output): Fix the args CHARPOS and LENINS
4269 to signal_after_change.
4270
adb9900f
EZ
42711999-12-28 Eli Zaretskii <eliz@is.elta.co.il>
4272
41ad069b
EZ
4273 * msdos.c (dos_set_window_size) [__DJGPP__ > 1]: If the frame
4274 dimensions changed, invalidate the mouse highlight info.
4275 (disable_mouse_highlight, help_echo, previous_help_echo): New
4276 variables.
4277 (IT_set_mouse_pointer, show_mouse_face, clear_mouse_face)
4278 (fast_find_position, IT_note_mode_line_highlight)
4279 (IT_note_mouse_highlight): New functions.
4280 (IT_update_begin): If the redisplay affects the window where the
4281 mouse highlight is, clear the highlight. If the frame where the
4282 highlight was displayed was killed, invalidate the highlight
4283 info.
4284 (IT_update_end): Reset the highlight flag. Reset the mouse
4285 highlight-defer flag.
4286 (IT_frame_up_to_date): New function, if mouse highlight was
4287 deferred due to GC, do it now.
4288 (internal_terminal_init): Initialize mouse-highlight related
4289 members of the_only_x_display. Assign IT_frame_up_to_date to
4290 frame_up_to_date_hook.
4291 (dos_rawgetc): If the mouse moved, update mouse highlight. If
4292 help_echo changed value, generate a HELP_EVENT event.
4293 (syms_of_msdos): Staticpro help_echo and previous_help_echo.
4294
adb9900f
EZ
4295 * msdos.h (struct display_info): New.
4296 (struct x_output): Add the display_info member.
4297 (FRAME_X_DISPLAY_INFO): New macro.
4298
481b5054
GM
42991999-12-28 Gerd Moellmann <gerd@gnu.org>
4300
4301 * xdisp.c (try_window_id): Compute BEG_UNCHANGED and END_UNCHANGED
4302 if MODIFF > 1.
6448a6b3 4303 (dump_glyph_row): Adapt to changes in struct glyph.
481b5054
GM
4304
4305 * buffer.c (modify_overlay): Always compute unchanged info.
4306
a2882b0d
KH
43071999-12-27 Kenichi Handa <handa@etl.go.jp>
4308
4309 * dispextern.h (FACE_FROM_ID): Cast the arg ID to `unsigned'.
4310
89ba5b5f
KH
43111999-12-27 Kenichi Handa <handa@etl.go.jp>
4312
4313 The following changes are to use more bits for face IDs.
4314
4315 * lisp.h (GLYPH): Defined as `int', not `unsigned int'. Now the
4316 lowest 8 bits are single byte character code, the bits above are
4317 face ID.
481b5054 4318 (GLYPH_MASK_FACE, GLYPH_MASK_CHAR): Adjusted for the change
89ba5b5f 4319 above.
481b5054
GM
4320 (FAST_MAKE_GLYPH, FSST_GLYPH_FACE): Likewise.
4321 (GLYPH_MASK_REV_DIR, GLYPH_MASK_PADDING): Macros deleted.
89ba5b5f
KH
4322
4323 * charset.h (CHAR_BYTES): Use ((1 << CHARACTERBITS) - 1) instead
4324 of GLYPH_MASK_CHAR.
4325
4326 * charset.c (char_bytes): Use ((1 << CHARACTERBITS) - 1) instead
4327 of GLYPH_MASK_CHAR.
4328
4329 * dispextern.h (struct glyph): Make face_id and padding_p the top
4330 level members. Change members in union `u'.
4331 (GLYPH_EQUAL_P): Check also members face_id and padding_p.
4332 (GLYPH_CHAR_AND_FACE_EQUAL_P): New macro.
4333 (SET_CHAR_GLYPH): Adjusted for the change of struct glyph.
4334 (CHAR_GLYPH_PADDING_P): Likewise.
4335 (GLYPH_FROM_CHAR_GLYPH): Likewise. Always return -1 for multibyte
4336 characters.
4337
481b5054 4338 * dispnew.c (line_hash_code, direct_output_for_insert): Adjusted
89ba5b5f
KH
4339 for the change of struct glyph.
4340 (line_draw_cost): Adjusted for the change of
4341 GLYPH_FROM_CHAR_GLYPH.
4342 (count_match): Use macro GLYPH_CHAR_AND_FACE_EQUAL_P.
4343
4344 * term.c (encode_terminal_code): Adjusted for the change of struct
4345 glyph and GLYPH_FROM_CHAR_GLYPH.
481b5054 4346 (write_glyphs, insert_glyphs, append_glyph): Adjusted for the
89ba5b5f
KH
4347 change of struct glyph.
4348
4349 * xdisp.c: All codes adjusted for the change of struct glyph.
4350
4351 * xterm.c: All codes adjusted for the change of struct glyph.
4352
5bcd116c
KH
43531999-12-27 Kenichi Handa <handa@etl.go.jp>
4354
4355 * composite.h (struct composition): Change the order of declaring
4356 members to reduce the byte size of the structure.
4357
f21b06b7
GM
43581999-12-25 Gerd Moellmann <gerd@gnu.org>
4359
4360 * search.c (looking_at_1): Reset immediate_quit before modifying
4361 global data.
4362
e36557c9
KH
43631999-12-24 Kenichi Handa <handa@etl.go.jp>
4364
4365 * process.c (read_process_output): Fix the arg FROM to
4366 update_compositions.
4367
83c8f461 43681999-12-22 Richard M. Stallman <rms@gnu.org>
f7c9e039
RS
4369
4370 * search.c (Freplace_match): For nonliteral replacement in buffer,
4371 construct all the new text first, then insert all at once.
4372
0b863bd9
DL
43731999-12-22 Dave Love <fx@gnu.org>
4374
4375 * xfns.c (Fx_show_tip): Gcpro `timeout' too.
4376
6d8e8ef3
GM
43771999-12-22 Gerd Moellmann <gerd@gnu.org>
4378
28d7281d
GM
4379 * xfns.c (Fx_create_frame): Move x_default_parameter calls that
4380 lead to size changes to after the X window has been created.
4381
e22ef6eb 4382 * xfaces.c (realize_x_face): Don't use uninitialized local
6d8e8ef3
GM
4383 variable in xassert.
4384
8affcced
KH
43851999-12-22 Kenichi Handa <handa@etl.go.jp>
4386
4387 * xfaces.c (face_color_supported_p): Check by tty_defined_color
6d8e8ef3 4388 only when the frame is not for a window system.
8affcced 4389
f2be1146
GM
43901999-12-22 Gerd Moellmann <gerd@gnu.org>
4391
deca1348
GM
4392 * buffer.c (Fset_buffer_multibyte): Arrange for a thorough
4393 redisplay after changing the multibyteness of a buffer.
4394
f2be1146
GM
4395 * xterm.c (XTread_socket): At the beginning of the loop, pass the
4396 frame's X window to XFilterEvent instead of None because that's
4397 the X window for which the IC was created. This makes dead
4398 accents work when the pointer is not in Emacs' frame.
4399 (XTread_socket) <KeyPress>: Don't call XFilterEvent here.
4400
a744a2ec
DL
44011999-12-20 Dave Love <fx@gnu.org>
4402
4403 * xfns.c (Fx_show_tip): Add missing UNGCPRO.
4404
9e6985ed
GM
44051999-12-19 Gerd Moellmann <gerd@gnu.org>
4406
4407 * eval.c (debugger_may_continue): New variable.
4408 (syms_of_eval): Add a DEFVAR_BOOL for it.
4409 (call_debugger): Bind it.
4410
3b620731
EZ
44111999-12-19 Eli Zaretskii <eliz@is.elta.co.il>
4412
4413 * msdos.c (IT_set_face): Don't swap face colors when highlight or
4414 fp->tty_reverse_p is set, unless the computed colors are identical
4415 to frame colors. Print both original and computed colors to
4416 termscript file.
4417 (IT_write_glyphs): Track the changes in handling of composite
4418 characters.
4419 (IT_set_frame_parameters): Don't set frame colors from
4420 unspecified-fg and unspecified-bg pseudo-colors.
4421
0f9a51c4
DL
44221999-12-17 Dave Love <fx@gnu.org>
4423
4424 * data.c (Fkeywordp): New function.
4425 (syms_of_data): Install it.
4426
363e4e42
EZ
44271999-12-16 Eli Zaretskii <eliz@is.elta.co.il>
4428
4429 * xfaces.c (tty_defined_color): Fix last change.
4430
cfad01b4
GM
44311999-12-15 Gerd Moellmann <gerd@gnu.org>
4432
4433 * xdisp.c (redisplay_window) <optional new window start>: Check
4434 that window start is in [BEGV..ZV].
4435
f9d2fdc4
EZ
44361999-12-15 Eli Zaretskii <eliz@is.elta.co.il>
4437
4438 * dispextern.h (FACE_TTY_DEFAULT_FG_COLOR)
4439 (FACE_TTY_DEFAULT_BG_COLOR): New macros.
4440
4441 * xfaces.c (Qunspecified_fg, Qunspecified_bg): New variables.
4442 (syms_of_xfaces): Initialize and staticpro them.
4443 (tty_defined_color): If the color name is unspecified-fg or
4444 unspecified-bg, return FACE_TTY_DEFAULT_FG_COLOR and
4445 FACE_TTY_DEFAULT_BG_COLOR, respectively, as the pixel value.
4446 (tty_color_name): If the color pixel value is either
4447 FACE_TTY_DEFAULT_FG_COLOR or FACE_TTY_DEFAULT_BG_COLOR, return
4448 Qunspecified_fg or Qunspecified_bg, respectively.
4449 (Finternal_set_lisp_face_attribute): Allow values Qunspecified_fg
4450 and Qunspecified_bg for foreground and background colors.
4451 (realize_default_face): If the foreground and background colors
4452 are not specified, default to Qunspecified_fg and Qunspecified_bg.
4453 (realize_tty_face): By default, set the face colors to
4454 FACE_TTY_DEFAULT_FG_COLOR and FACE_TTY_DEFAULT_BG_COLOR.
4455 [MSDOS]: Handle FACE_TTY_DEFAULT_FG_COLOR and
4456 FACE_TTY_DEFAULT_BG_COLOR when face colors are not defined.
4457 Reverse the colors if the default colors were reversed.
4458
4459 * dispnew.c (init_display): Initialize the frame pixels of the
4460 initial frame to FACE_TTY_DEFAULT_FG_COLOR and
4461 FACE_TTY_DEFAULT_BG_COLOR.
4462
4463 * term.c (turn_on_face): If the default fore- and background
4464 colors are reversed, enter inverse video mode. Don't send color
4465 escape sequences for unspecified foreground and background colors.
4466 (turn_off_face): Handle unspecified-fg and unspecified-bg colors.
4467
4468 * dosfns.c (unspecified_colors): New variable.
4469 (msdos_stdcolor_idx): Handle unspecified-fg and unspecified-bg
4470 color names, return FACE_TTY_DEFAULT_FG_COLOR and
4471 FACE_TTY_DEFAULT_BG_COLOR, respectively.
4472 (msdos_stdcolor_name): Handle FACE_TTY_DEFAULT_FG_COLOR and
4473 FACE_TTY_DEFAULT_BG_COLOR, return Qunspecified_fg and
4474 Qunspecified_bg, respectively.
4475
4476 * msdos.c (IT_set_face): Support FACE_TTY_DEFAULT_FG_COLOR and
4477 FACE_TTY_DEFAULT_BG_COLOR as pixel values.
4478
e19539f1
KH
44791999-12-15 Kenichi Handa <handa@etl.go.jp>
4480
4481 * coding.c (code_convert_region): Fix the secoding arg to
4482 update_compositions.
4483
5ec14d3c
KH
44841999-12-15 Kenichi Handa <handa@etl.go.jp>
4485
4486 The following changes are for the new composition mechanism. We
4487 have deleted `composition' charset and composite characters,
4488 instead introduced a special text property `composition'.
4489
4490 * Makefile.in (INTERVAL_SRC): Include composite.h.
4491 (INTERVAL_OBJ): Include composite.o.
4492 (SOME_MACHINE_OBJECTS): Include composite.o.
4493 (casefiddle.o) (dispnew.o) (indent.o) (process.o) (search.o)
4494 (syntax.o) (window.o) (xdisp.o) (xfaces.o) (xterm.o) (print.o):
4495 Depend on composite.h.
4496 (doc.o): Depend on charset.h.
4497 (keyboard.o) (textprop.o) (intervals.o): Depend on INTERVAL_SRC.
4498 (composite.o): New target.
427ec082 4499
5ec14d3c
KH
4500 * alloc.c (Fmake_string): Adjusted for the change of CHAR_STRING.
4501
4502 * callproc.c (Fcall_process): Call code_convert_string to encode
4503 arguments. Use CODING_REQUIRE_DECODING to check if the process
4504 output should be decoded.
4505
4506 * casefiddle.c: Include composite.h.
4507 (casify_object): Use MAX_MULTIBYTE_LENGTH to allocate memory for a
4508 multibyte character. Adjusted for the change of CHAR_STRING.
4509 (casify_region): Likewise. Call update_compositions.
4510
4511 * category.h (CATEGORY_SET): Delete codes for a composite
4512 character.
4513
4514 * category.c (word_boundary_p): Delete codes for a composite
4515 character.
4516 (Fmake_category_table): New function.
4517 (syms_of_category): Defsubr it.
4518
4519 * ccl.c (CCL_WRITE_CHAR): Adjusted for the change of CHAR_STRING.
4520 (ccl_driver): Delete codes for a composite character.
4521
4522 * charset.h: In this entry, just `Modified' means that codes for a
4523 composite character is deleted.
4524 (LEADING_CODE_COMPOSITION) (CHARSET_COMPOSITION)
4525 (charset_composition) (MIN_CHAR_COMPOSITION)
4526 (MAX_CHAR_COMPOSITION) (GENERIC_COMPOSITION_CHAR)
4527 (COMPOSITE_CHAR_P) (MAKE_COMPOSITE_CHAR) (COMPOSITE_CHAR_ID)
4528 (PARSE_COMPOSITE_SEQ) (PARSE_CHARACTER_SEQ): Deleted.
4529 (MAX_CHAR) (CHARSET_VALID_P) (CHARSET_DEFINED_P) (CHARSET_AT)
4530 (FIRST_CHARSET_AT) (SAME_CHARSET_P) (MAKE_NON_ASCII_CHAR)
4531 (PARSE_MULTIBYTE_SEQ) (SPLIT_NON_ASCII_CHAR) (CHAR_PRINTABLE_P):
4532 Modified.
4533 (SPLIT_STRING): Call split_string, not split_non_ascii_string.
4534 (CHAR_STRING): Delete WORKBUF argument. Call char_string, not
4535 non_ascii_char_to_string.
4536 (STRING_CHAR): Call string_to_char, not string_to_non_ascii_char.
4537 (STRING_CHAR_AND_LENGTH): Likewise.
4538 (FETCH_CHAR_ADVANCE): New macro.
4539 (MAX_COMPONENT_COUNT) (struct cmpchar_info): Deleted.
4540 (MAX_MULTIBYTE_LENGTH): New macro.
4541 (MAX_LENGTH_OF_MULTI_BYTE_FORM): Deleted.
4542 (find_charset_in_str): Argument adjusted.
4543 (CHAR_LEN): Modified.
427ec082 4544
5ec14d3c
KH
4545 * charset.c: In this entry, just `Modified' means that codes for a
4546 composite character is deleted.
4547 (Qcomposition) (leading_code_composition)
4548 (charset_composition) (min_composite_char) (cmpchar_table)
4549 (cmpchar_table_size) (n_cmpchars): Deleted.
4550 (SPLIT_COMPOSITE_SEQ): Deleted.
4551 (SPLIT_MULTIBYTE_SEQ): Modified.
4552 (char_to_string): Renamed from non_ascii_char_to_string.
4553 Modified.
4554 (string_to_char): Renamed from string_to_non_ascii_char.
4555 (split_string): Renamed from split_non_ascii_string.
4556 (char_printable_p) (Fsplit_char)
4557 (Ffind_charset_region) (Ffind_charset_string) (char_valid_p)
4558 (char_bytes) (Fchar_width) (strwidth): Modified.
4559 (find_charset_in_str): Argument CMPCHARP deleted. Modified.
4560 (Fstring): Adjusted for the change of CHAR_STRING. Modified.
4561 (hash_string) (CMPCHAR_HASH_TABLE_SIZE) (cmpchar_hash_table)
4562 (CMPCHAR_HASH_SIZE) (CMPCHAR_HASH_USED) (CMPCHAR_HASH_CMPCHAR_ID)
4563 (str_cmpchar_id) (cmpchar_component) (Fcmpcharp)
4564 (Fcmpchar_component) (Fcmpchar_cmp_rule) (Fcmpchar_cmp_rule_p)
4565 (Fcmpchar_cmp_count): Deleted.
4566 (Fcompose_string): Implemented by Emacs Lisp in composite.el.
4567 (init_charset_once): Modified.
4568 (syms_of_charset): Modified.
4569
4570 * cmds.c (internal_self_insert): Adjusted for the change of
4571 CHAR_STRING.
4572
4573 * coding.h (emacs_code_class_type): Delete the member
4574 EMACS_leading_code_composition.
4575 (COMPOSING_NO) (COMPOSING_WITH_RULE_HEAD) (COMPOSING_NO_RULE_HEAD)
4576 (COMPOSING_WITH_RULE_TAIL) (COMPOSING_NO_RULE_TAIL)
4577 (COMPOSING_WITH_RULE_RULE) (COMPOSING_HEAD_P)
4578 (COMPOSING_WITH_RULE_P): Macros deleted.
4579 (COMPOSITION_DATA_SIZE) (COMPOSITION_DATA_MAX_BUNCH_LENGTH): New
4580 macros.
4581 (struct composition_data): New structure.
4582 (CODING_FINISH_INSUFFICIENT_CMP): New macro.
4583 (struct coding_system): New members composition_rule_follows,
4584 cmp_data, cmp_data_start, cmp_data_index.
4585 (coding_save_composition) (coding_free_composition_data)
4586 (coding_adjust_composition_offset): Extern them.
4587
4588 * coding.c: Include composite.h.
4589 (DECODE_CHARACTER_ASCII): Don't handle composition here.
4590 (DECODE_CHARACTER_DIMENSION1): Likewise. Don't check the validity
4591 of multibyte code here.
4592 (DECODE_CHARACTER_DIMENSION2): Likewise.
4593 (detect_coding_emacs_mule): Change the case label from
4594 EMACS_leading_code_composition to 0x80.
4595 (detect_coding_iso2022): Handle new composition sequence.
4596 (DECODE_ISO_CHARACTER): Likewise.
4597 (check_composing_code): Deleted.
4598 (coding_allocate_composition_data): New function.
4599 (CODING_ADD_COMPOSITION_START) (CODING_ADD_COMPOSITION_END)
4600 (CODING_ADD_COMPOSITION_COMPONENT) (DECODE_COMPOSITION_START)
4601 (DECODE_COMPOSITION_END) (DECODE_COMPOSITION_RULE): New macros.
4602 (decode_coding_iso2022): Handle new composition sequence.
4603 (ENCODE_ISO_CHARACTER): Don't check composition here.
4604 (ENCODE_COMPOSITION_RULE) (ENCODE_COMPOSITION_START): New macros.
4605 (ENCODE_COMPOSITION_NO_RULE_START)
4606 (ENCODE_COMPOSITION_WITH_RULE_START): Deleted.
4607 (ENCODE_COMPOSITION_END): Handle new composition sequence.
4608 (ENCODE_COMPOSITION_FAKE_START): New macro.
4609 (encode_coding_iso2022): Handle new composition sequence.
4610 (ENCODE_SJIS_BIG5_CHARACTER): Delete superfluous `;' at the tail.
4611 (encode_coding_sjis_big5): Ignore composition.
4612 (setup_coding_system): Initialize new members of struct
4613 coding_system. Enable composition only when the coding system has
4614 `composition' property t.
4615 (coding_free_composition_data) (coding_adjust_composition_offset)
4616 (coding_save_composition) (coding_restore_composition): New
4617 functions.
4618 (code_convert_region): Call coding_save_composition for encoding
4619 and coding_allocate_composition_data for decoding. Don't skip
4620 ASCII characters if we handle composition on encoding. Call
4621 signal_after_change with Check_BORDER.
4622 (code_convert_string): Call coding_save_composition for encoding
4623 and coding_allocate_composition_data for decoding. Don't skip
4624 ASCII characters if we handle composition on encoding.
4625 (code_convert_string1): Set Vlast_coding_system_used after calling
4626 code_convert_string.
4627 (code_convert_string_norecord): Disable composition.
4628 (Fset_terminal_coding_system_internal): Likewise.
4629 (Fset_safe_terminal_coding_system_internal): Likewise.
4630 (Fset_keyboard_coding_system_internal): Likewise.
4631 (init_coding_once): Set emacs_code_class[0x80] to
4632 EMACS_invalid_code.
4633
4634 * composite.h: New file.
4635
4636 * composite.c: New file.
4637
4638 * data.c (Faref): Delete codes for a composite character..
4639 (Faset): Likewise. Adjusted for the change of CHAR_STRING.
4640
4641 * dispextern.h (enum glyph_type): New member COMPOSITE_GLYPH.
4642 (struct glyph): Add new sub-structure cmp to the union `u'.
4643 (enum display_element_type): New member IT_COMPOSITION.
4644 (enum prop_idx): New member COMPOSITION_PROP_IDX.
4645 (struct it): New members cmp_id, cmp_len.
4646
4647 * dispnew.c (direct_output_forward_char): Check point moving into
4648 or out of a composition. If so, give up direct method.
4649
4650 * doprnt.c (doprnt1): Adjusted for the change of CHAR_STRING.
4651
4652 * editfns.c (Fchar_to_string): Adjusted for the change of
4653 CHAR_STRING.
4654 (general_insert_function): Likewise.
4655 (Finsert_char): Likewise.
4656 (Fsubst_char_in_region): Likewise. Call update_compositions.
4657 (Ftranslate_region): Call update_compositions.
4658 (Ftranspose_regions): Call update_compositions.
4659
4660 * emacs.c (main): Call syms_of_composite.
4661
4662 * fileio.c (Fsubstitute_in_file_name): Adjusted for the change of
4663 CHAR_STRING.
4664 (Finsert_file_contents): Set Vlast_coding_system_used before
4665 calling signal_after_change. Call update_compositions if some
4666 texts are inserted..
4667 (Fwrite_region): Adjusted for the change of a_write and e_write.
4668 (a_write): Argument changed. Work based on character position,
4669 not byte position.
4670 (e_write): Argument changed. Handle new way of composition.
4671
4672 * fns.c (Flength): The length of char-table is MAX_CHAR.
4673 (concat): Adjusted for the change of CHAR_STRING.
4674 (Ffillarray): Adjusted for the change of CHAR_STRING.
4675 (Fset_char_table_default): Delete codes for a composite character.
4676 (hash_put): Return hash index.
4677
4678 * fontset.h (struct font_info): New member vertical_centering.
4679 (Vvertical_centering_font_regexp): Extern it.
4680
4681 * fontset.c (Vvertical_centering_font_regexp): New variable.
4682 (syms_of_fontset): Declare it as a Lisp variable and initialize.
4683 Set Vignore_relative_composition to nil.
4684 (fs_load_font): Initialize `vertical_centering' of struct
4685 font_info.
4686
4687 * indent.c (check_composition): New function.
4688 (MULTIBYTE_BYTES_WIDTH): Call STRING_CHAR_AND_LENGTH with
4689 MAX_MULTIBYTE_LENGTH, not MAX_LENGTH_OF_MULTI_BYTE_FORM.
4690 (current_column_1): Handle new way of composition.
4691 (Fmove_to_column): Likewise.
4692 (compute_motion): Likewise.
4693
4694 * insdel.c (copy_text): Adjusted for the change of CHAR_STRING.
4695 (insert_char): Likewise.
4696 (insert): Call update_compositions.
4697 (insert_and_inherit): Likewise.
4698 (insert_before_markers): Likewise.
4699 (insert_before_markers_and_inherit): Likewise.
4700 (insert_from_string): Likewise.
4701 (insert_from_string_before_markers): Likewise.
4702 (insert_from_buffer): Likewise.
4703 (replace_range): Likewise.
4704 (count_combining_composition): Deleted.
4705 (count_combining_before): Delete codes for a composite character.
4706 (count_combining_after): Likewise.
4707 (del_range_1): Call update_compositions.
4708 (del_range_byte): Likewise.
4709 (del_range_both): Likewise.
4710 (Fcombine_after_change_execute): Likewise.
4711
4712 * intervals.h: Include composite.h.
4713 (get_property_and_range): Extern it.
4714 (Vtext_property_default_nonsticky): Extern it.
427ec082 4715
5ec14d3c
KH
4716 * intervals.c (adjust_intervals_for_insertion): To check stickines
4717 of properties, pay attention to text-property-default-nonsticky.
4718 (merge_properties_sticky): Likewise.
4719 (get_property_and_range): New function.
4720
4721 * keyboard.c (Vdisable_point_adjustment): New variable.
4722 (Vglobal_disable_point_adjustment): New variable.
4723 (syms_of_keyboard): Declare them as Lisp variables.
4724 (command_loop_1): Check them and call adjust_point_for_property if
4725 necessary.
4726 (adjust_point_for_property): New function.
4727
4728 * keymap.c (push_key_description): Adjusted for the change of
4729 CHAR_STRING.
4730 (Ftext_char_description): Likewise.
4731
4732 * lisp.h (QCtest, QCweakness, Qequal): Extern them.
4733 (hash_put): Adjusted for the change of the definition.
4734 (signal_after_change): Likewise.
4735 (check_point_in_composition): Extern it.
4736
4737 * lread.c (readchar): Adjusted for the change of CHAR_STRING.
4738 Delete a code that handles an invalid too-long multibyte sequence
4739 because we are now sure that we never encounter with such a
4740 sequence.
4741 (read_multibyte): Use macro MAX_MULTIBYTE_LENGTH, not
4742 MAX_LENGTH_OF_MULTI_BYTE_FORM.
4743 (init_obarray): Likewise.
4744 (read1): Likewise. Adjusted for the change of CHAR_STRING.
4745
4746 * print.c (printchar): Adjusted for the change of CHAR_STRING.
4747
4748 * process.c: Include composite.h.
4749 (read_process_output): Call update_compositions.
4750
4751 * regex.c (regex_compile): Adjusted for the change of CHAR_STRING.
4752
4753 * search.c (search_buffer): Adjusted for the change of CHAR_STRING.
4754
4755 * syntax.h (SYNTAX_ENTRY_INT): Delete codes for a composite
4756 character.
4757
4758 * term.c (encode_terminal_code): Delete codes for a composite
4759 character. Adjusted for the change of CHAR_STRING.
4760 (produce_glyphs): When called, it->what can be IT_COMPOSITION.
4761 Delete codes for a composite character.
4762
4763 * textprop.c (Vtext_property_default_nonsticky): New variable
4764 (syms_of_textprop): Declare it as a Lisp variable.
4765
4766 * window.c (Frecenter): Clear all caches of compositions.
4767
4768 * xdisp.c (it_props): Add an entry for composition.
4769 (face_before_or_after_it_pos): For composition, check face of a
4770 character after the composition.
4771 (handle_composition_prop): New function.
4772 (get_next_display_element): Adjusted for the change of
4773 CHAR_STRING.
4774 (set_iterator_to_next): Handle the case that it->method ==
4775 next_element_from_composition.
4776 (next_element_from_composition): New function.
4777 (message_dolog): Adjusted for the change of CHAR_STRING.
4778 (set_message_1): Likewise.
4779 (check_point_in_composition): New function.
4780 (reconsider_clip_changes): If point moved into or out of
4781 composition, set b->clip_changed to 1 to force updating of the
4782 screen.
4783 (disp_char_vector): Delete codes for a composite character.
4784 (decode_mode_spec_coding): Adjusted for the change of CHAR_STRING.
4785
4786 * xfaces.c (choose_face_fontset_font): Delete codes for a
4787 composite character.
4788 (realize_x_face): Likewise. Change a place to set local variable
4789 `f' to avoid a bug of GCC 2.8.1 on Solaris.
4790
4791 * xfns.c: Include intervals.h.
4792 (syms_of_xfns): Make `display' property nonsticky by default.
4793
4794 * xselect.c (lisp_data_to_selection_data): Adjusted for the change
4795 for find_charset_in_str.
4796
4797 * xterm.h (struct x_output): Change member font_baseline to
4798 baseline_offset.
4799
4800 * xterm.c (x_append_glyph): Setup members of struct glyph properly
4801 for composition.
4802 (x_append_composite_glyph): New function.
4803 (VCENTER_BASELINE_OFFSET): New macro.
4804 (x_produce_glyphs): If it->what == IT_COMPOSITION, setup members
4805 of struct it for the composition. Cache pixel offsets in the
4806 struct composition. Delete codes for a composite character.
4807 Handle Vignore_relative_composition in composition code.
4808 (struct glyph_string): Delete member cmpcharp, add new member cmp.
4809 (x_set_cursor_gc): Check s->cmp, not s->cmpcharp.
4810 (x_compute_glyph_string_overhangs): Likewise.
4811 (x_get_glyph_overhangs): Delete codes for a composite character.
4812 (x_right_overwritten): Check s->cmp, not s->cmpcharp.
4813 (x_draw_glyph_string_background): Likewise. Delete codes for
4814 checking s->gidx for a composition.
4815 (x_draw_glyph_string_foreground): Delete code for a composite
4816 character.
4817 (x_draw_composite_glyph_string_foreground): New function.
4818 (x_draw_glyph_string_box): Check s->cmp, not s->cmpcharp.
4819 (x_draw_glyph_string): Handle the case of COMPOSITE_GLYPH.
4820 (struct work): Deleted.
4821 (x_fill_composite_glyph_string): Argument changed. Mostly
4822 rewritten for that.
4823 (x_fill_glyph_string): Don't check CHARSET_COMPOSITION.
4824 (BUILD_CHAR_GLYPH_STRINGS): Don't handle composition here.
4825 (BUILD_COMPOSITE_GLYPH_STRING): New macro.
4826 (BUILD_GLYPH_STRINGS): For composition, call
4827 BUILD_COMPOSITE_GLYPH_STRING.
4828 (x_new_font): Initialize f->output_data.x->baseline_offset, not
4829 f->output_data.x->font_baseline.
4830
c3c60f13
GM
48311999-12-14 Gerd Moellmann <gerd@gnu.org>
4832
4833 * xterm.c (show_mouse_face): Don't use updated_area, use
4834 TEXT_AREA.
4835
83c8f461 48361999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
4837
4838 * minibuf.c (Fall_completions): Doc fix.
4839
83c8f461 48401999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
4841
4842 * macros.c (Fstart_kbd_macro): Handle case where last-kbd-macro
4843 has been changed by the Lisp code.
4844
d8eccf12
GM
48451999-12-12 Gerd Moellmann <gerd@gnu.org>
4846
4847 * xfns.c: Indentation fixes.
4848
ae56feae
SM
48491999-12-10 Stefan Monnier <monnier@cs.yale.edu>
4850
4851 * xterm.c (x_initialize): Only setup xaw3d_* if they've been declared.
4852
dfa1c6ae
GM
48531999-12-10 Gerd Moellmann <gerd@gnu.org>
4854
4855 * frame.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL)
4856 [!MSDOS && !WINDOWSNT && !macintosh]: Moved here from xterm.h.
4857
4858 * xterm.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL): Moved
4859 to frame.h.
4860
ec18280f
SM
48611999-12-09 Stefan Monnier <monnier@cs.yale.edu>
4862
4863 * keyboard.c (Qratio): New symbol.
4864 (scroll_bar_parts): Add `Qratio' to it.
4865 (syms_of_keyboard): Init `Qratio'.
4866 * termhooks.h (scroll_bar_part): Add `scroll_bar_move_ratio'.
4867 * xterm.c (#includes): Allow compilation with only Xaw.
4868 (xaw3d_arrow_scroll, xaw3d_pick_top): New variables.
4869 (xt_action_hook): Replace XAW3D by XAW.
4870 (xaw3d_jump_callback): Renamed to xaw_jump_callback.
4871 (xaw_jump_callback): Renamed from xaw3d_jump_callback.
4872 Determine epsilon dynamically and don't try to be too clever.
4873 (xaw3d_scroll_callback): Renamed to xaw_scroll_callback.
4874 (xaw_scroll_callback): Renamed from xaw3d_scroll_callback.
4875 Handle both Xaw3d with arrow-scrollbars and with Xaw-style
4876 scrollbar (using `ratio').
4877 (x_create_toolkit_scroll_bar): Try to detect which style of Xaw3d
4878 scrollbar we have so as to set it up more optimally and to fix
4879 xaw3d_arrow_scroll and xaw3d_pick_top.
4880 (x_set_toolkit_scroll_bar_thumb): Try to maintain 2 spare pixels at the
4881 bottom of the Xaw3d scrollbar, to work around its tendency to refuse
4882 shrinking the thumb. Also make sure that `XawScrollbarSetThumb'
4883 is not ignored, using a major gross hack.
4884 (x_initialize): Init default values for xaw3d_arrow_scroll and
4885 xaw3d_pick_top.
4886
83b6d970
DL
48871999-12-09 Dave Love <fx@gnu.org>
4888
4889 * frame.h: (PIX_TYPE) [! HAVE_X_WINDOWS]: Define PIX_TYPE.
4890
3648c842
GM
48911999-12-08 Gerd Moellmann <gerd@gnu.org>
4892
4893 * eval.c: Remove conditional compilation on `standalone'.
4894 (call_debugger): When entering the debugger while redisplaying,
4895 reset redisplaying_p, and go back to the top-level if the debugger
4896 returns.
4897
05e71564
GM
48981999-12-07 Gerd Moellmann <gerd@gnu.org>
4899
4900 * xfaces.c (x_set_menu_resources_from_menu_face): Make sure
4901 basic faces are realized before trying to use face `menu'.
4902
4903 * window.c (delete_window): Block input for the time window
4904 matrices are being changed.
4905
b46cd536
DL
49061999-12-07 Dave Love <fx@gnu.org>
4907
4908 * lread.c (Fintern_soft): Fix newlines in doc string.
4909
96acb1f7
GM
49101999-12-07 Alexandre Oliva <oliva@dcc.unicamp.br>
4911
4912 * unexelf.c: Include <syms.h>, not <sym.h> on IRIX. Removed
4913 duplicate definition of ElfW.
4914 (find_section): Copied from unexsgi.c.
4915 (unexec): Use find_section. Adjust whitespace. Initialize
4916 new_data2_offset based on old_data, not sbss (this fixes a bug on
4917 IRIX6). Change #ifdef __mips to __sgi, since it's IRIX-specific.
4918 Adjust test for presence of .mdebug section to the new return
4919 value of find_section.
427ec082 4920
96acb1f7
GM
49211999-12-07 Gerd Moellmann <gerd@gnu.org>
4922
4923 * unexelf.c: Merge changes from 20.5.
4924 (unexec): Handle .lit4 and .lit8 unconditionally.
4925
4926 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexelf.o instead of
4927 unexsgi.o again.
427ec082 4928
96acb1f7
GM
4929 * m/iris5d.h (UNEXEC): Likewise.
4930
7dae4502
SM
49311999-12-06 Stefan Monnier <monnier@cs.yale.edu>
4932
4933 * editfns.c (Fdelete_and_extract_region): New function.
05e71564
GM
4934 (syms_of_editfns): Register it.
4935 * insdel.c (del_range): Update del_range_1 call.
7dae4502
SM
4936 (del_range_1, del_range_2): Add a ret_string argument to
4937 request that the deleted text be returned.
4938 (del_range_byte, del_range_both): Update del_range_2 call.
05e71564 4939 * lisp.h (del_range_1, del_range_2): Change prototype
7dae4502
SM
4940 * casefiddle.c (casify_region): Update del_range_1 call.
4941 * coding.c (code_convert_region): Update del_range_2 call.
4942 * fileio.c (Finsert_file_contents): Update del_range_2 call.
4943
397e4fae
GM
49441999-12-06 Gerd Moellmann <gerd@gnu.org>
4945
4946 * xfaces.c (set_lface_from_font_name): Fix incomplete merge.
4947
3d973f71
GM
49481999-12-04 Hrvoje Niksic <hniksic@iskon.hr>
4949
4950 * lread.c (Fintern_soft): Accept a symbol argument.
427ec082 4951
740e985f
EZ
49521999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
4953
4954 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Reduce to 40000.
809f3d51
EZ
4955
4956 * insdel.c (adjust_markers_for_delete): Fix last change.
4957
2d764c78
EZ
49581999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
4959
4960 Changes for automatic remapping of X colors on terminal frames:
4961
4962 * xfaces.c (XColor) [!HAVE_X_WINDOWS]: Provide a typedef for non-X
4963 frames.
4964 (Vface_tty_color_alist): Remove.
4965 (tty_defined_color): New function.
4966 (defined_color): Rewrite to support any type of frame.
4967 (tty_color_name): New function.
4968 (face_color_supported_p, Fface_color_gray_p,
4969 Fface_color_supported_p): Support non-X frames.
4970 (load_color): Enclose the color name in quotes, in the log
4971 messages. Remove DOS-specific version of load_color.
4972 (realize_tty_face): Take the supported colors from
4973 tty-color-alist. Support translation of X colors to the closest
4974 tty color, for both MSDOS and tty frames.
4975 [MSDOS]: Don't invert face colors if they were taken from the
4976 frame colors.
4977 (Fface_register_tty_color, Fface_clear_tty_colors): Remove.
4978
4979 * frame.h (struct x_output) [!MSDOS, !WINDOWSNT, !HAVE_X_WINDOWS]:
4980 Define a mostly empty surrogate.
4981 (tty_display): Declare.
4982
4983 * frame.c (make_terminal_frame) [!macintosh]: Don't use
4984 tty_display.
4985 (Fframe_parameters): Don't invert colors of non-FRAME_WINDOW_P
4986 frames when the frame's param_alist includes 'reverse.
4987 (tty_display): Define.
4988 (make_terminal_frame) [!MSDOS]: Assign &tty_display to the
4989 output_data.x member.
4990 (Fframe_parameters): Return foreground and background color names
4991 on tty frames as well, in addition to MSDOS frames.
4992
4993 * msdos.h (DisplayWidth, DisplayHeight): Changes for Lisp_Object
4994 selected_frame.
4995 (struct x_output): Remove unused members; document who uses each
4996 member.
4997 (FRAME_PARAM_FACES, FRAME_N_PARAM_FACES, FRAME_DEFAULT_PARAM_FACE,
4998 FRAME_MODE_LINE_PARAM_FACE, FRAME_COMPUTED_FACES,
4999 FRAME_N_COMPUTED_FACES, FRAME_SIZE_COMPUTED_FACES,
5000 FRAME_DEFAULT_FACE, FRAME_MODE_LINE_FACE, unload_color): Remove
5001 unused macro definintions.
5002
5003 * msdos.c (IT_set_frame_parameters): Don't call
5004 recompute_basic_faces, the next redisplay will, anyway.
5005 (x_current_display): Remove unused variable.
5006 Many functions: changes for Lisp_object selected_frame.
5007 (IT_set_face): If the tty_reverse_p flag is set for the face,
5008 reverse the foreground and background colors.
5009 (Fmsdos_remember_default_colors): New function.
5010 (syms_of_msdos): Defsubr it.
5011 (IT_set_frame_parameters): Use initial_screen_colors[] when
5012 creating a new frame. If the frame parameters include 'reverse,
5013 swap the foreground and background colors.
5014 (internal_terminal_init): Initialize initial_screen_colors to -1.
5015 (syms_of_msdos): Add DEFVAR_BOOL for x-stretch-cursor, to shut up
5016 cus-start.el.
5017
5018 * Makefile.in (lisp, shortlisp): Add lisp/term/tty-colors.elc.
5019
5020 * xfns.c (x_defined_color): Rename from defined_color. All
5021 callers changed.
5022 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
5023 all callers changed.
5024 (Fxw_color_values): Renamed from Fx_color_values; all callers
5025 changed.
5026 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
5027 callers changed.
5028 (x_window_to_frame, x_any_window_to_frame,
5029 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
5030 x_top_window_to_frame): Use !FRAME_X_P instead of
5031 f->output_data.nothing.
5032 * xterm.h (x_defined_color): Rename from defined_color.
5033
5034 * w32fns.c (x_window_to_frame): Use FRAME_W32_P instead of
5035 f->output_data.nothing.
5036 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
5037 all callers changed.
5038 (Fxw_color_values): Renamed from Fx_color_values; all callers
5039 changed.
5040 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
5041 callers changed.
5042
5043 * dispextern.h (tty_color_name): Add prototype.
5044
5045 * xmenu.c (menubar_id_to_frame): Use FRAME_WINDOW_P instead of
5046 f->output_data.nothing.
5047 * w32menu.c (menubar_id_to_frame): Likewise.
5048 * w32term.h (w32_output): Declare.
5049
5050 * dosfns.c (Qmsdos_color_translate): Remove.
5051 (msdos_stdcolor_name): Now returns a Lisp_Object.
5052 * dosfns.h (Qmsdos_color_translate): Remove.
5053
5054 * s/msdos.h (INTERNAL_TERMINAL): Add entries for color support.
5055
b3e5232e
KH
50561999-12-06 Kenichi Handa <handa@etl.go.jp>
5057
5058 * fileio.c (decide_coding_unwind): Renamed from
5059 set_auto_coding_unwind.
5060 (Finsert_file_contents): Make single unwind protect to call both
5061 Vset_auto_coding_function and Ffind_operation_coding_system.
5062
5063 * insdel.c (adjust_markers_for_delete): Make it non-static.
5064
db0e466c
SM
50651999-12-04 Stefan Monnier <monnier@cs.yale.edu>
5066
5067 * regex.c (regex_compile): Recognize *?, +? and ?? as non-greedy
5068 operators and handle them properly.
5069 * regex.h (RE_ALL_GREEDY): New option.
5070 (RE_UNMATCHED_RIGHT_PAREN_ORD): Moved to the end where alphabetic
5071 sorting would put it.
5072 (RE_SYNTAX_AWK, RE_SYNTAX_GREP, RE_SYNTAX_EGREP)
5073 (_RE_SYNTAX_POSIX_COMMON): Use the new option to keep old behavior.
5074
22afa6e8
DL
50751999-12-04 Dave Love <d.love@dl.ac.uk>
5076
5077 * m/arm.h: New file.
5078
40afb967
DL
50791999-12-03 Dave Love <fx@gnu.org>
5080
5081 * editfns.c (Fmessage_or_box): Use use_dialog_box.
5082
ddf8eff5
GM
50831999-12-02 Gerd Moellmann <gerd@gnu.org>
5084
5085 * s/usg5-4.h (LIBS_SYSTEM): Add -lgen because that's needed
5086 for building with Motif.
5087
5088 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexsgi.o instead of
5089 unexelf.o.
427ec082 5090
ddf8eff5
GM
5091 * m/iris5d.h (UNEXEC): Use unexsgi.o instead of unexelf.o.
5092
fa09a82d
DL
50931999-12-01 Dave Love <fx@gnu.org>
5094
5095 * emacs.c (main): Set LANG=C iff AX3_2 defined.
5096
ddf8eff5
GM
50971999-11-28 Gerd Moellmann <gerd@gnu.org>
5098
5099 * systime.h (EMACS_TIME_CMP, EMACS_TIME_EQ, EMACS_TIME_NE)
5100 (EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT,EMACS_TIME_LE): New
5101 macros.
5102
5103 * config.in (HAVE_SETITIMER, HAVE_UALARM): New.
5104
fa09a82d
DL
51051999-11-28 eliz <eliz@dlpx1>
5106
5107 * emacs.c (synchronize_locale): Avoid compiler warnings about
5108 pointer type mismatch.
5109
f9632fc8
GM
51101999-11-28 Gerd Moellmann <gerd@gnu.org>
5111
717d0121
GM
5112 * window.c (Fwindow_end): Don't call temp_set_pt_both with
5113 out of range position.
5114
427ec082 5115 * xterm.c (XTread_socket) <ClientMessage, Xatom_Scrollbar>:
f9632fc8
GM
5116 Switch off busy-cursor by setting inhibit_busy_cursor to 2.
5117
59c65f1e
EZ
51181999-11-28 Eli Zaretskii <eliz@is.elta.co.il>
5119
613a8346
EZ
5120 * charset.c (Fmake_char_internal): Print the charset ID when
5121 signalling an error.
5122
59c65f1e
EZ
5123 * emacs.c (synchronize_locale): Avoid compiler warnings about
5124 pointer type mismatch.
5125
83c8f461 51261999-11-26 Richard M. Stallman <rms@gnu.org>
d01f3570
RS
5127
5128 * editfns.c (Fdelete_field): Make it noninteractive. Return nil.
5129
18df9369
GM
51301999-11-26 Gerd Moellmann <gerd@gnu.org>
5131
65a3ccf7
GM
5132 * puresize.h (BASE_PURESIZE): Increase to 550000.
5133
b3b98592
GM
5134 * textprop.c (set_text_properties): New function. Like
5135 Fset_text_properties, but with additional parameter
5136 SIGNAL_AFTER_CHANGE_P. If that is nil, don't signal after
5137 changes.
5138 (Fset_text_properties): Use it.
5139
5140 * insdel.c (insert_1_both): Call set_text_properties with last
5141 parameter nil so that no after changes will be signaled.
5142
5143 * lisp.h: Add prototype for set_text_properties.
5144
18df9369
GM
5145 * xfaces.c (set_lface_from_font_name): Fix previous change.
5146 (recompute_basic_faces): Change assert to abort.
5147
71a8e74b
DL
51481999-11-25 Dave Love <fx@gnu.org>
5149
5150 * fns.c (Fnthcdr, Fnreverse): Inline cdr.
5151 (Fmember, Fdelq, Fdelete): Inline car.
5152 (Fy_or_n_p): Doc fix.
5153
bc6a5782
GM
51541999-11-25 Gerd Moellmann <gerd@gnu.org>
5155
3221576b 5156 * xfaces.c (set_lface_from_font_name): New parameter may_fail_p.
18df9369 5157 Callers changed. If specified font name is bogus, and may_fail_p
3221576b
GM
5158 is not set, try to use a reasonable default.
5159
bc6a5782
GM
5160 * dispnew.c (direct_output_for_insert): Set glyph row's
5161 displays_text_p flag. Correct window's window_end_vpos if
5162 necessary.
5163
0c8559bb
PE
51641999-11-25 Paul Eggert <eggert@twinsun.com>
5165
5166 * emacs.c (fixup_locale): Don't bother to record initial locale.
5167 (synchronize_locale): If the desired locale is nil,
5168 treat it as if it were the empty string,
5169 so that we set the locale from the environment.
5170
35737351
KH
51711999-11-25 Kenichi Handa <handa@etl.go.jp>
5172
5173 * fileio.c (Finsert_file_contents): Set buffer-file-coding-system
5174 of the current buffer via Fset.
5175
5562b47f
DL
51761999-11-24 Dave Love <fx@gnu.org>
5177
5562b47f
DL
5178 * xfaces.c: Don't duplicate Qmode_line definition done elsewhere.
5179
5180 * xfns.c: Don't duplicate Qdisplay definition done elsewhere.
5181
00da0e4a
GM
51821999-11-24 Gerd Moellmann <gerd@gnu.org>
5183
5184 * lisp.h (enum pvec_type): Put PVEC_FLAG in #if 0.
5185
5186 * emacs.c (PVEC_FLAG): New variable.
5187
b1775dc1
GM
51881999-11-23 Gerd Moellmann <gerd@gnu.org>
5189
5190 * unexaix.c (unexec): Use unsigned instead of uintptr_t because
5191 that fails on IBM PowerPC, AIX 4.2.
427ec082 5192
08de6200
EZ
51931999-11-22 Eli Zaretskii <eliz@is.elta.co.il>
5194
5195 * buffer.c (syms_of_buffer): Add %z, %Z, %m and %& to the doc
5196 string of mode-line-format. Remove the obsolete %t.
5197
02fda8ff
GM
51981999-11-22 Gerd Moellmann <gerd@gnu.org>
5199
f2fa858f
GM
5200 * dispnew.c (direct_output_for_insert): Increment glyph positions
5201 for glyphs from buffer text only.
5202
02fda8ff
GM
5203 * emacs.c (gdb_valbits, gdb_gctypebits, gdb_emacs_intbits)
5204 (gdb_data_seg_bits): New variables.
427ec082 5205
02fda8ff
GM
5206 * lisp.h (enum gdb_lisp_params): Put in #if 0, since it doesn't
5207 work on systems not allowing enumerators > INT_MAX, and it
5208 won't work if EMACS_INT is long long.
5209
1b0d24e7
PE
52101999-11-22 Paul Eggert <eggert@twinsun.com>
5211
5212 Port to SunOS 4.1.x again. Help out with Alpha port.
5213 Rename messages-locale to system-messages-locale,
5214 and likewise for time-locale.
427ec082 5215
1b0d24e7
PE
5216 * callproc.c (strerror): Remove decl.
5217 * fileio.c (strerror): Likewise.
5218 * process.c (strerror): Likewise.
5219 * emacs.c (strerror): Likewise.
5220 (Vsystem_messages_locale): Renamed from Vmessages_locale.
5221 All uses changed.
5222 (Vprevious_system_messages_locale): Likewise, from
5223 Vprevious_messages_locale.
5224 (Vsystem_time_locale): Likewise, from Vtime_locale.
5225 (Vprevious_system_time_locale): Likewise, from Vprevious_time_locale.
5226 (ABORT_RETURN_TYPE): New macro.
5227 (abort): Return type is now ABORT_RETURN_TYPE.
5228 (main): Always invoke init_signals, even if POSIX_SIGNALS is not
5229 defined.
5230 (syms_of_emacs): messages-locale -> system-messages-locale,
5231 previous-messages-locale -> previous-system-messages-locale,
5232 time-locale -> system-time-locale,
5233 previous-time-locale -> previous-system-time-locale.
5234
5235 * gmalloc.c (PP, __ptr_t): Assume ANSI C if STDC_HEADERS is defined.
5236 (const): Do not define; that's config.h's job.
5237 (<limits.h>): Include if HAVE_LIMITS_H is defined.
5238 (CHAR_BIT): Move test for definedness outside of limits.h condition.
5239 (<stddef.h>): Include if STDC_HEADERS is defined.
5240 (FREE_RETURN_TYPE): New macro.
5241 (free): Return type is now FREE_RETURN_TYPE.
5242
5243 * lisp.h (synchronize_system_time_locale): Renamed from
5244 synchronize_time_locale. All uses changed.
5245 (synchronize_system_messages_locale): Likewise, from
5246 synchronize_messages_locale.
5247
5248 * m/alpha.h (malloc, realloc, calloc): Remove decls;
5249 stdlib.h now does this.
5250
5251 * process.c (sys_siglist): Remove.
5252
5253 * s/sunos4-0.h (ABORT_RETURN_TYPE, FREE_RETURN_TYPE):
5254 New macros.
5255
5256 * syntax.c (scan_sexps_forward): Use abort, not assert.
5257
5258 * sysdep.c (my_sys_siglist): New var.
5259 (sys_siglist): New macro. Remove old initialized vars of same name.
5260 (init_signals): Initialize sys_siglist.
5261
5262 * xfns.c (abort): Remove decl; stdlib.h now does this.
5263
0dcd5b54
DL
52641999-11-18 Dave Love <fx@gnu.org>
5265
946173ad
DL
5266 * filelock.c: Add forward declaration for get_boot_time_1.
5267
0dcd5b54
DL
5268 * dispnew.c (Finternal_show_cursor_p): Fix doc string.
5269
71447e8f
GM
52701999-11-18 Gerd Moellmann <gerd@gnu.org>
5271
5272 * buffer.h (struct buffer_text): Add comment about moving
5273 buffer text if REL_ALLOC is defined.
5274
eeedff63
KH
52751999-11-18 Kenichi Handa <handa@etl.go.jp>
5276
5277 * lisp.h (KEY_DESCRIPTION_SIZE): New macro.
5278
5279 * keyboard.c (echo_char): Use KEY_DESCRIPTION_SIZE to check free
5280 memory for push_key_description.
5281
5282 * keymap.c (Fsingle_key_description): Use KEY_DESCRIPTION_SIZE to
5283 allocate memory for push_key_description.
5284 (describe_buffer_bindings): Likewise.
5285
5d7e4a2c
GM
52861999-11-17 Gerd Moellmann <gerd@gnu.org>
5287
5288 * xfns.c (Fx_show_busy_cursor): Doc-fix.
5289 (Fx_hide_busy_cursor): Ditto.
5290
52911999-11-17 Marco Walther <walther@siemens-pyramid.com>
5292
5293 * unexsni.c (unexec): Handle .rel.dyn section.
5294
b5b41e02
DL
52951999-11-16 Dave Love <fx@gnu.org>
5296
5297 * doc.c (Fdocumentation): Remove gcpro here too.
5298
e35b6123
GM
52991999-11-16 Gerd Moellmann <gerd@gnu.org>
5300
5301 * keyboard.c (command_loop_1): Remove no_redisplay.
5302
83c8f461 53031999-11-16 Richard M. Stallman <rms@gnu.org>
0a14b9bb
GM
5304
5305 * print.c (PRINTPREPARE): Don't call setup_echo_area_for_printing
5306 in noninteractive.
5307
b05d3bee
GM
53081999-11-14 Gerd Moellmann <gerd@gnu.org>
5309
5bcfeb49
GM
5310 * xdisp.c (ensure_echo_area_buffers): New.
5311 (with_echo_area_buffer): Use it.
5312 (setup_echo_area_for_printing): Ditto.
5313
b05d3bee
GM
5314 * buffer.c (indicate-empty-lines): Doc-fix.
5315
9b2e6e4c
GM
53161999-11-12 Gerd Moellmann <gerd@gnu.org>
5317
e7f90eab
GM
5318 * term.c (term_init): If "op" isn't available, don't support color
5319 because we can't switch back to the default foreground and
5320 background.
5321
9b2e6e4c
GM
5322 * doc.c (Fdocumentation_property): Remove GCPRO because
5323 Fsubstitute_command_keys gcpro's the string.
5324
1bf21027
KH
53251999-11-12 Kenichi Handa <handa@etl.go.jp>
5326
5327 * editfns.c (Ftranslate_region): Check the buffer multibyteness.
5328
3bc6df53
GM
53291999-11-11 Gerd Moellmann <gerd@gnu.org>
5330
5331 * print.c, keymap.c, indent.c, insdel.c, keyboard.c, intervals.c,
5332 lread.c, textprop.c, undo.c, emacs.c, lisp.h, intervals.h,
5333 buffer.h, config.in, Makefile.in: Remove USE_TEXT_PROPERTIES.
5334
35a5514b
GM
53351999-11-10 Gerd Moellmann <gerd@gnu.org>
5336
5337 * xfns.c (QCuser_data): Removed.
5338 (syms_of_xfns): Initialization of QCuser_data removed.
5339 (parse_image_spec): Don't handle :user-data specially. Allow
5340 unknown keys. Remove parameter ALLOW_OTHER_KEYS.
5341 (xbm_image_p, xbm_load, xpm_image_p, pbm_image_p, png_image_p)
5342 (tiff_image_p, jpeg_image_p, gif_image_p, gs_image_p): Call
5343 parse_image_spec accordingly.
5344
83c8f461 53451999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5346
5347 * cmds.c (Fbeginning_of_line): Doc fix.
5348 (Fend_of_line): Doc fix.
5349
5350 * editfns.c (Fline_beginning_position): If N is not 1,
5351 pass t to Fconstrain_to_field for ESCAPE-FROM-EDGE.
5352
5353 * syntax.c (Fforward_word): Handle fields even if would have hit
5354 an edge of the buffer. Return nil if affected by fields.
5355
83c8f461 53561999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5357
5358 * editfns.c (preceding_pos): Function deleted.
5359 (text_property_stickiness): Decrement POS directly.
5360 Fix a confusion that used PT instead of POS.
5361
5362 * editfns.c (find_field): Properly handle the case
5363 of a field boundary where `field' inherits from neither side.
5364
5365 * editfns.c (Ffield_beginning, Ffield_end): Doc fixes.
5366 (Ferase_field, Ffield_string, Ffield_string_no_properties): Doc fixes.
5367
fa9aabf6
GM
53681999-11-08 Gerd Moellmann <gerd@gnu.org>
5369
5370 * bytecode.c (Fbyte_code) <BinsertN, Bcall>: Do the
5371 BEFORE_POTENTIAL_GC before DISCARD.
5372
4015b3c0
GM
53731999-11-07 Gerd Moellmann <gerd@gnu.org>
5374
033a5fa3
GM
5375 * alloc.c (Fgarbage_collect): Call unmark_byte_stack.
5376
5377 * lisp.h: Add prototype for unmark_byte_stack.
5378
5379 * bytecode.c (mark_byte_stack): Use XMARKBIT and XMARK.
5380 (unmark_byte_stack): Renamed from relocate_byte_pcs. Use
5381 XUNMARK.
5382
55b064bd
GM
5383 * xdisp.c (resize_mini_window): Fix computation of needed
5384 mini-window height.
5385
5386 * alloc.c, buffer.c, editfns.c, xdisp.c: Remove conditional
5387 compilation on USE_TEXT_PROPERTIES.
01e9b9df 5388
4015b3c0 5389 * Fbyte_code: Use block statements in cases and declare v1 and v2
60af03f1 5390 locally there. Rearrange case statements so that those most
4015b3c0
GM
5391 frequently executed come first. Avoid goto's in frequently
5392 executed cases.
5393
fe512f27
GM
53941999-11-05 Gerd Moellmann <gerd@gnu.org>
5395
dd59e217
GM
5396 * bytecode.c (Fbyte_code): Use BEFORE_POTENTIAL_GC and
5397 AFTER_POTENTIAL_GC around internal_catch.
5398
bcf28080
GM
5399 * alloc.c (Fgarbage_collect): Call mark_byte_stack and
5400 relocate_byte_pcs.
5401 (init_alloc_once, init_alloc): Set byte_stack_list to null.
5402
5403 * eval.c (struct catchtag): Add member byte_stack.
5404 (internal_catch, Fcondition_case, internal_condition_case)
dd59e217 5405 (internal_condition_case_1): Save value of byte_stack_list in
bcf28080
GM
5406 catchtag.
5407 (unwind_to_catch): Restore byte_stack_list from catchtag.
5408
5409 * lisp.h: Add prototypes for new functions in bytecode.c.
5410 Add extern declaration for byte_stack_list.
5411
5412 * bytecode.c (struct byte_stack): New.
5413 (byte_stack_list, mark_byte_stack, relocate_byte_pcs): New
5414 (BEFORE_POTENTIAL_GC, AFTER_POTENTIAL_GC): New.
5415 (FETCH, PUSH, POP, DISCARD, TOP, MAYBE_GC): Rewritten.
5416 (HANDLE_RELOCATION): Removed.
5417 (Fbyte_code): Use byte_stack structures.
5418
4d59c34c
GM
5419 * filelock.c (Ffile_locked_p): Make FILENAME a required argument.
5420
fe512f27
GM
5421 * buffer.c (syms_of_buffer): Extend documentation of
5422 mode-line-format.
5423
60b64cd6
GM
54241999-11-04 Gerd Moellmann <gerd@gnu.org>
5425
5426 * editfns.c (Fdelete_field): Renamed from Ferase_field.
5427
5428 * minibuf.c (do_completion, Fminibuffer_complete_word): Use
5429 Ferase_field instead of Fdelete_field.
5430
b51b619b
GM
54311999-11-03 Gerd Moellmann <gerd@gnu.org>
5432
5433 * dispnew.c (Finternal_show_cursor): Change it to set the
5434 cursor on/off, not toggle its state.
5435 (Finternal_show_cursor_p): New.
5436 (syms_of_display): Defsubr Sinternal_show_cursor_p.
5437
5865af0d
DL
54381999-11-03 Dave Love <fx@gnu.org>
5439
5440 * charset.c (split_non_ascii_string): Define return value.
5441
82a700f3
GM
54421999-11-03 Gerd Moellmann <gerd@gnu.org>
5443
edfef199
GM
5444 * minibuf.c (string_to_object): New.
5445 (read_minibuf_noninteractive): New.
5446 (read_minibuf): Call read_minibuf_noninteractive if
5447 noninteractive. Use string_to_object.
5448
82a700f3
GM
5449 * doc.c (Fdocumentation_property): Fix bug bypassing UNGCPRO.
5450
b5540f0d
DL
54511999-11-02 Dave Love <fx@gnu.org>
5452
e69dcd60
DL
5453 * gnu-linux.h: Use SIGCHLD, not SIGCLD (not in glibc 2.1).
5454
827a1788
DL
5455 * process.c: Define _GNU_SOURCE before config.h to get strsignal
5456 declared with glibc2.
b5540f0d 5457
a69a6e61
GM
54581999-11-02 Gerd Moellmann <gerd@gnu.org>
5459
5460 * lisp.h (QUIT): Give it statement form.
5461
87e21fbd
DL
54621999-11-02 Dave Love <fx@gnu.org>
5463
5464 * eval.c (init_eval): Conditionalize declaration of gcpro_level.
5465
1b335865
GM
54661999-11-02 Gerd Moellmann <gerd@gnu.org>
5467
9fb5e03d
GM
5468 * xfns.c (QCuser_data): New.
5469 (syms_of_xfns): Initialize QCuser_data.
5470 (parse_image_spec): Ignore :user-data DATA properties.
5471
1b335865
GM
5472 * xdisp.c (display_line): Set charpos of first glyph in blank
5473 lines not corresponding to any text to -1, even if no glyphs are
5474 filled in in that line.
5475
e76f1c44
GM
54761999-11-01 Gerd Moellmann <gerd@gnu.org>
5477
427ec082 5478 * xfns.c (png_load) [PNG_READ_sRGB_SUPPORTED]: Put code using
36fcd3d9
GM
5479 png_get_sRGB in #ifdef.
5480
111259b4
GM
5481 * dispnew.c (Finternal_show_cursor): Renamed from Fshow_cursor.
5482 (syms_of_display): Use the new name.
5483
dd5c96e8
GM
5484 * textprop.c (verify_interval_modification): Signal text-read-only
5485 instead of calling error.
5486
db8878fb
GM
5487 * data.c (Qtext_read_only): New built-in error.
5488 (syms_of_data): Initialize it.
5489
5490 * lisp.h: Add extern declaration for Qtext_read_only.
5491
e76f1c44
GM
5492 * syntax.c: Remove whitespace after open or in front of closing
5493 parentheses.
5494
83c8f461 54951999-11-01 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
5496
5497 * Makefile.in (w16select.o, sound.o): Don't depend on lisp.h.
5498
7843e09c
GM
54991999-10-31 Gerd Moellmann <gerd@gnu.org>
5500
575ed805
GM
5501 * xdisp.c (resize_mini_window): Compute needed height differently.
5502
7843e09c
GM
5503 * fns.c (Flength): Unroll loop over lists.
5504
5505 * xdisp.c (append_space): Return non-zero if space was appended.
5506 (display_line): Set charpos of first glyph to -1 only if that
5507 glyph is the space added by append_glyph.
5508
83c8f461 55091999-10-30 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
5510
5511 * print.c (strout): Consider `noninteractive' and use stdout
5512 only when PRINTCHARFUN is t.
5513
5514 * lisp.h (struct gcpro) [DEBUG_GCPRO]: New field `level'.
5515 (gcpro_level): Declare it extern.
5516 [DEBUG_GCPRO] (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5):
5517 Alternate definitions that set `level' and increment `gcpro_level'.
5518 [DEBUG_GCPRO] (UNGCPRO): Alternate definition that checks gcpro_level.
5519
5520 * eval.c [DEBUG_GCPRO] (gcpro_level): New variable.
5521 (init_eval) [DEBUG_GCPRO]: Initialize it.
5522 (unwind_to_catch) [DEBUG_GCPRO]: Set gcpro_level
5523 from remaining gcprolist.
5524
3636f7a3
KH
55251999-10-29 Kenichi Handa <handa@etl.go.jp>
5526
5527 * coding.c (code_convert_region): Update `dst' correctly.
5528
a2ad7096
GM
55291999-10-28 Gerd Moellmann <gerd@gnu.org>
5530
5531 * fns.c (Fmemq, Fassq, Frassq, assq_no_quit, Fassoc)
5532 (Frassoc): Rewritten.
5533
1e3196e8
GM
55341999-10-27 Noah Friedman <friedman@splode.com>
5535
5536 * s/gnu-linux.h [HAVE_DEV_PTMX]: Redefine FIRST_PTY_LETTER to 'z'.
5537 Define PTY_NAME_SPRINTF.
5538 Redefine PTY_TTY_NAME_SPRINTF.
5539 * config.in: Add undef for HAVE_DEV_PTMX.
5540
83c8f461 55411999-10-26 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5542
5543 * regex.c (POP_FAILURE_POINT): Use failure_id.integer
5544 as arg to DEBUG_POP and DEBUG_PRINT.
5545
83c8f461 55461999-10-27 Richard M. Stallman <rms@gnu.org>
17dbfaad
GM
5547
5548 * data.c (Qad_activate_internal): Renamed from Qad_activate.
5549 (Ffset): Call Qad_activate_internal.
5550 (syms_of_data): Initialize Qad_activate_internal.
5551
26922151
GM
55521999-10-27 Gerd Moellmann <gerd@gnu.org>
5553
5554 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing if
5555 Vterminal_frame is selected and Vwindow_system is non-nil.
5556
67a5596f
GM
55571999-10-26 Gerd Moellmann <gerd@gnu.org>
5558
2bea706b
GM
5559 * xdisp.c (echo_area_display): Put previous change in #if 0.
5560
67a5596f
GM
5561 * emacs.c (standard_args): Add `file' as synonym for `visit',
5562 `execute' as synonym for `eval'.
5563 (main): Add new options to usage message.
5564
81dc5de5
GM
55651999-10-25 Gerd Moellmann <gerd@gnu.org>
5566
5567 * data.c (Qhash_table): New.
5568 (Ftype_of): Return it for hash tables.
5569 (syms_of_data): Initialize Qhash_table.
5570
83c8f461 55711999-10-25 Richard M. Stallman <rms@gnu.org>
bd3c545d
GM
5572
5573 * regex.c (POP_FAILURE_POINT): Extract failure_id as an integer.
5574
66e4690f 55751999-10-24 Ken Raeburn <raeburn@gnu.org>
3a7093d8 5576
7539e11f
KR
5577 * alloc.c: Undef HIDE_LISP_IMPLEMENTATION before including
5578 lisp.h.
5579
5580 * buffer.c (Fbuffer_list, Fget_file_buffer, get_truename_buffer,
5581 Fbuffer_local_variables, Fother_buffer, record_buffer,
5582 set_buffer_internal_1, Fbury_buffer, Fkill_all_local_variables,
5583 swap_out_buffer_local_variables, overlays_at, overlays_in,
5584 overlay_touches_p, overlay_strings, recenter_overlay_lists,
5585 fix_overlays_in_range, fix_overlays_before, Foverlay_get,
5586 Foverlay_put, report_overlay_modification, evaporate_overlays):
5587 Use XCAR, XCDR, and XFLOAT_DATA instead of explicit member
5588 references.
5589 * data.c (Fcar, Fcar_safe, Fcdr, Fcdr_safe, Fsetcar, Fsetcdr,
5590 swap_in_symval_forwarding, set_internal, default_value,
5591 Fset_default, Fmake_variable_buffer_local, Fmake_local_variable,
5592 Fmake_variable_frame_local, Flocal_variable_p,
5593 Flocal_variable_if_set_p, arithcompare, Fzerop, cons_to_long,
5594 Fnumber_to_string, float_arith_driver, Fadd1, Fsub1): Likewise.
5595 * dispnew.c (Fframe_or_buffer_changed_p): Likewise.
5596 * emacs.c (main): Likewise.
5597 * fontset.c (fs_load_font, fs_register_fontset,
5598 CACHED_FONTSET_NAME, CACHED_FONTSET_REGEX, Fquery_fontset,
5599 Fnew_fontset, Fset_fontset_font): Likewise.
5600 * frame.c (do_switch_frame, next_frame, prev_frame,
5601 other_visible_frames, Fdelete_frame, Fvisible_frame_list):
5602 Likewise.
5603 * keyboard.c (read_char, help_char_p, event_to_kboard,
5604 kbd_buffer_get_event, timer_start_idle, timer_check,
5605 make_lispy_event, apply_modifiers, reorder_modifiers,
5606 Fevent_convert_list, lucid_event_type_list_p, menu_bar_items,
5607 menu_bar_one_keymap, menu_item_eval_property_1, parse_menu_item,
5608 tool_bar_items, read_char_x_menu_prompt, read_key_sequence,
5609 Fcommand_execute, Fexecute_extended_command): Likewise.
5610 * minibuf.c (read_minibuf, get_minibuffer, Ftry_completion,
5611 Fall_completions): Likewise.
5612 * window.c (Fset_window_margins): Likewise.
5613
5614 * callint.c (quotify_args): Don't explicitly use struct
5615 Lisp_Cons, use Lisp_Object and XCAR/XCDR instead.
5616
3a7093d8
KR
5617 * s/netbsd.h (HAVE_GETLOADAVG): Define as 1.
5618 (UNEXEC, START_FILES, LIB_STANDARD, LIB_GCC): Define ELF versions,
5619 if __ELF__ is defined.
5620
2a3d7146
GM
56211999-10-24 Gerd Moellmann <gerd@gnu.org>
5622
5623 * window.c (Fnext_window): Add a QUIT in the loop.
5624
8ac52782
GM
56251999-10-23 Gerd Moellmann <gerd@gnu.org>
5626
427ec082 5627 * Makefile.in (bootstrap, bootstrap-emacs, bootstrap-temacs):
8ac52782
GM
5628 New targets.
5629
05f0d15a
DL
56301999-10-22 Dave Love <fx@gnu.org>
5631
5632 * emacs.c (main): Enable profiling conditional on __linux also.
5633
882fb0e6
GM
56341999-10-20 Gerd Moellmann <gerd@gnu.org>
5635
5636 * xrdb.c (x_load_resources): Set default resources for resource
5637 classes instead of for the specific Emacs.
5638
b5f5bc31
GM
56391999-10-19 Gerd Moellmann <gerd@gnu.org>
5640
66f4dd69
GM
5641 * s/freebsd.h (HAVE_GETLOADAVG): Define as 1 because config.h
5642 defines it that way.
427ec082 5643
b5f5bc31
GM
5644 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing
5645 if selected_frame is equal to Vterminal_frame.
5646
68c45bf0 56471999-10-19 Paul Eggert <eggert@twinsun.com>
427ec082 5648
68c45bf0 5649 Add support for large files, 64-bit Solaris, system locale codings.
427ec082 5650
68c45bf0
PE
5651 * Makefile.in (emacs): Set the LC_ALL environment variable to "C"
5652 when dumping, so that the dumped Emacs doesn't have stray locale info.
5653 (dired.o): Depend on systime.h.
5654 (editfns.o): Depend on coding.h.
5655
5656 * alloc.c, buffer.c, callproc.c, ccl.c, charset.c, coding.c, data.c,
5657 dispnew.c, editfns.c, emacs.c, filelock.c, floatfns.c, hftctl.c,
5658 keyboard.c, process.c, sysdep.c, unexelf.c, unexhp9k800.c,
5659 unexsunos4.c, vmsfns.c, vmsgmalloc.c, w32faces.c, w32menu.c, w32term.c,
5660 w32xfns.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
5661 Include <config.h> before any system include files.
5662
5663 * alloc.c, buffer.c, ccl.c, data.c, editfns.c, emacs.c, eval.c,
5664 fileio.c, filelock.c, frame.c, insdel.c, keymap.c, lread.c,
5665 m/alpha.h, print.c, search.c, sysdep.c, xdisp.c, xfaces.c, xfns.c,
5666 xmenu.c, xterm.c:
5667 Do not include <stdlib.h>, as <config.h> does this now.
5668
5669 * callproc.c (Fcall_process):
5670 Synchronize messages locale before invoking strerror.
5671 Decode resulting string with locale-coding-system.
5672
5673 * coding.c (Vlocale_coding_system): New var.
5674 (syms_of_coding): Adjust to above change.
5675 (emacs_strerror): New function.
5676
5677 * coding.h (emacs_strerror, Vlocale_coding_system): New decls.
427ec082 5678
68c45bf0
PE
5679 * config.in (HAVE_STDIO_EXT_H, HAVE_TM_GMTOFF, HAVE___FPENDING,
5680 HAVE_FTELLO, HAVE_GETLOADAVG, HAVE_MBLEN, HAVE_MBRLEN,
5681 HAVE_STRSIGNAL): New macros.
5682 (BITS_PER_LONG): Default to 64 if _LP64 is defined.
5683 <stdlib.h>: Include if HAVE_STDLIB_H is defined and NOT_C_CODE isn't.
5684
5685 * dired.c: Include "systime.h".
5686 (Ffile_attributes): Do not cast s.st_size to int; this loses
5687 information if int is 32 bits but st_size and EMACS_INT are larger.
5688 Treat large device numbers like large inode numbers.
5689
5690 * dispnew.c (PENDING_OUTPUT_COUNT): Use __fpending if available.
5691
5692 * editfns.c: Include coding.h.
5693 (emacs_strftime): Remove decl.
5694 (emacs_strftimeu): New decl.
5695 (emacs_memftimeu): Renamed from emacs_memftime; new arg UT.
5696 Use emacs_strftimeu instead of emacs_strftime.
5697 (Fformat_time_string): Convert format string using
5698 Vlocale_coding_system, and convert result back. Synchronize time
5699 locale before invoking lower level function. Invoke
5700 emacs_memftimeu, passing ut, instead of emacs_memftime.
427ec082 5701
68c45bf0
PE
5702 * emacs.c: Include <locale.h> if HAVE_SETLOCALE is defined.
5703 (Vmessages_locale, Vprevious_messages_locale, Vtime_locale,
5704 Vprevious_time_locale): New variables.
5705 (main): Invoke setlocale early, so that initial error messages are
5706 localized properly. But skip locale-setting if LC_ALL is "C".
5707 Fix up locale when it's safe to do so.
5708 (fixup_locale): Moved here from xterm.c.
5709 (synchronize_locale, synchronize_time_locale,
5710 synchronize_messages_locale): New functions.
5711 (syms_of_emacs): Accommodate above changes.
5712
5713 * fileio.c (report_file_error): Convert strerror output according
5714 to Vlocale_coding_system.
5715 (Finsert_file_contents): Check for arithmetic overflow in
5716 computations that depend on file size. Report IO errors
5717 with emacs_strerror, not strerror.
5718
5719 * fns.c (Fgethash): Declare dflt parameter.
5720
5721 * gmalloc.c: Do not define const to nothing if HAVE_CONFIG_H
5722 is defined; that's config.h's job.
5723
5724 * lisp.h (EMACS_INT, BITS_PER_EMACS_INT, EMACS_UINT): If _LP64,
5725 default these values to long, BITS_PER_LONG, and unsigned long.
5726 (VALBITS, MARKBIT, XINT): Do not assume 32-bit EMACS_INT.
5727 (PNTR_COMPARISON_TYPE): Default to EMACS_UINT, not to unsigned int.
5728 (code_convert_string_norecord, fixup_locale,
5729 synchronize_messages_locale, synchronize_time_locale,
5730 emacs_open, emacs_close, emacs_read, emacs_write): New decls.
5731 All Emacs callers of open, close, read, write changed to use
5732 emacs_open, emacs_close, emacs_read, emacs_write.
5733
5734 * lread.c (file_offset, file_tell): New macros. All uses of ftell
5735 changed to file_tell.
5736 (saved_doc_string_position, prev_saved_doc_string_position): Now
5737 of type file_offset.
5738 (init_lread): Do not fix locale here; fixup_locale now does this.
5739
5740 * m/amdahl.h, s/usg5-4.h:
5741 (NSIG): Remove.
5742 (NSIG_MINIMUM): New macro.
5743
5744 * m/cydra5.h, m/dpx2.h, m/mips.h, m/pfa50.h, m/sps7.h, m/stride.h,
5745 m/ustation.h, s/gnu-linux.h, s/hpux.h, s/iris3-5.h, s/iris3-6.h,
5746 s/umips.h, s/usg5-4.h:
5747 (SIGIO): Do not undef.
5748 (BROKEN_SIGIO): New macro.
5749
5750 * m/ustation.h:
5751 (SIGTSTP): Do not undef.
5752 (BROKEN_SIGTSTP): New macro.
5753
5754 * s/gnu-linux.h:
5755 (SIGPOLL, SIGURG): Do not undef.
5756 (BROKEN_SIGPOLL, BROKEN_SIGURG): New macros.
5757
5758 * s/ptx4.h:
5759 (SIGINFO): Do not undef.
5760 (BROKEN_SIGINFO): New macros.
427ec082 5761
68c45bf0
PE
5762 * m/delta.h, s/ptx.h, s/template.h: Doc fix.
5763
5764 * mktime.c, strftime.c: Update to glibc 2.1.2 version, with
5765 some Emacs-related changes merged.
5766
5767 * print.c (float_to_string): Prepend "-" to representation of a
5768 NaN if the NaN is negative.
5769
5770 * process.c (sys_siglist): Omit if HAVE_STRSIGNAL.
5771 (wait_reading_process_input): Use emacs_strerror, not strerror.
427ec082 5772
68c45bf0
PE
5773 * process.c (status_message, sigchld_handler): Synchronize locale,
5774 then use strsignal istead of sys_siglist.
5775 * w32proc.c (sys_wait): Likewise.
427ec082 5776
68c45bf0
PE
5777 * s/aix3-1.h, s/bsd4-1.h, s/dgux.h, s/gnu-linux.h, s/hiuxmpp.h,
5778 s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/osf1.h, s/rtu.h,
5779 s/sunos4-1.h, s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h,
5780 s/usg5-2.h, s/usg5-3.h, s/xenix.h:
5781 (open, close, read, write, INTERRUPTIBLE_OPEN,
5782 INTERRUPTIBLE_CLOSE, INTERRUPTIBLE_IO): Remove.
5783
5784 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): New macros.
5785
5786 * sysdep.c (sys_read, sys_write, read, write, sys_close, close,
5787 sys_open, open): Remove.
5788 (emacs_open, emacs_close, emacs_read, emacs_write): Always define;
5789 the old INTERRUPTIBLE_OPEN, INTERRUPTIBLE_CLOSE, and INTERRUPTIBLE_IO
5790 macros are no longer used.
5791 (emacs_open): Renamed from sys_open. Merge BSD4_1 version.
5792 (emacs_close): Renamed from sys_close.
5793 (emacs_read): Renamed from sys_read.
5794 (emacs_write): Renamed from sys_write.
5795 (sys_siglist): Do not declare if HAVE_STRSIGNAL.
5796 (dup2): Do not print error on failure; the real dup2 doesn't.
5797 (strsignal): New function, defined if !HAVE_STRSIGNAL.
5798
5799 * syssignal.h (SIGINFO): Undef if defined and if BROKEN_SIGINFO
5800 is defined.
5801 (SIGIO, SIGPOLL, SIGTSTP, SIGURG): Likewise.
5802 (NSIG): If less than NSIG_MINIMUM, define to NSIG_MINIMUM.
5803 (strsignal): Declare if !HAVE_STRSIGNAL.
5804
5805 * unexelf.c (ElfBitsW, ELFSIZE, ElfExpandBitsW): New macros.
5806 (ElfW): Define in terms of ElfExpandBitsW.
5807
5808 * w32proc.c (sys_siglist): Remove decl.
5809
5810 * xdisp.c (decode_mode_spec): 3rd arg is int, not char, to comply
5811 with ANSI C.
5812 (display_string): Declare face_string_pos arg.
5813
5814 * xfns.c (Fx_show_tip): Declare timeout param.
5815
5816 * xterm.c: No need to include locale.h.
5817 (x_alloc_lighter_color, x_setup_relief_color):
5818 Pass arg as double, not float, for compatibility with ANSI C.
5819 (fixup_locale): Move to emacs.c.
5820 (x_term_init): Do not setlocale or fixup locale; the main program
5821 does this now.
5822
2f0b74ea
DL
58231999-10-18 Dave Love <fx@gnu.org>
5824
5825 * doc.c (Fdocumentation_property): Gcpro `tem'.
5826
471aa4a0
KH
58271999-10-18 Kenichi Handa <handa@etl.go.jp>
5828
5829 * lread.c (Fload): Calculate bytes of filename correctly.
5830 (openp): Likewise.
5831
aca2020b
KH
58321999-10-18 Keisuke Nishida <kxn30@po.cwru.edu>
5833
5834 * print.c (print_preprocess): In case print-circle is nil,
5835 add OBJ to Vprint_number_table only when OBJ is a symbol.
5836
1f5fe392 58371999-10-18 Kenichi Handa <handa@etl.go.jp>
b843d1ae
KH
5838
5839 * coding.c (code_convert_string): Add record_unwind_protect to
5840 assure setting inhibit_pre_post_conversion back to zero. Take
5841 care of the multibyteness of the working buffer.
5842
5843 * coding.c (inhibit_pre_post_conversion): New variable.
5844 (setup_coding_system): If inhibit_pre_post_conversion is nonzero,
5845 ignore post-read-conversion and pre-write-conversion property of
5846 the coding system.
5847 (code_convert_region_unwind): New function.
5848 (code_convert_region): Set inhibit_pre_post_conversion to 1 while
5849 running pre-write-conversion and post-read-conversion.
5850 (code_convert_string): Likewise.
5851
cd876a91
GM
58521999-10-17 Miles Bader <miles@gnu.org>
5853
5854 * editfns.c: Doc fix.
5855
58561999-10-17 Miles Bader <miles@gnu.org>
5857
5858 * editfns.c (Fconstrain_to_field): Make sure we don't violate the
5859 argument preconditions of find_before_next_newline in the case
5860 where both ONLY_IN_LINE and ESCAPE_FROM_EDGE are set and OLD_POS
5861 was indeed at the edge.
5862
58631999-10-17 Miles Bader <miles@gnu.org>
5864
5865 * minibuf.c (Fminibuffer_complete_and_exit): Supply value for new
5866 ESCAPE_FROM_EDGE parameter to Ffield_beginning.
5867
5868 * editfns.c (text_property_eq, text_property_stickiness): Don't
5869 use initializers for auto variables of type Lisp_Object.
5870 (find_field): Likewise. Use braces around nested ifs.
5871 (Fline_end_position): Store the raw eol in a variable, so that the
5872 final expression doesn't look so ugly.
5873 (Fconstrain_to_field): Doc fix.
5874 (preceding_pos): Renamed from `preceeding_pos'.
5875 (text_property_stickiness, find_field): Call preceding_pos,
5876 not preceeding_pos.
5877
58781999-10-17 Miles Bader <miles@gnu.org>
5879
5880 * editfns.c (Ffield_string_no_properties): New function.
5881 (text_property_stickiness, preceeding_pos): New functions.
5882 (Ffield_string): Remove PROPS parameter.
5883 (find_field): Add MERGE_AT_BOUNDARY parameter.
5884 Rewrite to use stickiness of `field' property to resolve
5885 ambiguous cases.
5886 (Ffield_beginning, Ffield_end): Add ESCAPE_FROM_EDGE parameter.
5887 (Fconstrain_to_field): Likewise.
5888 (syms_of_editfns): Init Sfield_string_no_properties.
427ec082 5889 (Ffield_string, Ferase_field, Ffield_end):
cd876a91
GM
5890 Supply new MERGE_AT_BOUNDARY argument to find_field.
5891 (Fline_beginning_position, Fline_end_position): Supply new
5892 ESCAPE_FROM_EDGE parameter to Fconstrain_to_field.
5893 Pass a value of Qt for the ONLY_IN_LINE argument to
5894 Fconstrain_to_field (only matters if N != 1).
5895 * syntax.c (Fforward_word): Supply new ESCAPE_FROM_EDGE parameter
5896 to Fconstrain_to_field.
5897
5898 * minibuf.c (Fminibuffer_complete_word): Use
5899 Ffield_beginning to find the prompt end.
5900
59011999-10-17 Miles Bader <miles@gnu.org>
5902
5903 * editfns.c (Fconstrain_to_field): Add get/set-current-point
5904 behavior when NEW_POS is nil.
5905 (find_field): Use XSETFASTINT instead of make_number.
5906 * minibuf.c (Fminibuffer_complete_and_exit): Test for an empty
5907 input string by seeing where the field begins, instead of
5908 looking at text-properties.
5909
59101999-10-17 Miles Bader <miles@gnu.org>
5911
5912 * editfns.c (Qfield): New variable.
5913 (find_field, Ferase_field, Ffield_string,
5914 Ffield_beginning, Ffield_end, Fconstrain_to_field): New functions.
5915 (Fline_beginning_position, Fline_end_position): Constrain to any field.
5916 (make_buffer_string_both): Remove minibuffer-prompt hack.
5917 (syms_of_editfns): Initialize Qfield, and subr entries for
5918 field functions above.
5919 * minibuf.c (read_minibuf): Don't save minibuffer prompt length on
5920 minibuf_save_list.
5921 Don't initialize minibuffer prompt length.
5922 Wrap prompt text-properties around the entire prompt.
5923 Add 'prompt text-property to prompt.
5924 Get final value with Ffield_string instead of make_buffer_string.
5925 (read_minibuf_unwind): Don't restore minibuffer prompt length from
5926 minibuf_save_list.
5927 (do_completion): Get minibuffer input with Ffield_string
5928 instead of Fbuffer_string.
5929 Erase minibuffer input with Ferase_field instead of erase_buffer.
5930 (Fminibuffer_complete_and_exit): Likewise.
5931 Test whether buffer is empty by looking for the 'prompt text
5932 property at the end.
5933 Set prompt length by looking for the end of the prompt text property,
5934 and save prompt length for later use (since there is no longer a
5935 buffer variable to get it from).
5936 (Fminibuffer_prompt_width, Fminibuffer_prompt_end): Functions removed.
5937 (syms_of_minibuf): Remove initializations of
5938 Sminibuffer_prompt_width and Sminibuffer_prompt_end.
5939 * buffer.h (struct buffer): Remove prompt_end_charpos field.
427ec082 5940 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer, Fkill_buffer):
cd876a91
GM
5941 Don't initialize prompt_end_charpos field.
5942 * syntax.c (Fforward_word): Likewise.
5943 Constrain to any field.
5944
3f6f7508
GM
59451999-10-16 Gerd Moellmann <gerd@gnu.org>
5946
5947 * window.c (enum save_restore_action): New.
5948 (save_restore_orig_size): Change parameter list. Add
5949 functionality to check for valid orig_top and orig_height members
5950 in a window tree.
5951 (grow_mini_window): Call save_restore_orig_size with new parameter
5952 list.
5953 (shrink_mini_window): Restore old window sizes only if old
5954 size information is valid in all windows in a window tree.
427ec082 5955
06482119
GM
59561999-10-15 Gerd Moellmann <gerd@gnu.org>
5957
2710454d
GM
5958 * xmenu.c (set_frame_menubar): Don't call
5959 x_set_menu_resources_from_menu_face here.
5960 (update_frame_menubar): Call x_set_menu_resources_from_menu_face.
5961
06482119
GM
5962 * xfns.c (gif_load): Fix handling of interlaced GIFs.
5963
17fa2837
DL
59641999-10-14 Dave Love <fx@gnu.org>
5965
5966 * xdisp.c (handle_fontified_prop): GCPRO `pos'.
5967
45f93416
GM
59681999-10-14 Gerd Moellmann <gerd@gnu.org>
5969
5970 * process.c (Fopen_network_stream): Don't loop if gethostbyname
5971 fails and h_errno is TRY_AGAIN.
5972
c765b723
DL
59731999-10-13 Dave Love <fx@gnu.org>
5974
5975 * filelock.c (lock_file): Move gcpro of `fn'.
5976
dace7f4e
GM
59771999-10-10 Gerd Moellmann <gerd@gnu.org>
5978
5979 * keyboard.c (auto-save-interval): Fix documentation.
427ec082 5980
83c8f461 59811999-10-09 Richard M. Stallman <rms@gnu.org>
73fb36f1
RS
5982
5983 * print.c (print): When removing objects from Vprint_number_table,
5984 only scan the newly added objects.
5985 (print_preprocess): If OBJ is a gensym, and print-continuous-numbering,
5986 unconditionally force it to stay in the table.
5987
85177c86
GM
59881999-10-09 Gerd Moellmann <gerd@gnu.org>
5989
5990 * xfns.c (prepare_image_for_display): Don't try to load image if
5991 loading it failed before.
5992 (lookup_image, prepare_image_for_display): Remember if loading the
5993 image failed.
5994 (xpm_load): Add missing UNBLOCK_INPUT.
5995
5996 * dispextern.h (struct image): New member load_failed_p.
5997
11e4de5d
SM
59981999-10-08 Stefan Monnier <monnier@cs.yale.edu>
5999
f28eba7b 6000 * fileio.c (Fmake_temp_name): Add a reference to `make-temp-file'
11e4de5d
SM
6001 in the docstring.
6002
f1da8f06
GM
60031999-10-08 Gerd Moellmann <gerd@gnu.org>
6004
6005 * xterm.c (XTread_socket) <ClientMessage, WM_TAKE_FOCUS>:
6006 Don't call XSetInputFocus because that can generate additional
6007 FocusIn events.
427ec082 6008
c37bbd4f
GM
60091999-10-07 Jeffrey C Honig <jch@bsdi.com>
6010
6011 * bsdos4.h [HAVE_LIBNCURSES]: Define TERMINFO and LIBS_TERMCAP.
6012
83c8f461 60131999-10-07 Richard M. Stallman <rms@gnu.org>
78cc5c64
GM
6014
6015 * process.c (wait_reading_process_input): When trying to suck
6016 input from one process, for accept-process-output,
6017 exit that loop if we get EAGAIN or EWOULDBLOCK.
6018
577d9e2f
GM
60191999-10-07 Gerd Moellmann <gerd@gnu.org>
6020
6021 * xfaces.c (Qbitmap_spec_p): Replaces Qpixmap_spec_p.
6022 (Fbitmap_spec_p): Replaces Fpixmap_spec_p.
6023 (load_pixmap): Use Fbitmap_spec_p and Qbitmap_spec_p instead of
6024 Fpixmap_spec_p and Qpixmap_spec_p.
6025 (load_face_colors, check_lface_attrs,
6026 merge_face_vector_with_property,
6027 Finternal_set_lisp_face_attribute): Use Fbitmap_spec_p.
6028 (syms_of_xfaces): Initialize Qbitmap_spec_p, defsubr
6029 Fbitmap_spec_p.
6030
f5737ad2
GM
60311999-10-07 Gerd Moellmann <gerd@gnu.org>
6032
6033 * xdisp.c (display_menu_bar): Use MENU_FACE_ID instead of
6034 MODE_LINE_FACE_ID.
6035
6036 * xfaces.c (toplevel) [USE_MOTIF]: Include some Motif headers.
6037 (struct x_resources) [USE_X_TOOLKIT]: New.
6038 (xm_apply_resources, xm_set_menu_resources_from_menu_face)
6039 [USE_MOTIF]: New.
6040 (xl_apply_resources, xl_set_menu_resources_from_menu_face)
6041 [USE_LUCID]: New.
6042 (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]: New.
6043 (Qmenu): New.
6044 (syms_of_xfaces): Initialize Qmenu.
6045 (realize_basic_faces): Realize face `menu'.
6046 (resolve_face_name): New.
6047 (lface_from_face_name): Use it.
6048 (Finternal_set_lisp_face_attribute): Ditto.
6049 (Fpixmap_spec_p): Rewritten. Extend doc string.
6050
6051 * xmenu.c (set_frame_menubar, xmenu_show): Call
6052 x_set_menu_resources_from_menu_face.
6053
6054 * dispextern.h (enum face_id): Add MENU_FACE_ID.
6055 (toplevel): Include X11/Intrinsic.h.
6056
6a1aa823
DL
60571999-10-03 Ken'ichi Handa <handa@gnu.org>
6058
6059 * coding.c (DECODE_CHARACTER_ASCII): Decode ASCII invocated to GR
6060 correctly.
6061
26901792
DL
60621999-09-30 Kenichi Handa <handa@etl.go.jp>
6063
6064 * category.c (modify_lower_category_set): Set default value of
6065 TABLE correctly.
6066
6067 * minibuf.c (Fminibuffer_complete_word): Calculate string byte
6068 size correctly.
6069
60701999-09-29 Gerd Moellmann <gerd@gnu.org>
6071
6072 * editfns.c (Fpropertize): Renamed from Fproperties.
6073
60741999-09-29 Gerd Moellmann <gerd@gnu.org>
6075
6076 * xdisp.c (resize_mini_window): Do nothing if frame is an X
6077 frame that hasn't been initialized yet.
6078
83c8f461 60791999-09-28 Richard M. Stallman <rms@gnu.org>
a04f1a93
PR
6080
6081 * keymap.c (Fsingle_key_description): Make tem big enough.
6082 (describe_buffer_bindings): Make buf big enough.
6083
83c8f461 60841999-09-27 Richard M. Stallman <rms@gnu.org>
d177c583
PR
6085
6086 * intervals.c (get_local_map): Use indirect_function,
6087 not Findirect_function.
6088
26901792
DL
60891999-09-27 Dave Love <fx@gnu.org>
6090
6091 * cm.h: Remove unneeded declaration of ospeed.
6092
60931999-09-26 Gerd Moellmann <gerd@gnu.org>
6094
6095 * lisp.h (toplevel): Add prototype for
6096 next_single_char_property_change.
6097
6098 * textprop.c (next_single_char_property_change): New.
6099
6100 * xdisp.c (display_prop_end, invisible_text_between_p): Use
6101 next_single_char_property_change.
6102
61031999-09-25 Gerd Moellmann <gerd@gnu.org>
6104
6105 * editfns.c (Fproperties): New.
6106 (syms_of_editfns): Defsubr it.
6107
6108 * xfns.c (lookup_image): Set image's timestamp because it's
6109 used when we look it up.
6110
61111999-09-23 Gerd Moellmann <gerd@gnu.org>
6112
6113 * window.c (enlarge_window): Add window parameter instead of using
6114 selected_window.
6115 (Fdisplay_buffer): Call it with window parameter instead of
6116 setting selected_window.
6117 (Fenlarge_window, Fshrink_window): Ditto.
6118 (shrink_mini_window): If there is no recorded height and position
6119 info, resize mini-window to height 1.
6120
6121 * xfns.c (image_error): Use add_to_log.
6122
6123 * xfaces.c (load_pixmap): Call add_to_log without frame parameter.
6124 (load_face_font_or_fontset, load_color,
6125 merge_face_vector_with_property): Ditto.
6126
6127 * dispextern.h: Add prototype for add_to_log.
6128
6129 * xfaces.c (add_to_log): Move to xdisp.c.
6130
6131 * xdisp.c (add_to_log): Moved from xfaces.c. Remove frame
6132 parameter.
6133
61341999-09-23 Gerd Moellmann <gerd@gnu.org>
6135
6136 * xterm.c (XTread_socket) <MotionNotify>: Change #ifdef
6137 USE_X_TOOLKIT to #ifdef USE_TOOLKIT_SCROLL_BARS.
6138
6139 * xdisp.c (resize_mini_window): Use grow_mini_window and
6140 shrink_mini_window.
6141
6142 * window.c (window_min_size): Add parameter ignore_fixed_p.
6143 (change_window_height): Call window_min_size with new parameter.
6144 (shrink_window_lowest_first, save_restore_orig_size,
6145 grow_mini_window, shrink_mini_window): New.
6146 (make_window, replace_window): Initialize orig_top and
6147 orig_height.
6148 (enlarge_window): Renamed from change_window_height. Make it
6149 static.
6150 (Fdisplay_buffer, Fenlage_window, Fshrink_window): Call
6151 enlarge_window instead of change_window_height.
6152
6153 * window.h (struct window): New members orig_top, orig_height.
6154 (toplevel): Add prototypes for grow_mini_window and
6155 shrink_mini_window. Remove prototype for change_window_height.
6156
61571999-09-21 Eli Zaretskii <eliz@gnu.org>
6158
6159 * frame.c (frame_name_fnn_p): Fix previous change.
6160
61611999-09-20 Gerd Moellmann <gerd@gnu.org>
6162
6163 * minibuf.c (toplevel): Move include of stdio.h to other includes.
6164
6165 * dispnew.c (direct_output_for_insert): Cast arguments to
6166 safe_bcopy to char *.
6167
6168 * lread.c (readchar): Remove unused variables.
6169 (read_filtered_event, read1, Fmapatoms): Ditto.
6170 (toplevel): Include intervals.h.
6171
6172 * eval.c (Fsignal): Remove unused variables.
6173 (Fcommandp, do_autoload): Ditto.
6174
6175 * lisp.h: Add prototype for safe_bcopy, fatal.
6176
6177 * editfns.c (init_editfns): Remove unused variables.
6178 (Fgoto_char, Fchar_after, Fformat): Ditto.
6179 (message_text, message_length): Put in #ifndef HAVE_MENUS.
6180
6181 * data.c (find_symbol_value): Remove unused variables.
6182 (Faref, Fstring_to_number): Ditto.
6183 (toplevel): Include stdio.h.
6184 (Fnumber_to_string): Cast XINT to long for %ld.
6185
6186 * casefiddle.c (casify_object): Remove unused variables.
6187 (casify_region): Ditto.
6188
427ec082 6189 * filelock.c (get_boot_time): Put local variable used in
26901792
DL
6190 conditinally compiled section in #ifdef.
6191 (toplevel): Include stdio.h.
6192
6193 * keymap.c (Flookup_key, Faccessible_keymaps, describe_vector,
6194 keys_of_keymap, syms_of_keymap): Remove unused variables.
6195
61961999-09-20 Gerd Moellmann <gerd@gnu.org>
6197
6198 * xdisp.c (sync_frame_with_window_matrix_rows): Disable frame rows
6199 whose corresponding window rows have been disabled in
6200 try_window_id.
6201
62021999-09-20 Gerd Moellmann <gerd@gnu.org>
6203
6204 * xdisp.c (compute_window_start_on_continuation_line): Handle case
6205 that window start is out of range.
6206 (handle_display_prop, handle_single_display_prop): Replace
6207 marginal area specifications like `left-margin' with `(margin
6208 left-margin)'.
6209 (Qmargin): New.
6210 (syms_of_xdisp): Initialize Qmargin.
6211
62121999-09-19 Gerd Moellmann <gerd@gnu.org>
6213
6214 * syntax.c (update_syntax_table, find_defun_start, back_comment,
6215 describe_syntax, skip_chars): Remove unused variables.
6216 (back_comment, forw_comment): Add braces to if-statement with
6217 if-else as dependent statement.
6218
6219 * process.c (list_processes_1): Remove unused variables.
6220 (Fopen_network_stream, create_process): Add parentheses to
6221 conditional expressions.
6222 (create_process): Put declaration of sigchld in #if 0.
6223 (Fopen_network_stream): Removed unused variables.
6224 (Fopen_network_stream, wait_reading_process_input,
6225 wait_reading_process_input, send_process, send_process): Ditto.
6226 (toplevel): Add prototypes for set_waiting_for_input and
6227 keyboard_bit_set.
6228
6229 * abbrev.c (Fexpand_abbrev): Remove unused variables.
6230
6231 * textprop.c (Fset_text_properties): Remove unused variables.
6232 (text_property_list, verify_interval_modification,
6233 interval_has_all_properties): Ditto.
6234
6235 * callproc.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6236 (Fcall_process): Remove unused variable.
6237
6238 * keyboard.c (Frecursive_edit): Remove unused variable.
6239 (command_loop_1, safe_run_hooks, kbd_buffer_get_event,
6240 timer_check, make_lispy_event, menu_bar_items,
6241 menu_bar_one_keymap, menu_bar_item, parse_menu_item,
6242 parse_tool_bar_item, read_char_x_menu_prompt, read_key_sequence,
6243 kbd_buffer_get_event, make_lispy_event, read_char_x_menu_prompt,
6244 read_key_sequence): Ditto. Fread_key_sequence,
6245 Fread_key_sequence_vector, Fsuspend_emacs): Ditto.
6246 (read_key_sequence) [GOBBLE_FIRST_EVENT]: Put local variables only
6247 used when GOBBLE_FIRST_EVENT is defined in #ifdef
6248 (Fexecute_extended_command): Cast XINT to long for %ld.
6249 (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6250 (toplevel): Include sys/types.h.
6251
6252 * lisp.h (RETURN_UNGCPRO): Use do-while (0) idiom.
6253 (toplevel): Add prototypes for stuff_char, and
6254 code_convert_string_norecord.
6255
62561999-09-19 Gerd Moellmann <gerd@gnu.org>
6257
6258 * buffer.h: Add prototype for r_re_alloc.
6259
6260 * insdel.c (copy_text): Removed unused variables.
6261 (count_combining_after, count_combining_after, insert_1_both,
6262 insert_from_string_1, insert_from_buffer_1, check_markers): Ditto.
6263 (adjust_after_replace, replace_range): Add parentheses to logical
6264 expressions. Remove unused variables.
6265 (CHECK_BYTE_COMBINING_FOR_INSERT): Add parentheses to logical
6266 expression.
6267
6268 * alloc.c (Fgarbage_collect): Remove unused variable.
6269 (compact_strings): Add parentheses around assignments in
6270 conditional context.
6271 (toplevel): Put declaration of unused function clear_marks
6272 in #if 0 like its definition.
6273
6274 * lisp.h: Add prototype for shrink_regexp_cache,
6275 sweep_weak_hash_tables.
6276
62771999-09-19 Dave Love <fx@gnu.org>
6278
6279 * process.c (Fopen_network_stream): Use strerror, not gai_strerror.
6280
6281 * doc.c (read_bytecode_char): Declare arg.
6282
6283 * lisp.h: Declare Fcurrent_message, Fmake_temp_name,
6284 read_bytecode_char, Fx_hide_busy_cursor, getloadavg.
6285
62861999-09-18 Richard Stallman <rms@gnu.org>
6287
6288 * xdisp.c (echo_area_display): Turn off code that returned
6289 without doing anything when using a terminal frame.
6290
83c8f461 62911999-09-17 Richard M. Stallman <rms@gnu.org>
27271329
PR
6292
6293 * unexelf.c (unexec): Don't get confused by a short section
6294 just before the bss section.
6295
26901792
DL
62961999-09-16 Gerd Moellmann <gerd@gnu.org>
6297
6298 * emacs.c (main): Remove unused variables.
6299 (sort_args, Fkill_emacs, Fkill_emacs): Ditto.
6300
6301 * lisp.h: Add prototype for uninterrupt_malloc, memory_warnings,
6302 init_fileio_once, syms_of_sound, init_xfns, init_fns
6303 init_sound, check_message_stack.
6304
6305 * emacs.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6306
6307 * intervals.c (rotate_right, rotate_left): Add braces to avoid
6308 ambiguous else warning.
6309 (split_interval_left): Remove unused variables.
6310 (previous_interval, adjust_intervals_for_deletion,
6311 set_point_both, set_point_both, set_intervals_multibyte_1): Ditto.
6312 (icount, idepth, zero_length): Move into #if 0 section below
6313 original position where these are used.
6314
6315 * buffer.h [REL_ALLOC]: Add prototypes for r_alloc and r_alloc_free.
6316
6317 * buffer.c (Fkill_buffer): Remove unused variables.
6318 (Fkill_buffer, overlays_at, overlays_in, recenter_overlay_lists,
6319 fix_overlays_in_range, Fmove_overlay, Fprevious_overlay_change,
6320 init_buffer_once, (syms_of_buffer): Ditto.
6321
6322 * xrdb.c (get_fallback): Remove unused variable.
6323 (x_load_resources): Ditto. Put local variable used for Motif only
6324 in #ifdef USE_MOTIF.
6325
63261999-09-16 Gerd Moellmann <gerd@gnu.org>
6327
6328 * minibuf.c (read_minibuf): Remove unused variables.
6329 (read_minibuf, Fread_buffer, scmp, Fcompleting_read): Ditto.
6330 (do_completion): Move assignment out of conditional context.
6331 (Fdisplay_completion_list): Add parentheses to conditional expression.
6332
6333 * cm.c (toplevel) [HAVE_TERMCAP_H]: Include termcap.h.
6334
6335 * lisp.h: Add prototype for no_switch_window.
6336
6337 * window.c (Fset_window_buffer): Remove unused variables.
6338 (Fset_window_margins): Ditto.
6339
6340 * xdisp.c (resize_mini_window): Temporarily set the selected
6341 window's or Vminibuf_scroll_window's height to "fixed" around
6342 the call the change_window_height.
6343
6344 * window.c (window_fixed_size_p): Check window's height_fixed_p
6345 flag.
6346
6347 * window.h (struct window): New member height_fixed_p.
6348
6349 * dispnew.c (direct_output_forward_char): Don't use this method
6350 if showing a message or a message was just cleared because we
6351 might need to resize the mini-window.
6352
63531999-09-16 Gerd Moellmann <gerd@gnu.org>
6354
6355 * frame.c (Fdelete_frame): Correct local variable pointing to
6356 selected frame after selecting new frame.
6357
63581999-09-15 Richard Stallman <rms@gnu.org>
6359
6360 * puresize.h (BASE_PURESIZE): Increase to 525000.
6361
6362 * filelock.c (Vtemporary_file_directory): New variable.
6363 (syms_of_filelock): Set up Lisp variable.
6364
63651999-09-15 Gerd Moellmann <gerd@gnu.org>
6366
6367 * term.c (OUTPUT_IF, OUTPUT1_IF): Use do-while.
6368 (encode_terminal_code): Remove unused variables.
6369 (turn_off_face): Ditto.
6370 (toplevel): Include termcap.h if HAVE_TERMCAP_H.
6371
6372 * dispnew.c (update_frame_line): If writing whole desired line,
6373 don't clear to end of line if already at the end.
6374
63751999-09-15 Gerd Moellmann <gerd@gnu.org>
6376
6377 * xdisp.c (resize_mini_window): Don't report changed window
6378 height if it actually hasn't changed.
6379
427ec082 6380 * widget.c (set_frame_size, EmacsFrameSetCharSize): Remove
26901792
DL
6381 unused variables.
6382 (mark_shell_size_user_specified): Put in #if 0 because not used.
6383 (create_frame_gcs): Put in #if 0 because currently unused.
6384 (first_frame_p): Ditto.
6385
6386 * xmenu.c (single_menu_item, Fx_popup_menu, Fx_popup_menu,
6387 single_submenu, update_frame_menubar, set_frame_menubar,
6388 free_frame_menubar, xmenu_show, xdialog_show): Remove unused
6389 variables.
6390
6391 * print.c (PRINTFULLP): Removed because it is no longer used and
6392 is misleading.
6393 (Ferror_message_string): Remove unused variables.
6394 (print_object): Cast argument of sprintf to long for `%ld'
6395 specifier. Remove unused variable.
6396
63971999-09-14 Gerd Moellmann <gerd@gnu.org>
6398
6399 * sound.c (Fplay_sound): Remove usused variables.
6400 (be2hs): Put in #if 0 because it's currently not used.
6401
64021999-09-14 Ken Raeburn <raeburn@gnu.org>
6403
6404 * print.c (Ferror_message_string, print_error_message,
6405 print_object): Use XCAR, XCDR and XFLOAT_DATA instead of explicit
6406 member access.
6407
64081999-09-14 Gerd Moellmann <gerd@gnu.org>
6409
6410 * frame.h (CHECK_FRAME, CHECK_LIVE_FRAME): Put code in do-while.
6411
6412 * frame.c (Fnext_frame): Remove unused variable(s).
6413 (Fprevious_frame, Fmouse_pixel_position, frame_name_fnn_p): Ditto.
6414 (store_frame_param): Add parentheses to conditional expression.
6415 (Fmodify_frame_parameters): Remove unused variables.
6416 (Fmodify_frame_parameters, Fset_frame_size, Fset_frame_position):
6417 Ditto.
6418
6419 * xfns.c (x_set_background_color): Remove unused variable(s).
6420 (x_set_border_pixel): Ditto.
6421 (x_set_menu_bar_lines): Put local variable used only for
6422 non-toolkit case in #ifdef/#endif.
6423 (x_figure_window_size): Remove unused variable(s).
427ec082 6424 (x_figure_window_size, x_window, lookup_image,
26901792
DL
6425 xbm_read_bitmap_file_data, x_build_heuristic_mask, pbm_load,
6426 png_load, jpeg_load, gif_load, x_create_tip_frame,
6427 x_create_tip_frame, Fx_show_tip, x_set_border_pixel): Ditto.
6428
6429 * xterm.c (x_scroll_bar_handle_click): Compile only if
6430 not USE_TOOLKIT_SCROLL_BARS.
6431 (x_scroll_bar_set_handle, x_scroll_bar_note_movement): Ditto.
6432
6433 * dispextern.h: Add prototypes for gamma_correct and
6434 x_kill_gs_process.
6435
6436 * xterm.c (x_produce_glyphs): Remove unused variable(s).
6437 (x_alloc_nearest_color_for_widget, note_tool_bar_highlight,
6438 x_set_toolkit_scroll_bar_thumb): Ditto.
6439 (x_scroll_bar_create): Move local variable to the
6440 conditionally compiled section of code where it is used.
6441 (x_scroll_bar_create): Remove unused variable(s).
6442 (x_scroll_bar_remove, XTread_socket): Ditto.
6443 (XTread_socket) <ConfigureNotify>: Move variables used for
6444 non-toolkit case into conditionally compiled section of code.
6445
6446 * window.h (freeze_window_starts): Fix typo in prototype.
6447
6448 * xdisp.c (display_echo_area_1, try_window_id): Remove unused
6449 variable(s).
6450
6451 * lisp.h: Add prototype for debug_print.
6452
6453 * dispextern.h (xassert) [GLYPH_DEBUG]: Change definition
6454 to use do-while.
6455
6456 * fns.c (SXHASH_COMBINE): Add missing parentheses.
6457 (Fchar_table_range, Fset_char_table_default, mapcar1,
6458 Fyes_or_no_p, sweep_weak_hash_tables): Remove unused variable(s).
6459
6460 * lisp.h: Add prototype for getloadavg.
6461
64621999-09-14 Andreas Schwab <schwab@gnu.org>
6463
6464 * process.c (Fopen_network_stream): Avoid socket decriptor leak.
6465
6466 * lisp.h: Declare close_file_unwind.
6467
64681999-09-14 Richard Stallman <rms@gnu.org>
6469
6470 * filelock.c (get_boot_time): Make the temp name in the proper dir.
6471
64721999-09-13 Gerd Moellmann <gerd@gnu.org>
6473
6474 * xdisp.c (redisplay_window): Make sure start_at_line_beg
6475 is always set correctly.
6476
64771999-09-13 Dave Love <fx@gnu.org>
6478
6479 * xdisp.c (move_it_in_display_line_to): Make type consistent with
6480 declaration.
6481
64821999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6483
6484 * xdisp.c (QCfile): Move here from xfns.c.
6485 (syms_of_xdisp): Initialize it.
6486 (message2_nolog): Change for Lisp_Object selected_frame.
6487 (message3_nolog, message_with_string, message,
6488 setup_echo_area_for_printing, truncate_echo_area,
6489 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
6490
64911999-09-13 Dave Love <fx@gnu.org>
6492
6493 * xterm.c: Don't continue #define args for benefit of old cc.
6494 (xt_action_hook): Indent #error for benefit of K&R cc.
6495
64961999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6497
6498 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
6499 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
6500 (XRINGBELL): Removed.
6501
65021999-09-13 Dave Love <fx@gnu.org>
6503
6504 * xfns.c (x_put_x_image): Make type consistent with declaration.
6505
6506 * fns.c (Fmake_hash_table): Fix string continuation.
6507
65081999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6509
6510 * xfns.c (QCfile): Moved to xdisp.c.
6511 (syms_of_xfns): Don't initialize QCfile.
6512 (check_x_frame): Change for Lisp_Object selected_frame.
6513 (check_x_display_info, x_get_resource_string): Ditto.
6514
65151999-09-13 Gerd Moellmann <gerd@gnu.org>
6516
6517 * minibuf.c (choose_minibuf_frame): Don't try to set the
6518 mini-buffer window's buffer, if the buffer is invalid.
6519
6520 * xfns.c (QCfile): Moved to xdisp.c.
6521 (syms_of_xfns): Don't initialize QCfile.
6522
6523 * xdisp.c (QCfile): Move here from xfns.c.
6524 (syms_of_xdisp): Initialize it.
6525
6526 * lisp.h (selected_frame): Add external declaration.
6527
6528 * xselect.c (x_own_selection): Change for Lisp_Object selected_frame.
6529 (Fx_store_cut_buffer_internal): Ditto.
6530 (Fx_rotate_cut_buffers_internal): Ditto.
6531
6532 * xfaces.c (frame_or_selected_frame): Change for Lisp_Object
6533 selected_frame.
6534 (Finternal_set_lisp_face_attribute): Ditto.
6535 (Finternal_get_lisp_face_attribute): Ditto.
6536 (Finternal_lisp_face_empty_p): Ditto.
6537 (Fdump_face): Ditto.
6538
6539 * term.c (OUTPUT): Change for Lisp_Object selected_frame.
6540 (OUTPUT_IF, ring_bell, set_terminal_modes, reset_terminal_modes,
6541 set_terminal_window, set_scroll_region, reassert_line_highlight,
6542 change_line_highlight, cursor_to, raw_cursor_to, clear_to_end,
6543 clear_end_of_line, clear_end_of_line_raw, clear_end_of_line_raw,
6544 encode_terminal_code, write_glyphs, term_init): Ditto.
6545
6546 * sysdep.c (reset_sys_modes): Change for Lisp_Object selected_frame.
6547 (kbd_input_ast, read_input_waiting): Ditto.
6548
6549 * minibuf.c (choose_minibuf_frame): Change for Lisp_Object
6550 selected_frame.
6551 (read_minibuf): Ditto.
6552
6553 * keyboard.c (command_loop_1): Change for Lisp_Object
6554 selected_frame.
6555 (cmd_error_internal, command_loop_1, read_char,
6556 kbd_buffer_get_event, read_avail_input,
6557 read_char_minibuf_menu_prompt, read_key_sequence, Fsuspend_emacs,
6558 interrupt_signal, quit_throw_to_read_char): Ditto.
6559
6560 * fontset.c (Ffont_info): Change for Lisp_Object selected_frame.
6561 (Ffontset_info): DItto.
6562
6563 * emacs.c (handle_USR1_signal): Change for Lisp_Object selected_frame.
6564
6565 * dispnew.c (selected_frame): Make it a Lisp_Object.
6566 (adjust_frame_glyphs_initially): Change for Lisp_Object selected_frame.
6567 (direct_output_for_insert, direct_output_forward_char,
6568 init_display): Ditto.
6569
6570 * data.c (swap_in_symval_forwarding): Change for Lisp_Object
6571 selected_frame.
6572 (set_internal): Ditto.
6573
6574 * buffer.c (Fother_buffer): Change for Lisp_Object selected_frame.
6575 (record_buffer): Ditto.
6576
6577 * frame.c (Fmake_terminal_frame): Use SELECTED_FRAME.
6578 (do_switch_frame): Change for Lisp_Object selected_frame.
6579 (Fselected_frame): Ditto.
6580 (Fframe_first_window): Use SELECTED_FRAME.
6581 (Fframe_root_window): Change for Lisp_Object selected_frame.
6582 (Fframe_selected_window, Fset_frame_selected_window, Fnext_frame,
6583 Fprevious_frame, other_visible_frames, Fdelete_frame,
6584 Fmouse_position, Fmouse_pixel_position, Fmake_frame_visible,
6585 Fmake_frame_invisible, Ficonify_frame, Fraise_frame, Flower_frame,
6586 Fframe_parameters, Fmodify_frame_parameters, Fframe_char_height,
6587 Fframe_char_width, Fframe_pixel_height, Fframe_pixel_width,
6588 Fset_frame_height, Fset_frame_width): Ditto.
6589
65901999-09-13 Gerd Moellmann <gerd@gnu.org>
6591
6592 * xdisp.c (message2_nolog): Change for Lisp_Object selected_frame.
6593 (message3_nolog, message_with_string, message,
6594 setup_echo_area_for_printing, truncate_echo_area,
6595 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
6596
6597 * xmenu.c (Fx_popup_menu): Change for Lisp_Object selected_frame.
6598 (Fx_popup_dialog): Ditto.
6599
6600 * xfns.c (check_x_frame): Change for Lisp_Object selected_frame.
6601 (check_x_display_info, x_get_resource_string): Ditto.
6602
6603 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
6604 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
6605 (XRINGBELL): Removed.
6606
6607 * window.c (Fminibuffer_window): Change for Lisp_Object
6608 selected_frame.
6609 (Fwindow_at, Fprevious_window, window_loop, select_window_1,
6610 display_buffer_1, Fdisplay_buffer, temp_output_buffer_show,
6611 Fcurrent_window_configuration, init_window_once): Ditto.
6612
6613 * frame.h (SELECTED_FRAME): New.
6614
66151999-09-12 Ken Raeburn <raeburn@gnu.org>
6616
6617 * category.c (word_boundary_p): Use XCAR and XCDR.
6618 * ccl.c (ccl_driver, resolve_symbol_ccl_program,
6619 Fregister_code_conversion_map): Likewise.
6620 * coding.c (setup_coding_system, detect_coding_system,
6621 Ffind_operation_coding_system, Fset_coding_priority_internal):
6622 Likewise.
6623 * doc.c (get_doc_string, Fdocumentation,
6624 store_function_docstring): Likewise.
6625 * editfns.c (save_restriction_restore): Likewise.
6626 * eval.c (Fcond, Fmacroexpand, Fcondition_case, wants_debugger,
6627 skip_debugger, find_handler_clause, Fautoload, Fapply,
6628 run_hook_with_args, run_hook_list_with_args, Ffetch_bytecode):
6629 Likewise.
6630 * fileio.c (Ffind_file_name_handler, Finsert_file_contents,
6631 Fwrite_region, do_auto_save_unwind, Fdo_auto_save,
6632 Fread_file_name): Likewise.
6633 * filelock.c (unlock_all_files): Likewise.
6634 * insdel.c (Fcombine_after_change_execute): Likewise.
6635 * intervals.c (adjust_intervals_for_insertion): Likewise.
6636 * keymap.c (get_keymap_1, Fkeymap_parent, Fset_keymap_parent,
6637 Fset_keymap_parent, fix_submap_inheritance, access_keymap,
6638 store_in_keymap, Fcopy_keymap, define_as_prefix,
6639 current_minor_maps, Faccessible_keymaps,
6640 accessible_keymaps_char_table, Fkey_description,
6641 Fwhere_is_internal, where_is_internal_2, where_is_internal_1,
6642 describe_buffer_bindings, describe_map_tree, shadow_lookup,
6643 describe_map): Likewise.
6644 * lread.c (Fload, load_unwind, close_load_descs, read_vector,
6645 read_list, init_lread): Likewise.
6646 * search.c (Fmatch_data): Likewise.
6647 * sunfns.c (Fsun_menu_internal): Likewise.
6648 * syntax.c (describe_syntax): Likewise.
6649 * undo.c (record_insert, record_delete, Fundo_boundary,
6650 truncate_undo_list): Likewise.
6651 * vmsproc.c (child_sig): Likewise.
6652
6653 * editfns.c (Fformat): Use XFLOAT_DATA.
6654
66551999-09-12 Gerd Moellmann <gerd@gnu.org>
6656
6657 * keyboard.c (command_loop_1): Resize mini-window to the
6658 exact size of a message displayed, if any.
6659
6660 * xdisp.c (resize_mini_window): Add parameter exact_p. Resize
6661 to exact size if exact_p is non-zero.
6662 (display_echo_area_1): Call resize_mini_window with
6663 new parameter.
6664 (redisplay_internal): Ditto.
6665 (resize_echo_area_axactly): New.
6666
6667 * minibuf.c (read_minibuf_unwind): Call resize_mini_window with
6668 new parameter.
6669
6670 * dispextern.h: Change prototype of resize_mini_window.
6671 Add prototype for resize_echo_area_axactly.
6672
6673 * xfaces.c (Fx_family_fonts): Replaces Fx_font_list.
6674 (syms_of_xfaces): Defsubr accordingly.
6675
6676 * xdisp.c (hscroll_window_tree): Choose cursor row from
6677 desired or current matrix.
6678 (redisplay_internal): Hscroll before updating.
6679
66801999-09-12 Gerd Moellmann <gerd@gnu.org>
6681
6682 * syntax.c (Fforward_word): Use prompt_end_charpos instead
6683 of minibuffer_prompt_length.
6684
6685 * minibuf.c (read_minibuf): Use prompt_end_charpos instead
6686 of minibuffer_prompt_length.
6687 (read_minibuf_unwind): Ditto.
6688 (Fminibuffer_complete_and_exit): Ditto.
6689 (Fminibuffer_complete_word): Ditto.
6690 (Fminibuffer_prompt_end): Ditto.
6691
6692 * editfns.c (Fbuffer_string): Use prompt_end_charpos instead
6693 of minibuffer_prompt_length.
6694 (Fline_beginning_position): Ditto.
6695
6696 * buffer.c (Fget_buffer_create): Use prompt_end_charpos instead
6697 of minibuffer_prompt_length.
6698 (Fmake_indirect_buffer): Ditto.
6699 (Fkill_buffer): Ditto.
6700 (Ferase_buffer): Ditto.
6701
6702 * buffer.h (prompt_end_charpos): Replaces
6703 minibuffer_prompt_length.
6704
427ec082 6705 * minibuf.c (read_minibuf): Return mini-buffer contents
26901792
DL
6706 without the prompt.
6707
6708 * editfns.c (make_buffer_string_both): Take out the code
6709 to handle mini-buffer prompts.
6710 (Fbuffer_string): Handle the prompt here, instead.
6711
6712 * xfaces.c (lface_from_face_name): Resolve face aliases.
6713 (Qmode_line): Replaces Qmodeline.
6714 (realize_basic_faces): Use Qmode_line.
6715 (syms_of_xfaces): Initialize Qmode_line.
6716
67171999-09-12 Gerd Moellmann <gerd@gnu.org>
6718
6719 * minibuf.c (read_minibuf): Set minibuf_prompt_width to the
6720 current column after inserting prompt.
6721 (Fminibuffer_prompt_width): Return minibuf_prompt_width.
6722
6723 * xfaces.c (Qframe_update_face_colors): New.
6724 (syms_of_xfaces): Initialize call.
6725 (update_face_from_frame_parameter): Call that function when
6726 the frame's background changes.
6727
67281999-09-12 Richard Stallman <rms@gnu.org>
6729
6730 * insdel.c (del_range_1): Don't treat minibuffer prompt specially.
6731
67321999-09-12 Ken Raeburn <raeburn@gnu.org>
6733
6734 * alloc.c (Fcons, pure_cons, Fpurecopy, Fgarbage_collect,
6735 mark_object, mark_buffer): Use XCAR and XCDR.
6736 * bytecode.c (Fbyte_code): Likewise.
6737 * callint.c (Fcall_interactively, Fprefix_numeric_value):
6738 Likewise.
6739 * callproc.c (Fcall_process, Fcall_process_region, child_setup,
6740 getenv_internal): Likewise.
6741 * dired.c (file_name_completion): Likewise.
6742 * fns.c (Fsafe_length, concat, Fcopy_alist, Fmember, Fmemq, Fassq,
6743 assq_no_quit, Fassoc, Frassq, Frassoc, Fdelq, Fdelete, Freverse,
6744 Fplist_get, Fplist_put, internal_equal, mapcar1): Likewise.
6745 * indent.c (Fcompute_motion): Likewise.
6746 * process.c (decode_status, Fprocess_status, Fprocess_exit_status,
6747 list_processes_1, Fstart_process, Fopen_network_stream,
6748 wait_reading_process_input, read_process_output_call,
6749 kill_buffer_processes, sigchld_handler, exec_sentinel_unwind,
6750 status_notify, wait_reading_process_input): Likewise.
6751 * textprop.c (PLIST_ELT_P, property_value, set_properties,
6752 extend_property_ranges): Likewise.
6753 * w32faces.c (Fpixmap_spec_p, merge_face_list): Likewise.
6754 * w32fns.c (x_window_to_frame, x_set_frame_parameters,
6755 x_report_frame_params, x_set_cursor_type, x_icon_type,
6756 x_figure_window_size, Fx_create_frame, w32_load_system_font,
6757 w32_load_font, enum_font_cb2, w32_list_bdf_fonts, w32_list_fonts,
6758 w32_list_synthesized_fonts, w32_find_ccl_program, Fx_list_fonts,
6759 Fw32_find_bdf_fonts, w32_find_bdf_fonts_in_dir,
6760 x_display_info_for_name, Fx_display_list): Likewise.
6761 * w32menu.c (menubar_id_to_frame, single_keymap_panes,
6762 Fx_popup_menu, Fx_popup_dialog): Likewise.
6763 * w32proc.c (Fw32_set_keyboard_layout): Likewise.
6764 * w32term.c (x_window_to_scroll_bar, w32_read_socket,
6765 w32_term_init, x_delete_display): Likewise.
6766 * xfns.c (x_window_to_frame, x_any_window_to_frame,
6767 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
6768 x_top_window_to_frame, x_set_frame_parameters,
6769 x_report_frame_params, x_set_cursor_type, x_icon_type,
6770 x_figure_window_size, Fx_create_frame, x_display_info_for_name,
6771 Fx_display_list, x_create_tip_frame): Likewise.
6772 * xmenu.c (menubar_id_to_frame, single_keymap_panes,
6773 Fx_popup_menu, Fx_popup_dialog): Likewise.
6774 * xselect.c (x_own_selection, x_get_local_selection,
6775 x_handle_selection_request, x_handle_selection_clear,
6776 x_clear_frame_selections, wait_for_property_change_unwind,
6777 wait_for_property_change, x_handle_property_notify,
6778 copy_multiple_data, x_get_foreign_selection,
6779 lisp_data_to_selection_data, clean_local_selection_data,
6780 x_handle_selection_notify, Fx_get_selection_internal,
6781 x_disown_buffer_selections): Likewise.
6782 * xterm.c (x_window_to_scroll_bar, XTread_socket, x_list_fonts,
6783 x_load_font, x_find_ccl_program, x_term_init, x_delete_display):
6784 Likewise.
6785
6786 * alloc.c (make_float, make_pure_float, Fpurecopy): Use
6787 XFLOAT_DATA.
6788 * bytecode.c (Fbyte_code): Likewise.
6789 * floatfns.c (extract_float, Fexpt, Fabs, rounding_driver,
6790 fmod_float): Likewise.
6791
67921999-09-11 Richard Stallman <rms@gnu.org>
6793
6794 * xdisp.c (run_window_scroll_functions): If hook functions switch
6795 buffers, switch back after.
6796
67971999-09-11 Ken Raeburn <raeburn@gnu.org>
6798
6799 * charset.h (GET_TRANSLATION_TABLE): Use XCDR.
6800 * frame.h (FOR_EACH_FRAME): Use XCAR and XCDR.
6801 (PIXEL_X_FROM_CANON_X, PIXEL_Y_FROM_CANON_Y): Use XFLOAT_DATA.
6802 * keyboard.h (EVENT_HEAD, EVENT_START, EVENT_END, POSN_WINDOW,
6803 POSN_BUFFER_POSN, POSN_WINDOW_POSN, POSN_TIMESTAMP): Use XCAR and
6804 XCDR.
6805 * syntax.h (SYNTAX, SYNTAX_WITH_FLAGS, SYNTAX_MATCH): Use XCAR and
6806 XCDR.
6807
68081999-09-10 Richard Stallman <rms@gnu.org>
6809
6810 * xterm.c (XTread_socket): In XSetInputFocus, use RevertToParent,
6811 not RevertToPointerRoot.
6812 (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
6813 Fix the code to clear around the scroll bar.
6814
68151999-09-10 Keisuke Nishida <kxn30@po.cwru.edu>
6816
6817 * print.c: Support print-circle and related features.
6818 (Vprint_gensym_alist): Removed.
6819 (Vprint_circle, Vprint_continuous_numbering, print_number_index
6820 Vprint_number_table): New variables.
6821 (PRINT_NUMBER_OBJECT, PRINT_NUMBER_STATUS): New macros.
6822 (PRINTPREPARE, PRINTFINISH): Don't set Vprint_gensym_alist.
6823 (print, print_preprocess, print_preprocess_string, print_object):
6824 New/modified functions with print-circle feature. Use
6825 Vprint_number_table instead of Vprint_gensym_alist for print-gensym.
6826 (syms_of_print): Defined new Lisp variables `print-circle',
6827 `print-continuous-numbering', `print-number-table'.
6828
68291999-09-10 Gerd Moellmann <gerd@gnu.org>
6830
6831 * xfns.c (x_build_heuristic_mask): Accept a list `(R G B)'
6832 as background color specification instead of an integer.
6833 (image-cache-eviction-delay): Replaces image-eviction-seconds.
6834 (Vimage_cache_eviction_delay): Replaces Vimage_eviction_seconds.
6835 (clear_image_cache, syms_of_xfns): Use it.
6836 (Qpostscript): Replaces Qghostscript.
6837 (gs_type): Use it.
6838 (gs_image_p): Ditto.
6839 (syms_of_xfns): Initialize Qpostscript.
6840
68411999-09-10 Richard Stallman <rms@gnu.org>
6842
6843 * buffer.c (Ferase_buffer): Don't erase the minibuffer prompt.
6844
68451999-09-09 Richard Stallman <rms@gnu.org>
6846
6847 * editfns.c (Fline_beginning_position): Handle minibuffer prompt here.
6848
6849 * cmds.c (Fbeginning_of_line): Don't handle minibuffer prompt here.
6850
68511999-09-09 Gerd Moellmann <gerd@gnu.org>
6852
6853 * fns.c (Fmakehash): Accept just one optional argument TEST.
6854
6855 * xfns.c (QCindex): New.
6856 (syms_of_xfns): Initialize QCindex.
6857 (gif_load): Use it instead of `:image'.
6858
68591999-09-09 Richard Stallman <rms@gnu.org>
6860
6861 * fileio.c (Fwrite_region): Finish renaming CONFIRM to MUSTBENEW.
6862 (Fwrite_region) [DOS_NT]: Handle `excl' here too.
6863
68641999-09-08 Gerd Moellmann <gerd@gnu.org>
6865
6866 * xdisp.c (Qwhen): Replaces QCwhen.
6867 (syms_of_xdisp): Initialized it instead of QCwhen.
6868 (handle_single_display_prop): Use it instead of QCwhen.
6869
68701999-09-08 Ken'ichi Handa <handa@gnu.org>
6871
6872 * charset.c (translate_char): Reset MSBs of arguments of
6873 MAKE_CHAR.
6874 (CHAR_COMPONENTS_VALID_P): Fix for ASCII.
6875
68761999-09-08 Lars Magne Ingebrigtsen <larsi@gnus.org>
6877
6878 * editfns.c (Fbufsize): Accept an extra BUFFER parameter.
6879
6880 * fns.c (Fbase64_decode_region): Don't place point outside of the
6881 current accessible portion.
6882
68831999-09-07 Richard Stallman <rms@gnu.org>
6884
6885 * keymap.c (fix_submap_inheritance): Do nothing if the proper
6886 parent is an ancestor of SUBMAP; otherwise, add it as the
6887 ultimate ancestor.
6888
68891999-09-07 Gerd Moellmann <gerd@gnu.org>
6890
6891 * xdisp.c (handle_single_display_prop): Change conditional
6892 display property to `:when FORM . VALUE'.
6893
68941999-09-07 Richard Stallman <rms@gnu.org>
6895
6896 * fileio.c (Fwrite_region): Doc fix.
6897
68981999-09-07 Stefan Monnier <monnier@cs.yale.edu>
6899
6900 * fileio.c (Qexcl): New variable.
6901 (report_file_error): Handle EEXIST specially.
6902 (Fwrite_region): Special handling for CONFIRM = `excl'.
6903 (syms_of_fileio): Initialize Qexcl.
6904
69051999-09-07 Gerd Moellmann <gerd@gnu.org>
6906
6907 * xfns.c (x_set_foreground_color): Call
6908 update_face_from_frame_parameter.
6909 (x_set_background_color): Ditto.
6910 (x_set_mouse_color): Ditto.
6911 (x_set_cursor_color): Ditto.
6912 (x_set_border_color): Ditto.
6913 (x_set_scroll_bar_foreground): Ditto.
6914 (x_set_scroll_bar_background): Ditto.
6915
6916 * xfaces.c (recompute_basic_faces): Clear face cache.
6917 (Finternal_set_lisp_face_attribute): Modify frame parameters
6918 if attributes of certain faces are changed.
6919 (update_face_from_frame_parameter): New.
6920
6921 * xfaces.c (realize_basic_faces): Realize new basic faces.
6922
6923 * dispextern.h (SCROLL_BAR_FACE_ID, BORDER_FACE_ID,
6924 CURSOR_FACE_ID, MOUSE_FACE_ID): New.
6925
6926 * xfaces.c (Qscroll_bar, Qcursor, Qborder, Qmouse): New.
6927 (syms_of_xfaces): Intialize new symbols.
6928
6929 * fns.c (Fmakehash): Take one argument, test, make all the
6930 rest keyword arguments.
6931
6932 * window.c (Fset_window_margins): Make window the first argument.
6933 (set_window_buffer): Call Fset_window_margins with window as first
6934 argument.
6935
69361999-09-07 Gerd Moellmann <gerd@gnu.org>
6937
6938 * xfaces.c (Qfringe): Replaces Qmargin.
6939
69401999-09-07 Kenichi Handa <handa@etl.go.jp>
6941
6942 * charset.h: Lots of comments fixed.
6943 (PARSE_MULTIBYTE_SEQ): Make it work also for ASCII string.
6944 (STRING_CHAR_AND_CHAR_LENGTH): This macro removed.
6945
6946 * charset.c : Lots of comments fixed.
6947 (SPLIT_MULTIBYTE_SEQ): Make it work also for ASCII string.
6948 (CHAR_COMPONENTS_VALID_P): Name changed from
6949 CHAR_COMPONENT_VALID_P. Caller changed.
6950
69511999-09-06 Richard Stallman <rms@gnu.org>
6952
6953 * insdel.c (syms_of_insdel): Define Lisp variable
6954 inhibit-modification-hooks.
6955
69561999-09-06 Michael Sperber [Mr. Preprocessor] <sperber@informatik.uni-tuebingen.de>
6957
6958 * s/aix4-2.h (ALIGN_DATA_RELOC): Undefined to support new
6959 unexaix.c.
6960
6961 * s/aix3-1.h (ALIGN_DATA_RELOC): Defined to support new unexaix.c.
6962
69631999-09-06 Dave Love <fx@gnu.org>
6964
6965 * unexaix.c: New version incorporating Michael Sperber's changes
6966 from XEmacs. Should solve problems on AIX 4.3.
6967
6968 * lread.c (Vbyte_boolean_vars): New variable.
6969 (defvar_bool, syms_of_lread): Use it.
6970
69711999-09-05 Richard Stallman <rms@gnu.org>
6972
6973 * minibuf.c (read_minibuf): Put all three properties on the
6974 same range, the whole prompt.
6975
69761999-09-05 Gerd Moellmann <gerd@gnu.org>
6977
6978 * sound.c (Qplay_sound_functions): Replaces Qplay_sound_hook.
6979 (Fplay_sound, syms_of_sound): Use it.
6980 (parse_sound): Allow float volume values in the range [0, 1].
6981 (Fplay_sound): Ditto.
6982
6983 * window.c (Fset_window_vscroll): Make window the first argument,
6984 amount to scroll the second. Take non-negative vscroll as
6985 argument.
6986 (Fwindow_vscroll): Return non-negative vscroll.
6987
6988 * xfns.c (Fx_show_tip): Improve documentation.
6989
69901999-09-05 Gerd Moellmann <gerd@gnu.org>
6991
6992 * buffer.c, buffer.h, dispextern.h, dispnew.c, keyboard.c,
6993 window.c, xdisp.c, xfaces.c, xterm.c, keyboard.h: Change
6994 `top-line' and `top_line' to `header-line' and `header_line'.
6995 Likewise for similar spellings.
6996
69971999-09-05 Gerd Moellmann <gerd@gnu.org>
6998
6999 * xdisp.c (row_containing_pos): New.
7000 (try_window_id): Use it.
7001
7002 * alloc.c, dispextern.h, dispnew.c, frame.c, frame.h, keyboard.c,
7003 lisp.h, termhooks.h, window.c xdisp.c, xfaces.c, xfns.c, xterm.c:
7004 Change spelling of `toolbar' to `tool_bar' or `tool-bar'.
7005 Likewise for upper-case etc.
7006
70071999-09-05 Gerd Moellmann <gerd@gnu.org>
7008
7009 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
7010 Fix reference to renamed variable.
7011
70121999-09-04 Gerd Moellmann <gerd@gnu.org>
7013
7014 * window.c (Qwindow_size_fixed): Replaces Qfixed_window_size.
427ec082 7015 (window_fixed_size_p): Use Qwindow_size_fixed instead of
26901792
DL
7016 Qfixed_window_size.
7017 (syms_of_window): Ditto.
7018
7019 * fns.c (Fmakehash): Exchange optional test and size arguments.
7020
70211999-09-03 Gerd Moellmann <gerd@gnu.org>
7022
7023 * xterm.c (XTset_vertical_scroll_bar): Block input when clearing
7024 under newly created scroll bar.
7025 (expose_window): If window is not yet fully initialized, do
7026 nothing. This can happen when toolkit scroll bars are used and a
7027 window is split. Reconfiguring the scroll bars will generate an
7028 expose for a newly created window.
7029
7030 * frame.h (struct frame): New member `gamma'.
7031
7032 * xfns.c: Include math.h. Add extern declaration for atof in case
7033 we don't see one.
7034 (Qscreen_gamma): New.
7035 (struct x_frame_parm_table): Add prototypes, add
7036 x_set_screen_gamma.
7037 (gamma_correct): New function.
7038 (defined_color): Call it.
7039 (x_set_screen_gamma): New.
7040 (x_set_title): Add parameter old_value.
7041 (RES_TYPE_FLOAT): New.
7042 (x_get_arg): Handle RES_TYPE_FLOAT.
7043 (Fx_create_frame): Call x_default_parameter for `screen-gamma'.
7044 (lookup_pixel_color): Change call to x_alloc_nearest_color to
7045 new prototype.
7046 (lookup_rgb_color): Ditto.
7047 (syms_of_xfns): Initialize Qscreen_gamma.
7048
7049 * xterm.c (x_alloc_nearest_color_for_widget) [USE_X_TOOLKIT]:
7050 New. Allocate color for lwlib widgets.
7051 (x_alloc_nearest_color): Change parameter list include the
7052 frame on which to allocate colors. Gamma-correct colors.
7053 (x_alloc_lighter_color): Call x_alloc_lighter_color with new
7054 parameter list.
7055
7056 * xterm.h: Change protorype of x_alloc_nearest_color.
7057
70581999-09-03 Richard Stallman <rms@gnu.org>
7059
7060 * callproc.c: Delete the system-independent include of stdlib.h
7061 (leaving only the one in the WINDOWSNT conditional).
7062
70631999-09-03 Andrew Choi <choi@cs.hku.hk>
7064
7065 * callproc.c (call-process) [macintosh]: Call mac_run_command in
7066 sysdep.c. The Mac code is modeled after the DOS code.
427ec082 7067
26901792
DL
7068 * dispextern.h [macintosh]: Include macterm.h to define substitute X
7069 Window types and macros.
7070
7071 * frame.h: Do nothing if included a second time.
7072 (enum output_method): Add mac_output frame type.
7073 (union output_data): Add new alternative `mac'.
7074 (FRAME_MAC_P): New macro.
427ec082 7075
26901792
DL
7076 * frame.c (Fframep) [macintosh]: Handle mac frame type.
7077 (syms_of_frame_1): Initialize Qmac.
7078 (make_terminal_frame) [macintosh]: Initialize output_data.mac fields.
7079 (Fmake_terminal_frame) [macintosh]: Add an alternate error check.
7080 (Fmodify_frame_parameters) [macintosh]: Call
7081 mac_set_frame_parameter in macterm.c.
427ec082 7082
26901792
DL
7083 * keyboard.c [macintosh]: Set KBD_BUFFER_SIZE to a smaller value
7084 (512) because Mac compilers limit local data of a function to 32K.
427ec082 7085
26901792
DL
7086 * make-docfiles.c: Correctly handle input files with Mac-style
7087 eol's.
427ec082 7088
26901792 7089 * sysdep.c: Define numerous routines to emulate Unix system calls.
427ec082 7090
26901792
DL
7091 * xfaces.c: on MacOS, define the set of colors listed in rgb.txt
7092 file of an X Window environment.
427ec082 7093
26901792
DL
7094 * xfaces.c: on MacOS, define the Lisp functions x-display-color-p,
7095 x-display-grayscale, x-color-defined-p, and x-color-values.
427ec082 7096
26901792
DL
7097 * sysdep.c [macintosh] (stat, fstat, mkdir, rmdir, utime, access)
7098 (open, creat, unlink, read, write, rename, fopen, pause, alarm)
7099 (signal, sleep, gmtime, localtime, ctime, time, index, mktemp)
7100 (getpwuid, getpwnam, dup, dup2, isatty, getgid, getegid, getuid)
7101 (geteuid, getpid, getenv, uname, opendir, closedir, readdir, getwd.):
7102 New functions, replacing POSIX features.
427ec082 7103
26901792
DL
7104 * sysdep.c [macintosh] (Mac2UnixPathname, Unix2MacPathname, CheckAlarm)
7105 (InitMyPasswd, GetTempDirName, mystrchr, mystrtok, mystrcpy):
7106 (InitEmacsPasswdDir, run_mac_command): New subroutines.
7107
7108 * sysdep.c [macintosh] (targetTicks, alarm_signal_func, myPasswdName)
7109 (myPasswd, emacsPasswdDir, emacsPasswd, myPasswdInited, mask)
7110 (myPasswdDir, TempDirName, sys_siglist): New variables.
7111
7112 * sysdep.c [macintosh] (execvp, wait, croak, fork, kill, sigsetmask)
7113 (sigblock, request_sigio, unrequest_sigio, setpgrp, pipe, symlink)
7114 (link, lstat, readlink, umask, chmod, sbrk, fsync, ioctl):
7115 Define empty stubs so Emacs will link.
7116
71171999-09-03 Gerd Moellmann <gerd@gnu.org>
7118
7119 * xdisp.c: Use XCAR and XCDR instead of XCONS.
7120
7121 * window.h: New member frozen_window_start_p.
7122
7123 * window.c (foreach_window, foreach_window_1): New.
7124 (freeze_window_start, freeze_window_starts): New.
7125 (make_window): Initialize frozen_window_start_p.
7126 (replace_window): Ditto.
7127 (Fset_window_point): Remove references to deleted variables.
7128 (Fset_window_start): Ditto.
7129
7130 * xdisp.c (Vresize_mini_config, resize_mini_frame,
7131 resize_mini_initial_height): Removed.
7132 (syms_of_xdisp): Remove references to these variables.
7133 (resize_mini_window): Don't save window configuration, freeze
7134 window starts instead. Enlarge window until displaying an empty
7135 buffer, then shrink it. Make the function externally visible.
7136 (redisplay_window): Treat frozen window start like forced start,
7137 but accept point outside of the window.
7138
7139 * dispextern.h: Add function prototype for resize_mini_window.
7140
7141 * minibuf.c (read_minibuf_unwind): Resize mini-window when
7142 reaching minibuf_level 0.
7143
7144 * lisp.h: Remove extern declarations for variables deleted from
7145 xdisp.c.
7146
7147 * dispnew.c (adjust_frame_glyphs): Remove reference to
7148 Vresize_mini_config.
7149
71501999-09-03 Gerd Moellmann <gerd@gnu.org>
7151
7152 * xfns.c (x_set_scroll_bar_width): Change conditional compilation
7153 to USE_TOOLKIT_SCROLL_BARS.
7154
7155 * xterm.c (x_scroll_bar_create): Don't clear under scroll bar
7156 here.
7157 (XTset_vertical_scroll_bar): Clarify position computations. Clear
7158 under newly created scroll bar. Put toolkit scroll bars in the
7159 middle of the area reserved for the scroll bar.
7160
71611999-09-03 Kenichi Handa <handa@etl.go.jp>
7162
7163 The following changes are for the new handling of mulitbyte
7164 sequence. Now, except for a composite character, no multibyte
7165 character in string/buffer has trailing garbage bytes. For
7166 instance, the length of string "\201\300\300" is now 2, the first
7167 character is Latin-1 A-grave, the second is raw \300.
7168
7169 * charset.h (MAKE_NON_ASCII_CHAR): Handle the case that C1 or C2
7170 are negative.
7171 (MAKE_CHAR): Don't set MSBs of C1 and C2 to 0.
7172 (VALID_MULTIBYTE_CHAR_P): This macro deleted.
7173 (PARSE_COMPOSITE_SEQ): New macro.
7174 (PARSE_CHARACTER_SEQ): New macro.
427ec082 7175 (PARSE_MULTIBYTE_SEQ): New macro.
26901792
DL
7176 (CHAR_PRINTABLE_P): New macro.
7177 (STRING_CHAR): Adjusted for the change of string_to_non_ascii_char.
7178 (STRING_CHAR_AND_LENGTH): Likewise.
7179 (STRING_CHAR_AND_CHAR_LENGTH): Define it as STRING_CHAR_AND_LENGTH.
7180 (INC_POS): Use the macro PARSE_MULTIBYTE_SEQ.
7181 (DEC_POS, BUF_INC_POS, BUF_DEC_POS): Likewise,
7182
7183 * charset.c (SPLIT_COMPOSITE_SEQ): New macro.
7184 (SPLIT_CHARACTER_SEQ): New macro.
7185 (SPLIT_MULTIBYTE_SEQ): New macro.
7186 (CHAR_COMPONENT_VALID_P): New macro.
7187 (non_ascii_char_to_string): Generate a multibyte sequence as far
7188 as possible.
7189 (string_to_non_ascii_char): The 4th arg exclude_tail_garbage is
7190 deleted. Caller changed. Use the macro SPLIT_MULTIBYTE_SEQ.
7191 (split_non_ascii_string): Likewise.
7192 (multibyte_form_length): Use the macro PARSE_MULTIBYTE_SEQ.
7193 (char_printable_p): New function.
7194 (translate_char): Check character by NATNUMP instead of INTEGERP.
7195 (unibyte_char_to_multibyte): Call char_valid_p instead of
7196 VALID_MULTIBYTE_CHAR_P.
7197 (Fmake_char_internal): Check the arguments more rigidly.
7198 (Fcharset_after): Use the macro SPLIT_MULTIBYTE_SEQ.
7199 (char_valid_p): Check the validity by CHAR_COMPONENT_VALID_P.
7200 (Fmultibyte_char_to_unibyte): Check the validity of character by
7201 CHAR_VALID_P.
7202 (chars_in_text): Call multibyte_chars_in_text.
7203 (multibyte_chars_in_text): Use the macro PARSE_MULTIBYTE_SEQ.
7204 (Fcompose_string): Use the macro STRING_CHAR_AND_LENGTH instead of
7205 STRING_CHAR_AND_CHAR_LENGTH (which is obsolete now).
7206
7207 * data.c (Faset): Adjust the way to check byte-combining
7208 possibility for the new handling of multibyte sequence.
7209
7210 * editfns.c (Fsubst_char_in_region): Likewise.
7211
7212 * fns.c (count_combining): Use the macro PARSE_MULTIBYTE_SEQ.
7213 (string_char_to_byte): Likewise.
7214 (string_byte_to_char): Likewise.
7215
7216 * indent.c (MULTIBYTE_BYTES_WIDTH): Delete the 2nd arg C. Use the
7217 macro STRING_CHAR_AND_LENGTH. Caller changed.
7218
7219 * insdel.c (count_combining_composition): New function.
7220 (count_combining_before): Adjust the way to check byte-combining
7221 possibility for the new handling of multibyte sequence. Call
7222 count_combining_composition for a composite character.
7223 (count_combining_after): Likewise.
7224
7225 * print.c (print_string): Use the macro STRING_CHAR_AND_LENGTH.
7226 (print): Likewise.
7227
7228 * dispextern.h (struct it): Change the size of the member
7229 `ctl_chars'.
7230
7231 * xdisp.c (get_next_display_element): Display incomplete multibyte
7232 sequence (e.g. \222\300) by octal form.
7233
72341999-09-02 Gerd Moellmann <gerd@gnu.org>
7235
7236 * xterm.h (VERTICAL_SCROLL_BAR_WIDTH_TRIM): Change from 2 to 0.
7237
7238 * fns.c (Fhash_table_weakness): Replaces Fhash_table_weak.
7239 (cmpfn_eql, sxhash): Use XFLOAT_DATA.
7240
72411999-09-02 Gerd Moellmann <gerd@gnu.org>
7242
7243 * buffer.c (set_buffer_internal): Never set
7244 windows_or_buffers_changed.
7245
7246 * xdisp.c (try_window_id): Reset first_unchanged_at_end_row
7247 if we have displayed to the bottom of the window.
7248
7249 * syntax.c (Fforward_word): Stop at a mini-buffer prompt end
7250 in both directions. Extend documentation.
7251
72521999-09-01 Gerd Moellmann <gerd@gnu.org>
7253
7254 * minibuf.c (read_minibuf): Flush display after setting cursor to
7255 column 0.
7256
72571999-08-31 Gerd Moellmann <gerd@gnu.org>
7258
7259 * s/freebsd.h (__FreeBSD_version): Don't define it if it is
7260 already defined. This avoids a warning from buffer.c.
7261
72621999-08-30 Gerd Moellmann <gerd@gnu.org>
7263
7264 * xterm.h (FRAME_X_FLAGS_AREA_COLS): Define it as the total width
7265 of both margins.
7266 (FRAME_X_FLAGS_AREA_WIDTH): Likewise.
7267 (FRAME_X_LEFT_FLAGS_AREA_WIDTH): New.
7268 (FRAME_X_RIGHT_FLAGS_AREA_WIDTH): New.
7269
7270 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add in FRAME_FLAGS_AREA_COLS
7271 once instead of twice.
7272 (FRAME_LEFT_FLAGS_AREA_WIDTH): New.
7273
7274 * xterm.c: Remove unused bitmaps.
7275 (continued_bits, continuation_bits, overlay_bits): Change images.
7276 (x_draw_vertical_border): Use FRAME_X_RIGHT_FLAGS_AREA_WIDTH
7277 instead of FRAME_X_FLAGS_AREA_WIDTH.
7278 (x_after_update_window_line): Ditto.
7279 (x_draw_bitmap): Likewise.
7280 (x_draw_row_bitmaps): Likewise.
7281 (x_draw_glyph_string_box): Likewise.
7282 (x_draw_glyphs): Likewise.
7283 (x_scroll_run): Likewise.
7284 (expose_window_tree): Likewise.
7285 (note_mode_line_highlight): Likewise.
7286 (XTset_vertical_scroll_bar): Likewise.
7287 (x_clip_to_row): Likewise.
7288 (x_set_window_size): Likewise.
7289
7290 * xfns.c (x_figure_window_size): Use FRAME_FLAGS_AREA_COLS instead
7291 of 2 * that value.
7292
7293 * xdisp.c (window_box_width): Use FRAME_FLAGS_AREA_COLS instead of
7294 2 * that value.
7295 (window_box_left): Use FRAME_LEFT_FLAGS_AREA_WIDTH instead of
7296 FRAME_FLAGS_AREA_WIDTH.
7297
7298 * window.c (coordinates_in_window): Use
7299 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
7300 (window_internal_width): Subtract FRAME_FLAGS_AREA_WIDTH once
7301 instead of twice.
7302
427ec082 7303 * widget.c (set_frame_size): Set flags_area_extra to
26901792
DL
7304 FRAME_FLAGS_AREA_WIDTH instead of 2 * that width.
7305 (EmacsFrameSetCharSize): Ditto.
7306
7307 * dispnew.c (mode_line_string): Add FRAME_LEFT_FLAGS_AREA_WIDTH
7308 instead of FRAME_FLAGS_AREA_WIDTH.
7309
7310 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract
7311 FRAME_FLAGS_AREA_COLS once.
7312 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Add
7313 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
7314
73151999-08-30 Gerd Moellmann <gerd@gnu.org>
7316
7317 * freebsd.h (C_SWITCH_SYSTEM): Added to let configure find headers
7318 in /usr/X11R6/include which are checked for with AC_CHECK_HEADER.
7319
73201999-08-30 Gerd Moellmann <gerd@gnu.org>
7321
7322 * fns.c (QCweakness): Replaces QCweak.
7323 (Fmake_hash_table): Ditto.
7324 (Fmakehash): Ditto.
7325 (syms_of_fns): Ditto.
7326
73271999-08-29 Richard Stallman <rms@gnu.org>
7328
7329 * search.c (compile_pattern_1): Enable RE_CHAR_CLASSES for regexp.
7330
7331 * sysdep.c (read_input_waiting): Pass read_socket_hook just 4 args.
7332
7333 * syntax.h (SYNTAX_COMMENT_NESTED, SYNTAX_FLAGS_COMMENT_NESTED):
7334 Add support for nested comments.
7335
863476d1
SM
7336 * syntax.c (Fforward_comment, scan_lists, scan_sexps_forward):
7337 Consolidate the forward comment code into the new `forw_comment'.
7338 (forw_comment): New subroutine. Added support for nested comments.
7339 (lisp_parse_state, back_comment, Fmodify_syntax_entry)
7340 (Fparse_partial_sexp): Add support for nested comments.
26901792
DL
7341
73421999-08-28 Ken Raeburn <raeburn@gnu.org>
7343
7344 * lisp.h (struct Lisp_Cons, XCAR, XCDR, struct Lisp_Float): Change
7345 names of structure elements if HIDE_LISP_IMPLEMENTATION is
7346 defined, to help detect code that uses knowledge of the Lisp
7347 internals that it shouldn't have.
7348 (XFLOAT_DATA): New macro.
7349
73501999-08-25 Gerd Moellmann <gerd@gnu.org>
7351
7352 * syntax.c (Fforward_word): If in a mini-buffer and moving
7353 backwards, stop in front of the prompt to prevent accidentially
7354 moving into the read-only prompt.
7355
7356 * window.c (Frecenter): Clear frame if called with nil or no arg.
7357
7358 * xdisp.c (resize_mini_window): Don't resize if
7359 Vmax_mini_window_height is nil. Otherwise, use a default if
7360 Vmax_mini_window_height is not ot a number.
7361 (syms_of_xdisp): Extend documentation of Vmax_mini_window_height.
7362
73631999-08-25 Alexandre Oliva <oliva@dcc.unicamp.br>
7364
7365 * unexelf.c: Merge IRIX debugging info patch from unexsgi.c
7366 * m/iris4d.h: Use unexelf for IRIX 5.*.
7367 * m/iris5d.h: Use unexelf for IRIX 6.*.
7368 * unexsgi.c: Deleted.
7369
7370 * unexelf.c: Auto-detect .sbss section.
7371 (round_up): Make it static.
7372 (unexec): Declare alignment as Elf Word. Skip ``Program
7373 segment above .bss'' test on MIPS without .sbss.
7374 Copy sections .got and .sdata1 sections. Adjust offsets in
7375 sections .sdata, .lit4, .lit8, .got and .sdata1.
7376
73771999-08-25 Gerd Moellmann <gerd@gnu.org>
7378
7379 * xdisp.c (try_window_id): Remove typo.
7380
73811999-08-24 Gerd Moellmann <gerd@gnu.org>
7382
7383 * xdisp.c (try_window_id): Recognize case that PT == ZV and in
7384 unchanged text at the bottom when computing the cursor position.
7385 (message3_nolog): Raise frame only if minibuffer_auto_raise is
7386 set.
7387
7388 * lisp.h (PVEC_TYPE_MASK): Add the bit for hash tables.
7389
73901999-08-24 Gerd Moellmann <gerd@gnu.org>
7391
7392 * xfaces.c (Qmargin): Replacement for Qbitmap_area.
7393 (realize_basic_faces): Replace Qmargin for Qbitmap_area.
7394 (syms_of_xfaces): Ditto.
7395
7396 * window.c (Fset_window_point): Reset Vresize_mini_config.
7397 (Fset_window_start): Ditto.
7398 (set_window_buffer): Ditto.
7399
7400 * dispnew.c (adjust_frame_glyphs): Reset Vresize_mini_config.
7401
7402 * xdisp.c (redisplay_window): Don't ever test just_this_one_p
7403 before calling try_window.
7404 (echo_area_display): If height has changed, update other windows.
7405 (resize_mini_frame, resize_mini_initial_height): New.
7406 (resize_mini_window): Save/restore window configuration
7407 differently.
7408
427ec082 7409 * lisp.h (Vresize_mini_config, resize_mini_frame,
26901792
DL
7410 resize_mini_initial_height): Add extern declarations.
7411
7412 * xterm.c (expose_window_tree): Fix typo CANON_Y_UNIT to
7413 CANON_X_UNIT.
7414
7415 * xfns.c [HAVE_JPEG]: Work around a warning about HAVE_STDLIB_H
7416 being redefined in jconfig.h.
7417
74181999-08-23 Ken'ichi Handa <handa@gnu.org>
7419
7420 * coding.h: Include "ccl.h" instead of "../src/ccl.h".
7421
74221999-08-22 Gerd Moellmann <gerd@gnu.org>
7423
7424 * alloc.c (mark_glyph_matrix): Mark strings only.
7425
7426 * xdisp.c (redisplay_internal): Clear garbaged frames after
7427 resizing mini-window.
7428
74291999-08-22 Gerd Moellmann <gerd@gnu.org>
7430
7431 * xdisp.c (unwind_with_echo_area_buffer): Use
7432 set_buffer_internal_1 instead of set_buffer_internal.
7433 (with_echo_area_buffer): Ditto.
7434
7435 * buffer.c (set_buffer_internal): Set windows_or_buffers_changed
7436 only if buffer is displayed somewhere.
7437
7438 * buffer.h (BUF_COMPUTE_UNCHANGED): New.
7439
7440 * insdel.c (gap_left): Use BUF_COMPUTE_UNCHANGED.
7441 (gap_right): Ditto.
7442 (modify_region): Ditto.
7443
7444 * buffer.c (modify_overlay): Use BUF_COMPUTE_UNCHANGED.
7445
7446 * xdisp.c (Vresize_mini_config): New.
7447 (resize_mini_window): Use it to save restore original window
7448 configuration
7449 (syms_of_xdisp): Initialize it.
7450
7451 * buffer.h (struct buffer): Add prevent_redisplay_optimizations_p.
7452
7453 * dispextern.h (struct glyph_matrix): Add buffer, begv, and zv.
7454
7455 * xdisp.c (reconsider_clip_changes): New.
7456 (redisplay_internal, redisplay_window): Call it.
7457 (mark_window_display_accurate, redisplay_internal): Set current
7458 matrix' buffer, begv, zv.
7459
7460 * window.c (Fset_window_hscroll): Set
7461 prevent_redisplay_optimizations_p instead of clip_changed.
7462 (Fset_window_hscroll): Ditto.
7463 (temp_output_buffer_show): Ditto.
7464 (Fset_window_vscroll): Ditto.
7465
7466 * buffer.c (reset_buffer): Set clip_changed to 0 and
7467 prevent_redisplay_optimizations_p to 1.
7468 (Fget_buffer_create): Set prevent_redisplay_optimizations_p to 1.
7469
7470 * buffer.h (BUF_UNCHANGED_MODIFIED, UNCHANGED_MODIFIED,
7471 BUF_OVERLAY_UNCHANGED_MODIFIED, OVERLAY_UNCHANGED_MODIFIED,
7472 BUF_BEG_UNCHANGED, BEG_UNCHANGED, BUF_END_UNCHANGED,
7473 END_UNCHANGED): New.
7474 (struct buffer_text): Add beg_unchanged, end_unchanged,
7475 unchanged_modified, overlay_unchanged_modified.
7476
7477 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
7478 overlay_unchanged_modified): Removed.
7479 (with_echo_area_unwind_data): Don't save beg/end_unchanged.
7480 (unwind_with_echo_area_buffer): Don't restore them.
7481 (debug_beg_unchanged, debug_end_unchanged) [GLYPH_DEBUG]: Removed.
7482 (text_outside_line_unchanged_p, redisplay_internal,
7483 try_scrolling): Use/set buffer-specific beg/end_unchanged.
7484 (redisplay_window): Let try_window_id be called if more than one
7485 window is displayed. Use/set buffer-specific beg/end_unchanged.
7486 (get_last_unchanged_at_beg_row, get_first_unchanged_at_end_row,
7487 try_window_id):
7488 Use buffer-specific beg/end_unchanged.
7489
7490 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
7491 overlay_unchanged_modified): Remove extern declarations.
7492
7493 * keyboard.c (command_loop_1): Set beg/end_unchanged per
7494 buffer.
7495
7496 * insdel.c (gap_left): Compute beg/end_unchanged per buffer.
7497 (gap_right): Ditto.
7498 (adjust_after_replace): Likewise.
7499 (replace_range, del_range_2, modify_region): Likewise.
7500
7501 * dispnew.c (direct_output_for_insert): Set beg_unchanged
7502 and unchanged_modified per buffer.
7503
7504 * coding.c (code_convert_region): Compute beg/end_unchanged per
7505 buffer.
7506
7507 * buffer.c (modify_overlay): Compute beg/end_unchanged
7508 per buffer.
427ec082 7509 (Fget_buffer_create): Initialize new members of the buffer
26901792
DL
7510 structure.
7511
75121999-08-22 Gerd Moellmann <gerd@gnu.org>
7513
7514 * lisp.h: Add prototype for copy_hash_table and Fcopy_hash_table.
7515
7516 * fns.c (Qkey, Qvalue): Renamed from Qkey_weak, and Qvalue_weak.
7517 (Qkey_value_weak): Removed.
7518 (make_hash_table): Use nil, `key', `value', t for weakness.
7519 (Fmake_hash_table): Ditto.
7520 (copy_hash_table): New.
7521 (Fcopy_hash_table): New.
7522
75231999-08-22 Gerd Moellmann <gerd@gnu.org>
7524
7525 * xfns.c: Call change_frame_size and do_pending_window_change with
427ec082 7526 new parameter.
26901792
DL
7527
75281999-08-21 Gerd Moellmann <gerd@gnu.org>
7529
7530 * xdisp.c (resize_mini_window): Do it for truncate-lines t as
7531 well.
427ec082 7532 (redisplay_internal): Resize mini-window only if text might
26901792
DL
7533 have changed.
7534 (display_echo_area): Reset displayed echo_area_buffer to nil
7535 at the end if we're displaying a nil message.
7536
75371999-08-21 Gerd Moellmann <gerd@gnu.org>
427ec082 7538
26901792
DL
7539 * fns.c (hash_lookup): Test with EQ before calling key comparion
7540 function.
7541 (hash_remove): Ditto.
7542 (cmpfn_eq): Removed.
7543 (cmpfn_eql): Don't test with EQ.
7544 (cmpfn_equal): Ditto.
7545 (make_hash_table): Set comparison function for `eq' to null.
7546
7547 * buffer.c, cmds.c, editfns.c, indent.c, insdel.c, buffer.h:
7548 Remove conditional compilation on NO_PROMPT_IN_BUFFER.
7549
7550 * dispextern.h (NO_PROMPT_IN_BUFFER): Removed.
7551
7552 * window.c, widget.c, process.c, keyboard.c, frame.c, xdisp.c,
7553 xterm.c: Call change_frame_size and do_pending_window_change with
7554 new parameter.
7555
7556 * dispnew.c (do_pending_window_change): Add parameter `safe'.
7557 (change_frame_size): Ditto.
7558 (change_frame_size_1): Ditto. Deley size changes if redisplaying
7559 and not called from a safe place.
7560 (window_change_signal): Call change_frame_size with new parameter.
7561
7562 * dispextern.h: Change prototypes for do_pending_window_change
7563 and change_frame_size.
7564
7565 * xfaces.c (face_at_buffer_position): Don't xassert that
427ec082 7566 window's buffers equals current_buffer; this is not the
26901792
DL
7567 case during echo area display.
7568
75691999-08-21 Gerd Moellmann <gerd@gnu.org>
7570
7571 * xdisp.c, minibuf.c: Remove conditional compilation on
7572 NO_PROMPT_IN_BUFFER.
7573
7574 * minibuf.c (Fminibuffer_prompt_end): New.
7575 (syms_of_minibuf): Defsubr it. Remove
7576 minibuffer-prompt-in-buffer.
7577 (Fminibuffer_prompt_width): Return 0 if not in mini-buffer.
7578 Extend documentation.
7579
7580 * xdisp.c (get_next_display_element): Display \r as ^M.
7581
7582 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Clear
7583 under scroll bar widget.
7584
75851999-08-21 Gerd Moellmann <gerd@gnu.org>
7586
7587 * xdisp.c (minibuffer_scroll_overlap): Removed because not used
7588 anywhere.
7589 (unwind_redisplay): Return nil.
7590 (clear_garbaged_frames): New.
7591 (redisplay_internal): Use it.
7592 (echo_area_display): Ditto.
7593 (resize_mini_window): Mew.
7594 (display_echo_area_1): Use it to resize echo area window.
7595 (redisplay_internal): Use it to resize active mini-window.
7596
7597 * dispextern.h, lisp.h: Add function prototypes.
7598
427ec082 7599 * dispnew.c (set_window_cursor_after_update): Do the
26901792
DL
7600 cursor_in_echo_area case only for a mini-window showing
7601 a message. Don't let cursor end up after the end of a row.
7602
7603 * xdisp.c (echo_area_glyphs, echo_area_message,
7604 echo_area_glyphs_length, previous_echo_glyphs,
7605 previous_echo_area_message, previous_echo_area_glyphs_length):
7606 Removed.
7607 (Vmessage_stack, echo_area_buffer, echo_buffer,
7608 display_last_displayed_message_p, Vwith_echo_area_save_vector): New.
7609 (message2_nolog): Use set_message and clear_message.
7610 (message3): Rename parameter len to nbytes to make clear what
7611 it is.
7612 (message3_nolog): Ditto. Use set_message and clear_message.
7613 (update_echo_area): Rewritten.
7614 (with_echo_area_buffer): New.
7615 (with_echo_area_buffer_unwind_data, unwind_with_area_buffer): New.
7616 (setup_echo_area_for_printing): New.
7617 (display_echo_area, display_echo_area_1): New.
7618
7619 (current_message, current_message_1): New.
427ec082 7620 (push_message, restore_message, pop_message,
26901792
DL
7621 check_message_stack): New.
7622 (truncate_echo_area): Rewritten.
7623 (truncate_message_1): New.
7624 (set_message, set_message_1, clear_message): New.
7625 (echo_area_display): Rewritten.
7626 (redisplay_internal): Check for needed echo area update
7627 differently.
7628 (redisplay_preserve_echo_area): Rewritten.
427ec082 7629 (redisplay_window): Check for mini-window displaying echo area
26901792
DL
7630 message differently.
7631 (syms_of_xdisp): Initialize Vmessage_stack and echo area buffers.
7632 Remove initialzation of removed variables.
7633 (init_xdisp): Remove references to removed variables.
7634
7635 * dispnew.c (adjust_frame_message_buffer): Removed references
7636 to echo_area_glyphs and previous_echo_glyphs.
7637 (direct_output_for_insert): Check for mini-window displaying
7638 echo area message differently.
7639 (update_frame): Likewise.
7640 (set_window_cursor_after_update): Likewise. In echo area,
7641 don't try to set cursor on rows that aren't enabled.
7642
7643 * print.c: Remove conditional compilation on `standalone'.
7644 (glyph_len, str_to_glyph_cpy, str_to_glyph_ncpy,
427ec082 7645 glyph_to_str_cpy): Remove that section because GLYPHs are no
26901792
DL
7646 longer used in that way.
7647 (PRINTDECLARE): Add multibyte.
7648 (PRINTPREPARE, PRINTFINISH): Handle printcharfun t differently.
7649 (printbufidx): Removed.
7650 (printchar, strout): Rewritten.
7651
7652 * keyboard.c (ok_to_echo_at_next_pause): Make it a pointer to
7653 a struct kboard.
7654 (echo_kboard): New.
7655 (echo_now): Set echo_kboard to the current kboard.
7656 (cancel_echoing): Set echo_kboard to null.
7657 (cmd_error_internal): Use clear_message, remove references
7658 to echo_area_glyphs and echo_area_message.
7659 (command_loop_1): Check for echo area messages differently.
7660 (read_char): Likewise.
7661 (record_menu_key): Use clear_message.
7662 (Fexecute_extended_command): Check for echo area messages
7663 differently. Use push_message, restore_message, pop_message.
7664
7665 * alloc.c (Fgarbage_collect): Use push_message, restore_message,
7666 pop_message.
7667
7668 * emacs.c (shut_down_emacs): Call check_message_stack.
7669
7670 * lisp.h: Add function prototypes and extern declarations for
7671 new functions and variables.
7672
7673 * fileio.c (Fdo_auto_save): Use push_message, restore_message,
7674 pop_message.
7675
427ec082 7676 * minibuf.c (read_minibuf): Use clear_message instead of
26901792
DL
7677 setting echo_area_glyphs.
7678 (Fminibuffer_completion_help): Ditto.
7679
7680 * editfns.c (Fcurrent_message): Rewritten.
7681
7682 * frame.c, window.h: Remove references to echo_area_glyphs
7683 and previous_echo_glyphs.
7684
76851999-08-21 Dave Love <fx@gnu.org>
7686
7687 * aix3-2-5.h (C_DEBUG_SWITCH): Use -g -O.
7688 * aix4-1.h: Likewise.
7689
7690 * irix6-5.h (C_DEBUG_SWITCH): Set for debug and optimize.
7691
76921999-08-20 Gerd Moellmann <gerd@gnu.org>
7693
7694 * xfns.c: Remove tiff34 prefix from include.
7695
76961999-08-20 Dave Love <fx@gnu.org>
7697
7698 * cm.c: Revert previous change.
7699
77001999-08-19 Gerd Moellmann <gerd@gnu.org>
7701
7702 * xterm.c (XTset_vertical_scroll_bar): Fix previous change. Clear
7703 under scroll bar with width FRAME_SCROLL_BAR_COLS.
7704
77051999-08-18 Dave Love <fx@gnu.org>
7706
7707 * callproc.c, filelock.c, insdel.c, sysdep.c, xmenu.c: Use
7708 stdlib.h.
7709
7710 * doprnt.c: Use stdlib.h, unistd.h.
7711
7712 * config.in: Add HAVE_TERMCAP_H.
7713
7714 * cm.c: Use termcap.h.
7715
77161999-08-18 Gerd Moellmann <gerd@gnu.org>
7717
7718 * xfns.c (x_window) [USE_X_TOOLKIT]: Remove test for
7719 FRAME_X_WINDOW (f) being null at the of the function. If widgets
7720 cannot be created we will already have crashed earlier. Call
7721 lw_set_main_areas with a null menu-bar widget, so that we have
7722 a reasonable default.
7723 (Fx_create_frame): Rearranged so that Lisp errors during frame
7724 initialization cause less damage. Initialize menu bar widget
7725 here.
7726
77271999-08-18 Gerd Moellmann <gerd@gnu.org>
427ec082 7728
26901792
DL
7729 * dispnew.c (update_frame_line): Fix previous change. If writing
7730 whole line clear to end of frame.
7731
77321999-08-17 Gerd Moellmann <gerd@gnu.org>
7733
7734 * window.c (Fcoordinates_in_window_p): Return `left-bitmap-area'
7735 and `right-bitmap-area' if position is in the bitmap areas. This
7736 avoids an error when clicking on the bitmap areas. Instead, they
7737 are currently treated like clicks inside the window.
7738 (coordinates_in_window): Return 5 and 6 for bitmap areas.
7739 (Qleft_bitmap_area, Qright_bitmap_area): New.
7740 (syms_of_window): Initialize new symbols.
7741
7742 * dispnew.c (update_frame_line): If writing whole line,
7743 don't write trailing spaces unless we must.
7744
7745 * xdisp.c (unwind_redisplay): New. Resets flag redisplaying_p.
7746 (redisplay_internal): Register unwind_redisplay with
7747 register_unwind_protect.
7748 (try_window_reusing_current_matrix): If new start > old start,
7749 give up if start pos of first reusable row is not equal to new
7750 start.
7751
7752 * eval.c (Fsignal): Don't reset redisplaying_p here.
7753
7754 * xterm.c (expose_area): If row extends face to end of line,
7755 write the whole line.
7756
77571999-08-16 Gerd Moellmann <gerd@gnu.org>
7758
7759 * dispextern.h (struct it): Remove member
7760 show_trailing_whitespace_p.
7761
7762 * dispnew.c (direct_output_for_insert): Use
7763 Vshow_trailing_whitespace instead of former iterator member
7764 show_trailing_whitespace_p.
7765 (direct_output_forward_char): Don't do it if hightlighting
7766 trailing whitespace.
7767
7768 * xdisp.c (Qshow_trailing_whitespace): Removed.
7769 (Vshow_trailing_whitespace): Added.
7770 (init_iterator): Remove initialization code for
7771 show_trailing_whitespace_p.
7772 (redisplay_internal): Don't try cursor movement in this_line
7773 if showing trailing whitespace.
7774 (redisplay_window): Likewise for cursor movement in current
7775 matrix and try_window_id.
7776 (try_window_reusing_current_matrix): Likewise.
7777 (trailing_whitespace_p): Return 0 if trailing whitespace is
7778 in front of point.
7779 (display_line): Use Vshow_trailing_whitespace instead of
7780 former iterator member show_trailing_whitespace_p.
7781 (syms_of_xdisp): Add DEFVAR_LISP for show-trailing-whitespace.
7782
77831999-08-16 Gerd Moellmann <gerd@gnu.org>
7784
7785 * window.c (Fpos_visible_in_window_p): Rewritten.
7786
7787 * xfaces.c (add_to_log): Renamed from display_message.
7788 Don't display messages in echo area.
7789
7790 * xterm.c (x_draw_glyph_string_box): Use the background width
7791 of the glyph string for the width of the box.
7792
77931999-08-16 Stefan Monnier <monnier@cs.yale.edu>
7794
7795 * syntax.c (Fforward_comment): Set comstyle for Scomment_fence.
7796
77971999-08-16 Geoff Voelker <voelker@cs.washington.edu>
7798
7799 * xfns.c, w32fns.c (x_set_frame_parameters): Set foreground and
7800 background first, and then set other parameters that might
7801 depend upon their new values.
7802
78031999-08-15 Gerd Moellmann <gerd@gnu.org>
7804
7805 * xfaces.c (Vfont_list_limit): New.
7806 (syms_of_xfaces): Make it a user-variable.
7807 (DEFAULT_FONT_LIST_LIMIT): New.
7808 (sorted_font_list): If Vfont_list_limit is an integer > 0, list
7809 maximally that number of fonts, otherwise use
7810 DEFAULT_FONT_LIST_LIMIT.
427ec082 7811 (Fx_font_family_list): Bind `font-list-limit' to higher values
26901792
DL
7812 until we have all fonts.
7813 (Fxfont_list): Additionally return the full names of fonts and
7814 their registry and encoding.
7815
427ec082 7816 * xterm.c (XTset_vertical_scroll_bar) [USE_TOOLKIT_SCROLL_BARS]:
26901792
DL
7817 Simplify clearing "under" scroll bar.
7818
7819 * window.c (Qfixed_window_size): New.
7820 (syms_of_window): Initialiaze it.
7821 (check_all_windows): Add return type void.
7822 (window_fixed_size_p): New. Return non-zero if window
7823 is fixed-size.
7824 (window_min_size_1): New.
7825 (window_min_size): Handle fixed-size windows.
7826 (size_window): New. Rewritten combination of set_window_height and
7827 set_window_width that handles fixed-size windows.
7828 (set_window_height): Call it.
7829 (set_window_width): Call it.
7830 (Fsplit_window): Give an error on attempt to split a fixed-size
7831 window.
7832 (change_window_height): Partly rewritten to handle fixed-size
7833 windows.
7834
78351999-08-13 Wolfgang Rupprecht <wolfgang@wsrcc.com>
7836
7837 * process.c (Fopen_network_stream): Fix previous change.
7838
78391999-08-13 Karl Heuer <kwzh@gnu.org>
7840
7841 * xdisp.c (line_number_display_limit_width): New var.
7842 (decode_mode_spec): Use it instead of hardcoded value.
7843 (syms_of_xdisp): Defvar it.
7844
78451999-08-13 Richard M. Stallman <rms@gnu.org>
7846
7847 * eval.c (run_hook_list_with_args): Gcpro `globals'.
7848 (run_hook_with_args): Likewise.
7849
7850 * window.h (struct window): New field too_small_ok.
7851
427ec082 7852 * window.c (set_window_height, set_window_width):
26901792
DL
7853 If window starts out "too small", set its too_small_ok flag.
7854 If window's too_small_ok flag is set, don't delete it
7855 unless it is so small it would cause a crash.
7856
78571999-08-13 Gerd Moellmann <gerd@gnu.org>
7858
7859 * window.c (MINSIZE): Removed.
7860 (window_min_size): New.
7861 (set_window_height): Use window_min_size.
7862 (change_window_height): Ditto.
7863
78641999-08-12 Gerd Moellmann <gerd@gnu.org>
7865
7866 * indent.c (vmotion): Don't add in mini-buffer prompt width
7867 if prompts are inserted into mini-buffer.
7868
78691999-08-12 Wolfgang Rupprecht <wolfgang@wsrcc.com>
7870
7871 * config.in: Add HAVE_GETADDRINFO.
7872 * process.c (Fopen_network_stream): Use getaddrinfo.
7873
78741999-08-11 Gerd Moellmann <gerd@gnu.org>
7875
7876 * xdisp.c (get_overlay_arrow_glyph_row): Set the charpos of
7877 glyphs to -1.
7878
7879 * xdisp.c (face_before_or_after_it_pos): If position after
7880 or before iterator's current position in the buffer is out
7881 of bounds, return the iterator's original face id.
7882
7883 * dispnew.c (mirror_make_current): If desired row isn't enabled,
7884 just swap glyphs pointers between current and desired row.
7885 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Copy
7886 desired matrix method string to current matrix.
7887
78881999-08-11 Kenichi Handa <handa@etl.go.jp>
7889
7890 * lisp.h (CHAR_MODIFIER_MASK): New macro.
7891
7892 * lread.c (read_escape): For Control modifier, pay attention to
7893 multibyte character.
7894 (read1): Likewise. Singal error or a multibyte character which
7895 has a modifer bit. Check validity of Shift modifer.
7896
7897 * charset.c (non_ascii_char_to_string): Handle modifier bits as
7898 the same as Lisp reader.
7899
79001999-08-10 Richard M. Stallman <rms@gnu.org>
7901
7902 * charset.h (BCOPY_SHORT): Fix typo `unsigined'.
7903
79041999-08-10 Alexandre Oliva <oliva@dcc.unicamp.br>
7905
7906 * unexelf.c [__linux__ && __alpha__] (HAS_SBSS_SECTION): Define.
7907
79081999-08-10 Eli Zaretskii <eliz@gnu.org>
7909
7910 * msdos.c (IT_set_face): Abort if the default face is not realized
7911 and cached.
7912 (IT_write_glyphs): Reset the screen face to the default face
7913 before writing glyphs.
7914
7915 * xfaces.c (realize_default_face) [MSDOS]: Don't take default
7916 colors from the frame here.
7917 (realize_tty_face) [MSDOS]: Do it here. Update the face
7918 attributes with the actual name of the color taken from the
7919 frame.
7920
7921 * dosfns.c (msdos_stdcolor_name): Remove const from return value.
7922 * dosfns.h (msdos_stdcolor_name): Ditto for the prototype.
7923
7924 * frame.c (Fframe_parameters): Swap foreground and background
7925 colors returned in frame parameters if the frame has reverse in
7926 its parameter alist.
7927 (Fmake_terminal_frame): Make a unique copy of face_alist for
7928 each frame.
7929
79301999-08-07 Richard Stallman <rms@gnu.org>
7931
7932 * buffer.c (Fprevious_overlay_change): Just return
7933 the answer obtained from overlays_at.
7934
7935 * xfns.c (xpm_load) [!XpmAllocCloseColors]:
7936 Use XpmCloseness and attrs.closeness instead.
7937
79381999-08-06 Richard Stallman <rms@gnu.org>
7939
7940 * lread.c (Feval_buffer): New arg DO_ALLOW_PRINT.
7941
79421999-08-06 Geoff Voelker <voelker@cs.washington.edu>
7943
427ec082 7944 * dired.c (directory_files_internal, Fdirectory_files_and_attributes,
26901792
DL
7945 Ffile_attributes_lessp): New functions.
7946 (Fdirectory_files): Use directory_files_internal.
7947 (syms_of_dired): Initialize Fdirectory_files_and_attributes,
7948 Ffile_attributes_lessp.
7949
7950 * w32.c (stat): Check for directory ending in separator when
7951 doing readdir fast path.
7952
7953 * w32fns.c (x_set_icon_type): Support setting frame icons.
7954 * w32term.c (x_bitmap_icon): New function.
7955 (x_make_frame_visible, x_iconify_frame): Invoke x_bitmap_icon.
427ec082 7956
26901792
DL
79571999-08-06 Gerd Moellmann <gerd@gnu.org>
7958
7959 * xdisp.c (set_iterator_to_next): After delivering a character
7960 from a display vector, restore face and charset to what they were
7961 before the display vector was processed.
7962
79631999-08-06 Gerd Moellmann <gerd@gnu.org>
7964
7965 * xdisp.c (reseat_at_next_visible_line_start): New parameter
7966 on_newline_p.
7967 (set_iterator_to_next): After delivering last char
427ec082 7968 from display vector, reseat on next visible line start if
26901792
DL
7969 dpvec_char_len < 0.
7970 (next_element_from_buffer): Set dpvec_char_len to -1 for
7971 selective display.
7972
79731999-08-06 Gerd Moellmann <gerd@gnu.org>
7974
7975 * xdisp.c (compute_line_metrics): If first line's physical ascent
7976 is larger than its logical ascent, use the physical ascent, and
7977 make the row taller. Set row's overlapping_p flag.
7978
7979 * dispnew.c (redraw_overlapping_rows): Use flag overlapping_p.
7980 (direct_output_for_insert): Ditto.
7981
7982 * dispextern.h (struct glyph_row): Add overlapping_p.
7983
7984 * xterm.c (x_draw_phys_cursor_glyph): Redraw overlaps.
7985
7986 * dispextern.h (MATRIX_ROW_OVERLAPS_PRED_P): New.
7987 (MATRIX_ROW_OVERLAPS_SUCC_P): New.
7988
7989 * dispnew.c (direct_output_for_insert): Don't use this method if
7990 row is overlapped by others.
7991 (update_text_area): Write full line if current line is overlapped.
7992 (redraw_overlapped_rows): New.
7993 (update_window): Call it.
7994 (redraw_overlapping_rows): New.
7995 (update_window): Call it.
7996 (scrolling_window): Make sure overlapped_p flag in current rows is
7997 unchanged.
7998 (row_equal_p): Take rows overlapped_p flag into account.
7999
8000 * dispextern.h (struct glyph_row): Add flag overlapped_p.
8001
8002 * xterm.c (x_fix_overlapping_area): New.
8003 (x_redisplay_interface): Add x_fix_overlapping_area.
8004
8005 * dispnew.c (adjust_glyphs): Block input while adjusting matrices.
8006
80071999-08-06 Gerd Moellmann <gerd@gnu.org>
8008
8009 * xterm.c (x_draw_glyphs): Add parameter overlaps_p.
8010 (struct glyph_string): Add member for_overlaps_p.
8011 (x_get_glyph_string_clip_rect): If glyph string draws foreground
8012 of overlapping rows, clip to window bottom.
8013 (x_fill_glyph_string): Add parameter overlaps_p.
8014 (x_fill_composite_glyph_string): Ditto.
8015 (BUILD_GLYPH_STRINGS): Ditto.
8016 (BUILD_CHAR_GLYPH_STRINGS): Ditto.
8017 (x_draw_glyph_string): Don't draw anything but the foreground
8018 if glyph string draws row overlaps.
8019
8020 * dispnew.c (direct_output_for_insert): Don't use this
8021 optimization for rows that overlap others.
8022 (update_window_line): Return non-zero if display has changed.
8023 (update_text_area): Ditto.
8024 (update_window): Record if display has been changed.
8025
8026 * dispextern.h (MATRIX_ROW_OVERLAPPING_P): New.
8027
8028 * dispextern.h (struct redisplay_interface): Add
8029 fix_overlapping_area.
8030
8031 * xterm.c (x_append_glyph): Set glyph flag overlaps_vertically_p.
8032
8033 * dispextern.h (struct glyph): Add overlaps_vertically_p.
8034
8035 * xterm.c (x_produce_image_glyph): Compute iterator's physical
8036 ascent and descent.
8037 (x_produce_stretch_glyph): Ditto.
8038 (x_produce_glyphs): Ditto.
8039
8040 * xdisp.c (init_iterator): Reset physical line height info
8041 after producing special glyphs.
8042 (display_toolbar_line): Set physical line height info.
8043 (compute_line_metrics): Ditto.
8044 (display_line): Ditto.
8045 (display_string): Ditto.
8046
8047 * term.c (produce_glyphs): Set iterator's physical height
8048 information.
8049
8050 * dispnew.c (blank_row): Compute glyph row's physical height.
8051 (row_equal_p): Take physical row heights into account.
8052 (direct_output_for_insert): Ditto.
8053 (update_text_area): Ditto.
8054
8055 * dispextern.h (struct glyph_row): Add phys_ascent and
8056 phys_height.
8057 (struct it): Add phys_ascent, phys_descent, max_phys_ascent,
8058 max_phys_descent.
8059
80601999-08-04 Stefan Monnier <monnier@cs.yale.edu>
8061
8062 * buffer.c (switch_to_buffer_1): New subroutine, taken out from
8063 Fswitch_to_buffer.
8064 (no_switch_buffer): New function.
8065 (Fswitch_to_buffer): Call them. Don't get confused
8066 by "same-window" buffers in a dedicated frame.
8067
8068 * window.c (display-buffer): Don't get confused
8069 by "same-window" buffers in a dedicated frame.
8070
80711999-08-04 Andreas Schwab <schwab@gnu.org>
8072
8073 * insdel.c (insert_from_string_1): Check gap size against number
8074 of outgoing bytes, not incoming bytes.
8075
80761999-08-03 Tom Breton <tob@world.std.com>
8077
8078 * lread.c (read1): Added circular reading code to #N=.
8079 (SUBSTITUTE): New macro.
8080 (seen_list): New variable.
8081 (substitute_object_in_subtree): New function.
8082 (substitute_object_recurse): New function.
8083 (substitute_in_interval): New function.
8084
80851999-08-02 Eli Zaretskii <eliz@gnu.org>
8086
8087 * Makefile.in (frame.o, sysdep.o, xfaces.o): Depend on dosfns.h.
8088
8089 * frame.c (make_terminal_frame): Don't call init_frame_faces if
8090 noninteractive, for termcap frames as well.
8091
8092 * sysdep.c (init_sys_modes): Call init_frame_faces for termcap
8093 frames.
8094
80951999-08-01 Richard Stallman <rms@gnu.org>
8096
8097 * fns.c (internal_equal): Correct overlay comparison.
8098
83c8f461 80991999-07-31 Richard M. Stallman <rms@gnu.org>
26901792 8100
427ec082 8101 * xfns.c (x_set_internal_border_width):
26901792
DL
8102 Call do_pending_window_change. Don't block input, don't call XFlush.
8103 (x_set_vertical_scroll_bars): Call do_pending_window_change.
8104 (x_set_scroll_bar_width, x_set_font): Likewise.
8105
8106 * frame.c (Fset_frame_height): Call do_pending_window_change.
8107 (Fset_frame_width, Fset_frame_size): Likewise.
8108
8109 * xterm.c (x_set_window_size): When calling change_frame_size,
8110 specify 1 for DELAY.
8111
8112 * widget.c (EmacsFrameSetCharSize): Don't call
8113 do_pending_window_change here.
8114
81151999-07-30 Dave Love <fx@gnu.org>
8116
8117 * config.in: Add HAVE_STDLIB_H.
8118
81191999-07-30 Richard M. Stallman <rms@gnu.org>
8120
8121 * process.c (create_process): Detect failure of `pipe'.
8122
81231999-07-30 Keisuke Nishida <kei@psn.net>
8124
8125 * alloc.c (allocate_vectorlike): Add missing increment.
8126
8127 * data.c (Fdefalias): Call Ffset instead of duplicating code.
8128
8129 * keymap.c (get_keymap_1, get_keyelt): Check the type of OBJECT
8130 before calling indirect_function.
8131
81321999-07-30 Eli Zaretskii <eliz@gnu.org>
8133
8134 * dispextern.h (load_color, lookup_derived_face): Declare
8135 prototypes.
8136
8137 * dispnew.c (init_display) [MSDOS]: Don't initialize frame faces,
8138 it will be done later.
8139
8140 * frame.c (make_terminal_frame) [MSDOS]: Don't call
8141 init_frame_faces if non-interactive.
8142 (Fframe_parameters) [MSDOS]: Replace indexing into colornames[]
8143 array with a call to msdos_stdcolor_name. The font name is now
8144 "ms-dos", consistent with realize_tty_face.
8145
8146 * keyboard.c (cmd_error_internal): Don't kill Emacs if this is an
8147 MSDOS frame.
8148
8149 * window.c (Fset_window_configuration) [MSDOS]: Don't call
8150 x_set_toolbar_lines.
8151
8152 * xfaces.c (load_color): Remove static from definition and remove
8153 prototype.
8154 [MSDOS]: Add a DOS-specific version of load_color.
8155 (lookup_face): Replace FRAME_TERMCAP_P with !FRAME_WINDOW_P.
8156 (lookup_derived_face): New function.
8157 (realize_default_face): Support MSDOS frames.
8158 [MSDOS]: If fore/background colors are unspecified, inherit them
8159 from the frame.
8160 (realize_face): Support MSDOS frames.
8161 (realize_tty_face): Support MSDOS frames.
8162 [MSDOS]: If the face color is not in Vface_tty_color_alist, call
8163 load_color to try to find a suitable approximation. If the face
8164 is inverse-video, swap the foreground and background colors.
8165
8166 * dosfns.c (msdos_stdcolor_name, msdos_stdcolor_idx): New
8167 functions.
8168
8169 * dosfns.h (msdos_stdcolor_name, msdos_stdcolor_idx): Declare.
8170
8171 * msdos.h: Remove redundant declarations (most of them are now in
8172 dispextern.h).
8173
8174 * msdos.c (IT_set_face): Rewritten for the new redisplay engine.
8175 Use default frame colors if the face doesn't specify them; invert
8176 the colors if highlight is ON.
8177 (IT_write_glyphs): Rewritten for the new redisplay engine.
8178 (IT_change_line_highlight): Add (unused) parameter Y, since that's
8179 how the hook is called by term.c.
8180 (IT_copy_glyphs): New function, copies an area of the display in
8181 video RAM.
8182 (IT_insert_glyphs): Rewritten to DTRT instead of aborting, since
8183 redisplay now calls it even if char_ins_del_ok is zero.
8184 (IT_set_frame_parameters): Prototype changed. Calls the new
8185 load_color. Puts the new fore/background colors into the default
8186 face on current frame.
8187 (IT_menu_display): Rewritten to handle the new struct glyph
8188 instead of a char array.
8189 (XMenuActivate): Call lookup_derived_face to create and use
8190 special faces for the pop-up and drop-down menus.
8191
81921999-07-29 Gerd Moellmann <gerd@gnu.org>
8193
8194 * xterm.c (x_set_toolkit_scroll_bar_thumb): Don't call
8195 XawScrollbarSetThumb if thumb parameters haven't changed because
8196 that function apparently isn't optimized for this case.
8197
81981999-07-29 Eli Zaretskii <eliz@gnu.org>
8199
8200 * msdos.c (getdefdir): Don't return failure indication when
8201 _fixpath sets errno to ENOSYS.
8202
82031999-07-28 Gerd Moellmann <gerd@gnu.org>
8204
8205 * xdisp.c (string_char_and_length): New. Use it everywhere
8206 instead of STRING_CHAR_AND_LENGTH in xdisp.c.
8207
82081999-07-28 Kenichi Handa <handa@etl.go.jp>
8209
8210 * fns.c (count_combining): New function.
8211 (struct textprop_rec): New structure.
8212 (concat): Copy text properties correctly when byte combining
8213 occurs.
8214
82151999-07-28 Gerd Moellmann <gerd@gnu.org>
8216
8217 * xterm.c (x_setup_relief_color): Don't try smart color allocation
8218 if display is mono.
8219 (x_draw_row_bitmaps): If face has stipple, don't switch
8220 to foreground color for clearing areas, and set the fill style.
8221
8222 * xfaces.c (load_face_colors): Load background color if setting
8223 stipple, too.
427ec082 8224 (prepare_face_for_display): Use FillOpaqueStippled instead of
26901792
DL
8225 FillStippled.
8226
82271999-07-26 Ken'ichi Handa <handa@gnu.org>
8228
8229 * xterm.c (x_find_ccl_program): Add casting.
8230
8231 * w32fns.c (w32_find_ccl_program): Add casting.
8232
82331999-07-27 Gerd Moellmann <gerd@gnu.org>
8234
8235 * dispextern.h (struct glyph_row): Flag internal_border_p removed.
8236
8237 * xfns.c (x_create_tip_frame): Don't set bitmapIcon resource
8238 because this will try to access a nonexisting widget.
8239
82401999-07-26 Markus Rost <rost@gnu.org>
8241
427ec082 8242 * fns.c (Fgethash): Fix order of variables (patch by gerd).
26901792
DL
8243 (Fputhash): Ditto.
8244 (Fremhash): Ditto.
8245
82461999-07-26 Gerd Moellmann <gerd@gnu.org>
427ec082 8247
26901792
DL
8248 * widget.c (EmacsFrameSetCharSize): Don't add XtNborderWidth
8249 value to frame width and height.
8250
8251 * xterm.c (x_get_glyph_string_clip_rect): Take internal border
8252 into account for full-width windows. Don't add scroll bar width
8253 to width of clip rect.
8254 (x_draw_glyph_string_box): Add 1 to right x of full width lines.
8255 (x_set_glyph_string_background_width): Add 1 to background width.
8256 (x_draw_glyphs): Take internal border into account for full-width
8257 lines.
8258
82591999-07-26 Richard M. Stallman <rms@gnu.org>
8260
8261 * xfns.c (x_set_mouse_color): Always unload the old color.
8262 Don't allow nil as color value.
427ec082 8263 (x_set_cursor_color, x_set_background_color, x_set_foreground_color):
26901792
DL
8264 Always unload the old color.
8265
8266 * indent.c (Fmove_to_column): Extend end of line only if FORCE is t.
8267
82681999-07-26 Karl Heuer <kwzh@gnu.org>
8269
8270 * fns.c (Fy_or_n_p): Doc fix.
8271
82721999-07-26 Kenichi Handa <handa@etl.go.jp>
8273
8274 * ccl.h (setup_ccl_program): The type is changed to `int'.
8275
8276 * ccl.c (ccl_driver) <CCL_Call>: Now CCL program ID to call may be
8277 stored in the following CCL code. Adjusted for the change of
8278 Vccl_program_table.
8279 (resolve_symbol_ccl_program): Adjusted for the new style of
8280 embedded symbols (SYMBOL . PROP) in CCL compiled code. Return Qt
8281 is resolving failed.
8282 (ccl_get_compiled_code): New function.
8283 (setup_ccl_program): Function type changed from `void' to `int'.
8284 Resolve symbols in CCL_PROG.
8285 (Fccl_program_p): New function.
8286 (Fccl_execute): Get compiled CCL code by just calling
8287 setup_ccl_program.
8288 (Fccl_execute_on_string): Likewise.
8289 (Fregister_ccl_program): Adjusted for the change of
8290 Vccl_program_table.
8291
8292 * coding.c (setup_coding_system): Get compiled CCL code by just
8293 calling setup_ccl_program.
8294
8295 * xterm.c (x_find_ccl_program): Get compiled CCL code by just
8296 calling setup_ccl_program.
8297
8298 * w32fns.c (w32_find_ccl_program): Get compiled CCL code by just
8299 calling setup_ccl_program.
8300
83011999-07-23 Gerd Moellmann <gerd@gnu.org>
8302
8303 * xfaces.c (frame_update_line_height): Just use the height of the
8304 frame's fontset or font, instead of taking face fonts into
8305 account.
8306
8307 * xdisp.c (get_next_display_element): Display DEL as `^?'.
8308
83091999-07-23 Richard M. Stallman <rms@gnu.org>
8310
8311 * window.c (Fsplit_window): For default size, round up for left window.
8312
83131999-07-21 Joe Ramey <ramey@ti.com>
8314
8315 * filelock.c (lock_if_free): Return -1 if check_lock_owner
8316 has returned -1 (lockfile exists but is not a symlink?).
8317
83181999-07-20 Gerd Moellmann <gerd@gnu.org>
8319
8320 * xterm.c (x_draw_bar_cursor): Use scratch_cursor_gc to
8321 because of a change in cursor_gc made in 20.4.
8322
83231999-07-19 Gerd Moellmann <gerd@gnu.org>
8324
8325 * xterm.c (x_calc_absolute_position): Subtract menu bar height
8326 for YNegative, if using X toolkit.
8327
427ec082 8328 * xfns.c (x_real_positions): Don't subtract window borders
26901792
DL
8329 from positions returned.
8330
83311999-07-17 Gerd Moellmann <gerd@gnu.org>
8332
8333 * xrdb.c (x_load_resources): Set double-click time defaults
8334 for Motif list boxes from double-click-time.
8335
8336 * fns.c (Vhash_table_tests): Remvoed.
8337 (Qhash_table_test): New.
8338 (syms_of_fns): Initialize Qhash_table_test.
8339 (Fmake_hash_table): Look up user-defined tests in symbol prop
8340 `hash-table-test'.
8341 (Fdefine_hash_table_test): Store test and hash function as
8342 symbol prop `hash-table-test'.
8343 (make_hash_table): Add parameters user_test and user_hash.
8344
8345 * window.c (set_window_buffer): Set window margins for tty
8346 frames, too.
8347 (Fset_window_margins): Ditto.
8348
8349 * term.c (append_glyph): Use glyph area of iterator instead of
8350 always TEXT_AREA.
8351
8352 * dispnew.c (update_frame_1): Add left margin width to cursor
8353 hpos.
8354 (direct_output_for_insert): Ditto.
8355 (direct_output_forward_char): Ditto.
8356
8357 * dispnew.c (adjust_glyph_matrix): Set glyph matrix' top_line_p.
8358
8359 * dispextern.h (struct glyph_matrix): Add top_line_p.
8360
83611999-07-16 Gerd Moellmann <gerd@gnu.org>
8362
8363 * frame.h (FRAME_WINDOW_REDISPLAY_P): Removed. Use FRAME_WINDOW_P
8364 instead.
8365
8366 * fns.c (cmpfn_eq): Add hash code parameters.
8367 (cmpfn_eql): Ditto.
8368 (cmpfn_equal): Ditto, and compare hash codes before calling Fequal.
8369 (cmpfn_user_defined): Likewise.
8370
83711999-07-15 Gerd Moellmann <gerd@gnu.org>
8372
8373 * lisp.h (DEFAULT_REHASH_THRESHOLD): Changed to 0.8.
8374
8375 * fns.c (maybe_resize_hash_table): Correct computation of
8376 index vector size.
8377 (make_hash_table): Ditto.
8378 (Fmakehash): New.
8379
8380 * xdisp.c (echo_area_display): Don't call redraw_garbaged_frames.
8381
8382 * alloc.c (gc_sweep): Call sweep_weak_hash_tables.
8383 (survives_gc_p): Make it externally visible.
8384 (mark_object): Ditto.
8385
8386 * fns.c (remove_hash_entry): Removed.
8387 (sweep_weak_hash_tables): New.
8388
8389 * print.c (print): Print more information about hash tables.
8390
8391 * xfns.c (image_spec_hash): Removed.
8392 (lookup_image): Use sxhash instead of image_spec_hash.
8393 (image_spec_equal_p): Removed.
8394 (lookup_image): Use Fequal instead of image_spec_equal_p.
8395
83961999-07-14 Gerd Moellmann <gerd@gnu.org>
8397
8398 * lisp.h (P_): Moved to top of file.
8399
8400 * fns.c (make_hash_table): Set new members.
8401
8402 * alloc.c (mark_object): Mark hash table's user_hash_function.
8403 Mark index vector for weak hash tables.
8404
8405 * lisp.h (struct Lisp_Hash_Table): Add user_cmp_function,
8406 user_hash_function, cmpfn, and hashfn.
8407
8408 * fns.c (build_hash): Removed.
8409 (hash_test): Removed.
8410 (cmpfn_eq, cmpfn_eql, cmpfn_equal, cmpfn_user_defined): New.
8411 (hashfn_eq, hashfn_eql, hashfn_equal, hashfn_user_defined): New.
8412
84131999-07-13 Gerd Moellmann <gerd@gnu.org>
8414
8415 * alloc.c (survives_gc_p): New.
8416
8417 * print.c (print): Add hash table handling.
8418
8419 * alloc.c (mark_object): Add code to mark hash tables.
8420
8421 * lisp.h (GC_HASH_TABLE_P): New.
8422
8423 * emacs.c (main): Call init_fns.
8424
8425 * fns.c (init_fns): New.
8426
8427 * fns.c: Add hash table implementation.
8428
8429 * lisp.h (PVEC_HASH_TABLE): New.
8430 (struct Lisp_Hash_Table): New.
8431 (XHASH_TABLE): New.
8432 (XSET_HASH_TABLE): New.
8433 (HASH_TABLE_P): New.
8434 (CHECK_HASH_TABLE): New.
8435 (DEFAULT_HASH_SIZE): New.
8436 (DEFAULT_REHASH_THRESHOLD): New.
8437 (DEFAULT_REHASH_SIZE): New.
8438
8439 * xterm.c (x_draw_glyphs): Add parameters real_start and real_end.
8440 (x_write_glyphs): Compute overwritten cursor using real start
8441 and end positions of display.
8442 (x_insert_glyphs): Ditto.
8443
84441999-07-10 Gerd Moellmann <gerd@gnu.org>
8445
8446 * keyboard.c (read_char): Use message3_nolog to show help-echo.
8447
8448 * dispnew.c (blank_row): Add y-position as parameter. Compute
8449 visible height.
8450
8451 * xdisp.c (next_element_from_string): Give padding spaces
8452 a position of -1.
8453
427ec082 8454 * dispnew.c (adjust_glyph_matrix): Some work to support
26901792
DL
8455 marginals areas on tty frames in a future version.
8456 (allocate_matrices_for_frame_redisplay): Ditto.
8457
8458 * xdisp.c (display_line): At ZV, set glyph row's displays_text_p
8459 to zero if number of glyphs in the row is <= 1.
8460
84611999-07-09 Gerd Moellmann <gerd@gnu.org>
8462
8463 * dispnew.c (buffer_posn_from_coords): Take left marginal area
8464 into account.
8465
8466 * xdisp.c (handle_display_prop): Don't reset area if handing
8467 a property from a string that came from a `display' property.
8468 (handle_single_display_prop): Don't handle recursive `display'
8469 properties.
8470 (handle_single_display_prop): Handle some display property
8471 forms for terminal frames.
8472 (Qimage): Moved here from xfns.c.
8473
8474 * dispextern.h (struct it): New field string_from_display_prop_p.
8475
8476 * xterm.c (x_clip_to_row): Don't let clip_rect include top
8477 line.
8478
84791999-07-08 Gerd Moellmann <gerd@gnu.org>
8480
8481 * xdisp.c (handle_single_display_prop): Handle `:when FORM'.
8482
8483 * window.c (set_window_buffer): Set window's vscroll to zero.
8484
8485 * xdisp.c (QCwhen): New.
8486 (display_prop_end): New.
8487 (handle_single_display_prop): Use it.
8488 (debug_method_add): Print buffer name if tracing.
8489 (try_window_reusing_current_matrix): Compute visible height
8490 of reused rows. Fix cursor position calculation in case of
8491 top-line.
8492
8493 * dispextern.h (struct redisplay_interface): Add parameter
8494 cursor_on_p to update_window_end_hook.
8495
8496 * xterm.c (x_update_window_end): Add parameter cursor_on_p.
8497
84981999-07-07 Gerd Moellmann <gerd@gnu.org>
8499
427ec082 8500 * xdisp.c (redisplay_internal): Ensure that redisplayinp_p
26901792
DL
8501 doesn't become negative when decrementing it.
8502
8503 * eval.c (Fsignal): Reset redisplaying_p to zero.
8504
8505 * xdisp.c (try_window_reusing_current_matrix): Call hooks
8506 for window update.
8507 (try_window_id): Ditto.
8508
8509 * xterm.c (x_clear_end_of_line): Handle top-line correctly.
8510 (x_scroll_run): Ditto.
8511 (any_help_event_p): New.
8512 (x_initialize): Set it to zero.
8513 (XTread_socket): Clear help echo only if any_help_event_p.
8514
8515 * xdisp.c (init_iterator): Set top_line_p.
8516 (start_display): Use correct initial y if top-line is present.
8517 (make_cursor_line_fully_visible): Bug fixes for top-line.
8518 (try_scrolling): Ditto.
8519 (try_window_reusing_current_matrix): Ditto.
8520
8521 * dispextern.h (struct it): Add top_line_p.
8522
8523 * dispnew.c (shift_glyph_matrix): Move some computations out
8524 of the loop.
8525
427ec082 8526 * dispnew.c (margin_glyphs_to_reserve): Use NUMBERP and
26901792
DL
8527 XFLOATINT.
8528
85291999-07-06 Gerd Moellmann <gerd@gnu.org>
8530
8531 * dispnew.c (update_frame_1): When setting cursor in echo area,
8532 skip only over padding spaces at the end.
8533
8534 * xfaces.c (realize_tty_face): Set face's font_name field to
8535 "tty".
8536
8537 * term.c (update_end): Turn cursor on only if selected window's
8538 cursor_off_p flag is not set.
8539
85401999-07-05 Gerd Moellmann <gerd@gnu.org>
8541
8542 * term.c (TS_cursor_visible): Renamed from TS_visual_mode.
8543 (TS_cursor_normal): Renamed from TS_end_visual_mode.
8544 (TS_cursor_invisible): New.
8545 (term_init): Initialize TS_cursor_invisible.
8546 (tty_hide_cursor): New.
8547 (tty_show_cursor): New.
8548 (update_end): Show tty cursor.
8549 (update_begin): Hide tty cursor to prevent cursor flickering
8550 during redisplays triggered by timers (stealth fontification).
8551
8552 * keyboard.c (make_lispy_event) <TOOLBAR_EVENT>: Apply modifiers.
8553
8554 * xterm.c (XTread_socket) [USE_MOTIF] <KeyPress>: Catch events
8555 in scroll bars.
8556 (x_handle_toolbar_click): Set modifier bits.
8557
85581999-07-04 Gerd Moellmann <gerd@gnu.org>
8559
8560 * keyboard.c (kbd_store_ptr): Declare it as a volatile pointer
8561 instead of a pointer to a volatile input_event.
427ec082 8562 (kbd_buffer_store_event): Remove volatile modifier from
26901792
DL
8563 declaration of local variable `sp'.
8564 (Fdiscard_input): Don't cast when assigning kbd_store_ptr
8565 to kbd_fetch_ptr.
8566
85671999-07-03 Gerd Moellmann <gerd@gnu.org>
8568
8569 * xdisp.c (try_window_id): Set beg_unchanged and end_unchanged
8570 only if buffer is modified. Return quickly if changes are
8571 above window start.
8572
85731999-07-02 Gerd Moellmann <gerd@gnu.org>
8574
8575 * dispextern.h (HSCROLL_WINDOWS): Removed.
8576
8577 * xdisp.c (mark_window_display_accurate): Don't set
8578 w->region_showing.
8579 (redisplay_internal): Don't call redraw_garbaged_frames.
8580
85811999-07-01 Gerd Moellmann <gerd@gnu.org>
8582
8583 * xdisp.c (echo_area_display): Don't display truncation marks
8584 for messages because 20.4 doesn't do it either.
8585 (redisplay_window): Case same window start. Instead of giving
8586 up when cursor is partially visible, make it fully visible.
8587 (mark_window_display_accurate): Some cleanup. Record window's
8588 last cursor information.
8589 (debug_method_add): Improved.
8590 (redisplay_internal): Record last cursor info only if not
8591 consider_all_windows_p.
8592
8593 * dispnew.c (update_window): Update top line after scrolling.
8594 (blank_row): Renamed from make_empty_enabled_row.
8595 (increment_glyph_row_buffer_positions): Increment positions
8596 in buffers, only.
8597
8598 * window.c (Fcoordinates_in_window_p): Add top-line to doc
8599 string.
8600
86011999-06-30 Gerd Moellmann <gerd@gnu.org>
8602
8603 * dispnew.c (update_window): Check that updated row is visible.
8604
8605 * xterm.c (x_draw_row_bitmaps): Check for invisible rows at
8606 top of window differently.
8607
8608 * xdisp.c (try_window_reusing_current_matrix): Don't do it
8609 if region is showing.
8610
8611 * dispnew.c (adjust_glyph_matrix): Check w->vscroll when
8612 avoiding matrix reallocation. Set window_vscroll in matrix.
8613
8614 * dispextern.h (struct glyph_matrix): Add member window_vscroll.
8615
26901792
DL
8616 * xdisp.c (debug_method_add): New.
8617 (debug_redisplay_method): Removed.
8618 (try_window_reusing_current_matrix): Handle case where old
8619 window start is the same as new window start.
8620
8621 * dispextern.h (struct glyph_matrix) [GLYPH_DEBUG]: Make `method'
8622 an array instead of a pointer.
8623
26901792
DL
8624 * xfns.c (Fx_show_tip): Undo previous change.
8625
8626 * xterm.c (x_append_glyph): Clear glyph->u.val.
8627
8628 * dispextern.h (struct glyph): Increase size of face_id bit-field
8629 for CHAR_GLYPH to 12.
8630
86311999-06-29 Gerd Moellmann <gerd@gnu.org>
8632
8633 * xfaces.c (x_charset_registry): Make it externally visible.
8634
86351999-06-28 Gerd Moellmann <gerd@gnu.org>
8636
427ec082 8637 * dispnew.c (update_window): Use mode_line_p flag of rows
26901792
DL
8638 instead of WINDOW_WANTS_MODELINE_P.
8639
8640 * xterm.c (clear_mouse_face): Make externally visible.
8641
8642 * xfns.c (Fx_show_tip): Clear mouse face before showing tip.
8643
8644 * xterm.c (expose_line): Handle exposure of top-lines.
8645
8646 * xterm.c (XTframe_up_to_date): Don't call note_mouse_highlight
8647 if mouse_face_mouse_frame is null.
8648
8649 * xdisp.c (redisplay_window): If window is echo_area_window,
8650 and update_mode_line is set, update menubar and toolbar.
8651
8652 * dispnew.c (space_glyph): Set its charpos to -1.
8653 (update_frame_1): Ignore trailing padding spaces.
8654
8655 * xdisp.c (next_element_from_c_string): Set position of padding
8656 glyphs to -1.
8657
86581999-06-27 Gerd Moellmann <gerd@gnu.org>
8659
8660 * xfns.c (x_laplace_read_row): Use XQueryColors instead of
8661 XQueryColor.
8662
8663 * xdisp.c (display_menu_bar): Remove unwarranted assertion.
8664 (set_cursor_from_row): Skip over glyphs having a null object at
8665 the start of rows.
8666 (insert_left_trunc_glyphs): Use charpos < 0 to indicate truncation
8667 glyphs.
8668 (handle_invisible_prop): Compute next change only when needed.
8669 (handle_face_prop): Don't correct DEFAULT_FACE_ID if in the mode
8670 line.
8671
86721999-06-26 Gerd Moellmann <gerd@gnu.org>
8673
8674 * xrdb.c (x_load_resources): Don't set resource for double-click
8675 time.
8676
8677 * xdisp.c (try_window_id): Return quickly if all changes are
8678 below the window's current matrix end.
8679
8680 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): Remove window
8681 parameter.
8682
8683 * xdisp.c (try_window_reusing_current_matrix): Set no_scrolling_p
8684 in desired not in current matrix.
8685 (try_window_reusing_current_matrix): Rotate matrices starting
8686 at start_vpos instead of 0.
8687
8688 * xterm.c (expose_window): Use window_text_bottom_y.
8689 (fast_find_position): Ditto.
8690
8691 * xdisp.c (redisplay_window): Use window_text_bottom_y.
8692 (try_window_reusing_current_matrix): Ditto.
8693 (get_last_unchanged_at_beg_row): Ditto.
8694 (init_iterator): Ditto.
8695
8696 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate one
8697 more row.
8698 (check_matrix_invariants): Use window_text_bottom_y.
8699 (update_window): Ditto.
8700 (scrolling_window): Ditto.
8701
8702 * xdisp.c (window_text_bottom_y): New.
8703
87041999-06-25 Gerd Moellmann <gerd@gnu.org>
8705
8706 * xterm.c (XTread_socket): Set mouse_face_frame to zero after
8707 clearing mouse face.
8708 (XTread_socket) <EnterNotify> [LESSTIF_VERSION]: If
8709 event.xcrossing.focus is not set, and focus is in the menu bar,
8710 set focus frame as if event.xcrossing.focus were set.
8711
87121999-06-24 Gerd Moellmann <gerd@gnu.org>
8713
8714 * keyboard.c (make_lispy_event): Handle mouse on top lines.
8715 * keyboard.c (make_lispy_movement): Ditto.
8716
8717 * window.c (coordinates_in_window): Return 4 if on top line.
8718 (Fcoordinates_in_window_p): Return `top-line' if on top line.
8719
8720 * xdisp.c (window_box_height): Subtract top line height.
8721 (window_box): Add top line height to top y position if top line
8722 exists.
8723 (init_iterator): If base_face_id is TOP_LINE_FACE_ID, set row to
8724 the top line row of the window. Set initial y-position to
8725 window's top line height plus delta.
8726 (start_display): Choose start glyph row depending on whether
8727 window has a top line.
8728 (try_scrolling): Take top line height into account for aggressive
8729 scrolling.
8730 (compute_window_start_on_continuation_line): Take top line into
8731 account.
427ec082 8732 (redisplay_window): Ditto. If top line height has changed,
26901792
DL
8733 trigger a new redisplay.
8734 (try_window_reusing_current_matrix): Take top line into account.
8735 (find_last_row_displaying_text): Ditto.
8736 (get_last_unchanged_at_beg_row): DItto.
8737 (try_window_id): Ditto.
8738 (compute_line_metrics): Ditto.
8739
8740 * dispnew.c (shift_glyph_matrix): Compute visible row height
8741 taking top line of window into account.
8742 (update_window): Update top line. If scrolling_window detects
8743 that all rows are equal, only set cursor.
8744 (update_window_line): Call after_update_window_line_hook if
8745 mode_line_p flag of rows has changed.
8746 (scrolling_window): Add parameter top_line_p. Return -1 if
8747 all rows are equal.
8748 (mode_line_string): Add parameter mode_line_p. Handle strings
8749 in top lines.
8750
8751 * dispextern.h (MATRIX_TOP_LINE_ROW): New.
8752 (MATRIX_FIRST_TEXT_ROW): New.
8753 (MATRIX_ROW_PARTIALLY_VISIBLE_P): Use row's visible_height.
8754 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_TOP_P): New.
8755 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_BOTTOM_P): New.
8756 (MATRIX_TOP_LINE_HEIGHT): New.
8757 (CURRENT_MODE_LINE_HEIGHT): Use estimate_mode_line_height.
8758 (CURRENT_TOP_LINE_HEIGHT): New.
8759 (DESIRED_TOP_LINE_HEIGHT): New.
8760 (WINDOW_DISPLAY_TOP_LINE_HEIGHT): New.
8761 (WINDOW_DISPLAY_HEIGHT_NO_MODE_LINE): Replaces
8762 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
8763 (WINDOW_DISPLAY_TEXT_HEIGHT): New.
8764
8765 * xterm.c (x_after_update_window_line): Don't draw bitmaps for top
8766 lines.
8767 (x_draw_row_bitmaps): Take top line into account when clearing
8768 bitmap area.
8769 (x_estimate_mode_line_height): Replacement for
8770 x_frame_mode_line_height.
8771 (x_get_glyph_string_clip_rect): Take top line into account.
8772 (x_clear_end_of_line): Ditto.
8773 (note_mode_line_highlight): Add parameter mode_line_p. Handle
8774 top lines.
8775 (note_mouse_highlight): Call note_mode_line_highlight for top lines.
8776 (x_erase_phys_cursor): Take top line into account.
8777
8778 * xdisp.c (window_box_height): Subtract top line height if
8779 window wants a top line.
8780 (display_mode_lines): New.
8781 (redisplay_window): Call it.
8782 (display_mode_line): Add parameters face_id and format.
8783
8784 * dispextern.h (CURRENT_TOP_LINE_HEIGHT): New.
8785 (MATRIX_TOP_LINE_HEIGHT): New.
8786
8787 * xterm.c (x_frame_mode_line_height): Add parameter face_id.
8788
8789 * term.c (estimate_mode_line_height): Renamed from
8790 frame_mode_line_height. Add parameter face_id.
8791 (estimate_mode_line_height_hook): Renamed from
8792 frame_mode_line_height_hook.
8793 (produce_special_glyphs_hook): Removed.
8794 (produce_glyphs_hook): Removed.
8795
87961999-06-23 Gerd Moellmann <gerd@gnu.org>
8797
8798 * dispextern.h (WINDOW_WANTS_TOP_LINE_P): New.
8799 (struct glyph_row): Add mode_line_p.
8800
8801 * xfaces.c (realize_basic_faces): Realize face `top-line'.
8802 (Qtop_line): New.
8803 (syms_of_xfaces): Initialize Qtop_line.
8804
8805 * dispextern.h (TOP_LINE_FACE_ID): New.
8806
8807 * buffer.c (init_buffer_once): Set default for
8808 top_line_format to nil.
8809 (init_buffer_once): Init top_line_format.
8810 (default-top-line-format): New.
8811 (top-line-format): New buffer-local variable.
8812
8813 * buffer.h: Add top_line_format.
8814
8815 * xdisp.c (overlay_arrow_changed_p): Removed because not used.
8816
88171999-06-17 Dave Love <fx@gnu.org>
8818
8819 * xfns.c: Move the PNG section before the JPEG one to avoid
8820 problems surrounding setjmp.h/png.h on GNU/Linux.
427ec082 8821
26901792
DL
88221999-06-17 Gerd Moellmann <gerd@gnu.org>
8823
8824 * xfns.c (x_kill_gs_process): Don't free colors.
8825
88261999-06-17 Dave Love <fx@gnu.org>
8827
8828 * s/gnu-linux.h: Zap spurious ~.
8829
88301999-06-16 Gerd Moellmann <gerd@gnu.org>
8831
8832 * xfns.c (gif_load): Improve multi-image support.
8833
88341999-06-15 Gerd Moellmann <gerd@gnu.org>
8835
8836 * xfns.c (gif_load): Support multi-image files.
8837
8838 * Makefile.in (LIBGIF): Use libungif.
8839
8840 * configure.in (HAVE_GIF): Use libungif instead of libgif
8841 because the former doesn't contain patented compression code.
8842
8843 * xdisp.c (compute_window_start_on_continuation_line): Don't
8844 do it if line start is too far away from window start.
8845
88461999-06-14 Gerd Moellmann <gerd@gnu.org>
8847
8848 * buffer.c (init_buffer_once): Set buffer_local_flags for
8849 scroll_*_aggressively.
8850 (syms_of_buffer): Add DEFVAR_PER_BUFFER for scroll-*-aggressively.
8851 (init_buffer_once): Set defaults for these variables.
8852 (syms_of_buffer): Add default-scroll-*-aggressively.
8853
8854 * buffer.h (scroll_up_aggressively): New.
8855 (scroll_down_aggressively): New.
8856
8857 * Makefile.in (LIBPNG): Add -lz -lm in case we're linking with
8858 a static PNG library.
8859
8860 * configure.in (HAVE_PNG): Add -lz -lm when checking for PNG lib
8861 in case it's a static library.
8862
8863 * Makefile.in (ctagsfiles): Split so that files starting
8864 with an `x' are found before files starting with `w32'.
8865 (ctagsfiles1): New.
8866 (ctagsfiles2): New.
8867 (TAGS): Use ctagsfiles[12] instead of ctagsfiles.
8868
8869 * xdisp.c (compute_window_start_on_continuation_line): New.
8870 (redisplay_window): Use it.
8871 (INFINITY): New.
8872 (reseat_to_string): Use it.
8873 (hscroll_window_tree): Ditto.
8874 (compute_window_start_on_continuation_line): Ditto.
8875 (redisplay_window): Don't force display with a new window start.
8876
88771999-06-06 Gerd Moellmann <gerd@gnu.org>
8878
8879 * xfns.c (x_report_frame_params): Don't report `outer-window-id'
8880 if widget not present.
8881
8882 * xdisp.c (prepare_menu_bars): Ignore tooltip frame.
8883
88841999-06-04 Gerd Moellmann <gerd@gnu.org>
8885
8886 * xfaces.c (recompute_basic_faces)[GLYPH_DEBUG]: Check return
8887 value of realize_basic_faces.
8888 (load_face_font_or_fontset): Store full font name in face.
8889 (realize_default_face): Use full font name.
8890
26901792
DL
8891 * xterm.c (x_produce_glyphs): Set member char_to_display.
8892 (x_append_glyph): Store char_to_display in glyphs.
8893
8894 * dispextern.h (struct it): Add char_to_display.
8895
8896 * xfns.c (x_set_font): Don't call face-set-after-frame-default
8897 if faces haven't been initialized.
8898 (Fx_create_frame): Call face-set-after-frame-default after
8899 faces have been initialized, and widget has been created.
8900
8901 * puresize.h (BASE_PURESIZE): Increased.
8902
89031999-06-01 Gerd Moellmann <gerd@gnu.org>
8904
8905 * xfaces.c (set_lface_from_font_name): Add parameter force_p.
8906 (Finternal_set_lisp_face_attribute): If frame is t when
8907 :font attribute is set, use the selected frame.
8908 (clear_face_cache): Add parameter clear_fonts_p.
8909 (Fclear_face_cache): Add optional parameter thorougly.
8910
8911 * xfaces.c (face_numeric_value): Return -1 if symbol is not
8912 in table.
8913 (Fclear_face_cache): New.
8914 (choose_face_fontset_font): If fontset doesn't contain font
8915 pattern for the given charset, use CHARSET_ASCII.
8916 (Finternal_set_lisp_face_attribute): Fix handling of nil
8917 stipple attribute.
8918 (Finternal_set_lisp_face_attribute): Fix handling of changing
8919 font-related face attributes of the default face.
8920 (set_lface_from_font_name): Set only attributes that aren't
8921 specified.
8922
89231999-05-31 Gerd Moellmann <gerd@gnu.org>
8924
8925 * xfaces.c (SCALABLE_FONTS): Define this to enable scalable
8926 font support.
8927 (Vscalable_fonts_allowed) [SCALABLE_FONTS]: New.
8928 (x_face_list_fonts): Add parameter scalable_fonts_p. Handle
8929 scalable fonts depending on the setting of SCALABLE_FONTS.
8930 (first_font_matching): List more than one font to find the
8931 first non-scalable matching font.
8932 (sorted_font_list): Let x_face_list_fonts return scalable fonts
8933 depending on SCALABLE_FONTS.
8934 (better_font_p): New parameter compare_pt_p. If zero, don't
8935 compare point sizes of fonts.
8936 (exact_face_match_p) [SCALABLE_FONTS]: New.
8937 (build_scalable_font_name) [SCALABLE_FONTS]: New.
8938 (may_use_scalable_font_p) [SCALABLE_FONTS]: New.
8939 (best_matching_font) [SCALABLE_FONTS]: Handle scalable fonts.
8940 (syms_of_xfaces): Add scalable-fonts-allowed.
8941
89421999-05-26 Gerd Moellmann <gerd@gnu.org>
8943
8944 * xfns.c (png_load): Let PNG lib handle gamma. Construct
8945 mask only if image contains simple transparency information.
8946 Otherwise, combine image with frame background color.
8947
8948 * configure.in (--with-png, HAVE_PNG): New.
8949
8950 * config.in (HAVE_PNG): New.
8951
8952 * Makefile.in: Add PNG library.
8953
8954 * xfns.c: Add PNG support.
8955
89561999-05-25 Gerd Moellmann <gerd@gnu.org>
8957
8958 * xdisp.c (init_xdisp): Initialize echo_area_message and
8959 previous_echo_area_message to nil.
8960
8961 * keyboard.c (read_char): Rename local variable echo_area_message
8962 because it shadows the global one.
8963
89641999-05-05 Gerd Moellmann <gerd@gnu.org>
8965
8966 * xterm.c (note_mode_line_highlight): Restructured.
8967
8968 * window.c (coordinates_in_window): Handle windows that don't have
8969 a mode line because their buffer's mode-line-format is nil.
8970 Recognize the mode line under x positions that correspond to
8971 flags areas and left scroll bar.
8972
89731999-05-02 Dave Love <fx@gnu.org>
8974
8975 * xterm.c (note_mouse_highlight): Separate help-echo processing
8976 from check on mouse-face so that it works generally.
8977
89781999-04-21 Gerd Moellmann <gerd@gnu.org>
8979
8980 * sound.c (Fplay_sound): Run hook play-sound-hook.
8981 (Qplay_sound_hook): New.
8982
89831999-04-20 Gerd Moellmann <gerd@gnu.org>
8984
8985 * xdisp.c (update_echo_area): Handle echo_area_message.
8986
89871999-04-19 Gerd Moellmann <gerd@gnu.org>
8988
8989 * editfns.c (Fmessage): Use message3.
8990
8991 * print.c (printchar): Set echo_area_message to nil.
8992 (strout): Ditto.
8993
8994 * minibuf.c (read_minibuf): Reset echo message strings to nil.
8995 (Fminibuffer_completion_help): Ditto.
8996
8997 * keyboard.c (cmd_error_internal): Set echo_areA_message.
8998 (command_loop_1): Test echo_areA_message.
8999 (read_char): Ditto.
9000 (record_menu_key): Set echo_area_message to nil.
9001 (Fexecute_extended_command): Test echo_area_message.
9002 (Fexecute_extended_command): Handle echo_area_message.
9003
9004 * fileio.c (Fdo_auto_save): Handle the case that echo_area_message
9005 is set.
9006
9007 * editfns.c (Fcurrent_message): If echo_area_message is set,
9008 return a substring of that string.
9009
9010 * dispnew.c (direct_output_for_insert): Test echo_area_message
9011 in addition to echo_area_glyphs.
9012 (set_window_cursor_after_update): Ditto.
9013 (update_frame_1): Ditto.
9014
9015 * alloc.c (Fgarbage_collect): Use message3_nolog to display
9016 old Lisp message string.
9017
9018 * xdisp.c (echo_area_message): New.
9019 (previous_echo_area_message): New.
9020 (syms_of_xdisp): Initialize and staticpro new variables.
9021 (echo_area_display): Display echo_area_message if set.
9022 (message2_nolog): Set echo_area_message and
9023 previous_echo_area_message.
9024 (echo_area_display): Set previous_echo_area_message.
9025 (redisplay_internal): Display echo area if echo_area_message
9026 or previous_echo_area_message are set.
9027 (redisplay_preserve_echo_area): Test/set echo_area_message and
9028 previous_echo_area_message.
9029 (redisplay_window): Test echo_area_message.
9030 (message3_nolog): New.
9031 (message3): New.
9032
9033 * editfns.c (Fformat): Add text properties to the result string
9034 from properties of the format string and properties of string
9035 arguments.
9036
9037 * textprop.c (text_property_list): New.
9038 (add_text_properties_from_list): New.
9039 (extend_property_ranges): New.
9040
90411999-03-29 Gerd Moellmann <gerd@gnu.org>
9042
9043 * xfaces.c (Qraised, Qsunken, QCshadow): Removed.
9044 (QCline_width, QCstyle, Qpressed_button, Qreleased_button): New.
9045 Use these symbols for the box face attribute instead of the
9046 removed ones.
9047
90481999-03-12 Gerd Moellmann <gerd@gnu.org>
9049
9050 * xfaces.c (realize_tty_face): Don't set alt_char_p of face.
9051 Correct wrong test for slant.
9052
90531999-03-10 Gerd Moellmann <gerd@gnu.org>
9054
9055 * xfaces.c: Use `unspecified' for unspecified face attributes,
9056 use t and nil for on/off.
9057
90581999-03-06 Gerd Moellmann <gerd@gnu.org>
9059
9060 * buffer.c (syms_of_buffer): Extend doc string of
9061 mode-line-format.
9062
9063 * xfaces.c (x_face_list_fonts): New parameter try_alternatives_p.
9064 (first_font_matching): New.
9065 (set_lface_from_font_name): Use it if font name is a pattern.
9066 (font_field_wildcard_p): Removed.
9067
9068 * dispnew.c (shift_glyph_matrix): Add `window' parameter.
9069 Recompute visible height of rows.
9070
9071 * xterm.c (note_mouse_highlight): Reorder code for help-echo.
9072 Don't accept non-strings for help-echo from overlays.
9073
90741999-03-04 Dave Love <fx@gnu.org>
9075
9076 * xterm.c (note_mouse_highlight): Check overlays for help-text
9077 property.
9078 (XTread_socket): Fix compiler warning.
427ec082 9079
26901792
DL
90801999-03-05 Gerd Moellmann <gerd@gnu.org>
9081
427ec082 9082 * xterm.c (note_mouse_highlight): Don't restrict number of
26901792
DL
9083 overlay to 10. Call overlays_at so that it doesn't try to
9084 extend the vector.
9085
9086 * xdisp.c (compute_line_metrics): Compute glyph row's visible
9087 height.
9088
9089 * dispnew.c (row_equal_p): Compare visible row height, only.
9090 (update_text_area): Draw whole line if visible heights of
9091 rows differ.
9092 (update_window_line): Call after_update_window_line_hook
9093 if visible row height has changed.
9094
9095 * dispextern.h (MATRIX_ROW_VISIBLE_HEIGHT): Removed.
9096 (struct glyph_row): New member visible_height.
9097
9098 * xfaces.c (font_field_wildcard_p): New.
9099 (set_lface_from_font_name): Remove parameter force_p. Accept
9100 font names containing wildcards.
9101
91021999-03-04 Gerd Moellmann <gerd@gnu.org>
9103
9104 * xterm.c (x_after_update_window_line): Clear internal border
9105 when windows_or_buffers_changed.
9106
9107 * dispextern.h (WINDOW_WANTS_MODELINE_P): Return zero if window's
9108 buffer has a nil mode_line_format.
9109
91101999-03-03 Gerd Moellmann <gerd@gnu.org>
9111
9112 * xterm.c (x_setup_relief_colors): Use either background color
9113 or specified color.
9114
9115 * xfaces.c (realize_x_face): Set face->use_box_color_for_shadows_p.
9116
9117 * dispextern.h (struct face): Add use_box_color_for_shadows_p.
9118
9119 * xterm.c (x_draw_box_rect): New.
9120 (x_draw_glyph_string_box): Renamed from
9121 x_draw_glyph_string_relief. Call x_draw_box_rect.
9122
9123 * xfns.c (QCrelief): New.
9124 (syms_of_xfns): Initialize it.
9125
9126 * dispextern.h (struct glyph): Rename left_shadow_p to
9127 left_box_line_p, right_shadow_p to right_box_line_p.
9128 (MAX_RELIEF_THICKNESS): Removed.
9129 (struct it): Rename members having `relief' in their names
9130 to contain `box' instead.
9131
9132 * xfaces.c (realize_x_face): Handle new box attribute values.
9133 (QCrelief, Qbox): Removed.
9134 (QCshadow, QCcolor, Qraised, Qsunken): New.
9135 (syms_of_xfaces): Initialize new symbols.
9136
91371999-03-02 Gerd Moellmann <gerd@gnu.org>
9138
9139 * dispextern.h (LFACE_RELIEF_INDEX): Removed.
9140
9141 * xfaces.c (LFACE_RELIEF): Removed.
9142 (merge_face_vector_with_property): Remove handling of `:relief'.
9143 (Finternal_set_lisp_face_attribute): Ditto.
9144 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
9145 (Finternal_get_lisp_face_attribute): Ditto.
9146 (realize_default_face): Ditto.
9147 (lface_hash): Don't compute hash from relief.
9148
9149 * dispextern.h (struct face): Replace member `relief' by
9150 `box_line_width'. Add member `box'.
9151 (face_box_type): New.
9152
9153 * xterm.c (x_produce_glyphs): If face has overline, add overline
9154 thickness + 1 to ascent.
9155
91561999-03-01 Gerd Moellmann <gerd@gnu.org>
9157
9158 * xterm.c (x_draw_glyph_string): Draw underline, overline,
9159 strike-through, and boxes.
9160 (x_draw_glyph_string_underline): Removed.
9161
9162 * xfaces.c (QCoverline, QCstrike_through, QCbox): New.
9163 (Qoverline, Qstrike_through, Qbox): New.
9164 (syms_of_xfaces): Define these symbols.
9165 (check_lface_attrs): Add checks for overline, strike-through,
9166 and box.
9167 (Finternal_set_lisp_face_attribute): Set new attributes.
9168 (LFACE_OVERLINE, LFACE_STRIKE_THROUGH, LFACE_BOX): New.
9169 (load_color): Handle new attributes.
9170 (realize_x_face): Ditto.
9171 (merge_face_vector_with_property): Ditto.
9172 (free_face_colors): Ditto.
9173 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
9174 (Finternal_get_lisp_face_attribute): Ditto.
9175 (Finternal_lisp_face_attribute_values): Ditto.
9176
9177 * dispextern.h (lface_attribute_index): Add enumerators for
9178 overstrike, strike-through, and box.
9179 (struct face): Add members for overline, strike-through, and
9180 box.
9181
91821999-02-17 Dave Love <fx@gnu.org>
9183
9184 * s/gnu-linux.h s/gnu.h s/irix5-0.h s/netbsd.h s/sco4.h s/sco5.h
9185 s/template.h (NARROWPROTO): Define on the basis of relevant X cf
9186 files.
9187
91881999-02-16 Gerd Moellmann <gerd@gnu.org>
9189
9190 * keyboard.c (toolbar_items): Call access_keymap with third
9191 parameter 1, so that we don't get inherited toolbar item
9192 definitions.
9193
9194 * xdisp.c (redisplay_internal): In optimization 1, don't decrement
9195 the window end vpos when in empty first line of window.
9196
91971999-02-15 Gerd Moellmann <gerd@gnu.org>
9198
9199 * xfaces.c (set_font_frame_param): New.
9200 (Finternal_set_lisp_face_attribute): Call it.
9201
9202Sun Feb 14 10:54:02 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9203
9204 * xfaces.c (Finternal_set_lisp_face_attribute_from_resource):
9205 Accept specifications of color for underline.
9206
92071999-02-13 Gerd Moellmann <gerd@gnu.org>
9208
9209 * xfaces.c (Finternal_set_lisp_face_attribute): If parameter
9210 `frame' is t, operate on face defaults for new frames. If it
9211 is nil, operate on the selected frame.
9212
92131999-02-12 Gerd Moellmann <gerd@gnu.org>
9214
9215 * dispnew.c (check_matrix_invariants): Put it in #if 0.
9216 (update_window): Put the call to check_matrix_invariants in #if 0.
9217
9218Sun Feb 7 09:58:49 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9219
9220 * dispextern.h: Remove all else block of UNDERLINE_COLOR.
9221 Remove definition of UNDERLINE_COLOR.
9222
9223Mon Jan 4 04:43:41 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9224
9225 * xfaces.c (free_face_colors): Free the color for underline.
9226
9227 * xterm.c (x_draw_glyph_string_underline): Set the color for underline
9228 to the GC.
9229
9230Sun Jan 3 08:41:10 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9231
9232 * dispextern.h (UNDERLINE_COLOR): Defined.
9233 (struct face): Added two new members.
9234 underline_color, underline_defaulted_p.
9235
427ec082 9236 * xfaces.c (merge_face_vector_with_property):
26901792 9237 (check_lface_attrs): Accept the string value for underline.
427ec082 9238 (Finternal_set_lisp_face_attribute): Likewise.
26901792
DL
9239
9240 * xfaces.c (load_color): Change the last argument type to enum
9241 lface_attribute_index from int. And addec code for underling coloring.
9242 (load_face_colors): Pass LFACE_*_INDEX to load_color.
427ec082 9243
26901792
DL
92441999-02-12 Gerd Moellmann <gerd@gnu.org>
9245
9246 * xfns.c (Fx_image_header): Removed.
9247
92481999-02-07 Gerd Moellmann <gerd@gnu.org>
9249
9250 * xterm.c: Don't include <bitmaps/gray>.
9251 (x_term_init): Use gray_bitmap_width and gray_bitmap_height.
9252
9253 * xfns.c (Fx_image_header): Add missing `\n\'.
9254 (gray_bitmap_width, gray_bitmap_height, gray_bitmap_bits): New.
9255
92561999-02-01 Gerd Moellmann <gerd@gnu.org>
9257
9258 * xterm.c (x_scroll_bar_create): Set background pixel from
9259 specified scroll bar color.
9260 (x_scroll_bar_set_handle): Use scroll bar foreground color.
9261
9262 * xfns.c (x_set_scroll_bar_foreground): Remove all scroll bars.
9263 (x_set_scroll_bar_background): Ditto.
9264
9265 * xterm.c (x_create_toolkit_scroll_bar): Set scroll bar colors.
9266
9267 * xfns.c (x_default_scroll_bar_color_parameter): New.
9268 (Fx_create_frame): Call it.
9269
92701999-01-31 Gerd Moellmann <gerd@gnu.org>
9271
9272 * xfns.c (Fx_create_frame): Initialize scroll bar pixel color
427ec082 9273 values in x_output structure.
26901792
DL
9274 (Qscroll_bar_foreground, Qscroll_bar_background): New.
9275 (syms_of_xfns): Initialize these symbols.
9276
9277 * xterm.h (struct x_output): Add scroll bar pixel colors.
9278
9279 * xfns.c (x_frame_parms): Add entries for scroll bar colors.
9280 (x_set_scroll_bar_foreground): New.
9281 (x_set_scroll_bar_background): New.
9282
26901792
DL
92831999-01-12 Gerd Moellmann <gerd@gnu.org>
9284
9285 * xdisp.c (handle_single_display_prop): New.
9286 (handle_display_prop): Call it.
9287 (handle_raise_prop): Removed.
9288 (handle_height_prop): Removed.
9289 (handle_space_width_prop): Removed.
9290 (handle_face_prop): Remove handling of raised text.
9291 (handle_display_prop): Do it here.
9292
9293 * dispextern.h (DISPLAY_PROP_IDX): Replaces GLYPH_PROP_IDX.
9294 (RAISE_PROP_IDX): Removed.
9295 (HEIGHT_PROP_IDX): Removed.
9296 (SPACE_WIDTH_PROP_IDX): Removed.
9297
9298 * xdisp.c (Qdisplay): Replaces Qglyph.
9299 (handle_display_prop): Formerly handle_glyph_prop.
9300
93011999-01-11 Gerd Moellmann <gerd@gnu.org>
9302
9303 * xdisp.c (reseat_to_string): Set position in display vector to -1.
9304 (handle_stop): Set position in display vector to -1. Don't
9305 check overlay strings when set up to deliver characters from a
9306 display vector.
9307 (set_iterator_to_next): At the end of a run of characters from a
9308 display vector, check whether the display vector display replaces
9309 the display of a character.
9310
93111999-01-05 Gerd Moellmann <gerd@gnu.org>
9312
9313 * xfaces.c (init_frame_faces): Don't realize faces if frame's
9314 X window hasn't been created yet.
9315
93161998-12-06 Gerd Moellmann <gerd@gnu.org>
9317
9318 * sound.c: New.
9319
93201998-12-04 Gerd Moellmann <gerd@gnu.org>
9321
9322 * config.in (HAVE_SOUND): New.
9323
9324 * emacs.c (main): Call syms_of_sound and init_sound.
9325
9326 * Makefile.in (obj): Add sound.o.
9327
9328 * configure.in: Add checks for machine/soundcard.h and sys/soundcard.h.
9329
9330 * config.in (HAVE_MACHINE_SOUNDCARD_H): New.
9331 (HAVE_SYS_SOUNDCARD_H): New.
9332
93331998-12-03 Gerd Moellmann <gerd@gnu.org>
9334
9335 * buffer.h (struct buffer): indicate_empty_lines renamed from
9336 indicate_zv_lines.
9337
9338 * buffer.c (indicate-empty-lines): Renamed from indicate_zv_lines.
9339 (default-indicate-zv-lines): Likewise.
9340
9341 * dispextern.h (struct glyph_row): Rename indicate_zv_line_p
9342 to indicate_empty_line_p.
9343
9344 * xdisp.c (reseat_at_next_visible_line_start): Reset method
9345 to next_element_from_buffer.
9346
9347 * frame.c (make_frame): Set n_current_toolbar_items to 0.
9348
9349 * xdisp.c (handle_face_prop): Allow symbols of the form `N+'
9350 and `N-'.
9351
9352 * xfns.c (xbm_scan): New.
9353 (xbm_read_hexint): Removed.
9354 (xbm_read_bitmap_file_data): Use xbm_scan.
9355
9356 * fileio.c (Finsert_file_contents): Prevent redisplay optimizations.
9357
93581998-12-02 Gerd Moellmann <gerd@gnu.org>
9359
9360 * xfns.c (xbm_read_hexint): New.
9361 (xbm_read_bitmap_file_data): New.
9362 (xbm_load_image_from_file): Call xbm_read_bitmap_file_data
9363 instead of XReadBitmapFileData.
9364
9365 * xdisp.c (handle_raise_prop): Compute voffset from current font.
9366
9367 * xfaces.c (face_with_height): New.
9368
9369 * xdisp.c (eval_handler): Renamed from eval_mode_handler.
9370 (eval_form): Renamed from eval_mode_element.
9371 (handle_face_prop): Use it.
9372 (Qheight): Replaces Qsmaller.
9373 (handle_height_prop): Replaces handle_smaller_prop.
427ec082 9374 (handle_face_prop): If iterator's font_height is not an
26901792
DL
9375 integer, evaluate it to get the font height to use.
9376
9377 * dispextern.h (HEIGHT_PROP_IDX): Replaces SMALLER_PROP_IDX.
9378 (struct it): Use `font_height' instead of `smaller'.
9379
93801998-12-01 Gerd Moellmann <gerd@gnu.org>
9381
9382 * xdisp.c (reseat_1): New.
9383 (reseat): Call it.
9384 (move_it_vertically_backward): Ditto.
9385 (redisplay_window): Don't abort when cursor not found in recenter.
9386
93871998-11-30 Gerd Moellmann <gerd@gnu.org>
9388
9389 * xdisp.c (reseat_at_next_visible_line_start): When not
9390 currently delivering display elements from the current buffer,
9391 restore buffer position first.
9392 (init_from_display_pos): Don't set IT's position from the
9393 position passed to this function.
9394
93951998-11-28 Gerd Moellmann <gerd@gnu.org>
9396
9397 * config.in (PROTO): Removed.
9398
9399 * xterm.h: Change PROTO to P_.
9400
94011998-11-26 Gerd Moellmann <gerd@gnu.org>
9402
9403 * xterm.c (take_vertical_position_into_account): New.
9404 (x_produce_image_glyph): Call it.
9405 (x_produce_stretch_glyph): Ditto.
9406 (x_produce_glyphs): Ditto.
9407 (x_fill_glyph_string): Adjust base line for glyph's voffset.
9408 (x_fill_composite_glyph_string): Ditto.
9409 (x_fill_image_glyph_string): Ditto.
9410 (x_fill_stretch_glyph_string): Ditto.
9411
9412 * xdisp.c (display_line): Always compute row height from
9413 max_ascent and max_descent.
9414
9415 * dispextern.h (struct glyph): Add voffset.
9416 (struct it): Replace height by descent, max_height by max_descent.
9417
9418 * xterm.c (x_append_glyph): Set voffset
9419 (x_append_stretch_glyph): Ditto.
9420 (x_produce_image_glyph): Ditto.
9421 (x_produce_glyphs): Take voffset into account.
9422 (x_produce_image_glyph): Ditto.
9423 (x_produce_stretch_glyph): Ditto.
9424
9425 * dispextern.h (struct it): Add voffset.
9426 * xdisp.c (push_it): Save voffset.
9427 (pop_it): Restore it.
9428
9429 * xdisp.c (it_props): Add entry for `raise'.
9430 (handle_raise_prop): New.
9431
9432 * dispextern.h (RAISE_PROP_IDX): New.
9433
9434 * xdisp.c (Qraise): New.
9435 (syms_of_xdisp): Define Qraised.
9436
9437 * xterm.c (x_scroll_bar_move): Clear to the left and right
9438 of toolkit scroll bars differently.
9439 (x_scroll_bar_move): Removed.
9440 (XTset_vertical_scroll_bar): Move code from x_scroll_bar_move here.
9441
9442 * dispextern.h: Make it compilable --with-x=no.
9443 * alloc.c: Ditto.
9444 * emacs.c: Ditto.
9445 * dispnew.c: Ditto.
9446 * keyboard.c: Ditto.
9447 * term.c: Ditto.
9448 * xdisp.c: Ditto.
9449 * xfaces.c: Ditto.
9450 * xfns.c: Ditto.
9451 * xmenu.c: Ditto.
9452
94531998-11-25 Gerd Moellmann <gerd@gnu.org>
9454
9455 * xterm.c (XTread_socket): Cancel help-echo when leaving frame.
9456
94571998-11-24 Gerd Moellmann <gerd@gnu.org>
9458
9459 * xterm.c (x_set_toolkit_scroll_bar_thumb): When dragging,
9460 update slider size, only.
9461 (xm_scroll_callback): Set dragging member of the scroll bar.
9462 (xt_action_hook): Reset last_scroll_bar_part.
9463 (XTredeem_scroll_bar): Reset bar->dragging to nil.
9464
26901792
DL
9465 * xfns.c (Fx_hide_busy_cursor): Don't try to hide busy cursor
9466 window on newly created frames that don't have one.
9467
94681998-11-23 Gerd Moellmann <gerd@gnu.org>
9469
9470 * xdisp.c (restore_overlay_strings): Removed.
9471 (restore_dpvec): Removed.
9472 (init_from_display_pos): Inline both functions above.
9473
9474 * xfns.c (IMAGE_NON_NEGATIVE_INTEGER_VALUE): New.
9475 (parse_image_spec): Handle it.
9476 (xbm_format): Use it.
9477 (xpm_format): Ditto.
9478 (pbm_format): Ditto.
9479 (jpeg_format): Ditto.
9480 (tiff_format): Ditto.
9481 (gif_format): Ditto.
9482 (gs_format): Ditto.
9483
9484 * xdisp.c (set_window_cursor): Removed.
9485 (redisplay_internal): Case cursor motion in cursor line of
9486 selected window; use set_cursor_from_row.
9487
94881998-11-22 Gerd Moellmann <gerd@gnu.org>
9489
9490 * widget.c (EmacsFrameSetCharSize): Take widget's border width
9491 into account.
9492
94931998-11-21 Gerd Moellmann <gerd@gnu.org>
9494
9495 * xterm.c (expose_frame): Redraw menu bar window.
9496
9497 * xdisp.c (display_menu_bar): Record hpos instead of x-position
9498 in menu item.
9499
9500 * dispnew.c (change_frame_size_1): Use FRAME_TOP_MARGIN instead
9501 of FRAME_TOOLBAR_LINES. Use `f' instead of `frame'.
9502
9503 * widget.c (set_frame_size): Use FRAME_SCROLL_BAR_COLS
9504 to determine vertical_scroll_bar_extra.
9505 (EmacsFrameSetCharSize): Ditto.
9506 * xfns.c (x_figure_window_size): Ditto.
9507
9508 * xterm.c (x_draw_row_bitmaps): Draw in `bitmap-area' face.
9509 (x_draw_bitmap): Ditto.
9510
9511 * dispextern.h (face_id): New id BITMAP_AREA_FACE_ID.
9512 * xfaces.c (realize_basic_faces): Realize it.
9513
95141998-11-20 Gerd Moellmann <gerd@gnu.org>
9515
9516 * xmenu.c (xmenu_show): Add workaround for remaining button grab
427ec082 9517 under LessTif Use the widget of the frame as parent for the
26901792
DL
9518 menu, again.
9519
95201998-11-19 Gerd Moellmann <gerd@gnu.org>
9521
9522 * xterm.c (XTread_socket): Inhibit busy cursor for EnterNotify.
9523 When EnterNotify, don't generate a mouse movement event if
9524 notification is from a busy-cursor child window.
9525
9526 * xterm.h (struct x_output): Add busy_window, remove cursor.
9527
9528 * xfns.c (Fx_show_busy_cursor): Formerly Fx_display_busy_cursor.
9529 Use a transparent window to display the busy-cursor.
9530 (Fx_hide_busy_cursor): Formerly Fx_undisplay_busy_cursor.
9531
95321998-11-17 Gerd Moellmann <gerd@gnu.org>
9533
9534 * xdisp.c (check_window_end): New, for debugging.
9535 (CHECK_WINDOW_END): New.
9536 (try_window_id): Use it.
9537
9538 * xterm.c (process_expose_from_menu): Return int.
9539
9540 * keyboard.c (kbd_buffer_get_event): Set flag to prevent recording
9541 TOOLBAR_EVENT events in last_nonmenu_event.
9542
95431998-11-16 Gerd Moellmann <gerd@gnu.org>
9544
9545 * xdisp.c (redisplay_window): If windows_or_buffers_changed,
9546 window end isn't reliable, so set window_end_valid to nil.
9547 (redisplay_internal): If overlay arrow has changed, set
9548 windows_or_buffers_changed to redisplay thoroughly.
9549
9550 * dispnew.c (adjust_glyph_matrix): Invalidate window end, if
9551 necessary.
9552
9553 * xfns.c (file_dialog_cb): New.
9554 (Fx_file_dialog): New.
9555 * fileio.c (Fread_file_name): Call it.
9556
427ec082 9557 * xrdb.c (x_load_resources): Add default resoures for file
26901792
DL
9558 selection dialog.
9559
95601998-11-14 Gerd Moellmann <gerd@gnu.org>
9561
9562 * xterm.c (note_mouse_highlight): Don't highlight when popup
9563 is active.
9564
26901792
DL
9565 * keyboard.c (timer_check): Inhibit busy cursor around calls to
9566 timer-event-handler. This busy cursor tends to be anoying if
9567 fontifying stealthily.
9568
9569 * dispnew.c (direct_output_for_insert): Give up if current row
9570 contains trailing whitespace.
9571
95721998-11-13 Gerd Moellmann <gerd@gnu.org>
9573
9574 * dispextern.h (prop_idx): Add FONTIFIED_PROP_IDX.
9575
9576 * xdisp.c (handle_fontified_prop): New.
9577 (Vfontification_functions): New.
9578 (Qfontification_functions): New.
9579 (it_props): Add handle_fontified_prop.
9580
95811998-11-12 Gerd Moellmann <gerd@gnu.org>
9582
9583 * xmenu.c (xmenu_show): Use the frame's edit_widget as parent.
9584 Otherwise, under LessTif, after the popup has gone, all button
9585 press events come in for the frame's widget, and release events
9586 come in for the edit_widget.
9587 * xterm.c (XTread_socket): Remove workaround for that problem.
9588 (x_set_toolkit_scroll_bar_thumb): Add workaround for LessTif
9589 XmScrollBarSetValues.
9590 (SET_SAVED_MENU_EVENT): Give it statement form.
9591
26901792
DL
9592 * xfaces.c (display_message): If waiting_for_input, don't display
9593 the message.
9594
9595 * window.c (scroll_command): If not acting on current_buffer,
9596 make redisplay consider all windows.
9597
9598 * xfns.c (Fx_hide_tip): Return t if tooltip was open.
9599
9600 * xdisp.c (handle_glyph_prop): Set it->object for images to
9601 the object having the glyph property.
9602
9603 * xterm.c (x_draw_row_bitmaps): Don't draw if row is completely
9604 invisible.
9605
96061998-11-11 Gerd Moellmann <gerd@gnu.org>
9607
9608 * xterm.h (struct x_display_info): Add gray pixmap. * xterm.c
9609 (x_term_init): Create the gray pixmap.
9610 (x_setup_relief_color): Use it.
9611 (x_get_glyph_string_clip_rect): Draw a toolbar window over the
9612 internal border at the top of a frame.
9613 (x_init_glyph_string): Likewise.
427ec082 9614 (x_draw_glyph_string_relief): Correct right x by 1 pixel for
26901792
DL
9615 full-width lines.
9616 (XTflash): Don't flash the toolbar window.
9617
9618 * xterm.c (XTread_socket): Workaround for LessTif popup menus
9619 in case of ButtonPress events.
9620
96211998-11-10 Gerd Moellmann <gerd@gnu.org>
9622
9623 * xrdb.c (x_load_resources): Add grey background colors as
9624 defaults for menus, scroll bars, and dialogs.
9625
9626 * insdel.c (prepare_to_modify_buffer): Move setting
9627 windows_or_buffers_changed from modify_region here.
9628
9629 * xfns.c (Fx_show_tip): Inhibit redisplay.
9630 (Fx_hide_tip): Ditto.
9631 (Fx_image_header): New.
9632
96331998-11-09 Gerd Moellmann <gerd@gnu.org>
9634
9635 * dispnew.c (clear_window_matrices): Set window_end_valid to nil
9636 when clearing current window matrices.
9637
96381998-11-08 Gerd Moellmann <gerd@gnu.org>
9639
9640 * xdisp.c (handle_glyph_prop): Don't set an iterator's buffer
9641 position from a string position. Use the right end position
9642 if the property spans a whole overlay string.
9643
96441998-11-07 Gerd Moellmann <gerd@gnu.org>
9645
9646 * xmenu.c (menubar_selection_callback): Remove workaround for
9647 Lesstif not calling XmNpopdownCallback because it doesn't
9648 handle the case where users don't select any menu item.
9649
26901792
DL
9650 * insdel.c (modify_region): Set windows_or_buffers_changed.
9651
9652 * buffer.c (set_buffer_internal): Don't set
9653 windows_or_buffers_changed.
9654
26901792
DL
9655 * xmenu.c (HAVE_BOXES): Define if USE_X_TOOLKIT.
9656
26901792
DL
9657 * xmenu.c (menubar_selection_callback): Add workaround for
9658 Lesstif not calling XmNpopdownCallback.
9659
9660 * xdisp.c (eval_mode_element): New.
9661 (eval_mode_handler): New.
9662 (display_mode_element): Use eval_mode_element.
9663
9664 * xdisp.c (display_mode_element): Allow `(:eval FORM)'.
9665 Remove code looking at text props of default value.
9666
9667 * xmenu.c (HAVE_BOXES): Define if using Lucid menus.
9668
26901792
DL
96691998-11-06 Gerd Moellmann <gerd@gnu.org>
9670
427ec082 9671 * xmenu.c (single_submenu): Set button_type of menu to
26901792
DL
9672 BUTTON_TYPE_NONE.
9673 (single_submenu): Likewise for panes and menu items.
9674 (set_frame_menubar): Set button_type of menu bar to none.
9675 (xmenu_show): Likewise.
9676 (single_submenu): Set widget values selected slot.
9677 (xmenu_show): Likewise.
9678
26901792
DL
9679 * xmenu.c (push_menu_item): Add parameters `type' and
9680 `selected'. Store it in menu_items.
9681 (MENU_ITEMS_ITEM_TYPE): New.
9682 (MENU_ITEMS_ITEM_SELECTED): New.
9683 (MENU_ITEMS_ITEM_LENGTH): Increase by two.
9684
9685 * xfns.c (clear_image_cache): Get the current time, before
9686 doing anything.
9687 (cache_image): Set prev pointer of next image.
9688 (clear_image_cache): Clear current matrices if any image was
9689 freed.
9690
9691 * xterm.c (XTread_socket): Set inhibit_busy_cursor.
9692
9693 * xfns.c (x_set_cursor): New.
9694 (Fx_display_busy_cursor): New.
9695 (Fx_undisplay_busy_cursor): New.
9696
9697 * xterm.h (struct x_output): Add busy_cursor.
9698
9699 * xfns.c (Vx_busy_pointer_shape): New.
9700 (x_set_mouse_color): Create busy cursor.
9701
9702 * process.c (wait_reading_process_input): Show and hide busy
9703 cursor.
9704
9705 * keyboard.c (command_loop_1): Display busy cursor.
9706
9707 * eval.c (Fsignal): Hide busy cursor.
9708
9709 * buffer.c (set_buffer_internal): Don't set
9710 windows_or_buffers_changed.
9711
9712 * xterm.c (redo_mouse_highlight): New.
9713
97141998-11-04 Gerd Moellmann <gerd@gnu.org>
9715
26901792
DL
9716 * xfns.c (x_create_x_image_and_pixmap): Add depth parameter.
9717 (x_build_heuritic_mask): New.
9718 (lookup_image): Call it.
9719
9720 * xterm.c (note_toolbar_highlight): Always set up help_echo.
9721 (previous_help_echo): New.
9722 (XTread_socket): Generate help event with nil message when
9723 leaving a region with help-echo.
9724 (note_mouse_highlight): Handle `help-echo' over text.
9725 (XTread_socket): Dispatch VisibilityNotify, CirculateNotify,
9726 CirculateRequest.
9727 (clear_mouse_face): Don't clear if tooltip is shown.
9728 (XTread_socket): Redo mouse-highlight after tooltip is gone.
9729 Avoid SET_FRAME_GARBAGED when tooltip is mapped.
9730
9731 * keyboard.c (Vshow_help_function): New.
9732 (read_char): Use it.
9733
97341998-11-03 Gerd Moellmann <gerd@gnu.org>
9735
9736 * xfns.c (x_create_tip_frame): New.
9737 (Fx_show_tip): New.
9738 (Fx_hide_tip): New.
9739
427ec082 9740 * xterm.c (x_destroy_window): Handle case that we don't have
26901792
DL
9741 a widget.
9742
9743 * dispextern.h (struct glyph_row): Rename no_marginal_areas_p
9744 to full_width_p. Add internal_border_p.
9745
97461998-11-02 Gerd Moellmann <gerd@gnu.org>
9747
9748 * xterm.c (note_mode_line_highlight): Check the charpos of
9749 the glyph under the mouse pointer before accessing text
9750 properties at that position.
9751
97521998-11-01 Gerd Moellmann <gerd@gnu.org>
9753
9754 * xterm.c (x_draw_image_relief): Handle toolbar_button_relief.
9755
9756 * xdisp.c (auto-raise-toolbar-buttons): New.
9757 (build_desired_toolbar_string): Handle the flag.
9758 (toolbar-button-margin): New.
9759 (toolbar-button-relief): New.
9760 (build_desired_toolbar_string): Use margin and relief.
9761
9762 * xterm.c (x_set_toolkit_scroll_bar_thumb): Remove workaround
9763 for FreeBSD.
9764 (note_mode_line_highlight): New.
9765 (note_mouse_highlight): Call it.
9766
97671998-10-31 Gerd Moellmann <gerd@gnu.org>
9768
9769 * s/freebsd.h (NARROWPROTO): New.
9770
9771 * xdisp.c (display_string): New parameter face_string.
9772 (display_mode_element): When displaying a symbol with a string
9773 value, use text properties from the symbol's default value, maybe.
9774
9775 * xrdb.c (x_load_resources): Add font defaults for menus and
9776 dialogs.
9777
97781998-10-30 Gerd Moellmann <gerd@gnu.org>
9779
9780 * xfns.c (Fx_create_frame): Try 12pt Courier font first.
9781
97821998-10-29 Gerd Moellmann <gerd@gnu.org>
9783
9784 * xterm.c (x_produce_glyphs): Fix bug causing glyphs to be
9785 produced for characters with codes < 32 under certain
9786 circumstances.
9787
9788 * xdisp.c (redisplay_window): Handle values of PT in front
9789 of invisible, intangible text.
427ec082 9790 (try_window_id): Set overlay_arrow_seen to zero before
26901792
DL
9791 displaying lines.
9792 (display_mode_element): Assign to glyphs written for a mode
9793 line spec `%x' as object the Lisp format string, as position
9794 the position of the `%' in that string.
9795 (display_string): If displaying a C string, optionally get
9796 the face to use from a Lisp string.
9797
9798 * xterm.c (expose_window_tree): Include mode line height.
9799
9800 * xfns.c (Fx_create_frame): Add toolbar height to frame height.
9801
98021998-10-27 Gerd Moellmann <gerd@gnu.org>
9803
9804 * xterm.c (note_mouse_highlight): Change mouse pointer shape
9805 over mode line.
9806
98071998-10-26 Gerd Moellmann <gerd@gnu.org>
9808
9809 * window.c (coordinates_in_window): Use CURRENT_MODE_LINE_HEIGHT.
9810
9811 * xdisp.c (redisplay_window): If mode line height has changed,
9812 arrange for a thorough immediate redisplay using the correct mode
9813 line height.
9814 (window_box_height): Use CURRENT_MODE_LINE_HEIGHT.
9815
9816 * dispextern.h (MATRIX_MODE_LINE_HEIGHT): New.
9817 (CURRENT_MODE_LINE_HEIGHT): New.
9818 (DESIRED_MODE_LINE_HEIGHT): New.
9819
9820 * keyboard.c (make_lispy_event): Add string and string position
9821 info to mouse-click events.
9822 (read_key_sequence): Handle `local-map' property of mode line
9823 strings.
9824
9825 * keyboard.h (POSN_STRING): New.
9826
98271998-10-25 Gerd Moellmann <gerd@gnu.org>
9828
9829 * dispnew.c (mode_line_string): Mew.
9830
9831 * xterm.c (xt_action_hook): New.
9832 (x_create_toolkit_scroll_bar): Add action hook.
9833 (xm_scroll_callback): Implement dragging.
9834
9835 * keyboard.c (Qend_scroll): New.
9836 (scroll_bar_parts): Add it.
9837
9838 * termhooks.h (scroll_bar_end_scroll): New.
9839
9840 * xterm.c (XTread_socket): Bug fix.
9841
98421998-10-24 Gerd Moellmann <gerd@gnu.org>
9843
9844 * xdisp.c (redisplay_window): Finish scroll bars after
9845 redisplaying toolbar.
9846
9847 * keyboard.c (scroll_bar_parts): Add Qtop and Qbottom.
9848 (syms_of_keyboard): Add Qbottom.
9849
9850 * termhooks.h (scroll_bar_to_top): New.
9851 (scroll_bar_to_bottom): New.
9852
9853 * xdisp.c (redisplay_window): Always resize toolbar window if
9854 auto_resize_toolbar_p is non-zero.
9855 (auto_resize_toolbar_p): Renamed from auto_resize_toolbar.
9856 (window_box): New.
9857 (window_box_height): New.
9858 (window_box_width): New.
9859 (window_box_left): New.
9860 (window_box_right): New.
9861 (window_box_edges): New.
9862
98631998-10-23 Gerd Moellmann <gerd@gnu.org>
9864
9865 * xterm.c (x_set_toolkit_scroll_bar_thumb): Kluge for call to
9866 XawScrollbarSetThumb in FreeBSD.
9867 (x_create_toolkit_scroll_bar): Set resource "beNiceToColormap"
9868 to true.
9869
9870 * window.c (get_phys_cursor_glyph): Return null if cursor vpos
9871 is out of range.
9872
9873 * xterm.c (x_create_toolkit_scroll_bar): Set scroll_bar_pixel.
9874 (x_term_init): Initialize it.
9875
9876 * xterm.h (struct x_display_info): Add scroll_bar_pixel.
9877
9878 * xterm.c (x_create_toolkit_scroll_bar): Set LessTif scroll bar's
9879 cursor.
9880
98811998-10-22 Gerd Moellmann <gerd@gnu.org>
9882
9883 * keyboard.c (make_lispy_event): Handle scroll_bar_click
9884 differently when using toolkit scroll bars.
9885
9886 * xterm.c (x_send_scroll_bar_event): New.
9887 (x_scroll_bar_to_input_event): New.
9888 (xaw3d_scroll_callback): New.
9889 (xaw3d_jump_callback): New.
9890 (xm_scroll_callback): New.
9891 (x_toolkit_scroll_p): New.
9892 (XTread_socket): Handle scroll bar client message.
9893 (x_term_init): Initialize Xatom_Scrollbar.
9894 (x_scroll_bar_create): Set cursor.
9895 (xm_scroll_callback):
9896 (x_create_toolkit_scroll_bar): New.
9897 (x_set_toolkit_scroll_bar_thumb): New.
9898 (x_scroll_bar_create): Call x_create_toolkit_scroll_bar.
9899 (XTset_vertical_scroll_bar): Call x_set_toolkit_scroll_bar_thumb.
9900
9901 * xterm.h (struct x_display_info): Add Xatom_Scrollbar.
9902
99031998-10-21 Gerd Moellmann <gerd@gnu.org>
9904
9905 * xterm.c (x_scroll_bar_remove): Handle toolkit scroll bars.
9906 (XTread_socket): Don't handle mouse button events for scroll bars
9907 if using toolkit scroll bars.
9908 (XTset_vertical_scroll_bar): Set thumb size and position for
9909 Athena scroll bar.
9910
9911 * xterm.h (scroll_bar): Add x_widget_low and x_widget_high.
9912
9913 * xterm.c (XTread_socket): Dispatch expose event to widget
9914 if using toolkit scroll bars.
9915 (x_scroll_bar_expose): Make no-op for toolkit scroll bars.
427ec082 9916 (x_scroll_bar_create): Create and show a scroll bar widget
26901792
DL
9917 if using toolkit scroll bars.
9918 (x_scroll_bar_move): Handle tookit scroll bars.
9919
9920 * Makefile.in (LIBW): Use Xaw3d if present.
9921
9922 * configure.in (USE_TOOLKIT_SCROLL_BARS): New.
9923 (HAVE_XAW3D): New.
427ec082 9924
26901792
DL
9925 * config.in (USE_TOOLKIT_SCROLL_BARS): New.
9926 (HAVE_XAW3D): New.
9927
427ec082 9928 * xterm.c (XTset_vertical_scroll_bar): Correct position of
26901792
DL
9929 right vertical scroll bar.
9930
99311998-10-20 Gerd Moellmann <gerd@gnu.org>
9932
9933 * xfns.c (xpm_load): Support reading XPM images from string
9934 buffers containing data in the same format as an XPM file.
9935 Support `:color-symbols'.
9936 (xpm_format): Add `:data'.
9937 (xpm_keyword_index): Add XPM_DATA.
9938 (syms_of_xfns): Add `:color-symbols'.
9939 (xpm_keyword_index): Add XPM_COLOR_SYMBOLS.
9940 (xpm_valid_color_symbols_p): New.
9941 (xpm_image_p): Call it.
9942
9943 * xdisp.c (build_desired_toolbar_string): Add `:algorithm'
9944 attribute to the image if item is not enabled.
9945
9946 * xfns.c (x_laplace): New.
9947 (x_laplace_read_row): New.
9948 (x_laplace_write_row): New.
9949 (lookup_image): Handle common image attributes here. New
9950 attribute `:algorithm'.
9951
9952 * xfaces.c (clear_face_cache): Call clear_image_cache.
9953
9954 * xterm.c (x_inverted_image_mask): Removed.
9955 (x_draw_image_foreground_1): New.
9956 (x_draw_image_glyph_string): Draw images with mask to a temporary
9957 pixmap to reduce flickering.
9958
9959 * xdisp.c (redisplay_toolbar): Handle auto-resize-toolbars.
9960 (display_toolbar_line): Remove parameter `margin'.
9961
99621998-10-19 Gerd Moellmann <gerd@gnu.org>
9963
9964 * xdisp.c (toolbar_lines_needed): New.
9965 (auto-resize-toolbars): New.
9966
9967 * xfns.c (cache_image): Correct call to xrealloc.
9968
9969 * dispnew.c (Fset_toolbar_height): Removed.
9970
9971 * xdisp.c (init_xdisp): Use FRAME_TOP_MARGIN instead of
9972 FRAME_MENU_BAR_LINES.
9973
9974 * window.c (Fdelete_other_windows): Use FRAME_TOP_MARGIN
9975 instead of FRAME_MENU_BAR_LINES.
9976 (check_frame_size): Ditto.
9977
9978 * dispnew.c (adjust_frame_glyphs_initially): Use FRAME_TOP_MARGIN
9979 instead of FRAME_MENU_BAR_LINES.
9980 (adjust_frame_glyphs_for_frame_redisplay): Ditto.
9981 (build_frame_matrix): Ditto.
9982 (change_frame_size_1): Ditto.
9983
9984 * frame.h (FRAME_TOOLBAR_LINES): New.
9985 (FRAME_TOP_MARGIN): New.
9986
9987 * window.c (struct save_window_data): Add frame_toolbar_lines.
9988 (Fset_window_configuration): Handle toolbar lines.
9989 (Fcurrent_window_configuration): Save toolbar lines.
9990
9991 * frame.c (syms_of_frame_1): Add Qtoolbar_lines.
9992
9993 * xfns.c (Fx_create_frame): Add default parameter for toolbar.
9994
9995 * frame.h (struct frame): Rename top_margin to toolbar_lines.
9996
9997 * xfns.c (x_frame_parms): Add `toolbar-lines'.
9998 (x_set_toolbar_lines): New.
9999
10000 * keyboard.c (cmd_error_internal): Bug fix.
10001
10002 * xterm.c: Remove double include of syssignal.h.
10003
100041998-10-18 Gerd Moellmann <gerd@gnu.org>
10005
10006 * xterm.c (x_toolbar_item): New.
10007 (x_handle_toolbar_click): Use it.
10008 (note_toolbar_highlight): Use it.
10009
10010 * keyboard.c (syms_of_keyboard): Staticpro toolbar_item_properties
10011 and toolbar_items_vectors.
10012
10013 * xterm.c (help_echo): New.
10014 (draw_glyphs_face): Add DRAW_IMAGE_RAISED and DRAW_IMAGE_SUNKEN.
10015 (x_set_glyph_string_gc): Handle them.
10016 (x_after_update_window_line): Don't do anything in pseudo-windows.
10017 (x_produce_image_glyph): Take image margin and face relief into
10018 account.
10019 (x_get_glyph_string_clip_rect): Handle pseudo-windows.
10020 (x_draw_glyph_string_background): Optimize case when face has
10021 relief.
10022 (x_setup_relief_color): Take frame instead of glyph string
10023 parameter.
10024 (x_draw_relief_rect): New.
10025 (x_draw_glyph_string_relief): Call it.
10026 (x_draw_image_glyph_string_foreground): Handle margin and image
10027 relief.
10028 (x_draw_image_glyph_string_background): Ditto.
10029 (expose_frame): Redraw toolbar window.
10030 (expose_window): Don't draw cursor for pseudo-windows.
10031 (x_y_to_hpos_vpos): Handle pseudo-windows.
10032 (frame_to_window_pixel_xy): New.
10033 (note_mouse_highlight): Call note_toolbar_highlight.
10034 (x_handle_toolbar_click): New.
10035 (note_toolbar_highlight): New.
10036 (show_mouse_face): Change int parameter `hl' to parameter of
10037 type enum draw_glyphs_face. Handle image highlighting.
10038 (XTread_socket): Return a HELP_EVENT input event if help_echo is
10039 non-nil. Use x_handle_toolbar_click.
10040
10041 * termhooks.h (event_kind): Add HELP_EVENT, TOOLBAR_EVENT.
10042
10043 * xfns.c (image_value_type): Add IMAGE_INTEGER_VALUE,
10044 IMAGE_BOOL_VALUE.
10045 (parse_image_spec): Handle them.
10046 (image_spec_value): Additional parameter found.
427ec082 10047 (free_image): Remove image from the vector `images' of the
26901792
DL
10048 image cache.
10049 (clear_image_cache): Additional parameter force_p.
10050 (Fclear_image_cache): New.
10051 (x_find_image_file): New.
10052 (xbm_load): Handle `:margin' and `:relief'. Use
10053 x_find_image_file.
10054 (xpm_load): Likewise.
10055 (pbm_load): Likewise.
10056 (jpeg_load): Likewise.
10057 (tiff_load): Likewise.
10058 (gif_load): Likewise.
10059
10060 * keyboard.c (Qhelp_echo): New symbol.
10061 (read_char): Handle `toolbar' and `help_echo' events.
10062 (kbd_buffer_get_event): Handle HELP_ECHO input event.
10063 (make_lispy_event): Handle TOOLBAR_EVENT.
10064 (toolbar_items): New.
10065 (process_toolbar_item): New.
10066 (PROP): New.
10067 (init_toolbar_items): New.
10068 (append_toolbar_item): New.
10069 (read_char_x_menu_prompt): Handle `toolbar' event.
10070 (read_key_sequence): Ditto.
10071
10072 * xfaces.c (Qtoolbar): New.
10073 (realize_basic_faces): Realize `toolbar' face.
10074 (face_at_string_position): Remove parameter modeline_p, add
10075 base_face_id.
10076
10077 * xfns.c (xbm_load_image_from_file): Don't use Xmu function
10078 to read data.
10079
100801998-10-17 Gerd Moellmann <gerd@gnu.org>
10081
10082 * xdisp.c (init_iterator): Replace parameter modeline_p with
10083 base_face_id.
10084 (next_element_from_string): Call get_next_display_element
10085 recursively after handling text properties.
10086 (prepare_menu_bars): Call update_toolbar.
10087 (update_toolbar): New.
10088 (build_desired_toolbar_string): New.
10089 (display_toolbar_line): New.
10090 (redisplay_toolbar): New.
10091 (toolbar_item_info): New.
10092 (redisplay_window): Call redisplay_toolbar.
10093 (Fdump_toolbar_row): New. Defined if compiled with GLYPH_DEBUG.
10094
10095 * dispnew.c (clear_current_matrices): Clear matrices of toolbar
10096 window.
10097 (clear_desired_matrices): Ditto.
10098 (adjust_frame_glyphs_for_window_redisplay): Make toolbar window.
10099 (free_glyphs): Free matrices of toolbar window.
10100 (update_frame): Update toolbar window.
10101 (change_frame_size_1): Take toolbar into account.
10102 (Fset_toolbar_height): New.
10103
10104 * dispextern.h (struct it): Remove member modeline_p, add
10105 base_face_id.
10106 (struct image): Add members relief and margin.
10107 (IMAGE_ASCENT): Include margin in height.
10108
101091998-10-14 Gerd Moellmann <gerd@gnu.org>
10110
10111 * xfns.c (Fclear_image_cache): New.
10112
10113 * xfaces.c (realize_basic_faces): Realize toolbar face.
10114 (face_at_string_position): Remove parameter modeline_p, add
10115 base_face_id.
10116
10117 * dispextern.h (enum face_id): Add TOOLBAR_FACE_ID.
10118
101191998-10-13 Gerd Moellmann <gerd@gnu.org>
10120
10121 * keyboard.c (syms_of_keyboard): Intern `:help'.
10122
101231998-10-12 Gerd Moellmann <gerd@gnu.org>
10124
10125 * xterm.c (note_toolbar_highlight): New.
10126 (note_mouse_highlight): Call it.
10127
10128 * window.c (window_from_coordinates): Additional parameter toolbar_p.
10129 (coordinates_in_window): Handle toolbar window.
10130
10131 * keyboard.c (toolbar_items): New.
10132 (process_toolbar_item): New.
10133 (parse_toolbar_item): New.
10134 (init_toolbar_items): New.
10135 (append_toolbar_item): New.
10136
10137 * dispextern.h (enum toolbar_item_idx): New.
10138 (enum toolbar_item_image): New.
10139
10140 * frame.h (struct frame): Add toolbar-related members.
10141
10142 * xfaces.c (face_at_string_position): Remove assertion that
10143 current_buffer == window's buffer. This is not the case when
10144 called for the toolbar window.
10145
10146 * frame.c (make_frame): Initialize toolbar members.
10147
10148 * alloc.c (mark_object): Mark toolbar data of frames.
10149
10150 * frame.h (struct frame): Add toolbar-related members
10151 toolbar_window, desired_toolbar_items, current_toolbar_items,
10152 desired_toolbar_string, current_toolbar_string,
10153 n_desired_toolbar_items, n_current_toolbar_items. Add
10154 window_height.
10155
10156 * xterm.c (x_after_update_window_line): Don't draw bitmap
10157 areas for pseudo-windows.
10158 (expose_frame): Handle toolbar window.
10159 (expose_window): Don't do cursor stuff for pseudo-windows.
10160
10161 * xdisp.c (display_menu_bar): Correct calls to init_iterator.
10162
101631998-10-11 Gerd Moellmann <gerd@gnu.org>
10164
10165 * frame.c (make_frame): Initialize toolbar_window.
10166
10167 * alloc.c (mark_object): Make the toolbar window.
10168
10169 * dispnew.c (update_frame): Update frame's toolbar_window.
10170 (clear_current_matrices): Likewise.
10171 (clear_desired_matrices): Likewise.
10172 (adjust_frame_glyphs_for_window_redisplay): Make toolbar_window.
10173 (free_glyphs): Free the toolbar window and its matrices.
10174
10175 * frame.h (struct frame): Add toolbar_window.
10176
10177 * xterm.c (x_draw_glyph_string_relief): Handle mouse-face
10178 with relief.
10179
101801998-10-10 Gerd Moellmann <gerd@gnu.org>
10181
427ec082 10182 * dispnew.c (buffer_posn_from_coords): Don't screw up if
26901792
DL
10183 window start is not in the range BEGV..ZV.
10184
101851998-10-09 Gerd Moellmann <gerd@gnu.org>
10186
10187 * xdisp.c (try_scrolling): Experimentally handle the case
10188 that scroll-preserve-screen-position is set to `always'.
10189
10190 * window.c (Vscroll_preserve_screen_position): Replacement for
10191 scroll_preserve_screen_position.
10192
101931998-10-08 Gerd Moellmann <gerd@gnu.org>
10194
10195 * dispnew.c: Don't initialize auto structs; the HP/UX compiler
10196 doesn't like it.
10197 * xdisp.c: Ditto.
10198
10199 * xdisp.c (make_cursor_line_fully_visible): Adjust this_line_y.
10200
102011998-10-06 Gerd Moellmann <gerd@gnu.org>
10202
427ec082 10203 * minibuf.c (Fminibuffer_complete_word): Fix computation of
26901792
DL
10204 i_byte when prompts are inserted into minibuffers.
10205
10206 * dispextern.h (FRAME_INTERNAL_BORDER_WIDTH_SAFE): New.
10207 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Use it.
10208 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y): Ditto.
10209
102101998-10-04 Gerd Moellmann <gerd@gnu.org>
10211
10212 * xdisp.c (make_cursor_line_fully_visible): New.
10213 (try_scrolling): New.
10214 (redisplay_window): Move scrolling code to try_scrolling.
10215 (make_cursor_line_fully_visible): Handle case of window too small
10216 to show a single line.
10217 (redisplay_window): Case forced window start---use
10218 make_cursor_line_fully_visible.
10219 (redisplay_window): Case cursor movement via current matrix.
10220 If ending up on a partially visible line, make it fully visible
10221 instead of recentering.
10222 (try_scrolling): Additional parameter scroll_smoothly.
10223
10224 * xterm.c (x_draw_bitmap): Don't XClearArea under the pixmap.
10225
102261998-09-28 Gerd Moellmann <gerd@gnu.org>
10227
10228 * window.c (window_scroll_pixel_based): Bug fix: vpos used
10229 instead of y-position for scroll-preserved-screen-position.
10230
102311998-09-07 Gerd Moellmann <gerd@gnu.org>
10232
10233 * dispnew.c (update_frame_line): If current row is not enabled,
10234 write the whole line.
10235
102361998-09-06 Gerd Moellmann <gerd@gnu.org>
10237
10238 * lisp.h (HAVE_FACES): Removed.
10239
10240 * dispextern.h (HAVE_FACES): Removed.
10241
10242 * config.in (HAVE_FACES): Removed.
10243
10244 * dispnew.c (HAVE_FACES): Removed.
10245
10246 * xdisp.c (HAVE_FACES): Removed.
10247
10248 * xfaces.c (HAVE_FACES): Removed.
10249
102501998-09-05 Gerd Moellmann <gerd@gnu.org>
10251
10252 * xdisp.c (init_iterator): If face_change_count is non-zero,
10253 free realized faces.
10254
10255 * xfaces.c (free_all_realized_faces): Make it externally visible.
10256 (Finternal_set_lisp_face_attribute): Increment
10257 windows_or_buffers_changed.
10258
10259 * dispnew.c (direct_output_for_insert): Give up if
10260 face_change_count is non-zero.
10261 (direct_output_forward_char): Ditto.
10262
10263 * xfaces.c (face_change_count): New.
10264
102651998-09-04 Gerd Moellmann <gerd@gnu.org>
10266
10267 * xterm.c (x_draw_bar_cursor): Don't draw if cursor hpos is out
10268 of range.
10269
102701998-09-03 Gerd Moellmann <gerd@gnu.org>
10271
10272 * term.c (Ftty_display_color_p): New.
10273
102741998-09-02 Gerd Moellmann <gerd@gnu.org>
10275
10276 * xfaces.c (Ftty_defined_colors): New.
10277
10278 * xterm.c (x_produce_glyphs): Fix computation of
10279 contains_overlapping_glyphs_p for ASCII.
10280
10281 * dispnew.c (Fshow_cursor): Don't change cursor state while
10282 redisplaying.
10283 (direct_output_for_insert): If a glyph with lbearing or rbearing
10284 is among the new glyphs, set row flag contains_overlapping_glyph_p.
10285
102861998-09-01 Gerd Moellmann <gerd@gnu.org>
10287
10288 * term.c (OUTPUT_IF): Make replacement text have statement form.
10289 (OUTPUT1_IF): Ditto.
10290 (TS_italic_mode, TS_end_italic_mode): Removed.
10291 (TS_bold_mode): Removed.
10292 (TS_underscore_mode, TS_end_underscore_mode): Removed.
10293 (TS_enter_bold_mode, TS_enter_dim_mode, TS_enter_blink_mode): New.
10294 (TS_enter_reverse_mode): New.
10295 (TS_enter_underline_mode, TS_exit_underline_mode): New.
10296 (TN_magic_cookie_glitch_ul): New.
10297 (TS_enter_alt_charset_mode, TS_exit_alt_charset_mode): New.
10298 (TS_exit_attribute_mode): New.
10299 (TN_max_colors, TN_max_pairs, TS_orig_pairs): New.
10300 (TS_set_foreground, TS_set_background): New.
10301 (reset_terminal_modes): Switch colors back to default.
10302 (write_glyphs): Turn face on before writing text, turn it off
10303 afterwards.
10304 (insert_glyphs): Ditto.
10305 (term_init): Initialize new terminal capability variables.
10306 (turn_on_face): Turn a face on.
10307 (turn_off_face): Turn a face off.
10308
10309 * lisp.h (MAKE_GLYPH): Remove test for frame type.
10310 (GLYPH_CHAR): Ditto.
10311 (GLYPH_FACE): Ditto.
10312
10313 * xfaces.c (Vface_tty_color_alist): New.
10314 (face-register-tty-color): New.
10315 (face-clear-tty-colors): New.
10316
10317 * dispextern.h (FACE_TTY_DEFAULT_COLOR): New.
10318 (struct it): Remove member faces_p since we now always have faces.
10319
103201998-08-31 Gerd Moellmann <gerd@gnu.org>
10321
10322 * dispextern.h (struct face): Add tty appearance flags.
10323
10324 * xdisp.c (init_iterator): Always handle faces.
10325 (extend_face_to_end_of_line): Handle tty frames.
10326
10327 * dispnew.c (clear_glyph_matrix): Allow a null matrix to be
10328 passed in.
10329
103301998-08-30 Gerd Moellmann <gerd@gnu.org>
10331
10332 * xfaces.c (realize_default_face): Use empty strings to indicate
10333 that the face should use the default foreground/background
427ec082 10334 color of the terminal. Fill font-related attributes with
26901792
DL
10335 appropriate values for tty frames.
10336
10337 * emacs.c (main): Call syms_of_xfaces before init_window_once.
10338
10339 * xfaces.c (realize_default_face): If face `default' is not
10340 yet known, create it.
10341
10342 * frame.c (make_terminal_frame): Call init_frame_faces
10343 unconditionally.
10344
10345 * xfaces.c (init_frame_faces): Make it work for tty frames.
10346 (free_frame_faces): Ditto.
10347 (clear_face_cache): Ditto.
10348 (recompute_basic_faces): Ditto.
10349 (Fframe_face_alist): Ditto.
10350 (free_realized_face): Ditto.
10351 (prepare_face_for_display): Ditto.
10352 (clear_face_gcs): Ditto.
10353 (lookup_face): Ditto.
10354 (smaller_face): Ditto.
10355 (realize_default_face): Ditto.
10356 (realize_face): Ditto.
10357 (realize_face): Dispatch to functions depending on the frame type.
10358 (realize_x_face): X way of realizing faces.
10359 (realize_tty_face): TTY way of realizing faces.
10360
103611998-08-29 Gerd Moellmann <gerd@gnu.org>
10362
10363 * xfaces.c (realize_face): Remove parameter unibyte_registry,
10364 compute it instead.
10365 (lookup_face): Remove local variable unibyte_registry.
10366
103671998-08-22 Gerd Moellmann <gerd@gnu.org>
10368
10369 * xterm.c (x_draw_glyph_string_relief): Draw top and bottom lines
10370 1 pixel longer.
10371
427ec082 10372 * xdisp.c (face_before_or_after_it_pos): Fix computation
26901792
DL
10373 of face in buffer.
10374
10375 * editfns.c (make_buffer_string_both): If prompt in buffer,
10376 prevent start > end.
10377
10378 * indent.c (Fvertical_motion): Set current_buffer to window's
10379 buffer if it isn't already.
10380
103811998-08-21 Gerd Moellmann <gerd@gnu.org>
10382
10383 * dispextern.h (GLYPH_DEBUG): Use default 0.
10384
10385 * xdisp.c (it_props): New member `smaller'.
10386 (init_iterator): Initialize it.
10387 (Qsmaller): New.
10388 (push_it): Save value of `smaller' value on the stack.
10389 (pop_it): Restore `smaller' from the stack.
10390 (handle_smaller_prop): New.
10391 (handle_face_prop): Use `smaller' text property to select a
10392 suitable face.
10393
10394 * dispextern.h (SMALLER_PROP_IDX): New.
10395 (struct it): Add member `smaller'.
10396
10397 * xfaces.c (smaller_face): New.
10398
10399 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add bitmap area widths.
10400
10401 * dispnew.c (allocate_matrices_for_window_redisplay): Compute
10402 total pixel width of window differently.
10403
10404 * xdisp.c (init_iterator): Compute width of mode line differently.
10405
10406 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract width
10407 of bitmap areas.
10408
10409 * window.c (Fsplit_window): Include width of bitmap areas in
10410 window width.
10411 (window_internal_width): Subtract width of bitmap areas from
10412 total width.
10413
104141998-08-18 Gerd Moellmann <gerd@gnu.org>
10415
10416 * xdisp.c: Functions reordered for better readability.
10417
10418 * dispnew.c (update_text_area): Handle glyphs with arbitrary
10419 lbearing.
10420 (update_window_tree): Parameter no_scrolling_p removed.
10421 (update_single_window): Ditto.
10422
10423 * xterm.c (x_get_char_font_and_encoding): Renamed to
10424 x_get_char_face_and_encoding.
10425
10426 * dispnew.c (update_text_area): Don't call get_glyph_overhangs
10427 if end of current row reached.
10428
10429 * xterm.c (x_get_glyph_face_and_encoding): New.
10430 (x_get_glyph_overhangs): Call it.
10431
10432 * xdisp.c (Qshow_trailing_whitespace): New.
10433 (Qtrailing_whitespace): New.
10434 (enum prop_handled): New.
10435 (struct props, it_props): New.
10436 (next_overlay_change): New. Works like Fnext_overlay_change
10437 but doesn't use xmalloc.
10438 (handle_stop): Restructured.
10439 (face_before_or_after_it_pos): Case iteration over a string: fix
10440 handling of face before current position.
10441
104421998-08-16 Gerd Moellmann <gerd@gnu.org>
10443
10444 * dispnew.c (adjust_glyph_matrix): Don't optimize matrix
10445 reallocation matrix if fonts_changed_p.
10446 (update_text_area): Handle glyphs with lbearing.
10447
104481998-08-14 Gerd Moellmann <gerd@gnu.org>
10449
10450 * xdisp.c (struct props): New.
10451 (it_props): New.
10452 (compute_prop_info): New.
10453 (handle_stop): New.
10454
10455 * textprop.c (validate_interval_range): Make it externally
10456 visible.
10457
10458 * dispnew.c (direct_output_for_insert): Remove calls
10459 to compute_stop_pos.
10460
10461 * dispextern.h (struct it): Remove check_charpos,
10462 next_overlay_pos. Add what_changes.
10463
104641998-08-10 Gerd Moellmann <gerd@gnu.org>
10465
10466 * xterm.c (note_mouse_highlight): Set BEGV_BYTE, ZV_BYTE.
10467
10468 * xfaces.c (Vx_unibyte_registry_and_encoding): Removed. Use
10469 face_default_registry instead.
10470
10471 * syntax.c (scan_sexps_forward): Set up syntax table before
10472 jumping to initial state label.
10473
104741998-08-09 Gerd Moellmann <gerd@gnu.org>
10475
10476 * dispnew.c (check_matrix_invariants): Handle case of row end pos
10477 >= ZV specially.
10478
104791998-08-08 Gerd Moellmann <gerd@gnu.org>
10480
10481 * xdisp.c (redisplay_window): Case cursor movement---if cursor
10482 ends up in partially visible row, try to scroll. Case forced
10483 window start---handle windows not tall enough to show a single
10484 line.
10485
10486 * window.h (struct window): Member dy renamed vscroll.
10487
10488 * xterm.c (x_list_fonts): Re-activate suppression of scalable
10489 fonts.
10490 (x_draw_stretch_glyph_string): Set clipping if using GC that
10491 hasn't set it yet.
10492
10493 * xdisp.c (redisplay_window): Case forced window start -
10494 don't let cursor end on partially visible row. Use desired
10495 matrix to find a suitable PT if it doesn't appear.
10496 (decode_mode_spec): Merged with 20.2.97.
10497 (try_window_reusing_current_matrix): Give up if old or
10498 new display is vscrolled.
10499 (redisplay_window): Reset vscrolling if forced window start,
10500 or if recentering.
10501
105021998-08-06 Gerd Moellmann <gerd@gnu.org>
10503
10504 * xfaces.c (realize_default_face): Use the fontset name instead of
10505 the alias for the family attribute of the default face because we
10506 can't easily determine a good alias from fontset-alias-alist.
10507 (face_fontset): Use Fquery_fontset to find the fontset.
10508 (font_list): Additional pattern parameter.
10509 (try_font_list): Ditto.
10510 (set_lface_from_font_name): Set face family from font foundry
10511 and family.
10512 (font_list): If family contains a hyphen, build pattern differently.
10513
105141998-08-05 Gerd Moellmann <gerd@gnu.org>
10515
10516 * xfaces.c (free_realized_faces): Increment windows_or_buffers_-
10517 changed instead of setting the frame garbaged.
10518
10519 * xfaces.c (lface_equal_p): Don't assume equal Lisp types for
10520 all attribute values. This is wrong if values are unspecified,
10521 i.e. nil.
10522
10523 * xdisp.c (try_window_id): Give up if window start changed.
10524
10525 * xfaces.c (make_realized_face): Store registry as Lisp object.
10526 (load_face_font_or_fontset): Compute registry of a face
10527 differently. Make it `eq' to Vx_unibyte_registry_and_encoding if
10528 possible.
10529
10530 * dispextern.h (FACE_SUITABLE_FOR_CHARSET_P): Compare registries
10531 differently.
10532
10533 * alloc.c (mark_face_cache): Mark the registry member of faces.
10534
10535 * dispextern.h (struct face): Make registry a Lisp string.
10536
105371998-08-04 Gerd Moellmann <gerd@gnu.org>
10538
10539 * xterm.c (x_get_char_font_and_encoding): Additional parameter
10540 multibyte_p. Handle unibyte text.
10541 (x_append_glyph): Set the multibyte_p flag of glyphs.
10542 (x_produce_image_glyph): Ditto.
10543 (x_append_stretch_glyph): Ditto.
10544 (x_produce_glyphs): Handle unibyte text like ASCII.
10545
10546 * xdisp.c (push_it): Save the multibyte flag of an iterator on the
10547 stack.
10548 (pop_it): Restore it.
10549 (face_before_or_after_it_pos): Handle the case that the string or
10550 buffer is unibyte.
10551 (get_overlay_strings): Set the multibyte flag of the iterator if
10552 the new overlay string is multibyte.
10553 (get_glyph_property): Likewise.
10554 (get_next_display_element): Don't check for charset changes in
10555 unibyte text.
10556 (append_space): Compute face differently for unibyte text.
10557 (extend_face_to_end_of_line): Don't return quickly if face has
10558 stipple.
10559
10560 * xfaces.c (load_face_font_or_fontset): Store registry and
10561 encoding of the font in the registry member of the face.
10562 (make_realized_face): Additional parameter `registry'.
10563 (free_realized_face): Free the registry of a realized face.
10564 (face_suitable_for_charset_p): Function form of the macro
10565 with the same name in uppercase.
10566 (lookup_face): Use Vx_unibyte_registry_and_encoding if charset < 0.
10567 (choose_face_font): New parameter unibyte_registry.
10568 (choose_face_fontset_font): Ditto.
10569 (realize_default_face): Remember the registry and encoding of
10570 the specified frame font in Vx_unibyte_registry_and_encoding.
10571 (face_at_buffer_position): Handle unibyte.
10572 (face_at_string_position): Likewise.
427ec082 10573 (realize_face): New parameter unibyte_registry.
26901792
DL
10574 (compute_char_face): Handle the unibyte case.
10575
10576 * dispextern.h (struct glyph): Add bit multibyte_p.
10577 (struct face): New member registry holding the registry and
10578 encoding of the X font of the face.
10579 (FACE_UNIBYTE_P): Value is non-zero if face is for unibye text.
10580 (enum face_id): Add BASIC_FACE_ID_SENTINEL.
10581 (FACE_SUITABLE_FOR_CHARSET_P): Handle charset < 0 meansing unibyte
10582 text.
10583 (struct iterator_stack_entry): Add multibyte_p.
10584
10585 * xdisp.c (string_pos): Use string_char_to_byte.
10586 (char_charset): Removed.
10587
105881998-08-03 Gerd Moellmann <gerd@gnu.org>
10589
10590 * xterm.c (x_draw_image_glyph_string_foreground): Draw a
10591 rectangle for a block cursor over an image without a mask.
10592 (x_stretch_block_cursor): Added. Non-zero means don't draw
10593 a block cursor over a stretch as wide as that stretch.
10594 (x_draw_stretch_glyph_string): Use it.
10595 (x_draw_hollow_cursor): Ditto.
10596
10597 * minibuf.c (read_minibuf): Use minibuf_prompt instead of prompt.
10598 (read_minibuf): Add front-sticky text property for prompt.
10599
10600 * xdisp.c (char_charset): Return charset of a character,
10601 depending on whether or not multi-byte characters are enabled.
10602
10603 * xfaces.c (Fset_face_charset_registry): Removed.
10604 (x_charset_registry): Determine registry from charset plist.
10605
106061998-08-02 Gerd Moellmann <gerd@gnu.org>
10607
10608 * xdisp.c (get_next_display_element): Don't check for charset
10609 changes if multi-byte characters are not enabled.
427ec082 10610
26901792 10611 * xdisp.c (echo_area_display): Use the flush function from the
427ec082 10612 redisplay interface.
26901792
DL
10613 * keyboard.c (detect_input_pending_run_timers): Likewise.
10614
10615 * dispextern.h (produce_*glyphs_hook): Removed.
10616 * term.c (produce_*glyphs): Ditto.
10617 (cursor_to): Remove pixel position parameters.
10618
10619 * dispnew.c: Remove hooks for window-based redisplay, introduce
10620 a redisplay interface structure.
10621
10622 * xterm.c (x_per_char_metric): Return default char metrics if per
10623 char metric exists but contains a zero width. Adobe Courier seems
10624 to contain such characters.
10625
10626 * xdisp.c (compute_line_metrics): Compute the width of rows
10627 without stopping at glyphs with zero width.
10628
106291998-08-01 Gerd Moellmann <gerd@gnu.org>
10630
10631 * xdisp.c (display_mode_line): If nothing was displayed at all,
10632 display a space.
10633 (hscroll_window_tree): Don't subtract 1 from target point if equal
10634 to ZV and window is not the selected window.
10635
10636 * dispnew.c (check_matrix_invariants): Remove check for window
10637 start at BEGV or after newline. This happens in rare cases
10638 intentionally.
10639
106401998-07-31 Gerd Moellmann <gerd@gnu.org>
10641
10642 * xfaces.c (x_charset_registry): Use STRING_BYTES.
10643 (syms_of_xfaces): Add Vface_default_registry.
10644 (x_charset_registry): Use it.
10645
10646 * xdisp.c (run_window_scroll_functions): Run window scroll functions.
10647 (redisplay_window): Use it.
10648
10649 * dispnew.c (update_text_area): Handle lbearing of deleted text
10650 by backing up one character.
10651
106521998-07-30 Gerd Moellmann <gerd@gnu.org>
10653
427ec082 10654 * dispnew.c (adjust_glyph_matrix): Use a different check to
26901792
DL
10655 decide to do nothing.
10656
10657 * xfaces.c (face_at_string_position): Additional parameter
10658 mode_line_p. If non-zero, merge with the mode line face
10659 instead of the default face.
10660 * dispextern.h (struct it): Add mode_line_p.
10661 * xdisp.c (init_iterator): Set it.
10662 (compute_face_in_string): Use it.
10663 (face_before_or_after_it_pos): Handle strings.
10664 (get_next_display_element): Don't look for relief end in C strings.
10665 (next_element_from_string): Deliver string position instead of
10666 buffer position.
10667
10668 * xterm.c (x_flush): Flush X output buffer.
10669 (XTflash): Use it.
10670
10671 * xfaces.c (lface_from_face_name): Renamed from lface_from_symbol.
10672 Allow strings as face names.
10673
10674 * xfns.c (forall_images_in_image_cache): Check that frame is
10675 alive.
10676
10677 * widget.c (EmacsFrameDestroy): Remove call to free_frame_faces;
10678 it's also called from x_destroy_window. Since this function is
10679 called from X, freeing stuff allocated with xmalloc is dangerous
10680 here, anyway.
10681
10682 * xfaces.c (free_realized_faces): Don't clear current matrices
10683 of a frame being destroyed.
10684
427ec082 10685 * frame.c (make_frame): Call set_window_buffer instead of
26901792
DL
10686 Fset_window_buffer.
10687
10688 * window.c (set_window_buffer): Extracted from Fset_window_buffer,
10689 with an additional argument specifying whether or not hooks may
10690 be called.
10691 (Fset_window_buffer): Call it.
10692
10693 * dispnew.c (clear_desired_matrices): Check that frame has
10694 a valid root window before clearing matrices in the window tree.
10695 (clear_current_matrices): Ditto.
10696 (clear_window_matrices): If GLYPH_DEBUG, check that hchild and
10697 vchild are valid windows if not nil.
10698
10699 * xfaces.c (merge_face_vector_with_property): Allow :reverse-video
10700 for :inverse-video.
10701 (Finternal_set_lisp_face_attribute): Ditto.
10702 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
10703 (Finternal_get_lisp_face_attribute): Ditto.
10704 (Finternal_lisp_face_attribute_values): Ditto.
10705 (syms_of_xfaces): Define the symbol `:reverse-video'.
10706
10707 * xdisp.c (get_glyph_property): Renamed from
10708 fill_iterator_from_glyph_property.
10709 (next_element_from_buffer): Handle case that no `glyph' property
10710 was found correctly.
10711 (display_line): Extend face to end of line only if we have faces.
10712
107131998-07-29 Gerd Moellmann <gerd@gnu.org>
10714
10715 * dispnew.c (Fshow_cursor): Renamed from blink_cursor. Take
10716 additional window argument.
10717
10718 * xdisp.c (reseat_at_previous_visible_line_start): Renamed from
10719 set_iterator_to_previous_visible_line_start.
10720 (reseat_at_next_visible_line_start): Likewise.
10721 (compute_stop_pos): Renamed from set_iterator_stop_pos.
10722 (face_before_or_after_it_pos): Renamed from get_face_at_it_pos.
10723 (compute_face_in_buffer): Renamed from
10724 compute_face_at_iterator_position.
10725 (compute_face_in_string): Renamed from
10726 compute_face_at_iterator_string_position.
10727 (get_space_width): Renamed from get_iterator_space_width.
10728 (next_overlay_string): Renamed from
10729 set_iterator_to_next_overlay_string.
10730 (get_overlay_strings): Renamed from
10731 get_overlay_strings_at_iterator_position.
10732 (restore_overlay_strings): Renamed from
10733 setup_overlay_strings_from_glyph_pos.
10734 (restore_dpvec): Renamed from setup_iterator_dpvec_from_glyph_pos.
10735 (init_from_display_pos): Renamed from init_iterator_from_glyph_pos.
10736 (init_to_row_start): Renamed from init_iterator_to_row_start.
10737 (init_to_row_end): Formerly init_iterator_to_next_row_start.
10738
10739 * xterm.c: Merge with 20.2.97.
10740 (x_produce_glyphs): Use x_append_stretch_glyph for tabs.
10741
10742 * dispextern.h (struct glyph): Replace text_pos position with
10743 simple charpos.
10744
10745 * xdisp.c (this_line_start_pos): Use struct text_pos.
10746 (this_line_end_pos): Renamed from .*endpos; use struct text_pos.
10747 (enum move_it_result): Renamed from move_iterator_result.
10748 (string_pos_nchars_ahead): Compute text_pos in a string from a
10749 known text_pos plus a character delta.
10750 (string_pos): Compute text_pos in string from charpos.
10751 (c_string_pos): Likewise for a C string.
10752 (number_of_chars): Return number of characters in a possibly
10753 multi-byte C string.
10754 (check_it): Renamed from check_iterator. Check that charpos and
10755 bytepos are in sync.
10756 (push_it): Renamed from save_iterator_settings.
10757 (pop_it): Renamed from restore_iterator_settings.
10758 (move_it_.*): Renamed from move_iterator_.*.
10759 (charset_at_position): Take charpos/bytepos into account.
10760 (back_to_previous_line_start): Set iterator to previous line start.
10761 (forward_to_next_line_start): Set iterator to next line start.
427ec082 10762 (back_to_previous_visible_line_start): Renamed from
26901792
DL
10763 move_iterator_previous_visible_line_start.
10764 (set_iterator_to_next_visible_line_start): Handle charpos/bytepos.
10765 (get_face_at_it_pos): Renamed from get_face_from_cursor_pos.
10766 Handle charpos/bytepos.
10767 (compute_face_at_iterator_position): Handle charpos/bytepos.
10768 (compute_face_at_iterator_string_position): Likewise.
10769 (get_iterator_space_width): Likewise.
10770 (load_overlay_strings): Likewise.
10771 (get_overlay_strings_at_iterator_position): Likewise.
10772 (reseat_iterator): Take a text_pos position argument.
10773 (setup_iterator_overlay_strings_from_glyph_pos): Handle charpos/
10774 bytepos.
10775 (init_iterator): Take additional bytepos parameter.
10776 (reseat_iterator_to_string): Handle charpos/bytepos.
10777 (start_display): Take a text_pos parameter. Handle charpos/bytepos.
10778 (next_element_from_string): Handle charpos/bytepos.
10779 (next_element_from_c_string): Likewise.
10780 (fill_iterator_from_glyph_property): Likewise.
10781 (next_element_from_buffer): Likewise.
10782 (set_iterator_to_next): Increment charpos and bytepos of an iterator.
10783 (move_iterator_in_display_line_to): Handle charpos/bytepos.
10784 (move_it_to): Likewise.
10785 (move_it_vertically_backward): Likewise.
10786 (move_it_vertically): Likewise.
10787 (move_it_by_lines): Likewise.
10788 (hscroll_window_tree): Likewise.
10789 (redisplay_internal): Likewise.
10790 (set_cursor_from_row): Likewise.
10791 (redisplay_window): Likewise.
10792 (try_window): Take a text_pos parameter. Handle charpos/bytepos.
10793 (try_window_reusing_current_matrix): Handle charpos/bytepos.
10794 (get_first_unchanged_at_end_row): Compute and return delta_bytes.
10795 (try_window_id): Handle charpos/bytepos.
10796 (Ftrace_redisplay_toggle): Return Qnil.
10797 (get_overlay_arrow_glyph_row): Handle charpos/bytepos.
10798 (insert_left_trunc_glyphs): Likewise.
10799
10800 * dispnew.c: `Merge' with 20.2.97 (it's really too different to
10801 do a real merge).
10802 (increment_glyph_matrix_buffer_positions): Add parameter delta_bytes.
10803 (increment_glyph_row_buffer_positions): Ditto.
10804 (copy_glyph_row_contents): Ditto.
10805 (check_matrix_invariants): Add additional checks for charpos/
10806 bytepos consistency.
10807 (direct_output_for_insert): Changed for charpos/bytepos.
427ec082 10808 (buffer_posn_from_coords): Likewise. Put code dealing with
26901792
DL
10809 `direction-reversed' in #if 0.
10810
10811 * xterm.h: Merge with 20.2.97.
427ec082 10812
26901792
DL
10813 * frame.h: Merge with 20.2.97.
10814
10815 * window.h: Merge with 20.2.97. Add window_end_bytepos.
10816
10817 * dispextern.h (MATRIX_ROW_START_CHARPOS): Get charpos of a row
10818 start.
10819 (MATRIX_ROW_START_BYTEPOS): Likewise for the byte position.
10820 (MATRIX_ROW_END_CHARPOS): Likewise for the row end.
10821 (MATRIX_ROW_END_BYTEPOS): Likewise for the row end byte position.
10822 (struct it): Various members renamed from .*pos to .*charpos.
10823 (IT_CHARPOS): Access current buffer character position of an
10824 iterator.
10825 (IT_BYTEPOS): Access current buffer byte position of an iterator.
10826 (IT_STRING_CHARPOS): Access current string character position of
10827 an iterator.
10828 (IT_STRING_BYTEPOS): Access current string byte position of
10829 an iterator.
10830 (globally): Add function prototypes from 20.2.97.
10831
10832 * everywhere: Use P_ instead of PROTO for function prototypes
10833 because everyone else seems to use P_.
10834
10835 * dispextern.h (struct text_pos): Structure describing a charpos/
10836 bytepos position in text.
10837 (BYTEPOS): Access the byte position part of a text_pos.
10838 (CHARPOS): Likewise for the character position.
10839 (SET_TEXT_POS): Set a text_pos from a character and byte position.
10840 (INC_TEXT_POS, DEC_TEXT_POS): Increment/decrement a text position.
10841 (SET_TEXT_POS_FROM_MARKER): Set a text_pos from a marker.
10842 (SET_MARKER_FROM_TEXT_POS): Set a marker from a text_pos.
10843 (TEXT_POS_EQUAL_P): Compare two text_pos structures for equality.
10844 (struct display_pos): Renamed from glyph_pos. Use struct text_pos
10845 for buffer and string positions.
10846 (struct glyph): Use text_pos.
10847 (struct it): Renamed from display_iterator. Use text_pos.
10848
108491998-07-23 Gerd Moellmann <gerd@gnu.org>
10850
10851 * xfns.c (x_kill_gs_process): Get image colors from XImage of a
10852 pixmap.
10853
108541998-07-21 Gerd Moellmann <gerd@gnu.org>
10855
10856 * dispextern.h (struct glyph_row): New flag indicate_zv_line_p.
10857 * xterm.c (x_draw_row_bitmaps): Use it.
10858 * dispnew.c (row_equal_p): Ditto.
10859 (update_window_line): Ditto.
10860
10861 * xfns.c (prepare_image_for_display): Don't set loading_failed_p
10862 flag of images.
10863
10864 * dispextern.h (struct image): Removed member loading_failed_p.
10865 It's probably better to have the chance to try to load an image
10866 again.
10867
108681998-07-20 Gerd Moellmann <gerd@gnu.org>
10869
10870 * xterm.c (x_draw_bitmap): Draw bitmap for empty lines ending
10871 at ZV if `indicate-zv-lines' is non-nil.
10872 (x_draw_row_bitmaps): Compute bitmap for `indicate-zv-lines'.
10873
10874 * dispnew.c (row_equal_p): Compare displays_text_p and
10875 ends_at_zv_p flags of rows.
10876 (update_window_line): Ditto.
10877
10878 * buffer.h (struct buffer): New member indicate_zv_lines.
10879
10880 * buffer.c (init_buffer_once): Add default for `indicate-zv-lines'.
10881 (init_buffer_once): New variable `default-indicate-zv-lines'.
10882 (syms_of_buffer): New buffer-local varianle `indicate-zv-lines'.
10883
10884 * xdisp.c (redisplay_window): Don't try moving the cursor
10885 if current glyph row w->last_cursor.vpos isn't enabled.
10886
10887 * xterm.c (bitmap_type): Add ZV_LINE_BITMAP.
10888
10889 * window.c (Fset_window_vscroll): Allow only negative scroll
10890 values. Others don't seem to make sense, and this way it's easy
10891 to restore a vscroll of zero.
10892
10893 * xterm.c (x_inverted_image_mask): Check that pixmap could be
10894 allocated.
10895 (x_draw_image_glyph_string_background): Don't clip if pixmap
10896 could not be created.
10897
10898 * xfns.c (xbm_load_image_from_file): Check that pixmap could
10899 be created.
10900 (xbm_load): Ditto.
10901 (gs_load): Ditto.
10902
10903 * xterm.c (x_get_glyph_overhangs): Take image and stretch
10904 glyphs into account.
10905
10906 * xfaces.c (realize_default_face): Don't set font family of
10907 the default face from the fontset alias name for `fontset-startup'.
10908
10909 * xfns.c (gs_load): Pass frame's pixel foreground and background
10910 color to the Lisp loader.
10911
109121998-07-19 Gerd Moellmann <gerd@gnu.org>
10913
10914 * xfns.c (tiff_image_p, tiff_load): Support TIFF images via
10915 libtiff34.
10916
10917 * configure.in (--with-tiff, HAVE_TIFF): Added.
10918
10919 * config.in (HAVE_TIFF): Added.
10920
10921 * Makefile.in (LIBTIFF): Added.
10922
10923 * xfns.c (jpeg_image_p, jpeg_load): Support JPEG images.
10924
10925 * Makefile.in (LIBJPEG): Added.
10926
10927 * xfns.c (resource_types): Enumerators renamed to RES_TYPE_NUMBER,
10928 RES_TYPE_BOOLEAN etc. because of conflict of `boolean' with
10929 jpeglib.h.
10930
427ec082 10931 * configure.in (HAVE_JPEG, --with-jpeg): Added. On systems
26901792
DL
10932 where the library is installed in /usr/local/lib, e.g. FreeBSD,
10933 configure must be run with `--x-includes=/usr/X11R6/include:
10934 /usr/local/include --x-libraries=/usr/X11R6/lib:/usr/local/lib'.
10935
109361998-07-18 Gerd Moellmann <gerd@gnu.org>
10937
10938 * config.in (HAVE_JPEG): Added.
10939
10940 * xfns.c (ct_init): Initialize color table used to map RGB colors
10941 from images to X pixel colors.
10942 (ct_free): Free color table.
10943 (ct_lookup): Look an RGB color up.
10944 (ct_allocated_colors): Get vector of allocated colors.
427ec082 10945 (pbm_image_p): Test if image specification is a valid PPM
26901792
DL
10946 image specification.
10947 (pbm_scan_number): Scan a decimal ASCII number from a file.
10948 (pbm_load): Load a PPM image.
10949
10950 * window.c (Fset_window_vscroll): Adjust glyph matrix if
10951 necessary. Take canonical character units as parameter.
10952 (Fwindow_vscroll): Return canonical character units.
10953
10954 * dispnew.c (allocate_matrices_for_window_redisplay): Add negative
10955 w->dy to display height for which glyph rows must be allocated.
10956
109571998-07-17 Gerd Moellmann <gerd@gnu.org>
10958
10959 * xfaces.c (face_at_string_position): Merge in region face
10960 so that it won't overwrite the font in the region.
10961 (face_at_buffer_position): Ditto.
10962 (realize_basic_faces): Don't realize region face.
10963
10964 * dispextern.h (enum face_id): REGION_FACE_ID removed.
10965
10966 * xterm.c (x_set_glyph_string_background_width): Don't let
10967 cursor face extend to end of line.
10968
10969 * xdisp.c (append_space): If adding space of default face,
10970 make sure glyph ist produced with right face.
10971
10972 * xterm.c (x_clear_glyph_string_rect): Draw a rectangle in the
10973 background color of a glyph string.
10974 (x_draw_glyph_string_background): Call it.
10975 (x_draw_glyph_string_bg_rect): Ditto.
10976 (x_draw_stretch_glyph_string): Ditto.
10977
109781998-07-15 Gerd Moellmann <gerd@gnu.org>
10979
10980 * xdisp.c (init_iterator): Initialize it->current_y to the
10981 window's vscroll w->dy.
10982
10983 * window.c (Fwindow_vscroll): Return number of pixels window
10984 is vscrolled smoothly.
10985 (Fset_window_vscroll): Set the number.
10986
10987 * xdisp.c (move_iterator_to): Recognize case MOVE_TO_POS and
10988 to_pos in truncated part of a line.
10989
109901998-07-14 Gerd Moellmann <gerd@gnu.org>
10991
10992 * xdisp.c (move_iterator_in_display_line_to): If very first glyph
10993 doesn't fit on the line, truncate it, despite truncate_lines nil.
10994 (display_line): Ditto.
10995
10996 * xfns.c: Experimental support for Ghostscript images.
10997
10998 * xterm.c (x_term_init): Initialize new atoms DONE and PAGE.
10999 (XTread_socket): React on events from Ghostscript.
11000 (expose_frame): If width or height are zero, redraw entire frame.
11001 (XTread_socket): Call expose_frame after receiving event from
11002 Ghostscript.
11003
11004 * xterm.h (struct x_display_info): Add atoms DONE and PAGE
11005 for Ghostscript support.
11006
11007 * xdisp.c (redisplay_internal): Return quickly if called
11008 recursively.
11009
11010 * alloc.c (NSTATICS): Increased to 1024.
11011
110121998-07-08 Gerd Moellmann <gerd@gnu.org>
11013
11014 * xterm.c (x_append_stretch_glyph): Append a stretch glyph to an
11015 iterator's glyph row.
11016 (x_produce_stretch_glyph): Call it.
11017 (x_produce_glyphs): Handle `space-width' property; call
11018 x_append_stretch_glyph.
11019
11020 * xdisp.c (syms_of_xdisp): Add symbol `space-width' used as a text
11021 property.
11022 (get_iterator_space_width): Determine value of `space-width'
11023 property at iterator's position.
11024 (reseat_iterator): Call it.
11025 (next_element_from_string): Ditto.
11026 (next_element_from_buffer): Ditto.
11027 (init_iterator): Initialize space_width of iterator.
11028 (redisplay_internal): Don't goto end_of_redisplay if PT hasn't
11029 moved, but cursor blinks.
11030 (redisplay_internal): Set w->last_cursor_off_p after update.
11031
11032 * dispextern.h (enum iterator_prop_idx): Add SPACE_WIDTH_PROP_IDX.
11033 (struct display_iterator): Add new member space_width.
11034
11035 * window.h (struct window): Add last_cursor_off_p.
11036
110371998-07-07 Gerd Moellmann <gerd@gnu.org>
11038
11039 * Saved.
11040
11041 * window.c (Fpos_visible_in_window_p): Case window not up to
11042 date---return nil if iterator hasn't reached position.
11043
110441998-07-06 Gerd Moellmann <gerd@gnu.org>
11045
11046 * xdisp.c (text_outside_line_unchanged_p): Fix case that
11047 overlays have changed.
11048 (redisplay_window): Case cursor movement. Don't try it if
11049 last_cursor.vpos is out of range.
11050
11051 * xdisp.c (set_cursor_from_row): Set this_line_.* variables. This
11052 way, the display optimization for the line containing the cursor
11053 is used more frequently, esp. when we have a blinking cursor.
11054 (display_line): Don't set this_line_.* variables.
11055
11056 * xterm.c (x_redraw_cursor): Removed.
11057 (x_display_and_set_cursor): Set cursor type depending on
11058 cursor_off_p flag of window.
11059
11060 * dispnew.c (redraw_cursor_hook): Removed.
11061 (Fblink_cursor): Additional parameter on_p to set the cursor_off_p
11062 member of the selected window.
11063
11064 * xfaces.c (Fface_font): Added for compatibility with 20.2.
11065
11066 * xterm.c (x_y_to_hpos_vpos): Return null if not over text.
11067 Return glyph area under x/y.
11068 (note_mouse_highlight): Use x_y_to_hpos_vpos in its new form.
11069
11070 * keyboard.c (detect_input_pending_run_timers): Call gobble_input
11071 after redisplaying.
11072
110731998-07-05 Gerd Moellmann <gerd@gnu.org>
11074
11075 * xdisp.c (text_outside_line_unchanged_p): Test if changes
11076 are all outside of a line of text.
11077 (redisplay_internal): Use it.
11078
110791998-06-30 Gerd Moellmann <gerd@gnu.org>
11080
11081 * xdisp.c (next_element_from_buffer): After skipping over
11082 invisible text, look for the `glyph' property.
11083 (set_iterator_stop_pos): Ignore check positions in front
11084 of an iterator's current position.
11085
11086 * xterm.c (show_mouse_face): Don't act on rows that don't exist
11087 anymore or which are marked as not having valid contents.
11088
11089 * xfaces.c (Finternal_set_lisp_face_attribute): Don't free
11090 realized faces if new attribute value is equal to old value.
11091
110921998-06-29 Gerd Moellmann <gerd@gnu.org>
11093
11094 * xfaces.c (Finternal_make_lisp_face): Increment
11095 lface_id_to_name_size when lface_id_to_name is reallocated.
11096
110971998-06-27 Gerd Moellmann <gerd@gnu.org>
11098
11099 * xdisp.c (set_iterator_stop_pos): Compute initial stop_pos
11100 as minimum of endpos and overlay_pos.
11101 (load_overlay_strings): Set next_overlay_pos of iterator to
11102 -1 if we don't have to check for more overlay strings.
11103
111041998-05-09 Gerd Moellmann <gerd@gnu.org>
11105
11106 * xdisp.c (set_iterator_to_next_visible_line_start): Don't
11107 do anything if iterator is at ZV because scan_buffer doesn't
11108 work otherwise.
11109
11110 * xterm.c (x_encode_char): Inline it.
11111 (x_get_char_font_and_encoding): Simplified.
11112 (x_per_char_metric): Inline it.
11113
11114 * xterm.c (x_draw_glyph_string_relief): Use clipping.
11115
11116 * xdisp.c (get_next_display_element): Check for end of relief
11117 face moved here from next_element_from_buffer.
11118
11119 * xterm.c (x_produce_image_glyph): Add relief thickness.
11120 (x_produce_stretch_glyph): Ditto.
11121
111221998-05-08 Gerd Moellmann <gerd@gnu.org>
11123
11124 * xdisp.c (fill_iterator_from_glyph_property): Handle glyph
11125 property value (space :width WIDTH :height HEIGHT :ascent ASCENT).
11126
11127 * xterm.c (x_produce_stretch_glyph): Produce a stretch glyph
11128 from a glyph property.
11129 (x_produce_glyphs): Use it.
11130
11131 * xdisp.c (set_iterator_to_next): Handle next_element_from_stretch.
11132
427ec082 11133 * xterm.c (x_produce_image_glyph): Add to current_x only if
26901792
DL
11134 in text area.
11135 (x_produce_glyphs): Ditto.
11136
427ec082 11137 * xdisp.c (display_line): Compute row height from glyphs in
26901792
DL
11138 marginal areas.
11139
427ec082 11140 * xterm.c (x_draw_image_glyph_string_background): Draw
26901792 11141 background of an image glyph string.
427ec082 11142 (x_draw_glyph_string_bg_rect): Draw a rectangular region of
26901792
DL
11143 the background of a glyph string.
11144 (x_draw_image_glyph_string_foreground): Draw the foreground of
11145 an image glyph string.
11146 (x_inverted_image_mask): Return the inverted mask of an image.
11147
11148 * xfns.c (x_draw_image): Removed.
11149
11150 * dispextern.h (struct image_type): Remove drawing function.
11151
11152 * xfaces.c (load_face_colors): Swap colors if face is inverse.
11153
11154 * xdisp.c (get_next_display_element): In marginal areas, translate
11155 newlines, tabs, etc. like normal control characters.
11156
11157 * xfaces.c (Fface_color_supported_p): Transpose parameters frame
11158 and color.
11159 (free_realized_faces): Set frame garbaged.
11160
11161 * xfaces.c (syms_of_xfaces): Add defsubr for
11162 internal-lisp-face-attribute-values.
11163
111641998-05-07 Gerd Moellmann <gerd@gnu.org>
11165
11166 * xterm.c (x_produce_image_glyph): Don't add glyph if area is
11167 full.
11168 (x_produce_image_glyph): Set IT->nglyphs to 1.
11169 (x_draw_image_glyph_string): Use inverted mask to draw background.
11170
11171 * dispextern.h (struct image_type): Additional clipping rect
11172 parameters for drawing functions.
11173
427ec082 11174 * xterm.c (x_get_glyph_string_clip_rect): Get clip rect for
26901792
DL
11175 a glyph string.
11176 (x_draw_image_glyph_string): Use it and pass the rect to the
11177 image drawing function.
11178
11179 * xdisp.c (fill_iterator_from_glyph_property): Use position of
11180 first character with `glyph' property as image position. Set
11181 iterator back to that position as long as the image hasn't been
11182 consumed with set_iterator_to_next.
11183 (set_cursor_from_row): Accept when glyph with given position is
11184 not found in the row. Set cursor x to end of line in that case,
11185 so that we can hscroll.
11186 (redisplay_internal): Correct computation of delta by which
11187 positions have changed in redisplay optimization for cursor
11188 row of selected window.
11189
11190 * xdisp.c (display_line): Remove start_pos.
427ec082 11191 (display_line): Fix bug preventing display optimization for
26901792
DL
11192 cursor line of selected window.
11193 (next_element_from_buffer): Avoid XSETBUFFER, use it->w->buffer
11194 instead.
11195
11196 * dispnew.c (update_text_area): Use GLYPH_EQUAL_P.
11197 (update_text_area): Take glyph pixel width into account
11198 when trying to find a resync point.
11199 (row_equal_p): Compare glyphs in all areas.
11200
112011998-05-06 Gerd Moellmann <gerd@gnu.org>
11202
11203 * xterm.c (x_produce_glyphs): Don't add glyph if area is full.
11204
11205 * dispextern.h (struct glyph_row): Use unsigned hash value.
11206
11207 * xdisp.c (display_line): Simplified and made faster by setting
11208 the cursor with set_cursor_from_row.
11209 (set_cursor_from_row): Handle rows of desired matrix.
11210
112111998-05-05 Gerd Moellmann <gerd@gnu.org>
11212
11213 * xdisp.c (set_cursor_from_row): Don't put cursor on glyphs
11214 with type != CHAR_GLYPH.
11215 (fill_iterator_from_glyph_property): Return void. Set
11216 method to next_element_from_image.
11217 (next_element_from_image): Dummy function for delivering a
11218 single image id.
11219 (set_iterator_to_next): Add method next_element_from_image.
11220 (redisplay_window): When recentering, and cursor vpos is -1
11221 after display, assume middle of window is in first line displayed
11222 in window, and display again.
427ec082 11223 (fill_iterator_from_glyph_property): Assign image glyph
26901792
DL
11224 the position of the first character having the glyph property.
11225
11226 * dispextern.h (IMAGE_ASCENT): Compute ascent of image.
11227 * xfns.c (x_draw_image): Use it.
11228 * xterm.c (x_produce_image_glyph): Use it.
11229
11230 * xterm.c (x_produce_image_glyph): Set iterator's pixel_width.
11231
11232 * Makefile.in: Extraneous #define of LIBXPM removed.
11233
11234 * xterm.c (x_produce_glyphs): Produce a STRETCH_GLYPH for tabs.
427ec082 11235 (x_fill_stretch_glyph_string): Fill a glyph string from a
26901792
DL
11236 stretch glyph.
11237 (x_compute_glyph_string_overhangs): Compute overhangs only
11238 for text glyph strings.
11239 (x_draw_stretch_glyph_string): Draw a stretch glyph string.
11240 (x_draw_glyph_string): Call it.
11241
11242 * dispextern.h (glyph_type): Add STRETCH_GLYPH.
11243 (struct glyph): Add sub-structure for stretchable glyphs.
11244 (GLYPH_EQUAL_P): Compare glyph type and u.val.
11245
11246 * xdisp.c (get_overlay_arrow_glyph_row): Put face code into
11247 #ifdef HAVE_FACES.
11248
11249 * xterm.c (x_produce_glyphs): Use ASCII face for spaces of a TAB.
11250
11251 * xdisp.c (fill_iterator_from_glyph_property): Renamed from
11252 setup_iterator_from_glyph_property. Don't do it for terminal
11253 frames.
11254
11255 * xterm.c (x_produce_image_glyph): Produce glyph for image
11256 that can't be loaded.
11257
11258 * xfns.c (lookup_image): If image can't be loaded, set its
11259 width and height so that we can draw a rectangle.
11260 (x_draw_image): Draw a rectangle for images that don't have
11261 a pixmap.
11262 (make_image): Set hash value.
11263 (image_spec_equal_p): Use image_spec_value.
11264
11265 * xterm.c (expose_frame): Don't try to redraw if basic faces
11266 haven't benn realized yet.
427ec082 11267 (x_draw_image_glyph_string): Fill background only if image
26901792
DL
11268 is not as tall as row.
11269
112701998-05-04 Gerd Moellmann <gerd@gnu.org>
11271
11272 * Makefile.in (LIBXPM): If not already defined, define to -lXpm.
11273 (LIBX)[HAVE_X11]: Add LIBXPM.
11274
11275 * xfns.c (xpm_image_p): Implementation of image type functions
11276 for XPM.
11277 (xpm_load): Ditto.
11278
11279 * dispextern.h (struct image): Add mask pixmap for XPM.
11280
11281 * xfns.c (x_draw_image): Handle images with masks.
11282
11283 * configure.in: --with-xpm added. Code detecting -lXpm added.
11284
11285 * config.in: Add HAVE_XPM.
11286
11287 * xfns.c (xbm_draw): Removed.
11288 (x_draw_image): Default implementation for drawing images.
11289 (xbm_keyword_index): Remove XBM_DEPTH.
11290 (xbm_format): Remove `:depth'.
11291 (xbm_image_spec_from_file): Removed to reduce consing.
427ec082 11292 (xbm_load_image_from_file): Added for the same reason.
26901792 11293
427ec082 11294 * xterm.c (x_fill_image_glyph_string): Don't set ybase of
26901792
DL
11295 glyph string.
11296 (x_draw_image_glyph_string): Pass ybase to image draw function.
11297
11298 * xfns.c (make_image): Set default baseline.
11299
11300 * xterm.c (x_produce_image_glyph): Compute ascent of image
11301 from its height and baseline percentage.
11302
11303 * xfns.c (xbm_keyword_index): Add XBM_BASELINE.
11304 (xbm_format): Add description for `:baseline'.
11305 (xbm_image_spec_from_file): Add keywords from original spec to
11306 result.
11307 (xbm_load): Set baseline of image.
11308 (xbm_image_p): Check range for baseline.
11309
11310 * dispextern.h (struct image): Add member baseline.
11311
11312 * xdisp.c (dump_glyph_matrix): Handle image glyphs.
11313
11314 * term.c (produce_glyphs): Change assertion to allow DISP_IMAGE.
11315
11316 * xdisp.c (get_next_display_element): Do character translations
11317 only if delivering characters.
11318
113191998-05-03 Gerd Moellmann <gerd@gnu.org>
11320
427ec082 11321 * dispextern.h (ITERATOR_AT_END_OF_LINE_P): Test for
26901792
DL
11322 DISP_CHARACTER.
11323
11324 * xterm.c (x_produce_image_glyph): Poduce image glyphs.
11325 (x_produce_glyphs): Call x_produce_glyphs for DISP_IMAGE.
11326
113271998-05-02 Gerd Moellmann <gerd@gnu.org>
11328
11329 * xfns.c (prepare_image_for_display): Set image timestamp.
11330 (clear_image_cache): Clear images if image's timestamp +
11331 Vimage_eviction_seconds is > now.
11332 (syms_of_xfns): New variables image-eviction-seconds, and
11333 image-types.
11334 (add_image_format): Add to image-types.
11335 (xbm_load): Support new image spec format.
11336 (x_alloc_image_color): Allocate a color for an image.
11337
11338 * dispextern.h (struct image): Add timestamp.
11339
11340 * xfns.c (xbm_image_p): Allow bool-vectors, vectors of strings and
11341 vectors of bool-vectors.
11342 (xbm_lisp_object_from_file): Build new format image spec.
11343
113441998-05-01 Gerd Moellmann <gerd@gnu.org>
11345
11346 * xfaces.c (init_frame_faces): Initialize image cache.
11347 (free_frame_faces): Free it.
11348
11349 * xterm.c (x_delete_display): Don't free image cache.
11350
11351 * emacs.c (main): Call init_xfns.
11352
113531998-04-30 Gerd Moellmann <gerd@gnu.org>
11354
11355 * alloc.c (mark_object): Mark objects in image cache.
11356
427ec082 11357 * xfns.c (x_set_internal_border_width): Correct call to
26901792
DL
11358 widget_store_internal_border_width.
11359
11360 * widget.c (widget_store_internal_border): Return void.
11361
11362 * xfns.c (x_destroy_bitmap): Use xfree instead of free. Return
11363 void.
11364 (init_x_parm_symbols): Return void.
11365 (x_report_frame_params): Ditto.
11366 (x_set_border_pixel): Ditto.
11367 (syms_of_xfns): Ditto.
11368 (x_destroy_all_bitmaps): Use xfree instead of free.
11369
11370 * xterm.h (FRAME_X_IMAGE_CACHE): Access the image cache of a frame.
11371
11372 * xterm.c (x_term_init): Initialize image_cache of display info.
11373 (x_delete_display): Free image cache.
11374
11375 * xterm.h (struct x_display_info): Add image_cache.
11376
11377 * xfns.c (make_image_cache): Allocate a new image cache.
11378 (free_image_cache): Free an image cache.
11379 (make_image): Allocate an image.
11380 (free_image): Free an image.
11381
11382 * dispextern.h (struct image): Structure describing an image.
11383 (struct image_cache): Structure describing an image cache.
11384
113851998-04-29 Gerd Moellmann <gerd@gnu.org>
11386
11387 * xdisp.c (check_iterator_glyph_property): Return int. Value is
11388 non-zero if iterator is filled with something to return.
11389 (next_element_from_buffer): Immediately return if
11390 setup_iterator_from_glyph_prop has filled iterator with pixmap.
11391 (next_element_from_string): Likewise.
11392
11393 * xfaces.c (load_pixmap): Allow to pass null for W_PTR and H_PTR.
11394
11395 * dispextern.h (struct glyph): Add pixmap_id.
11396 (display_element_type): Add DISP_PIXMAP.
11397
11398 * xmenu.c (popup_get_selection): Use xmalloc/xfree instead of
11399 malloc/free.
11400
11401 * xfaces.c (clear_font_table): Free fonts not used by fontsets.
11402 (clear_face_cache): Call it.
11403
11404 * xterm.c (x_query_font): Don't look at empty font table slots.
11405 (x_compute_min_glyph_bounds): Likewise.
11406 (x_term_init): Initialize font_table to null.
11407 (x_load_font): Change allocation of font_info structures so
11408 that it is possible to free fonts.
11409
427ec082 11410 * xfns.c (Fx_close_connection): Use xfree instead of free.
26901792
DL
11411 Only free fonts from filled font table entries.
11412
11413 * xfaces.c (best_matching_font): Support use of scalable fonts.
11414 (Fface_scalable_fonts_mode): Toggle use of scalable fonts.
11415
11416 * xterm.h (struct x_display_info): Remove screen_dpi, add resx
11417 and resy.
11418 * xterm.c (x_term_init): Compute resx and resy.
11419
11420 * xfaces.c (split_font_name): Don't reject scalable fonts.
11421
427ec082 11422 * xterm.c (x_list_fonts): Set code exclusing scalable fonts
26901792
DL
11423 in #if 0.
11424
11425 * xfaces.c (xlfd_point_size): Return 0 for fonts whose real
11426 point size cannot be determined.
11427
11428 * xterm.h (FRAME_SMALLEST_CHAR_WIDTH): Return smallest character
11429 width over all fonts on a frame.
11430 (FRAME_SMALLEST_FONT_HEIGHT): Likewise for font height.
11431 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Use these
11432 macros.
11433
11434 * xterm.c (x_font_min_bounds): Moved here from xfaces.c.
11435 (x_compute_min_char_bounds): Formerly min_char_bounds in xfaces.c.
11436 (x_load_font): Use x_compute_min_char_bounds.
11437
11438 * xterm.h (struct x_display_info): New members smallest_char_width
11439 and smallest_font_height.
11440
114411998-04-28 Gerd Moellmann <gerd@gnu.org>
11442
11443 * dispextern.h (PREPARE_FACE_FOR_DISPLAY): Call function with
11444 the same name if GC of face is zero.
11445
11446 * dispextern.h (struct face): Member non_ascii_gc removed.
11447
11448 * xterm.c (x_get_char_font_and_encoding): Return face's font
427ec082 11449 for characters < 0177 in default face. Prepare face for
26901792
DL
11450 display before returning it.
11451 (x_produce_glyphs): Use it->charset.
11452 (x_get_char_font_and_encoding): Simplified.
11453 (x_encode_char): Remove parameter `font'.
11454
11455 * xfaces.c (choose_face_font): If registry from charset symbol
11456 doesn't contain a `-', make it a pattern by appending "*-*".
11457
11458 * xdisp.c (check_iterator_glyph_property): Adjust limit for
11459 glyph_check_pos computation to character boundary.
11460
114611998-04-27 Gerd Moellmann <gerd@gnu.org>
11462
11463 * fontset.h (FONT_INFO_FROM_ID): Return null if ID is invalid.
11464
11465 * xfaces.c (ascii_face_of_lisp_face): Get the id of the realized
11466 ASCII face for a given Lisp face id.
11467
11468 * xdisp.c (set_iterator_stop_pos): Take glyph_check_pos into
11469 account.
427ec082 11470 (reseat_iterator): Set glyph_check_pos. Handle case where
26901792
DL
11471 new position is < original position.
11472 (check_iterator_glyph_property): Handle glyph property in strings.
11473 (next_element_from_string): Call above function.
11474 (next_element_from_display_vector): Handle faces in glyphs.
11475 (get_next_display_element): Set face_id of glyphs for
11476 control chars to zero.
11477
11478 * Makefile.in (term.o): Add dependency on dispextern.h.
11479
11480 * xdisp.c (syms_of_xdisp): Add symbol `glyph'.
11481 (display_line): Handle marginal areas.
11482 (move_iterator_in_display_line_to): Likewise.
11483
11484 * xfaces.c (Finternal_make_lisp_face): Assign Lisp faces an id.
11485
11486 * xfaces.c (face_at_buffer_position): Don't merge with nil
11487 text property.
11488 (face_at_string_position): Ditto.
11489
11490 * dispextern.h (struct display_iterator): Use a stack of saved
11491 values instead of saving check positions etc. individually.
11492
11493 * xdisp.c (set_iterator_to_next): If end of Lisp string reached,
11494 maybe pop the iterator's stack.
11495 (save_iterator_settings): Push a value on iterator's stack.
11496 (get_overlay_strings_at_iterator_position): Use it.
11497 (restore_iterator_settings): Pop the stack.
11498 (set_iterator_to_next_overlay_string): Use it.
11499
11500 * xfaces.c (try_font_list): Use alternative font families.
11501
115021998-04-26 Gerd Moellmann <gerd@gnu.org>
11503
11504 * xfaces.c (Fset_face_font_sort_order): Set the order in which
11505 font selection matches fonts.
11506 (Fface_font_sort_order): Return the font sort order.
11507 (best_matching_font): Find best matching font based on sort order.
11508 (cmp_font_names): Sort by given sort order.
11509
11510 * dispextern.h (struct display_iterator): New member faces_p.
11511 * xdisp.c (init_iterator): Initialize it->faces_p.
11512 (compute_face_at_iterator_string_position): Use it.
11513 (compute_face_at_iterator_position): Use it.
11514 (init_iterator): Use it.
11515 (display_mode_line): Ditto.
11516
11517 * xdisp.c (get_next_display_element): Put code choosing a face
11518 when the charset changes in #ifdef HAVE_FACES.
11519
427ec082 11520 * dispextern.h (FACE_FOR_CHARSET): Replacement for function
26901792
DL
11521 lookup_face_for_charset.
11522
11523 * xfaces.c (free_font_names): Renamed from free_split_font_names.
11524 (free_all_realized_faces): Renamed from remove_all_realized_faces.
11525
115261998-04-25 Gerd Moellmann <gerd@gnu.org>
11527
11528 * xfaces.c (best_matching_font): Return the name of the best
11529 matching font in an array of font_name structures.
11530 (choose_face_font): Use it.
11531 (choose_face_fontset_font): Use it.
11532 (find_best_weight_font): If final font found has same weight as
11533 the font we started with, return the original font because it is a
11534 better match for the resolution of the display.
11535 (find_best_slant_font): Likewise.
11536 (merge_face_vector_with_property): Check more invalid attribute
11537 values.
11538 (lface_suitable_for_charset_p): Replaced by a macro with the same
11539 name in upper-case.
11540
115411998-04-24 Gerd Moellmann <gerd@gnu.org>
11542
11543 * dispextern.h (struct face): Member
11544 fontset_chosen_for_realization_p removed.
11545
11546 * xfaces.c (cache_face): If face->fontset >= 0, add face to the
11547 end of the collision list, so that we find more specific faces
11548 first.
11549 (lookup_face_for_charset): Look up a new face if face->fontset >=
11550 0, and charset != CHARSET_COMPOSITION.
11551
11552 * xfaces.c (split_font_name): Return zero if point size of font
11553 couldn't be computed.
11554 (realize_default_face): Use ASCII font of a fontset to determine
11555 font-related attributes of the default face.
11556 (face_fontset): Return fontset id for face family.
11557 (font_list): Additional parameter font_pattern. If non-nil,
11558 return fonts matching that pattern.
11559
115601998-04-23 Gerd Moellmann <gerd@gnu.org>
11561
11562 * xfaces.c (choose_face_fontset): If new fontset cannot be
11563 constructed, or fontset name cannot be split, return the id of the
11564 standard fontset.
11565
11566 * xterm.c (XTframe_up_to_date): Check that frame is an X frame.
11567 When Emacs starts, it may be called for the initial frame which
11568 isn't an X frame.
11569
11570 * dispextern.h (struct face): New members foreground_defaulted_p,
11571 background_defaulted_p.
11572 (struct face): Members `mask' and `cache' removed.
11573
11574 * xfaces.c (load_color): Set them.
11575 (free_face_colors): Check them.
427ec082 11576 (xlfd_point_size): Return -1 if resolution or point size of
26901792
DL
11577 font unknown.
11578
11579 * xfaces.c (free_font): Removed.
11580 (load_face_font_or_fontset): Renamed from load_font.
11581 (load_face_font_or_fontset): Use message2 instead of signalling.
11582 (load_color): Likewise.
11583 (load_pixmap): Likewise.
11584
11585 * xterm.h (struct x_display_info): Add screen_dpi.
11586 * xterm.c (x_term_init): Initialize it.
11587 * xfaces.c (xlfd_point_size): Use it.
11588 (split_font_name): Compute numeric XLFD_RESY.
427ec082 11589 (cmp_font_names): Make fonts with an y-resolution more
26901792
DL
11590 similar to that of the frame appear first in the result.
11591
11592 * xfaces.c (cache_face): If fontset_chosen_for_realization_p
11593 is set for the face to cache, add it to the end of the collision
11594 list.
11595 (try_font_list): If fonts for given family and registry cannot
11596 be found, first try to keep the registry, and choose a different
11597 family.
11598 (choose_face_font): Allow nfonts == 0.
11599 (try_font_list): Give up if no font matches given registry.
11600
116011998-04-22 Gerd Moellmann <gerd@gnu.org>
11602
11603 * xterm.c (x_get_char_font_and_encoding): Get font_info from
11604 font info id of the face.
11605
11606 * xfaces.c (load_font): Set font_info_id.
11607 (realize_face): Ditto.
11608
11609 * dispextern.h (struct face): Change member font_info to
11610 font_info_id.
11611
11612 * fontset.h (FONT_INFO_ID): Build an ID from a font_info pointer.
11613 (FONT_INFO_FROM_ID): Get a font_info pointer from an ID.
11614
11615 * xdisp.c (extend_face_to_end_of_line): If IT's current charset
11616 isn't ASCII, get the ASCII face before adding a space.
11617 (append_space): Likewise.
11618 (insert_left_trunc_glyphs): Initialize truncate_it's charset
11619 to -1 so that it will compute the right face for the truncation
11620 glyphs.
11621
11622 * xfaces.c (realize_face): Set
11623 face->fontset_chosen_for_realization_p.
11624 (lookup_face_for_charset): If fontset wasn't specified originally
11625 and new charset != CHARSET_COMPOSITION, get a new face for that
11626 charset.
11627
11628 * dispextern.h (struct face): New member
11629 fontset_chosen_for_realization_p_specified_p. Set to 1 when
11630 realize_face has chosen a fontset to display composite characters
11631 for a Lisp face not specifying a fontset.
11632
11633 * xdisp.c (extend_face_to_end_of_line): Move tests for default
11634 face and line already filled here. Don't do anything if current
11635 face hasn't a relief or has a background equal to the frame
11636 background.
11637
11638 * xfaces.c (split_font_name): Additional parameter numeric_p.
11639 Don't compute numeric values if it is non-zero.
11640 (choose_face_fontset): Call split_font_name with numeric_p == 0.
427ec082 11641 (choose_face_fontset): Print a message if fontset contains a
26901792
DL
11642 font whose name cannot be split into fields.
11643
116441998-04-21 Gerd Moellmann <gerd@gnu.org>
11645
427ec082 11646 * xfaces.c (try_font_list): Try to load a list of fonts,
26901792
DL
11647 possibly using less restrictive patterns.
11648 (choose_face_font): Use it.
11649
11650 * xterm.c (x_get_char_font_and_encoding): For charset !=
11651 CHARSET_ASCII use font_info of face if face hasn't a fontset set.
11652
11653 * dispextern.h (struct face): New member font_info.
11654
11655 * xfaces.c (load_font): Use FS_LOAD_FONT to load fonts for faces
11656 specifying a fontset as well as those not having a fontset.
11657 (free_font): Make it empty.
11658 (realize_face): Use changed load_font.
11659
11660 * xterm.c (x_get_char_font_and_encoding): If face doesn't
11661 fit for charset, get the right one.
11662
11663 * xfaces.c (load_font): Take frame and name parameter, return
11664 font.
11665 (free_font): Likewise.
11666 (split_font_name): Compute numeric values for height, swidth etc.
11667 (cmp_font_names): Use them.
11668 (find_best_width_font): Ditto.
11669 (find_best_height_font): Ditto.
11670 (find_best_weight_font): Ditto.
11671 (find_best_slant_font): Ditto.
11672 (lface_hash): Add weight, slant, swidth and relief to hash value.
11673 (lface_equal_p): Make it faster.
11674 (lface_from_symbol): Use assq_no_quit.
11675 (Fnote_default_face_changed): Removed.
11676 (cmp_font_names): Use strcmp instead of xstricmp.
11677 (face_charset_registries): Removed.
11678
116791998-04-20 Gerd Moellmann <gerd@gnu.org>
11680
11681 * frame.h (CHECK_FRAME): Give this macro a statement form.
11682 (CHECK_LIVE_FRAME): Ditto.
11683
11684 * xfaces.c (find_best_width_font): Find the best matching font
11685 for a given width.
11686 (find_best_height_font): Likewise for height.
11687 (find_best_weight_font): Likewise for weight.
11688 (find_best_slant_font): Likewise for slant.
11689 (choose_face_font): Use them.
11690 (get_lface_attributes): Always return frame-local face attrs.
427ec082 11691 (Finternal_merge_in_global_face): Merge local face with
26901792
DL
11692 global face attributes.
11693
11694 * xfaces.c (check_lface_attrs, check_lface): Check consistency of
11695 Lisp face attributes.
11696
116971998-04-19 Gerd Moellmann <gerd@gnu.org>
11698
11699 * xfaces.c (Finternal_set_lisp_face_attribute): Add :bold
11700 and :italic for compatibility.
11701 (Finternal_set_lisp_face_attribute_from_resource): Handle
427ec082 11702 :bold and :italic. Handle boolean resource values for
26901792
DL
11703 :underline and :italic.
11704
11705 * xfns.c (display_x_get_resource): Make it externally visible.
11706
11707 * xfaces.c (lface_from_symbol): Take a frame as parameter.
11708 If that frame is non-null, return the frame-local face.
11709 (Finternal_make_lisp_face): Additional frame argument.
11710 (lface_attributes): Get face attributes from global and frame-local
11711 definitions.
11712 (Finternal_lisp_face_equal_p): Additional frame argument.
11713 (merge_lisp_face_vector_with_property): Ditto.
11714 (Frealize_basic_faces): Removed.
11715 (Finternal_get_lisp_face_attribute): Additional frame argument.
11716 (Finternal_lisp_face_p): Ditto.
11717 (load_color) [MSDOS]: Removed because it isn't clear how
11718 to do this for MS-DOS.
11719
11720 * xfaces.c (lface_from_symbol): Get global face definition
11721 from face-global-alist.
11722
11723 * xfaces.c (Finternal_set_lisp_face_attribute): Allow `t'
11724 as values for :underline and :inverse-video.
11725 (Finternal_set_lisp_face_attribute): Allow nil values.
11726
117271998-04-17 Gerd Moellmann <gerd@gnu.org>
11728
11729 * xfaces.c (Finternal_make_lisp_face): Return Lisp face vector.
11730
11731 * xfaces.c (syms_of_xfaces): Add Vall_faces.
11732 (Finternal_make_lisp_face): Add new face to Vall_faces.
11733
11734 * xdisp.c (echo_area_display): Remove code recomputing faces.
11735 (redisplay_internal): Ditto.
11736 (init_iterator): Do it here.
11737
11738 * xfaces.c (choose_face_font): Check that swidth doesn't change
11739 for subusequent attributes.
11740 (xlfd_point_size): Return int.
11741
11742 * xdisp.c (redisplay_internal, echo_area-display): If realized
11743 faces have been cleared, call recompute_basic_faces.
11744
11745 * xfaces.c (recompute_basic_faces): Free realized faces. Reset
11746 face_attributes_changed_p.
427ec082 11747 (remove_all_realized_faces): Remove all realized faces on
26901792
DL
11748 all frames.
11749 (Finternal_set_lisp_face_attribute): Call remove_all_realized_faces.
11750
11751 * xdisp.c (redisplay_internal): If face attributes have been
11752 changed since the last redisplay, recompute basic faces.
11753 (echo_area_display): Ditto.
11754
11755 * xfaces.c (clear_face_gcs): Renamed from clear_realized_face_cache.
11756
11757 * xfaces.c (min_char_bounds): If face cache not yet present,
11758 don't try to get font dimensions from faces.
11759
11760 * xterm.c (x_frame_mode_line_height): If face cache not present
11761 set, return default height.
11762
11763 * alloc.c (mark_face_cache): Check for null faces. Correct
11764 index bug.
11765
11766 * dispextern.h (struct face): Renamed from struct rface. Member
11767 underline renamed underline_p. Make it a bit-field.
11768
11769 * xfaces.c (init_frame_faces): Allocate face cache.
11770 (free_frame_faces): Free face cache.
11771 (recompute_basic_faces): Realize basic faces only if face cache is
11772 allocated, i.e. after init_frame_faces has been called.
11773
11774 * frame.c (make_frame): Initialze face cache with null.
11775
11776 * xfaces.c (same_size_fonts): Removed.
11777
427ec082 11778 * xterm.c (x_set_glyph_string_gc): Add post-condition
26901792
DL
11779 s->gc != 0.
11780 (x_set_mouse_face_gc): Ditto.
11781 (x_set_mode_line_face_gc): Ditto.
11782
427ec082
SS
11783 * xfaces.c (realize_default_face): Return int. Value is
11784 zero if frame params don't contain enough information to
26901792
DL
11785 realize the default face.
11786 (realize_basic_faces): Ditto.
11787 (init_frame_faces): Realize basic faces.
11788
11789 * xfns.c (x_set_font): First store real font name in frame
11790 parameters, then call recompute_basic_faces.
11791
11792 * xfaces.c (recompute_basic_faces): Call realize_basic_faces.
11793
117941998-04-16 Gerd Moellmann <gerd@gnu.org>
11795
11796 * xfaces.c (syms_of_xfaces): Correct calls to defsubr.
11797
11798 * xfns.c (Fx_face_fixed_p): Removed.
11799 (Fx_list_fonts): Moved to xfaces.c.
11800
11801 * xfaces.c (compute_face_at_buffer_pos): Renamed to
11802 face_at_buffer_position. Parameter charset removed; always
11803 compute face for CHARSET_ASCII.
11804 (face_at_string_position): Renamed from
11805 compute_face_at_string_pos. Parameter charset removed; always
11806 compute for CHARSET_ASCII.
427ec082 11807 (lookup_face_for_charset): Take frame parameter instead of
26901792
DL
11808 face_cache.
11809 (lookup_face): Ditto.
11810 (compute_char_face): Renamed from compute_glyph_face.
11811
11812 * xdisp.c (init_iterator): Initialize charset member.
11813 (reseat_iterator_to_string): Ditto.
11814 (get_charset_at_buffer_position): Determine charset at
11815 buffer position in current_buffer.
11816 (reseat_iterator): Call above function.
11817 (compute_face_at_iterator_position): Call
11818 compute_face_at_buffer_pos.
11819 (compute_face_at_iterator_string_position): Call
11820 compute_face_at_string_pos.
11821 (get_face_from_id): Removed.
11822 (get_face_from_cursor_pos): Call compute_face_at_buffer_pos.
11823 Call get_charset_at_buffer_position.
11824 (reseat_iterator): Determine face if charset at pos differs
11825 from iterator's charset.
11826 (reseat_iterator_to_glyph_pos): Removed.
11827
11828 * xfaces.c (compute_face_at_bufpos): Remove parameter charset.
11829 Determine charset from buffer position.
11830 (compute_string_char_face): Renamed to compute_face_at_string_pos.
11831 (compute_face_at_bufpos): Renamed to compute_face_at_buffer_pos.
11832
11833 * dispextern.h (struct display_iterator): Add member charset.
11834
118351998-04-15 Gerd Moellmann <gerd@gnu.org>
11836
11837 * xfaces.c (compute_char_face): Removed.
11838
11839 * xdisp.c (get_overlay_arrow_glyph_row): Use compute_glyph_face
11840 with new parameter list.
11841
11842 * xfaces.c (region_face): Removed.
11843 (allocate_face): Removed.
11844 (copy_face): Ditto.
11845 (face_eql): Removed.
11846 (intern_face): Removed.
11847 (clear_face_cache): Removed.
11848 (load_font): Ditto.
11849 (unload_font): Ditto.
11850 (load_color): Ditto.
11851 (unload_color): Ditto.
11852 (new_computed_face): Ditto.
11853 (intern_computed_face): Ditto.
11854 (ensure_face_ready): Ditto.
11855 (merge_faces): Ditto.
11856 (compute_base_face): Ditto.
11857 (merge_face_list): Ditto.
11858 (Fmake_face_internal): Removed.
11859 (Fset_face_attribute_internal): Ditto.
11860 (face_name_id_number): Removed.
11861 (Fframe_face_alist): Ditto.
11862 (Fset_frame_face_alist): Ditto.
11863 (Finternal_next_face_id): Ditto.
11864
11865 * xterm.h (struct x_output): Remove computed_faces, and
11866 param_faces. Remove macros accessing them.
11867
11868 * xfaces.c: Entirely new face implementation added.
11869
118701998-04-11 Gerd Moellmann <gerd@gnu.org>
11871
11872 * dispextern.h (struct glyph_pos): Member `bufpos' renamed
11873 `charpos'.
11874
118751998-04-10 Gerd Moellmann <gerd@gnu.org>
11876
11877 * xterm.c (x_scroll_bar_move): Clear only regions not covered by
11878 scroll bar window to reduce flickering. Clear entire height.
11879
11880 * xdisp.c (move_iterator_vertically_backward): Set iterator's
11881 current_x and hpos to zero after moving to previous line
11882 start.
11883
118841998-04-03 Gerd Moellmann <gerd@gnu.org>
11885
11886 * frame.h (FRAME_FACE_CACHE): Access to a frame's face cache.
11887
11888 * xfaces.c (xlfd_point_size): Compute relative point size of
11889 fonts from font and frame resolution.
11890 (sort_fonts): New function to sort fonts, temporarily setting
11891 font_frame to the frame in effect.
11892 (xlfd_point_size): Take additional frame parameter to be able
11893 to get at the display's resolution.
11894
11895 * xterm.c (x_setup_relief_colors): Use WHITE_PIX_DEFAULT and
11896 BLACK_PIX_DEFAULT.
11897 (x_setup_relief_color): Use FRAME_X_SCREEN instead of default
11898 screen of display.
11899
119001998-03-31 Gerd Moellmann <gerd@gnu.org>
11901
11902 * xfaces.c (choose_face_fontset): Instantiate fontsets.
11903
11904 * fontset.h: Add external declarations for Vfontset_alias_alist
11905 and Vglobal_fontset_alist.
11906
11907 * xfaces.c (merge_lisp_face_vector_with_property): Simplified.
11908 (realize_default_face): If frame parameters contain an artificial
11909 font name naming a fontset, set the family of the default face to
11910 the fontset name given by the registry.
11911
11912 * Makefile.in (alloc.o): Add dependency to dispextern.h.
11913
119141998-03-22 Gerd Moellmann <gerd@gnu.org>
11915
11916 * alloc.c (mark_object): Add function prototype. Add cast to
11917 Lisp_Object pointer in call to mark_object for symbol names
11918 because this otherwise gives a warning from gcc 2.8.1.
11919 (mark_face_cache): Mark Lisp objects in realized faces.
11920
119211998-03-19 Gerd Moellmann <gerd@gnu.org>
11922
11923 * frame.h (struct frame): Add member face_cache.
11924
11925 * alloc.c (mark_object): Mark face cache.
11926 (mark_face_cache): Mark Lisp faces in face cache of frame.
11927
11928 * frame.c (make_frame): Initialize face_cache.
11929 (Fdelete_frame): Free it.
11930
119311998-03-18 Gerd Moellmann <gerd@gnu.org>
11932
11933 * xfaces.c: Very first skeleton of functions for face realization,
11934 face merging, face cache etc.
11935
11936 * dispextern.h (struct rface): Realized faces. Will replace
11937 struct face when tested.
11938 (struct face_cache): Realized face caches.
11939
11940 * xdisp.c (init_iterator): Initialize area member of display
11941 iterator.
11942
119431998-03-17 Gerd Moellmann <gerd@gnu.org>
11944
11945 * xterm.c (x_append_glyph): Use it->area to store glyphs.
11946
11947 * dispextern.h (struct display_iterator): New member area.
11948
11949 * xterm.c (note_overwritten_text_cursor): Note when the text
11950 cursor of a window is overwritten.
11951
11952 * xdisp.c (set_cursor_from_row): If PT is not found in the
11953 row, display the cursor at the start of the row.
11954
11955 * dispnew.c (direct_output_forward_char): Call
11956 set_cursor_from_row.
11957
11958 * xdisp.c (setup_iterator_overlay_strings_from_glyph_pos): If
11959 position is not in an overlay string, set iterator's position and
11960 method explicitly so.
427ec082 11961 (set_cursor_from_row): Correct cursor position calculation.
26901792
DL
11962 Make it externally visible.
11963 (redisplay_window): Call set_cursor_from_row so that there is only
11964 one place where the cursor position is calculated from a current
11965 row.
11966
11967 * dispextern.h (struct display_iterator): New member
11968 overlay_strings_at_end_processed_p.
11969
11970 * xdisp.c (check_iterator): Perform sanity checks on
11971 display_iterators.
11972 (next_element_from_buffer): Check for overlay strings at ZV.
11973
119741998-03-16 Gerd Moellmann <gerd@gnu.org>
11975
11976 * buffer.c (init_buffer_once): Add left_margin_width and
11977 right_margin_width to buffer_local_flags.
11978
11979 * dispnew.c (margin_glyphs_to_reserve): Function computing
11980 number of glyphs to reserve for a marginal area.
11981 (adjust_glyph_matrix): Call it.
11982 (adjust_frame_glyphs_for_frame_redisplay): Return if frame
11983 is not alive.
11984
11985 * window.c (Fset_window_margins): Allow floats.
11986
11987 * buffer.c (syms_of_buffer): Add buffer-local variables
11988 left-margin-width and right-margin-width. Add defaults
11989 default-left-margin-width and default-right-margin-width.
11990
11991 * buffer.h (struct buffer): New members left_margin_width
11992 and right_margin_width.
11993
11994 * window.c (Fset_window_margins): Make window the last and
11995 optional argument.
11996
11997 * xterm.c (x_draw_glyphs): Compute x-positions for rows with
11998 flag no_marginal_areas_p differently.
11999 (x_clear_end_of_line): Ditto.
12000 (x_draw_glyph_string_relief): Compute width of relief differently
12001 for rows with flag no_marginal_areas_p.
12002
12003 * dispnew.c (update_window_line): Update marginal areas only
12004 for rows that don't have no_marginal_areas_p set.
12005
12006 * xdisp.c (display_mode_line): Set row's flag no_marginal_areas_p.
12007 (display_menu_bar): Ditto.
12008
12009 * dispextern.h (struct glyph_row): New member no_marginal_areas_p.
12010
12011 * dispnew.c (adjust_glyph_matrix): Compute glyph pointers for
12012 marginal areas in window-based redisplay.
12013
12014 * dispextern.h (struct glyph_matrix): New members
12015 left_margin_glyphs and right_margin_glyphs.
12016
120171998-03-15 Gerd Moellmann <gerd@gnu.org>
12018
12019 * minibuf.c (read_minibuf_unwind): Return Lisp_Object.
12020
12021 * charset.c (non_ascii_char_to_string): Use char type parameters
12022 because the function is used that way from outside. Use unsigned
12023 char internally.
12024
12025 * window.c (change_window_height): Return void.
12026 (make_dummy_parent): Return void.
12027 (init_window_once): Return void.
12028 (syms_of_window): Ditto.
12029 (keys_of_window): Ditto.
12030 (delete_window): Correct return with and without value.
12031
12032 * buffer.c (record_buffer): Return void.
12033
12034 * marker.c (unchain_marker): Return void.
12035
12036 * window.c (unshow_buffer): Return void.
12037 (replace_window): Ditto.
12038 (delete_window): Ditto.
12039
12040 * term.c (delete_glyphs_hook): Void return type.
12041 (ring_bell_hook): Ditto.
12042 (set_terminal_window_hook): Ditto.
12043
12044 * sysdep.c (init_sigio): Return void.
12045
12046 * xterm.c (x_set_window_size): Return void.
12047 (x_calc_absolute_position): Ditto.
12048 (x_set_offset): Ditto.
12049 (x_focus_on_frame): Ditto.
12050 (x_unfocus_frame): Ditto.
12051 (x_make_frame_visible): Ditto.
12052 (x_make_frame_invisible): Ditto.
12053 (x_iconify_frame): Ditto.
12054 (x_destroy_window): Ditto.
12055 (x_wm_set_window_state): Ditto.
12056 (x_wm_set_icon_pixmap): Ditto.
12057 (x_wm_set_icon_position): Ditto.
12058 (x_initialize): Ditto.
12059 (x_error_quitter): Ditto.
12060 (x_destroy_window): Use xfree instead of free.
12061
12062 * keyboard.c (clear_waiting_for_input): Return void.
12063
12064 * xterm.c (x_wm_set_size_hint): Return void.
12065 (x_raise_frame): Ditto.
12066 (refreshicon): Ditto.
12067 (x_error_catcher): Ditto.
12068 (x_clear_errors): Ditto.
12069
12070 * keyboard.c (record_asynch_buffer_change): Return void.
12071
bb6677a8
GM
12072 The first line of the following paragraph was garbled for an
12073 unknown reason. It couldn't be fully reconstructed.
12074
12075 * xterm.c (XTread_socket, XTset_terminal_window): Ditto.
26901792
DL
12076 (x_lower_frame): Ditto.
12077 (x_scroll_bar_clear): Ditto.
12078 (XTflash): Add default case in switch for -Wall.
12079 (construct_mouse_click): Return Qnil.
12080 (cancel_mouse_face): Return void.
12081 (x_queue_event): Use xmalloc instead of malloc.
12082 (x_unqueue_events): Use xfree instead of free.
12083
12084 * ccl.c (ccl_driver): Return int.
12085
12086 * keyboard.c (stop_polling): Return void.
12087 (start_polling): Ditto.
12088
12089 * term.c (keys): Add braces in initializer list for -Wall.
12090
12091 * sysdep.c (tabs_safe_p): Return int.
12092 (init_baud_rate): Return void.
12093
12094 * xterm.c (x_draw_bitmap): Add default case.
12095 (x_setup_relief_colors): Use DefaultScreen instead of
12096 DefaultScreenOfDisplay.
12097 (x_delete_glyphs): Return void.
12098 (construct_menu_click): Put in #if 0 because it isn't called.
12099
12100 * xdisp.c (load_overlay_strings): Remove extraneous argument
12101 in call to qsort.
12102 (get_overlay_arrow_glyph_row): Add missing return value.
12103
12104 * window.c (set_window_height): Return void.
12105 (set_window_width): Ditto.
12106
12107 * sysdep.c (request_sigio): Return void.
12108 (unrequest_sigio): Ditto.
12109 (get_frame_size): Ditto.
12110
12111 * scroll.c (scroll_cost): Return int.
12112 (do_line_insertion_deletion_costs): Return void.
12113
12114 * frame.c (Fdelete_frame): Use xfree instead of free.
12115
12116 * fileio.c (report_file_error): Return void.
12117
12118 * dispnew.c: Make compilable with -Wall.
12119 * term.c: Ditto.
12120
12121 * charset.h (CHAR_LEN): Moved here from dispextern.h.
12122
121231998-03-14 Gerd Moellmann <gerd@gnu.org>
12124
12125 * xterm.c (x_scroll_bar_move): Clear under scroll bar if height is
12126 increased.
12127 (x_setup_relief_color): Free color only for appropriate visual
12128 classes.
12129
12130 * xterm.c (expose_window): Fix calculation of intersection of mode
12131 line rectangle with exposed rectangle.
12132
12133 * xdisp.c (redisplay_window): Don't do cursor movement based
12134 on current matrix if w->last_point is not valid.
12135
121361998-03-09 Gerd Moellmann <gerd@gnu.org>
12137
12138 * xterm.c (expose_line): Redraw mode line and menu lines
12139 differently because they reach into the scroll bar area.
12140
12141 * xdisp.c (redisplay_window): If redisplaying with same window
12142 start, don't accept cursor on partially visible line.
12143
121441998-03-08 Gerd Moellmann <gerd@gnu.org>
12145
12146 * xterm.c (x_set_glyph_string_clipping): Set clip rectangle
12147 for wider mode lines.
12148 (x_draw_glyph_string_relief): Use larger rectangle for mode lines.
12149
12150 * xdisp.c (init_iterator): Increase last_visible_x by vertical
12151 scroll bar width for mode lines.
12152
12153 * dispnew.c (allocate_matrices_for_window_redisplay): Include
12154 vertical scroll bar width in width calculation so that we can
12155 display mode lines wider.
12156
12157 * xdisp.c (redisplay_window): Restore buffers before returning
12158 when fonts have changed.
12159
12160 * dispnew.c (update_window): Mark invisible rows in the current
12161 matrix invalid.
12162
12163 * xdisp.c (try_window_id): Force update of first row displayed
12164 at window end.
12165 (dump_glyph_matrix): Extracted from Fdump_glyph_matrix.
12166
121671998-03-05 Gerd Moellmann <gerd@gnu.org>
12168
12169 * dispextern.h (struct glyph_row): Member max_ascent renamed
12170 ascent. Member max_descent replaced by height.
12171 (struct display_iterator): Member max_descent replaced by height.
12172 (MATRIX_ROW_PIXEL_HEIGHT): Removed.
12173
12174 * xterm.c (x_alloc_lighter_color): Don't free colors if visual
12175 class makes it unnecessary or dangerous.
12176
12177 * xdisp.c (redisplay_window): Case only point has changed, and
12178 point has moved forward. Move forward over overlay strings.
12179 (display_line): Don't set cursor if first glyph from PT is part of
12180 a continuation line.
12181
121821998-02-21 Gerd Moellmann <gerd@gnu.org>
12183
12184 * xdisp.c (start_display): When computing continuation lines
12185 width, add current_x to the continuation lines width because
12186 move_iterator_to will stop in front of the buffer position moved
12187 to.
12188
121891998-02-20 Gerd Moellmann <gerd@gnu.org>
12190
12191 * xdisp.c (redisplay_window): Don't try try_window_id if
12192 windows_or_buffers_changed.
12193
12194 * xterm.c (x_alloc_lighter_color): Try both factor and delta to
12195 determine a color.
12196 (x_setup_relief_color): Allocate/ change one relief.
12197 (x_setup_relief_colors): Call above function.
12198
12199 * xterm.h (struct relief): New structure type holding relief info:
12200 GCs, colors, and whether colors are allocated.
12201
427ec082 12202 * xterm.c (x_alloc_lighter_color): If multiplying by factor
26901792
DL
12203 produces the same color, try adding a delta to RGB values.
12204 (x_setup_relief_colors): Free color cells.
12205
427ec082 12206 * xterm.h (struct x_output): New members white_relief_pixel,
26901792
DL
12207 black_relief_pixel holding the foreground colors allocated for
12208 relief GCs. New members white_allocated_p, black_allocated_p.
12209
12210 * xterm.c (x_scroll_run): Don't set updated_window to null.
12211 This resets updated_window when called from scrolling_window.
12212
12213 * dispextern.h (scroll_run_hook): Renamed from line_dance_hook.
427ec082 12214
26901792
DL
12215 * xterm.c (x_scroll_run): Additional window parameter. Set
12216 and reset updated_window.
12217
12218 * dispnew.c (line_dance_hook): Additional window parameter.
12219
12220 * xdisp.c (try_window_reusing_current_matrix): Don't call
12221 update_window_begin/end here. The end function would display the
12222 cursor on a wrong position and the additional functionality of
12223 update_window_begin is not needed anyway. Just set
12224 updated_window.
12225 (try_window_id): Ditto.
12226
12227 * dispnew.c (Fblink_cursor): Remove call to detect_input_pending.
12228 Don't redraw cursor during redisplay.
12229
12230 * xterm.c (x_scroll_run): Renamed from do_line_dance.
12231
12232 * xdisp.c (redisplay_window): For window-based redisplay, alway
12233 try try_window_id.
12234
12235 * xterm.c (struct glyph_string): New member two_byte_p that is
12236 non-zero if 16-bit drawing functions must be used.
12237 (x_fill_composite_glyph_string): Set it.
12238 (x_fill_glyph_string): Set it.
12239 (x_draw_glyph_string_foreground): Use it.
12240 (x_draw_vertical_border): Make line 1 pixel less tall.
12241 (x_draw_row_bitmaps): Decrease width of area cleared on the left
12242 side by 1 pixel if window is not right-most hasn't vertical scroll
12243 bars.
12244 (x_draw_phys_cursor_glyph): Do nothing if phys_cursor.hpos is
12245 out of bounds.
12246 (x_draw_glyph_string_foreground): Use XDrawImageStringX if
12247 hl == DRAW_CURSOR.
12248
12249 * xdisp.c (start_display): Check that window start is at line
12250 start if GLYPH_DEBUG != 0.
12251
12252 * window.c (window_scroll_pixel_based): Move assertion to
12253 start_display.
12254
122551998-02-19 Gerd Moellmann <gerd@gnu.org>
12256
427ec082 12257 * xterm.c (x_redraw_cursor): Don't redraw the cursor if the
26901792
DL
12258 frame hasn't the focus.
12259
12260 * window.c (make_window): Initialize dy.
12261 (replace_window): Ditto.
12262
12263 * window.h (window): New member dy specifying the amount by which
12264 a window is scrolled "smoothly".
12265
12266 * xterm.c (x_set_glyph_string_clipping): Don't use glyph string's
427ec082 12267 y-position because it can be negative.
26901792
DL
12268 (x_draw_row_bitmaps): Don't clear with negative y-position like
12269 above.
12270 (x_clear_end_of_line): Same theme as above.
12271
12272 * xterm.c (x_alloc_nearest_color): Allocate a color or, if no
12273 exact match exists, the nearest existing color. Patterned after
12274 defined_color.
12275 (x_alloc_lighter_color): Allocate a color that is lighter or
12276 darker than a given color by a specified factor.
427ec082 12277 (x_setup_relief_colors): Set up relief line colors based on
26901792
DL
12278 the background color of a glyph string face.
12279 (x_draw_glyph_string_relief): Call x_setup_relief_colors.
12280
12281 * xfns.c (x_make_gc): Don't allocate relief GCs.
12282 * widget.c (create_frame_gcs): Don't allocate relief GCs.
12283 (setup_frame_gcs): Don't change relief GCs.
12284
12285 * xterm.h (struct x_output): New member relief_background giving
12286 the background pixel color for which relief GCs can be used.
12287 Set by x_setup_relief_colors.
12288
12289 * xterm.c (x_draw_glyph_string_relief): Draw relief differently
12290 for mode and menu lines.
12291
12292 * xdisp.c (set_next_iterator_stop_pos): No longer static.
12293
12294 * dispnew.c (direct_output_for_insert): Call
12295 set_next_iterator_stop_pos after having changed it2.endpos.
12296
122971998-02-17 Gerd Moellmann <gerd@gnu.org>
12298
12299 * dispnew.c (update_window): Work on selected_window, only.
12300
12301 * xterm.c (x_erase_phys_cursor): Return quickly if physical cursor
12302 hpos is >= number of glyphs in the cursor row.
12303
12304 * xdisp.c (try_window_id): Bug fix; update_window_end was not
12305 called.
12306
123071998-02-16 Gerd Moellmann <gerd@gnu.org>
12308
12309 * xdisp.c (init_iterator): Increase last_visible_x for mode lines
12310 and menu lines.
12311
12312 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate
12313 enough glyphs to display a mode line or menu line which draws over
12314 flags areas.
12315
12316 * xterm.c (XTset_vertical_scroll_bar): Use
12317 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT instead of
12318 VERTICAL_SCROLL_BAR_PIXEL_HEIGHT.
427ec082 12319 (x_draw_glyphs): Draw over flags areas when drawing a mode line
26901792
DL
12320 or menu.
12321 (x_set_glyph_string_clipping): Set clipping differently if drawing
12322 a mode line or menu line.
12323
12324 * xterm.h (VERTICAL_SCROLL_BAR_PIXEL_HEIGHT): Removed.
12325
12326 * xterm.c (expose_line): Don't draw bitmaps for mode lines and
12327 menu lines.
12328 (x_scroll_bar_create): Don't clear flags areas.
12329 (x_draw_row_bitmaps): Clear visible row height, only.
12330
12331 * dispnew.c (Fblink_cursor): Moved here from xdisp.c.
12332
123331998-02-15 Gerd Moellmann <gerd@gnu.org>
12334
12335 * dispnew.c (direct_output_for_insert): When checking for tabs in
12336 the line, set it2.endpos to ZV.
427ec082 12337
26901792
DL
12338 * window.h (struct window): New member cursor_off_p.
12339 * xterm.c (x_redraw_cursor): Implementation of redraw_cursor_hook
12340 for X.
12341 * dispnew.c (redraw_cursor_hook): If non-null, function that can
12342 be called to display or erase the cursor.
12343 * xdisp.c (Fblink_cursor): Blink the cursor of a specified window
12344 or selected_window.
12345
12346 * xterm.h (text_cursor_kinds): Enumerators changed to uppercase.
12347
12348 * dispnew.c (update_window_line): Special handling of inverse
12349 lines in #if 0 removed.
12350
12351 * xterm.c (x_write_glyphs): Renamed from XTwrite_glyphs.
12352 (x_insert_glyphs): Renamed from XTinsert_glyphs.
12353 (x_clear_frame): Renamed from XTclear_frame.
12354 (x_clear_end_of_line): Renamed from XTclear_end_of_line.
12355 (x_ins_del_lines): Renamed from XTins_del_lines.
12356 (x_change_line_height): Renamed from XTchange_line_height.
12357 (x_delete_glyphs): Renamed from XTdelete_glyphs.
12358 (x_clear_cursor): Renamed from clear_cursor.
12359 (x_update_begin): Renamed from XTupdate_begin.
12360 (x_update_end): Renamed from XTupdate_end.
12361 (x_update_window_begin): Renamed from XTupdate_window_begin.
12362 (x_update_window_end): Renamed from XTupdate_window_end.
12363 (x_frame_mode_line_height): Renamed from XTframe_mode_line_height.
12364 (x_produce_glyphs): Renamed from XTproduce_glyphs.
12365 (x_produce_special_glyphs): Renamed from XTproduce_special_glyphs.
12366 (x_produce_special_glyphs): Implementation in #if 0 removed.
12367
12368 * xdisp.c (Fdump_redisplay_state): Display row's fill_line_p
12369 flag in the dump.
12370
12371 * dispnew.c (update_text_area): Handling of glyphs with pixel
12372 width zero removed. Decrement desired stop pos if desired row
12373 fills its line.
12374
12375 * xterm.c (x_fill_glyph_string): Handling of glyphs with pixel
12376 width zero removed.
12377 (BUILD_GLYPH_STRINGS): Set glyph string flag
12378 extends_to_end_of_line_p based on row's flag fill_line_p and face
12379 background and stipple. Make sure it works for composite characters.
12380
12381 * xdisp.c (extend_face_to_end_of_line): Set the glyph row flag
12382 fill_line_p. For window-based redisplay, add a space only if
12383 the row is empty so that we know the face to draw.
12384
12385 * dispextern.h (struct glyph_row): New flag fill_line_p. Non-zero
12386 means draw the face of the last glyph in the text area to the
12387 right end of the text area.
12388
12389 * xdisp.c (init_iterator): Show region in window mini-buffer
12390 window refers to.
12391
427ec082 12392 * dispextern.h (struct display_iterator): Redundant member
26901792
DL
12393 region_showing_p removed. Test for region_beg > 0 instead.
12394
12395 * dispnew.c (update_text_area): Clear to end of line if cursor is
12396 beyond the end of the desired line. Necessary because we don't
12397 have a phys_cursor_glyph with which to erase the cursor. We don't
12398 have one because this method of drawing a cursor doesn't work with
12399 lbearing/rbearing.
12400
12401 * xterm.c (XTinsert_glyphs): Block input.
12402
124031998-02-14 Gerd Moellmann <gerd@gnu.org>
12404
12405 * xterm.c (x_set_cursor_gc): Don't use cursor_gc for composite
12406 glyph strings.
12407 (x_draw_glyph_string_background): Fill background with background
12408 pixel for the first glyph of a composite character.
12409
12410 * xdisp.c (try_window): Change return type to int. Value is zero
12411 if fonts were loaded during redisplay.
12412 (redisplay_window): Return if fonts have been loaded during
12413 redisplay.
12414 (append_space): New parameter default_face_p.
12415
124161998-02-13 Gerd Moellmann <gerd@gnu.org>
12417
12418 * dispnew.c (adjust_glyph_matrix): In case of optimizing C-x 2,
12419 don't let a partially visible line in a current matrix stay
12420 enabled.
12421
124221998-02-09 Gerd Moellmann <gerd@gnu.org>
12423
12424 * minibuf.c (read_minibuf): Put access to minibuffer_prompt_length
12425 in #if PROMPT_IN_BUFFER.
12426
12427 * xdisp.c (display_line): If row ends in ZV, make the space
12428 that is added to place the cursor on it appear in default face.
12429
427ec082 12430 * xterm.c (expose_area): New function redrawing a single
26901792
DL
12431 glyph row area.
12432 (expose_line): Use it to redraw all areas of a row.
12433
12434 * dispextern.h (move_operation_enum): New enum
12435 move_operation_enum.
12436
12437 * window.c (window_scroll_pixel_based): Remove now unnecessary
12438 code that made sure that it->current_y doesn't become negative.
12439
12440 * xdisp.c (move_iterator_in_display_line_to): New parameter
12441 op. Special meaning of to_pos <= 0 and to_x < 0 removed.
12442 (move_iterator_to): Ditto.
12443
12444 * dispextern.h (struct glyph_matrix): New member window_width.
12445
12446 * dispnew.c (adjust_glyph_matrix): Set window_width. Optimize
12447 case of changing window height.
12448
12449 * xterm.c (x_draw_row_bitmaps): Don't clear vertical window
427ec082 12450 border to the left.
26901792
DL
12451
12452 * dispextern.h (struct glyph_row): Remove right_to_left_p. RMS
12453 says this aspect of Emacs is currently redesigned.
12454
12455 * xterm.c (x_clip_to_row): Subtract 1 from clip width if we
12456 have to draw a vertical border.
12457
12458 * window.c (window_scroll_pixel_based): When scrolling down by
12459 screen-fulls, make sure it.current_y doesn't get negative because
12460 this would confuse move_iterator_vertically.
12461
12462 * xdisp.c (move_iterator_vertically_backward): Bug fix for
12463 the case continuation lines are involved.
12464 (try_window_id): Don't set the cursor into scroll margins.
12465
124661998-02-08 Gerd Moellmann <gerd@gnu.org>
12467
12468 * xterm.c (x_append_glyph): Don't compute left_overhang and
12469 right_overhang.
12470 (XTproduce_glyphs): left_overhang and right_overhang removed.
12471 Set it->glyph_row->contains_overlapping_glyphs_p.
12472
12473 * xdisp.c (Fdump_redisplay_state): Output of glyph->left_overhang
12474 and right_overhang removed.
12475
12476 * dispextern.h (struct glyph_row): New member
12477 contains_overlapping_glyphs_p used to optimize glyph drawing.
12478 (struct display_iterator): left_overhang and right_overhang
12479 removed.
12480 (struct glyph): Ditto.
12481
12482 * xterm.c (x_draw_relief): Removed.
12483 (x_draw_bitmap): Renamed from draw_bitmap.
12484 (x_draw_glyphs): Completely new implementation of draw_glyphs
12485 capable of handling arbitrary lbearing and rbearing values.
12486 Several sub-functions not mentioned here.
12487
124881998-01-30 Gerd Moellmann <gerd@gnu.org>
12489
12490 * xterm.c (x_erase_phys_cursor): Clear area under the cursor only
427ec082 12491 if displaying hollow box cursor. draw_glyphs should handle
26901792
DL
12492 other cases.
12493 (draw_glyphs): Move start to the left and end to the right if they
427ec082 12494 overlap with previous or following characters.
26901792 12495 (draw_glyphs): If background is cleared for hl == DRAW_CURSOR,
427ec082 12496 make sure XDrawString uses function GXset. Otherwise the
26901792
DL
12497 character under the cursor would be invisible.
12498 (x_draw_bar_cursor): Don't draw over previous character if it
12499 has right_overhang.
12500
12501 * window.c (get_phys_cursor_glyph): Return the glyph under a
12502 window's physical cursor.
427ec082 12503
26901792
DL
12504 * xterm.c (x_draw_hollow_cursor): Use get_phys_cursor_glyph.
12505 (x_draw_bar_cursor): Ditto.
12506 (x_erase_phys_cursor): Ditto.
12507 (x_phys_cursor_in_rect_p): Ditto.
12508 (x_display_and_set_cursor): Remove reference to w->phys_cursor_glyph.
12509
12510 * window.c (make_window): Remove reference to phys_cursor_glyph.
12511 (replace_window): Ditto.
12512
12513 * window.h (struct window): Remove phys_cursor_glyph. There is
427ec082 12514 now always a glyph present for placing the cursor on it in
26901792
DL
12515 each glyph row, even at the end of a line.
12516
12517 * xdisp.c (append_space): Function to add a space to an iterators
12518 glyph row.
12519 (display_line): Add spaces at the end of lines that are used to
12520 place the cursor on them.
12521 (compute_line_metrics): If row consists of a space only that was
427ec082 12522 added to place the cursor on it, use that space's height as the
26901792
DL
12523 line height.
12524
125251998-01-29 Gerd Moellmann <gerd@gnu.org>
12526
12527 * xdisp.c (Fdump_redisplay_state): Dump left and right overhang of
12528 glyphs.
12529
125301998-01-28 Gerd Moellmann <gerd@gnu.org>
12531
12532 * xterm.c (x_append_glyph): Set overhang of glyph from iterator.
12533 (XTproduce_glyphs): Set it->left_overhang and it->right_overhang.
12534
12535 * dispextern.h (struct glyph): Add left_overhang and
427ec082 12536 right_overhang.
26901792
DL
12537 (struct display_iterator): Ditto.
12538
12539 * dispnew.c (direct_output_for_insert): Give up if newly inserted
12540 glyphs have different ascent or descent than original row.
12541
12542 * xdisp.c (compute_line_metrics): Compute row->max_ascent and
12543 row->max_descent only if unknown.
12544 (display_line): Compute row->max_ascent and row->max_descent.
12545 (display_string): Ditto.
12546
12547 * window.h (struct window): New members phys_cursor_ascent and
427ec082 12548 phys_cursor_descent.
26901792
DL
12549
12550 * xterm.c (x_phys_cursor_in_rect_p): Use them.
12551 (x_draw_hollow_cursor): Ditto.
12552 (x_erase_phys_cursor): Ditto.
12553 (x_display_and_set_cursor): Set them.
12554 (x_append_glyph): Don't set glyph members that were removed.
12555
12556 * dispextern.h (struct glyph): Members ascent, descent,
12557 contributes_to_line_height_p removed.
12558
125591998-01-25 Gerd Moellmann <gerd@gnu.org>
12560
12561 * dispextern.h (DEFAULT_FACE_ID, MODE_LINE_FACE_ID): Symbolic
12562 names for face ids of frame default face and mode line face.
12563
12564 * xdisp.c (compute_face_at_iterator_string_position): If
12565 displaying a mode line use MODE_LINE_FACE_ID instead of
12566 DEFAULT_FACE_ID.
12567
12568 * xdisp.c (reseat_iterator_to_string): Additional parameter start.
12569 (display_string): Ditto, additional parameter lisp_string.
12570 (display_line): Call display_string with Lisp mini-buffer prompt
12571 string.
12572 (display_menu_bar): Call display_string with Lisp string.
12573 (display_mode_element): Ditto.
12574 (next_element_from_string): Make it work for non-overlay Lisp
12575 strings with field width and precision.
12576
12577 * minibuf.c (minibuffer-prompt-in-buffer): Bound if
12578 PROMPT_IN_BUFFER.
12579
12580 * xfaces.c (compute_string_char_face): Fix face computation
12581 for overlay strings.
12582
12583 * xdisp.c (struct overlay_entry): Add member after_string_p.
12584 (load_overlay_strings): Simplify.
12585
12586 * window.c (delete_window): Defer glyph matrix adjustment.
12587 (Fsplit_window): Ditto.
12588 (change_window_height): Ditto.
12589 (Fset_window_configuration): Ditto.
12590 (Fset_window_margins): Ditto.
12591 * frame.c (set_menu_bar_lines): Ditto.
12592 (Fmake_terminal_frame): Ditto.
12593 * dispnew.c (change_frame_size_1): Ditto.
12594
125951998-01-24 Gerd Moellmann <gerd@gnu.org>
12596
12597 * xdisp.c (move_iterator_vertically_backward): Change algorithm.
12598
427ec082 12599 * dispnew.c (direct_output_for_insert): Give up if start
26901792
DL
12600 position has overlay strings.
12601
12602 * xdisp.c (display_line): Don't set cursor if row ends in middle
12603 of overlay string.
12604 (Fdump_redisplay_state): Print complete row start and end
12605 position.
12606 (redisplay_window): Cursor movement when matrix hasn't changed---
12607 if PT < last_point, maybe move forward if row ends at PT and
12608 in middle of char.
12609
12610 * minibuf.c (read_minibuf): Save the value of
12611 minibuffer_prompt_length in minibuf_save_list.
12612 (read_minibuf_unwind): Restore minibuffer_prompt_length.
12613
12614 * xdisp.c (redisplay_window): Add assertion for cursor movement
12615 case, PT < last_point.
12616 (move_iterator_in_display_line_to): If to_pos specified, move
12617 over before-strings.
12618
12619 * dispextern.h (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Test
12620 start.string_index > 0.
12621
12622 * xdisp.c (redisplay_internal): Adjust glyphs if fonts_changed_p
12623 is set. Retry redisplay if fonts_changed_p is set before update.
12624
12625 * xterm.c (x_load_font): Set fonts_changed_p.
12626
12627 * xfaces.c (Fset_face_attribute_internal): Set fonts_changed_p.
12628
12629 * dispnew.c (adjust_glyphs_for_font_change): Removed.
12630
12631 * xdisp.c (try_window): Check fonts_changed_p.
12632 (try_window_reusing_current_matrix): Ditto.
12633 (try_window_id): Ditto.
12634
12635 * dispnew.c (adjust_glyphs_for_font_change): Set fonts_changed_p.
12636 (fonts_changed_p): Flag indicating a font change since the last
12637 glyph matrix adjustment.
12638
12639 * xterm.c (x_per_char_metric): Use font->max_bounds as
12640 char metric of the font's default char if the default char
12641 hasn't per char metric itself.
12642
12643 * xfaces.c (Fset_face_attribute_internal): Adjust glyphs
12644 for font change.
12645 (min_char_bounds): Check face->font != NULL.
427ec082 12646 (font_min_bounds): Return minimum font metrics. Capture the
26901792
DL
12647 case of invalid min_bounds contents.
12648 (min_char_bounds): Call font_min_bounds.
12649
126501998-01-22 Gerd Moellmann <gerd@gnu.org>
12651
12652 * xdisp.c (start_display): Don't set it->prompt_width if
12653 PROMPT_IN_BUFFER.
12654 (move_iterator_in_display_line_to): Ditto.
12655 (display_line): Don't display prompt via display_string if
12656 PROMPT_IN_BUFFER.
12657
12658 * minibuf.c (Fminibuffer_prompt_width): Return value from
12659 current_buffer if PROMPT_IN_BUFFER.
427ec082 12660 (read_minibuf): If PROMPT_IN_BUFFER, insert prompt into
26901792
DL
12661 mini-buffer and make it read-only.
12662 (Fminibuffer_complete_and_exit): If PROMPT_IN_BUFFER, use
12663 minibuffer_prompt_length instead of BEGV.
12664 (Fminibuffer_complete_word): Ditto.
12665 (Fminibuffer_complete_word): Ditto.
12666
12667 * insdel.c (del_range_1): If PROMPT_IN_BUFFER, and start position
12668 is less than mini-buffer prompt width, use prompt width as start.
12669
12670 * editfns.c (make_buffer_string): If PROMPT_IN_BUFFER, and start
12671 position is less than mini-buffer prompt width, use the prompt
12672 width as start.
12673
12674 * cmds.c (Fbeginning_of_line): If PROMPT_IN_BUFFER, set point to
12675 end of prompt if applied to a mini-buffer and BEG reached.
12676
126771998-01-21 Gerd Moellmann <gerd@gnu.org>
12678
12679 * editfns.c (make_buffer_string): If PROMPT_IN_BUFFER, add prompt
12680 length to start position.
12681
12682 * buffer.c (Fget_buffer_create): Initialize
12683 minibuffer_prompt_length.
12684 (Fmake_indirect_buffer): Ditto.
12685 (Fkill_buffer): Ditto.
12686
12687 * buffer.h (struct buffer): Add member minibuffer_prompt_length
12688 if PROMPT_IN_BUFFER.
12689
126901998-01-19 Gerd Moellmann <gerd@gnu.org>
12691
12692 * xdisp.c (next_element_from_string): Make it work for arbitrary
12693 Lisp strings.
12694 (set_iterator_to_next): Advance to next overlay string only
12695 if it->string is an overlay string.
12696
12697 * dispextern.h (struct display_iterator):
12698 next_ovstr_face_check_pos renamed next_string_face_check_pos.
12699
427ec082 12700 * xfaces.c (compute_string_char_face): Compute face for
26901792
DL
12701 arbitrary Lisp string. Renamed from compute_overlay_string_char_face.
12702
12703 * xdisp.c (next_element_from_string): Renamed from
12704 next_element_from_overlay_string.
427ec082 12705 (compute_face_at_iterator_string_position): Renamed from
26901792
DL
12706 compute_face_at_iterator_overlay_string_position.
12707
12708 * dispextern.h (struct display_iterator): Member overlay_string
12709 renamed string.
12710
12711 * xdisp.c (next_element_from_c_string): Renamed from
12712 next_element_from_string.
12713
12714 * dispextern.h (struct glyph_pos): Reversed meaning of
12715 overlay_string_index and string_index.
12716
12717 * xdisp.c (next_element_from_overlay_string): Fix bug that made
12718 this function always return the first character of an overlay
12719 string.
12720
127211998-01-18 Gerd Moellmann <gerd@gnu.org>
12722
12723 * xdisp.c (reseat_iterator): Set next_invisible_check_pos only if
12724 forced or new pos > next_invisible_check_pos.
12725 (redisplay_window): Don't try same window start if PT < window
12726 start.
12727 (move_iterator_vertically): Bug fix satisfying post-condition
12728 when ZV is reached and no newline in front.
12729 (move_iterator_vertically_backward): New implementation.
12730 (move_iterator_vertically_backward): Bug fixes.
12731
12732 * xterm.c (XTmouse_position): Change call to min_char_bounds.
12733 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Ditto.
12734 (adjust_glyphs_for_font_change): Always adjust.
12735
12736 * dispnew.c (struct dim): Use int.
12737
12738 * xfaces.c (Fset_face_attribute_internal): Set face->font_name;
12739 (allocate_face): Initialize it.
12740 (load_font): Use XLoadQueryFont again instead of x_load_font.
12741 (unload_font): Use XFreeFont again.
12742 (min_char_bounds): Iterate over fonts of faces. Use frame's
12743 font sizes as default. Remove parameter except_last_font_p.
12744
12745 * dispextern.h (struct face): Add font_name.
12746
127471998-01-17 Gerd Moellmann <gerd@gnu.org>
12748
12749 * xdisp.c (move_iterator_vertically): Check post-condition. Move
12750 to start of line if ending at ZV and no newline in front.
12751 (move_iterator_to): If to_y specified, always first move to x = 0,
12752 so that move stops at line start instead of line end. This is
12753 probably what callers would expect to happen.
12754
12755 * window.c (window_scroll_pixel_based): Pixel-based scrolling that
12756 can handle different line heights.
12757 (window_scroll_line_based): Formerly window_scroll.
12758 (window_scroll): Call both.
12759
12760 * xdisp.c (start_display): Exclude code if PROMPT_IN_BUFFER.
12761 (move_iterator_in_display_line_to): Ditto.
12762 (display_line): Ditto.
12763
12764 * minibuf.c (read_minibuf): Conditionally insert prompt into
12765 buffer instead of handling prompts specially. Change other
12766 functions accordingly. All such code is in #if PROMPT_IN_BUFFER.
12767
12768 * dispnew.c (adjust_glyph_matrix): Optimize the handling of C-x 2,
12769 upper window. Optimize calls to xrealloc if same width.
12770
12771 * xdisp.c (redisplay_window): Don't use
12772 try_window_reusing_current_matrix if window scroll functions
12773 exist.
12774
12775 * dispextern.h (struct display_iterator): Member
12776 redisplay_end_trigger_p removed.
12777
12778 * dispextern.h (WINDOW_DISPLAY_PIXEL_HEIGHT_WITHOUT_MODE_LINE):
12779 Renamed to WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
12780
127811998-01-16 Gerd Moellmann <gerd@gnu.org>
12782
12783 * xdisp.c (move_iterator_by_lines): Optimize for truncate-lines
12784 nil. Optimize truncate-lines t and moving backward.
12785 (move_iterator_to_previous_visible_line_start): Contains the heart
12786 of the previous set_iterator_to_previous_visible_line_end. Don't
12787 reseat the iterator. Used by move_iterator_by_lines.
12788 (set_iterator_to_previous_visible_line_start): Call function
12789 above.
12790 (move_iterator_in_display_line_to): Check TO_POS before doing
12791 anything else. Otherwise to_pos == PT would move to x of PT+1.
12792
12793 * indent.c (Fvertical_motion): Use display_iterator.
12794
12795 * xdisp.c (move_iterator_by_lines): New function moving by screen
12796 lines.
12797 (redisplay_window): Use it.
12798 (move_iterator_to): Correct branch of to_vpos specified.
12799 (move_iterator_vertically_backward): Increment nlines after having
12800 backed up over some lines because the last line was not backed up
12801 over.
12802 (move_iterator_via_matrix): Look for it->pos in the matrix, and
12803 calculate it->vpos and it->current_y relative to this row.
427ec082 12804 (move_iterator_via_matrix): Set in #if 0. It doesn't seem to
26901792
DL
12805 have a big effect and it is complex.
12806 (move_iterator_to): Call to move_iterator_via_matrix in #if 0.
12807
128081998-01-15 Gerd Moellmann <gerd@gnu.org>
12809
12810 * xterm.c (x_draw_relief): Simplify drawing and draw so that lines
12811 join nicely. Lines with widths > 2 don't join nicely under X.
12812 * xterm.h (struct x_output): Remove member relief_gc_line_width.
12813 * widget.c (setup_frame_gcs): Initialize relief GC's to line
12814 width 1; remove references to relief_gc_line_width.
12815 * xfns.c (x_make_gc): Ditto.
12816
12817 * xfaces.c (Fset_face_attribute_internal): Set frame garbaged
12818 if relief changes.
12819 (Fset_face_attribute_internal): Use XINT instead of XFASTINT
12820 to get a relief because they can be negative.
12821
12822 * xterm.c (x_draw_relief): Correct line drawing positions. Pixel
12823 positions are for the middle of lines under X.
12824
12825 * xdisp.c (try_window_id): Always search for the cursor by setting
12826 w->cursor.vpos = -1. Search in unchanged rows at the top and
12827 bottom if cursor not found in displayed lines.
427ec082 12828 (display_mode_line): First extend face, then set right shadow
26901792
DL
12829 flag. Otherwise the wrong glyph gets the right shadow.
12830
12831 * dispnew.c (direct_output_for_insert): Give up if line contains
12832 a tab. The number of spaces inserted for a tab changes if we
12833 insert glyphs in front of it.
12834
12835 * xterm.c (x_list_fonts): Changes undone because the Lisp
12836 implementation for make-face-smaller, make-face-larger, and
12837 make-face-fixed can do without them.
12838
12839 * xfns.c (Fx_list_fonts): Original x-list-fonts from x-list-font.c
12840 inserted.
12841
12842 * xdisp.c (try_window_id): First compute beg_unchanged, then
12843 compare with window start pos.
12844
12845 * xfns.c (Fx_face_fixed_p): Determine whether a face has a
12846 fixed-width font.
12847 (syms_of_xfns): defsubr for x-face-fixed-p.
12848
12849 * xterm.c (x_erase_phys_cursor): If row containing cursor is not
12850 enabled, don't do anything because this row will be newly drawn
12851 anyway and because we can additionally no longer determine the row
12852 height.
12853
12854 * xdisp.c (display_line): Bug fix cursor positioning.
12855
12856 * xfns.c (x-list-fonts): Copied from x-list-fonts.c; #include
12857 removed. x-list-fonts.c is now obsolete.
12858 (Qfixed, Qvariable): Moved here from xfaces.c.
12859
128601998-01-14 Gerd Moellmann <gerd@gnu.org>
12861
12862 * xdisp.c (display_line): Set row->ends_at_zv_p based on
12863 FETCH_BYTE for truncated lines.
12864 (display_line): Set cursor differently.
12865 (display_line): Fixed bug setting last_pos_on_this_line wrong
12866 for truncated lines.
12867
12868 * dispnew.c (adjust_glyph_matrix): Always adjust for frame-based
12869 redisplay.
12870
12871 * window.c (Fsplit_window): Adjust glyphs before setting buffer.
12872
12873 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Add
12874 assertion that character dimensions are not zero.
12875
12876 * xterm.c (x_load_font): adjust_glyphs_for_font_change while
12877 input is blocked.
12878
12879 * xdisp.c (decode_mode_spec): Faster implementation of line number
12880 display.
12881
12882 * xterm.c (x_draw_row_bitmaps): Clear flags area before drawing
12883 bitmaps if bitmaps don't fill the entire area.
12884 (draw_bitmap): Draw bitmaps horizontally centered in flags area.
12885
427ec082 12886 * xterm.h (FRAME_FLAGS_BITMAP_HEIGHT): Macro giving the
26901792
DL
12887 pixel height of flags bitmaps.
12888
12889 * frame.h (FRAME_FLAGS_AREA_COLS): Use FRAME_X_FLAGS_AREA_COLS.
12890 (FRAME_FLAGS_AREA_WIDTH): Ditto.
12891
12892 * xterm.h (FRAME_FLAGS_BITMAP_WIDTH): Macro giving the width
12893 in pixels of a flags area of a frame.
12894 (FRAME_X_FLAGS_AREA_WIDTH): Removed.
12895 (FRAME_X_FLAGS_AREA_COLS): Macro giving the number of columns
12896 occupied by a flags area.
12897
128981998-01-13 Gerd Moellmann <gerd@gnu.org>
12899
12900 * xdisp.c (hscroll_window_tree): Remove test for non-nil
12901 window_end_valid.
12902
12903 * dispnew.c (adjust_glyph_matrix): Check redisplay_p if
12904 GLYPH_DEBUG != 0.
12905
12906 * xdisp.c (display_line): Correct wrong calculation of row->x for
12907 the case of nglyphs == 1.
12908 (hscroll_window_tree): Renamed from hscroll_windows.
12909 (hscroll_windows): New function calling hscroll_window_tree that
12910 clears desired matrices on a frame when hscroll has been changed.
12911 (redisplay_p): Global flag set during redisplay.
12912 (redisplay_internal): Set and clear redisplay_p.
12913
12914 * xfaces.c (min_char_bounds): Add assertion that width and height
12915 are not zero at the end. Initialize *height and *width to -1,
12916 instead of using BITS_PER_SHORT. If font has min_bounds.width
12917 zero, use its max_bounds.width.
12918
12919 * x-list-font.c (Fx_list_fonts): Check INTEGERP or FLOATP for
12920 width and height.
12921
129221998-01-12 Gerd Moellmann <gerd@acm.org>
12923
12924 * dispnew.c (adjust_glyph_matrix): Do nothing if sizes haven't
12925 changed. Don't clear desired matrices.
12926
12927 * xdisp.c (hscroll_windows): Compute pt after setting
12928 current_buffer.
12929 (redisplay_window): Don't do cursor movement based on current
12930 matrix if just_this_one_p is zero.
12931
12932 * x-list-font.c (Fx_list_fonts): Additional parameter fixed.
427ec082 12933 specifying that fixed-width, variable-width fonts or both
26901792
DL
12934 should be returned.
12935
12936 * xfaces.c (Qfixed, Qvariable): Symbols for use by x-list-fonts.
12937 (syms_of_xfaces): Initialize them.
12938
12939 * xterm.c (x_list_fonts): Include auto-scaled fonts. Extend
12940 cached information.
12941
129421998-01-11 Gerd Moellmann <gerd@acm.org>
12943
12944 * xdisp.c (display_mode_line): Extend face to end of line.
12945
12946 * xdisp.c (echo_area_display): Don't call display_string with
12947 echo_area_glyphs_length == 0 which would mean infinite precision.
12948 (redisplay_internal): Adjust window_end_vpos if necessary.
12949
129501998-01-07 Gerd Moellmann <gerd@acm.org>
12951
12952 * xdisp.c (display_line): Set it->ends_at_zv_p differently.
12953
129541998-01-05 Gerd Moellmann <gerd@acm.org>
12955
12956 * xdisp.c (get_row_start_continuation_line_width): Removed.
12957 (init_iterator_to_row_start): Set it.current_x from row.
12958 (try_window_id): Set it.continuation_lines_width directly from
12959 row.
12960
12961 * xdisp.c (hscroll_windows): Use w->pointm if window is not
12962 selected_window.
12963 (hscroll_windows): Center cursor in window.
12964 (hscroll_windows): Call move_iterator_in_display_line_to.
12965
129661998-01-04 Gerd Moellmann <gerd@acm.org>
12967
12968 * xdisp.c (hscroll_windows): Check hscroll < 0.
12969 (redisplay_window): Allow quick cursor movement if overlay arrow
12970 but frame uses window-based redisplay.
12971 (display_line): Take special case for nglyphs == 1 out of #if 0.
12972 (display_line): Set row->ends_at_zv_p after the loop displaying
12973 glyphs because ZV can be in truncated text.
12974 (hscroll_windows): Use init_iterator_to_row_start.
12975
12976 * dispnew.c (scrolling_window): Calculation of overlapping
12977 runs fixed.
12978 (row_equal_p): Compare continued_p and continuation_line_p.
12979
129801998-01-02 Gerd Moellmann <gerd@acm.org>
12981
12982 * xterm.c (x_get_mode_line_face_gc): Renamed from
12983 x_get_modeline_face_gc.
12984
12985 * xdisp.c (TEXT_PROP_DISTANCE_LIMIT): Max. distance from current
12986 buffer position to look for text properties.
12987 (get_face_from_cursor_pos): Use it.
12988 (compute_face_at_iterator_position): Use it.
12989 (next_element_from_buffer): Use it.
12990
12991 * dispnew.c (scrolling_window): Decrement run's y-position
12992 when extending it backwards.
12993
12994 * xterm.c (do_line_dance): Don't ever copy more than window height.
12995
129961998-01-01 Gerd Moellmann <gerd@acm.org>
12997
12998 * xdisp.c (redisplay_window): Cursor motion in unchanged
12999 matrix---use MATRIX_ROW_.*_IN_MIDDLE_OF_CHAR_P.
13000 (init_iterator_to_next_row_start): Special handling of lines
13001 ending in middle of char removed.
13002 (hscroll_windows): Hscroll windows only if window_end_valid is not
13003 nil.
13004 (try_window_reusing_current_matrix): Call hscroll_windows.
13005 (init_iterator_to_row_start): Initialize iterator for display
13006 starting at a position given by a glyph_row->start.
13007 (redisplay_window): Don't use vmotion because it gives wrong
13008 results if lines are continued and variable width fonts are used.
13009
427ec082 13010 * dispextern.h (struct glyph_pos): New member dpvec_index.
26901792
DL
13011 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test if row ends in the
13012 the middle of a character.
427ec082 13013 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Test if row starts in
26901792
DL
13014 the middle of a character.
13015
13016 * xdisp.c (set_iterator_to_next): Increment it->dpvec_index, reset
13017 it.
13018 (next_element_from_display_vector): Use it->dpvec_index.
13019 (reseat_iterator): Reset it.
13020 (init_iterator): Reset it.
13021 (setup_iterator_dpvec_from_glyph_pos): Set up it->dpvec and
13022 it->pos.dpvec_index from a glyph_pos structure.
13023 (init_iterator_from_glyph_pos): Call the function above.
13024 (reseat_iterator_to_glyph_pos): Ditto.
13025
13026 * dispnew.c (direct_output_forward_char): Don't use this method at
13027 overlay boundaries or near invisible text.
13028 (direct_output_forward_char): Step through glyph row to find
13029 cursor position.
13030
427ec082 13031 * xterm.c (x_get_cursor_gc): Don't return cursor_gc for font ==
26901792
DL
13032 frame font if line height differs from font height.
13033
13034 * xdisp.c (set_iterator_to_next): Renamed from
13035 move_iterator_forward to avoid confusion with other move_.*
13036 functions.
13037
13038 * dispextern.h (FACE_RELIEF_P): Renamed from FACE_3D_P.
13039
130401997-12-31 Gerd Moellmann <gerd@acm.org>
13041
13042 * xterm.c (x_get_cursor_gc): Renamed from x_cursor_gc to use the
13043 same naming convention as for other GC functions.
13044 (draw_glyphs): Don't fill background when drawing a cursor and
13045 font height is less than line height.
13046
130471997-12-30 Gerd Moellmann <gerd@acm.org>
13048
13049 * xdisp.c (init_display_iterator.*): Renamed to shorter names
13050 init_iterator_.*.
13051
13052 * xdisp.c (move_iterator_forward): Restore it->len from
13053 it->dpvec_char_len if dpend reached.
13054 (get_next_display_element): Don't consume translated char
13055 prematurely.
13056 (display_line): Don't set this_.* variables if row is continued.
13057 (start_display): Move to start of continuation line if ending
13058 up at end of continued line.
13059
13060 * dispextern.h (struct display_iterator): New member dpvec_char_len.
13061
13062 * xdisp.c (move_iterator_in_display_line_to): Check TO_POS after
13063 checking TO_X and continuation lines.
13064 (get_last_unchanged_at_beg_row): If first_changed_pos is the end
13065 of a continued line, don't consider this line as unchanged because
13066 it may no longer be continued.
13067
130681997-12-29 Gerd Moellmann <gerd@acm.org>
13069
13070 * xdisp.c (try_window_id): Catch the case that moving over
13071 continuation lines moves first_unchanged_at_end_row to a row not
13072 displaying text.
13073
13074 * dispextern.h (struct glyph_row): New member
13075 continuation_lines_width. Member continuation_line_p removed.
427ec082 13076 (MATRIX_ROW_CONTINUATION_LINE_P): Non-zero if row displays a
26901792
DL
13077 continuation line.
13078 * xdisp.c (display_line): Set row->continuation_lines_width.
13079 (get_row_start_continuation_line_width): Set continuation lines
13080 width of iterator from continuation lines width of glyph row.
13081 (get_row_start_continuation_line_width): Make it inline.
13082 (set_window_cursor): Make it inline.
13083 (try_window_id): Use MATRIX_ROW_CONTINUATION_LINE_P.
13084 (Fdump_redisplay_state): Ditto.
427ec082 13085
26901792
DL
13086 * dispnew.c (update_window_line): Use MATRIX_ROW_CONTINUATION_LINE_P.
13087 * xterm.c (x_draw_row_bitmaps): Use MATRIX_ROW_CONTINUATION_LINE_P.
13088
13089 * xdisp.c (try_window_id): Set it.hpos and it.current_x to zero
13090 after determining the continuation lines width for
13091 last_unchanged_at_beg_row.
13092
13093 * xterm.c (x_draw_row_bitmaps): Let overlay arrow have precedence.
13094
13095 * xdisp.c (display_mode_line): Handle 3D faces only on frames
13096 which support faces.
13097 (init_display_iterator): Ditto.
13098 (move_iterator_via_matrix): Skip over truncation glyph at the row
13099 start on terminal frames.
13100 (hscroll_windows): Choose hscroll margin differently for window
13101 system and terminal frames.
13102
131031997-12-28 Gerd Moellmann <gerd@acm.org>
13104
13105 * xdisp.c (hscroll_windows): Change hscroll of windows.
13106 (redisplay_internal): Call it.
13107
427ec082 13108 * dispnew.c (direct_output_for_insert): Give up if a glyph
26901792
DL
13109 doesn't fit completely on the line.
13110 (direct_output_forward_char): Give up for non-ASCII chars.
13111 (direct_output_forward_char): Set redisplay_performed_directly_p.
13112
13113 * dispextern.h (struct display_iterator): Make first_visible_x
13114 and last_visible_x ints; this is for very long truncated lines.
13115
13116 * xdisp.c (move_iterator_in_display_line_to): Separate check for
13117 MOVE_X_REACHED only if it->nglyphs == 0. This fixes cursor
13118 positioning problems with the mouse.
13119 (move_iterator_in_display_line_to): Truncate lines if it->current_x
13120 >= it->last_visible_x instead of >.
13121 (display_line): Ditto.
13122
13123 * xterm.c (draw_glyphs): Draw rectangles if font could not be
13124 loaded.
13125 (XTproduce_glyphs): Calculate pixel_width for composite chars and
13126 non-ASCII chars differently. Always produce 1 glyph for composite
13127 chars. If font not found, use CHARSET_WIDTH to calculate width of
13128 non-ASCII chars.
13129 (x_get_char_font_and_encoding): Return null if font could not be
13130 loaded. Reset font to null if fontset could not be loaded.
13131 (draw_glyphs): Fill background if font not found.
13132 (draw_glyphs): Unused parameter just_foreground_p removed. New
13133 parameter composite_glyph.
13134 (draw_glyphs): Use enumeration for parameter hl.
427ec082 13135 (draw_glyphs): Pass a display area relative x-position to
26901792
DL
13136 draw_glyphs when calling it recursively for composite chars.
13137
131381997-12-27 Gerd Moellmann <gerd@acm.org>
13139
13140 * xterm.c: Patches from handa.etl.go.jp integrated.
13141 (draw_glyphs): Don't rely on x_get_char_font_and_encoding to
13142 find a font_info.
13143
13144 * xdisp.c (move_iterator_in_display_line_to): Check to_x
13145 for nglyphs == 1.
13146
13147 * xterm.c (x_draw_relief): Draw relief lines.
13148 (draw_glyphs): Call x_draw_relief.
13149
131501997-12-26 Gerd Moellmann <gerd@acm.org>
13151
13152 * xfns.c (x_make_gc): Create relief GC's.
13153
13154 * widget.c (create_frame_gcs): Create GC's for relief drawing.
13155 (setup_frame_gcs): Initialize them.
13156 (EmacsFrameDestroy): Free them.
13157
427ec082 13158 * xdisp.c (try_window_id): Get continuation lines width if
26901792
DL
13159 last_unchanged_at_beg_row is continued or a continuation line.
13160 (move_iterator_via_matrix): Don't do it for mini-buffer windows.
427ec082 13161 (redisplay_window): Case point has changed, and it has not
26901792
DL
13162 moved off the frame. Don't increment row if PT equals the row
13163 end if the row ends in ZV.
13164
13165 * xterm.c (x_draw_row_bitmaps): New function to draw bitmaps.
13166 (expose_line): Call it.
13167 (x_after_update_window_line): Call it.
13168
13169 * xdisp.c (display_line): Reset continuation_lines_width when ZV
13170 reached.
13171
13172 * xterm.c (x_after_update_window_line): Draw continuation line
13173 bitmap.
13174
13175 * dispnew.c (update_window_line): Call
13176 after_update_window_line_hook when row's continuation_line_p
13177 changes.
13178
13179 * xterm.c (draw_bitmap): Draw new bitmap CONTINUATION_LINE_BITMAP.
13180
13181 * xdisp.c (display_line): Handle continued lines on window system
13182 frames differently since continuation glyphs are not displayed.
13183 (move_iterator_in_display_line_to): Ditto.
13184 (move_iterator_in_display_line_to): Take the mini-buffer prompt
13185 into account.
13186 (move_iterator_vertically_backward): Handle dy == 0 specially.
13187 (redisplay_window): Catch the case of small windows when
13188 recentering where moving back window_height/2 moves us beyond the
13189 top of the display area of the window.
13190
131911997-12-18 Gerd Moellmann <gerd@acm.org>
13192
13193 * xdisp.c (move_iterator_vertically_backward): Unused parameter
13194 dvpos removed.
13195
131961997-12-17 Gerd Moellmann <gerd@acm.org>
13197
13198 * dispnew.c (direct_output_forward_char): Correct new cursor
13199 x-position.
13200
132011997-12-16 Gerd Moellmann <gerd@acm.org>
13202
13203 * xterm.c (x_after_update_window_line): Remove unused parameters.
13204 (XTclear_end_of_line): Clear to display_height instead of
13205 display_height - 1.
13206
13207 * dispnew.c (set_frame_matrix_frame): Make it INLINE.
427ec082 13208 (update_window_line): Call after_update_window_line_hook if
26901792
DL
13209 rows have different y-positions, or different height.
13210
132111997-12-14 Gerd Moellmann <gerd@acm.org>
13212
13213 * frame.h (FRAME_MODE_LINE_PIXEL_HEIGHT): Removed.
13214
13215 * window.c (coordinates_in_window): Call frame_mode_line_height.
13216
13217 * xterm.c (x_draw_3d_border): Removed.
13218 (x_draw_row_borders): Removed.
13219
13220 * dispnew.c (update_window): References to
13221 FRAME_MODE_LINE_BORDER_WIDTH removed.
13222
13223 * xterm.h (FRAME_MODE_LINE_BORDER_WIDTH): Removed.
13224 (FRAME_MODE_LINE_HEIGHT): Removed.
13225
13226 * xterm.c (draw_3d_borders_p): Removed.
13227 (draw_glyphs): Ditto.
13228 (XTwrite_glyphs): Ditto.
13229 (expose_line): Ditto.
13230 (x_initialize): Ditto.
13231
13232 * dispextern.h (WINDOW_DISPLAY_MODE_LINE_HEIGHT): Call
13233 frame_mode_line_height.
13234
13235 * term.c (frame_mode_line_height): Get the pixel height of a
13236 frame's mode line.
13237 (frame_mode_line_height_hook): Hook to implement system dependent
427ec082
SS
13238 versions.
13239
26901792
DL
13240 * xterm.c (x_initialize): Set the hook.
13241 (XTframe_mode_line_height): X version of frame_mode_line_height.
13242
13243 * xdisp.c (echo_area_display): Call gobble_input to flush the X
13244 output buffer.
13245 (display_string): Don't add right truncation mark if line ends in
13246 padding space.
13247 (init_display_iterator): If called with modeline_p non-zero, set
13248 face_id to 1, which is the id of the mode line face.
13249
13250 * keyboard.c (cmd_error_internal): Write to stderr if selected
13251 frame is Vterminal_frame under X. This is the case when a font
13252 cannot be loaded when Emacs starts. Replace test for
13253 FRAME_MESSAGE_BUF with test for glyphs_initialized_p.
13254
13255 * xfaces.c (compute_overlay_string_char_face): Compute the
13256 face of a character in an overlay string.
13257 * xterm.h (compute_overlay_string_char_face): Prototype.
427ec082 13258 * xdisp.c (compute_face_at_iterator_overlay_string_position):
26901792
DL
13259 Use it.
13260
13261 * xdisp.c (set_iterator_to_next_overlay_string): Formerly
13262 set_iterator_to_next_overlay.
13263 (struct overlay_entry): Structure used to sort overlay strings.
13264 (compare_overlay_entries): Compare overlay strings.
13265 (load_iterator_with_overlay_strings): Load a chunk of overlay
13266 strings.
13267 (get_overlay_strings_at_iterator_position): Call it.
13268 (next_element_from_overlay_string): Set it->object to the overlay
13269 string. Prepare for setting it->position to a string position.
13270 (get_overlay_strings_at_iterator_position): Renamed from
13271 get_overlays_at_iterator_position.
13272 (setup_iterator_overlay_strings_from_glyph_pos): Changed to load
13273 chunks of overlay strings.
13274 (load_overlay_strings): Renamed from load_iterator_overlay_strings.
13275
13276 * dispextern.h (struct display_iterator): New vector
13277 overlay_strings and new member n_overlay_strings---formerly
427ec082
SS
13278 overlays and n_overlays.
13279 (struct glyph_pos): Remove after_string_p; overlay_index
26901792
DL
13280 renamed to string_index.
13281
132821997-12-13 Gerd Moellmann <gerd@acm.org>
13283
13284 * xdisp.c (copy_iterator): Increment n_iterator_overlay_vectors
13285 when allocating a vector.
13286 (release_iterator): Removed.
13287 (restore_iterator): Removed.
13288 (copy_iterator): Removed.
13289
132901997-12-08 Gerd Moellmann <gerd@acm.org>
13291
13292 * xdisp.c (redisplay_window): Use make_empty_enabled_row for
13293 clearing a mini-buffer window that is not active.
13294 (redisplay_window): Do not scroll one line too early when last
13295 window line is completely visible.
13296 (init_display_iterator): Leave some room to display the cursor
13297 after the last glyph on a continued line.
13298
13299 * xterm.h (struct x_output): trunc_area_extra renamed
13300 flags_areas_extra.
13301 (FRAME_X_FLAGS_AREA_WIDTH): Renamed from FRAME_X_TRUNC_WIDTH.
13302
13303 * dispnew.c (update_window_line): Call
13304 after_update_window_line_hook when current row is not enabled
13305 which is the case after a frame has been cleared.
13306
13307 * xdisp.c (display_mode_line): Reset row flags for truncation
13308 on right side for the mode line.
13309
13310 * xterm.c (bitmap_type): Type of bitmap to display in flags
13311 area of frame.
13312 (x_after_update_window_line): Use the enum.
13313 (draw_bitmap): Ditto.
13314
133151997-12-07 Gerd Moellmann <gerd@acm.org>
13316
13317 * xterm.c (x_clip_to_row): Include width of both flag areas.
13318 (do_line_dance): Ditto.
13319 (expose_window_tree): Ditto.
13320 * dispnew.c (update_window_line): Call
13321 after_update_window_line_hook for right truncation and continuation.
13322 * xdisp.c (init_display_iterator): Don't subtract width of
13323 continuation glyphs for window-based redisplay.
13324 * xterm.c (draw_bitmap): Draw continuation bitmap.
13325 * widget.c (set_frame_size): Double trunc_area_extra.
13326 (EmacsFrameSetCharSize): Ditto.
13327 * xfns.c (x_figure_window_size): Ditto.
13328 * xterm.c (x_set_window_size): Ditto.
13329 (x_after_update_window_line): Draw right truncation mark.
13330
13331 * xterm.c (draw_glyphs): Bug fix buffer overrun.
13332
13333 * window.h: Include blocker around dispextern.h removed.
13334
13335 * eval.c (Feval): Check interrupt_input_block == 0.
427ec082 13336
26901792
DL
13337 * dispextern.h (struct display_iterator): Former ovstr made a
13338 Lisp_Object overlay_string. New next_ovstr_face_check_pos and
13339 next_ovstr_invisble_check_pos; check at these positions for
13340 face changes and changes in invisible text property.
13341 (struct glyph_pos): Former ovlen now overlay_string_index.
13342
13343 * xdisp.c (setup_iterator_overlays_from_glyph_pos): Set
13344 overlay_string.
13345 (set_iterator_to_next_overlay_string): Set overlay_string and
13346 pos.overlay_string_index.
13347 (get_overlays_at_iterator_position): Use overlay_string and
13348 overlay_string_index.
13349 (next_element_from_overlay_string): Use overlay_string and
13350 overlay_string_index.
13351 (move_iterator_forward): Increment overlay_string_index.
13352 (try_window_id): Use overlay_string and overlay_string_index.
13353 (move_iterator_forward): At end of dpvec, maybe use method
13354 next_element_from_overlay_string for the case a character from an
13355 overlay string was translated via a display table.
13356 (reseat_iterator_to_string): Take a Lisp string.
13357 (display_string): Pass a Lisp string to reseat_iterator_to_string.
13358 (compute_face_at_iterator_overlay_string_position): Compute face
13359 based on text properties for an overlay string.
13360 (next_element_from_overlay_string): Check invisible and face text
13361 properties.
bb6677a8 13362
26901792
DL
13363 (set_iterator_to_next_overlay_string): Restore face id before
13364 overlay strings when no more overlay strings are found to return.
13365 Initialize next_ovstr_.*check_pos for each new overlay string
bb6677a8
GM
13366
13367 A line in the following paragraph was garbled for an unknown
13368 reason. It couldn't be fully reconstructed.
13369
13370 (compute_base_face): Made public.
26901792
DL
13371 (merge_face_list): Ditto.
13372 (intern_computed_face): Ditto.
13373
427ec082 13374 * xdisp.c (redisplay_window): Cursor movement in unchanged
26901792
DL
13375 window if PT > w->last_point. Goto try_to_scroll if bottom Y
13376 of row is > instead of >= last_y.
13377
13378 * buffer.h (overlays_at): Function prototype.
13379
13380 * xdisp.c (reseat_iterator_to_string): Clear iterator position.
13381 * dispextern.h (GET_NEXT_DISPLAY_ELEMENT): Removed.
13382
427ec082 13383 * xdisp.c (release_iterator): Release dynamically allocated
26901792
DL
13384 memory of a display_iterator.
13385 (copy_iterator): Copy an iterator.
13386 (restore_iterator): Restore an iterator from a backup copy.
13387 (global): Use the functions above.
13388 * window.c (Fpos_visible_in_window_p): Call release_iterator.
13389 * dispnew.c (direct_output_for_insert): Call release_iterator.
13390
13391 * dispextern.h (struct display_iterator): Allocate overlays
13392 vector dynamically.
13393
133941997-12-06 Gerd Moellmann <gerd@acm.org>
13395
13396 * Makefile.in (window.o): Depends on dispextern.h.
13397
13398 * buffer.c (overlays_at): Make it work when extending vectors
13399 and an initial vector of zero size.
13400
13401 * xdisp.c (set_iterator_to_previous_visible_line_end): Renamed
13402 from set_cursor_to_previous_visible_line_end.
13403 (set_iterator_to_next_visible_line_start): Renamed from
13404 set_cursor_to_next_visible_line_end.
13405 (set_next_iterator_stop_pos): Renamed from set_next_stop_pos.
13406 (compute_face_at_iterator_position): Renamed from
13407 compute_cursor_face.
13408 (set_iterator_to_next_overlay_string): Renamed from
13409 cursor_to_next_overlay_string.
13410 (get_overlays_at_iterator_position): Renamed from
13411 get_overlays_for_cursor.
13412 (reseat_iterator): Renamed from reseat_cursor.
13413 (setup_iterator_overlays_from_glyph_pos): Renamed from
13414 setup_overlays_from_pos.
13415 (init_string_iterator): Renamed from init_string_cursor.
13416 (get_next_display_element): Renamed from next_display_element.
13417 (move_iterator_forward): Renamed from advance_display_cursor.
427ec082 13418 (get_overlays_at_iterator_position): Allocate overlays vector
26901792
DL
13419 dynamically.
13420
13421 * xdisp.c: display_cursor renamed display_iterator.
13422 * dispextern.h: Ditto.
13423 * dispnew.c: Ditto.
13424
134251997-12-01 Gerd Moellmann <gerd@acm.org>
13426
13427 * window.c (mark_window_cursors_off): Function comment added.
13428 (window_topmost_p, window_rightmost_p): Removed because not used.
13429
134301997-11-30 Gerd Moellmann <gerd@acm.org>
13431
13432 * emacs.c (main): Function prototypes removed in profiling code.
13433 Use safe_bcopy as start of text.
13434
13435 * dispnew.c (update_frame_line): update_line -> update_frame_line;
13436 mirrored_make_current -> make_current.
13437
13438 * xdisp.c: (store_frame_title_char): New function to store a
13439 single character for the frame title with re-allocation of
13440 frame_title_buf.
13441 (init_xdisp): Intialize frame_title_.* variables to null.
13442
13443 * dispnew.c (quit_error_check): Removed.
13444
13445 * eval.c (Fsignal): Call to quit_error_check removed.
13446 * keyboard.c (quit_throw_to_read_char): Ditto.
13447
134481997-11-23 Gerd Moellmann <gerd@acm.org>
13449
13450 * xfaces.c (Fset_face_attribute_internal): Allow nil relief
13451 to mean a zero relief.
13452
26901792
DL
134531997-11-19 Gerd Moellmann <gerd@acm.org>
13454
13455 * dispnew.c (new_glyph_matrix): Increment glyph_matrix_count
13456 unconditionally.
13457 (glyph_matrix_count, glyph_pool_count): Define unconditionally.
13458 (free_glyph_matrix): Decrement glyph_matrix_count unconditionally.
13459 (check_glyph_memory): Define function body unconditionally.
13460
134611997-11-17 Gerd Moellmann <gerd@acm.org>
13462
13463 * dispnew.c (scrolling_window): Alternative version of this
13464 function removed.
13465
134661997-11-16 Gerd Moellmann <gerd@acm.org>
13467
13468 * dispnew.c (make_empty_enabled_row): Make an empty, enabled row
13469 of height CANON_Y_UNIT.
13470 * dispextern.h: Prototype for that function.
427ec082 13471 * xdisp.c (echo_area_display): Don't use display_string to
26901792
DL
13472 produce empty rows. Use make_empty_enabled_row instead.
13473
13474 * dispnew.c (scrolling_window): New version using diff-like
13475 algorithm activated.
427ec082 13476
26901792
DL
134771997-11-15 Gerd Moellmann <gerd@acm.org>
13478
13479 * dispnew.c (clear_current_matrices): Clear matrix of menu_bar_window
13480 (clear_desired_matrices): Ditto.
13481 (adjust_frame_glyphs_for_window_redisplay): Use FRAME_WINDOW_WIDTH
13482 for menu_bar_window.
13483
13484 * alloc.c (mark_object): Mark menu_bar_window of frames.
13485
13486 * xterm.c (XTupdate_window_end): Don't display cursor if
13487 pseudo_window_p.
13488
13489 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Don't
13490 set mini_p.
13491 (update_window): Don't set cursor if pseudo_window_p.
13492
13493 * dispextern.h (WINDOW_WANTS_MODELINE_P): Test pseudo_window_p.
13494
13495 * window.h (struct window): New flag pseudo_window_p set to
13496 1 for windows that aren't really part of the window tree, like
13497 menu_bar_window's of frames.
13498 * window.c (make_window): Initialize it.
13499 (replace_window): Ditto.
13500 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Ditto.
13501
13502 * frame.c (make_frame): Initialize menu_bar_window to nil.
13503
13504 * xterm.c (XTget_display_info): FACE_SHADOW_THICKNESS renamed
13505 FACE_RELIEF
13506
13507 * xfaces.c (copy_face): shadow_thickness -> relief.
13508 (face_eql): Ditto.
13509 (merge_faces): Ditto.
13510 (compute_base_face): Ditto.
13511 (Fset_face_attribute_internal): Ditto.
13512 * dispextern.h (struct face): Ditto.
13513
13514 * dispnew.c (update_frame): Update menu_bar_window of the frame if
13515 it is non-nil.
13516
13517 * xdisp.c (display_menu_bar): Display the menu bar in
13518 f->menu_bar_window if appropriate.
13519 (display_mode_line): Use MATRIX_MODE_LINE_ROW.
13520
13521 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Allocate
13522 dummy window and window matrices for f->menu_bar_window.
13523 (free_glyphs): Free the dummy window and its glyph matrices.
13524
13525 * frame.h (struct frame): New member menu_bar_window.
13526
135271997-11-09 Gerd Moellmann <gerd@acm.org>
13528
13529 * dispnew.c (scrolling_window): New version with diff-like
13530 algorithm.
13531
13532 * xdisp.c (try_window_reusing_current_matrix): If new_start >
13533 old_start always start displaying at start of
13534 first_row_to_display. The previous scheme failed if the last row
13535 was fully visible.
13536
13537 * dispnew.c (update_window): Remove cost calculations. Remove
13538 redundant preempt_count calculations.
13539
13540 * xterm.c (x_clip_to_row): Set clipping for non-text rows
13541 differently.
13542
13543 * dispnew.c (update_window): Use WINDOW_WANTS_MODELINE_P.
13544
427ec082 13545 * window.c (syms_of_window): Functions for marginal areas if
26901792
DL
13546 WITH_MARGINAL_AREAS is defined.
13547
427ec082 13548 * xdisp.c (try_window_reusing_current_matrix): Trace fprintf
26901792
DL
13549 removed.
13550
13551 * dispnew.c (scrolling): Call line_hash_code because hash values
13552 are not set in the frame matrix.
13553
13554 * xdisp.c (try_window_id): Fix scrolling for terminal frames.
13555 (redisplay_window): Check line_ins_del_ok before calling
13556 try_window_id.
13557 (try_window_reusing_current_matrix): Give up for terminal frames
13558 if window is not full width or we cannot insert/delete lines.
13559 (try_window_reusing_current_matrix): Fixed scrolling for terminal
13560 frames.
13561
13562 * alloc.c (mark_glyph_matrix): Bug fix - pass pointer to
13563 Lisp_Object to mark_object.
13564
13565 * xdisp.c (sync_frame_with_window_matrix_rows): Make frame and
13566 window rows have the same glyph pointers.
13567 (try_window_id): Call it.
13568
13569 * alloc.c (mark_glyph_matrix): Function to mark Lisp objects in
13570 a glyph matrix.
13571 (mark_object): Call it.
13572
13573 * xdisp.c (insert_left_trunc_glyphs): Use 0 object in glyphs for
13574 truncations.
13575 (display_line): Ditto.
13576 (display_line): Ditto for DISP_CONTINUATION.
13577 (display_line): Truncation on right: test current_x >
13578 last_visible_x.
13579 (skip_in_display_line_to): Ditto.
13580 (skip_via_matrix): Stop skipping in glyph row at face extending
13581 glyphs or at padding spaces.
13582
13583 * dispnew.c (fill_up_glyph_row_with_spaces): Comment extended.
13584
13585 * xdisp.c (display_line): Use glyph->object == 0 for padding
13586 glyphs.
13587 (redisplay_window): Don't let cursor move over padding
13588 spaces.
13589
13590 * dispextern.h (struct glyph): Fix comment for object.
13591
135921997-11-08 Gerd Moellmann <gerd@acm.org>
13593
13594 * dispextern.h (WINDOW_WANTS_MODELINE_P): Non-zero if a window
13595 has a mode line.
13596 * xdisp.c (redisplay_window): Use it.
13597 (display_mode_line): Check that window wants mode line.
13598
135991997-11-03 Gerd Moellmann <gerd@acm.org>
13600
13601 * xdisp.c (display_menu_bar): Enable menu bar rows.
13602
13603 * xterm.c (x_draw_hollow_cursor): X positions based on text area.
13604 (x_erase_phys_cursor): Ditto.
13605 (x_draw_bar_cursor): Ditto.
13606
136071997-11-02 Gerd Moellmann <gerd@acm.org>
13608
13609 * dispnew.c (update_marginal_area): Update a marginal area.
13610 (update_text_area): Update text area.
13611 (update_window_line): Call both.
13612
13613 * xterm.c (XTclear_end_of_line): Translate coordinates area
13614 dependent.
13615
13616 * dispnew.c (updated_area): Row area being updated in
13617 update_window_line.
13618 (update_window_line): Set it.
13619 (update_marginal_area): Clear to end of line if not in text area.
13620
13621 * window.c (Fset_window_margins): Increment
13622 windows_or_buffer_changed. Adjust glyphs.
13623
13624 * dispextern.h (WINDOW_TEXT_TO_FRAME_PIXEL_X): Convert text
13625 area X coordinates to frame coordinates.
427ec082 13626 (WINDOW_DISPLAY_LEFT_AREA_PIXEL_WIDTH): Width of left marginal area.
26901792
DL
13627 (WINDOW_DISPLAY_RIGHT_AREA_PIXEL_WIDTH): Same for right area.
13628 (WINDOW_DISPLAY_TEXT_AREA_PIXEL_WIDTH): Same for text area.
13629
13630 * xterm.c (draw_glyphs): Use text area width as display width.
13631
13632 * xdisp.c (init_display_info): Subtract widths of marginal areas
13633 from last_visible_x.
13634
13635 * alloc.c (mark_object): Mark objects in glyphs only if they are
13636 overlays. Mark only if current_matrix != 0. Activate the code.
13637
13638 * window.c (Fset_window_margins): Set margins.
13639 (Fwindow_margins): Return margin area widths.
13640 (syms_of_window): Add defsubr's.
13641
13642 * window.h (struct window): left_margin_width, right_margin_width.
13643
13644 * xfns.c (x_set_trunc_area_width): Set truncation pixel width
13645 and cols.
13646
13647 * frame.h (FRAME_TRUNC_COLS): Number of columns occupied by
13648 truncation/overlay arrow area.
13649 (struct frame): trunc_area_pixel_width, and _cols.
13650
13651 * window.c (Fsplit_window): Use it.
13652
13653 * window.c (Fsplit_window): Set cursor vpos to -1 after
13654 splitting.
13655 (Fsplit_window): SUbtract/add FRAME_TRUNC_WIDTH for horizontally
13656 split windows.
13657
13658 * dispnew.c (set_window_cursor_after_update): Accept out
427ec082 13659 of bounds cursor positions.
26901792
DL
13660
13661 * xdisp.c (redisplay_internal): Check that after cursor motion
13662 within line, PT is on same line.
13663
13664 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Don't subtract
13665 FRAME_TRUNC_WIDTH.
13666
13667 * xterm.h (struct x_output): trunc_area_extra.
13668 (CHAR_TO_PIXEL_WIDTH): Add in trunc_area_extra.
13669 (PIXEL_TO_CHAR_WIDTH): Subtract it.
13670 * widget.c (set_frame_size): Set it.
13671 (EmacsFrameSetCharSize): Ditto.
13672 * xfns.c (x_figure_window_size): Ditto.
13673 * xterm.c (x_set_window_size): Ditto.
13674
13675 * dispnew.c (check_matrix_invariants): First try to check window
13676 ends (in #if 0).
13677
13678 * xdisp.c (try_window_reusing_current_matrix): Try window
13679 redisplay with different window start.
13680
136811997-11-01 Gerd Moellmann <gerd@acm.org>
13682
13683 * window.c (make_window): Set window_end_pos/vpos.
13684 (Fsplit_window): Zero last_cursor, window_end_valid.
13685 (Fset_window_buffer): Set window_end_vpos, zero last_cursor.
13686
13687 * dispnew.c (check_matrix_invariants): Check window_end_pos/vpos.
13688
136891997-10-31 Gerd Moellmann <gerd@acm.org>
13690
13691 * window.c (make_window): Initialize last_cursor.
13692 (replace_window): Ditto.
13693
136941997-10-29 Gerd Moellmann <gerd@acm.org>
13695
13696 * window.h: New member last_cursor.
13697 * dispnew.c (direct_output_for_insert): Set it.
13698 (direct_output_forward_char): Ditto.
13699 * xdisp.c (redisplay_internal): Ditto.
13700
137011997-10-28 Gerd Moellmann <gerd@acm.org>
13702
13703 * xdisp.c (redisplay_internal): Optimization 1 change partially
13704 reverted. Check this again later.
13705 (skip_via_matrix): Remove redundent test for
427ec082 13706 MATRIX_ROW_DISPLAYS_TEXT_P.
26901792
DL
13707
137081997-10-27 Gerd Moellmann <gerd@acm.org>
13709
13710 * dispnew.c (update_window_line): Call
13711 after_update_window_line_hook only for interesting constellations.
13712 (free_glyph_matrix): Fix memory leak.
13713
13714 * window.h: Include blocker WINDOW_H_INCLUDED, include
13715 dispextern.h.
13716 (struct window): phys_cursor_glyph as struct glyph. * window.c
13717 (make_window): Initialize it.
427ec082 13718 (replace_window): Ditto.
26901792
DL
13719 * dispnew.c (free_window_matrices): Remove freeing of
13720 phys_cursor_glyph.
13721 (check_matrix_invariants): Renamed from check_current_matrix_...
13722 * xterm.c: All references to phys_cursor_glyph changed.
13723
13724 * dispextern.h (DISPEXTERN_H_INCLUDED: New include blocker.
13725
13726 * xfaces.c: Comment update.
13727
13728 * window.h (struct window): Make phys_cursor_glyph a struct glyph
13729 pointer. Remove phys_cursor_ascent, descent, etc.
13730 * dispnew.c (free_window_matrices): Free it.
13731 * window.c (make_window): Allocate it.
13732 (replace_window): Ditto.
13733 * xterm.c (x_draw_phys_cursor_glyph): Draw it.
13734 (x_display_and_set_cursor): Fill it.
13735 (x_phys_cursor_in_rect_p): Use it.
13736 (x_draw_hollow_cursor): Ditto.
13737 (x_draw_bar_cursor): Ditto.
13738 (x_erase_phys_cursor): Ditto.
13739
13740 * xdisp.c (skip_in_display_line_to): Use SET_INFO_FROM_CURSOR.
13741
13742 * xterm.c (XTget_display_info): Handle 3D facess.
13743 (draw_glyphs): Ditto.
13744
13745 * xdisp.c (Fdump_redisplay_state): Change interactive spec to "p".
13746
13747 * xfaces.c (Fset_face_attribute_internal): New face attribute
13748 shadow-thickness.
13749 (copy_face): Handle shadow_thickness.
13750 (face_eql): Ditto.
13751 (merge_faces): Ditto.
13752 (compute_base_face): Ditto.
13753
13754 * dispextern.h (struct display_cursor): New member start_of_3d_run_p.
13755 (struct display_info): Ditto.
13756 (SET_INFO_FROM_CURSOR): Transfer it to display_info.
13757 * xdisp.c (compute_cursor_face): Set it.
13758 (advance_display_cursor): Clear it.
13759
13760 * xdisp.c (init_string_cursor): Initialize face_id to -1.
13761 (init_string_cursor): Init face_id to zero.
13762
13763 * dispextern.h (struct face): New member shadow_thickness.
13764
427ec082 13765 * xdisp.c (compute_cursor_face): Set limit for text property
26901792
DL
13766 search to 100.
13767
13768 * dispnew.c (update_window_line): Try to resynch with current line
13769 to prevent mode line flickering.
13770
137711997-10-26 Gerd Moellmann <gerd@acm.org>
13772
427ec082 13773 * dispnew.c (set_window_cursor_after_update): React again
26901792
DL
13774 on cursor_in_echo_area >= 0.
13775
13776 * xdisp.c (echo_area_display): Clear desired matrix before
13777 displaying into it.
13778 (display_menu_bar): Clear glyph row instead of hoping it is not
13779 enabled. This is safer.
13780
13781 * dispnew.c (check_current_matrix_invariants): Check only
13782 visible rows.
13783
13784 * xdisp.c (try_window_id): Handle window end setting in case of
13785 display to end of window, but only non-text lines displayed.
13786
13787 * dispnew.c (check_current_matrix_invariants): Check nrows for zero.
13788 (check_current_matrix_invariants): Check used counts.
13789
13790 * Revisiob v114.
13791
13792 * dispnew.c (scrolling): Use hash codes from rows.
13793
13794 * xdisp.c (Fdump_redisplay_state): Dump current matrix.
13795
13796 * dispnew.c (scrolling_window): Invalidate conflicting runs.
13797
137981997-10-25 Gerd Moellmann <gerd@acm.org>
13799
13800 * dispextern.h (struct glyph_matrix): Flag no_scrolling_p.
13801 * dispnew.c (update_window): Use it.
13802 (clear_glyph_matrix): Clear it.
13803 * xdisp.c (try_window_id): Set it.
13804
13805 * dispextern.h (struct glyph_row): New flag ends_at_zv_p.
13806
13807 * xdisp.c (redisplay_internal): Increment glyph positions differently.
13808
13809 * dispextern.h: More comments etc.
13810
138111997-10-24 Gerd Moellmann <gerd@acm.org>
13812
13813 * dispnew.c (set_window_cursor_after_update): Set cursor
13814 for cursor_in_echo_area == 0 to (0, 0).
13815
13816 * dispextern.h (struct glyph_row): New flags continuation_line_p
13817 and displays_text_p.
13818 (MATRIX_ROW_DISPLAYS_TEXT_P): Use displays_text_p.
13819 * xdisp.c (display_line): Set them.
13820 (try_window_id): Move to start of continuation line to find out
13821 continuation_line_width.
13822 (first_unchanged_current_row): Don't retract row if continued,
13823 truncated etc.
13824
13825 * xterm.c: Map X coordinates.
13826
138271997-10-23 Gerd Moellmann <gerd@acm.org>
13828
13829 * dispnew.c (buffer_posn_from_coords): Translate X for right to
13830 left text.
13831
13832 * xdisp.c (display_line): Set right_to_left_p after clearing the row.
13833
13834 * xterm.c (XTclear_end_of_line): Respect right_to_left_p.
13835
f28eba7b 13836 * xdisp.c (try_window_id): Clear desired matrix if not successul.
26901792
DL
13837
13838 * xdisp.c (try_window_id): Call update_window_begin_hook/end_hook.
13839
13840 * dispnew.c (update_window_begin_hook, update_winodw_end_hook):
13841 Set this to functions to be called before/after window updates.
13842 (direct_output_for_insert): Call them.
13843 (update_window): Ditto.
13844 (update_frame): Call update_begin/ update_end for windows.
13845
13846 * xterm.c (XTupdate_window_begin): Called before window updates.
13847 (XTupdate_end): Called after window updates.
13848 (x_initialize): Set hooks to above.
13849
13850 * xdisp.c (init_display_info): Initialize c and len of
13851 display_info.
13852
13853 * xterm.c (x_get_char_font_and_encoding): Bug fix. Don't load
13854 fonts more than once.
13855
138561997-10-22 Gerd Moellmann <gerd@acm.org>
13857
13858 * xdisp.c (display_line): Handle most common case of current_x <
13859 last_visible_x separately.
13860
13861 * dispextern.h (display_element_type): DISP_ELLIPSIS removed.
13862
13863 * dispnew.c (update_window_line): Compare pixel widths of glyphs
13864 so that face extending space doesn't compare equal to normal space
13865 with same face.
13866
13867 * xdisp.c (display_line): Make sure we have a position for
13868 a line end in an otherwise blank line if face is extended.
13869
13870 * dispnew.c (direct_output_for_insert): Increment row end position.
13871
427ec082 13872 * window.c (Fpos_visible_in_window_p): Use old meaning of
26901792
DL
13873 window_end_pos.
13874
13875 * xdisp.c (init_display_cursor_from_glyph_pos): New.
13876
13877 * dispextern.h (MATRIX_ROW_FIRST_POS): Use row start.
13878
13879 * dispnew.c (increment_glyph_row_buffer_positions): Adjust
13880 start and end positions in rows.
13881 (increment_glyph_row_buffer_positions): Stop adjusting at
13882 glyphs with positions <= 0.
13883
13884 * dispextern.h (struct glyph_pos): Structure desribing a text
427ec082 13885 position including position in overlay.
26901792
DL
13886 (struct glyph_row): Use it for start and end positions.
13887 (struct display_cursor): Use it.
13888 * xdisp.c: Use it.
13889 (display_line): Set row start and end positions.
13890
13891 * dispnew.c (copy_row_except_pointers): Use bcopy and struct
13892 assignment.
13893
138941997-10-21 Gerd Moellmann <gerd@acm.org>
13895
13896 * dispnew.c (update_window): Add scrolling_window again. It's
13897 necessary for scroll_step != 0.
13898
13899 * xdisp.c (redisplay_window): Use vmotion for scroll_step
13900 scrolling.
13901
13902 * xdisp.c (last_unchanged_current_row): Use window_end_vpos.
13903
13904 * xterm.c (XTupdate_end): Flush only for messages.
13905
13906 * xdisp.c (try_window_id): Assert last_unchanged_row >=
13907 first_unchanged_row.
13908
13909 * xterm.c (XTupdate_end): Flush if miniwindow.
13910
13911 * dispnew.c (matrix_row_last_pos): New function.
13912 * dispextern.h (MATRIX_ROW_LAST_POS): Call it.
427ec082 13913 Large comment moved to xdisp.c.
26901792
DL
13914
13915 * xdisp.c (redisplay_window): Bug fix: PT set to value > Z.
13916 (skip_via_matrix): Check window_end_valid instead of
13917 display_completed.
13918
13919 * dispnew.c (scroll_glyph_matrix_range): Bug fix.
13920 (update_window): scrolling_window commented out. It has negative
13921 effect most of the time.
13922
13923 * xdisp.c (try_window_id): Correct parameters to
13924 scroll_glyph_matrix_range.
13925
427ec082 13926 * xterm.c (XTupdate_end): XFlush commented out.
26901792
DL
13927
13928 * window.h: Comments for window_end_pos/vpos.
13929
f28eba7b 13930 * xdisp.c (skip_to): Assert current_buffer is the buffer
26901792
DL
13931 of the window in which we are skipping.
13932
13933 * dispnew.c (update_window_line): Optimized clear_end_of_line.
13934
13935 * xterm.c (draw_glyphs): Bug fix. Return window relative X
13936 reached.
13937
139381997-10-20 Gerd Moellmann <gerd@acm.org>
13939
13940 * dispextern.h (MATRIX_ROW_LAST_POS): Go back one glyph if this is
13941 a face extending glyph.
13942
427ec082 13943 * xdisp.c (try_window_id): Check if point will appear.
26901792
DL
13944 (set_cursor_from_row): Set cursor position from a glyph row.
13945
13946 * dispnew.c (update_window_line): Write entire line if hash
13947 codes of lines differ.
13948
13949 * dispextern.h (MATRIX_ROW_EXTENDS_FACE_P): Value is non-zero
13950 if glyph row has an infinite width glyph at its end.
13951
13952 * xdisp.c (last_unchanged_current_row): Respect partially visible
13953 lines when looking for the last row displaying text.
13954 (try_window_id): Handle partially visible lines better.
13955
139561997-10-19 Gerd Moellmann <gerd@acm.org>
13957
13958 * dispnew.c (update_window): Remove unused variable.
13959 (update_window_line): Simplified.
13960
13961 * xterm.c (x_get_char_font_and_encoding): Handle most common
13962 case at the beginning.
13963
13964 * xdisp.c (advance_display_cursor): Dispatch on method and
13965 order if statements by expected call frequency. Fixed unclosed
13966 comment.
13967
13968 * xdisp.c (try_window_id): New implementation.
13969
13970 * dispnew.c (increment_glyph_row_buffer_positions): Capture
13971 rows displaying a line end, only.
13972
139731997-10-18 Gerd Moellmann <gerd@acm.org>
13974
13975 * window.c (Fpos_visible_in_window_p): Remove use of window_end_vpos.
13976
139771997-10-14 Gerd Moellmann <gerd@acm.org>
13978
13979 * xdisp.c (display_line): Mark empty lines not corresponding to
13980 text with position -1.
13981
13982 * xterm.c (x_erase_phys_cursor): Don't bother to erase cursor if
13983 not within window matrix bounds.
13984
13985 * dispextern.h (struct display_cursor): New member REGION_SHOWING_P.
13986 (struct display_info): NGLYPHS_TO_IGNORE removed.
13987 * xdisp.c: References to NGLYPHS_TO_IGNORE removed.
13988 * term.c: Ditto.
13989 * xterm.c: Ditto.
13990
13991 * xdisp.c (init_display_cursor): Set it.
13992 (display_line): Use it to set W->REGION_SHOWING.
13993
13994 * xdisp.c (skip_via_matrix): Check for overlay arrow.
13995
13996 * region-cache.h: functino prototypes with PROTO.
13997
13998 * dispnew.c (buffer_posn_from_coords): Use -1 as skip position.
13999
14000 * xdisp.c (skip_via_matrix): Check for rows that don't contain
14001 a position.
14002
427ec082 14003 * xterm.c (XTmouse_position): Calculate LAST_MOUSE_GLYPH
26901792
DL
14004 rectangle based on minimum character bounds.
14005
f28eba7b 14006 * keyboard.c (make_lispy_event): Mouse clicks; don't do frame
26901792
DL
14007 glyph position calculations.
14008 (make_lispy_movement): Use buffer_posn_from_coords and window
14009 relative coordinates.
14010
14011 * xterm.c (construct_mouse_click): Remove #if 0 case.
14012
14013 * dispextern.h (MATRIX_ROW_BOTTOM_Y): Return bottom pixel y of
14014 given row.
14015
427ec082
SS
14016 * xdisp.c (skip_via_matrix): Skip using current matrix if up to
14017 date.
26901792
DL
14018 (skip_to): Use it.
14019 (redisplay_window): Remove code skipping using current matrix.
14020
140211997-10-13 Gerd Moellmann <gerd@acm.org>
14022
14023 * xdisp.c (redisplay_window): Use available current matrix to
14024 skip faster when only point is moved withing the window.
14025
427ec082 14026 * intervals.c: Include stdio.h.
26901792
DL
14027 (find_interval): Trace to stderr to catch some nasty error
14028 that did not yet occur again with tracing.
14029 (set_point): Ditto.
14030
14031 * dispnew.c (shift_glyph_matrix): Experimental code for handling
14032 cursor positioning on partially visible lines.
14033 (set_window_cursor_after_update): Ditto.
14034
f28eba7b 14035 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): Bug fix.
26901792
DL
14036
14037 * window.h (struct window): start_y removed.
14038
14039 * window.c (make_window): start_y removed.
14040 (replace_window): Ditto.
14041
427ec082 14042 * xdisp.c (last_max_ascent, last_max_descent): Ascent and
26901792
DL
14043 descent values of the last line processed by skip_to.
14044 (redisplay_window): Use them.
14045 (skip_to): Set them.
14046
14047 * dispextern.h (struct display_cursor): New member METHOD.
14048
14049 * xdisp.c: Use function member METHOD.
14050
14051 * xdisp.c (set_next_stop_pos): Determine next position at which to
14052 check for face properties, invisible text properties, and overlays.
14053 (compute_cursor_face): Use it.
14054 (get_overlays_for_cursor): Ditto.
14055 (reseat_cursor): Ditto.
14056 (next_display_element): Ditto.
14057
14058Sun Aug 24 08:50:52 1997 Gerd Moellmann <gerd@acm.org>
14059
14060 * termhooks.h: Some hooks with prototypes.
14061
14062 * term.c: Some hooks with function prototypes.
427ec082 14063
26901792
DL
14064 * xdisp.c (reseat_cursor): Additional argument force_p. Avoid
14065 computing face if possible.
14066
14067 * xdisp.c (next_display_element): Use face from glyph from display
14068 table only if != 0.
14069
14070 * emacs.c: FreeBSD headers for profiling removed.
14071
427ec082
SS
14072 * dispnew.c (direct_output_for_insert): Don't use PT-1 for
14073 display cursor, use DEC_POS instread.
26901792
DL
14074
14075 * xfaces.c (load_font): Use x_load_font to load fonts so that
427ec082 14076 all fonts are in the font table.
26901792
DL
14077 (unload_font): Don't XFreeFont.
14078
14079 * dispnew.c (row_equal_p): Compare ascent, descent and visible
14080 row height.
14081
14082 * xterm.c (draw_glyphs): Use 8-bit functions if possible.
14083 (x_erase_phys_cursor): Clear only visible part of row.
14084 (x_draw_bar_cursor): Set clipping.
14085 (x_draw_hollow_cursor): Ditto.
14086 (x_display_and_set_cursor): Remove clipping.
14087 (expose_window_tree): Take trunc border into account.
14088 (x_phys_cursor_in_rect_p): Test if phys_cursor intersects a rect.
14089 (expose_window): Use it.
14090
14091 * xdisp.c (display_string): Catch case that we are called with
14092 current_x already beyond max_x.
14093 (global): Fix usage of FRAME_WINDOW_P <-> FRAME_WINDOW_REDISPLAY_P.
14094 (init_display_info): Subtract vertical border glyph from
14095 last_visible_x.
14096
14097 * scroll.c (scrolling_window_1): Removed.
14098
14099 * dispnew.c (adjust_frame_glyphs): Split into two functions,
14100 based on redisplay method used.
14101 (adjust_frame_glyphs_for_frame_redisplay): Part for frame
14102 based redisplay.
14103 (adjust_frame_glyphs_for_window_redisplay): Part for purely
14104 window based redisplay.
14105
14106 * frame.h (FRAME_WINDOW_REDISPLAY_P): Changed to not depend
14107 on data structures.
14108
14109 * dispnew.c (adjust_glyph_matrix): Additional parameter W.
14110 Handle own storage for purely window based redisplay.
14111 (allocate_matrices_for_frame_redisplay): Formerly part of
427ec082 14112 allocate_matrices.
26901792
DL
14113 (allocate_matrices_for_window_redisplay): Ditto.
14114
14115 * dispextern.h (struct glyph_matrix): window_top_y,
14116 window_height.
14117
14118 * dispnew.c (allocate_matrices_for_window_redisplay): Detect
14119 and optimize some common cases of window changes.
14120
14121 * emacs.c (main): Remove own profiling code because 0.95 now
14122 has it in.
14123
14124Fri Aug 22 18:46:43 1997 Gerd Moellmann <gerd@acm.org>
14125
14126 * xterm.c (XTupdate_end): Draw horizontal border at right
14127 position.
14128 (expose_window): Draw vertical border.
14129 (XTclear_end_of_line): Accept width <= 0 and height <= 0 but
14130 don't do anything.
14131
14132 * xdisp.c (redisplay_internal): Set update_mode_line if paused
14133 for non full width windows only if not window redisplay.
14134
14135 * dispnew.c (update_window_tree): Or paused_p return of called
14136 functions.
14137
14138 * xterm.c (x_display_and_set_cursor): Return if hpos/vpos outside
14139 of window.
14140
14141 * window.c (Fset_window_configuration): adjust_glyphs being
14142 called twice.
14143 (Fset_window_configuration): Set frame garbaged if not all
14144 leaf windows reused.
14145
141461997-08-21 Gerd Moellmann <gerd@acm.org>
14147
14148 * dispnew.c (clear_glyph_matrix): Additional argument specifiying
14149 that rows should really be cleared. Used for current matrices.
14150
14151 * dispnew.c (scrolling_window): Bug fix.
427ec082 14152 (line_dance_hook): Formerly line_dance_fn, take only one
26901792
DL
14153 parameter.
14154
14155 * dispextern.h (struct run): Remove current_vpos.
14156
14157 * xterm.c (do_line_dance): Only one parameter.
14158
f28eba7b 14159 * xdisp.c (display_line): Set continued_p.
26901792
DL
14160
14161 * dispextern.h (struct glyph_row): New flag continued_p.
14162 Fix truncated_on_left_p and truncated_on_right_p to be bits.
427ec082 14163 (struct glyph_row):
26901792
DL
14164
14165Thu Aug 21 14:37:34 1997 Gerd Moellmann <gerd@acm.org>
14166
14167 * xdisp.c (skip_vertically_backward): Avoid negative vpos values
14168 when calling skip_to for continued lines.
14169
14170 * dispnew.c (change_frame_size_1): Set frame garbaged.
14171
14172 * xterm.c (expose_window): Check enabled_p of rows.
14173
14174 * xdisp.c (redisplay_internal): Compare line heights before and
14175 now for redisplay optimization 2 (hit).
14176 (display_line): Set this_line_pixel_height.
14177
14178 * xterm.c (x_draw_row_borders): Use FRAME_MODE_LINE_HEIGHT height
14179 value.
14180 (x_clip_to_row): Use MATRIX_ROW_VISIBLE_HEIGHT. Simplified.
14181 (do_line_dance): Simplified and pixel corrected.
14182
14183 * dispnew.c (scrolling_window): Simplified.
14184
14185 * xterm.c (x_draw_3d_border): Inset rectangle by line width.
14186
14187 * dispnew.c (update_window): Add FRAME_MODE_LINE_BORDER_WIDTH
14188 to mode line row->x.
14189
14190Wed Aug 20 11:23:28 1997 Gerd Moellmann <gerd@acm.org>
14191
14192 * xterm.c (x_get_char_font_and_encoding): Don't let fontset
14193 override font of face.
14194 (draw_glyphs): Correct return value.
14195 (XTclear_end_of_line): Compare differently with output cursor
14196 position.
14197 (x_draw_hollow_cursor): 2 parameters, window and row.
14198
14199 * dispnew.c (update_window_line): If rows have different height
14200 or y, write entire line.
14201
f28eba7b 14202 * xdisp.c (compute_line_metrics): Reset max_ascent and max_descent
26901792
DL
14203 of info struct.
14204
427ec082 14205 * xfaces.c (Fset_face_attribute_internal): Don't call
26901792
DL
14206 frame_update_line_height.
14207 (merge_faces): Don't use default font if new font has different
14208 size.
14209
14210Tue Aug 19 14:38:05 1997 Gerd Moellmann <gerd@acm.org>
14211
14212 * xterm.c (x_display_and_set_cursor): Use FONT_WIDTH if width
14213 unknown. Some fonts have min_width zero.
14214 (draw_glyphs): Don't draw underlines to the end of the display
14215 line if face is merely extended to that point.
14216 (draw_glyphs): Don't assume background is filled if
14217 just_foreground_p but extending to end of line.
14218
14219 * xterm.c (XTclear_end_of_line): Clip only to display_height - 1
14220 for partially visible last lines.
14221 (x_clip_to_row): Ditto.
14222 (x_clip_to_row): Clip to display_height-1 if y + line_height >
14223 display_height since line_height is really a line distance.
14224 (x_display_and_set_cursor): If cursor on padding glyph, use
14225 min_bounds pixel width.
14226
14227Mon Aug 18 09:39:18 1997 Gerd Moellmann <gerd@acm.org>
14228
14229 * xterm.c (x_clip_to_row): Height value was 1 too large.
14230 (XTclear_end_of_line): Clip to display area.
14231
14232 * xfns.c (x_figure_window_sizes): Add trunc border width
14233 to frame pixel width.
14234
14235 * xdisp.c (next_display_element): Don't display overlay strings
14236 within invisible text.
427ec082 14237 (skip_vertically_backward): Skip display lines.
26901792
DL
14238
14239Sat Aug 16 13:13:32 1997 Gerd Moellmann <gerd@acm.org>
14240
14241 * xdisp.c (x_consider_frame_titie): Don't pad with blanks.
14242
14243 * xdisp.c (next_display_element): Next invisible
14244 text check position computed differently.
14245
14246 * dispextern.h (struct display_cursor): last_invisible_text_pos
14247 and display_ellipsis_for_invisible_p removed.
14248
14249 * xdisp.c (next_display_element): Set last_invisible_text_pos
14250 to the last position at which invisible text was found. Don't
14251 decrement cursor.pos for newlines and cr with ellipsis. Set
427ec082 14252 dpvec for `...' due to invisible text directly.
26901792
DL
14253 (redisplay_internal): Don't assert that cursor is at PT after
14254 skip_to. It may be in invisible text.
14255
427ec082 14256 * keyboard.c (make_lispy_event): For mouse clicks, use
26901792
DL
14257 x_y_to_hpos_vpos.
14258
427ec082 14259 * xdisp.c (next_display_element): Call get_overlays_for_cursor when
26901792
DL
14260 next_overlay_pos is reached. Use limit cursor.pos + 100 when
14261 checking for invisible text.
14262
14263 * xterm.h (WINDOW_COL_PIXEL_X etc.) Removed.
14264
14265 * dispextern.h (WINDOW_TO_FRAME_HPOS/VPOS): Moved to dispnew.c
14266
14267 * xfns.c (x_contour_region): Use pixel coordinates from window
14268 cursor instead of WINDOW_TO_FRAME_H/VPOS.
14269
14270 * dispextern.h (FRAME_TO_WINDOW_HPOS, FRAME_TO_WINDOW_VPOS):
14271 Removed.
14272
14273 * dispnew.c (frame_to_window_hpos, frame_to_window_vpos): Removed.
14274
14275 * xterm.c (x_y_to_hpos_vpos): Get hpos/vpos from window relative
14276 pixel coordinates.
14277 (note_mouse_highlight): Use it.
14278
14279 * xdisp.c (echo_area_display): Ignore calls for terminal frames
14280 under a window system.
14281
427ec082 14282 * dispnew.c (adjust_frame_glyphs): Call redraw_frame if
26901792 14283 necessary.
427ec082 14284 (update_window_line): Add width of face padding glyph to
26901792
DL
14285 displayed widths of rows.
14286
14287 * xterm.c (x_display_and_set_cursor): Set clipping after
14288 erasing cursor.
427ec082
SS
14289
14290 * window.c (Fset_window_configuration): Free only those
26901792
DL
14291 window matrices not reused.
14292 (get_leaf_windows): Build vector of leaf windows.
14293 Corrupted archive restored from v77.
14294
f28eba7b 14295 * xdisp.c (display_string): Stop at >= last_visible_x if truncating
26901792
DL
14296 like display_line does.
14297
14298 * xdisp.c (display_mode_line): Don't hscroll mode line.
14299
14300 * xterm.c (draw_glyphs): Wrong run_width computed for horiz. split
14301 windows.
14302 (x_scroll_bar_create): #3039 Clear area below scroll bar to remove
14303 garbage between mode lines when splitting windows horiz.
14304
14305 * dispnew.c (direct_output_for_insert): Bug fix.
14306
14307 * dispextern.h (struct display_cursor): New member string_length.
14308
14309 * xdisp.c (next_display_element): Return padding spaces.
f28eba7b 14310 (init_string_cursor): Take precision and field_width
26901792
DL
14311 (display_string): Use string cursor, skip over invisible text.
14312
14313Thu Aug 14 10:41:41 1997 Gerd Moellmann <gerd@acm.org>
14314
14315 * xterm.c (x_clip_to_row): Clip to partially visible lines.
14316 (x_display_and_set_cursor): Call it.
14317 (draw_glyphs): Call it
14318 (draw_bitmap): Call it.
14319
427ec082 14320 * dispnew.c (adjust_frame_glyphs): Optimize frame garbaging.
26901792
DL
14321 (allocate_leaf_matrix): Return flags.
14322 (row_equal_p): Compare enabled_p.
14323
14324 * xterm.c (x_erase_phys_cursor): Set phys_cursor_on_p to 0
14325 for type == -1.
14326
14327 * xterm.c (x_display_and_set_cursor): Bar cursor 1 pixel taller.
427ec082 14328 (draw_glyphs): Clip height one pixel taller.
26901792 14329
427ec082 14330 * dispnew.c (direct_output_for_insert): Give up for hscrolled
26901792
DL
14331 mini window.
14332
f28eba7b 14333 * xdisp.c (display_line): Don't scroll mini prompt.
26901792 14334
427ec082
SS
14335 * xdisp.c (echo_area_display): Call update_single_window if
14336 possible.
26901792
DL
14337
14338 * dispnew.c (update_window_line): Call scrolling_window.
f28eba7b 14339 (scrolling_window): Work on enabled desired lines only.
26901792
DL
14340 (update_single_window): Update a single window like update_frame
14341 does for all windows.
427ec082 14342 (update_window, update_window_tree): Additional argument
26901792
DL
14343 no_scrolling_p.
14344 (update_frame): Pass no_scrolling_p to update_window_tree.
14345 (update_window): Don't call scrolling_window if no_scrolling_p.
14346
14347 * xterm.c (x_erase_phys_cursor): Do nothing if type == -1.
427ec082
SS
14348 Erase under hollow cursor.
14349 (x_display_and_set_cursor): Do nothing if cursor glyph row
26901792
DL
14350 not enabled. Draw bar cursor 1 pixel smaller.
14351
f28eba7b 14352 * dispnew.c (adjust_frame_glyphs): Don't set frame garbaged
26901792
DL
14353 since update will follow soon.
14354
14355 * xdisp.c (echo_area_display): Unitialized variable.
14356
f28eba7b 14357 * xterm.c (draw_bitmap): Previously draw_truncation; draw
26901792
DL
14358 overlay arrow bitmap.
14359
f28eba7b 14360 * xdisp.c (display_line): For truncated lines, consider everything
427ec082 14361 up to the final \n as part of the line for cursor positioning.
26901792 14362
f28eba7b
SM
14363 * xterm.c (draw_truncation): Take FRAME_X_TRUNC_WIDTH into account.
14364 (x_after_update_window_line): Clear trunc marks.
26901792
DL
14365
14366 * xterm.h (FRAME_X_TRUNC_WIDTH).
14367
f28eba7b 14368 * frame.h (FRAME_TRUNC_WIDTH): Width of area at the left margin
26901792
DL
14369 of a window reserved for truncation mark.
14370
427ec082 14371 * dispextern.h: Take FRAME_TRUNC_WIDTH into account.
26901792
DL
14372
14373 * dispnew.c (update_window_line): Call after_update_windwo_line-
427ec082 14374 hook.
26901792
DL
14375
14376 * xdisp.c (display_line): Set overlay_arrow_p in row.
14377
14378 * dispextern.h (struct glyph_row): New flag overlay_arrow_p.
14379
14380 * xterm.c (x_after_update_window_line): Draw truncation marks.
14381
14382 * xdisp.c (display_line): Insert truncation for lines with
14383 current_x > 0.
14384
14385 * xterm.c (x_draw_row_borders): Convert y to frame coords.
14386 Correct y by 1.
14387 (x_display_cursor): Use default font width if width not
427ec082 14388 known.
26901792 14389
f28eba7b 14390 * xdisp.c (echo_area_display): Set row->y.
26901792
DL
14391
14392 * dispnew.c (set_window_cursor_after_update): Don't assume
14393 all rows are enabled.
14394
14395 * xdisp.c (skip_in_display_line_to): Test cursor.position instead
14396 of cursor.pos.
14397 (skip_in_display_line_to): Check cursor.position after call to
14398 next_display_element.
14399
427ec082 14400 * dispextern.h (CURSOR_AT_P): Test if cursor has reached
26901792
DL
14401 buffer position.
14402
14403 * xdisp.c (display_line): Set row->y here.
14404 (skip_in_display_line_to): Test for to_pos after all glyphs
14405 have been added to hpos so that hpos is at the end of all
14406 glyphs for to_pos.
14407 (start_display): Remove assertion.
14408
14409 * dispnew.c (direct_output_forward_char): Bug fix, = instead of
14410 ==.
14411 (update_window): Don't set row->y here.
14412
14413 * xdisp.c (next_display_element): Don't translate control chars
14414 from display table entries.
14415
427ec082 14416 * dispnew.c (direct_output_for_insert): Set cursor before
26901792
DL
14417 update end to prevent cursor flickering. Revert changes to
14418 setting cursor.endpos.
14419
14420Wed Aug 13 10:46:12 1997 Gerd Moellmann <gerd@acm.org>
14421
14422 * dispnew.c (direct_output_for_insert): Don't set cursor.endpos
14423 to PT because this prevents multi-byte characters from being
14424 recognized.
14425
427ec082
SS
14426 * xdisp.c (skip_to, display_line): Advance cursor at end of
14427 truncated line.
26901792
DL
14428
14429 * xterm.c (x_draw_3d_borders): Use CapRound. Struct rect
14430 replaced by XRectangle.
14431
14432 * dispnew.c (scrolling_window): New method.
14433
14434 * xterm.c (do_line_dance): New implementation, new method.
427ec082 14435
26901792
DL
14436 * xdisp.c (draw_glyphs): Draw truncation bitmaps. Clip to
14437 visible part of line.
14438
14439 * dispnew.c (update_window_line): Fill inverse video lines
14440 with infinite width space.
14441 (update_window): Handle completely empty matrices.
14442 (set_window_cursor_after_update): Bug fix.
14443
427ec082 14444 * xterm.c (draw_glyphs): Stop drawing at right window end.
26901792
DL
14445
14446 * dispnew.c (update_window_line): Don't ignore spaces, don't
14447 fill with spaces.
14448
14449 * xdisp.c (compute_line_metrics): Stop adding glyph widths with
14450 the first glyph having width 0.
14451
14452 * xterm.c (draw_glyphs): Let a glyph pixel with of 0 denote
427ec082 14453 a glyph that extends to the end of the line.
26901792
DL
14454
14455 * xdisp.c (display_line): Insert one padding glyph
14456
14457 * xdisp.c (skip_in_display_line_to): Don't subtract shift left
14458 amount from info.current_x.
14459 (display_line): Ditto.
14460
14461 * dispnew.c (direct_output_for_insert): Correct use of cursor.x.
14462 (change_frame_size_1): Correct cursor.x if frame gets too small.
14463 (update_window_line): Start at row->x.
14464
14465 * xdisp.c (redisplay_internal): Correct cursor.x (everwhere
14466 in xdisp.c).
14467
14468 * xterm.c (set_output_cursor): Use window relative X/Y.
14469 (global): Use window relative output cursor x/y.
14470 (draw_glyphs): Remove y param. Pass window relative x/y.
14471
14472 * dispnew.c (update_window): Start rows at start_y.
14473 (update_window): Don't try scrolling because it wouldn't work
14474 with variable height lines, anyway.
14475
14476 * dispextern.h (struct glyph_row): Remove shift_left_by,
14477 add x.
14478
14479 * window.h: (struct window): New member start_y.
14480
14481 * window.c (replace_window): Initialize start_y.
14482 (make_window): Ditto.
14483
14484Tue Aug 12 14:53:04 1997 Gerd Moellmann <gerd@acm.org>
14485
14486 * xterm.c (draw_glyphs): Clip rows that would paint over
427ec082 14487 the mode line.
26901792 14488
427ec082
SS
14489 * dispnew.c (update_window): Take mode line border into
14490 account.
26901792
DL
14491
14492 * xterm.h (FRAME_MODE_LINE_BORDER_WIDTH): Number of pixels
427ec082 14493 of border around mode line.
26901792
DL
14494
14495 * xterm.c (x_draw_row_borders): Bug fix.
14496 (x_erase_phys_cursor): Set pyhs_cursor.x/y before calling
14497 drawing functions.
14498
14499 * xterm.c (x_draw_row_border): Experimental; draw 3d borders
427ec082 14500 around modeline instead of inverting it.
26901792 14501
427ec082 14502 * xterm.c (glyph_to_pixel_coords): Use current matrix.
26901792
DL
14503
14504 * dispnew.c (buffer_posn_from_coords): Use SKIP_TO. Now takes
14505 window relative pixel coordinates as arguments.
14506
14507 * keyboard.c (make_lispy_event): Use BUFFER_POSN_FROM_COORDS
14508 with window relative pixel coordinates. Use GLYPH_TO_PIXEL_-
14509 COORDS mit new arguments.
14510
14511Mon Aug 11 12:32:34 1997 Gerd Moellmann <gerd@acm.org>
14512
14513 * xdisp.c (start_display): Use SKIP_TO instead of SKIP_IN-
427ec082 14514 DISPLAY_LINE.
26901792
DL
14515
14516 * keyboard.c (make_lispy_event): WINDOW_FROM_COORDINATES with
14517 pixel coords.
14518 (make_lispy_movement): Same.
14519
14520 * xterm.c (note_mouse_highlight): Use WINDOW_FROM_COORDINATES
14521 with new parameter meaning.
14522
14523 * window.c (Fcoordinates_in_window_p): Convert Lisp params
14524 from canon units to pixels.
14525 (coordinates_in_window): Pixel based.
14526 (Fcoordinates_in_window_p): Convert result pixel values back
14527 to canonical units.
14528
14529 * window.h: phys_cursor_ascent + descent instead of height.
14530
14531 * xterm.c (XTget_char_info): Use per char metrics for multi-byte
14532 chars with charset width 1.
14533
14534 * dispnew.c (direct_output_for_insert): Set updated_row.
14535
14536Sat Aug 9 12:11:44 1997 Gerd Moellmann <gerd@acm.org>
14537
14538 * dispextern.h (struct glyph): Padding flag removed.
14539
14540Tue Aug 5 09:59:08 1997 Gerd Moellmann <gerd@acm.org>
14541
14542 * sysdep.c (reset_sys_modes): cursor_to with 4 params.
14543
14544 * keyboard.c (interrupt_signal): Cursor_to with 4 params.
14545
14546 * dispnew.c (update_window_line): Use pixels.
14547
14548 * xdisp.c (compute_line_metrics): Correct pixel_width by
14549 shift_left_by.
14550
14551 * dispextern.h (struct glyph_row): FIRST_SHIFTED_LEFT_GLYPH
427ec082 14552 removed. Remove references to it everywhere. Reverse_p in
26901792
DL
14553 glyph_row -> right_to_left_p. Change references to it.
14554
14555Mon Aug 4 18:09:27 1997 Gerd Moellmann <gerd@acm.org>
14556
14557 * dispnew.c (direct_output_for_insert): Use INSERT_GLYPHS.
14558
14559 * xterm.c (XTinsert_glyphs): Implement it.
14560
14561 * term.c (insert_glyphs): UPDATING_FRAME may be NULL in case
14562 of a call from DIRECT_OUTPUT_FOR_INSERT.
14563
14564 * window.h (struct cursor_pos): Keeps both matrix positions
14565 and pixel positions.
14566 (struct window): Use it.
14567
14568 * dispnew.c (direct_output_for_insert): New version.
14569
14570 * xdisp.c (redisplay_internal): Don't do anything if it has
14571 already be done directly.
14572
14573 * keyboard.c (command_loop_1): Call DIRECT_OUTPUT_FOR_INSERT
14574 for any character.
14575
14576Thu Jul 31 15:39:10 1997 Gerd Moellmann <gerd@acm.org>
14577
14578 * xdisp.c (echo_area_display): Use new DISPLAY_STRING.
14579
14580Wed Jul 30 12:18:03 1997 Gerd Moellmann <gerd@acm.org>
14581
14582 * dispextern.h (struct glyph_row): MAX_ASCENT, MAX_DESCENT.
14583 (struct glyph): ASCENT, DESCENT.
14584 (MATRIX_ROW_PIXEL_HEIGHT): Pixel height of row.
14585 (GLYPH_PIXEL_HEIGHT): Pixel height of glyph.
14586
14587 * xterm.c (XTget_display_info): Correct tab computation.
14588
14589 * term.c (get_display_info): Correct tab computation.
14590
14591 * dispextern.h (struct display_cursor): WHAT_FOUND, SOURCE_OBJECT.
14592 Renamed from CHAR_CURSOR.
14593
14594Tue Jul 29 12:52:40 1997 Gerd Moellmann <gerd@acm.org>
14595
14596 * xdisp.c (display_text_line): Mostly pixel oriented.
14597
14598 * dispextern.h (struct glyph): BOX_WIDTH -> PIXEL_WIDTH.
14599
14600 * term.c (append_intermediate_glyph): Generate padding glyphs.
14601
14602 * xdisp.c (display_text_line): More into final direction.
14603
14604 * xterm.c (XTget_char_info): Use WHAT field of CHAR_INFO.
14605 (XTget_char_info): Use tabs as multiples of spaces.
14606
14607 * term.c (get_char_info): Use WHAT field of CHAR_INFO.
14608 Use tabs as multiples of spaces.
14609
14610 * dispextern.h (struct char_info ): WHAT field.
14611
14612 * term.c (encode_terminal_code): Don't use GLYPH_CHAR, use
14613 FAST_GLYPH_CHAR instead because GLYPH_CHAR won't remove faces.
14614
14615Mon Jul 28 14:23:06 1997 Gerd Moellmann <gerd@acm.org>
14616
14617 * dispnew.c (init_char_info): Correct TAB_WIDTH to a reasonable
14618 value.
14619 (init_char_info): Initialize with glyph row.
14620
14621 * term.c (get_char_info): Check WANT_ELLIPSIS_P.
14622
14623 * xterm.c (XTget_char_info): Check WANT_ELLIPSIS_P.
14624
14625 * dispextern.h (struct char_info ): GLYPH_ROW for intermediate
14626 glyphs.
14627
14628 * dispnew.c (init_char_info): Init GLYPH_ROW to NULL. CHAR_CURSOR
14629 moved to xdisp.c.
14630
14631 * xdisp.c (display_text_line): Use CHAR_CURSOR.
14632
14633 * xterm.c (x_append_intermediate_glyph): Intermediate glyph
14634 generation.
14635 (XTget_char_info): Ditto.
14636
14637 * term.c (get_char_info): Intermediate glyph generation.
14638 (append_intermediate_glyph): Ditto.
14639
14640Sun Jul 27 18:57:24 1997 Gerd Moellmann <gerd@acm.org>
14641
427ec082 14642 * dispnew.c (compute_char_cursor_face): Compute the face for a
26901792
DL
14643 CHAR_CURSOR.
14644 (init_char_cursor): Initialize a CHAR_CURSOR.
14645 (get_char_and_advance): Get next character to display.
14646
14647 * dispextern.h (struct char_cursor): Cursor for iterating over
14648 display text of CURRENT_BUFFER.
14649
14650Sat Jul 26 13:33:03 1997 Gerd Moellmann <gerd@acm.org>
14651
14652 * term.c (get_char_info): Set MAX_PIXEL_WIDTH in CHAR_INFO.
14653
14654 * dispextern.h (struct char_info ): Use LISP_CHAR_TABLE for DP.
14655 New member MAX_PIXEL_HEIGHT.
14656
14657 * xterm.c (x_per_char_metric): Get per character metrics.
14658 (XTget_char_info): More cases covered.
14659
14660 * term.c (get_char_and_info): Get next character and character
14661 display information.
14662 (get_char_info): Get character display information.
14663
14664 * dispextern.h: Character display information.
14665
427ec082 14666 * xterm.c (x_get_char_font_and_encoding): Get font and
26901792
DL
14667 encode character.
14668 (XTget_char_info): Get display information about a character.
14669
14670Wed Jul 23 16:50:18 1997 Gerd Moellmann <gerd@acm.org>
14671
14672 * dispextern.h (WINDOW_DISPLAY_MODE_LINE_HEIGHT): Height is
14673 zero if window is mini-window.
14674
14675 * xdisp.c: Include xterm.h or w32term.h for FRAME_LINE_HEIGHT.
14676 (try_window): DISPLAY_TEXT_LINE as long as Y < DISPLAY_HEIGHT.
14677
427ec082 14678 * dispnew.c (assign_row): Assign row pixel height.
26901792
DL
14679 (clear_glyph_row): Clear pixel height.
14680 (update_window): Use PIXEL_HEIGHT.
14681
14682 * xdisp.c (display_string): Set row pixel height temporarily.
14683 (display_text_line): Ditto.
14684
427ec082 14685 * dispextern.h (GLYPH_PIXEL_WIDTH):
26901792
DL
14686 (GLYPH_PIXEL_HEIGHT): Get glyph pixel dimension.
14687
427ec082 14688 * frame.h (FRAME_DEFAULT_PIXEL_LINE_HEIGHT): Get height of
26901792
DL
14689 line in default font.
14690 (FRAME_DEFAULT_GLYPH_PIXEL_WIDTH): Get width of character
14691 in default font.
14692 (FRAME_MODE_LINE_PIXEL_HEIGHT): Get height of mode line.
14693
14694 * xterm.h (FRAME_MODE_LINE_HEIGHT): Return height of mode line
14695 in pixels.
14696
14697 * dispnew.c (allocate_leaf_matrix): Use window pixel macros.
14698
14699 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH):
427ec082
SS
14700 (WINDOW_DISPLAY_PIXEL_HEIGHT):
14701 (WINDOW_DISPLAY_MODE_LINE_HEIGHT):
14702 (WINDOW_DISPLAY_PIXEL_HEIGHT_WITHOUT_MODE_LINE):
14703 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X):
14704 (WINDOW_DISPLAY_RIGHT_EDGE_PIXEL_X):
14705 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y):
26901792
DL
14706 (WINDOW_DISPLAY_BOTTOM_EDGE_PIXEL_Y): Macros to get various
14707 pixel values related to windows.
14708
14709Mon Jul 21 12:22:02 1997 Gerd Moellmann <gerd@acm.org>
14710
14711 * xterm.c (XTflash): Flash last line of frame.
14712
14713 * dispextern.h (cursor_in_echo_area): Extern declaration.
14714
14715 * xterm.c (dumpglyphs): 8-bit version to test if my Xserver
14716 freezes stem from 16-bit functions.
14717
14718 * xterm.c (x_display_and_set_cursor): Don't display hollow
14719 cursor in mini windows.
14720
14721 * window.c (replace_window): Initialize PHYS_CURSOR_TYPE.
14722 (make_window): Ditto.
14723
14724 * xterm.c (x_erase_phys_cursor): Erase cursor image.
14725 (x_display_and_set_cursor): Merged version of X_DISPLAY_BOX_CURSOR
14726 and X_DISPLAY_BAR_CURSOR.
14727 (x_display_cursor): Use it.
14728 (x_update_window_cursor): Use it.
14729
14730 * xdisp.c (display_text_line): Set cursor for window even if not
14731 selected.
14732
14733 * xterm.c (x_display_bar_cursor): Use HPOS and VPOS instead
14734 of X and Y to denote matrix positions.
14735 (x_display_cursor): Ditto.
14736
14737 * dispnew.c (scrolling_window): Scrolling for windows.
14738
14739Wed Jul 16 13:37:51 1997 Gerd Moellmann <gerd@acm.org>
14740
14741 * dispnew.c (build_frame_matrix): Work on windows with update
14742 flag set.
14743 (build_frame_matrix_from_window_tree): Ditto.
14744 (build_frame_matrix_from_leaf_window): Ditto.
14745
14746 * xdisp.c (echo_area_display): Set MUST_BE_UPDATED_P instead of
14747 building frame matrix.
427ec082 14748 (redisplay_internal): Set window update flags instead of
26901792
DL
14749 building frame matrix.
14750
14751 * minibuf.c (read_minibuf): Set MUST_BE_UPDATED_P instead of
14752 building frame matrix.
14753
14754 * window.c (make_window): Initialize new members.
14755 (replace_window): Ditto.
14756
14757 * xfns.c (Fx_create_frame): Don't set PHYS_CURSOR_X to -1.
14758 I don't believe this is really necessary.
14759
14760 * dispnew.c (build_frame_matrix_from_leaf_window): Determine
427ec082 14761 border glyph once.
26901792
DL
14762
14763Tue Jul 15 13:58:33 1997 Gerd Moellmann <gerd@acm.org>
14764
427ec082 14765 * window.c (mark_window_cursors_off): Mark all cursors in
26901792
DL
14766 window tree off.
14767
427ec082 14768 * xterm.c (x_display_box_cursor): Window paraemter. Use
26901792
DL
14769 window matrix.
14770 (glyph_to_pixel_pos): Convert matrix pos -> pixels.
14771 (pixel_to_glyph_pos): Convert pixel pos -> matrix pos.
14772 (x_update_cursor): Work on windows.
14773 (x_display_bar_cursor): Ditto.
14774 (x_draw_single_glyph): Ditto.
14775
14776 * xterm.h: Prototype for X_DISPLAY_CURSOR.
14777
14778 * xterm.c (XTcursor_to): Void return type. Test for
14779 UPDATED_WINDOW. Call x_display_cursor with window.
14780 (x_display_cursor): Void return type. Window instead of frame
14781 parameter.
14782
14783 * window.h (WINDOW_RIGHTMOST_P, WINDOW_TOPMOST_P): Use functions
14784 below.
14785
14786 * window.c (window_rightmost_p, window_topmost_p): Based on
14787 window tree.
14788
14789 * dispnew.c (adjust_frame_message_buffer): Allocate with
14790 FRAME_MESSAGE_BUF_SIZE.
14791
14792 * window.h: PHYS_CURSOR_.* added.
14793
14794 * frame.h (struct frame): Cursor information removed.
14795
14796 * frame.h (FRAME_SCROLL_BAR_WIDTH): Removed because unused.
14797 (FRAME_WINDOW_WIDTH_ARG): Don't add scroll bar width.
14798
14799 * window.h (WINDOW_LEFT_MARGIN): Remove FRAME_LEFT_SCROLL_BAR.
14800
14801 * window.c (window_internal_width): Scroll bars no longer
14802 part of window.
14803
14804 * xterm.c (XTclear_end_of_line): FRAME_LEFT_SCROLL_BAR_WIDTH
14805 removed.
14806
14807 * xfns.c (x_set_scroll_bar_width): FRAME_LEFT_SCROLL_BAR_WIDTH
14808 removed.
14809
14810 * xdisp.c (echo_area_display): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
14811 (redisplay_internal): Ditto.
14812 (redisplay_window): Ditto.
14813 (redisplay_window): Ditto.
14814 (display_text_line): Ditto.
14815 (display_mode_line): Ditto.
14816
14817 * minibuf.c (read_minibuf): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
14818
14819 * dispnew.c (set_cursor_to): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
14820 (direct_output_for_insert): Ditto.
14821 (direct_output_forward_char): Ditto.
14822 (update_frame_1): Ditto.
14823
14824Mon Jul 14 12:30:03 1997 Gerd Moellmann <gerd@acm.org>
14825
14826 * dispnew.c (updated_window): Set by UPDATE_WINDOW to the window
14827 being updated.
14828 (update_window): Set and clear it.
14829
14830 * dispnew.c (update_window_line, update_window, scrolling_window):
14831 First versions.
14832
14833 * dispnew.c (build_frame_matrix_from_leaf_window): Add vertical
14834 bar for window borders.
14835 (fill_up_glyph_row_area_with_spaces): Fill an area of a row
14836 with spaces.
14837 (fill_up_glyph_row_with_spaces): Call above function.
14838
14839 * xdisp.c (display_text_line): Don't add vertical bar for
14840 window borders.
14841 (display_string): Ditto.
14842
14843 * window.c (make_window): Init CURSOR_VPOS/HPOS.
14844 (replace_window): Ditto.
14845
14846 * xterm.c (XTwrite_glyphs): Use selected window cursor position.
14847
14848 * xfns.c (Fx_contour_region): Use selected window cursor position.
14849 (Fx_uncontour_region): Ditto.
14850 (Fx_select_region): Ditto.
14851
14852 * frame.c (make_frame): Remove CURSOR_X/Y.
14853
14854 * xdisp.c (redisplay_internal): Use window cursor position.
14855
14856 * dispnew.c (update_frame_1): Use cursor position of selected
14857 window.
14858 (change_frame_size_1): Ditto.
14859
14860 * xterm.c (XTupdate_begin): Set CURS_X/Y from selected window.
14861 (XTwrite_glyphs): Use cursor position of selected window.
14862
14863 * xfns.c (x_set_scroll_bar_width): Set cursor pos of selected
14864 window.
14865
14866 * dispnew.c (set_cursor_to): Set window cursor position.
14867 (direct_output_for_insert): Use window cursor position.
14868 (init_display): Don't use frame cursor position.
14869
14870 * window.h: CURSOR_VPOS/HPOS added.
14871
14872 * frame.h (struct frame): CURSOR_X/Y removed.
14873 (FRAME_CURSOR_X): Removed.
14874 (FRAME_CURSOR_Y): Ditto.
14875
14876 * dispnew.c (direct_output_for_insert): LAST_POINT_X removed.
14877 (direct_output_forward_char): Ditto.
14878
14879 * xdisp.c (redisplay_internal): LAST_POINT_X and LAST_POINT_Y
14880 removed.
14881
14882 * window.c (make_window): LAST_POINT_X and LAST_POINT_Y removed.
14883
14884 * window.h: LAST_POINT_X and LAST_POINT_Y removed.
14885
14886Sun Jul 13 14:18:24 1997 Gerd Moellmann <gerd@acm.org>
14887
14888 * xdisp.c: Bug fixes using SET_CURSOR with HPOS 0 instead
14889 of FRAME_LEFT_SCROLL_BAR_WIDTH.
14890
14891 * dispextern.h: Changed function names.
14892
14893 * dispnew.c (scrolling): Don't call SCROLLING_1 if WINDOW_SIZE
14894 < 2.
14895 (clear_window_matrices): Formerly two functions for desired
14896 and current matrix.
14897 (update_frame_1): Call CLEAR_DESIRED_MATRICES.
14898 (update_frame): Return return value from UPDATE_FRAME_1.
14899
14900Sat Jul 12 12:58:48 1997 Gerd Moellmann <gerd@acm.org>
14901
14902 * xdisp.c (try_window): Set WINDOW_END_VPOS with window relative
14903 LAST_TEXT_VPOS.
14904
14905 * frame.c (set_menu_bar_lines): Adjust matrices.
14906
14907 * dispnew.c (set_cursor_to): Set cursor position.
14908
14909 * minibuf.c (read_minibuf): Build frame matrix.
14910
14911 * xdisp.c (this_line_start_hpos): Renamed to
14912 THIS_LINE_START_WINDOW_HPOS to make it clear that this is window
14913 relative.
14914 (this_line_vpos): Renamed to THIS_LINE_WINDOW_VPOS for the same
14915 reason.
14916
427ec082 14917 * dispnew.c (build_frame_matrix): Don't clear rows of the
26901792
DL
14918 menu bar.
14919 (clear_window_records): Clear window rows.
14920 (clear_frame_records): Clear window and frame rows.
14921 (clear_glyph_matrix): Set all rows of a matrix to empty.
14922
14923 * xdisp.c (echo_area_display): Parameter UPDATE_FRAME_P. Update
14924 frame if set.
14925 (message2_nolog): Pass 1 to ECHO_AREA_DISPLAY. UPDATE_FRAME
14926 removed.
14927 (redisplay_internal): Pass 0 to ECHO_AREA_DISPLAY.
14928 (redisplay_internal): Build frame matrix before UPDATE_FRAME.
14929
14930 * dispnew.c (assign_row): Assign one glyph row to another.
14931 (mirrored_make_current): Use it.
14932 (mirror_make_current): Use it.
14933 (update_line): Rely on MIRRORED_MAKE_CURRENT to set flags and
14934 used counters for the current glyph row.
427ec082 14935
26901792
DL
14936
14937Fri Jul 11 13:16:50 1997 Gerd Moellmann <gerd@acm.org>
14938
14939 * lisp.h: Prototype for SCAN_BUFFER.
14940
14941 * xdisp.c (redisplay_windows): Simplified.
14942
14943 * dispnew.c (window_to_frame_vpos): Convert window to frame vpos
14944 with debug checks.
14945 (window_to_frame_hpos): Convert window to frame hpos with checks.
14946 (frame_to_window_vpos): Convert frame to window vpos with checks.
14947 (frame_to_window_hpos): Convert frame to window hpos with checks.
14948
14949 * dispextern.h: PRESERVE_OTHER_COLUMNS removed.
14950
14951 * dispnew.c: PRESERVE_OTHER_COLUMNS removed.
14952
14953 * xdisp.c (redisplay_internal): Another instance of
14954 DISPLAY_TEXT_LINE with window relative VPOS.
14955 (redisplay_internal): Remove PRESERVE_OTHER_COLUMNS.
14956
14957 * dispnew.c (init_desired_glyphs): Do it on window matrices,
14958 only.
14959
14960 * xdisp.c (try_window_id): Use CANCEL_WINDOW_LINE.
14961 (redisplay_internal): Ditto.
14962
14963 * dispnew.c (cancel_window_line): Use window matrix. Changed
14964 name to CANCEL_WINDOW_LINE.
14965
14966 * xdisp.c (try_window_id): Use DISPLAY_TEXT_LINE with window
14967 relative VPOS.
14968
427ec082
SS
14969 * dispextern.h (WINDOW_TO_FRAME_VPOS): Convert window vpos
14970 to frame vpos.
26901792
DL
14971 (WINDOW_TO_FRAME_HPOS): Convert window hpos to frame hpos.
14972 (FRAME_TO_WINDOW_VPOS): Convert frame vpos to window vpos.
14973 (FRAME_TO_WINDOW_HPOS): Convert frame hpos to window hpos.
14974
14975 * xdisp.c (try_window_id): Use ADJUST_WINDOW_CHARSTARTS with
14976 window relative VPOS.
14977 (redisplay_internal): Use ADJUST_WINDOW_CHARSTARTS with window
14978 relative VPOS.
14979
14980 * dispnew.c (adjust_window_charstarts): Use INCREMENT_GLYPH_-
14981 MATRIX_BUFFER_POSITIONS.
14982
14983 * xdisp.c (try_window_id): Use SCROLL_FULL_WIDTH_WINDOW.
14984
14985 * dispextern.h: Prototype for SCROLL_FULL_WIDTH_WINDOW.
14986
427ec082 14987 * dispnew.c (scroll_frame_lines): Make it work on window
26901792
DL
14988 matrix. Change name to scroll_full_width_window.
14989
14990 * xdisp.c (message2_nolog): Don't fwrite NULL message If
14991 NONINTERACTIVE.
14992
14993Mon Jul 7 14:44:38 1997 Gerd Moellmann <gerd@acm.org>
14994
14995 * dispnew.c (init_desired_glyphs): Clear both frame matrix
427ec082 14996 and window matrices.
26901792
DL
14997 (adjust_window_charstarts): Use window matrix.
14998 (cancel_my_columns): Use window matrix.
14999 (direct_output_for_insert): Use window matrix, only.
15000
15001 * xdisp.c (display_glyphs): Extracted code from DISPLAY_STRING.
15002 (display_string): Call display_glyphs.
15003 (display_menu_bar_string): Display a string in a menu bar line.
15004 (display_menu_bar): Use DISPLAY_MENU_BAR_STRING.
15005 (display_text_line): Use window matrix.
15006 (try_window): Use window relative positions.
15007
15008Sun Jul 6 17:02:26 1997 Gerd Moellmann <gerd@acm.org>
15009
15010 * dispnew.c (adjust_frame_glyphs): Allocate window matrices from
15011 (0, 0).
15012 (allocate_leaf_matrix): Add FRAME_MENU_BAR_LINES to the height of
15013 top-most windows.
15014
15015 * window.h (WINDOW_TOPMOST_P): Added.
15016
15017 * xdisp.c (echo_area_display): Use PREPARE_DESIRED_ROW.
15018 (redisplay_window): Ditto.
15019 (display_text_line): Ditto.
15020 (display_menu_bar): Ditto.
15021 (display_mode_line): Ditto.
15022 (display_mode_line): Use window matrix.
15023 (display_string): Use window matrix.
15024 (display_mode_element): Ditto.
15025 (echo_area_display): Don't display if frame has no pools yet.
15026 (echo_area_display): Work with window matrix for mini window.
15027 (redisplay_window): Use window marix for mini window.
15028 (display_text_line): Assume HPOS and VPOS are window relative and
15029 use that for DISPLAY_STRING.
15030
15031 * dispextern.h: Prototype for prepare_desired_row.
15032
15033 * dispnew.c (prepare_desired_row): Replacement for
15034 GET_DISPLAY_LINE.
15035
15036 * dispnew.c (adjust_window_charstarts): Always allocate window
15037 matrices.
15038 (clear_glyph_row): Only reset used counters and flags.
15039
15040Sat Jul 5 14:55:44 1997 Gerd Moellmann <gerd@acm.org>
15041
15042 * dispnew.c (scroll_frame_lines): Don't assume first scolled
427ec082 15043 line is non-empty.
26901792
DL
15044 (realloc_glyph_pool): Don't add 1 to the pool size.
15045 (adjust_glyph_matrix): Don't add 1 to pointers to glyph areas.
15046
15047 * dispnew.c (line_hash_code): Don't use null-glyph end marker.
15048 (line_draw_cost): Ditto.
15049 (update_line): Ditto.
15050 (update_line): Use SPACE_GLYPH.
15051 (count_blanks): Additional parameter LEN.
15052
15053 * xdisp.c (display_text_line): Use SPACE_GLYPH.
15054 (display_text_line): Don't add null-glyph end marker.
15055 (display_string): Use SPACE_GLYPH.
15056 (display_string): Don't use null-glyph end marker.
15057
15058 * term.c (clear_end_of_line): Use SPACE_GLYPH.
15059
15060 * dispnew.c (clear_glyph_row): Don't use null-glyph end markers.
15061 (fill_up_glyph_row_with_spaces): Ditto.
15062 (preserve_other_columns): Add SPACE_GLYPH at then end of desired
15063 rows, instead of null-glyphs.
15064 (direct_output_for_insert): Don't add null-glyph end marker.
15065
15066 * scroll.c (do_direct_scrolling): Change algorithm to construct
15067 vector of lines assigned. Call MIRRORED_LINE_DANCE:
15068 (do_scrolling): Ditto.
15069
15070 * dispnew.c (mirror_line_dance): Mirror line assignments in a
15071 frame matrix in window matrices.
15072 (mirrored_line_dance): Do line assignments during scrolling.
15073 Maybe do corresponding assignments in window matrices.
15074 (check_window_matrix_pointers): Check that window rows and frame
15075 rows agree about glyph pointers.
15076 (check_matrix_pointers): Ditto.
15077 (mirrored_make_current): Make a row of a desired matrix current;
15078 maybe mirror the operation in window matrices.
15079 (mirror_make_current): Make window desired matrix row current when
15080 frame matrix row was made current.
15081
15082Fri Jul 4 13:27:46 1997 Gerd Moellmann <gerd@acm.org>
15083
15084 * dispnew.c (check_matrix_pointer_lossage): Check against
15085 pointer lossage in matrices.
15086 (get_glyph_matrix_row): Removed.
15087
15088 * scroll.c (do_scrolling): Simplified.
15089 (do_direct_scrolling): Simplified.
15090 (scrolling_1): Pass CURRENT_MATRIX instead of FRAME to
15091 DO_.*SCROLLING.
427ec082 15092
26901792
DL
15093
15094 * dispnew.c (ins_del_glyph_rows): Insert/delete rows in a matrix.
15095 (rotate_vector): Removed.
15096 (rotate_pointers): Removed.
15097 (scroll_frame_lines): Simplified.
15098
15099Thu Jul 3 13:54:21 1997 Gerd Moellmann <gerd@acm.org>
15100
15101 * dispextern.h (MATRIX_ROW_SWAP_CONTENTS): Removed.
15102
15103 * dispnew.c (increment_glyph_matrix_buffer_positions): Does
15104 what the name says.
15105 (clear_glyph_row): Make a glyph row structure empty.
15106 (make_matrix_row_current): Make a glyph row current.
15107 (make_window_matrix_row_current): Perform analogous row swaps
15108 for window matrices.
15109 (update_line): Call make_matrix_row_current.
15110
15111Wed Jul 2 13:43:35 1997 Gerd Moellmann <gerd@acm.org>
15112
15113 * dispextern.h (SET_MATRIX_ROW_ENABLED_P): Better macro name.
15114 (SET_MATRIX_ROW_INVERSE_P): Better name and HIGHLIGHT_P ->
15115 INVERSE_P.
15116 (MATRIX_ROW_INVERSE_P): Former MATRIX_ROW_HIGHLIGHT_P.
15117 (struct glyph_row): HIGHLIGHT_P -> INVERSE_P
15118
15119 * all files: use above new names.
15120
15121 * dispnew.c (scroll_frame_lines): Simplified. Use
15122 SCROLL_GLYPH_MATRIX.
15123 (make_glyph_row_empty): Mark a glyph row empty.
427ec082 15124 (increment_glyph_row_buffer_positions): Increment
26901792
DL
15125 buffer positions in a glyph row.
15126 (increment_glyph_matrix_buffer_positions): Increment buffer
15127 positions in a range of rows.
15128 (scroll_glyph_matrix): Scroll a glyph matrix.
15129 (swap_glyphs_in_rows): Swap glyphs between rows.
15130 (swap_glyph_pointers): Swap pointers between rows.
15131 (glyph_row_slice_p): Return 1 if one row is a slice of another.
15132 (init_display): Initialize SPACE_GLYPH.
15133 (fill_up_glyph_row_areas_with_spaces): Fill up areas with
427ec082 15134 spaces.
26901792
DL
15135
15136Tue Jul 1 13:49:55 1997 Gerd Moellmann <gerd@acm.org>
15137
15138 * xterm.c (dumprectangle): Use vectors in glyph rows.
15139
15140 * xdisp.c (display_text_line): Use vectors in glyph rows.
15141 (display_string): Ditto.
15142
15143 * scroll.c (do_scrolling): Use vectors in glyph rows.
15144 (do_direct_scrolling): Ditto.
15145
15146 * alloc.c (mark_object): Use vectors in glyph rows.
15147 Mark for all frame types.
15148
15149 * dispnew.c (adjust_glyph_matrix): Use vectors to glyphs in
15150 glyph rows.
15151 (get_glyph_matrix_row): Ditto.
15152 (matrix_row): Ditto.
15153 (rotate_pointers): Ditto.
15154 (scroll_frame_lines): Ditto.
15155 (preserve_other_columns): Ditto.
15156 (cancel_my_columns): Ditto.
15157 (update_line): Ditto.
15158 (direct_output_for_insert): Ditto.
15159
15160 * dispextern.h (struct glyph_row): Use a vector of pointers
15161 instead of individual members. Use a vector of used counters.
15162 (MATRIX_ROW_SWAP_CONTENTS): Use vectors.
15163 (MATRIX_ROW_GLYPH_START): Ditto.
15164 (MATRIX_ROW_GLYPH_END): Ditto.
15165 (MATRIX_ROW_USED): Ditto.
15166 (MATRIX_ROW_SET_USED): Ditto.
15167
15168 * dispnew.c (line_hash_code): Simplified.
15169
15170Mon Jun 30 20:39:38 1997 Gerd Moellmann <gerd@acm.org>
15171
15172 * dispnew.c: Prototype for ROTATE_VECTOR, ROTATE_POINTERS,
15173 CHANGE_FRAME_SIZE_1
15174 (preserve_other_columns): Void return.
15175 (cancel_my_columns): Void return type.
15176 (scrolling): Int return type.
15177 (do_pending_window_change): Void return type.
15178 (change_frame_size): Ditto.
15179 (bitch_at_user): Ditto.
15180 (init_display): Ditto.
15181 (syms_of_display): Ditto.
15182
15183 * dispextern.h: add prototypes for REDRAW_FRAME,
15184 REDRAW_GARBAGED_FRAMES, CANCEL_LINE, CLEAR_FRAME_RECORDS,
15185 INIT_DESIRED_GLYPHS, SCROLL_FRAME_LINES, PRESERVE_OTHER_COLUMNS,
15186 ADJUST_WINDOW_CHARSTARTS, CANCEL_MY_COLUMNS,
15187 DIRECT_OUTPUT_FOR_INSERT, DIRECT_OUTPUT_FORWARD_CHAR,
15188 UPDATE_FRAME, SCROLLING, BUFFER_POSN_FROM_COORDS,
15189 DO_PENDING_WINDOW_CHANGE, CHANGE_FRAME_SIZE, BITCH_AT_USER,
15190 SIT_FOR, INIT_DISPLAY, SYMS_OF_DISPLAY,
427ec082 15191
26901792
DL
15192 * dispnew.c (redraw_frame): FRAME_PTR -> struct frame. Return
15193 void.
15194 (cancel_line): Return void.
15195 (clear_frame_records): Return void.
427ec082 15196
26901792
DL
15197 * dispextern.h (struct glyph): Remove GLYPH, add bit-fields.
15198 (SET_CHAR_GLYPH): Fill a character glyph.
15199 (SET_CHAR_GLYPH_FROM_GLYPH): Set a character glyph from a GLYPH.
15200 (GLYPH_FROM_CHAR_GLYPH): Construct a GLYPH from a character
427ec082 15201 glyph.
26901792
DL
15202 (CHAR_GLYPH_CHAR_CODE): Return character code of a glyph.
15203 (SET_CHAR_GLYPH_CHAR_CODE): Set character code of a glyph.
15204 (CHAR_GLYPH_FACE_ID): Return face id of a glyph.
15205 (SET_CHAR_GLYPH_FACE_ID): Set face id of a glyph.
15206 (CHAR_GLYPH_PADDING_P): Return padding flag of a glyph.
15207 (SET_CHAR_GLYPH_PADDING_P): Set padding flag.
15208 (CHAR_GLYPH_REVERSE_P): Return reversed flag.
15209 (SET_CHAR_GLYPH_REVERSE_P): Set reversed flag.
15210 (MATRIX_ROW_SWAP_CONTENTS): Swap pointers between rows.
15211
15212 * term.c (reassert_line_highlight): Check CHARS_WASTED == 0.
15213
15214 * window.h (struct window): Add comment that no Lisp data may
15215 come below CURRENT_MATRIX.
15216
15217 * alloc.c (mark_object): Change window mark code to stop with
15218 member CURRENT_MATRIX.
15219
15220Sat Jun 28 13:54:55 1997 Gerd Moellmann <gerd@acm.org>
15221
15222 * scroll.c (do_scrolling): Change algorithm to use pointers.
15223 (do_direct_scrolling): Ditto.
15224
15225 * dispnew.c (get_glyph_matrix_row): Use pointers stored in rows.
15226 (new_glyph_pool): Formerly new_FRAME_GLYPH_MATRIX.
15227 (free_glyph_pool): Formerly FREE_FRAME_GLYPH_MATRIX
15228 (realloc_glyph_pool): Formerly REALLOC_FRAME_GLYPH_MATRIX.
15229 Returns 1 if pool changed.
15230 (matrix_row): Additional check for lost pointers to glyph rows.
15231 (compute_matrices): Additional parameter DIM_P set means that no
15232 allocation should take place. Addtional parameter
15233 ANY_WINDOWS_CHANGED_P set if any windows matrix has changed.
15234 (compute_leaf_matrix): Additional parameter CHANGED_P set to 1
15235 when window matrix changes. Additional parameter DIM_ONLY_P set
15236 to 1 to indicate that no allocation should take place.
15237 (adjust_frame_glyphs): Construct new glyph pools and glyph
15238 matrices. Optimize frame redraws.
15239 (free_glyphs): Free pools.
15240 (check_glyph_memory): Check pools not freed.
15241 (rotate_pointers): Rotate pointers in a vector of glyph rows.
15242 (scroll_frame_lines): Change algorithm to use pointers.
15243 (update_line): Ditto.
15244
15245 * dispextern.h (struct glyph_row): Use pointers to areas in a row.
15246 (global): All macro names changed from prefix FRAME_MATRIX to
15247 MATRIX.
15248
15249Fri Jun 27 14:51:15 1997 Gerd Moellmann <gerd@acm.org>
15250
15251 * dispextern.h (struct glyph_pool): Replacement for former
15252 FRAME_GLYPH_MATRIX.
15253 (struct glyph_matrix): No longer contains sizes of allocated
15254 areas.
15255
15256 * xdisp.c (redisplay_internal): Don't redisplay if frame has
15257 no glyph pools.
15258
15259 * frame.c (make_frame): Initialize pools.
15260
15261Thu Jun 26 00:00:55 1997 Gerd Moellmann <gerd@acm.org>
15262
427ec082 15263 * scroll.c (do_direct_scrolling): Don't assume that the
26901792
DL
15264 line moving algorithm has no intermediate steps.
15265 (do_scrolling): Ditto.
15266
15267 * Makefile.in (alloc.o): Add dependency dispextern.h.
15268
15269 * alloc.c: Include dispextern.h for glyph definitions.
15270
15271 * dispnew.c (get_glyph_matrix_row): Return 1 if ROW_INDEX
15272 is legal, return 0 otherwise.
15273
15274 * window.h: Add comment that windows are marked specially.
15275
15276 * alloc.c (mark_object): Mark windows specially.
15277
15278
15279Wed Jun 25 15:22:58 1997 Gerd Moellmann <gerd@acm.org>
15280
15281 * dispextern.h (struct glyph): Add member OBJECT
15282 referencing a Lisp object from which a glyph was drawn.
15283 Member TEXT_POSITION renamed POSITION.
15284 * xterm.c, xdisp.c, dispnew.c: Rename TEXT_POSITION -> POSITION.
15285
15286 * alloc.c: Include dispextern.h
15287 (mark_object): Mark objects referenced from glyphs.
15288
f28eba7b 15289 * frame.c (make_frame): Initialize DECODE_MODE_SPEC_BUFFER.
26901792
DL
15290
15291 * scroll.c (do_direct_scrolling): Remove TEMP_MATRIX.
15292 (do_scrolling): Ditto.
15293
427ec082 15294 * frame.h (struct frame): TEMP_MATRIX removed.
26901792
DL
15295 DECODE_MODE_SPEC_BUFFER added.
15296
15297 * window.h: TEMP_MATRIX removed.
15298
15299 * scroll.c: OPHYS_LINES removed.
15300
15301 * dispnew.c: OPHYS_LINES and OPHYS_LINES_LENGTH removed.
15302 FRAME_PTR -> struct frame *.
15303
15304 * termhooks.h: Prototypes for INSERT_GLYPHS_HOOK,
15305 WRITE_GLYPHS_HOOK, DELETE_GLYPHS_HOOK,
15306
15307 * term.c: Prototypes for INSERT_GLYPHS_HOOK,
15308 WRITE_GLYPHS_HOOK, DELETE_GLYPHS_HOOK,
15309
15310 * xdisp.c (redisplay_internal): Remove call to VERIFY_CHARSTARTS.
15311 (do_verify_charstarts): Removed.
15312
15313 * frame.c (Fmake_terminal_frame): Adjust glyphs.
15314 (Fdelete_frame): Free glyphs.
15315 (make_frame): Initialize matrix fields in frame.
15316
f28eba7b 15317 * config.in (PROTO): Added.
26901792 15318
f28eba7b 15319 * emacs.c (shut_down_emacs): Check glyph memory.
26901792
DL
15320
15321 * window.c (Fdelete_window): Free window matrices.
15322 (Fset_window_configuration): Ditto.
15323 (Fdelete_window): Adjust glyphs.
15324 (Fsplit_window): Ditto.
15325 (change_window_height): Ditto.
15326 (Fset_window_configuration): Ditto.
15327 (make_window): Initialize DESIRED_MATRIX and CURRENT_MATRIX.
15328 (replace_window): Reset DESIRED_MATRIX and CURRENT_MATRIX
15329
15330 * Makefile.in (window.o): Add dependency window.c -> dispextern.h
15331
15332 * window.c: Include dispextern.h
15333
15334 * scroll.c (do_scrolling): Use new glyphs.
15335 (do_direct_scrolling): Ditto.
15336
15337 * xdisp.c: Some function prototypes.
15338 (redisplay_internal): Don't do anything if matrices not yet set.
15339 (redisplay_internal): Use new glyphs.
15340 (try_window_id): Ditto.
15341 (copy_part_of_rope): Ditto.
15342 (display_text_line): Ditto.
15343 (display_menu_bar): Ditto.
15344 (display_mode_line): Ditto.
15345 (display_string): Ditto.
15346
15347 * xterm.c: Prototypes for some local functions.
15348 (dumpglyphs): Use new glyphs.
15349 (XTwrite_glyphs): Ditto.
15350 (dumprectangle): Ditto.
15351 (note_mouse_highlight): Ditto.
15352 (fast_find_position): Ditto.
15353 (show_mouse_face): Ditto.
15354 (x_draw_single_glyph): Ditto.
15355 (x_display_bar_cursor): Ditto.
15356 (x_display_box_cursor): Ditto.
15357 (x_new_font): Adjust glyphs when font change.
15358
15359 * term.c (clear_end_of_line): Use new glyphs.
15360 (write_glyphs): Ditto.
15361 (insert_glyphs): Ditto.
15362
15363 * Makefile.in (term.o): term.c depends on dispextern.h
15364
15365 * term.c: Include dispextern.h
15366
15367 * dispnew.c (direct_output_forward_char): Old glyph functions
427ec082 15368 removed, new inserted.
26901792
DL
15369 (line_hash_code): Use new glyphs.
15370 (line_draw_cost): Ditto
15371 (cancel_line): Ditto
15372 (clear_frame_records): Ditto.
15373 (init_desired_glyphs): Ditto.
15374 (get_display_line): Ditto
15375 (scroll_frame_lines): Ditto.
15376 (preserve_other_columns): Ditto.
15377 (adjust_window_charstarts): Ditto.
15378 (cancel_my_columns): Ditto.
15379 (direct_output_for_insert): Ditto.
15380 (update_frame): Ditto.
15381 (quit_error_check): Made empty.
15382 (scrolling): Use new glyphs.
15383 (count_blanks): Ditto.
15384 (count_match): Ditto.
15385 (update_line): Ditto.
15386 (init_display): Adjust glyphs initially.
15387 (change_frame_size_1): Adjust glyphs.
15388
15389 * dispextern.h: Old glyphs removed, new added.
15390
15391 * xfaces.c (min_char_bounds): Get smallest char in loaded fonts.
15392
15393 * xterm.h: Prototype for min_char_bounds.
15394
15395 * window.h (struct window): Remove old glyphs, add new.
15396
15397 * frame.h (struct frame): Remove old glyphs, add new.
427ec082 15398
26901792
DL
153991999-07-20 Dave Love <fx@gnu.org>
15400
15401 * buffer.c (syms_of_buffer): Make
15402 default-enable-multibyte-characters a user variable.
15403
154041999-07-14 Richard Stallman <rms@gnu.org>
15405
15406 * Version 20.4 released.
15407
154081999-07-14 Richard Stallman <rms@gnu.org>
15409
15410 * filelock.c (lock_file): Do nothing if purifying.
15411
154121999-07-10 Richard Stallman <rms@gnu.org>
15413
15414 * xterm.c (x_display_bar_cursor): Use the cursor-color
15415 to display the bar, not the cursor foreground pixel.
15416
154171999-07-09 Andrew Innes <andrewi@gnu.org>
15418
15419 * w32console.c (w32_use_full_screen_buffer): New variable.
15420 (syms_of_ntterm): Register it.
15421 (initialize_w32_display): Set initial frame size accordingly,
15422 respecting the LINES and COLUMNS environment variables if set.
15423
15424 * w32inevt.c (w32_console_read_socket): Use it.
15425
154261999-07-07 Kenichi Handa <handa@etl.go.jp>
15427
15428 * callproc.c (Fcall_process): Decide coding system for decoding
15429 after we set to the target buffer. If the output goes to a
15430 unibyte buffer, suppress character code conversion.
15431
15432 * fileio.c (Finsert_file_contents): If reading into a unibyte
15433 buffer, suppress character code conversion.
15434
15435 * process.c (create_process): If the output goes to a unibyte
15436 buffer, suppress character code conversion.p
15437
154381999-07-07 Andreas Schwab <schwab@gnu.org>
15439
15440 * xdisp.c (line-number-display-limit): Doc fix.
15441
154421999-07-05 Richard Stallman <rms@gnu.org>
15443
15444 * callproc.c (Fcall_process): Don't use initializer on coding_systems.
15445 (Fcall_process_region): Likewise.
15446
154471999-07-01 Markus Rost <markus.rost@mathematik.uni-regensburg.de>
15448
15449 * callproc.c (init_callproc): Set exec_directory if
15450 installation_directory is non-nil, without a test of exec_path.
15451
154521999-07-01 Andrew Innes <andrewi@gnu.org>
15453
15454 * w32xfns.c (drain_message_queue): New function.
15455
15456 * w32term.h (drain_message_queue): Add extern.
15457
15458 * w32proc.c (sys_select): Call MsgWaitForMultipleObjects instead
15459 of WaitForMultipleObjects when user input is allowed, so we can
15460 handle incoming window messages. Call drain_message_queue when
15461 there are messages waiting; this ensures that windows created
15462 indirectly from the lisp thread get processed properly, and don't
15463 hang other applications by failing to respond to broadcasts.
15464
154651999-07-01 Andreas Schwab <schwab@gnu.org>
15466
15467 * callint.c (Fcall_interactively): Ignore first element of
15468 event-symbol-elements property.
15469
154701999-07-01 Richard Stallman <rms@gnu.org>
15471
15472 * fileio.c (Fread_file_name): Check type of DEFAULT_FILENAME.
15473
154741999-07-01 Kenichi Handa <handa@etl.go.jp>
15475
15476 * minibuf.c (read_minibuf): Set the multibyteness of the
15477 minibuffer before inserting `initial' string.
15478
154791999-06-30 Richard Stallman <rms@gnu.org>
15480
15481 * xfns.c (x_make_gc): Turn off GCStipple when setting up cursor_gc.
15482
154831999-06-29 Richard M. Stallman <rms@gnu.org>
15484
15485 * emacs.c [DOUG_LEA_MALLOC] (malloc_initialize_hook):
15486 Move the handling of MALLOC_CHECK_ envvar here.
15487 (main): Moved from here.
15488
154891999-06-29 Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>
15490
15491 * emacs.c [DOUG_LEA_MALLOC] (malloc_initialize_hook): New
15492 function, assigned to the global __malloc_initialize_hook pointer.
15493 (main): Move malloc_set_state call into malloc_initialize_hook
15494 so that it happens as early as possible.
15495
154961999-06-27 Richard M. Stallman <rms@gnu.org>
15497
15498 * keyboard.c (read_key_sequence): Properly reinitialize
15499 fkey_map after translating thru Vkey_translation_map.
15500 After translating thru Vfunction_key_map, don't reset
15501 keytrans-start to 0.
15502
155031999-06-24 Geoff Voelker <voelker@cs.washington.edu>
15504
15505 * w32.c (get_emacs_configuration): Use GetVersionEx to
15506 handle NT5.0 correctly. Include build number in configuration.
15507 w32heap.c (osinfo_cache): New variable.
15508 (cache_system_info): Initialize osinfo_cache.
15509 w32heap.h (osinfo_cache): Declare.
15510
155111999-06-24 Richard M. Stallman <rms@gnu.org>
15512
15513 * casefiddle.c (casify_object): Use make_multibyte_string
15514 if we casify a multibyte string.
15515
155161999-06-22 Ken'ichi Handa <handa@gnu.org>
15517
15518 * fileio.c: (Finsert_file_contents): In the case of REPLACE, call
15519 del_range_byte instead of del_range_1, set `inserted' to the
15520 number of characters actually inserted.
15521
155221999-06-17 Dave Love <fx@gnu.org>
15523
15524 * coding.c (decode_coding_sjis_big5): Avoid compiler warning.
15525
155261999-06-18 Paul Eggert <eggert@twinsun.com>
15527
15528 * filelock.c (BOOT_TIME_FILE): New macro.
15529 (get_boot_time): Use it instead of hardwiring the file name.
15530 Check BOOT_TIME_FILE only after inspecting the kernel directly.
15531
155321999-06-17 Dave Love <fx@gnu.org>
15533
15534 * xdisp.c (invalid_eol_type): Make it unsigned.
15535
155361999-06-17 Karl Heuer <kwzh@gnu.org>
15537
15538 * process.c (send_process): Delete unsafe/redundant assignment.
15539
155401999-06-17 Jason Rumney <jasonr@gnu.org>
15541
15542 * w32term.c (dumprectangle): Handle wide characters properly.
15543
155441999-06-16 Andrew Innes <andrewi@gnu.org>
15545
15546 * s/ms-w32.h (strerror): Override the default implementation of
15547 strerror, so we can map winsock error codes.
15548
15549 * w32.c (sys_strerror): New function.
15550
15551 * w32fns.c (w32_to_x_weight): Return "demibold" instead of "semibold".
15552
155531999-06-15 Ken'ichi Handa <handa@gnu.org>
15554
15555 * buffer.c (syms_of_buffer): Don't make
15556 enable-multibyte-characters customizable.
15557
155581999-06-15 Richard M. Stallman <rms@gnu.org>
15559
15560 * editfns.c (Fuser_full_name): Doc fix.
15561
155621999-06-14 Tak Ota <ota@atc.sel.sony.com>
15563
15564 * w32bdf.c: (clear_cached_bitmap_slots): Remove.
15565 (get_bitmap_with_cache): Check if CreateBitmap failed.
15566 Adjust cache size dynamically so cache is never larger than the
15567 system limit of GDI resources.
15568 Do cache clearing inline. Move global variables to local scope.
15569
15570
155711999-06-13 Wolfgang Glas <Wolfgang.Glas@hfm.tu-graz.ac.at>
15572
15573 * unexsgi.c (unexec): Dump the .rodata section from memory
15574 under IRIX6.5 in order to be able to unexec with gcc.
15575
155761999-06-11 Greg Hudson <ghudson@MIT.EDU>
15577
15578 * indent.c (compute_motion): Fix boundary case.
15579
155801999-06-11 Jason Rumney <jasonr@altavista.net>
15581
15582 * w32term.c (cancel_mouse_face): New function. See equiv
15583 changes to xterm.c on 1996-10-31.
15584 (x_set_window_size): Use cancel_mouse_face.
15585 (w32_read_socket): Use cancel_mouse_face.
15586 Update frame position when size is restored.
15587
155881999-06-04 Richard M. Stallman <rms@gnu.org>
15589
15590 * lread.c (Vuser_init_file): New variable.
15591 (syms_of_lread): Set up Lisp variable.
15592 (Fload): Store the file name there, if var was t before.
15593
155941999-06-04 Paul Eggert <eggert@twinsun.com>
15595
15596 * filelock.c (get_boot_time): Don't look at /proc/uptime; it
15597 doesn't work if the system date is changed, or if the system
15598 is suspended. Look at the last-modified time of
15599 /var/run/random-seed instead.
15600
156011999-06-03 Ken'ichi Handa <handa@gnu.org>
15602
15603 * coding.c (ENCODE_SJIS_BIG5_CHARACTER): Encode charset
15604 japanese-jisx0208-1978 correctly.
15605
156061999-06-03 Andrew Innes <andrewi@gnu.org>
15607
15608 * unexw32.c (get_section_info) [_ALPHA_]: Force as much bss data
15609 as possible to be dumped, for safety.
15610
156111999-06-02 Ken'ichi Handa <handa@gnu.org>
15612
15613 * coding.c (ENCODE_SJIS_BIG5_CHARACTER): Encode charset
15614 latin-jisx0201 correctly.
15615
156161999-05-26 Ken'ichi Handa <handa@gnu.org>
15617
15618 * charset.h (Vcharset_table): Comment fixed.
15619
156201999-05-24 Richard Stallman <rms@gnu.org>
15621
15622 * coding.c (syms_of_coding): Doc fix.
15623
15624 * buffer.c (syms_of_buffer): Doc fix.
15625
15626 * filelock.c (lock_if_free): After deleting a stale lock,
15627 try again to lock the file.
15628
156291999-05-22 Andrew Innes <andrewi@gnu.org>
15630
15631 * w32inevt.c (maybe_generate_resize_event): Detect changes in the
15632 console window size.
15633 (w32_console_read_socket): Call maybe_generate_resize_event
15634 whenever input events are received, since we don't get told when
15635 the window size changes (as opposed to the buffer size, which we
15636 don't care about).
15637
15638 * w32console.c (clear_frame): Remember that the window width might
15639 be smaller than the screen buffer width.
15640 (write_glyphs): Remove redundant variable attrs. Use
15641 FillConsoleOutputAttribute instead of WriteConsoleOutputAttribute.
15642
156431999-05-20 Andrew Innes <andrewi@gnu.org>
15644
15645 * w32term.c (w32_read_socket): Reset the grabbed flag when a frame gains or
15646 loses focus.
15647
15648 * w32fns.c (w32_wnd_proc): Ensure mouse capture is released if
15649 frame loses focus, and that mouse button state is reset. Ditto
15650 when the menu bar is activated.
15651
156521999-05-18 Richard Stallman <rms@gnu.org>
15653
15654 * abbrev.c (Fdefine_abbrev): Doc fix.
15655
156561999-05-13 Paul Eggert <eggert@twinsun.com>
15657
15658 * filelock.c: Fix performance bug on hosts with large
15659 /var/adm/wtmp files with no boot records.
15660
15661 (boot_time_initialized): New var.
15662 (init_filelock): Initialize it.
15663 (get_boot_time): Use it, instead of nonzero boot_time,
15664 to test whether boot_time is initialized.
15665 Don't invoke utmp routines when dumping.
15666
15667 (get_boot_time): First, try to get the boot time from the
15668 current utmp file, as this can be much faster. Don't try to
15669 get the boot time from utmp and/or wtmp more than once.
15670
15671 (get_boot_time_1): When passed null pointer, don't invoke utmpname.
15672 New arg LATEST. All uses changed.
15673
156741999-05-15 Andrew Innes <andrewi@gnu.org>
15675
15676 * w32term.c (dumpglyphs): Use correct colours for drawing
15677 rectangles in place of missing fonts, and make them the right
15678 size.
15679
156801999-05-14 Dave Love <fx@gnu.org>
15681
15682 * syntax.c (Fparse_partial_sexp): Correct test for element 8 to be
15683 non-nil.
15684
156851999-05-11 Andrew Innes <andrewi@gnu.org>
15686
15687 * w32fns.c (x_to_w32_charset): Reinstall VIETNAMESE_CHARSET
15688 definition.
15689 (w32_wnd_proc): Reinstall debugging output.
15690 (w32_wnd_proc): Reinstall SetForegroundWindow change.
15691 (syms_of_w32fns): Reinstall new initializer for
15692 Vw32_phantom_key_code.
15693
15694 * w32fns.c (x_to_w32_charset): Do partial matching of charset
15695 names for most non-European charsets, to cope with wildcards or
15696 missing spec dates.
15697 (Fw32_send_sys_command): Post WM_SYSCOMMAND rather than sending it
15698 to avoid deadlock when activating the menu bar.
15699
157001999-05-10 Ken'ichi Handa <handa@gnu.org>
15701
15702 * search.c (boyer_moore): Get charset base value of `untranslated'
15703 by masking by ~CHAR_FIELD3_MASK (instead of ~0xff).
15704
157051999-05-10 Andreas Schwab <schwab@gnu.org>
15706
15707 * fileio.c (Fread_file_name): Correct handling of dollars in file
15708 names. Protect dollars in strings put on the file-name-history.
15709 Substitute homedir by `~' also in default_filename.
15710
15711 * xdisp.c (try_window_id): Fix computation of tab_offset when
15712 backing up over a character that is splitted across lines.
15713
157141999-05-08 Kenichi HANDA <handa@etl.go.jp>
15715
15716 * coding.c (code_convert_region): If eol format is inconsistent,
15717 change coding->symbol to the sibling coding system of Unix like
15718 eol format.
15719
157201999-05-09 Richard M. Stallman <rms@gnu.org>
15721
15722 * s/irix5-2.h (NO_WTMP_FILE): Define it.
15723
15724 * filelock.c (get_boot_time): Handle NO_WTMP_FILE.
15725
157261999-05-05 Andrew Innes <andrewi@gnu.org>
15727
15728 * w32fns.c (w32_strict_painting): New variable.
15729 (w32_wnd_proc): Use it to select repaint rules.
15730 (syms_of_w32fns): Defvar it.
15731
157321999-05-04 Andrew Innes <andrewi@gnu.org>
15733
15734 * w32fns.c (x_to_w32_charset): Fix typo: want to map all Japanese
15735 charsets to the standard Windows charset for Japanese.
15736
157371999-05-04 Ken'ichi Handa <handa@gnu.org>
15738
15739 * xterm.c (x_load_font): Fix typo (`>' -> `=').
15740
15741 * ccl.h (struct ccl_program): New member stack_idx.
15742
15743 * ccl.c (ccl_prog_stack_struct): Declare it as static.
15744 (ccl_driver): Setup stack_idx and ccl_prog correctly. Update them
15745 before returing.
15746 (setup_ccl_program): Initialize ccl->stack_idx to 0.
15747
157481999-05-03 Jason Rumney <jasonr@altavista.net>
15749
15750 * w32term.c (dumpglyphs): Always fill background for italic fonts.
15751
157521999-05-03 Eli Zaretskii <eliz@is.elta.co.il>
15753
15754 * dired.c (make_time): Make argument type be time_t.
15755
157561999-05-02 Eli Zaretskii <eliz@is.elta.co.il>
15757
15758 * msdos.c (unibyte_display_via_language_environment): Add extern.
15759
83c8f461 157601999-05-02 Richard M. Stallman <rms@gnu.org>
26901792
DL
15761
15762 * xdisp.c (display_text_line): Convert unibyte char to multibyte
15763 if unibyte_display_via_language_environment is set.
15764 (unibyte_display_via_language_environment):
15765 Variable moved from xfns.c and elsewhere.
15766 (syms_of_xfns): Set up Lisp var.
15767
15768 * xfns.c (unibyte_display_via_language_environment):
15769 Variable moved to xdisp.c.
15770 (syms_of_xfns): Don't set up Lisp var here.
15771
15772 * msdos.c (unibyte_display_via_language_environment):
15773 Variable moved to xdisp.c.
15774 (syms_of_msdos): Don't set up Lisp var here.
15775
15776 * w32fns.c (unibyte_display_via_language_environment):
15777 Variable moved to xdisp.c.
15778 (syms_of_w32fns): Don't set up Lisp var here.
15779
157801999-05-02 Andrew Innes <andrewi@gnu.org>
15781
15782 * s/ms-w32.h (HAVE_FSYNC): New macro.
15783 (fsync): Map to _commit.
15784 (ftruncate): Map to _chsize.
15785
15786 * w32term.c (dumpglyphs): On Windows NT, do output in Unicode even
15787 for ASCII, if enabled, to avoid memory allocation overhead for
15788 implicit Unicode conversion. Also, recognize that ASCII and
15789 Latin-1 have a trivial conversion to Unicode, so x_2byte_buffer
15790 already contains the Unicode characters in that case.
15791 (construct_drag_n_drop): Remove old code that was
15792 trashing the drop location.
15793
15794 * w32select.c (Fw32_set_clipboard_data): Undo last change to add
15795 nlines to encoding_buffer_size (real bug was in a ccl program in
15796 lisp/international/coding.el).
15797
15798 * w32reg.c (w32_get_string_resource): Check for name in current
15799 user area, and if not found look in the local machine area.
15800
15801 * w32fns.c (w32_list_bdf_fonts): Initialize n_fonts.
15802 (Fw32_shell_execute): New function; used to support browse-url.
15803 (syms_of_w32fns): Register it.
15804 (w32_load_system_font): Force max width to be average
15805 char width for fixed-pitch fonts, to avoid unnecessary redisplay
15806 slowdown.
15807 (x_to_w32_charset): Define VIETNAMESE_CHARSET if not
15808 already defined.
15809 (syms_of_w32fns): Set Vw32_phantom_key_code to 255.
15810
15811 * unexw32.c (get_section_info): Dump back the entire EMDATA
15812 section if we can put Emacs' initialized data in a separate
15813 section, otherwise use the my_begdata/my_edata method.
15814
15815 * makefile.nt ($(BLD)\w32term.obj): Add dependency on w32heap.h.
15816
15817 * coding.c (decode_eol): Set produced/consumed values to zero if
15818 src_bytes is <= 0 on entry.
15819
158201999-05-02 Jason Rumney <jasonr@altavista.net>
15821
15822 * w32term.c (w32_write_glyphs, w32_clear_end_of_line,
15823 w32_clear_frame, clear_cursor, x_display_bar_cursor,
15824 x_display_box_cursor, x_set_window_size): Use phys_cursor_on
15825 field in frame.
15826 (do_line_dance): Updated WRT xterm.c. Use macros where possible.
15827 (dumprectangle): Take into account the width of a left-side
15828 scroll bar.
15829
15830 * w32proc.c (sys_kill): Attach to current foreground thread
15831 when grabbing focus; necessary on NT 5.0.
15832
15833 * w32fns.c (w32_wnd_proc) [WM_PAINT]: Use rectangle from
15834 GetUpdateRect rather than BeginPaint.
15835 (w32_wnd_proc): Attach to current foreground thread
15836 when grabbing focus; necessary on NT 5.0.
15837 (w32_wnd_proc) [W32_DEBUG_DISPLAY]: Add output for
15838 debugging display messages.
15839 (w32_to_x_charset): Put wildcard last in unknown charsets to avoid
15840 false matching.
15841
158421999-05-02 Kenichi HANDA <handa@etl.go.jp>
15843
15844 * coding.c (setup_raw_text_coding_system): Call
15845 setup_coding_system to initialize the fields of struct
15846 coding_system correctly.
427ec082 15847
26901792
DL
158481999-04-26 Kenichi HANDA <handa@etl.go.jp>
15849
15850 * xterm.c (x_list_fonts): Fix previous change.
15851
158521999-04-26 Richard Stallman <rms@gnu.org>
15853
15854 * config.in (HAVE_LIBXP): Add #undef.
15855 * Makefile.in (LIB_MOTIF_EXTRA): Check HAVE_LIBXP.
15856
158571999-04-12 Ken'ichi Handa <handa@gnu.org>
15858
15859 * xterm.c (x_list_fonts): Trap X errors so that Emacs doesn't die
15860 by them.
15861
158621999-04-12 Karl Heuer <kwzh@gnu.org>
15863
15864 * s/freebsd.h (BSD_SYSTEM): Define for FreeBSD 4 as with FreeBSD 3.
15865
158661999-04-11 Ken'ichi Handa <handa@gnu.org>
15867
15868 * fontset.c (Fset_fontset_font): Fix previous change.
15869
158701999-04-09 Ken'ichi Handa <handa@gnu.org>
15871
15872 * fontset.c (Fquery_fontset): Check for fontset aliases here.
15873 (Fnew_fontset, Fset_fontset_font): Don't check for them here.
15874
158751999-04-08 Richard Stallman <rms@gnu.org>
15876
15877 * process.c (Faccept_process_output): Check validity of PROCESS.
15878
158791999-04-08 Eli Zaretskii <eliz@gnu.org>
15880
15881 * msdos.c (jp_kbd_translate_table): Fix the other \ key.
15882
158831999-04-07 Richard Stallman <rms@gnu.org>
15884
15885 * xfns.c (x_set_font): Fix error message.
15886
15887 * fontset.c (Fquery_fontset): Don't check for fontset aliases here.
15888 (Fnew_fontset, Fset_fontset_font): Check for them here.
15889 (Ffontset_info, Fnew_fontset, Fset_fontset_font):
15890 Fix error message syntax.
15891
15892 * buffer.c (Fmake_indirect_buffer): Copy multibyte status
15893 from the base buffer.
15894 (Fset_buffer_multibyte): Copy new multibyte status
15895 into the buffer's indirect buffers.
15896
158971999-04-07 Ken'ichi Handa <handa@gnu.org>
15898
15899 * fns.c (base64_encode_1): Don't add unnecessary newline at the
15900 tail.
15901
159021999-04-06 Richard Stallman <rms@gnu.org>
15903
15904 * dired.c (Ffile_attributes): Doc fix.
15905
15906 * keymap.c (Faccessible_keymaps): Really initialize i_byte.
15907 Convert 0200 to meta only in a unibyte string.
15908 (Fkey_description): Likewise.
15909
15910 * eval.c (do_autoload): Preserve match data.
15911
159121999-04-06 Kenichi HANDA <handa@etl.go.jp>
15913
15914 * w32fns.c (x_to_w32_font): Provide sufficient buffer to
15915 encode_coding to avoid carryover.
15916
15917 * coding.c: Add comments for decode_coding and encode_coding.
15918
15919 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix bug of handling
15920 a composite character by skipping its leading code.
15921 <CCL_WriteMultibyteChar2>: Handle non-ascii single byte character
15922 correctly.
15923
15924 * coding.c: Add comments for decode_coding and encode_coding.
15925
15926 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix bug of handling
15927 a composite character by skipping its leading code.
15928 <CCL_WriteMultibyteChar2>: Handle non-ascii single byte character
15929 correctly.
15930
159311999-04-06 Eli Zaretskii <eliz@gnu.org>
15932
15933 * msdos.c (dos_rawgetc): Don't zero out c if private translation
15934 table was used.
15935 (jp_kbd_translate_table): Support C-\.
15936 (it_kbd_translate_table): Map `>' correctly.
15937 (it_keyboard): Add `>'.
15938
159391999-04-06 Richard Stallman <rms@gnu.org>
15940
15941 * intervals.c (graft_intervals_into_buffer): Turn off
15942 inhibit_modification_hooks around calling Fset_text_properties.
15943
159441999-04-05 Kenichi HANDA <handa@etl.go.jp>
15945
15946 * xterm.c (dumpglyphs): Be sure to fill the whole background of
15947 glyphs.
15948
159491999-04-05 Eli Zaretskii <eliz@gnu.org>
15950
15951 * msdos.c (jp_kbd_translate_table): Fix last change.
15952
159531999-04-04 Eli Zaretskii <eliz@gnu.org>
15954
15955 * msdos.c (struct kbd_translate): New struct, for key translation
15956 tables private to certain national keyboard layouts.
15957 (struct dos_keyboard_map): Add a pointer to a private translation
15958 table.
15959 (jp_kbd_translate_table): Private table for the Japanese
15960 keyboard.
15961 (jp_keyboard): Japanese keyboard layout.
15962 (it_kbd_translate_table): Private table for the Italian keyboard.
15963 (it_keyboard): Use it_kbd_translate_table.
15964 (keyboard_layout_list): Add the Japanese keyboard.
15965 (dos_rawgetc): Use the keyboard-private translation table, if
15966 available.
15967 (abort) [__DJGPP_MINOR__ >= 2]: Raise SIGABRT.
15968
159691999-04-02 Kenichi HANDA <handa@etl.go.jp>
15970
15971 * xdisp.c (redisplay_window): When we call compute_motion with
15972 HPOS got from w->last_point_x, call it with DID_MOTION 1.
15973 (display_text_line): Stop the loop for processing overlay strings
15974 when we reach the right edge of the window.
15975
83c8f461 159761999-03-31 Richard M. Stallman <rms@gnu.org>
26901792
DL
15977
15978 * doc.c (get_doc_string): When UNIBYTE and DEFINITION are 0,
15979 let the data control whether string is unibyte.
15980
159811999-03-30 Richard M. Stallman <rms@gnu.org>
15982
15983 * macros.c (Fexecute_kbd_macro): Save real_this_command.
15984 (pop_kbd_macro): Restore the saved real_this_command.
15985 (Fcall_last_kbd_macro): Set real_this_command to the macro.
15986
159871999-03-26 Richard M. Stallman <rms@gnu.org>
15988
15989 * buffer.c (Fset_buffer_modified_p): Don't lock or unlock
15990 if buffer-file-name is nil.
15991
159921999-03-25 Jason Rumney <jasonr@altavista.net>
15993
15994 * w32select.c (Fw32_set_clipboard_data): Take into account line
15995 ends when calculating clipboard storage needed for non-ASCII text.
15996
159971999-03-25 Andrew Innes <andrewi@gnu.org>
15998
15999 * makefile.nt (PREPARED_HEADERS): Change name of paths.h to epaths.h.
16000 (epaths.h): Renamed from paths.h.
427ec082
SS
16001 (clean):
16002 ($(BLD)\filelock.obj):
16003 ($(BLD)\lread.obj):
26901792
DL
16004 ($(BLD)\w32fns.obj): Renamed paths.h to epaths.h.
16005
160061999-03-23 Ken'ichi Handa <handa@gnu.org>
16007
16008 * coding.c (encode_coding_iso2022): Initialize dummy arguments to
16009 ENCODE_ISO_CHARACTER for the previous change on this macro.
16010
160111999-03-23 Kenichi Handa <handa@etl.go.jp>
16012
16013 * xdisp.c (decode_mode_spec_coding): Handle integer value in
16014 eoltype correctly for backward compatibility.
16015
160161999-03-20 Kenichi HANDA <handa@etl.go.jp>
16017
16018 * coding.c (ENCODE_ISO_CHARACTER): Check validity of CHARSET. If
16019 invalid, produce the buffer internal byte sequence without encoding.
16020
160211999-03-19 Karl Heuer <kwzh@gnu.org>
16022
16023 * editfns.c (Fformat): Accept %i format.
16024
160251999-03-17 Karl Heuer <kwzh@gnu.org>
16026
16027 * filelock.c (get_boot_time): Test tempname, not filename.
16028
160291999-03-17 Jason Rumney <jasonr@altavista.net>
16030
e5619f6b
JR
16031 * w32bdf.h: Merged patches from Meadow; introduce bitmap cache to
16032 speed display.
16033
16034 * w32bdf.c: Merged patches from Meadow; introduce bitmap cache to
16035 speed display.
16036 (get_cached_font_char, cache_char_offset, get_bitmap_with_cache)
16037 New functions.
16038 (w32_free_bdf_font, seek_char, w32_get_bdf_glyph, w32_BDF_TextOut)
16039 Use bitmap cache.
26901792
DL
16040
16041 * w32fns.c (enum_font_cb2): Set the font height to be the
16042 character height, not the cell height.
16043 (Fw32_select_font): Initialize font dialog with current default font.
16044 (Vw32_system_coding_system): New variable.
16045 (w32_strict_filenames): Add comment.
16046 (w32_to_x_font): Decode font name using Vw32_system_coding_system.
427ec082 16047 (x_to_w32_font): Encode font name using Vw32_system_coding_system.
26901792
DL
16048 (syms_of_w32fns): Add w32-system-coding-system.
16049
160501999-03-15 Richard M. Stallman <rms@gnu.org>
16051
16052 * xterm.c (XTread_socket) <ConfigureNotify>:
16053 If cursor pos is outside the new frame size, mark cursor as off.
16054
160551999-03-14 Ken'ichi Handa <handa@gnu.org>
16056
16057 * xdisp.c (try_window_id): Initialize val.ovstring_chars_done to 0.
16058
16059 * xterm.c (x_load_font): Trap X errors so that Emacs doesn't die
16060 by them.
16061
160621999-03-14 Richard M. Stallman <rms@gnu.org>
16063
16064 * macros.c (Fexecute_kbd_macro): Initialize executing_macro_iterations
16065 at beginning.
16066
160671999-03-14 Jason Rumney <jasonr@altavista.net>
16068
16069 * w32fns.c (w32_strict_fontnames): New variable.
16070 (Fx_create_frame): Formatting fix.
16071 (w32_load_system_font): Keep trying to load non-existant font
16072 if w32_strict_fontnames is nil. Formatting fix.
16073 (syms_of_w32fns): Add w32-strict-fontnames.
16074
16075 * w32term.c (W32_TEXTOUT): Do not multiply nchars by charset_dim.
16076 (dumpglyphs): Formatting fixes.
16077
160781999-03-14 Geoff Voelker <voelker@cs.washington.edu>
16079
16080 * w32fns.c (w32_wnd_proc): Handle WM_GETMINMAXINFO message.
16081
160821999-03-10 Karl Heuer <kwzh@gnu.org>
16083
16084 * puresize.h (BASE_PURESIZE): Increase to 505000.
16085
160861999-03-09 Richard M. Stallman <rms@gnu.org>
16087
16088 * emacs.c (main) [CLASH_DETECTION]: Call init_filelock.
16089
16090 * filelock.c (init_filelock): New function.
16091
160921999-03-09 Dave Love <fx@gnu.org>
16093
16094 * fileio.c (Ffile_directory_p): Doc fix.
16095
83c8f461 160961999-03-05 Richard M. Stallman <rms@gnu.org>
26901792
DL
16097
16098 * coding.c (setup_coding_system): Check for CODING_SYSTEM = nil.
16099
161001999-03-08 Richard M. Stallman <rms@gnu.org>
16101
16102 * filelock.c (get_boot_time): Reduce scope of #ifdef BOOT_TIME
16103 to only the part that uses get_boot_time_1.
16104
161051999-03-07 Dave Love <fx@gnu.org>
16106
16107 * fileio.c (Finsert_file_contents): Use xfree.
16108
161091999-03-06 Kenichi Handa <handa@etl.go.jp>
16110
16111 * Makefile.in (callproc.o, coding.o, fileio.o, msdos.o, process.o,
16112 term.o, xselect.o): Depend on ccl.h.
16113
161141999-03-05 Geoff Voelker <voelker@cs.washington.edu>
16115
16116 * makefile.nt: Remove common multiple file compilation commands.
16117
161181999-03-04 Takeshi YAMADA <yamada@cslab.kecl.ntt.co.jp>
16119
16120 * fns.c (Fbase64_encode_string): Allocate sufficient memory for
16121 newlines added when the arg NO-LINE-BREAK is nil.
16122
161231999-03-04 Karl Heuer <kwzh@gnu.org>
16124
16125 * search.c (Fstring_match, Fposix_string_match): Doc fix.
16126
16127 * buffer.c (syms_of_buffer): Doc fix for case-fold-search.
16128
161291999-03-04 Dave Love <fx@gnu.org>
16130
16131 * term.c (term_init): Use xmalloc, not malloc.
16132
16133 * callproc.c (Fcall_process): Use xmalloc, xfree.
16134
161351999-03-03 Andreas Schwab <schwab@gnu.org>
16136
16137 * eval.c (Fdefconst): Doc fix.
16138
161391999-03-01 Kenichi Handa <handa@etl.go.jp>
16140
16141 * coding.c: Comment for ISO 2022 encoding mechanism modified.
16142
161431999-03-01 Eli Zaretskii <eliz@gnu.org>
16144
16145 * w16select.c (get_clipboard_data): Always stop at the first null byte.
16146
161471999-02-28 Richard M. Stallman <rms@gnu.org>
16148
16149 * filelock.c (get_boot_time): Support FreeBSD way to read boot-time.
16150
16151 * cmds.c (internal_self_insert): Calculate column properly
16152 in overwrite-of-tab case.
16153
161541999-02-27 Andreas Schwab <schwab@gnu.org>
16155
16156 * emacs.c (main) [DOUG_LEA_MALLOC]: Don't use unsetenv, it calls
16157 malloc in glibc 2.1.
16158
161591999-02-26 Richard Stallman <rms@gnu.org>
16160
16161 * Makefile.in: paths.h and paths.in renamed to epaths.h and epaths.in.
16162
16163 * epaths.in: Renamed from paths.in.
16164 This avoids a conflict with a system header file paths.h on GNU/Linux.
16165
16166 * callproc.c, lread.c, w32fns.c, xfns.c, xrdb.c:
16167 Use epaths.h istead of paths.h.
16168
161691999-02-26 Andreas Schwab <schwab@gnu.org>
16170
16171 * emacs.c (main) [DOUG_LEA_MALLOC]: Work around a bug in glibc's
16172 malloc.
16173
161741999-02-25 Dave Love <fx@gnu.org>
16175
16176 * buffer.c (syms_of_buffer): Doc fix for enable-multibyte-characters.
16177
161781999-02-25 Richard Stallman <rms@gnu.org>
16179
16180 * filelock.c (get_boot_time): Use WTMP_FILE for file name.
16181 (WTMP_FILE): Default definition in case not defined.
16182 (get_boot_time_1): Test that file exists before trying to read it.
427ec082 16183
26901792
DL
161841999-02-25 Ken'ichi Handa <handa@gnu.org>
16185
16186 * keymap.c (push_key_description): If enable-multibyte-characters
16187 is nil and C is single byte, push C as is.
16188
161891999-02-24 Kenichi Handa <handa@etl.go.jp>
16190
16191 * keymap.c (push_key_description): If enable-multibyte-characters
16192 is non-nil, try to convert unibyte character to multibyte. For
16193 invalid multibyte character, show all bits by octal form.
16194 (Fsingle_key_description): Check the validity of charset for a
16195 generic character.
16196
161971999-02-23 Richard M. Stallman <rms@gnu.org>
16198
16199 * fileio.c (Ffile_regular_p): Undo previous change.
16200
16201 * eval.c (Fdefconst): Doc fix.
16202
16203 * filelock.c (get_boot_time): Don't use BUFSIZ.
16204
162051999-02-22 Andrew Innes <andrewi@gnu.org>
16206
16207 * makefile.nt ($(BLD)\w32bdf.obj): Add missing continuation character.
16208 (EXTRA_LINK): Do version test with strings.
16209
162101999-02-22 Andreas Schwab <schwab@gnu.org>
16211
16212 * fns.c (Fbase64_encode_string): Fix last change.
16213
16214 * termhooks.h (event_kind): Add user_signal.
16215
16216 * keyboard.c (Qusr1_signal, Qusr2_signal): New variables.
16217 (syms_of_keyboard): Initialize them.
16218 (lispy_user_signals): New variable.
16219 (make_lispy_event): Handle user_signal event type.
16220
16221 * emacs.c: Don't define Qusr1_signal and Qusr2_signal.
16222 (syms_of_emacs): Don't initialize them.
16223 (handle_USR1_signal, handle_USR2_signal): Set event type to
16224 user_signal instead of non_ascii_keystroke, and use plain integers
16225 as code instead of Lisp symbols.
16226
162271999-02-21 Eli Zaretskii <eliz@delysid.gnu.org>
16228
16229 * fileio.c: (lstat) [!S_ISLNK]: Use stat instead of lstat.
16230
162311999-02-21 Richard Stallman <rms@gnu.org>
16232
16233 * filelock.c (get_boot_time_1): Put this in #ifdef BOOT_TIME.
16234
16235 * print.c (print_error_message): Don't crash if (cdr data)
16236 is not a list.
16237
162381999-02-21 Eli Zaretskii <eliz@gnu.org>
16239
16240 * fileio.c (lstat) [!S_ISLNK]: Use stat instead of lstat.
16241
162421999-02-20 Andrew Innes <andrewi@gnu.org>
16243
16244 * vm-limit.c (memory_warnings) [WINDOWSNT]: Reset lim_data on each
16245 run, since size can vary from run to run.
16246
16247 * makefile.nt (EXTRA_LINK, LINK_FLAGS): Ensure base relocation
16248 data is included, to enable profiling.
16249 ($(EMACS)): Map file not needed for emacs.exe.
16250
16251 * emacs.c (main): [!SYSTEM_MALLOC]: Call realloc and free as well
16252 as malloc before calling uninterrupt_malloc, for consistency.
16253 This also enables profiling to work on WINDOWSNT.
16254
162551999-02-18 Richard Stallman <rms@gnu.org>
16256
16257 * Makefile.in (emacs.o): Depend on termhooks.h.
16258 (filelock.o): Depend on systime.h.
16259
162601999-02-18 Ken'ichi Handa <handa@gnu.org>
16261
16262 * coding.c (Fdecode_sjis_char): Use %x for formatting error message.
16263 (Fdecode_big5_char): Likewise.
16264
162651999-02-17 Richard Stallman <rms@gnu.org>
16266
16267 * insdel.c (adjust_markers_for_replace): When doing an insertion
16268 (replacing a region of zero length), handle markers at the
16269 insertion point properly.
16270
162711999-02-17 Andrew Innes <andrewi@gnu.org>
16272
16273 * w32fns.c (Vw32_quit_key): New variable.
16274 (post_character_message): Use it.
16275 (syms_of_w32fns): DEFVAR it.
16276
162771999-02-16 MORIOKA Tomohiko <morioka@jaist.ac.jp>
16278
16279 * fns.c (Fbase64_encode_string): New optional argument `NO_LINE_BREAK'.
16280
162811999-02-16 Richard Stallman <rms@gnu.org>
16282
16283 * filelock.c (within_one_second): New function.
16284 (current_lock_owner): Use that.
16285 (get_boot_time): Use /proc/uptime if available.
16286 Otherwise, if nothing found in wtmp, try wtmp.1.gz and so on.
16287 (get_boot_time_1): New subroutine taken from get_boot_time.
427ec082 16288
26901792
DL
162891999-02-16 Richard Stallman <rms@gnu.org>
16290
16291 * emacs.c (Qusr1_signal, Qusr2_signal): New variables.
16292 (syms_of_emacs): Init and staticpro them.
16293 (handle_USR1_signal): Don't run any code, just queue up an event.
16294 (handle_USR2_signal): Likewise.
16295
162961999-02-16 Eli Zaretskii <eliz@gnu.org>
16297
16298 * dired.c (Ffile_attributes): If the file's size doesn't fit in
16299 an integer, return it as a float. Doc string fixed.
16300
163011999-02-16 Richard Stallman <rms@gnu.org>
16302
16303 * emacs.c (Qusr1_signal, Qusr2_signal): New variables.
16304 (syms_of_emacs): Init and staticpro them.
16305 (handle_USR1_signal): Don't run any code, just queue up an event.
16306 (handle_USR2_signal): Likewise.
16307
163081999-02-15 Kenichi Handa <handa@etl.go.jp>
16309
16310 * coding.c (Fdecode_sjis_char, Fencode_sjis_char): Handle
16311 ASCII correctly. Signal error on invalid characters.
16312 (Fdecode_big5_char, Fencode_big5_char): Likewise.
16313
163141999-02-15 Eli Zaretskii <eliz@gnu.org>
16315
16316 * w16select.c (get_clipboard_data): Work around a bug in Windows95
16317 DOS box which doubles the reported size of text in the clipboard.
16318
163191999-02-15 Kenichi Handa <handa@etl.go.jp>
16320
16321 * coding.c (decode_coding_iso2022): Don't set
16322 coding->composed_chars to 0 here.
16323 (setup_coding_system): Set coding->composed_chars to 0 here.
16324
163251999-02-10 Richard Stallman <rms@gnu.org>
16326
16327 * fileio.c (Ffile_regular_p): Use lstat.
16328
163291999-02-09 Richard Stallman <rms@gnu.org>
16330
16331 * unexelf.c (HAS_SBSS_SECTION): Define this in some cases.
16332 (unexec): Test this instead of specific systems.
16333
16334 * m/macppc.h: New file.
16335
163361999-02-08 Dave Love <fx@gnu.org>
16337
16338 * fns.c (Fyes_or_no_p, Fy_or_n_p): Doc fix.
16339
163401999-02-08 Ken'ichi Handa <handa@gnu.org>
16341
16342 * coding.c (ccl_coding_driver): On encoding, coding->produced_char
16343 should be set to coding->produced.
16344
163451999-02-07 Paul Fisher <rao@gnu.org>
16346
16347 * fns.c (IS_BASE64_IGNORABLE, READ_QUADRUPLET_BYTE): New macros.
16348 (base64_decode_1): Use READ_QUADRUPLET_BYTE.
16349
163501999-02-07 Markus Rost <markus.rost@mathematik.uni-regensburg.de>
16351
16352 * editfns.c (Fformat): Doc fix.
16353
163541999-02-06 Richard Stallman <rms@gnu.org>
16355
16356 * process.c (syms_of_process): defsubr it.
16357 (Fprocess_running_child_p): New function.
16358
163591999-02-05 Andrew Innes <andrewi@gnu.org>
16360
16361 * w32term.c (construct_drag_n_drop): Call DraqQueryPoint before
16362 recording drop position.
16363
163641999-02-05 Ken'ichi Handa <handa@gnu.org>
16365
16366 * coding.c (encode_coding_iso2022): Before writing out an invalid
16367 code, reset graphic planes and registers if necessary.
16368
16369 * term.c (encode_terminal_code): Fix previous change.
16370
163711999-02-04 Eli Zaretskii <eliz@gnu.org>
16372
16373 * w16select.c (last_clipboard_text, clipboard_storage_size): New
16374 static variables.
16375 (set_clipboard_data): Save a copy of the text we put into
16376 clipboard in last_clipboard_text.
16377 (get_clipboard_data): If the clipboard text is identical to what
16378 last_clipboard_text holds, pretend there's no data in the clipboard.
16379
163801999-02-03 Richard Stallman <rms@gnu.org>
16381
16382 * s/gnu.h (NLIST_STRUCT): Add #undef.
16383
163841999-02-03 Eli Zaretskii <eliz@gnu.org>
16385
16386 * w16select.c (Fw16_set_clipboard_data): When the text needs to be
16387 encoded, set its pointer and size as returned by encode_coding.
16388
163891999-02-02 Ken'ichi Handa <handa@gnu.org>
16390
16391 * fns.c (Fset_char_table_default): To handle the case that CH is
16392 an ASCII char, use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
16393
163941999-02-02 Andrew Innes <andrewi@gnu.org>
16395
16396 * w32fns.c (syms_of_w32fns): Change default value of
16397 w32-mouse-move-interval to 0, so that the mouse wheel/rocker on
16398 some mice works properly.
16399
164001999-02-02 Eli Zaretskii <eliz@gnu.org>
16401
16402 * w16select.c (set_clipboard_data): Correctly null-terminate the
16403 string to be put into the Windows clipboard. Use xbuf_addr.
16404
164051999-02-01 Richard Stallman <rms@gnu.org>
16406
16407 * buffer.c (Fset_buffer_multibyte): Error if buffer is indirect.
16408
164091999-01-31 Richard Stallman <rms@gnu.org>
16410
16411 * process.c (process_send_signal): If CURRENT_GROUP is `lambda'
16412 then don't send the signal if the shell owns the terminal.
16413 (Finterrupt_process): Doc change.
427ec082 16414
26901792
DL
164151999-01-31 Andrew Innes <andrewi@gnu.org>
16416
16417 * unexw32.c: (ROUND_UP_DST_AND_ZERO): New macro.
16418 (copy_executable_and_dump_data): Use it to ensure alignment slop
16419 is zeroed.
16420
164211999-01-30 Andrew Innes <andrewi@gnu.org>
16422
16423 * w32.c (init_environment): Change argv[0] to contain the full
16424 path to Emacs.
16425
16426 * emacs.c (main) [WINDOWSNT]: Pass argv to init_environment.
16427
164281999-01-29 Ken'ichi Handa <handa@gnu.org>
16429
16430 * xterm.c (x_new_fontset): For ASCII font, don't use the font name
16431 returned by x_new_font (the resolved one) but use the font name
16432 set in the fontset specification.
16433 (x_load_font): For the height of font, if normarl ascent and
16434 descent value are larger than those in max_bounds field, use the
16435 former.
16436
164371999-01-28 Eli Zaretskii <eliz@gnu.org>
16438
16439 * xdisp.c (decode_mode_spec_coding): Fix previous change.
16440
164411999-01-27 Geoff Voelker <voelker@cs.washington.edu>
16442
16443 * makefile.nt: Use full path to temacs.exe when dumping.
16444
164451999-01-27 Jason Rumney <jasonr@altavista.net>
16446
16447 * w32fns.c (w32_load_system_font): Do not load unlisted fonts if
16448 list was reliable.
16449 (enum_fontex_cb1, enum_fontex_cb2): New functions.
16450 (w32_list_bdf_fonts): New parameter; max_names. Callers updated.
16451 (w32_list_synthesized_fonts): New function.
16452 (w32_list_fonts): Use maxnames. Use EnumFontFamiliesEx when
16453 available instead of EnumFontFamilies. List synthesized fonts if
16454 Vw32_enable_italics is non-nil.
427ec082 16455
26901792
DL
164561999-01-27 Richard Stallman <rms@gnu.org>
16457
16458 * s/ptx4.h (SETUP_SLAVE_PTY): Use the ptem module if it exists.
16459 Don't complain if ttcompat does not exist.
16460
16461 * w32fns.c (x_set_frame_parameters): gcpro as needed.
16462
164631999-01-27 Andrew Innes <andrewi@gnu.org>
16464
16465 * w32fns.c (w32_wnd_proc): Fix bug introduced by previous change;
16466 the lwindow, rwindow and apps keys could not be used as function
16467 keys, because they were being passed to TranslateMessage which
16468 ignores them. Also, key was being changed to SPC.
16469
16470 * makefile.nt: Do make version comparison as strings.
16471
164721999-01-27 Eli Zaretskii <eliz@gnu.org>
16473
16474 * coding.c (syms_of_coding): eol-mnemonic-* variables are now
16475 strings, not characters.
16476
16477 * coding.h: Likewise.
16478
16479 * xdisp.c (decode_mode_spec_coding): Display the EOL type as a
16480 string.
16481
164821999-01-26 Dave Love <fx@gnu.org>
16483
16484 * emacs.c (main): Up-date copyright.
16485
164861999-01-25 Dave Love <fx@gnu.org>
16487
16488 * coding.c (syms_of_coding): Doc fix for inhibit-eol-conversion.
16489
164901999-01-25 Andreas Schwab <schwab@gnu.org>
16491
16492 * eval.c (Fsignal): Move comment to avoid confusing make-docfile.
16493
164941999-01-23 Richard M. Stallman <rms@borg.ai.mit.edu>
16495
16496 * xfns.c (x_set_frame_parameters): gcpro as needed.
16497
16498 * window.c (Fset_window_point): If WINDOW is selected but the
16499 current buffer is not its buffer, don't use Fgoto_char.
16500
165011999-01-22 Richard M. Stallman <rms@gnu.org>
16502
16503 * syntax.c (scan_sexps_forward): Delete duplicate code
16504 to set prev_from_syntax, above start of main loop.
16505 At startinstring, check syntax when checking for a match.
16506
165071999-01-22 Jason Rumney <jasonr@altavista.net>
16508
16509 * w32bdf.c: New file.
16510 * w32bdf.h: New file.
16511 * makefile.nt: Add w32bdf.c and w32bdf.h.
16512
16513 * w32gui.h: Include w32bdf.h.
16514 (W32FontStruct) Add bdf element.
16515
16516 * w32term.h (FONT_WIDTH, FONT_HEIGHT, FONT_BASE, FONT_MAX_WIDTH):
16517 Support BDF fonts.
16518
16519 * w32term.c (W32_TEXTOUT): New macro.
16520 (dumpglyphs): Support BDF fonts. Use W32_TEXTOUT macro.
16521 Simplify baseline calculation. Detect SJIS by font, not glyph.
16522 Call SetTextAlign.
16523 (syms_of_w32term): Remove "jisx0212-sjis" from
16524 w32-charset-to-codepage-alist.
16525 Replace "ksc5601" with "ksc5601.1987" in w32-charset-to-codepage-alist.
16526 Add "ksc5601.1992' to w32-charset-to-codepage-alist.
427ec082 16527
26901792
DL
16528 * w32fns.c (Vw32_bdf_filename_alist): New variable.
16529 (x_destroy_bitmap): Returns void not int.
16530 (x_set_border_pixel): Returns void.
16531 (w32_load_bdf_font): New function.
16532 (w32_load_system_font): New function, was w32_load_font. List
16533 fonts before loading. Explicitly set encoding for SJIS fonts.
16534 Set default_ascent to 0 as comment indicates.
16535 (w32_load_font): Call w32_load_system_font and w32_load_bdf_font.
16536 (w32_unload_font): Support BDF fonts.
16537 (w32_to_x_charset): Fix mappings to avoid wildcard mismatches.
16538 Autodetect whether to use koi8-r instead of iso8859-5.
16539 Associate "ksc5601.1987" with HANGUEL_CHARSET.
16540 Associate "ksc5601.1992" with JOHAB_CHARSET.
16541 (x_to_w32_charset): Make consistent with w32_to_x_charset.
16542 (w32_to_x_font): Add resolution.
16543 (x_to_w32_font): Use font resolution to calculate height if supplied.
16544 (w32_font_match): Handle wildcards anywhere within field.
16545 (enumfont_t): Remove unused head pointer.
16546 (enum_font_cb2): Dereference elfLogFont.
16547 (w32_list_bdf_fonts): New function.
16548 (w32_list_fonts): Use one_w32_dispay_info instead of insisting on
16549 valid frame. Remove MessageBox. Support BDF fonts.
16550 (Fw32_find_bdf_fonts): New function.
16551 (syms_of_w32fns): Add Vw32_bdf_filename_alist and
16552 Sw32_find_bdf_fonts.
16553
165541999-01-21 Andrew Innes <andrewi@gnu.org>
16555
16556 * makefile.nt (temacs): Use del to delete file, not rm.
16557
165581999-01-19 Richard Stallman <rms@psilocin.ai.mit.edu>
16559
16560 * keyboard.c (read_key_sequence): Fix previous change.
16561
16562 * xterm.c (same_x_server): Detect treat ":0" and "unix:0"
16563 as the same. Treat "myname:0" as the same as those two.
16564
165651999-01-19 Jason Rumney <jasonr@altavista.net>
16566
16567 * w32fns.c (x_to_w32_charset): Add iso8859-9.
16568 (w32_to_x_charset): Fix charset mappings.
16569
16570 * w32term.c: Remove codepage macros. Remove redundant BIG5 macros.
16571 (dumpglyphs): Move definitions out of block containing goto.
16572 Remove redundant code for BIG5.
16573 Use w32_codepage_for_font instead of
16574 w32_codepage_for_charset. Add cast to int where float
16575 operation is assigned to int.
16576 (Vw32_charset_to_codepage_alist): New variable.
16577 (w32_codepage_for_charset): Removed.
427ec082
SS
16578 (w32_codepage_for_font): New function, replacing
16579 w32_codepage_for_charset.
26901792
DL
16580 (syms_of_w32term): Add and initialize
16581 w32-charset-to-codepage-alist.
16582
165831999-01-17 Richard Stallman <rms@psilocin.ai.mit.edu>
16584
16585 * xselect.c (x_handle_selection_clear): Don't clear the
16586 selection if Emacs still owns it through a different display.
16587
165881999-01-17 Andrew Innes <andrewi@gnu.org>
16589
16590 * w32proc.c: (w32_executable_type): Relax the check to identify
16591 cygwin-compiled applications, because the exact dll name varies
16592 with release. Now only require the name to start "cygwin".
16593
16594 * w32heap.h: (ROUND_UP):
16595 (ROUND_DOWN): New macros.
16596 (need_to_recreate_heap): Renamed to using_dynamic_heap.
16597 (init_heap): New extern.
16598 (data_region_size):
16599 (recreate_heap):
16600 (read_in_bss):
16601 (map_in_heap):
16602 (round_to_next):
16603 (w32_fatal_reload_error):
16604 (get_section_size): Obsolete externs removed.
16605
16606 * w32heap.c: (RVA_TO_PTR): Redefine to convert RVA to address in
16607 current process.
16608 (round_to_next): Obsolete function removed.
16609 (preload_heap_section): New variable.
16610 (data_region_size): Obsolete variable removed.
16611 (allocate_heap): Modified to determine end of static heap section
16612 used during preload, and use that as initial base address for
16613 dynamic heap instead of hard-coded value.
16614 (sbrk): Remove call to allocate_heap; handled by init_heap. Skip
16615 calls to commit or decommit pages when allocating from static heap
16616 section during preload.
16617 (recreate_heap): Obsolete function removed.
16618 (init_heap): New function to initialize internal sbrk heap
16619 variables. Uses static heap section during preload, otherwise
16620 calls allocate_heap to reserve a heap region dynamically.
16621 (round_heap): Use ROUND_UP macro instead of round_to_next.
16622
16623 * unexw32.c: Major rewrite to support cleaner method of dumping; a
16624 static "bss" section is used for heap space during preload, and
16625 bss data is now written to the proper section area when dumping.
16626 (need_to_recreate_heap): Renamed to using_dynamic_heap.
16627 (heap_index_in_executable): Obsolete variable removed.
16628 (data_section): New variable.
16629 (data_start_va): Renamed to data_start.
16630 (data_start_file): Obsolete variable removed.
16631 (bss_section):
16632 (extra_bss_size):
16633 (bss_section_static):
16634 (bss_start_static):
16635 (bss_size_static):
16636 (extra_bss_size_static):
16637 (heap_section): New variables.
16638 (_start): Remove code based on old unexec method. Call init_heap
16639 to initialize sbrk heap.
16640 (close_file_data): Update size of file when closing, so that
16641 unexec doesn't have to work out exact size in advance.
16642 (get_bss_info_from_map_file):
16643 (get_section_size): Obsolete functions removed.
16644 (rva_to_section): Fix minor bug, and add a work-around for a bug
16645 in very old linkers.
16646 (offset_to_section):
16647 (relocate_offset): New functions.
16648 (OFFSET_TO_RVA):
16649 (RVA_TO_OFFSET):
16650 (RVA_TO_SECTION_OFFSET):
16651 (PTR_TO_RVA):
16652 (PTR_TO_OFFSET):
16653 (OFFSET_TO_PTR): New macros.
16654 (get_section_info): Modify to support new unexec method;
16655 determines address ranges in process that need dumping, and COFF
16656 sections where data will be dumped. Allows for static and global
16657 bss data to be in separate ranges. No longer relies on knowledge
16658 of section names.
16659 (copy_executable_and_dump_data_section): Renamed
16660 copy_executable_and_dump_data. Completely rewritten to copy
16661 executable section by section, so that raw data areas can be
16662 expanded to hold dumped data as necessary. Allows for bss data to
16663 be in same section as initialized data. Reduces size of static
16664 heap section to that used during preload.
16665 (dump_bss_and_heap):
16666 (w32_fatal_reload_error):
16667 (read_in_bss):
16668 (map_in_heap): Obsolete functions removed.
16669 (unexec): Rounds off preload heap to nearest page rather than
16670 virtual allocation unit. Modified to match other changes.
16671
16672 * mem-limits.h: (get_lim_data): Use reserved_heap_size instead of
16673 data_region_size.
16674
16675 * makefile.nt: (TEMACS_TMP): New macro.
16676 ($(TEMACS)): Output to TEMACS_TMP from link, use post-link
16677 processor to add static heap section in support of new unexec.
16678
16679 * lastfile.c: Include config.h to pick up data layout pragmas.
16680 [WINDOWSNT]: Remove explicit pragma.
16681
166821999-01-12 Kenichi Handa <handa@etl.go.jp>
16683
16684 * coding.c (Fdecode_sjis_char): Decode Japanese Katakana character
16685 correctly.
16686 (Fencode_sjis_char): Encode Japanese Katakana character correctly.
16687
166881999-01-11 Dave Love <fx@gnu.org>
16689
16690 * coding.c (syms_of_coding): Doc fix for inhibit-eol-conversion.
16691
166921999-01-11 Richard Stallman <rms@psilocin.ai.mit.edu>
16693
16694 * keyboard.c (read_key_sequence): In key-translation-map and
16695 function-key-map, handle symbol with array as fn def.
16696 In function-key-map, handle symbol with keymap as fn def,
16697 and autoloaded definitions.
427ec082 16698
26901792
DL
16699 * puresize.h (BASE_PURESIZE): Increment to 500000.
16700
16701 * print.c (Qtemp_buffer_setup_hook): New variable.
16702 (syms_of_print): Init and staticpro that.
16703 (temp_output_buffer_setup): Run Qtemp_buffer_setup_hook.
16704
167051999-01-11 Kenichi Handa <handa@etl.go.jp>
16706
16707 * insdel.c (del_range_1): Call signal_after_change.
16708 (del_range_byte): Likewise.
16709 (del_range_both): Likewise.
16710 (del_range_2): Don't call signal_after_change.
16711
16712 * xdisp.c (message_dolog): Use insert_1_both to avoid running any
16713 Lisp code here.
16714
167151999-01-07 Richard Stallman <rms@psilocin.ai.mit.edu>
16716
16717 * eval.c (find_handler_clause): If SIG is nil (memory full error),
16718 never run the debugger, and don't bother checking the args
16719 to see whether the debugger should be run.
16720
167211999-01-06 Richard Stallman <rms@psilocin.ai.mit.edu>
16722
16723 * keyboard.c (read_key_sequence):
16724 Tell get_keyelt to look handle autoloads.
16725 Handle symbols defined as keymaps, and autoloaded keymaps.
16726
167271999-01-06 Kenichi Handa <handa@etl.go.jp>
16728
16729 * search.c (search_buffer): Fix previous change.
16730
167311999-01-06 Eli Zaretskii <eliz@gnu.org>
16732
16733 * w16select.c (set_clipboard_data): Terminate the text with a null
16734 character. Don't allow to put binary data into the clipboard.
16735 Return zero in case of success, 1 or 2 otherwise.
16736 (get_clipboard_data): Only bail out if the null character is in
16737 the last 32-byte chunk of clipboard data
16738 (Fw16_set_clipboard_data): Make ok and put_status be unsigned. If
16739 they save binary data, print a message in the echo area saying the
16740 text was not put into the clipboard.
16741
16742 * msdos.c (IT_write_glyphs): Move constant expression out of the loop.
16743
167441999-01-06 Andreas Schwab <schwab@gnu.org>
16745
16746 * systty.h [__GLIBC__ >= 2]: Check __FAVOR_BSD instead of
16747 _BSD_SOURCE, the latter is always defined.
16748
167491999-01-05 Richard Stallman <rms@psilocin.ai.mit.edu>
16750
16751 * fns.c (Frequire): Don't fail to unbind bindings.
16752
167531999-01-02 Richard Stallman <rms@psilocin.ai.mit.edu>
16754
16755 * emacs.c (main) [DOUG_LEA_MALLOC]: Don't call r_alloc_reinit.
16756
16757 * charset.c (Ffind_charset_region): Fix doc typo.
16758
167591998-12-31 Eli Zaretskii <eliz@mescaline.gnu.org>
16760
16761 * msdos.c (IT_write_glyphs): Convert unibyte characters to
16762 multibyte in unibyte buffers only.
16763
16764 * keymap.c (Fdefine_prefix_command): Accept a third argument NAME
16765 and pass it to Fmake_sparse_keymap.
16766
167671998-12-29 Richard Stallman <rms@psilocin.ai.mit.edu>
16768
16769 * alloc.c (MMAP_MAX_AREAS): New macro.
16770 (allocate_vectorlike, make_uninit_multibyte_string): Use that.
16771 (init_alloc_once): Use that.
16772
16773 * s/gnu-linux.h [DOUG_LEA_MALLOC] (REL_ALLOC): Undefine it.
16774
16775 * alloc.c (lisp_malloc, lisp_free): New functions.
16776 Use them instead of malloc, xmalloc, and xfree, for Lisp objects.
16777 Don't set allocating_for_lisp in the callers; let lisp_malloc do it.
16778 (n_interval_blocks, n_float_blocks): New variable.
16779 (n_cons_blocks, n_vectors, n_symbol_blocks): New variable.
16780 (n_marker_blocks, n_string_blocks): New variable.
16781 (init_intervals, make_interval): Set a count variable.
16782 Use lisp_malloc instead of setting allocating_for_lisp.
16783 (init_float, make_float, init_cons, Fcons): Likewise.
16784 (allocate_vectorlike, init_symbol, Fmake_symbol): Likewise
16785 (init_marker, allocate_misc, init_strings): Likewise.
16786 (make_uninit_multibyte_string): Likewise.
16787 (gc_sweep, compact_strings): Decrement the count variables.
16788
16789 * alloc.c (uninterrupt_malloc): Don't store Emacs's hooks
16790 into the old_..._hook variables.
16791
167921998-12-28 Richard Stallman <rms@psilocin.ai.mit.edu>
16793
16794 * keyboard.c: In each active map, for each menu bar item, use only
16795 the first submap.
16796 (menu_bar_one_keymap): Initialize menu_bar_one_keymap_changed_items.
16797 (menu_bar_item): Update and test menu_bar_one_keymap_changed_items.
16798 (syms_of_keyboard): Staticpro and init it.
16799
427ec082 16800 * xmenu.c (single_keymap_panes):
26901792
DL
16801
168021998-12-28 Andrew Innes <andrewi@delysid.gnu.org>
16803
16804 * w32fns.c (w32_msg_pump): Ignore WM_NULL message posted to thread
16805 by complete_deferred_msg.
16806 (post_character_message): Cancel all deferred messages when
16807 quit_char is typed, in order to break out of potential deadlocks.
16808 (cancel_all_deferred_msgs): New function.
16809 (complete_deferred_msg): Don't abort if msg not found; may have
16810 been cancelled.
16811 (Fw32_reconstruct_hot_key): Use pre-interned symbols.
16812 (Fw32_send_sys_command): Wait for system command to
16813 complete before returning.
427ec082 16814
26901792
DL
16815 * w32term.c (x_iconify_frame): Wait for frame to be iconified; do
16816 not set async_iconified flag though.
16817
16818 * w32proc.c: (Vw32_start_process_inherit_error_mode): New variable.
16819 (create_child): Use it.
16820 (syms_of_ntproc): Defvar it. Also fix docstrings for
16821 w32-start-process-share-console and w32-start-process-show-window.
16822
16823 * unexw32.c (_start): Force system calls accessing unmounted
16824 devices to fail without prompting.
16825
168261998-12-26 Richard Stallman <rms@psilocin.ai.mit.edu>
16827
16828 * emacs.c (main): Call memory_warnings and uninterrupt_malloc
16829 even when starting the dumped Emacs.
16830
16831 * keymap.c (Fsingle_key_description): Handle (control ?x) etc.
16832 (Fkey_description): Handle lists like vectors.
16833
168341998-12-21 Kenichi Handa <handa@etl.go.jp>
16835
16836 * callint.c (Fcall_interactively) <'C'>: Give Fread_char Qnil
16837 because of the change of the second argument of Fread_char.
16838
16839 * charset.c (Fcharset_after): Check range. If POS is out of
16840 range, return nil.
16841
16842 * keyboard.c (read_char): Don't bind input-method-exit-on-first-char.
16843
16844 * lread.c (Fread_char): Change the meaning of the second argument.
16845 (Fread_event): Likewise.
16846 (Fread_char_exclusive): Likewise.
16847
16848 * print.c (printchar): Fix previous change.
16849
16850 * process.c (read_process_output): Decide the multibyteness of
16851 string given to a process filter by a coding system used for
16852 decoding the process output.
16853
168541998-12-21 Eli Zaretskii <eliz@mescaline.gnu.org>
16855
16856 * xterm.c (dumpglyphs): Don't convert 7-bit ASCII characters via
16857 nonascii-translation-table.
16858 * msdos.c (IT_write_glyphs): Likewise.
16859 * fns.c (concat): Likewise.
16860 * charset.c (unibyte_char_to_multibyte): Likewise.
16861 * insdel.c (copy_text, count_size_as_multibyte): Likewise.
16862
168631998-12-21 Andreas Schwab <schwab@delysid.gnu.org>
16864
16865 * doc.c (Fdocumentation): Change the doc string for prefix
16866 commands to make it a complete sentence in one line.
16867
168681998-12-16 Petri Kaurinkoski <Petri.Kaurinkoski@hut.fi>
16869
16870 * s/irix6-5.h: New file.
16871 * s/irix6-0.h (IRIX6): Define this symbol.
16872 * s/usg5-4.h (TIOCSIGSEND): Don't define this if irix6.
16873 (bcopy, bcmp, bzero): Likewise.
16874 * m/iris4d.h (LIBS_MACHINE): Leave this blank if irix6.5.
16875 (C_SWITCH_MACHINE): New value for irix6.5.
16876
168771998-12-15 Richard Stallman <rms@gnu.org>
16878
16879 * fns.c (Fbase64_decode_region, Fbase64_decode_string):
16880 Do free malloc'd memory even in case of failure. Use xfree, not free.
16881 (Fbase64_encode_region, Fbase64_encode_string): Use xfree, not free.
16882 (base64_decode_1): Don't fail for short lines.
16883
16884 * print.c (printchar): Outputting multibyte characters
16885 to echo area always makes it multibyte.
16886
16887 * search.c (search_buffer): Don't use Boyer-Moore
16888 to search for an invalid multibyte code.
16889 In unibyte case, no need to check whether there are translations
16890 in more than one charset; just set charset_base to 0.
16891
168921998-12-15 Ken'ichi Handa <handa@delysid.gnu.org>
16893
16894 * print.c (printchar): Cancel previous change.
16895
168961998-12-15 Kenichi Handa <handa@etl.go.jp>
16897
16898 * callproc.c: Include "ccl.h".
16899 (Fcall_process): Doc-string modified. Set CODING_MODE_LAST_BLOCK
16900 bit in argument_coding.mode to tell encoding procedure to flush
16901 data. While encoding arguments, if argument_coding uses CCL
16902 program, initialize it again after encoding.
16903 (Fcall_process_region): Doc-string modified. Handle the case that
16904 NARGS is 3.
16905
16906 * ccl.c (CCL_SUCCESS): Don't set ccl->ic.
16907 (ccl_driver) <CCL_End>: Pretend that all source text is consumed.
16908 Set `ic' to the head of this command.
16909 (ccl_driver) <CCL_ReadMultibyteChar2>: Return a single byte 8-bit
16910 code for an invalid code.
16911 (setup_ccl_program): If the arg VEC is nil, skip setting ups
16912 based on VEC.
16913
16914 * charset.c (Qunknown): New variable.
16915 (init_charset_once): Intern and staticpro Qunknown. Initialize
16916 all elements of Vcharset_symbol_table to Qunknown.
16917 (find_charset_in_str): New arg MULTIBYTE. If it is zero, check
16918 unibyte characters only. For an invalid composition sequence, set
16919 CHARSETS[1] to 1.
16920 (Ffind_charset_region): Call find_charset_in_str with an
16921 appropriate MULTIBYTE arg. If undefined charsets are found,
16922 include `unknown' is the return value.
16923 (Ffind_charset_string): Likewise.
16924 (Fsplit_char): If CHAR is invalid, return `(unknown CHAR)'.
16925 (str_cmpchar_id): Max composite character code should be less than
16926 GENERIC_COMPOSITION_CHAR.
16927
16928 * charset.h (find_charset_in_str): Update declaration.
16929
16930 * coding.c (DECODE_DESIGNATION): Jump to label_invalid_code if
16931 final_char is invalid.
16932 (decode_coding): If coding->type is coding_type_ccl, call
16933 ccl_coding_driver even if SRC_BYTES is zero.
16934 (code_convert_region): Update `inserted' correctly after calling
16935 coding->post_read_conversion. Even after the code converter
16936 consumed all source text, call it once more if it is
16937 coding_type_ccl to flush out data.
16938
16939 * fileio.c (Finsert_file_contents): Even if INSERTED is zero, if
16940 CODING is handled by CCL program, call code_convert_region.
16941
16942 * fns.c (string_char_to_byte): Handle invalid multibyte sequence
16943 correctly.
16944 (string_byte_to_char): Likesize.
16945
16946 * print.c (printchar): When outputting a multibyte character to
16947 echo area, always set message_enable_multibyte to 1.
16948
16949 * process.c (read_process_output): If NBYTES is zero and
16950 CODING_MODE_LAST_BLOCK bit is not yet set in coding->mode, set it
16951 and try decoding again.
16952 (Fprocess_send_eof): If the coding system of PROCESS
16953 requires flushing, call send_process with null-string at first.
16954
16955 * w16select.c (Fw16_set_clipboard_data): Call find_charset_in_str
16956 with MULTIBYTE arg 0.
16957 * w32select.c (Fw32_set_clipboard_data): Likewise.
16958 * xselect.c (lisp_data_to_selection_data): Likewise.
16959
169601998-11-30 Richard Stallman <rms@psilocin.ai.mit.edu>
16961
16962 * search.c (Freplace_match): Set OPOINT clearly for the case
16963 where point is in the middle of the text to be replaced.
16964
16965 * xdisp.c (display_text_line): When handling HPOS < 0 after loop,
16966 if compute_motion fails to advance at all, don't back it up.
16967
169681998-12-10 Geoff Voelker <voelker@cs.washington.edu>
16969
16970 * w32.c (w32_get_long_filename): Handle root dirs correctly.
16971
427ec082 16972 * s/ms-w32.h (LOCALTIME_CACHE): Define.
26901792
DL
16973
169741998-12-09 Richard Stallman <rms@gnu.org>
16975
16976 * insdel.c (insert_from_buffer_1): Properly count the size
16977 of output from conversion to multibyte even when input
16978 is split across the gap.
16979
169801998-12-09 Karl Heuer <kwzh@gnu.org>
16981
16982 * keyboard.c: Doc fixes.
16983
16984 * s/irix4-0.h (C_SWITCH_SYSTEM) [!__GNUC__]: Increase space.
16985
169861998-12-08 Andrew Innes <andrewi@harlequin.co.uk>
16987
16988 * w32select.c (Fw32_get_clipboard_data): Do not delete isolated CR
16989 characters, only convert CRLF to LF.
16990
169911998-12-08 Geoff Voelker <voelker@cs.washington.edu>
16992
16993 * makefile.nt: Do string comparision of _NMAKE_VER.
16994
169951998-12-06 Eli Zaretskii <eliz@mescaline.gnu.org>
16996
16997 * Makefile.in (msdos.o): Depend on termchar.h, charset.h,
16998 coding.h, and disptab.h
16999
17000 * msdos.c (Vdos_unsupported_char_glyph): New variable.
17001 (syms_of_msdos): DEFVAR_LISP it.
17002 (IT_insert_glyphs, IT_delete_glyphs): New functions which abort Emacs.
17003 (internal_terminal_init): Set up insert_glyphs_hook and
17004 delete_glyphs_hook to call them. Explicitly set char_ins_del_ok to 0.
17005 (unibyte_display_via_language_environment): New variable.
17006 (syms_of_msdos): Devfar it.
17007 (IT_write_glyphs): Honor glyph aliasing via Vglyph_table.
17008 Encode the character codes of the glyphs according to the
17009 terminal_coding in effect.
17010
170111998-12-04 Andreas Schwab <schwab@delysid.gnu.org>
17012
17013 * fns.c (Fstring_as_unibyte): Doc fix.
17014
170151998-12-03 Andreas Schwab <schwab@delysid.gnu.org>
17016
17017 * charset.h: Declare char_valid_p.
17018
170191998-12-03 Eli Zaretskii <eliz@mescaline.gnu.org>
17020
17021 * dosfns.c (dos_cleanup): Flush and fsync the termscript stream.
17022
17023 * msdos.c (init_environment): Record the time we started up.
17024 (IT_reset_terminal_modes): Don't restore the screen if we exit too
17025 fast after startup (aka crash).
17026
170271998-12-02 Geoff Voelker <voelker@cs.washington.edu>
17028
17029 * w32.c (check_windows_init_file): Use decode_env_path when
17030 using EMACSLOADPATH.
17031
170321998-12-02 Jason Rumney <jasonr@altavista.net>
17033
17034 * w32term.c (dumpglyphs): Use unsigned char arrays.
17035 Use FONT_MAX_WIDTH to detect and fudge proportional fonts
17036 for various languages.
17037 Compensate for fonts that have underhangs (e.g., Thai).
17038
17039 * w32term.h (FONT_MAX_WIDTH): New macro.
17040
170411998-12-02 Andrew Innes <andrewi@harlequin.co.uk>
17042
17043 * keyboard.c (Qlanguage_change): New variable.
17044 (syms_of_keyboard): Init it.
17045 (kbd_buffer_get_event) [WINDOWSNT]: Generate language-change events.
17046 (lispy_function_keys) [HAVE_NTGUI]: Remove names for modifier
17047 keys; add name for Escape key; extend to 256 elements.
17048 (parse_modifiers): Make non-static.
17049
17050 * keyboard.h (parse_modifiers): Declare prototype.
17051
17052 * termhooks.h (event_kind) [WINDOWSNT]: Define language_change_event.
17053
17054 * w32fns.c (w32_last_error): Fix cut+paste error.
17055 (Vw32_phantom_key_code): New variable.
17056 (Qhyper, Qsuper, Qmeta, Qalt, Qctrl, Qcontrol, Qshift): New variables.
17057 (syms_of_w32fns): Init and register them.
17058 (reset_modifiers): Use a more precise test for whether Emacs has
17059 keyboard focus. Synchronize state of all keys that can be used as
17060 modifiers, to overcome problems arising from hot-keys.
17061 (w32_key_to_modifier): Be careful not to call intern() to avoid
17062 requiring thread synchronization.
17063 (w32_msg_pump): Handle new WM_EMACS_TOGGLE_LOCK_KEY message.
17064 (w32_wnd_proc): Ensure lock key indicator lights are updated
17065 promptly on Windows 9x, by passing key events on to the system.
17066 (w32_wnd_proc): Use Vw32_phantom_key_code to stop system
17067 responding to Windows key events when not wanted.
17068 (w32_wnd_proc): Undo the mapping of Ctrl-Pause into cancel and
17069 Ctrl-NumLock into pause by the system.
17070 (w32_wnd_proc): Don't translate key combinations containing any
17071 modifiers other than shift (and capslock).
17072 (w32_wnd_proc): Reset modifier key states when receiving focus (we
17073 can't determine the key states until we have keyboard focus).
17074 (Fw32_toggle_lock_key): New function.
17075 (syms_of_w32fns): Defsubr it.
17076
17077 * w32inevt.c (key_event): Use Vw32_phantom_key_code. Undo the
17078 mapping of Ctrl-Pause into cancel, and Ctrl-NumLock into pause.
17079 (w32_console_toggle_lock_key): New function.
17080
17081 * w32term.h (WM_EMACS_TOGGLE_LOCK_KEY): New define.
17082
170831998-11-30 Richard Stallman <rms@psilocin.ai.mit.edu>
17084
17085 * search.c (Freplace_match): Set OPOINT clearly for the case
17086 where point is in the middle of the text to be replaced.
17087
17088 * xdisp.c (display_text_line): When handling HPOS < 0 after loop,
17089 if compute_motion fails to advance at all, don't back it up.
17090
170911998-11-28 Richard Stallman <rms@psilocin.ai.mit.edu>
17092
17093 * xfns.c (Qouter_window_id): New variable.
17094 (syms_of_xfns): Initialize it.
17095 (x_report_frame_params): Set up outer-window-id parameter.
17096
17097 * keymap.c (Fsingle_key_description): Fix previous change.
17098
170991998-11-26 Ken'ichi Handa <handa@delysid.gnu.org>
17100
17101 * lisp.h (Frequire): Update declaration.
17102
171031998-11-26 Kenichi Handa <handa@etl.go.jp>
17104
17105 * ccl.c (ccl_driver) <CCL_TranslateCharacter>: Don't suppress MSB
17106 if the charset is ascii.
17107 (ccl_driver) <CCL_TranslateCharacterConstTbl>: Likewise.
17108
17109 * charset.c (non_ascii_char_to_string): If C has modifier bits,
17110 make an appropriate one byte string.
17111 (char_bytes): Handle the case that C is a single byte char or has
17112 modifier bits.
17113
17114 * charset.h (CHAR_BYTES): If C has modifier bits, return 1.
17115
17116 * cmds.c (internal_self_insert): If C has modifier bits, insert
17117 appropriate one byte char.
17118
171191998-11-25 Richard Stallman <rms@psilocin.ai.mit.edu>
17120
17121 * fns.c (Fstring_as_unibyte, Fstring_as_multibyte):
17122 Clear text properties in the new string.
17123
171241998-11-24 Felix Lee <flee@cygnus.com>
17125
17126 * process.c (read_process_output): Call signal_after_change.
17127
171281998-11-24 Richard Stallman <rms@psilocin.ai.mit.edu>
17129
17130 * buffer.c (syms_of_buffer): Doc fix.
17131
17132 * keyboard.c (syms_of_keyboard): Doc fix.
17133
171341998-11-22 Richard Stallman <rms@psilocin.ai.mit.edu>
17135
17136 * frame.c (Fset_mouse_position): Doc fix.
17137
171381998-11-20 Richard Stallman <rms@psilocin.ai.mit.edu>
17139
17140 * keymap.c (Fmake_keymap): Doc fix.
17141
171421998-11-17 Kenichi Handa <handa@etl.go.jp>
17143
17144 * category.c (word_boundary_p): If C1 or C2 are composite
17145 characters, test their first components.
17146
171471998-11-16 Richard Stallman <rms@sucrose.ai.mit.edu>
17148
17149 * window.c (temp_output_buffer_show): Around temp-buffer-show-hook,
17150 don't do save-excursion, just restore selected window.
17151
17152 * window.c (window_loop): For UNSHOW_BUFFER,
17153 always do consider minibuffer windows.
427ec082 17154
26901792
DL
171551998-11-16 Kenichi Handa <handa@etl.go.jp>
17156
17157 * charset.h (SINGLE_BYTE_CHAR_P): Check if C is negative or not.
17158
17159 * charset.c (non_ascii_char_to_string): If C is negative, signal error.
17160
17161 * lisp.h (CHAR_TABLE_REF): Check if IDX is negative or not.
17162
17163 * s/bsdos4.h: New file.
17164
171651998-11-16 Kenichi Handa <handa@etl.go.jp>
17166
17167 * Makefile.in (abbrev.o): Depend on charset.h
17168 (bytecode.o): Depend on charset.h.
17169
17170 * bytecode.c: Include charset.h.
17171
17172 * abbrev.c: Include charset.h.
17173
17174 * syntax.h (SYNTAX_ENTRY_INT): For a composite character, check
17175 the first component.
17176
171771998-11-13 Ehud Karni <ehud@unix.simonwiesel.co.il>
17178
17179 * m/aviion-intel.h (LIBS_MACHINE): Delete redundant definition.
17180
171811998-11-11 Richard Stallman <rms@gnu.org>
17182
17183 * xterm.c (XTread_socket): Fix previous change in case F == 0.
17184
17185 * s/dgux5-4-3.h (BSD_PGRPS): Add #undef.
17186
17187 * s/dgux4.h (BROKEN_FIONREAD): #undef commented out.
17188 (INTERRUPT_INPUT): #define commented out.
17189
17190 * m/aviion-intel.h: New file.
17191
171921998-11-11 Eli Zaretskii <eliz@delysid.gnu.org>
17193
17194 * fns.c (MAX_ALLOCA): New macro.
17195 (Fbase64_encode_region, Fbase64_encode_string,
17196 Fbase64_decode_region, Fbase64_decode_string): Don't allocate
17197 more than MAX_ALLOCA bytes with alloca; otherwise use xmalloc.
17198
171991998-11-11 Ken'ichi Handa <handa@delysid.gnu.org>
17200
17201 * insdel.c (byte_combining_error): Error message improved.
17202
17203 * charset.c (char_valid_p): Handle a composite character correctly.
17204
172051998-11-11 Kenichi Handa <handa@etl.go.jp>
17206
17207 * charset.c (str_cmpchar_id): Check the byte sequence for
17208 composition more rigidly.
17209 (Fcompose_string): Allow DEL to be composed. Signal error if STR
17210 contains an invalid multibyte sequence.
17211
17212 * xterm.c (x_list_fonts): Don't change the value of maxnames.
17213
172141998-11-10 Andrew Innes <andrewi@harlequin.co.uk>
17215
17216 * w32term.h (struct w32_display_info): New element faked_key.
427ec082
SS
17217 (WM_EMACS_SETKEYBOARDLAYOUT):
17218 (WM_EMACS_REGISTER_HOT_KEY):
26901792 17219 (WM_EMACS_UNREGISTER_HOT_KEY): New message definitions.
427ec082
SS
17220 (LEFT_WIN_PRESSED):
17221 (RIGHT_WIN_PRESSED):
26901792
DL
17222 (APPS_PRESSED): New console keyboard modifier flags.
17223
17224 * w32term.c (convert_to_key_event): Removed.
17225 (is_dead_key): Copied to w32fns.c.
17226 (w32_read_socket): Generate language_change_event. Modify to work
17227 with keyboard handling changes in w32_wnd_proc.
17228
17229 * w32proc.c (sys_kill): Set extended key flag when faking
17230 Ctrl-Break keystrokes.
17231 (Fw32_get_locale_info): Allow LONGFORM parameter to specify an
17232 arbitrary locale property using a numerical index.
17233 (Vw32_valid_codepages): New variable.
427ec082
SS
17234 (enum_codepage_fn):
17235 (Fw32_get_valid_codepages):
17236 (Fw32_get_console_codepage):
17237 (Fw32_set_console_codepage):
17238 (Fw32_get_console_output_codepage):
17239 (Fw32_set_console_output_codepage):
17240 (Fw32_get_codepage_charset):
17241 (Fw32_get_valid_keyboard_layouts):
17242 (Fw32_get_keyboard_layout):
26901792
DL
17243 (Fw32_set_keyboard_layout): New functions, exposing Windows locale
17244 handling functions.
17245 (syms_of_ntproc): Register them.
17246
17247 * w32inevt.c: Include w32term.h and w32heap.h.
17248 (map_keypad_keys):
17249 (Vw32_enable_caps_lock):
17250 (Vw32_enable_num_lock):
17251 (Vw32_pass_lwindow_to_system):
17252 (Vw32_pass_rwindow_to_system):
17253 (Vw32_lwindow_modifier):
17254 (Vw32_rwindow_modifier):
17255 (Vw32_apps_modifier):
17256 (Vw32_scroll_lock_modifier):
17257 (w32_key_to_modifier): Add externs.
17258 (w32_kbd_mods_to_emacs): Recognize Windows keys, Apps key, and
17259 Scroll Lock as potential modifiers; exclude numpad keys from
17260 effect by CapsLock; act on Vw32_enable_caps_lock; remove obsolete
17261 code.
17262 (is_dead_key): Copy from w32fns.c.
17263 (w32_kbd_patch_key): Comment attempt to improve handling of
17264 dead-keys, and system bug relating to same on Windows NT. Work
17265 around the bug by calling ToUnicode and then converting to the
17266 correct codepage.
17267 (map_virt_key): Removed obsolete variable.
17268 (lispy_function_keys): Add extern.
17269 (key_event): Major rework of keyboard input handling: optionally
17270 recognize Windows keys and Apps key as modifiers; optionally treat
17271 NumLock, CapsLock and ScrollLock as function keys; let system
17272 translate keystrokes to characters to avoid system bugs relating
17273 to dead-key handling; preserve shift distinction for control
17274 characters. Remove some obsolete code.
17275
17276 * makefile.nt ($(BLD)\w32inevt.obj): Add dependencies on w32term.h
17277 and w32heap.h.
17278
17279 * w32fns.c (Vw32_pass_optional_keys_to_system): Variable removed.
17280 (Vw32_pass_lwindow_to_system):
17281 (Vw32_pass_rwindow_to_system):
17282 (Vw32_lwindow_modifier):
17283 (Vw32_rwindow_modifier):
17284 (Vw32_apps_modifier):
17285 (Vw32_enable_num_lock):
17286 (Vw32_enable_caps_lock):
17287 (Vw32_scroll_lock_modifier): New variables.
17288 (modifier_set): Return toggle state for Scroll Lock.
17289 (w32_key_to_modifier): New function. Returns chosen modifier bit
17290 for given key.
17291 (w32_get_modifiers): Returns modifier flags for
17292 non-keyboard input events.
17293 (construct_console_modifiers): Renamed from construct_modifiers;
17294 recognize Windows and Apps keys as modifiers.
17295 (w32_get_key_modifiers): New function. Returns modifier flags for
17296 keyboard input events.
17297 (map_keypad_keys): Make non-static. Use second arg as extended
17298 flag.
17299 (w32_grabbed_keys): New variable.
17300 (HOTKEY, HOTKEY_ID, HOTKEY_VK_CODE, HOTKEY_MODIFIERS): New macros.
17301 (register_hot_keys):
17302 (unregister_hot_keys):
17303 (lookup_vk_code):
17304 (w32_parse_hot_key):
17305 (Fw32_register_hot_key):
17306 (Fw32_unregister_hot_key):
17307 (Fw32_registered_hot_keys):
17308 (Fw32_reconstruct_hot_key): New functions to support hotkeys.
17309 (post_character_message): New function.
17310 (w32_msg_pump): Handle new messages for using hotkeys and changing
17311 keyboard layout/language.
17312 (w32_wnd_proc): Major rework of keyboard input handling:
17313 optionally recognize Windows keys and Apps key as modifiers;
17314 optionally treat NumLock, CapsLock and ScrollLock as function
17315 keys; let system translate keystrokes to characters to avoid
17316 system bugs relating to dead-key handling; preserve shift
17317 distinction for control characters; forward keyboard
17318 layout/language changes to lisp; detect and convert hot-key events
17319 to normal keystrokes.
17320 (syms_of_w32fns): Register new functions and variables.
17321 (w32_last_error): New function for use in debugging.
17322
173231998-11-10 Kenichi Handa <handa@etl.go.jp>
17324
17325 * category.h (CATEGORY_SET): Adjusted for the change of
17326 cmpchar_component.
17327 (CATEGORY_SET): Likewise.
17328
17329 * charset.c (cmpchar_component): New arg NOERROR. Check
17330 composition char ID more strictly.
17331 (Fcmpchar_component): Call cmpchar_component with NOERROR arg zero.
17332 (Fcmpchar_cmp_rule): If CHARACTER should be composed relatively,
17333 return 255.
17334 (Fcompose_string): Signal error if STR contains a rule-based
17335 composition character.
17336
17337 * charset.h (cmpchar_component): Proto-type adjusted.
17338
173391998-11-09 Kenichi Handa <handa@etl.go.jp>
17340
17341 * charset.c (string_to_non_ascii_char): Return correct length for
17342 a charset of dimension 2 and composition character.
17343
173441998-11-08 Richard Stallman <rms@sucrose.ai.mit.edu>
17345
17346 * keymap.c (Fsingle_key_description): Handle generic characters.
17347
17348 * process.c (Fprocess_status): Doc fix.
17349
173501998-11-06 Ken'ichi Handa <handa@delysid.gnu.org>
17351
17352 * charset.c (init_charset_once): Fix previous change.
17353
173541998-11-06 Kenichi Handa <handa@etl.go.jp>
17355
17356 * charset.c (string_to_non_ascii_char): Fix previous change.
17357 (char_valid_p): Check the validity of CHARSET by CHARSET_DEFINED_P.
17358
17359 * charset.h (SPLIT_NON_ASCII_CHAR): Check dimension of an invalid
17360 character correctly.
17361 (STRING_CHAR): Handle an invalid charater correctly.
17362
173631998-11-05 Kenichi Handa <handa@etl.go.jp>
17364
17365 * charset.c (string_to_non_ascii_char): Fix previous change.
17366
17367 * charset.h (MAKE_NON_ASCII_CHAR): Check validity of CHARSET.
17368
17369 * editfns.c (Fstring_to_char): Don't return a multibyte character
17370 if STRING is a unibyte string.
17371
17372 * indent.c (MULTIBYTE_BYTES_WIDTH): Check validity of a multibyte
17373 character.
17374
17375 * xdisp.c (display_text_line): Check validity of a multibyte character.
17376 (display_string): Likewise. Handle an invalid character correctly.
17377
173781998-11-05 Karl Heuer <kwzh@gnu.org>
17379
17380 * insdel.c (Fcombine_after_change_execute): Return nil, not junk.
17381 If nothing to do, return immediately.
17382 (syms_of_insdel): Initialize combine_after_change_buffer.
17383
173841998-11-05 Richard Stallman <rms@gnu.org>
17385
17386 * xterm.c (XTread_socket): ButtonPress clears f->mouse_moved.
17387
173881998-11-04 Geoff Voelker <voelker@cs.washington.edu>
17389
17390 * w32term.c (w32_enable_unicode_output): Rename from
17391 w32_no_unicode_output.
17392 (w32_use_unicode_for_codepage, syms_of_w32term): Use new name
17393 and new semantics.
17394
173951998-11-04 Jason Rumney <jasonr@altavista.net>
17396
17397 * w32fns.c (w32_list_fonts): Report an error if a frame has not
17398 been created yet.
17399
17400 * w32term.c (dumpglyphs): Use FRAME_FONT for w32_fill_area.
17401
174021998-11-04 Kenichi Handa <handa@etl.go.jp>
17403
17404 * charset.c (string_to_non_ascii_char): Change the check for the
17405 varidity of multibyte form.
17406 (update_charset_table): Check validity of BYTES. Don't set
17407 bytes_by_char_head here.
17408 (init_charset_once): Set bytes_by_char_head completely.
17409
17410 * frame.c (do_switch_frame): Cancel previous change.
17411
17412 * print.c (print_string): Check validity of a character.
17413 (print): Likewise.
17414
17415 * sysdep.c [nec_ews_svr4]: Extern *_sobuf.
17416
17417 * m/ews4800.h, s/ux4800.h: New files.
17418
174191998-11-03 Theodore Jump <tjump@tertius.com>
17420
17421 * makefile.nt: Compile multiple source files when possible.
17422
17423 * w32faces.c (Qmouse_face): Replace definition with extern decl.
427ec082 17424
26901792
DL
174251998-11-03 Andrew Innes <andrewi@delysid.gnu.org>
17426
17427 * w32.c (stat): GetFileInformationByHandle can legitimately fail,
17428 so don't rely on it succeeding.
17429
17430 * w32fns.c (x_to_w32_font): Specify DEFAULT_CHARSET in the w32
17431 LOGFONT struct if x font doesn't specify the charset.
17432 (x_to_w32_charset): Change >= to == when testing results of
17433 stricmp.
17434
174351998-11-02 Richard Stallman <rms@sucrose.ai.mit.edu>
17436
17437 * fns.c (Frequire): New arg NOERROR.
17438
174391998-11-02 Andrew Innes <andrewi@harlequin.co.uk>
17440
17441 * fileio.c (Fsubstitute_in_file_name) [DOS_NT]: Fix typo.
17442
174431998-10-31 Richard Stallman <rms@psilocin.ai.mit.edu>
17444
17445 * xfaces.c (Qmouse_face): Replace definition with extern decl.
17446 (syms_of_xfaces): Initialization deleted.
17447
17448 * textprop.c (Qmouse_face): Variable definition moved here.
17449 (syms_of_textprop): Initialize it.
17450
17451 * data.c (set_internal): For built-in maybe-local vars,
17452 when BINDFLAG is set, do not mark them as local.
17453
174541998-10-31 Ken'ichi Handa <handa@delysid.gnu.org>
17455
17456 * insdel.c (replace_range): Fix previous change.
17457
174581998-10-31 Kenichi Handa <handa@etl.go.jp>
17459
17460 * editfns.c (Fsubst_char_in_region): Fix previous change.
17461 (Ftranslate_region): Fix previous change.
17462
17463 * fns.c (Fbase64_decode_region): Fix previous change.
17464
17465 * frame.c (do_switch_frame): Update minibuf_window if necessary.
17466
17467 * insdel.c (byte_combining_error): New function.
17468 (CHECK_BYTE_COMBINING_FOR_INSERT): Call byte_combining_error.
17469 (insert_from_string_1): Set *(GPT_ADDR) to 0 before calling
17470 CHECK_BYTE_COMBINING_FOR_INSERT.
17471 (insert_from_buffer_1): Likewise.
17472 (adjust_after_replace): Check the posibility of inhibitted byte
17473 combining correctly.
17474 (replace_range): Before signaling an error for inhibitted byte
17475 combining, recover the buffer in a safe state.
17476 (del_range_2): Check the posibility of inhibitted byte combining
17477 correctly.
17478
174791998-10-30 Andreas Schwab <schwab@delysid.gnu.org>
17480
17481 * xselect.c (Vselection_coding_system): Doc fix.
17482
17483 * fns.c (Fbase64_encode_region): Use SET_PT_BOTH instead of SET_PT
17484 when we have both char and byte position. Fix type clashes.
17485
17486 * eval.c (Fsignal): Use a separate format string when passing
17487 error message string to fatal, in case it contains %'s.
17488
17489 * editfns.c (Fchar_after): Fix type clashes.
17490
17491 * charset.c (Fchar_bytes): Doc fix.
17492 (char_bytes): Fix returned value to match returned type.
17493 (syms_of_charset): Fix type clash in initialisation of
17494 Vauto_fill_chars.
17495
174961998-10-29 Geoff Voelker <voelker@cs.washington.edu>
17497
17498 * w32console.c (initialize_w32_display): Use buffer coords
17499 instead of buffer size (which may be larger than the window).
17500
17501 * fileio.c (init_fileio_once): New function.
17502
17503 * emacs.c (main): Invoke init_fileio_once.
17504
175051998-10-28 Paul Eggert <eggert@twinsun.com>
17506
17507 * xterm.c (XTread_socket): Check the returned value of
17508 XmbLookupString more carefully.
17509
175101998-10-28 Kenichi Handa <handa@etl.go.jp>
17511
17512 * coding.c (DECODE_CHARACTER_ASCII): Check validity of inserted code.
17513 (DECODE_CHARACTER_DIMENSION1): Likewise.
17514 (DECODE_CHARACTER_DIMENSION2): Likewise.
17515 (decode_coding_sjis_big5): Check the 2nd byte of SJIS correctly.
17516
17517 * editfns.c (Fsubst_char_in_region): Fix previous change.
17518 (Ftranslate_region): Fix previous change.
17519
17520 * insdel.c (check_markers): Check if markers are at character boundry.
17521 (adjust_markers_for_insert): Fix previous change.
17522 (count_combining_before): Don't limit the check at BEGV.
17523 (count_combining_after): Don't limit the check at ZV.
17524 (CHECK_BYTE_COMBINING_FOR_INSERT): New macro.
17525 (insert_1_both): Call CHECK_BYTE_COMBINING_FOR_INSERT.
17526 (insert_from_string_1): Likewise.
17527 (insert_from_buffer_1): Likewise.
17528 (adjust_after_replace): Inhibit bytes combined across region
17529 boundary. Update end_unchanged correctly.
17530 (replace_range): Call CHECK_BYTE_COMBINING_FOR_INSERT. Update
17531 end_unchanged correctly.
17532 (del_range_2): Inhibit bytes combined across region boundary.
17533 Update end_unchanged correctly.
17534
175351998-10-27 Geoff Voelker <voelker@cs.washington.edu>
17536
17537 * w32.c (check_windows_init_file): Also look in load path specified
17538 in environment.
17539
17540 * w32console.c (Fset_message_beep): Recognize 'silent.
17541 (w32_sys_ring_bell): Do nothing for the 'silent sound.
427ec082 17542
26901792
DL
17543 * w32fns.c (w32_color_map_lookup): Remove duplicate definition.
17544
17545 * w32select.c (Vnext_selection_coding_system): New variable.
17546 (syms_of_w32select): DEFVAR_LISP it.
17547 (Fw32_set_clipboard_data): Use Vnext_selection_coding_system if
17548 non-nil. Always convert multibyte strings.
17549 (Fw32_get_clipboard_data): Use Vnext_selection_coding_system if
17550 non-nil. Always convert a string that includes non-ASCII characters.
427ec082 17551
26901792
DL
175521998-10-27 Richard Stallman <rms@psilocin.ai.mit.edu>
17553
17554 * fns.c (Fbase64_decode_string): Doc fix.
17555 (Fbase64_decode_region, Fbase64_encode_string Fbase64_encode_region):
17556 Likewise.
17557
175581998-10-27 Dave Love <fx@gnu.org>
17559
17560 * fns.c (Fbase64_decode_region, Fbase64_encode_region): Fix
17561 newline in doc string.
17562
175631998-10-27 Kenichi Handa <handa@etl.go.jp>
17564
17565 * editfns.c (Fsubst_char_in_region): Correctly handle the case
17566 that byte combining before happens.
17567 (Ftranslate_region): Likewise.
17568
17569 * insdel.c (adjust_after_replace): Correctly handle the case that
17570 both byte combining before and byte combining after happen.
17571 (replace_range): Likewise.
17572
175731998-10-26 Kenichi Handa <handa@etl.go.jp>
17574
17575 * category.c (syms_of_category): Doc-string modified.
17576
17577 * coding.c (code_convert_region): Kill the work buffer created by
17578 pre-write-conversion.
17579
175801998-10-25 Jason Rumney <jasonr@altavista.net>
17581
17582 * emacs.c (main) [HAVE_NTGUI]: Invoke syms_of_fontset().
17583
175841998-10-23 Kenichi Handa <handa@etl.go.jp>
17585
17586 * coding.c (code_convert_region): While preserving the orignal
17587 point, pay attention to the byte combining problem.
17588
17589 * fns.c (Fbase64_decode_region): Pay attention to the byte
17590 combining problem.
17591
17592 * insdel.c (adjust_markers_for_insert): Adjust markers by taking
17593 combined_before_bytes and combined_after_bytes into account.
17594 (count_combining_after): Handle the case that LENGTH is zero.
17595 (adjust_after_replace): Record deletion at correct buffer
17596 position. Handle the case that LEN is zero.
17597 (replace_range): Record deletion at correct buffer position.
17598 (del_range_2): Call adjust_makers_for_replace to adjust makers for
17599 combined bytes.
17600
176011998-10-21 Richard Stallman <rms@psilocin.ai.mit.edu>
17602
17603 * alloc.c (Fgarbage_collect): Block input around most of the function.
427ec082 17604
26901792
DL
176051998-10-21 Kenichi Handa <handa@etl.go.jp>
17606
17607 * coding.c (setup_coding_system): Fix setting up
17608 coding->spec.ccl.valid_codes for CCL based coding system.
17609 (code_convert_region): Set point to FROM before inserting the
17610 result of pre-write-funciton. Preserve original point.
17611 (code_convert_string): If coding->type is coding_type_ccl, do
17612 conversion even if the length of conversion region is zero.
17613
17614 * fontset.c: Include frame.h before fontset.h.
427ec082 17615 (list_fonts_func): Fix prototype.
26901792
DL
17616
17617 * frame.c: Include frame.h before fontset.h.
17618
17619 * xterm.c: Likewise.
17620
176211998-10-21 Jason Rumney <jasonr@altavista.net>
17622
17623 * x-list-font.c (Fx_list_fonts): Access frame parameters throught
17624 general macros. Don't call x_list_font directory, instead call a
17625 function set in list_fonts_func.
17626
17627 * fontset.h (list_fonts_func): Fix prototype.
17628
176291998-10-20 Jason Rumney <jasonr@altavista.net>
17630
17631 * makefile.nt (w32fns.c): Add x-list-font.c to dependancies.
17632
17633 * w32faces.c: Update comments referring to obsolete structs.
17634 (allocate_face, copy_face, face_eql, load_font,
17635 Fpixmap_spec_p, free_frame_faces, new_computed_face,
17636 frame_update_line_height, merge_faces, compute_base_face,
17637 Fset_face_attribute_internal): Use fontset support based on xfaces.c.
17638
17639 * w32fns.c: (Vx_pixel_size_width): New global variable.
17640 (unibyte_display_via_language_environment): New global variable.
17641 (x_set_font): Add support for setting fontsets.
17642 (Fx_create_frame): Add check_w32(). Initialize fontsets. Fix
17643 font names to match xlfd-tight-regexp.
17644 (w32_load_font): Rewrite based on x_load_font.
17645 (x_to_w32_charset, w32_to_x_charset): Add character sets. Use
17646 `iso8859-1' rather than `ansi'.
17647 (w32_to_x_font): Remove `-' from font name. Remove the `-' off the
17648 end. Move charset into `charset registry' field.
17649 (enum_font_cb2): Check charsets match. Include width in font list.
17650 (w32_list_fonts): Rewrite based on x_list_fonts.
17651 Moved from w32term.c to have access to enumfont_t struct.
17652 (Fx_list_fonts): w32 specific version eliminated. Include
17653 `x-list-fonts.c'.
17654 (w32_get_font_info, w32_query_font, w32_find_ccl_program): New
17655 functions for fontset support - adapted from x_ equivalents.
17656 (syms_of_w32fns): New lisp variables initialised. Function
17657 pointers for fontset.c set up.
17658
427ec082 17659 * w32term.c: Include fontset.h. Define codepage macros.
26901792
DL
17660 Add ENCODE_BIG5 macro from coding.c.
17661 (w32_no_unicode_output): New variable.
17662 (w32_codepage_for_charset, w32_use_unicode_for_codepage): New
17663 functions.
17664 (BUILD_WCHAR_T, BYTE1, BYTE2): New macros.
17665 (dumpglyphs): Rewrite based on xterm.c equivalent.
17666 (x_new_font): Use functionality provided in fontset.c.
17667 (x_new_fontset): New function based on the one in xterm.c.
17668 (syms_of_w32term): Add w32-no-unicode-output flag.
17669
427ec082 17670 * w32term.h: Remove redundant font_info struct definition.
26901792
DL
17671 (Vx_pixel_size_width_font_regexp,
17672 unibyte_display_via_language_environment): Declare variables.
427ec082 17673 (w32_list_fonts, w32_get_font_info, w32_query_font, w32_load_font):
26901792
DL
17674 Declare functions.
17675 (w32_output): New fields font_baseline and fontset.
17676 (FRAME_FONTSET, FRAME_W32_FONT_TABLE): New macros.
17677
17678 * w32xfns.c: Include charset.h and fontset.h.
17679
176801998-10-20 Richard Stallman <rms@psilocin.ai.mit.edu>
17681
17682 * syntax.c (syms_of_syntax): Fix the setup of Qscan_error.
17683
176841998-10-20 Eli Zaretskii <eliz@mescaline.gnu.org>
17685
17686 * msdos.c (mouse_init): Reset the button press/release info of the
17687 mouse driver.
17688 (mouse_preempted): New variable.
17689 (dos_rawgetc): Don't generate mouse events if mouse is preempted.
17690 (XMenuActivate): Preempt the mouse during menu-handling loop.
17691 Release the current time slice while idling in the menu-handling
17692 loop. Leave the loop only if the user pressed, then released the
17693 same button. Discard all mouse events that are pending in the
17694 event queue before exiting.
17695
176961998-10-19 Richard Stallman <rms@psilocin.ai.mit.edu>
17697
17698 * editfns.c (Fformat): Increase buffer size for floating format.
17699
177001998-10-17 Kenichi Handa <handa@etl.go.jp>
17701
17702 * charset.c (Vauto_fill_chars, Qauto_fill_chars): New variables.
17703 (syms_of_charset): Staticpro and initialize Qauto_fill_chars.
17704 Declare auto-fill-chars as a Lisp variable and initialize it.
17705
17706 * charset.h (Vauto_fill_chars): Extern it.
17707
17708 * cmds.c (internal_self_insert): Check Vauto_fill_chars.
17709
177101998-10-16 Kenichi Handa <handa@etl.go.jp>
17711
17712 * casefiddle.c (casify_object): Use make_string instead of
17713 make_specified_string to cope with byte-combining situation.
17714
17715 * coding.c (decode_coding_iso2022): Set coding->fake_multibyte to
17716 1 when encountered with a code of the range 0x80..0x9F.
17717
177181998-10-14 Eli Zaretskii <eliz@mescaline.gnu.org>
17719
17720 * callproc.c (Fcall_process) [MSDOS]: Use $TMPDIR instead of
17721 trying $TMP and $TEMP, since the former is always set in msdos.c.
17722 (Fcall_process_region) [DOS_NT]: When looking for a place to put
17723 the temporary files, check $TMPDIR as well.
17724
177251998-10-14 Richard Stallman <rms@psilocin.ai.mit.edu>
17726
427ec082 17727 * process.c (exec_sentinel, read_process_output):
26901792
DL
17728 Restore waiting_for_user_input_p after running Lisp code.
17729
17730 * keyboard.c (parse_menu_item): Avoid initialization for Lisp_Object.
17731 (command_loop): Likewise.
17732
177331998-10-14 Kenichi HANDA <handa@etl.go.jp>
17734
17735 * data.c (Faset): Fix previous change.
17736
17737 * fns.c (Ffillarray): Fix previous change.
17738
17739 * insdel.c (adjust_markers_for_combining): This function deleted.
17740 (adjust_markers_for_replace): Correctly adjust marker positions.
17741 Don't record these adjustment because they were recorded already.
17742 (combine_bytes): Don't adjust markers here.
17743
177441998-10-13 Richard Stallman <rms@psilocin.ai.mit.edu>
17745
17746 * minibuf.c (Fdisplay_completion_list): Put on mouse-face properties.
17747
177481998-10-12 Richard Stallman <rms@psilocin.ai.mit.edu>
17749
17750 * keyboard.c (Fclear_this_command_keys): New function.
17751 (syms_of_keyboard): defsubr it.
17752
17753 * macros.c (Fexecute_kbd_macro): Set real_this_command.
17754
177551998-10-12 Kenichi Handa <handa@etl.go.jp>
17756
17757 * ccl.c (CCL_DECODE_SJIS, CCL_ENCODE_SJIS): Swap the definitions.
17758
17759 * charset.c (Fstring): Call make_string instead of
17760 make_string_from_bytes.
17761 (Ffind_charset_region): Include `composition' in the returned list
17762 if the region contains any composite characters.
17763 (Ffind_charset_string): Include `composition' in the returned list
17764 if the string contains any composite characters.
17765 (find_charset_in_str): Handle CMPCHARP arg correctly.
17766
17767 * coding.c (shrink_decoding_region): If a charset other than ascii
17768 is initially designated to G0, don't shrink the region.
17769 (shrink_encoding_region): Likewise.
17770
17771 * data.c (Faset): If ARRAY is a multibyte string, pay attention to
17772 byte-combining situation.
17773
17774 * fns.c (clear_string_char_byte_cache): New function.
17775 (Ffillarray): Handle multibyte string correctly.
17776
17777 * lisp.h (clear_string_char_byte_cache): Extern it.
17778
17779 * xselect.c (lisp_data_to_selection_data): Call
17780 find_charset_in_str with CMPCHARP arg 0.
17781 * w16select.c (Fw16_set_clipboard_data): Likewise.
17782 * w32select.c (Fw32_set_clipboard_data): Likewise.
17783
177841998-10-11 Richard Stallman <rms@psilocin.ai.mit.edu>
17785
17786 * keyboard.c (parse_menu_item): For top level of menu bar,
17787 accept ordinary commands, and treat them just like a keymap.
17788
177891998-10-11 Richard Stallman <rms@sucrose.ai.mit.edu>
17790
17791 * xdisp.c (redisplay_window): Clear w->window_end_valid
17792 before running the window-scroll-functions hook, if appropriate.
17793
177941998-10-10 Richard Stallman <rms@psilocin.ai.mit.edu>
17795
17796 * data.c (Fstring_to_number): Don't recognize floating point
17797 if base is not 10.
17798
17799 * window.c (window_loop): New alternative CHECK_ALL_WINDOWS.
17800 (check_all_windows): New function for debugging tests.
17801 (syms_of_window): Initialize it.
17802
17803 * window.c (Qwindow_configuration_p): New variable.
17804 (Fwindow_configuration_frame): New function.
17805 (syms_of_window): defsubr it.
17806 (Fset_window_configuration): Return t if frame is live.
17807 Use Qwindow_configuration_p.
17808
17809 * xfns.c (check_x_display_info): Don't use selected_frame
17810 if it is dead.
17811
178121998-10-09 Geoff Voelker <voelker@cs.washington.edu>
17813
17814 * w32fns.c (x_create_bitmap_from_file): Skip special files.
17815
178161998-10-08 Kenichi Handa <handa@etl.go.jp>
17817
17818 * buffer.h (inhibit_modification_hooks): Extern it.
17819
17820 * buffer.c (inhibit_modification_hooks): New variable.
17821 (init_buffer_once): Initialize inhibit_modification_hooks to 0.
17822
17823 * charset.c (invalid_character): Prepend `0' to octal
17824 representation. Give error sufficient args.
17825
17826 * coding.c (code_convert_region): Set inhibit_modification_hooks
17827 to 1 before calling Fset_text_properties.
17828
17829 * insdel.c (signal_before_change): If inhibit_modification_hooks
17830 is nonzero, do nothing.
17831 (signal_after_change): Likewise.
17832
178331998-10-08 Emilio Lopes <Emilio.Lopes@Physik.TU-Muenchen.DE>
17834
17835 * process.c: Doc fixes.
17836
178371998-10-08 Richard Stallman <rms@sucrose.ai.mit.edu>
17838
17839 * syntax.c (scan_lists): Bring FROM back into range BEGV...ZV.
17840
178411998-10-07 Geoff Voelker <voelker@cs.washington.edu>
17842
17843 * w32.c (init_ntproc): Check for Windows init file.
17844 (term_ntproc): Do not check for it here.
17845
178461998-09-28 Kenichi Handa <handa@etl.go.jp>
17847
17848 * coding.c (check_composing_code): Fix previous change. Now it
17849 alwasy returns 0 or -1.
17850 (decode_coding_iso2022): Adjusted for the above change.
17851 (encode_coding_iso2022): When encoding the last block, flush out
17852 tailing garbage bytes.
17853 (setup_coding_system): Delete unnecessary code.
17854 (shrink_decoding_region): Check translation table. If ASCII
17855 should be translated, give up shrinking.
17856 (shrink_encoding_region): Likewise.
17857 (SHRINK_CONVERSION_REGION_THRESHHOLD): New macro.
17858 (SHRINK_CONVERSION_REGION): New macro.
17859 (code_convert_region): Call SHRINK_CONVERSION_REGION. Delete text
17860 properties here.
17861 (code_convert_region): In the case of encoding, always calulate
17862 correct character number.
17863 (code_convert_string): Call SHRINK_CONVERSION_REGION.
17864 (code_convert_region1): Don't delete text properties here.
17865
17866 * insdel.c (adjust_after_replace): Don't delete text properties here.
17867
17868 * term.c (encode_terminal_code): Handle raw 8-bit codes correctly.
17869
178701998-09-27 Richard Stallman <rms@psilocin.ai.mit.edu>
17871
17872 * emacs.c (sort_args): Fill extra space with NULL ptrs.
17873
178741998-09-26 Kenichi Handa <handa@etl.go.jp>
17875
17876 * coding.h (struct coding_system): New member composed_chars.
17877
17878 * coding.c (check_composing_code): If the current composing
17879 sequence doesn't end properly, return -1.
17880 (DECODE_CHARACTER_ASCII): Update coding->composed_chars.
17881 (DECODE_CHARACTER_DIMENSION1): Likewise.
17882 (decode_coding_iso2022): Check validity of a composing sequence.
17883 (code_convert_string): If the length of text to be converted is
17884 shrunk to zero, don't perform code conversion.
17885 (shrink_decoding_region): Fix previous change.
17886
17887 * editfns.c (Fformat): Check format control characters.
17888
178891998-09-25 Kenichi Handa <handa@etl.go.jp>
17890
17891 * coding.c (decode_eol): While decoding DOS-like eol, handle a
17892 single CR code correctly.
17893 (shrink_decoding_region) <CODING_CATEGORY_IDX_ISO_7 or
17894 CODING_CATEGORY_IDX_ISO_7_TIGHT>: Skip also 8-bit codes.
17895
178961998-09-23 Geoff Voelker <voelker@cs.washington.edu>
17897
17898 * w32fns.c (w32_color_map_lookup): New function.
17899 (x_to_w32_color): Approximate colors ending in numbers if necessary.
17900
179011998-09-22 Kenichi Handa <handa@etl.go.jp>
17902
17903 * ccl.c (ccl_driver): Report correct CCL program counter on error.
17904
17905 * xmenu.c (single_submenu) [! HAVE_MULTILINGUAL_MENU]: Make
17906 strings unibyte.
17907 (xmenu_show) [! HAVE_MULTILINGUAL_MENU]: Likewise.
17908
179091998-09-22 Kenichi Handa <handa@etl.go.jp>
17910
17911 * callint.c (Fcall_interactively): Don't use input method when
17912 reading a character in the case of `c' code letter.
17913
179141998-09-21 Dave Love <fx@gnu.org>
17915
17916 * editfns.c (Fsave_restriction): Doc fix.
17917
179181998-09-21 Richard Stallman <rms@gnu.org>
17919
17920 * lread.c (build_load_history): Do add to Vload_history
17921 even when dumping Emacs.
17922
179231998-09-18 Kenichi Handa <handa@etl.go.jp>
17924
17925 * ccl.c (CCL_WRITE_CHAR): Don't use bcopy.
17926 (ccl_driver): If BUFFER-MAGNIFICATION of the CCL program is 0,
17927 cause error if the program is going to output some bytes. When
17928 outputing a string to notify an error, check the case that
17929 DST_BYTES is zero.
17930
427ec082 17931 * coding.h (CODING_FINISH_INTERRUPT): New macro.
26901792
DL
17932
17933 * coding.c (ccl_coding_driver): If ccl_driver is interrupted by a
17934 user or the CCL program executed an invalid command, return
17935 CODING_FINISH_INTERRUPT.
17936 (code_convert_region): Pay attention to the converters return
17937 value CODING_FINISH_NORMAL and CODING_FINISH_INTERRUPT.
17938
179391998-09-16 Kenichi Handa <handa@etl.go.jp>
17940
17941 * coding.c (code_convert_region): Update beg_unchanged and
17942 end_unchanged after we delete the source text.
17943
17944 * insdel.c (adjust_markers_for_replace): Don't adjust a byte
17945 position if it is FROM.
17946 (adjust_markers_for_combining): New function.
17947 (combine_bytes): Call adjust_markers_for_combining instead of
17948 adjust_markers_for_replace.
17949 (adjust_after_replace): Record deletion of combining after bytes
17950 with the correct position.
17951 (replace_range): Likewise. Record the actual deletion after
17952 recoding deletions of combining bytes.
17953
17954 * xdisp.c (message_log_check_duplicate): Count byte length of the
17955 latest message correctly.
17956
179571998-09-12 Richard Stallman <rms@gnu.org>
17958
17959 * xdisp.c (redisplay_internal): Use TEMP_SET_PT_BOTH
17960 instead of SET_PT_BOTH.
17961 (try_window_id, display_text_line): Likewise.
17962
179631998-09-12 Karl Heuer <kwzh@gnu.org>
17964
17965 * data.c (Fmake_local_variable): Doc fix.
17966
179671998-09-10 Dave Love <fx@gnu.org>
17968
17969 * print.c (Fwith_output_to_temp_buffer): Doc fix.
17970
179711998-09-10 Richard Stallman <rms@gnu.org>
17972
17973 * s/irix6-0.h (TIOCSIGSEND): Add #undef.
17974 (bcopy, bcmp, bzero): Add #undef.
17975
17976 * keyboard.c (command_loop_1): When switching to selected window's bfr,
17977 first exit if selected frame is dead (no live frames remain).
17978 (read_key_sequence): Likewise.
17979
179801998-09-10 Karl Heuer <kwzh@gnu.org>
17981
17982 * emacs.c (main): Mention --display and --eval in help.
17983
179841998-09-07 Paul Eggert <eggert@twinsun.com>
17985
17986 * editfns.c (emacs_memftime): New function.
17987 (Fformat_time_string): Use it to handle null bytes in formats
17988 correctly.
17989
179901998-09-08 Kenichi Handa <handa@etl.go.jp>
17991
17992 * charset.c (Ffind_charset_region): Optimization for unibyte buffer.
17993 (Ffind_charset_string): For unibyte string, return (ascii).
17994
17995 * editfns.c (Fsubst_char_in_region): Call replace_range with the
17996 arg MARKERS 1.
17997
17998 * insdel.c (adjust_after_replace): Don't add combining bytes to
17999 the args given to adjust_point. Handle correctly the case that
18000 there are both before and after combining bytes.
18001 (replace_range): Likewise.
18002
180031998-09-07 Lars Magne Ingebrigtsen <larsi@gnus.org>
18004
18005 * fns.c (base64_decode_1, base64_encode_1): New functions.
18006 (Fbase64_decode_string, Fbase64_encode_string): New functions.
18007 (Fbase64_decode_region, Fbase64_encode_region): New functions.
18008
180091998-09-07 Karl Heuer <kwzh@gnu.org>
18010
18011 * eval.c (error): After enlarging buffer, write to it, not to buf.
18012
18013 * fns.c (Fwidget_put): Return VALUE instead of garbage.
18014
180151998-09-07 Kenichi Handa <handa@etl.go.jp>
18016
18017 * charset.h (STRING_CHAR_AND_LENGTH): Return correct value in
18018 ACTUAL_LEN even if LEN is too short to have a valid multibyte form.
18019 (STRING_CHAR_AND_CHAR_LENGTH): Likewise.
18020
18021 * coding.c (ccl_coding_driver): Always calculate correct mulibyte
18022 chars in produced byte sequence.
18023 (Ffind_operation_coding_system): Doc-string fixed.
18024
18025 * insdel.c (count_combining_after): Check also preceding bytes at
18026 POS if all characters in STRING are not character head.
18027
180281998-09-06 Paul Eggert <eggert@twinsun.com>
18029
18030 * editfns.c (Fformat_time_string, Fdecode_time, Fcurrent_time_zone):
18031 Don't assume that localtime and gmtime return non-NULL.
18032
180331998-09-06 Lars Magne Ingebrigtsen <larsi@gnus.org>
18034
18035 * fns.c (Fbase64_decode_string, Fbase64_encode_string,
18036 base64_decode_1, Fbase64_decode_region, Fbase64_encode_region):
18037 New functions.
18038
180391998-09-06 Richard Stallman <rms@gnu.org>
18040
18041 * editfns.c (Fformat): Detect incomplete format spec at string's end.
18042
18043 * lread.c (Fload): Handle case where openp finds a magic file
18044 but it has no `load' handler or that handler calls `load'.
18045 If FOUND != FILE, find FOUND's handler even if inhibited for FILE.
18046
180471998-09-04 Dave Love <fx@gnu.org>
18048
18049 * buffer.c (enable-multibyte-characters): Doc fix.
18050
180511998-09-02 Geoff Voelker <voelker@cs.washington.edu>
18052
18053 * w32heap.c (allocate_heap): Define NTHEAP_PROBE_BASE by default.
18054
180551998-09-01 Kenichi Handa <handa@etl.go.jp>
18056
18057 * editfns.c (Ftranspose_regions): Use BYTE_POS_ADDR to get an
18058 address in buffer from byte-position.
18059
180601998-09-01 Eli Zaretskii <eliz@delysid.gnu.org>
18061
18062 * w16select.c (Vnext_selection_coding_system): New variable.
18063 (syms_of_win16select): DEFVAR_LISP it. No need to staticpro
18064 Vselection_coding_system.
18065 (Fw16_set_clipboard_data): Always convert multibyte strings. Use
18066 Vnext_selection_coding_system if non-nil.
18067 (Fw16_get_clipboard_data): Always convert a string that includes
18068 non-ASCII characters. Use Vnext_selection_coding_system if
18069 non-nil.
18070
180711998-08-31 Andrew Innes <andrewi@harlequin.co.uk>
18072
18073 * w32fns.c (w32_wnd_proc): Always zero button_state when releasing
18074 mouse capture.
18075
180761998-08-31 Kenichi Handa <handa@etl.go.jp>
18077
18078 * xterm.c (x_load_font): If SIZE is 0, don't use a name
18079 x_list_font returns.
18080
180811998-08-31 Paul Eggert <eggert@twinsun.com>
18082
18083 * lread.c (read1): Don't assume that atof ("-0.0") yields +0.0.
18084 Handle leading '-' uniformly for zeros, infinities, and NaNs.
18085
180861998-08-31 Eli Zaretskii <eliz@delysid.gnu.org>
18087
18088 * msdos.c (IT_cmgoto): When tracking echo area messages with the
18089 cursor, save and restore previous cursor position in the
18090 minibuffer.
18091
180921998-08-31 Kenichi Handa <handa@etl.go.jp>
18093
18094 * charset.c (unibyte_char_to_multibyte):
18095 Vnonacii_translation_table will convert a 7-bit charcater.
18096 (multibyte_char_to_unibyte): Handle the case that
18097 Vnonacii_translation_table converts a multibyte charcater to a
18098 unibyte charcter of less than 128.
18099 (init_charset_once): Initialize nonascii_insert_offset and
18100 Vnonacii_translation_table.
18101
18102 * coding.c (decode_coding): Even if SRC_BYTES is zero, try
18103 processing if CODING requires flushing.
18104 (encode_coding): Likewise.
18105 (code_convert_region): Likewise.
18106 (code_convert_string): Likewise.
18107
18108 * fns.c (concat): If Vnonascii_translation_table is non-nil, try
18109 to convert a character less than 160 to multibyte.
18110 * insdel.c (copy_text): Likewise.
18111 (count_size_as_multibyte): Likewise.
18112 * xterm.c (dumpglyphs): Likewise.
18113
181141998-08-29 Paul Eggert <eggert@twinsun.com>
18115
18116 * data.c (arith_driver, float_arith_driver): Compute (- x) by
18117 using negation, not subtraction; this makes a difference with
18118 IEEE floating point arithmetic (and also if integer arithmetic
18119 is ones' complement or signed-magnitude!).
18120
181211998-08-29 Karl Heuer <kwzh@gnu.org>
18122
18123 * xfns.c (x_create_bitmap_from_file): Fail immediately if magic.
18124
181251998-08-28 Ken'ichi Handa <handa@delysid.gnu.org>
18126
18127 * charset.c (Fchar_bytes): Add \n\ in doc-string.
18128
181291998-08-28 Paul Eggert <eggert@twinsun.com>
18130
18131 * s/sol2-4.h (NOT_USING_MOTIF): New macro.
18132 (LD_SWITCH_SYSTEM_TEMACS): Put /usr/dt/lib in the link library
18133 path only if we're not building with Motif.
18134
181351998-08-28 Kenichi Handa <handa@etl.go.jp>
18136
18137 * insdel.c (adjust_after_replace): Fix the code to record undo
18138 information for the case that `before combining' happens. Remove
18139 text properties which are added to the new text by
18140 offset_intervals.
18141
18142 * coding.c (code_convert_region1): Remove all text properties of
18143 the region.
18144
181451998-08-28 Kenichi Handa <handa@etl.go.jp>
18146
18147 * charset.h (CHAR_BYTES): New macro.
18148
18149 * charset.c (Fchar_bytes): Now always return 1.
18150 (char_bytes): New function.
18151
18152 * editfns.c (Fposition_bytes): If the arg POSITION is out of
18153 range, return nil.
18154 (Fbyte_to_position): If the arg BYTEPOS is out of range, return
18155 nil.
18156
18157 * data.c (Faset): Use macro CHAR_BYTES instead of Fchar_bytes.
18158 * fns.c (concat): Likewise.
18159 * insdel.c (count_size_as_multibyte): Likewise.
18160 * xdisp.c (message_dolog): Likewise.
18161
181621998-08-27 Kenichi Handa <handa@etl.go.jp>
18163
18164 * coding.c (detect_coding_iso2022): Handle ESC N and ESC O
18165 correctly. They are for SS2 and SS3 respectively.
18166 (ccl_coding_driver): Fix previous change.
18167
181681998-08-26 Paul Eggert <eggert@twinsun.com>
18169
18170 * xterm.c (fixup_locale): New function. For now, it resets
18171 LC_TIME to "C" (reverting the 1998-08-07 change), and also
18172 resets LC_MESSAGES to "C".
18173 (x_term_init): Use it to fix up the locale after setlocale
18174 (LC_ALL, "").
18175
181761998-08-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
18177
18178 * xterm.c (x_calc_absolute_position): Cast argument to XFree, in
18179 case it was prototyped the old way.
18180
181811998-08-25 Kenichi Handa <handa@etl.go.jp>
18182
18183 * xterm.c (x_list_fonts): Work-around for the case XGetAtomName
18184 returns a null string. This happens when dxpc 3.7 is being used.
18185
181861998-08-24 Andreas Schwab <schwab@delysid.gnu.org>
18187
18188 * keyboard.c (input-method-previous-message): Doc fix.
18189
18190 * coding.c (file-coding-system-alist,
18191 select-safe-coding-system-function): Doc fix.
18192
181931998-08-23 Kenichi HANDA <handa@etl.go.jp>
18194
18195 * coding.c (detect_coding_iso2022): Don't check the byte length of
18196 succeeding codes (0xa0..0xFF) if the codes follows single shift
18197 code (SS2 or SS3).
18198
181991998-08-21 Ken'ichi Handa <handa@delysid.gnu.org>
18200
18201 * coding.c (detect_coding_system): If detect_eol_type returns
18202 CODING_EOL_INCONSISTENT, set eol_type to CODING_EOL_UNDECIDED
18203 correctly.
18204
18205See ChangeLog.7 for earlier changes.