Add HAVE_FCNTL_H, _FILE_OFFSET_BITS, _LARGEFILE_SOURCE, _LARGE_FILES,
[bpt/emacs.git] / src / ChangeLog
CommitLineData
e6365855
SM
12000-06-20 Stefan Monnier <monnier@cs.yale.edu>
2
3 * syntax.c (describe_syntax): Recognize the `n'estable bit.
4 (Fforward_comment, scan_lists):
5 Check the comstyle of single-char comment-starters.
6 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
7 we're just at the beginning of the comment (f.ex with (*) ... (*)).
d355bd8a
SM
8 Check the comstyle of single-char comment-starters.
9 Clarify control-flow around the Scomment case.
e6365855 10
5700d2cc
DL
112000-06-20 Dave Love <fx@gnu.org>
12
d355bd8a
SM
13 * fns.c (make_hash_table, maybe_resize_hash_table):
14 Cast arg of next_almost_prime.
5700d2cc
DL
15
16 * tparam.c [emacs]: Include lisp.h.
17
18 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
19 and unistd.h.
20
4a27bdfb
GM
212000-06-20 Gerd Moellmann <gerd@gnu.org>
22
a61d762c
GM
23 * keyboard.c (adjust_point_for_property): Check if display
24 property should be treated as intangible by looking at its
25 value.
26
27 * xdisp.c (single_display_prop_intangible_p)
28 (display_prop_intangible_p): New functions.
29
30 * dispextern.h (display_prop_intangible_p): Add prototype.
31
32 * xdisp.c (dump_glyph_row): Show type of glyph->object.
33
4a27bdfb
GM
34 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
35 argument to sigprocmask.
36
37 * s/sco5.h (sigblock): Redefined to pass a pointer as second
38 argument to sigprocmask.
39
40 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
41 sigprocmask_set, and pass a pointer to it to sigprocmask.
42
43 * sysdep.c (sigprocmask_set): New variable.
44
45 * fileio.c (make_temp_name): Don't use `%s' in string passed to
46 report_file_error.
47
427ec082
SS
482000-06-20 Sam Steingold <sds@gnu.org>
49
50 * xrdb.c: Don't declare xmalloc, xrealloc.
51
8972fe79 522000-06-20 Stefan Monnier <monnier@cs.yale.edu>
8972fe79
SM
53
54 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
55 (re_comp): Cast gettext return value to avoid complaints when
56 !HAVE_LIBINTL.
57
074b6efe
DL
582000-06-20 Dave Love <fx@gnu.org>
59
f85c008a
DL
60 * m/stride.h, m/mips.h: Don't define HAVE_GETWD,
61 HAVE_GETTIMEOFDAY.
62
5700d2cc 63 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
f85c008a 64
d355bd8a 65 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
f85c008a
DL
66
67 * m/alpha.h: Don't declare xmalloc, xrealloc.
68
0af4f205
DL
69 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
70
71 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
72
73 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
74
75 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
76 HAVE_GETWD.
77
074b6efe
DL
78 * keyboard.h (poll_for_input_1): Declare.
79
80 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
81
82 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
83
84 * doprnt.c: Don't declare xmalloc, xrealloc.
85
86 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
87 (getenv, ctime, getwd): Removed.
88 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
89
90 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
91 x_set_tool_bar_lines.
92
93 * config.in: Add HAVE_GETWD. Move some definitions above
94 machine/system includes.
95
68a5e97b
KH
962000-06-20 Kenichi Handa <handa@etl.go.jp>
97
95417e1e
KH
98 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
99
68a5e97b
KH
100 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
101 contain information about ENCODING.
102
103 * fontset.c (FONTSET_ASCII): Use the first element of char table
104 for an ASCII font, not defalt slot.
105 (fontset_ref_via_base): If FONTSET doesn't contain information for
106 C, try the default fontset.
107 (make_fontset): Don't copy the default fontset.
108 (fontset_font_pattern): Likewise.
109 (accumulate_font_info): If ELT is nil, use the corresponding
110 element in the default fontset.
111
3b4fa1b2
DL
1122000-06-19 Dave Love <fx@gnu.org>
113
943e731c
DL
114 * syntax.c (Fparse_partial_sexp): Doc fix.
115
116 * regex.h: Test PROTOTYPES as well as __STDC__.
117
3b4fa1b2
DL
118 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
119 errno, strerror. Put text after #endif in comment.
120
121 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for
122 pcc).
123
124 * xterm.c (x_frame_of_widget): Likewise.
125
cdf0357b
GM
1262000-06-19 Gerd Moellmann <gerd@gnu.org>
127
128 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
129 to Vfundamental_mode_abbrev_table.
130
131 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
132 bogus objects are marked. This slows down GC by ~80 percent, but
133 it might be worth trying when debugging GC-related problems.
134 This feature requires conservative stack marking to be enabled.
135
136 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
137 returns XLookupChars, reset `modifiers' to zero.
138
998e9f8c
DL
1392000-06-19 Dave Love <fx@gnu.org>
140
141 * mktime.c: Unprotoized.
142
d1504184
GM
1432000-06-19 Richard Stallman <rms@caffeine.ai.mit.edu>
144
145 * data.c (set_internal): If variable is frame-local,
146 store the new value immediately into the frame parameter alist.
147
140c4ac6
KR
1482000-06-19 Ken Raeburn <raeburn@gnu.org>
149
14358466
KR
150 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
151 in the custom handler pointer.
152
140c4ac6
KR
153 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
154 value, or checks for CHAR_META can fail when Lisp_Object is a
155 union type.
156 * keymap.c (get_keyelt): Likewise.
157
10d7bf84
KH
1582000-06-19 Kenichi Handa <handa@etl.go.jp>
159
160 * ccl.h (struct ccl_program): New member eol_type.
161 (struct ccl_spec): New member cr_carryover.
162
163 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
164 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
165
166 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
167 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
168 (decode_eol_post_ccl): New function.
169 (decode_coding): Don't detect EOL format here for CCL based coding
170 systems.
171 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
172 decode_eol_post_ccl after running the CCL program.
173 (code_convert_region): Don't detect EOL format here for CCL based
174 coding systems.
175 (decode_coding_string): Likewise.
176
52e386c2
KR
1772000-06-18 Ken Raeburn <raeburn@gnu.org>
178
179 * charset.c (update_charset_table): Use XINT on "iso_final_char"
180 when treating it as an integer.
181
182 * coding.h (encode_coding_string): Declare.
183
184 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
185 it as an integer.
186
187 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
188 "xkeymap" to avoid shadowing the "enum map_type" value that needs
189 to be passed to get_local_map.
190
191 * sound.c (Fplay_sound): Don't call make_number on
192 Frun_hook_with_args count argument.
193
194 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
195 for lisp objects in X event structure data field, when lisp
196 objects are represented with unions.
197 (x_scroll_bar_to_input_event): Ditto.
198
b357b9d4
KR
1992000-06-16 Ken Raeburn <raeburn@gnu.org>
200
201 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
37d034d3
KR
202 termination of string. Fix sense of test whether
203 Vline_number_display_limit is an integer.
b357b9d4 204
a871441d
GM
2052000-06-16 Gerd Moellmann <gerd@gnu.org>
206
a9021acd
GM
207 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
208 only if HAVE_X_WINDOWS.
209
6344985d
GM
210 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
211 of titles.
212
427ec082 213 * dispnew.c (update_frame_1): Handle case that cursor vpos is
a871441d
GM
214 out of bounds.
215
228b083e
EZ
2162000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
217
218 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
219 of its headers.
220
c25b53a2
KH
2212000-06-15 Kenichi Handa <handa@etl.go.jp>
222
223 * coding.c (decode_coding_emacs_mule): Always set src_base at the
224 start of the while loop.
225
a6981b11
GM
2262000-06-15 Gerd Moellmann <gerd@gnu.org>
227
e9924e52
GM
228 * atimer.c (alarm_signal_handler): Add forward declaration.
229
a6981b11
GM
230 * data.c (set_internal): Remove debug code.
231
25fa6deb
GM
2322000-06-14 Gerd Moellmann <gerd@gnu.org>
233
dce6b995
GM
234 * Makefile.in (bootstrap-temacs): Add `-I../src'.
235
9f817ea4
GM
236 * unexec.c (toplevel) [COFF]: Include coff.h.
237
238 * s/lynxos.h: New file.
239
240 * keymap.c (Fsingle_key_description): Enclose function key and
241 event symbol names in angle brackets.
242
8a4e3c0c
GM
243 * xdisp.c (setup_echo_area_for_printing): Call
244 message_log_maybe_newline if message_buf_print is not set.
245
246 * print.c (printchar, strout): Don't check message_buf_print
427ec082 247 before calling setup_echo_area_for_printing because that
8a4e3c0c
GM
248 function does something useful even when message_buf_print is
249 already set.
250
25fa6deb
GM
251 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines): New
252 variables.
253 (ensure_echo_area_buffers): Initialize echo buffer's
254 truncate lines setting to nil.
255 (with_echo_area_buffer): Don't set the echo buffer's truncate
256 lines setting here.
8a4e3c0c 257 (set_message_1): Set it here instead, based on the value
25fa6deb
GM
258 of message_truncate_lines.
259 (resize_mini_window): Handle case that lines are truncated.
260 (syms_of_xdisp): Initialize Qmessage_truncate_lines. DEFVAR_BOOL
261 message-truncate-lines.
262
263 * keyboard.c (read_char): Bind message-truncate-lines to t
264 while displaying a help-echo.
265
266 * lisp.h (Qmessage_truncate_lines): External declaration.
267
163dcff3
GM
2682000-06-13 Gerd Moellmann <gerd@gnu.org>
269
1681ead6
GM
270 * xdisp.c (Vline_number_display_limit): Renamed from
271 line_number_display_limit.
272 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
273 Extend documentation string. Initialize
274 Vline_number_display_limit to nil meaning no limit.
275 (decode_mode_spec): Use Vline_number_display_limit with its new
276 meaning.
277
163dcff3
GM
278 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
279
2802000-06-13 Richard Stallman <rms@caffeine.ai.mit.edu>
281
282 * frame.c (Fmodify_frame_parameters): Doc fix.
427ec082 283
163dcff3
GM
284 * xfns.c (x_set_frame_parameters): Comment fix.
285
286 * frame.c (store_frame_param): Call swap_in_global_binding if the
287 variable's current binding was chosen based on this frame.
288
289 * data.c (swap_in_global_binding): New function.
290
a704139d
EZ
2912000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
292
293 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
294 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
295
9b6610db
EZ
2962000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
297
298 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
299
c68833d2
JR
3002000-06-12 Jason Rumney <jasonr@gnu.org>
301
302 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
303
304 * w32.h (EMACS_W32_H): Renamed from _NT_H_
305
306 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
307
308 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
309
ed1056b3
GM
3102000-06-12 Gerd Moellmann <gerd@gnu.org>
311
312 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
313 (syms_of_xfaces): Defsubr Sdump_colors.
314 (x_free_colors): Don't treat b&w specially on default visual.
315 (x_free_dpy_colors): New function.
316 (free_face_colors): Don't check visual class; it's done
317 in x_free_colors.
318
319 * xterm.c (x_frame_of_widget): New function.
320 (x_alloc_nearest_color_for_widget): Use it.
321 (x_copy_dpy_color): New function.
322 (x_destroy_window): Free various colors.
323
5050a2ef
KH
3242000-06-12 Kenichi Handa <handa@etl.go.jp>
325
326 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
327
328 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
329
330 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
331
332 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
333
334 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
335
fb1b041d
DL
3362000-06-11 Dave Love <fx@gnu.org>
337
338 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
339
ff96b5f4
EZ
3402000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
341
342 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
343
db8eeecd
GM
3442000-06-11 Gerd Moellmann <gerd@gnu.org>
345
ed1056b3 346 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
db8eeecd
GM
347 to `XEvent *'.
348
49b71c5f
KH
3492000-06-10 Kenichi Handa <handa@etl.go.jp>
350
c479bd55
KH
351 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
352 (regex_compile): Fix the code for handling the case of single byte
353 char and multibyte char being mixed in a range within [...].
354
ff6a65c2
KH
355 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
356 and dst_multibyte members of coding.
357
49b71c5f
KH
358 * charset.c (update_charset_table): Update the table
359 bytes_by_char_head.
360 (init_charset_once): Initialize elements of bytes_by_char_head to
361 1 except for leading codes for private charases.
362
363 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
364 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte
365 sequence.
366
9e80b57d
KR
3672000-06-09 Ken Raeburn <raeburn@gnu.org>
368
369 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
370 access the data it doesn't point to.
371
f83fe4b4
GM
3722000-06-08 Gerd Moellmann <gerd@gnu.org>
373
374 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
db8eeecd 375 will be translated to a switch-frame event when reading the
f83fe4b4
GM
376 event queue. This is necessary because Emacs otherwise won't
377 perform a switch-frame to a new frame until some other event, for
378 example a keystroke event, forces it to do so. This has various
379 effects, one visible being that the cursor of a frame created with
380 C-x 5 2 or switched to with a window manager key binding like
381 A-TAB stays hollow because selected_window isn't on the newly
382 focused frame until the switch-frame is performed.
383
384 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
385 generating a switch-frame event if necessary.
386
387 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
388
389 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
390 it's an integer.
391
0890801b
KH
3922000-06-08 Kenichi Handa <handa@etl.go.jp>
393
394 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a
395 charset.
396
173cbca8
GM
3972000-06-07 Gerd Moellmann <gerd@gnu.org>
398
3091c2a6
GM
399 * window.c (displayed_window_lines): Take empty lines at
400 the bottom of a window into account.
427ec082 401
f38952fe
GM
402 * window.c (displayed_window_lines): New function.
403 (Fmove_to_window_line): Use displayed_window_lines to determine
404 the number of lines to move, instead of using the window's height.
405
406 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
407 to stop reading, even if the form read sets point to a different
408 value when evaluated.
409
427ec082 410 * xdisp.c (display_line): Fix code deciding in which line to
173cbca8
GM
411 put the cursor.
412
6ba6c818
KH
4132000-06-07 Kenichi Handa <handa@etl.go.jp>
414
415 * fileio.c (e_write): Free composition data if stored in
416 coding->cmp_data.
417
5f1aea9a
GM
4182000-06-06 Gerd Moellmann <gerd@gnu.org>
419
666852af
GM
420 * xdisp.c (display_line): Set row's and iterator's
421 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
422 Set cursor even if row ends in the middle of a character.
423 (dump_glyph_row): Print values of new flags.
424 (redisplay_window) <cursor movement in unchanged window>: When
425 point has been moved forward, and PT is at the end of the cursor
426 row, don't place the cursor in the next row if the cursor row ends
427 in the middle of a character or at ZV.
428
429 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
430 (struct glyph_row): Add starts_in_middle_of_char_p and
431 ends_in_middle_of_char_p.
432 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
433 ends_in_middle_of_char_p flag.
434 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
435
d13f3e2e
GM
436 * term.c (append_glyph): Revert change of 2000-06-06.
437
438 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
439 padding glyph not fitting on line as whole character not
440 fitting on line.
441
5f1aea9a
GM
442 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
443 this isn't true for images with `:ascent 100'.
444
10cda9b0
KH
4452000-06-06 Kenichi Handa <handa@etl.go.jp>
446
ed00559d
KH
447 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
448 as modified if it is originally unmodified.
449
10cda9b0
KH
450 * term.c (encode_terminal_code): Change the way to check if
451 terminal coding does any conversion.
452 (append_glyph): Set glyph->pixel_width correctly.
453
454 * xdisp.c (display_line): While checking line continuation, pay
455 attention to a padding glyph.
456
1969fae2
GM
4572000-06-05 Gerd Moellmann <gerd@gnu.org>
458
459 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
460
162ccef4
DL
4612000-06-05 Dave Love <fx@gnu.org>
462
f19f32dd
DL
463 * xdisp.c: Include fontset.h.
464
465 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
466
467 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
468
469 * dispnew.c: Conditionally include term.h.
470
471 * coding.h: Declare code_convert_string_norecord.
472
473 * frame.h (struct frame): Use volatile unconditionally.
474
475 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
476
477 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
478
479 * systime.h: Protect against multiple inclusion.
480 (timezone) [USG5_4]: Define as time_t.
481
482 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
483 (Foptimize_char_table, make_temp_name): Declare.
484
485 * Makefile.in (xdisp.o): Depend on fontset.h.
486
487 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
488
489 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
490 (Foptimize_char_table, make_temp_name): Declare.
491
427ec082 492 * s/irix4-0.h:
162ccef4
DL
493 * s/irix5-0.h:
494 * s/netbsd.h: Don't define autoconfiscated MATHERR.
495
2082fe81
DL
4962000-06-02 Dave Love <fx@gnu.org>
497
498 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
499
dcf671d2
GM
5002000-06-02 Gerd Moellmann <gerd@gnu.org>
501
502 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
1969fae2 503 result face, set flags in that face indicating that colors may not
dcf671d2
GM
504 be freed.
505
506 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
507 glyph, use the ASCII NUL character to determine the face.
508
d42122a3
DL
5092000-06-02 Dave Love <fx@gnu.org>
510
511 * sysdep.c: Conditionally include stdlib.h, unistd.h.
512 (VFORK_RETURN_TYPE): Remove.
427ec082 513
d42122a3
DL
514 * config.in: Add NO_MATHERR.
515
dd432f16
DL
5162000-06-01 Dave Love <fx@gnu.org>
517
90aa4ea8
DL
518 * cmds.c (internal_self_insert): Don't check
519 Vbefore_change_function, Vafter_change_function.
520
521 * insdel.c (signal_before_change, signal_after_change): Likewise.
522
523 * buffer.c (Vbefore_change_function, Vafter_change_function):
524 Variables and their initializations deleted.
525
2330c9d4
DL
526 * callint.c (Fcall_interactively): Doc fix.
527
dd432f16
DL
528 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
529
bf9e8804
DL
5302000-05-31 Dave Love <fx@gnu.org>
531
532 * textprop.c: Revert last change -- duplicated.
533
3694b4ab
GM
5342000-05-31 Gerd Moellmann <gerd@gnu.org>
535
536 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
537 in #if 0.
538
539 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
540
f14156cd
JR
5412000-05-31 Jason Rumney <jasonr@gnu.org>
542
8119aab8
JR
543 * search.c (Fre_search_forward, Fre_search_backward)
544 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
545
f14156cd
JR
546 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
547
4aab9be3
JR
5482000-05-30 Jason Rumney <jasonr@gnu.org>
549
550 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
551 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
552
553 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type
554 member.
555
556 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
557 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
558 expand a nil default_filename.
559
560 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
561 pointer to glyph_to_pixel_coords, not a frame.
562
563 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
564 coding.h to dependencies.
565
566 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
567
568 * w32console.c (glyph_to_pixel_coords): Change first parameter to
569 window pointer to be consistent with w32term.c and xterm.c.
570
571 * w32fns.c: Format and doc changes to bring closer to xfns.c.
572 (VIETNAMESE_CHARSET): Define if not defined in system headers.
573 (Qline_spacing, Qcenter): New variables.
574 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
575 (x_set_line_spacing): New function.
576 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT
577 macros.
578 (x_specified_cursor_type): New function.
579 (x_set_cursor_type): Use it.
580 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
581 and icon strings.
582 (validate_x_resource_name, x_get_resource_string): Measure lengths
583 of external strings in bytes.
584 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
585 GetTextExtentPoint32 with NULL title.
586 (Fx_create_frame): Initialize Qline_spacing.
587 (w32_load_system_font): Initialize font->double_byte_p.
588 (x_to_w32_charset): Use Vw32_charset_info_alist.
589 (Image, busy cursor, tooltip functions): Merged changes from
590 xfns.c. Not yet functional on Windows.
591
592 * w32gui.h (W32FontStruct): Add double_byte_p member.
593
594 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
595 (emacs_button_translation): Use it.
596 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
597 in `mask' to be set.
598
599 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
600 menu strings.
601
602 * w32term.c: Format and doc changes to bring closer to xterm.c.
603 (w32_char_font_type): New enum.
604 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
605 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
606 (w32_encode_char): New function.
607 (x_encode_char): Removed.
608 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
609 x_encode_char and w32_font_is_double_byte.
610 (x_produce_image_glyph): Use image_ascent.
611 (x_produce_glyphs): Use new version of w32_per_char_metric and
612 handle NULL return value. Allow extra line spacing.
613 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
614 (w32_get_glyph_overhangs): Remove unicode_p param. Use
615 w32_font_type member of glyph instead.
616 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
617 (fast_find_position): Make sure not to consider rows not visible
618 in the window.
619 (w32_read_socket) [WM_MENUSELECT]: Cannot call
620 w32_menu_display_help with input blocked, as it can abort.
621 (x_display_and_set_cursor): Choose cursor depending
622 on buffer-local value of cursor_type.
623 (x_draw_bar_cursor): Add parameter WIDTH.
624
625 * w32term.h (CP_DEFAULT): Define.
626 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
627
10fc3187
GM
6282000-05-30 Gerd Moellmann <gerd@gnu.org>
629
630 * search.c (Fre_search_forward, Fre_search_backward)
631 (Fposix_search_backward, Fposix_search_forward): Doc fix.
632
d0555360
KH
6332000-05-30 Kenichi Handa <handa@etl.go.jp>
634
635 * coding.c (detect_coding_iso2022): Fix code for checking
636 CODING_CATEGORY_MASK_ISO_8_2.
637
f1ad044f
SM
6382000-05-29 Stefan Monnier <monnier@cs.yale.edu>
639
640 * regex.c (PREFETCH_NOLIMIT): New function.
641 (re_match_2_internal): Use it and adjust the end_match_2 logic.
642
84ec3b4b
GM
6432000-05-29 Gerd Moellmann <gerd@gnu.org>
644
66254a13
GM
645 * syntax.c (find_defun_start): Move test for
646 open_paren_in_column_0_is_defun_start outside of the loop.
647
49e70dec
GM
648 * xdisp.c (redisplay_window): Really switch buffers when
649 displaying mode lines, and temporarily set selected_frame to the
650 frame of the window that's redisplayed.
651
84ec3b4b
GM
652 * xfaces.c (free_realized_faces): Block/unblock input.
653 (free_realized_multibyte_face): Ditto.
654
869a3a14
DL
6552000-05-29 Dave Love <fx@gnu.org>
656
657 * textprop.c (Qkeymap): New variable.
658 (syms_of_textprop): Intern it.
659
660 * keymap.c: Include intervals.h.
661 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
662
663 * Makefile.in (keymap.o): Depend on intervals.h.
664
665 * keyboard.c (menu_bar_items, tool_bar_items)
666 (Fexecute_extended_command): Deal with `keymap' property.
667 (read_key_sequence): Track map from `keymap' property as well as
668 `local_map'.
669
670 * intervals.c (get_local_map): Extra arg to allow looking for
671 `keymap' too.
672
673 * intervals.h (map_property): New enum.
674 (get_local_map): Extra arg using it.
675 (Qkeymap): Declare.
676
84ec3b4b 677 * lisp.h (get_local_map): Don't declare here.
869a3a14 678
89d0c844
KH
6792000-05-29 Kenichi Handa <handa@etl.go.jp>
680
681 * Makefile.in (callproc.o): Depend on composite.h.
682
683 * callproc.c: Include composite.h.
684 (Fcall_process): Handle composition correctly.
685
686 * coding.h (coding_allocate_composition_data): Extern it.
687 (coding_restore_composition): Likewise.
688
689 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
690 yet allocated, finish decoding with result
691 CODING_FINISH_INSUFFICIENT_CMP.
692 (coding_allocate_composition_data): Make it non-static.
693 (coding_restore_composition): Likewise.
694
797a084a
EZ
6952000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
696
697 * charset.c (syms_of_charset): Revert last change.
698
cf872af5
EZ
6992000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
700
701 * term.c (produce_glyphs): Treat characters from the eight-bit-*
702 charsets as unibyte, with 1-column screen width. Sent by Kenichi
703 Handa.
704
5b1ae051
EZ
7052000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
706
707 * charset.c (syms_of_charset): Set width of character sets
708 eight-bit-control and eight-bit-graphic to 1 column.
709
34ec9ebe
GM
7102000-05-26 Gerd Moellmann <gerd@gnu.org>
711
712 * config.in (HAVE_SPEED_T): New define.
713
714 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
715 `extern speed_t'.
716
dd854dc2
DL
7172000-05-26 Dave Love <fx@gnu.org>
718
719 * coding.c (shrink_decoding_region): Initialize eol_conversion.
720
721 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
722 (Fsubr_arity): New function.
723 (syms_of_data): Install them.
724
ba9f8f95
KH
7252000-05-26 Kenichi Handa <handa@etl.go.jp>
726
0f3e0672
KH
727 * charset.c (init_charset_once): Set the table bytes_by_char_head
728 correctly.
729
cebefb44
KH
730 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
731 the default fontset to what Emacs uses by default.
0f3e0672
KH
732 (check_registry_encoding): This function deleted.
733 (Fset_fontset_font): Remove the adhoc condition for the default
734 fontset. Allow cons in FONTNAME.
cebefb44 735
0f3e0672
KH
736 * fns.c (map_char_table): Ignore char-table entries for
737 charsets eight-bit-control and eight-bit-graphic.
ba9f8f95 738
7a18af49
KR
7392000-05-25 Ken Raeburn <raeburn@gnu.org>
740
741 * emacs.c (main): Initialize keyboard syms before initializing
742 window code, so face names are available.
743
d2af47df
SM
7442000-05-25 Stefan Monnier <monnier@cs.yale.edu>
745
746 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
747 of an anchor at the beginning of a shy-group.
748
fc6a6a4e
GM
7492000-05-25 Gerd Moellmann <gerd@gnu.org>
750
751 * xdisp.c (handle_invisible_prop): Don't try to skip over
752 invisible text if end of text is already reached.
753
005f0d35
DL
7542000-05-25 Dave Love <fx@gnu.org>
755
02513cdd
DL
756 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
757
005f0d35
DL
758 * coding.c (encode_eol): Add null statement after label.
759
89f6ca4e
EZ
7602000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
761
762 * w16select.c (Fw16_set_clipboard_data): Fix the change from
763 2000-05-20.
764
a4e1759e
KH
7652000-05-25 Kenichi Handa <handa@etl.go.jp>
766
767 * ccl.c (ccl_driver): Fix previous change.
768
eacfd7fe
KH
7692000-05-25 Kenichi Handa <handa@etl.go.jp>
770
46ab33a9
KH
771 * coding.c (run_pre_post_conversion_on_str): Set point to the
772 beginning of buffer before calling coding->post_read_conversion.
773 (decode_coding_string): Give correct args to
774 run_pre_post_conversion_on_str.
775 (encode_coding_string): Likewise.
776
eacfd7fe
KH
777 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
778 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
779 eight-bit-graphic correctly.
780
f8569325
DL
7812000-05-24 Kenichi HANDA <handa@etl.go.jp>
782
783 * fileio.c (Finsert_file_contents): Even if a file is not found,
784 execute codes for setting up coding system. Call
785 after-insert-file-functions unconditionally.
786
04545643
GM
7872000-05-24 Gerd Moellmann <gerd@gnu.org>
788
789 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
790 BSD_PGRPS are not defined.
791
747d90ea
KH
7922000-05-24 Kenichi Handa <handa@etl.go.jp>
793
794 * charset.c (update_charset_table): Accept nil in LONG_NAME and
795 DESCRIPTION.
796 (syms_of_charset): Avoid building same strings.
797
716e3b88
GM
7982000-05-23 Gerd Moellmann <gerd@gnu.org>
799
800 * lread.c (Fload): Add a comment about the meaning of
801 Vuser_init_file being t.
802
803 * puresize.h (BASE_PURESIZE): Increase to 675000.
804
805 * s/gnu-linux.h (setpgrp): Don't define it here because this
806 prevents compilation on GNU/Linux systems with glib 2.2.
807
808 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
809 as setpgid.
427ec082 810
9aeb39fa
EZ
8112000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
812
813 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
814 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
815 version.
816 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
817
29ced61b
KH
8182000-05-23 Kenichi Handa <handa@etl.go.jp>
819
0574a2ed
KH
820 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE
821 unconditionally.
822
3d80f24d
KH
823 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
824
825 * term.c (encode_terminal_code): Set coding->src_multibyte
826 properly.
827
29ced61b
KH
828 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
829
d7e00792
KH
8302000-05-22 Kenichi Handa <handa@etl.go.jp>
831
c9d80d38
KH
832 * keyboard.c (read_char): Allow character codes 128..255 to be
833 handled by input-method-function.
834
d7e00792
KH
835 * insdel.c (adjust_markers_for_replace): Fix previous change.
836 (adjust_after_replace): If PREV_TEXT is nil, call
837 adjust_markers_for_insert, not adjust_markers_for_replace.
838
087121cc 8392000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
427ec082 840
087121cc
GM
841 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
842 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
843 [HAVE_GRANDPT]: Define.
844 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
845
846 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
847 like SYSV_PTYS.
848
849 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
850
851 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
852
c9671f81
KH
8532000-05-20 Kenichi Handa <handa@etl.go.jp>
854
855 The following changes are to handle 8-bit characters in a
856 multibyte buffer/string without facing with byte combining
857 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
858 eight-bit-graphic (for 0xA0..0xFF) are introduced.
859
860 * Makefile.in (fns.o): Depend on charset.h.
861
862 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
863 convert it to unibyte.
864 (make_string): Use parse_str_as_multibyte, not chars_in_text.
865
866 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
867 apparent char boundary.
868 (Fset_buffer_multibyte): Convert 8-bit characters in the range
869 0x80..0x9F to/from multibyte form.
870
871 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
872 to unibyte.
873
874 * callproc.c (Fcall_process): Always encode an argument string if
875 it is multibyte. Setup src_multibyte and dst_multibyte members of
876 process_coding properly.
ce75fd23 877
c9671f81
KH
878 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
879 SPLIT_NON_ASCII_CHAR.
880
881 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
882 as is.
883 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
884
885 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New
886 variables.
887 (SPLIT_CHARACTER_SEQ): This macro deleted.
888 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is
889 valid.
890 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
891 and eight-bit-graphic.
892 (char_to_string): Likewise. Signal an error for too large
893 character code.
894 (char_printable_p): Return 0 for 8-bit characters.
895 (update_charset_table): Update iso_charset_table only when a final
896 character is non-negative.
897 (find_charset_in_text): Renamed from find_charset_in_str.
898 Arguments and return value changed. Callers changed.
899 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
900 be -1 if CHARSET is used only internally.
901 (Fmake_char_internal): Handle new charsets; eight-bit-control and
902 eight-bit-graphic.
903 (Fcharset_after): Simplified.
904 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
905 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
906 (multibyte_chars_in_text): Simplified by assuming there's no
907 invalid multibyte sequence.
908 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
909 str_as_unibyte): New functions.
910 (Fstring): Simpified by assuming that byte combining never
911 happens.
912 (init_charset_once): Initialization for
913 LEADING_CODE_8_BIT_CONTROL.
914 (syms_of_charset): Intern and staticpro Qeight_bit_control and
915 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
916 eight-bit-control and eight-bit-graphic.
917
918 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL,
919 CHARSET_8_BIT_GRAPHIC): New macros.
920 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
921 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
922 (CHARSET_REVERSE_CHARSET): Likewise.
923 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
924 eight-bit-graphic.
925 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
926 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
927 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
928 encounter an invalid multibyte sequence.
929 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
930 sequence is always valid.
931 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
932 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New
933 macros.
934 (CHAR_STRING): For 8-bit characters, call char_to_string.
935 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
936 multibyte sequence is always valid.
937 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
938 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
939 str_as_unibyte): Extern them.
940 (BCOPY_SHORT): Fix a bug.
941 (CHAR_LEN): This macro deleted. Callers changed to use
942 CHAR_BYTES.
943 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
944 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
945 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
946
bd4bde7f 947 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
c9671f81
KH
948 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
949 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
950 EMIT_BYTES): New macros.
951 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
952 DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
953 macros deleted.
954 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
955 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
956 check the validity of multibyte sequence.
957 (decode_coding_emacs_mule): New function.
958 (encode_coding_emacs_mule): New macro.
959 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
960 the source.
961 (DECODE_ISO_CHARACTER): Just return a character code.
962 (DECODE_COMPOSITION_START): Set coding->result instead of result.
963 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
964 EMIT_CHAR to produced decoded characters. Exit the loop only by
965 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
966 block here.
967 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
968 only position codes for an invalid character.
969 (encode_designation_at_bol): Return new destination pointer. 5th
970 arg DSTP is changed to DST.
971 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
972 from the source by ONE_MORE_CHAR. Don't handle the case of last
973 block here.
974 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
975 macros deleted.
976 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
977 detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
978 TWO_MORE_BYTES to fetch a byte from the source.
979 (encode_eol): Pay attention to coding->src_multibyte.
980 (detect_coding, detect_eol): Preserve members src_multibyte and
981 dst_multibyte.
982 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
983 (encoding_buffer_size): Set magnification to 3 for all coding
984 systems that require encoding.
985 (ccl_coding_driver): For decoding, be sure that the result is
986 valid multibyte sequence.
987 (decode_coding): Initialize coding->errors and coding->result.
988 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
989 and raw-text, always call decode_eol. Handle the case of last
990 block here. If not coding->dst_multibyte, convert the resulting
991 sequence to unibyte.
992 (encode_coding): Initialize coding->errors and coding->result.
993 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
994 and raw-text, always call encode_eol. Handle the case of last
995 block here.
996 (shrink_decoding_region, shrink_encoding_region): Detect cases
997 that we can't skip data more rigidly.
998 (code_convert_region): Setup src_multibyte and dst_multibyte
999 members of coding. For decoding, if the buffer is multibyte,
1000 convert the source sequence to unibyte in advance. For encoding,
1001 if the buffer is multibyte, convert the resulting sequence to
1002 multibyte afterward.
1003 (run_pre_post_conversion_on_str): New function.
1004 (code_convert_string): Deleted and divided into the following two.
1005 (decode_coding_string, encode_coding_string): New functions.
1006 (code_convert_string1, code_convert_string_norecord): Call one of
1007 above.
1008 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
1009 MAKE_NON_ASCII_CHAR.
1010 (Fset_terminal_coding_system_internal,
1011 Fset_safe_terminal_coding_system_internal): Setup src_multibyte
1012 and dst_multibyte members.
1013 (init_coding_once): Initialize iso_code_class with new enum
1014 ISO_control_0 and ISO_control_1.
1015
1016 * coding.h (enum iso_code_class_type): Member ISO_control_code is
1017 devided into ISO_control_0 and ISO_control_1.
1018 (struct coding_system): New members src_multibyte, dst_multibyte,
1019 errors, and result. Delete member fake_multibyte.
1020 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
1021 nonzero.
1022 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
1023 nonzero.
1024
1025 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
1026 (Faset): Likewise.
1027
1028 * editfns.c (Fformat): Be sure to convert 8-bit characters to
1029 multibyte form.
1030 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
1031 combining occurs.
1032 (Ftranspose_region): Delete codes for handling byte combining.
1033
1034 * fileio.c (Finsert_file_contents): Setup src_multibyte and
1035 dst_multibyte members of coding. On handling REPLACE on unibyte
1036 buffer, convert the result of decode_coding to unibyte. On
1037 inserting into a mutibyte buffer, always call code_convert_region.
bd4bde7f 1038 (e_write): Setup coding->src_multibyte according to the
c9671f81
KH
1039 multibyteness of the source (buffer or string).
1040
1041 * fns.c (concat): Handle 8-bit characters correctly.
1042 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
1043 unibyte in the result.
1044 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
1045 valid multibyte form in the result.
1046 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
1047 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
1048 return -1, signal an error.
1049 (base64_encode_1): New arg MULTIBYTE. Get each character by
1050 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
1051 character is found, return -1.
1052 (Fbase64_decode_region): Delete codes for handling byte-combining.
1053 Treat each decoded byte as a unibyte character.
1054 (Fbase64_decode_string): Return unibyte string.
1055 (Fcompare_strings, concat, string_byte_to_char): Use
1056 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
1057 FETCH_STRING_CHAR_ADVANCE.
1058 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
1059 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
1060
1061 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
1062 SPLIT_NON_ASCII_CHAR.
1063 (fontset_ref_via_base, fontset_set): Likewise
1064
1065 * insdel.c (adjust_markers_for_record_delete): Deleted.
1066 (adjust_markers_for_insert): Argument changed. Caller changed.
1067 (adjust_markers_for_replace): Likewise.
1068 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error,
1069 CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
1070 (copy_text): Delete unused local varialbe c_save. For converting
1071 to multibyte, be sure to make all 8-bit characters in valid
1072 multibyte form.
1073 (count_size_as_multibyte): Handle 8-bit characters correctly.
1074 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
1075 adjust_after_replace, replace_range, del_range_2)
1076 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
1077 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
1078 adjust_after_replace, replace_range, del_range_2) Delete codes for
1079 handling byte combining.
1080 (adjust_before_replace): Deleted.
427ec082 1081
c9671f81
KH
1082 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
1083 SPLIT_NON_ASCII_CHAR.
1084 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
1085 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE
1086 unconditionally.
1087 (Fkey_description): Likewise.
1088
1089 * lread.c (read1): On reading multibyte string, be sure to make
1090 all 8-bit chararacters in valid multibyte form.
1091 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
1092
1093 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
1094 unconditionally.
1095
1096 * process.c (Fstart_process): GCPRO current_dir before calling
1097 Ffind_operation_coding_system. Encode arguments here.
1098 (create_process): Don't encode arguments here. Setup
1099 src_multibyte and dst_multibyte members of struct coding.
1100 (read_process_output): Setup src_multibyte and dst_multibyte
1101 members of struct coding. If the output is to multibyte buffer,
1102 always decode the output of the process. Adjust the
1103 representation of 8-bit characters to the multibyteness of the
1104 output.
1105 (send_process): Setup coding->src_multibyte according to the
1106 multibyteness of the source.
1107
1108 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE
1109 unconditionally.
1110 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
1111 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
1112
1113 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of
1114 CHAR_LEN.
1115
1116 * w16select.c (Fw16_set_clipboard_data): Setup members
1117 src_multibyte and dst_multibyte of coding. Adjusted for the
1118 change for find_charset_in_str.
1119 (Fw16_get_clipboard_data): Likewise.
1120
1121 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
1122 dst_multibyte of coding.
1123 (x_to_w32_font): Likewise.
1124
1125 * w32select.c (Fw32_set_clipboard_data): Setup members
1126 src_multibyte and dst_multibyte of coding. Adjusted for the
1127 change for find_charset_in_str.
1128 (Fw32_get_clipboard_data): Likewise.
1129
1130 * xdisp.c (get_next_display_element): Handle 8-bit characters
1131 correctly.
1132 (next_element_from_display_vector): Use CHAR_BYTES instead of
1133 CHAR_LEN.
1134 (disp_char_vector): Use SPLIT_CHAR instead of
1135 SPLIT_NON_ASCII_CHAR.
1136
1137 * xselect.c (selection_data_to_lisp_data): Setup members
1138 src_multibyte and dst_multibyte of coding. Adjusted for the
1139 change for find_charset_in_str.
1140 (lisp_data_to_selection_data): Likewise.
1141
5f64c9e0
GM
11422000-05-19 Gerd Moellmann <gerd@gnu.org>
1143
2b63d473
GM
1144 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed
1145 buffer.
1146
5f64c9e0
GM
1147 * dispextern.h (Vimage_types): Add extern declaration.
1148
1149 * xdisp.c (Vimage_types): Moved here from xfns.c.
1150 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
1151
1152 * xfns.c (Vimages_types): Moved to xdisp.c.
1153 (syms_of_xfns): Move `image-types' to xdisp.c.
1154
1155 * w32fns.c (Vimage_types): Removed.
1156 (syms_of_w32fns): Remove `image-types'.
1157
813086ea
KH
11582000-05-18 Kenichi Handa <handa@etl.go.jp>
1159
1160 * fns.c (map_char_table): Pay attention to character number of
1161 charset. Check the validity of charset at the first level. For
1162 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
1163 the default value.
1164
1165 * fontset.c: Include "buffer.h".
1166 (fs_load_font): If the face has fontset, record the face ID in
1167 that fontset.
1168 (Finternal_char_font): New function.
1169 (accumulate_font_info): New function.
1170 (Ffontset_info): Rewritten for the new fontset implementation.
1171 (syms_of_fontset): Register Vdefault_fontset in the first element
1172 of Vfontset_table. Include Vdefault_fontset in
1173 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
1174 function.
1175
bdaebbf0
DL
11762000-05-16 Dave Love <fx@gnu.org>
1177
1178 * m/iris5d.h: Deleted -- unused.
1179
cb613bb8
GM
11802000-05-16 Gerd Moellmann <gerd@gnu.org>
1181
b15f3b77
GM
1182 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
1183 `invalid' instead of `illegal'.
1184
1185 * indent.c (Fmove_to_column): When ending within a tab, insert
1186 spaces first so that markers at the end of the tab get adjusted.
1187
835c1b36
GM
1188 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
1189 buffer list that wasn't selected in that frame.
1190
cb613bb8
GM
1191 * filelock.c (get_boot_time): To obtain an 8 char file name, which
1192 is needed on mescaline, use a 2 char prefix, and call
1193 make_temp_name with second arg non-zero.
1194
1195 * fileio.c (make_temp_name): New function, extracted from
1196 Fmake_temp_name.
1197 (Fmake_temp_name): Use it.
1198
f685bea9
EZ
11992000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
1200
1201 * window.c (coordinates_in_window): Subtract 1 when computing
1202 right_x.
1203
a1b8d58b
GM
12042000-05-15 Gerd Moellmann <gerd@gnu.org>
1205
1206 * Makefile.in (lisp): Add env.elc.
1207
1208 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
1209
a265079f
GM
12102000-05-12 Gerd Moellmann <gerd@gnu.org>
1211
1212 * search.c (Freplace_match): Handle case of `\N' in the
1213 replacement when there's no group N.
1214
da4496b6
GM
12152000-05-11 Gerd Moellmann <gerd@gnu.org>
1216
0ace421a
GM
1217 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
1218 of the message to message_dolog.
1219
1172eb8d
GM
1220 * keyboard.c (read_char): Don't clear current message for help
1221 events; let the code handling help events handle this. Change
1222 code detecting help events that should be ignored.
1223
da4496b6
GM
1224 * xdisp.c (handle_single_display_prop): Don't try to set PT if
1225 we're interating over a string.
1226
0623e40f
DL
12272000-05-09 Dave Love <fx@gnu.org>
1228
1229 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
1230 that offset before writing. Move gcpro region past call of
1231 Ffile_regular_p.
1232
bae2503b
DL
12332000-05-04 Dave Love <fx@gnu.org>
1234
1235 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
1236
ec82fb2f
GM
12372000-05-04 Gerd Moellmann <gerd@gnu.org>
1238
1239 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
1240 of inserted characters when BUF equals the current buffer, and PT
1241 is in front of or equal to FROM.
1242
cbf18892
GM
12432000-05-03 Gerd Moellmann <gerd@gnu.org>
1244
4ff40dd0
GM
1245 * xdisp.c (handle_single_display_prop): If display property value
1246 is invalid, or something not supported on the frame, restore
1247 iterator's position to what it was initially. Make sure to return
1248 0 for invalid and unsupported property values.
1249
cbf18892
GM
1250 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
1251 that x_per_char_metric returns null.
1252
1b0672c3
GM
12532000-05-02 Gerd Moellmann <gerd@gnu.org>
1254
576da55d
GM
1255 * xterm.h (struct face): Add forward declaration.
1256 (struct image): Ditto.
1257 (image_ascent): Add prototype.
1258
1259 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
1260 (x_draw_image_relief, x_draw_image_foreground_1): Call function
1261 image_ascent instead of using IMAGE_ASCENT.
1262
1263 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
1264 (IMAGE_ASCENT): Removed.
1265
1266 * xfns.c (Qcenter): New variable.
1267 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
1268 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
1269 (image_ascent): New function.
1270 (lookup_image): Recognize `:ascent center'.
1271 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
1272 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
1273 (xbm_load): Don't set image's ascent here.
1274 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
1275 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
1276 check ascent values here.
1277 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
1278 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
1279 (syms_of_xfns): Initialize Qcenter.
1280
1b0672c3
GM
1281 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
1282 to the limits, increase the limits.
1283
0d7811ed
KH
12842000-05-01 Kenichi Handa <handa@etl.go.jp>
1285
1286 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
1287 Check Vfont_encoding_alist against the full name of the opened
1288 font.
1289
a943a5ca
GM
12902000-04-28 Gerd Moellmann <gerd@gnu.org>
1291
1292 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
1293 taller than the window.
1294
5dba1e29
KH
12952000-04-28 Kenichi Handa <handa@etl.go.jp>
1296
1297 * xfaces.c (realize_x_face): Fix the argument of the second
1298 xassert. BASE_FACE may not be a face for ASCII.
1299
353964e3
GM
13002000-04-27 Gerd Moellmann <gerd@gnu.org>
1301
c76e04a8
GM
1302 * print.c (print_object): Treat print-length < 0 as nil.
1303
1304 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
1305
1306 * s/freebsd.h (TERMCAP_OBJ): Removed.
1307 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
1308
1309 * lread.c (read1): Don't treat period followed by certain
1310 characters as symbol start.
1311
1312 * xfns.c (slurp_file): New function.
1313 (xbm_image_p): Handle case of in-memory XBM files.
1314 (xbm_scan): Rewritten to work on memory buffers instead of files.
1315 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
1316 Work on memory buffers instead of files. If DATA is null test
1317 if buffer looks like an in-memory XBM file.
1318 (xbm_load_image): Renamed from xbm_load_image_file. Work on
1319 memory buffers instead of files.
1320 (xbm_file_p): New function.
1321 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
1322
353964e3
GM
1323 * lread.c (end_of_file_error): New function.
1324 (read1): Call it instead of signaling `end-of-file' directly.
1325
427ec082 1326 * print.c (print_error_message): Print data of `end-of-file'
353964e3
GM
1327 with Fprinc instead of Fprin1.
1328
24d744ac
KR
13292000-04-26 Ken Raeburn <raeburn@gnu.org>
1330
1331 * window.c (freeze_window_start): Check that minibuffer scroll
1332 window isn't nil before extracting the window structure pointer
1333 from it.
1334
1335 * undo.c (record_delete): If we hit the end of the undo list, stop
1336 picking elements apart.
1337
7464346d
GM
13382000-04-26 Gerd Moellmann <gerd@gnu.org>
1339
1340 * xdisp.c (display_line): If lines are continued, restore
1341 iterator's ascent/descent information to the values before the
1342 first glyph not fitting on the line.
1343
612839b6
GM
13442000-04-25 Gerd Moellmann <gerd@gnu.org>
1345
1346 * xdisp.c (try_window_id) <all changes above window start>: Adjust
1347 positions in glyph matrix. Don't compute new window end
1348 positions.
1349
1350 * dispnew.c (increment_matrix_positions): Renamed from
1351 increment_glyph_matrix_buffer_positions.
1352 (increment_row_positions): Renamed from
1353 increment_glyph_row_buffer_positions.
1354
1355 * dispextern.h: Change names of renamed functions from dispnew.c
1356 in prototypes.
1357
cc181e95
GM
13582000-04-24 Gerd Moellmann <gerd@gnu.org>
1359
abfcc168
GM
1360 * fileio.c (Fdo_auto_save): Create directories for auto-save
1361 list file if necessary.
1362
cc181e95
GM
1363 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
1364 from buffer or frame.
1365 (automatic_hscrolling_p): New variable.
1366 (hscroll_windows): Scroll windows horizontally only if automatic
1367 hscrolling is allowed.
1368 (syms_of_xdisp): New variable `automatic-hscrolling'.
1369
1370 * frame.h (struct frame): Add member extra_line_spacing.
1371
1372 * xfns.c (x_set_line_spacing): New function.
1373 (Fx_create_frame): Set line spacing from resources.
1374 (Qline_spacing): New variable.
1375 (syms_of_xfns): Initialize Qline_spacing.
427ec082 1376
cc181e95
GM
1377 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
1378
1379 * buffer.c (init_buffer_once): Handle extra_line_spacing.
1380 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
abfcc168 1381 (reset_buffer): Don't initialize extra2 and extra3. Initialize
cc181e95
GM
1382 extra_line_spacing from default value.
1383 (init_buffer_once): Initialize default value of extra_line_spacing.
1384
1385 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
1386 and extra3.
1387
1388 * xterm.c (x_produce_glyphs): Remove reference to struct it's
1389 prompt_width. Add extra line spacing.
1390
1391 * term.c (produce_glyphs): Remove reference to struct it's
1392 prompt_width.
1393
1394 * dispextern.h (struct it): Remove member prompt_width, add
1395 extra_line_spacing.
1396
58827478
GM
13972000-04-22 Gerd Moellmann <gerd@gnu.org>
1398
1399 * dispnew.c (update_frame_line): When writing a whole line, make
1400 sure cursor is in the right row afterwards, otherwise a use of
1401 capability `ch' in cmgoto might leave the cursor in the row below.
1402
25a87f42
GM
14032000-04-21 Gerd Moellmann <gerd@gnu.org>
1404
1405 * lisp.h (struct Lisp_Buffer_Cons): Remove.
1406
1407 * keyboard.c (timer_check): Fix typo in comment.
1408
54edf5c2
KH
14092000-04-21 Kenichi Handa <handa@etl.go.jp>
1410
1411 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
1412 name change: ch -> character.
1413
3a64eef5
GM
14142000-04-20 Gerd Moellmann <gerd@gnu.org>
1415
1416 * keyboard.c (echo_message_buffer): New variable.
1417 (echo_now): Set echo_message_buffer to the echo area buffer used
1418 to display the echo.
1419 (cancel_echoing): Reset echo_message_buffer to nil.
1420 (read_char): Code rewritten that handles canceling an echo or
1421 echoing a dash, respectively.
1422
1423 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
1424 directory doesn't exist.
1425
6142fdcb
DL
14262000-04-19 Dave Love <fx@gnu.org>
1427
1428 * fns.c (syms_of_fns): Defsubr mapc.
a9cacab7
DL
1429 (concat): Don't allow numeric args.
1430 (Fconcat): Doc change.
6142fdcb 1431
ac6b5352
SM
14322000-04-19 Stefan Monnier <monnier@cs.yale.edu>
1433
1434 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
1435 instead define end_match(1|2) more carefully.
1436 Use GET_CHAR_BEFORE_2 for `begline'.
1437
cb9215e4
GM
14382000-04-19 Gerd Moellmann <gerd@gnu.org>
1439
5e3dac3f
GM
1440 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
1441 on 64-bit systems where NULL is defined as `0'.
1442
1443 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
1444 the `variable argument list' to make it work on Alpha.
1445
cb9215e4
GM
1446 * m/alpha.h (_LP64) [!_LP64]: Define.
1447 (ORDINARY_LINK): Define for NetBSD.
1448
1449 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
427ec082 1450
f532dca0
DL
14512000-04-19 Dave Love <fx@gnu.org>
1452
c750667e
DL
1453 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
1454 change.
1455
1456 * Makefile.in (LIBS): Don't use.
1457 (GETLOADAVG_OBJ): Define again.
1458 (otherobj): Add GETLOADAVG_OBJ.
1459
f532dca0
DL
1460 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
1461
1c7e22fd
GM
14622000-04-18 Gerd Moellmann <gerd@gnu.org>
1463
f6d3257b
GM
1464 * lread.c (read_filtered_event): Cancel and start busy cursor.
1465
427ec082 1466 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
1c7e22fd
GM
1467 that the per-character metrics may be null.
1468
e10f64e7
GM
14692000-04-17 Gerd Moellmann <gerd@gnu.org>
1470
0daee095
GM
1471 * buffer.c (clone_per_buffer_values): New function.
1472 (Fmake_indirect_buffer): Add optional argument CLONE. Call
1473 clone_per_buffer_values if CLONE is not nil.
1474
e10f64e7
GM
1475 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
1476
38687d43
DL
14772000-04-16 Dave Love <fx@gnu.org>
1478
1479 * Makefile.in: Remove obsolete localcpp stuff.
1480 (GETLOADAVG_OBJ): Don't define.
1481 (obj): Move LIBOBJS...
1482 (otherobj): ... to here.
1483 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
1484 whitespace-only lines after the continuation (Irix).
1485
c21c7262
GM
14862000-04-14 Gerd Moellmann <gerd@gnu.org>
1487
1488 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
1489
1490 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
1491
314767c0
DL
14922000-04-14 Dave Love <fx@gnu.org>
1493
1494 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
1495 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
1496 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
1497 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
1498 NLIST_STRUCT.
1499
1500 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
1501 autoconfiscated HAVE_GETLOADAVG.
1502
1503 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
1504 BROKEN_MKTIME.
1505
a2522dca
GM
15062000-04-14 Gerd Moellmann <gerd@gnu.org>
1507
1508 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
1509 (fill_in_lock_file_name): Avoid existing files that aren't
1510 links.
1511
33744b5d
DL
15122000-04-14 Dave Love <fx@gnu.org>
1513
c21c7262 1514 * Makefile.in (LIBS, LIBOBJS): New variable.
33744b5d
DL
1515 (INTERVAL_SRC): Convert to make variable.
1516 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
1517 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
1518 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
1519 add LIBOBJS.
1520 (SOME_MACHINE_OBJECTS): Remove interval stuff.
1521 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
1522 (shortlisp): Add facemenu, float-sup, frame.
1523 (SOME_MACHINE_LISP): Remove them from here.
1524 (LIBES): Change unused LDLIBS to autoconf LIBS.
1525
1526 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
1527
9d3d5916
KH
15282000-04-14 Kenichi Handa <handa@etl.go.jp>
1529
1530 * composite.c (update_compositions): If FROM and TO are not in a
1531 valid range, do nothing.
1532
198e3c7a
GM
15332000-04-13 Gerd Moellmann <gerd@gnu.org>
1534
1535 * tparam.c (tparam1): Abort when encountering an unknown
1536 `%'-specifier.
1537
1538 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as
1539 terminfo.o.
1540
1541 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
1542 as TERMCAP_OBJ.
1543
055a28c9
EZ
15442000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
1545
1546 * fileio.c (a_write): Remove redundant semi-colons.
1547 (e_write): Return -1 if failed to write all the data.
1548 This fixes the changes made at 1999-12-15.
1549
f5c75033
DL
15502000-04-12 Dave Love <fx@gnu.org>
1551
1552 * fns.c (mapcar1): Test for null vals to support mapc.
1553 (Fmapc): New function.
1554
0c3cfc51
EZ
15552000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
1556
1557 * msdos.c (NUM_MOUSE_BUTTONS): Define.
1558 (IT_frame_up_to_date): Support the buffer local value of
1559 cursor-type, if defined.
1560
33465a31
DL
15612000-04-10 Dave Love <fx@gnu.org>
1562
1563 * editfns.c (preceding-char, following-char): Doc fix.
1564
6ed56568
KR
15652000-04-10 Ken Raeburn <raeburn@gnu.org>
1566
1567 * Makefile.in (temacs): Revert 2000-03-12 change.
1568
7cf80d4e
JR
15692000-04-10 Jason Rumney <jasonr@gnu.org>
1570
1571 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
1572
34f3f342
GM
15732000-04-10 Gerd Moellmann <gerd@gnu.org>
1574
1a1b1895
GM
1575 * xdisp.c (setup_echo_area_for_printing): Choose an echo
1576 area buffer, if it's not set up yet.
1577
34f3f342
GM
1578 * indent.c (compute_motion): Set immediate_quit.
1579
be0dbdab
GM
15802000-04-09 Gerd Moellmann <gerd@gnu.org>
1581
c45be9ac
GM
1582 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New
1583 variable.
1584 (realize_tty_face): Suppress boldness if colors are the inverse of
1585 the default colors, and tty_suppress_bold_inverse_default_colors_p
1586 is set.
1587 (Ftty_suppress_bold_inverse_default_colors): New function.
1588 (syms_of_xfaces): Defsubr it.
1589
be0dbdab
GM
1590 * buffer.c (Frestore_buffer_modified_p): New function.
1591 (syms_of_buffer): Defsubr it.
1592
e8413c3b
KR
15932000-04-08 Ken Raeburn <raeburn@gnu.org>
1594
87f67317
KR
1595 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
1596 charset id (int) argument, not a charset (Lisp_Object).
1597
e8413c3b
KR
1598 * coding.h (code_convert_string): Declare.
1599 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
1600 object, as the fourth argument to code_convert_string.
1601
1602 * fontset.c (make_fontset_for_ascii_face): Use XINT on return
1603 value.
1604 (Fset_fontset_font): Use EQ to compare lisp objects.
1605
7c752c80
KR
16062000-04-05 Ken Raeburn <raeburn@gnu.org>
1607
c0333abc
KR
1608 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
1609 a pointer that looks like a lisp object.
1610 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
1611 zero, instead see whether it's an integer object, since they can't
1612 have intervals.
1613 (GET_INTERVAL_OBJECT): Simply assign to the destination.
1614
7c752c80
KR
1615 * dispnew.c (allocate_matrices_for_frame_redisplay,
1616 direct_output_forward_char): Use X(U)INT and make_number as needed
1617 to convert between (unsigned) int values and lisp integers.
1618 * keyboard.c (read_key_sequence): Likewise.
1619 * lread.c (substitute_object_recurse): Likewise.
1620 * fns.c (concat, hash_lookup, hash_remove): Likewise.
1621 * minibuf.c (do_completion, Fminibuffer_complete_word,
1622 Fminibuffer_completion_help): Likewise.
1623 * term.c (produce_special_glyphs): Likewise.
1624
1625 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
1626 * print.c (print_preprocess, print_object): Likewise.
1627
1628 * search.c (compile_pattern): Use NILP when checking for nil.
1629
74e49b38
KR
1630 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
1631 __OPTIMIZE__]: Provide a GNU C macro version that handles
1632 lisp-object unions.
1633 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
1634 field, to better cope with ENABLE_CHECKING and calls that modify a
1635 Lisp_Object using its old value.
1636
685e5ed2
GM
16372000-04-04 Gerd Moellmann <gerd@gnu.org>
1638
c407c570
GM
1639 * window.c (compare_window_configurations): Signal an error
1640 if parameters C1 or C2 aren't window configurations.
1641
685e5ed2
GM
1642 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
1643 AFTER_POTENTIAL_GC calls around calls to functions that can
1644 signal an error and thus invoke the debugger.
1645
587a49ab
GM
16462000-04-03 Gerd Moellmann <gerd@gnu.org>
1647
62f20204
GM
1648 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
1649 an error if decoding fails.
1650
587a49ab
GM
1651 * keyboard.c (lispy_mouse_names): Variable removed.
1652 (Vlispy_mouse_stem): New variable.
1653 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
1654 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
1655 for any mouse button number. Increase size of mouse_syms and
1656 button_down_location as needed. Call modify_event_symbol with
1657 different arguments.
1658 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
1659 Call modify_event_symbol with different arguments.
1660 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
1661 for any button number. Call modify_event_symbol with different
1662 arguments.
1663 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
1664 Accept a string for NAME_ALIST_OR_STEM.
1665
1666 * lisp.h (larger_vector): Add prototype.
1667
1668 * fns.c (larger_vector): Make externally visible.
1669
1670 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
1671
2d1675e4
SM
16722000-04-02 Stefan Monnier <monnier@cs.yale.edu>
1673
1674 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
1675 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
1676 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
1677 we are between str1 and str2.
1678 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
1679 (PATFETCH): Use `TRANSLATE'.
1680 (PATFETCH_RAW): Fetch multibyte char if applicable.
1681 (PATUNFETCH): Remove.
1682 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
1683 When writing a char, write it directly into the pattern buffer rather
1684 than going needlessly through a temp char-array.
1685 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
1686 multibyte magic and remove the useless `#ifdef emacs'.
1687 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
1688 buffer.
1689
1690 * regex.h (struct re_pattern_buffer): Make field `multibyte'
1691 conditional on `emacs'.
1692
1693 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
1694
cc2d8c6b
KR
16952000-04-01 Ken Raeburn <raeburn@gnu.org>
1696
1697 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
1698 non-union-type versions of XMARK and friends here, because XMARK
1699 and friends won't work on an integer field if NO_UNION_TYPE is not
1700 defined.
1701 (make_number): Define as a function if it's not defined as a
1702 macro.
1703
09654086
KR
1704 * composite.c (run_composite_function): Use NILP when checking for
1705 nil.
1706 (syms_of_composite): Delete local var NARGS, pass an int as first
1707 argument to Fmake_hash_table.
1708
2387b382
KR
1709 * editfns.c (text_property_stickiness): Use NILP to test
1710 Lisp_Object boolean value.
1711 (Fmessage_or_box): Don't use NILP to test int variable.
c01fbf95
KR
1712 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
1713 problems reading from and changing the same lisp value in an
1714 XSETSTRING call.
1715
27660e89
GM
17162000-04-01 Gerd Moellmann <gerd@gnu.org>
1717
1718 * term.c (TN_no_color_video): New variable.
1719 (term_init): Intitialize TN_no_color_video.
1720 (enum no_color_bit): New enumeration.
1721 (MAY_USE_WITH_COLORS_P): New macro.
1722 (turn_on_face): Use it to determine if attributes may be used
1723 combined with colors.
1724
3578db3c
KR
17252000-04-01 Ken Raeburn <raeburn@gnu.org>
1726
1727 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
1728 with int lvalues via casts; instead, just yield lisp object
1729 lvalues.
1730 (enlarge_window): Variable sizep now points to Lisp_Object. Use
1731 proper accessor macros.
1732 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
1733 (grow_mini_window): Fix typo getting int value of root->height.
1734
6fc556fd
KR
1735 * xdisp.c (compute_string_pos): Fix order of arguments to
1736 string_pos_nchars_ahead.
1737 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
1738 count arg to variable-arg routines like Frun_hook_with_args and
1739 Fformat.
587a49ab
GM
1740 (back_to_previous_visible_line_start)
1741 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
6fc556fd
KR
1742 fixed-arg routines like Fget_char_property and Fmake_string.
1743 (reconsider_clip_changes): Use XINT when comparing integer lisp
1744 objects, or passing them as int arguments.
587a49ab
GM
1745 (mark_window_display_accurate, insert_left_trunc_glyphs)
1746 (append_space, extend_face_to_end_of_line): Use make_number when
6fc556fd
KR
1747 storing or passing integer values as lisp objects.
1748 (set_cursor_from_row, highlight_trailing_whitespace): Use
1749 INTEGERP, not implicit test against zero, for glyph object.
1750 (try_window_id): Don't use make_number when we want an int value.
1751
1752 * xfaces.c (xlfd_symbolic_value): Make last argument a
1753 Lisp_Object, to be consistent with callers.
1754 (Fbitmap_spec_p): Use XINT to get numeric value of height.
1755 (lface_hash): Apply XFASTINT to lisp values before folding in.
1756
1757 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
1758 fill in window width and height. Pass an int, not a lisp object,
1759 as first arg to Finsert.
1760
6e7b2457
GM
17612000-04-01 Gerd Moellmann <gerd@gnu.org>
1762
610d841e
GM
1763 * xfaces.c (realize_basic_faces): Block input while realizing
1764 the faces.
1765
6e7b2457
GM
1766 * keyboard.c (lispy_mouse_names): Add additional mouse names.
1767
1768 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
1769
aa110c0c
GM
17702000-03-31 Gerd Moellmann <gerd@gnu.org>
1771
1772 * xterm.c (x_produce_glyphs): When displaying unibyte text
610d841e 1773 or ASCII, handle case that per-char metric is null.
aa110c0c 1774
8801a864
KR
17752000-03-30 Ken Raeburn <raeburn@gnu.org>
1776
c6129d7e
KR
1777 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
1778
8801a864
KR
1779 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW,
1780 XSUBR, XBUFFER): Verify correct object type before returning
1781 pointer, using eassert.
1782 * frame.h (XFRAME): Likewise.
1783
1784 * buffer.c (Frename_buffer, Fset_buffer_multibyte,
1785 swap_out_buffer_local_variables, Fmove_overlay): Don't apply
1786 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong
1787 type.
1788 * data.c (set_internal): Likewise.
1789 * dispextern.h (WINDOW_WANTS_MODELINE_P,
1790 WINDOW_WANTS_HEADER_LINE_P): Likewise.
1791 * fileio.c (auto_save_1): Likewise.
1792 * insdel.c (check_markers): Likewise.
1793 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
1794 * undo.c (record_insert): Likewise.
1795 * vmsproc.c (child_sig): Likewise.
1796 * window.c (unshow_buffer, window_loop): Likewise.
1797 * xterm.c (x_erase_phys_cursor): Likewise.
1798
8e7af858
GM
17992000-03-30 Gerd Moellmann <gerd@gnu.org>
1800
1801 * xfns.c (free_image_cache): Free the cache structure itself
1802 last, after all its members have been freed.
1803
1804 * lisp.h (xstrdup): Add prototype.
1805
1806 * alloc.c (xstrdup): Moved here from xfaces.c.
1807 (allocating_for_lisp): Variable removed.
1808 (lisp_malloc): Block input around the calls to malloc and
1809 mem_insert.
1810
1811 * xfaces.c (realize_tty_face): Use find_symbol_value instead
1812 of Fsymbol_value.
1813 (xstrdup): Moved to alloc.c.
1814
e0b8c689
KR
18152000-03-29 Ken Raeburn <raeburn@gnu.org>
1816
b96f9fb7
KR
1817 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
1818
1819 * emacs.c (main): Fix sense of no-loadup test.
1820
e0b8c689
KR
1821 * config.in (ENABLE_CHECKING): Undef.
1822
1823 * lisp.h (struct interval): Replace "parent" field with a union of
1824 interval pointer and Lisp_Object; add new bitfield to use as
1825 discriminant. Change other flag fields to bitfields.
1826 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
1827 is defined and the supplied test fails, print a message and
1828 abort.
1829 (eassert): New macro. Use CHECK to provide an assert-like
1830 facility.
1831
1832 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
1833 pointers; abort if the value looks like a lisp object.
1834 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT,
1835 SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
1836 Modify for new interval parent definition.
1837
1838 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE,
1839 UNMARK_BALANCE_INTERVALS): Update references that need an
1840 addressable lisp object in the interval structure.
1841 (die): New function.
1842 (suppress_checking): New variable.
1843
1844 * intervals.c (interval_start_pos): Just return 0 if there's no
1845 parent object.
1846
f83c5440
GM
18472000-03-29 Gerd Moellmann <gerd@gnu.org>
1848
1849 * lread.c (read1): Accept `.' (period) as symbol start like in CL
1850 and earlier Emacs versions.
1851
1852 * keyboard.c (Ftop_level): Cancel busy-cursor.
1853
1854 * eval.c (call_debugger): Cancel busy-cursor.
1855
fdce64ff
KH
18562000-03-29 Kenichi Handa <handa@etl.go.jp>
1857
1858 * search.c (Freplace_match): Adjust multibyteness of the current
1859 buffer and NEWTEXT. Free allocated memory before signaling an
1860 error.
1861
f6a3f532
SM
18622000-03-28 Stefan Monnier <monnier@cs.yale.edu>
1863
1864 * regex.c (analyse_first): New function obtained by ripping out most
1865 of re_compile_fastmap and generalizing it a little bit so that it
1866 can also just return whether a given (sub)pattern can match the empty
1867 string or not.
1868 (regex_compile): Use `analyse_first' to decide whether the loop-check
1869 needs to be done or not for *, +, *? and +? (the loop check is costly
1870 for non-greedy repetition).
1871 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
1872
e9b309ac
DL
18732000-03-28 Dave Love <fx@gnu.org>
1874
bb15bd9a
DL
1875 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k,
1876 alpha.
1877
e9b309ac
DL
1878 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
1879
ed0767d8
SM
18802000-03-27 Stefan Monnier <monnier@cs.yale.edu>
1881
1882 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
1883 an expression.
1884 (enum re_opcode_t): Update description of succeed_n.
1885 (PATFETCH): Always define.
1886 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
1887 operators, char classes, shy-groups and intervals).
1888 Optimize special cases of intervals so as to only use succeed_n and
1889 jump_n when really needed.
1890 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
1891 that we don't have to handle the special cases any more.
1892 Simplify on_failure_jump handling as well.
1893
e11e7e46
JR
18942000-03-28 Jason Rumney <jasonr@gnu.org>
1895
1896 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
1897
88faab89
GM
18982000-03-27 Gerd Moellmann <gerd@gnu.org>
1899
182ff242
GM
1900 * s/freebsd.h (GC_SETJMP_WORKS): Define.
1901
1902 * s/msdos.h (GC_SETJMP_WORKS): Define.
427ec082 1903
182ff242
GM
1904 * alloc.c (mark_maybe_object): New function.
1905 (mark_memory): Use it.
1906 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
1907 (setjmp_tested_p, longjmp_done): New variables.
1908 (test_setjmp): New function.
1909 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
1910 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
1911
c1005d06
GM
1912 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
1913 to DEC_TEXT_POS and INC_TEXT_POS.
1914
1915 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
1916 with parameter MULTIBYTE_P.
1917
427ec082 1918 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter
c1005d06
GM
1919 MULTIBYTE_P.
1920
7439e5b9 1921 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
182ff242
GM
1922 buffers because it looks for multibyte character byte sequences
1923 which don't exist in unibyte text.
7439e5b9 1924
d9c545da
GM
1925 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
1926
11fd416e 1927 * xfaces.c (register_color, unregister_color, unregister_colors)
d9c545da
GM
1928 [DEBUG_X_COLORS]: New functions.
1929 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
1930
1931 * xfns.c (x_set_cursor_color): Get color reference counts right.
1932
1933 * xterm.c (x_copy_color): New function.
1934 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
1935
1936 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
1937 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
1938 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
1939 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
1940 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
1941 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
1942 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
1943 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
1944 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
1945 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
1946
11fd416e
GM
1947 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
1948 names for handling per-buffer variables.
d9c545da
GM
1949
1950 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
1951 instead of MAX_BUFFER_LOCAL_VARS.
1952 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
1953
1954 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
1955
88faab89
GM
1956 * xfns.c (x_specified_cursor_type): New function.
1957 (x_set_cursor_type): Use it.
1958
1959 * buffer.h (struct buffer): Add cursor_type.
1960
d80f42b7
SM
19612000-03-26 Stefan Monnier <monnier@cs.yale.edu>
1962
1963 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
427ec082 1964 (print_partial_compiled_pattern, re_compile_fastmap): Handle new
88faab89 1965 opcode.
d80f42b7
SM
1966 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
1967 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
1968 executing it as well as when popping it off the stack to find infinite
1969 loops in non-greedy repetition operators.
1970
89e80928
GM
19712000-03-26 Gerd Moellmann <gerd@gnu.org>
1972
3d4ff2dd
GM
1973 * doc.c (Qfunction_documentation): New variable.
1974 (syms_of_doc): Initialize Qfunction_documentation.
1975 (Fdocumentation): If FUNCTION is a symbol with non-nil
1976 `function-documentation' property, return a documentation derived
1977 from that.
1978
bd96bd79
GM
1979 * buffer.c (syms_of_buffer): Add default-cursor-type.
1980 (init_buffer_once): Don't let cursor_type have a local value
1981 in every buffer.
1982
19d1bc27
GM
1983 * xterm.c (x_display_and_set_cursor): Choose cursor depending
1984 on buffer-local value of cursor_type.
1985 (x_draw_bar_cursor): Add parameter WIDTH.
1986
1987 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
1988 (init_buffer_once): Set default cursor_type value to t.
1989 Mark cursor_type as local everywhere.
1990 (syms_of_buffer): New per-buffer variable cursor-type.
1991
89e80928
GM
1992 * buffer.h (struct buffer): Remove member local_var_flags,
1993 add local_flags.
1994 (MAX_BUFFER_LOCAL_VARS): New macro.
1995 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
1996 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
1997 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
1998 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
1999
2000 * print.c (print_object): Use new macros for per-buffer
2001 variables.
2002
2003 * category.c (Fset_category_table): Use new macros for per-buffer
2004 variables.
2005
2006 * buffer.c (buffer_permanent_local_flags): Make a char array.
2007 (max_buffer_local_idx): New variable.
2008 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
2009 for new handling of per-buffer variables.
2010 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
2011 (init_buffer_once): Initialize per-buffer vars differently.
2012 Set max_buffer_local_idx.
2013
2014 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
2015 variables.
2016
2017 * lread.c (defvar_per_buffer): Use new macros for per-buffer
2018 variables.
2019
2020 * data.c (do_symval_forwarding, store_symval_forwarding)
2021 (find_symbol_value, set_internal, default_value, Fset_default)
2022 (Fkill_local_variable, Flocal_variable_p): Use new macros for
2023 per-buffer variables.
2024
2025 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
2026
9a0dd3dc
GM
20272000-03-24 Gerd Moellmann <gerd@gnu.org>
2028
b68c375f
GM
2029 * xterm.c (x_term_init): Unblock input around call1 of
2030 Qvendor_specific_keysyms.
2031
9a0dd3dc
GM
2032 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
2033 (find_defun_start): Consider an open parenthesis in column 0
2034 a defun start only if open_paren_in_column_0_is_defun_start is set.
2035 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
2036
7973e637
SM
20372000-03-24 Stefan Monnier <monnier@cs.yale.edu>
2038
2039 * eval.c (Fautoload): Add entry in load-history (if after dump).
2040 * lread.c (load-history): Update docstring.
2041
39210e90
GM
20422000-03-24 Gerd Moellmann <gerd@gnu.org>
2043
2044 * indent.c (Fvertical_motion): Always use the current buffer.
2045 Temporarily change the window's buffer, if necessary.
2046
72db3ab5
GM
20472000-03-23 Gerd Moellmann <gerd@gnu.org>
2048
2049 * xterm.c (fast_find_position): Make sure not to consider rows
2050 not visible in the window.
2051
990b2375
SM
20522000-03-22 Stefan Monnier <monnier@cs.yale.edu>
2053
2054 * regex.c (enum syntaxcode): Provide default for non-Emacs.
2055 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
2056
ff4df011
JR
20572000-03-22 Jason Rumney <jasonr@gnu.org>
2058
2059 * w32menu.c (single_submenu): Set help string to NULL if none.
2060 (w32_menu_show): Set help string correctly.
2061 (add-menu-item): Set help string in MIIM_DATA for menu item.
2062 Load SetMenuItemInfoA explicitly.
2063 (w32_menu_display_help): New function.
427ec082 2064
ff4df011
JR
2065 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
2066 (QCdata): Moved to xdisp.c.
2067
2068 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
2069 (Vw32_charset_to_codepage_alist): Removed.
2070 (Vw32_charset_info_alist): New variable.
2071 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312,
2072 chinesebig5, oem, easteurope, turkish, baltic, russian, arabic,
2073 greek, hebrew, thai, johab, mac, unicode]): New symbols.
2074 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
2075 with TODO comment.
2076 (w32_codepage_for_font): Use Vw32_charset_info_alist.
2077 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
2078 Define Vw32_charset_info_alist and w32_charset symbols.
2079
20802000-03-22 Jason Rumney <jasonr@gnu.org>
2081
2082 * makefile.nt (w32bdf.obj): Update dependencies.
2083
2084 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
2085
2086 * w32fns.c: Include fontset.h after dispextern.h.
2087 (Fx_create_frame): Do not create fontset.
2088 (w32_load_system_font): Doc fix.
2089 (Fx_close_connection): Free full_name if it is not shared.
2090
2091 * w32term.c: Include fontset.h after dispextern.h.
2092 (x_get_glyph_face_and_encoding): New parameter two_byte_p. Callers
2093 updated.
2094 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
2095 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
2096 (w32_font_is_double_byte): New function, needs body.
2097 (x_append_glyph): Set glyph->glyph_not_available_p.
2098 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
2099 it->charset. If it->multibyte_p is zero and it->c is a multibyte
2100 character, convert it to a unibyte character.
2101 (struct glyph_string): Delete member `charset'.
2102 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
2103 calculating it is found.
2104 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
2105 the case that per char metric is not available correctly.
2106 (x_fill_glyph_string): Handle the case that the specific glyph is
2107 not available correctly.
2108 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
2109 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
2110 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
2111 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
2112 fontset. Don't call FS_LOAD_FONT.
2113
439d5cb4
KR
21142000-03-22 Ken Raeburn <raeburn@gnu.org>
2115
2116 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
2117 (INT_LISPLIKE): New macro.
2118 (NULL_INTERVAL_P): Use it.
2119 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT,
2120 SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT,
2121 GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
2122
2123 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
2124 explicit references to "parent" field of struct interval and
2125 associated unclean type conversions.
2126 * intervals.c (create_root_interval, root_interval, rotate_right,
2127 rotate_left, balance_possible_root_interval, split_interval_right,
2128 split_interval_left, interval_start_pos, find_interval,
2129 next_interval, previous_interval, update_interval,
2130 adjust_intervals_for_insertion, delete_node, delete_interval,
2131 adjust_intervals_for_deletion, merge_interval_right,
2132 merge_interval_left, reproduce_tree, graft_intervals_into_buffer,
2133 copy_intervals_to_string): Likewise.
2134 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
2135 Likewise.
2136 * syntax.c (update_syntax_table): Likewise.
2137
2138 * intervals.c (reproduce_tree_obj): New function, like
2139 reproduce_tree but takes a Lisp_Object for the parent. Declare
2140 with prototype.
2141 (graft_intervals_into_buffer): Use it when appropriate.
2142 (reproduce_tree): Declare with prototype.
2143 (balance_possible_root_interval): Check that the parent is a lisp
2144 object before trying to examine its type.
2145
ee1c5b21
GM
21462000-03-22 Gerd Moellmann <gerd@gnu.org>
2147
2148 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
2149 as strings only if both are known to be strings.
2150
2151 * s/openbsd.h (LIBS_TERMCAP): Undef.
2152
1fb352e0
SM
21532000-03-21 Stefan Monnier <monnier@cs.yale.edu>
2154
2155 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
2156 definitions for non-Emacs compilation.
2157 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
2158 outside of `#ifdef emacs'.
2159 (print_partial_compiled_pattern): Update.
2160 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
2161 (re_compile_fastmap): Merge handling of charset and charset_not (for
2162 emacs and non-emacs compilation as well).
2163 Similarly for (not)categoryspec and (not)syntaxspec.
2164 Don't use the fastmap when reaching `anychar' since the added
2165 complexity is not justified.
2166 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
2167 and (not)syntaxspec. Merge (not)categoryspec.
2168
fdaa1f77
KH
21692000-03-22 Kenichi Handa <handa@etl.go.jp>
2170
ff1a0d8e
KH
2171 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P,
2172 FACE_FOR_CHAR): Define them differently for the configuration of
2173 --without-x.
fdaa1f77 2174
d152fb46
DL
21752000-03-21 Dave Love <fx@gnu.org>
2176
2177 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
2178 doc string.
2179
d2cafc8c
GM
21802000-03-21 Gerd Moellmann <gerd@gnu.org>
2181
2182 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
2183 (lface_fully_specified_p): Don't check contents of
2184 LFACE_FONT_INDEX because that attribute is optional.
2185 (realize_x_face): Remove now unwarranted xassert.
2186
9111d4b5
KH
21872000-03-21 Kenichi HANDA <handa@etl.go.jp>
2188
2189 The following changes are to make font selection based on
2190 characters, not charset. In addition, they recover fontset
2191 facilities while utilizing the new font selection mechanism.
2192
6c4bfdc0
KH
2193 * Makefile.in (fontset.o): Depend on dispextern.h.
2194
2195 * alloc.c (mark_face_cache): Don't mark face->registry.
2196
9111d4b5
KH
2197 * dispextern.h (struct glyph): New member glyph_not_available_p.
2198 Use 22 bits for face_id.
2199 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
2200 (struct face): Delete member registry, new member ascii_face.
2201 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
2202 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
2203 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
2204 (struct it): Delete member charset, new member
2205 glyph_not_available_p.
2206
2207 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
2208 (struct fontset_info, struct fontset_data): Structs removed.
2209 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset,
2210 Vglobale_fontset_alist, font_idx_temp): Externs removed.
2211 (fs_load_font, fs_query_fontset): Adjusted for new argument.
2212 (fs_free_face_fontset, fontset_font_pattern,
2213 face_suitable_for_char_p, face_for_char,
2214 make_fontset_for_ascii_face): Extern them.
2215 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
2216 (FS_LOAD_FACE_FONT): New macro.
2217
2218 * fontset.c: All codes rewritten or adjusted for the change of
2219 fontset implementation. Now fontset is represented by char table.
2220 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl): Variables
2221 removed.
2222 (my_strcasecmp): Function removed.
2223 (Vfontset_table, next_fontset_id, Vdefault_fontset): New
2224 variables.
2225 (AREF, ASIZE): New macros.
2226 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME,
2227 FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF,
2228 FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
2229 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset,
2230 fontset_id_valid_p, font_family_registry, fontset_name,
2231 fontset_ascii, free_face_fontset, face_suitable_for_char_p,
2232 face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
2233 New functions.
2234 (fs_load_font): New arg FACE. Caller changed.
2235 (fs_query_fontset): Argument changed. Caller changed.
2236 (Fquery_fontset): call fs_query_fontset.
2237 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
2238 Functions removed.
2239 (clear_fontset_elements, check_registry_encoding,
2240 check_fontset_name): New functions.
2241 (syms_of_fontset): Set char-table-extra-slots property of fontset
2242 to 3. Staticpro and initialize Vfontset_table and
2243 Vdefault_fontset. Defsubr fontset_font and fontset_list.
2244
2245 * frame.h (struct frame): Member `fontset_data' removed.
2246 (FRAME_FONTSET_DATA): Macro removed.
2247
2248 * frame.c (make_frame): Don't allocate f->fontset_data.
2249 (Fdelete_frame): Don't free f->fontset_data.
2250
6c4bfdc0
KH
2251 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
2252
9111d4b5
KH
2253 * xdisp.c (charset_at_position): Function removed.
2254 (init_iterator): Don't set member charset of struct `it'.
2255 (handle_face_prop, reseat_to_string, set_iterator_to_next,
2256 next_element_from_display_vector, insert_left_trunc_glyphs):
2257 Likewise.
2258 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
2259 FACE_FOR_CHARSET.
2260 (get_next_display_element, append_space,
2261 extend_face_to_end_of_line): Likewise.
2262
2263 * xfaces.c (Qx_charset_registry, Vface_default_registry):
2264 Variables removed.
2265 (clear_font_table, frame_update_line_height, load_face_font):
2266 Adjusted for the change of fontset implementation.
2267 (load_face_fontset_font): Function removed.
2268 (pixel_point_size): New function.
2269 (font_list): Argument type changed. Caller changed.
2270 (LFACE_FONT): New macro.
2271 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
2272 (set_lface_from_font_name): Type of arg FONTNAME is changed to
2273 Lisp_Object. Determine the font name by actually loading a font
2274 by the specified pattern. Set LFACE_FONT (lface) to the specified
2275 pattern. Even if a font is not found, don't try alternatives.
2276 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
2277 (set_font_frame_param): If `font' is specified in lface, use it.
2278 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
2279 (lface_same_font_attributes_p): Likewise.
2280 (make_realized_face): Arguent changed. Caller changed. Set
2281 face->ascii_face to face itself.
2282 (free_realized_face): Free face->fontset if face is for ASCII.
2283 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p,
2284 deduce_unibyte_registry, x_charset_registry): Functions removed.
2285 (free_realized_multibyte_face): New function.
2286 (lookup_face, lookup_named_face, lookup_derived_face): Argument
2287 changed. Caller changed.
2288 (try_font_list): Argument type changed.
2289 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
2290 (choose_face_font): Argument changed. Handle fontset properly.
2291 (choose_face_fontset_font): Function removed.
2292 (realize_default_face, realize_named_face): Don't remove the
2293 former face here.
2294 (realize_face): Argument changed. Caller changed. Remove face
2295 with the arg former_face_id in advance. Load font for the new
2296 face.
2297 (realize_x_face): Argument changed. Caller changed. For a
2298 multibyte character, share fontset with base_face. For a single
2299 byte character, make a new realized fontset. Don't load a font
2300 here.
2301 (realize_tty_face): Argument changed. Caller changed.
2302 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
2303 (face_at_buffer_position): Don't check multibyte_p for returning
2304 DEFAULT_FACE_ID.
2305 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
2306 FACE_SUITABLE_FOR_CHARSET_P.
2307 (syms_of_xfaces): Remove code for Qx_charset_registry and
2308 Vface_default_registry.
2309
6c4bfdc0
KH
2310 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
2311 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
9111d4b5
KH
2312 (x_per_char_metric): Don't try FONT->default_char. Even if
2313 pcm->width is zero, glyph bits may exist.
2314 (x_encode_char): Always initialize char2b->byte1.
2315 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
2316 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller
2317 changed.
2318 (x_append_glyph): Set glyph->glyph_not_available_p.
2319 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
2320 it->charset. Handle the case that per char metric is not
2321 available. If it->multibyte_p is zero and it->c is a multibyte
2322 character, convert it to a unibyte character.
2323 (struct glyph_string): Delete member `charset'.
2324 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
2325 the case that per char metric is not available correctly.
2326 (x_fill_glyph_string): Handle the case that the specific glyph is
2327 not available correctly.
2328 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
2329 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
2330 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
2331 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
2332 fontset. Don't call FS_LOAD_FONT.
2333
2334 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
2335 (x_create_tip_frame): Likewise.
2336 (Fx_close_connection): Free full_name of font_info.
2337
2338 * fns.c (optimize_sub_char_table): New function.
2339 (Foptimize_char_table): New function.
2340 (syms_of_fns): Defsubr Soptimize_char_table.
2341
b33dd3b0
GM
23422000-03-20 Gerd Moellmann <gerd@gnu.org>
2343
2344 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
2345 only if buffer is displayed in some window.
2346
2347 * xdisp.c (handle_single_display_prop): Initialize local `value'.
2348 (try_window_reusing_current_matrix): Don't call scroll run
2349 function if run's current and desired position are the same;
2350 this prevents cursor flickering.
2351
4e8a9132
SM
23522000-03-19 Stefan Monnier <monnier@cs.yale.edu>
2353
2354 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
2355
2356 * regex.c (RE_STRING_CHAR): New macro.
2357 (GET_CHAR_AFER_2): Remove.
2358 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
2359 (enum re_opcode_t): Remove on_failure_jump_exclusive.
2360 (print_partial_compiled_pattern, re_compile_fastmap)
2361 (re_match_2_internal): Remove on_failure_jump_exclusive.
2362 (regex_compile): Turn optimizable P+ loops into PP*, so that the
2363 optimization only need to work for * (ie. can use of_keep_string_jump).
2364 Remove the special case for .*\n since it is now covered by the general
2365 optimization.
2366 (re_search_2): Don't bother with `room'.
2367 (skip_one_char): New function.
2368 (skip_noops): Simplify since `memory' is not needed any more.
2369 (mutually_exclusive_p): Restructure slightly to use `switch' and
2370 add handling for "all" remaining cases.
2371 (re_match_2_internal): Change on_failure_jump_smart to use
2372 on_failure_keep_string_jump (and redirect the end-of-loop jump)
2373 rather than on_failure_jump_exclusive.
2374
2136fdd4
GM
23752000-03-19 Gerd Moellmann <gerd@gnu.org>
2376
2377 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
2378 number of bits per RGB because it's everywhere used as the depth
2379 of the visual.
2380
2381 * term.c (calculate_costs): Remove code dealing with X frames.
2382
e53ae11c
RS
23832000-03-19 Richard M. Stallman <rms@caffeine.ai.mit.edu>
2384
2385 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
2386
d7b511c4
GM
23872000-03-18 Gerd Moellmann <gerd@gnu.org>
2388
2389 * lread.c (read_integer): Unread the last char not consumed.
2390
16b5d424
GM
23912000-03-17 Gerd Moellmann <gerd@gnu.org>
2392
2393 * xterm.c (x_update_window_cursor): Don't update in frames
d7b511c4 2394 which are in the process of being deleted.
16b5d424 2395
1fa28578
GM
23962000-03-16 Gerd Moellmann <gerd@gnu.org>
2397
83488cce
GM
2398 * Makefile.in (mostlyclean): Add `*.core'.
2399 (clean): Add `bootstrap-emacs'.
2400
1fa28578
GM
2401 * lread.c (read_integer): New function.
2402 (read1): Support read syntax #o, #x, #b, #r.
2403
99633e97
SM
24042000-03-15 Stefan Monnier <monnier@cs.yale.edu>
2405
1fa28578
GM
2406 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
2407 make sure POINTER_TO_OFFSET gives the same value before and after
2408 PREFETCH. Use `dfail' to guarantee "atomic" matching.
99633e97
SM
2409 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
2410 (debug): Now only active if > 0 rather than if != 0.
2411 (DEBUG_*): Update for the new meaning of `debug'.
1fa28578
GM
2412 (print_partial_compiled_pattern): Add missing `succeed' case. Use
2413 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
2414 in `succeed_n', `jump_n' and `set_number_at'.
99633e97
SM
2415 (store_op1, store_op2, insert_op1, insert_op2)
2416 (at_begline_loc_p, at_endline_loc_p): Add prototype.
1fa28578
GM
2417 (group_in_compile_stack): Move to after its arg's types are
2418 declared and add a prototype.
99633e97 2419 (PATFETCH): Define in terms of PATFETCH_RAW.
1fa28578
GM
2420 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)'
2421 wrapper.
99633e97 2422 (QUIT): Redefine as a nop except for NTemacs.
1fa28578
GM
2423 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
2424 indentation of the greedy-op and shy-group code.
99633e97
SM
2425 (at_(beg|end)line_loc_p): Fix argument's types.
2426 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
2427 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
2428 (MATCHING_IN_FIRST_STRING): Remove.
1fa28578
GM
2429 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
2430 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
2431 QUIT unconditionally.
99633e97 2432
699238d9
GM
24332000-03-15 Gerd Moellmann <gerd@gnu.org>
2434
2435 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
2436 a sole completion.
2437
2438 * process.c (send_process): Add a hint that the function
2439 can call Lisp code to its comment.
2440
2441 * lread.c (load_dangerous_libraries): New variable.
2442 (Vbytecomp_version_regexp): New variable.
2443 (safe_to_load_p): New function.
2444 (Fload): Handle files not compiled with Emacs specially.
2445 (syms_of_lread): New Lisp variable load-dangerous-libraries.
2446
34e23e5a
GM
24472000-03-14 Gerd Moellmann <gerd@gnu.org>
2448
9c763cca
GM
2449 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
2450
2451 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
2452 support functions only if HAVE_X11R6_XIM is defined.
2453 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
2454
2455 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
2456
2457 * xfns.c (X_I18N_INHIBITED): Don't define.
2458 (create_frame_xic): Remove conditional compilation on
2459 X_I18N_INHIBITED.
2460 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
2461
2462 * config.in (HAVE_X_I18N): Moved here from xterm.h.
2463 (HAVE_X11R6_XIM): Define.
2464
2465 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
2466
34e23e5a
GM
2467 * xterm.c (x_term_init): Add support for X resource `synchronous'.
2468 If set, call XSynchronize.
2469
66f0296e
SM
24702000-03-13 Stefan Monnier <monnier@cs.yale.edu>
2471
34e23e5a
GM
2472 * regex.c: Declare a new type `re_char' used throughout the code
2473 for the string char type. It's `const unsigned char' to match the
2474 rest of Emacs. Consistently make sure all pointers to strings use
2475 it and make sure all pointers into the pattern use `unsigned
2476 char'.
66f0296e 2477 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
34e23e5a
GM
2478 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
2479 code duplication.
66f0296e
SM
2480
2481 * charset.h (GET_CHAR_AFTER_2): Remove.
2482 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
2483
854a025c
KR
24842000-03-12 Ken Raeburn <raeburn@gnu.org>
2485
2486 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
2487 variable before the invocation of YMF_PASS_LDFLAGS, in case both
2488 of them try to use backquotes.
2489
b9d2c7e2
DL
24902000-03-12 Dave Love <fx@gnu.org>
2491
2492 * unexelf.c: Restore changes of 1999-10-19.
2493 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
2494 fix its type and alignment; copy it from current process.
2495
5e5dff44
GM
24962000-03-12 Gerd Moellmann <gerd@gnu.org>
2497
9b2f3c38
GM
2498 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
2499 has been found. Fix bug not computing timer's predecessor.
2500
427ec082 2501 * fileio.c (Fread_file_name): Handle case that DIR contains a
9172b88d
GM
2502 file name.
2503
e1cff360
GM
2504 * window.c (Fsave_window_excursion): Doc fix.
2505
5e5dff44
GM
2506 * xfns.c (x_defined_color): Rewritten to use
2507 x_allocate_nearest_color.
2508
e411ce4b
EZ
25092000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
2510
2511 * msdos.c (vga_installed): New function, code moved from
2512 dos_set_window_size.
2513 (Qbar, Qcursor_type, outside_cursor): New variables.
2514 (syms_of_msdos): Intern and staticpro them.
2515 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
2516 shape used outside Emacs when called for the first time.
2517 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
2518 cursor shape used outside Emacs.
2519 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
2520 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
2521 type has changed.
2522 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
2523 parameters specify the cursor. Make qreverse a global
2524 variable (renamed to Qreverse).
2525
80460654
GM
25262000-03-09 Gerd Moellmann <gerd@gnu.org>
2527
2528 * fns.c (Fy_or_n_p): Cancel busy-cursor.
2529
95cd4c40
SM
25302000-03-08 Stefan Monnier <monnier@cs.yale.edu>
2531
2532 This is a big redesign of failure-stack and register handling, prompted
2533 by bugs revealed when trying to add shy-groups. Overall, what happened
2534 is that loops are now structured a little differently, groups can be
2535 shy and the code is a little simpler.
2536
2537 * regex.h: Update the copyright.
2538 (RE_SHY_GROUPS): New value.
2539 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
2540 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
2541
80460654
GM
2542 * regex.c (enum re_opcode_t): Remove jump_past_alt,
2543 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
2544 on_failure_jump_(exclusive, loop and smart). Also fix the comment
2545 for (start|stop)_memory since they now only take one argument (the
2546 second has becomes unnecessary).
2547 (print_partial_compiled_pattern): Adjust for changes in
2548 re_opcode_t.
2549 (print_compiled_pattern): Use %ld to printf long ints and flush to
2550 make debugging a little easier.
95cd4c40
SM
2551 (union fail_stack_elt): Make the integer unsigned.
2552 (struct fail_stack_type): Add a `frame' element.
2553 (INIT_FAIL_STACK): Init `frame' as well.
2554 (POP_PATTERN_OP): New macro for re_compile_fastmap.
2555 (DEBUG_PUSH, DEBUG_POP): Remove.
2556 (NUM_REG_ITEMS): Remove.
2557 (NUM_NONREG_ITEMS): Adjust.
80460654
GM
2558 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
2559 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
95cd4c40 2560 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
80460654
GM
2561 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP): New
2562 macros.
2563 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
2564 address pushed is not the destination of the jump but the source
2565 of it instead.
95cd4c40
SM
2566 (NUM_FAILURE_ITEMS): Remove.
2567 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
80460654
GM
2568 registers before the actual failure point). Don't hardcode any
2569 meaning for str==NULL anymore.
95cd4c40 2570 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
80460654
GM
2571 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
2572 Remove.
95cd4c40
SM
2573 (REG_UNSET_VALUE): Use NULL (why not?).
2574 (compile_range): Remove declaration since it doesn't exist.
2575 (struct compile_stack_elt_t): Remove inner_group_offset.
2576 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
2577 (regex_grow_registers): Remove dead code.
2578 (FIXUP_ALT_JUMP): New macro.
80460654
GM
2579 (regex_compile): Add shy-groups Change loops to use
2580 on_failure_jump_smart&jump instead of
2581 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
2582 initial (dummy_failure_)jump. Remove c1_base (looks like unused
2583 variable to me). Use `jump' instead of `jump_past_alt' and don't
2584 bother with push_dummy_failure in alternatives since it is now
2585 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
2586 emacs' for (re)allocating the stack.
2587 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
2588 from loop when bufp->can_be_null rather than jumping to `done'.
2589 Avoid jumping backwards so as to ensure termination. Use
2590 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
2591 backreferences. Remove dead code in handling of `anychar'.
95cd4c40 2592 (skip_noops, mutually_exclusive_p): New functions taken from the
80460654
GM
2593 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
2594 improve mutually_exclusive_p to handle ".+\n".
2595 (lowest_active_reg, highest_active_reg,
2596 NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
2597 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
2598 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
2599 variables. Push register (in `start_memory') on the stack rather
2600 than storing it in old_reg(start|end). Remove the cycle detection
2601 from `stop_memory', replaced by the use of on_failure_jump_loop
2602 for greedy loops. Add code for the new on_failure_jump_<foo>.
2603 Remove ad-hoc code in `on_failure_jump' to push more registers in
2604 the case of a loop. Take out code from `maybe_pop_jump' into
2605 separate functions and adapt it to the semantics of
2606 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
2607 and push_dummy_failure. Remove dummy_failure handling and
2608 handling of `failures to jump to on_failure_jump' (this last one
2609 was already dead code, it seems).
2610 (group_match_null_string_p, alt_match_null_string_p)
2611 (common_op_match_null_string_p): Remove.
95cd4c40 2612
7397acc4
DL
26132000-03-08 Dave Love <fx@gnu.org>
2614
2615 * config.in: Don't depend on __STDC__ for volatile.
2616 Add POINTER_TYPE, PTR, PROTOTYPES.
2617
2618 * hftctl.c, strftime.c: Use PROTOTYPES.
2619 * eval.c (find_handler_clause): Likewise.
2620
2621 * mem-limits.h: Use POINTER_TYPE.
2622
2623 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
2624 (memory_warnings): Declare using POINTER_TYPE.
2625
5e91ff9e
GM
26262000-03-08 Gerd Moellmann <gerd@gnu.org>
2627
feab4fba
GM
2628 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
2629
25edb08f
GM
2630 * xdisp.c (display_echo_area): Temporarily inhibit garbage
2631 collection.
2632
5e91ff9e
GM
2633 * xfns.c: Remove obsolete code in #if 0.
2634 (Fx_focus_frame): New function.
2635
a735b7e1
KH
26362000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
2637
2638 * coding.c (coding_category_name): Add coding-category-utf-8,
2639 coding-category-utf-16-be, coding-category-utf-16-le.
2640 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
2641 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
2642 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
2643 (detect_coding_utf_8): New function.
2644 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
2645 UTF_16_LOW_SURROGATE_P): New macros.
2646 (detect_coding_utf_16): New function
2647 (detect_coding_mask): When priorities are specified, skip any
2648 categories that have `nil' coding-system. Fix bug of returning
2649 wrong mask when PRIORITIES is specified and detect_coding_XXX()
2650 returns a mask not set in PRIORITIES.
2651 (detect_eol_type_in_2_octet_form): New function.
2652 (detect_eol): selects detect_eol_type_XXX to call according to
2653 cooding->category_idx.
2654 (detect_coding_system): Remove `nil' coding-system in the result.
2655 (Fupdate_coding_systems_internal): Update all coding-categories.
2656
2657 * coding.h (CODING_CATEGORY_IDX_UTF_8,
2658 CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE): New
2659 macros.
2660 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY,
2661 CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
2662 CODING_CATEGORY_IDX_UTF_16_LE.
2663 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE,
2664 CODING_CATEGORY_MASK_UTF_16_LE): New macros.
2665 (CODING_CATEGORY_MASK_ANY): Include the above macros.
2666 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
2667
9994cc69
GM
26682000-03-07 Gerd Moellmann <gerd@gnu.org>
2669
e9b4e5ff
GM
2670 * doc.c (Fdocumentation_property): If value is not a string,
2671 and doesn't refer to etc/DOC, evaluate it to obtain a string.
2672
f7daf1e1
GM
2673 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
2674 close the display with XtCloseDisplay. This caused a bus error
2675 on OpenWindows.
2676
9994cc69
GM
2677 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
2678 complete but not unique.
2679
4336c705
GM
26802000-03-06 Gerd Moellmann <gerd@gnu.org>
2681
18bb0684
GM
2682 * process.c (send_process): Remove local variable `procname' that
2683 might become invalid when a GC happens. Instead, access the
2684 process name slot directly.
2685
4336c705
GM
2686 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
2687 orig_height if set.
2688
2689 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
2690 orig_height if set.
2691
515d0d0e
EZ
26922000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
2693
2694 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
2695 glyph matrices have been freed.
2696
100b3cbb
GM
26972000-03-05 Gerd Moellmann <gerd@gnu.org>
2698
50df5e5a 2699 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
6178bc23 2700 (bootstrap-temacs): Set LC_ALL to C like for temacs.
50df5e5a
GM
2701
2702 * xfns.c (QCdata): Moved to xdisp.c.
2703
2704 * xdisp.c (QCdata): Moved here from xfns.c.
2705 (syms_of_xdisp): Initialize QCdata.
2706
2707 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
2708
2709 * window.c (coordinates_in_window): Use
2710 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
2711 FRAME_INTERNAL_BORDER_WIDTH.
2712
100b3cbb 2713 * xdisp.c (try_window_id): Recompute unchanged information if
4336c705 2714 it is obviously invalid.
100b3cbb
GM
2715
2716 * xterm.c (x_term_init): Create a colormap if not using the
2717 default visual.
2718
2719 * xterm.h (select_visual): Change prototype.
2720
2721 * xfns.c (select_visual): Rewritten. Recognize user-specified
2722 visual classes.
2723 (visual_classes): New variable.
2724
64d739c4
GM
27252000-03-04 Gerd Moellmann <gerd@gnu.org>
2726
2727 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
2728 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
2729 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
2730 (x_decode_color): Don't handle allocation of white and black
2731 specially.
2732 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
2733 XtNcolormap resources.
2734 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
2735 (Fx_create_frame): Initialize color members of x_output structure.
2736 (xpm_load): Pass colormap to XPM lib.
2737
2738 * xfaces.c (x_free_colors): Access colormap of frame using
2739 FRAME_X_COLORMAP. Be paranoid about freeing black and white
2740 when default colormap is used.
2741
2742 * xterm.c (x_term_init): Set Colormap member of x_display_info
2743 structure. Copy colormap if resource `privateColormap' is
2744 specified (PseudoColor only).
2745 (x_setup_relief_color): Access colormap of frame using
2746 FRAME_X_COLORMAP.
2747
2748 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
2749 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
2750
c3cee013
JR
27512000-03-04 Jason Rumney <jasonr@gnu.org>
2752
2753 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
2754 other non-platform-specific equivalents.
64d739c4 2755 [WINDOWSNT]: Include w32term.h, fontset.h and define X
c3cee013
JR
2756 specific functions and macros as their w32 equivalents where
2757 non-platform-specifics are not available.
2758 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
2759 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
2760 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
2761 (frame_update_line_height): Use macros to access f->output_data.
2762 (defined_color): Remove FIXME comments; fixed.
2763 (x_face_list_fonts, prepare_face_for_display): Put X specifics
2764 into #ifdef blocks. Add WINDOWSNT blocks.
2765 (Fx_list_fonts): Use macros for accessing font data.
2766 (set_lface_from_font_name): Different default fonts for X and
2767 WINDOWSNT.
2768 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
2769 scalable for backward compatibility.
64d739c4 2770 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
c3cee013
JR
2771 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
2772
64d739c4 2773 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
c3cee013
JR
2774 syms_of_w32faces.
2775
2776 * makefile.nt (w32faces.obj): Remove.
2777 (xfaces.obj): Add.
2778
807cc41c
JR
27792000-03-03 Jason Rumney <jasonr@gnu.org>
2780
2781 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
2782 correct parameters.
2783
0007072a
KR
27842000-03-03 Ken Raeburn <raeburn@gnu.org>
2785
2786 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
2787 standard ELF definitions here if the system header does not.
2788
71a6ba55
GM
27892000-03-03 Gerd Moellmann <gerd@gnu.org>
2790
2791 * xterm.c (PER_CHAR_METRIC): Removed.
2792 (x_per_char_metric_1, x_default_char): New functions.
2793 (x_per_char_metric): If font's default char is invalid, return
2794 metrics of a suitably chosen usable default char.
2795 (x_draw_glyph_string_foreground): If font has an invalid default
64d739c4
GM
2796 char, replace occurrences of unprintable chars with a suitably
2797 chosen usable default char.
71a6ba55 2798
900fa1f1
GM
27992000-03-02 Gerd Moellmann <gerd@gnu.org>
2800
42f55fe0
GM
2801 * xterm.c (note_mouse_highlight): Return quickly if frame's
2802 glyph matrices have been freed.
2803
2804 * dispnew.c (free_glyphs): Block input while freeing matrices.
2805
900fa1f1
GM
2806 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
2807
2808 * xterm.c (x_alloc_lighter_color, x_setup_relief_color): Use
2809 x_free_colors.
2810
2811 * dispextern.h (x_free_colors): Add prototype.
2812
2813 * xfaces.c (x_free_colors): New function.
2814 (unload_color, free_face_colors): Use it.
2815
2f950292
EZ
28162000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
2817
2818 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
2819
2820 * window.c [MSDOS]: Include msdos.h.
2821
54d04320
DL
28222000-03-02 Dave Love <fx@gnu.org>
2823
2824 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
2825
2826 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
2827 set C_OPTIMIZE_SWITCH for gcc.
2828
0ba93ac4
KH
28292000-03-02 Kenichi Handa <handa@etl.go.jp>
2830
2831 * coding.c (coding_save_composition): Be sure to allocate
2832 composition data area in coding even if there's no composition in
2833 the current run.
2834
a2bc11d4
JR
28352000-03-01 Jason Rumney <jasonr@gnu.org>
2836
2837 * w32term.c: Equivalent changes to those made to xterm.c on
2838 2000-02-25 and 2000-02-24.
2839
2840 * w32fns.c: Equivalent changes to those made to xfns.c on
2841 2000-02-25 and 2000-02-21.
2842
2843 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
2844 correct line-end convention is followed.
2845
2846 * w32menu.c [HAVE_BOXES]: Remove #undef.
2847 (single_keymap_panes): Remove code for simulating checkmarks.
2848 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
2849 Remove code for drawing simulated checkmarks.
2850 (w32_menu_show): make unibyte help string correctly.
2851 (add_menu_item): draw standard Windows checkmarks. Draw radio
2852 buttons as radio buttons if possible.
2853
72d19d75
GM
28542000-03-01 Gerd Moellmann <gerd@gnu.org>
2855
2df636f4
GM
2856 * sysdep.c (start_of_text): Don't define this function for NetBSD
2857 with ELF.
2858
427ec082 2859 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
2df636f4
GM
2860 Don't define.
2861 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
2862 (LINKER): Don't undef if __NetBSD__ is defined.
2863
2864 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
2865
2866 * fileio.c [__NetBSD__]: Define `unix'.
2867
72d19d75
GM
2868 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
2869
ed4d0512
GM
28702000-02-29 Gerd Moellmann <gerd@gnu.org>
2871
50b1039f
GM
2872 * atimer.c (start_atimer): Don't abort when timers are stopped.
2873 (append_atimer_lists): New function.
2874 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
2875 arbitrary lists of stopped and running atimers.
2876
ed4d0512
GM
2877 * atimer.c (cancel_atimer): Handle canceling an atimer when
2878 some timers are stopped.
2879
2880 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
2881 after canceling it.
2882
2883 * fns.c (maybe_resize_hash_table): Handle case of new size
2884 coming out as being the same as old size.
2885
387023ee
JR
28862000-02-27 Jason Rumney <jasonr@gnu.org>
2887
2888 * makefile.nt: Add atimer.h to dependencies.
2889 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
2890 * w32console.c: Only disable window system features for dispextern.h
2891 (initialize_w32_display): Build a display info for the console.
2892 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
2893 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
2894 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
2895 as 2 button mice.
2896 * w32gui.h (struct W32FontStruct): Revert last change after change
2897 to xdisp.c.
2898 * w32menu.c (single_submenu): Set up help string.
2899 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
2900 (w32_dialog_show): Set up help string.
2901 * w32term.c (w32_display_info_for_display): Remove unused function.
2902 (w32_draw_bitmap): Use pre-built bitmaps.
2903 (w32_initialize_display_info): New function to initialize parts of
2904 display info that are common to both GUI and console frames.
2905 (w32_term_init): Use w32_initialize_display_info. Do not set
2906 Vw32_num_mouse_buttons here, as it is not called for console
2907 frames. Build bitmaps for indicating truncated lines etc.
2908 (x_delete_display): Destroy pre-built bitmaps.
2909 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
2910 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
2911
4516715a
DL
29122000-02-27 Dave Love <fx@gnu.org>
2913
2914 * lisp.h: Add a bunch of prototypes.
2915
171ca836
KH
29162000-02-26 Kenichi Handa <handa@etl.go.jp>
2917
2918 * keyboard.c (read_char): Set `usec' correctly.
2919
4013921d
KH
29202000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
2921
2922 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
2923 `lambda', set reg[RRR] to the map index.
2924 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
2925 reg[RRR] to 0. Otherwise, set it to -1.
2926
9244a058
GM
29272000-02-25 Gerd Moellmann <gerd@gnu.org>
2928
2df636f4 2929 * emacs.c (main): Remove code snippet commented out with `//'.
9244a058 2930
f43d79c1 29312000-02-25 Richard M. Stallman <rms@caffeine.ai.mit.edu>
427ec082 2932
f43d79c1
GM
2933 * fileio.c (Ffile_symlink_p): If result starts with a `/'
2934 and contains a `:', prepend `/:'.
2935
2936 * window.c (select_window_1): If selected_window is nil,
2937 don't "swap out" the buffer's point.
2938 (Fset_window_configuration): Set selected_window to nil
2939 before calling Fselect_window.
2940 (unshow_buffer): Don't set point in buffer from window's point
2941 if another more recently selected window also shows the buffer.
2942
bed0c171
GM
29432000-02-25 Gerd Moellmann <gerd@gnu.org>
2944
449c3c52
GM
2945 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
2946
f5b58615
GM
2947 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
2948 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
2949 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay): New
2950 variables.
2951 (DEFAULT_BUSY_CURSOR_DELAY): New define.
2952 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
2953 (hide_busy_cursor): New functions.
2954 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
2955
2956 * minibuf.c (read_minibuf): Cancel busy-cursor.
2957
2958 * keyboard.c (command_loop_1): Call start_busy_cursor before
2959 Fcommand_execute and cancel_busy_cursor after it.
2960 (timer_check): Remove busy-cursor code.
2961 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
2962 cursor timer.
2963
2964 * process.c (wait_reading_process_input): Remove busy-cursor code.
2965
2966 * eval.c (Fsignal): Call cancel_busy_cursor instead of
2967 Fx_hide_busy_cursor.
2968
2969 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
2970 Remove prototyoes.
2971 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
2972
2973 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
2974
2975 * xterm.c (XTread_socket): Remove busy-cursor code.
2976
4eb8436f
GM
2977 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
2978 (build_frame_matrix_from_leaf_window): Put code handling
2979 glyph row's not being a slice of a frame row in #if 0.
2980 (sync_window_with_frame_matrix_rows): New function.
2981 (frame_row_to_window): New function.
2982 (mirror_line_dance): Handle copies between windows.
2983
3cb65b0e
GM
2984 * lread.c (Fload): Use `xfree' instead of `free'.
2985 (init_obarray): Use `xmalloc' instead of `malloc'.
2986
bed0c171
GM
2987 * window.c (Fset_window_buffer): Set WINDOW to the window
2988 after decoding.
2add4349
GM
2989 (coordinates_in_window): Take frame's internal border width
2990 into account.
bed0c171 2991
42088c12
GM
29922000-02-24 Gerd Moellmann <gerd@gnu.org>
2993
2994 * xterm.c (x_display_and_set_cursor): Display cursor of
2995 non-selected windows depending on the setting of
2996 cursor_in_non_selected_windows.
2997
2998 * xdisp.c (cursor_in_non_selected_windows): New variable.
2999 (syms_of_xdisp): DEFVAR_BOOL it.
3000
d1e103b2
GM
30012000-02-23 Gerd Moellmann <gerd@gnu.org>
3002
723e779c
GM
3003 * data.c (Fstring_to_number): If number is greater than what
3004 fits into an integer, return a float.
3005
d1e103b2
GM
3006 * eval.c (specbind): Remove references to
3007 keyword_symbols_constant_flag.
3008
3009 * data.c (keyword_symbols_constant_flag): Removed.
3010 (Fmakunbound, set_internal, syms_of_data): Remove references to
3011 keyword_symbols_constant_flag.
3012
3013 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
3014
214f877f
KH
30152000-02-23 Kenichi Handa <handa@etl.go.jp>
3016
3017 * syntax.c (multibyte_syntax_as_symbol): New variable.
3018 (syms_of_syntax): Declare it as a Lisp variable.
3019 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
3020 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
3021 nonzero, treat all multibyte characters as symbol.
42088c12 3022 (init_syntax_once): Give syntax `word' to all multibyte
214f877f
KH
3023 characters.
3024
130adcb7
EZ
30252000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
3026
3cb65b0e 3027 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
130adcb7
EZ
3028 a deleted frame.
3029
17cbbf95
GM
30302000-02-21 Gerd Moellmann <gerd@gnu.org>
3031
3032 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
3033
3034 * xfns.c (x_window_to_frame, x_any_window_to_frame)
3035 (x_non_menubar_window_to_frame): Check the busy-cursor window.
3036
beb0bc36
DL
30372000-02-21 Dave Love <fx@gnu.org>
3038
3039 * frame.c (Vmouse_position_function): New variable.
3040 (Fmouse_position): Use it.
3041 (syms_of_frame): Install it.
3042
3043 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
3044
1d92afcd
GM
30452000-02-20 Gerd Moellmann <gerd@gnu.org>
3046
3047 * fileio.c (Finsert_file_contents): Unbind the binding of
3048 standard-output done by temp_output_buffer_setup.
329eed9f
GM
3049
3050 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
3051 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
3052 (specbind, unbind_to): Handle most common case of non-constant
3053 symbol with trivial value specially.
3054
3055 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
3056
2d06696f
RS
30572000-02-20 Richard M. Stallman <rms@caffeine.ai.mit.edu>
3058
3059 * data.c (Fmake_variable_buffer_local): Doc fix.
3060 Init found_for_buffer to 0.
3061 (Fmake_variable_frame_local): If the variable has already
3062 been buffer-local, set the check_frame field.
3063
1d4311c3
EZ
30642000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
3065
3066 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
3067 produced for CODING_MODE_LAST_BLOCK requires.
3068
2dc95ddd
DL
30692000-02-18 Dave Love <fx@gnu.org>
3070
3071 * keyboard.c (echo_keystrokes): Remove declaration.
3072 (Vecho_keystrokes) New variable.
3073 (read_char, record_menu_key, read_key_sequence): Use it to allow
3074 use of float value.
3075 (syms_of_keyboard): Change Vecho_keystrokes declaration.
3076
3077 * lread.c: Undef feature selection macros before defining.
3078
f0930f35
GM
30792000-02-18 Gerd Moellmann <gerd@gnu.org>
3080
3081 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
3082 for symbols other than the symbol in question.
3083
e3d4de90
DL
30842000-02-17 Dave Love <fx@gnu.org>
3085
3086 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
3087
0b378936
GM
30882000-02-17 Gerd Moellmann <gerd@gnu.org>
3089
d621caf7
GM
3090 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
3091
0b378936
GM
3092 * alloc.c (enum mem_type): Compile unconditionally.
3093
3b451f74
EZ
30942000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
3095
3096 * xfaces.c (tty_defined_color): Don't return faulire indication
3097 for unspecified-fg and unspecified-bg pseudo-colors.
3098
10689a01
GM
30992000-02-17 Gerd Moellmann <gerd@gnu.org>
3100
1216f5e4
GM
3101 * alloc.c (mark_object): Don't mark symbol names in pure space.
3102 (gc_sweep): Don't unmark symbol names in pure space.
3103
3104 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
3105 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
3106 [GC_MARK_STACK]: New defines.
427ec082 3107 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
1216f5e4
GM
3108 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
3109
3110 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
3111
3112 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
3113 allocate_buffer instead of xmalloc.
3114
3115 * alloc.c (toplevel): Include setjmp.h.
3116 (PURE_POINTER_P): New define.
3117 (enum mem_type) [GC_MARK_STACK]: New enumeration.
3118 (Vdead) [GC_MARK_STACK]: New variable.
3119 (lisp_malloc): Add parameter TYPE, call mem_insert if
3120 GC_MARK_STACK is defined.
3121 (allocate_buffer): New function.
427ec082 3122 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
1216f5e4
GM
3123 (free_float) [GC_MARK_STACK]: Set type to Vdead.
3124 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
3125 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
3126 (MEM_NIL) [GC_MARK_STACK]: New define.
3127 (struct mem_node) [GC_MARK_STACK]: New structure.
3128 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
3129 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
3130 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
3131 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
3132 (mark_stack) [GC_MARK_STACK]: New functions.
3133 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
3134 (clear_marks): Removed.
3135 (gc_sweep): Set free conses' car, free floats' type, free
3136 symbols' function to Vdead. Use lisp_free to free buffers.
3137 (init_alloc_once): Initialize Vdead.
3138 (survives_gc_p): Return non-zero for pure objects.
3139
3140 * alloc.c: Add comments throughout the file.
3141
2503c8b1
GM
3142 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
3143 that unblocks alarms.
3144
8389e1e2
GM
3145 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
3146 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
3147 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
3148
10689a01 3149 * frame.c (make_frame): Set frame initiallly to `garbaged'.
427ec082 3150
bfc17d18
KH
31512000-02-17 Kenichi Handa <handa@etl.go.jp>
3152
4a09dee0
KH
3153 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
3154 avoid infinite error signaling. Allocate sufficient memory for
3155 eol_str in the case that eoltype is Lisp_Int.
bfc17d18 3156
2b927d02
SM
31572000-02-17 Stefan Monnier <monnier@cs.yale.edu>
3158
3159 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
3160 depends on the previous behavior.
3161
b49cb764
GM
31622000-02-16 Gerd Moellmann <gerd@gnu.org>
3163
3164 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
3165
99e95407
GM
31662000-02-15 Gerd Moellmann <gerd@gnu.org>
3167
3168 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
3169
3170 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
b49cb764 3171 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
99e95407
GM
3172 write(2).
3173
6ffd3cf7
RS
31742000-02-15 Richard M. Stallman <rms@gnu.org>
3175
3176 * data.c (set_internal): Don't make variable buffer-local
3177 if within a let-binding for the same buffer.
3178 (let_shadows_buffer_binding_p): New function.
3179
3180 * eval.c (specbind): For buffer-local value,
3181 record the current buffer also.
3182 (unbind_to): Cope with that change.
3183
cad53475
GM
31842000-02-15 Gerd Moellmann <gerd@gnu.org>
3185
3186 * window.c (Fsave_window_excursion): Doc fix.
3187
1aa963c8
SM
31882000-02-15 Stefan Monnier <monnier@cs.yale.edu>
3189
3190 * syntax.c (back_comment): Make sure we only consider comment-starters
3191 of the relevant style and return -1 in case of a failure to find the
3192 beginning of the comment.
3193 (Fforward_comment): If back_comment fails, go back to the position just
3194 after the comment-end.
3195 (scan_lists): Add comment describing a very minor bug.
3196
b9b84fd3
SM
31972000-02-14 Stefan Monnier <monnier@cs.yale.edu>
3198
3199 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
3200 `completion-regexp-list' in the docstring.
3201
3a28db80
DL
32022000-02-14 Dave Love <fx@gnu.org>
3203
3204 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
3205
fb4a568d
SM
32062000-02-14 Stefan Monnier <monnier@cs.yale.edu>
3207
3208 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
3209 to Emacs' syntax. Also fix the comment about set/not-set meanings
3210 since Emacs syntax is not the value 0 any more.
3211 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
3212 since it's now part of RE_SYNTAX_EMACS.
3213
1063ebb5
DL
32142000-02-12 Dave Love <fx@gnu.org>
3215
3216 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on
3217 Alpha.
3218
fb07a302
GM
32192000-02-12 Gerd Moellmann <gerd@gnu.org>
3220
3221 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
3222
aaf2320c
DL
32232000-02-12 Dave Love <fx@gnu.org>
3224
3225 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
3226
3227 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
fb07a302
GM
3228 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
3229 * s/hpux.h: Don't define HAVE_VFORK.
aaf2320c
DL
3230
3231 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
3232
3233 * s/nextstep.h: Don't define HAVE_ALLOCA.
3234
3235 * config.in: Add vfork bits.
3236
eedf8bde
GM
32372000-02-12 Gerd Moellmann <gerd@gnu.org>
3238
3239 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
3240 unwind function to undo the effect of stopping atimers.
3241
3242 * keyboard.c (bind_polling_period): Stop all timers except
3243 poll_timer.
3244
3245 * atimer.c (stopped_atimers): New variable.
3246 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
3247 New functions.
3248
3249 * atimer.h (stop_other_atimers, run_all_atimers)
3250 (unwind_stop_other_atimers): Add function prototypes.
427ec082 3251
eedf8bde
GM
3252 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
3253
8476c2f8
KR
32542000-02-11 Ken Raeburn <raeburn@gnu.org>
3255
3256 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
3257 library may depend on jpeg.
3258 (atimer.o): Depends on atimer.c.
3259
0e85e4a3
KH
32602000-02-11 Kenichi Handa <handa@etl.go.jp>
3261
3262 * insdel.c (del_range_1): Call update_compositions.
3263 (del_range_both): Call update_compositions just once..
3264
97fa0cc8
DL
32652000-02-10 Dave Love <fx@gnu.org>
3266
3267 * xfns.c (create_frame_xic): Fix initialization of automatic
3268 aggregates for pcc.
3269
25566a3c
KH
32702000-02-09 Kenichi Handa <handa@etl.go.jp>
3271
3272 * ccl.c (CCL_MAKE_CHAR): New macro.
3273 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
3274 registers by CCL_MAKE_CHAR before calling translate_char.
3275 <CCL_TranslateCharacterConstTbl> Likewise.
3276
69da54ba
DL
32772000-02-08 Dave Love <fx@gnu.org>
3278
3279 * lread.c (__EXTENSIONS__): Define.
3280
f7136ee8
GM
32812000-02-08 Gerd Moellmann <gerd@gnu.org>
3282
3283 * puresize.h (BASE_PURESIZE): Increase to 650000.
3284
7768790b
EZ
32852000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
3286
3287 * msdos.c (XMenuActivate): Turn off the cursor after displaying
3288 the help message.
3289
38fd211b
EZ
32902000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
3291
3292 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
3293 md, mh, mb, mr, and me to the fake termcap entry.
3294
66e4690f
KR
32952000-02-06 Ken Raeburn <raeburn@gnu.org>
3296
3297 * sound.c (sound_cleanup): Don't call device close routine if the
3298 function pointer is null.
3299
a75dfea0
AI
33002000-02-06 Andrew Innes <andrewi@gnu.org>
3301
3302 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
3303 around image definitions and prototypes.
3304 (gamma_correct) [WINDOWSNT]: New prototype.
3305
3306 * w32term.c (x_make_frame_visible): Replace call to
3307 input_poll_signal with poll_for_input.
3308
3309 * window.c [WINDOWSNT]: Include w32term.h.
3310
3311 * xdisp.c [WINDOWSNT]: Include w32term.h.
3312
3313 * makefile.nt: Add dependencies on w32gui.h.
3314 (OBJ1): Include atimer.obj.
3315 ($(BLD)\atimer.obj): New dependency rule.
3316
3317 * w32.c (sigmask): New function (does nothing).
3318 (sigunblock): Ditto.
3319
3320 * frame.c [WINDOWSNT]: Include w32term.h.
3321
3322 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
3323
3324 * lread.c (syms_of_lread): Fix literal newlines.
3325
3326 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
3327 the string constant limit (2048 bytes) in MSVC.
3328 (main): Ditto.
3329
59ddecde
GM
33302000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
3331
3332 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit
3333 area.
3334 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
3335 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
3336 dispatch the event.
3337
07590973
DL
33382000-02-04 Dave Love <fx@gnu.org>
3339
3340 * fileio.c: Remove some unused vars.
3341 (_GNU_SOURCE): Define (for euidaccess).
3342
3343 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
3344
3345 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
3346 gcpro1, gcpro2.
3347 (read_minibuf): Deal with allow_props correctly.
3348
649351f9
EZ
33492000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
3350
3351 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
3352
66e4690f 33532000-02-03 Ken Raeburn <raeburn@gnu.org>
f1b9c7c1
KR
3354
3355 * search.c (compile_pattern): If a cache entry has a nil regexp,
3356 fill in that entry instead of clobbering a previously cached
3357 string regexp.
3358
66e4690f 33592000-02-02 Ken Raeburn <raeburn@gnu.org>
15c9cf81
KR
3360
3361 * puresize.h (BASE_PURESIZE): Increase to 610000.
3362
d240a249
GM
33632000-02-02 Gerd Moellmann <gerd@gnu.org>
3364
3365 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
3366 can GC.
3367
ca91fb26
KH
33682000-02-02 Kenichi Handa <handa@etl.go.jp>
3369
25660570
KH
3370 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
3371 instead of incrementing ic directly.
3372 <CCL_WriteExprConst> Likewise.
3373 <ccl_set_expr>: Set ic to jump_address.
3374
ca91fb26
KH
3375 * fileio.c (e_write): Fix the handling of
3376 CODING_FINISH_INSUFFICIENT_SRC.
3377
2ede9689
DL
33782000-02-01 Dave Love <fx@gnu.org>
3379
3380 * editfns.c (Fpropertize): Doc fix.
3381
3382 * process.c (Fstart_process): Doc fix.
3383
3384 * eval.c: Fix various doc strings not to duplicate information
3385 from help-manyarg-func-alist.
3386
3387 * window.c (Fset_window_margins): Don't make interactive. Doc
3388 fix.
3389
3390 * doc.c (Vhelp_manyarg_func_alist): New variable.
3391 (Fdocumentation): Use it.
3392 (syms_of_doc): Define it.
3393
b6680a0e
GM
33942000-01-31 Gerd Moellmann <gerd@gnu.org>
3395
2cb750ba
GM
3396 * xterm.c (xim_open_dpy): Remove unused local variable.
3397
74e9213b
GM
3398 * emacs.c (USAGE): Use term `display options' instead of `X
3399 options'.
3400
3401 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
3402 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
3403
b6680a0e
GM
3404 * fns.c (sweep_weak_table): New function.
3405 (sweep_weak_hash_tables): Use it. Keep on marking until there
3406 is no more change.
3407
994c5afe
GM
34082000-01-30 Gerd Moellmann <gerd@gnu.org>
3409
3410 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
3411 that XTread_socket does not crash by trying to call XNoOp on a
3412 closed display.
427ec082 3413
f00276e3
JR
34142000-01-30 Jason Rumney <jasonr@gnu.org>
3415
3416 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
3417 Change selected_frame to SELECTED_FRAME ().
3418 (w32_console_mouse_position): Remove #ifndef MULE from around
3419 `insist' parameter.
3420
3421 * makefile.nt: Remove dosfns.obj.
3422
3423 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
3424
3425 * w32fns.c (w32_defined_color): Check for valid frame before
3426 applying gamma correction. Eliminate dependency on frame elsewhere.
3427 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
3428 (w32_to_x_font): Use resx and resy not height_in and width_in.
3429 (x_to_w32_font): Doc fix.
3430 (xlfd_strip_height): New function to strip and return font height.
3431 (w32_font_match): Compare height separately from rest of xlfd
3432 spec, using xlfd_strip_height.
3433
3434 * w32term.c (w32_term_init): Swap resx and height_in, resy and
3435 width_in. Use w32_defined_color in place of defined_color.
3436
3437 * w32faces.c: Merge more of DOS and X specifics in preparation for
3438 merge with xfaces.c.
3439 (defined_color): Remove FIXME comment.
3440 (tty_color_name): Provide w32-specific function.
3441 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
3442
3443 * w32console.c (turn_on_face, turn_off_face): Removed.
3444 (w32_face_attributes): New function.
3445 (Global_variables): Reduce scope where possible.
3446 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
3447 fill attribute.
3448 (hl_mode): Don't modify text attributes.
3449 (write_glyphs): Don't do anything if len <= 0. Use
3450 w32_face_attributes to get attributes for drawing. Write
3451 terminating codes using char_attr_normal.
3452 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
3453 (update_begin, update_end): Likewise.
3454 (vga_stdcolor_name): New function.
3455 (initialize_w32_display): Remove char_attr_reverse and char_attr.
3456 (Fset_screen_color): Remove char_attr_reverse.
3457
b08e8bb2
GM
34582000-01-29 Gerd Moellmann <gerd@gnu.org>
3459
3460 * xfns.c (xic_set_preeditarea): Take window parameter and
3461 window-relative pixel-positions.
3462
3463 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
3464 is its frame's selected window.
3465 (xim_instantiate_callback): Likewise.
3466
3467 * xfns.c (x_create_im): Removed.
3468 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
3469 (supported_xim_styles): Renamed from supported_styles.
3470 (best_xim_style): Renamed from best_style.
3471 (create_frame_xic): Renamed from xic_create_frame.
3472 (free_frame_xic): Renamed from xic_destroy_frame.
427ec082 3473
b08e8bb2
GM
34742000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
3475
3476 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
3477 our frames, call XFilterEvent with 2nd parameter `None'.
3478 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
3479 returning XBufferOverflow.
3480 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status
3481 area.
3482 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
3483 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
3484 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
3485 (xim_initialize, xim_close)
3486 [HAVE_X_I18N && HAVE_X11R6]: New functions.
3487 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
3488 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
3489 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
3490
3491 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
3492 and `xim_styles'.
3493 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
3494 `xic_style' and `xic_xfs'.
3495 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
3496 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
3497 (FRAME_XIM): Removed.
3498
3499 * xfns.c (supported_styles): New variable.
3500 (DEFAULT_STYLE, DEFAULT_FONT): New macros
3501 (xic_create_xfontset, best_style, xic_create_frame)
3502 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
3503 (xic_set_xfontset): New functions.
3504
142e109c
DL
35052000-01-28 Dave Love <fx@gnu.org>
3506
3507 * s/irix6-5.h: Revert last change after change to irix5-0.h.
3508
3509 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
3510
b02786f9
GM
35112000-01-28 Gerd Moellmann <gerd@gnu.org>
3512
d060bc9f
GM
3513 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
3514 for *scratch* if it already existed.
3515
b02786f9
GM
3516 * emacs.c (USAGE): New macro.
3517 (main): Use it to display usage information.
3518
2c52d7e4
EZ
35192000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
3520
3521 Support for the menu-help feature:
3522
3523 * msdos.h: Change prototypes of XMenuAddSelection and
3524 XMenuActivate.
3525
3526 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
3527 part of the line to the termscript file.
3528 (IT_clear_to_end): Clear the entire line, not just its beginning.
3529 (menu_help_message, prev_menu_help_message): New variables.
3530 (IT_menu_make_room): Make room for the help_text member.
3531 (IT_menu_display): New argument disp_help; all callers changed.
3532 If disp_help is non-zero, store the help text of the active menu
3533 item in menu_help_message.
3534 (XMenuAddPane): Initialize the help_text member to NULL.
3535 (XMenuAddSelection): New argument help_text. Store it in the
3536 XMenu structure.
3537 (XMenuActivate): New argument help_callback. If the value of
3538 menu_help_message has changed since the last time, display the
3539 menu help message text while waiting for the mouse to move. Clear
3540 the echo area before exiting.
3541 (XMenuDestroy): Free the help_text member.
3542
ffe0bcd1
GM
35432000-01-27 Gerd Moellmann <gerd@gnu.org>
3544
3545 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
3546 XMenuAddSelection. Pass help callback to XMenuActivate.
3547 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
3548
50dbd23f
EZ
35492000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
3550
3551 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
3552 and EMACS_SET_USECS.
3553
f5941bf8
GM
35542000-01-26 Dave Love <fx@gnu.org>
3555
6c67ddee
DL
3556 * editfns.c (Fchar_after, Fchar_before): Doc fix.
3557
f5941bf8
GM
3558 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
3559 an error may be signalled.
3560
9e49c990
GM
35612000-01-26 Gerd Moellmann <gerd@gnu.org>
3562
fc3cb460
GM
3563 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
3564 LD_SWITCH_SYSTEM inherited from irix5-0.h.
3565
9e49c990
GM
3566 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
3567
d0c037d8
GM
35682000-01-25 Gerd Moellmann <gerd@gnu.org>
3569
3570 * charset.c (Fstring): If there is a multibyte char among
3571 the args, always return a multibyte string.
3572
e12489f9
GM
35732000-01-25 Gerd Moellmann <gerd@gnu.org>
3574
3575 * sysdep.c (sys_select): Turn atimers off and on instead of
3576 recording and restoring old alarm handler
3577
3578 * process.c (toplevel): Include atimer.h.
3579 (create_process_1): Rewritten.
3580 (create_process): Use atimers instead of alarm.
3581 (wait_reading_process_input) [hpux]: Turn atimers off instead
3582 of turning off SIGALRM.
3583 (wait_reading_process_input): Turn off atimers instead off
3584 calling stop_polling.
3585
3586 * emacs.c (main): Call init_atimer.
3587
3588 * keyboard.c (toplevel): Include systime.h and atimer.h.
3589 (polling_for_input): Removed because unused.
3590 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
3591 (poll_timer): New variable.
3592 (poll_for_input, poll_for_input_1): New functions.
3593 (start_polling, stop_polling): Rewritten.
3594
3595 * keyboard.h (polling_for_input): Removed.
427ec082 3596
e12489f9
GM
3597 * atimer.h, atimer.c: New files.
3598
3599 * Makefile.in (obj): Add atimer.o.
3600 (atimer.o): New target.
3601
3602 * blockinput.h (pending_atimers): Add extern declaration.
3603 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
3604
3605 * lisp.h (popup_activated_flag): Add extern declaration.
3606
3607 * xmenu.c (popup_activated_flag): Make externally visible.
3608 (popup_activate_callback) [USE_MOTIF]: Increment
3609 popup_activated_flag.
3610 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
3611
3612 * xterm.c (toplevel): Include atimer.h.
3613 (toolkit_scroll_bar_interaction): New variable.
3614 (Fxt_process_timeouts): Removed.
3615 (x_process_timeouts): New function.
3616 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
3617 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
3618 (x_make_frame_visible): Call poll_for_input_1 instead of
3619 input_poll_signal. Don't call alarm.
3620 (x_initialize): Install timer calling x_process_timeouts.
427ec082 3621
1e5279b9
DL
36222000-01-24 Dave Love <fx@gnu.org>
3623
6c67ddee 3624 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
1e5279b9
DL
3625 Don't use -cckr -- apparently not now necessary.
3626
edf6aeb8
EZ
36272000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
3628
3629 * msdos.c (IT_menu_display): Truncate long menu lines at the right
3630 screen boundary.
3631
9badad41
JR
36322000-01-23 Jason Rumney <jasonr@gnu.org>
3633
3634 * w32fns.c (w32_defined_color): Apply gamma correction before
3635 trying to map to the palette.
3636 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
3637 to w32_clear_rect.
3638
3639 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
3640 here. Callers changed to always pass real device context.
3641 (w32_draw_bitmap): Likewise.
3642 (w32_get_glyph_overhangs): Likewise.
3643 (w32_draw_box_rect): Make use of s->hdc rather than getting a new
3644 one.
3645 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
3646 pfnSetScrollInfo and SetScrollRange.
3647 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
3648 back into MULE characters after decoding them.
3649 (x_get_glyph_face_and_encoding): Likewise.
3650 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
3651 GetCharABCWidthsW fails, since this is defined on Windows 9x.
3652 (x_produce_glyphs): Calculate per char metrics for a character
3653 that we know exists in default font when font_not_found_p is true.
3654
63bd786b
JR
36552000-01-22 Jason Rumney <jasonr@gnu.org>
3656
3657 * makefile.nt (intervals.obj, composite.obj): New modules.
3658 (composite.h): Added as dependency where appropriate.
3659
3660 * w32gui.h (XGCValue): New struct for emulating X GCs.
3661
3662 * w32term.h (XCharStruct): New struct for emulating X.
3663
3664 * w32console.c (turn_on_face, turn_off_face): New functions.
3665 (change_line_highlight): New prototype for new redisplay.
3666 (write_glyphs): Support multibyte text. Support faces.
3667
3668 * w32faces.c: Complete rewrite for new redisplay based on new
3669 xfaces.c.
3670
3671 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
3672 throughout. struct frame * in place of FRAME_PTR.
3673 Skeleton support for images, toolbars, tooltips from xfns.c.
3674 (Fx_create_frame): Use system default for default scroll bar
3675 width.
3676 (w32_get_arg): Renamed from x_get_arg.
3677 (Fx_file_dialog): New function.
3678 (w32_list_fonts): Check cache before asking system.
3679 (Vw32_enable_synthesized_fonts): New variable.
3680 (Vw32_enable_italics): Obsolete, removed.
3681
3682 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
3683 Use SELECTED_FRAME macro.
3684
3685 * w32menu.c: Add skeleton support for help strings on menus.
3686 (add_menu_item): Native checkbox and radio support added, but not
3687 yet enabled due to bugs.
3688 (push_menu_item): Add parameters type, selection and help.
3689 Callers updated.
3690 Formatting changes to reduce unnecessary diffs with xmenu.c.
3691
3692 * w32select.c (Fw32_set_clipboard_data): Update call to
3693 find_charset_in_str.
3694
3695 * w32term.c: Complete rewrite for new redisplay based on new
3696 xterm.c with necessary sections merged back in from old w32term.c.
3697
6ffd3cf7 36982000-01-21 Richard M. Stallman <rms@gnu.org>
b50c9214
RS
3699
3700 * data.c (set_internal): Further fix in same criterion.
3701
6ffd3cf7 37022000-01-20 Richard M. Stallman <rms@gnu.org>
8cc95642
RS
3703
3704 * data.c (set_internal): Fix the criteria for whether
3705 to swap out the old cached binding.
3706
60af03f1
DL
37072000-01-19 Dave Love <fx@gnu.org>
3708
3709 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
3710
f9be074f
KH
37112000-01-18 Kenichi Handa <handa@etl.go.jp>
3712
3713 * regex.c (re_compile_fastmap): While checking a range table for
3714 `charset', skip flag bits for a character class correctly.
3715
52b8dbf9
GM
37162000-01-17 Gerd Moellmann <gerd@gnu.org>
3717
d36100c9
GM
3718 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
3719
52b8dbf9
GM
3720 * xfns.c (x_window): Call lw_create_widget with new parameter
3721 list.
3722
3723 * widget.c (EmacsFrameSetCharSize): Change size of children first
3724 because of problems with main window geometry management under
3725 Lesstif.
3726
3727 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
3728 MENU_ITEMS_ITEM_.*.
3729 (MENU_ITEMS_ITEM_HELP): New enumerator.
3730 (push_menu_item): Add parameter HELP. Record help in menu_items.
3731 (single_menu_item, single_submenu, list_of_items): Call
3732 push_menu_item with new parameter.
3733 (single_submenu): Set help string in widget value.
3734 (menu_highlight_callback): New function.
3735 (set_frame_menubar): Call lw_create_widget with new
3736 parameter list.
3737 (xmenu_show, xdialog_show): Ditto.
3738
3139018f
GM
37392000-01-13 Gerd Moellmann <gerd@gnu.org>
3740
3741 * sound.c (Fplay_sound): Improve doc string.
3742
83c8f461
RS
37432000-01-11 Richard M. Stallman <rms@gnu.org>
3744
3745 * lisp.h (set_internal): Enter the new arg.
3746
3747 * eval.c (specbind): Record buffer-local variables specially,
3748 indicating which buffer's binding was saved.
3749 (unbind_to): Restore buffer-local variables specially
3750 in the proper buffer.
3751
3752 * data.c (set_internal): New arg BUF.
427ec082 3753
83c8f461
RS
3754 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
3755 * data.c (Fset): Pass new arg to set_internal.
3756 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
427ec082 3757
1fab1775
GM
37582000-01-11 Gerd Moellmann <gerd@gnu.org>
3759
3760 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload,
3761 xprintsym.
3762
83c8f461 37632000-01-11 Richard M. Stallman <rms@gnu.org>
6f59462e
RS
3764
3765 * minibuf.c (Ftry_completion): Doc fix.
3766
7a85e4df
GM
37672000-01-11 Gerd Moellmann <gerd@gnu.org>
3768
3769 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
3770 vector, too.
3771
a970dae4
AS
37722000-01-11 Andreas Schwab <schwab@suse.de>
3773
3774 * coding.c (code_convert_region): Initialize total_skip.
3775
c65d14ee
DL
37762000-01-08 Dave Love <fx@gnu.org>
3777
3778 * eval.c (Fuser_variable_p): Check customizability too.
3779
834938d2
GM
37802000-01-07 Gerd Moellmann <gerd@gnu.org>
3781
3782 * minibuf.c (Fcompleting_read): Doc fix.
3783
e0303cd6
GM
37842000-01-05 Gerd Moellmann <gerd@gnu.org>
3785
8a26744b
GM
3786 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
3787 -L /usr/local/lib.
3788
e0303cd6
GM
3789 * xfns.c (x_create_im): New function to set IM and IC of a frame.
3790 Check that input style is supported before trying to create an
3791 IC for it.
3792 (x_window): Call x_create_im.
427ec082 3793
2e471eb5
GM
37942000-01-04 Gerd Moellmann <gerd@gnu.org>
3795
560a7bd2
GM
3796 * xfns.c (current_gif_memory_src): New variable.
3797 (gif_load): Record the address of the current memory source
3798 in current_gif_memory_src.
3799 (gif_read_from_memory): Use current_gif_memory_src.
3800
f9ee84a3
GM
3801 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
3802 macros statement form.
3803
d1299cde
GM
3804 * sound.c (struct sound): Renamed from struct sound_file.
3805 (struct sound): Add members `data' and `header_size'.
3806 (enum sound_attr): Add SOUND_DATA.
3807 (current_sound, current_sound_device): Variables renamed from
3808 sound_file and sound_device.
3809 (parse_sound): Parse :data.
3810 (parse_sound): Handle sound data in strings.
3811 (find_sound_type): Function renamed from find_sound_file_type.
427ec082 3812 (wav_init, au_init): Fail if sound's header_size is smaller than
d1299cde
GM
3813 needed header size.
3814 (wav_play, au_play): Play sounds from string data.
3815
2e471eb5
GM
3816 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
3817
3818 * lisp.h: Add prototype for allocate_string_data.
3819
3820 * alloc.c (Fgarbage_collect): Return number of live and free
3821 strings.
3822
3823 * alloc.c (mark_buffer): Remove code in #if 0.
3824 (gc_sweep): Ditto.
3825 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
3826 (strings_consed): New variable.
3827 (allocate_string): Set it.
3828 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
3829 (Fmemory_use_counts): Return strings_consed. Use Flist.
3830
3831 * alloc.c: General cleanup in comments etc. Remove conditional
3832 compilation for `standalone'.
3833
3834 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
3835
3836 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
3837 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
3838 (DONT_COPY_FLAG): Removed.
3839 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
3840 (struct sdata, struct sblock): New
3841 (struct string_block): Rewritten.
3842 (STRINGS_IN_STRING_BLOCK): New macro.
3843 (oldest_sblock, current_sblock, total_strings, total_free_strings)
3844 (large_sblocks, string_blocks, string_free_list): New variables.
3845 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
3846 (init_strings): Rewritten.
3847 (allocate_string, allocate_string_data, compact_small_strings)
3848 (free_large_strings, sweep_strings): New functions.
3849 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
3850 (struct string_block_head, current_string_block)
3851 (first_string_block, large_string_blocks, STRING_FULLSIZE)
3852 (STRING_PAD): Removed.
3853 (make_uninit_multibyte_string, make_pure_string): Rewritten.
3854 (Fgarbage_collect): Don't set mark bit in large strings.
3855 (mark_object): Mark strings differently. Mark symbol names
3856 differently.
3857 (survives_gc_p): Test marked strings differently.
427ec082 3858 (gc_sweep): Sweep strings differently, unmark strings in
2e471eb5
GM
3859 symbol names.
3860 (compact_strings): Removed.
3861
42608ba8
EZ
38622000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
3863
3864 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
3865 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
3866
e0a09e1a
KH
38672000-01-04 Kenichi Handa <handa@etl.go.jp>
3868
dd9f0750 3869 * fileio.c (Finsert_file_contents): Signal error if visiting file
427ec082 3870 in a non-empty buffer.
dd9f0750 3871
3c0f3b15 3872 * term.c (encode_terminal_code): Fix the previous change.
e0a09e1a 3873
44cd3ae5
GM
38742000-01-03 Gerd Moellmann <gerd@gnu.org>
3875
3876 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
3877 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
3878
3879 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
3880
c182a70f
EZ
38812000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
3882
3883 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
3884 need to test for MSDOS frames.
3885
24480d5b
EZ
38862000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
3887
3888 * dosfns.c (unspecified_colors): Remove.
3889 (msdos_stdcolor_idx): Use global variables unspecified_fg and
3890 unspecified_bg.
3891 (msdos_stdcolor_name): Return strings for unspecified fore- and
3892 back-ground colors.
3893
3894 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
aaf2320c 3895 (syms_of_xfaces): Remove their staticpro's.
24480d5b
EZ
3896 (tty_color_name): Return Lisp strings for unspecified fore- and
3897 back-ground colors.
3898 (Finternal_set_lisp_face_attribute): Remove the special treatment
3899 for Qunspecified_{f,b}g.
3900 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp
3901 string.
3902
047f434a
GM
39032000-01-03 Gerd Moellmann <gerd@gnu.org>
3904
3905 * xdisp.c (reseat_at_next_visible_line_start): Position before
3906 newline only if ending up on a newline.
3907 (next_element_from_ellipsis): Return success. Handle case of
3908 displaying no ellipsis. Fix case of ellipsis defined in display
3909 table.
3910 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
3911 returns 0.
3912
d684c676
EZ
39132000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
3914
3915 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
3916 (Fcolor_supported_p): Renamed from face-color-supported-p.
3917
5fe1d139
EZ
39182000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
3919
3920 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
3921 list of colors renamed to tty-defined-color-alist.
3922 (tty_color_name): Pass the frame to tty-color-by-index.
3923 (realize_tty_face): tty-color-alist is now a function which
3924 accepts the frame as argument.
3925
3926 * term.c (Ftty_display_color_p): Accept an optional argument
3927 FRAME.
3928
816be8b8
EZ
39292000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
3930
3931 * term.c (insert_glyphs): Pass glyph, not &glyph, to
3932 encode_terminal_code.
3933
b635321e
EZ
39342000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
3935
3936 * dispnew.c (mode_line_string): Support termcap frames as well.
3937
9b784e96
GM
39382000-01-01 Gerd Moellmann <gerd@gnu.org>
3939
27189709
GM
3940 * syntax.c (Fforward_word): Undo previous change.
3941
3942 * editfns.c (Fconstrain_to_field): Don't constrain if
3943 inhibit-field-text-motion is non-nil.
3944 (Fline_beginning_position): Undo previous change.
3945 (Fline_end_position): Ditto.
3946
3947 * syntax.c (Fforward_word): Notice field boundaries only if
3948 inhibit-field-text-motion is nil.
3949
3950 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
3951
3952 * editfns.c (Vinhibit_field_text_motion): New variable.
3953 (inhibit-field-text-motion): New DEFVAR_LISP.
3954 (Fline_beginning_position, Fline_end_position): Notice field
3955 boundaries only if inhibit-field-text-motion is nil.
3956
45158a91
GM
3957 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
3958 All calls adjusted.
3959 (x_build_heuristic_mask): Likewise.
3960 (xbm_load_image_from_file): Change error output.
3961 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
3962 (gif_load, gs_load, x_kill_gs_process): Ditto.
3963
9b784e96
GM
3964 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
3965 color indices when accessing raster pixels.
63cec32f
GM
3966 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
3967 one of :file or :data.
3968 (enum pbm_keyword_index): Add PBM_DATA.
3969 (pbm_format): Add :data.
3970 (pbm_image_p): Allow either :file or :data.
3971 (pbm_read_file): New function.
3972 (pbm_scan_number): Rewritten to read from string.
3973 (pbm_load): Support :data.
9b784e96 3974
5ad6a5fb
GM
39751999-12-31 Gerd Moellmann <gerd@gnu.org>
3976
3977 * xfns.c: New image functions adapted to Emacs conventions.
3978 (png_load, tiff_load, jpeg_load, gif_load): Always GCPRO local
3979 variable `file'.
3980
63448a4d
WP
39811999-12-31 William M. Perry <wmperry@aventail.com>
3982
3983 * xfns.c (jpeg_format): Added the :data keyword
3984 (jpeg_image_p): JPEG is valid with :file _or_ :data
3985 (jpeg_memory_src): Defined new JPEG image source to read from a
3986 memory buffer.
3987 (jpeg_load): Pay attention to the :data keyword if specified.
3988 Instantiates a jpeg_memory_src instead of jpeg_stdio_src if
3989 found.
3990 (png_format): Added the :data keyword
3991 (png_image_p): PNG is valid with :file _or_ :data
3992 (png_read_from_memory): New PNG read function to read from a
3993 memory buffer.
3994 (png_load): Pay attention to the :data keyword if specified. Uses
3995 png_set_read_fn() instead of png_init_io() if specified.
3996 (tiff_format): Added the :data keyword for TIFF images.
3997 (tiff_image_p): TIFF is valid with :file _or_ :data
3998 (tiff_read_from_memory): Defined new TIFF I/O functions to read
3999 from a memory buffer.
4000 (tiff_load): Pay attention to the :data keyword if specified.
4001 Uses TIFFClientOpen() instead of TIFFOpen() if specified.
4002 (gif_format): Added the :data keyword
4003 (gif_image_p): GIF is valid with :file _or_ :data
4004 (gif_read_from_memory): New GIF input function to read from a
4005 memory buffer.
c65d14ee 4006 (gif_load): Pay attention to the :data keyword. Uses DGifOpen()
63448a4d
WP
4007 instead of DGifOpenFileName() if specified.
4008
c880678e
GM
40091999-12-31 Gerd Moellmann <gerd@gnu.org>
4010
4011 * xdisp.c (next_element_from_buffer): Change assertion at the end
4012 because it doesn't hold when there's an overlay string at the end
4013 from which we deliver an image.
4014
8ccb9a54
EZ
40151999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
4016
4017 * msdos.c (IT_update_begin): Don't dereference members of struct
4018 window for deleted windows.
4019
12ce2351
GM
40201999-12-30 Gerd Moellmann <gerd@gnu.org>
4021
a915c648
GM
4022 * abbrev.c (Fexpand_abbrev): If expanding an abbrev which has only
4023 a hook, and the hook has a non-nil `no-self-insert' property, let
4024 the return value of the hook specify whether an expansion took
4025 place. If it returns nil, no expansion has been performed.
4026
12ce2351
GM
4027 * xterm.c (x_make_frame_visible): Wait for frame becoming visible
4028 differently.
4029
04ee4f45
EZ
40301999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
4031
4032 * msdos.c (IT_write_glyphs): Track last changes to struct glyph.
4033
7f4bc0c3
EZ
40341999-12-29 Eli Zaretskii <eliz@is.elta.co.il>
4035
4036 * dispnew.c (mode_line_string): Support MS-DOS frames.
4037
dac204bc
GM
40381999-12-29 Gerd Moellmann <gerd@gnu.org>
4039
4040 * eval.c (syms_of_eval): Initialize debugger_may_continue.
4041
7b712ad8
KH
40421999-12-29 Kenichi Handa <handa@etl.go.jp>
4043
4044 * process.c (read_process_output): Fix the args CHARPOS and LENINS
4045 to signal_after_change.
4046
adb9900f
EZ
40471999-12-28 Eli Zaretskii <eliz@is.elta.co.il>
4048
41ad069b
EZ
4049 * msdos.c (dos_set_window_size) [__DJGPP__ > 1]: If the frame
4050 dimensions changed, invalidate the mouse highlight info.
4051 (disable_mouse_highlight, help_echo, previous_help_echo): New
4052 variables.
4053 (IT_set_mouse_pointer, show_mouse_face, clear_mouse_face)
4054 (fast_find_position, IT_note_mode_line_highlight)
4055 (IT_note_mouse_highlight): New functions.
4056 (IT_update_begin): If the redisplay affects the window where the
4057 mouse highlight is, clear the highlight. If the frame where the
4058 highlight was displayed was killed, invalidate the highlight
4059 info.
4060 (IT_update_end): Reset the highlight flag. Reset the mouse
4061 highlight-defer flag.
4062 (IT_frame_up_to_date): New function, if mouse highlight was
4063 deferred due to GC, do it now.
4064 (internal_terminal_init): Initialize mouse-highlight related
4065 members of the_only_x_display. Assign IT_frame_up_to_date to
4066 frame_up_to_date_hook.
4067 (dos_rawgetc): If the mouse moved, update mouse highlight. If
4068 help_echo changed value, generate a HELP_EVENT event.
4069 (syms_of_msdos): Staticpro help_echo and previous_help_echo.
4070
adb9900f
EZ
4071 * msdos.h (struct display_info): New.
4072 (struct x_output): Add the display_info member.
4073 (FRAME_X_DISPLAY_INFO): New macro.
4074
481b5054
GM
40751999-12-28 Gerd Moellmann <gerd@gnu.org>
4076
4077 * xdisp.c (try_window_id): Compute BEG_UNCHANGED and END_UNCHANGED
4078 if MODIFF > 1.
6448a6b3 4079 (dump_glyph_row): Adapt to changes in struct glyph.
481b5054
GM
4080
4081 * buffer.c (modify_overlay): Always compute unchanged info.
4082
a2882b0d
KH
40831999-12-27 Kenichi Handa <handa@etl.go.jp>
4084
4085 * dispextern.h (FACE_FROM_ID): Cast the arg ID to `unsigned'.
4086
89ba5b5f
KH
40871999-12-27 Kenichi Handa <handa@etl.go.jp>
4088
4089 The following changes are to use more bits for face IDs.
4090
4091 * lisp.h (GLYPH): Defined as `int', not `unsigned int'. Now the
4092 lowest 8 bits are single byte character code, the bits above are
4093 face ID.
481b5054 4094 (GLYPH_MASK_FACE, GLYPH_MASK_CHAR): Adjusted for the change
89ba5b5f 4095 above.
481b5054
GM
4096 (FAST_MAKE_GLYPH, FSST_GLYPH_FACE): Likewise.
4097 (GLYPH_MASK_REV_DIR, GLYPH_MASK_PADDING): Macros deleted.
89ba5b5f
KH
4098
4099 * charset.h (CHAR_BYTES): Use ((1 << CHARACTERBITS) - 1) instead
4100 of GLYPH_MASK_CHAR.
4101
4102 * charset.c (char_bytes): Use ((1 << CHARACTERBITS) - 1) instead
4103 of GLYPH_MASK_CHAR.
4104
4105 * dispextern.h (struct glyph): Make face_id and padding_p the top
4106 level members. Change members in union `u'.
4107 (GLYPH_EQUAL_P): Check also members face_id and padding_p.
4108 (GLYPH_CHAR_AND_FACE_EQUAL_P): New macro.
4109 (SET_CHAR_GLYPH): Adjusted for the change of struct glyph.
4110 (CHAR_GLYPH_PADDING_P): Likewise.
4111 (GLYPH_FROM_CHAR_GLYPH): Likewise. Always return -1 for multibyte
4112 characters.
4113
481b5054 4114 * dispnew.c (line_hash_code, direct_output_for_insert): Adjusted
89ba5b5f
KH
4115 for the change of struct glyph.
4116 (line_draw_cost): Adjusted for the change of
4117 GLYPH_FROM_CHAR_GLYPH.
4118 (count_match): Use macro GLYPH_CHAR_AND_FACE_EQUAL_P.
4119
4120 * term.c (encode_terminal_code): Adjusted for the change of struct
4121 glyph and GLYPH_FROM_CHAR_GLYPH.
481b5054 4122 (write_glyphs, insert_glyphs, append_glyph): Adjusted for the
89ba5b5f
KH
4123 change of struct glyph.
4124
4125 * xdisp.c: All codes adjusted for the change of struct glyph.
4126
4127 * xterm.c: All codes adjusted for the change of struct glyph.
4128
5bcd116c
KH
41291999-12-27 Kenichi Handa <handa@etl.go.jp>
4130
4131 * composite.h (struct composition): Change the order of declaring
4132 members to reduce the byte size of the structure.
4133
f21b06b7
GM
41341999-12-25 Gerd Moellmann <gerd@gnu.org>
4135
4136 * search.c (looking_at_1): Reset immediate_quit before modifying
4137 global data.
4138
e36557c9
KH
41391999-12-24 Kenichi Handa <handa@etl.go.jp>
4140
4141 * process.c (read_process_output): Fix the arg FROM to
4142 update_compositions.
4143
83c8f461 41441999-12-22 Richard M. Stallman <rms@gnu.org>
f7c9e039
RS
4145
4146 * search.c (Freplace_match): For nonliteral replacement in buffer,
4147 construct all the new text first, then insert all at once.
4148
0b863bd9
DL
41491999-12-22 Dave Love <fx@gnu.org>
4150
4151 * xfns.c (Fx_show_tip): Gcpro `timeout' too.
4152
6d8e8ef3
GM
41531999-12-22 Gerd Moellmann <gerd@gnu.org>
4154
28d7281d
GM
4155 * xfns.c (Fx_create_frame): Move x_default_parameter calls that
4156 lead to size changes to after the X window has been created.
4157
e22ef6eb 4158 * xfaces.c (realize_x_face): Don't use uninitialized local
6d8e8ef3
GM
4159 variable in xassert.
4160
8affcced
KH
41611999-12-22 Kenichi Handa <handa@etl.go.jp>
4162
4163 * xfaces.c (face_color_supported_p): Check by tty_defined_color
6d8e8ef3 4164 only when the frame is not for a window system.
8affcced 4165
f2be1146
GM
41661999-12-22 Gerd Moellmann <gerd@gnu.org>
4167
deca1348
GM
4168 * buffer.c (Fset_buffer_multibyte): Arrange for a thorough
4169 redisplay after changing the multibyteness of a buffer.
4170
f2be1146
GM
4171 * xterm.c (XTread_socket): At the beginning of the loop, pass the
4172 frame's X window to XFilterEvent instead of None because that's
4173 the X window for which the IC was created. This makes dead
4174 accents work when the pointer is not in Emacs' frame.
4175 (XTread_socket) <KeyPress>: Don't call XFilterEvent here.
4176
a744a2ec
DL
41771999-12-20 Dave Love <fx@gnu.org>
4178
4179 * xfns.c (Fx_show_tip): Add missing UNGCPRO.
4180
9e6985ed
GM
41811999-12-19 Gerd Moellmann <gerd@gnu.org>
4182
4183 * eval.c (debugger_may_continue): New variable.
4184 (syms_of_eval): Add a DEFVAR_BOOL for it.
4185 (call_debugger): Bind it.
4186
3b620731
EZ
41871999-12-19 Eli Zaretskii <eliz@is.elta.co.il>
4188
4189 * msdos.c (IT_set_face): Don't swap face colors when highlight or
4190 fp->tty_reverse_p is set, unless the computed colors are identical
4191 to frame colors. Print both original and computed colors to
4192 termscript file.
4193 (IT_write_glyphs): Track the changes in handling of composite
4194 characters.
4195 (IT_set_frame_parameters): Don't set frame colors from
4196 unspecified-fg and unspecified-bg pseudo-colors.
4197
0f9a51c4
DL
41981999-12-17 Dave Love <fx@gnu.org>
4199
4200 * data.c (Fkeywordp): New function.
4201 (syms_of_data): Install it.
4202
363e4e42
EZ
42031999-12-16 Eli Zaretskii <eliz@is.elta.co.il>
4204
4205 * xfaces.c (tty_defined_color): Fix last change.
4206
cfad01b4
GM
42071999-12-15 Gerd Moellmann <gerd@gnu.org>
4208
4209 * xdisp.c (redisplay_window) <optional new window start>: Check
4210 that window start is in [BEGV..ZV].
4211
f9d2fdc4
EZ
42121999-12-15 Eli Zaretskii <eliz@is.elta.co.il>
4213
4214 * dispextern.h (FACE_TTY_DEFAULT_FG_COLOR)
4215 (FACE_TTY_DEFAULT_BG_COLOR): New macros.
4216
4217 * xfaces.c (Qunspecified_fg, Qunspecified_bg): New variables.
4218 (syms_of_xfaces): Initialize and staticpro them.
4219 (tty_defined_color): If the color name is unspecified-fg or
4220 unspecified-bg, return FACE_TTY_DEFAULT_FG_COLOR and
4221 FACE_TTY_DEFAULT_BG_COLOR, respectively, as the pixel value.
4222 (tty_color_name): If the color pixel value is either
4223 FACE_TTY_DEFAULT_FG_COLOR or FACE_TTY_DEFAULT_BG_COLOR, return
4224 Qunspecified_fg or Qunspecified_bg, respectively.
4225 (Finternal_set_lisp_face_attribute): Allow values Qunspecified_fg
4226 and Qunspecified_bg for foreground and background colors.
4227 (realize_default_face): If the foreground and background colors
4228 are not specified, default to Qunspecified_fg and Qunspecified_bg.
4229 (realize_tty_face): By default, set the face colors to
4230 FACE_TTY_DEFAULT_FG_COLOR and FACE_TTY_DEFAULT_BG_COLOR.
4231 [MSDOS]: Handle FACE_TTY_DEFAULT_FG_COLOR and
4232 FACE_TTY_DEFAULT_BG_COLOR when face colors are not defined.
4233 Reverse the colors if the default colors were reversed.
4234
4235 * dispnew.c (init_display): Initialize the frame pixels of the
4236 initial frame to FACE_TTY_DEFAULT_FG_COLOR and
4237 FACE_TTY_DEFAULT_BG_COLOR.
4238
4239 * term.c (turn_on_face): If the default fore- and background
4240 colors are reversed, enter inverse video mode. Don't send color
4241 escape sequences for unspecified foreground and background colors.
4242 (turn_off_face): Handle unspecified-fg and unspecified-bg colors.
4243
4244 * dosfns.c (unspecified_colors): New variable.
4245 (msdos_stdcolor_idx): Handle unspecified-fg and unspecified-bg
4246 color names, return FACE_TTY_DEFAULT_FG_COLOR and
4247 FACE_TTY_DEFAULT_BG_COLOR, respectively.
4248 (msdos_stdcolor_name): Handle FACE_TTY_DEFAULT_FG_COLOR and
4249 FACE_TTY_DEFAULT_BG_COLOR, return Qunspecified_fg and
4250 Qunspecified_bg, respectively.
4251
4252 * msdos.c (IT_set_face): Support FACE_TTY_DEFAULT_FG_COLOR and
4253 FACE_TTY_DEFAULT_BG_COLOR as pixel values.
4254
e19539f1
KH
42551999-12-15 Kenichi Handa <handa@etl.go.jp>
4256
4257 * coding.c (code_convert_region): Fix the secoding arg to
4258 update_compositions.
4259
5ec14d3c
KH
42601999-12-15 Kenichi Handa <handa@etl.go.jp>
4261
4262 The following changes are for the new composition mechanism. We
4263 have deleted `composition' charset and composite characters,
4264 instead introduced a special text property `composition'.
4265
4266 * Makefile.in (INTERVAL_SRC): Include composite.h.
4267 (INTERVAL_OBJ): Include composite.o.
4268 (SOME_MACHINE_OBJECTS): Include composite.o.
4269 (casefiddle.o) (dispnew.o) (indent.o) (process.o) (search.o)
4270 (syntax.o) (window.o) (xdisp.o) (xfaces.o) (xterm.o) (print.o):
4271 Depend on composite.h.
4272 (doc.o): Depend on charset.h.
4273 (keyboard.o) (textprop.o) (intervals.o): Depend on INTERVAL_SRC.
4274 (composite.o): New target.
427ec082 4275
5ec14d3c
KH
4276 * alloc.c (Fmake_string): Adjusted for the change of CHAR_STRING.
4277
4278 * callproc.c (Fcall_process): Call code_convert_string to encode
4279 arguments. Use CODING_REQUIRE_DECODING to check if the process
4280 output should be decoded.
4281
4282 * casefiddle.c: Include composite.h.
4283 (casify_object): Use MAX_MULTIBYTE_LENGTH to allocate memory for a
4284 multibyte character. Adjusted for the change of CHAR_STRING.
4285 (casify_region): Likewise. Call update_compositions.
4286
4287 * category.h (CATEGORY_SET): Delete codes for a composite
4288 character.
4289
4290 * category.c (word_boundary_p): Delete codes for a composite
4291 character.
4292 (Fmake_category_table): New function.
4293 (syms_of_category): Defsubr it.
4294
4295 * ccl.c (CCL_WRITE_CHAR): Adjusted for the change of CHAR_STRING.
4296 (ccl_driver): Delete codes for a composite character.
4297
4298 * charset.h: In this entry, just `Modified' means that codes for a
4299 composite character is deleted.
4300 (LEADING_CODE_COMPOSITION) (CHARSET_COMPOSITION)
4301 (charset_composition) (MIN_CHAR_COMPOSITION)
4302 (MAX_CHAR_COMPOSITION) (GENERIC_COMPOSITION_CHAR)
4303 (COMPOSITE_CHAR_P) (MAKE_COMPOSITE_CHAR) (COMPOSITE_CHAR_ID)
4304 (PARSE_COMPOSITE_SEQ) (PARSE_CHARACTER_SEQ): Deleted.
4305 (MAX_CHAR) (CHARSET_VALID_P) (CHARSET_DEFINED_P) (CHARSET_AT)
4306 (FIRST_CHARSET_AT) (SAME_CHARSET_P) (MAKE_NON_ASCII_CHAR)
4307 (PARSE_MULTIBYTE_SEQ) (SPLIT_NON_ASCII_CHAR) (CHAR_PRINTABLE_P):
4308 Modified.
4309 (SPLIT_STRING): Call split_string, not split_non_ascii_string.
4310 (CHAR_STRING): Delete WORKBUF argument. Call char_string, not
4311 non_ascii_char_to_string.
4312 (STRING_CHAR): Call string_to_char, not string_to_non_ascii_char.
4313 (STRING_CHAR_AND_LENGTH): Likewise.
4314 (FETCH_CHAR_ADVANCE): New macro.
4315 (MAX_COMPONENT_COUNT) (struct cmpchar_info): Deleted.
4316 (MAX_MULTIBYTE_LENGTH): New macro.
4317 (MAX_LENGTH_OF_MULTI_BYTE_FORM): Deleted.
4318 (find_charset_in_str): Argument adjusted.
4319 (CHAR_LEN): Modified.
427ec082 4320
5ec14d3c
KH
4321 * charset.c: In this entry, just `Modified' means that codes for a
4322 composite character is deleted.
4323 (Qcomposition) (leading_code_composition)
4324 (charset_composition) (min_composite_char) (cmpchar_table)
4325 (cmpchar_table_size) (n_cmpchars): Deleted.
4326 (SPLIT_COMPOSITE_SEQ): Deleted.
4327 (SPLIT_MULTIBYTE_SEQ): Modified.
4328 (char_to_string): Renamed from non_ascii_char_to_string.
4329 Modified.
4330 (string_to_char): Renamed from string_to_non_ascii_char.
4331 (split_string): Renamed from split_non_ascii_string.
4332 (char_printable_p) (Fsplit_char)
4333 (Ffind_charset_region) (Ffind_charset_string) (char_valid_p)
4334 (char_bytes) (Fchar_width) (strwidth): Modified.
4335 (find_charset_in_str): Argument CMPCHARP deleted. Modified.
4336 (Fstring): Adjusted for the change of CHAR_STRING. Modified.
4337 (hash_string) (CMPCHAR_HASH_TABLE_SIZE) (cmpchar_hash_table)
4338 (CMPCHAR_HASH_SIZE) (CMPCHAR_HASH_USED) (CMPCHAR_HASH_CMPCHAR_ID)
4339 (str_cmpchar_id) (cmpchar_component) (Fcmpcharp)
4340 (Fcmpchar_component) (Fcmpchar_cmp_rule) (Fcmpchar_cmp_rule_p)
4341 (Fcmpchar_cmp_count): Deleted.
4342 (Fcompose_string): Implemented by Emacs Lisp in composite.el.
4343 (init_charset_once): Modified.
4344 (syms_of_charset): Modified.
4345
4346 * cmds.c (internal_self_insert): Adjusted for the change of
4347 CHAR_STRING.
4348
4349 * coding.h (emacs_code_class_type): Delete the member
4350 EMACS_leading_code_composition.
4351 (COMPOSING_NO) (COMPOSING_WITH_RULE_HEAD) (COMPOSING_NO_RULE_HEAD)
4352 (COMPOSING_WITH_RULE_TAIL) (COMPOSING_NO_RULE_TAIL)
4353 (COMPOSING_WITH_RULE_RULE) (COMPOSING_HEAD_P)
4354 (COMPOSING_WITH_RULE_P): Macros deleted.
4355 (COMPOSITION_DATA_SIZE) (COMPOSITION_DATA_MAX_BUNCH_LENGTH): New
4356 macros.
4357 (struct composition_data): New structure.
4358 (CODING_FINISH_INSUFFICIENT_CMP): New macro.
4359 (struct coding_system): New members composition_rule_follows,
4360 cmp_data, cmp_data_start, cmp_data_index.
4361 (coding_save_composition) (coding_free_composition_data)
4362 (coding_adjust_composition_offset): Extern them.
4363
4364 * coding.c: Include composite.h.
4365 (DECODE_CHARACTER_ASCII): Don't handle composition here.
4366 (DECODE_CHARACTER_DIMENSION1): Likewise. Don't check the validity
4367 of multibyte code here.
4368 (DECODE_CHARACTER_DIMENSION2): Likewise.
4369 (detect_coding_emacs_mule): Change the case label from
4370 EMACS_leading_code_composition to 0x80.
4371 (detect_coding_iso2022): Handle new composition sequence.
4372 (DECODE_ISO_CHARACTER): Likewise.
4373 (check_composing_code): Deleted.
4374 (coding_allocate_composition_data): New function.
4375 (CODING_ADD_COMPOSITION_START) (CODING_ADD_COMPOSITION_END)
4376 (CODING_ADD_COMPOSITION_COMPONENT) (DECODE_COMPOSITION_START)
4377 (DECODE_COMPOSITION_END) (DECODE_COMPOSITION_RULE): New macros.
4378 (decode_coding_iso2022): Handle new composition sequence.
4379 (ENCODE_ISO_CHARACTER): Don't check composition here.
4380 (ENCODE_COMPOSITION_RULE) (ENCODE_COMPOSITION_START): New macros.
4381 (ENCODE_COMPOSITION_NO_RULE_START)
4382 (ENCODE_COMPOSITION_WITH_RULE_START): Deleted.
4383 (ENCODE_COMPOSITION_END): Handle new composition sequence.
4384 (ENCODE_COMPOSITION_FAKE_START): New macro.
4385 (encode_coding_iso2022): Handle new composition sequence.
4386 (ENCODE_SJIS_BIG5_CHARACTER): Delete superfluous `;' at the tail.
4387 (encode_coding_sjis_big5): Ignore composition.
4388 (setup_coding_system): Initialize new members of struct
4389 coding_system. Enable composition only when the coding system has
4390 `composition' property t.
4391 (coding_free_composition_data) (coding_adjust_composition_offset)
4392 (coding_save_composition) (coding_restore_composition): New
4393 functions.
4394 (code_convert_region): Call coding_save_composition for encoding
4395 and coding_allocate_composition_data for decoding. Don't skip
4396 ASCII characters if we handle composition on encoding. Call
4397 signal_after_change with Check_BORDER.
4398 (code_convert_string): Call coding_save_composition for encoding
4399 and coding_allocate_composition_data for decoding. Don't skip
4400 ASCII characters if we handle composition on encoding.
4401 (code_convert_string1): Set Vlast_coding_system_used after calling
4402 code_convert_string.
4403 (code_convert_string_norecord): Disable composition.
4404 (Fset_terminal_coding_system_internal): Likewise.
4405 (Fset_safe_terminal_coding_system_internal): Likewise.
4406 (Fset_keyboard_coding_system_internal): Likewise.
4407 (init_coding_once): Set emacs_code_class[0x80] to
4408 EMACS_invalid_code.
4409
4410 * composite.h: New file.
4411
4412 * composite.c: New file.
4413
4414 * data.c (Faref): Delete codes for a composite character..
4415 (Faset): Likewise. Adjusted for the change of CHAR_STRING.
4416
4417 * dispextern.h (enum glyph_type): New member COMPOSITE_GLYPH.
4418 (struct glyph): Add new sub-structure cmp to the union `u'.
4419 (enum display_element_type): New member IT_COMPOSITION.
4420 (enum prop_idx): New member COMPOSITION_PROP_IDX.
4421 (struct it): New members cmp_id, cmp_len.
4422
4423 * dispnew.c (direct_output_forward_char): Check point moving into
4424 or out of a composition. If so, give up direct method.
4425
4426 * doprnt.c (doprnt1): Adjusted for the change of CHAR_STRING.
4427
4428 * editfns.c (Fchar_to_string): Adjusted for the change of
4429 CHAR_STRING.
4430 (general_insert_function): Likewise.
4431 (Finsert_char): Likewise.
4432 (Fsubst_char_in_region): Likewise. Call update_compositions.
4433 (Ftranslate_region): Call update_compositions.
4434 (Ftranspose_regions): Call update_compositions.
4435
4436 * emacs.c (main): Call syms_of_composite.
4437
4438 * fileio.c (Fsubstitute_in_file_name): Adjusted for the change of
4439 CHAR_STRING.
4440 (Finsert_file_contents): Set Vlast_coding_system_used before
4441 calling signal_after_change. Call update_compositions if some
4442 texts are inserted..
4443 (Fwrite_region): Adjusted for the change of a_write and e_write.
4444 (a_write): Argument changed. Work based on character position,
4445 not byte position.
4446 (e_write): Argument changed. Handle new way of composition.
4447
4448 * fns.c (Flength): The length of char-table is MAX_CHAR.
4449 (concat): Adjusted for the change of CHAR_STRING.
4450 (Ffillarray): Adjusted for the change of CHAR_STRING.
4451 (Fset_char_table_default): Delete codes for a composite character.
4452 (hash_put): Return hash index.
4453
4454 * fontset.h (struct font_info): New member vertical_centering.
4455 (Vvertical_centering_font_regexp): Extern it.
4456
4457 * fontset.c (Vvertical_centering_font_regexp): New variable.
4458 (syms_of_fontset): Declare it as a Lisp variable and initialize.
4459 Set Vignore_relative_composition to nil.
4460 (fs_load_font): Initialize `vertical_centering' of struct
4461 font_info.
4462
4463 * indent.c (check_composition): New function.
4464 (MULTIBYTE_BYTES_WIDTH): Call STRING_CHAR_AND_LENGTH with
4465 MAX_MULTIBYTE_LENGTH, not MAX_LENGTH_OF_MULTI_BYTE_FORM.
4466 (current_column_1): Handle new way of composition.
4467 (Fmove_to_column): Likewise.
4468 (compute_motion): Likewise.
4469
4470 * insdel.c (copy_text): Adjusted for the change of CHAR_STRING.
4471 (insert_char): Likewise.
4472 (insert): Call update_compositions.
4473 (insert_and_inherit): Likewise.
4474 (insert_before_markers): Likewise.
4475 (insert_before_markers_and_inherit): Likewise.
4476 (insert_from_string): Likewise.
4477 (insert_from_string_before_markers): Likewise.
4478 (insert_from_buffer): Likewise.
4479 (replace_range): Likewise.
4480 (count_combining_composition): Deleted.
4481 (count_combining_before): Delete codes for a composite character.
4482 (count_combining_after): Likewise.
4483 (del_range_1): Call update_compositions.
4484 (del_range_byte): Likewise.
4485 (del_range_both): Likewise.
4486 (Fcombine_after_change_execute): Likewise.
4487
4488 * intervals.h: Include composite.h.
4489 (get_property_and_range): Extern it.
4490 (Vtext_property_default_nonsticky): Extern it.
427ec082 4491
5ec14d3c
KH
4492 * intervals.c (adjust_intervals_for_insertion): To check stickines
4493 of properties, pay attention to text-property-default-nonsticky.
4494 (merge_properties_sticky): Likewise.
4495 (get_property_and_range): New function.
4496
4497 * keyboard.c (Vdisable_point_adjustment): New variable.
4498 (Vglobal_disable_point_adjustment): New variable.
4499 (syms_of_keyboard): Declare them as Lisp variables.
4500 (command_loop_1): Check them and call adjust_point_for_property if
4501 necessary.
4502 (adjust_point_for_property): New function.
4503
4504 * keymap.c (push_key_description): Adjusted for the change of
4505 CHAR_STRING.
4506 (Ftext_char_description): Likewise.
4507
4508 * lisp.h (QCtest, QCweakness, Qequal): Extern them.
4509 (hash_put): Adjusted for the change of the definition.
4510 (signal_after_change): Likewise.
4511 (check_point_in_composition): Extern it.
4512
4513 * lread.c (readchar): Adjusted for the change of CHAR_STRING.
4514 Delete a code that handles an invalid too-long multibyte sequence
4515 because we are now sure that we never encounter with such a
4516 sequence.
4517 (read_multibyte): Use macro MAX_MULTIBYTE_LENGTH, not
4518 MAX_LENGTH_OF_MULTI_BYTE_FORM.
4519 (init_obarray): Likewise.
4520 (read1): Likewise. Adjusted for the change of CHAR_STRING.
4521
4522 * print.c (printchar): Adjusted for the change of CHAR_STRING.
4523
4524 * process.c: Include composite.h.
4525 (read_process_output): Call update_compositions.
4526
4527 * regex.c (regex_compile): Adjusted for the change of CHAR_STRING.
4528
4529 * search.c (search_buffer): Adjusted for the change of CHAR_STRING.
4530
4531 * syntax.h (SYNTAX_ENTRY_INT): Delete codes for a composite
4532 character.
4533
4534 * term.c (encode_terminal_code): Delete codes for a composite
4535 character. Adjusted for the change of CHAR_STRING.
4536 (produce_glyphs): When called, it->what can be IT_COMPOSITION.
4537 Delete codes for a composite character.
4538
4539 * textprop.c (Vtext_property_default_nonsticky): New variable
4540 (syms_of_textprop): Declare it as a Lisp variable.
4541
4542 * window.c (Frecenter): Clear all caches of compositions.
4543
4544 * xdisp.c (it_props): Add an entry for composition.
4545 (face_before_or_after_it_pos): For composition, check face of a
4546 character after the composition.
4547 (handle_composition_prop): New function.
4548 (get_next_display_element): Adjusted for the change of
4549 CHAR_STRING.
4550 (set_iterator_to_next): Handle the case that it->method ==
4551 next_element_from_composition.
4552 (next_element_from_composition): New function.
4553 (message_dolog): Adjusted for the change of CHAR_STRING.
4554 (set_message_1): Likewise.
4555 (check_point_in_composition): New function.
4556 (reconsider_clip_changes): If point moved into or out of
4557 composition, set b->clip_changed to 1 to force updating of the
4558 screen.
4559 (disp_char_vector): Delete codes for a composite character.
4560 (decode_mode_spec_coding): Adjusted for the change of CHAR_STRING.
4561
4562 * xfaces.c (choose_face_fontset_font): Delete codes for a
4563 composite character.
4564 (realize_x_face): Likewise. Change a place to set local variable
4565 `f' to avoid a bug of GCC 2.8.1 on Solaris.
4566
4567 * xfns.c: Include intervals.h.
4568 (syms_of_xfns): Make `display' property nonsticky by default.
4569
4570 * xselect.c (lisp_data_to_selection_data): Adjusted for the change
4571 for find_charset_in_str.
4572
4573 * xterm.h (struct x_output): Change member font_baseline to
4574 baseline_offset.
4575
4576 * xterm.c (x_append_glyph): Setup members of struct glyph properly
4577 for composition.
4578 (x_append_composite_glyph): New function.
4579 (VCENTER_BASELINE_OFFSET): New macro.
4580 (x_produce_glyphs): If it->what == IT_COMPOSITION, setup members
4581 of struct it for the composition. Cache pixel offsets in the
4582 struct composition. Delete codes for a composite character.
4583 Handle Vignore_relative_composition in composition code.
4584 (struct glyph_string): Delete member cmpcharp, add new member cmp.
4585 (x_set_cursor_gc): Check s->cmp, not s->cmpcharp.
4586 (x_compute_glyph_string_overhangs): Likewise.
4587 (x_get_glyph_overhangs): Delete codes for a composite character.
4588 (x_right_overwritten): Check s->cmp, not s->cmpcharp.
4589 (x_draw_glyph_string_background): Likewise. Delete codes for
4590 checking s->gidx for a composition.
4591 (x_draw_glyph_string_foreground): Delete code for a composite
4592 character.
4593 (x_draw_composite_glyph_string_foreground): New function.
4594 (x_draw_glyph_string_box): Check s->cmp, not s->cmpcharp.
4595 (x_draw_glyph_string): Handle the case of COMPOSITE_GLYPH.
4596 (struct work): Deleted.
4597 (x_fill_composite_glyph_string): Argument changed. Mostly
4598 rewritten for that.
4599 (x_fill_glyph_string): Don't check CHARSET_COMPOSITION.
4600 (BUILD_CHAR_GLYPH_STRINGS): Don't handle composition here.
4601 (BUILD_COMPOSITE_GLYPH_STRING): New macro.
4602 (BUILD_GLYPH_STRINGS): For composition, call
4603 BUILD_COMPOSITE_GLYPH_STRING.
4604 (x_new_font): Initialize f->output_data.x->baseline_offset, not
4605 f->output_data.x->font_baseline.
4606
c3c60f13
GM
46071999-12-14 Gerd Moellmann <gerd@gnu.org>
4608
4609 * xterm.c (show_mouse_face): Don't use updated_area, use
4610 TEXT_AREA.
4611
83c8f461 46121999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
4613
4614 * minibuf.c (Fall_completions): Doc fix.
4615
83c8f461 46161999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
4617
4618 * macros.c (Fstart_kbd_macro): Handle case where last-kbd-macro
4619 has been changed by the Lisp code.
4620
d8eccf12
GM
46211999-12-12 Gerd Moellmann <gerd@gnu.org>
4622
4623 * xfns.c: Indentation fixes.
4624
ae56feae
SM
46251999-12-10 Stefan Monnier <monnier@cs.yale.edu>
4626
4627 * xterm.c (x_initialize): Only setup xaw3d_* if they've been declared.
4628
dfa1c6ae
GM
46291999-12-10 Gerd Moellmann <gerd@gnu.org>
4630
4631 * frame.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL)
4632 [!MSDOS && !WINDOWSNT && !macintosh]: Moved here from xterm.h.
4633
4634 * xterm.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL): Moved
4635 to frame.h.
4636
ec18280f
SM
46371999-12-09 Stefan Monnier <monnier@cs.yale.edu>
4638
4639 * keyboard.c (Qratio): New symbol.
4640 (scroll_bar_parts): Add `Qratio' to it.
4641 (syms_of_keyboard): Init `Qratio'.
4642 * termhooks.h (scroll_bar_part): Add `scroll_bar_move_ratio'.
4643 * xterm.c (#includes): Allow compilation with only Xaw.
4644 (xaw3d_arrow_scroll, xaw3d_pick_top): New variables.
4645 (xt_action_hook): Replace XAW3D by XAW.
4646 (xaw3d_jump_callback): Renamed to xaw_jump_callback.
4647 (xaw_jump_callback): Renamed from xaw3d_jump_callback.
4648 Determine epsilon dynamically and don't try to be too clever.
4649 (xaw3d_scroll_callback): Renamed to xaw_scroll_callback.
4650 (xaw_scroll_callback): Renamed from xaw3d_scroll_callback.
4651 Handle both Xaw3d with arrow-scrollbars and with Xaw-style
4652 scrollbar (using `ratio').
4653 (x_create_toolkit_scroll_bar): Try to detect which style of Xaw3d
4654 scrollbar we have so as to set it up more optimally and to fix
4655 xaw3d_arrow_scroll and xaw3d_pick_top.
4656 (x_set_toolkit_scroll_bar_thumb): Try to maintain 2 spare pixels at the
4657 bottom of the Xaw3d scrollbar, to work around its tendency to refuse
4658 shrinking the thumb. Also make sure that `XawScrollbarSetThumb'
4659 is not ignored, using a major gross hack.
4660 (x_initialize): Init default values for xaw3d_arrow_scroll and
4661 xaw3d_pick_top.
4662
83b6d970
DL
46631999-12-09 Dave Love <fx@gnu.org>
4664
4665 * frame.h: (PIX_TYPE) [! HAVE_X_WINDOWS]: Define PIX_TYPE.
4666
3648c842
GM
46671999-12-08 Gerd Moellmann <gerd@gnu.org>
4668
4669 * eval.c: Remove conditional compilation on `standalone'.
4670 (call_debugger): When entering the debugger while redisplaying,
4671 reset redisplaying_p, and go back to the top-level if the debugger
4672 returns.
4673
05e71564
GM
46741999-12-07 Gerd Moellmann <gerd@gnu.org>
4675
4676 * xfaces.c (x_set_menu_resources_from_menu_face): Make sure
4677 basic faces are realized before trying to use face `menu'.
4678
4679 * window.c (delete_window): Block input for the time window
4680 matrices are being changed.
4681
b46cd536
DL
46821999-12-07 Dave Love <fx@gnu.org>
4683
4684 * lread.c (Fintern_soft): Fix newlines in doc string.
4685
96acb1f7
GM
46861999-12-07 Alexandre Oliva <oliva@dcc.unicamp.br>
4687
4688 * unexelf.c: Include <syms.h>, not <sym.h> on IRIX. Removed
4689 duplicate definition of ElfW.
4690 (find_section): Copied from unexsgi.c.
4691 (unexec): Use find_section. Adjust whitespace. Initialize
4692 new_data2_offset based on old_data, not sbss (this fixes a bug on
4693 IRIX6). Change #ifdef __mips to __sgi, since it's IRIX-specific.
4694 Adjust test for presence of .mdebug section to the new return
4695 value of find_section.
427ec082 4696
96acb1f7
GM
46971999-12-07 Gerd Moellmann <gerd@gnu.org>
4698
4699 * unexelf.c: Merge changes from 20.5.
4700 (unexec): Handle .lit4 and .lit8 unconditionally.
4701
4702 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexelf.o instead of
4703 unexsgi.o again.
427ec082 4704
96acb1f7
GM
4705 * m/iris5d.h (UNEXEC): Likewise.
4706
7dae4502
SM
47071999-12-06 Stefan Monnier <monnier@cs.yale.edu>
4708
4709 * editfns.c (Fdelete_and_extract_region): New function.
05e71564
GM
4710 (syms_of_editfns): Register it.
4711 * insdel.c (del_range): Update del_range_1 call.
7dae4502
SM
4712 (del_range_1, del_range_2): Add a ret_string argument to
4713 request that the deleted text be returned.
4714 (del_range_byte, del_range_both): Update del_range_2 call.
05e71564 4715 * lisp.h (del_range_1, del_range_2): Change prototype
7dae4502
SM
4716 * casefiddle.c (casify_region): Update del_range_1 call.
4717 * coding.c (code_convert_region): Update del_range_2 call.
4718 * fileio.c (Finsert_file_contents): Update del_range_2 call.
4719
397e4fae
GM
47201999-12-06 Gerd Moellmann <gerd@gnu.org>
4721
4722 * xfaces.c (set_lface_from_font_name): Fix incomplete merge.
4723
3d973f71
GM
47241999-12-04 Hrvoje Niksic <hniksic@iskon.hr>
4725
4726 * lread.c (Fintern_soft): Accept a symbol argument.
427ec082 4727
740e985f
EZ
47281999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
4729
4730 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Reduce to 40000.
809f3d51
EZ
4731
4732 * insdel.c (adjust_markers_for_delete): Fix last change.
4733
2d764c78
EZ
47341999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
4735
4736 Changes for automatic remapping of X colors on terminal frames:
4737
4738 * xfaces.c (XColor) [!HAVE_X_WINDOWS]: Provide a typedef for non-X
4739 frames.
4740 (Vface_tty_color_alist): Remove.
4741 (tty_defined_color): New function.
4742 (defined_color): Rewrite to support any type of frame.
4743 (tty_color_name): New function.
4744 (face_color_supported_p, Fface_color_gray_p,
4745 Fface_color_supported_p): Support non-X frames.
4746 (load_color): Enclose the color name in quotes, in the log
4747 messages. Remove DOS-specific version of load_color.
4748 (realize_tty_face): Take the supported colors from
4749 tty-color-alist. Support translation of X colors to the closest
4750 tty color, for both MSDOS and tty frames.
4751 [MSDOS]: Don't invert face colors if they were taken from the
4752 frame colors.
4753 (Fface_register_tty_color, Fface_clear_tty_colors): Remove.
4754
4755 * frame.h (struct x_output) [!MSDOS, !WINDOWSNT, !HAVE_X_WINDOWS]:
4756 Define a mostly empty surrogate.
4757 (tty_display): Declare.
4758
4759 * frame.c (make_terminal_frame) [!macintosh]: Don't use
4760 tty_display.
4761 (Fframe_parameters): Don't invert colors of non-FRAME_WINDOW_P
4762 frames when the frame's param_alist includes 'reverse.
4763 (tty_display): Define.
4764 (make_terminal_frame) [!MSDOS]: Assign &tty_display to the
4765 output_data.x member.
4766 (Fframe_parameters): Return foreground and background color names
4767 on tty frames as well, in addition to MSDOS frames.
4768
4769 * msdos.h (DisplayWidth, DisplayHeight): Changes for Lisp_Object
4770 selected_frame.
4771 (struct x_output): Remove unused members; document who uses each
4772 member.
4773 (FRAME_PARAM_FACES, FRAME_N_PARAM_FACES, FRAME_DEFAULT_PARAM_FACE,
4774 FRAME_MODE_LINE_PARAM_FACE, FRAME_COMPUTED_FACES,
4775 FRAME_N_COMPUTED_FACES, FRAME_SIZE_COMPUTED_FACES,
4776 FRAME_DEFAULT_FACE, FRAME_MODE_LINE_FACE, unload_color): Remove
4777 unused macro definintions.
4778
4779 * msdos.c (IT_set_frame_parameters): Don't call
4780 recompute_basic_faces, the next redisplay will, anyway.
4781 (x_current_display): Remove unused variable.
4782 Many functions: changes for Lisp_object selected_frame.
4783 (IT_set_face): If the tty_reverse_p flag is set for the face,
4784 reverse the foreground and background colors.
4785 (Fmsdos_remember_default_colors): New function.
4786 (syms_of_msdos): Defsubr it.
4787 (IT_set_frame_parameters): Use initial_screen_colors[] when
4788 creating a new frame. If the frame parameters include 'reverse,
4789 swap the foreground and background colors.
4790 (internal_terminal_init): Initialize initial_screen_colors to -1.
4791 (syms_of_msdos): Add DEFVAR_BOOL for x-stretch-cursor, to shut up
4792 cus-start.el.
4793
4794 * Makefile.in (lisp, shortlisp): Add lisp/term/tty-colors.elc.
4795
4796 * xfns.c (x_defined_color): Rename from defined_color. All
4797 callers changed.
4798 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
4799 all callers changed.
4800 (Fxw_color_values): Renamed from Fx_color_values; all callers
4801 changed.
4802 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
4803 callers changed.
4804 (x_window_to_frame, x_any_window_to_frame,
4805 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
4806 x_top_window_to_frame): Use !FRAME_X_P instead of
4807 f->output_data.nothing.
4808 * xterm.h (x_defined_color): Rename from defined_color.
4809
4810 * w32fns.c (x_window_to_frame): Use FRAME_W32_P instead of
4811 f->output_data.nothing.
4812 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
4813 all callers changed.
4814 (Fxw_color_values): Renamed from Fx_color_values; all callers
4815 changed.
4816 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
4817 callers changed.
4818
4819 * dispextern.h (tty_color_name): Add prototype.
4820
4821 * xmenu.c (menubar_id_to_frame): Use FRAME_WINDOW_P instead of
4822 f->output_data.nothing.
4823 * w32menu.c (menubar_id_to_frame): Likewise.
4824 * w32term.h (w32_output): Declare.
4825
4826 * dosfns.c (Qmsdos_color_translate): Remove.
4827 (msdos_stdcolor_name): Now returns a Lisp_Object.
4828 * dosfns.h (Qmsdos_color_translate): Remove.
4829
4830 * s/msdos.h (INTERNAL_TERMINAL): Add entries for color support.
4831
b3e5232e
KH
48321999-12-06 Kenichi Handa <handa@etl.go.jp>
4833
4834 * fileio.c (decide_coding_unwind): Renamed from
4835 set_auto_coding_unwind.
4836 (Finsert_file_contents): Make single unwind protect to call both
4837 Vset_auto_coding_function and Ffind_operation_coding_system.
4838
4839 * insdel.c (adjust_markers_for_delete): Make it non-static.
4840
db0e466c
SM
48411999-12-04 Stefan Monnier <monnier@cs.yale.edu>
4842
4843 * regex.c (regex_compile): Recognize *?, +? and ?? as non-greedy
4844 operators and handle them properly.
4845 * regex.h (RE_ALL_GREEDY): New option.
4846 (RE_UNMATCHED_RIGHT_PAREN_ORD): Moved to the end where alphabetic
4847 sorting would put it.
4848 (RE_SYNTAX_AWK, RE_SYNTAX_GREP, RE_SYNTAX_EGREP)
4849 (_RE_SYNTAX_POSIX_COMMON): Use the new option to keep old behavior.
4850
22afa6e8
DL
48511999-12-04 Dave Love <d.love@dl.ac.uk>
4852
4853 * m/arm.h: New file.
4854
40afb967
DL
48551999-12-03 Dave Love <fx@gnu.org>
4856
4857 * editfns.c (Fmessage_or_box): Use use_dialog_box.
4858
ddf8eff5
GM
48591999-12-02 Gerd Moellmann <gerd@gnu.org>
4860
4861 * s/usg5-4.h (LIBS_SYSTEM): Add -lgen because that's needed
4862 for building with Motif.
4863
4864 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexsgi.o instead of
4865 unexelf.o.
427ec082 4866
ddf8eff5
GM
4867 * m/iris5d.h (UNEXEC): Use unexsgi.o instead of unexelf.o.
4868
fa09a82d
DL
48691999-12-01 Dave Love <fx@gnu.org>
4870
4871 * emacs.c (main): Set LANG=C iff AX3_2 defined.
4872
ddf8eff5
GM
48731999-11-28 Gerd Moellmann <gerd@gnu.org>
4874
4875 * systime.h (EMACS_TIME_CMP, EMACS_TIME_EQ, EMACS_TIME_NE)
4876 (EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT,EMACS_TIME_LE): New
4877 macros.
4878
4879 * config.in (HAVE_SETITIMER, HAVE_UALARM): New.
4880
fa09a82d
DL
48811999-11-28 eliz <eliz@dlpx1>
4882
4883 * emacs.c (synchronize_locale): Avoid compiler warnings about
4884 pointer type mismatch.
4885
f9632fc8
GM
48861999-11-28 Gerd Moellmann <gerd@gnu.org>
4887
717d0121
GM
4888 * window.c (Fwindow_end): Don't call temp_set_pt_both with
4889 out of range position.
4890
427ec082 4891 * xterm.c (XTread_socket) <ClientMessage, Xatom_Scrollbar>:
f9632fc8
GM
4892 Switch off busy-cursor by setting inhibit_busy_cursor to 2.
4893
59c65f1e
EZ
48941999-11-28 Eli Zaretskii <eliz@is.elta.co.il>
4895
613a8346
EZ
4896 * charset.c (Fmake_char_internal): Print the charset ID when
4897 signalling an error.
4898
59c65f1e
EZ
4899 * emacs.c (synchronize_locale): Avoid compiler warnings about
4900 pointer type mismatch.
4901
83c8f461 49021999-11-26 Richard M. Stallman <rms@gnu.org>
d01f3570
RS
4903
4904 * editfns.c (Fdelete_field): Make it noninteractive. Return nil.
4905
18df9369
GM
49061999-11-26 Gerd Moellmann <gerd@gnu.org>
4907
65a3ccf7
GM
4908 * puresize.h (BASE_PURESIZE): Increase to 550000.
4909
b3b98592
GM
4910 * textprop.c (set_text_properties): New function. Like
4911 Fset_text_properties, but with additional parameter
4912 SIGNAL_AFTER_CHANGE_P. If that is nil, don't signal after
4913 changes.
4914 (Fset_text_properties): Use it.
4915
4916 * insdel.c (insert_1_both): Call set_text_properties with last
4917 parameter nil so that no after changes will be signaled.
4918
4919 * lisp.h: Add prototype for set_text_properties.
4920
18df9369
GM
4921 * xfaces.c (set_lface_from_font_name): Fix previous change.
4922 (recompute_basic_faces): Change assert to abort.
4923
71a8e74b
DL
49241999-11-25 Dave Love <fx@gnu.org>
4925
4926 * fns.c (Fnthcdr, Fnreverse): Inline cdr.
4927 (Fmember, Fdelq, Fdelete): Inline car.
4928 (Fy_or_n_p): Doc fix.
4929
bc6a5782
GM
49301999-11-25 Gerd Moellmann <gerd@gnu.org>
4931
3221576b 4932 * xfaces.c (set_lface_from_font_name): New parameter may_fail_p.
18df9369 4933 Callers changed. If specified font name is bogus, and may_fail_p
3221576b
GM
4934 is not set, try to use a reasonable default.
4935
bc6a5782
GM
4936 * dispnew.c (direct_output_for_insert): Set glyph row's
4937 displays_text_p flag. Correct window's window_end_vpos if
4938 necessary.
4939
0c8559bb
PE
49401999-11-25 Paul Eggert <eggert@twinsun.com>
4941
4942 * emacs.c (fixup_locale): Don't bother to record initial locale.
4943 (synchronize_locale): If the desired locale is nil,
4944 treat it as if it were the empty string,
4945 so that we set the locale from the environment.
4946
35737351
KH
49471999-11-25 Kenichi Handa <handa@etl.go.jp>
4948
4949 * fileio.c (Finsert_file_contents): Set buffer-file-coding-system
4950 of the current buffer via Fset.
4951
5562b47f
DL
49521999-11-24 Dave Love <fx@gnu.org>
4953
5562b47f
DL
4954 * xfaces.c: Don't duplicate Qmode_line definition done elsewhere.
4955
4956 * xfns.c: Don't duplicate Qdisplay definition done elsewhere.
4957
00da0e4a
GM
49581999-11-24 Gerd Moellmann <gerd@gnu.org>
4959
4960 * lisp.h (enum pvec_type): Put PVEC_FLAG in #if 0.
4961
4962 * emacs.c (PVEC_FLAG): New variable.
4963
b1775dc1
GM
49641999-11-23 Gerd Moellmann <gerd@gnu.org>
4965
4966 * unexaix.c (unexec): Use unsigned instead of uintptr_t because
4967 that fails on IBM PowerPC, AIX 4.2.
427ec082 4968
08de6200
EZ
49691999-11-22 Eli Zaretskii <eliz@is.elta.co.il>
4970
4971 * buffer.c (syms_of_buffer): Add %z, %Z, %m and %& to the doc
4972 string of mode-line-format. Remove the obsolete %t.
4973
02fda8ff
GM
49741999-11-22 Gerd Moellmann <gerd@gnu.org>
4975
f2fa858f
GM
4976 * dispnew.c (direct_output_for_insert): Increment glyph positions
4977 for glyphs from buffer text only.
4978
02fda8ff
GM
4979 * emacs.c (gdb_valbits, gdb_gctypebits, gdb_emacs_intbits)
4980 (gdb_data_seg_bits): New variables.
427ec082 4981
02fda8ff
GM
4982 * lisp.h (enum gdb_lisp_params): Put in #if 0, since it doesn't
4983 work on systems not allowing enumerators > INT_MAX, and it
4984 won't work if EMACS_INT is long long.
4985
1b0d24e7
PE
49861999-11-22 Paul Eggert <eggert@twinsun.com>
4987
4988 Port to SunOS 4.1.x again. Help out with Alpha port.
4989 Rename messages-locale to system-messages-locale,
4990 and likewise for time-locale.
427ec082 4991
1b0d24e7
PE
4992 * callproc.c (strerror): Remove decl.
4993 * fileio.c (strerror): Likewise.
4994 * process.c (strerror): Likewise.
4995 * emacs.c (strerror): Likewise.
4996 (Vsystem_messages_locale): Renamed from Vmessages_locale.
4997 All uses changed.
4998 (Vprevious_system_messages_locale): Likewise, from
4999 Vprevious_messages_locale.
5000 (Vsystem_time_locale): Likewise, from Vtime_locale.
5001 (Vprevious_system_time_locale): Likewise, from Vprevious_time_locale.
5002 (ABORT_RETURN_TYPE): New macro.
5003 (abort): Return type is now ABORT_RETURN_TYPE.
5004 (main): Always invoke init_signals, even if POSIX_SIGNALS is not
5005 defined.
5006 (syms_of_emacs): messages-locale -> system-messages-locale,
5007 previous-messages-locale -> previous-system-messages-locale,
5008 time-locale -> system-time-locale,
5009 previous-time-locale -> previous-system-time-locale.
5010
5011 * gmalloc.c (PP, __ptr_t): Assume ANSI C if STDC_HEADERS is defined.
5012 (const): Do not define; that's config.h's job.
5013 (<limits.h>): Include if HAVE_LIMITS_H is defined.
5014 (CHAR_BIT): Move test for definedness outside of limits.h condition.
5015 (<stddef.h>): Include if STDC_HEADERS is defined.
5016 (FREE_RETURN_TYPE): New macro.
5017 (free): Return type is now FREE_RETURN_TYPE.
5018
5019 * lisp.h (synchronize_system_time_locale): Renamed from
5020 synchronize_time_locale. All uses changed.
5021 (synchronize_system_messages_locale): Likewise, from
5022 synchronize_messages_locale.
5023
5024 * m/alpha.h (malloc, realloc, calloc): Remove decls;
5025 stdlib.h now does this.
5026
5027 * process.c (sys_siglist): Remove.
5028
5029 * s/sunos4-0.h (ABORT_RETURN_TYPE, FREE_RETURN_TYPE):
5030 New macros.
5031
5032 * syntax.c (scan_sexps_forward): Use abort, not assert.
5033
5034 * sysdep.c (my_sys_siglist): New var.
5035 (sys_siglist): New macro. Remove old initialized vars of same name.
5036 (init_signals): Initialize sys_siglist.
5037
5038 * xfns.c (abort): Remove decl; stdlib.h now does this.
5039
0dcd5b54
DL
50401999-11-18 Dave Love <fx@gnu.org>
5041
946173ad
DL
5042 * filelock.c: Add forward declaration for get_boot_time_1.
5043
0dcd5b54
DL
5044 * dispnew.c (Finternal_show_cursor_p): Fix doc string.
5045
71447e8f
GM
50461999-11-18 Gerd Moellmann <gerd@gnu.org>
5047
5048 * buffer.h (struct buffer_text): Add comment about moving
5049 buffer text if REL_ALLOC is defined.
5050
eeedff63
KH
50511999-11-18 Kenichi Handa <handa@etl.go.jp>
5052
5053 * lisp.h (KEY_DESCRIPTION_SIZE): New macro.
5054
5055 * keyboard.c (echo_char): Use KEY_DESCRIPTION_SIZE to check free
5056 memory for push_key_description.
5057
5058 * keymap.c (Fsingle_key_description): Use KEY_DESCRIPTION_SIZE to
5059 allocate memory for push_key_description.
5060 (describe_buffer_bindings): Likewise.
5061
5d7e4a2c
GM
50621999-11-17 Gerd Moellmann <gerd@gnu.org>
5063
5064 * xfns.c (Fx_show_busy_cursor): Doc-fix.
5065 (Fx_hide_busy_cursor): Ditto.
5066
50671999-11-17 Marco Walther <walther@siemens-pyramid.com>
5068
5069 * unexsni.c (unexec): Handle .rel.dyn section.
5070
b5b41e02
DL
50711999-11-16 Dave Love <fx@gnu.org>
5072
5073 * doc.c (Fdocumentation): Remove gcpro here too.
5074
e35b6123
GM
50751999-11-16 Gerd Moellmann <gerd@gnu.org>
5076
5077 * keyboard.c (command_loop_1): Remove no_redisplay.
5078
83c8f461 50791999-11-16 Richard M. Stallman <rms@gnu.org>
0a14b9bb
GM
5080
5081 * print.c (PRINTPREPARE): Don't call setup_echo_area_for_printing
5082 in noninteractive.
5083
b05d3bee
GM
50841999-11-14 Gerd Moellmann <gerd@gnu.org>
5085
5bcfeb49
GM
5086 * xdisp.c (ensure_echo_area_buffers): New.
5087 (with_echo_area_buffer): Use it.
5088 (setup_echo_area_for_printing): Ditto.
5089
b05d3bee
GM
5090 * buffer.c (indicate-empty-lines): Doc-fix.
5091
9b2e6e4c
GM
50921999-11-12 Gerd Moellmann <gerd@gnu.org>
5093
e7f90eab
GM
5094 * term.c (term_init): If "op" isn't available, don't support color
5095 because we can't switch back to the default foreground and
5096 background.
5097
9b2e6e4c
GM
5098 * doc.c (Fdocumentation_property): Remove GCPRO because
5099 Fsubstitute_command_keys gcpro's the string.
5100
1bf21027
KH
51011999-11-12 Kenichi Handa <handa@etl.go.jp>
5102
5103 * editfns.c (Ftranslate_region): Check the buffer multibyteness.
5104
3bc6df53
GM
51051999-11-11 Gerd Moellmann <gerd@gnu.org>
5106
5107 * print.c, keymap.c, indent.c, insdel.c, keyboard.c, intervals.c,
5108 lread.c, textprop.c, undo.c, emacs.c, lisp.h, intervals.h,
5109 buffer.h, config.in, Makefile.in: Remove USE_TEXT_PROPERTIES.
5110
35a5514b
GM
51111999-11-10 Gerd Moellmann <gerd@gnu.org>
5112
5113 * xfns.c (QCuser_data): Removed.
5114 (syms_of_xfns): Initialization of QCuser_data removed.
5115 (parse_image_spec): Don't handle :user-data specially. Allow
5116 unknown keys. Remove parameter ALLOW_OTHER_KEYS.
5117 (xbm_image_p, xbm_load, xpm_image_p, pbm_image_p, png_image_p)
5118 (tiff_image_p, jpeg_image_p, gif_image_p, gs_image_p): Call
5119 parse_image_spec accordingly.
5120
83c8f461 51211999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5122
5123 * cmds.c (Fbeginning_of_line): Doc fix.
5124 (Fend_of_line): Doc fix.
5125
5126 * editfns.c (Fline_beginning_position): If N is not 1,
5127 pass t to Fconstrain_to_field for ESCAPE-FROM-EDGE.
5128
5129 * syntax.c (Fforward_word): Handle fields even if would have hit
5130 an edge of the buffer. Return nil if affected by fields.
5131
83c8f461 51321999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5133
5134 * editfns.c (preceding_pos): Function deleted.
5135 (text_property_stickiness): Decrement POS directly.
5136 Fix a confusion that used PT instead of POS.
5137
5138 * editfns.c (find_field): Properly handle the case
5139 of a field boundary where `field' inherits from neither side.
5140
5141 * editfns.c (Ffield_beginning, Ffield_end): Doc fixes.
5142 (Ferase_field, Ffield_string, Ffield_string_no_properties): Doc fixes.
5143
fa9aabf6
GM
51441999-11-08 Gerd Moellmann <gerd@gnu.org>
5145
5146 * bytecode.c (Fbyte_code) <BinsertN, Bcall>: Do the
5147 BEFORE_POTENTIAL_GC before DISCARD.
5148
4015b3c0
GM
51491999-11-07 Gerd Moellmann <gerd@gnu.org>
5150
033a5fa3
GM
5151 * alloc.c (Fgarbage_collect): Call unmark_byte_stack.
5152
5153 * lisp.h: Add prototype for unmark_byte_stack.
5154
5155 * bytecode.c (mark_byte_stack): Use XMARKBIT and XMARK.
5156 (unmark_byte_stack): Renamed from relocate_byte_pcs. Use
5157 XUNMARK.
5158
55b064bd
GM
5159 * xdisp.c (resize_mini_window): Fix computation of needed
5160 mini-window height.
5161
5162 * alloc.c, buffer.c, editfns.c, xdisp.c: Remove conditional
5163 compilation on USE_TEXT_PROPERTIES.
01e9b9df 5164
4015b3c0 5165 * Fbyte_code: Use block statements in cases and declare v1 and v2
60af03f1 5166 locally there. Rearrange case statements so that those most
4015b3c0
GM
5167 frequently executed come first. Avoid goto's in frequently
5168 executed cases.
5169
fe512f27
GM
51701999-11-05 Gerd Moellmann <gerd@gnu.org>
5171
dd59e217
GM
5172 * bytecode.c (Fbyte_code): Use BEFORE_POTENTIAL_GC and
5173 AFTER_POTENTIAL_GC around internal_catch.
5174
bcf28080
GM
5175 * alloc.c (Fgarbage_collect): Call mark_byte_stack and
5176 relocate_byte_pcs.
5177 (init_alloc_once, init_alloc): Set byte_stack_list to null.
5178
5179 * eval.c (struct catchtag): Add member byte_stack.
5180 (internal_catch, Fcondition_case, internal_condition_case)
dd59e217 5181 (internal_condition_case_1): Save value of byte_stack_list in
bcf28080
GM
5182 catchtag.
5183 (unwind_to_catch): Restore byte_stack_list from catchtag.
5184
5185 * lisp.h: Add prototypes for new functions in bytecode.c.
5186 Add extern declaration for byte_stack_list.
5187
5188 * bytecode.c (struct byte_stack): New.
5189 (byte_stack_list, mark_byte_stack, relocate_byte_pcs): New
5190 (BEFORE_POTENTIAL_GC, AFTER_POTENTIAL_GC): New.
5191 (FETCH, PUSH, POP, DISCARD, TOP, MAYBE_GC): Rewritten.
5192 (HANDLE_RELOCATION): Removed.
5193 (Fbyte_code): Use byte_stack structures.
5194
4d59c34c
GM
5195 * filelock.c (Ffile_locked_p): Make FILENAME a required argument.
5196
fe512f27
GM
5197 * buffer.c (syms_of_buffer): Extend documentation of
5198 mode-line-format.
5199
60b64cd6
GM
52001999-11-04 Gerd Moellmann <gerd@gnu.org>
5201
5202 * editfns.c (Fdelete_field): Renamed from Ferase_field.
5203
5204 * minibuf.c (do_completion, Fminibuffer_complete_word): Use
5205 Ferase_field instead of Fdelete_field.
5206
b51b619b
GM
52071999-11-03 Gerd Moellmann <gerd@gnu.org>
5208
5209 * dispnew.c (Finternal_show_cursor): Change it to set the
5210 cursor on/off, not toggle its state.
5211 (Finternal_show_cursor_p): New.
5212 (syms_of_display): Defsubr Sinternal_show_cursor_p.
5213
5865af0d
DL
52141999-11-03 Dave Love <fx@gnu.org>
5215
5216 * charset.c (split_non_ascii_string): Define return value.
5217
82a700f3
GM
52181999-11-03 Gerd Moellmann <gerd@gnu.org>
5219
edfef199
GM
5220 * minibuf.c (string_to_object): New.
5221 (read_minibuf_noninteractive): New.
5222 (read_minibuf): Call read_minibuf_noninteractive if
5223 noninteractive. Use string_to_object.
5224
82a700f3
GM
5225 * doc.c (Fdocumentation_property): Fix bug bypassing UNGCPRO.
5226
b5540f0d
DL
52271999-11-02 Dave Love <fx@gnu.org>
5228
e69dcd60
DL
5229 * gnu-linux.h: Use SIGCHLD, not SIGCLD (not in glibc 2.1).
5230
827a1788
DL
5231 * process.c: Define _GNU_SOURCE before config.h to get strsignal
5232 declared with glibc2.
b5540f0d 5233
a69a6e61
GM
52341999-11-02 Gerd Moellmann <gerd@gnu.org>
5235
5236 * lisp.h (QUIT): Give it statement form.
5237
87e21fbd
DL
52381999-11-02 Dave Love <fx@gnu.org>
5239
5240 * eval.c (init_eval): Conditionalize declaration of gcpro_level.
5241
1b335865
GM
52421999-11-02 Gerd Moellmann <gerd@gnu.org>
5243
9fb5e03d
GM
5244 * xfns.c (QCuser_data): New.
5245 (syms_of_xfns): Initialize QCuser_data.
5246 (parse_image_spec): Ignore :user-data DATA properties.
5247
1b335865
GM
5248 * xdisp.c (display_line): Set charpos of first glyph in blank
5249 lines not corresponding to any text to -1, even if no glyphs are
5250 filled in in that line.
5251
e76f1c44
GM
52521999-11-01 Gerd Moellmann <gerd@gnu.org>
5253
427ec082 5254 * xfns.c (png_load) [PNG_READ_sRGB_SUPPORTED]: Put code using
36fcd3d9
GM
5255 png_get_sRGB in #ifdef.
5256
111259b4
GM
5257 * dispnew.c (Finternal_show_cursor): Renamed from Fshow_cursor.
5258 (syms_of_display): Use the new name.
5259
dd5c96e8
GM
5260 * textprop.c (verify_interval_modification): Signal text-read-only
5261 instead of calling error.
5262
db8878fb
GM
5263 * data.c (Qtext_read_only): New built-in error.
5264 (syms_of_data): Initialize it.
5265
5266 * lisp.h: Add extern declaration for Qtext_read_only.
5267
e76f1c44
GM
5268 * syntax.c: Remove whitespace after open or in front of closing
5269 parentheses.
5270
83c8f461 52711999-11-01 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
5272
5273 * Makefile.in (w16select.o, sound.o): Don't depend on lisp.h.
5274
7843e09c
GM
52751999-10-31 Gerd Moellmann <gerd@gnu.org>
5276
575ed805
GM
5277 * xdisp.c (resize_mini_window): Compute needed height differently.
5278
7843e09c
GM
5279 * fns.c (Flength): Unroll loop over lists.
5280
5281 * xdisp.c (append_space): Return non-zero if space was appended.
5282 (display_line): Set charpos of first glyph to -1 only if that
5283 glyph is the space added by append_glyph.
5284
83c8f461 52851999-10-30 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
5286
5287 * print.c (strout): Consider `noninteractive' and use stdout
5288 only when PRINTCHARFUN is t.
5289
5290 * lisp.h (struct gcpro) [DEBUG_GCPRO]: New field `level'.
5291 (gcpro_level): Declare it extern.
5292 [DEBUG_GCPRO] (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5):
5293 Alternate definitions that set `level' and increment `gcpro_level'.
5294 [DEBUG_GCPRO] (UNGCPRO): Alternate definition that checks gcpro_level.
5295
5296 * eval.c [DEBUG_GCPRO] (gcpro_level): New variable.
5297 (init_eval) [DEBUG_GCPRO]: Initialize it.
5298 (unwind_to_catch) [DEBUG_GCPRO]: Set gcpro_level
5299 from remaining gcprolist.
5300
3636f7a3
KH
53011999-10-29 Kenichi Handa <handa@etl.go.jp>
5302
5303 * coding.c (code_convert_region): Update `dst' correctly.
5304
a2ad7096
GM
53051999-10-28 Gerd Moellmann <gerd@gnu.org>
5306
5307 * fns.c (Fmemq, Fassq, Frassq, assq_no_quit, Fassoc)
5308 (Frassoc): Rewritten.
5309
1e3196e8
GM
53101999-10-27 Noah Friedman <friedman@splode.com>
5311
5312 * s/gnu-linux.h [HAVE_DEV_PTMX]: Redefine FIRST_PTY_LETTER to 'z'.
5313 Define PTY_NAME_SPRINTF.
5314 Redefine PTY_TTY_NAME_SPRINTF.
5315 * config.in: Add undef for HAVE_DEV_PTMX.
5316
83c8f461 53171999-10-26 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5318
5319 * regex.c (POP_FAILURE_POINT): Use failure_id.integer
5320 as arg to DEBUG_POP and DEBUG_PRINT.
5321
83c8f461 53221999-10-27 Richard M. Stallman <rms@gnu.org>
17dbfaad
GM
5323
5324 * data.c (Qad_activate_internal): Renamed from Qad_activate.
5325 (Ffset): Call Qad_activate_internal.
5326 (syms_of_data): Initialize Qad_activate_internal.
5327
26922151
GM
53281999-10-27 Gerd Moellmann <gerd@gnu.org>
5329
5330 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing if
5331 Vterminal_frame is selected and Vwindow_system is non-nil.
5332
67a5596f
GM
53331999-10-26 Gerd Moellmann <gerd@gnu.org>
5334
2bea706b
GM
5335 * xdisp.c (echo_area_display): Put previous change in #if 0.
5336
67a5596f
GM
5337 * emacs.c (standard_args): Add `file' as synonym for `visit',
5338 `execute' as synonym for `eval'.
5339 (main): Add new options to usage message.
5340
81dc5de5
GM
53411999-10-25 Gerd Moellmann <gerd@gnu.org>
5342
5343 * data.c (Qhash_table): New.
5344 (Ftype_of): Return it for hash tables.
5345 (syms_of_data): Initialize Qhash_table.
5346
83c8f461 53471999-10-25 Richard M. Stallman <rms@gnu.org>
bd3c545d
GM
5348
5349 * regex.c (POP_FAILURE_POINT): Extract failure_id as an integer.
5350
66e4690f 53511999-10-24 Ken Raeburn <raeburn@gnu.org>
3a7093d8 5352
7539e11f
KR
5353 * alloc.c: Undef HIDE_LISP_IMPLEMENTATION before including
5354 lisp.h.
5355
5356 * buffer.c (Fbuffer_list, Fget_file_buffer, get_truename_buffer,
5357 Fbuffer_local_variables, Fother_buffer, record_buffer,
5358 set_buffer_internal_1, Fbury_buffer, Fkill_all_local_variables,
5359 swap_out_buffer_local_variables, overlays_at, overlays_in,
5360 overlay_touches_p, overlay_strings, recenter_overlay_lists,
5361 fix_overlays_in_range, fix_overlays_before, Foverlay_get,
5362 Foverlay_put, report_overlay_modification, evaporate_overlays):
5363 Use XCAR, XCDR, and XFLOAT_DATA instead of explicit member
5364 references.
5365 * data.c (Fcar, Fcar_safe, Fcdr, Fcdr_safe, Fsetcar, Fsetcdr,
5366 swap_in_symval_forwarding, set_internal, default_value,
5367 Fset_default, Fmake_variable_buffer_local, Fmake_local_variable,
5368 Fmake_variable_frame_local, Flocal_variable_p,
5369 Flocal_variable_if_set_p, arithcompare, Fzerop, cons_to_long,
5370 Fnumber_to_string, float_arith_driver, Fadd1, Fsub1): Likewise.
5371 * dispnew.c (Fframe_or_buffer_changed_p): Likewise.
5372 * emacs.c (main): Likewise.
5373 * fontset.c (fs_load_font, fs_register_fontset,
5374 CACHED_FONTSET_NAME, CACHED_FONTSET_REGEX, Fquery_fontset,
5375 Fnew_fontset, Fset_fontset_font): Likewise.
5376 * frame.c (do_switch_frame, next_frame, prev_frame,
5377 other_visible_frames, Fdelete_frame, Fvisible_frame_list):
5378 Likewise.
5379 * keyboard.c (read_char, help_char_p, event_to_kboard,
5380 kbd_buffer_get_event, timer_start_idle, timer_check,
5381 make_lispy_event, apply_modifiers, reorder_modifiers,
5382 Fevent_convert_list, lucid_event_type_list_p, menu_bar_items,
5383 menu_bar_one_keymap, menu_item_eval_property_1, parse_menu_item,
5384 tool_bar_items, read_char_x_menu_prompt, read_key_sequence,
5385 Fcommand_execute, Fexecute_extended_command): Likewise.
5386 * minibuf.c (read_minibuf, get_minibuffer, Ftry_completion,
5387 Fall_completions): Likewise.
5388 * window.c (Fset_window_margins): Likewise.
5389
5390 * callint.c (quotify_args): Don't explicitly use struct
5391 Lisp_Cons, use Lisp_Object and XCAR/XCDR instead.
5392
3a7093d8
KR
5393 * s/netbsd.h (HAVE_GETLOADAVG): Define as 1.
5394 (UNEXEC, START_FILES, LIB_STANDARD, LIB_GCC): Define ELF versions,
5395 if __ELF__ is defined.
5396
2a3d7146
GM
53971999-10-24 Gerd Moellmann <gerd@gnu.org>
5398
5399 * window.c (Fnext_window): Add a QUIT in the loop.
5400
8ac52782
GM
54011999-10-23 Gerd Moellmann <gerd@gnu.org>
5402
427ec082 5403 * Makefile.in (bootstrap, bootstrap-emacs, bootstrap-temacs):
8ac52782
GM
5404 New targets.
5405
05f0d15a
DL
54061999-10-22 Dave Love <fx@gnu.org>
5407
5408 * emacs.c (main): Enable profiling conditional on __linux also.
5409
882fb0e6
GM
54101999-10-20 Gerd Moellmann <gerd@gnu.org>
5411
5412 * xrdb.c (x_load_resources): Set default resources for resource
5413 classes instead of for the specific Emacs.
5414
b5f5bc31
GM
54151999-10-19 Gerd Moellmann <gerd@gnu.org>
5416
66f4dd69
GM
5417 * s/freebsd.h (HAVE_GETLOADAVG): Define as 1 because config.h
5418 defines it that way.
427ec082 5419
b5f5bc31
GM
5420 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing
5421 if selected_frame is equal to Vterminal_frame.
5422
68c45bf0 54231999-10-19 Paul Eggert <eggert@twinsun.com>
427ec082 5424
68c45bf0 5425 Add support for large files, 64-bit Solaris, system locale codings.
427ec082 5426
68c45bf0
PE
5427 * Makefile.in (emacs): Set the LC_ALL environment variable to "C"
5428 when dumping, so that the dumped Emacs doesn't have stray locale info.
5429 (dired.o): Depend on systime.h.
5430 (editfns.o): Depend on coding.h.
5431
5432 * alloc.c, buffer.c, callproc.c, ccl.c, charset.c, coding.c, data.c,
5433 dispnew.c, editfns.c, emacs.c, filelock.c, floatfns.c, hftctl.c,
5434 keyboard.c, process.c, sysdep.c, unexelf.c, unexhp9k800.c,
5435 unexsunos4.c, vmsfns.c, vmsgmalloc.c, w32faces.c, w32menu.c, w32term.c,
5436 w32xfns.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
5437 Include <config.h> before any system include files.
5438
5439 * alloc.c, buffer.c, ccl.c, data.c, editfns.c, emacs.c, eval.c,
5440 fileio.c, filelock.c, frame.c, insdel.c, keymap.c, lread.c,
5441 m/alpha.h, print.c, search.c, sysdep.c, xdisp.c, xfaces.c, xfns.c,
5442 xmenu.c, xterm.c:
5443 Do not include <stdlib.h>, as <config.h> does this now.
5444
5445 * callproc.c (Fcall_process):
5446 Synchronize messages locale before invoking strerror.
5447 Decode resulting string with locale-coding-system.
5448
5449 * coding.c (Vlocale_coding_system): New var.
5450 (syms_of_coding): Adjust to above change.
5451 (emacs_strerror): New function.
5452
5453 * coding.h (emacs_strerror, Vlocale_coding_system): New decls.
427ec082 5454
68c45bf0
PE
5455 * config.in (HAVE_STDIO_EXT_H, HAVE_TM_GMTOFF, HAVE___FPENDING,
5456 HAVE_FTELLO, HAVE_GETLOADAVG, HAVE_MBLEN, HAVE_MBRLEN,
5457 HAVE_STRSIGNAL): New macros.
5458 (BITS_PER_LONG): Default to 64 if _LP64 is defined.
5459 <stdlib.h>: Include if HAVE_STDLIB_H is defined and NOT_C_CODE isn't.
5460
5461 * dired.c: Include "systime.h".
5462 (Ffile_attributes): Do not cast s.st_size to int; this loses
5463 information if int is 32 bits but st_size and EMACS_INT are larger.
5464 Treat large device numbers like large inode numbers.
5465
5466 * dispnew.c (PENDING_OUTPUT_COUNT): Use __fpending if available.
5467
5468 * editfns.c: Include coding.h.
5469 (emacs_strftime): Remove decl.
5470 (emacs_strftimeu): New decl.
5471 (emacs_memftimeu): Renamed from emacs_memftime; new arg UT.
5472 Use emacs_strftimeu instead of emacs_strftime.
5473 (Fformat_time_string): Convert format string using
5474 Vlocale_coding_system, and convert result back. Synchronize time
5475 locale before invoking lower level function. Invoke
5476 emacs_memftimeu, passing ut, instead of emacs_memftime.
427ec082 5477
68c45bf0
PE
5478 * emacs.c: Include <locale.h> if HAVE_SETLOCALE is defined.
5479 (Vmessages_locale, Vprevious_messages_locale, Vtime_locale,
5480 Vprevious_time_locale): New variables.
5481 (main): Invoke setlocale early, so that initial error messages are
5482 localized properly. But skip locale-setting if LC_ALL is "C".
5483 Fix up locale when it's safe to do so.
5484 (fixup_locale): Moved here from xterm.c.
5485 (synchronize_locale, synchronize_time_locale,
5486 synchronize_messages_locale): New functions.
5487 (syms_of_emacs): Accommodate above changes.
5488
5489 * fileio.c (report_file_error): Convert strerror output according
5490 to Vlocale_coding_system.
5491 (Finsert_file_contents): Check for arithmetic overflow in
5492 computations that depend on file size. Report IO errors
5493 with emacs_strerror, not strerror.
5494
5495 * fns.c (Fgethash): Declare dflt parameter.
5496
5497 * gmalloc.c: Do not define const to nothing if HAVE_CONFIG_H
5498 is defined; that's config.h's job.
5499
5500 * lisp.h (EMACS_INT, BITS_PER_EMACS_INT, EMACS_UINT): If _LP64,
5501 default these values to long, BITS_PER_LONG, and unsigned long.
5502 (VALBITS, MARKBIT, XINT): Do not assume 32-bit EMACS_INT.
5503 (PNTR_COMPARISON_TYPE): Default to EMACS_UINT, not to unsigned int.
5504 (code_convert_string_norecord, fixup_locale,
5505 synchronize_messages_locale, synchronize_time_locale,
5506 emacs_open, emacs_close, emacs_read, emacs_write): New decls.
5507 All Emacs callers of open, close, read, write changed to use
5508 emacs_open, emacs_close, emacs_read, emacs_write.
5509
5510 * lread.c (file_offset, file_tell): New macros. All uses of ftell
5511 changed to file_tell.
5512 (saved_doc_string_position, prev_saved_doc_string_position): Now
5513 of type file_offset.
5514 (init_lread): Do not fix locale here; fixup_locale now does this.
5515
5516 * m/amdahl.h, s/usg5-4.h:
5517 (NSIG): Remove.
5518 (NSIG_MINIMUM): New macro.
5519
5520 * m/cydra5.h, m/dpx2.h, m/mips.h, m/pfa50.h, m/sps7.h, m/stride.h,
5521 m/ustation.h, s/gnu-linux.h, s/hpux.h, s/iris3-5.h, s/iris3-6.h,
5522 s/umips.h, s/usg5-4.h:
5523 (SIGIO): Do not undef.
5524 (BROKEN_SIGIO): New macro.
5525
5526 * m/ustation.h:
5527 (SIGTSTP): Do not undef.
5528 (BROKEN_SIGTSTP): New macro.
5529
5530 * s/gnu-linux.h:
5531 (SIGPOLL, SIGURG): Do not undef.
5532 (BROKEN_SIGPOLL, BROKEN_SIGURG): New macros.
5533
5534 * s/ptx4.h:
5535 (SIGINFO): Do not undef.
5536 (BROKEN_SIGINFO): New macros.
427ec082 5537
68c45bf0
PE
5538 * m/delta.h, s/ptx.h, s/template.h: Doc fix.
5539
5540 * mktime.c, strftime.c: Update to glibc 2.1.2 version, with
5541 some Emacs-related changes merged.
5542
5543 * print.c (float_to_string): Prepend "-" to representation of a
5544 NaN if the NaN is negative.
5545
5546 * process.c (sys_siglist): Omit if HAVE_STRSIGNAL.
5547 (wait_reading_process_input): Use emacs_strerror, not strerror.
427ec082 5548
68c45bf0
PE
5549 * process.c (status_message, sigchld_handler): Synchronize locale,
5550 then use strsignal istead of sys_siglist.
5551 * w32proc.c (sys_wait): Likewise.
427ec082 5552
68c45bf0
PE
5553 * s/aix3-1.h, s/bsd4-1.h, s/dgux.h, s/gnu-linux.h, s/hiuxmpp.h,
5554 s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/osf1.h, s/rtu.h,
5555 s/sunos4-1.h, s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h,
5556 s/usg5-2.h, s/usg5-3.h, s/xenix.h:
5557 (open, close, read, write, INTERRUPTIBLE_OPEN,
5558 INTERRUPTIBLE_CLOSE, INTERRUPTIBLE_IO): Remove.
5559
5560 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): New macros.
5561
5562 * sysdep.c (sys_read, sys_write, read, write, sys_close, close,
5563 sys_open, open): Remove.
5564 (emacs_open, emacs_close, emacs_read, emacs_write): Always define;
5565 the old INTERRUPTIBLE_OPEN, INTERRUPTIBLE_CLOSE, and INTERRUPTIBLE_IO
5566 macros are no longer used.
5567 (emacs_open): Renamed from sys_open. Merge BSD4_1 version.
5568 (emacs_close): Renamed from sys_close.
5569 (emacs_read): Renamed from sys_read.
5570 (emacs_write): Renamed from sys_write.
5571 (sys_siglist): Do not declare if HAVE_STRSIGNAL.
5572 (dup2): Do not print error on failure; the real dup2 doesn't.
5573 (strsignal): New function, defined if !HAVE_STRSIGNAL.
5574
5575 * syssignal.h (SIGINFO): Undef if defined and if BROKEN_SIGINFO
5576 is defined.
5577 (SIGIO, SIGPOLL, SIGTSTP, SIGURG): Likewise.
5578 (NSIG): If less than NSIG_MINIMUM, define to NSIG_MINIMUM.
5579 (strsignal): Declare if !HAVE_STRSIGNAL.
5580
5581 * unexelf.c (ElfBitsW, ELFSIZE, ElfExpandBitsW): New macros.
5582 (ElfW): Define in terms of ElfExpandBitsW.
5583
5584 * w32proc.c (sys_siglist): Remove decl.
5585
5586 * xdisp.c (decode_mode_spec): 3rd arg is int, not char, to comply
5587 with ANSI C.
5588 (display_string): Declare face_string_pos arg.
5589
5590 * xfns.c (Fx_show_tip): Declare timeout param.
5591
5592 * xterm.c: No need to include locale.h.
5593 (x_alloc_lighter_color, x_setup_relief_color):
5594 Pass arg as double, not float, for compatibility with ANSI C.
5595 (fixup_locale): Move to emacs.c.
5596 (x_term_init): Do not setlocale or fixup locale; the main program
5597 does this now.
5598
2f0b74ea
DL
55991999-10-18 Dave Love <fx@gnu.org>
5600
5601 * doc.c (Fdocumentation_property): Gcpro `tem'.
5602
471aa4a0
KH
56031999-10-18 Kenichi Handa <handa@etl.go.jp>
5604
5605 * lread.c (Fload): Calculate bytes of filename correctly.
5606 (openp): Likewise.
5607
aca2020b
KH
56081999-10-18 Keisuke Nishida <kxn30@po.cwru.edu>
5609
5610 * print.c (print_preprocess): In case print-circle is nil,
5611 add OBJ to Vprint_number_table only when OBJ is a symbol.
5612
1f5fe392 56131999-10-18 Kenichi Handa <handa@etl.go.jp>
b843d1ae
KH
5614
5615 * coding.c (code_convert_string): Add record_unwind_protect to
5616 assure setting inhibit_pre_post_conversion back to zero. Take
5617 care of the multibyteness of the working buffer.
5618
5619 * coding.c (inhibit_pre_post_conversion): New variable.
5620 (setup_coding_system): If inhibit_pre_post_conversion is nonzero,
5621 ignore post-read-conversion and pre-write-conversion property of
5622 the coding system.
5623 (code_convert_region_unwind): New function.
5624 (code_convert_region): Set inhibit_pre_post_conversion to 1 while
5625 running pre-write-conversion and post-read-conversion.
5626 (code_convert_string): Likewise.
5627
cd876a91
GM
56281999-10-17 Miles Bader <miles@gnu.org>
5629
5630 * editfns.c: Doc fix.
5631
56321999-10-17 Miles Bader <miles@gnu.org>
5633
5634 * editfns.c (Fconstrain_to_field): Make sure we don't violate the
5635 argument preconditions of find_before_next_newline in the case
5636 where both ONLY_IN_LINE and ESCAPE_FROM_EDGE are set and OLD_POS
5637 was indeed at the edge.
5638
56391999-10-17 Miles Bader <miles@gnu.org>
5640
5641 * minibuf.c (Fminibuffer_complete_and_exit): Supply value for new
5642 ESCAPE_FROM_EDGE parameter to Ffield_beginning.
5643
5644 * editfns.c (text_property_eq, text_property_stickiness): Don't
5645 use initializers for auto variables of type Lisp_Object.
5646 (find_field): Likewise. Use braces around nested ifs.
5647 (Fline_end_position): Store the raw eol in a variable, so that the
5648 final expression doesn't look so ugly.
5649 (Fconstrain_to_field): Doc fix.
5650 (preceding_pos): Renamed from `preceeding_pos'.
5651 (text_property_stickiness, find_field): Call preceding_pos,
5652 not preceeding_pos.
5653
56541999-10-17 Miles Bader <miles@gnu.org>
5655
5656 * editfns.c (Ffield_string_no_properties): New function.
5657 (text_property_stickiness, preceeding_pos): New functions.
5658 (Ffield_string): Remove PROPS parameter.
5659 (find_field): Add MERGE_AT_BOUNDARY parameter.
5660 Rewrite to use stickiness of `field' property to resolve
5661 ambiguous cases.
5662 (Ffield_beginning, Ffield_end): Add ESCAPE_FROM_EDGE parameter.
5663 (Fconstrain_to_field): Likewise.
5664 (syms_of_editfns): Init Sfield_string_no_properties.
427ec082 5665 (Ffield_string, Ferase_field, Ffield_end):
cd876a91
GM
5666 Supply new MERGE_AT_BOUNDARY argument to find_field.
5667 (Fline_beginning_position, Fline_end_position): Supply new
5668 ESCAPE_FROM_EDGE parameter to Fconstrain_to_field.
5669 Pass a value of Qt for the ONLY_IN_LINE argument to
5670 Fconstrain_to_field (only matters if N != 1).
5671 * syntax.c (Fforward_word): Supply new ESCAPE_FROM_EDGE parameter
5672 to Fconstrain_to_field.
5673
5674 * minibuf.c (Fminibuffer_complete_word): Use
5675 Ffield_beginning to find the prompt end.
5676
56771999-10-17 Miles Bader <miles@gnu.org>
5678
5679 * editfns.c (Fconstrain_to_field): Add get/set-current-point
5680 behavior when NEW_POS is nil.
5681 (find_field): Use XSETFASTINT instead of make_number.
5682 * minibuf.c (Fminibuffer_complete_and_exit): Test for an empty
5683 input string by seeing where the field begins, instead of
5684 looking at text-properties.
5685
56861999-10-17 Miles Bader <miles@gnu.org>
5687
5688 * editfns.c (Qfield): New variable.
5689 (find_field, Ferase_field, Ffield_string,
5690 Ffield_beginning, Ffield_end, Fconstrain_to_field): New functions.
5691 (Fline_beginning_position, Fline_end_position): Constrain to any field.
5692 (make_buffer_string_both): Remove minibuffer-prompt hack.
5693 (syms_of_editfns): Initialize Qfield, and subr entries for
5694 field functions above.
5695 * minibuf.c (read_minibuf): Don't save minibuffer prompt length on
5696 minibuf_save_list.
5697 Don't initialize minibuffer prompt length.
5698 Wrap prompt text-properties around the entire prompt.
5699 Add 'prompt text-property to prompt.
5700 Get final value with Ffield_string instead of make_buffer_string.
5701 (read_minibuf_unwind): Don't restore minibuffer prompt length from
5702 minibuf_save_list.
5703 (do_completion): Get minibuffer input with Ffield_string
5704 instead of Fbuffer_string.
5705 Erase minibuffer input with Ferase_field instead of erase_buffer.
5706 (Fminibuffer_complete_and_exit): Likewise.
5707 Test whether buffer is empty by looking for the 'prompt text
5708 property at the end.
5709 Set prompt length by looking for the end of the prompt text property,
5710 and save prompt length for later use (since there is no longer a
5711 buffer variable to get it from).
5712 (Fminibuffer_prompt_width, Fminibuffer_prompt_end): Functions removed.
5713 (syms_of_minibuf): Remove initializations of
5714 Sminibuffer_prompt_width and Sminibuffer_prompt_end.
5715 * buffer.h (struct buffer): Remove prompt_end_charpos field.
427ec082 5716 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer, Fkill_buffer):
cd876a91
GM
5717 Don't initialize prompt_end_charpos field.
5718 * syntax.c (Fforward_word): Likewise.
5719 Constrain to any field.
5720
3f6f7508
GM
57211999-10-16 Gerd Moellmann <gerd@gnu.org>
5722
5723 * window.c (enum save_restore_action): New.
5724 (save_restore_orig_size): Change parameter list. Add
5725 functionality to check for valid orig_top and orig_height members
5726 in a window tree.
5727 (grow_mini_window): Call save_restore_orig_size with new parameter
5728 list.
5729 (shrink_mini_window): Restore old window sizes only if old
5730 size information is valid in all windows in a window tree.
427ec082 5731
06482119
GM
57321999-10-15 Gerd Moellmann <gerd@gnu.org>
5733
2710454d
GM
5734 * xmenu.c (set_frame_menubar): Don't call
5735 x_set_menu_resources_from_menu_face here.
5736 (update_frame_menubar): Call x_set_menu_resources_from_menu_face.
5737
06482119
GM
5738 * xfns.c (gif_load): Fix handling of interlaced GIFs.
5739
17fa2837
DL
57401999-10-14 Dave Love <fx@gnu.org>
5741
5742 * xdisp.c (handle_fontified_prop): GCPRO `pos'.
5743
45f93416
GM
57441999-10-14 Gerd Moellmann <gerd@gnu.org>
5745
5746 * process.c (Fopen_network_stream): Don't loop if gethostbyname
5747 fails and h_errno is TRY_AGAIN.
5748
c765b723
DL
57491999-10-13 Dave Love <fx@gnu.org>
5750
5751 * filelock.c (lock_file): Move gcpro of `fn'.
5752
dace7f4e
GM
57531999-10-10 Gerd Moellmann <gerd@gnu.org>
5754
5755 * keyboard.c (auto-save-interval): Fix documentation.
427ec082 5756
83c8f461 57571999-10-09 Richard M. Stallman <rms@gnu.org>
73fb36f1
RS
5758
5759 * print.c (print): When removing objects from Vprint_number_table,
5760 only scan the newly added objects.
5761 (print_preprocess): If OBJ is a gensym, and print-continuous-numbering,
5762 unconditionally force it to stay in the table.
5763
85177c86
GM
57641999-10-09 Gerd Moellmann <gerd@gnu.org>
5765
5766 * xfns.c (prepare_image_for_display): Don't try to load image if
5767 loading it failed before.
5768 (lookup_image, prepare_image_for_display): Remember if loading the
5769 image failed.
5770 (xpm_load): Add missing UNBLOCK_INPUT.
5771
5772 * dispextern.h (struct image): New member load_failed_p.
5773
11e4de5d
SM
57741999-10-08 Stefan Monnier <monnier@cs.yale.edu>
5775
f28eba7b 5776 * fileio.c (Fmake_temp_name): Add a reference to `make-temp-file'
11e4de5d
SM
5777 in the docstring.
5778
f1da8f06
GM
57791999-10-08 Gerd Moellmann <gerd@gnu.org>
5780
5781 * xterm.c (XTread_socket) <ClientMessage, WM_TAKE_FOCUS>:
5782 Don't call XSetInputFocus because that can generate additional
5783 FocusIn events.
427ec082 5784
c37bbd4f
GM
57851999-10-07 Jeffrey C Honig <jch@bsdi.com>
5786
5787 * bsdos4.h [HAVE_LIBNCURSES]: Define TERMINFO and LIBS_TERMCAP.
5788
83c8f461 57891999-10-07 Richard M. Stallman <rms@gnu.org>
78cc5c64
GM
5790
5791 * process.c (wait_reading_process_input): When trying to suck
5792 input from one process, for accept-process-output,
5793 exit that loop if we get EAGAIN or EWOULDBLOCK.
5794
577d9e2f
GM
57951999-10-07 Gerd Moellmann <gerd@gnu.org>
5796
5797 * xfaces.c (Qbitmap_spec_p): Replaces Qpixmap_spec_p.
5798 (Fbitmap_spec_p): Replaces Fpixmap_spec_p.
5799 (load_pixmap): Use Fbitmap_spec_p and Qbitmap_spec_p instead of
5800 Fpixmap_spec_p and Qpixmap_spec_p.
5801 (load_face_colors, check_lface_attrs,
5802 merge_face_vector_with_property,
5803 Finternal_set_lisp_face_attribute): Use Fbitmap_spec_p.
5804 (syms_of_xfaces): Initialize Qbitmap_spec_p, defsubr
5805 Fbitmap_spec_p.
5806
f5737ad2
GM
58071999-10-07 Gerd Moellmann <gerd@gnu.org>
5808
5809 * xdisp.c (display_menu_bar): Use MENU_FACE_ID instead of
5810 MODE_LINE_FACE_ID.
5811
5812 * xfaces.c (toplevel) [USE_MOTIF]: Include some Motif headers.
5813 (struct x_resources) [USE_X_TOOLKIT]: New.
5814 (xm_apply_resources, xm_set_menu_resources_from_menu_face)
5815 [USE_MOTIF]: New.
5816 (xl_apply_resources, xl_set_menu_resources_from_menu_face)
5817 [USE_LUCID]: New.
5818 (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]: New.
5819 (Qmenu): New.
5820 (syms_of_xfaces): Initialize Qmenu.
5821 (realize_basic_faces): Realize face `menu'.
5822 (resolve_face_name): New.
5823 (lface_from_face_name): Use it.
5824 (Finternal_set_lisp_face_attribute): Ditto.
5825 (Fpixmap_spec_p): Rewritten. Extend doc string.
5826
5827 * xmenu.c (set_frame_menubar, xmenu_show): Call
5828 x_set_menu_resources_from_menu_face.
5829
5830 * dispextern.h (enum face_id): Add MENU_FACE_ID.
5831 (toplevel): Include X11/Intrinsic.h.
5832
6a1aa823
DL
58331999-10-03 Ken'ichi Handa <handa@gnu.org>
5834
5835 * coding.c (DECODE_CHARACTER_ASCII): Decode ASCII invocated to GR
5836 correctly.
5837
26901792
DL
58381999-09-30 Kenichi Handa <handa@etl.go.jp>
5839
5840 * category.c (modify_lower_category_set): Set default value of
5841 TABLE correctly.
5842
5843 * minibuf.c (Fminibuffer_complete_word): Calculate string byte
5844 size correctly.
5845
58461999-09-29 Gerd Moellmann <gerd@gnu.org>
5847
5848 * editfns.c (Fpropertize): Renamed from Fproperties.
5849
58501999-09-29 Gerd Moellmann <gerd@gnu.org>
5851
5852 * xdisp.c (resize_mini_window): Do nothing if frame is an X
5853 frame that hasn't been initialized yet.
5854
83c8f461 58551999-09-28 Richard M. Stallman <rms@gnu.org>
a04f1a93
PR
5856
5857 * keymap.c (Fsingle_key_description): Make tem big enough.
5858 (describe_buffer_bindings): Make buf big enough.
5859
83c8f461 58601999-09-27 Richard M. Stallman <rms@gnu.org>
d177c583
PR
5861
5862 * intervals.c (get_local_map): Use indirect_function,
5863 not Findirect_function.
5864
26901792
DL
58651999-09-27 Dave Love <fx@gnu.org>
5866
5867 * cm.h: Remove unneeded declaration of ospeed.
5868
58691999-09-26 Gerd Moellmann <gerd@gnu.org>
5870
5871 * lisp.h (toplevel): Add prototype for
5872 next_single_char_property_change.
5873
5874 * textprop.c (next_single_char_property_change): New.
5875
5876 * xdisp.c (display_prop_end, invisible_text_between_p): Use
5877 next_single_char_property_change.
5878
58791999-09-25 Gerd Moellmann <gerd@gnu.org>
5880
5881 * editfns.c (Fproperties): New.
5882 (syms_of_editfns): Defsubr it.
5883
5884 * xfns.c (lookup_image): Set image's timestamp because it's
5885 used when we look it up.
5886
58871999-09-23 Gerd Moellmann <gerd@gnu.org>
5888
5889 * window.c (enlarge_window): Add window parameter instead of using
5890 selected_window.
5891 (Fdisplay_buffer): Call it with window parameter instead of
5892 setting selected_window.
5893 (Fenlarge_window, Fshrink_window): Ditto.
5894 (shrink_mini_window): If there is no recorded height and position
5895 info, resize mini-window to height 1.
5896
5897 * xfns.c (image_error): Use add_to_log.
5898
5899 * xfaces.c (load_pixmap): Call add_to_log without frame parameter.
5900 (load_face_font_or_fontset, load_color,
5901 merge_face_vector_with_property): Ditto.
5902
5903 * dispextern.h: Add prototype for add_to_log.
5904
5905 * xfaces.c (add_to_log): Move to xdisp.c.
5906
5907 * xdisp.c (add_to_log): Moved from xfaces.c. Remove frame
5908 parameter.
5909
59101999-09-23 Gerd Moellmann <gerd@gnu.org>
5911
5912 * xterm.c (XTread_socket) <MotionNotify>: Change #ifdef
5913 USE_X_TOOLKIT to #ifdef USE_TOOLKIT_SCROLL_BARS.
5914
5915 * xdisp.c (resize_mini_window): Use grow_mini_window and
5916 shrink_mini_window.
5917
5918 * window.c (window_min_size): Add parameter ignore_fixed_p.
5919 (change_window_height): Call window_min_size with new parameter.
5920 (shrink_window_lowest_first, save_restore_orig_size,
5921 grow_mini_window, shrink_mini_window): New.
5922 (make_window, replace_window): Initialize orig_top and
5923 orig_height.
5924 (enlarge_window): Renamed from change_window_height. Make it
5925 static.
5926 (Fdisplay_buffer, Fenlage_window, Fshrink_window): Call
5927 enlarge_window instead of change_window_height.
5928
5929 * window.h (struct window): New members orig_top, orig_height.
5930 (toplevel): Add prototypes for grow_mini_window and
5931 shrink_mini_window. Remove prototype for change_window_height.
5932
59331999-09-21 Eli Zaretskii <eliz@gnu.org>
5934
5935 * frame.c (frame_name_fnn_p): Fix previous change.
5936
59371999-09-20 Gerd Moellmann <gerd@gnu.org>
5938
5939 * minibuf.c (toplevel): Move include of stdio.h to other includes.
5940
5941 * dispnew.c (direct_output_for_insert): Cast arguments to
5942 safe_bcopy to char *.
5943
5944 * lread.c (readchar): Remove unused variables.
5945 (read_filtered_event, read1, Fmapatoms): Ditto.
5946 (toplevel): Include intervals.h.
5947
5948 * eval.c (Fsignal): Remove unused variables.
5949 (Fcommandp, do_autoload): Ditto.
5950
5951 * lisp.h: Add prototype for safe_bcopy, fatal.
5952
5953 * editfns.c (init_editfns): Remove unused variables.
5954 (Fgoto_char, Fchar_after, Fformat): Ditto.
5955 (message_text, message_length): Put in #ifndef HAVE_MENUS.
5956
5957 * data.c (find_symbol_value): Remove unused variables.
5958 (Faref, Fstring_to_number): Ditto.
5959 (toplevel): Include stdio.h.
5960 (Fnumber_to_string): Cast XINT to long for %ld.
5961
5962 * casefiddle.c (casify_object): Remove unused variables.
5963 (casify_region): Ditto.
5964
427ec082 5965 * filelock.c (get_boot_time): Put local variable used in
26901792
DL
5966 conditinally compiled section in #ifdef.
5967 (toplevel): Include stdio.h.
5968
5969 * keymap.c (Flookup_key, Faccessible_keymaps, describe_vector,
5970 keys_of_keymap, syms_of_keymap): Remove unused variables.
5971
59721999-09-20 Gerd Moellmann <gerd@gnu.org>
5973
5974 * xdisp.c (sync_frame_with_window_matrix_rows): Disable frame rows
5975 whose corresponding window rows have been disabled in
5976 try_window_id.
5977
59781999-09-20 Gerd Moellmann <gerd@gnu.org>
5979
5980 * xdisp.c (compute_window_start_on_continuation_line): Handle case
5981 that window start is out of range.
5982 (handle_display_prop, handle_single_display_prop): Replace
5983 marginal area specifications like `left-margin' with `(margin
5984 left-margin)'.
5985 (Qmargin): New.
5986 (syms_of_xdisp): Initialize Qmargin.
5987
59881999-09-19 Gerd Moellmann <gerd@gnu.org>
5989
5990 * syntax.c (update_syntax_table, find_defun_start, back_comment,
5991 describe_syntax, skip_chars): Remove unused variables.
5992 (back_comment, forw_comment): Add braces to if-statement with
5993 if-else as dependent statement.
5994
5995 * process.c (list_processes_1): Remove unused variables.
5996 (Fopen_network_stream, create_process): Add parentheses to
5997 conditional expressions.
5998 (create_process): Put declaration of sigchld in #if 0.
5999 (Fopen_network_stream): Removed unused variables.
6000 (Fopen_network_stream, wait_reading_process_input,
6001 wait_reading_process_input, send_process, send_process): Ditto.
6002 (toplevel): Add prototypes for set_waiting_for_input and
6003 keyboard_bit_set.
6004
6005 * abbrev.c (Fexpand_abbrev): Remove unused variables.
6006
6007 * textprop.c (Fset_text_properties): Remove unused variables.
6008 (text_property_list, verify_interval_modification,
6009 interval_has_all_properties): Ditto.
6010
6011 * callproc.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6012 (Fcall_process): Remove unused variable.
6013
6014 * keyboard.c (Frecursive_edit): Remove unused variable.
6015 (command_loop_1, safe_run_hooks, kbd_buffer_get_event,
6016 timer_check, make_lispy_event, menu_bar_items,
6017 menu_bar_one_keymap, menu_bar_item, parse_menu_item,
6018 parse_tool_bar_item, read_char_x_menu_prompt, read_key_sequence,
6019 kbd_buffer_get_event, make_lispy_event, read_char_x_menu_prompt,
6020 read_key_sequence): Ditto. Fread_key_sequence,
6021 Fread_key_sequence_vector, Fsuspend_emacs): Ditto.
6022 (read_key_sequence) [GOBBLE_FIRST_EVENT]: Put local variables only
6023 used when GOBBLE_FIRST_EVENT is defined in #ifdef
6024 (Fexecute_extended_command): Cast XINT to long for %ld.
6025 (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6026 (toplevel): Include sys/types.h.
6027
6028 * lisp.h (RETURN_UNGCPRO): Use do-while (0) idiom.
6029 (toplevel): Add prototypes for stuff_char, and
6030 code_convert_string_norecord.
6031
60321999-09-19 Gerd Moellmann <gerd@gnu.org>
6033
6034 * buffer.h: Add prototype for r_re_alloc.
6035
6036 * insdel.c (copy_text): Removed unused variables.
6037 (count_combining_after, count_combining_after, insert_1_both,
6038 insert_from_string_1, insert_from_buffer_1, check_markers): Ditto.
6039 (adjust_after_replace, replace_range): Add parentheses to logical
6040 expressions. Remove unused variables.
6041 (CHECK_BYTE_COMBINING_FOR_INSERT): Add parentheses to logical
6042 expression.
6043
6044 * alloc.c (Fgarbage_collect): Remove unused variable.
6045 (compact_strings): Add parentheses around assignments in
6046 conditional context.
6047 (toplevel): Put declaration of unused function clear_marks
6048 in #if 0 like its definition.
6049
6050 * lisp.h: Add prototype for shrink_regexp_cache,
6051 sweep_weak_hash_tables.
6052
60531999-09-19 Dave Love <fx@gnu.org>
6054
6055 * process.c (Fopen_network_stream): Use strerror, not gai_strerror.
6056
6057 * doc.c (read_bytecode_char): Declare arg.
6058
6059 * lisp.h: Declare Fcurrent_message, Fmake_temp_name,
6060 read_bytecode_char, Fx_hide_busy_cursor, getloadavg.
6061
60621999-09-18 Richard Stallman <rms@gnu.org>
6063
6064 * xdisp.c (echo_area_display): Turn off code that returned
6065 without doing anything when using a terminal frame.
6066
83c8f461 60671999-09-17 Richard M. Stallman <rms@gnu.org>
27271329
PR
6068
6069 * unexelf.c (unexec): Don't get confused by a short section
6070 just before the bss section.
6071
26901792
DL
60721999-09-16 Gerd Moellmann <gerd@gnu.org>
6073
6074 * emacs.c (main): Remove unused variables.
6075 (sort_args, Fkill_emacs, Fkill_emacs): Ditto.
6076
6077 * lisp.h: Add prototype for uninterrupt_malloc, memory_warnings,
6078 init_fileio_once, syms_of_sound, init_xfns, init_fns
6079 init_sound, check_message_stack.
6080
6081 * emacs.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6082
6083 * intervals.c (rotate_right, rotate_left): Add braces to avoid
6084 ambiguous else warning.
6085 (split_interval_left): Remove unused variables.
6086 (previous_interval, adjust_intervals_for_deletion,
6087 set_point_both, set_point_both, set_intervals_multibyte_1): Ditto.
6088 (icount, idepth, zero_length): Move into #if 0 section below
6089 original position where these are used.
6090
6091 * buffer.h [REL_ALLOC]: Add prototypes for r_alloc and r_alloc_free.
6092
6093 * buffer.c (Fkill_buffer): Remove unused variables.
6094 (Fkill_buffer, overlays_at, overlays_in, recenter_overlay_lists,
6095 fix_overlays_in_range, Fmove_overlay, Fprevious_overlay_change,
6096 init_buffer_once, (syms_of_buffer): Ditto.
6097
6098 * xrdb.c (get_fallback): Remove unused variable.
6099 (x_load_resources): Ditto. Put local variable used for Motif only
6100 in #ifdef USE_MOTIF.
6101
61021999-09-16 Gerd Moellmann <gerd@gnu.org>
6103
6104 * minibuf.c (read_minibuf): Remove unused variables.
6105 (read_minibuf, Fread_buffer, scmp, Fcompleting_read): Ditto.
6106 (do_completion): Move assignment out of conditional context.
6107 (Fdisplay_completion_list): Add parentheses to conditional expression.
6108
6109 * cm.c (toplevel) [HAVE_TERMCAP_H]: Include termcap.h.
6110
6111 * lisp.h: Add prototype for no_switch_window.
6112
6113 * window.c (Fset_window_buffer): Remove unused variables.
6114 (Fset_window_margins): Ditto.
6115
6116 * xdisp.c (resize_mini_window): Temporarily set the selected
6117 window's or Vminibuf_scroll_window's height to "fixed" around
6118 the call the change_window_height.
6119
6120 * window.c (window_fixed_size_p): Check window's height_fixed_p
6121 flag.
6122
6123 * window.h (struct window): New member height_fixed_p.
6124
6125 * dispnew.c (direct_output_forward_char): Don't use this method
6126 if showing a message or a message was just cleared because we
6127 might need to resize the mini-window.
6128
61291999-09-16 Gerd Moellmann <gerd@gnu.org>
6130
6131 * frame.c (Fdelete_frame): Correct local variable pointing to
6132 selected frame after selecting new frame.
6133
61341999-09-15 Richard Stallman <rms@gnu.org>
6135
6136 * puresize.h (BASE_PURESIZE): Increase to 525000.
6137
6138 * filelock.c (Vtemporary_file_directory): New variable.
6139 (syms_of_filelock): Set up Lisp variable.
6140
61411999-09-15 Gerd Moellmann <gerd@gnu.org>
6142
6143 * term.c (OUTPUT_IF, OUTPUT1_IF): Use do-while.
6144 (encode_terminal_code): Remove unused variables.
6145 (turn_off_face): Ditto.
6146 (toplevel): Include termcap.h if HAVE_TERMCAP_H.
6147
6148 * dispnew.c (update_frame_line): If writing whole desired line,
6149 don't clear to end of line if already at the end.
6150
61511999-09-15 Gerd Moellmann <gerd@gnu.org>
6152
6153 * xdisp.c (resize_mini_window): Don't report changed window
6154 height if it actually hasn't changed.
6155
427ec082 6156 * widget.c (set_frame_size, EmacsFrameSetCharSize): Remove
26901792
DL
6157 unused variables.
6158 (mark_shell_size_user_specified): Put in #if 0 because not used.
6159 (create_frame_gcs): Put in #if 0 because currently unused.
6160 (first_frame_p): Ditto.
6161
6162 * xmenu.c (single_menu_item, Fx_popup_menu, Fx_popup_menu,
6163 single_submenu, update_frame_menubar, set_frame_menubar,
6164 free_frame_menubar, xmenu_show, xdialog_show): Remove unused
6165 variables.
6166
6167 * print.c (PRINTFULLP): Removed because it is no longer used and
6168 is misleading.
6169 (Ferror_message_string): Remove unused variables.
6170 (print_object): Cast argument of sprintf to long for `%ld'
6171 specifier. Remove unused variable.
6172
61731999-09-14 Gerd Moellmann <gerd@gnu.org>
6174
6175 * sound.c (Fplay_sound): Remove usused variables.
6176 (be2hs): Put in #if 0 because it's currently not used.
6177
61781999-09-14 Ken Raeburn <raeburn@gnu.org>
6179
6180 * print.c (Ferror_message_string, print_error_message,
6181 print_object): Use XCAR, XCDR and XFLOAT_DATA instead of explicit
6182 member access.
6183
61841999-09-14 Gerd Moellmann <gerd@gnu.org>
6185
6186 * frame.h (CHECK_FRAME, CHECK_LIVE_FRAME): Put code in do-while.
6187
6188 * frame.c (Fnext_frame): Remove unused variable(s).
6189 (Fprevious_frame, Fmouse_pixel_position, frame_name_fnn_p): Ditto.
6190 (store_frame_param): Add parentheses to conditional expression.
6191 (Fmodify_frame_parameters): Remove unused variables.
6192 (Fmodify_frame_parameters, Fset_frame_size, Fset_frame_position):
6193 Ditto.
6194
6195 * xfns.c (x_set_background_color): Remove unused variable(s).
6196 (x_set_border_pixel): Ditto.
6197 (x_set_menu_bar_lines): Put local variable used only for
6198 non-toolkit case in #ifdef/#endif.
6199 (x_figure_window_size): Remove unused variable(s).
427ec082 6200 (x_figure_window_size, x_window, lookup_image,
26901792
DL
6201 xbm_read_bitmap_file_data, x_build_heuristic_mask, pbm_load,
6202 png_load, jpeg_load, gif_load, x_create_tip_frame,
6203 x_create_tip_frame, Fx_show_tip, x_set_border_pixel): Ditto.
6204
6205 * xterm.c (x_scroll_bar_handle_click): Compile only if
6206 not USE_TOOLKIT_SCROLL_BARS.
6207 (x_scroll_bar_set_handle, x_scroll_bar_note_movement): Ditto.
6208
6209 * dispextern.h: Add prototypes for gamma_correct and
6210 x_kill_gs_process.
6211
6212 * xterm.c (x_produce_glyphs): Remove unused variable(s).
6213 (x_alloc_nearest_color_for_widget, note_tool_bar_highlight,
6214 x_set_toolkit_scroll_bar_thumb): Ditto.
6215 (x_scroll_bar_create): Move local variable to the
6216 conditionally compiled section of code where it is used.
6217 (x_scroll_bar_create): Remove unused variable(s).
6218 (x_scroll_bar_remove, XTread_socket): Ditto.
6219 (XTread_socket) <ConfigureNotify>: Move variables used for
6220 non-toolkit case into conditionally compiled section of code.
6221
6222 * window.h (freeze_window_starts): Fix typo in prototype.
6223
6224 * xdisp.c (display_echo_area_1, try_window_id): Remove unused
6225 variable(s).
6226
6227 * lisp.h: Add prototype for debug_print.
6228
6229 * dispextern.h (xassert) [GLYPH_DEBUG]: Change definition
6230 to use do-while.
6231
6232 * fns.c (SXHASH_COMBINE): Add missing parentheses.
6233 (Fchar_table_range, Fset_char_table_default, mapcar1,
6234 Fyes_or_no_p, sweep_weak_hash_tables): Remove unused variable(s).
6235
6236 * lisp.h: Add prototype for getloadavg.
6237
62381999-09-14 Andreas Schwab <schwab@gnu.org>
6239
6240 * process.c (Fopen_network_stream): Avoid socket decriptor leak.
6241
6242 * lisp.h: Declare close_file_unwind.
6243
62441999-09-14 Richard Stallman <rms@gnu.org>
6245
6246 * filelock.c (get_boot_time): Make the temp name in the proper dir.
6247
62481999-09-13 Gerd Moellmann <gerd@gnu.org>
6249
6250 * xdisp.c (redisplay_window): Make sure start_at_line_beg
6251 is always set correctly.
6252
62531999-09-13 Dave Love <fx@gnu.org>
6254
6255 * xdisp.c (move_it_in_display_line_to): Make type consistent with
6256 declaration.
6257
62581999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6259
6260 * xdisp.c (QCfile): Move here from xfns.c.
6261 (syms_of_xdisp): Initialize it.
6262 (message2_nolog): Change for Lisp_Object selected_frame.
6263 (message3_nolog, message_with_string, message,
6264 setup_echo_area_for_printing, truncate_echo_area,
6265 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
6266
62671999-09-13 Dave Love <fx@gnu.org>
6268
6269 * xterm.c: Don't continue #define args for benefit of old cc.
6270 (xt_action_hook): Indent #error for benefit of K&R cc.
6271
62721999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6273
6274 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
6275 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
6276 (XRINGBELL): Removed.
6277
62781999-09-13 Dave Love <fx@gnu.org>
6279
6280 * xfns.c (x_put_x_image): Make type consistent with declaration.
6281
6282 * fns.c (Fmake_hash_table): Fix string continuation.
6283
62841999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6285
6286 * xfns.c (QCfile): Moved to xdisp.c.
6287 (syms_of_xfns): Don't initialize QCfile.
6288 (check_x_frame): Change for Lisp_Object selected_frame.
6289 (check_x_display_info, x_get_resource_string): Ditto.
6290
62911999-09-13 Gerd Moellmann <gerd@gnu.org>
6292
6293 * minibuf.c (choose_minibuf_frame): Don't try to set the
6294 mini-buffer window's buffer, if the buffer is invalid.
6295
6296 * xfns.c (QCfile): Moved to xdisp.c.
6297 (syms_of_xfns): Don't initialize QCfile.
6298
6299 * xdisp.c (QCfile): Move here from xfns.c.
6300 (syms_of_xdisp): Initialize it.
6301
6302 * lisp.h (selected_frame): Add external declaration.
6303
6304 * xselect.c (x_own_selection): Change for Lisp_Object selected_frame.
6305 (Fx_store_cut_buffer_internal): Ditto.
6306 (Fx_rotate_cut_buffers_internal): Ditto.
6307
6308 * xfaces.c (frame_or_selected_frame): Change for Lisp_Object
6309 selected_frame.
6310 (Finternal_set_lisp_face_attribute): Ditto.
6311 (Finternal_get_lisp_face_attribute): Ditto.
6312 (Finternal_lisp_face_empty_p): Ditto.
6313 (Fdump_face): Ditto.
6314
6315 * term.c (OUTPUT): Change for Lisp_Object selected_frame.
6316 (OUTPUT_IF, ring_bell, set_terminal_modes, reset_terminal_modes,
6317 set_terminal_window, set_scroll_region, reassert_line_highlight,
6318 change_line_highlight, cursor_to, raw_cursor_to, clear_to_end,
6319 clear_end_of_line, clear_end_of_line_raw, clear_end_of_line_raw,
6320 encode_terminal_code, write_glyphs, term_init): Ditto.
6321
6322 * sysdep.c (reset_sys_modes): Change for Lisp_Object selected_frame.
6323 (kbd_input_ast, read_input_waiting): Ditto.
6324
6325 * minibuf.c (choose_minibuf_frame): Change for Lisp_Object
6326 selected_frame.
6327 (read_minibuf): Ditto.
6328
6329 * keyboard.c (command_loop_1): Change for Lisp_Object
6330 selected_frame.
6331 (cmd_error_internal, command_loop_1, read_char,
6332 kbd_buffer_get_event, read_avail_input,
6333 read_char_minibuf_menu_prompt, read_key_sequence, Fsuspend_emacs,
6334 interrupt_signal, quit_throw_to_read_char): Ditto.
6335
6336 * fontset.c (Ffont_info): Change for Lisp_Object selected_frame.
6337 (Ffontset_info): DItto.
6338
6339 * emacs.c (handle_USR1_signal): Change for Lisp_Object selected_frame.
6340
6341 * dispnew.c (selected_frame): Make it a Lisp_Object.
6342 (adjust_frame_glyphs_initially): Change for Lisp_Object selected_frame.
6343 (direct_output_for_insert, direct_output_forward_char,
6344 init_display): Ditto.
6345
6346 * data.c (swap_in_symval_forwarding): Change for Lisp_Object
6347 selected_frame.
6348 (set_internal): Ditto.
6349
6350 * buffer.c (Fother_buffer): Change for Lisp_Object selected_frame.
6351 (record_buffer): Ditto.
6352
6353 * frame.c (Fmake_terminal_frame): Use SELECTED_FRAME.
6354 (do_switch_frame): Change for Lisp_Object selected_frame.
6355 (Fselected_frame): Ditto.
6356 (Fframe_first_window): Use SELECTED_FRAME.
6357 (Fframe_root_window): Change for Lisp_Object selected_frame.
6358 (Fframe_selected_window, Fset_frame_selected_window, Fnext_frame,
6359 Fprevious_frame, other_visible_frames, Fdelete_frame,
6360 Fmouse_position, Fmouse_pixel_position, Fmake_frame_visible,
6361 Fmake_frame_invisible, Ficonify_frame, Fraise_frame, Flower_frame,
6362 Fframe_parameters, Fmodify_frame_parameters, Fframe_char_height,
6363 Fframe_char_width, Fframe_pixel_height, Fframe_pixel_width,
6364 Fset_frame_height, Fset_frame_width): Ditto.
6365
63661999-09-13 Gerd Moellmann <gerd@gnu.org>
6367
6368 * xdisp.c (message2_nolog): Change for Lisp_Object selected_frame.
6369 (message3_nolog, message_with_string, message,
6370 setup_echo_area_for_printing, truncate_echo_area,
6371 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
6372
6373 * xmenu.c (Fx_popup_menu): Change for Lisp_Object selected_frame.
6374 (Fx_popup_dialog): Ditto.
6375
6376 * xfns.c (check_x_frame): Change for Lisp_Object selected_frame.
6377 (check_x_display_info, x_get_resource_string): Ditto.
6378
6379 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
6380 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
6381 (XRINGBELL): Removed.
6382
6383 * window.c (Fminibuffer_window): Change for Lisp_Object
6384 selected_frame.
6385 (Fwindow_at, Fprevious_window, window_loop, select_window_1,
6386 display_buffer_1, Fdisplay_buffer, temp_output_buffer_show,
6387 Fcurrent_window_configuration, init_window_once): Ditto.
6388
6389 * frame.h (SELECTED_FRAME): New.
6390
63911999-09-12 Ken Raeburn <raeburn@gnu.org>
6392
6393 * category.c (word_boundary_p): Use XCAR and XCDR.
6394 * ccl.c (ccl_driver, resolve_symbol_ccl_program,
6395 Fregister_code_conversion_map): Likewise.
6396 * coding.c (setup_coding_system, detect_coding_system,
6397 Ffind_operation_coding_system, Fset_coding_priority_internal):
6398 Likewise.
6399 * doc.c (get_doc_string, Fdocumentation,
6400 store_function_docstring): Likewise.
6401 * editfns.c (save_restriction_restore): Likewise.
6402 * eval.c (Fcond, Fmacroexpand, Fcondition_case, wants_debugger,
6403 skip_debugger, find_handler_clause, Fautoload, Fapply,
6404 run_hook_with_args, run_hook_list_with_args, Ffetch_bytecode):
6405 Likewise.
6406 * fileio.c (Ffind_file_name_handler, Finsert_file_contents,
6407 Fwrite_region, do_auto_save_unwind, Fdo_auto_save,
6408 Fread_file_name): Likewise.
6409 * filelock.c (unlock_all_files): Likewise.
6410 * insdel.c (Fcombine_after_change_execute): Likewise.
6411 * intervals.c (adjust_intervals_for_insertion): Likewise.
6412 * keymap.c (get_keymap_1, Fkeymap_parent, Fset_keymap_parent,
6413 Fset_keymap_parent, fix_submap_inheritance, access_keymap,
6414 store_in_keymap, Fcopy_keymap, define_as_prefix,
6415 current_minor_maps, Faccessible_keymaps,
6416 accessible_keymaps_char_table, Fkey_description,
6417 Fwhere_is_internal, where_is_internal_2, where_is_internal_1,
6418 describe_buffer_bindings, describe_map_tree, shadow_lookup,
6419 describe_map): Likewise.
6420 * lread.c (Fload, load_unwind, close_load_descs, read_vector,
6421 read_list, init_lread): Likewise.
6422 * search.c (Fmatch_data): Likewise.
6423 * sunfns.c (Fsun_menu_internal): Likewise.
6424 * syntax.c (describe_syntax): Likewise.
6425 * undo.c (record_insert, record_delete, Fundo_boundary,
6426 truncate_undo_list): Likewise.
6427 * vmsproc.c (child_sig): Likewise.
6428
6429 * editfns.c (Fformat): Use XFLOAT_DATA.
6430
64311999-09-12 Gerd Moellmann <gerd@gnu.org>
6432
6433 * keyboard.c (command_loop_1): Resize mini-window to the
6434 exact size of a message displayed, if any.
6435
6436 * xdisp.c (resize_mini_window): Add parameter exact_p. Resize
6437 to exact size if exact_p is non-zero.
6438 (display_echo_area_1): Call resize_mini_window with
6439 new parameter.
6440 (redisplay_internal): Ditto.
6441 (resize_echo_area_axactly): New.
6442
6443 * minibuf.c (read_minibuf_unwind): Call resize_mini_window with
6444 new parameter.
6445
6446 * dispextern.h: Change prototype of resize_mini_window.
6447 Add prototype for resize_echo_area_axactly.
6448
6449 * xfaces.c (Fx_family_fonts): Replaces Fx_font_list.
6450 (syms_of_xfaces): Defsubr accordingly.
6451
6452 * xdisp.c (hscroll_window_tree): Choose cursor row from
6453 desired or current matrix.
6454 (redisplay_internal): Hscroll before updating.
6455
64561999-09-12 Gerd Moellmann <gerd@gnu.org>
6457
6458 * syntax.c (Fforward_word): Use prompt_end_charpos instead
6459 of minibuffer_prompt_length.
6460
6461 * minibuf.c (read_minibuf): Use prompt_end_charpos instead
6462 of minibuffer_prompt_length.
6463 (read_minibuf_unwind): Ditto.
6464 (Fminibuffer_complete_and_exit): Ditto.
6465 (Fminibuffer_complete_word): Ditto.
6466 (Fminibuffer_prompt_end): Ditto.
6467
6468 * editfns.c (Fbuffer_string): Use prompt_end_charpos instead
6469 of minibuffer_prompt_length.
6470 (Fline_beginning_position): Ditto.
6471
6472 * buffer.c (Fget_buffer_create): Use prompt_end_charpos instead
6473 of minibuffer_prompt_length.
6474 (Fmake_indirect_buffer): Ditto.
6475 (Fkill_buffer): Ditto.
6476 (Ferase_buffer): Ditto.
6477
6478 * buffer.h (prompt_end_charpos): Replaces
6479 minibuffer_prompt_length.
6480
427ec082 6481 * minibuf.c (read_minibuf): Return mini-buffer contents
26901792
DL
6482 without the prompt.
6483
6484 * editfns.c (make_buffer_string_both): Take out the code
6485 to handle mini-buffer prompts.
6486 (Fbuffer_string): Handle the prompt here, instead.
6487
6488 * xfaces.c (lface_from_face_name): Resolve face aliases.
6489 (Qmode_line): Replaces Qmodeline.
6490 (realize_basic_faces): Use Qmode_line.
6491 (syms_of_xfaces): Initialize Qmode_line.
6492
64931999-09-12 Gerd Moellmann <gerd@gnu.org>
6494
6495 * minibuf.c (read_minibuf): Set minibuf_prompt_width to the
6496 current column after inserting prompt.
6497 (Fminibuffer_prompt_width): Return minibuf_prompt_width.
6498
6499 * xfaces.c (Qframe_update_face_colors): New.
6500 (syms_of_xfaces): Initialize call.
6501 (update_face_from_frame_parameter): Call that function when
6502 the frame's background changes.
6503
65041999-09-12 Richard Stallman <rms@gnu.org>
6505
6506 * insdel.c (del_range_1): Don't treat minibuffer prompt specially.
6507
65081999-09-12 Ken Raeburn <raeburn@gnu.org>
6509
6510 * alloc.c (Fcons, pure_cons, Fpurecopy, Fgarbage_collect,
6511 mark_object, mark_buffer): Use XCAR and XCDR.
6512 * bytecode.c (Fbyte_code): Likewise.
6513 * callint.c (Fcall_interactively, Fprefix_numeric_value):
6514 Likewise.
6515 * callproc.c (Fcall_process, Fcall_process_region, child_setup,
6516 getenv_internal): Likewise.
6517 * dired.c (file_name_completion): Likewise.
6518 * fns.c (Fsafe_length, concat, Fcopy_alist, Fmember, Fmemq, Fassq,
6519 assq_no_quit, Fassoc, Frassq, Frassoc, Fdelq, Fdelete, Freverse,
6520 Fplist_get, Fplist_put, internal_equal, mapcar1): Likewise.
6521 * indent.c (Fcompute_motion): Likewise.
6522 * process.c (decode_status, Fprocess_status, Fprocess_exit_status,
6523 list_processes_1, Fstart_process, Fopen_network_stream,
6524 wait_reading_process_input, read_process_output_call,
6525 kill_buffer_processes, sigchld_handler, exec_sentinel_unwind,
6526 status_notify, wait_reading_process_input): Likewise.
6527 * textprop.c (PLIST_ELT_P, property_value, set_properties,
6528 extend_property_ranges): Likewise.
6529 * w32faces.c (Fpixmap_spec_p, merge_face_list): Likewise.
6530 * w32fns.c (x_window_to_frame, x_set_frame_parameters,
6531 x_report_frame_params, x_set_cursor_type, x_icon_type,
6532 x_figure_window_size, Fx_create_frame, w32_load_system_font,
6533 w32_load_font, enum_font_cb2, w32_list_bdf_fonts, w32_list_fonts,
6534 w32_list_synthesized_fonts, w32_find_ccl_program, Fx_list_fonts,
6535 Fw32_find_bdf_fonts, w32_find_bdf_fonts_in_dir,
6536 x_display_info_for_name, Fx_display_list): Likewise.
6537 * w32menu.c (menubar_id_to_frame, single_keymap_panes,
6538 Fx_popup_menu, Fx_popup_dialog): Likewise.
6539 * w32proc.c (Fw32_set_keyboard_layout): Likewise.
6540 * w32term.c (x_window_to_scroll_bar, w32_read_socket,
6541 w32_term_init, x_delete_display): Likewise.
6542 * xfns.c (x_window_to_frame, x_any_window_to_frame,
6543 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
6544 x_top_window_to_frame, x_set_frame_parameters,
6545 x_report_frame_params, x_set_cursor_type, x_icon_type,
6546 x_figure_window_size, Fx_create_frame, x_display_info_for_name,
6547 Fx_display_list, x_create_tip_frame): Likewise.
6548 * xmenu.c (menubar_id_to_frame, single_keymap_panes,
6549 Fx_popup_menu, Fx_popup_dialog): Likewise.
6550 * xselect.c (x_own_selection, x_get_local_selection,
6551 x_handle_selection_request, x_handle_selection_clear,
6552 x_clear_frame_selections, wait_for_property_change_unwind,
6553 wait_for_property_change, x_handle_property_notify,
6554 copy_multiple_data, x_get_foreign_selection,
6555 lisp_data_to_selection_data, clean_local_selection_data,
6556 x_handle_selection_notify, Fx_get_selection_internal,
6557 x_disown_buffer_selections): Likewise.
6558 * xterm.c (x_window_to_scroll_bar, XTread_socket, x_list_fonts,
6559 x_load_font, x_find_ccl_program, x_term_init, x_delete_display):
6560 Likewise.
6561
6562 * alloc.c (make_float, make_pure_float, Fpurecopy): Use
6563 XFLOAT_DATA.
6564 * bytecode.c (Fbyte_code): Likewise.
6565 * floatfns.c (extract_float, Fexpt, Fabs, rounding_driver,
6566 fmod_float): Likewise.
6567
65681999-09-11 Richard Stallman <rms@gnu.org>
6569
6570 * xdisp.c (run_window_scroll_functions): If hook functions switch
6571 buffers, switch back after.
6572
65731999-09-11 Ken Raeburn <raeburn@gnu.org>
6574
6575 * charset.h (GET_TRANSLATION_TABLE): Use XCDR.
6576 * frame.h (FOR_EACH_FRAME): Use XCAR and XCDR.
6577 (PIXEL_X_FROM_CANON_X, PIXEL_Y_FROM_CANON_Y): Use XFLOAT_DATA.
6578 * keyboard.h (EVENT_HEAD, EVENT_START, EVENT_END, POSN_WINDOW,
6579 POSN_BUFFER_POSN, POSN_WINDOW_POSN, POSN_TIMESTAMP): Use XCAR and
6580 XCDR.
6581 * syntax.h (SYNTAX, SYNTAX_WITH_FLAGS, SYNTAX_MATCH): Use XCAR and
6582 XCDR.
6583
65841999-09-10 Richard Stallman <rms@gnu.org>
6585
6586 * xterm.c (XTread_socket): In XSetInputFocus, use RevertToParent,
6587 not RevertToPointerRoot.
6588 (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
6589 Fix the code to clear around the scroll bar.
6590
65911999-09-10 Keisuke Nishida <kxn30@po.cwru.edu>
6592
6593 * print.c: Support print-circle and related features.
6594 (Vprint_gensym_alist): Removed.
6595 (Vprint_circle, Vprint_continuous_numbering, print_number_index
6596 Vprint_number_table): New variables.
6597 (PRINT_NUMBER_OBJECT, PRINT_NUMBER_STATUS): New macros.
6598 (PRINTPREPARE, PRINTFINISH): Don't set Vprint_gensym_alist.
6599 (print, print_preprocess, print_preprocess_string, print_object):
6600 New/modified functions with print-circle feature. Use
6601 Vprint_number_table instead of Vprint_gensym_alist for print-gensym.
6602 (syms_of_print): Defined new Lisp variables `print-circle',
6603 `print-continuous-numbering', `print-number-table'.
6604
66051999-09-10 Gerd Moellmann <gerd@gnu.org>
6606
6607 * xfns.c (x_build_heuristic_mask): Accept a list `(R G B)'
6608 as background color specification instead of an integer.
6609 (image-cache-eviction-delay): Replaces image-eviction-seconds.
6610 (Vimage_cache_eviction_delay): Replaces Vimage_eviction_seconds.
6611 (clear_image_cache, syms_of_xfns): Use it.
6612 (Qpostscript): Replaces Qghostscript.
6613 (gs_type): Use it.
6614 (gs_image_p): Ditto.
6615 (syms_of_xfns): Initialize Qpostscript.
6616
66171999-09-10 Richard Stallman <rms@gnu.org>
6618
6619 * buffer.c (Ferase_buffer): Don't erase the minibuffer prompt.
6620
66211999-09-09 Richard Stallman <rms@gnu.org>
6622
6623 * editfns.c (Fline_beginning_position): Handle minibuffer prompt here.
6624
6625 * cmds.c (Fbeginning_of_line): Don't handle minibuffer prompt here.
6626
66271999-09-09 Gerd Moellmann <gerd@gnu.org>
6628
6629 * fns.c (Fmakehash): Accept just one optional argument TEST.
6630
6631 * xfns.c (QCindex): New.
6632 (syms_of_xfns): Initialize QCindex.
6633 (gif_load): Use it instead of `:image'.
6634
66351999-09-09 Richard Stallman <rms@gnu.org>
6636
6637 * fileio.c (Fwrite_region): Finish renaming CONFIRM to MUSTBENEW.
6638 (Fwrite_region) [DOS_NT]: Handle `excl' here too.
6639
66401999-09-08 Gerd Moellmann <gerd@gnu.org>
6641
6642 * xdisp.c (Qwhen): Replaces QCwhen.
6643 (syms_of_xdisp): Initialized it instead of QCwhen.
6644 (handle_single_display_prop): Use it instead of QCwhen.
6645
66461999-09-08 Ken'ichi Handa <handa@gnu.org>
6647
6648 * charset.c (translate_char): Reset MSBs of arguments of
6649 MAKE_CHAR.
6650 (CHAR_COMPONENTS_VALID_P): Fix for ASCII.
6651
66521999-09-08 Lars Magne Ingebrigtsen <larsi@gnus.org>
6653
6654 * editfns.c (Fbufsize): Accept an extra BUFFER parameter.
6655
6656 * fns.c (Fbase64_decode_region): Don't place point outside of the
6657 current accessible portion.
6658
66591999-09-07 Richard Stallman <rms@gnu.org>
6660
6661 * keymap.c (fix_submap_inheritance): Do nothing if the proper
6662 parent is an ancestor of SUBMAP; otherwise, add it as the
6663 ultimate ancestor.
6664
66651999-09-07 Gerd Moellmann <gerd@gnu.org>
6666
6667 * xdisp.c (handle_single_display_prop): Change conditional
6668 display property to `:when FORM . VALUE'.
6669
66701999-09-07 Richard Stallman <rms@gnu.org>
6671
6672 * fileio.c (Fwrite_region): Doc fix.
6673
66741999-09-07 Stefan Monnier <monnier@cs.yale.edu>
6675
6676 * fileio.c (Qexcl): New variable.
6677 (report_file_error): Handle EEXIST specially.
6678 (Fwrite_region): Special handling for CONFIRM = `excl'.
6679 (syms_of_fileio): Initialize Qexcl.
6680
66811999-09-07 Gerd Moellmann <gerd@gnu.org>
6682
6683 * xfns.c (x_set_foreground_color): Call
6684 update_face_from_frame_parameter.
6685 (x_set_background_color): Ditto.
6686 (x_set_mouse_color): Ditto.
6687 (x_set_cursor_color): Ditto.
6688 (x_set_border_color): Ditto.
6689 (x_set_scroll_bar_foreground): Ditto.
6690 (x_set_scroll_bar_background): Ditto.
6691
6692 * xfaces.c (recompute_basic_faces): Clear face cache.
6693 (Finternal_set_lisp_face_attribute): Modify frame parameters
6694 if attributes of certain faces are changed.
6695 (update_face_from_frame_parameter): New.
6696
6697 * xfaces.c (realize_basic_faces): Realize new basic faces.
6698
6699 * dispextern.h (SCROLL_BAR_FACE_ID, BORDER_FACE_ID,
6700 CURSOR_FACE_ID, MOUSE_FACE_ID): New.
6701
6702 * xfaces.c (Qscroll_bar, Qcursor, Qborder, Qmouse): New.
6703 (syms_of_xfaces): Intialize new symbols.
6704
6705 * fns.c (Fmakehash): Take one argument, test, make all the
6706 rest keyword arguments.
6707
6708 * window.c (Fset_window_margins): Make window the first argument.
6709 (set_window_buffer): Call Fset_window_margins with window as first
6710 argument.
6711
67121999-09-07 Gerd Moellmann <gerd@gnu.org>
6713
6714 * xfaces.c (Qfringe): Replaces Qmargin.
6715
67161999-09-07 Kenichi Handa <handa@etl.go.jp>
6717
6718 * charset.h: Lots of comments fixed.
6719 (PARSE_MULTIBYTE_SEQ): Make it work also for ASCII string.
6720 (STRING_CHAR_AND_CHAR_LENGTH): This macro removed.
6721
6722 * charset.c : Lots of comments fixed.
6723 (SPLIT_MULTIBYTE_SEQ): Make it work also for ASCII string.
6724 (CHAR_COMPONENTS_VALID_P): Name changed from
6725 CHAR_COMPONENT_VALID_P. Caller changed.
6726
67271999-09-06 Richard Stallman <rms@gnu.org>
6728
6729 * insdel.c (syms_of_insdel): Define Lisp variable
6730 inhibit-modification-hooks.
6731
67321999-09-06 Michael Sperber [Mr. Preprocessor] <sperber@informatik.uni-tuebingen.de>
6733
6734 * s/aix4-2.h (ALIGN_DATA_RELOC): Undefined to support new
6735 unexaix.c.
6736
6737 * s/aix3-1.h (ALIGN_DATA_RELOC): Defined to support new unexaix.c.
6738
67391999-09-06 Dave Love <fx@gnu.org>
6740
6741 * unexaix.c: New version incorporating Michael Sperber's changes
6742 from XEmacs. Should solve problems on AIX 4.3.
6743
6744 * lread.c (Vbyte_boolean_vars): New variable.
6745 (defvar_bool, syms_of_lread): Use it.
6746
67471999-09-05 Richard Stallman <rms@gnu.org>
6748
6749 * minibuf.c (read_minibuf): Put all three properties on the
6750 same range, the whole prompt.
6751
67521999-09-05 Gerd Moellmann <gerd@gnu.org>
6753
6754 * sound.c (Qplay_sound_functions): Replaces Qplay_sound_hook.
6755 (Fplay_sound, syms_of_sound): Use it.
6756 (parse_sound): Allow float volume values in the range [0, 1].
6757 (Fplay_sound): Ditto.
6758
6759 * window.c (Fset_window_vscroll): Make window the first argument,
6760 amount to scroll the second. Take non-negative vscroll as
6761 argument.
6762 (Fwindow_vscroll): Return non-negative vscroll.
6763
6764 * xfns.c (Fx_show_tip): Improve documentation.
6765
67661999-09-05 Gerd Moellmann <gerd@gnu.org>
6767
6768 * buffer.c, buffer.h, dispextern.h, dispnew.c, keyboard.c,
6769 window.c, xdisp.c, xfaces.c, xterm.c, keyboard.h: Change
6770 `top-line' and `top_line' to `header-line' and `header_line'.
6771 Likewise for similar spellings.
6772
67731999-09-05 Gerd Moellmann <gerd@gnu.org>
6774
6775 * xdisp.c (row_containing_pos): New.
6776 (try_window_id): Use it.
6777
6778 * alloc.c, dispextern.h, dispnew.c, frame.c, frame.h, keyboard.c,
6779 lisp.h, termhooks.h, window.c xdisp.c, xfaces.c, xfns.c, xterm.c:
6780 Change spelling of `toolbar' to `tool_bar' or `tool-bar'.
6781 Likewise for upper-case etc.
6782
67831999-09-05 Gerd Moellmann <gerd@gnu.org>
6784
6785 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
6786 Fix reference to renamed variable.
6787
67881999-09-04 Gerd Moellmann <gerd@gnu.org>
6789
6790 * window.c (Qwindow_size_fixed): Replaces Qfixed_window_size.
427ec082 6791 (window_fixed_size_p): Use Qwindow_size_fixed instead of
26901792
DL
6792 Qfixed_window_size.
6793 (syms_of_window): Ditto.
6794
6795 * fns.c (Fmakehash): Exchange optional test and size arguments.
6796
67971999-09-03 Gerd Moellmann <gerd@gnu.org>
6798
6799 * xterm.c (XTset_vertical_scroll_bar): Block input when clearing
6800 under newly created scroll bar.
6801 (expose_window): If window is not yet fully initialized, do
6802 nothing. This can happen when toolkit scroll bars are used and a
6803 window is split. Reconfiguring the scroll bars will generate an
6804 expose for a newly created window.
6805
6806 * frame.h (struct frame): New member `gamma'.
6807
6808 * xfns.c: Include math.h. Add extern declaration for atof in case
6809 we don't see one.
6810 (Qscreen_gamma): New.
6811 (struct x_frame_parm_table): Add prototypes, add
6812 x_set_screen_gamma.
6813 (gamma_correct): New function.
6814 (defined_color): Call it.
6815 (x_set_screen_gamma): New.
6816 (x_set_title): Add parameter old_value.
6817 (RES_TYPE_FLOAT): New.
6818 (x_get_arg): Handle RES_TYPE_FLOAT.
6819 (Fx_create_frame): Call x_default_parameter for `screen-gamma'.
6820 (lookup_pixel_color): Change call to x_alloc_nearest_color to
6821 new prototype.
6822 (lookup_rgb_color): Ditto.
6823 (syms_of_xfns): Initialize Qscreen_gamma.
6824
6825 * xterm.c (x_alloc_nearest_color_for_widget) [USE_X_TOOLKIT]:
6826 New. Allocate color for lwlib widgets.
6827 (x_alloc_nearest_color): Change parameter list include the
6828 frame on which to allocate colors. Gamma-correct colors.
6829 (x_alloc_lighter_color): Call x_alloc_lighter_color with new
6830 parameter list.
6831
6832 * xterm.h: Change protorype of x_alloc_nearest_color.
6833
68341999-09-03 Richard Stallman <rms@gnu.org>
6835
6836 * callproc.c: Delete the system-independent include of stdlib.h
6837 (leaving only the one in the WINDOWSNT conditional).
6838
68391999-09-03 Andrew Choi <choi@cs.hku.hk>
6840
6841 * callproc.c (call-process) [macintosh]: Call mac_run_command in
6842 sysdep.c. The Mac code is modeled after the DOS code.
427ec082 6843
26901792
DL
6844 * dispextern.h [macintosh]: Include macterm.h to define substitute X
6845 Window types and macros.
6846
6847 * frame.h: Do nothing if included a second time.
6848 (enum output_method): Add mac_output frame type.
6849 (union output_data): Add new alternative `mac'.
6850 (FRAME_MAC_P): New macro.
427ec082 6851
26901792
DL
6852 * frame.c (Fframep) [macintosh]: Handle mac frame type.
6853 (syms_of_frame_1): Initialize Qmac.
6854 (make_terminal_frame) [macintosh]: Initialize output_data.mac fields.
6855 (Fmake_terminal_frame) [macintosh]: Add an alternate error check.
6856 (Fmodify_frame_parameters) [macintosh]: Call
6857 mac_set_frame_parameter in macterm.c.
427ec082 6858
26901792
DL
6859 * keyboard.c [macintosh]: Set KBD_BUFFER_SIZE to a smaller value
6860 (512) because Mac compilers limit local data of a function to 32K.
427ec082 6861
26901792
DL
6862 * make-docfiles.c: Correctly handle input files with Mac-style
6863 eol's.
427ec082 6864
26901792 6865 * sysdep.c: Define numerous routines to emulate Unix system calls.
427ec082 6866
26901792
DL
6867 * xfaces.c: on MacOS, define the set of colors listed in rgb.txt
6868 file of an X Window environment.
427ec082 6869
26901792
DL
6870 * xfaces.c: on MacOS, define the Lisp functions x-display-color-p,
6871 x-display-grayscale, x-color-defined-p, and x-color-values.
427ec082 6872
26901792
DL
6873 * sysdep.c [macintosh] (stat, fstat, mkdir, rmdir, utime, access)
6874 (open, creat, unlink, read, write, rename, fopen, pause, alarm)
6875 (signal, sleep, gmtime, localtime, ctime, time, index, mktemp)
6876 (getpwuid, getpwnam, dup, dup2, isatty, getgid, getegid, getuid)
6877 (geteuid, getpid, getenv, uname, opendir, closedir, readdir, getwd.):
6878 New functions, replacing POSIX features.
427ec082 6879
26901792
DL
6880 * sysdep.c [macintosh] (Mac2UnixPathname, Unix2MacPathname, CheckAlarm)
6881 (InitMyPasswd, GetTempDirName, mystrchr, mystrtok, mystrcpy):
6882 (InitEmacsPasswdDir, run_mac_command): New subroutines.
6883
6884 * sysdep.c [macintosh] (targetTicks, alarm_signal_func, myPasswdName)
6885 (myPasswd, emacsPasswdDir, emacsPasswd, myPasswdInited, mask)
6886 (myPasswdDir, TempDirName, sys_siglist): New variables.
6887
6888 * sysdep.c [macintosh] (execvp, wait, croak, fork, kill, sigsetmask)
6889 (sigblock, request_sigio, unrequest_sigio, setpgrp, pipe, symlink)
6890 (link, lstat, readlink, umask, chmod, sbrk, fsync, ioctl):
6891 Define empty stubs so Emacs will link.
6892
68931999-09-03 Gerd Moellmann <gerd@gnu.org>
6894
6895 * xdisp.c: Use XCAR and XCDR instead of XCONS.
6896
6897 * window.h: New member frozen_window_start_p.
6898
6899 * window.c (foreach_window, foreach_window_1): New.
6900 (freeze_window_start, freeze_window_starts): New.
6901 (make_window): Initialize frozen_window_start_p.
6902 (replace_window): Ditto.
6903 (Fset_window_point): Remove references to deleted variables.
6904 (Fset_window_start): Ditto.
6905
6906 * xdisp.c (Vresize_mini_config, resize_mini_frame,
6907 resize_mini_initial_height): Removed.
6908 (syms_of_xdisp): Remove references to these variables.
6909 (resize_mini_window): Don't save window configuration, freeze
6910 window starts instead. Enlarge window until displaying an empty
6911 buffer, then shrink it. Make the function externally visible.
6912 (redisplay_window): Treat frozen window start like forced start,
6913 but accept point outside of the window.
6914
6915 * dispextern.h: Add function prototype for resize_mini_window.
6916
6917 * minibuf.c (read_minibuf_unwind): Resize mini-window when
6918 reaching minibuf_level 0.
6919
6920 * lisp.h: Remove extern declarations for variables deleted from
6921 xdisp.c.
6922
6923 * dispnew.c (adjust_frame_glyphs): Remove reference to
6924 Vresize_mini_config.
6925
69261999-09-03 Gerd Moellmann <gerd@gnu.org>
6927
6928 * xfns.c (x_set_scroll_bar_width): Change conditional compilation
6929 to USE_TOOLKIT_SCROLL_BARS.
6930
6931 * xterm.c (x_scroll_bar_create): Don't clear under scroll bar
6932 here.
6933 (XTset_vertical_scroll_bar): Clarify position computations. Clear
6934 under newly created scroll bar. Put toolkit scroll bars in the
6935 middle of the area reserved for the scroll bar.
6936
69371999-09-03 Kenichi Handa <handa@etl.go.jp>
6938
6939 The following changes are for the new handling of mulitbyte
6940 sequence. Now, except for a composite character, no multibyte
6941 character in string/buffer has trailing garbage bytes. For
6942 instance, the length of string "\201\300\300" is now 2, the first
6943 character is Latin-1 A-grave, the second is raw \300.
6944
6945 * charset.h (MAKE_NON_ASCII_CHAR): Handle the case that C1 or C2
6946 are negative.
6947 (MAKE_CHAR): Don't set MSBs of C1 and C2 to 0.
6948 (VALID_MULTIBYTE_CHAR_P): This macro deleted.
6949 (PARSE_COMPOSITE_SEQ): New macro.
6950 (PARSE_CHARACTER_SEQ): New macro.
427ec082 6951 (PARSE_MULTIBYTE_SEQ): New macro.
26901792
DL
6952 (CHAR_PRINTABLE_P): New macro.
6953 (STRING_CHAR): Adjusted for the change of string_to_non_ascii_char.
6954 (STRING_CHAR_AND_LENGTH): Likewise.
6955 (STRING_CHAR_AND_CHAR_LENGTH): Define it as STRING_CHAR_AND_LENGTH.
6956 (INC_POS): Use the macro PARSE_MULTIBYTE_SEQ.
6957 (DEC_POS, BUF_INC_POS, BUF_DEC_POS): Likewise,
6958
6959 * charset.c (SPLIT_COMPOSITE_SEQ): New macro.
6960 (SPLIT_CHARACTER_SEQ): New macro.
6961 (SPLIT_MULTIBYTE_SEQ): New macro.
6962 (CHAR_COMPONENT_VALID_P): New macro.
6963 (non_ascii_char_to_string): Generate a multibyte sequence as far
6964 as possible.
6965 (string_to_non_ascii_char): The 4th arg exclude_tail_garbage is
6966 deleted. Caller changed. Use the macro SPLIT_MULTIBYTE_SEQ.
6967 (split_non_ascii_string): Likewise.
6968 (multibyte_form_length): Use the macro PARSE_MULTIBYTE_SEQ.
6969 (char_printable_p): New function.
6970 (translate_char): Check character by NATNUMP instead of INTEGERP.
6971 (unibyte_char_to_multibyte): Call char_valid_p instead of
6972 VALID_MULTIBYTE_CHAR_P.
6973 (Fmake_char_internal): Check the arguments more rigidly.
6974 (Fcharset_after): Use the macro SPLIT_MULTIBYTE_SEQ.
6975 (char_valid_p): Check the validity by CHAR_COMPONENT_VALID_P.
6976 (Fmultibyte_char_to_unibyte): Check the validity of character by
6977 CHAR_VALID_P.
6978 (chars_in_text): Call multibyte_chars_in_text.
6979 (multibyte_chars_in_text): Use the macro PARSE_MULTIBYTE_SEQ.
6980 (Fcompose_string): Use the macro STRING_CHAR_AND_LENGTH instead of
6981 STRING_CHAR_AND_CHAR_LENGTH (which is obsolete now).
6982
6983 * data.c (Faset): Adjust the way to check byte-combining
6984 possibility for the new handling of multibyte sequence.
6985
6986 * editfns.c (Fsubst_char_in_region): Likewise.
6987
6988 * fns.c (count_combining): Use the macro PARSE_MULTIBYTE_SEQ.
6989 (string_char_to_byte): Likewise.
6990 (string_byte_to_char): Likewise.
6991
6992 * indent.c (MULTIBYTE_BYTES_WIDTH): Delete the 2nd arg C. Use the
6993 macro STRING_CHAR_AND_LENGTH. Caller changed.
6994
6995 * insdel.c (count_combining_composition): New function.
6996 (count_combining_before): Adjust the way to check byte-combining
6997 possibility for the new handling of multibyte sequence. Call
6998 count_combining_composition for a composite character.
6999 (count_combining_after): Likewise.
7000
7001 * print.c (print_string): Use the macro STRING_CHAR_AND_LENGTH.
7002 (print): Likewise.
7003
7004 * dispextern.h (struct it): Change the size of the member
7005 `ctl_chars'.
7006
7007 * xdisp.c (get_next_display_element): Display incomplete multibyte
7008 sequence (e.g. \222\300) by octal form.
7009
70101999-09-02 Gerd Moellmann <gerd@gnu.org>
7011
7012 * xterm.h (VERTICAL_SCROLL_BAR_WIDTH_TRIM): Change from 2 to 0.
7013
7014 * fns.c (Fhash_table_weakness): Replaces Fhash_table_weak.
7015 (cmpfn_eql, sxhash): Use XFLOAT_DATA.
7016
70171999-09-02 Gerd Moellmann <gerd@gnu.org>
7018
7019 * buffer.c (set_buffer_internal): Never set
7020 windows_or_buffers_changed.
7021
7022 * xdisp.c (try_window_id): Reset first_unchanged_at_end_row
7023 if we have displayed to the bottom of the window.
7024
7025 * syntax.c (Fforward_word): Stop at a mini-buffer prompt end
7026 in both directions. Extend documentation.
7027
70281999-09-01 Gerd Moellmann <gerd@gnu.org>
7029
7030 * minibuf.c (read_minibuf): Flush display after setting cursor to
7031 column 0.
7032
70331999-08-31 Gerd Moellmann <gerd@gnu.org>
7034
7035 * s/freebsd.h (__FreeBSD_version): Don't define it if it is
7036 already defined. This avoids a warning from buffer.c.
7037
70381999-08-30 Gerd Moellmann <gerd@gnu.org>
7039
7040 * xterm.h (FRAME_X_FLAGS_AREA_COLS): Define it as the total width
7041 of both margins.
7042 (FRAME_X_FLAGS_AREA_WIDTH): Likewise.
7043 (FRAME_X_LEFT_FLAGS_AREA_WIDTH): New.
7044 (FRAME_X_RIGHT_FLAGS_AREA_WIDTH): New.
7045
7046 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add in FRAME_FLAGS_AREA_COLS
7047 once instead of twice.
7048 (FRAME_LEFT_FLAGS_AREA_WIDTH): New.
7049
7050 * xterm.c: Remove unused bitmaps.
7051 (continued_bits, continuation_bits, overlay_bits): Change images.
7052 (x_draw_vertical_border): Use FRAME_X_RIGHT_FLAGS_AREA_WIDTH
7053 instead of FRAME_X_FLAGS_AREA_WIDTH.
7054 (x_after_update_window_line): Ditto.
7055 (x_draw_bitmap): Likewise.
7056 (x_draw_row_bitmaps): Likewise.
7057 (x_draw_glyph_string_box): Likewise.
7058 (x_draw_glyphs): Likewise.
7059 (x_scroll_run): Likewise.
7060 (expose_window_tree): Likewise.
7061 (note_mode_line_highlight): Likewise.
7062 (XTset_vertical_scroll_bar): Likewise.
7063 (x_clip_to_row): Likewise.
7064 (x_set_window_size): Likewise.
7065
7066 * xfns.c (x_figure_window_size): Use FRAME_FLAGS_AREA_COLS instead
7067 of 2 * that value.
7068
7069 * xdisp.c (window_box_width): Use FRAME_FLAGS_AREA_COLS instead of
7070 2 * that value.
7071 (window_box_left): Use FRAME_LEFT_FLAGS_AREA_WIDTH instead of
7072 FRAME_FLAGS_AREA_WIDTH.
7073
7074 * window.c (coordinates_in_window): Use
7075 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
7076 (window_internal_width): Subtract FRAME_FLAGS_AREA_WIDTH once
7077 instead of twice.
7078
427ec082 7079 * widget.c (set_frame_size): Set flags_area_extra to
26901792
DL
7080 FRAME_FLAGS_AREA_WIDTH instead of 2 * that width.
7081 (EmacsFrameSetCharSize): Ditto.
7082
7083 * dispnew.c (mode_line_string): Add FRAME_LEFT_FLAGS_AREA_WIDTH
7084 instead of FRAME_FLAGS_AREA_WIDTH.
7085
7086 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract
7087 FRAME_FLAGS_AREA_COLS once.
7088 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Add
7089 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
7090
70911999-08-30 Gerd Moellmann <gerd@gnu.org>
7092
7093 * freebsd.h (C_SWITCH_SYSTEM): Added to let configure find headers
7094 in /usr/X11R6/include which are checked for with AC_CHECK_HEADER.
7095
70961999-08-30 Gerd Moellmann <gerd@gnu.org>
7097
7098 * fns.c (QCweakness): Replaces QCweak.
7099 (Fmake_hash_table): Ditto.
7100 (Fmakehash): Ditto.
7101 (syms_of_fns): Ditto.
7102
71031999-08-29 Richard Stallman <rms@gnu.org>
7104
7105 * search.c (compile_pattern_1): Enable RE_CHAR_CLASSES for regexp.
7106
7107 * sysdep.c (read_input_waiting): Pass read_socket_hook just 4 args.
7108
7109 * syntax.h (SYNTAX_COMMENT_NESTED, SYNTAX_FLAGS_COMMENT_NESTED):
7110 Add support for nested comments.
7111
863476d1
SM
7112 * syntax.c (Fforward_comment, scan_lists, scan_sexps_forward):
7113 Consolidate the forward comment code into the new `forw_comment'.
7114 (forw_comment): New subroutine. Added support for nested comments.
7115 (lisp_parse_state, back_comment, Fmodify_syntax_entry)
7116 (Fparse_partial_sexp): Add support for nested comments.
26901792
DL
7117
71181999-08-28 Ken Raeburn <raeburn@gnu.org>
7119
7120 * lisp.h (struct Lisp_Cons, XCAR, XCDR, struct Lisp_Float): Change
7121 names of structure elements if HIDE_LISP_IMPLEMENTATION is
7122 defined, to help detect code that uses knowledge of the Lisp
7123 internals that it shouldn't have.
7124 (XFLOAT_DATA): New macro.
7125
71261999-08-25 Gerd Moellmann <gerd@gnu.org>
7127
7128 * syntax.c (Fforward_word): If in a mini-buffer and moving
7129 backwards, stop in front of the prompt to prevent accidentially
7130 moving into the read-only prompt.
7131
7132 * window.c (Frecenter): Clear frame if called with nil or no arg.
7133
7134 * xdisp.c (resize_mini_window): Don't resize if
7135 Vmax_mini_window_height is nil. Otherwise, use a default if
7136 Vmax_mini_window_height is not ot a number.
7137 (syms_of_xdisp): Extend documentation of Vmax_mini_window_height.
7138
71391999-08-25 Alexandre Oliva <oliva@dcc.unicamp.br>
7140
7141 * unexelf.c: Merge IRIX debugging info patch from unexsgi.c
7142 * m/iris4d.h: Use unexelf for IRIX 5.*.
7143 * m/iris5d.h: Use unexelf for IRIX 6.*.
7144 * unexsgi.c: Deleted.
7145
7146 * unexelf.c: Auto-detect .sbss section.
7147 (round_up): Make it static.
7148 (unexec): Declare alignment as Elf Word. Skip ``Program
7149 segment above .bss'' test on MIPS without .sbss.
7150 Copy sections .got and .sdata1 sections. Adjust offsets in
7151 sections .sdata, .lit4, .lit8, .got and .sdata1.
7152
71531999-08-25 Gerd Moellmann <gerd@gnu.org>
7154
7155 * xdisp.c (try_window_id): Remove typo.
7156
71571999-08-24 Gerd Moellmann <gerd@gnu.org>
7158
7159 * xdisp.c (try_window_id): Recognize case that PT == ZV and in
7160 unchanged text at the bottom when computing the cursor position.
7161 (message3_nolog): Raise frame only if minibuffer_auto_raise is
7162 set.
7163
7164 * lisp.h (PVEC_TYPE_MASK): Add the bit for hash tables.
7165
71661999-08-24 Gerd Moellmann <gerd@gnu.org>
7167
7168 * xfaces.c (Qmargin): Replacement for Qbitmap_area.
7169 (realize_basic_faces): Replace Qmargin for Qbitmap_area.
7170 (syms_of_xfaces): Ditto.
7171
7172 * window.c (Fset_window_point): Reset Vresize_mini_config.
7173 (Fset_window_start): Ditto.
7174 (set_window_buffer): Ditto.
7175
7176 * dispnew.c (adjust_frame_glyphs): Reset Vresize_mini_config.
7177
7178 * xdisp.c (redisplay_window): Don't ever test just_this_one_p
7179 before calling try_window.
7180 (echo_area_display): If height has changed, update other windows.
7181 (resize_mini_frame, resize_mini_initial_height): New.
7182 (resize_mini_window): Save/restore window configuration
7183 differently.
7184
427ec082 7185 * lisp.h (Vresize_mini_config, resize_mini_frame,
26901792
DL
7186 resize_mini_initial_height): Add extern declarations.
7187
7188 * xterm.c (expose_window_tree): Fix typo CANON_Y_UNIT to
7189 CANON_X_UNIT.
7190
7191 * xfns.c [HAVE_JPEG]: Work around a warning about HAVE_STDLIB_H
7192 being redefined in jconfig.h.
7193
71941999-08-23 Ken'ichi Handa <handa@gnu.org>
7195
7196 * coding.h: Include "ccl.h" instead of "../src/ccl.h".
7197
71981999-08-22 Gerd Moellmann <gerd@gnu.org>
7199
7200 * alloc.c (mark_glyph_matrix): Mark strings only.
7201
7202 * xdisp.c (redisplay_internal): Clear garbaged frames after
7203 resizing mini-window.
7204
72051999-08-22 Gerd Moellmann <gerd@gnu.org>
7206
7207 * xdisp.c (unwind_with_echo_area_buffer): Use
7208 set_buffer_internal_1 instead of set_buffer_internal.
7209 (with_echo_area_buffer): Ditto.
7210
7211 * buffer.c (set_buffer_internal): Set windows_or_buffers_changed
7212 only if buffer is displayed somewhere.
7213
7214 * buffer.h (BUF_COMPUTE_UNCHANGED): New.
7215
7216 * insdel.c (gap_left): Use BUF_COMPUTE_UNCHANGED.
7217 (gap_right): Ditto.
7218 (modify_region): Ditto.
7219
7220 * buffer.c (modify_overlay): Use BUF_COMPUTE_UNCHANGED.
7221
7222 * xdisp.c (Vresize_mini_config): New.
7223 (resize_mini_window): Use it to save restore original window
7224 configuration
7225 (syms_of_xdisp): Initialize it.
7226
7227 * buffer.h (struct buffer): Add prevent_redisplay_optimizations_p.
7228
7229 * dispextern.h (struct glyph_matrix): Add buffer, begv, and zv.
7230
7231 * xdisp.c (reconsider_clip_changes): New.
7232 (redisplay_internal, redisplay_window): Call it.
7233 (mark_window_display_accurate, redisplay_internal): Set current
7234 matrix' buffer, begv, zv.
7235
7236 * window.c (Fset_window_hscroll): Set
7237 prevent_redisplay_optimizations_p instead of clip_changed.
7238 (Fset_window_hscroll): Ditto.
7239 (temp_output_buffer_show): Ditto.
7240 (Fset_window_vscroll): Ditto.
7241
7242 * buffer.c (reset_buffer): Set clip_changed to 0 and
7243 prevent_redisplay_optimizations_p to 1.
7244 (Fget_buffer_create): Set prevent_redisplay_optimizations_p to 1.
7245
7246 * buffer.h (BUF_UNCHANGED_MODIFIED, UNCHANGED_MODIFIED,
7247 BUF_OVERLAY_UNCHANGED_MODIFIED, OVERLAY_UNCHANGED_MODIFIED,
7248 BUF_BEG_UNCHANGED, BEG_UNCHANGED, BUF_END_UNCHANGED,
7249 END_UNCHANGED): New.
7250 (struct buffer_text): Add beg_unchanged, end_unchanged,
7251 unchanged_modified, overlay_unchanged_modified.
7252
7253 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
7254 overlay_unchanged_modified): Removed.
7255 (with_echo_area_unwind_data): Don't save beg/end_unchanged.
7256 (unwind_with_echo_area_buffer): Don't restore them.
7257 (debug_beg_unchanged, debug_end_unchanged) [GLYPH_DEBUG]: Removed.
7258 (text_outside_line_unchanged_p, redisplay_internal,
7259 try_scrolling): Use/set buffer-specific beg/end_unchanged.
7260 (redisplay_window): Let try_window_id be called if more than one
7261 window is displayed. Use/set buffer-specific beg/end_unchanged.
7262 (get_last_unchanged_at_beg_row, get_first_unchanged_at_end_row,
7263 try_window_id):
7264 Use buffer-specific beg/end_unchanged.
7265
7266 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
7267 overlay_unchanged_modified): Remove extern declarations.
7268
7269 * keyboard.c (command_loop_1): Set beg/end_unchanged per
7270 buffer.
7271
7272 * insdel.c (gap_left): Compute beg/end_unchanged per buffer.
7273 (gap_right): Ditto.
7274 (adjust_after_replace): Likewise.
7275 (replace_range, del_range_2, modify_region): Likewise.
7276
7277 * dispnew.c (direct_output_for_insert): Set beg_unchanged
7278 and unchanged_modified per buffer.
7279
7280 * coding.c (code_convert_region): Compute beg/end_unchanged per
7281 buffer.
7282
7283 * buffer.c (modify_overlay): Compute beg/end_unchanged
7284 per buffer.
427ec082 7285 (Fget_buffer_create): Initialize new members of the buffer
26901792
DL
7286 structure.
7287
72881999-08-22 Gerd Moellmann <gerd@gnu.org>
7289
7290 * lisp.h: Add prototype for copy_hash_table and Fcopy_hash_table.
7291
7292 * fns.c (Qkey, Qvalue): Renamed from Qkey_weak, and Qvalue_weak.
7293 (Qkey_value_weak): Removed.
7294 (make_hash_table): Use nil, `key', `value', t for weakness.
7295 (Fmake_hash_table): Ditto.
7296 (copy_hash_table): New.
7297 (Fcopy_hash_table): New.
7298
72991999-08-22 Gerd Moellmann <gerd@gnu.org>
7300
7301 * xfns.c: Call change_frame_size and do_pending_window_change with
427ec082 7302 new parameter.
26901792
DL
7303
73041999-08-21 Gerd Moellmann <gerd@gnu.org>
7305
7306 * xdisp.c (resize_mini_window): Do it for truncate-lines t as
7307 well.
427ec082 7308 (redisplay_internal): Resize mini-window only if text might
26901792
DL
7309 have changed.
7310 (display_echo_area): Reset displayed echo_area_buffer to nil
7311 at the end if we're displaying a nil message.
7312
73131999-08-21 Gerd Moellmann <gerd@gnu.org>
427ec082 7314
26901792
DL
7315 * fns.c (hash_lookup): Test with EQ before calling key comparion
7316 function.
7317 (hash_remove): Ditto.
7318 (cmpfn_eq): Removed.
7319 (cmpfn_eql): Don't test with EQ.
7320 (cmpfn_equal): Ditto.
7321 (make_hash_table): Set comparison function for `eq' to null.
7322
7323 * buffer.c, cmds.c, editfns.c, indent.c, insdel.c, buffer.h:
7324 Remove conditional compilation on NO_PROMPT_IN_BUFFER.
7325
7326 * dispextern.h (NO_PROMPT_IN_BUFFER): Removed.
7327
7328 * window.c, widget.c, process.c, keyboard.c, frame.c, xdisp.c,
7329 xterm.c: Call change_frame_size and do_pending_window_change with
7330 new parameter.
7331
7332 * dispnew.c (do_pending_window_change): Add parameter `safe'.
7333 (change_frame_size): Ditto.
7334 (change_frame_size_1): Ditto. Deley size changes if redisplaying
7335 and not called from a safe place.
7336 (window_change_signal): Call change_frame_size with new parameter.
7337
7338 * dispextern.h: Change prototypes for do_pending_window_change
7339 and change_frame_size.
7340
7341 * xfaces.c (face_at_buffer_position): Don't xassert that
427ec082 7342 window's buffers equals current_buffer; this is not the
26901792
DL
7343 case during echo area display.
7344
73451999-08-21 Gerd Moellmann <gerd@gnu.org>
7346
7347 * xdisp.c, minibuf.c: Remove conditional compilation on
7348 NO_PROMPT_IN_BUFFER.
7349
7350 * minibuf.c (Fminibuffer_prompt_end): New.
7351 (syms_of_minibuf): Defsubr it. Remove
7352 minibuffer-prompt-in-buffer.
7353 (Fminibuffer_prompt_width): Return 0 if not in mini-buffer.
7354 Extend documentation.
7355
7356 * xdisp.c (get_next_display_element): Display \r as ^M.
7357
7358 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Clear
7359 under scroll bar widget.
7360
73611999-08-21 Gerd Moellmann <gerd@gnu.org>
7362
7363 * xdisp.c (minibuffer_scroll_overlap): Removed because not used
7364 anywhere.
7365 (unwind_redisplay): Return nil.
7366 (clear_garbaged_frames): New.
7367 (redisplay_internal): Use it.
7368 (echo_area_display): Ditto.
7369 (resize_mini_window): Mew.
7370 (display_echo_area_1): Use it to resize echo area window.
7371 (redisplay_internal): Use it to resize active mini-window.
7372
7373 * dispextern.h, lisp.h: Add function prototypes.
7374
427ec082 7375 * dispnew.c (set_window_cursor_after_update): Do the
26901792
DL
7376 cursor_in_echo_area case only for a mini-window showing
7377 a message. Don't let cursor end up after the end of a row.
7378
7379 * xdisp.c (echo_area_glyphs, echo_area_message,
7380 echo_area_glyphs_length, previous_echo_glyphs,
7381 previous_echo_area_message, previous_echo_area_glyphs_length):
7382 Removed.
7383 (Vmessage_stack, echo_area_buffer, echo_buffer,
7384 display_last_displayed_message_p, Vwith_echo_area_save_vector): New.
7385 (message2_nolog): Use set_message and clear_message.
7386 (message3): Rename parameter len to nbytes to make clear what
7387 it is.
7388 (message3_nolog): Ditto. Use set_message and clear_message.
7389 (update_echo_area): Rewritten.
7390 (with_echo_area_buffer): New.
7391 (with_echo_area_buffer_unwind_data, unwind_with_area_buffer): New.
7392 (setup_echo_area_for_printing): New.
7393 (display_echo_area, display_echo_area_1): New.
7394
7395 (current_message, current_message_1): New.
427ec082 7396 (push_message, restore_message, pop_message,
26901792
DL
7397 check_message_stack): New.
7398 (truncate_echo_area): Rewritten.
7399 (truncate_message_1): New.
7400 (set_message, set_message_1, clear_message): New.
7401 (echo_area_display): Rewritten.
7402 (redisplay_internal): Check for needed echo area update
7403 differently.
7404 (redisplay_preserve_echo_area): Rewritten.
427ec082 7405 (redisplay_window): Check for mini-window displaying echo area
26901792
DL
7406 message differently.
7407 (syms_of_xdisp): Initialize Vmessage_stack and echo area buffers.
7408 Remove initialzation of removed variables.
7409 (init_xdisp): Remove references to removed variables.
7410
7411 * dispnew.c (adjust_frame_message_buffer): Removed references
7412 to echo_area_glyphs and previous_echo_glyphs.
7413 (direct_output_for_insert): Check for mini-window displaying
7414 echo area message differently.
7415 (update_frame): Likewise.
7416 (set_window_cursor_after_update): Likewise. In echo area,
7417 don't try to set cursor on rows that aren't enabled.
7418
7419 * print.c: Remove conditional compilation on `standalone'.
7420 (glyph_len, str_to_glyph_cpy, str_to_glyph_ncpy,
427ec082 7421 glyph_to_str_cpy): Remove that section because GLYPHs are no
26901792
DL
7422 longer used in that way.
7423 (PRINTDECLARE): Add multibyte.
7424 (PRINTPREPARE, PRINTFINISH): Handle printcharfun t differently.
7425 (printbufidx): Removed.
7426 (printchar, strout): Rewritten.
7427
7428 * keyboard.c (ok_to_echo_at_next_pause): Make it a pointer to
7429 a struct kboard.
7430 (echo_kboard): New.
7431 (echo_now): Set echo_kboard to the current kboard.
7432 (cancel_echoing): Set echo_kboard to null.
7433 (cmd_error_internal): Use clear_message, remove references
7434 to echo_area_glyphs and echo_area_message.
7435 (command_loop_1): Check for echo area messages differently.
7436 (read_char): Likewise.
7437 (record_menu_key): Use clear_message.
7438 (Fexecute_extended_command): Check for echo area messages
7439 differently. Use push_message, restore_message, pop_message.
7440
7441 * alloc.c (Fgarbage_collect): Use push_message, restore_message,
7442 pop_message.
7443
7444 * emacs.c (shut_down_emacs): Call check_message_stack.
7445
7446 * lisp.h: Add function prototypes and extern declarations for
7447 new functions and variables.
7448
7449 * fileio.c (Fdo_auto_save): Use push_message, restore_message,
7450 pop_message.
7451
427ec082 7452 * minibuf.c (read_minibuf): Use clear_message instead of
26901792
DL
7453 setting echo_area_glyphs.
7454 (Fminibuffer_completion_help): Ditto.
7455
7456 * editfns.c (Fcurrent_message): Rewritten.
7457
7458 * frame.c, window.h: Remove references to echo_area_glyphs
7459 and previous_echo_glyphs.
7460
74611999-08-21 Dave Love <fx@gnu.org>
7462
7463 * aix3-2-5.h (C_DEBUG_SWITCH): Use -g -O.
7464 * aix4-1.h: Likewise.
7465
7466 * irix6-5.h (C_DEBUG_SWITCH): Set for debug and optimize.
7467
74681999-08-20 Gerd Moellmann <gerd@gnu.org>
7469
7470 * xfns.c: Remove tiff34 prefix from include.
7471
74721999-08-20 Dave Love <fx@gnu.org>
7473
7474 * cm.c: Revert previous change.
7475
74761999-08-19 Gerd Moellmann <gerd@gnu.org>
7477
7478 * xterm.c (XTset_vertical_scroll_bar): Fix previous change. Clear
7479 under scroll bar with width FRAME_SCROLL_BAR_COLS.
7480
74811999-08-18 Dave Love <fx@gnu.org>
7482
7483 * callproc.c, filelock.c, insdel.c, sysdep.c, xmenu.c: Use
7484 stdlib.h.
7485
7486 * doprnt.c: Use stdlib.h, unistd.h.
7487
7488 * config.in: Add HAVE_TERMCAP_H.
7489
7490 * cm.c: Use termcap.h.
7491
74921999-08-18 Gerd Moellmann <gerd@gnu.org>
7493
7494 * xfns.c (x_window) [USE_X_TOOLKIT]: Remove test for
7495 FRAME_X_WINDOW (f) being null at the of the function. If widgets
7496 cannot be created we will already have crashed earlier. Call
7497 lw_set_main_areas with a null menu-bar widget, so that we have
7498 a reasonable default.
7499 (Fx_create_frame): Rearranged so that Lisp errors during frame
7500 initialization cause less damage. Initialize menu bar widget
7501 here.
7502
75031999-08-18 Gerd Moellmann <gerd@gnu.org>
427ec082 7504
26901792
DL
7505 * dispnew.c (update_frame_line): Fix previous change. If writing
7506 whole line clear to end of frame.
7507
75081999-08-17 Gerd Moellmann <gerd@gnu.org>
7509
7510 * window.c (Fcoordinates_in_window_p): Return `left-bitmap-area'
7511 and `right-bitmap-area' if position is in the bitmap areas. This
7512 avoids an error when clicking on the bitmap areas. Instead, they
7513 are currently treated like clicks inside the window.
7514 (coordinates_in_window): Return 5 and 6 for bitmap areas.
7515 (Qleft_bitmap_area, Qright_bitmap_area): New.
7516 (syms_of_window): Initialize new symbols.
7517
7518 * dispnew.c (update_frame_line): If writing whole line,
7519 don't write trailing spaces unless we must.
7520
7521 * xdisp.c (unwind_redisplay): New. Resets flag redisplaying_p.
7522 (redisplay_internal): Register unwind_redisplay with
7523 register_unwind_protect.
7524 (try_window_reusing_current_matrix): If new start > old start,
7525 give up if start pos of first reusable row is not equal to new
7526 start.
7527
7528 * eval.c (Fsignal): Don't reset redisplaying_p here.
7529
7530 * xterm.c (expose_area): If row extends face to end of line,
7531 write the whole line.
7532
75331999-08-16 Gerd Moellmann <gerd@gnu.org>
7534
7535 * dispextern.h (struct it): Remove member
7536 show_trailing_whitespace_p.
7537
7538 * dispnew.c (direct_output_for_insert): Use
7539 Vshow_trailing_whitespace instead of former iterator member
7540 show_trailing_whitespace_p.
7541 (direct_output_forward_char): Don't do it if hightlighting
7542 trailing whitespace.
7543
7544 * xdisp.c (Qshow_trailing_whitespace): Removed.
7545 (Vshow_trailing_whitespace): Added.
7546 (init_iterator): Remove initialization code for
7547 show_trailing_whitespace_p.
7548 (redisplay_internal): Don't try cursor movement in this_line
7549 if showing trailing whitespace.
7550 (redisplay_window): Likewise for cursor movement in current
7551 matrix and try_window_id.
7552 (try_window_reusing_current_matrix): Likewise.
7553 (trailing_whitespace_p): Return 0 if trailing whitespace is
7554 in front of point.
7555 (display_line): Use Vshow_trailing_whitespace instead of
7556 former iterator member show_trailing_whitespace_p.
7557 (syms_of_xdisp): Add DEFVAR_LISP for show-trailing-whitespace.
7558
75591999-08-16 Gerd Moellmann <gerd@gnu.org>
7560
7561 * window.c (Fpos_visible_in_window_p): Rewritten.
7562
7563 * xfaces.c (add_to_log): Renamed from display_message.
7564 Don't display messages in echo area.
7565
7566 * xterm.c (x_draw_glyph_string_box): Use the background width
7567 of the glyph string for the width of the box.
7568
75691999-08-16 Stefan Monnier <monnier@cs.yale.edu>
7570
7571 * syntax.c (Fforward_comment): Set comstyle for Scomment_fence.
7572
75731999-08-16 Geoff Voelker <voelker@cs.washington.edu>
7574
7575 * xfns.c, w32fns.c (x_set_frame_parameters): Set foreground and
7576 background first, and then set other parameters that might
7577 depend upon their new values.
7578
75791999-08-15 Gerd Moellmann <gerd@gnu.org>
7580
7581 * xfaces.c (Vfont_list_limit): New.
7582 (syms_of_xfaces): Make it a user-variable.
7583 (DEFAULT_FONT_LIST_LIMIT): New.
7584 (sorted_font_list): If Vfont_list_limit is an integer > 0, list
7585 maximally that number of fonts, otherwise use
7586 DEFAULT_FONT_LIST_LIMIT.
427ec082 7587 (Fx_font_family_list): Bind `font-list-limit' to higher values
26901792
DL
7588 until we have all fonts.
7589 (Fxfont_list): Additionally return the full names of fonts and
7590 their registry and encoding.
7591
427ec082 7592 * xterm.c (XTset_vertical_scroll_bar) [USE_TOOLKIT_SCROLL_BARS]:
26901792
DL
7593 Simplify clearing "under" scroll bar.
7594
7595 * window.c (Qfixed_window_size): New.
7596 (syms_of_window): Initialiaze it.
7597 (check_all_windows): Add return type void.
7598 (window_fixed_size_p): New. Return non-zero if window
7599 is fixed-size.
7600 (window_min_size_1): New.
7601 (window_min_size): Handle fixed-size windows.
7602 (size_window): New. Rewritten combination of set_window_height and
7603 set_window_width that handles fixed-size windows.
7604 (set_window_height): Call it.
7605 (set_window_width): Call it.
7606 (Fsplit_window): Give an error on attempt to split a fixed-size
7607 window.
7608 (change_window_height): Partly rewritten to handle fixed-size
7609 windows.
7610
76111999-08-13 Wolfgang Rupprecht <wolfgang@wsrcc.com>
7612
7613 * process.c (Fopen_network_stream): Fix previous change.
7614
76151999-08-13 Karl Heuer <kwzh@gnu.org>
7616
7617 * xdisp.c (line_number_display_limit_width): New var.
7618 (decode_mode_spec): Use it instead of hardcoded value.
7619 (syms_of_xdisp): Defvar it.
7620
76211999-08-13 Richard M. Stallman <rms@gnu.org>
7622
7623 * eval.c (run_hook_list_with_args): Gcpro `globals'.
7624 (run_hook_with_args): Likewise.
7625
7626 * window.h (struct window): New field too_small_ok.
7627
427ec082 7628 * window.c (set_window_height, set_window_width):
26901792
DL
7629 If window starts out "too small", set its too_small_ok flag.
7630 If window's too_small_ok flag is set, don't delete it
7631 unless it is so small it would cause a crash.
7632
76331999-08-13 Gerd Moellmann <gerd@gnu.org>
7634
7635 * window.c (MINSIZE): Removed.
7636 (window_min_size): New.
7637 (set_window_height): Use window_min_size.
7638 (change_window_height): Ditto.
7639
76401999-08-12 Gerd Moellmann <gerd@gnu.org>
7641
7642 * indent.c (vmotion): Don't add in mini-buffer prompt width
7643 if prompts are inserted into mini-buffer.
7644
76451999-08-12 Wolfgang Rupprecht <wolfgang@wsrcc.com>
7646
7647 * config.in: Add HAVE_GETADDRINFO.
7648 * process.c (Fopen_network_stream): Use getaddrinfo.
7649
76501999-08-11 Gerd Moellmann <gerd@gnu.org>
7651
7652 * xdisp.c (get_overlay_arrow_glyph_row): Set the charpos of
7653 glyphs to -1.
7654
7655 * xdisp.c (face_before_or_after_it_pos): If position after
7656 or before iterator's current position in the buffer is out
7657 of bounds, return the iterator's original face id.
7658
7659 * dispnew.c (mirror_make_current): If desired row isn't enabled,
7660 just swap glyphs pointers between current and desired row.
7661 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Copy
7662 desired matrix method string to current matrix.
7663
76641999-08-11 Kenichi Handa <handa@etl.go.jp>
7665
7666 * lisp.h (CHAR_MODIFIER_MASK): New macro.
7667
7668 * lread.c (read_escape): For Control modifier, pay attention to
7669 multibyte character.
7670 (read1): Likewise. Singal error or a multibyte character which
7671 has a modifer bit. Check validity of Shift modifer.
7672
7673 * charset.c (non_ascii_char_to_string): Handle modifier bits as
7674 the same as Lisp reader.
7675
76761999-08-10 Richard M. Stallman <rms@gnu.org>
7677
7678 * charset.h (BCOPY_SHORT): Fix typo `unsigined'.
7679
76801999-08-10 Alexandre Oliva <oliva@dcc.unicamp.br>
7681
7682 * unexelf.c [__linux__ && __alpha__] (HAS_SBSS_SECTION): Define.
7683
76841999-08-10 Eli Zaretskii <eliz@gnu.org>
7685
7686 * msdos.c (IT_set_face): Abort if the default face is not realized
7687 and cached.
7688 (IT_write_glyphs): Reset the screen face to the default face
7689 before writing glyphs.
7690
7691 * xfaces.c (realize_default_face) [MSDOS]: Don't take default
7692 colors from the frame here.
7693 (realize_tty_face) [MSDOS]: Do it here. Update the face
7694 attributes with the actual name of the color taken from the
7695 frame.
7696
7697 * dosfns.c (msdos_stdcolor_name): Remove const from return value.
7698 * dosfns.h (msdos_stdcolor_name): Ditto for the prototype.
7699
7700 * frame.c (Fframe_parameters): Swap foreground and background
7701 colors returned in frame parameters if the frame has reverse in
7702 its parameter alist.
7703 (Fmake_terminal_frame): Make a unique copy of face_alist for
7704 each frame.
7705
77061999-08-07 Richard Stallman <rms@gnu.org>
7707
7708 * buffer.c (Fprevious_overlay_change): Just return
7709 the answer obtained from overlays_at.
7710
7711 * xfns.c (xpm_load) [!XpmAllocCloseColors]:
7712 Use XpmCloseness and attrs.closeness instead.
7713
77141999-08-06 Richard Stallman <rms@gnu.org>
7715
7716 * lread.c (Feval_buffer): New arg DO_ALLOW_PRINT.
7717
77181999-08-06 Geoff Voelker <voelker@cs.washington.edu>
7719
427ec082 7720 * dired.c (directory_files_internal, Fdirectory_files_and_attributes,
26901792
DL
7721 Ffile_attributes_lessp): New functions.
7722 (Fdirectory_files): Use directory_files_internal.
7723 (syms_of_dired): Initialize Fdirectory_files_and_attributes,
7724 Ffile_attributes_lessp.
7725
7726 * w32.c (stat): Check for directory ending in separator when
7727 doing readdir fast path.
7728
7729 * w32fns.c (x_set_icon_type): Support setting frame icons.
7730 * w32term.c (x_bitmap_icon): New function.
7731 (x_make_frame_visible, x_iconify_frame): Invoke x_bitmap_icon.
427ec082 7732
26901792
DL
77331999-08-06 Gerd Moellmann <gerd@gnu.org>
7734
7735 * xdisp.c (set_iterator_to_next): After delivering a character
7736 from a display vector, restore face and charset to what they were
7737 before the display vector was processed.
7738
77391999-08-06 Gerd Moellmann <gerd@gnu.org>
7740
7741 * xdisp.c (reseat_at_next_visible_line_start): New parameter
7742 on_newline_p.
7743 (set_iterator_to_next): After delivering last char
427ec082 7744 from display vector, reseat on next visible line start if
26901792
DL
7745 dpvec_char_len < 0.
7746 (next_element_from_buffer): Set dpvec_char_len to -1 for
7747 selective display.
7748
77491999-08-06 Gerd Moellmann <gerd@gnu.org>
7750
7751 * xdisp.c (compute_line_metrics): If first line's physical ascent
7752 is larger than its logical ascent, use the physical ascent, and
7753 make the row taller. Set row's overlapping_p flag.
7754
7755 * dispnew.c (redraw_overlapping_rows): Use flag overlapping_p.
7756 (direct_output_for_insert): Ditto.
7757
7758 * dispextern.h (struct glyph_row): Add overlapping_p.
7759
7760 * xterm.c (x_draw_phys_cursor_glyph): Redraw overlaps.
7761
7762 * dispextern.h (MATRIX_ROW_OVERLAPS_PRED_P): New.
7763 (MATRIX_ROW_OVERLAPS_SUCC_P): New.
7764
7765 * dispnew.c (direct_output_for_insert): Don't use this method if
7766 row is overlapped by others.
7767 (update_text_area): Write full line if current line is overlapped.
7768 (redraw_overlapped_rows): New.
7769 (update_window): Call it.
7770 (redraw_overlapping_rows): New.
7771 (update_window): Call it.
7772 (scrolling_window): Make sure overlapped_p flag in current rows is
7773 unchanged.
7774 (row_equal_p): Take rows overlapped_p flag into account.
7775
7776 * dispextern.h (struct glyph_row): Add flag overlapped_p.
7777
7778 * xterm.c (x_fix_overlapping_area): New.
7779 (x_redisplay_interface): Add x_fix_overlapping_area.
7780
7781 * dispnew.c (adjust_glyphs): Block input while adjusting matrices.
7782
77831999-08-06 Gerd Moellmann <gerd@gnu.org>
7784
7785 * xterm.c (x_draw_glyphs): Add parameter overlaps_p.
7786 (struct glyph_string): Add member for_overlaps_p.
7787 (x_get_glyph_string_clip_rect): If glyph string draws foreground
7788 of overlapping rows, clip to window bottom.
7789 (x_fill_glyph_string): Add parameter overlaps_p.
7790 (x_fill_composite_glyph_string): Ditto.
7791 (BUILD_GLYPH_STRINGS): Ditto.
7792 (BUILD_CHAR_GLYPH_STRINGS): Ditto.
7793 (x_draw_glyph_string): Don't draw anything but the foreground
7794 if glyph string draws row overlaps.
7795
7796 * dispnew.c (direct_output_for_insert): Don't use this
7797 optimization for rows that overlap others.
7798 (update_window_line): Return non-zero if display has changed.
7799 (update_text_area): Ditto.
7800 (update_window): Record if display has been changed.
7801
7802 * dispextern.h (MATRIX_ROW_OVERLAPPING_P): New.
7803
7804 * dispextern.h (struct redisplay_interface): Add
7805 fix_overlapping_area.
7806
7807 * xterm.c (x_append_glyph): Set glyph flag overlaps_vertically_p.
7808
7809 * dispextern.h (struct glyph): Add overlaps_vertically_p.
7810
7811 * xterm.c (x_produce_image_glyph): Compute iterator's physical
7812 ascent and descent.
7813 (x_produce_stretch_glyph): Ditto.
7814 (x_produce_glyphs): Ditto.
7815
7816 * xdisp.c (init_iterator): Reset physical line height info
7817 after producing special glyphs.
7818 (display_toolbar_line): Set physical line height info.
7819 (compute_line_metrics): Ditto.
7820 (display_line): Ditto.
7821 (display_string): Ditto.
7822
7823 * term.c (produce_glyphs): Set iterator's physical height
7824 information.
7825
7826 * dispnew.c (blank_row): Compute glyph row's physical height.
7827 (row_equal_p): Take physical row heights into account.
7828 (direct_output_for_insert): Ditto.
7829 (update_text_area): Ditto.
7830
7831 * dispextern.h (struct glyph_row): Add phys_ascent and
7832 phys_height.
7833 (struct it): Add phys_ascent, phys_descent, max_phys_ascent,
7834 max_phys_descent.
7835
78361999-08-04 Stefan Monnier <monnier@cs.yale.edu>
7837
7838 * buffer.c (switch_to_buffer_1): New subroutine, taken out from
7839 Fswitch_to_buffer.
7840 (no_switch_buffer): New function.
7841 (Fswitch_to_buffer): Call them. Don't get confused
7842 by "same-window" buffers in a dedicated frame.
7843
7844 * window.c (display-buffer): Don't get confused
7845 by "same-window" buffers in a dedicated frame.
7846
78471999-08-04 Andreas Schwab <schwab@gnu.org>
7848
7849 * insdel.c (insert_from_string_1): Check gap size against number
7850 of outgoing bytes, not incoming bytes.
7851
78521999-08-03 Tom Breton <tob@world.std.com>
7853
7854 * lread.c (read1): Added circular reading code to #N=.
7855 (SUBSTITUTE): New macro.
7856 (seen_list): New variable.
7857 (substitute_object_in_subtree): New function.
7858 (substitute_object_recurse): New function.
7859 (substitute_in_interval): New function.
7860
78611999-08-02 Eli Zaretskii <eliz@gnu.org>
7862
7863 * Makefile.in (frame.o, sysdep.o, xfaces.o): Depend on dosfns.h.
7864
7865 * frame.c (make_terminal_frame): Don't call init_frame_faces if
7866 noninteractive, for termcap frames as well.
7867
7868 * sysdep.c (init_sys_modes): Call init_frame_faces for termcap
7869 frames.
7870
78711999-08-01 Richard Stallman <rms@gnu.org>
7872
7873 * fns.c (internal_equal): Correct overlay comparison.
7874
83c8f461 78751999-07-31 Richard M. Stallman <rms@gnu.org>
26901792 7876
427ec082 7877 * xfns.c (x_set_internal_border_width):
26901792
DL
7878 Call do_pending_window_change. Don't block input, don't call XFlush.
7879 (x_set_vertical_scroll_bars): Call do_pending_window_change.
7880 (x_set_scroll_bar_width, x_set_font): Likewise.
7881
7882 * frame.c (Fset_frame_height): Call do_pending_window_change.
7883 (Fset_frame_width, Fset_frame_size): Likewise.
7884
7885 * xterm.c (x_set_window_size): When calling change_frame_size,
7886 specify 1 for DELAY.
7887
7888 * widget.c (EmacsFrameSetCharSize): Don't call
7889 do_pending_window_change here.
7890
78911999-07-30 Dave Love <fx@gnu.org>
7892
7893 * config.in: Add HAVE_STDLIB_H.
7894
78951999-07-30 Richard M. Stallman <rms@gnu.org>
7896
7897 * process.c (create_process): Detect failure of `pipe'.
7898
78991999-07-30 Keisuke Nishida <kei@psn.net>
7900
7901 * alloc.c (allocate_vectorlike): Add missing increment.
7902
7903 * data.c (Fdefalias): Call Ffset instead of duplicating code.
7904
7905 * keymap.c (get_keymap_1, get_keyelt): Check the type of OBJECT
7906 before calling indirect_function.
7907
79081999-07-30 Eli Zaretskii <eliz@gnu.org>
7909
7910 * dispextern.h (load_color, lookup_derived_face): Declare
7911 prototypes.
7912
7913 * dispnew.c (init_display) [MSDOS]: Don't initialize frame faces,
7914 it will be done later.
7915
7916 * frame.c (make_terminal_frame) [MSDOS]: Don't call
7917 init_frame_faces if non-interactive.
7918 (Fframe_parameters) [MSDOS]: Replace indexing into colornames[]
7919 array with a call to msdos_stdcolor_name. The font name is now
7920 "ms-dos", consistent with realize_tty_face.
7921
7922 * keyboard.c (cmd_error_internal): Don't kill Emacs if this is an
7923 MSDOS frame.
7924
7925 * window.c (Fset_window_configuration) [MSDOS]: Don't call
7926 x_set_toolbar_lines.
7927
7928 * xfaces.c (load_color): Remove static from definition and remove
7929 prototype.
7930 [MSDOS]: Add a DOS-specific version of load_color.
7931 (lookup_face): Replace FRAME_TERMCAP_P with !FRAME_WINDOW_P.
7932 (lookup_derived_face): New function.
7933 (realize_default_face): Support MSDOS frames.
7934 [MSDOS]: If fore/background colors are unspecified, inherit them
7935 from the frame.
7936 (realize_face): Support MSDOS frames.
7937 (realize_tty_face): Support MSDOS frames.
7938 [MSDOS]: If the face color is not in Vface_tty_color_alist, call
7939 load_color to try to find a suitable approximation. If the face
7940 is inverse-video, swap the foreground and background colors.
7941
7942 * dosfns.c (msdos_stdcolor_name, msdos_stdcolor_idx): New
7943 functions.
7944
7945 * dosfns.h (msdos_stdcolor_name, msdos_stdcolor_idx): Declare.
7946
7947 * msdos.h: Remove redundant declarations (most of them are now in
7948 dispextern.h).
7949
7950 * msdos.c (IT_set_face): Rewritten for the new redisplay engine.
7951 Use default frame colors if the face doesn't specify them; invert
7952 the colors if highlight is ON.
7953 (IT_write_glyphs): Rewritten for the new redisplay engine.
7954 (IT_change_line_highlight): Add (unused) parameter Y, since that's
7955 how the hook is called by term.c.
7956 (IT_copy_glyphs): New function, copies an area of the display in
7957 video RAM.
7958 (IT_insert_glyphs): Rewritten to DTRT instead of aborting, since
7959 redisplay now calls it even if char_ins_del_ok is zero.
7960 (IT_set_frame_parameters): Prototype changed. Calls the new
7961 load_color. Puts the new fore/background colors into the default
7962 face on current frame.
7963 (IT_menu_display): Rewritten to handle the new struct glyph
7964 instead of a char array.
7965 (XMenuActivate): Call lookup_derived_face to create and use
7966 special faces for the pop-up and drop-down menus.
7967
79681999-07-29 Gerd Moellmann <gerd@gnu.org>
7969
7970 * xterm.c (x_set_toolkit_scroll_bar_thumb): Don't call
7971 XawScrollbarSetThumb if thumb parameters haven't changed because
7972 that function apparently isn't optimized for this case.
7973
79741999-07-29 Eli Zaretskii <eliz@gnu.org>
7975
7976 * msdos.c (getdefdir): Don't return failure indication when
7977 _fixpath sets errno to ENOSYS.
7978
79791999-07-28 Gerd Moellmann <gerd@gnu.org>
7980
7981 * xdisp.c (string_char_and_length): New. Use it everywhere
7982 instead of STRING_CHAR_AND_LENGTH in xdisp.c.
7983
79841999-07-28 Kenichi Handa <handa@etl.go.jp>
7985
7986 * fns.c (count_combining): New function.
7987 (struct textprop_rec): New structure.
7988 (concat): Copy text properties correctly when byte combining
7989 occurs.
7990
79911999-07-28 Gerd Moellmann <gerd@gnu.org>
7992
7993 * xterm.c (x_setup_relief_color): Don't try smart color allocation
7994 if display is mono.
7995 (x_draw_row_bitmaps): If face has stipple, don't switch
7996 to foreground color for clearing areas, and set the fill style.
7997
7998 * xfaces.c (load_face_colors): Load background color if setting
7999 stipple, too.
427ec082 8000 (prepare_face_for_display): Use FillOpaqueStippled instead of
26901792
DL
8001 FillStippled.
8002
80031999-07-26 Ken'ichi Handa <handa@gnu.org>
8004
8005 * xterm.c (x_find_ccl_program): Add casting.
8006
8007 * w32fns.c (w32_find_ccl_program): Add casting.
8008
80091999-07-27 Gerd Moellmann <gerd@gnu.org>
8010
8011 * dispextern.h (struct glyph_row): Flag internal_border_p removed.
8012
8013 * xfns.c (x_create_tip_frame): Don't set bitmapIcon resource
8014 because this will try to access a nonexisting widget.
8015
80161999-07-26 Markus Rost <rost@gnu.org>
8017
427ec082 8018 * fns.c (Fgethash): Fix order of variables (patch by gerd).
26901792
DL
8019 (Fputhash): Ditto.
8020 (Fremhash): Ditto.
8021
80221999-07-26 Gerd Moellmann <gerd@gnu.org>
427ec082 8023
26901792
DL
8024 * widget.c (EmacsFrameSetCharSize): Don't add XtNborderWidth
8025 value to frame width and height.
8026
8027 * xterm.c (x_get_glyph_string_clip_rect): Take internal border
8028 into account for full-width windows. Don't add scroll bar width
8029 to width of clip rect.
8030 (x_draw_glyph_string_box): Add 1 to right x of full width lines.
8031 (x_set_glyph_string_background_width): Add 1 to background width.
8032 (x_draw_glyphs): Take internal border into account for full-width
8033 lines.
8034
80351999-07-26 Richard M. Stallman <rms@gnu.org>
8036
8037 * xfns.c (x_set_mouse_color): Always unload the old color.
8038 Don't allow nil as color value.
427ec082 8039 (x_set_cursor_color, x_set_background_color, x_set_foreground_color):
26901792
DL
8040 Always unload the old color.
8041
8042 * indent.c (Fmove_to_column): Extend end of line only if FORCE is t.
8043
80441999-07-26 Karl Heuer <kwzh@gnu.org>
8045
8046 * fns.c (Fy_or_n_p): Doc fix.
8047
80481999-07-26 Kenichi Handa <handa@etl.go.jp>
8049
8050 * ccl.h (setup_ccl_program): The type is changed to `int'.
8051
8052 * ccl.c (ccl_driver) <CCL_Call>: Now CCL program ID to call may be
8053 stored in the following CCL code. Adjusted for the change of
8054 Vccl_program_table.
8055 (resolve_symbol_ccl_program): Adjusted for the new style of
8056 embedded symbols (SYMBOL . PROP) in CCL compiled code. Return Qt
8057 is resolving failed.
8058 (ccl_get_compiled_code): New function.
8059 (setup_ccl_program): Function type changed from `void' to `int'.
8060 Resolve symbols in CCL_PROG.
8061 (Fccl_program_p): New function.
8062 (Fccl_execute): Get compiled CCL code by just calling
8063 setup_ccl_program.
8064 (Fccl_execute_on_string): Likewise.
8065 (Fregister_ccl_program): Adjusted for the change of
8066 Vccl_program_table.
8067
8068 * coding.c (setup_coding_system): Get compiled CCL code by just
8069 calling setup_ccl_program.
8070
8071 * xterm.c (x_find_ccl_program): Get compiled CCL code by just
8072 calling setup_ccl_program.
8073
8074 * w32fns.c (w32_find_ccl_program): Get compiled CCL code by just
8075 calling setup_ccl_program.
8076
80771999-07-23 Gerd Moellmann <gerd@gnu.org>
8078
8079 * xfaces.c (frame_update_line_height): Just use the height of the
8080 frame's fontset or font, instead of taking face fonts into
8081 account.
8082
8083 * xdisp.c (get_next_display_element): Display DEL as `^?'.
8084
80851999-07-23 Richard M. Stallman <rms@gnu.org>
8086
8087 * window.c (Fsplit_window): For default size, round up for left window.
8088
80891999-07-21 Joe Ramey <ramey@ti.com>
8090
8091 * filelock.c (lock_if_free): Return -1 if check_lock_owner
8092 has returned -1 (lockfile exists but is not a symlink?).
8093
80941999-07-20 Gerd Moellmann <gerd@gnu.org>
8095
8096 * xterm.c (x_draw_bar_cursor): Use scratch_cursor_gc to
8097 because of a change in cursor_gc made in 20.4.
8098
80991999-07-19 Gerd Moellmann <gerd@gnu.org>
8100
8101 * xterm.c (x_calc_absolute_position): Subtract menu bar height
8102 for YNegative, if using X toolkit.
8103
427ec082 8104 * xfns.c (x_real_positions): Don't subtract window borders
26901792
DL
8105 from positions returned.
8106
81071999-07-17 Gerd Moellmann <gerd@gnu.org>
8108
8109 * xrdb.c (x_load_resources): Set double-click time defaults
8110 for Motif list boxes from double-click-time.
8111
8112 * fns.c (Vhash_table_tests): Remvoed.
8113 (Qhash_table_test): New.
8114 (syms_of_fns): Initialize Qhash_table_test.
8115 (Fmake_hash_table): Look up user-defined tests in symbol prop
8116 `hash-table-test'.
8117 (Fdefine_hash_table_test): Store test and hash function as
8118 symbol prop `hash-table-test'.
8119 (make_hash_table): Add parameters user_test and user_hash.
8120
8121 * window.c (set_window_buffer): Set window margins for tty
8122 frames, too.
8123 (Fset_window_margins): Ditto.
8124
8125 * term.c (append_glyph): Use glyph area of iterator instead of
8126 always TEXT_AREA.
8127
8128 * dispnew.c (update_frame_1): Add left margin width to cursor
8129 hpos.
8130 (direct_output_for_insert): Ditto.
8131 (direct_output_forward_char): Ditto.
8132
8133 * dispnew.c (adjust_glyph_matrix): Set glyph matrix' top_line_p.
8134
8135 * dispextern.h (struct glyph_matrix): Add top_line_p.
8136
81371999-07-16 Gerd Moellmann <gerd@gnu.org>
8138
8139 * frame.h (FRAME_WINDOW_REDISPLAY_P): Removed. Use FRAME_WINDOW_P
8140 instead.
8141
8142 * fns.c (cmpfn_eq): Add hash code parameters.
8143 (cmpfn_eql): Ditto.
8144 (cmpfn_equal): Ditto, and compare hash codes before calling Fequal.
8145 (cmpfn_user_defined): Likewise.
8146
81471999-07-15 Gerd Moellmann <gerd@gnu.org>
8148
8149 * lisp.h (DEFAULT_REHASH_THRESHOLD): Changed to 0.8.
8150
8151 * fns.c (maybe_resize_hash_table): Correct computation of
8152 index vector size.
8153 (make_hash_table): Ditto.
8154 (Fmakehash): New.
8155
8156 * xdisp.c (echo_area_display): Don't call redraw_garbaged_frames.
8157
8158 * alloc.c (gc_sweep): Call sweep_weak_hash_tables.
8159 (survives_gc_p): Make it externally visible.
8160 (mark_object): Ditto.
8161
8162 * fns.c (remove_hash_entry): Removed.
8163 (sweep_weak_hash_tables): New.
8164
8165 * print.c (print): Print more information about hash tables.
8166
8167 * xfns.c (image_spec_hash): Removed.
8168 (lookup_image): Use sxhash instead of image_spec_hash.
8169 (image_spec_equal_p): Removed.
8170 (lookup_image): Use Fequal instead of image_spec_equal_p.
8171
81721999-07-14 Gerd Moellmann <gerd@gnu.org>
8173
8174 * lisp.h (P_): Moved to top of file.
8175
8176 * fns.c (make_hash_table): Set new members.
8177
8178 * alloc.c (mark_object): Mark hash table's user_hash_function.
8179 Mark index vector for weak hash tables.
8180
8181 * lisp.h (struct Lisp_Hash_Table): Add user_cmp_function,
8182 user_hash_function, cmpfn, and hashfn.
8183
8184 * fns.c (build_hash): Removed.
8185 (hash_test): Removed.
8186 (cmpfn_eq, cmpfn_eql, cmpfn_equal, cmpfn_user_defined): New.
8187 (hashfn_eq, hashfn_eql, hashfn_equal, hashfn_user_defined): New.
8188
81891999-07-13 Gerd Moellmann <gerd@gnu.org>
8190
8191 * alloc.c (survives_gc_p): New.
8192
8193 * print.c (print): Add hash table handling.
8194
8195 * alloc.c (mark_object): Add code to mark hash tables.
8196
8197 * lisp.h (GC_HASH_TABLE_P): New.
8198
8199 * emacs.c (main): Call init_fns.
8200
8201 * fns.c (init_fns): New.
8202
8203 * fns.c: Add hash table implementation.
8204
8205 * lisp.h (PVEC_HASH_TABLE): New.
8206 (struct Lisp_Hash_Table): New.
8207 (XHASH_TABLE): New.
8208 (XSET_HASH_TABLE): New.
8209 (HASH_TABLE_P): New.
8210 (CHECK_HASH_TABLE): New.
8211 (DEFAULT_HASH_SIZE): New.
8212 (DEFAULT_REHASH_THRESHOLD): New.
8213 (DEFAULT_REHASH_SIZE): New.
8214
8215 * xterm.c (x_draw_glyphs): Add parameters real_start and real_end.
8216 (x_write_glyphs): Compute overwritten cursor using real start
8217 and end positions of display.
8218 (x_insert_glyphs): Ditto.
8219
82201999-07-10 Gerd Moellmann <gerd@gnu.org>
8221
8222 * keyboard.c (read_char): Use message3_nolog to show help-echo.
8223
8224 * dispnew.c (blank_row): Add y-position as parameter. Compute
8225 visible height.
8226
8227 * xdisp.c (next_element_from_string): Give padding spaces
8228 a position of -1.
8229
427ec082 8230 * dispnew.c (adjust_glyph_matrix): Some work to support
26901792
DL
8231 marginals areas on tty frames in a future version.
8232 (allocate_matrices_for_frame_redisplay): Ditto.
8233
8234 * xdisp.c (display_line): At ZV, set glyph row's displays_text_p
8235 to zero if number of glyphs in the row is <= 1.
8236
82371999-07-09 Gerd Moellmann <gerd@gnu.org>
8238
8239 * dispnew.c (buffer_posn_from_coords): Take left marginal area
8240 into account.
8241
8242 * xdisp.c (handle_display_prop): Don't reset area if handing
8243 a property from a string that came from a `display' property.
8244 (handle_single_display_prop): Don't handle recursive `display'
8245 properties.
8246 (handle_single_display_prop): Handle some display property
8247 forms for terminal frames.
8248 (Qimage): Moved here from xfns.c.
8249
8250 * dispextern.h (struct it): New field string_from_display_prop_p.
8251
8252 * xterm.c (x_clip_to_row): Don't let clip_rect include top
8253 line.
8254
82551999-07-08 Gerd Moellmann <gerd@gnu.org>
8256
8257 * xdisp.c (handle_single_display_prop): Handle `:when FORM'.
8258
8259 * window.c (set_window_buffer): Set window's vscroll to zero.
8260
8261 * xdisp.c (QCwhen): New.
8262 (display_prop_end): New.
8263 (handle_single_display_prop): Use it.
8264 (debug_method_add): Print buffer name if tracing.
8265 (try_window_reusing_current_matrix): Compute visible height
8266 of reused rows. Fix cursor position calculation in case of
8267 top-line.
8268
8269 * dispextern.h (struct redisplay_interface): Add parameter
8270 cursor_on_p to update_window_end_hook.
8271
8272 * xterm.c (x_update_window_end): Add parameter cursor_on_p.
8273
82741999-07-07 Gerd Moellmann <gerd@gnu.org>
8275
427ec082 8276 * xdisp.c (redisplay_internal): Ensure that redisplayinp_p
26901792
DL
8277 doesn't become negative when decrementing it.
8278
8279 * eval.c (Fsignal): Reset redisplaying_p to zero.
8280
8281 * xdisp.c (try_window_reusing_current_matrix): Call hooks
8282 for window update.
8283 (try_window_id): Ditto.
8284
8285 * xterm.c (x_clear_end_of_line): Handle top-line correctly.
8286 (x_scroll_run): Ditto.
8287 (any_help_event_p): New.
8288 (x_initialize): Set it to zero.
8289 (XTread_socket): Clear help echo only if any_help_event_p.
8290
8291 * xdisp.c (init_iterator): Set top_line_p.
8292 (start_display): Use correct initial y if top-line is present.
8293 (make_cursor_line_fully_visible): Bug fixes for top-line.
8294 (try_scrolling): Ditto.
8295 (try_window_reusing_current_matrix): Ditto.
8296
8297 * dispextern.h (struct it): Add top_line_p.
8298
8299 * dispnew.c (shift_glyph_matrix): Move some computations out
8300 of the loop.
8301
427ec082 8302 * dispnew.c (margin_glyphs_to_reserve): Use NUMBERP and
26901792
DL
8303 XFLOATINT.
8304
83051999-07-06 Gerd Moellmann <gerd@gnu.org>
8306
8307 * dispnew.c (update_frame_1): When setting cursor in echo area,
8308 skip only over padding spaces at the end.
8309
8310 * xfaces.c (realize_tty_face): Set face's font_name field to
8311 "tty".
8312
8313 * term.c (update_end): Turn cursor on only if selected window's
8314 cursor_off_p flag is not set.
8315
83161999-07-05 Gerd Moellmann <gerd@gnu.org>
8317
8318 * term.c (TS_cursor_visible): Renamed from TS_visual_mode.
8319 (TS_cursor_normal): Renamed from TS_end_visual_mode.
8320 (TS_cursor_invisible): New.
8321 (term_init): Initialize TS_cursor_invisible.
8322 (tty_hide_cursor): New.
8323 (tty_show_cursor): New.
8324 (update_end): Show tty cursor.
8325 (update_begin): Hide tty cursor to prevent cursor flickering
8326 during redisplays triggered by timers (stealth fontification).
8327
8328 * keyboard.c (make_lispy_event) <TOOLBAR_EVENT>: Apply modifiers.
8329
8330 * xterm.c (XTread_socket) [USE_MOTIF] <KeyPress>: Catch events
8331 in scroll bars.
8332 (x_handle_toolbar_click): Set modifier bits.
8333
83341999-07-04 Gerd Moellmann <gerd@gnu.org>
8335
8336 * keyboard.c (kbd_store_ptr): Declare it as a volatile pointer
8337 instead of a pointer to a volatile input_event.
427ec082 8338 (kbd_buffer_store_event): Remove volatile modifier from
26901792
DL
8339 declaration of local variable `sp'.
8340 (Fdiscard_input): Don't cast when assigning kbd_store_ptr
8341 to kbd_fetch_ptr.
8342
83431999-07-03 Gerd Moellmann <gerd@gnu.org>
8344
8345 * xdisp.c (try_window_id): Set beg_unchanged and end_unchanged
8346 only if buffer is modified. Return quickly if changes are
8347 above window start.
8348
83491999-07-02 Gerd Moellmann <gerd@gnu.org>
8350
8351 * dispextern.h (HSCROLL_WINDOWS): Removed.
8352
8353 * xdisp.c (mark_window_display_accurate): Don't set
8354 w->region_showing.
8355 (redisplay_internal): Don't call redraw_garbaged_frames.
8356
83571999-07-01 Gerd Moellmann <gerd@gnu.org>
8358
8359 * xdisp.c (echo_area_display): Don't display truncation marks
8360 for messages because 20.4 doesn't do it either.
8361 (redisplay_window): Case same window start. Instead of giving
8362 up when cursor is partially visible, make it fully visible.
8363 (mark_window_display_accurate): Some cleanup. Record window's
8364 last cursor information.
8365 (debug_method_add): Improved.
8366 (redisplay_internal): Record last cursor info only if not
8367 consider_all_windows_p.
8368
8369 * dispnew.c (update_window): Update top line after scrolling.
8370 (blank_row): Renamed from make_empty_enabled_row.
8371 (increment_glyph_row_buffer_positions): Increment positions
8372 in buffers, only.
8373
8374 * window.c (Fcoordinates_in_window_p): Add top-line to doc
8375 string.
8376
83771999-06-30 Gerd Moellmann <gerd@gnu.org>
8378
8379 * dispnew.c (update_window): Check that updated row is visible.
8380
8381 * xterm.c (x_draw_row_bitmaps): Check for invisible rows at
8382 top of window differently.
8383
8384 * xdisp.c (try_window_reusing_current_matrix): Don't do it
8385 if region is showing.
8386
8387 * dispnew.c (adjust_glyph_matrix): Check w->vscroll when
8388 avoiding matrix reallocation. Set window_vscroll in matrix.
8389
8390 * dispextern.h (struct glyph_matrix): Add member window_vscroll.
8391
26901792
DL
8392 * xdisp.c (debug_method_add): New.
8393 (debug_redisplay_method): Removed.
8394 (try_window_reusing_current_matrix): Handle case where old
8395 window start is the same as new window start.
8396
8397 * dispextern.h (struct glyph_matrix) [GLYPH_DEBUG]: Make `method'
8398 an array instead of a pointer.
8399
26901792
DL
8400 * xfns.c (Fx_show_tip): Undo previous change.
8401
8402 * xterm.c (x_append_glyph): Clear glyph->u.val.
8403
8404 * dispextern.h (struct glyph): Increase size of face_id bit-field
8405 for CHAR_GLYPH to 12.
8406
84071999-06-29 Gerd Moellmann <gerd@gnu.org>
8408
8409 * xfaces.c (x_charset_registry): Make it externally visible.
8410
84111999-06-28 Gerd Moellmann <gerd@gnu.org>
8412
427ec082 8413 * dispnew.c (update_window): Use mode_line_p flag of rows
26901792
DL
8414 instead of WINDOW_WANTS_MODELINE_P.
8415
8416 * xterm.c (clear_mouse_face): Make externally visible.
8417
8418 * xfns.c (Fx_show_tip): Clear mouse face before showing tip.
8419
8420 * xterm.c (expose_line): Handle exposure of top-lines.
8421
8422 * xterm.c (XTframe_up_to_date): Don't call note_mouse_highlight
8423 if mouse_face_mouse_frame is null.
8424
8425 * xdisp.c (redisplay_window): If window is echo_area_window,
8426 and update_mode_line is set, update menubar and toolbar.
8427
8428 * dispnew.c (space_glyph): Set its charpos to -1.
8429 (update_frame_1): Ignore trailing padding spaces.
8430
8431 * xdisp.c (next_element_from_c_string): Set position of padding
8432 glyphs to -1.
8433
84341999-06-27 Gerd Moellmann <gerd@gnu.org>
8435
8436 * xfns.c (x_laplace_read_row): Use XQueryColors instead of
8437 XQueryColor.
8438
8439 * xdisp.c (display_menu_bar): Remove unwarranted assertion.
8440 (set_cursor_from_row): Skip over glyphs having a null object at
8441 the start of rows.
8442 (insert_left_trunc_glyphs): Use charpos < 0 to indicate truncation
8443 glyphs.
8444 (handle_invisible_prop): Compute next change only when needed.
8445 (handle_face_prop): Don't correct DEFAULT_FACE_ID if in the mode
8446 line.
8447
84481999-06-26 Gerd Moellmann <gerd@gnu.org>
8449
8450 * xrdb.c (x_load_resources): Don't set resource for double-click
8451 time.
8452
8453 * xdisp.c (try_window_id): Return quickly if all changes are
8454 below the window's current matrix end.
8455
8456 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): Remove window
8457 parameter.
8458
8459 * xdisp.c (try_window_reusing_current_matrix): Set no_scrolling_p
8460 in desired not in current matrix.
8461 (try_window_reusing_current_matrix): Rotate matrices starting
8462 at start_vpos instead of 0.
8463
8464 * xterm.c (expose_window): Use window_text_bottom_y.
8465 (fast_find_position): Ditto.
8466
8467 * xdisp.c (redisplay_window): Use window_text_bottom_y.
8468 (try_window_reusing_current_matrix): Ditto.
8469 (get_last_unchanged_at_beg_row): Ditto.
8470 (init_iterator): Ditto.
8471
8472 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate one
8473 more row.
8474 (check_matrix_invariants): Use window_text_bottom_y.
8475 (update_window): Ditto.
8476 (scrolling_window): Ditto.
8477
8478 * xdisp.c (window_text_bottom_y): New.
8479
84801999-06-25 Gerd Moellmann <gerd@gnu.org>
8481
8482 * xterm.c (XTread_socket): Set mouse_face_frame to zero after
8483 clearing mouse face.
8484 (XTread_socket) <EnterNotify> [LESSTIF_VERSION]: If
8485 event.xcrossing.focus is not set, and focus is in the menu bar,
8486 set focus frame as if event.xcrossing.focus were set.
8487
84881999-06-24 Gerd Moellmann <gerd@gnu.org>
8489
8490 * keyboard.c (make_lispy_event): Handle mouse on top lines.
8491 * keyboard.c (make_lispy_movement): Ditto.
8492
8493 * window.c (coordinates_in_window): Return 4 if on top line.
8494 (Fcoordinates_in_window_p): Return `top-line' if on top line.
8495
8496 * xdisp.c (window_box_height): Subtract top line height.
8497 (window_box): Add top line height to top y position if top line
8498 exists.
8499 (init_iterator): If base_face_id is TOP_LINE_FACE_ID, set row to
8500 the top line row of the window. Set initial y-position to
8501 window's top line height plus delta.
8502 (start_display): Choose start glyph row depending on whether
8503 window has a top line.
8504 (try_scrolling): Take top line height into account for aggressive
8505 scrolling.
8506 (compute_window_start_on_continuation_line): Take top line into
8507 account.
427ec082 8508 (redisplay_window): Ditto. If top line height has changed,
26901792
DL
8509 trigger a new redisplay.
8510 (try_window_reusing_current_matrix): Take top line into account.
8511 (find_last_row_displaying_text): Ditto.
8512 (get_last_unchanged_at_beg_row): DItto.
8513 (try_window_id): Ditto.
8514 (compute_line_metrics): Ditto.
8515
8516 * dispnew.c (shift_glyph_matrix): Compute visible row height
8517 taking top line of window into account.
8518 (update_window): Update top line. If scrolling_window detects
8519 that all rows are equal, only set cursor.
8520 (update_window_line): Call after_update_window_line_hook if
8521 mode_line_p flag of rows has changed.
8522 (scrolling_window): Add parameter top_line_p. Return -1 if
8523 all rows are equal.
8524 (mode_line_string): Add parameter mode_line_p. Handle strings
8525 in top lines.
8526
8527 * dispextern.h (MATRIX_TOP_LINE_ROW): New.
8528 (MATRIX_FIRST_TEXT_ROW): New.
8529 (MATRIX_ROW_PARTIALLY_VISIBLE_P): Use row's visible_height.
8530 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_TOP_P): New.
8531 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_BOTTOM_P): New.
8532 (MATRIX_TOP_LINE_HEIGHT): New.
8533 (CURRENT_MODE_LINE_HEIGHT): Use estimate_mode_line_height.
8534 (CURRENT_TOP_LINE_HEIGHT): New.
8535 (DESIRED_TOP_LINE_HEIGHT): New.
8536 (WINDOW_DISPLAY_TOP_LINE_HEIGHT): New.
8537 (WINDOW_DISPLAY_HEIGHT_NO_MODE_LINE): Replaces
8538 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
8539 (WINDOW_DISPLAY_TEXT_HEIGHT): New.
8540
8541 * xterm.c (x_after_update_window_line): Don't draw bitmaps for top
8542 lines.
8543 (x_draw_row_bitmaps): Take top line into account when clearing
8544 bitmap area.
8545 (x_estimate_mode_line_height): Replacement for
8546 x_frame_mode_line_height.
8547 (x_get_glyph_string_clip_rect): Take top line into account.
8548 (x_clear_end_of_line): Ditto.
8549 (note_mode_line_highlight): Add parameter mode_line_p. Handle
8550 top lines.
8551 (note_mouse_highlight): Call note_mode_line_highlight for top lines.
8552 (x_erase_phys_cursor): Take top line into account.
8553
8554 * xdisp.c (window_box_height): Subtract top line height if
8555 window wants a top line.
8556 (display_mode_lines): New.
8557 (redisplay_window): Call it.
8558 (display_mode_line): Add parameters face_id and format.
8559
8560 * dispextern.h (CURRENT_TOP_LINE_HEIGHT): New.
8561 (MATRIX_TOP_LINE_HEIGHT): New.
8562
8563 * xterm.c (x_frame_mode_line_height): Add parameter face_id.
8564
8565 * term.c (estimate_mode_line_height): Renamed from
8566 frame_mode_line_height. Add parameter face_id.
8567 (estimate_mode_line_height_hook): Renamed from
8568 frame_mode_line_height_hook.
8569 (produce_special_glyphs_hook): Removed.
8570 (produce_glyphs_hook): Removed.
8571
85721999-06-23 Gerd Moellmann <gerd@gnu.org>
8573
8574 * dispextern.h (WINDOW_WANTS_TOP_LINE_P): New.
8575 (struct glyph_row): Add mode_line_p.
8576
8577 * xfaces.c (realize_basic_faces): Realize face `top-line'.
8578 (Qtop_line): New.
8579 (syms_of_xfaces): Initialize Qtop_line.
8580
8581 * dispextern.h (TOP_LINE_FACE_ID): New.
8582
8583 * buffer.c (init_buffer_once): Set default for
8584 top_line_format to nil.
8585 (init_buffer_once): Init top_line_format.
8586 (default-top-line-format): New.
8587 (top-line-format): New buffer-local variable.
8588
8589 * buffer.h: Add top_line_format.
8590
8591 * xdisp.c (overlay_arrow_changed_p): Removed because not used.
8592
85931999-06-17 Dave Love <fx@gnu.org>
8594
8595 * xfns.c: Move the PNG section before the JPEG one to avoid
8596 problems surrounding setjmp.h/png.h on GNU/Linux.
427ec082 8597
26901792
DL
85981999-06-17 Gerd Moellmann <gerd@gnu.org>
8599
8600 * xfns.c (x_kill_gs_process): Don't free colors.
8601
86021999-06-17 Dave Love <fx@gnu.org>
8603
8604 * s/gnu-linux.h: Zap spurious ~.
8605
86061999-06-16 Gerd Moellmann <gerd@gnu.org>
8607
8608 * xfns.c (gif_load): Improve multi-image support.
8609
86101999-06-15 Gerd Moellmann <gerd@gnu.org>
8611
8612 * xfns.c (gif_load): Support multi-image files.
8613
8614 * Makefile.in (LIBGIF): Use libungif.
8615
8616 * configure.in (HAVE_GIF): Use libungif instead of libgif
8617 because the former doesn't contain patented compression code.
8618
8619 * xdisp.c (compute_window_start_on_continuation_line): Don't
8620 do it if line start is too far away from window start.
8621
86221999-06-14 Gerd Moellmann <gerd@gnu.org>
8623
8624 * buffer.c (init_buffer_once): Set buffer_local_flags for
8625 scroll_*_aggressively.
8626 (syms_of_buffer): Add DEFVAR_PER_BUFFER for scroll-*-aggressively.
8627 (init_buffer_once): Set defaults for these variables.
8628 (syms_of_buffer): Add default-scroll-*-aggressively.
8629
8630 * buffer.h (scroll_up_aggressively): New.
8631 (scroll_down_aggressively): New.
8632
8633 * Makefile.in (LIBPNG): Add -lz -lm in case we're linking with
8634 a static PNG library.
8635
8636 * configure.in (HAVE_PNG): Add -lz -lm when checking for PNG lib
8637 in case it's a static library.
8638
8639 * Makefile.in (ctagsfiles): Split so that files starting
8640 with an `x' are found before files starting with `w32'.
8641 (ctagsfiles1): New.
8642 (ctagsfiles2): New.
8643 (TAGS): Use ctagsfiles[12] instead of ctagsfiles.
8644
8645 * xdisp.c (compute_window_start_on_continuation_line): New.
8646 (redisplay_window): Use it.
8647 (INFINITY): New.
8648 (reseat_to_string): Use it.
8649 (hscroll_window_tree): Ditto.
8650 (compute_window_start_on_continuation_line): Ditto.
8651 (redisplay_window): Don't force display with a new window start.
8652
86531999-06-06 Gerd Moellmann <gerd@gnu.org>
8654
8655 * xfns.c (x_report_frame_params): Don't report `outer-window-id'
8656 if widget not present.
8657
8658 * xdisp.c (prepare_menu_bars): Ignore tooltip frame.
8659
86601999-06-04 Gerd Moellmann <gerd@gnu.org>
8661
8662 * xfaces.c (recompute_basic_faces)[GLYPH_DEBUG]: Check return
8663 value of realize_basic_faces.
8664 (load_face_font_or_fontset): Store full font name in face.
8665 (realize_default_face): Use full font name.
8666
26901792
DL
8667 * xterm.c (x_produce_glyphs): Set member char_to_display.
8668 (x_append_glyph): Store char_to_display in glyphs.
8669
8670 * dispextern.h (struct it): Add char_to_display.
8671
8672 * xfns.c (x_set_font): Don't call face-set-after-frame-default
8673 if faces haven't been initialized.
8674 (Fx_create_frame): Call face-set-after-frame-default after
8675 faces have been initialized, and widget has been created.
8676
8677 * puresize.h (BASE_PURESIZE): Increased.
8678
86791999-06-01 Gerd Moellmann <gerd@gnu.org>
8680
8681 * xfaces.c (set_lface_from_font_name): Add parameter force_p.
8682 (Finternal_set_lisp_face_attribute): If frame is t when
8683 :font attribute is set, use the selected frame.
8684 (clear_face_cache): Add parameter clear_fonts_p.
8685 (Fclear_face_cache): Add optional parameter thorougly.
8686
8687 * xfaces.c (face_numeric_value): Return -1 if symbol is not
8688 in table.
8689 (Fclear_face_cache): New.
8690 (choose_face_fontset_font): If fontset doesn't contain font
8691 pattern for the given charset, use CHARSET_ASCII.
8692 (Finternal_set_lisp_face_attribute): Fix handling of nil
8693 stipple attribute.
8694 (Finternal_set_lisp_face_attribute): Fix handling of changing
8695 font-related face attributes of the default face.
8696 (set_lface_from_font_name): Set only attributes that aren't
8697 specified.
8698
86991999-05-31 Gerd Moellmann <gerd@gnu.org>
8700
8701 * xfaces.c (SCALABLE_FONTS): Define this to enable scalable
8702 font support.
8703 (Vscalable_fonts_allowed) [SCALABLE_FONTS]: New.
8704 (x_face_list_fonts): Add parameter scalable_fonts_p. Handle
8705 scalable fonts depending on the setting of SCALABLE_FONTS.
8706 (first_font_matching): List more than one font to find the
8707 first non-scalable matching font.
8708 (sorted_font_list): Let x_face_list_fonts return scalable fonts
8709 depending on SCALABLE_FONTS.
8710 (better_font_p): New parameter compare_pt_p. If zero, don't
8711 compare point sizes of fonts.
8712 (exact_face_match_p) [SCALABLE_FONTS]: New.
8713 (build_scalable_font_name) [SCALABLE_FONTS]: New.
8714 (may_use_scalable_font_p) [SCALABLE_FONTS]: New.
8715 (best_matching_font) [SCALABLE_FONTS]: Handle scalable fonts.
8716 (syms_of_xfaces): Add scalable-fonts-allowed.
8717
87181999-05-26 Gerd Moellmann <gerd@gnu.org>
8719
8720 * xfns.c (png_load): Let PNG lib handle gamma. Construct
8721 mask only if image contains simple transparency information.
8722 Otherwise, combine image with frame background color.
8723
8724 * configure.in (--with-png, HAVE_PNG): New.
8725
8726 * config.in (HAVE_PNG): New.
8727
8728 * Makefile.in: Add PNG library.
8729
8730 * xfns.c: Add PNG support.
8731
87321999-05-25 Gerd Moellmann <gerd@gnu.org>
8733
8734 * xdisp.c (init_xdisp): Initialize echo_area_message and
8735 previous_echo_area_message to nil.
8736
8737 * keyboard.c (read_char): Rename local variable echo_area_message
8738 because it shadows the global one.
8739
87401999-05-05 Gerd Moellmann <gerd@gnu.org>
8741
8742 * xterm.c (note_mode_line_highlight): Restructured.
8743
8744 * window.c (coordinates_in_window): Handle windows that don't have
8745 a mode line because their buffer's mode-line-format is nil.
8746 Recognize the mode line under x positions that correspond to
8747 flags areas and left scroll bar.
8748
87491999-05-02 Dave Love <fx@gnu.org>
8750
8751 * xterm.c (note_mouse_highlight): Separate help-echo processing
8752 from check on mouse-face so that it works generally.
8753
87541999-04-21 Gerd Moellmann <gerd@gnu.org>
8755
8756 * sound.c (Fplay_sound): Run hook play-sound-hook.
8757 (Qplay_sound_hook): New.
8758
87591999-04-20 Gerd Moellmann <gerd@gnu.org>
8760
8761 * xdisp.c (update_echo_area): Handle echo_area_message.
8762
87631999-04-19 Gerd Moellmann <gerd@gnu.org>
8764
8765 * editfns.c (Fmessage): Use message3.
8766
8767 * print.c (printchar): Set echo_area_message to nil.
8768 (strout): Ditto.
8769
8770 * minibuf.c (read_minibuf): Reset echo message strings to nil.
8771 (Fminibuffer_completion_help): Ditto.
8772
8773 * keyboard.c (cmd_error_internal): Set echo_areA_message.
8774 (command_loop_1): Test echo_areA_message.
8775 (read_char): Ditto.
8776 (record_menu_key): Set echo_area_message to nil.
8777 (Fexecute_extended_command): Test echo_area_message.
8778 (Fexecute_extended_command): Handle echo_area_message.
8779
8780 * fileio.c (Fdo_auto_save): Handle the case that echo_area_message
8781 is set.
8782
8783 * editfns.c (Fcurrent_message): If echo_area_message is set,
8784 return a substring of that string.
8785
8786 * dispnew.c (direct_output_for_insert): Test echo_area_message
8787 in addition to echo_area_glyphs.
8788 (set_window_cursor_after_update): Ditto.
8789 (update_frame_1): Ditto.
8790
8791 * alloc.c (Fgarbage_collect): Use message3_nolog to display
8792 old Lisp message string.
8793
8794 * xdisp.c (echo_area_message): New.
8795 (previous_echo_area_message): New.
8796 (syms_of_xdisp): Initialize and staticpro new variables.
8797 (echo_area_display): Display echo_area_message if set.
8798 (message2_nolog): Set echo_area_message and
8799 previous_echo_area_message.
8800 (echo_area_display): Set previous_echo_area_message.
8801 (redisplay_internal): Display echo area if echo_area_message
8802 or previous_echo_area_message are set.
8803 (redisplay_preserve_echo_area): Test/set echo_area_message and
8804 previous_echo_area_message.
8805 (redisplay_window): Test echo_area_message.
8806 (message3_nolog): New.
8807 (message3): New.
8808
8809 * editfns.c (Fformat): Add text properties to the result string
8810 from properties of the format string and properties of string
8811 arguments.
8812
8813 * textprop.c (text_property_list): New.
8814 (add_text_properties_from_list): New.
8815 (extend_property_ranges): New.
8816
88171999-03-29 Gerd Moellmann <gerd@gnu.org>
8818
8819 * xfaces.c (Qraised, Qsunken, QCshadow): Removed.
8820 (QCline_width, QCstyle, Qpressed_button, Qreleased_button): New.
8821 Use these symbols for the box face attribute instead of the
8822 removed ones.
8823
88241999-03-12 Gerd Moellmann <gerd@gnu.org>
8825
8826 * xfaces.c (realize_tty_face): Don't set alt_char_p of face.
8827 Correct wrong test for slant.
8828
88291999-03-10 Gerd Moellmann <gerd@gnu.org>
8830
8831 * xfaces.c: Use `unspecified' for unspecified face attributes,
8832 use t and nil for on/off.
8833
88341999-03-06 Gerd Moellmann <gerd@gnu.org>
8835
8836 * buffer.c (syms_of_buffer): Extend doc string of
8837 mode-line-format.
8838
8839 * xfaces.c (x_face_list_fonts): New parameter try_alternatives_p.
8840 (first_font_matching): New.
8841 (set_lface_from_font_name): Use it if font name is a pattern.
8842 (font_field_wildcard_p): Removed.
8843
8844 * dispnew.c (shift_glyph_matrix): Add `window' parameter.
8845 Recompute visible height of rows.
8846
8847 * xterm.c (note_mouse_highlight): Reorder code for help-echo.
8848 Don't accept non-strings for help-echo from overlays.
8849
88501999-03-04 Dave Love <fx@gnu.org>
8851
8852 * xterm.c (note_mouse_highlight): Check overlays for help-text
8853 property.
8854 (XTread_socket): Fix compiler warning.
427ec082 8855
26901792
DL
88561999-03-05 Gerd Moellmann <gerd@gnu.org>
8857
427ec082 8858 * xterm.c (note_mouse_highlight): Don't restrict number of
26901792
DL
8859 overlay to 10. Call overlays_at so that it doesn't try to
8860 extend the vector.
8861
8862 * xdisp.c (compute_line_metrics): Compute glyph row's visible
8863 height.
8864
8865 * dispnew.c (row_equal_p): Compare visible row height, only.
8866 (update_text_area): Draw whole line if visible heights of
8867 rows differ.
8868 (update_window_line): Call after_update_window_line_hook
8869 if visible row height has changed.
8870
8871 * dispextern.h (MATRIX_ROW_VISIBLE_HEIGHT): Removed.
8872 (struct glyph_row): New member visible_height.
8873
8874 * xfaces.c (font_field_wildcard_p): New.
8875 (set_lface_from_font_name): Remove parameter force_p. Accept
8876 font names containing wildcards.
8877
88781999-03-04 Gerd Moellmann <gerd@gnu.org>
8879
8880 * xterm.c (x_after_update_window_line): Clear internal border
8881 when windows_or_buffers_changed.
8882
8883 * dispextern.h (WINDOW_WANTS_MODELINE_P): Return zero if window's
8884 buffer has a nil mode_line_format.
8885
88861999-03-03 Gerd Moellmann <gerd@gnu.org>
8887
8888 * xterm.c (x_setup_relief_colors): Use either background color
8889 or specified color.
8890
8891 * xfaces.c (realize_x_face): Set face->use_box_color_for_shadows_p.
8892
8893 * dispextern.h (struct face): Add use_box_color_for_shadows_p.
8894
8895 * xterm.c (x_draw_box_rect): New.
8896 (x_draw_glyph_string_box): Renamed from
8897 x_draw_glyph_string_relief. Call x_draw_box_rect.
8898
8899 * xfns.c (QCrelief): New.
8900 (syms_of_xfns): Initialize it.
8901
8902 * dispextern.h (struct glyph): Rename left_shadow_p to
8903 left_box_line_p, right_shadow_p to right_box_line_p.
8904 (MAX_RELIEF_THICKNESS): Removed.
8905 (struct it): Rename members having `relief' in their names
8906 to contain `box' instead.
8907
8908 * xfaces.c (realize_x_face): Handle new box attribute values.
8909 (QCrelief, Qbox): Removed.
8910 (QCshadow, QCcolor, Qraised, Qsunken): New.
8911 (syms_of_xfaces): Initialize new symbols.
8912
89131999-03-02 Gerd Moellmann <gerd@gnu.org>
8914
8915 * dispextern.h (LFACE_RELIEF_INDEX): Removed.
8916
8917 * xfaces.c (LFACE_RELIEF): Removed.
8918 (merge_face_vector_with_property): Remove handling of `:relief'.
8919 (Finternal_set_lisp_face_attribute): Ditto.
8920 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
8921 (Finternal_get_lisp_face_attribute): Ditto.
8922 (realize_default_face): Ditto.
8923 (lface_hash): Don't compute hash from relief.
8924
8925 * dispextern.h (struct face): Replace member `relief' by
8926 `box_line_width'. Add member `box'.
8927 (face_box_type): New.
8928
8929 * xterm.c (x_produce_glyphs): If face has overline, add overline
8930 thickness + 1 to ascent.
8931
89321999-03-01 Gerd Moellmann <gerd@gnu.org>
8933
8934 * xterm.c (x_draw_glyph_string): Draw underline, overline,
8935 strike-through, and boxes.
8936 (x_draw_glyph_string_underline): Removed.
8937
8938 * xfaces.c (QCoverline, QCstrike_through, QCbox): New.
8939 (Qoverline, Qstrike_through, Qbox): New.
8940 (syms_of_xfaces): Define these symbols.
8941 (check_lface_attrs): Add checks for overline, strike-through,
8942 and box.
8943 (Finternal_set_lisp_face_attribute): Set new attributes.
8944 (LFACE_OVERLINE, LFACE_STRIKE_THROUGH, LFACE_BOX): New.
8945 (load_color): Handle new attributes.
8946 (realize_x_face): Ditto.
8947 (merge_face_vector_with_property): Ditto.
8948 (free_face_colors): Ditto.
8949 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
8950 (Finternal_get_lisp_face_attribute): Ditto.
8951 (Finternal_lisp_face_attribute_values): Ditto.
8952
8953 * dispextern.h (lface_attribute_index): Add enumerators for
8954 overstrike, strike-through, and box.
8955 (struct face): Add members for overline, strike-through, and
8956 box.
8957
89581999-02-17 Dave Love <fx@gnu.org>
8959
8960 * s/gnu-linux.h s/gnu.h s/irix5-0.h s/netbsd.h s/sco4.h s/sco5.h
8961 s/template.h (NARROWPROTO): Define on the basis of relevant X cf
8962 files.
8963
89641999-02-16 Gerd Moellmann <gerd@gnu.org>
8965
8966 * keyboard.c (toolbar_items): Call access_keymap with third
8967 parameter 1, so that we don't get inherited toolbar item
8968 definitions.
8969
8970 * xdisp.c (redisplay_internal): In optimization 1, don't decrement
8971 the window end vpos when in empty first line of window.
8972
89731999-02-15 Gerd Moellmann <gerd@gnu.org>
8974
8975 * xfaces.c (set_font_frame_param): New.
8976 (Finternal_set_lisp_face_attribute): Call it.
8977
8978Sun Feb 14 10:54:02 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
8979
8980 * xfaces.c (Finternal_set_lisp_face_attribute_from_resource):
8981 Accept specifications of color for underline.
8982
89831999-02-13 Gerd Moellmann <gerd@gnu.org>
8984
8985 * xfaces.c (Finternal_set_lisp_face_attribute): If parameter
8986 `frame' is t, operate on face defaults for new frames. If it
8987 is nil, operate on the selected frame.
8988
89891999-02-12 Gerd Moellmann <gerd@gnu.org>
8990
8991 * dispnew.c (check_matrix_invariants): Put it in #if 0.
8992 (update_window): Put the call to check_matrix_invariants in #if 0.
8993
8994Sun Feb 7 09:58:49 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
8995
8996 * dispextern.h: Remove all else block of UNDERLINE_COLOR.
8997 Remove definition of UNDERLINE_COLOR.
8998
8999Mon Jan 4 04:43:41 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9000
9001 * xfaces.c (free_face_colors): Free the color for underline.
9002
9003 * xterm.c (x_draw_glyph_string_underline): Set the color for underline
9004 to the GC.
9005
9006Sun Jan 3 08:41:10 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9007
9008 * dispextern.h (UNDERLINE_COLOR): Defined.
9009 (struct face): Added two new members.
9010 underline_color, underline_defaulted_p.
9011
427ec082 9012 * xfaces.c (merge_face_vector_with_property):
26901792 9013 (check_lface_attrs): Accept the string value for underline.
427ec082 9014 (Finternal_set_lisp_face_attribute): Likewise.
26901792
DL
9015
9016 * xfaces.c (load_color): Change the last argument type to enum
9017 lface_attribute_index from int. And addec code for underling coloring.
9018 (load_face_colors): Pass LFACE_*_INDEX to load_color.
427ec082 9019
26901792
DL
90201999-02-12 Gerd Moellmann <gerd@gnu.org>
9021
9022 * xfns.c (Fx_image_header): Removed.
9023
90241999-02-07 Gerd Moellmann <gerd@gnu.org>
9025
9026 * xterm.c: Don't include <bitmaps/gray>.
9027 (x_term_init): Use gray_bitmap_width and gray_bitmap_height.
9028
9029 * xfns.c (Fx_image_header): Add missing `\n\'.
9030 (gray_bitmap_width, gray_bitmap_height, gray_bitmap_bits): New.
9031
90321999-02-01 Gerd Moellmann <gerd@gnu.org>
9033
9034 * xterm.c (x_scroll_bar_create): Set background pixel from
9035 specified scroll bar color.
9036 (x_scroll_bar_set_handle): Use scroll bar foreground color.
9037
9038 * xfns.c (x_set_scroll_bar_foreground): Remove all scroll bars.
9039 (x_set_scroll_bar_background): Ditto.
9040
9041 * xterm.c (x_create_toolkit_scroll_bar): Set scroll bar colors.
9042
9043 * xfns.c (x_default_scroll_bar_color_parameter): New.
9044 (Fx_create_frame): Call it.
9045
90461999-01-31 Gerd Moellmann <gerd@gnu.org>
9047
9048 * xfns.c (Fx_create_frame): Initialize scroll bar pixel color
427ec082 9049 values in x_output structure.
26901792
DL
9050 (Qscroll_bar_foreground, Qscroll_bar_background): New.
9051 (syms_of_xfns): Initialize these symbols.
9052
9053 * xterm.h (struct x_output): Add scroll bar pixel colors.
9054
9055 * xfns.c (x_frame_parms): Add entries for scroll bar colors.
9056 (x_set_scroll_bar_foreground): New.
9057 (x_set_scroll_bar_background): New.
9058
26901792
DL
90591999-01-12 Gerd Moellmann <gerd@gnu.org>
9060
9061 * xdisp.c (handle_single_display_prop): New.
9062 (handle_display_prop): Call it.
9063 (handle_raise_prop): Removed.
9064 (handle_height_prop): Removed.
9065 (handle_space_width_prop): Removed.
9066 (handle_face_prop): Remove handling of raised text.
9067 (handle_display_prop): Do it here.
9068
9069 * dispextern.h (DISPLAY_PROP_IDX): Replaces GLYPH_PROP_IDX.
9070 (RAISE_PROP_IDX): Removed.
9071 (HEIGHT_PROP_IDX): Removed.
9072 (SPACE_WIDTH_PROP_IDX): Removed.
9073
9074 * xdisp.c (Qdisplay): Replaces Qglyph.
9075 (handle_display_prop): Formerly handle_glyph_prop.
9076
90771999-01-11 Gerd Moellmann <gerd@gnu.org>
9078
9079 * xdisp.c (reseat_to_string): Set position in display vector to -1.
9080 (handle_stop): Set position in display vector to -1. Don't
9081 check overlay strings when set up to deliver characters from a
9082 display vector.
9083 (set_iterator_to_next): At the end of a run of characters from a
9084 display vector, check whether the display vector display replaces
9085 the display of a character.
9086
90871999-01-05 Gerd Moellmann <gerd@gnu.org>
9088
9089 * xfaces.c (init_frame_faces): Don't realize faces if frame's
9090 X window hasn't been created yet.
9091
90921998-12-06 Gerd Moellmann <gerd@gnu.org>
9093
9094 * sound.c: New.
9095
90961998-12-04 Gerd Moellmann <gerd@gnu.org>
9097
9098 * config.in (HAVE_SOUND): New.
9099
9100 * emacs.c (main): Call syms_of_sound and init_sound.
9101
9102 * Makefile.in (obj): Add sound.o.
9103
9104 * configure.in: Add checks for machine/soundcard.h and sys/soundcard.h.
9105
9106 * config.in (HAVE_MACHINE_SOUNDCARD_H): New.
9107 (HAVE_SYS_SOUNDCARD_H): New.
9108
91091998-12-03 Gerd Moellmann <gerd@gnu.org>
9110
9111 * buffer.h (struct buffer): indicate_empty_lines renamed from
9112 indicate_zv_lines.
9113
9114 * buffer.c (indicate-empty-lines): Renamed from indicate_zv_lines.
9115 (default-indicate-zv-lines): Likewise.
9116
9117 * dispextern.h (struct glyph_row): Rename indicate_zv_line_p
9118 to indicate_empty_line_p.
9119
9120 * xdisp.c (reseat_at_next_visible_line_start): Reset method
9121 to next_element_from_buffer.
9122
9123 * frame.c (make_frame): Set n_current_toolbar_items to 0.
9124
9125 * xdisp.c (handle_face_prop): Allow symbols of the form `N+'
9126 and `N-'.
9127
9128 * xfns.c (xbm_scan): New.
9129 (xbm_read_hexint): Removed.
9130 (xbm_read_bitmap_file_data): Use xbm_scan.
9131
9132 * fileio.c (Finsert_file_contents): Prevent redisplay optimizations.
9133
91341998-12-02 Gerd Moellmann <gerd@gnu.org>
9135
9136 * xfns.c (xbm_read_hexint): New.
9137 (xbm_read_bitmap_file_data): New.
9138 (xbm_load_image_from_file): Call xbm_read_bitmap_file_data
9139 instead of XReadBitmapFileData.
9140
9141 * xdisp.c (handle_raise_prop): Compute voffset from current font.
9142
9143 * xfaces.c (face_with_height): New.
9144
9145 * xdisp.c (eval_handler): Renamed from eval_mode_handler.
9146 (eval_form): Renamed from eval_mode_element.
9147 (handle_face_prop): Use it.
9148 (Qheight): Replaces Qsmaller.
9149 (handle_height_prop): Replaces handle_smaller_prop.
427ec082 9150 (handle_face_prop): If iterator's font_height is not an
26901792
DL
9151 integer, evaluate it to get the font height to use.
9152
9153 * dispextern.h (HEIGHT_PROP_IDX): Replaces SMALLER_PROP_IDX.
9154 (struct it): Use `font_height' instead of `smaller'.
9155
91561998-12-01 Gerd Moellmann <gerd@gnu.org>
9157
9158 * xdisp.c (reseat_1): New.
9159 (reseat): Call it.
9160 (move_it_vertically_backward): Ditto.
9161 (redisplay_window): Don't abort when cursor not found in recenter.
9162
91631998-11-30 Gerd Moellmann <gerd@gnu.org>
9164
9165 * xdisp.c (reseat_at_next_visible_line_start): When not
9166 currently delivering display elements from the current buffer,
9167 restore buffer position first.
9168 (init_from_display_pos): Don't set IT's position from the
9169 position passed to this function.
9170
91711998-11-28 Gerd Moellmann <gerd@gnu.org>
9172
9173 * config.in (PROTO): Removed.
9174
9175 * xterm.h: Change PROTO to P_.
9176
91771998-11-26 Gerd Moellmann <gerd@gnu.org>
9178
9179 * xterm.c (take_vertical_position_into_account): New.
9180 (x_produce_image_glyph): Call it.
9181 (x_produce_stretch_glyph): Ditto.
9182 (x_produce_glyphs): Ditto.
9183 (x_fill_glyph_string): Adjust base line for glyph's voffset.
9184 (x_fill_composite_glyph_string): Ditto.
9185 (x_fill_image_glyph_string): Ditto.
9186 (x_fill_stretch_glyph_string): Ditto.
9187
9188 * xdisp.c (display_line): Always compute row height from
9189 max_ascent and max_descent.
9190
9191 * dispextern.h (struct glyph): Add voffset.
9192 (struct it): Replace height by descent, max_height by max_descent.
9193
9194 * xterm.c (x_append_glyph): Set voffset
9195 (x_append_stretch_glyph): Ditto.
9196 (x_produce_image_glyph): Ditto.
9197 (x_produce_glyphs): Take voffset into account.
9198 (x_produce_image_glyph): Ditto.
9199 (x_produce_stretch_glyph): Ditto.
9200
9201 * dispextern.h (struct it): Add voffset.
9202 * xdisp.c (push_it): Save voffset.
9203 (pop_it): Restore it.
9204
9205 * xdisp.c (it_props): Add entry for `raise'.
9206 (handle_raise_prop): New.
9207
9208 * dispextern.h (RAISE_PROP_IDX): New.
9209
9210 * xdisp.c (Qraise): New.
9211 (syms_of_xdisp): Define Qraised.
9212
9213 * xterm.c (x_scroll_bar_move): Clear to the left and right
9214 of toolkit scroll bars differently.
9215 (x_scroll_bar_move): Removed.
9216 (XTset_vertical_scroll_bar): Move code from x_scroll_bar_move here.
9217
9218 * dispextern.h: Make it compilable --with-x=no.
9219 * alloc.c: Ditto.
9220 * emacs.c: Ditto.
9221 * dispnew.c: Ditto.
9222 * keyboard.c: Ditto.
9223 * term.c: Ditto.
9224 * xdisp.c: Ditto.
9225 * xfaces.c: Ditto.
9226 * xfns.c: Ditto.
9227 * xmenu.c: Ditto.
9228
92291998-11-25 Gerd Moellmann <gerd@gnu.org>
9230
9231 * xterm.c (XTread_socket): Cancel help-echo when leaving frame.
9232
92331998-11-24 Gerd Moellmann <gerd@gnu.org>
9234
9235 * xterm.c (x_set_toolkit_scroll_bar_thumb): When dragging,
9236 update slider size, only.
9237 (xm_scroll_callback): Set dragging member of the scroll bar.
9238 (xt_action_hook): Reset last_scroll_bar_part.
9239 (XTredeem_scroll_bar): Reset bar->dragging to nil.
9240
26901792
DL
9241 * xfns.c (Fx_hide_busy_cursor): Don't try to hide busy cursor
9242 window on newly created frames that don't have one.
9243
92441998-11-23 Gerd Moellmann <gerd@gnu.org>
9245
9246 * xdisp.c (restore_overlay_strings): Removed.
9247 (restore_dpvec): Removed.
9248 (init_from_display_pos): Inline both functions above.
9249
9250 * xfns.c (IMAGE_NON_NEGATIVE_INTEGER_VALUE): New.
9251 (parse_image_spec): Handle it.
9252 (xbm_format): Use it.
9253 (xpm_format): Ditto.
9254 (pbm_format): Ditto.
9255 (jpeg_format): Ditto.
9256 (tiff_format): Ditto.
9257 (gif_format): Ditto.
9258 (gs_format): Ditto.
9259
9260 * xdisp.c (set_window_cursor): Removed.
9261 (redisplay_internal): Case cursor motion in cursor line of
9262 selected window; use set_cursor_from_row.
9263
92641998-11-22 Gerd Moellmann <gerd@gnu.org>
9265
9266 * widget.c (EmacsFrameSetCharSize): Take widget's border width
9267 into account.
9268
92691998-11-21 Gerd Moellmann <gerd@gnu.org>
9270
9271 * xterm.c (expose_frame): Redraw menu bar window.
9272
9273 * xdisp.c (display_menu_bar): Record hpos instead of x-position
9274 in menu item.
9275
9276 * dispnew.c (change_frame_size_1): Use FRAME_TOP_MARGIN instead
9277 of FRAME_TOOLBAR_LINES. Use `f' instead of `frame'.
9278
9279 * widget.c (set_frame_size): Use FRAME_SCROLL_BAR_COLS
9280 to determine vertical_scroll_bar_extra.
9281 (EmacsFrameSetCharSize): Ditto.
9282 * xfns.c (x_figure_window_size): Ditto.
9283
9284 * xterm.c (x_draw_row_bitmaps): Draw in `bitmap-area' face.
9285 (x_draw_bitmap): Ditto.
9286
9287 * dispextern.h (face_id): New id BITMAP_AREA_FACE_ID.
9288 * xfaces.c (realize_basic_faces): Realize it.
9289
92901998-11-20 Gerd Moellmann <gerd@gnu.org>
9291
9292 * xmenu.c (xmenu_show): Add workaround for remaining button grab
427ec082 9293 under LessTif Use the widget of the frame as parent for the
26901792
DL
9294 menu, again.
9295
92961998-11-19 Gerd Moellmann <gerd@gnu.org>
9297
9298 * xterm.c (XTread_socket): Inhibit busy cursor for EnterNotify.
9299 When EnterNotify, don't generate a mouse movement event if
9300 notification is from a busy-cursor child window.
9301
9302 * xterm.h (struct x_output): Add busy_window, remove cursor.
9303
9304 * xfns.c (Fx_show_busy_cursor): Formerly Fx_display_busy_cursor.
9305 Use a transparent window to display the busy-cursor.
9306 (Fx_hide_busy_cursor): Formerly Fx_undisplay_busy_cursor.
9307
93081998-11-17 Gerd Moellmann <gerd@gnu.org>
9309
9310 * xdisp.c (check_window_end): New, for debugging.
9311 (CHECK_WINDOW_END): New.
9312 (try_window_id): Use it.
9313
9314 * xterm.c (process_expose_from_menu): Return int.
9315
9316 * keyboard.c (kbd_buffer_get_event): Set flag to prevent recording
9317 TOOLBAR_EVENT events in last_nonmenu_event.
9318
93191998-11-16 Gerd Moellmann <gerd@gnu.org>
9320
9321 * xdisp.c (redisplay_window): If windows_or_buffers_changed,
9322 window end isn't reliable, so set window_end_valid to nil.
9323 (redisplay_internal): If overlay arrow has changed, set
9324 windows_or_buffers_changed to redisplay thoroughly.
9325
9326 * dispnew.c (adjust_glyph_matrix): Invalidate window end, if
9327 necessary.
9328
9329 * xfns.c (file_dialog_cb): New.
9330 (Fx_file_dialog): New.
9331 * fileio.c (Fread_file_name): Call it.
9332
427ec082 9333 * xrdb.c (x_load_resources): Add default resoures for file
26901792
DL
9334 selection dialog.
9335
93361998-11-14 Gerd Moellmann <gerd@gnu.org>
9337
9338 * xterm.c (note_mouse_highlight): Don't highlight when popup
9339 is active.
9340
26901792
DL
9341 * keyboard.c (timer_check): Inhibit busy cursor around calls to
9342 timer-event-handler. This busy cursor tends to be anoying if
9343 fontifying stealthily.
9344
9345 * dispnew.c (direct_output_for_insert): Give up if current row
9346 contains trailing whitespace.
9347
93481998-11-13 Gerd Moellmann <gerd@gnu.org>
9349
9350 * dispextern.h (prop_idx): Add FONTIFIED_PROP_IDX.
9351
9352 * xdisp.c (handle_fontified_prop): New.
9353 (Vfontification_functions): New.
9354 (Qfontification_functions): New.
9355 (it_props): Add handle_fontified_prop.
9356
93571998-11-12 Gerd Moellmann <gerd@gnu.org>
9358
9359 * xmenu.c (xmenu_show): Use the frame's edit_widget as parent.
9360 Otherwise, under LessTif, after the popup has gone, all button
9361 press events come in for the frame's widget, and release events
9362 come in for the edit_widget.
9363 * xterm.c (XTread_socket): Remove workaround for that problem.
9364 (x_set_toolkit_scroll_bar_thumb): Add workaround for LessTif
9365 XmScrollBarSetValues.
9366 (SET_SAVED_MENU_EVENT): Give it statement form.
9367
26901792
DL
9368 * xfaces.c (display_message): If waiting_for_input, don't display
9369 the message.
9370
9371 * window.c (scroll_command): If not acting on current_buffer,
9372 make redisplay consider all windows.
9373
9374 * xfns.c (Fx_hide_tip): Return t if tooltip was open.
9375
9376 * xdisp.c (handle_glyph_prop): Set it->object for images to
9377 the object having the glyph property.
9378
9379 * xterm.c (x_draw_row_bitmaps): Don't draw if row is completely
9380 invisible.
9381
93821998-11-11 Gerd Moellmann <gerd@gnu.org>
9383
9384 * xterm.h (struct x_display_info): Add gray pixmap. * xterm.c
9385 (x_term_init): Create the gray pixmap.
9386 (x_setup_relief_color): Use it.
9387 (x_get_glyph_string_clip_rect): Draw a toolbar window over the
9388 internal border at the top of a frame.
9389 (x_init_glyph_string): Likewise.
427ec082 9390 (x_draw_glyph_string_relief): Correct right x by 1 pixel for
26901792
DL
9391 full-width lines.
9392 (XTflash): Don't flash the toolbar window.
9393
9394 * xterm.c (XTread_socket): Workaround for LessTif popup menus
9395 in case of ButtonPress events.
9396
93971998-11-10 Gerd Moellmann <gerd@gnu.org>
9398
9399 * xrdb.c (x_load_resources): Add grey background colors as
9400 defaults for menus, scroll bars, and dialogs.
9401
9402 * insdel.c (prepare_to_modify_buffer): Move setting
9403 windows_or_buffers_changed from modify_region here.
9404
9405 * xfns.c (Fx_show_tip): Inhibit redisplay.
9406 (Fx_hide_tip): Ditto.
9407 (Fx_image_header): New.
9408
94091998-11-09 Gerd Moellmann <gerd@gnu.org>
9410
9411 * dispnew.c (clear_window_matrices): Set window_end_valid to nil
9412 when clearing current window matrices.
9413
94141998-11-08 Gerd Moellmann <gerd@gnu.org>
9415
9416 * xdisp.c (handle_glyph_prop): Don't set an iterator's buffer
9417 position from a string position. Use the right end position
9418 if the property spans a whole overlay string.
9419
94201998-11-07 Gerd Moellmann <gerd@gnu.org>
9421
9422 * xmenu.c (menubar_selection_callback): Remove workaround for
9423 Lesstif not calling XmNpopdownCallback because it doesn't
9424 handle the case where users don't select any menu item.
9425
26901792
DL
9426 * insdel.c (modify_region): Set windows_or_buffers_changed.
9427
9428 * buffer.c (set_buffer_internal): Don't set
9429 windows_or_buffers_changed.
9430
26901792
DL
9431 * xmenu.c (HAVE_BOXES): Define if USE_X_TOOLKIT.
9432
26901792
DL
9433 * xmenu.c (menubar_selection_callback): Add workaround for
9434 Lesstif not calling XmNpopdownCallback.
9435
9436 * xdisp.c (eval_mode_element): New.
9437 (eval_mode_handler): New.
9438 (display_mode_element): Use eval_mode_element.
9439
9440 * xdisp.c (display_mode_element): Allow `(:eval FORM)'.
9441 Remove code looking at text props of default value.
9442
9443 * xmenu.c (HAVE_BOXES): Define if using Lucid menus.
9444
26901792
DL
94451998-11-06 Gerd Moellmann <gerd@gnu.org>
9446
427ec082 9447 * xmenu.c (single_submenu): Set button_type of menu to
26901792
DL
9448 BUTTON_TYPE_NONE.
9449 (single_submenu): Likewise for panes and menu items.
9450 (set_frame_menubar): Set button_type of menu bar to none.
9451 (xmenu_show): Likewise.
9452 (single_submenu): Set widget values selected slot.
9453 (xmenu_show): Likewise.
9454
26901792
DL
9455 * xmenu.c (push_menu_item): Add parameters `type' and
9456 `selected'. Store it in menu_items.
9457 (MENU_ITEMS_ITEM_TYPE): New.
9458 (MENU_ITEMS_ITEM_SELECTED): New.
9459 (MENU_ITEMS_ITEM_LENGTH): Increase by two.
9460
9461 * xfns.c (clear_image_cache): Get the current time, before
9462 doing anything.
9463 (cache_image): Set prev pointer of next image.
9464 (clear_image_cache): Clear current matrices if any image was
9465 freed.
9466
9467 * xterm.c (XTread_socket): Set inhibit_busy_cursor.
9468
9469 * xfns.c (x_set_cursor): New.
9470 (Fx_display_busy_cursor): New.
9471 (Fx_undisplay_busy_cursor): New.
9472
9473 * xterm.h (struct x_output): Add busy_cursor.
9474
9475 * xfns.c (Vx_busy_pointer_shape): New.
9476 (x_set_mouse_color): Create busy cursor.
9477
9478 * process.c (wait_reading_process_input): Show and hide busy
9479 cursor.
9480
9481 * keyboard.c (command_loop_1): Display busy cursor.
9482
9483 * eval.c (Fsignal): Hide busy cursor.
9484
9485 * buffer.c (set_buffer_internal): Don't set
9486 windows_or_buffers_changed.
9487
9488 * xterm.c (redo_mouse_highlight): New.
9489
94901998-11-04 Gerd Moellmann <gerd@gnu.org>
9491
26901792
DL
9492 * xfns.c (x_create_x_image_and_pixmap): Add depth parameter.
9493 (x_build_heuritic_mask): New.
9494 (lookup_image): Call it.
9495
9496 * xterm.c (note_toolbar_highlight): Always set up help_echo.
9497 (previous_help_echo): New.
9498 (XTread_socket): Generate help event with nil message when
9499 leaving a region with help-echo.
9500 (note_mouse_highlight): Handle `help-echo' over text.
9501 (XTread_socket): Dispatch VisibilityNotify, CirculateNotify,
9502 CirculateRequest.
9503 (clear_mouse_face): Don't clear if tooltip is shown.
9504 (XTread_socket): Redo mouse-highlight after tooltip is gone.
9505 Avoid SET_FRAME_GARBAGED when tooltip is mapped.
9506
9507 * keyboard.c (Vshow_help_function): New.
9508 (read_char): Use it.
9509
95101998-11-03 Gerd Moellmann <gerd@gnu.org>
9511
9512 * xfns.c (x_create_tip_frame): New.
9513 (Fx_show_tip): New.
9514 (Fx_hide_tip): New.
9515
427ec082 9516 * xterm.c (x_destroy_window): Handle case that we don't have
26901792
DL
9517 a widget.
9518
9519 * dispextern.h (struct glyph_row): Rename no_marginal_areas_p
9520 to full_width_p. Add internal_border_p.
9521
95221998-11-02 Gerd Moellmann <gerd@gnu.org>
9523
9524 * xterm.c (note_mode_line_highlight): Check the charpos of
9525 the glyph under the mouse pointer before accessing text
9526 properties at that position.
9527
95281998-11-01 Gerd Moellmann <gerd@gnu.org>
9529
9530 * xterm.c (x_draw_image_relief): Handle toolbar_button_relief.
9531
9532 * xdisp.c (auto-raise-toolbar-buttons): New.
9533 (build_desired_toolbar_string): Handle the flag.
9534 (toolbar-button-margin): New.
9535 (toolbar-button-relief): New.
9536 (build_desired_toolbar_string): Use margin and relief.
9537
9538 * xterm.c (x_set_toolkit_scroll_bar_thumb): Remove workaround
9539 for FreeBSD.
9540 (note_mode_line_highlight): New.
9541 (note_mouse_highlight): Call it.
9542
95431998-10-31 Gerd Moellmann <gerd@gnu.org>
9544
9545 * s/freebsd.h (NARROWPROTO): New.
9546
9547 * xdisp.c (display_string): New parameter face_string.
9548 (display_mode_element): When displaying a symbol with a string
9549 value, use text properties from the symbol's default value, maybe.
9550
9551 * xrdb.c (x_load_resources): Add font defaults for menus and
9552 dialogs.
9553
95541998-10-30 Gerd Moellmann <gerd@gnu.org>
9555
9556 * xfns.c (Fx_create_frame): Try 12pt Courier font first.
9557
95581998-10-29 Gerd Moellmann <gerd@gnu.org>
9559
9560 * xterm.c (x_produce_glyphs): Fix bug causing glyphs to be
9561 produced for characters with codes < 32 under certain
9562 circumstances.
9563
9564 * xdisp.c (redisplay_window): Handle values of PT in front
9565 of invisible, intangible text.
427ec082 9566 (try_window_id): Set overlay_arrow_seen to zero before
26901792
DL
9567 displaying lines.
9568 (display_mode_element): Assign to glyphs written for a mode
9569 line spec `%x' as object the Lisp format string, as position
9570 the position of the `%' in that string.
9571 (display_string): If displaying a C string, optionally get
9572 the face to use from a Lisp string.
9573
9574 * xterm.c (expose_window_tree): Include mode line height.
9575
9576 * xfns.c (Fx_create_frame): Add toolbar height to frame height.
9577
95781998-10-27 Gerd Moellmann <gerd@gnu.org>
9579
9580 * xterm.c (note_mouse_highlight): Change mouse pointer shape
9581 over mode line.
9582
95831998-10-26 Gerd Moellmann <gerd@gnu.org>
9584
9585 * window.c (coordinates_in_window): Use CURRENT_MODE_LINE_HEIGHT.
9586
9587 * xdisp.c (redisplay_window): If mode line height has changed,
9588 arrange for a thorough immediate redisplay using the correct mode
9589 line height.
9590 (window_box_height): Use CURRENT_MODE_LINE_HEIGHT.
9591
9592 * dispextern.h (MATRIX_MODE_LINE_HEIGHT): New.
9593 (CURRENT_MODE_LINE_HEIGHT): New.
9594 (DESIRED_MODE_LINE_HEIGHT): New.
9595
9596 * keyboard.c (make_lispy_event): Add string and string position
9597 info to mouse-click events.
9598 (read_key_sequence): Handle `local-map' property of mode line
9599 strings.
9600
9601 * keyboard.h (POSN_STRING): New.
9602
96031998-10-25 Gerd Moellmann <gerd@gnu.org>
9604
9605 * dispnew.c (mode_line_string): Mew.
9606
9607 * xterm.c (xt_action_hook): New.
9608 (x_create_toolkit_scroll_bar): Add action hook.
9609 (xm_scroll_callback): Implement dragging.
9610
9611 * keyboard.c (Qend_scroll): New.
9612 (scroll_bar_parts): Add it.
9613
9614 * termhooks.h (scroll_bar_end_scroll): New.
9615
9616 * xterm.c (XTread_socket): Bug fix.
9617
96181998-10-24 Gerd Moellmann <gerd@gnu.org>
9619
9620 * xdisp.c (redisplay_window): Finish scroll bars after
9621 redisplaying toolbar.
9622
9623 * keyboard.c (scroll_bar_parts): Add Qtop and Qbottom.
9624 (syms_of_keyboard): Add Qbottom.
9625
9626 * termhooks.h (scroll_bar_to_top): New.
9627 (scroll_bar_to_bottom): New.
9628
9629 * xdisp.c (redisplay_window): Always resize toolbar window if
9630 auto_resize_toolbar_p is non-zero.
9631 (auto_resize_toolbar_p): Renamed from auto_resize_toolbar.
9632 (window_box): New.
9633 (window_box_height): New.
9634 (window_box_width): New.
9635 (window_box_left): New.
9636 (window_box_right): New.
9637 (window_box_edges): New.
9638
96391998-10-23 Gerd Moellmann <gerd@gnu.org>
9640
9641 * xterm.c (x_set_toolkit_scroll_bar_thumb): Kluge for call to
9642 XawScrollbarSetThumb in FreeBSD.
9643 (x_create_toolkit_scroll_bar): Set resource "beNiceToColormap"
9644 to true.
9645
9646 * window.c (get_phys_cursor_glyph): Return null if cursor vpos
9647 is out of range.
9648
9649 * xterm.c (x_create_toolkit_scroll_bar): Set scroll_bar_pixel.
9650 (x_term_init): Initialize it.
9651
9652 * xterm.h (struct x_display_info): Add scroll_bar_pixel.
9653
9654 * xterm.c (x_create_toolkit_scroll_bar): Set LessTif scroll bar's
9655 cursor.
9656
96571998-10-22 Gerd Moellmann <gerd@gnu.org>
9658
9659 * keyboard.c (make_lispy_event): Handle scroll_bar_click
9660 differently when using toolkit scroll bars.
9661
9662 * xterm.c (x_send_scroll_bar_event): New.
9663 (x_scroll_bar_to_input_event): New.
9664 (xaw3d_scroll_callback): New.
9665 (xaw3d_jump_callback): New.
9666 (xm_scroll_callback): New.
9667 (x_toolkit_scroll_p): New.
9668 (XTread_socket): Handle scroll bar client message.
9669 (x_term_init): Initialize Xatom_Scrollbar.
9670 (x_scroll_bar_create): Set cursor.
9671 (xm_scroll_callback):
9672 (x_create_toolkit_scroll_bar): New.
9673 (x_set_toolkit_scroll_bar_thumb): New.
9674 (x_scroll_bar_create): Call x_create_toolkit_scroll_bar.
9675 (XTset_vertical_scroll_bar): Call x_set_toolkit_scroll_bar_thumb.
9676
9677 * xterm.h (struct x_display_info): Add Xatom_Scrollbar.
9678
96791998-10-21 Gerd Moellmann <gerd@gnu.org>
9680
9681 * xterm.c (x_scroll_bar_remove): Handle toolkit scroll bars.
9682 (XTread_socket): Don't handle mouse button events for scroll bars
9683 if using toolkit scroll bars.
9684 (XTset_vertical_scroll_bar): Set thumb size and position for
9685 Athena scroll bar.
9686
9687 * xterm.h (scroll_bar): Add x_widget_low and x_widget_high.
9688
9689 * xterm.c (XTread_socket): Dispatch expose event to widget
9690 if using toolkit scroll bars.
9691 (x_scroll_bar_expose): Make no-op for toolkit scroll bars.
427ec082 9692 (x_scroll_bar_create): Create and show a scroll bar widget
26901792
DL
9693 if using toolkit scroll bars.
9694 (x_scroll_bar_move): Handle tookit scroll bars.
9695
9696 * Makefile.in (LIBW): Use Xaw3d if present.
9697
9698 * configure.in (USE_TOOLKIT_SCROLL_BARS): New.
9699 (HAVE_XAW3D): New.
427ec082 9700
26901792
DL
9701 * config.in (USE_TOOLKIT_SCROLL_BARS): New.
9702 (HAVE_XAW3D): New.
9703
427ec082 9704 * xterm.c (XTset_vertical_scroll_bar): Correct position of
26901792
DL
9705 right vertical scroll bar.
9706
97071998-10-20 Gerd Moellmann <gerd@gnu.org>
9708
9709 * xfns.c (xpm_load): Support reading XPM images from string
9710 buffers containing data in the same format as an XPM file.
9711 Support `:color-symbols'.
9712 (xpm_format): Add `:data'.
9713 (xpm_keyword_index): Add XPM_DATA.
9714 (syms_of_xfns): Add `:color-symbols'.
9715 (xpm_keyword_index): Add XPM_COLOR_SYMBOLS.
9716 (xpm_valid_color_symbols_p): New.
9717 (xpm_image_p): Call it.
9718
9719 * xdisp.c (build_desired_toolbar_string): Add `:algorithm'
9720 attribute to the image if item is not enabled.
9721
9722 * xfns.c (x_laplace): New.
9723 (x_laplace_read_row): New.
9724 (x_laplace_write_row): New.
9725 (lookup_image): Handle common image attributes here. New
9726 attribute `:algorithm'.
9727
9728 * xfaces.c (clear_face_cache): Call clear_image_cache.
9729
9730 * xterm.c (x_inverted_image_mask): Removed.
9731 (x_draw_image_foreground_1): New.
9732 (x_draw_image_glyph_string): Draw images with mask to a temporary
9733 pixmap to reduce flickering.
9734
9735 * xdisp.c (redisplay_toolbar): Handle auto-resize-toolbars.
9736 (display_toolbar_line): Remove parameter `margin'.
9737
97381998-10-19 Gerd Moellmann <gerd@gnu.org>
9739
9740 * xdisp.c (toolbar_lines_needed): New.
9741 (auto-resize-toolbars): New.
9742
9743 * xfns.c (cache_image): Correct call to xrealloc.
9744
9745 * dispnew.c (Fset_toolbar_height): Removed.
9746
9747 * xdisp.c (init_xdisp): Use FRAME_TOP_MARGIN instead of
9748 FRAME_MENU_BAR_LINES.
9749
9750 * window.c (Fdelete_other_windows): Use FRAME_TOP_MARGIN
9751 instead of FRAME_MENU_BAR_LINES.
9752 (check_frame_size): Ditto.
9753
9754 * dispnew.c (adjust_frame_glyphs_initially): Use FRAME_TOP_MARGIN
9755 instead of FRAME_MENU_BAR_LINES.
9756 (adjust_frame_glyphs_for_frame_redisplay): Ditto.
9757 (build_frame_matrix): Ditto.
9758 (change_frame_size_1): Ditto.
9759
9760 * frame.h (FRAME_TOOLBAR_LINES): New.
9761 (FRAME_TOP_MARGIN): New.
9762
9763 * window.c (struct save_window_data): Add frame_toolbar_lines.
9764 (Fset_window_configuration): Handle toolbar lines.
9765 (Fcurrent_window_configuration): Save toolbar lines.
9766
9767 * frame.c (syms_of_frame_1): Add Qtoolbar_lines.
9768
9769 * xfns.c (Fx_create_frame): Add default parameter for toolbar.
9770
9771 * frame.h (struct frame): Rename top_margin to toolbar_lines.
9772
9773 * xfns.c (x_frame_parms): Add `toolbar-lines'.
9774 (x_set_toolbar_lines): New.
9775
9776 * keyboard.c (cmd_error_internal): Bug fix.
9777
9778 * xterm.c: Remove double include of syssignal.h.
9779
97801998-10-18 Gerd Moellmann <gerd@gnu.org>
9781
9782 * xterm.c (x_toolbar_item): New.
9783 (x_handle_toolbar_click): Use it.
9784 (note_toolbar_highlight): Use it.
9785
9786 * keyboard.c (syms_of_keyboard): Staticpro toolbar_item_properties
9787 and toolbar_items_vectors.
9788
9789 * xterm.c (help_echo): New.
9790 (draw_glyphs_face): Add DRAW_IMAGE_RAISED and DRAW_IMAGE_SUNKEN.
9791 (x_set_glyph_string_gc): Handle them.
9792 (x_after_update_window_line): Don't do anything in pseudo-windows.
9793 (x_produce_image_glyph): Take image margin and face relief into
9794 account.
9795 (x_get_glyph_string_clip_rect): Handle pseudo-windows.
9796 (x_draw_glyph_string_background): Optimize case when face has
9797 relief.
9798 (x_setup_relief_color): Take frame instead of glyph string
9799 parameter.
9800 (x_draw_relief_rect): New.
9801 (x_draw_glyph_string_relief): Call it.
9802 (x_draw_image_glyph_string_foreground): Handle margin and image
9803 relief.
9804 (x_draw_image_glyph_string_background): Ditto.
9805 (expose_frame): Redraw toolbar window.
9806 (expose_window): Don't draw cursor for pseudo-windows.
9807 (x_y_to_hpos_vpos): Handle pseudo-windows.
9808 (frame_to_window_pixel_xy): New.
9809 (note_mouse_highlight): Call note_toolbar_highlight.
9810 (x_handle_toolbar_click): New.
9811 (note_toolbar_highlight): New.
9812 (show_mouse_face): Change int parameter `hl' to parameter of
9813 type enum draw_glyphs_face. Handle image highlighting.
9814 (XTread_socket): Return a HELP_EVENT input event if help_echo is
9815 non-nil. Use x_handle_toolbar_click.
9816
9817 * termhooks.h (event_kind): Add HELP_EVENT, TOOLBAR_EVENT.
9818
9819 * xfns.c (image_value_type): Add IMAGE_INTEGER_VALUE,
9820 IMAGE_BOOL_VALUE.
9821 (parse_image_spec): Handle them.
9822 (image_spec_value): Additional parameter found.
427ec082 9823 (free_image): Remove image from the vector `images' of the
26901792
DL
9824 image cache.
9825 (clear_image_cache): Additional parameter force_p.
9826 (Fclear_image_cache): New.
9827 (x_find_image_file): New.
9828 (xbm_load): Handle `:margin' and `:relief'. Use
9829 x_find_image_file.
9830 (xpm_load): Likewise.
9831 (pbm_load): Likewise.
9832 (jpeg_load): Likewise.
9833 (tiff_load): Likewise.
9834 (gif_load): Likewise.
9835
9836 * keyboard.c (Qhelp_echo): New symbol.
9837 (read_char): Handle `toolbar' and `help_echo' events.
9838 (kbd_buffer_get_event): Handle HELP_ECHO input event.
9839 (make_lispy_event): Handle TOOLBAR_EVENT.
9840 (toolbar_items): New.
9841 (process_toolbar_item): New.
9842 (PROP): New.
9843 (init_toolbar_items): New.
9844 (append_toolbar_item): New.
9845 (read_char_x_menu_prompt): Handle `toolbar' event.
9846 (read_key_sequence): Ditto.
9847
9848 * xfaces.c (Qtoolbar): New.
9849 (realize_basic_faces): Realize `toolbar' face.
9850 (face_at_string_position): Remove parameter modeline_p, add
9851 base_face_id.
9852
9853 * xfns.c (xbm_load_image_from_file): Don't use Xmu function
9854 to read data.
9855
98561998-10-17 Gerd Moellmann <gerd@gnu.org>
9857
9858 * xdisp.c (init_iterator): Replace parameter modeline_p with
9859 base_face_id.
9860 (next_element_from_string): Call get_next_display_element
9861 recursively after handling text properties.
9862 (prepare_menu_bars): Call update_toolbar.
9863 (update_toolbar): New.
9864 (build_desired_toolbar_string): New.
9865 (display_toolbar_line): New.
9866 (redisplay_toolbar): New.
9867 (toolbar_item_info): New.
9868 (redisplay_window): Call redisplay_toolbar.
9869 (Fdump_toolbar_row): New. Defined if compiled with GLYPH_DEBUG.
9870
9871 * dispnew.c (clear_current_matrices): Clear matrices of toolbar
9872 window.
9873 (clear_desired_matrices): Ditto.
9874 (adjust_frame_glyphs_for_window_redisplay): Make toolbar window.
9875 (free_glyphs): Free matrices of toolbar window.
9876 (update_frame): Update toolbar window.
9877 (change_frame_size_1): Take toolbar into account.
9878 (Fset_toolbar_height): New.
9879
9880 * dispextern.h (struct it): Remove member modeline_p, add
9881 base_face_id.
9882 (struct image): Add members relief and margin.
9883 (IMAGE_ASCENT): Include margin in height.
9884
98851998-10-14 Gerd Moellmann <gerd@gnu.org>
9886
9887 * xfns.c (Fclear_image_cache): New.
9888
9889 * xfaces.c (realize_basic_faces): Realize toolbar face.
9890 (face_at_string_position): Remove parameter modeline_p, add
9891 base_face_id.
9892
9893 * dispextern.h (enum face_id): Add TOOLBAR_FACE_ID.
9894
98951998-10-13 Gerd Moellmann <gerd@gnu.org>
9896
9897 * keyboard.c (syms_of_keyboard): Intern `:help'.
9898
98991998-10-12 Gerd Moellmann <gerd@gnu.org>
9900
9901 * xterm.c (note_toolbar_highlight): New.
9902 (note_mouse_highlight): Call it.
9903
9904 * window.c (window_from_coordinates): Additional parameter toolbar_p.
9905 (coordinates_in_window): Handle toolbar window.
9906
9907 * keyboard.c (toolbar_items): New.
9908 (process_toolbar_item): New.
9909 (parse_toolbar_item): New.
9910 (init_toolbar_items): New.
9911 (append_toolbar_item): New.
9912
9913 * dispextern.h (enum toolbar_item_idx): New.
9914 (enum toolbar_item_image): New.
9915
9916 * frame.h (struct frame): Add toolbar-related members.
9917
9918 * xfaces.c (face_at_string_position): Remove assertion that
9919 current_buffer == window's buffer. This is not the case when
9920 called for the toolbar window.
9921
9922 * frame.c (make_frame): Initialize toolbar members.
9923
9924 * alloc.c (mark_object): Mark toolbar data of frames.
9925
9926 * frame.h (struct frame): Add toolbar-related members
9927 toolbar_window, desired_toolbar_items, current_toolbar_items,
9928 desired_toolbar_string, current_toolbar_string,
9929 n_desired_toolbar_items, n_current_toolbar_items. Add
9930 window_height.
9931
9932 * xterm.c (x_after_update_window_line): Don't draw bitmap
9933 areas for pseudo-windows.
9934 (expose_frame): Handle toolbar window.
9935 (expose_window): Don't do cursor stuff for pseudo-windows.
9936
9937 * xdisp.c (display_menu_bar): Correct calls to init_iterator.
9938
99391998-10-11 Gerd Moellmann <gerd@gnu.org>
9940
9941 * frame.c (make_frame): Initialize toolbar_window.
9942
9943 * alloc.c (mark_object): Make the toolbar window.
9944
9945 * dispnew.c (update_frame): Update frame's toolbar_window.
9946 (clear_current_matrices): Likewise.
9947 (clear_desired_matrices): Likewise.
9948 (adjust_frame_glyphs_for_window_redisplay): Make toolbar_window.
9949 (free_glyphs): Free the toolbar window and its matrices.
9950
9951 * frame.h (struct frame): Add toolbar_window.
9952
9953 * xterm.c (x_draw_glyph_string_relief): Handle mouse-face
9954 with relief.
9955
99561998-10-10 Gerd Moellmann <gerd@gnu.org>
9957
427ec082 9958 * dispnew.c (buffer_posn_from_coords): Don't screw up if
26901792
DL
9959 window start is not in the range BEGV..ZV.
9960
99611998-10-09 Gerd Moellmann <gerd@gnu.org>
9962
9963 * xdisp.c (try_scrolling): Experimentally handle the case
9964 that scroll-preserve-screen-position is set to `always'.
9965
9966 * window.c (Vscroll_preserve_screen_position): Replacement for
9967 scroll_preserve_screen_position.
9968
99691998-10-08 Gerd Moellmann <gerd@gnu.org>
9970
9971 * dispnew.c: Don't initialize auto structs; the HP/UX compiler
9972 doesn't like it.
9973 * xdisp.c: Ditto.
9974
9975 * xdisp.c (make_cursor_line_fully_visible): Adjust this_line_y.
9976
99771998-10-06 Gerd Moellmann <gerd@gnu.org>
9978
427ec082 9979 * minibuf.c (Fminibuffer_complete_word): Fix computation of
26901792
DL
9980 i_byte when prompts are inserted into minibuffers.
9981
9982 * dispextern.h (FRAME_INTERNAL_BORDER_WIDTH_SAFE): New.
9983 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Use it.
9984 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y): Ditto.
9985
99861998-10-04 Gerd Moellmann <gerd@gnu.org>
9987
9988 * xdisp.c (make_cursor_line_fully_visible): New.
9989 (try_scrolling): New.
9990 (redisplay_window): Move scrolling code to try_scrolling.
9991 (make_cursor_line_fully_visible): Handle case of window too small
9992 to show a single line.
9993 (redisplay_window): Case forced window start---use
9994 make_cursor_line_fully_visible.
9995 (redisplay_window): Case cursor movement via current matrix.
9996 If ending up on a partially visible line, make it fully visible
9997 instead of recentering.
9998 (try_scrolling): Additional parameter scroll_smoothly.
9999
10000 * xterm.c (x_draw_bitmap): Don't XClearArea under the pixmap.
10001
100021998-09-28 Gerd Moellmann <gerd@gnu.org>
10003
10004 * window.c (window_scroll_pixel_based): Bug fix: vpos used
10005 instead of y-position for scroll-preserved-screen-position.
10006
100071998-09-07 Gerd Moellmann <gerd@gnu.org>
10008
10009 * dispnew.c (update_frame_line): If current row is not enabled,
10010 write the whole line.
10011
100121998-09-06 Gerd Moellmann <gerd@gnu.org>
10013
10014 * lisp.h (HAVE_FACES): Removed.
10015
10016 * dispextern.h (HAVE_FACES): Removed.
10017
10018 * config.in (HAVE_FACES): Removed.
10019
10020 * dispnew.c (HAVE_FACES): Removed.
10021
10022 * xdisp.c (HAVE_FACES): Removed.
10023
10024 * xfaces.c (HAVE_FACES): Removed.
10025
100261998-09-05 Gerd Moellmann <gerd@gnu.org>
10027
10028 * xdisp.c (init_iterator): If face_change_count is non-zero,
10029 free realized faces.
10030
10031 * xfaces.c (free_all_realized_faces): Make it externally visible.
10032 (Finternal_set_lisp_face_attribute): Increment
10033 windows_or_buffers_changed.
10034
10035 * dispnew.c (direct_output_for_insert): Give up if
10036 face_change_count is non-zero.
10037 (direct_output_forward_char): Ditto.
10038
10039 * xfaces.c (face_change_count): New.
10040
100411998-09-04 Gerd Moellmann <gerd@gnu.org>
10042
10043 * xterm.c (x_draw_bar_cursor): Don't draw if cursor hpos is out
10044 of range.
10045
100461998-09-03 Gerd Moellmann <gerd@gnu.org>
10047
10048 * term.c (Ftty_display_color_p): New.
10049
100501998-09-02 Gerd Moellmann <gerd@gnu.org>
10051
10052 * xfaces.c (Ftty_defined_colors): New.
10053
10054 * xterm.c (x_produce_glyphs): Fix computation of
10055 contains_overlapping_glyphs_p for ASCII.
10056
10057 * dispnew.c (Fshow_cursor): Don't change cursor state while
10058 redisplaying.
10059 (direct_output_for_insert): If a glyph with lbearing or rbearing
10060 is among the new glyphs, set row flag contains_overlapping_glyph_p.
10061
100621998-09-01 Gerd Moellmann <gerd@gnu.org>
10063
10064 * term.c (OUTPUT_IF): Make replacement text have statement form.
10065 (OUTPUT1_IF): Ditto.
10066 (TS_italic_mode, TS_end_italic_mode): Removed.
10067 (TS_bold_mode): Removed.
10068 (TS_underscore_mode, TS_end_underscore_mode): Removed.
10069 (TS_enter_bold_mode, TS_enter_dim_mode, TS_enter_blink_mode): New.
10070 (TS_enter_reverse_mode): New.
10071 (TS_enter_underline_mode, TS_exit_underline_mode): New.
10072 (TN_magic_cookie_glitch_ul): New.
10073 (TS_enter_alt_charset_mode, TS_exit_alt_charset_mode): New.
10074 (TS_exit_attribute_mode): New.
10075 (TN_max_colors, TN_max_pairs, TS_orig_pairs): New.
10076 (TS_set_foreground, TS_set_background): New.
10077 (reset_terminal_modes): Switch colors back to default.
10078 (write_glyphs): Turn face on before writing text, turn it off
10079 afterwards.
10080 (insert_glyphs): Ditto.
10081 (term_init): Initialize new terminal capability variables.
10082 (turn_on_face): Turn a face on.
10083 (turn_off_face): Turn a face off.
10084
10085 * lisp.h (MAKE_GLYPH): Remove test for frame type.
10086 (GLYPH_CHAR): Ditto.
10087 (GLYPH_FACE): Ditto.
10088
10089 * xfaces.c (Vface_tty_color_alist): New.
10090 (face-register-tty-color): New.
10091 (face-clear-tty-colors): New.
10092
10093 * dispextern.h (FACE_TTY_DEFAULT_COLOR): New.
10094 (struct it): Remove member faces_p since we now always have faces.
10095
100961998-08-31 Gerd Moellmann <gerd@gnu.org>
10097
10098 * dispextern.h (struct face): Add tty appearance flags.
10099
10100 * xdisp.c (init_iterator): Always handle faces.
10101 (extend_face_to_end_of_line): Handle tty frames.
10102
10103 * dispnew.c (clear_glyph_matrix): Allow a null matrix to be
10104 passed in.
10105
101061998-08-30 Gerd Moellmann <gerd@gnu.org>
10107
10108 * xfaces.c (realize_default_face): Use empty strings to indicate
10109 that the face should use the default foreground/background
427ec082 10110 color of the terminal. Fill font-related attributes with
26901792
DL
10111 appropriate values for tty frames.
10112
10113 * emacs.c (main): Call syms_of_xfaces before init_window_once.
10114
10115 * xfaces.c (realize_default_face): If face `default' is not
10116 yet known, create it.
10117
10118 * frame.c (make_terminal_frame): Call init_frame_faces
10119 unconditionally.
10120
10121 * xfaces.c (init_frame_faces): Make it work for tty frames.
10122 (free_frame_faces): Ditto.
10123 (clear_face_cache): Ditto.
10124 (recompute_basic_faces): Ditto.
10125 (Fframe_face_alist): Ditto.
10126 (free_realized_face): Ditto.
10127 (prepare_face_for_display): Ditto.
10128 (clear_face_gcs): Ditto.
10129 (lookup_face): Ditto.
10130 (smaller_face): Ditto.
10131 (realize_default_face): Ditto.
10132 (realize_face): Ditto.
10133 (realize_face): Dispatch to functions depending on the frame type.
10134 (realize_x_face): X way of realizing faces.
10135 (realize_tty_face): TTY way of realizing faces.
10136
101371998-08-29 Gerd Moellmann <gerd@gnu.org>
10138
10139 * xfaces.c (realize_face): Remove parameter unibyte_registry,
10140 compute it instead.
10141 (lookup_face): Remove local variable unibyte_registry.
10142
101431998-08-22 Gerd Moellmann <gerd@gnu.org>
10144
10145 * xterm.c (x_draw_glyph_string_relief): Draw top and bottom lines
10146 1 pixel longer.
10147
427ec082 10148 * xdisp.c (face_before_or_after_it_pos): Fix computation
26901792
DL
10149 of face in buffer.
10150
10151 * editfns.c (make_buffer_string_both): If prompt in buffer,
10152 prevent start > end.
10153
10154 * indent.c (Fvertical_motion): Set current_buffer to window's
10155 buffer if it isn't already.
10156
101571998-08-21 Gerd Moellmann <gerd@gnu.org>
10158
10159 * dispextern.h (GLYPH_DEBUG): Use default 0.
10160
10161 * xdisp.c (it_props): New member `smaller'.
10162 (init_iterator): Initialize it.
10163 (Qsmaller): New.
10164 (push_it): Save value of `smaller' value on the stack.
10165 (pop_it): Restore `smaller' from the stack.
10166 (handle_smaller_prop): New.
10167 (handle_face_prop): Use `smaller' text property to select a
10168 suitable face.
10169
10170 * dispextern.h (SMALLER_PROP_IDX): New.
10171 (struct it): Add member `smaller'.
10172
10173 * xfaces.c (smaller_face): New.
10174
10175 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add bitmap area widths.
10176
10177 * dispnew.c (allocate_matrices_for_window_redisplay): Compute
10178 total pixel width of window differently.
10179
10180 * xdisp.c (init_iterator): Compute width of mode line differently.
10181
10182 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract width
10183 of bitmap areas.
10184
10185 * window.c (Fsplit_window): Include width of bitmap areas in
10186 window width.
10187 (window_internal_width): Subtract width of bitmap areas from
10188 total width.
10189
101901998-08-18 Gerd Moellmann <gerd@gnu.org>
10191
10192 * xdisp.c: Functions reordered for better readability.
10193
10194 * dispnew.c (update_text_area): Handle glyphs with arbitrary
10195 lbearing.
10196 (update_window_tree): Parameter no_scrolling_p removed.
10197 (update_single_window): Ditto.
10198
10199 * xterm.c (x_get_char_font_and_encoding): Renamed to
10200 x_get_char_face_and_encoding.
10201
10202 * dispnew.c (update_text_area): Don't call get_glyph_overhangs
10203 if end of current row reached.
10204
10205 * xterm.c (x_get_glyph_face_and_encoding): New.
10206 (x_get_glyph_overhangs): Call it.
10207
10208 * xdisp.c (Qshow_trailing_whitespace): New.
10209 (Qtrailing_whitespace): New.
10210 (enum prop_handled): New.
10211 (struct props, it_props): New.
10212 (next_overlay_change): New. Works like Fnext_overlay_change
10213 but doesn't use xmalloc.
10214 (handle_stop): Restructured.
10215 (face_before_or_after_it_pos): Case iteration over a string: fix
10216 handling of face before current position.
10217
102181998-08-16 Gerd Moellmann <gerd@gnu.org>
10219
10220 * dispnew.c (adjust_glyph_matrix): Don't optimize matrix
10221 reallocation matrix if fonts_changed_p.
10222 (update_text_area): Handle glyphs with lbearing.
10223
102241998-08-14 Gerd Moellmann <gerd@gnu.org>
10225
10226 * xdisp.c (struct props): New.
10227 (it_props): New.
10228 (compute_prop_info): New.
10229 (handle_stop): New.
10230
10231 * textprop.c (validate_interval_range): Make it externally
10232 visible.
10233
10234 * dispnew.c (direct_output_for_insert): Remove calls
10235 to compute_stop_pos.
10236
10237 * dispextern.h (struct it): Remove check_charpos,
10238 next_overlay_pos. Add what_changes.
10239
102401998-08-10 Gerd Moellmann <gerd@gnu.org>
10241
10242 * xterm.c (note_mouse_highlight): Set BEGV_BYTE, ZV_BYTE.
10243
10244 * xfaces.c (Vx_unibyte_registry_and_encoding): Removed. Use
10245 face_default_registry instead.
10246
10247 * syntax.c (scan_sexps_forward): Set up syntax table before
10248 jumping to initial state label.
10249
102501998-08-09 Gerd Moellmann <gerd@gnu.org>
10251
10252 * dispnew.c (check_matrix_invariants): Handle case of row end pos
10253 >= ZV specially.
10254
102551998-08-08 Gerd Moellmann <gerd@gnu.org>
10256
10257 * xdisp.c (redisplay_window): Case cursor movement---if cursor
10258 ends up in partially visible row, try to scroll. Case forced
10259 window start---handle windows not tall enough to show a single
10260 line.
10261
10262 * window.h (struct window): Member dy renamed vscroll.
10263
10264 * xterm.c (x_list_fonts): Re-activate suppression of scalable
10265 fonts.
10266 (x_draw_stretch_glyph_string): Set clipping if using GC that
10267 hasn't set it yet.
10268
10269 * xdisp.c (redisplay_window): Case forced window start -
10270 don't let cursor end on partially visible row. Use desired
10271 matrix to find a suitable PT if it doesn't appear.
10272 (decode_mode_spec): Merged with 20.2.97.
10273 (try_window_reusing_current_matrix): Give up if old or
10274 new display is vscrolled.
10275 (redisplay_window): Reset vscrolling if forced window start,
10276 or if recentering.
10277
102781998-08-06 Gerd Moellmann <gerd@gnu.org>
10279
10280 * xfaces.c (realize_default_face): Use the fontset name instead of
10281 the alias for the family attribute of the default face because we
10282 can't easily determine a good alias from fontset-alias-alist.
10283 (face_fontset): Use Fquery_fontset to find the fontset.
10284 (font_list): Additional pattern parameter.
10285 (try_font_list): Ditto.
10286 (set_lface_from_font_name): Set face family from font foundry
10287 and family.
10288 (font_list): If family contains a hyphen, build pattern differently.
10289
102901998-08-05 Gerd Moellmann <gerd@gnu.org>
10291
10292 * xfaces.c (free_realized_faces): Increment windows_or_buffers_-
10293 changed instead of setting the frame garbaged.
10294
10295 * xfaces.c (lface_equal_p): Don't assume equal Lisp types for
10296 all attribute values. This is wrong if values are unspecified,
10297 i.e. nil.
10298
10299 * xdisp.c (try_window_id): Give up if window start changed.
10300
10301 * xfaces.c (make_realized_face): Store registry as Lisp object.
10302 (load_face_font_or_fontset): Compute registry of a face
10303 differently. Make it `eq' to Vx_unibyte_registry_and_encoding if
10304 possible.
10305
10306 * dispextern.h (FACE_SUITABLE_FOR_CHARSET_P): Compare registries
10307 differently.
10308
10309 * alloc.c (mark_face_cache): Mark the registry member of faces.
10310
10311 * dispextern.h (struct face): Make registry a Lisp string.
10312
103131998-08-04 Gerd Moellmann <gerd@gnu.org>
10314
10315 * xterm.c (x_get_char_font_and_encoding): Additional parameter
10316 multibyte_p. Handle unibyte text.
10317 (x_append_glyph): Set the multibyte_p flag of glyphs.
10318 (x_produce_image_glyph): Ditto.
10319 (x_append_stretch_glyph): Ditto.
10320 (x_produce_glyphs): Handle unibyte text like ASCII.
10321
10322 * xdisp.c (push_it): Save the multibyte flag of an iterator on the
10323 stack.
10324 (pop_it): Restore it.
10325 (face_before_or_after_it_pos): Handle the case that the string or
10326 buffer is unibyte.
10327 (get_overlay_strings): Set the multibyte flag of the iterator if
10328 the new overlay string is multibyte.
10329 (get_glyph_property): Likewise.
10330 (get_next_display_element): Don't check for charset changes in
10331 unibyte text.
10332 (append_space): Compute face differently for unibyte text.
10333 (extend_face_to_end_of_line): Don't return quickly if face has
10334 stipple.
10335
10336 * xfaces.c (load_face_font_or_fontset): Store registry and
10337 encoding of the font in the registry member of the face.
10338 (make_realized_face): Additional parameter `registry'.
10339 (free_realized_face): Free the registry of a realized face.
10340 (face_suitable_for_charset_p): Function form of the macro
10341 with the same name in uppercase.
10342 (lookup_face): Use Vx_unibyte_registry_and_encoding if charset < 0.
10343 (choose_face_font): New parameter unibyte_registry.
10344 (choose_face_fontset_font): Ditto.
10345 (realize_default_face): Remember the registry and encoding of
10346 the specified frame font in Vx_unibyte_registry_and_encoding.
10347 (face_at_buffer_position): Handle unibyte.
10348 (face_at_string_position): Likewise.
427ec082 10349 (realize_face): New parameter unibyte_registry.
26901792
DL
10350 (compute_char_face): Handle the unibyte case.
10351
10352 * dispextern.h (struct glyph): Add bit multibyte_p.
10353 (struct face): New member registry holding the registry and
10354 encoding of the X font of the face.
10355 (FACE_UNIBYTE_P): Value is non-zero if face is for unibye text.
10356 (enum face_id): Add BASIC_FACE_ID_SENTINEL.
10357 (FACE_SUITABLE_FOR_CHARSET_P): Handle charset < 0 meansing unibyte
10358 text.
10359 (struct iterator_stack_entry): Add multibyte_p.
10360
10361 * xdisp.c (string_pos): Use string_char_to_byte.
10362 (char_charset): Removed.
10363
103641998-08-03 Gerd Moellmann <gerd@gnu.org>
10365
10366 * xterm.c (x_draw_image_glyph_string_foreground): Draw a
10367 rectangle for a block cursor over an image without a mask.
10368 (x_stretch_block_cursor): Added. Non-zero means don't draw
10369 a block cursor over a stretch as wide as that stretch.
10370 (x_draw_stretch_glyph_string): Use it.
10371 (x_draw_hollow_cursor): Ditto.
10372
10373 * minibuf.c (read_minibuf): Use minibuf_prompt instead of prompt.
10374 (read_minibuf): Add front-sticky text property for prompt.
10375
10376 * xdisp.c (char_charset): Return charset of a character,
10377 depending on whether or not multi-byte characters are enabled.
10378
10379 * xfaces.c (Fset_face_charset_registry): Removed.
10380 (x_charset_registry): Determine registry from charset plist.
10381
103821998-08-02 Gerd Moellmann <gerd@gnu.org>
10383
10384 * xdisp.c (get_next_display_element): Don't check for charset
10385 changes if multi-byte characters are not enabled.
427ec082 10386
26901792 10387 * xdisp.c (echo_area_display): Use the flush function from the
427ec082 10388 redisplay interface.
26901792
DL
10389 * keyboard.c (detect_input_pending_run_timers): Likewise.
10390
10391 * dispextern.h (produce_*glyphs_hook): Removed.
10392 * term.c (produce_*glyphs): Ditto.
10393 (cursor_to): Remove pixel position parameters.
10394
10395 * dispnew.c: Remove hooks for window-based redisplay, introduce
10396 a redisplay interface structure.
10397
10398 * xterm.c (x_per_char_metric): Return default char metrics if per
10399 char metric exists but contains a zero width. Adobe Courier seems
10400 to contain such characters.
10401
10402 * xdisp.c (compute_line_metrics): Compute the width of rows
10403 without stopping at glyphs with zero width.
10404
104051998-08-01 Gerd Moellmann <gerd@gnu.org>
10406
10407 * xdisp.c (display_mode_line): If nothing was displayed at all,
10408 display a space.
10409 (hscroll_window_tree): Don't subtract 1 from target point if equal
10410 to ZV and window is not the selected window.
10411
10412 * dispnew.c (check_matrix_invariants): Remove check for window
10413 start at BEGV or after newline. This happens in rare cases
10414 intentionally.
10415
104161998-07-31 Gerd Moellmann <gerd@gnu.org>
10417
10418 * xfaces.c (x_charset_registry): Use STRING_BYTES.
10419 (syms_of_xfaces): Add Vface_default_registry.
10420 (x_charset_registry): Use it.
10421
10422 * xdisp.c (run_window_scroll_functions): Run window scroll functions.
10423 (redisplay_window): Use it.
10424
10425 * dispnew.c (update_text_area): Handle lbearing of deleted text
10426 by backing up one character.
10427
104281998-07-30 Gerd Moellmann <gerd@gnu.org>
10429
427ec082 10430 * dispnew.c (adjust_glyph_matrix): Use a different check to
26901792
DL
10431 decide to do nothing.
10432
10433 * xfaces.c (face_at_string_position): Additional parameter
10434 mode_line_p. If non-zero, merge with the mode line face
10435 instead of the default face.
10436 * dispextern.h (struct it): Add mode_line_p.
10437 * xdisp.c (init_iterator): Set it.
10438 (compute_face_in_string): Use it.
10439 (face_before_or_after_it_pos): Handle strings.
10440 (get_next_display_element): Don't look for relief end in C strings.
10441 (next_element_from_string): Deliver string position instead of
10442 buffer position.
10443
10444 * xterm.c (x_flush): Flush X output buffer.
10445 (XTflash): Use it.
10446
10447 * xfaces.c (lface_from_face_name): Renamed from lface_from_symbol.
10448 Allow strings as face names.
10449
10450 * xfns.c (forall_images_in_image_cache): Check that frame is
10451 alive.
10452
10453 * widget.c (EmacsFrameDestroy): Remove call to free_frame_faces;
10454 it's also called from x_destroy_window. Since this function is
10455 called from X, freeing stuff allocated with xmalloc is dangerous
10456 here, anyway.
10457
10458 * xfaces.c (free_realized_faces): Don't clear current matrices
10459 of a frame being destroyed.
10460
427ec082 10461 * frame.c (make_frame): Call set_window_buffer instead of
26901792
DL
10462 Fset_window_buffer.
10463
10464 * window.c (set_window_buffer): Extracted from Fset_window_buffer,
10465 with an additional argument specifying whether or not hooks may
10466 be called.
10467 (Fset_window_buffer): Call it.
10468
10469 * dispnew.c (clear_desired_matrices): Check that frame has
10470 a valid root window before clearing matrices in the window tree.
10471 (clear_current_matrices): Ditto.
10472 (clear_window_matrices): If GLYPH_DEBUG, check that hchild and
10473 vchild are valid windows if not nil.
10474
10475 * xfaces.c (merge_face_vector_with_property): Allow :reverse-video
10476 for :inverse-video.
10477 (Finternal_set_lisp_face_attribute): Ditto.
10478 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
10479 (Finternal_get_lisp_face_attribute): Ditto.
10480 (Finternal_lisp_face_attribute_values): Ditto.
10481 (syms_of_xfaces): Define the symbol `:reverse-video'.
10482
10483 * xdisp.c (get_glyph_property): Renamed from
10484 fill_iterator_from_glyph_property.
10485 (next_element_from_buffer): Handle case that no `glyph' property
10486 was found correctly.
10487 (display_line): Extend face to end of line only if we have faces.
10488
104891998-07-29 Gerd Moellmann <gerd@gnu.org>
10490
10491 * dispnew.c (Fshow_cursor): Renamed from blink_cursor. Take
10492 additional window argument.
10493
10494 * xdisp.c (reseat_at_previous_visible_line_start): Renamed from
10495 set_iterator_to_previous_visible_line_start.
10496 (reseat_at_next_visible_line_start): Likewise.
10497 (compute_stop_pos): Renamed from set_iterator_stop_pos.
10498 (face_before_or_after_it_pos): Renamed from get_face_at_it_pos.
10499 (compute_face_in_buffer): Renamed from
10500 compute_face_at_iterator_position.
10501 (compute_face_in_string): Renamed from
10502 compute_face_at_iterator_string_position.
10503 (get_space_width): Renamed from get_iterator_space_width.
10504 (next_overlay_string): Renamed from
10505 set_iterator_to_next_overlay_string.
10506 (get_overlay_strings): Renamed from
10507 get_overlay_strings_at_iterator_position.
10508 (restore_overlay_strings): Renamed from
10509 setup_overlay_strings_from_glyph_pos.
10510 (restore_dpvec): Renamed from setup_iterator_dpvec_from_glyph_pos.
10511 (init_from_display_pos): Renamed from init_iterator_from_glyph_pos.
10512 (init_to_row_start): Renamed from init_iterator_to_row_start.
10513 (init_to_row_end): Formerly init_iterator_to_next_row_start.
10514
10515 * xterm.c: Merge with 20.2.97.
10516 (x_produce_glyphs): Use x_append_stretch_glyph for tabs.
10517
10518 * dispextern.h (struct glyph): Replace text_pos position with
10519 simple charpos.
10520
10521 * xdisp.c (this_line_start_pos): Use struct text_pos.
10522 (this_line_end_pos): Renamed from .*endpos; use struct text_pos.
10523 (enum move_it_result): Renamed from move_iterator_result.
10524 (string_pos_nchars_ahead): Compute text_pos in a string from a
10525 known text_pos plus a character delta.
10526 (string_pos): Compute text_pos in string from charpos.
10527 (c_string_pos): Likewise for a C string.
10528 (number_of_chars): Return number of characters in a possibly
10529 multi-byte C string.
10530 (check_it): Renamed from check_iterator. Check that charpos and
10531 bytepos are in sync.
10532 (push_it): Renamed from save_iterator_settings.
10533 (pop_it): Renamed from restore_iterator_settings.
10534 (move_it_.*): Renamed from move_iterator_.*.
10535 (charset_at_position): Take charpos/bytepos into account.
10536 (back_to_previous_line_start): Set iterator to previous line start.
10537 (forward_to_next_line_start): Set iterator to next line start.
427ec082 10538 (back_to_previous_visible_line_start): Renamed from
26901792
DL
10539 move_iterator_previous_visible_line_start.
10540 (set_iterator_to_next_visible_line_start): Handle charpos/bytepos.
10541 (get_face_at_it_pos): Renamed from get_face_from_cursor_pos.
10542 Handle charpos/bytepos.
10543 (compute_face_at_iterator_position): Handle charpos/bytepos.
10544 (compute_face_at_iterator_string_position): Likewise.
10545 (get_iterator_space_width): Likewise.
10546 (load_overlay_strings): Likewise.
10547 (get_overlay_strings_at_iterator_position): Likewise.
10548 (reseat_iterator): Take a text_pos position argument.
10549 (setup_iterator_overlay_strings_from_glyph_pos): Handle charpos/
10550 bytepos.
10551 (init_iterator): Take additional bytepos parameter.
10552 (reseat_iterator_to_string): Handle charpos/bytepos.
10553 (start_display): Take a text_pos parameter. Handle charpos/bytepos.
10554 (next_element_from_string): Handle charpos/bytepos.
10555 (next_element_from_c_string): Likewise.
10556 (fill_iterator_from_glyph_property): Likewise.
10557 (next_element_from_buffer): Likewise.
10558 (set_iterator_to_next): Increment charpos and bytepos of an iterator.
10559 (move_iterator_in_display_line_to): Handle charpos/bytepos.
10560 (move_it_to): Likewise.
10561 (move_it_vertically_backward): Likewise.
10562 (move_it_vertically): Likewise.
10563 (move_it_by_lines): Likewise.
10564 (hscroll_window_tree): Likewise.
10565 (redisplay_internal): Likewise.
10566 (set_cursor_from_row): Likewise.
10567 (redisplay_window): Likewise.
10568 (try_window): Take a text_pos parameter. Handle charpos/bytepos.
10569 (try_window_reusing_current_matrix): Handle charpos/bytepos.
10570 (get_first_unchanged_at_end_row): Compute and return delta_bytes.
10571 (try_window_id): Handle charpos/bytepos.
10572 (Ftrace_redisplay_toggle): Return Qnil.
10573 (get_overlay_arrow_glyph_row): Handle charpos/bytepos.
10574 (insert_left_trunc_glyphs): Likewise.
10575
10576 * dispnew.c: `Merge' with 20.2.97 (it's really too different to
10577 do a real merge).
10578 (increment_glyph_matrix_buffer_positions): Add parameter delta_bytes.
10579 (increment_glyph_row_buffer_positions): Ditto.
10580 (copy_glyph_row_contents): Ditto.
10581 (check_matrix_invariants): Add additional checks for charpos/
10582 bytepos consistency.
10583 (direct_output_for_insert): Changed for charpos/bytepos.
427ec082 10584 (buffer_posn_from_coords): Likewise. Put code dealing with
26901792
DL
10585 `direction-reversed' in #if 0.
10586
10587 * xterm.h: Merge with 20.2.97.
427ec082 10588
26901792
DL
10589 * frame.h: Merge with 20.2.97.
10590
10591 * window.h: Merge with 20.2.97. Add window_end_bytepos.
10592
10593 * dispextern.h (MATRIX_ROW_START_CHARPOS): Get charpos of a row
10594 start.
10595 (MATRIX_ROW_START_BYTEPOS): Likewise for the byte position.
10596 (MATRIX_ROW_END_CHARPOS): Likewise for the row end.
10597 (MATRIX_ROW_END_BYTEPOS): Likewise for the row end byte position.
10598 (struct it): Various members renamed from .*pos to .*charpos.
10599 (IT_CHARPOS): Access current buffer character position of an
10600 iterator.
10601 (IT_BYTEPOS): Access current buffer byte position of an iterator.
10602 (IT_STRING_CHARPOS): Access current string character position of
10603 an iterator.
10604 (IT_STRING_BYTEPOS): Access current string byte position of
10605 an iterator.
10606 (globally): Add function prototypes from 20.2.97.
10607
10608 * everywhere: Use P_ instead of PROTO for function prototypes
10609 because everyone else seems to use P_.
10610
10611 * dispextern.h (struct text_pos): Structure describing a charpos/
10612 bytepos position in text.
10613 (BYTEPOS): Access the byte position part of a text_pos.
10614 (CHARPOS): Likewise for the character position.
10615 (SET_TEXT_POS): Set a text_pos from a character and byte position.
10616 (INC_TEXT_POS, DEC_TEXT_POS): Increment/decrement a text position.
10617 (SET_TEXT_POS_FROM_MARKER): Set a text_pos from a marker.
10618 (SET_MARKER_FROM_TEXT_POS): Set a marker from a text_pos.
10619 (TEXT_POS_EQUAL_P): Compare two text_pos structures for equality.
10620 (struct display_pos): Renamed from glyph_pos. Use struct text_pos
10621 for buffer and string positions.
10622 (struct glyph): Use text_pos.
10623 (struct it): Renamed from display_iterator. Use text_pos.
10624
106251998-07-23 Gerd Moellmann <gerd@gnu.org>
10626
10627 * xfns.c (x_kill_gs_process): Get image colors from XImage of a
10628 pixmap.
10629
106301998-07-21 Gerd Moellmann <gerd@gnu.org>
10631
10632 * dispextern.h (struct glyph_row): New flag indicate_zv_line_p.
10633 * xterm.c (x_draw_row_bitmaps): Use it.
10634 * dispnew.c (row_equal_p): Ditto.
10635 (update_window_line): Ditto.
10636
10637 * xfns.c (prepare_image_for_display): Don't set loading_failed_p
10638 flag of images.
10639
10640 * dispextern.h (struct image): Removed member loading_failed_p.
10641 It's probably better to have the chance to try to load an image
10642 again.
10643
106441998-07-20 Gerd Moellmann <gerd@gnu.org>
10645
10646 * xterm.c (x_draw_bitmap): Draw bitmap for empty lines ending
10647 at ZV if `indicate-zv-lines' is non-nil.
10648 (x_draw_row_bitmaps): Compute bitmap for `indicate-zv-lines'.
10649
10650 * dispnew.c (row_equal_p): Compare displays_text_p and
10651 ends_at_zv_p flags of rows.
10652 (update_window_line): Ditto.
10653
10654 * buffer.h (struct buffer): New member indicate_zv_lines.
10655
10656 * buffer.c (init_buffer_once): Add default for `indicate-zv-lines'.
10657 (init_buffer_once): New variable `default-indicate-zv-lines'.
10658 (syms_of_buffer): New buffer-local varianle `indicate-zv-lines'.
10659
10660 * xdisp.c (redisplay_window): Don't try moving the cursor
10661 if current glyph row w->last_cursor.vpos isn't enabled.
10662
10663 * xterm.c (bitmap_type): Add ZV_LINE_BITMAP.
10664
10665 * window.c (Fset_window_vscroll): Allow only negative scroll
10666 values. Others don't seem to make sense, and this way it's easy
10667 to restore a vscroll of zero.
10668
10669 * xterm.c (x_inverted_image_mask): Check that pixmap could be
10670 allocated.
10671 (x_draw_image_glyph_string_background): Don't clip if pixmap
10672 could not be created.
10673
10674 * xfns.c (xbm_load_image_from_file): Check that pixmap could
10675 be created.
10676 (xbm_load): Ditto.
10677 (gs_load): Ditto.
10678
10679 * xterm.c (x_get_glyph_overhangs): Take image and stretch
10680 glyphs into account.
10681
10682 * xfaces.c (realize_default_face): Don't set font family of
10683 the default face from the fontset alias name for `fontset-startup'.
10684
10685 * xfns.c (gs_load): Pass frame's pixel foreground and background
10686 color to the Lisp loader.
10687
106881998-07-19 Gerd Moellmann <gerd@gnu.org>
10689
10690 * xfns.c (tiff_image_p, tiff_load): Support TIFF images via
10691 libtiff34.
10692
10693 * configure.in (--with-tiff, HAVE_TIFF): Added.
10694
10695 * config.in (HAVE_TIFF): Added.
10696
10697 * Makefile.in (LIBTIFF): Added.
10698
10699 * xfns.c (jpeg_image_p, jpeg_load): Support JPEG images.
10700
10701 * Makefile.in (LIBJPEG): Added.
10702
10703 * xfns.c (resource_types): Enumerators renamed to RES_TYPE_NUMBER,
10704 RES_TYPE_BOOLEAN etc. because of conflict of `boolean' with
10705 jpeglib.h.
10706
427ec082 10707 * configure.in (HAVE_JPEG, --with-jpeg): Added. On systems
26901792
DL
10708 where the library is installed in /usr/local/lib, e.g. FreeBSD,
10709 configure must be run with `--x-includes=/usr/X11R6/include:
10710 /usr/local/include --x-libraries=/usr/X11R6/lib:/usr/local/lib'.
10711
107121998-07-18 Gerd Moellmann <gerd@gnu.org>
10713
10714 * config.in (HAVE_JPEG): Added.
10715
10716 * xfns.c (ct_init): Initialize color table used to map RGB colors
10717 from images to X pixel colors.
10718 (ct_free): Free color table.
10719 (ct_lookup): Look an RGB color up.
10720 (ct_allocated_colors): Get vector of allocated colors.
427ec082 10721 (pbm_image_p): Test if image specification is a valid PPM
26901792
DL
10722 image specification.
10723 (pbm_scan_number): Scan a decimal ASCII number from a file.
10724 (pbm_load): Load a PPM image.
10725
10726 * window.c (Fset_window_vscroll): Adjust glyph matrix if
10727 necessary. Take canonical character units as parameter.
10728 (Fwindow_vscroll): Return canonical character units.
10729
10730 * dispnew.c (allocate_matrices_for_window_redisplay): Add negative
10731 w->dy to display height for which glyph rows must be allocated.
10732
107331998-07-17 Gerd Moellmann <gerd@gnu.org>
10734
10735 * xfaces.c (face_at_string_position): Merge in region face
10736 so that it won't overwrite the font in the region.
10737 (face_at_buffer_position): Ditto.
10738 (realize_basic_faces): Don't realize region face.
10739
10740 * dispextern.h (enum face_id): REGION_FACE_ID removed.
10741
10742 * xterm.c (x_set_glyph_string_background_width): Don't let
10743 cursor face extend to end of line.
10744
10745 * xdisp.c (append_space): If adding space of default face,
10746 make sure glyph ist produced with right face.
10747
10748 * xterm.c (x_clear_glyph_string_rect): Draw a rectangle in the
10749 background color of a glyph string.
10750 (x_draw_glyph_string_background): Call it.
10751 (x_draw_glyph_string_bg_rect): Ditto.
10752 (x_draw_stretch_glyph_string): Ditto.
10753
107541998-07-15 Gerd Moellmann <gerd@gnu.org>
10755
10756 * xdisp.c (init_iterator): Initialize it->current_y to the
10757 window's vscroll w->dy.
10758
10759 * window.c (Fwindow_vscroll): Return number of pixels window
10760 is vscrolled smoothly.
10761 (Fset_window_vscroll): Set the number.
10762
10763 * xdisp.c (move_iterator_to): Recognize case MOVE_TO_POS and
10764 to_pos in truncated part of a line.
10765
107661998-07-14 Gerd Moellmann <gerd@gnu.org>
10767
10768 * xdisp.c (move_iterator_in_display_line_to): If very first glyph
10769 doesn't fit on the line, truncate it, despite truncate_lines nil.
10770 (display_line): Ditto.
10771
10772 * xfns.c: Experimental support for Ghostscript images.
10773
10774 * xterm.c (x_term_init): Initialize new atoms DONE and PAGE.
10775 (XTread_socket): React on events from Ghostscript.
10776 (expose_frame): If width or height are zero, redraw entire frame.
10777 (XTread_socket): Call expose_frame after receiving event from
10778 Ghostscript.
10779
10780 * xterm.h (struct x_display_info): Add atoms DONE and PAGE
10781 for Ghostscript support.
10782
10783 * xdisp.c (redisplay_internal): Return quickly if called
10784 recursively.
10785
10786 * alloc.c (NSTATICS): Increased to 1024.
10787
107881998-07-08 Gerd Moellmann <gerd@gnu.org>
10789
10790 * xterm.c (x_append_stretch_glyph): Append a stretch glyph to an
10791 iterator's glyph row.
10792 (x_produce_stretch_glyph): Call it.
10793 (x_produce_glyphs): Handle `space-width' property; call
10794 x_append_stretch_glyph.
10795
10796 * xdisp.c (syms_of_xdisp): Add symbol `space-width' used as a text
10797 property.
10798 (get_iterator_space_width): Determine value of `space-width'
10799 property at iterator's position.
10800 (reseat_iterator): Call it.
10801 (next_element_from_string): Ditto.
10802 (next_element_from_buffer): Ditto.
10803 (init_iterator): Initialize space_width of iterator.
10804 (redisplay_internal): Don't goto end_of_redisplay if PT hasn't
10805 moved, but cursor blinks.
10806 (redisplay_internal): Set w->last_cursor_off_p after update.
10807
10808 * dispextern.h (enum iterator_prop_idx): Add SPACE_WIDTH_PROP_IDX.
10809 (struct display_iterator): Add new member space_width.
10810
10811 * window.h (struct window): Add last_cursor_off_p.
10812
108131998-07-07 Gerd Moellmann <gerd@gnu.org>
10814
10815 * Saved.
10816
10817 * window.c (Fpos_visible_in_window_p): Case window not up to
10818 date---return nil if iterator hasn't reached position.
10819
108201998-07-06 Gerd Moellmann <gerd@gnu.org>
10821
10822 * xdisp.c (text_outside_line_unchanged_p): Fix case that
10823 overlays have changed.
10824 (redisplay_window): Case cursor movement. Don't try it if
10825 last_cursor.vpos is out of range.
10826
10827 * xdisp.c (set_cursor_from_row): Set this_line_.* variables. This
10828 way, the display optimization for the line containing the cursor
10829 is used more frequently, esp. when we have a blinking cursor.
10830 (display_line): Don't set this_line_.* variables.
10831
10832 * xterm.c (x_redraw_cursor): Removed.
10833 (x_display_and_set_cursor): Set cursor type depending on
10834 cursor_off_p flag of window.
10835
10836 * dispnew.c (redraw_cursor_hook): Removed.
10837 (Fblink_cursor): Additional parameter on_p to set the cursor_off_p
10838 member of the selected window.
10839
10840 * xfaces.c (Fface_font): Added for compatibility with 20.2.
10841
10842 * xterm.c (x_y_to_hpos_vpos): Return null if not over text.
10843 Return glyph area under x/y.
10844 (note_mouse_highlight): Use x_y_to_hpos_vpos in its new form.
10845
10846 * keyboard.c (detect_input_pending_run_timers): Call gobble_input
10847 after redisplaying.
10848
108491998-07-05 Gerd Moellmann <gerd@gnu.org>
10850
10851 * xdisp.c (text_outside_line_unchanged_p): Test if changes
10852 are all outside of a line of text.
10853 (redisplay_internal): Use it.
10854
108551998-06-30 Gerd Moellmann <gerd@gnu.org>
10856
10857 * xdisp.c (next_element_from_buffer): After skipping over
10858 invisible text, look for the `glyph' property.
10859 (set_iterator_stop_pos): Ignore check positions in front
10860 of an iterator's current position.
10861
10862 * xterm.c (show_mouse_face): Don't act on rows that don't exist
10863 anymore or which are marked as not having valid contents.
10864
10865 * xfaces.c (Finternal_set_lisp_face_attribute): Don't free
10866 realized faces if new attribute value is equal to old value.
10867
108681998-06-29 Gerd Moellmann <gerd@gnu.org>
10869
10870 * xfaces.c (Finternal_make_lisp_face): Increment
10871 lface_id_to_name_size when lface_id_to_name is reallocated.
10872
108731998-06-27 Gerd Moellmann <gerd@gnu.org>
10874
10875 * xdisp.c (set_iterator_stop_pos): Compute initial stop_pos
10876 as minimum of endpos and overlay_pos.
10877 (load_overlay_strings): Set next_overlay_pos of iterator to
10878 -1 if we don't have to check for more overlay strings.
10879
108801998-05-09 Gerd Moellmann <gerd@gnu.org>
10881
10882 * xdisp.c (set_iterator_to_next_visible_line_start): Don't
10883 do anything if iterator is at ZV because scan_buffer doesn't
10884 work otherwise.
10885
10886 * xterm.c (x_encode_char): Inline it.
10887 (x_get_char_font_and_encoding): Simplified.
10888 (x_per_char_metric): Inline it.
10889
10890 * xterm.c (x_draw_glyph_string_relief): Use clipping.
10891
10892 * xdisp.c (get_next_display_element): Check for end of relief
10893 face moved here from next_element_from_buffer.
10894
10895 * xterm.c (x_produce_image_glyph): Add relief thickness.
10896 (x_produce_stretch_glyph): Ditto.
10897
108981998-05-08 Gerd Moellmann <gerd@gnu.org>
10899
10900 * xdisp.c (fill_iterator_from_glyph_property): Handle glyph
10901 property value (space :width WIDTH :height HEIGHT :ascent ASCENT).
10902
10903 * xterm.c (x_produce_stretch_glyph): Produce a stretch glyph
10904 from a glyph property.
10905 (x_produce_glyphs): Use it.
10906
10907 * xdisp.c (set_iterator_to_next): Handle next_element_from_stretch.
10908
427ec082 10909 * xterm.c (x_produce_image_glyph): Add to current_x only if
26901792
DL
10910 in text area.
10911 (x_produce_glyphs): Ditto.
10912
427ec082 10913 * xdisp.c (display_line): Compute row height from glyphs in
26901792
DL
10914 marginal areas.
10915
427ec082 10916 * xterm.c (x_draw_image_glyph_string_background): Draw
26901792 10917 background of an image glyph string.
427ec082 10918 (x_draw_glyph_string_bg_rect): Draw a rectangular region of
26901792
DL
10919 the background of a glyph string.
10920 (x_draw_image_glyph_string_foreground): Draw the foreground of
10921 an image glyph string.
10922 (x_inverted_image_mask): Return the inverted mask of an image.
10923
10924 * xfns.c (x_draw_image): Removed.
10925
10926 * dispextern.h (struct image_type): Remove drawing function.
10927
10928 * xfaces.c (load_face_colors): Swap colors if face is inverse.
10929
10930 * xdisp.c (get_next_display_element): In marginal areas, translate
10931 newlines, tabs, etc. like normal control characters.
10932
10933 * xfaces.c (Fface_color_supported_p): Transpose parameters frame
10934 and color.
10935 (free_realized_faces): Set frame garbaged.
10936
10937 * xfaces.c (syms_of_xfaces): Add defsubr for
10938 internal-lisp-face-attribute-values.
10939
109401998-05-07 Gerd Moellmann <gerd@gnu.org>
10941
10942 * xterm.c (x_produce_image_glyph): Don't add glyph if area is
10943 full.
10944 (x_produce_image_glyph): Set IT->nglyphs to 1.
10945 (x_draw_image_glyph_string): Use inverted mask to draw background.
10946
10947 * dispextern.h (struct image_type): Additional clipping rect
10948 parameters for drawing functions.
10949
427ec082 10950 * xterm.c (x_get_glyph_string_clip_rect): Get clip rect for
26901792
DL
10951 a glyph string.
10952 (x_draw_image_glyph_string): Use it and pass the rect to the
10953 image drawing function.
10954
10955 * xdisp.c (fill_iterator_from_glyph_property): Use position of
10956 first character with `glyph' property as image position. Set
10957 iterator back to that position as long as the image hasn't been
10958 consumed with set_iterator_to_next.
10959 (set_cursor_from_row): Accept when glyph with given position is
10960 not found in the row. Set cursor x to end of line in that case,
10961 so that we can hscroll.
10962 (redisplay_internal): Correct computation of delta by which
10963 positions have changed in redisplay optimization for cursor
10964 row of selected window.
10965
10966 * xdisp.c (display_line): Remove start_pos.
427ec082 10967 (display_line): Fix bug preventing display optimization for
26901792
DL
10968 cursor line of selected window.
10969 (next_element_from_buffer): Avoid XSETBUFFER, use it->w->buffer
10970 instead.
10971
10972 * dispnew.c (update_text_area): Use GLYPH_EQUAL_P.
10973 (update_text_area): Take glyph pixel width into account
10974 when trying to find a resync point.
10975 (row_equal_p): Compare glyphs in all areas.
10976
109771998-05-06 Gerd Moellmann <gerd@gnu.org>
10978
10979 * xterm.c (x_produce_glyphs): Don't add glyph if area is full.
10980
10981 * dispextern.h (struct glyph_row): Use unsigned hash value.
10982
10983 * xdisp.c (display_line): Simplified and made faster by setting
10984 the cursor with set_cursor_from_row.
10985 (set_cursor_from_row): Handle rows of desired matrix.
10986
109871998-05-05 Gerd Moellmann <gerd@gnu.org>
10988
10989 * xdisp.c (set_cursor_from_row): Don't put cursor on glyphs
10990 with type != CHAR_GLYPH.
10991 (fill_iterator_from_glyph_property): Return void. Set
10992 method to next_element_from_image.
10993 (next_element_from_image): Dummy function for delivering a
10994 single image id.
10995 (set_iterator_to_next): Add method next_element_from_image.
10996 (redisplay_window): When recentering, and cursor vpos is -1
10997 after display, assume middle of window is in first line displayed
10998 in window, and display again.
427ec082 10999 (fill_iterator_from_glyph_property): Assign image glyph
26901792
DL
11000 the position of the first character having the glyph property.
11001
11002 * dispextern.h (IMAGE_ASCENT): Compute ascent of image.
11003 * xfns.c (x_draw_image): Use it.
11004 * xterm.c (x_produce_image_glyph): Use it.
11005
11006 * xterm.c (x_produce_image_glyph): Set iterator's pixel_width.
11007
11008 * Makefile.in: Extraneous #define of LIBXPM removed.
11009
11010 * xterm.c (x_produce_glyphs): Produce a STRETCH_GLYPH for tabs.
427ec082 11011 (x_fill_stretch_glyph_string): Fill a glyph string from a
26901792
DL
11012 stretch glyph.
11013 (x_compute_glyph_string_overhangs): Compute overhangs only
11014 for text glyph strings.
11015 (x_draw_stretch_glyph_string): Draw a stretch glyph string.
11016 (x_draw_glyph_string): Call it.
11017
11018 * dispextern.h (glyph_type): Add STRETCH_GLYPH.
11019 (struct glyph): Add sub-structure for stretchable glyphs.
11020 (GLYPH_EQUAL_P): Compare glyph type and u.val.
11021
11022 * xdisp.c (get_overlay_arrow_glyph_row): Put face code into
11023 #ifdef HAVE_FACES.
11024
11025 * xterm.c (x_produce_glyphs): Use ASCII face for spaces of a TAB.
11026
11027 * xdisp.c (fill_iterator_from_glyph_property): Renamed from
11028 setup_iterator_from_glyph_property. Don't do it for terminal
11029 frames.
11030
11031 * xterm.c (x_produce_image_glyph): Produce glyph for image
11032 that can't be loaded.
11033
11034 * xfns.c (lookup_image): If image can't be loaded, set its
11035 width and height so that we can draw a rectangle.
11036 (x_draw_image): Draw a rectangle for images that don't have
11037 a pixmap.
11038 (make_image): Set hash value.
11039 (image_spec_equal_p): Use image_spec_value.
11040
11041 * xterm.c (expose_frame): Don't try to redraw if basic faces
11042 haven't benn realized yet.
427ec082 11043 (x_draw_image_glyph_string): Fill background only if image
26901792
DL
11044 is not as tall as row.
11045
110461998-05-04 Gerd Moellmann <gerd@gnu.org>
11047
11048 * Makefile.in (LIBXPM): If not already defined, define to -lXpm.
11049 (LIBX)[HAVE_X11]: Add LIBXPM.
11050
11051 * xfns.c (xpm_image_p): Implementation of image type functions
11052 for XPM.
11053 (xpm_load): Ditto.
11054
11055 * dispextern.h (struct image): Add mask pixmap for XPM.
11056
11057 * xfns.c (x_draw_image): Handle images with masks.
11058
11059 * configure.in: --with-xpm added. Code detecting -lXpm added.
11060
11061 * config.in: Add HAVE_XPM.
11062
11063 * xfns.c (xbm_draw): Removed.
11064 (x_draw_image): Default implementation for drawing images.
11065 (xbm_keyword_index): Remove XBM_DEPTH.
11066 (xbm_format): Remove `:depth'.
11067 (xbm_image_spec_from_file): Removed to reduce consing.
427ec082 11068 (xbm_load_image_from_file): Added for the same reason.
26901792 11069
427ec082 11070 * xterm.c (x_fill_image_glyph_string): Don't set ybase of
26901792
DL
11071 glyph string.
11072 (x_draw_image_glyph_string): Pass ybase to image draw function.
11073
11074 * xfns.c (make_image): Set default baseline.
11075
11076 * xterm.c (x_produce_image_glyph): Compute ascent of image
11077 from its height and baseline percentage.
11078
11079 * xfns.c (xbm_keyword_index): Add XBM_BASELINE.
11080 (xbm_format): Add description for `:baseline'.
11081 (xbm_image_spec_from_file): Add keywords from original spec to
11082 result.
11083 (xbm_load): Set baseline of image.
11084 (xbm_image_p): Check range for baseline.
11085
11086 * dispextern.h (struct image): Add member baseline.
11087
11088 * xdisp.c (dump_glyph_matrix): Handle image glyphs.
11089
11090 * term.c (produce_glyphs): Change assertion to allow DISP_IMAGE.
11091
11092 * xdisp.c (get_next_display_element): Do character translations
11093 only if delivering characters.
11094
110951998-05-03 Gerd Moellmann <gerd@gnu.org>
11096
427ec082 11097 * dispextern.h (ITERATOR_AT_END_OF_LINE_P): Test for
26901792
DL
11098 DISP_CHARACTER.
11099
11100 * xterm.c (x_produce_image_glyph): Poduce image glyphs.
11101 (x_produce_glyphs): Call x_produce_glyphs for DISP_IMAGE.
11102
111031998-05-02 Gerd Moellmann <gerd@gnu.org>
11104
11105 * xfns.c (prepare_image_for_display): Set image timestamp.
11106 (clear_image_cache): Clear images if image's timestamp +
11107 Vimage_eviction_seconds is > now.
11108 (syms_of_xfns): New variables image-eviction-seconds, and
11109 image-types.
11110 (add_image_format): Add to image-types.
11111 (xbm_load): Support new image spec format.
11112 (x_alloc_image_color): Allocate a color for an image.
11113
11114 * dispextern.h (struct image): Add timestamp.
11115
11116 * xfns.c (xbm_image_p): Allow bool-vectors, vectors of strings and
11117 vectors of bool-vectors.
11118 (xbm_lisp_object_from_file): Build new format image spec.
11119
111201998-05-01 Gerd Moellmann <gerd@gnu.org>
11121
11122 * xfaces.c (init_frame_faces): Initialize image cache.
11123 (free_frame_faces): Free it.
11124
11125 * xterm.c (x_delete_display): Don't free image cache.
11126
11127 * emacs.c (main): Call init_xfns.
11128
111291998-04-30 Gerd Moellmann <gerd@gnu.org>
11130
11131 * alloc.c (mark_object): Mark objects in image cache.
11132
427ec082 11133 * xfns.c (x_set_internal_border_width): Correct call to
26901792
DL
11134 widget_store_internal_border_width.
11135
11136 * widget.c (widget_store_internal_border): Return void.
11137
11138 * xfns.c (x_destroy_bitmap): Use xfree instead of free. Return
11139 void.
11140 (init_x_parm_symbols): Return void.
11141 (x_report_frame_params): Ditto.
11142 (x_set_border_pixel): Ditto.
11143 (syms_of_xfns): Ditto.
11144 (x_destroy_all_bitmaps): Use xfree instead of free.
11145
11146 * xterm.h (FRAME_X_IMAGE_CACHE): Access the image cache of a frame.
11147
11148 * xterm.c (x_term_init): Initialize image_cache of display info.
11149 (x_delete_display): Free image cache.
11150
11151 * xterm.h (struct x_display_info): Add image_cache.
11152
11153 * xfns.c (make_image_cache): Allocate a new image cache.
11154 (free_image_cache): Free an image cache.
11155 (make_image): Allocate an image.
11156 (free_image): Free an image.
11157
11158 * dispextern.h (struct image): Structure describing an image.
11159 (struct image_cache): Structure describing an image cache.
11160
111611998-04-29 Gerd Moellmann <gerd@gnu.org>
11162
11163 * xdisp.c (check_iterator_glyph_property): Return int. Value is
11164 non-zero if iterator is filled with something to return.
11165 (next_element_from_buffer): Immediately return if
11166 setup_iterator_from_glyph_prop has filled iterator with pixmap.
11167 (next_element_from_string): Likewise.
11168
11169 * xfaces.c (load_pixmap): Allow to pass null for W_PTR and H_PTR.
11170
11171 * dispextern.h (struct glyph): Add pixmap_id.
11172 (display_element_type): Add DISP_PIXMAP.
11173
11174 * xmenu.c (popup_get_selection): Use xmalloc/xfree instead of
11175 malloc/free.
11176
11177 * xfaces.c (clear_font_table): Free fonts not used by fontsets.
11178 (clear_face_cache): Call it.
11179
11180 * xterm.c (x_query_font): Don't look at empty font table slots.
11181 (x_compute_min_glyph_bounds): Likewise.
11182 (x_term_init): Initialize font_table to null.
11183 (x_load_font): Change allocation of font_info structures so
11184 that it is possible to free fonts.
11185
427ec082 11186 * xfns.c (Fx_close_connection): Use xfree instead of free.
26901792
DL
11187 Only free fonts from filled font table entries.
11188
11189 * xfaces.c (best_matching_font): Support use of scalable fonts.
11190 (Fface_scalable_fonts_mode): Toggle use of scalable fonts.
11191
11192 * xterm.h (struct x_display_info): Remove screen_dpi, add resx
11193 and resy.
11194 * xterm.c (x_term_init): Compute resx and resy.
11195
11196 * xfaces.c (split_font_name): Don't reject scalable fonts.
11197
427ec082 11198 * xterm.c (x_list_fonts): Set code exclusing scalable fonts
26901792
DL
11199 in #if 0.
11200
11201 * xfaces.c (xlfd_point_size): Return 0 for fonts whose real
11202 point size cannot be determined.
11203
11204 * xterm.h (FRAME_SMALLEST_CHAR_WIDTH): Return smallest character
11205 width over all fonts on a frame.
11206 (FRAME_SMALLEST_FONT_HEIGHT): Likewise for font height.
11207 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Use these
11208 macros.
11209
11210 * xterm.c (x_font_min_bounds): Moved here from xfaces.c.
11211 (x_compute_min_char_bounds): Formerly min_char_bounds in xfaces.c.
11212 (x_load_font): Use x_compute_min_char_bounds.
11213
11214 * xterm.h (struct x_display_info): New members smallest_char_width
11215 and smallest_font_height.
11216
112171998-04-28 Gerd Moellmann <gerd@gnu.org>
11218
11219 * dispextern.h (PREPARE_FACE_FOR_DISPLAY): Call function with
11220 the same name if GC of face is zero.
11221
11222 * dispextern.h (struct face): Member non_ascii_gc removed.
11223
11224 * xterm.c (x_get_char_font_and_encoding): Return face's font
427ec082 11225 for characters < 0177 in default face. Prepare face for
26901792
DL
11226 display before returning it.
11227 (x_produce_glyphs): Use it->charset.
11228 (x_get_char_font_and_encoding): Simplified.
11229 (x_encode_char): Remove parameter `font'.
11230
11231 * xfaces.c (choose_face_font): If registry from charset symbol
11232 doesn't contain a `-', make it a pattern by appending "*-*".
11233
11234 * xdisp.c (check_iterator_glyph_property): Adjust limit for
11235 glyph_check_pos computation to character boundary.
11236
112371998-04-27 Gerd Moellmann <gerd@gnu.org>
11238
11239 * fontset.h (FONT_INFO_FROM_ID): Return null if ID is invalid.
11240
11241 * xfaces.c (ascii_face_of_lisp_face): Get the id of the realized
11242 ASCII face for a given Lisp face id.
11243
11244 * xdisp.c (set_iterator_stop_pos): Take glyph_check_pos into
11245 account.
427ec082 11246 (reseat_iterator): Set glyph_check_pos. Handle case where
26901792
DL
11247 new position is < original position.
11248 (check_iterator_glyph_property): Handle glyph property in strings.
11249 (next_element_from_string): Call above function.
11250 (next_element_from_display_vector): Handle faces in glyphs.
11251 (get_next_display_element): Set face_id of glyphs for
11252 control chars to zero.
11253
11254 * Makefile.in (term.o): Add dependency on dispextern.h.
11255
11256 * xdisp.c (syms_of_xdisp): Add symbol `glyph'.
11257 (display_line): Handle marginal areas.
11258 (move_iterator_in_display_line_to): Likewise.
11259
11260 * xfaces.c (Finternal_make_lisp_face): Assign Lisp faces an id.
11261
11262 * xfaces.c (face_at_buffer_position): Don't merge with nil
11263 text property.
11264 (face_at_string_position): Ditto.
11265
11266 * dispextern.h (struct display_iterator): Use a stack of saved
11267 values instead of saving check positions etc. individually.
11268
11269 * xdisp.c (set_iterator_to_next): If end of Lisp string reached,
11270 maybe pop the iterator's stack.
11271 (save_iterator_settings): Push a value on iterator's stack.
11272 (get_overlay_strings_at_iterator_position): Use it.
11273 (restore_iterator_settings): Pop the stack.
11274 (set_iterator_to_next_overlay_string): Use it.
11275
11276 * xfaces.c (try_font_list): Use alternative font families.
11277
112781998-04-26 Gerd Moellmann <gerd@gnu.org>
11279
11280 * xfaces.c (Fset_face_font_sort_order): Set the order in which
11281 font selection matches fonts.
11282 (Fface_font_sort_order): Return the font sort order.
11283 (best_matching_font): Find best matching font based on sort order.
11284 (cmp_font_names): Sort by given sort order.
11285
11286 * dispextern.h (struct display_iterator): New member faces_p.
11287 * xdisp.c (init_iterator): Initialize it->faces_p.
11288 (compute_face_at_iterator_string_position): Use it.
11289 (compute_face_at_iterator_position): Use it.
11290 (init_iterator): Use it.
11291 (display_mode_line): Ditto.
11292
11293 * xdisp.c (get_next_display_element): Put code choosing a face
11294 when the charset changes in #ifdef HAVE_FACES.
11295
427ec082 11296 * dispextern.h (FACE_FOR_CHARSET): Replacement for function
26901792
DL
11297 lookup_face_for_charset.
11298
11299 * xfaces.c (free_font_names): Renamed from free_split_font_names.
11300 (free_all_realized_faces): Renamed from remove_all_realized_faces.
11301
113021998-04-25 Gerd Moellmann <gerd@gnu.org>
11303
11304 * xfaces.c (best_matching_font): Return the name of the best
11305 matching font in an array of font_name structures.
11306 (choose_face_font): Use it.
11307 (choose_face_fontset_font): Use it.
11308 (find_best_weight_font): If final font found has same weight as
11309 the font we started with, return the original font because it is a
11310 better match for the resolution of the display.
11311 (find_best_slant_font): Likewise.
11312 (merge_face_vector_with_property): Check more invalid attribute
11313 values.
11314 (lface_suitable_for_charset_p): Replaced by a macro with the same
11315 name in upper-case.
11316
113171998-04-24 Gerd Moellmann <gerd@gnu.org>
11318
11319 * dispextern.h (struct face): Member
11320 fontset_chosen_for_realization_p removed.
11321
11322 * xfaces.c (cache_face): If face->fontset >= 0, add face to the
11323 end of the collision list, so that we find more specific faces
11324 first.
11325 (lookup_face_for_charset): Look up a new face if face->fontset >=
11326 0, and charset != CHARSET_COMPOSITION.
11327
11328 * xfaces.c (split_font_name): Return zero if point size of font
11329 couldn't be computed.
11330 (realize_default_face): Use ASCII font of a fontset to determine
11331 font-related attributes of the default face.
11332 (face_fontset): Return fontset id for face family.
11333 (font_list): Additional parameter font_pattern. If non-nil,
11334 return fonts matching that pattern.
11335
113361998-04-23 Gerd Moellmann <gerd@gnu.org>
11337
11338 * xfaces.c (choose_face_fontset): If new fontset cannot be
11339 constructed, or fontset name cannot be split, return the id of the
11340 standard fontset.
11341
11342 * xterm.c (XTframe_up_to_date): Check that frame is an X frame.
11343 When Emacs starts, it may be called for the initial frame which
11344 isn't an X frame.
11345
11346 * dispextern.h (struct face): New members foreground_defaulted_p,
11347 background_defaulted_p.
11348 (struct face): Members `mask' and `cache' removed.
11349
11350 * xfaces.c (load_color): Set them.
11351 (free_face_colors): Check them.
427ec082 11352 (xlfd_point_size): Return -1 if resolution or point size of
26901792
DL
11353 font unknown.
11354
11355 * xfaces.c (free_font): Removed.
11356 (load_face_font_or_fontset): Renamed from load_font.
11357 (load_face_font_or_fontset): Use message2 instead of signalling.
11358 (load_color): Likewise.
11359 (load_pixmap): Likewise.
11360
11361 * xterm.h (struct x_display_info): Add screen_dpi.
11362 * xterm.c (x_term_init): Initialize it.
11363 * xfaces.c (xlfd_point_size): Use it.
11364 (split_font_name): Compute numeric XLFD_RESY.
427ec082 11365 (cmp_font_names): Make fonts with an y-resolution more
26901792
DL
11366 similar to that of the frame appear first in the result.
11367
11368 * xfaces.c (cache_face): If fontset_chosen_for_realization_p
11369 is set for the face to cache, add it to the end of the collision
11370 list.
11371 (try_font_list): If fonts for given family and registry cannot
11372 be found, first try to keep the registry, and choose a different
11373 family.
11374 (choose_face_font): Allow nfonts == 0.
11375 (try_font_list): Give up if no font matches given registry.
11376
113771998-04-22 Gerd Moellmann <gerd@gnu.org>
11378
11379 * xterm.c (x_get_char_font_and_encoding): Get font_info from
11380 font info id of the face.
11381
11382 * xfaces.c (load_font): Set font_info_id.
11383 (realize_face): Ditto.
11384
11385 * dispextern.h (struct face): Change member font_info to
11386 font_info_id.
11387
11388 * fontset.h (FONT_INFO_ID): Build an ID from a font_info pointer.
11389 (FONT_INFO_FROM_ID): Get a font_info pointer from an ID.
11390
11391 * xdisp.c (extend_face_to_end_of_line): If IT's current charset
11392 isn't ASCII, get the ASCII face before adding a space.
11393 (append_space): Likewise.
11394 (insert_left_trunc_glyphs): Initialize truncate_it's charset
11395 to -1 so that it will compute the right face for the truncation
11396 glyphs.
11397
11398 * xfaces.c (realize_face): Set
11399 face->fontset_chosen_for_realization_p.
11400 (lookup_face_for_charset): If fontset wasn't specified originally
11401 and new charset != CHARSET_COMPOSITION, get a new face for that
11402 charset.
11403
11404 * dispextern.h (struct face): New member
11405 fontset_chosen_for_realization_p_specified_p. Set to 1 when
11406 realize_face has chosen a fontset to display composite characters
11407 for a Lisp face not specifying a fontset.
11408
11409 * xdisp.c (extend_face_to_end_of_line): Move tests for default
11410 face and line already filled here. Don't do anything if current
11411 face hasn't a relief or has a background equal to the frame
11412 background.
11413
11414 * xfaces.c (split_font_name): Additional parameter numeric_p.
11415 Don't compute numeric values if it is non-zero.
11416 (choose_face_fontset): Call split_font_name with numeric_p == 0.
427ec082 11417 (choose_face_fontset): Print a message if fontset contains a
26901792
DL
11418 font whose name cannot be split into fields.
11419
114201998-04-21 Gerd Moellmann <gerd@gnu.org>
11421
427ec082 11422 * xfaces.c (try_font_list): Try to load a list of fonts,
26901792
DL
11423 possibly using less restrictive patterns.
11424 (choose_face_font): Use it.
11425
11426 * xterm.c (x_get_char_font_and_encoding): For charset !=
11427 CHARSET_ASCII use font_info of face if face hasn't a fontset set.
11428
11429 * dispextern.h (struct face): New member font_info.
11430
11431 * xfaces.c (load_font): Use FS_LOAD_FONT to load fonts for faces
11432 specifying a fontset as well as those not having a fontset.
11433 (free_font): Make it empty.
11434 (realize_face): Use changed load_font.
11435
11436 * xterm.c (x_get_char_font_and_encoding): If face doesn't
11437 fit for charset, get the right one.
11438
11439 * xfaces.c (load_font): Take frame and name parameter, return
11440 font.
11441 (free_font): Likewise.
11442 (split_font_name): Compute numeric values for height, swidth etc.
11443 (cmp_font_names): Use them.
11444 (find_best_width_font): Ditto.
11445 (find_best_height_font): Ditto.
11446 (find_best_weight_font): Ditto.
11447 (find_best_slant_font): Ditto.
11448 (lface_hash): Add weight, slant, swidth and relief to hash value.
11449 (lface_equal_p): Make it faster.
11450 (lface_from_symbol): Use assq_no_quit.
11451 (Fnote_default_face_changed): Removed.
11452 (cmp_font_names): Use strcmp instead of xstricmp.
11453 (face_charset_registries): Removed.
11454
114551998-04-20 Gerd Moellmann <gerd@gnu.org>
11456
11457 * frame.h (CHECK_FRAME): Give this macro a statement form.
11458 (CHECK_LIVE_FRAME): Ditto.
11459
11460 * xfaces.c (find_best_width_font): Find the best matching font
11461 for a given width.
11462 (find_best_height_font): Likewise for height.
11463 (find_best_weight_font): Likewise for weight.
11464 (find_best_slant_font): Likewise for slant.
11465 (choose_face_font): Use them.
11466 (get_lface_attributes): Always return frame-local face attrs.
427ec082 11467 (Finternal_merge_in_global_face): Merge local face with
26901792
DL
11468 global face attributes.
11469
11470 * xfaces.c (check_lface_attrs, check_lface): Check consistency of
11471 Lisp face attributes.
11472
114731998-04-19 Gerd Moellmann <gerd@gnu.org>
11474
11475 * xfaces.c (Finternal_set_lisp_face_attribute): Add :bold
11476 and :italic for compatibility.
11477 (Finternal_set_lisp_face_attribute_from_resource): Handle
427ec082 11478 :bold and :italic. Handle boolean resource values for
26901792
DL
11479 :underline and :italic.
11480
11481 * xfns.c (display_x_get_resource): Make it externally visible.
11482
11483 * xfaces.c (lface_from_symbol): Take a frame as parameter.
11484 If that frame is non-null, return the frame-local face.
11485 (Finternal_make_lisp_face): Additional frame argument.
11486 (lface_attributes): Get face attributes from global and frame-local
11487 definitions.
11488 (Finternal_lisp_face_equal_p): Additional frame argument.
11489 (merge_lisp_face_vector_with_property): Ditto.
11490 (Frealize_basic_faces): Removed.
11491 (Finternal_get_lisp_face_attribute): Additional frame argument.
11492 (Finternal_lisp_face_p): Ditto.
11493 (load_color) [MSDOS]: Removed because it isn't clear how
11494 to do this for MS-DOS.
11495
11496 * xfaces.c (lface_from_symbol): Get global face definition
11497 from face-global-alist.
11498
11499 * xfaces.c (Finternal_set_lisp_face_attribute): Allow `t'
11500 as values for :underline and :inverse-video.
11501 (Finternal_set_lisp_face_attribute): Allow nil values.
11502
115031998-04-17 Gerd Moellmann <gerd@gnu.org>
11504
11505 * xfaces.c (Finternal_make_lisp_face): Return Lisp face vector.
11506
11507 * xfaces.c (syms_of_xfaces): Add Vall_faces.
11508 (Finternal_make_lisp_face): Add new face to Vall_faces.
11509
11510 * xdisp.c (echo_area_display): Remove code recomputing faces.
11511 (redisplay_internal): Ditto.
11512 (init_iterator): Do it here.
11513
11514 * xfaces.c (choose_face_font): Check that swidth doesn't change
11515 for subusequent attributes.
11516 (xlfd_point_size): Return int.
11517
11518 * xdisp.c (redisplay_internal, echo_area-display): If realized
11519 faces have been cleared, call recompute_basic_faces.
11520
11521 * xfaces.c (recompute_basic_faces): Free realized faces. Reset
11522 face_attributes_changed_p.
427ec082 11523 (remove_all_realized_faces): Remove all realized faces on
26901792
DL
11524 all frames.
11525 (Finternal_set_lisp_face_attribute): Call remove_all_realized_faces.
11526
11527 * xdisp.c (redisplay_internal): If face attributes have been
11528 changed since the last redisplay, recompute basic faces.
11529 (echo_area_display): Ditto.
11530
11531 * xfaces.c (clear_face_gcs): Renamed from clear_realized_face_cache.
11532
11533 * xfaces.c (min_char_bounds): If face cache not yet present,
11534 don't try to get font dimensions from faces.
11535
11536 * xterm.c (x_frame_mode_line_height): If face cache not present
11537 set, return default height.
11538
11539 * alloc.c (mark_face_cache): Check for null faces. Correct
11540 index bug.
11541
11542 * dispextern.h (struct face): Renamed from struct rface. Member
11543 underline renamed underline_p. Make it a bit-field.
11544
11545 * xfaces.c (init_frame_faces): Allocate face cache.
11546 (free_frame_faces): Free face cache.
11547 (recompute_basic_faces): Realize basic faces only if face cache is
11548 allocated, i.e. after init_frame_faces has been called.
11549
11550 * frame.c (make_frame): Initialze face cache with null.
11551
11552 * xfaces.c (same_size_fonts): Removed.
11553
427ec082 11554 * xterm.c (x_set_glyph_string_gc): Add post-condition
26901792
DL
11555 s->gc != 0.
11556 (x_set_mouse_face_gc): Ditto.
11557 (x_set_mode_line_face_gc): Ditto.
11558
427ec082
SS
11559 * xfaces.c (realize_default_face): Return int. Value is
11560 zero if frame params don't contain enough information to
26901792
DL
11561 realize the default face.
11562 (realize_basic_faces): Ditto.
11563 (init_frame_faces): Realize basic faces.
11564
11565 * xfns.c (x_set_font): First store real font name in frame
11566 parameters, then call recompute_basic_faces.
11567
11568 * xfaces.c (recompute_basic_faces): Call realize_basic_faces.
11569
115701998-04-16 Gerd Moellmann <gerd@gnu.org>
11571
11572 * xfaces.c (syms_of_xfaces): Correct calls to defsubr.
11573
11574 * xfns.c (Fx_face_fixed_p): Removed.
11575 (Fx_list_fonts): Moved to xfaces.c.
11576
11577 * xfaces.c (compute_face_at_buffer_pos): Renamed to
11578 face_at_buffer_position. Parameter charset removed; always
11579 compute face for CHARSET_ASCII.
11580 (face_at_string_position): Renamed from
11581 compute_face_at_string_pos. Parameter charset removed; always
11582 compute for CHARSET_ASCII.
427ec082 11583 (lookup_face_for_charset): Take frame parameter instead of
26901792
DL
11584 face_cache.
11585 (lookup_face): Ditto.
11586 (compute_char_face): Renamed from compute_glyph_face.
11587
11588 * xdisp.c (init_iterator): Initialize charset member.
11589 (reseat_iterator_to_string): Ditto.
11590 (get_charset_at_buffer_position): Determine charset at
11591 buffer position in current_buffer.
11592 (reseat_iterator): Call above function.
11593 (compute_face_at_iterator_position): Call
11594 compute_face_at_buffer_pos.
11595 (compute_face_at_iterator_string_position): Call
11596 compute_face_at_string_pos.
11597 (get_face_from_id): Removed.
11598 (get_face_from_cursor_pos): Call compute_face_at_buffer_pos.
11599 Call get_charset_at_buffer_position.
11600 (reseat_iterator): Determine face if charset at pos differs
11601 from iterator's charset.
11602 (reseat_iterator_to_glyph_pos): Removed.
11603
11604 * xfaces.c (compute_face_at_bufpos): Remove parameter charset.
11605 Determine charset from buffer position.
11606 (compute_string_char_face): Renamed to compute_face_at_string_pos.
11607 (compute_face_at_bufpos): Renamed to compute_face_at_buffer_pos.
11608
11609 * dispextern.h (struct display_iterator): Add member charset.
11610
116111998-04-15 Gerd Moellmann <gerd@gnu.org>
11612
11613 * xfaces.c (compute_char_face): Removed.
11614
11615 * xdisp.c (get_overlay_arrow_glyph_row): Use compute_glyph_face
11616 with new parameter list.
11617
11618 * xfaces.c (region_face): Removed.
11619 (allocate_face): Removed.
11620 (copy_face): Ditto.
11621 (face_eql): Removed.
11622 (intern_face): Removed.
11623 (clear_face_cache): Removed.
11624 (load_font): Ditto.
11625 (unload_font): Ditto.
11626 (load_color): Ditto.
11627 (unload_color): Ditto.
11628 (new_computed_face): Ditto.
11629 (intern_computed_face): Ditto.
11630 (ensure_face_ready): Ditto.
11631 (merge_faces): Ditto.
11632 (compute_base_face): Ditto.
11633 (merge_face_list): Ditto.
11634 (Fmake_face_internal): Removed.
11635 (Fset_face_attribute_internal): Ditto.
11636 (face_name_id_number): Removed.
11637 (Fframe_face_alist): Ditto.
11638 (Fset_frame_face_alist): Ditto.
11639 (Finternal_next_face_id): Ditto.
11640
11641 * xterm.h (struct x_output): Remove computed_faces, and
11642 param_faces. Remove macros accessing them.
11643
11644 * xfaces.c: Entirely new face implementation added.
11645
116461998-04-11 Gerd Moellmann <gerd@gnu.org>
11647
11648 * dispextern.h (struct glyph_pos): Member `bufpos' renamed
11649 `charpos'.
11650
116511998-04-10 Gerd Moellmann <gerd@gnu.org>
11652
11653 * xterm.c (x_scroll_bar_move): Clear only regions not covered by
11654 scroll bar window to reduce flickering. Clear entire height.
11655
11656 * xdisp.c (move_iterator_vertically_backward): Set iterator's
11657 current_x and hpos to zero after moving to previous line
11658 start.
11659
116601998-04-03 Gerd Moellmann <gerd@gnu.org>
11661
11662 * frame.h (FRAME_FACE_CACHE): Access to a frame's face cache.
11663
11664 * xfaces.c (xlfd_point_size): Compute relative point size of
11665 fonts from font and frame resolution.
11666 (sort_fonts): New function to sort fonts, temporarily setting
11667 font_frame to the frame in effect.
11668 (xlfd_point_size): Take additional frame parameter to be able
11669 to get at the display's resolution.
11670
11671 * xterm.c (x_setup_relief_colors): Use WHITE_PIX_DEFAULT and
11672 BLACK_PIX_DEFAULT.
11673 (x_setup_relief_color): Use FRAME_X_SCREEN instead of default
11674 screen of display.
11675
116761998-03-31 Gerd Moellmann <gerd@gnu.org>
11677
11678 * xfaces.c (choose_face_fontset): Instantiate fontsets.
11679
11680 * fontset.h: Add external declarations for Vfontset_alias_alist
11681 and Vglobal_fontset_alist.
11682
11683 * xfaces.c (merge_lisp_face_vector_with_property): Simplified.
11684 (realize_default_face): If frame parameters contain an artificial
11685 font name naming a fontset, set the family of the default face to
11686 the fontset name given by the registry.
11687
11688 * Makefile.in (alloc.o): Add dependency to dispextern.h.
11689
116901998-03-22 Gerd Moellmann <gerd@gnu.org>
11691
11692 * alloc.c (mark_object): Add function prototype. Add cast to
11693 Lisp_Object pointer in call to mark_object for symbol names
11694 because this otherwise gives a warning from gcc 2.8.1.
11695 (mark_face_cache): Mark Lisp objects in realized faces.
11696
116971998-03-19 Gerd Moellmann <gerd@gnu.org>
11698
11699 * frame.h (struct frame): Add member face_cache.
11700
11701 * alloc.c (mark_object): Mark face cache.
11702 (mark_face_cache): Mark Lisp faces in face cache of frame.
11703
11704 * frame.c (make_frame): Initialize face_cache.
11705 (Fdelete_frame): Free it.
11706
117071998-03-18 Gerd Moellmann <gerd@gnu.org>
11708
11709 * xfaces.c: Very first skeleton of functions for face realization,
11710 face merging, face cache etc.
11711
11712 * dispextern.h (struct rface): Realized faces. Will replace
11713 struct face when tested.
11714 (struct face_cache): Realized face caches.
11715
11716 * xdisp.c (init_iterator): Initialize area member of display
11717 iterator.
11718
117191998-03-17 Gerd Moellmann <gerd@gnu.org>
11720
11721 * xterm.c (x_append_glyph): Use it->area to store glyphs.
11722
11723 * dispextern.h (struct display_iterator): New member area.
11724
11725 * xterm.c (note_overwritten_text_cursor): Note when the text
11726 cursor of a window is overwritten.
11727
11728 * xdisp.c (set_cursor_from_row): If PT is not found in the
11729 row, display the cursor at the start of the row.
11730
11731 * dispnew.c (direct_output_forward_char): Call
11732 set_cursor_from_row.
11733
11734 * xdisp.c (setup_iterator_overlay_strings_from_glyph_pos): If
11735 position is not in an overlay string, set iterator's position and
11736 method explicitly so.
427ec082 11737 (set_cursor_from_row): Correct cursor position calculation.
26901792
DL
11738 Make it externally visible.
11739 (redisplay_window): Call set_cursor_from_row so that there is only
11740 one place where the cursor position is calculated from a current
11741 row.
11742
11743 * dispextern.h (struct display_iterator): New member
11744 overlay_strings_at_end_processed_p.
11745
11746 * xdisp.c (check_iterator): Perform sanity checks on
11747 display_iterators.
11748 (next_element_from_buffer): Check for overlay strings at ZV.
11749
117501998-03-16 Gerd Moellmann <gerd@gnu.org>
11751
11752 * buffer.c (init_buffer_once): Add left_margin_width and
11753 right_margin_width to buffer_local_flags.
11754
11755 * dispnew.c (margin_glyphs_to_reserve): Function computing
11756 number of glyphs to reserve for a marginal area.
11757 (adjust_glyph_matrix): Call it.
11758 (adjust_frame_glyphs_for_frame_redisplay): Return if frame
11759 is not alive.
11760
11761 * window.c (Fset_window_margins): Allow floats.
11762
11763 * buffer.c (syms_of_buffer): Add buffer-local variables
11764 left-margin-width and right-margin-width. Add defaults
11765 default-left-margin-width and default-right-margin-width.
11766
11767 * buffer.h (struct buffer): New members left_margin_width
11768 and right_margin_width.
11769
11770 * window.c (Fset_window_margins): Make window the last and
11771 optional argument.
11772
11773 * xterm.c (x_draw_glyphs): Compute x-positions for rows with
11774 flag no_marginal_areas_p differently.
11775 (x_clear_end_of_line): Ditto.
11776 (x_draw_glyph_string_relief): Compute width of relief differently
11777 for rows with flag no_marginal_areas_p.
11778
11779 * dispnew.c (update_window_line): Update marginal areas only
11780 for rows that don't have no_marginal_areas_p set.
11781
11782 * xdisp.c (display_mode_line): Set row's flag no_marginal_areas_p.
11783 (display_menu_bar): Ditto.
11784
11785 * dispextern.h (struct glyph_row): New member no_marginal_areas_p.
11786
11787 * dispnew.c (adjust_glyph_matrix): Compute glyph pointers for
11788 marginal areas in window-based redisplay.
11789
11790 * dispextern.h (struct glyph_matrix): New members
11791 left_margin_glyphs and right_margin_glyphs.
11792
117931998-03-15 Gerd Moellmann <gerd@gnu.org>
11794
11795 * minibuf.c (read_minibuf_unwind): Return Lisp_Object.
11796
11797 * charset.c (non_ascii_char_to_string): Use char type parameters
11798 because the function is used that way from outside. Use unsigned
11799 char internally.
11800
11801 * window.c (change_window_height): Return void.
11802 (make_dummy_parent): Return void.
11803 (init_window_once): Return void.
11804 (syms_of_window): Ditto.
11805 (keys_of_window): Ditto.
11806 (delete_window): Correct return with and without value.
11807
11808 * buffer.c (record_buffer): Return void.
11809
11810 * marker.c (unchain_marker): Return void.
11811
11812 * window.c (unshow_buffer): Return void.
11813 (replace_window): Ditto.
11814 (delete_window): Ditto.
11815
11816 * term.c (delete_glyphs_hook): Void return type.
11817 (ring_bell_hook): Ditto.
11818 (set_terminal_window_hook): Ditto.
11819
11820 * sysdep.c (init_sigio): Return void.
11821
11822 * xterm.c (x_set_window_size): Return void.
11823 (x_calc_absolute_position): Ditto.
11824 (x_set_offset): Ditto.
11825 (x_focus_on_frame): Ditto.
11826 (x_unfocus_frame): Ditto.
11827 (x_make_frame_visible): Ditto.
11828 (x_make_frame_invisible): Ditto.
11829 (x_iconify_frame): Ditto.
11830 (x_destroy_window): Ditto.
11831 (x_wm_set_window_state): Ditto.
11832 (x_wm_set_icon_pixmap): Ditto.
11833 (x_wm_set_icon_position): Ditto.
11834 (x_initialize): Ditto.
11835 (x_error_quitter): Ditto.
11836 (x_destroy_window): Use xfree instead of free.
11837
11838 * keyboard.c (clear_waiting_for_input): Return void.
11839
11840 * xterm.c (x_wm_set_size_hint): Return void.
11841 (x_raise_frame): Ditto.
11842 (refreshicon): Ditto.
11843 (x_error_catcher): Ditto.
11844 (x_clear_errors): Ditto.
11845
11846 * keyboard.c (record_asynch_buffer_change): Return void.
11847
11848