(handle_stop): Initialize it->add_overlay_start to zero.
[bpt/emacs.git] / src / ChangeLog
CommitLineData
bb746ea6
DL
12000-06-22 Dave Love <fx@gnu.org>
2
3 * s/isc3-0.h (C_SWITCH_SYSTEM): Define _XOPEN_SOURCE=500.
4
5 * s/gnu-linux.h (C_SWITCH_SYSTEM): Don't define _XOPEN_SOURCE here.
6
a8f573f3
KH
72000-06-22 Kenichi Handa <handa@etl.go.jp>
8
9 * ccl.c (ccl_driver) <CCL_End>: Decrement stack_idx only when it
10 is greater than 0.
11
9f2bbc92
DL
122000-06-21 Dave Love <fx@gnu.org>
13
14 * Makefile.in (GETLOADAVG_OBJ): Removed -- LIBOBJS does it.
15
3ee5041c
SM
162000-06-21 Stefan Monnier <monnier@cs.yale.edu>
17
18 * syntax.c (back_comment): Simplify string-parity counting (with
19 the added benefit of handling multiple string-styles as long as
20 they are not intertwined).
21 Jump to the slow code as soon as a comment starter is found in
22 a "string_lossage" position. Fixes the case: " /* " /* " */.
23
4c343001
DL
242000-06-21 Dave Love <fx@gnu.org>
25
26 * Makefile.in: Use GETLOADAVG_LIBS.
27
28 * config.in: Add HAVE_FCNTL_H, _FILE_OFFSET_BITS,
29 _LARGEFILE_SOURCE, _LARGE_FILES, _XOPEN_SOURCE.
30
e6365855
SM
312000-06-20 Stefan Monnier <monnier@cs.yale.edu>
32
33 * syntax.c (describe_syntax): Recognize the `n'estable bit.
34 (Fforward_comment, scan_lists):
35 Check the comstyle of single-char comment-starters.
36 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
37 we're just at the beginning of the comment (f.ex with (*) ... (*)).
d355bd8a
SM
38 Check the comstyle of single-char comment-starters.
39 Clarify control-flow around the Scomment case.
e6365855 40
5700d2cc
DL
412000-06-20 Dave Love <fx@gnu.org>
42
d355bd8a
SM
43 * fns.c (make_hash_table, maybe_resize_hash_table):
44 Cast arg of next_almost_prime.
5700d2cc
DL
45
46 * tparam.c [emacs]: Include lisp.h.
47
48 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
49 and unistd.h.
50
4a27bdfb
GM
512000-06-20 Gerd Moellmann <gerd@gnu.org>
52
a61d762c
GM
53 * keyboard.c (adjust_point_for_property): Check if display
54 property should be treated as intangible by looking at its
55 value.
56
57 * xdisp.c (single_display_prop_intangible_p)
58 (display_prop_intangible_p): New functions.
59
60 * dispextern.h (display_prop_intangible_p): Add prototype.
61
62 * xdisp.c (dump_glyph_row): Show type of glyph->object.
63
4a27bdfb
GM
64 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
65 argument to sigprocmask.
66
67 * s/sco5.h (sigblock): Redefined to pass a pointer as second
68 argument to sigprocmask.
69
70 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
71 sigprocmask_set, and pass a pointer to it to sigprocmask.
72
73 * sysdep.c (sigprocmask_set): New variable.
74
75 * fileio.c (make_temp_name): Don't use `%s' in string passed to
76 report_file_error.
77
427ec082
SS
782000-06-20 Sam Steingold <sds@gnu.org>
79
80 * xrdb.c: Don't declare xmalloc, xrealloc.
81
8972fe79 822000-06-20 Stefan Monnier <monnier@cs.yale.edu>
8972fe79
SM
83
84 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
85 (re_comp): Cast gettext return value to avoid complaints when
86 !HAVE_LIBINTL.
87
074b6efe
DL
882000-06-20 Dave Love <fx@gnu.org>
89
f85c008a
DL
90 * m/stride.h, m/mips.h: Don't define HAVE_GETWD,
91 HAVE_GETTIMEOFDAY.
92
5700d2cc 93 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
f85c008a 94
d355bd8a 95 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
f85c008a
DL
96
97 * m/alpha.h: Don't declare xmalloc, xrealloc.
98
0af4f205
DL
99 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
100
101 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
102
103 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
104
105 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
106 HAVE_GETWD.
107
074b6efe
DL
108 * keyboard.h (poll_for_input_1): Declare.
109
110 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
111
112 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
113
114 * doprnt.c: Don't declare xmalloc, xrealloc.
115
116 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
117 (getenv, ctime, getwd): Removed.
118 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
119
120 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
121 x_set_tool_bar_lines.
122
123 * config.in: Add HAVE_GETWD. Move some definitions above
124 machine/system includes.
125
68a5e97b
KH
1262000-06-20 Kenichi Handa <handa@etl.go.jp>
127
95417e1e
KH
128 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
129
68a5e97b
KH
130 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
131 contain information about ENCODING.
132
133 * fontset.c (FONTSET_ASCII): Use the first element of char table
134 for an ASCII font, not defalt slot.
135 (fontset_ref_via_base): If FONTSET doesn't contain information for
136 C, try the default fontset.
137 (make_fontset): Don't copy the default fontset.
138 (fontset_font_pattern): Likewise.
139 (accumulate_font_info): If ELT is nil, use the corresponding
140 element in the default fontset.
141
3b4fa1b2
DL
1422000-06-19 Dave Love <fx@gnu.org>
143
943e731c
DL
144 * syntax.c (Fparse_partial_sexp): Doc fix.
145
146 * regex.h: Test PROTOTYPES as well as __STDC__.
147
3b4fa1b2
DL
148 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
149 errno, strerror. Put text after #endif in comment.
150
151 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for
152 pcc).
153
154 * xterm.c (x_frame_of_widget): Likewise.
155
cdf0357b
GM
1562000-06-19 Gerd Moellmann <gerd@gnu.org>
157
158 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
159 to Vfundamental_mode_abbrev_table.
160
161 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
162 bogus objects are marked. This slows down GC by ~80 percent, but
163 it might be worth trying when debugging GC-related problems.
164 This feature requires conservative stack marking to be enabled.
165
166 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
167 returns XLookupChars, reset `modifiers' to zero.
168
998e9f8c
DL
1692000-06-19 Dave Love <fx@gnu.org>
170
171 * mktime.c: Unprotoized.
172
d1504184
GM
1732000-06-19 Richard Stallman <rms@caffeine.ai.mit.edu>
174
175 * data.c (set_internal): If variable is frame-local,
176 store the new value immediately into the frame parameter alist.
177
140c4ac6
KR
1782000-06-19 Ken Raeburn <raeburn@gnu.org>
179
14358466
KR
180 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
181 in the custom handler pointer.
182
140c4ac6
KR
183 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
184 value, or checks for CHAR_META can fail when Lisp_Object is a
185 union type.
186 * keymap.c (get_keyelt): Likewise.
187
10d7bf84
KH
1882000-06-19 Kenichi Handa <handa@etl.go.jp>
189
190 * ccl.h (struct ccl_program): New member eol_type.
191 (struct ccl_spec): New member cr_carryover.
192
193 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
194 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
195
196 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
197 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
198 (decode_eol_post_ccl): New function.
199 (decode_coding): Don't detect EOL format here for CCL based coding
200 systems.
201 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
202 decode_eol_post_ccl after running the CCL program.
203 (code_convert_region): Don't detect EOL format here for CCL based
204 coding systems.
205 (decode_coding_string): Likewise.
206
52e386c2
KR
2072000-06-18 Ken Raeburn <raeburn@gnu.org>
208
209 * charset.c (update_charset_table): Use XINT on "iso_final_char"
210 when treating it as an integer.
211
212 * coding.h (encode_coding_string): Declare.
213
214 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
215 it as an integer.
216
217 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
218 "xkeymap" to avoid shadowing the "enum map_type" value that needs
219 to be passed to get_local_map.
220
221 * sound.c (Fplay_sound): Don't call make_number on
222 Frun_hook_with_args count argument.
223
224 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
225 for lisp objects in X event structure data field, when lisp
226 objects are represented with unions.
227 (x_scroll_bar_to_input_event): Ditto.
228
b357b9d4
KR
2292000-06-16 Ken Raeburn <raeburn@gnu.org>
230
231 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
37d034d3
KR
232 termination of string. Fix sense of test whether
233 Vline_number_display_limit is an integer.
b357b9d4 234
a871441d
GM
2352000-06-16 Gerd Moellmann <gerd@gnu.org>
236
a9021acd
GM
237 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
238 only if HAVE_X_WINDOWS.
239
6344985d
GM
240 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
241 of titles.
242
427ec082 243 * dispnew.c (update_frame_1): Handle case that cursor vpos is
a871441d
GM
244 out of bounds.
245
228b083e
EZ
2462000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
247
248 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
249 of its headers.
250
c25b53a2
KH
2512000-06-15 Kenichi Handa <handa@etl.go.jp>
252
253 * coding.c (decode_coding_emacs_mule): Always set src_base at the
254 start of the while loop.
255
a6981b11
GM
2562000-06-15 Gerd Moellmann <gerd@gnu.org>
257
e9924e52
GM
258 * atimer.c (alarm_signal_handler): Add forward declaration.
259
a6981b11
GM
260 * data.c (set_internal): Remove debug code.
261
25fa6deb
GM
2622000-06-14 Gerd Moellmann <gerd@gnu.org>
263
dce6b995
GM
264 * Makefile.in (bootstrap-temacs): Add `-I../src'.
265
9f817ea4
GM
266 * unexec.c (toplevel) [COFF]: Include coff.h.
267
268 * s/lynxos.h: New file.
269
270 * keymap.c (Fsingle_key_description): Enclose function key and
271 event symbol names in angle brackets.
272
8a4e3c0c
GM
273 * xdisp.c (setup_echo_area_for_printing): Call
274 message_log_maybe_newline if message_buf_print is not set.
275
276 * print.c (printchar, strout): Don't check message_buf_print
427ec082 277 before calling setup_echo_area_for_printing because that
8a4e3c0c
GM
278 function does something useful even when message_buf_print is
279 already set.
280
25fa6deb
GM
281 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines): New
282 variables.
283 (ensure_echo_area_buffers): Initialize echo buffer's
284 truncate lines setting to nil.
285 (with_echo_area_buffer): Don't set the echo buffer's truncate
286 lines setting here.
8a4e3c0c 287 (set_message_1): Set it here instead, based on the value
25fa6deb
GM
288 of message_truncate_lines.
289 (resize_mini_window): Handle case that lines are truncated.
290 (syms_of_xdisp): Initialize Qmessage_truncate_lines. DEFVAR_BOOL
291 message-truncate-lines.
292
293 * keyboard.c (read_char): Bind message-truncate-lines to t
294 while displaying a help-echo.
295
296 * lisp.h (Qmessage_truncate_lines): External declaration.
297
163dcff3
GM
2982000-06-13 Gerd Moellmann <gerd@gnu.org>
299
1681ead6
GM
300 * xdisp.c (Vline_number_display_limit): Renamed from
301 line_number_display_limit.
302 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
303 Extend documentation string. Initialize
304 Vline_number_display_limit to nil meaning no limit.
305 (decode_mode_spec): Use Vline_number_display_limit with its new
306 meaning.
307
163dcff3
GM
308 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
309
3102000-06-13 Richard Stallman <rms@caffeine.ai.mit.edu>
311
312 * frame.c (Fmodify_frame_parameters): Doc fix.
427ec082 313
163dcff3
GM
314 * xfns.c (x_set_frame_parameters): Comment fix.
315
316 * frame.c (store_frame_param): Call swap_in_global_binding if the
317 variable's current binding was chosen based on this frame.
318
319 * data.c (swap_in_global_binding): New function.
320
a704139d
EZ
3212000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
322
323 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
324 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
325
9b6610db
EZ
3262000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
327
328 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
329
c68833d2
JR
3302000-06-12 Jason Rumney <jasonr@gnu.org>
331
332 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
333
334 * w32.h (EMACS_W32_H): Renamed from _NT_H_
335
336 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
337
338 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
339
ed1056b3
GM
3402000-06-12 Gerd Moellmann <gerd@gnu.org>
341
342 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
343 (syms_of_xfaces): Defsubr Sdump_colors.
344 (x_free_colors): Don't treat b&w specially on default visual.
345 (x_free_dpy_colors): New function.
346 (free_face_colors): Don't check visual class; it's done
347 in x_free_colors.
348
349 * xterm.c (x_frame_of_widget): New function.
350 (x_alloc_nearest_color_for_widget): Use it.
351 (x_copy_dpy_color): New function.
352 (x_destroy_window): Free various colors.
353
5050a2ef
KH
3542000-06-12 Kenichi Handa <handa@etl.go.jp>
355
356 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
357
358 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
359
360 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
361
362 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
363
364 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
365
fb1b041d
DL
3662000-06-11 Dave Love <fx@gnu.org>
367
368 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
369
ff96b5f4
EZ
3702000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
371
372 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
373
db8eeecd
GM
3742000-06-11 Gerd Moellmann <gerd@gnu.org>
375
ed1056b3 376 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
db8eeecd
GM
377 to `XEvent *'.
378
49b71c5f
KH
3792000-06-10 Kenichi Handa <handa@etl.go.jp>
380
c479bd55
KH
381 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
382 (regex_compile): Fix the code for handling the case of single byte
383 char and multibyte char being mixed in a range within [...].
384
ff6a65c2
KH
385 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
386 and dst_multibyte members of coding.
387
49b71c5f
KH
388 * charset.c (update_charset_table): Update the table
389 bytes_by_char_head.
390 (init_charset_once): Initialize elements of bytes_by_char_head to
391 1 except for leading codes for private charases.
392
393 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
394 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte
395 sequence.
396
9e80b57d
KR
3972000-06-09 Ken Raeburn <raeburn@gnu.org>
398
399 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
400 access the data it doesn't point to.
401
f83fe4b4
GM
4022000-06-08 Gerd Moellmann <gerd@gnu.org>
403
404 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
db8eeecd 405 will be translated to a switch-frame event when reading the
f83fe4b4
GM
406 event queue. This is necessary because Emacs otherwise won't
407 perform a switch-frame to a new frame until some other event, for
408 example a keystroke event, forces it to do so. This has various
409 effects, one visible being that the cursor of a frame created with
410 C-x 5 2 or switched to with a window manager key binding like
411 A-TAB stays hollow because selected_window isn't on the newly
412 focused frame until the switch-frame is performed.
413
414 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
415 generating a switch-frame event if necessary.
416
417 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
418
419 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
420 it's an integer.
421
0890801b
KH
4222000-06-08 Kenichi Handa <handa@etl.go.jp>
423
424 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a
425 charset.
426
173cbca8
GM
4272000-06-07 Gerd Moellmann <gerd@gnu.org>
428
3091c2a6
GM
429 * window.c (displayed_window_lines): Take empty lines at
430 the bottom of a window into account.
427ec082 431
f38952fe
GM
432 * window.c (displayed_window_lines): New function.
433 (Fmove_to_window_line): Use displayed_window_lines to determine
434 the number of lines to move, instead of using the window's height.
435
436 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
437 to stop reading, even if the form read sets point to a different
438 value when evaluated.
439
427ec082 440 * xdisp.c (display_line): Fix code deciding in which line to
173cbca8
GM
441 put the cursor.
442
6ba6c818
KH
4432000-06-07 Kenichi Handa <handa@etl.go.jp>
444
445 * fileio.c (e_write): Free composition data if stored in
446 coding->cmp_data.
447
5f1aea9a
GM
4482000-06-06 Gerd Moellmann <gerd@gnu.org>
449
666852af
GM
450 * xdisp.c (display_line): Set row's and iterator's
451 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
452 Set cursor even if row ends in the middle of a character.
453 (dump_glyph_row): Print values of new flags.
454 (redisplay_window) <cursor movement in unchanged window>: When
455 point has been moved forward, and PT is at the end of the cursor
456 row, don't place the cursor in the next row if the cursor row ends
457 in the middle of a character or at ZV.
458
459 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
460 (struct glyph_row): Add starts_in_middle_of_char_p and
461 ends_in_middle_of_char_p.
462 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
463 ends_in_middle_of_char_p flag.
464 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
465
d13f3e2e
GM
466 * term.c (append_glyph): Revert change of 2000-06-06.
467
468 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
469 padding glyph not fitting on line as whole character not
470 fitting on line.
471
5f1aea9a
GM
472 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
473 this isn't true for images with `:ascent 100'.
474
10cda9b0
KH
4752000-06-06 Kenichi Handa <handa@etl.go.jp>
476
ed00559d
KH
477 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
478 as modified if it is originally unmodified.
479
10cda9b0
KH
480 * term.c (encode_terminal_code): Change the way to check if
481 terminal coding does any conversion.
482 (append_glyph): Set glyph->pixel_width correctly.
483
484 * xdisp.c (display_line): While checking line continuation, pay
485 attention to a padding glyph.
486
1969fae2
GM
4872000-06-05 Gerd Moellmann <gerd@gnu.org>
488
489 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
490
162ccef4
DL
4912000-06-05 Dave Love <fx@gnu.org>
492
f19f32dd
DL
493 * xdisp.c: Include fontset.h.
494
495 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
496
497 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
498
499 * dispnew.c: Conditionally include term.h.
500
501 * coding.h: Declare code_convert_string_norecord.
502
503 * frame.h (struct frame): Use volatile unconditionally.
504
505 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
506
507 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
508
509 * systime.h: Protect against multiple inclusion.
510 (timezone) [USG5_4]: Define as time_t.
511
512 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
513 (Foptimize_char_table, make_temp_name): Declare.
514
515 * Makefile.in (xdisp.o): Depend on fontset.h.
516
517 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
518
519 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
520 (Foptimize_char_table, make_temp_name): Declare.
521
427ec082 522 * s/irix4-0.h:
162ccef4
DL
523 * s/irix5-0.h:
524 * s/netbsd.h: Don't define autoconfiscated MATHERR.
525
2082fe81
DL
5262000-06-02 Dave Love <fx@gnu.org>
527
528 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
529
dcf671d2
GM
5302000-06-02 Gerd Moellmann <gerd@gnu.org>
531
532 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
1969fae2 533 result face, set flags in that face indicating that colors may not
dcf671d2
GM
534 be freed.
535
536 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
537 glyph, use the ASCII NUL character to determine the face.
538
d42122a3
DL
5392000-06-02 Dave Love <fx@gnu.org>
540
541 * sysdep.c: Conditionally include stdlib.h, unistd.h.
542 (VFORK_RETURN_TYPE): Remove.
427ec082 543
d42122a3
DL
544 * config.in: Add NO_MATHERR.
545
dd432f16
DL
5462000-06-01 Dave Love <fx@gnu.org>
547
90aa4ea8
DL
548 * cmds.c (internal_self_insert): Don't check
549 Vbefore_change_function, Vafter_change_function.
550
551 * insdel.c (signal_before_change, signal_after_change): Likewise.
552
553 * buffer.c (Vbefore_change_function, Vafter_change_function):
554 Variables and their initializations deleted.
555
2330c9d4
DL
556 * callint.c (Fcall_interactively): Doc fix.
557
dd432f16
DL
558 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
559
bf9e8804
DL
5602000-05-31 Dave Love <fx@gnu.org>
561
562 * textprop.c: Revert last change -- duplicated.
563
3694b4ab
GM
5642000-05-31 Gerd Moellmann <gerd@gnu.org>
565
566 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
567 in #if 0.
568
569 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
570
f14156cd
JR
5712000-05-31 Jason Rumney <jasonr@gnu.org>
572
8119aab8
JR
573 * search.c (Fre_search_forward, Fre_search_backward)
574 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
575
f14156cd
JR
576 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
577
4aab9be3
JR
5782000-05-30 Jason Rumney <jasonr@gnu.org>
579
580 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
581 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
582
583 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type
584 member.
585
586 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
587 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
588 expand a nil default_filename.
589
590 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
591 pointer to glyph_to_pixel_coords, not a frame.
592
593 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
594 coding.h to dependencies.
595
596 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
597
598 * w32console.c (glyph_to_pixel_coords): Change first parameter to
599 window pointer to be consistent with w32term.c and xterm.c.
600
601 * w32fns.c: Format and doc changes to bring closer to xfns.c.
602 (VIETNAMESE_CHARSET): Define if not defined in system headers.
603 (Qline_spacing, Qcenter): New variables.
604 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
605 (x_set_line_spacing): New function.
606 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT
607 macros.
608 (x_specified_cursor_type): New function.
609 (x_set_cursor_type): Use it.
610 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
611 and icon strings.
612 (validate_x_resource_name, x_get_resource_string): Measure lengths
613 of external strings in bytes.
614 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
615 GetTextExtentPoint32 with NULL title.
616 (Fx_create_frame): Initialize Qline_spacing.
617 (w32_load_system_font): Initialize font->double_byte_p.
618 (x_to_w32_charset): Use Vw32_charset_info_alist.
619 (Image, busy cursor, tooltip functions): Merged changes from
620 xfns.c. Not yet functional on Windows.
621
622 * w32gui.h (W32FontStruct): Add double_byte_p member.
623
624 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
625 (emacs_button_translation): Use it.
626 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
627 in `mask' to be set.
628
629 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
630 menu strings.
631
632 * w32term.c: Format and doc changes to bring closer to xterm.c.
633 (w32_char_font_type): New enum.
634 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
635 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
636 (w32_encode_char): New function.
637 (x_encode_char): Removed.
638 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
639 x_encode_char and w32_font_is_double_byte.
640 (x_produce_image_glyph): Use image_ascent.
641 (x_produce_glyphs): Use new version of w32_per_char_metric and
642 handle NULL return value. Allow extra line spacing.
643 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
644 (w32_get_glyph_overhangs): Remove unicode_p param. Use
645 w32_font_type member of glyph instead.
646 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
647 (fast_find_position): Make sure not to consider rows not visible
648 in the window.
649 (w32_read_socket) [WM_MENUSELECT]: Cannot call
650 w32_menu_display_help with input blocked, as it can abort.
651 (x_display_and_set_cursor): Choose cursor depending
652 on buffer-local value of cursor_type.
653 (x_draw_bar_cursor): Add parameter WIDTH.
654
655 * w32term.h (CP_DEFAULT): Define.
656 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
657
10fc3187
GM
6582000-05-30 Gerd Moellmann <gerd@gnu.org>
659
660 * search.c (Fre_search_forward, Fre_search_backward)
661 (Fposix_search_backward, Fposix_search_forward): Doc fix.
662
d0555360
KH
6632000-05-30 Kenichi Handa <handa@etl.go.jp>
664
665 * coding.c (detect_coding_iso2022): Fix code for checking
666 CODING_CATEGORY_MASK_ISO_8_2.
667
f1ad044f
SM
6682000-05-29 Stefan Monnier <monnier@cs.yale.edu>
669
670 * regex.c (PREFETCH_NOLIMIT): New function.
671 (re_match_2_internal): Use it and adjust the end_match_2 logic.
672
84ec3b4b
GM
6732000-05-29 Gerd Moellmann <gerd@gnu.org>
674
66254a13
GM
675 * syntax.c (find_defun_start): Move test for
676 open_paren_in_column_0_is_defun_start outside of the loop.
677
49e70dec
GM
678 * xdisp.c (redisplay_window): Really switch buffers when
679 displaying mode lines, and temporarily set selected_frame to the
680 frame of the window that's redisplayed.
681
84ec3b4b
GM
682 * xfaces.c (free_realized_faces): Block/unblock input.
683 (free_realized_multibyte_face): Ditto.
684
869a3a14
DL
6852000-05-29 Dave Love <fx@gnu.org>
686
687 * textprop.c (Qkeymap): New variable.
688 (syms_of_textprop): Intern it.
689
690 * keymap.c: Include intervals.h.
691 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
692
693 * Makefile.in (keymap.o): Depend on intervals.h.
694
695 * keyboard.c (menu_bar_items, tool_bar_items)
696 (Fexecute_extended_command): Deal with `keymap' property.
697 (read_key_sequence): Track map from `keymap' property as well as
698 `local_map'.
699
700 * intervals.c (get_local_map): Extra arg to allow looking for
701 `keymap' too.
702
703 * intervals.h (map_property): New enum.
704 (get_local_map): Extra arg using it.
705 (Qkeymap): Declare.
706
84ec3b4b 707 * lisp.h (get_local_map): Don't declare here.
869a3a14 708
89d0c844
KH
7092000-05-29 Kenichi Handa <handa@etl.go.jp>
710
711 * Makefile.in (callproc.o): Depend on composite.h.
712
713 * callproc.c: Include composite.h.
714 (Fcall_process): Handle composition correctly.
715
716 * coding.h (coding_allocate_composition_data): Extern it.
717 (coding_restore_composition): Likewise.
718
719 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
720 yet allocated, finish decoding with result
721 CODING_FINISH_INSUFFICIENT_CMP.
722 (coding_allocate_composition_data): Make it non-static.
723 (coding_restore_composition): Likewise.
724
797a084a
EZ
7252000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
726
727 * charset.c (syms_of_charset): Revert last change.
728
cf872af5
EZ
7292000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
730
731 * term.c (produce_glyphs): Treat characters from the eight-bit-*
732 charsets as unibyte, with 1-column screen width. Sent by Kenichi
733 Handa.
734
5b1ae051
EZ
7352000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
736
737 * charset.c (syms_of_charset): Set width of character sets
738 eight-bit-control and eight-bit-graphic to 1 column.
739
34ec9ebe
GM
7402000-05-26 Gerd Moellmann <gerd@gnu.org>
741
742 * config.in (HAVE_SPEED_T): New define.
743
744 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
745 `extern speed_t'.
746
dd854dc2
DL
7472000-05-26 Dave Love <fx@gnu.org>
748
749 * coding.c (shrink_decoding_region): Initialize eol_conversion.
750
751 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
752 (Fsubr_arity): New function.
753 (syms_of_data): Install them.
754
ba9f8f95
KH
7552000-05-26 Kenichi Handa <handa@etl.go.jp>
756
0f3e0672
KH
757 * charset.c (init_charset_once): Set the table bytes_by_char_head
758 correctly.
759
cebefb44
KH
760 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
761 the default fontset to what Emacs uses by default.
0f3e0672
KH
762 (check_registry_encoding): This function deleted.
763 (Fset_fontset_font): Remove the adhoc condition for the default
764 fontset. Allow cons in FONTNAME.
cebefb44 765
0f3e0672
KH
766 * fns.c (map_char_table): Ignore char-table entries for
767 charsets eight-bit-control and eight-bit-graphic.
ba9f8f95 768
7a18af49
KR
7692000-05-25 Ken Raeburn <raeburn@gnu.org>
770
771 * emacs.c (main): Initialize keyboard syms before initializing
772 window code, so face names are available.
773
d2af47df
SM
7742000-05-25 Stefan Monnier <monnier@cs.yale.edu>
775
776 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
777 of an anchor at the beginning of a shy-group.
778
fc6a6a4e
GM
7792000-05-25 Gerd Moellmann <gerd@gnu.org>
780
781 * xdisp.c (handle_invisible_prop): Don't try to skip over
782 invisible text if end of text is already reached.
783
005f0d35
DL
7842000-05-25 Dave Love <fx@gnu.org>
785
02513cdd
DL
786 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
787
005f0d35
DL
788 * coding.c (encode_eol): Add null statement after label.
789
89f6ca4e
EZ
7902000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
791
792 * w16select.c (Fw16_set_clipboard_data): Fix the change from
793 2000-05-20.
794
a4e1759e
KH
7952000-05-25 Kenichi Handa <handa@etl.go.jp>
796
797 * ccl.c (ccl_driver): Fix previous change.
798
eacfd7fe
KH
7992000-05-25 Kenichi Handa <handa@etl.go.jp>
800
46ab33a9
KH
801 * coding.c (run_pre_post_conversion_on_str): Set point to the
802 beginning of buffer before calling coding->post_read_conversion.
803 (decode_coding_string): Give correct args to
804 run_pre_post_conversion_on_str.
805 (encode_coding_string): Likewise.
806
eacfd7fe
KH
807 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
808 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
809 eight-bit-graphic correctly.
810
f8569325
DL
8112000-05-24 Kenichi HANDA <handa@etl.go.jp>
812
813 * fileio.c (Finsert_file_contents): Even if a file is not found,
814 execute codes for setting up coding system. Call
815 after-insert-file-functions unconditionally.
816
04545643
GM
8172000-05-24 Gerd Moellmann <gerd@gnu.org>
818
819 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
820 BSD_PGRPS are not defined.
821
747d90ea
KH
8222000-05-24 Kenichi Handa <handa@etl.go.jp>
823
824 * charset.c (update_charset_table): Accept nil in LONG_NAME and
825 DESCRIPTION.
826 (syms_of_charset): Avoid building same strings.
827
716e3b88
GM
8282000-05-23 Gerd Moellmann <gerd@gnu.org>
829
830 * lread.c (Fload): Add a comment about the meaning of
831 Vuser_init_file being t.
832
833 * puresize.h (BASE_PURESIZE): Increase to 675000.
834
835 * s/gnu-linux.h (setpgrp): Don't define it here because this
836 prevents compilation on GNU/Linux systems with glib 2.2.
837
838 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
839 as setpgid.
427ec082 840
9aeb39fa
EZ
8412000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
842
843 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
844 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
845 version.
846 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
847
29ced61b
KH
8482000-05-23 Kenichi Handa <handa@etl.go.jp>
849
0574a2ed
KH
850 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE
851 unconditionally.
852
3d80f24d
KH
853 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
854
855 * term.c (encode_terminal_code): Set coding->src_multibyte
856 properly.
857
29ced61b
KH
858 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
859
d7e00792
KH
8602000-05-22 Kenichi Handa <handa@etl.go.jp>
861
c9d80d38
KH
862 * keyboard.c (read_char): Allow character codes 128..255 to be
863 handled by input-method-function.
864
d7e00792
KH
865 * insdel.c (adjust_markers_for_replace): Fix previous change.
866 (adjust_after_replace): If PREV_TEXT is nil, call
867 adjust_markers_for_insert, not adjust_markers_for_replace.
868
087121cc 8692000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
427ec082 870
087121cc
GM
871 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
872 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
873 [HAVE_GRANDPT]: Define.
874 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
875
876 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
877 like SYSV_PTYS.
878
879 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
880
881 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
882
c9671f81
KH
8832000-05-20 Kenichi Handa <handa@etl.go.jp>
884
885 The following changes are to handle 8-bit characters in a
886 multibyte buffer/string without facing with byte combining
887 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
888 eight-bit-graphic (for 0xA0..0xFF) are introduced.
889
890 * Makefile.in (fns.o): Depend on charset.h.
891
892 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
893 convert it to unibyte.
894 (make_string): Use parse_str_as_multibyte, not chars_in_text.
895
896 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
897 apparent char boundary.
898 (Fset_buffer_multibyte): Convert 8-bit characters in the range
899 0x80..0x9F to/from multibyte form.
900
901 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
902 to unibyte.
903
904 * callproc.c (Fcall_process): Always encode an argument string if
905 it is multibyte. Setup src_multibyte and dst_multibyte members of
906 process_coding properly.
ce75fd23 907
c9671f81
KH
908 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
909 SPLIT_NON_ASCII_CHAR.
910
911 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
912 as is.
913 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
914
915 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New
916 variables.
917 (SPLIT_CHARACTER_SEQ): This macro deleted.
918 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is
919 valid.
920 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
921 and eight-bit-graphic.
922 (char_to_string): Likewise. Signal an error for too large
923 character code.
924 (char_printable_p): Return 0 for 8-bit characters.
925 (update_charset_table): Update iso_charset_table only when a final
926 character is non-negative.
927 (find_charset_in_text): Renamed from find_charset_in_str.
928 Arguments and return value changed. Callers changed.
929 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
930 be -1 if CHARSET is used only internally.
931 (Fmake_char_internal): Handle new charsets; eight-bit-control and
932 eight-bit-graphic.
933 (Fcharset_after): Simplified.
934 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
935 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
936 (multibyte_chars_in_text): Simplified by assuming there's no
937 invalid multibyte sequence.
938 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
939 str_as_unibyte): New functions.
940 (Fstring): Simpified by assuming that byte combining never
941 happens.
942 (init_charset_once): Initialization for
943 LEADING_CODE_8_BIT_CONTROL.
944 (syms_of_charset): Intern and staticpro Qeight_bit_control and
945 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
946 eight-bit-control and eight-bit-graphic.
947
948 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL,
949 CHARSET_8_BIT_GRAPHIC): New macros.
950 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
951 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
952 (CHARSET_REVERSE_CHARSET): Likewise.
953 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
954 eight-bit-graphic.
955 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
956 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
957 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
958 encounter an invalid multibyte sequence.
959 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
960 sequence is always valid.
961 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
962 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New
963 macros.
964 (CHAR_STRING): For 8-bit characters, call char_to_string.
965 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
966 multibyte sequence is always valid.
967 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
968 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
969 str_as_unibyte): Extern them.
970 (BCOPY_SHORT): Fix a bug.
971 (CHAR_LEN): This macro deleted. Callers changed to use
972 CHAR_BYTES.
973 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
974 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
975 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
976
bd4bde7f 977 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
c9671f81
KH
978 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
979 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
980 EMIT_BYTES): New macros.
981 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
982 DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
983 macros deleted.
984 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
985 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
986 check the validity of multibyte sequence.
987 (decode_coding_emacs_mule): New function.
988 (encode_coding_emacs_mule): New macro.
989 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
990 the source.
991 (DECODE_ISO_CHARACTER): Just return a character code.
992 (DECODE_COMPOSITION_START): Set coding->result instead of result.
993 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
994 EMIT_CHAR to produced decoded characters. Exit the loop only by
995 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
996 block here.
997 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
998 only position codes for an invalid character.
999 (encode_designation_at_bol): Return new destination pointer. 5th
1000 arg DSTP is changed to DST.
1001 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
1002 from the source by ONE_MORE_CHAR. Don't handle the case of last
1003 block here.
1004 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
1005 macros deleted.
1006 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
1007 detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
1008 TWO_MORE_BYTES to fetch a byte from the source.
1009 (encode_eol): Pay attention to coding->src_multibyte.
1010 (detect_coding, detect_eol): Preserve members src_multibyte and
1011 dst_multibyte.
1012 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
1013 (encoding_buffer_size): Set magnification to 3 for all coding
1014 systems that require encoding.
1015 (ccl_coding_driver): For decoding, be sure that the result is
1016 valid multibyte sequence.
1017 (decode_coding): Initialize coding->errors and coding->result.
1018 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
1019 and raw-text, always call decode_eol. Handle the case of last
1020 block here. If not coding->dst_multibyte, convert the resulting
1021 sequence to unibyte.
1022 (encode_coding): Initialize coding->errors and coding->result.
1023 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
1024 and raw-text, always call encode_eol. Handle the case of last
1025 block here.
1026 (shrink_decoding_region, shrink_encoding_region): Detect cases
1027 that we can't skip data more rigidly.
1028 (code_convert_region): Setup src_multibyte and dst_multibyte
1029 members of coding. For decoding, if the buffer is multibyte,
1030 convert the source sequence to unibyte in advance. For encoding,
1031 if the buffer is multibyte, convert the resulting sequence to
1032 multibyte afterward.
1033 (run_pre_post_conversion_on_str): New function.
1034 (code_convert_string): Deleted and divided into the following two.
1035 (decode_coding_string, encode_coding_string): New functions.
1036 (code_convert_string1, code_convert_string_norecord): Call one of
1037 above.
1038 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
1039 MAKE_NON_ASCII_CHAR.
1040 (Fset_terminal_coding_system_internal,
1041 Fset_safe_terminal_coding_system_internal): Setup src_multibyte
1042 and dst_multibyte members.
1043 (init_coding_once): Initialize iso_code_class with new enum
1044 ISO_control_0 and ISO_control_1.
1045
1046 * coding.h (enum iso_code_class_type): Member ISO_control_code is
1047 devided into ISO_control_0 and ISO_control_1.
1048 (struct coding_system): New members src_multibyte, dst_multibyte,
1049 errors, and result. Delete member fake_multibyte.
1050 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
1051 nonzero.
1052 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
1053 nonzero.
1054
1055 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
1056 (Faset): Likewise.
1057
1058 * editfns.c (Fformat): Be sure to convert 8-bit characters to
1059 multibyte form.
1060 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
1061 combining occurs.
1062 (Ftranspose_region): Delete codes for handling byte combining.
1063
1064 * fileio.c (Finsert_file_contents): Setup src_multibyte and
1065 dst_multibyte members of coding. On handling REPLACE on unibyte
1066 buffer, convert the result of decode_coding to unibyte. On
1067 inserting into a mutibyte buffer, always call code_convert_region.
bd4bde7f 1068 (e_write): Setup coding->src_multibyte according to the
c9671f81
KH
1069 multibyteness of the source (buffer or string).
1070
1071 * fns.c (concat): Handle 8-bit characters correctly.
1072 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
1073 unibyte in the result.
1074 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
1075 valid multibyte form in the result.
1076 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
1077 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
1078 return -1, signal an error.
1079 (base64_encode_1): New arg MULTIBYTE. Get each character by
1080 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
1081 character is found, return -1.
1082 (Fbase64_decode_region): Delete codes for handling byte-combining.
1083 Treat each decoded byte as a unibyte character.
1084 (Fbase64_decode_string): Return unibyte string.
1085 (Fcompare_strings, concat, string_byte_to_char): Use
1086 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
1087 FETCH_STRING_CHAR_ADVANCE.
1088 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
1089 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
1090
1091 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
1092 SPLIT_NON_ASCII_CHAR.
1093 (fontset_ref_via_base, fontset_set): Likewise
1094
1095 * insdel.c (adjust_markers_for_record_delete): Deleted.
1096 (adjust_markers_for_insert): Argument changed. Caller changed.
1097 (adjust_markers_for_replace): Likewise.
1098 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error,
1099 CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
1100 (copy_text): Delete unused local varialbe c_save. For converting
1101 to multibyte, be sure to make all 8-bit characters in valid
1102 multibyte form.
1103 (count_size_as_multibyte): Handle 8-bit characters correctly.
1104 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
1105 adjust_after_replace, replace_range, del_range_2)
1106 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
1107 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
1108 adjust_after_replace, replace_range, del_range_2) Delete codes for
1109 handling byte combining.
1110 (adjust_before_replace): Deleted.
427ec082 1111
c9671f81
KH
1112 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
1113 SPLIT_NON_ASCII_CHAR.
1114 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
1115 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE
1116 unconditionally.
1117 (Fkey_description): Likewise.
1118
1119 * lread.c (read1): On reading multibyte string, be sure to make
1120 all 8-bit chararacters in valid multibyte form.
1121 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
1122
1123 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
1124 unconditionally.
1125
1126 * process.c (Fstart_process): GCPRO current_dir before calling
1127 Ffind_operation_coding_system. Encode arguments here.
1128 (create_process): Don't encode arguments here. Setup
1129 src_multibyte and dst_multibyte members of struct coding.
1130 (read_process_output): Setup src_multibyte and dst_multibyte
1131 members of struct coding. If the output is to multibyte buffer,
1132 always decode the output of the process. Adjust the
1133 representation of 8-bit characters to the multibyteness of the
1134 output.
1135 (send_process): Setup coding->src_multibyte according to the
1136 multibyteness of the source.
1137
1138 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE
1139 unconditionally.
1140 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
1141 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
1142
1143 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of
1144 CHAR_LEN.
1145
1146 * w16select.c (Fw16_set_clipboard_data): Setup members
1147 src_multibyte and dst_multibyte of coding. Adjusted for the
1148 change for find_charset_in_str.
1149 (Fw16_get_clipboard_data): Likewise.
1150
1151 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
1152 dst_multibyte of coding.
1153 (x_to_w32_font): Likewise.
1154
1155 * w32select.c (Fw32_set_clipboard_data): Setup members
1156 src_multibyte and dst_multibyte of coding. Adjusted for the
1157 change for find_charset_in_str.
1158 (Fw32_get_clipboard_data): Likewise.
1159
1160 * xdisp.c (get_next_display_element): Handle 8-bit characters
1161 correctly.
1162 (next_element_from_display_vector): Use CHAR_BYTES instead of
1163 CHAR_LEN.
1164 (disp_char_vector): Use SPLIT_CHAR instead of
1165 SPLIT_NON_ASCII_CHAR.
1166
1167 * xselect.c (selection_data_to_lisp_data): Setup members
1168 src_multibyte and dst_multibyte of coding. Adjusted for the
1169 change for find_charset_in_str.
1170 (lisp_data_to_selection_data): Likewise.
1171
5f64c9e0
GM
11722000-05-19 Gerd Moellmann <gerd@gnu.org>
1173
2b63d473
GM
1174 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed
1175 buffer.
1176
5f64c9e0
GM
1177 * dispextern.h (Vimage_types): Add extern declaration.
1178
1179 * xdisp.c (Vimage_types): Moved here from xfns.c.
1180 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
1181
1182 * xfns.c (Vimages_types): Moved to xdisp.c.
1183 (syms_of_xfns): Move `image-types' to xdisp.c.
1184
1185 * w32fns.c (Vimage_types): Removed.
1186 (syms_of_w32fns): Remove `image-types'.
1187
813086ea
KH
11882000-05-18 Kenichi Handa <handa@etl.go.jp>
1189
1190 * fns.c (map_char_table): Pay attention to character number of
1191 charset. Check the validity of charset at the first level. For
1192 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
1193 the default value.
1194
1195 * fontset.c: Include "buffer.h".
1196 (fs_load_font): If the face has fontset, record the face ID in
1197 that fontset.
1198 (Finternal_char_font): New function.
1199 (accumulate_font_info): New function.
1200 (Ffontset_info): Rewritten for the new fontset implementation.
1201 (syms_of_fontset): Register Vdefault_fontset in the first element
1202 of Vfontset_table. Include Vdefault_fontset in
1203 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
1204 function.
1205
bdaebbf0
DL
12062000-05-16 Dave Love <fx@gnu.org>
1207
1208 * m/iris5d.h: Deleted -- unused.
1209
cb613bb8
GM
12102000-05-16 Gerd Moellmann <gerd@gnu.org>
1211
b15f3b77
GM
1212 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
1213 `invalid' instead of `illegal'.
1214
1215 * indent.c (Fmove_to_column): When ending within a tab, insert
1216 spaces first so that markers at the end of the tab get adjusted.
1217
835c1b36
GM
1218 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
1219 buffer list that wasn't selected in that frame.
1220
cb613bb8
GM
1221 * filelock.c (get_boot_time): To obtain an 8 char file name, which
1222 is needed on mescaline, use a 2 char prefix, and call
1223 make_temp_name with second arg non-zero.
1224
1225 * fileio.c (make_temp_name): New function, extracted from
1226 Fmake_temp_name.
1227 (Fmake_temp_name): Use it.
1228
f685bea9
EZ
12292000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
1230
1231 * window.c (coordinates_in_window): Subtract 1 when computing
1232 right_x.
1233
a1b8d58b
GM
12342000-05-15 Gerd Moellmann <gerd@gnu.org>
1235
1236 * Makefile.in (lisp): Add env.elc.
1237
1238 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
1239
a265079f
GM
12402000-05-12 Gerd Moellmann <gerd@gnu.org>
1241
1242 * search.c (Freplace_match): Handle case of `\N' in the
1243 replacement when there's no group N.
1244
da4496b6
GM
12452000-05-11 Gerd Moellmann <gerd@gnu.org>
1246
0ace421a
GM
1247 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
1248 of the message to message_dolog.
1249
1172eb8d
GM
1250 * keyboard.c (read_char): Don't clear current message for help
1251 events; let the code handling help events handle this. Change
1252 code detecting help events that should be ignored.
1253
da4496b6
GM
1254 * xdisp.c (handle_single_display_prop): Don't try to set PT if
1255 we're interating over a string.
1256
0623e40f
DL
12572000-05-09 Dave Love <fx@gnu.org>
1258
1259 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
1260 that offset before writing. Move gcpro region past call of
1261 Ffile_regular_p.
1262
bae2503b
DL
12632000-05-04 Dave Love <fx@gnu.org>
1264
1265 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
1266
ec82fb2f
GM
12672000-05-04 Gerd Moellmann <gerd@gnu.org>
1268
1269 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
1270 of inserted characters when BUF equals the current buffer, and PT
1271 is in front of or equal to FROM.
1272
cbf18892
GM
12732000-05-03 Gerd Moellmann <gerd@gnu.org>
1274
4ff40dd0
GM
1275 * xdisp.c (handle_single_display_prop): If display property value
1276 is invalid, or something not supported on the frame, restore
1277 iterator's position to what it was initially. Make sure to return
1278 0 for invalid and unsupported property values.
1279
cbf18892
GM
1280 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
1281 that x_per_char_metric returns null.
1282
1b0672c3
GM
12832000-05-02 Gerd Moellmann <gerd@gnu.org>
1284
576da55d
GM
1285 * xterm.h (struct face): Add forward declaration.
1286 (struct image): Ditto.
1287 (image_ascent): Add prototype.
1288
1289 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
1290 (x_draw_image_relief, x_draw_image_foreground_1): Call function
1291 image_ascent instead of using IMAGE_ASCENT.
1292
1293 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
1294 (IMAGE_ASCENT): Removed.
1295
1296 * xfns.c (Qcenter): New variable.
1297 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
1298 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
1299 (image_ascent): New function.
1300 (lookup_image): Recognize `:ascent center'.
1301 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
1302 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
1303 (xbm_load): Don't set image's ascent here.
1304 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
1305 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
1306 check ascent values here.
1307 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
1308 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
1309 (syms_of_xfns): Initialize Qcenter.
1310
1b0672c3
GM
1311 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
1312 to the limits, increase the limits.
1313
0d7811ed
KH
13142000-05-01 Kenichi Handa <handa@etl.go.jp>
1315
1316 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
1317 Check Vfont_encoding_alist against the full name of the opened
1318 font.
1319
a943a5ca
GM
13202000-04-28 Gerd Moellmann <gerd@gnu.org>
1321
1322 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
1323 taller than the window.
1324
5dba1e29
KH
13252000-04-28 Kenichi Handa <handa@etl.go.jp>
1326
1327 * xfaces.c (realize_x_face): Fix the argument of the second
1328 xassert. BASE_FACE may not be a face for ASCII.
1329
353964e3
GM
13302000-04-27 Gerd Moellmann <gerd@gnu.org>
1331
c76e04a8
GM
1332 * print.c (print_object): Treat print-length < 0 as nil.
1333
1334 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
1335
1336 * s/freebsd.h (TERMCAP_OBJ): Removed.
1337 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
1338
1339 * lread.c (read1): Don't treat period followed by certain
1340 characters as symbol start.
1341
1342 * xfns.c (slurp_file): New function.
1343 (xbm_image_p): Handle case of in-memory XBM files.
1344 (xbm_scan): Rewritten to work on memory buffers instead of files.
1345 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
1346 Work on memory buffers instead of files. If DATA is null test
1347 if buffer looks like an in-memory XBM file.
1348 (xbm_load_image): Renamed from xbm_load_image_file. Work on
1349 memory buffers instead of files.
1350 (xbm_file_p): New function.
1351 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
1352
353964e3
GM
1353 * lread.c (end_of_file_error): New function.
1354 (read1): Call it instead of signaling `end-of-file' directly.
1355
427ec082 1356 * print.c (print_error_message): Print data of `end-of-file'
353964e3
GM
1357 with Fprinc instead of Fprin1.
1358
24d744ac
KR
13592000-04-26 Ken Raeburn <raeburn@gnu.org>
1360
1361 * window.c (freeze_window_start): Check that minibuffer scroll
1362 window isn't nil before extracting the window structure pointer
1363 from it.
1364
1365 * undo.c (record_delete): If we hit the end of the undo list, stop
1366 picking elements apart.
1367
7464346d
GM
13682000-04-26 Gerd Moellmann <gerd@gnu.org>
1369
1370 * xdisp.c (display_line): If lines are continued, restore
1371 iterator's ascent/descent information to the values before the
1372 first glyph not fitting on the line.
1373
612839b6
GM
13742000-04-25 Gerd Moellmann <gerd@gnu.org>
1375
1376 * xdisp.c (try_window_id) <all changes above window start>: Adjust
1377 positions in glyph matrix. Don't compute new window end
1378 positions.
1379
1380 * dispnew.c (increment_matrix_positions): Renamed from
1381 increment_glyph_matrix_buffer_positions.
1382 (increment_row_positions): Renamed from
1383 increment_glyph_row_buffer_positions.
1384
1385 * dispextern.h: Change names of renamed functions from dispnew.c
1386 in prototypes.
1387
cc181e95
GM
13882000-04-24 Gerd Moellmann <gerd@gnu.org>
1389
abfcc168
GM
1390 * fileio.c (Fdo_auto_save): Create directories for auto-save
1391 list file if necessary.
1392
cc181e95
GM
1393 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
1394 from buffer or frame.
1395 (automatic_hscrolling_p): New variable.
1396 (hscroll_windows): Scroll windows horizontally only if automatic
1397 hscrolling is allowed.
1398 (syms_of_xdisp): New variable `automatic-hscrolling'.
1399
1400 * frame.h (struct frame): Add member extra_line_spacing.
1401
1402 * xfns.c (x_set_line_spacing): New function.
1403 (Fx_create_frame): Set line spacing from resources.
1404 (Qline_spacing): New variable.
1405 (syms_of_xfns): Initialize Qline_spacing.
427ec082 1406
cc181e95
GM
1407 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
1408
1409 * buffer.c (init_buffer_once): Handle extra_line_spacing.
1410 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
abfcc168 1411 (reset_buffer): Don't initialize extra2 and extra3. Initialize
cc181e95
GM
1412 extra_line_spacing from default value.
1413 (init_buffer_once): Initialize default value of extra_line_spacing.
1414
1415 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
1416 and extra3.
1417
1418 * xterm.c (x_produce_glyphs): Remove reference to struct it's
1419 prompt_width. Add extra line spacing.
1420
1421 * term.c (produce_glyphs): Remove reference to struct it's
1422 prompt_width.
1423
1424 * dispextern.h (struct it): Remove member prompt_width, add
1425 extra_line_spacing.
1426
58827478
GM
14272000-04-22 Gerd Moellmann <gerd@gnu.org>
1428
1429 * dispnew.c (update_frame_line): When writing a whole line, make
1430 sure cursor is in the right row afterwards, otherwise a use of
1431 capability `ch' in cmgoto might leave the cursor in the row below.
1432
25a87f42
GM
14332000-04-21 Gerd Moellmann <gerd@gnu.org>
1434
1435 * lisp.h (struct Lisp_Buffer_Cons): Remove.
1436
1437 * keyboard.c (timer_check): Fix typo in comment.
1438
54edf5c2
KH
14392000-04-21 Kenichi Handa <handa@etl.go.jp>
1440
1441 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
1442 name change: ch -> character.
1443
3a64eef5
GM
14442000-04-20 Gerd Moellmann <gerd@gnu.org>
1445
1446 * keyboard.c (echo_message_buffer): New variable.
1447 (echo_now): Set echo_message_buffer to the echo area buffer used
1448 to display the echo.
1449 (cancel_echoing): Reset echo_message_buffer to nil.
1450 (read_char): Code rewritten that handles canceling an echo or
1451 echoing a dash, respectively.
1452
1453 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
1454 directory doesn't exist.
1455
6142fdcb
DL
14562000-04-19 Dave Love <fx@gnu.org>
1457
1458 * fns.c (syms_of_fns): Defsubr mapc.
a9cacab7
DL
1459 (concat): Don't allow numeric args.
1460 (Fconcat): Doc change.
6142fdcb 1461
ac6b5352
SM
14622000-04-19 Stefan Monnier <monnier@cs.yale.edu>
1463
1464 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
1465 instead define end_match(1|2) more carefully.
1466 Use GET_CHAR_BEFORE_2 for `begline'.
1467
cb9215e4
GM
14682000-04-19 Gerd Moellmann <gerd@gnu.org>
1469
5e3dac3f
GM
1470 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
1471 on 64-bit systems where NULL is defined as `0'.
1472
1473 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
1474 the `variable argument list' to make it work on Alpha.
1475
cb9215e4
GM
1476 * m/alpha.h (_LP64) [!_LP64]: Define.
1477 (ORDINARY_LINK): Define for NetBSD.
1478
1479 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
427ec082 1480
f532dca0
DL
14812000-04-19 Dave Love <fx@gnu.org>
1482
c750667e
DL
1483 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
1484 change.
1485
1486 * Makefile.in (LIBS): Don't use.
1487 (GETLOADAVG_OBJ): Define again.
1488 (otherobj): Add GETLOADAVG_OBJ.
1489
f532dca0
DL
1490 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
1491
1c7e22fd
GM
14922000-04-18 Gerd Moellmann <gerd@gnu.org>
1493
f6d3257b
GM
1494 * lread.c (read_filtered_event): Cancel and start busy cursor.
1495
427ec082 1496 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
1c7e22fd
GM
1497 that the per-character metrics may be null.
1498
e10f64e7
GM
14992000-04-17 Gerd Moellmann <gerd@gnu.org>
1500
0daee095
GM
1501 * buffer.c (clone_per_buffer_values): New function.
1502 (Fmake_indirect_buffer): Add optional argument CLONE. Call
1503 clone_per_buffer_values if CLONE is not nil.
1504
e10f64e7
GM
1505 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
1506
38687d43
DL
15072000-04-16 Dave Love <fx@gnu.org>
1508
1509 * Makefile.in: Remove obsolete localcpp stuff.
1510 (GETLOADAVG_OBJ): Don't define.
1511 (obj): Move LIBOBJS...
1512 (otherobj): ... to here.
1513 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
1514 whitespace-only lines after the continuation (Irix).
1515
c21c7262
GM
15162000-04-14 Gerd Moellmann <gerd@gnu.org>
1517
1518 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
1519
1520 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
1521
314767c0
DL
15222000-04-14 Dave Love <fx@gnu.org>
1523
1524 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
1525 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
1526 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
1527 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
1528 NLIST_STRUCT.
1529
1530 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
1531 autoconfiscated HAVE_GETLOADAVG.
1532
1533 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
1534 BROKEN_MKTIME.
1535
a2522dca
GM
15362000-04-14 Gerd Moellmann <gerd@gnu.org>
1537
1538 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
1539 (fill_in_lock_file_name): Avoid existing files that aren't
1540 links.
1541
33744b5d
DL
15422000-04-14 Dave Love <fx@gnu.org>
1543
c21c7262 1544 * Makefile.in (LIBS, LIBOBJS): New variable.
33744b5d
DL
1545 (INTERVAL_SRC): Convert to make variable.
1546 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
1547 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
1548 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
1549 add LIBOBJS.
1550 (SOME_MACHINE_OBJECTS): Remove interval stuff.
1551 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
1552 (shortlisp): Add facemenu, float-sup, frame.
1553 (SOME_MACHINE_LISP): Remove them from here.
1554 (LIBES): Change unused LDLIBS to autoconf LIBS.
1555
1556 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
1557
9d3d5916
KH
15582000-04-14 Kenichi Handa <handa@etl.go.jp>
1559
1560 * composite.c (update_compositions): If FROM and TO are not in a
1561 valid range, do nothing.
1562
198e3c7a
GM
15632000-04-13 Gerd Moellmann <gerd@gnu.org>
1564
1565 * tparam.c (tparam1): Abort when encountering an unknown
1566 `%'-specifier.
1567
1568 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as
1569 terminfo.o.
1570
1571 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
1572 as TERMCAP_OBJ.
1573
055a28c9
EZ
15742000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
1575
1576 * fileio.c (a_write): Remove redundant semi-colons.
1577 (e_write): Return -1 if failed to write all the data.
1578 This fixes the changes made at 1999-12-15.
1579
f5c75033
DL
15802000-04-12 Dave Love <fx@gnu.org>
1581
1582 * fns.c (mapcar1): Test for null vals to support mapc.
1583 (Fmapc): New function.
1584
0c3cfc51
EZ
15852000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
1586
1587 * msdos.c (NUM_MOUSE_BUTTONS): Define.
1588 (IT_frame_up_to_date): Support the buffer local value of
1589 cursor-type, if defined.
1590
33465a31
DL
15912000-04-10 Dave Love <fx@gnu.org>
1592
1593 * editfns.c (preceding-char, following-char): Doc fix.
1594
6ed56568
KR
15952000-04-10 Ken Raeburn <raeburn@gnu.org>
1596
1597 * Makefile.in (temacs): Revert 2000-03-12 change.
1598
7cf80d4e
JR
15992000-04-10 Jason Rumney <jasonr@gnu.org>
1600
1601 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
1602
34f3f342
GM
16032000-04-10 Gerd Moellmann <gerd@gnu.org>
1604
1a1b1895
GM
1605 * xdisp.c (setup_echo_area_for_printing): Choose an echo
1606 area buffer, if it's not set up yet.
1607
34f3f342
GM
1608 * indent.c (compute_motion): Set immediate_quit.
1609
be0dbdab
GM
16102000-04-09 Gerd Moellmann <gerd@gnu.org>
1611
c45be9ac
GM
1612 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New
1613 variable.
1614 (realize_tty_face): Suppress boldness if colors are the inverse of
1615 the default colors, and tty_suppress_bold_inverse_default_colors_p
1616 is set.
1617 (Ftty_suppress_bold_inverse_default_colors): New function.
1618 (syms_of_xfaces): Defsubr it.
1619
be0dbdab
GM
1620 * buffer.c (Frestore_buffer_modified_p): New function.
1621 (syms_of_buffer): Defsubr it.
1622
e8413c3b
KR
16232000-04-08 Ken Raeburn <raeburn@gnu.org>
1624
87f67317
KR
1625 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
1626 charset id (int) argument, not a charset (Lisp_Object).
1627
e8413c3b
KR
1628 * coding.h (code_convert_string): Declare.
1629 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
1630 object, as the fourth argument to code_convert_string.
1631
1632 * fontset.c (make_fontset_for_ascii_face): Use XINT on return
1633 value.
1634 (Fset_fontset_font): Use EQ to compare lisp objects.
1635
7c752c80
KR
16362000-04-05 Ken Raeburn <raeburn@gnu.org>
1637
c0333abc
KR
1638 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
1639 a pointer that looks like a lisp object.
1640 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
1641 zero, instead see whether it's an integer object, since they can't
1642 have intervals.
1643 (GET_INTERVAL_OBJECT): Simply assign to the destination.
1644
7c752c80
KR
1645 * dispnew.c (allocate_matrices_for_frame_redisplay,
1646 direct_output_forward_char): Use X(U)INT and make_number as needed
1647 to convert between (unsigned) int values and lisp integers.
1648 * keyboard.c (read_key_sequence): Likewise.
1649 * lread.c (substitute_object_recurse): Likewise.
1650 * fns.c (concat, hash_lookup, hash_remove): Likewise.
1651 * minibuf.c (do_completion, Fminibuffer_complete_word,
1652 Fminibuffer_completion_help): Likewise.
1653 * term.c (produce_special_glyphs): Likewise.
1654
1655 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
1656 * print.c (print_preprocess, print_object): Likewise.
1657
1658 * search.c (compile_pattern): Use NILP when checking for nil.
1659
74e49b38
KR
1660 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
1661 __OPTIMIZE__]: Provide a GNU C macro version that handles
1662 lisp-object unions.
1663 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
1664 field, to better cope with ENABLE_CHECKING and calls that modify a
1665 Lisp_Object using its old value.
1666
685e5ed2
GM
16672000-04-04 Gerd Moellmann <gerd@gnu.org>
1668
c407c570
GM
1669 * window.c (compare_window_configurations): Signal an error
1670 if parameters C1 or C2 aren't window configurations.
1671
685e5ed2
GM
1672 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
1673 AFTER_POTENTIAL_GC calls around calls to functions that can
1674 signal an error and thus invoke the debugger.
1675
587a49ab
GM
16762000-04-03 Gerd Moellmann <gerd@gnu.org>
1677
62f20204
GM
1678 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
1679 an error if decoding fails.
1680
587a49ab
GM
1681 * keyboard.c (lispy_mouse_names): Variable removed.
1682 (Vlispy_mouse_stem): New variable.
1683 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
1684 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
1685 for any mouse button number. Increase size of mouse_syms and
1686 button_down_location as needed. Call modify_event_symbol with
1687 different arguments.
1688 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
1689 Call modify_event_symbol with different arguments.
1690 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
1691 for any button number. Call modify_event_symbol with different
1692 arguments.
1693 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
1694 Accept a string for NAME_ALIST_OR_STEM.
1695
1696 * lisp.h (larger_vector): Add prototype.
1697
1698 * fns.c (larger_vector): Make externally visible.
1699
1700 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
1701
2d1675e4
SM
17022000-04-02 Stefan Monnier <monnier@cs.yale.edu>
1703
1704 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
1705 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
1706 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
1707 we are between str1 and str2.
1708 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
1709 (PATFETCH): Use `TRANSLATE'.
1710 (PATFETCH_RAW): Fetch multibyte char if applicable.
1711 (PATUNFETCH): Remove.
1712 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
1713 When writing a char, write it directly into the pattern buffer rather
1714 than going needlessly through a temp char-array.
1715 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
1716 multibyte magic and remove the useless `#ifdef emacs'.
1717 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
1718 buffer.
1719
1720 * regex.h (struct re_pattern_buffer): Make field `multibyte'
1721 conditional on `emacs'.
1722
1723 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
1724
cc2d8c6b
KR
17252000-04-01 Ken Raeburn <raeburn@gnu.org>
1726
1727 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
1728 non-union-type versions of XMARK and friends here, because XMARK
1729 and friends won't work on an integer field if NO_UNION_TYPE is not
1730 defined.
1731 (make_number): Define as a function if it's not defined as a
1732 macro.
1733
09654086
KR
1734 * composite.c (run_composite_function): Use NILP when checking for
1735 nil.
1736 (syms_of_composite): Delete local var NARGS, pass an int as first
1737 argument to Fmake_hash_table.
1738
2387b382
KR
1739 * editfns.c (text_property_stickiness): Use NILP to test
1740 Lisp_Object boolean value.
1741 (Fmessage_or_box): Don't use NILP to test int variable.
c01fbf95
KR
1742 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
1743 problems reading from and changing the same lisp value in an
1744 XSETSTRING call.
1745
27660e89
GM
17462000-04-01 Gerd Moellmann <gerd@gnu.org>
1747
1748 * term.c (TN_no_color_video): New variable.
1749 (term_init): Intitialize TN_no_color_video.
1750 (enum no_color_bit): New enumeration.
1751 (MAY_USE_WITH_COLORS_P): New macro.
1752 (turn_on_face): Use it to determine if attributes may be used
1753 combined with colors.
1754
3578db3c
KR
17552000-04-01 Ken Raeburn <raeburn@gnu.org>
1756
1757 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
1758 with int lvalues via casts; instead, just yield lisp object
1759 lvalues.
1760 (enlarge_window): Variable sizep now points to Lisp_Object. Use
1761 proper accessor macros.
1762 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
1763 (grow_mini_window): Fix typo getting int value of root->height.
1764
6fc556fd
KR
1765 * xdisp.c (compute_string_pos): Fix order of arguments to
1766 string_pos_nchars_ahead.
1767 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
1768 count arg to variable-arg routines like Frun_hook_with_args and
1769 Fformat.
587a49ab
GM
1770 (back_to_previous_visible_line_start)
1771 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
6fc556fd
KR
1772 fixed-arg routines like Fget_char_property and Fmake_string.
1773 (reconsider_clip_changes): Use XINT when comparing integer lisp
1774 objects, or passing them as int arguments.
587a49ab
GM
1775 (mark_window_display_accurate, insert_left_trunc_glyphs)
1776 (append_space, extend_face_to_end_of_line): Use make_number when
6fc556fd
KR
1777 storing or passing integer values as lisp objects.
1778 (set_cursor_from_row, highlight_trailing_whitespace): Use
1779 INTEGERP, not implicit test against zero, for glyph object.
1780 (try_window_id): Don't use make_number when we want an int value.
1781
1782 * xfaces.c (xlfd_symbolic_value): Make last argument a
1783 Lisp_Object, to be consistent with callers.
1784 (Fbitmap_spec_p): Use XINT to get numeric value of height.
1785 (lface_hash): Apply XFASTINT to lisp values before folding in.
1786
1787 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
1788 fill in window width and height. Pass an int, not a lisp object,
1789 as first arg to Finsert.
1790
6e7b2457
GM
17912000-04-01 Gerd Moellmann <gerd@gnu.org>
1792
610d841e
GM
1793 * xfaces.c (realize_basic_faces): Block input while realizing
1794 the faces.
1795
6e7b2457
GM
1796 * keyboard.c (lispy_mouse_names): Add additional mouse names.
1797
1798 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
1799
aa110c0c
GM
18002000-03-31 Gerd Moellmann <gerd@gnu.org>
1801
1802 * xterm.c (x_produce_glyphs): When displaying unibyte text
610d841e 1803 or ASCII, handle case that per-char metric is null.
aa110c0c 1804
8801a864
KR
18052000-03-30 Ken Raeburn <raeburn@gnu.org>
1806
c6129d7e
KR
1807 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
1808
8801a864
KR
1809 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW,
1810 XSUBR, XBUFFER): Verify correct object type before returning
1811 pointer, using eassert.
1812 * frame.h (XFRAME): Likewise.
1813
1814 * buffer.c (Frename_buffer, Fset_buffer_multibyte,
1815 swap_out_buffer_local_variables, Fmove_overlay): Don't apply
1816 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong
1817 type.
1818 * data.c (set_internal): Likewise.
1819 * dispextern.h (WINDOW_WANTS_MODELINE_P,
1820 WINDOW_WANTS_HEADER_LINE_P): Likewise.
1821 * fileio.c (auto_save_1): Likewise.
1822 * insdel.c (check_markers): Likewise.
1823 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
1824 * undo.c (record_insert): Likewise.
1825 * vmsproc.c (child_sig): Likewise.
1826 * window.c (unshow_buffer, window_loop): Likewise.
1827 * xterm.c (x_erase_phys_cursor): Likewise.
1828
8e7af858
GM
18292000-03-30 Gerd Moellmann <gerd@gnu.org>
1830
1831 * xfns.c (free_image_cache): Free the cache structure itself
1832 last, after all its members have been freed.
1833
1834 * lisp.h (xstrdup): Add prototype.
1835
1836 * alloc.c (xstrdup): Moved here from xfaces.c.
1837 (allocating_for_lisp): Variable removed.
1838 (lisp_malloc): Block input around the calls to malloc and
1839 mem_insert.
1840
1841 * xfaces.c (realize_tty_face): Use find_symbol_value instead
1842 of Fsymbol_value.
1843 (xstrdup): Moved to alloc.c.
1844
e0b8c689
KR
18452000-03-29 Ken Raeburn <raeburn@gnu.org>
1846
b96f9fb7
KR
1847 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
1848
1849 * emacs.c (main): Fix sense of no-loadup test.
1850
e0b8c689
KR
1851 * config.in (ENABLE_CHECKING): Undef.
1852
1853 * lisp.h (struct interval): Replace "parent" field with a union of
1854 interval pointer and Lisp_Object; add new bitfield to use as
1855 discriminant. Change other flag fields to bitfields.
1856 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
1857 is defined and the supplied test fails, print a message and
1858 abort.
1859 (eassert): New macro. Use CHECK to provide an assert-like
1860 facility.
1861
1862 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
1863 pointers; abort if the value looks like a lisp object.
1864 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT,
1865 SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
1866 Modify for new interval parent definition.
1867
1868 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE,
1869 UNMARK_BALANCE_INTERVALS): Update references that need an
1870 addressable lisp object in the interval structure.
1871 (die): New function.
1872 (suppress_checking): New variable.
1873
1874 * intervals.c (interval_start_pos): Just return 0 if there's no
1875 parent object.
1876
f83c5440
GM
18772000-03-29 Gerd Moellmann <gerd@gnu.org>
1878
1879 * lread.c (read1): Accept `.' (period) as symbol start like in CL
1880 and earlier Emacs versions.
1881
1882 * keyboard.c (Ftop_level): Cancel busy-cursor.
1883
1884 * eval.c (call_debugger): Cancel busy-cursor.
1885
fdce64ff
KH
18862000-03-29 Kenichi Handa <handa@etl.go.jp>
1887
1888 * search.c (Freplace_match): Adjust multibyteness of the current
1889 buffer and NEWTEXT. Free allocated memory before signaling an
1890 error.
1891
f6a3f532
SM
18922000-03-28 Stefan Monnier <monnier@cs.yale.edu>
1893
1894 * regex.c (analyse_first): New function obtained by ripping out most
1895 of re_compile_fastmap and generalizing it a little bit so that it
1896 can also just return whether a given (sub)pattern can match the empty
1897 string or not.
1898 (regex_compile): Use `analyse_first' to decide whether the loop-check
1899 needs to be done or not for *, +, *? and +? (the loop check is costly
1900 for non-greedy repetition).
1901 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
1902
e9b309ac
DL
19032000-03-28 Dave Love <fx@gnu.org>
1904
bb15bd9a
DL
1905 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k,
1906 alpha.
1907
e9b309ac
DL
1908 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
1909
ed0767d8
SM
19102000-03-27 Stefan Monnier <monnier@cs.yale.edu>
1911
1912 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
1913 an expression.
1914 (enum re_opcode_t): Update description of succeed_n.
1915 (PATFETCH): Always define.
1916 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
1917 operators, char classes, shy-groups and intervals).
1918 Optimize special cases of intervals so as to only use succeed_n and
1919 jump_n when really needed.
1920 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
1921 that we don't have to handle the special cases any more.
1922 Simplify on_failure_jump handling as well.
1923
e11e7e46
JR
19242000-03-28 Jason Rumney <jasonr@gnu.org>
1925
1926 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
1927
88faab89
GM
19282000-03-27 Gerd Moellmann <gerd@gnu.org>
1929
182ff242
GM
1930 * s/freebsd.h (GC_SETJMP_WORKS): Define.
1931
1932 * s/msdos.h (GC_SETJMP_WORKS): Define.
427ec082 1933
182ff242
GM
1934 * alloc.c (mark_maybe_object): New function.
1935 (mark_memory): Use it.
1936 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
1937 (setjmp_tested_p, longjmp_done): New variables.
1938 (test_setjmp): New function.
1939 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
1940 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
1941
c1005d06
GM
1942 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
1943 to DEC_TEXT_POS and INC_TEXT_POS.
1944
1945 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
1946 with parameter MULTIBYTE_P.
1947
427ec082 1948 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter
c1005d06
GM
1949 MULTIBYTE_P.
1950
7439e5b9 1951 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
182ff242
GM
1952 buffers because it looks for multibyte character byte sequences
1953 which don't exist in unibyte text.
7439e5b9 1954
d9c545da
GM
1955 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
1956
11fd416e 1957 * xfaces.c (register_color, unregister_color, unregister_colors)
d9c545da
GM
1958 [DEBUG_X_COLORS]: New functions.
1959 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
1960
1961 * xfns.c (x_set_cursor_color): Get color reference counts right.
1962
1963 * xterm.c (x_copy_color): New function.
1964 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
1965
1966 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
1967 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
1968 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
1969 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
1970 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
1971 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
1972 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
1973 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
1974 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
1975 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
1976
11fd416e
GM
1977 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
1978 names for handling per-buffer variables.
d9c545da
GM
1979
1980 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
1981 instead of MAX_BUFFER_LOCAL_VARS.
1982 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
1983
1984 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
1985
88faab89
GM
1986 * xfns.c (x_specified_cursor_type): New function.
1987 (x_set_cursor_type): Use it.
1988
1989 * buffer.h (struct buffer): Add cursor_type.
1990
d80f42b7
SM
19912000-03-26 Stefan Monnier <monnier@cs.yale.edu>
1992
1993 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
427ec082 1994 (print_partial_compiled_pattern, re_compile_fastmap): Handle new
88faab89 1995 opcode.
d80f42b7
SM
1996 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
1997 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
1998 executing it as well as when popping it off the stack to find infinite
1999 loops in non-greedy repetition operators.
2000
89e80928
GM
20012000-03-26 Gerd Moellmann <gerd@gnu.org>
2002
3d4ff2dd
GM
2003 * doc.c (Qfunction_documentation): New variable.
2004 (syms_of_doc): Initialize Qfunction_documentation.
2005 (Fdocumentation): If FUNCTION is a symbol with non-nil
2006 `function-documentation' property, return a documentation derived
2007 from that.
2008
bd96bd79
GM
2009 * buffer.c (syms_of_buffer): Add default-cursor-type.
2010 (init_buffer_once): Don't let cursor_type have a local value
2011 in every buffer.
2012
19d1bc27
GM
2013 * xterm.c (x_display_and_set_cursor): Choose cursor depending
2014 on buffer-local value of cursor_type.
2015 (x_draw_bar_cursor): Add parameter WIDTH.
2016
2017 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
2018 (init_buffer_once): Set default cursor_type value to t.
2019 Mark cursor_type as local everywhere.
2020 (syms_of_buffer): New per-buffer variable cursor-type.
2021
89e80928
GM
2022 * buffer.h (struct buffer): Remove member local_var_flags,
2023 add local_flags.
2024 (MAX_BUFFER_LOCAL_VARS): New macro.
2025 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
2026 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
2027 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
2028 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
2029
2030 * print.c (print_object): Use new macros for per-buffer
2031 variables.
2032
2033 * category.c (Fset_category_table): Use new macros for per-buffer
2034 variables.
2035
2036 * buffer.c (buffer_permanent_local_flags): Make a char array.
2037 (max_buffer_local_idx): New variable.
2038 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
2039 for new handling of per-buffer variables.
2040 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
2041 (init_buffer_once): Initialize per-buffer vars differently.
2042 Set max_buffer_local_idx.
2043
2044 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
2045 variables.
2046
2047 * lread.c (defvar_per_buffer): Use new macros for per-buffer
2048 variables.
2049
2050 * data.c (do_symval_forwarding, store_symval_forwarding)
2051 (find_symbol_value, set_internal, default_value, Fset_default)
2052 (Fkill_local_variable, Flocal_variable_p): Use new macros for
2053 per-buffer variables.
2054
2055 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
2056
9a0dd3dc
GM
20572000-03-24 Gerd Moellmann <gerd@gnu.org>
2058
b68c375f
GM
2059 * xterm.c (x_term_init): Unblock input around call1 of
2060 Qvendor_specific_keysyms.
2061
9a0dd3dc
GM
2062 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
2063 (find_defun_start): Consider an open parenthesis in column 0
2064 a defun start only if open_paren_in_column_0_is_defun_start is set.
2065 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
2066
7973e637
SM
20672000-03-24 Stefan Monnier <monnier@cs.yale.edu>
2068
2069 * eval.c (Fautoload): Add entry in load-history (if after dump).
2070 * lread.c (load-history): Update docstring.
2071
39210e90
GM
20722000-03-24 Gerd Moellmann <gerd@gnu.org>
2073
2074 * indent.c (Fvertical_motion): Always use the current buffer.
2075 Temporarily change the window's buffer, if necessary.
2076
72db3ab5
GM
20772000-03-23 Gerd Moellmann <gerd@gnu.org>
2078
2079 * xterm.c (fast_find_position): Make sure not to consider rows
2080 not visible in the window.
2081
990b2375
SM
20822000-03-22 Stefan Monnier <monnier@cs.yale.edu>
2083
2084 * regex.c (enum syntaxcode): Provide default for non-Emacs.
2085 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
2086
ff4df011
JR
20872000-03-22 Jason Rumney <jasonr@gnu.org>
2088
2089 * w32menu.c (single_submenu): Set help string to NULL if none.
2090 (w32_menu_show): Set help string correctly.
2091 (add-menu-item): Set help string in MIIM_DATA for menu item.
2092 Load SetMenuItemInfoA explicitly.
2093 (w32_menu_display_help): New function.
427ec082 2094
ff4df011
JR
2095 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
2096 (QCdata): Moved to xdisp.c.
2097
2098 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
2099 (Vw32_charset_to_codepage_alist): Removed.
2100 (Vw32_charset_info_alist): New variable.
2101 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312,
2102 chinesebig5, oem, easteurope, turkish, baltic, russian, arabic,
2103 greek, hebrew, thai, johab, mac, unicode]): New symbols.
2104 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
2105 with TODO comment.
2106 (w32_codepage_for_font): Use Vw32_charset_info_alist.
2107 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
2108 Define Vw32_charset_info_alist and w32_charset symbols.
2109
21102000-03-22 Jason Rumney <jasonr@gnu.org>
2111
2112 * makefile.nt (w32bdf.obj): Update dependencies.
2113
2114 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
2115
2116 * w32fns.c: Include fontset.h after dispextern.h.
2117 (Fx_create_frame): Do not create fontset.
2118 (w32_load_system_font): Doc fix.
2119 (Fx_close_connection): Free full_name if it is not shared.
2120
2121 * w32term.c: Include fontset.h after dispextern.h.
2122 (x_get_glyph_face_and_encoding): New parameter two_byte_p. Callers
2123 updated.
2124 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
2125 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
2126 (w32_font_is_double_byte): New function, needs body.
2127 (x_append_glyph): Set glyph->glyph_not_available_p.
2128 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
2129 it->charset. If it->multibyte_p is zero and it->c is a multibyte
2130 character, convert it to a unibyte character.
2131 (struct glyph_string): Delete member `charset'.
2132 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
2133 calculating it is found.
2134 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
2135 the case that per char metric is not available correctly.
2136 (x_fill_glyph_string): Handle the case that the specific glyph is
2137 not available correctly.
2138 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
2139 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
2140 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
2141 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
2142 fontset. Don't call FS_LOAD_FONT.
2143
439d5cb4
KR
21442000-03-22 Ken Raeburn <raeburn@gnu.org>
2145
2146 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
2147 (INT_LISPLIKE): New macro.
2148 (NULL_INTERVAL_P): Use it.
2149 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT,
2150 SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT,
2151 GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
2152
2153 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
2154 explicit references to "parent" field of struct interval and
2155 associated unclean type conversions.
2156 * intervals.c (create_root_interval, root_interval, rotate_right,
2157 rotate_left, balance_possible_root_interval, split_interval_right,
2158 split_interval_left, interval_start_pos, find_interval,
2159 next_interval, previous_interval, update_interval,
2160 adjust_intervals_for_insertion, delete_node, delete_interval,
2161 adjust_intervals_for_deletion, merge_interval_right,
2162 merge_interval_left, reproduce_tree, graft_intervals_into_buffer,
2163 copy_intervals_to_string): Likewise.
2164 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
2165 Likewise.
2166 * syntax.c (update_syntax_table): Likewise.
2167
2168 * intervals.c (reproduce_tree_obj): New function, like
2169 reproduce_tree but takes a Lisp_Object for the parent. Declare
2170 with prototype.
2171 (graft_intervals_into_buffer): Use it when appropriate.
2172 (reproduce_tree): Declare with prototype.
2173 (balance_possible_root_interval): Check that the parent is a lisp
2174 object before trying to examine its type.
2175
ee1c5b21
GM
21762000-03-22 Gerd Moellmann <gerd@gnu.org>
2177
2178 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
2179 as strings only if both are known to be strings.
2180
2181 * s/openbsd.h (LIBS_TERMCAP): Undef.
2182
1fb352e0
SM
21832000-03-21 Stefan Monnier <monnier@cs.yale.edu>
2184
2185 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
2186 definitions for non-Emacs compilation.
2187 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
2188 outside of `#ifdef emacs'.
2189 (print_partial_compiled_pattern): Update.
2190 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
2191 (re_compile_fastmap): Merge handling of charset and charset_not (for
2192 emacs and non-emacs compilation as well).
2193 Similarly for (not)categoryspec and (not)syntaxspec.
2194 Don't use the fastmap when reaching `anychar' since the added
2195 complexity is not justified.
2196 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
2197 and (not)syntaxspec. Merge (not)categoryspec.
2198
fdaa1f77
KH
21992000-03-22 Kenichi Handa <handa@etl.go.jp>
2200
ff1a0d8e
KH
2201 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P,
2202 FACE_FOR_CHAR): Define them differently for the configuration of
2203 --without-x.
fdaa1f77 2204
d152fb46
DL
22052000-03-21 Dave Love <fx@gnu.org>
2206
2207 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
2208 doc string.
2209
d2cafc8c
GM
22102000-03-21 Gerd Moellmann <gerd@gnu.org>
2211
2212 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
2213 (lface_fully_specified_p): Don't check contents of
2214 LFACE_FONT_INDEX because that attribute is optional.
2215 (realize_x_face): Remove now unwarranted xassert.
2216
9111d4b5
KH
22172000-03-21 Kenichi HANDA <handa@etl.go.jp>
2218
2219 The following changes are to make font selection based on
2220 characters, not charset. In addition, they recover fontset
2221 facilities while utilizing the new font selection mechanism.
2222
6c4bfdc0
KH
2223 * Makefile.in (fontset.o): Depend on dispextern.h.
2224
2225 * alloc.c (mark_face_cache): Don't mark face->registry.
2226
9111d4b5
KH
2227 * dispextern.h (struct glyph): New member glyph_not_available_p.
2228 Use 22 bits for face_id.
2229 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
2230 (struct face): Delete member registry, new member ascii_face.
2231 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
2232 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
2233 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
2234 (struct it): Delete member charset, new member
2235 glyph_not_available_p.
2236
2237 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
2238 (struct fontset_info, struct fontset_data): Structs removed.
2239 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset,
2240 Vglobale_fontset_alist, font_idx_temp): Externs removed.
2241 (fs_load_font, fs_query_fontset): Adjusted for new argument.
2242 (fs_free_face_fontset, fontset_font_pattern,
2243 face_suitable_for_char_p, face_for_char,
2244 make_fontset_for_ascii_face): Extern them.
2245 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
2246 (FS_LOAD_FACE_FONT): New macro.
2247
2248 * fontset.c: All codes rewritten or adjusted for the change of
2249 fontset implementation. Now fontset is represented by char table.
2250 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl): Variables
2251 removed.
2252 (my_strcasecmp): Function removed.
2253 (Vfontset_table, next_fontset_id, Vdefault_fontset): New
2254 variables.
2255 (AREF, ASIZE): New macros.
2256 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME,
2257 FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF,
2258 FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
2259 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset,
2260 fontset_id_valid_p, font_family_registry, fontset_name,
2261 fontset_ascii, free_face_fontset, face_suitable_for_char_p,
2262 face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
2263 New functions.
2264 (fs_load_font): New arg FACE. Caller changed.
2265 (fs_query_fontset): Argument changed. Caller changed.
2266 (Fquery_fontset): call fs_query_fontset.
2267 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
2268 Functions removed.
2269 (clear_fontset_elements, check_registry_encoding,
2270 check_fontset_name): New functions.
2271 (syms_of_fontset): Set char-table-extra-slots property of fontset
2272 to 3. Staticpro and initialize Vfontset_table and
2273 Vdefault_fontset. Defsubr fontset_font and fontset_list.
2274
2275 * frame.h (struct frame): Member `fontset_data' removed.
2276 (FRAME_FONTSET_DATA): Macro removed.
2277
2278 * frame.c (make_frame): Don't allocate f->fontset_data.
2279 (Fdelete_frame): Don't free f->fontset_data.
2280
6c4bfdc0
KH
2281 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
2282
9111d4b5
KH
2283 * xdisp.c (charset_at_position): Function removed.
2284 (init_iterator): Don't set member charset of struct `it'.
2285 (handle_face_prop, reseat_to_string, set_iterator_to_next,
2286 next_element_from_display_vector, insert_left_trunc_glyphs):
2287 Likewise.
2288 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
2289 FACE_FOR_CHARSET.
2290 (get_next_display_element, append_space,
2291 extend_face_to_end_of_line): Likewise.
2292
2293 * xfaces.c (Qx_charset_registry, Vface_default_registry):
2294 Variables removed.
2295 (clear_font_table, frame_update_line_height, load_face_font):
2296 Adjusted for the change of fontset implementation.
2297 (load_face_fontset_font): Function removed.
2298 (pixel_point_size): New function.
2299 (font_list): Argument type changed. Caller changed.
2300 (LFACE_FONT): New macro.
2301 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
2302 (set_lface_from_font_name): Type of arg FONTNAME is changed to
2303 Lisp_Object. Determine the font name by actually loading a font
2304 by the specified pattern. Set LFACE_FONT (lface) to the specified
2305 pattern. Even if a font is not found, don't try alternatives.
2306 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
2307 (set_font_frame_param): If `font' is specified in lface, use it.
2308 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
2309 (lface_same_font_attributes_p): Likewise.
2310 (make_realized_face): Arguent changed. Caller changed. Set
2311 face->ascii_face to face itself.
2312 (free_realized_face): Free face->fontset if face is for ASCII.
2313 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p,
2314 deduce_unibyte_registry, x_charset_registry): Functions removed.
2315 (free_realized_multibyte_face): New function.
2316 (lookup_face, lookup_named_face, lookup_derived_face): Argument
2317 changed. Caller changed.
2318 (try_font_list): Argument type changed.
2319 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
2320 (choose_face_font): Argument changed. Handle fontset properly.
2321 (choose_face_fontset_font): Function removed.
2322 (realize_default_face, realize_named_face): Don't remove the
2323 former face here.
2324 (realize_face): Argument changed. Caller changed. Remove face
2325 with the arg former_face_id in advance. Load font for the new
2326 face.
2327 (realize_x_face): Argument changed. Caller changed. For a
2328 multibyte character, share fontset with base_face. For a single
2329 byte character, make a new realized fontset. Don't load a font
2330 here.
2331 (realize_tty_face): Argument changed. Caller changed.
2332 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
2333 (face_at_buffer_position): Don't check multibyte_p for returning
2334 DEFAULT_FACE_ID.
2335 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
2336 FACE_SUITABLE_FOR_CHARSET_P.
2337 (syms_of_xfaces): Remove code for Qx_charset_registry and
2338 Vface_default_registry.
2339
6c4bfdc0
KH
2340 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
2341 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
9111d4b5
KH
2342 (x_per_char_metric): Don't try FONT->default_char. Even if
2343 pcm->width is zero, glyph bits may exist.
2344 (x_encode_char): Always initialize char2b->byte1.
2345 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
2346 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller
2347 changed.
2348 (x_append_glyph): Set glyph->glyph_not_available_p.
2349 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
2350 it->charset. Handle the case that per char metric is not
2351 available. If it->multibyte_p is zero and it->c is a multibyte
2352 character, convert it to a unibyte character.
2353 (struct glyph_string): Delete member `charset'.
2354 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
2355 the case that per char metric is not available correctly.
2356 (x_fill_glyph_string): Handle the case that the specific glyph is
2357 not available correctly.
2358 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
2359 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
2360 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
2361 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
2362 fontset. Don't call FS_LOAD_FONT.
2363
2364 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
2365 (x_create_tip_frame): Likewise.
2366 (Fx_close_connection): Free full_name of font_info.
2367
2368 * fns.c (optimize_sub_char_table): New function.
2369 (Foptimize_char_table): New function.
2370 (syms_of_fns): Defsubr Soptimize_char_table.
2371
b33dd3b0
GM
23722000-03-20 Gerd Moellmann <gerd@gnu.org>
2373
2374 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
2375 only if buffer is displayed in some window.
2376
2377 * xdisp.c (handle_single_display_prop): Initialize local `value'.
2378 (try_window_reusing_current_matrix): Don't call scroll run
2379 function if run's current and desired position are the same;
2380 this prevents cursor flickering.
2381
4e8a9132
SM
23822000-03-19 Stefan Monnier <monnier@cs.yale.edu>
2383
2384 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
2385
2386 * regex.c (RE_STRING_CHAR): New macro.
2387 (GET_CHAR_AFER_2): Remove.
2388 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
2389 (enum re_opcode_t): Remove on_failure_jump_exclusive.
2390 (print_partial_compiled_pattern, re_compile_fastmap)
2391 (re_match_2_internal): Remove on_failure_jump_exclusive.
2392 (regex_compile): Turn optimizable P+ loops into PP*, so that the
2393 optimization only need to work for * (ie. can use of_keep_string_jump).
2394 Remove the special case for .*\n since it is now covered by the general
2395 optimization.
2396 (re_search_2): Don't bother with `room'.
2397 (skip_one_char): New function.
2398 (skip_noops): Simplify since `memory' is not needed any more.
2399 (mutually_exclusive_p): Restructure slightly to use `switch' and
2400 add handling for "all" remaining cases.
2401 (re_match_2_internal): Change on_failure_jump_smart to use
2402 on_failure_keep_string_jump (and redirect the end-of-loop jump)
2403 rather than on_failure_jump_exclusive.
2404
2136fdd4
GM
24052000-03-19 Gerd Moellmann <gerd@gnu.org>
2406
2407 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
2408 number of bits per RGB because it's everywhere used as the depth
2409 of the visual.
2410
2411 * term.c (calculate_costs): Remove code dealing with X frames.
2412
e53ae11c
RS
24132000-03-19 Richard M. Stallman <rms@caffeine.ai.mit.edu>
2414
2415 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
2416
d7b511c4
GM
24172000-03-18 Gerd Moellmann <gerd@gnu.org>
2418
2419 * lread.c (read_integer): Unread the last char not consumed.
2420
16b5d424
GM
24212000-03-17 Gerd Moellmann <gerd@gnu.org>
2422
2423 * xterm.c (x_update_window_cursor): Don't update in frames
d7b511c4 2424 which are in the process of being deleted.
16b5d424 2425
1fa28578
GM
24262000-03-16 Gerd Moellmann <gerd@gnu.org>
2427
83488cce
GM
2428 * Makefile.in (mostlyclean): Add `*.core'.
2429 (clean): Add `bootstrap-emacs'.
2430
1fa28578
GM
2431 * lread.c (read_integer): New function.
2432 (read1): Support read syntax #o, #x, #b, #r.
2433
99633e97
SM
24342000-03-15 Stefan Monnier <monnier@cs.yale.edu>
2435
1fa28578
GM
2436 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
2437 make sure POINTER_TO_OFFSET gives the same value before and after
2438 PREFETCH. Use `dfail' to guarantee "atomic" matching.
99633e97
SM
2439 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
2440 (debug): Now only active if > 0 rather than if != 0.
2441 (DEBUG_*): Update for the new meaning of `debug'.
1fa28578
GM
2442 (print_partial_compiled_pattern): Add missing `succeed' case. Use
2443 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
2444 in `succeed_n', `jump_n' and `set_number_at'.
99633e97
SM
2445 (store_op1, store_op2, insert_op1, insert_op2)
2446 (at_begline_loc_p, at_endline_loc_p): Add prototype.
1fa28578
GM
2447 (group_in_compile_stack): Move to after its arg's types are
2448 declared and add a prototype.
99633e97 2449 (PATFETCH): Define in terms of PATFETCH_RAW.
1fa28578
GM
2450 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)'
2451 wrapper.
99633e97 2452 (QUIT): Redefine as a nop except for NTemacs.
1fa28578
GM
2453 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
2454 indentation of the greedy-op and shy-group code.
99633e97
SM
2455 (at_(beg|end)line_loc_p): Fix argument's types.
2456 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
2457 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
2458 (MATCHING_IN_FIRST_STRING): Remove.
1fa28578
GM
2459 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
2460 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
2461 QUIT unconditionally.
99633e97 2462
699238d9
GM
24632000-03-15 Gerd Moellmann <gerd@gnu.org>
2464
2465 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
2466 a sole completion.
2467
2468 * process.c (send_process): Add a hint that the function
2469 can call Lisp code to its comment.
2470
2471 * lread.c (load_dangerous_libraries): New variable.
2472 (Vbytecomp_version_regexp): New variable.
2473 (safe_to_load_p): New function.
2474 (Fload): Handle files not compiled with Emacs specially.
2475 (syms_of_lread): New Lisp variable load-dangerous-libraries.
2476
34e23e5a
GM
24772000-03-14 Gerd Moellmann <gerd@gnu.org>
2478
9c763cca
GM
2479 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
2480
2481 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
2482 support functions only if HAVE_X11R6_XIM is defined.
2483 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
2484
2485 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
2486
2487 * xfns.c (X_I18N_INHIBITED): Don't define.
2488 (create_frame_xic): Remove conditional compilation on
2489 X_I18N_INHIBITED.
2490 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
2491
2492 * config.in (HAVE_X_I18N): Moved here from xterm.h.
2493 (HAVE_X11R6_XIM): Define.
2494
2495 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
2496
34e23e5a
GM
2497 * xterm.c (x_term_init): Add support for X resource `synchronous'.
2498 If set, call XSynchronize.
2499
66f0296e
SM
25002000-03-13 Stefan Monnier <monnier@cs.yale.edu>
2501
34e23e5a
GM
2502 * regex.c: Declare a new type `re_char' used throughout the code
2503 for the string char type. It's `const unsigned char' to match the
2504 rest of Emacs. Consistently make sure all pointers to strings use
2505 it and make sure all pointers into the pattern use `unsigned
2506 char'.
66f0296e 2507 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
34e23e5a
GM
2508 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
2509 code duplication.
66f0296e
SM
2510
2511 * charset.h (GET_CHAR_AFTER_2): Remove.
2512 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
2513
854a025c
KR
25142000-03-12 Ken Raeburn <raeburn@gnu.org>
2515
2516 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
2517 variable before the invocation of YMF_PASS_LDFLAGS, in case both
2518 of them try to use backquotes.
2519
b9d2c7e2
DL
25202000-03-12 Dave Love <fx@gnu.org>
2521
2522 * unexelf.c: Restore changes of 1999-10-19.
2523 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
2524 fix its type and alignment; copy it from current process.
2525
5e5dff44
GM
25262000-03-12 Gerd Moellmann <gerd@gnu.org>
2527
9b2f3c38
GM
2528 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
2529 has been found. Fix bug not computing timer's predecessor.
2530
427ec082 2531 * fileio.c (Fread_file_name): Handle case that DIR contains a
9172b88d
GM
2532 file name.
2533
e1cff360
GM
2534 * window.c (Fsave_window_excursion): Doc fix.
2535
5e5dff44
GM
2536 * xfns.c (x_defined_color): Rewritten to use
2537 x_allocate_nearest_color.
2538
e411ce4b
EZ
25392000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
2540
2541 * msdos.c (vga_installed): New function, code moved from
2542 dos_set_window_size.
2543 (Qbar, Qcursor_type, outside_cursor): New variables.
2544 (syms_of_msdos): Intern and staticpro them.
2545 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
2546 shape used outside Emacs when called for the first time.
2547 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
2548 cursor shape used outside Emacs.
2549 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
2550 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
2551 type has changed.
2552 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
2553 parameters specify the cursor. Make qreverse a global
2554 variable (renamed to Qreverse).
2555
80460654
GM
25562000-03-09 Gerd Moellmann <gerd@gnu.org>
2557
2558 * fns.c (Fy_or_n_p): Cancel busy-cursor.
2559
95cd4c40
SM
25602000-03-08 Stefan Monnier <monnier@cs.yale.edu>
2561
2562 This is a big redesign of failure-stack and register handling, prompted
2563 by bugs revealed when trying to add shy-groups. Overall, what happened
2564 is that loops are now structured a little differently, groups can be
2565 shy and the code is a little simpler.
2566
2567 * regex.h: Update the copyright.
2568 (RE_SHY_GROUPS): New value.
2569 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
2570 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
2571
80460654
GM
2572 * regex.c (enum re_opcode_t): Remove jump_past_alt,
2573 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
2574 on_failure_jump_(exclusive, loop and smart). Also fix the comment
2575 for (start|stop)_memory since they now only take one argument (the
2576 second has becomes unnecessary).
2577 (print_partial_compiled_pattern): Adjust for changes in
2578 re_opcode_t.
2579 (print_compiled_pattern): Use %ld to printf long ints and flush to
2580 make debugging a little easier.
95cd4c40
SM
2581 (union fail_stack_elt): Make the integer unsigned.
2582 (struct fail_stack_type): Add a `frame' element.
2583 (INIT_FAIL_STACK): Init `frame' as well.
2584 (POP_PATTERN_OP): New macro for re_compile_fastmap.
2585 (DEBUG_PUSH, DEBUG_POP): Remove.
2586 (NUM_REG_ITEMS): Remove.
2587 (NUM_NONREG_ITEMS): Adjust.
80460654
GM
2588 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
2589 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
95cd4c40 2590 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
80460654
GM
2591 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP): New
2592 macros.
2593 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
2594 address pushed is not the destination of the jump but the source
2595 of it instead.
95cd4c40
SM
2596 (NUM_FAILURE_ITEMS): Remove.
2597 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
80460654
GM
2598 registers before the actual failure point). Don't hardcode any
2599 meaning for str==NULL anymore.
95cd4c40 2600 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
80460654
GM
2601 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
2602 Remove.
95cd4c40
SM
2603 (REG_UNSET_VALUE): Use NULL (why not?).
2604 (compile_range): Remove declaration since it doesn't exist.
2605 (struct compile_stack_elt_t): Remove inner_group_offset.
2606 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
2607 (regex_grow_registers): Remove dead code.
2608 (FIXUP_ALT_JUMP): New macro.
80460654
GM
2609 (regex_compile): Add shy-groups Change loops to use
2610 on_failure_jump_smart&jump instead of
2611 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
2612 initial (dummy_failure_)jump. Remove c1_base (looks like unused
2613 variable to me). Use `jump' instead of `jump_past_alt' and don't
2614 bother with push_dummy_failure in alternatives since it is now
2615 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
2616 emacs' for (re)allocating the stack.
2617 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
2618 from loop when bufp->can_be_null rather than jumping to `done'.
2619 Avoid jumping backwards so as to ensure termination. Use
2620 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
2621 backreferences. Remove dead code in handling of `anychar'.
95cd4c40 2622 (skip_noops, mutually_exclusive_p): New functions taken from the
80460654
GM
2623 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
2624 improve mutually_exclusive_p to handle ".+\n".
2625 (lowest_active_reg, highest_active_reg,
2626 NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
2627 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
2628 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
2629 variables. Push register (in `start_memory') on the stack rather
2630 than storing it in old_reg(start|end). Remove the cycle detection
2631 from `stop_memory', replaced by the use of on_failure_jump_loop
2632 for greedy loops. Add code for the new on_failure_jump_<foo>.
2633 Remove ad-hoc code in `on_failure_jump' to push more registers in
2634 the case of a loop. Take out code from `maybe_pop_jump' into
2635 separate functions and adapt it to the semantics of
2636 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
2637 and push_dummy_failure. Remove dummy_failure handling and
2638 handling of `failures to jump to on_failure_jump' (this last one
2639 was already dead code, it seems).
2640 (group_match_null_string_p, alt_match_null_string_p)
2641 (common_op_match_null_string_p): Remove.
95cd4c40 2642
7397acc4
DL
26432000-03-08 Dave Love <fx@gnu.org>
2644
2645 * config.in: Don't depend on __STDC__ for volatile.
2646 Add POINTER_TYPE, PTR, PROTOTYPES.
2647
2648 * hftctl.c, strftime.c: Use PROTOTYPES.
2649 * eval.c (find_handler_clause): Likewise.
2650
2651 * mem-limits.h: Use POINTER_TYPE.
2652
2653 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
2654 (memory_warnings): Declare using POINTER_TYPE.
2655
5e91ff9e
GM
26562000-03-08 Gerd Moellmann <gerd@gnu.org>
2657
feab4fba
GM
2658 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
2659
25edb08f
GM
2660 * xdisp.c (display_echo_area): Temporarily inhibit garbage
2661 collection.
2662
5e91ff9e
GM
2663 * xfns.c: Remove obsolete code in #if 0.
2664 (Fx_focus_frame): New function.
2665
a735b7e1
KH
26662000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
2667
2668 * coding.c (coding_category_name): Add coding-category-utf-8,
2669 coding-category-utf-16-be, coding-category-utf-16-le.
2670 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
2671 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
2672 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
2673 (detect_coding_utf_8): New function.
2674 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
2675 UTF_16_LOW_SURROGATE_P): New macros.
2676 (detect_coding_utf_16): New function
2677 (detect_coding_mask): When priorities are specified, skip any
2678 categories that have `nil' coding-system. Fix bug of returning
2679 wrong mask when PRIORITIES is specified and detect_coding_XXX()
2680 returns a mask not set in PRIORITIES.
2681 (detect_eol_type_in_2_octet_form): New function.
2682 (detect_eol): selects detect_eol_type_XXX to call according to
2683 cooding->category_idx.
2684 (detect_coding_system): Remove `nil' coding-system in the result.
2685 (Fupdate_coding_systems_internal): Update all coding-categories.
2686
2687 * coding.h (CODING_CATEGORY_IDX_UTF_8,
2688 CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE): New
2689 macros.
2690 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY,
2691 CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
2692 CODING_CATEGORY_IDX_UTF_16_LE.
2693 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE,
2694 CODING_CATEGORY_MASK_UTF_16_LE): New macros.
2695 (CODING_CATEGORY_MASK_ANY): Include the above macros.
2696 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
2697
9994cc69
GM
26982000-03-07 Gerd Moellmann <gerd@gnu.org>
2699
e9b4e5ff
GM
2700 * doc.c (Fdocumentation_property): If value is not a string,
2701 and doesn't refer to etc/DOC, evaluate it to obtain a string.
2702
f7daf1e1
GM
2703 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
2704 close the display with XtCloseDisplay. This caused a bus error
2705 on OpenWindows.
2706
9994cc69
GM
2707 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
2708 complete but not unique.
2709
4336c705
GM
27102000-03-06 Gerd Moellmann <gerd@gnu.org>
2711
18bb0684
GM
2712 * process.c (send_process): Remove local variable `procname' that
2713 might become invalid when a GC happens. Instead, access the
2714 process name slot directly.
2715
4336c705
GM
2716 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
2717 orig_height if set.
2718
2719 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
2720 orig_height if set.
2721
515d0d0e
EZ
27222000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
2723
2724 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
2725 glyph matrices have been freed.
2726
100b3cbb
GM
27272000-03-05 Gerd Moellmann <gerd@gnu.org>
2728
50df5e5a 2729 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
6178bc23 2730 (bootstrap-temacs): Set LC_ALL to C like for temacs.
50df5e5a
GM
2731
2732 * xfns.c (QCdata): Moved to xdisp.c.
2733
2734 * xdisp.c (QCdata): Moved here from xfns.c.
2735 (syms_of_xdisp): Initialize QCdata.
2736
2737 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
2738
2739 * window.c (coordinates_in_window): Use
2740 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
2741 FRAME_INTERNAL_BORDER_WIDTH.
2742
100b3cbb 2743 * xdisp.c (try_window_id): Recompute unchanged information if
4336c705 2744 it is obviously invalid.
100b3cbb
GM
2745
2746 * xterm.c (x_term_init): Create a colormap if not using the
2747 default visual.
2748
2749 * xterm.h (select_visual): Change prototype.
2750
2751 * xfns.c (select_visual): Rewritten. Recognize user-specified
2752 visual classes.
2753 (visual_classes): New variable.
2754
64d739c4
GM
27552000-03-04 Gerd Moellmann <gerd@gnu.org>
2756
2757 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
2758 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
2759 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
2760 (x_decode_color): Don't handle allocation of white and black
2761 specially.
2762 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
2763 XtNcolormap resources.
2764 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
2765 (Fx_create_frame): Initialize color members of x_output structure.
2766 (xpm_load): Pass colormap to XPM lib.
2767
2768 * xfaces.c (x_free_colors): Access colormap of frame using
2769 FRAME_X_COLORMAP. Be paranoid about freeing black and white
2770 when default colormap is used.
2771
2772 * xterm.c (x_term_init): Set Colormap member of x_display_info
2773 structure. Copy colormap if resource `privateColormap' is
2774 specified (PseudoColor only).
2775 (x_setup_relief_color): Access colormap of frame using
2776 FRAME_X_COLORMAP.
2777
2778 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
2779 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
2780
c3cee013
JR
27812000-03-04 Jason Rumney <jasonr@gnu.org>
2782
2783 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
2784 other non-platform-specific equivalents.
64d739c4 2785 [WINDOWSNT]: Include w32term.h, fontset.h and define X
c3cee013
JR
2786 specific functions and macros as their w32 equivalents where
2787 non-platform-specifics are not available.
2788 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
2789 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
2790 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
2791 (frame_update_line_height): Use macros to access f->output_data.
2792 (defined_color): Remove FIXME comments; fixed.
2793 (x_face_list_fonts, prepare_face_for_display): Put X specifics
2794 into #ifdef blocks. Add WINDOWSNT blocks.
2795 (Fx_list_fonts): Use macros for accessing font data.
2796 (set_lface_from_font_name): Different default fonts for X and
2797 WINDOWSNT.
2798 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
2799 scalable for backward compatibility.
64d739c4 2800 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
c3cee013
JR
2801 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
2802
64d739c4 2803 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
c3cee013
JR
2804 syms_of_w32faces.
2805
2806 * makefile.nt (w32faces.obj): Remove.
2807 (xfaces.obj): Add.
2808
807cc41c
JR
28092000-03-03 Jason Rumney <jasonr@gnu.org>
2810
2811 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
2812 correct parameters.
2813
0007072a
KR
28142000-03-03 Ken Raeburn <raeburn@gnu.org>
2815
2816 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
2817 standard ELF definitions here if the system header does not.
2818
71a6ba55
GM
28192000-03-03 Gerd Moellmann <gerd@gnu.org>
2820
2821 * xterm.c (PER_CHAR_METRIC): Removed.
2822 (x_per_char_metric_1, x_default_char): New functions.
2823 (x_per_char_metric): If font's default char is invalid, return
2824 metrics of a suitably chosen usable default char.
2825 (x_draw_glyph_string_foreground): If font has an invalid default
64d739c4
GM
2826 char, replace occurrences of unprintable chars with a suitably
2827 chosen usable default char.
71a6ba55 2828
900fa1f1
GM
28292000-03-02 Gerd Moellmann <gerd@gnu.org>
2830
42f55fe0
GM
2831 * xterm.c (note_mouse_highlight): Return quickly if frame's
2832 glyph matrices have been freed.
2833
2834 * dispnew.c (free_glyphs): Block input while freeing matrices.
2835
900fa1f1
GM
2836 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
2837
2838 * xterm.c (x_alloc_lighter_color, x_setup_relief_color): Use
2839 x_free_colors.
2840
2841 * dispextern.h (x_free_colors): Add prototype.
2842
2843 * xfaces.c (x_free_colors): New function.
2844 (unload_color, free_face_colors): Use it.
2845
2f950292
EZ
28462000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
2847
2848 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
2849
2850 * window.c [MSDOS]: Include msdos.h.
2851
54d04320
DL
28522000-03-02 Dave Love <fx@gnu.org>
2853
2854 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
2855
2856 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
2857 set C_OPTIMIZE_SWITCH for gcc.
2858
0ba93ac4
KH
28592000-03-02 Kenichi Handa <handa@etl.go.jp>
2860
2861 * coding.c (coding_save_composition): Be sure to allocate
2862 composition data area in coding even if there's no composition in
2863 the current run.
2864
a2bc11d4
JR
28652000-03-01 Jason Rumney <jasonr@gnu.org>
2866
2867 * w32term.c: Equivalent changes to those made to xterm.c on
2868 2000-02-25 and 2000-02-24.
2869
2870 * w32fns.c: Equivalent changes to those made to xfns.c on
2871 2000-02-25 and 2000-02-21.
2872
2873 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
2874 correct line-end convention is followed.
2875
2876 * w32menu.c [HAVE_BOXES]: Remove #undef.
2877 (single_keymap_panes): Remove code for simulating checkmarks.
2878 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
2879 Remove code for drawing simulated checkmarks.
2880 (w32_menu_show): make unibyte help string correctly.
2881 (add_menu_item): draw standard Windows checkmarks. Draw radio
2882 buttons as radio buttons if possible.
2883
72d19d75
GM
28842000-03-01 Gerd Moellmann <gerd@gnu.org>
2885
2df636f4
GM
2886 * sysdep.c (start_of_text): Don't define this function for NetBSD
2887 with ELF.
2888
427ec082 2889 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
2df636f4
GM
2890 Don't define.
2891 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
2892 (LINKER): Don't undef if __NetBSD__ is defined.
2893
2894 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
2895
2896 * fileio.c [__NetBSD__]: Define `unix'.
2897
72d19d75
GM
2898 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
2899
ed4d0512
GM
29002000-02-29 Gerd Moellmann <gerd@gnu.org>
2901
50b1039f
GM
2902 * atimer.c (start_atimer): Don't abort when timers are stopped.
2903 (append_atimer_lists): New function.
2904 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
2905 arbitrary lists of stopped and running atimers.
2906
ed4d0512
GM
2907 * atimer.c (cancel_atimer): Handle canceling an atimer when
2908 some timers are stopped.
2909
2910 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
2911 after canceling it.
2912
2913 * fns.c (maybe_resize_hash_table): Handle case of new size
2914 coming out as being the same as old size.
2915
387023ee
JR
29162000-02-27 Jason Rumney <jasonr@gnu.org>
2917
2918 * makefile.nt: Add atimer.h to dependencies.
2919 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
2920 * w32console.c: Only disable window system features for dispextern.h
2921 (initialize_w32_display): Build a display info for the console.
2922 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
2923 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
2924 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
2925 as 2 button mice.
2926 * w32gui.h (struct W32FontStruct): Revert last change after change
2927 to xdisp.c.
2928 * w32menu.c (single_submenu): Set up help string.
2929 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
2930 (w32_dialog_show): Set up help string.
2931 * w32term.c (w32_display_info_for_display): Remove unused function.
2932 (w32_draw_bitmap): Use pre-built bitmaps.
2933 (w32_initialize_display_info): New function to initialize parts of
2934 display info that are common to both GUI and console frames.
2935 (w32_term_init): Use w32_initialize_display_info. Do not set
2936 Vw32_num_mouse_buttons here, as it is not called for console
2937 frames. Build bitmaps for indicating truncated lines etc.
2938 (x_delete_display): Destroy pre-built bitmaps.
2939 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
2940 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
2941
4516715a
DL
29422000-02-27 Dave Love <fx@gnu.org>
2943
2944 * lisp.h: Add a bunch of prototypes.
2945
171ca836
KH
29462000-02-26 Kenichi Handa <handa@etl.go.jp>
2947
2948 * keyboard.c (read_char): Set `usec' correctly.
2949
4013921d
KH
29502000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
2951
2952 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
2953 `lambda', set reg[RRR] to the map index.
2954 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
2955 reg[RRR] to 0. Otherwise, set it to -1.
2956
9244a058
GM
29572000-02-25 Gerd Moellmann <gerd@gnu.org>
2958
2df636f4 2959 * emacs.c (main): Remove code snippet commented out with `//'.
9244a058 2960
f43d79c1 29612000-02-25 Richard M. Stallman <rms@caffeine.ai.mit.edu>
427ec082 2962
f43d79c1
GM
2963 * fileio.c (Ffile_symlink_p): If result starts with a `/'
2964 and contains a `:', prepend `/:'.
2965
2966 * window.c (select_window_1): If selected_window is nil,
2967 don't "swap out" the buffer's point.
2968 (Fset_window_configuration): Set selected_window to nil
2969 before calling Fselect_window.
2970 (unshow_buffer): Don't set point in buffer from window's point
2971 if another more recently selected window also shows the buffer.
2972
bed0c171
GM
29732000-02-25 Gerd Moellmann <gerd@gnu.org>
2974
449c3c52
GM
2975 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
2976
f5b58615
GM
2977 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
2978 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
2979 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay): New
2980 variables.
2981 (DEFAULT_BUSY_CURSOR_DELAY): New define.
2982 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
2983 (hide_busy_cursor): New functions.
2984 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
2985
2986 * minibuf.c (read_minibuf): Cancel busy-cursor.
2987
2988 * keyboard.c (command_loop_1): Call start_busy_cursor before
2989 Fcommand_execute and cancel_busy_cursor after it.
2990 (timer_check): Remove busy-cursor code.
2991 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
2992 cursor timer.
2993
2994 * process.c (wait_reading_process_input): Remove busy-cursor code.
2995
2996 * eval.c (Fsignal): Call cancel_busy_cursor instead of
2997 Fx_hide_busy_cursor.
2998
2999 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
3000 Remove prototyoes.
3001 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
3002
3003 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
3004
3005 * xterm.c (XTread_socket): Remove busy-cursor code.
3006
4eb8436f
GM
3007 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
3008 (build_frame_matrix_from_leaf_window): Put code handling
3009 glyph row's not being a slice of a frame row in #if 0.
3010 (sync_window_with_frame_matrix_rows): New function.
3011 (frame_row_to_window): New function.
3012 (mirror_line_dance): Handle copies between windows.
3013
3cb65b0e
GM
3014 * lread.c (Fload): Use `xfree' instead of `free'.
3015 (init_obarray): Use `xmalloc' instead of `malloc'.
3016
bed0c171
GM
3017 * window.c (Fset_window_buffer): Set WINDOW to the window
3018 after decoding.
2add4349
GM
3019 (coordinates_in_window): Take frame's internal border width
3020 into account.
bed0c171 3021
42088c12
GM
30222000-02-24 Gerd Moellmann <gerd@gnu.org>
3023
3024 * xterm.c (x_display_and_set_cursor): Display cursor of
3025 non-selected windows depending on the setting of
3026 cursor_in_non_selected_windows.
3027
3028 * xdisp.c (cursor_in_non_selected_windows): New variable.
3029 (syms_of_xdisp): DEFVAR_BOOL it.
3030
d1e103b2
GM
30312000-02-23 Gerd Moellmann <gerd@gnu.org>
3032
723e779c
GM
3033 * data.c (Fstring_to_number): If number is greater than what
3034 fits into an integer, return a float.
3035
d1e103b2
GM
3036 * eval.c (specbind): Remove references to
3037 keyword_symbols_constant_flag.
3038
3039 * data.c (keyword_symbols_constant_flag): Removed.
3040 (Fmakunbound, set_internal, syms_of_data): Remove references to
3041 keyword_symbols_constant_flag.
3042
3043 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
3044
214f877f
KH
30452000-02-23 Kenichi Handa <handa@etl.go.jp>
3046
3047 * syntax.c (multibyte_syntax_as_symbol): New variable.
3048 (syms_of_syntax): Declare it as a Lisp variable.
3049 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
3050 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
3051 nonzero, treat all multibyte characters as symbol.
42088c12 3052 (init_syntax_once): Give syntax `word' to all multibyte
214f877f
KH
3053 characters.
3054
130adcb7
EZ
30552000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
3056
3cb65b0e 3057 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
130adcb7
EZ
3058 a deleted frame.
3059
17cbbf95
GM
30602000-02-21 Gerd Moellmann <gerd@gnu.org>
3061
3062 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
3063
3064 * xfns.c (x_window_to_frame, x_any_window_to_frame)
3065 (x_non_menubar_window_to_frame): Check the busy-cursor window.
3066
beb0bc36
DL
30672000-02-21 Dave Love <fx@gnu.org>
3068
3069 * frame.c (Vmouse_position_function): New variable.
3070 (Fmouse_position): Use it.
3071 (syms_of_frame): Install it.
3072
3073 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
3074
1d92afcd
GM
30752000-02-20 Gerd Moellmann <gerd@gnu.org>
3076
3077 * fileio.c (Finsert_file_contents): Unbind the binding of
3078 standard-output done by temp_output_buffer_setup.
329eed9f
GM
3079
3080 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
3081 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
3082 (specbind, unbind_to): Handle most common case of non-constant
3083 symbol with trivial value specially.
3084
3085 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
3086
2d06696f
RS
30872000-02-20 Richard M. Stallman <rms@caffeine.ai.mit.edu>
3088
3089 * data.c (Fmake_variable_buffer_local): Doc fix.
3090 Init found_for_buffer to 0.
3091 (Fmake_variable_frame_local): If the variable has already
3092 been buffer-local, set the check_frame field.
3093
1d4311c3
EZ
30942000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
3095
3096 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
3097 produced for CODING_MODE_LAST_BLOCK requires.
3098
2dc95ddd
DL
30992000-02-18 Dave Love <fx@gnu.org>
3100
3101 * keyboard.c (echo_keystrokes): Remove declaration.
3102 (Vecho_keystrokes) New variable.
3103 (read_char, record_menu_key, read_key_sequence): Use it to allow
3104 use of float value.
3105 (syms_of_keyboard): Change Vecho_keystrokes declaration.
3106
3107 * lread.c: Undef feature selection macros before defining.
3108
f0930f35
GM
31092000-02-18 Gerd Moellmann <gerd@gnu.org>
3110
3111 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
3112 for symbols other than the symbol in question.
3113
e3d4de90
DL
31142000-02-17 Dave Love <fx@gnu.org>
3115
3116 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
3117
0b378936
GM
31182000-02-17 Gerd Moellmann <gerd@gnu.org>
3119
d621caf7
GM
3120 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
3121
0b378936
GM
3122 * alloc.c (enum mem_type): Compile unconditionally.
3123
3b451f74
EZ
31242000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
3125
3126 * xfaces.c (tty_defined_color): Don't return faulire indication
3127 for unspecified-fg and unspecified-bg pseudo-colors.
3128
10689a01
GM
31292000-02-17 Gerd Moellmann <gerd@gnu.org>
3130
1216f5e4
GM
3131 * alloc.c (mark_object): Don't mark symbol names in pure space.
3132 (gc_sweep): Don't unmark symbol names in pure space.
3133
3134 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
3135 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
3136 [GC_MARK_STACK]: New defines.
427ec082 3137 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
1216f5e4
GM
3138 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
3139
3140 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
3141
3142 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
3143 allocate_buffer instead of xmalloc.
3144
3145 * alloc.c (toplevel): Include setjmp.h.
3146 (PURE_POINTER_P): New define.
3147 (enum mem_type) [GC_MARK_STACK]: New enumeration.
3148 (Vdead) [GC_MARK_STACK]: New variable.
3149 (lisp_malloc): Add parameter TYPE, call mem_insert if
3150 GC_MARK_STACK is defined.
3151 (allocate_buffer): New function.
427ec082 3152 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
1216f5e4
GM
3153 (free_float) [GC_MARK_STACK]: Set type to Vdead.
3154 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
3155 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
3156 (MEM_NIL) [GC_MARK_STACK]: New define.
3157 (struct mem_node) [GC_MARK_STACK]: New structure.
3158 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
3159 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
3160 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
3161 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
3162 (mark_stack) [GC_MARK_STACK]: New functions.
3163 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
3164 (clear_marks): Removed.
3165 (gc_sweep): Set free conses' car, free floats' type, free
3166 symbols' function to Vdead. Use lisp_free to free buffers.
3167 (init_alloc_once): Initialize Vdead.
3168 (survives_gc_p): Return non-zero for pure objects.
3169
3170 * alloc.c: Add comments throughout the file.
3171
2503c8b1
GM
3172 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
3173 that unblocks alarms.
3174
8389e1e2
GM
3175 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
3176 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
3177 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
3178
10689a01 3179 * frame.c (make_frame): Set frame initiallly to `garbaged'.
427ec082 3180
bfc17d18
KH
31812000-02-17 Kenichi Handa <handa@etl.go.jp>
3182
4a09dee0
KH
3183 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
3184 avoid infinite error signaling. Allocate sufficient memory for
3185 eol_str in the case that eoltype is Lisp_Int.
bfc17d18 3186
2b927d02
SM
31872000-02-17 Stefan Monnier <monnier@cs.yale.edu>
3188
3189 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
3190 depends on the previous behavior.
3191
b49cb764
GM
31922000-02-16 Gerd Moellmann <gerd@gnu.org>
3193
3194 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
3195
99e95407
GM
31962000-02-15 Gerd Moellmann <gerd@gnu.org>
3197
3198 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
3199
3200 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
b49cb764 3201 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
99e95407
GM
3202 write(2).
3203
6ffd3cf7
RS
32042000-02-15 Richard M. Stallman <rms@gnu.org>
3205
3206 * data.c (set_internal): Don't make variable buffer-local
3207 if within a let-binding for the same buffer.
3208 (let_shadows_buffer_binding_p): New function.
3209
3210 * eval.c (specbind): For buffer-local value,
3211 record the current buffer also.
3212 (unbind_to): Cope with that change.
3213
cad53475
GM
32142000-02-15 Gerd Moellmann <gerd@gnu.org>
3215
3216 * window.c (Fsave_window_excursion): Doc fix.
3217
1aa963c8
SM
32182000-02-15 Stefan Monnier <monnier@cs.yale.edu>
3219
3220 * syntax.c (back_comment): Make sure we only consider comment-starters
3221 of the relevant style and return -1 in case of a failure to find the
3222 beginning of the comment.
3223 (Fforward_comment): If back_comment fails, go back to the position just
3224 after the comment-end.
3225 (scan_lists): Add comment describing a very minor bug.
3226
b9b84fd3
SM
32272000-02-14 Stefan Monnier <monnier@cs.yale.edu>
3228
3229 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
3230 `completion-regexp-list' in the docstring.
3231
3a28db80
DL
32322000-02-14 Dave Love <fx@gnu.org>
3233
3234 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
3235
fb4a568d
SM
32362000-02-14 Stefan Monnier <monnier@cs.yale.edu>
3237
3238 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
3239 to Emacs' syntax. Also fix the comment about set/not-set meanings
3240 since Emacs syntax is not the value 0 any more.
3241 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
3242 since it's now part of RE_SYNTAX_EMACS.
3243
1063ebb5
DL
32442000-02-12 Dave Love <fx@gnu.org>
3245
3246 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on
3247 Alpha.
3248
fb07a302
GM
32492000-02-12 Gerd Moellmann <gerd@gnu.org>
3250
3251 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
3252
aaf2320c
DL
32532000-02-12 Dave Love <fx@gnu.org>
3254
3255 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
3256
3257 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
fb07a302
GM
3258 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
3259 * s/hpux.h: Don't define HAVE_VFORK.
aaf2320c
DL
3260
3261 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
3262
3263 * s/nextstep.h: Don't define HAVE_ALLOCA.
3264
3265 * config.in: Add vfork bits.
3266
eedf8bde
GM
32672000-02-12 Gerd Moellmann <gerd@gnu.org>
3268
3269 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
3270 unwind function to undo the effect of stopping atimers.
3271
3272 * keyboard.c (bind_polling_period): Stop all timers except
3273 poll_timer.
3274
3275 * atimer.c (stopped_atimers): New variable.
3276 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
3277 New functions.
3278
3279 * atimer.h (stop_other_atimers, run_all_atimers)
3280 (unwind_stop_other_atimers): Add function prototypes.
427ec082 3281
eedf8bde
GM
3282 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
3283
8476c2f8
KR
32842000-02-11 Ken Raeburn <raeburn@gnu.org>
3285
3286 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
3287 library may depend on jpeg.
3288 (atimer.o): Depends on atimer.c.
3289
0e85e4a3
KH
32902000-02-11 Kenichi Handa <handa@etl.go.jp>
3291
3292 * insdel.c (del_range_1): Call update_compositions.
3293 (del_range_both): Call update_compositions just once..
3294
97fa0cc8
DL
32952000-02-10 Dave Love <fx@gnu.org>
3296
3297 * xfns.c (create_frame_xic): Fix initialization of automatic
3298 aggregates for pcc.
3299
25566a3c
KH
33002000-02-09 Kenichi Handa <handa@etl.go.jp>
3301
3302 * ccl.c (CCL_MAKE_CHAR): New macro.
3303 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
3304 registers by CCL_MAKE_CHAR before calling translate_char.
3305 <CCL_TranslateCharacterConstTbl> Likewise.
3306
69da54ba
DL
33072000-02-08 Dave Love <fx@gnu.org>
3308
3309 * lread.c (__EXTENSIONS__): Define.
3310
f7136ee8
GM
33112000-02-08 Gerd Moellmann <gerd@gnu.org>
3312
3313 * puresize.h (BASE_PURESIZE): Increase to 650000.
3314
7768790b
EZ
33152000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
3316
3317 * msdos.c (XMenuActivate): Turn off the cursor after displaying
3318 the help message.
3319
38fd211b
EZ
33202000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
3321
3322 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
3323 md, mh, mb, mr, and me to the fake termcap entry.
3324
66e4690f
KR
33252000-02-06 Ken Raeburn <raeburn@gnu.org>
3326
3327 * sound.c (sound_cleanup): Don't call device close routine if the
3328 function pointer is null.
3329
a75dfea0
AI
33302000-02-06 Andrew Innes <andrewi@gnu.org>
3331
3332 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
3333 around image definitions and prototypes.
3334 (gamma_correct) [WINDOWSNT]: New prototype.
3335
3336 * w32term.c (x_make_frame_visible): Replace call to
3337 input_poll_signal with poll_for_input.
3338
3339 * window.c [WINDOWSNT]: Include w32term.h.
3340
3341 * xdisp.c [WINDOWSNT]: Include w32term.h.
3342
3343 * makefile.nt: Add dependencies on w32gui.h.
3344 (OBJ1): Include atimer.obj.
3345 ($(BLD)\atimer.obj): New dependency rule.
3346
3347 * w32.c (sigmask): New function (does nothing).
3348 (sigunblock): Ditto.
3349
3350 * frame.c [WINDOWSNT]: Include w32term.h.
3351
3352 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
3353
3354 * lread.c (syms_of_lread): Fix literal newlines.
3355
3356 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
3357 the string constant limit (2048 bytes) in MSVC.
3358 (main): Ditto.
3359
59ddecde
GM
33602000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
3361
3362 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit
3363 area.
3364 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
3365 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
3366 dispatch the event.
3367
07590973
DL
33682000-02-04 Dave Love <fx@gnu.org>
3369
3370 * fileio.c: Remove some unused vars.
3371 (_GNU_SOURCE): Define (for euidaccess).
3372
3373 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
3374
3375 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
3376 gcpro1, gcpro2.
3377 (read_minibuf): Deal with allow_props correctly.
3378
649351f9
EZ
33792000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
3380
3381 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
3382
66e4690f 33832000-02-03 Ken Raeburn <raeburn@gnu.org>
f1b9c7c1
KR
3384
3385 * search.c (compile_pattern): If a cache entry has a nil regexp,
3386 fill in that entry instead of clobbering a previously cached
3387 string regexp.
3388
66e4690f 33892000-02-02 Ken Raeburn <raeburn@gnu.org>
15c9cf81
KR
3390
3391 * puresize.h (BASE_PURESIZE): Increase to 610000.
3392
d240a249
GM
33932000-02-02 Gerd Moellmann <gerd@gnu.org>
3394
3395 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
3396 can GC.
3397
ca91fb26
KH
33982000-02-02 Kenichi Handa <handa@etl.go.jp>
3399
25660570
KH
3400 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
3401 instead of incrementing ic directly.
3402 <CCL_WriteExprConst> Likewise.
3403 <ccl_set_expr>: Set ic to jump_address.
3404
ca91fb26
KH
3405 * fileio.c (e_write): Fix the handling of
3406 CODING_FINISH_INSUFFICIENT_SRC.
3407
2ede9689
DL
34082000-02-01 Dave Love <fx@gnu.org>
3409
3410 * editfns.c (Fpropertize): Doc fix.
3411
3412 * process.c (Fstart_process): Doc fix.
3413
3414 * eval.c: Fix various doc strings not to duplicate information
3415 from help-manyarg-func-alist.
3416
3417 * window.c (Fset_window_margins): Don't make interactive. Doc
3418 fix.
3419
3420 * doc.c (Vhelp_manyarg_func_alist): New variable.
3421 (Fdocumentation): Use it.
3422 (syms_of_doc): Define it.
3423
b6680a0e
GM
34242000-01-31 Gerd Moellmann <gerd@gnu.org>
3425
2cb750ba
GM
3426 * xterm.c (xim_open_dpy): Remove unused local variable.
3427
74e9213b
GM
3428 * emacs.c (USAGE): Use term `display options' instead of `X
3429 options'.
3430
3431 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
3432 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
3433
b6680a0e
GM
3434 * fns.c (sweep_weak_table): New function.
3435 (sweep_weak_hash_tables): Use it. Keep on marking until there
3436 is no more change.
3437
994c5afe
GM
34382000-01-30 Gerd Moellmann <gerd@gnu.org>
3439
3440 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
3441 that XTread_socket does not crash by trying to call XNoOp on a
3442 closed display.
427ec082 3443
f00276e3
JR
34442000-01-30 Jason Rumney <jasonr@gnu.org>
3445
3446 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
3447 Change selected_frame to SELECTED_FRAME ().
3448 (w32_console_mouse_position): Remove #ifndef MULE from around
3449 `insist' parameter.
3450
3451 * makefile.nt: Remove dosfns.obj.
3452
3453 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
3454
3455 * w32fns.c (w32_defined_color): Check for valid frame before
3456 applying gamma correction. Eliminate dependency on frame elsewhere.
3457 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
3458 (w32_to_x_font): Use resx and resy not height_in and width_in.
3459 (x_to_w32_font): Doc fix.
3460 (xlfd_strip_height): New function to strip and return font height.
3461 (w32_font_match): Compare height separately from rest of xlfd
3462 spec, using xlfd_strip_height.
3463
3464 * w32term.c (w32_term_init): Swap resx and height_in, resy and
3465 width_in. Use w32_defined_color in place of defined_color.
3466
3467 * w32faces.c: Merge more of DOS and X specifics in preparation for
3468 merge with xfaces.c.
3469 (defined_color): Remove FIXME comment.
3470 (tty_color_name): Provide w32-specific function.
3471 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
3472
3473 * w32console.c (turn_on_face, turn_off_face): Removed.
3474 (w32_face_attributes): New function.
3475 (Global_variables): Reduce scope where possible.
3476 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
3477 fill attribute.
3478 (hl_mode): Don't modify text attributes.
3479 (write_glyphs): Don't do anything if len <= 0. Use
3480 w32_face_attributes to get attributes for drawing. Write
3481 terminating codes using char_attr_normal.
3482 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
3483 (update_begin, update_end): Likewise.
3484 (vga_stdcolor_name): New function.
3485 (initialize_w32_display): Remove char_attr_reverse and char_attr.
3486 (Fset_screen_color): Remove char_attr_reverse.
3487
b08e8bb2
GM
34882000-01-29 Gerd Moellmann <gerd@gnu.org>
3489
3490 * xfns.c (xic_set_preeditarea): Take window parameter and
3491 window-relative pixel-positions.
3492
3493 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
3494 is its frame's selected window.
3495 (xim_instantiate_callback): Likewise.
3496
3497 * xfns.c (x_create_im): Removed.
3498 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
3499 (supported_xim_styles): Renamed from supported_styles.
3500 (best_xim_style): Renamed from best_style.
3501 (create_frame_xic): Renamed from xic_create_frame.
3502 (free_frame_xic): Renamed from xic_destroy_frame.
427ec082 3503
b08e8bb2
GM
35042000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
3505
3506 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
3507 our frames, call XFilterEvent with 2nd parameter `None'.
3508 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
3509 returning XBufferOverflow.
3510 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status
3511 area.
3512 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
3513 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
3514 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
3515 (xim_initialize, xim_close)
3516 [HAVE_X_I18N && HAVE_X11R6]: New functions.
3517 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
3518 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
3519 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
3520
3521 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
3522 and `xim_styles'.
3523 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
3524 `xic_style' and `xic_xfs'.
3525 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
3526 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
3527 (FRAME_XIM): Removed.
3528
3529 * xfns.c (supported_styles): New variable.
3530 (DEFAULT_STYLE, DEFAULT_FONT): New macros
3531 (xic_create_xfontset, best_style, xic_create_frame)
3532 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
3533 (xic_set_xfontset): New functions.
3534
142e109c
DL
35352000-01-28 Dave Love <fx@gnu.org>
3536
3537 * s/irix6-5.h: Revert last change after change to irix5-0.h.
3538
3539 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
3540
b02786f9
GM
35412000-01-28 Gerd Moellmann <gerd@gnu.org>
3542
d060bc9f
GM
3543 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
3544 for *scratch* if it already existed.
3545
b02786f9
GM
3546 * emacs.c (USAGE): New macro.
3547 (main): Use it to display usage information.
3548
2c52d7e4
EZ
35492000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
3550
3551 Support for the menu-help feature:
3552
3553 * msdos.h: Change prototypes of XMenuAddSelection and
3554 XMenuActivate.
3555
3556 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
3557 part of the line to the termscript file.
3558 (IT_clear_to_end): Clear the entire line, not just its beginning.
3559 (menu_help_message, prev_menu_help_message): New variables.
3560 (IT_menu_make_room): Make room for the help_text member.
3561 (IT_menu_display): New argument disp_help; all callers changed.
3562 If disp_help is non-zero, store the help text of the active menu
3563 item in menu_help_message.
3564 (XMenuAddPane): Initialize the help_text member to NULL.
3565 (XMenuAddSelection): New argument help_text. Store it in the
3566 XMenu structure.
3567 (XMenuActivate): New argument help_callback. If the value of
3568 menu_help_message has changed since the last time, display the
3569 menu help message text while waiting for the mouse to move. Clear
3570 the echo area before exiting.
3571 (XMenuDestroy): Free the help_text member.
3572
ffe0bcd1
GM
35732000-01-27 Gerd Moellmann <gerd@gnu.org>
3574
3575 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
3576 XMenuAddSelection. Pass help callback to XMenuActivate.
3577 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
3578
50dbd23f
EZ
35792000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
3580
3581 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
3582 and EMACS_SET_USECS.
3583
f5941bf8
GM
35842000-01-26 Dave Love <fx@gnu.org>
3585
6c67ddee
DL
3586 * editfns.c (Fchar_after, Fchar_before): Doc fix.
3587
f5941bf8
GM
3588 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
3589 an error may be signalled.
3590
9e49c990
GM
35912000-01-26 Gerd Moellmann <gerd@gnu.org>
3592
fc3cb460
GM
3593 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
3594 LD_SWITCH_SYSTEM inherited from irix5-0.h.
3595
9e49c990
GM
3596 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
3597
d0c037d8
GM
35982000-01-25 Gerd Moellmann <gerd@gnu.org>
3599
3600 * charset.c (Fstring): If there is a multibyte char among
3601 the args, always return a multibyte string.
3602
e12489f9
GM
36032000-01-25 Gerd Moellmann <gerd@gnu.org>
3604
3605 * sysdep.c (sys_select): Turn atimers off and on instead of
3606 recording and restoring old alarm handler
3607
3608 * process.c (toplevel): Include atimer.h.
3609 (create_process_1): Rewritten.
3610 (create_process): Use atimers instead of alarm.
3611 (wait_reading_process_input) [hpux]: Turn atimers off instead
3612 of turning off SIGALRM.
3613 (wait_reading_process_input): Turn off atimers instead off
3614 calling stop_polling.
3615
3616 * emacs.c (main): Call init_atimer.
3617
3618 * keyboard.c (toplevel): Include systime.h and atimer.h.
3619 (polling_for_input): Removed because unused.
3620 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
3621 (poll_timer): New variable.
3622 (poll_for_input, poll_for_input_1): New functions.
3623 (start_polling, stop_polling): Rewritten.
3624
3625 * keyboard.h (polling_for_input): Removed.
427ec082 3626
e12489f9
GM
3627 * atimer.h, atimer.c: New files.
3628
3629 * Makefile.in (obj): Add atimer.o.
3630 (atimer.o): New target.
3631
3632 * blockinput.h (pending_atimers): Add extern declaration.
3633 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
3634
3635 * lisp.h (popup_activated_flag): Add extern declaration.
3636
3637 * xmenu.c (popup_activated_flag): Make externally visible.
3638 (popup_activate_callback) [USE_MOTIF]: Increment
3639 popup_activated_flag.
3640 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
3641
3642 * xterm.c (toplevel): Include atimer.h.
3643 (toolkit_scroll_bar_interaction): New variable.
3644 (Fxt_process_timeouts): Removed.
3645 (x_process_timeouts): New function.
3646 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
3647 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
3648 (x_make_frame_visible): Call poll_for_input_1 instead of
3649 input_poll_signal. Don't call alarm.
3650 (x_initialize): Install timer calling x_process_timeouts.
427ec082 3651
1e5279b9
DL
36522000-01-24 Dave Love <fx@gnu.org>
3653
6c67ddee 3654 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
1e5279b9
DL
3655 Don't use -cckr -- apparently not now necessary.
3656
edf6aeb8
EZ
36572000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
3658
3659 * msdos.c (IT_menu_display): Truncate long menu lines at the right
3660 screen boundary.
3661
9badad41
JR
36622000-01-23 Jason Rumney <jasonr@gnu.org>
3663
3664 * w32fns.c (w32_defined_color): Apply gamma correction before
3665 trying to map to the palette.
3666 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
3667 to w32_clear_rect.
3668
3669 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
3670 here. Callers changed to always pass real device context.
3671 (w32_draw_bitmap): Likewise.
3672 (w32_get_glyph_overhangs): Likewise.
3673 (w32_draw_box_rect): Make use of s->hdc rather than getting a new
3674 one.
3675 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
3676 pfnSetScrollInfo and SetScrollRange.
3677 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
3678 back into MULE characters after decoding them.
3679 (x_get_glyph_face_and_encoding): Likewise.
3680 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
3681 GetCharABCWidthsW fails, since this is defined on Windows 9x.
3682 (x_produce_glyphs): Calculate per char metrics for a character
3683 that we know exists in default font when font_not_found_p is true.
3684
63bd786b
JR
36852000-01-22 Jason Rumney <jasonr@gnu.org>
3686
3687 * makefile.nt (intervals.obj, composite.obj): New modules.
3688 (composite.h): Added as dependency where appropriate.
3689
3690 * w32gui.h (XGCValue): New struct for emulating X GCs.
3691
3692 * w32term.h (XCharStruct): New struct for emulating X.
3693
3694 * w32console.c (turn_on_face, turn_off_face): New functions.
3695 (change_line_highlight): New prototype for new redisplay.
3696 (write_glyphs): Support multibyte text. Support faces.
3697
3698 * w32faces.c: Complete rewrite for new redisplay based on new
3699 xfaces.c.
3700
3701 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
3702 throughout. struct frame * in place of FRAME_PTR.
3703 Skeleton support for images, toolbars, tooltips from xfns.c.
3704 (Fx_create_frame): Use system default for default scroll bar
3705 width.
3706 (w32_get_arg): Renamed from x_get_arg.
3707 (Fx_file_dialog): New function.
3708 (w32_list_fonts): Check cache before asking system.
3709 (Vw32_enable_synthesized_fonts): New variable.
3710 (Vw32_enable_italics): Obsolete, removed.
3711
3712 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
3713 Use SELECTED_FRAME macro.
3714
3715 * w32menu.c: Add skeleton support for help strings on menus.
3716 (add_menu_item): Native checkbox and radio support added, but not
3717 yet enabled due to bugs.
3718 (push_menu_item): Add parameters type, selection and help.
3719 Callers updated.
3720 Formatting changes to reduce unnecessary diffs with xmenu.c.
3721
3722 * w32select.c (Fw32_set_clipboard_data): Update call to
3723 find_charset_in_str.
3724
3725 * w32term.c: Complete rewrite for new redisplay based on new
3726 xterm.c with necessary sections merged back in from old w32term.c.
3727
6ffd3cf7 37282000-01-21 Richard M. Stallman <rms@gnu.org>
b50c9214
RS
3729
3730 * data.c (set_internal): Further fix in same criterion.
3731
6ffd3cf7 37322000-01-20 Richard M. Stallman <rms@gnu.org>
8cc95642
RS
3733
3734 * data.c (set_internal): Fix the criteria for whether
3735 to swap out the old cached binding.
3736
60af03f1
DL
37372000-01-19 Dave Love <fx@gnu.org>
3738
3739 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
3740
f9be074f
KH
37412000-01-18 Kenichi Handa <handa@etl.go.jp>
3742
3743 * regex.c (re_compile_fastmap): While checking a range table for
3744 `charset', skip flag bits for a character class correctly.
3745
52b8dbf9
GM
37462000-01-17 Gerd Moellmann <gerd@gnu.org>
3747
d36100c9
GM
3748 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
3749
52b8dbf9
GM
3750 * xfns.c (x_window): Call lw_create_widget with new parameter
3751 list.
3752
3753 * widget.c (EmacsFrameSetCharSize): Change size of children first
3754 because of problems with main window geometry management under
3755 Lesstif.
3756
3757 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
3758 MENU_ITEMS_ITEM_.*.
3759 (MENU_ITEMS_ITEM_HELP): New enumerator.
3760 (push_menu_item): Add parameter HELP. Record help in menu_items.
3761 (single_menu_item, single_submenu, list_of_items): Call
3762 push_menu_item with new parameter.
3763 (single_submenu): Set help string in widget value.
3764 (menu_highlight_callback): New function.
3765 (set_frame_menubar): Call lw_create_widget with new
3766 parameter list.
3767 (xmenu_show, xdialog_show): Ditto.
3768
3139018f
GM
37692000-01-13 Gerd Moellmann <gerd@gnu.org>
3770
3771 * sound.c (Fplay_sound): Improve doc string.
3772
83c8f461
RS
37732000-01-11 Richard M. Stallman <rms@gnu.org>
3774
3775 * lisp.h (set_internal): Enter the new arg.
3776
3777 * eval.c (specbind): Record buffer-local variables specially,
3778 indicating which buffer's binding was saved.
3779 (unbind_to): Restore buffer-local variables specially
3780 in the proper buffer.
3781
3782 * data.c (set_internal): New arg BUF.
427ec082 3783
83c8f461
RS
3784 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
3785 * data.c (Fset): Pass new arg to set_internal.
3786 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
427ec082 3787
1fab1775
GM
37882000-01-11 Gerd Moellmann <gerd@gnu.org>
3789
3790 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload,
3791 xprintsym.
3792
83c8f461 37932000-01-11 Richard M. Stallman <rms@gnu.org>
6f59462e
RS
3794
3795 * minibuf.c (Ftry_completion): Doc fix.
3796
7a85e4df
GM
37972000-01-11 Gerd Moellmann <gerd@gnu.org>
3798
3799 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
3800 vector, too.
3801
a970dae4
AS
38022000-01-11 Andreas Schwab <schwab@suse.de>
3803
3804 * coding.c (code_convert_region): Initialize total_skip.
3805
c65d14ee
DL
38062000-01-08 Dave Love <fx@gnu.org>
3807
3808 * eval.c (Fuser_variable_p): Check customizability too.
3809
834938d2
GM
38102000-01-07 Gerd Moellmann <gerd@gnu.org>
3811
3812 * minibuf.c (Fcompleting_read): Doc fix.
3813
e0303cd6
GM
38142000-01-05 Gerd Moellmann <gerd@gnu.org>
3815
8a26744b
GM
3816 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
3817 -L /usr/local/lib.
3818
e0303cd6
GM
3819 * xfns.c (x_create_im): New function to set IM and IC of a frame.
3820 Check that input style is supported before trying to create an
3821 IC for it.
3822 (x_window): Call x_create_im.
427ec082 3823
2e471eb5
GM
38242000-01-04 Gerd Moellmann <gerd@gnu.org>
3825
560a7bd2
GM
3826 * xfns.c (current_gif_memory_src): New variable.
3827 (gif_load): Record the address of the current memory source
3828 in current_gif_memory_src.
3829 (gif_read_from_memory): Use current_gif_memory_src.
3830
f9ee84a3
GM
3831 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
3832 macros statement form.
3833
d1299cde
GM
3834 * sound.c (struct sound): Renamed from struct sound_file.
3835 (struct sound): Add members `data' and `header_size'.
3836 (enum sound_attr): Add SOUND_DATA.
3837 (current_sound, current_sound_device): Variables renamed from
3838 sound_file and sound_device.
3839 (parse_sound): Parse :data.
3840 (parse_sound): Handle sound data in strings.
3841 (find_sound_type): Function renamed from find_sound_file_type.
427ec082 3842 (wav_init, au_init): Fail if sound's header_size is smaller than
d1299cde
GM
3843 needed header size.
3844 (wav_play, au_play): Play sounds from string data.
3845
2e471eb5
GM
3846 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
3847
3848 * lisp.h: Add prototype for allocate_string_data.
3849
3850 * alloc.c (Fgarbage_collect): Return number of live and free
3851 strings.
3852
3853 * alloc.c (mark_buffer): Remove code in #if 0.
3854 (gc_sweep): Ditto.
3855 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
3856 (strings_consed): New variable.
3857 (allocate_string): Set it.
3858 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
3859 (Fmemory_use_counts): Return strings_consed. Use Flist.
3860
3861 * alloc.c: General cleanup in comments etc. Remove conditional
3862 compilation for `standalone'.
3863
3864 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
3865
3866 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
3867 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
3868 (DONT_COPY_FLAG): Removed.
3869 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
3870 (struct sdata, struct sblock): New
3871 (struct string_block): Rewritten.
3872 (STRINGS_IN_STRING_BLOCK): New macro.
3873 (oldest_sblock, current_sblock, total_strings, total_free_strings)
3874 (large_sblocks, string_blocks, string_free_list): New variables.
3875 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
3876 (init_strings): Rewritten.
3877 (allocate_string, allocate_string_data, compact_small_strings)
3878 (free_large_strings, sweep_strings): New functions.
3879 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
3880 (struct string_block_head, current_string_block)
3881 (first_string_block, large_string_blocks, STRING_FULLSIZE)
3882 (STRING_PAD): Removed.
3883 (make_uninit_multibyte_string, make_pure_string): Rewritten.
3884 (Fgarbage_collect): Don't set mark bit in large strings.
3885 (mark_object): Mark strings differently. Mark symbol names
3886 differently.
3887 (survives_gc_p): Test marked strings differently.
427ec082 3888 (gc_sweep): Sweep strings differently, unmark strings in
2e471eb5
GM
3889 symbol names.
3890 (compact_strings): Removed.
3891
42608ba8
EZ
38922000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
3893
3894 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
3895 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
3896
e0a09e1a
KH
38972000-01-04 Kenichi Handa <handa@etl.go.jp>
3898
dd9f0750 3899 * fileio.c (Finsert_file_contents): Signal error if visiting file
427ec082 3900 in a non-empty buffer.
dd9f0750 3901
3c0f3b15 3902 * term.c (encode_terminal_code): Fix the previous change.
e0a09e1a 3903
44cd3ae5
GM
39042000-01-03 Gerd Moellmann <gerd@gnu.org>
3905
3906 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
3907 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
3908
3909 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
3910
c182a70f
EZ
39112000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
3912
3913 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
3914 need to test for MSDOS frames.
3915
24480d5b
EZ
39162000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
3917
3918 * dosfns.c (unspecified_colors): Remove.
3919 (msdos_stdcolor_idx): Use global variables unspecified_fg and
3920 unspecified_bg.
3921 (msdos_stdcolor_name): Return strings for unspecified fore- and
3922 back-ground colors.
3923
3924 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
aaf2320c 3925 (syms_of_xfaces): Remove their staticpro's.
24480d5b
EZ
3926 (tty_color_name): Return Lisp strings for unspecified fore- and
3927 back-ground colors.
3928 (Finternal_set_lisp_face_attribute): Remove the special treatment
3929 for Qunspecified_{f,b}g.
3930 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp
3931 string.
3932
047f434a
GM
39332000-01-03 Gerd Moellmann <gerd@gnu.org>
3934
3935 * xdisp.c (reseat_at_next_visible_line_start): Position before
3936 newline only if ending up on a newline.
3937 (next_element_from_ellipsis): Return success. Handle case of
3938 displaying no ellipsis. Fix case of ellipsis defined in display
3939 table.
3940 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
3941 returns 0.
3942
d684c676
EZ
39432000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
3944
3945 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
3946 (Fcolor_supported_p): Renamed from face-color-supported-p.
3947
5fe1d139
EZ
39482000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
3949
3950 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
3951 list of colors renamed to tty-defined-color-alist.
3952 (tty_color_name): Pass the frame to tty-color-by-index.
3953 (realize_tty_face): tty-color-alist is now a function which
3954 accepts the frame as argument.
3955
3956 * term.c (Ftty_display_color_p): Accept an optional argument
3957 FRAME.
3958
816be8b8
EZ
39592000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
3960
3961 * term.c (insert_glyphs): Pass glyph, not &glyph, to
3962 encode_terminal_code.
3963
b635321e
EZ
39642000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
3965
3966 * dispnew.c (mode_line_string): Support termcap frames as well.
3967
9b784e96
GM
39682000-01-01 Gerd Moellmann <gerd@gnu.org>
3969
27189709
GM
3970 * syntax.c (Fforward_word): Undo previous change.
3971
3972 * editfns.c (Fconstrain_to_field): Don't constrain if
3973 inhibit-field-text-motion is non-nil.
3974 (Fline_beginning_position): Undo previous change.
3975 (Fline_end_position): Ditto.
3976
3977 * syntax.c (Fforward_word): Notice field boundaries only if
3978 inhibit-field-text-motion is nil.
3979
3980 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
3981
3982 * editfns.c (Vinhibit_field_text_motion): New variable.
3983 (inhibit-field-text-motion): New DEFVAR_LISP.
3984 (Fline_beginning_position, Fline_end_position): Notice field
3985 boundaries only if inhibit-field-text-motion is nil.
3986
45158a91
GM
3987 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
3988 All calls adjusted.
3989 (x_build_heuristic_mask): Likewise.
3990 (xbm_load_image_from_file): Change error output.
3991 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
3992 (gif_load, gs_load, x_kill_gs_process): Ditto.
3993
9b784e96
GM
3994 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
3995 color indices when accessing raster pixels.
63cec32f
GM
3996 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
3997 one of :file or :data.
3998 (enum pbm_keyword_index): Add PBM_DATA.
3999 (pbm_format): Add :data.
4000 (pbm_image_p): Allow either :file or :data.
4001 (pbm_read_file): New function.
4002 (pbm_scan_number): Rewritten to read from string.
4003 (pbm_load): Support :data.
9b784e96 4004
5ad6a5fb
GM
40051999-12-31 Gerd Moellmann <gerd@gnu.org>
4006
4007 * xfns.c: New image functions adapted to Emacs conventions.
4008 (png_load, tiff_load, jpeg_load, gif_load): Always GCPRO local
4009 variable `file'.
4010
63448a4d
WP
40111999-12-31 William M. Perry <wmperry@aventail.com>
4012
4013 * xfns.c (jpeg_format): Added the :data keyword
4014 (jpeg_image_p): JPEG is valid with :file _or_ :data
4015 (jpeg_memory_src): Defined new JPEG image source to read from a
4016 memory buffer.
4017 (jpeg_load): Pay attention to the :data keyword if specified.
4018 Instantiates a jpeg_memory_src instead of jpeg_stdio_src if
4019 found.
4020 (png_format): Added the :data keyword
4021 (png_image_p): PNG is valid with :file _or_ :data
4022 (png_read_from_memory): New PNG read function to read from a
4023 memory buffer.
4024 (png_load): Pay attention to the :data keyword if specified. Uses
4025 png_set_read_fn() instead of png_init_io() if specified.
4026 (tiff_format): Added the :data keyword for TIFF images.
4027 (tiff_image_p): TIFF is valid with :file _or_ :data
4028 (tiff_read_from_memory): Defined new TIFF I/O functions to read
4029 from a memory buffer.
4030 (tiff_load): Pay attention to the :data keyword if specified.
4031 Uses TIFFClientOpen() instead of TIFFOpen() if specified.
4032 (gif_format): Added the :data keyword
4033 (gif_image_p): GIF is valid with :file _or_ :data
4034 (gif_read_from_memory): New GIF input function to read from a
4035 memory buffer.
c65d14ee 4036 (gif_load): Pay attention to the :data keyword. Uses DGifOpen()
63448a4d
WP
4037 instead of DGifOpenFileName() if specified.
4038
c880678e
GM
40391999-12-31 Gerd Moellmann <gerd@gnu.org>
4040
4041 * xdisp.c (next_element_from_buffer): Change assertion at the end
4042 because it doesn't hold when there's an overlay string at the end
4043 from which we deliver an image.
4044
8ccb9a54
EZ
40451999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
4046
4047 * msdos.c (IT_update_begin): Don't dereference members of struct
4048 window for deleted windows.
4049
12ce2351
GM
40501999-12-30 Gerd Moellmann <gerd@gnu.org>
4051
a915c648
GM
4052 * abbrev.c (Fexpand_abbrev): If expanding an abbrev which has only
4053 a hook, and the hook has a non-nil `no-self-insert' property, let
4054 the return value of the hook specify whether an expansion took
4055 place. If it returns nil, no expansion has been performed.
4056
12ce2351
GM
4057 * xterm.c (x_make_frame_visible): Wait for frame becoming visible
4058 differently.
4059
04ee4f45
EZ
40601999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
4061
4062 * msdos.c (IT_write_glyphs): Track last changes to struct glyph.
4063
7f4bc0c3
EZ
40641999-12-29 Eli Zaretskii <eliz@is.elta.co.il>
4065
4066 * dispnew.c (mode_line_string): Support MS-DOS frames.
4067
dac204bc
GM
40681999-12-29 Gerd Moellmann <gerd@gnu.org>
4069
4070 * eval.c (syms_of_eval): Initialize debugger_may_continue.
4071
7b712ad8
KH
40721999-12-29 Kenichi Handa <handa@etl.go.jp>
4073
4074 * process.c (read_process_output): Fix the args CHARPOS and LENINS
4075 to signal_after_change.
4076
adb9900f
EZ
40771999-12-28 Eli Zaretskii <eliz@is.elta.co.il>
4078
41ad069b
EZ
4079 * msdos.c (dos_set_window_size) [__DJGPP__ > 1]: If the frame
4080 dimensions changed, invalidate the mouse highlight info.
4081 (disable_mouse_highlight, help_echo, previous_help_echo): New
4082 variables.
4083 (IT_set_mouse_pointer, show_mouse_face, clear_mouse_face)
4084 (fast_find_position, IT_note_mode_line_highlight)
4085 (IT_note_mouse_highlight): New functions.
4086 (IT_update_begin): If the redisplay affects the window where the
4087 mouse highlight is, clear the highlight. If the frame where the
4088 highlight was displayed was killed, invalidate the highlight
4089 info.
4090 (IT_update_end): Reset the highlight flag. Reset the mouse
4091 highlight-defer flag.
4092 (IT_frame_up_to_date): New function, if mouse highlight was
4093 deferred due to GC, do it now.
4094 (internal_terminal_init): Initialize mouse-highlight related
4095 members of the_only_x_display. Assign IT_frame_up_to_date to
4096 frame_up_to_date_hook.
4097 (dos_rawgetc): If the mouse moved, update mouse highlight. If
4098 help_echo changed value, generate a HELP_EVENT event.
4099 (syms_of_msdos): Staticpro help_echo and previous_help_echo.
4100
adb9900f
EZ
4101 * msdos.h (struct display_info): New.
4102 (struct x_output): Add the display_info member.
4103 (FRAME_X_DISPLAY_INFO): New macro.
4104
481b5054
GM
41051999-12-28 Gerd Moellmann <gerd@gnu.org>
4106
4107 * xdisp.c (try_window_id): Compute BEG_UNCHANGED and END_UNCHANGED
4108 if MODIFF > 1.
6448a6b3 4109 (dump_glyph_row): Adapt to changes in struct glyph.
481b5054
GM
4110
4111 * buffer.c (modify_overlay): Always compute unchanged info.
4112
a2882b0d
KH
41131999-12-27 Kenichi Handa <handa@etl.go.jp>
4114
4115 * dispextern.h (FACE_FROM_ID): Cast the arg ID to `unsigned'.
4116
89ba5b5f
KH
41171999-12-27 Kenichi Handa <handa@etl.go.jp>
4118
4119 The following changes are to use more bits for face IDs.
4120
4121 * lisp.h (GLYPH): Defined as `int', not `unsigned int'. Now the
4122 lowest 8 bits are single byte character code, the bits above are
4123 face ID.
481b5054 4124 (GLYPH_MASK_FACE, GLYPH_MASK_CHAR): Adjusted for the change
89ba5b5f 4125 above.
481b5054
GM
4126 (FAST_MAKE_GLYPH, FSST_GLYPH_FACE): Likewise.
4127 (GLYPH_MASK_REV_DIR, GLYPH_MASK_PADDING): Macros deleted.
89ba5b5f
KH
4128
4129 * charset.h (CHAR_BYTES): Use ((1 << CHARACTERBITS) - 1) instead
4130 of GLYPH_MASK_CHAR.
4131
4132 * charset.c (char_bytes): Use ((1 << CHARACTERBITS) - 1) instead
4133 of GLYPH_MASK_CHAR.
4134
4135 * dispextern.h (struct glyph): Make face_id and padding_p the top
4136 level members. Change members in union `u'.
4137 (GLYPH_EQUAL_P): Check also members face_id and padding_p.
4138 (GLYPH_CHAR_AND_FACE_EQUAL_P): New macro.
4139 (SET_CHAR_GLYPH): Adjusted for the change of struct glyph.
4140 (CHAR_GLYPH_PADDING_P): Likewise.
4141 (GLYPH_FROM_CHAR_GLYPH): Likewise. Always return -1 for multibyte
4142 characters.
4143
481b5054 4144 * dispnew.c (line_hash_code, direct_output_for_insert): Adjusted
89ba5b5f
KH
4145 for the change of struct glyph.
4146 (line_draw_cost): Adjusted for the change of
4147 GLYPH_FROM_CHAR_GLYPH.
4148 (count_match): Use macro GLYPH_CHAR_AND_FACE_EQUAL_P.
4149
4150 * term.c (encode_terminal_code): Adjusted for the change of struct
4151 glyph and GLYPH_FROM_CHAR_GLYPH.
481b5054 4152 (write_glyphs, insert_glyphs, append_glyph): Adjusted for the
89ba5b5f
KH
4153 change of struct glyph.
4154
4155 * xdisp.c: All codes adjusted for the change of struct glyph.
4156
4157 * xterm.c: All codes adjusted for the change of struct glyph.
4158
5bcd116c
KH
41591999-12-27 Kenichi Handa <handa@etl.go.jp>
4160
4161 * composite.h (struct composition): Change the order of declaring
4162 members to reduce the byte size of the structure.
4163
f21b06b7
GM
41641999-12-25 Gerd Moellmann <gerd@gnu.org>
4165
4166 * search.c (looking_at_1): Reset immediate_quit before modifying
4167 global data.
4168
e36557c9
KH
41691999-12-24 Kenichi Handa <handa@etl.go.jp>
4170
4171 * process.c (read_process_output): Fix the arg FROM to
4172 update_compositions.
4173
83c8f461 41741999-12-22 Richard M. Stallman <rms@gnu.org>
f7c9e039
RS
4175
4176 * search.c (Freplace_match): For nonliteral replacement in buffer,
4177 construct all the new text first, then insert all at once.
4178
0b863bd9
DL
41791999-12-22 Dave Love <fx@gnu.org>
4180
4181 * xfns.c (Fx_show_tip): Gcpro `timeout' too.
4182
6d8e8ef3
GM
41831999-12-22 Gerd Moellmann <gerd@gnu.org>
4184
28d7281d
GM
4185 * xfns.c (Fx_create_frame): Move x_default_parameter calls that
4186 lead to size changes to after the X window has been created.
4187
e22ef6eb 4188 * xfaces.c (realize_x_face): Don't use uninitialized local
6d8e8ef3
GM
4189 variable in xassert.
4190
8affcced
KH
41911999-12-22 Kenichi Handa <handa@etl.go.jp>
4192
4193 * xfaces.c (face_color_supported_p): Check by tty_defined_color
6d8e8ef3 4194 only when the frame is not for a window system.
8affcced 4195
f2be1146
GM
41961999-12-22 Gerd Moellmann <gerd@gnu.org>
4197
deca1348
GM
4198 * buffer.c (Fset_buffer_multibyte): Arrange for a thorough
4199 redisplay after changing the multibyteness of a buffer.
4200
f2be1146
GM
4201 * xterm.c (XTread_socket): At the beginning of the loop, pass the
4202 frame's X window to XFilterEvent instead of None because that's
4203 the X window for which the IC was created. This makes dead
4204 accents work when the pointer is not in Emacs' frame.
4205 (XTread_socket) <KeyPress>: Don't call XFilterEvent here.
4206
a744a2ec
DL
42071999-12-20 Dave Love <fx@gnu.org>
4208
4209 * xfns.c (Fx_show_tip): Add missing UNGCPRO.
4210
9e6985ed
GM
42111999-12-19 Gerd Moellmann <gerd@gnu.org>
4212
4213 * eval.c (debugger_may_continue): New variable.
4214 (syms_of_eval): Add a DEFVAR_BOOL for it.
4215 (call_debugger): Bind it.
4216
3b620731
EZ
42171999-12-19 Eli Zaretskii <eliz@is.elta.co.il>
4218
4219 * msdos.c (IT_set_face): Don't swap face colors when highlight or
4220 fp->tty_reverse_p is set, unless the computed colors are identical
4221 to frame colors. Print both original and computed colors to
4222 termscript file.
4223 (IT_write_glyphs): Track the changes in handling of composite
4224 characters.
4225 (IT_set_frame_parameters): Don't set frame colors from
4226 unspecified-fg and unspecified-bg pseudo-colors.
4227
0f9a51c4
DL
42281999-12-17 Dave Love <fx@gnu.org>
4229
4230 * data.c (Fkeywordp): New function.
4231 (syms_of_data): Install it.
4232
363e4e42
EZ
42331999-12-16 Eli Zaretskii <eliz@is.elta.co.il>
4234
4235 * xfaces.c (tty_defined_color): Fix last change.
4236
cfad01b4
GM
42371999-12-15 Gerd Moellmann <gerd@gnu.org>
4238
4239 * xdisp.c (redisplay_window) <optional new window start>: Check
4240 that window start is in [BEGV..ZV].
4241
f9d2fdc4
EZ
42421999-12-15 Eli Zaretskii <eliz@is.elta.co.il>
4243
4244 * dispextern.h (FACE_TTY_DEFAULT_FG_COLOR)
4245 (FACE_TTY_DEFAULT_BG_COLOR): New macros.
4246
4247 * xfaces.c (Qunspecified_fg, Qunspecified_bg): New variables.
4248 (syms_of_xfaces): Initialize and staticpro them.
4249 (tty_defined_color): If the color name is unspecified-fg or
4250 unspecified-bg, return FACE_TTY_DEFAULT_FG_COLOR and
4251 FACE_TTY_DEFAULT_BG_COLOR, respectively, as the pixel value.
4252 (tty_color_name): If the color pixel value is either
4253 FACE_TTY_DEFAULT_FG_COLOR or FACE_TTY_DEFAULT_BG_COLOR, return
4254 Qunspecified_fg or Qunspecified_bg, respectively.
4255 (Finternal_set_lisp_face_attribute): Allow values Qunspecified_fg
4256 and Qunspecified_bg for foreground and background colors.
4257 (realize_default_face): If the foreground and background colors
4258 are not specified, default to Qunspecified_fg and Qunspecified_bg.
4259 (realize_tty_face): By default, set the face colors to
4260 FACE_TTY_DEFAULT_FG_COLOR and FACE_TTY_DEFAULT_BG_COLOR.
4261 [MSDOS]: Handle FACE_TTY_DEFAULT_FG_COLOR and
4262 FACE_TTY_DEFAULT_BG_COLOR when face colors are not defined.
4263 Reverse the colors if the default colors were reversed.
4264
4265 * dispnew.c (init_display): Initialize the frame pixels of the
4266 initial frame to FACE_TTY_DEFAULT_FG_COLOR and
4267 FACE_TTY_DEFAULT_BG_COLOR.
4268
4269 * term.c (turn_on_face): If the default fore- and background
4270 colors are reversed, enter inverse video mode. Don't send color
4271 escape sequences for unspecified foreground and background colors.
4272 (turn_off_face): Handle unspecified-fg and unspecified-bg colors.
4273
4274 * dosfns.c (unspecified_colors): New variable.
4275 (msdos_stdcolor_idx): Handle unspecified-fg and unspecified-bg
4276 color names, return FACE_TTY_DEFAULT_FG_COLOR and
4277 FACE_TTY_DEFAULT_BG_COLOR, respectively.
4278 (msdos_stdcolor_name): Handle FACE_TTY_DEFAULT_FG_COLOR and
4279 FACE_TTY_DEFAULT_BG_COLOR, return Qunspecified_fg and
4280 Qunspecified_bg, respectively.
4281
4282 * msdos.c (IT_set_face): Support FACE_TTY_DEFAULT_FG_COLOR and
4283 FACE_TTY_DEFAULT_BG_COLOR as pixel values.
4284
e19539f1
KH
42851999-12-15 Kenichi Handa <handa@etl.go.jp>
4286
4287 * coding.c (code_convert_region): Fix the secoding arg to
4288 update_compositions.
4289
5ec14d3c
KH
42901999-12-15 Kenichi Handa <handa@etl.go.jp>
4291
4292 The following changes are for the new composition mechanism. We
4293 have deleted `composition' charset and composite characters,
4294 instead introduced a special text property `composition'.
4295
4296 * Makefile.in (INTERVAL_SRC): Include composite.h.
4297 (INTERVAL_OBJ): Include composite.o.
4298 (SOME_MACHINE_OBJECTS): Include composite.o.
4299 (casefiddle.o) (dispnew.o) (indent.o) (process.o) (search.o)
4300 (syntax.o) (window.o) (xdisp.o) (xfaces.o) (xterm.o) (print.o):
4301 Depend on composite.h.
4302 (doc.o): Depend on charset.h.
4303 (keyboard.o) (textprop.o) (intervals.o): Depend on INTERVAL_SRC.
4304 (composite.o): New target.
427ec082 4305
5ec14d3c
KH
4306 * alloc.c (Fmake_string): Adjusted for the change of CHAR_STRING.
4307
4308 * callproc.c (Fcall_process): Call code_convert_string to encode
4309 arguments. Use CODING_REQUIRE_DECODING to check if the process
4310 output should be decoded.
4311
4312 * casefiddle.c: Include composite.h.
4313 (casify_object): Use MAX_MULTIBYTE_LENGTH to allocate memory for a
4314 multibyte character. Adjusted for the change of CHAR_STRING.
4315 (casify_region): Likewise. Call update_compositions.
4316
4317 * category.h (CATEGORY_SET): Delete codes for a composite
4318 character.
4319
4320 * category.c (word_boundary_p): Delete codes for a composite
4321 character.
4322 (Fmake_category_table): New function.
4323 (syms_of_category): Defsubr it.
4324
4325 * ccl.c (CCL_WRITE_CHAR): Adjusted for the change of CHAR_STRING.
4326 (ccl_driver): Delete codes for a composite character.
4327
4328 * charset.h: In this entry, just `Modified' means that codes for a
4329 composite character is deleted.
4330 (LEADING_CODE_COMPOSITION) (CHARSET_COMPOSITION)
4331 (charset_composition) (MIN_CHAR_COMPOSITION)
4332 (MAX_CHAR_COMPOSITION) (GENERIC_COMPOSITION_CHAR)
4333 (COMPOSITE_CHAR_P) (MAKE_COMPOSITE_CHAR) (COMPOSITE_CHAR_ID)
4334 (PARSE_COMPOSITE_SEQ) (PARSE_CHARACTER_SEQ): Deleted.
4335 (MAX_CHAR) (CHARSET_VALID_P) (CHARSET_DEFINED_P) (CHARSET_AT)
4336 (FIRST_CHARSET_AT) (SAME_CHARSET_P) (MAKE_NON_ASCII_CHAR)
4337 (PARSE_MULTIBYTE_SEQ) (SPLIT_NON_ASCII_CHAR) (CHAR_PRINTABLE_P):
4338 Modified.
4339 (SPLIT_STRING): Call split_string, not split_non_ascii_string.
4340 (CHAR_STRING): Delete WORKBUF argument. Call char_string, not
4341 non_ascii_char_to_string.
4342 (STRING_CHAR): Call string_to_char, not string_to_non_ascii_char.
4343 (STRING_CHAR_AND_LENGTH): Likewise.
4344 (FETCH_CHAR_ADVANCE): New macro.
4345 (MAX_COMPONENT_COUNT) (struct cmpchar_info): Deleted.
4346 (MAX_MULTIBYTE_LENGTH): New macro.
4347 (MAX_LENGTH_OF_MULTI_BYTE_FORM): Deleted.
4348 (find_charset_in_str): Argument adjusted.
4349 (CHAR_LEN): Modified.
427ec082 4350
5ec14d3c
KH
4351 * charset.c: In this entry, just `Modified' means that codes for a
4352 composite character is deleted.
4353 (Qcomposition) (leading_code_composition)
4354 (charset_composition) (min_composite_char) (cmpchar_table)
4355 (cmpchar_table_size) (n_cmpchars): Deleted.
4356 (SPLIT_COMPOSITE_SEQ): Deleted.
4357 (SPLIT_MULTIBYTE_SEQ): Modified.
4358 (char_to_string): Renamed from non_ascii_char_to_string.
4359 Modified.
4360 (string_to_char): Renamed from string_to_non_ascii_char.
4361 (split_string): Renamed from split_non_ascii_string.
4362 (char_printable_p) (Fsplit_char)
4363 (Ffind_charset_region) (Ffind_charset_string) (char_valid_p)
4364 (char_bytes) (Fchar_width) (strwidth): Modified.
4365 (find_charset_in_str): Argument CMPCHARP deleted. Modified.
4366 (Fstring): Adjusted for the change of CHAR_STRING. Modified.
4367 (hash_string) (CMPCHAR_HASH_TABLE_SIZE) (cmpchar_hash_table)
4368 (CMPCHAR_HASH_SIZE) (CMPCHAR_HASH_USED) (CMPCHAR_HASH_CMPCHAR_ID)
4369 (str_cmpchar_id) (cmpchar_component) (Fcmpcharp)
4370 (Fcmpchar_component) (Fcmpchar_cmp_rule) (Fcmpchar_cmp_rule_p)
4371 (Fcmpchar_cmp_count): Deleted.
4372 (Fcompose_string): Implemented by Emacs Lisp in composite.el.
4373 (init_charset_once): Modified.
4374 (syms_of_charset): Modified.
4375
4376 * cmds.c (internal_self_insert): Adjusted for the change of
4377 CHAR_STRING.
4378
4379 * coding.h (emacs_code_class_type): Delete the member
4380 EMACS_leading_code_composition.
4381 (COMPOSING_NO) (COMPOSING_WITH_RULE_HEAD) (COMPOSING_NO_RULE_HEAD)
4382 (COMPOSING_WITH_RULE_TAIL) (COMPOSING_NO_RULE_TAIL)
4383 (COMPOSING_WITH_RULE_RULE) (COMPOSING_HEAD_P)
4384 (COMPOSING_WITH_RULE_P): Macros deleted.
4385 (COMPOSITION_DATA_SIZE) (COMPOSITION_DATA_MAX_BUNCH_LENGTH): New
4386 macros.
4387 (struct composition_data): New structure.
4388 (CODING_FINISH_INSUFFICIENT_CMP): New macro.
4389 (struct coding_system): New members composition_rule_follows,
4390 cmp_data, cmp_data_start, cmp_data_index.
4391 (coding_save_composition) (coding_free_composition_data)
4392 (coding_adjust_composition_offset): Extern them.
4393
4394 * coding.c: Include composite.h.
4395 (DECODE_CHARACTER_ASCII): Don't handle composition here.
4396 (DECODE_CHARACTER_DIMENSION1): Likewise. Don't check the validity
4397 of multibyte code here.
4398 (DECODE_CHARACTER_DIMENSION2): Likewise.
4399 (detect_coding_emacs_mule): Change the case label from
4400 EMACS_leading_code_composition to 0x80.
4401 (detect_coding_iso2022): Handle new composition sequence.
4402 (DECODE_ISO_CHARACTER): Likewise.
4403 (check_composing_code): Deleted.
4404 (coding_allocate_composition_data): New function.
4405 (CODING_ADD_COMPOSITION_START) (CODING_ADD_COMPOSITION_END)
4406 (CODING_ADD_COMPOSITION_COMPONENT) (DECODE_COMPOSITION_START)
4407 (DECODE_COMPOSITION_END) (DECODE_COMPOSITION_RULE): New macros.
4408 (decode_coding_iso2022): Handle new composition sequence.
4409 (ENCODE_ISO_CHARACTER): Don't check composition here.
4410 (ENCODE_COMPOSITION_RULE) (ENCODE_COMPOSITION_START): New macros.
4411 (ENCODE_COMPOSITION_NO_RULE_START)
4412 (ENCODE_COMPOSITION_WITH_RULE_START): Deleted.
4413 (ENCODE_COMPOSITION_END): Handle new composition sequence.
4414 (ENCODE_COMPOSITION_FAKE_START): New macro.
4415 (encode_coding_iso2022): Handle new composition sequence.
4416 (ENCODE_SJIS_BIG5_CHARACTER): Delete superfluous `;' at the tail.
4417 (encode_coding_sjis_big5): Ignore composition.
4418 (setup_coding_system): Initialize new members of struct
4419 coding_system. Enable composition only when the coding system has
4420 `composition' property t.
4421 (coding_free_composition_data) (coding_adjust_composition_offset)
4422 (coding_save_composition) (coding_restore_composition): New
4423 functions.
4424 (code_convert_region): Call coding_save_composition for encoding
4425 and coding_allocate_composition_data for decoding. Don't skip
4426 ASCII characters if we handle composition on encoding. Call
4427 signal_after_change with Check_BORDER.
4428 (code_convert_string): Call coding_save_composition for encoding
4429 and coding_allocate_composition_data for decoding. Don't skip
4430 ASCII characters if we handle composition on encoding.
4431 (code_convert_string1): Set Vlast_coding_system_used after calling
4432 code_convert_string.
4433 (code_convert_string_norecord): Disable composition.
4434 (Fset_terminal_coding_system_internal): Likewise.
4435 (Fset_safe_terminal_coding_system_internal): Likewise.
4436 (Fset_keyboard_coding_system_internal): Likewise.
4437 (init_coding_once): Set emacs_code_class[0x80] to
4438 EMACS_invalid_code.
4439
4440 * composite.h: New file.
4441
4442 * composite.c: New file.
4443
4444 * data.c (Faref): Delete codes for a composite character..
4445 (Faset): Likewise. Adjusted for the change of CHAR_STRING.
4446
4447 * dispextern.h (enum glyph_type): New member COMPOSITE_GLYPH.
4448 (struct glyph): Add new sub-structure cmp to the union `u'.
4449 (enum display_element_type): New member IT_COMPOSITION.
4450 (enum prop_idx): New member COMPOSITION_PROP_IDX.
4451 (struct it): New members cmp_id, cmp_len.
4452
4453 * dispnew.c (direct_output_forward_char): Check point moving into
4454 or out of a composition. If so, give up direct method.
4455
4456 * doprnt.c (doprnt1): Adjusted for the change of CHAR_STRING.
4457
4458 * editfns.c (Fchar_to_string): Adjusted for the change of
4459 CHAR_STRING.
4460 (general_insert_function): Likewise.
4461 (Finsert_char): Likewise.
4462 (Fsubst_char_in_region): Likewise. Call update_compositions.
4463 (Ftranslate_region): Call update_compositions.
4464 (Ftranspose_regions): Call update_compositions.
4465
4466 * emacs.c (main): Call syms_of_composite.
4467
4468 * fileio.c (Fsubstitute_in_file_name): Adjusted for the change of
4469 CHAR_STRING.
4470 (Finsert_file_contents): Set Vlast_coding_system_used before
4471 calling signal_after_change. Call update_compositions if some
4472 texts are inserted..
4473 (Fwrite_region): Adjusted for the change of a_write and e_write.
4474 (a_write): Argument changed. Work based on character position,
4475 not byte position.
4476 (e_write): Argument changed. Handle new way of composition.
4477
4478 * fns.c (Flength): The length of char-table is MAX_CHAR.
4479 (concat): Adjusted for the change of CHAR_STRING.
4480 (Ffillarray): Adjusted for the change of CHAR_STRING.
4481 (Fset_char_table_default): Delete codes for a composite character.
4482 (hash_put): Return hash index.
4483
4484 * fontset.h (struct font_info): New member vertical_centering.
4485 (Vvertical_centering_font_regexp): Extern it.
4486
4487 * fontset.c (Vvertical_centering_font_regexp): New variable.
4488 (syms_of_fontset): Declare it as a Lisp variable and initialize.
4489 Set Vignore_relative_composition to nil.
4490 (fs_load_font): Initialize `vertical_centering' of struct
4491 font_info.
4492
4493 * indent.c (check_composition): New function.
4494 (MULTIBYTE_BYTES_WIDTH): Call STRING_CHAR_AND_LENGTH with
4495 MAX_MULTIBYTE_LENGTH, not MAX_LENGTH_OF_MULTI_BYTE_FORM.
4496 (current_column_1): Handle new way of composition.
4497 (Fmove_to_column): Likewise.
4498 (compute_motion): Likewise.
4499
4500 * insdel.c (copy_text): Adjusted for the change of CHAR_STRING.
4501 (insert_char): Likewise.
4502 (insert): Call update_compositions.
4503 (insert_and_inherit): Likewise.
4504 (insert_before_markers): Likewise.
4505 (insert_before_markers_and_inherit): Likewise.
4506 (insert_from_string): Likewise.
4507 (insert_from_string_before_markers): Likewise.
4508 (insert_from_buffer): Likewise.
4509 (replace_range): Likewise.
4510 (count_combining_composition): Deleted.
4511 (count_combining_before): Delete codes for a composite character.
4512 (count_combining_after): Likewise.
4513 (del_range_1): Call update_compositions.
4514 (del_range_byte): Likewise.
4515 (del_range_both): Likewise.
4516 (Fcombine_after_change_execute): Likewise.
4517
4518 * intervals.h: Include composite.h.
4519 (get_property_and_range): Extern it.
4520 (Vtext_property_default_nonsticky): Extern it.
427ec082 4521
5ec14d3c
KH
4522 * intervals.c (adjust_intervals_for_insertion): To check stickines
4523 of properties, pay attention to text-property-default-nonsticky.
4524 (merge_properties_sticky): Likewise.
4525 (get_property_and_range): New function.
4526
4527 * keyboard.c (Vdisable_point_adjustment): New variable.
4528 (Vglobal_disable_point_adjustment): New variable.
4529 (syms_of_keyboard): Declare them as Lisp variables.
4530 (command_loop_1): Check them and call adjust_point_for_property if
4531 necessary.
4532 (adjust_point_for_property): New function.
4533
4534 * keymap.c (push_key_description): Adjusted for the change of
4535 CHAR_STRING.
4536 (Ftext_char_description): Likewise.
4537
4538 * lisp.h (QCtest, QCweakness, Qequal): Extern them.
4539 (hash_put): Adjusted for the change of the definition.
4540 (signal_after_change): Likewise.
4541 (check_point_in_composition): Extern it.
4542
4543 * lread.c (readchar): Adjusted for the change of CHAR_STRING.
4544 Delete a code that handles an invalid too-long multibyte sequence
4545 because we are now sure that we never encounter with such a
4546 sequence.
4547 (read_multibyte): Use macro MAX_MULTIBYTE_LENGTH, not
4548 MAX_LENGTH_OF_MULTI_BYTE_FORM.
4549 (init_obarray): Likewise.
4550 (read1): Likewise. Adjusted for the change of CHAR_STRING.
4551
4552 * print.c (printchar): Adjusted for the change of CHAR_STRING.
4553
4554 * process.c: Include composite.h.
4555 (read_process_output): Call update_compositions.
4556
4557 * regex.c (regex_compile): Adjusted for the change of CHAR_STRING.
4558
4559 * search.c (search_buffer): Adjusted for the change of CHAR_STRING.
4560
4561 * syntax.h (SYNTAX_ENTRY_INT): Delete codes for a composite
4562 character.
4563
4564 * term.c (encode_terminal_code): Delete codes for a composite
4565 character. Adjusted for the change of CHAR_STRING.
4566 (produce_glyphs): When called, it->what can be IT_COMPOSITION.
4567 Delete codes for a composite character.
4568
4569 * textprop.c (Vtext_property_default_nonsticky): New variable
4570 (syms_of_textprop): Declare it as a Lisp variable.
4571
4572 * window.c (Frecenter): Clear all caches of compositions.
4573
4574 * xdisp.c (it_props): Add an entry for composition.
4575 (face_before_or_after_it_pos): For composition, check face of a
4576 character after the composition.
4577 (handle_composition_prop): New function.
4578 (get_next_display_element): Adjusted for the change of
4579 CHAR_STRING.
4580 (set_iterator_to_next): Handle the case that it->method ==
4581 next_element_from_composition.
4582 (next_element_from_composition): New function.
4583 (message_dolog): Adjusted for the change of CHAR_STRING.
4584 (set_message_1): Likewise.
4585 (check_point_in_composition): New function.
4586 (reconsider_clip_changes): If point moved into or out of
4587 composition, set b->clip_changed to 1 to force updating of the
4588 screen.
4589 (disp_char_vector): Delete codes for a composite character.
4590 (decode_mode_spec_coding): Adjusted for the change of CHAR_STRING.
4591
4592 * xfaces.c (choose_face_fontset_font): Delete codes for a
4593 composite character.
4594 (realize_x_face): Likewise. Change a place to set local variable
4595 `f' to avoid a bug of GCC 2.8.1 on Solaris.
4596
4597 * xfns.c: Include intervals.h.
4598 (syms_of_xfns): Make `display' property nonsticky by default.
4599
4600 * xselect.c (lisp_data_to_selection_data): Adjusted for the change
4601 for find_charset_in_str.
4602
4603 * xterm.h (struct x_output): Change member font_baseline to
4604 baseline_offset.
4605
4606 * xterm.c (x_append_glyph): Setup members of struct glyph properly
4607 for composition.
4608 (x_append_composite_glyph): New function.
4609 (VCENTER_BASELINE_OFFSET): New macro.
4610 (x_produce_glyphs): If it->what == IT_COMPOSITION, setup members
4611 of struct it for the composition. Cache pixel offsets in the
4612 struct composition. Delete codes for a composite character.
4613 Handle Vignore_relative_composition in composition code.
4614 (struct glyph_string): Delete member cmpcharp, add new member cmp.
4615 (x_set_cursor_gc): Check s->cmp, not s->cmpcharp.
4616 (x_compute_glyph_string_overhangs): Likewise.
4617 (x_get_glyph_overhangs): Delete codes for a composite character.
4618 (x_right_overwritten): Check s->cmp, not s->cmpcharp.
4619 (x_draw_glyph_string_background): Likewise. Delete codes for
4620 checking s->gidx for a composition.
4621 (x_draw_glyph_string_foreground): Delete code for a composite
4622 character.
4623 (x_draw_composite_glyph_string_foreground): New function.
4624 (x_draw_glyph_string_box): Check s->cmp, not s->cmpcharp.
4625 (x_draw_glyph_string): Handle the case of COMPOSITE_GLYPH.
4626 (struct work): Deleted.
4627 (x_fill_composite_glyph_string): Argument changed. Mostly
4628 rewritten for that.
4629 (x_fill_glyph_string): Don't check CHARSET_COMPOSITION.
4630 (BUILD_CHAR_GLYPH_STRINGS): Don't handle composition here.
4631 (BUILD_COMPOSITE_GLYPH_STRING): New macro.
4632 (BUILD_GLYPH_STRINGS): For composition, call
4633 BUILD_COMPOSITE_GLYPH_STRING.
4634 (x_new_font): Initialize f->output_data.x->baseline_offset, not
4635 f->output_data.x->font_baseline.
4636
c3c60f13
GM
46371999-12-14 Gerd Moellmann <gerd@gnu.org>
4638
4639 * xterm.c (show_mouse_face): Don't use updated_area, use
4640 TEXT_AREA.
4641
83c8f461 46421999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
4643
4644 * minibuf.c (Fall_completions): Doc fix.
4645
83c8f461 46461999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
4647
4648 * macros.c (Fstart_kbd_macro): Handle case where last-kbd-macro
4649 has been changed by the Lisp code.
4650
d8eccf12
GM
46511999-12-12 Gerd Moellmann <gerd@gnu.org>
4652
4653 * xfns.c: Indentation fixes.
4654
ae56feae
SM
46551999-12-10 Stefan Monnier <monnier@cs.yale.edu>
4656
4657 * xterm.c (x_initialize): Only setup xaw3d_* if they've been declared.
4658
dfa1c6ae
GM
46591999-12-10 Gerd Moellmann <gerd@gnu.org>
4660
4661 * frame.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL)
4662 [!MSDOS && !WINDOWSNT && !macintosh]: Moved here from xterm.h.
4663
4664 * xterm.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL): Moved
4665 to frame.h.
4666
ec18280f
SM
46671999-12-09 Stefan Monnier <monnier@cs.yale.edu>
4668
4669 * keyboard.c (Qratio): New symbol.
4670 (scroll_bar_parts): Add `Qratio' to it.
4671 (syms_of_keyboard): Init `Qratio'.
4672 * termhooks.h (scroll_bar_part): Add `scroll_bar_move_ratio'.
4673 * xterm.c (#includes): Allow compilation with only Xaw.
4674 (xaw3d_arrow_scroll, xaw3d_pick_top): New variables.
4675 (xt_action_hook): Replace XAW3D by XAW.
4676 (xaw3d_jump_callback): Renamed to xaw_jump_callback.
4677 (xaw_jump_callback): Renamed from xaw3d_jump_callback.
4678 Determine epsilon dynamically and don't try to be too clever.
4679 (xaw3d_scroll_callback): Renamed to xaw_scroll_callback.
4680 (xaw_scroll_callback): Renamed from xaw3d_scroll_callback.
4681 Handle both Xaw3d with arrow-scrollbars and with Xaw-style
4682 scrollbar (using `ratio').
4683 (x_create_toolkit_scroll_bar): Try to detect which style of Xaw3d
4684 scrollbar we have so as to set it up more optimally and to fix
4685 xaw3d_arrow_scroll and xaw3d_pick_top.
4686 (x_set_toolkit_scroll_bar_thumb): Try to maintain 2 spare pixels at the
4687 bottom of the Xaw3d scrollbar, to work around its tendency to refuse
4688 shrinking the thumb. Also make sure that `XawScrollbarSetThumb'
4689 is not ignored, using a major gross hack.
4690 (x_initialize): Init default values for xaw3d_arrow_scroll and
4691 xaw3d_pick_top.
4692
83b6d970
DL
46931999-12-09 Dave Love <fx@gnu.org>
4694
4695 * frame.h: (PIX_TYPE) [! HAVE_X_WINDOWS]: Define PIX_TYPE.
4696
3648c842
GM
46971999-12-08 Gerd Moellmann <gerd@gnu.org>
4698
4699 * eval.c: Remove conditional compilation on `standalone'.
4700 (call_debugger): When entering the debugger while redisplaying,
4701 reset redisplaying_p, and go back to the top-level if the debugger
4702 returns.
4703
05e71564
GM
47041999-12-07 Gerd Moellmann <gerd@gnu.org>
4705
4706 * xfaces.c (x_set_menu_resources_from_menu_face): Make sure
4707 basic faces are realized before trying to use face `menu'.
4708
4709 * window.c (delete_window): Block input for the time window
4710 matrices are being changed.
4711
b46cd536
DL
47121999-12-07 Dave Love <fx@gnu.org>
4713
4714 * lread.c (Fintern_soft): Fix newlines in doc string.
4715
96acb1f7
GM
47161999-12-07 Alexandre Oliva <oliva@dcc.unicamp.br>
4717
4718 * unexelf.c: Include <syms.h>, not <sym.h> on IRIX. Removed
4719 duplicate definition of ElfW.
4720 (find_section): Copied from unexsgi.c.
4721 (unexec): Use find_section. Adjust whitespace. Initialize
4722 new_data2_offset based on old_data, not sbss (this fixes a bug on
4723 IRIX6). Change #ifdef __mips to __sgi, since it's IRIX-specific.
4724 Adjust test for presence of .mdebug section to the new return
4725 value of find_section.
427ec082 4726
96acb1f7
GM
47271999-12-07 Gerd Moellmann <gerd@gnu.org>
4728
4729 * unexelf.c: Merge changes from 20.5.
4730 (unexec): Handle .lit4 and .lit8 unconditionally.
4731
4732 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexelf.o instead of
4733 unexsgi.o again.
427ec082 4734
96acb1f7
GM
4735 * m/iris5d.h (UNEXEC): Likewise.
4736
7dae4502
SM
47371999-12-06 Stefan Monnier <monnier@cs.yale.edu>
4738
4739 * editfns.c (Fdelete_and_extract_region): New function.
05e71564
GM
4740 (syms_of_editfns): Register it.
4741 * insdel.c (del_range): Update del_range_1 call.
7dae4502
SM
4742 (del_range_1, del_range_2): Add a ret_string argument to
4743 request that the deleted text be returned.
4744 (del_range_byte, del_range_both): Update del_range_2 call.
05e71564 4745 * lisp.h (del_range_1, del_range_2): Change prototype
7dae4502
SM
4746 * casefiddle.c (casify_region): Update del_range_1 call.
4747 * coding.c (code_convert_region): Update del_range_2 call.
4748 * fileio.c (Finsert_file_contents): Update del_range_2 call.
4749
397e4fae
GM
47501999-12-06 Gerd Moellmann <gerd@gnu.org>
4751
4752 * xfaces.c (set_lface_from_font_name): Fix incomplete merge.
4753
3d973f71
GM
47541999-12-04 Hrvoje Niksic <hniksic@iskon.hr>
4755
4756 * lread.c (Fintern_soft): Accept a symbol argument.
427ec082 4757
740e985f
EZ
47581999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
4759
4760 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Reduce to 40000.
809f3d51
EZ
4761
4762 * insdel.c (adjust_markers_for_delete): Fix last change.
4763
2d764c78
EZ
47641999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
4765
4766 Changes for automatic remapping of X colors on terminal frames:
4767
4768 * xfaces.c (XColor) [!HAVE_X_WINDOWS]: Provide a typedef for non-X
4769 frames.
4770 (Vface_tty_color_alist): Remove.
4771 (tty_defined_color): New function.
4772 (defined_color): Rewrite to support any type of frame.
4773 (tty_color_name): New function.
4774 (face_color_supported_p, Fface_color_gray_p,
4775 Fface_color_supported_p): Support non-X frames.
4776 (load_color): Enclose the color name in quotes, in the log
4777 messages. Remove DOS-specific version of load_color.
4778 (realize_tty_face): Take the supported colors from
4779 tty-color-alist. Support translation of X colors to the closest
4780 tty color, for both MSDOS and tty frames.
4781 [MSDOS]: Don't invert face colors if they were taken from the
4782 frame colors.
4783 (Fface_register_tty_color, Fface_clear_tty_colors): Remove.
4784
4785 * frame.h (struct x_output) [!MSDOS, !WINDOWSNT, !HAVE_X_WINDOWS]:
4786 Define a mostly empty surrogate.
4787 (tty_display): Declare.
4788
4789 * frame.c (make_terminal_frame) [!macintosh]: Don't use
4790 tty_display.
4791 (Fframe_parameters): Don't invert colors of non-FRAME_WINDOW_P
4792 frames when the frame's param_alist includes 'reverse.
4793 (tty_display): Define.
4794 (make_terminal_frame) [!MSDOS]: Assign &tty_display to the
4795 output_data.x member.
4796 (Fframe_parameters): Return foreground and background color names
4797 on tty frames as well, in addition to MSDOS frames.
4798
4799 * msdos.h (DisplayWidth, DisplayHeight): Changes for Lisp_Object
4800 selected_frame.
4801 (struct x_output): Remove unused members; document who uses each
4802 member.
4803 (FRAME_PARAM_FACES, FRAME_N_PARAM_FACES, FRAME_DEFAULT_PARAM_FACE,
4804 FRAME_MODE_LINE_PARAM_FACE, FRAME_COMPUTED_FACES,
4805 FRAME_N_COMPUTED_FACES, FRAME_SIZE_COMPUTED_FACES,
4806 FRAME_DEFAULT_FACE, FRAME_MODE_LINE_FACE, unload_color): Remove
4807 unused macro definintions.
4808
4809 * msdos.c (IT_set_frame_parameters): Don't call
4810 recompute_basic_faces, the next redisplay will, anyway.
4811 (x_current_display): Remove unused variable.
4812 Many functions: changes for Lisp_object selected_frame.
4813 (IT_set_face): If the tty_reverse_p flag is set for the face,
4814 reverse the foreground and background colors.
4815 (Fmsdos_remember_default_colors): New function.
4816 (syms_of_msdos): Defsubr it.
4817 (IT_set_frame_parameters): Use initial_screen_colors[] when
4818 creating a new frame. If the frame parameters include 'reverse,
4819 swap the foreground and background colors.
4820 (internal_terminal_init): Initialize initial_screen_colors to -1.
4821 (syms_of_msdos): Add DEFVAR_BOOL for x-stretch-cursor, to shut up
4822 cus-start.el.
4823
4824 * Makefile.in (lisp, shortlisp): Add lisp/term/tty-colors.elc.
4825
4826 * xfns.c (x_defined_color): Rename from defined_color. All
4827 callers changed.
4828 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
4829 all callers changed.
4830 (Fxw_color_values): Renamed from Fx_color_values; all callers
4831 changed.
4832 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
4833 callers changed.
4834 (x_window_to_frame, x_any_window_to_frame,
4835 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
4836 x_top_window_to_frame): Use !FRAME_X_P instead of
4837 f->output_data.nothing.
4838 * xterm.h (x_defined_color): Rename from defined_color.
4839
4840 * w32fns.c (x_window_to_frame): Use FRAME_W32_P instead of
4841 f->output_data.nothing.
4842 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
4843 all callers changed.
4844 (Fxw_color_values): Renamed from Fx_color_values; all callers
4845 changed.
4846 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
4847 callers changed.
4848
4849 * dispextern.h (tty_color_name): Add prototype.
4850
4851 * xmenu.c (menubar_id_to_frame): Use FRAME_WINDOW_P instead of
4852 f->output_data.nothing.
4853 * w32menu.c (menubar_id_to_frame): Likewise.
4854 * w32term.h (w32_output): Declare.
4855
4856 * dosfns.c (Qmsdos_color_translate): Remove.
4857 (msdos_stdcolor_name): Now returns a Lisp_Object.
4858 * dosfns.h (Qmsdos_color_translate): Remove.
4859
4860 * s/msdos.h (INTERNAL_TERMINAL): Add entries for color support.
4861
b3e5232e
KH
48621999-12-06 Kenichi Handa <handa@etl.go.jp>
4863
4864 * fileio.c (decide_coding_unwind): Renamed from
4865 set_auto_coding_unwind.
4866 (Finsert_file_contents): Make single unwind protect to call both
4867 Vset_auto_coding_function and Ffind_operation_coding_system.
4868
4869 * insdel.c (adjust_markers_for_delete): Make it non-static.
4870
db0e466c
SM
48711999-12-04 Stefan Monnier <monnier@cs.yale.edu>
4872
4873 * regex.c (regex_compile): Recognize *?, +? and ?? as non-greedy
4874 operators and handle them properly.
4875 * regex.h (RE_ALL_GREEDY): New option.
4876 (RE_UNMATCHED_RIGHT_PAREN_ORD): Moved to the end where alphabetic
4877 sorting would put it.
4878 (RE_SYNTAX_AWK, RE_SYNTAX_GREP, RE_SYNTAX_EGREP)
4879 (_RE_SYNTAX_POSIX_COMMON): Use the new option to keep old behavior.
4880
22afa6e8
DL
48811999-12-04 Dave Love <d.love@dl.ac.uk>
4882
4883 * m/arm.h: New file.
4884
40afb967
DL
48851999-12-03 Dave Love <fx@gnu.org>
4886
4887 * editfns.c (Fmessage_or_box): Use use_dialog_box.
4888
ddf8eff5
GM
48891999-12-02 Gerd Moellmann <gerd@gnu.org>
4890
4891 * s/usg5-4.h (LIBS_SYSTEM): Add -lgen because that's needed
4892 for building with Motif.
4893
4894 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexsgi.o instead of
4895 unexelf.o.
427ec082 4896
ddf8eff5
GM
4897 * m/iris5d.h (UNEXEC): Use unexsgi.o instead of unexelf.o.
4898
fa09a82d
DL
48991999-12-01 Dave Love <fx@gnu.org>
4900
4901 * emacs.c (main): Set LANG=C iff AX3_2 defined.
4902
ddf8eff5
GM
49031999-11-28 Gerd Moellmann <gerd@gnu.org>
4904
4905 * systime.h (EMACS_TIME_CMP, EMACS_TIME_EQ, EMACS_TIME_NE)
4906 (EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT,EMACS_TIME_LE): New
4907 macros.
4908
4909 * config.in (HAVE_SETITIMER, HAVE_UALARM): New.
4910
fa09a82d
DL
49111999-11-28 eliz <eliz@dlpx1>
4912
4913 * emacs.c (synchronize_locale): Avoid compiler warnings about
4914 pointer type mismatch.
4915
f9632fc8
GM
49161999-11-28 Gerd Moellmann <gerd@gnu.org>
4917
717d0121
GM
4918 * window.c (Fwindow_end): Don't call temp_set_pt_both with
4919 out of range position.
4920
427ec082 4921 * xterm.c (XTread_socket) <ClientMessage, Xatom_Scrollbar>:
f9632fc8
GM
4922 Switch off busy-cursor by setting inhibit_busy_cursor to 2.
4923
59c65f1e
EZ
49241999-11-28 Eli Zaretskii <eliz@is.elta.co.il>
4925
613a8346
EZ
4926 * charset.c (Fmake_char_internal): Print the charset ID when
4927 signalling an error.
4928
59c65f1e
EZ
4929 * emacs.c (synchronize_locale): Avoid compiler warnings about
4930 pointer type mismatch.
4931
83c8f461 49321999-11-26 Richard M. Stallman <rms@gnu.org>
d01f3570
RS
4933
4934 * editfns.c (Fdelete_field): Make it noninteractive. Return nil.
4935
18df9369
GM
49361999-11-26 Gerd Moellmann <gerd@gnu.org>
4937
65a3ccf7
GM
4938 * puresize.h (BASE_PURESIZE): Increase to 550000.
4939
b3b98592
GM
4940 * textprop.c (set_text_properties): New function. Like
4941 Fset_text_properties, but with additional parameter
4942 SIGNAL_AFTER_CHANGE_P. If that is nil, don't signal after
4943 changes.
4944 (Fset_text_properties): Use it.
4945
4946 * insdel.c (insert_1_both): Call set_text_properties with last
4947 parameter nil so that no after changes will be signaled.
4948
4949 * lisp.h: Add prototype for set_text_properties.
4950
18df9369
GM
4951 * xfaces.c (set_lface_from_font_name): Fix previous change.
4952 (recompute_basic_faces): Change assert to abort.
4953
71a8e74b
DL
49541999-11-25 Dave Love <fx@gnu.org>
4955
4956 * fns.c (Fnthcdr, Fnreverse): Inline cdr.
4957 (Fmember, Fdelq, Fdelete): Inline car.
4958 (Fy_or_n_p): Doc fix.
4959
bc6a5782
GM
49601999-11-25 Gerd Moellmann <gerd@gnu.org>
4961
3221576b 4962 * xfaces.c (set_lface_from_font_name): New parameter may_fail_p.
18df9369 4963 Callers changed. If specified font name is bogus, and may_fail_p
3221576b
GM
4964 is not set, try to use a reasonable default.
4965
bc6a5782
GM
4966 * dispnew.c (direct_output_for_insert): Set glyph row's
4967 displays_text_p flag. Correct window's window_end_vpos if
4968 necessary.
4969
0c8559bb
PE
49701999-11-25 Paul Eggert <eggert@twinsun.com>
4971
4972 * emacs.c (fixup_locale): Don't bother to record initial locale.
4973 (synchronize_locale): If the desired locale is nil,
4974 treat it as if it were the empty string,
4975 so that we set the locale from the environment.
4976
35737351
KH
49771999-11-25 Kenichi Handa <handa@etl.go.jp>
4978
4979 * fileio.c (Finsert_file_contents): Set buffer-file-coding-system
4980 of the current buffer via Fset.
4981
5562b47f
DL
49821999-11-24 Dave Love <fx@gnu.org>
4983
5562b47f
DL
4984 * xfaces.c: Don't duplicate Qmode_line definition done elsewhere.
4985
4986 * xfns.c: Don't duplicate Qdisplay definition done elsewhere.
4987
00da0e4a
GM
49881999-11-24 Gerd Moellmann <gerd@gnu.org>
4989
4990 * lisp.h (enum pvec_type): Put PVEC_FLAG in #if 0.
4991
4992 * emacs.c (PVEC_FLAG): New variable.
4993
b1775dc1
GM
49941999-11-23 Gerd Moellmann <gerd@gnu.org>
4995
4996 * unexaix.c (unexec): Use unsigned instead of uintptr_t because
4997 that fails on IBM PowerPC, AIX 4.2.
427ec082 4998
08de6200
EZ
49991999-11-22 Eli Zaretskii <eliz@is.elta.co.il>
5000
5001 * buffer.c (syms_of_buffer): Add %z, %Z, %m and %& to the doc
5002 string of mode-line-format. Remove the obsolete %t.
5003
02fda8ff
GM
50041999-11-22 Gerd Moellmann <gerd@gnu.org>
5005
f2fa858f
GM
5006 * dispnew.c (direct_output_for_insert): Increment glyph positions
5007 for glyphs from buffer text only.
5008
02fda8ff
GM
5009 * emacs.c (gdb_valbits, gdb_gctypebits, gdb_emacs_intbits)
5010 (gdb_data_seg_bits): New variables.
427ec082 5011
02fda8ff
GM
5012 * lisp.h (enum gdb_lisp_params): Put in #if 0, since it doesn't
5013 work on systems not allowing enumerators > INT_MAX, and it
5014 won't work if EMACS_INT is long long.
5015
1b0d24e7
PE
50161999-11-22 Paul Eggert <eggert@twinsun.com>
5017
5018 Port to SunOS 4.1.x again. Help out with Alpha port.
5019 Rename messages-locale to system-messages-locale,
5020 and likewise for time-locale.
427ec082 5021
1b0d24e7
PE
5022 * callproc.c (strerror): Remove decl.
5023 * fileio.c (strerror): Likewise.
5024 * process.c (strerror): Likewise.
5025 * emacs.c (strerror): Likewise.
5026 (Vsystem_messages_locale): Renamed from Vmessages_locale.
5027 All uses changed.
5028 (Vprevious_system_messages_locale): Likewise, from
5029 Vprevious_messages_locale.
5030 (Vsystem_time_locale): Likewise, from Vtime_locale.
5031 (Vprevious_system_time_locale): Likewise, from Vprevious_time_locale.
5032 (ABORT_RETURN_TYPE): New macro.
5033 (abort): Return type is now ABORT_RETURN_TYPE.
5034 (main): Always invoke init_signals, even if POSIX_SIGNALS is not
5035 defined.
5036 (syms_of_emacs): messages-locale -> system-messages-locale,
5037 previous-messages-locale -> previous-system-messages-locale,
5038 time-locale -> system-time-locale,
5039 previous-time-locale -> previous-system-time-locale.
5040
5041 * gmalloc.c (PP, __ptr_t): Assume ANSI C if STDC_HEADERS is defined.
5042 (const): Do not define; that's config.h's job.
5043 (<limits.h>): Include if HAVE_LIMITS_H is defined.
5044 (CHAR_BIT): Move test for definedness outside of limits.h condition.
5045 (<stddef.h>): Include if STDC_HEADERS is defined.
5046 (FREE_RETURN_TYPE): New macro.
5047 (free): Return type is now FREE_RETURN_TYPE.
5048
5049 * lisp.h (synchronize_system_time_locale): Renamed from
5050 synchronize_time_locale. All uses changed.
5051 (synchronize_system_messages_locale): Likewise, from
5052 synchronize_messages_locale.
5053
5054 * m/alpha.h (malloc, realloc, calloc): Remove decls;
5055 stdlib.h now does this.
5056
5057 * process.c (sys_siglist): Remove.
5058
5059 * s/sunos4-0.h (ABORT_RETURN_TYPE, FREE_RETURN_TYPE):
5060 New macros.
5061
5062 * syntax.c (scan_sexps_forward): Use abort, not assert.
5063
5064 * sysdep.c (my_sys_siglist): New var.
5065 (sys_siglist): New macro. Remove old initialized vars of same name.
5066 (init_signals): Initialize sys_siglist.
5067
5068 * xfns.c (abort): Remove decl; stdlib.h now does this.
5069
0dcd5b54
DL
50701999-11-18 Dave Love <fx@gnu.org>
5071
946173ad
DL
5072 * filelock.c: Add forward declaration for get_boot_time_1.
5073
0dcd5b54
DL
5074 * dispnew.c (Finternal_show_cursor_p): Fix doc string.
5075
71447e8f
GM
50761999-11-18 Gerd Moellmann <gerd@gnu.org>
5077
5078 * buffer.h (struct buffer_text): Add comment about moving
5079 buffer text if REL_ALLOC is defined.
5080
eeedff63
KH
50811999-11-18 Kenichi Handa <handa@etl.go.jp>
5082
5083 * lisp.h (KEY_DESCRIPTION_SIZE): New macro.
5084
5085 * keyboard.c (echo_char): Use KEY_DESCRIPTION_SIZE to check free
5086 memory for push_key_description.
5087
5088 * keymap.c (Fsingle_key_description): Use KEY_DESCRIPTION_SIZE to
5089 allocate memory for push_key_description.
5090 (describe_buffer_bindings): Likewise.
5091
5d7e4a2c
GM
50921999-11-17 Gerd Moellmann <gerd@gnu.org>
5093
5094 * xfns.c (Fx_show_busy_cursor): Doc-fix.
5095 (Fx_hide_busy_cursor): Ditto.
5096
50971999-11-17 Marco Walther <walther@siemens-pyramid.com>
5098
5099 * unexsni.c (unexec): Handle .rel.dyn section.
5100
b5b41e02
DL
51011999-11-16 Dave Love <fx@gnu.org>
5102
5103 * doc.c (Fdocumentation): Remove gcpro here too.
5104
e35b6123
GM
51051999-11-16 Gerd Moellmann <gerd@gnu.org>
5106
5107 * keyboard.c (command_loop_1): Remove no_redisplay.
5108
83c8f461 51091999-11-16 Richard M. Stallman <rms@gnu.org>
0a14b9bb
GM
5110
5111 * print.c (PRINTPREPARE): Don't call setup_echo_area_for_printing
5112 in noninteractive.
5113
b05d3bee
GM
51141999-11-14 Gerd Moellmann <gerd@gnu.org>
5115
5bcfeb49
GM
5116 * xdisp.c (ensure_echo_area_buffers): New.
5117 (with_echo_area_buffer): Use it.
5118 (setup_echo_area_for_printing): Ditto.
5119
b05d3bee
GM
5120 * buffer.c (indicate-empty-lines): Doc-fix.
5121
9b2e6e4c
GM
51221999-11-12 Gerd Moellmann <gerd@gnu.org>
5123
e7f90eab
GM
5124 * term.c (term_init): If "op" isn't available, don't support color
5125 because we can't switch back to the default foreground and
5126 background.
5127
9b2e6e4c
GM
5128 * doc.c (Fdocumentation_property): Remove GCPRO because
5129 Fsubstitute_command_keys gcpro's the string.
5130
1bf21027
KH
51311999-11-12 Kenichi Handa <handa@etl.go.jp>
5132
5133 * editfns.c (Ftranslate_region): Check the buffer multibyteness.
5134
3bc6df53
GM
51351999-11-11 Gerd Moellmann <gerd@gnu.org>
5136
5137 * print.c, keymap.c, indent.c, insdel.c, keyboard.c, intervals.c,
5138 lread.c, textprop.c, undo.c, emacs.c, lisp.h, intervals.h,
5139 buffer.h, config.in, Makefile.in: Remove USE_TEXT_PROPERTIES.
5140
35a5514b
GM
51411999-11-10 Gerd Moellmann <gerd@gnu.org>
5142
5143 * xfns.c (QCuser_data): Removed.
5144 (syms_of_xfns): Initialization of QCuser_data removed.
5145 (parse_image_spec): Don't handle :user-data specially. Allow
5146 unknown keys. Remove parameter ALLOW_OTHER_KEYS.
5147 (xbm_image_p, xbm_load, xpm_image_p, pbm_image_p, png_image_p)
5148 (tiff_image_p, jpeg_image_p, gif_image_p, gs_image_p): Call
5149 parse_image_spec accordingly.
5150
83c8f461 51511999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5152
5153 * cmds.c (Fbeginning_of_line): Doc fix.
5154 (Fend_of_line): Doc fix.
5155
5156 * editfns.c (Fline_beginning_position): If N is not 1,
5157 pass t to Fconstrain_to_field for ESCAPE-FROM-EDGE.
5158
5159 * syntax.c (Fforward_word): Handle fields even if would have hit
5160 an edge of the buffer. Return nil if affected by fields.
5161
83c8f461 51621999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5163
5164 * editfns.c (preceding_pos): Function deleted.
5165 (text_property_stickiness): Decrement POS directly.
5166 Fix a confusion that used PT instead of POS.
5167
5168 * editfns.c (find_field): Properly handle the case
5169 of a field boundary where `field' inherits from neither side.
5170
5171 * editfns.c (Ffield_beginning, Ffield_end): Doc fixes.
5172 (Ferase_field, Ffield_string, Ffield_string_no_properties): Doc fixes.
5173
fa9aabf6
GM
51741999-11-08 Gerd Moellmann <gerd@gnu.org>
5175
5176 * bytecode.c (Fbyte_code) <BinsertN, Bcall>: Do the
5177 BEFORE_POTENTIAL_GC before DISCARD.
5178
4015b3c0
GM
51791999-11-07 Gerd Moellmann <gerd@gnu.org>
5180
033a5fa3
GM
5181 * alloc.c (Fgarbage_collect): Call unmark_byte_stack.
5182
5183 * lisp.h: Add prototype for unmark_byte_stack.
5184
5185 * bytecode.c (mark_byte_stack): Use XMARKBIT and XMARK.
5186 (unmark_byte_stack): Renamed from relocate_byte_pcs. Use
5187 XUNMARK.
5188
55b064bd
GM
5189 * xdisp.c (resize_mini_window): Fix computation of needed
5190 mini-window height.
5191
5192 * alloc.c, buffer.c, editfns.c, xdisp.c: Remove conditional
5193 compilation on USE_TEXT_PROPERTIES.
01e9b9df 5194
4015b3c0 5195 * Fbyte_code: Use block statements in cases and declare v1 and v2
60af03f1 5196 locally there. Rearrange case statements so that those most
4015b3c0
GM
5197 frequently executed come first. Avoid goto's in frequently
5198 executed cases.
5199
fe512f27
GM
52001999-11-05 Gerd Moellmann <gerd@gnu.org>
5201
dd59e217
GM
5202 * bytecode.c (Fbyte_code): Use BEFORE_POTENTIAL_GC and
5203 AFTER_POTENTIAL_GC around internal_catch.
5204
bcf28080
GM
5205 * alloc.c (Fgarbage_collect): Call mark_byte_stack and
5206 relocate_byte_pcs.
5207 (init_alloc_once, init_alloc): Set byte_stack_list to null.
5208
5209 * eval.c (struct catchtag): Add member byte_stack.
5210 (internal_catch, Fcondition_case, internal_condition_case)
dd59e217 5211 (internal_condition_case_1): Save value of byte_stack_list in
bcf28080
GM
5212 catchtag.
5213 (unwind_to_catch): Restore byte_stack_list from catchtag.
5214
5215 * lisp.h: Add prototypes for new functions in bytecode.c.
5216 Add extern declaration for byte_stack_list.
5217
5218 * bytecode.c (struct byte_stack): New.
5219 (byte_stack_list, mark_byte_stack, relocate_byte_pcs): New
5220 (BEFORE_POTENTIAL_GC, AFTER_POTENTIAL_GC): New.
5221 (FETCH, PUSH, POP, DISCARD, TOP, MAYBE_GC): Rewritten.
5222 (HANDLE_RELOCATION): Removed.
5223 (Fbyte_code): Use byte_stack structures.
5224
4d59c34c
GM
5225 * filelock.c (Ffile_locked_p): Make FILENAME a required argument.
5226
fe512f27
GM
5227 * buffer.c (syms_of_buffer): Extend documentation of
5228 mode-line-format.
5229
60b64cd6
GM
52301999-11-04 Gerd Moellmann <gerd@gnu.org>
5231
5232 * editfns.c (Fdelete_field): Renamed from Ferase_field.
5233
5234 * minibuf.c (do_completion, Fminibuffer_complete_word): Use
5235 Ferase_field instead of Fdelete_field.
5236
b51b619b
GM
52371999-11-03 Gerd Moellmann <gerd@gnu.org>
5238
5239 * dispnew.c (Finternal_show_cursor): Change it to set the
5240 cursor on/off, not toggle its state.
5241 (Finternal_show_cursor_p): New.
5242 (syms_of_display): Defsubr Sinternal_show_cursor_p.
5243
5865af0d
DL
52441999-11-03 Dave Love <fx@gnu.org>
5245
5246 * charset.c (split_non_ascii_string): Define return value.
5247
82a700f3
GM
52481999-11-03 Gerd Moellmann <gerd@gnu.org>
5249
edfef199
GM
5250 * minibuf.c (string_to_object): New.
5251 (read_minibuf_noninteractive): New.
5252 (read_minibuf): Call read_minibuf_noninteractive if
5253 noninteractive. Use string_to_object.
5254
82a700f3
GM
5255 * doc.c (Fdocumentation_property): Fix bug bypassing UNGCPRO.
5256
b5540f0d
DL
52571999-11-02 Dave Love <fx@gnu.org>
5258
e69dcd60
DL
5259 * gnu-linux.h: Use SIGCHLD, not SIGCLD (not in glibc 2.1).
5260
827a1788
DL
5261 * process.c: Define _GNU_SOURCE before config.h to get strsignal
5262 declared with glibc2.
b5540f0d 5263
a69a6e61
GM
52641999-11-02 Gerd Moellmann <gerd@gnu.org>
5265
5266 * lisp.h (QUIT): Give it statement form.
5267
87e21fbd
DL
52681999-11-02 Dave Love <fx@gnu.org>
5269
5270 * eval.c (init_eval): Conditionalize declaration of gcpro_level.
5271
1b335865
GM
52721999-11-02 Gerd Moellmann <gerd@gnu.org>
5273
9fb5e03d
GM
5274 * xfns.c (QCuser_data): New.
5275 (syms_of_xfns): Initialize QCuser_data.
5276 (parse_image_spec): Ignore :user-data DATA properties.
5277
1b335865
GM
5278 * xdisp.c (display_line): Set charpos of first glyph in blank
5279 lines not corresponding to any text to -1, even if no glyphs are
5280 filled in in that line.
5281
e76f1c44
GM
52821999-11-01 Gerd Moellmann <gerd@gnu.org>
5283
427ec082 5284 * xfns.c (png_load) [PNG_READ_sRGB_SUPPORTED]: Put code using
36fcd3d9
GM
5285 png_get_sRGB in #ifdef.
5286
111259b4
GM
5287 * dispnew.c (Finternal_show_cursor): Renamed from Fshow_cursor.
5288 (syms_of_display): Use the new name.
5289
dd5c96e8
GM
5290 * textprop.c (verify_interval_modification): Signal text-read-only
5291 instead of calling error.
5292
db8878fb
GM
5293 * data.c (Qtext_read_only): New built-in error.
5294 (syms_of_data): Initialize it.
5295
5296 * lisp.h: Add extern declaration for Qtext_read_only.
5297
e76f1c44
GM
5298 * syntax.c: Remove whitespace after open or in front of closing
5299 parentheses.
5300
83c8f461 53011999-11-01 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
5302
5303 * Makefile.in (w16select.o, sound.o): Don't depend on lisp.h.
5304
7843e09c
GM
53051999-10-31 Gerd Moellmann <gerd@gnu.org>
5306
575ed805
GM
5307 * xdisp.c (resize_mini_window): Compute needed height differently.
5308
7843e09c
GM
5309 * fns.c (Flength): Unroll loop over lists.
5310
5311 * xdisp.c (append_space): Return non-zero if space was appended.
5312 (display_line): Set charpos of first glyph to -1 only if that
5313 glyph is the space added by append_glyph.
5314
83c8f461 53151999-10-30 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
5316
5317 * print.c (strout): Consider `noninteractive' and use stdout
5318 only when PRINTCHARFUN is t.
5319
5320 * lisp.h (struct gcpro) [DEBUG_GCPRO]: New field `level'.
5321 (gcpro_level): Declare it extern.
5322 [DEBUG_GCPRO] (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5):
5323 Alternate definitions that set `level' and increment `gcpro_level'.
5324 [DEBUG_GCPRO] (UNGCPRO): Alternate definition that checks gcpro_level.
5325
5326 * eval.c [DEBUG_GCPRO] (gcpro_level): New variable.
5327 (init_eval) [DEBUG_GCPRO]: Initialize it.
5328 (unwind_to_catch) [DEBUG_GCPRO]: Set gcpro_level
5329 from remaining gcprolist.
5330
3636f7a3
KH
53311999-10-29 Kenichi Handa <handa@etl.go.jp>
5332
5333 * coding.c (code_convert_region): Update `dst' correctly.
5334
a2ad7096
GM
53351999-10-28 Gerd Moellmann <gerd@gnu.org>
5336
5337 * fns.c (Fmemq, Fassq, Frassq, assq_no_quit, Fassoc)
5338 (Frassoc): Rewritten.
5339
1e3196e8
GM
53401999-10-27 Noah Friedman <friedman@splode.com>
5341
5342 * s/gnu-linux.h [HAVE_DEV_PTMX]: Redefine FIRST_PTY_LETTER to 'z'.
5343 Define PTY_NAME_SPRINTF.
5344 Redefine PTY_TTY_NAME_SPRINTF.
5345 * config.in: Add undef for HAVE_DEV_PTMX.
5346
83c8f461 53471999-10-26 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5348
5349 * regex.c (POP_FAILURE_POINT): Use failure_id.integer
5350 as arg to DEBUG_POP and DEBUG_PRINT.
5351
83c8f461 53521999-10-27 Richard M. Stallman <rms@gnu.org>
17dbfaad
GM
5353
5354 * data.c (Qad_activate_internal): Renamed from Qad_activate.
5355 (Ffset): Call Qad_activate_internal.
5356 (syms_of_data): Initialize Qad_activate_internal.
5357
26922151
GM
53581999-10-27 Gerd Moellmann <gerd@gnu.org>
5359
5360 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing if
5361 Vterminal_frame is selected and Vwindow_system is non-nil.
5362
67a5596f
GM
53631999-10-26 Gerd Moellmann <gerd@gnu.org>
5364
2bea706b
GM
5365 * xdisp.c (echo_area_display): Put previous change in #if 0.
5366
67a5596f
GM
5367 * emacs.c (standard_args): Add `file' as synonym for `visit',
5368 `execute' as synonym for `eval'.
5369 (main): Add new options to usage message.
5370
81dc5de5
GM
53711999-10-25 Gerd Moellmann <gerd@gnu.org>
5372
5373 * data.c (Qhash_table): New.
5374 (Ftype_of): Return it for hash tables.
5375 (syms_of_data): Initialize Qhash_table.
5376
83c8f461 53771999-10-25 Richard M. Stallman <rms@gnu.org>
bd3c545d
GM
5378
5379 * regex.c (POP_FAILURE_POINT): Extract failure_id as an integer.
5380
66e4690f 53811999-10-24 Ken Raeburn <raeburn@gnu.org>
3a7093d8 5382
7539e11f
KR
5383 * alloc.c: Undef HIDE_LISP_IMPLEMENTATION before including
5384 lisp.h.
5385
5386 * buffer.c (Fbuffer_list, Fget_file_buffer, get_truename_buffer,
5387 Fbuffer_local_variables, Fother_buffer, record_buffer,
5388 set_buffer_internal_1, Fbury_buffer, Fkill_all_local_variables,
5389 swap_out_buffer_local_variables, overlays_at, overlays_in,
5390 overlay_touches_p, overlay_strings, recenter_overlay_lists,
5391 fix_overlays_in_range, fix_overlays_before, Foverlay_get,
5392 Foverlay_put, report_overlay_modification, evaporate_overlays):
5393 Use XCAR, XCDR, and XFLOAT_DATA instead of explicit member
5394 references.
5395 * data.c (Fcar, Fcar_safe, Fcdr, Fcdr_safe, Fsetcar, Fsetcdr,
5396 swap_in_symval_forwarding, set_internal, default_value,
5397 Fset_default, Fmake_variable_buffer_local, Fmake_local_variable,
5398 Fmake_variable_frame_local, Flocal_variable_p,
5399 Flocal_variable_if_set_p, arithcompare, Fzerop, cons_to_long,
5400 Fnumber_to_string, float_arith_driver, Fadd1, Fsub1): Likewise.
5401 * dispnew.c (Fframe_or_buffer_changed_p): Likewise.
5402 * emacs.c (main): Likewise.
5403 * fontset.c (fs_load_font, fs_register_fontset,
5404 CACHED_FONTSET_NAME, CACHED_FONTSET_REGEX, Fquery_fontset,
5405 Fnew_fontset, Fset_fontset_font): Likewise.
5406 * frame.c (do_switch_frame, next_frame, prev_frame,
5407 other_visible_frames, Fdelete_frame, Fvisible_frame_list):
5408 Likewise.
5409 * keyboard.c (read_char, help_char_p, event_to_kboard,
5410 kbd_buffer_get_event, timer_start_idle, timer_check,
5411 make_lispy_event, apply_modifiers, reorder_modifiers,
5412 Fevent_convert_list, lucid_event_type_list_p, menu_bar_items,
5413 menu_bar_one_keymap, menu_item_eval_property_1, parse_menu_item,
5414 tool_bar_items, read_char_x_menu_prompt, read_key_sequence,
5415 Fcommand_execute, Fexecute_extended_command): Likewise.
5416 * minibuf.c (read_minibuf, get_minibuffer, Ftry_completion,
5417 Fall_completions): Likewise.
5418 * window.c (Fset_window_margins): Likewise.
5419
5420 * callint.c (quotify_args): Don't explicitly use struct
5421 Lisp_Cons, use Lisp_Object and XCAR/XCDR instead.
5422
3a7093d8
KR
5423 * s/netbsd.h (HAVE_GETLOADAVG): Define as 1.
5424 (UNEXEC, START_FILES, LIB_STANDARD, LIB_GCC): Define ELF versions,
5425 if __ELF__ is defined.
5426
2a3d7146
GM
54271999-10-24 Gerd Moellmann <gerd@gnu.org>
5428
5429 * window.c (Fnext_window): Add a QUIT in the loop.
5430
8ac52782
GM
54311999-10-23 Gerd Moellmann <gerd@gnu.org>
5432
427ec082 5433 * Makefile.in (bootstrap, bootstrap-emacs, bootstrap-temacs):
8ac52782
GM
5434 New targets.
5435
05f0d15a
DL
54361999-10-22 Dave Love <fx@gnu.org>
5437
5438 * emacs.c (main): Enable profiling conditional on __linux also.
5439
882fb0e6
GM
54401999-10-20 Gerd Moellmann <gerd@gnu.org>
5441
5442 * xrdb.c (x_load_resources): Set default resources for resource
5443 classes instead of for the specific Emacs.
5444
b5f5bc31
GM
54451999-10-19 Gerd Moellmann <gerd@gnu.org>
5446
66f4dd69
GM
5447 * s/freebsd.h (HAVE_GETLOADAVG): Define as 1 because config.h
5448 defines it that way.
427ec082 5449
b5f5bc31
GM
5450 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing
5451 if selected_frame is equal to Vterminal_frame.
5452
68c45bf0 54531999-10-19 Paul Eggert <eggert@twinsun.com>
427ec082 5454
68c45bf0 5455 Add support for large files, 64-bit Solaris, system locale codings.
427ec082 5456
68c45bf0
PE
5457 * Makefile.in (emacs): Set the LC_ALL environment variable to "C"
5458 when dumping, so that the dumped Emacs doesn't have stray locale info.
5459 (dired.o): Depend on systime.h.
5460 (editfns.o): Depend on coding.h.
5461
5462 * alloc.c, buffer.c, callproc.c, ccl.c, charset.c, coding.c, data.c,
5463 dispnew.c, editfns.c, emacs.c, filelock.c, floatfns.c, hftctl.c,
5464 keyboard.c, process.c, sysdep.c, unexelf.c, unexhp9k800.c,
5465 unexsunos4.c, vmsfns.c, vmsgmalloc.c, w32faces.c, w32menu.c, w32term.c,
5466 w32xfns.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
5467 Include <config.h> before any system include files.
5468
5469 * alloc.c, buffer.c, ccl.c, data.c, editfns.c, emacs.c, eval.c,
5470 fileio.c, filelock.c, frame.c, insdel.c, keymap.c, lread.c,
5471 m/alpha.h, print.c, search.c, sysdep.c, xdisp.c, xfaces.c, xfns.c,
5472 xmenu.c, xterm.c:
5473 Do not include <stdlib.h>, as <config.h> does this now.
5474
5475 * callproc.c (Fcall_process):
5476 Synchronize messages locale before invoking strerror.
5477 Decode resulting string with locale-coding-system.
5478
5479 * coding.c (Vlocale_coding_system): New var.
5480 (syms_of_coding): Adjust to above change.
5481 (emacs_strerror): New function.
5482
5483 * coding.h (emacs_strerror, Vlocale_coding_system): New decls.
427ec082 5484
68c45bf0
PE
5485 * config.in (HAVE_STDIO_EXT_H, HAVE_TM_GMTOFF, HAVE___FPENDING,
5486 HAVE_FTELLO, HAVE_GETLOADAVG, HAVE_MBLEN, HAVE_MBRLEN,
5487 HAVE_STRSIGNAL): New macros.
5488 (BITS_PER_LONG): Default to 64 if _LP64 is defined.
5489 <stdlib.h>: Include if HAVE_STDLIB_H is defined and NOT_C_CODE isn't.
5490
5491 * dired.c: Include "systime.h".
5492 (Ffile_attributes): Do not cast s.st_size to int; this loses
5493 information if int is 32 bits but st_size and EMACS_INT are larger.
5494 Treat large device numbers like large inode numbers.
5495
5496 * dispnew.c (PENDING_OUTPUT_COUNT): Use __fpending if available.
5497
5498 * editfns.c: Include coding.h.
5499 (emacs_strftime): Remove decl.
5500 (emacs_strftimeu): New decl.
5501 (emacs_memftimeu): Renamed from emacs_memftime; new arg UT.
5502 Use emacs_strftimeu instead of emacs_strftime.
5503 (Fformat_time_string): Convert format string using
5504 Vlocale_coding_system, and convert result back. Synchronize time
5505 locale before invoking lower level function. Invoke
5506 emacs_memftimeu, passing ut, instead of emacs_memftime.
427ec082 5507
68c45bf0
PE
5508 * emacs.c: Include <locale.h> if HAVE_SETLOCALE is defined.
5509 (Vmessages_locale, Vprevious_messages_locale, Vtime_locale,
5510 Vprevious_time_locale): New variables.
5511 (main): Invoke setlocale early, so that initial error messages are
5512 localized properly. But skip locale-setting if LC_ALL is "C".
5513 Fix up locale when it's safe to do so.
5514 (fixup_locale): Moved here from xterm.c.
5515 (synchronize_locale, synchronize_time_locale,
5516 synchronize_messages_locale): New functions.
5517 (syms_of_emacs): Accommodate above changes.
5518
5519 * fileio.c (report_file_error): Convert strerror output according
5520 to Vlocale_coding_system.
5521 (Finsert_file_contents): Check for arithmetic overflow in
5522 computations that depend on file size. Report IO errors
5523 with emacs_strerror, not strerror.
5524
5525 * fns.c (Fgethash): Declare dflt parameter.
5526
5527 * gmalloc.c: Do not define const to nothing if HAVE_CONFIG_H
5528 is defined; that's config.h's job.
5529
5530 * lisp.h (EMACS_INT, BITS_PER_EMACS_INT, EMACS_UINT): If _LP64,
5531 default these values to long, BITS_PER_LONG, and unsigned long.
5532 (VALBITS, MARKBIT, XINT): Do not assume 32-bit EMACS_INT.
5533 (PNTR_COMPARISON_TYPE): Default to EMACS_UINT, not to unsigned int.
5534 (code_convert_string_norecord, fixup_locale,
5535 synchronize_messages_locale, synchronize_time_locale,
5536 emacs_open, emacs_close, emacs_read, emacs_write): New decls.
5537 All Emacs callers of open, close, read, write changed to use
5538 emacs_open, emacs_close, emacs_read, emacs_write.
5539
5540 * lread.c (file_offset, file_tell): New macros. All uses of ftell
5541 changed to file_tell.
5542 (saved_doc_string_position, prev_saved_doc_string_position): Now
5543 of type file_offset.
5544 (init_lread): Do not fix locale here; fixup_locale now does this.
5545
5546 * m/amdahl.h, s/usg5-4.h:
5547 (NSIG): Remove.
5548 (NSIG_MINIMUM): New macro.
5549
5550 * m/cydra5.h, m/dpx2.h, m/mips.h, m/pfa50.h, m/sps7.h, m/stride.h,
5551 m/ustation.h, s/gnu-linux.h, s/hpux.h, s/iris3-5.h, s/iris3-6.h,
5552 s/umips.h, s/usg5-4.h:
5553 (SIGIO): Do not undef.
5554 (BROKEN_SIGIO): New macro.
5555
5556 * m/ustation.h:
5557 (SIGTSTP): Do not undef.
5558 (BROKEN_SIGTSTP): New macro.
5559
5560 * s/gnu-linux.h:
5561 (SIGPOLL, SIGURG): Do not undef.
5562 (BROKEN_SIGPOLL, BROKEN_SIGURG): New macros.
5563
5564 * s/ptx4.h:
5565 (SIGINFO): Do not undef.
5566 (BROKEN_SIGINFO): New macros.
427ec082 5567
68c45bf0
PE
5568 * m/delta.h, s/ptx.h, s/template.h: Doc fix.
5569
5570 * mktime.c, strftime.c: Update to glibc 2.1.2 version, with
5571 some Emacs-related changes merged.
5572
5573 * print.c (float_to_string): Prepend "-" to representation of a
5574 NaN if the NaN is negative.
5575
5576 * process.c (sys_siglist): Omit if HAVE_STRSIGNAL.
5577 (wait_reading_process_input): Use emacs_strerror, not strerror.
427ec082 5578
68c45bf0
PE
5579 * process.c (status_message, sigchld_handler): Synchronize locale,
5580 then use strsignal istead of sys_siglist.
5581 * w32proc.c (sys_wait): Likewise.
427ec082 5582
68c45bf0
PE
5583 * s/aix3-1.h, s/bsd4-1.h, s/dgux.h, s/gnu-linux.h, s/hiuxmpp.h,
5584 s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/osf1.h, s/rtu.h,
5585 s/sunos4-1.h, s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h,
5586 s/usg5-2.h, s/usg5-3.h, s/xenix.h:
5587 (open, close, read, write, INTERRUPTIBLE_OPEN,
5588 INTERRUPTIBLE_CLOSE, INTERRUPTIBLE_IO): Remove.
5589
5590 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): New macros.
5591
5592 * sysdep.c (sys_read, sys_write, read, write, sys_close, close,
5593 sys_open, open): Remove.
5594 (emacs_open, emacs_close, emacs_read, emacs_write): Always define;
5595 the old INTERRUPTIBLE_OPEN, INTERRUPTIBLE_CLOSE, and INTERRUPTIBLE_IO
5596 macros are no longer used.
5597 (emacs_open): Renamed from sys_open. Merge BSD4_1 version.
5598 (emacs_close): Renamed from sys_close.
5599 (emacs_read): Renamed from sys_read.
5600 (emacs_write): Renamed from sys_write.
5601 (sys_siglist): Do not declare if HAVE_STRSIGNAL.
5602 (dup2): Do not print error on failure; the real dup2 doesn't.
5603 (strsignal): New function, defined if !HAVE_STRSIGNAL.
5604
5605 * syssignal.h (SIGINFO): Undef if defined and if BROKEN_SIGINFO
5606 is defined.
5607 (SIGIO, SIGPOLL, SIGTSTP, SIGURG): Likewise.
5608 (NSIG): If less than NSIG_MINIMUM, define to NSIG_MINIMUM.
5609 (strsignal): Declare if !HAVE_STRSIGNAL.
5610
5611 * unexelf.c (ElfBitsW, ELFSIZE, ElfExpandBitsW): New macros.
5612 (ElfW): Define in terms of ElfExpandBitsW.
5613
5614 * w32proc.c (sys_siglist): Remove decl.
5615
5616 * xdisp.c (decode_mode_spec): 3rd arg is int, not char, to comply
5617 with ANSI C.
5618 (display_string): Declare face_string_pos arg.
5619
5620 * xfns.c (Fx_show_tip): Declare timeout param.
5621
5622 * xterm.c: No need to include locale.h.
5623 (x_alloc_lighter_color, x_setup_relief_color):
5624 Pass arg as double, not float, for compatibility with ANSI C.
5625 (fixup_locale): Move to emacs.c.
5626 (x_term_init): Do not setlocale or fixup locale; the main program
5627 does this now.
5628
2f0b74ea
DL
56291999-10-18 Dave Love <fx@gnu.org>
5630
5631 * doc.c (Fdocumentation_property): Gcpro `tem'.
5632
471aa4a0
KH
56331999-10-18 Kenichi Handa <handa@etl.go.jp>
5634
5635 * lread.c (Fload): Calculate bytes of filename correctly.
5636 (openp): Likewise.
5637
aca2020b
KH
56381999-10-18 Keisuke Nishida <kxn30@po.cwru.edu>
5639
5640 * print.c (print_preprocess): In case print-circle is nil,
5641 add OBJ to Vprint_number_table only when OBJ is a symbol.
5642
1f5fe392 56431999-10-18 Kenichi Handa <handa@etl.go.jp>
b843d1ae
KH
5644
5645 * coding.c (code_convert_string): Add record_unwind_protect to
5646 assure setting inhibit_pre_post_conversion back to zero. Take
5647 care of the multibyteness of the working buffer.
5648
5649 * coding.c (inhibit_pre_post_conversion): New variable.
5650 (setup_coding_system): If inhibit_pre_post_conversion is nonzero,
5651 ignore post-read-conversion and pre-write-conversion property of
5652 the coding system.
5653 (code_convert_region_unwind): New function.
5654 (code_convert_region): Set inhibit_pre_post_conversion to 1 while
5655 running pre-write-conversion and post-read-conversion.
5656 (code_convert_string): Likewise.
5657
cd876a91
GM
56581999-10-17 Miles Bader <miles@gnu.org>
5659
5660 * editfns.c: Doc fix.
5661
56621999-10-17 Miles Bader <miles@gnu.org>
5663
5664 * editfns.c (Fconstrain_to_field): Make sure we don't violate the
5665 argument preconditions of find_before_next_newline in the case
5666 where both ONLY_IN_LINE and ESCAPE_FROM_EDGE are set and OLD_POS
5667 was indeed at the edge.
5668
56691999-10-17 Miles Bader <miles@gnu.org>
5670
5671 * minibuf.c (Fminibuffer_complete_and_exit): Supply value for new
5672 ESCAPE_FROM_EDGE parameter to Ffield_beginning.
5673
5674 * editfns.c (text_property_eq, text_property_stickiness): Don't
5675 use initializers for auto variables of type Lisp_Object.
5676 (find_field): Likewise. Use braces around nested ifs.
5677 (Fline_end_position): Store the raw eol in a variable, so that the
5678 final expression doesn't look so ugly.
5679 (Fconstrain_to_field): Doc fix.
5680 (preceding_pos): Renamed from `preceeding_pos'.
5681 (text_property_stickiness, find_field): Call preceding_pos,
5682 not preceeding_pos.
5683
56841999-10-17 Miles Bader <miles@gnu.org>
5685
5686 * editfns.c (Ffield_string_no_properties): New function.
5687 (text_property_stickiness, preceeding_pos): New functions.
5688 (Ffield_string): Remove PROPS parameter.
5689 (find_field): Add MERGE_AT_BOUNDARY parameter.
5690 Rewrite to use stickiness of `field' property to resolve
5691 ambiguous cases.
5692 (Ffield_beginning, Ffield_end): Add ESCAPE_FROM_EDGE parameter.
5693 (Fconstrain_to_field): Likewise.
5694 (syms_of_editfns): Init Sfield_string_no_properties.
427ec082 5695 (Ffield_string, Ferase_field, Ffield_end):
cd876a91
GM
5696 Supply new MERGE_AT_BOUNDARY argument to find_field.
5697 (Fline_beginning_position, Fline_end_position): Supply new
5698 ESCAPE_FROM_EDGE parameter to Fconstrain_to_field.
5699 Pass a value of Qt for the ONLY_IN_LINE argument to
5700 Fconstrain_to_field (only matters if N != 1).
5701 * syntax.c (Fforward_word): Supply new ESCAPE_FROM_EDGE parameter
5702 to Fconstrain_to_field.
5703
5704 * minibuf.c (Fminibuffer_complete_word): Use
5705 Ffield_beginning to find the prompt end.
5706
57071999-10-17 Miles Bader <miles@gnu.org>
5708
5709 * editfns.c (Fconstrain_to_field): Add get/set-current-point
5710 behavior when NEW_POS is nil.
5711 (find_field): Use XSETFASTINT instead of make_number.
5712 * minibuf.c (Fminibuffer_complete_and_exit): Test for an empty
5713 input string by seeing where the field begins, instead of
5714 looking at text-properties.
5715
57161999-10-17 Miles Bader <miles@gnu.org>
5717
5718 * editfns.c (Qfield): New variable.
5719 (find_field, Ferase_field, Ffield_string,
5720 Ffield_beginning, Ffield_end, Fconstrain_to_field): New functions.
5721 (Fline_beginning_position, Fline_end_position): Constrain to any field.
5722 (make_buffer_string_both): Remove minibuffer-prompt hack.
5723 (syms_of_editfns): Initialize Qfield, and subr entries for
5724 field functions above.
5725 * minibuf.c (read_minibuf): Don't save minibuffer prompt length on
5726 minibuf_save_list.
5727 Don't initialize minibuffer prompt length.
5728 Wrap prompt text-properties around the entire prompt.
5729 Add 'prompt text-property to prompt.
5730 Get final value with Ffield_string instead of make_buffer_string.
5731 (read_minibuf_unwind): Don't restore minibuffer prompt length from
5732 minibuf_save_list.
5733 (do_completion): Get minibuffer input with Ffield_string
5734 instead of Fbuffer_string.
5735 Erase minibuffer input with Ferase_field instead of erase_buffer.
5736 (Fminibuffer_complete_and_exit): Likewise.
5737 Test whether buffer is empty by looking for the 'prompt text
5738 property at the end.
5739 Set prompt length by looking for the end of the prompt text property,
5740 and save prompt length for later use (since there is no longer a
5741 buffer variable to get it from).
5742 (Fminibuffer_prompt_width, Fminibuffer_prompt_end): Functions removed.
5743 (syms_of_minibuf): Remove initializations of
5744 Sminibuffer_prompt_width and Sminibuffer_prompt_end.
5745 * buffer.h (struct buffer): Remove prompt_end_charpos field.
427ec082 5746 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer, Fkill_buffer):
cd876a91
GM
5747 Don't initialize prompt_end_charpos field.
5748 * syntax.c (Fforward_word): Likewise.
5749 Constrain to any field.
5750
3f6f7508
GM
57511999-10-16 Gerd Moellmann <gerd@gnu.org>
5752
5753 * window.c (enum save_restore_action): New.
5754 (save_restore_orig_size): Change parameter list. Add
5755 functionality to check for valid orig_top and orig_height members
5756 in a window tree.
5757 (grow_mini_window): Call save_restore_orig_size with new parameter
5758 list.
5759 (shrink_mini_window): Restore old window sizes only if old
5760 size information is valid in all windows in a window tree.
427ec082 5761
06482119
GM
57621999-10-15 Gerd Moellmann <gerd@gnu.org>
5763
2710454d
GM
5764 * xmenu.c (set_frame_menubar): Don't call
5765 x_set_menu_resources_from_menu_face here.
5766 (update_frame_menubar): Call x_set_menu_resources_from_menu_face.
5767
06482119
GM
5768 * xfns.c (gif_load): Fix handling of interlaced GIFs.
5769
17fa2837
DL
57701999-10-14 Dave Love <fx@gnu.org>
5771
5772 * xdisp.c (handle_fontified_prop): GCPRO `pos'.
5773
45f93416
GM
57741999-10-14 Gerd Moellmann <gerd@gnu.org>
5775
5776 * process.c (Fopen_network_stream): Don't loop if gethostbyname
5777 fails and h_errno is TRY_AGAIN.
5778
c765b723
DL
57791999-10-13 Dave Love <fx@gnu.org>
5780
5781 * filelock.c (lock_file): Move gcpro of `fn'.
5782
dace7f4e
GM
57831999-10-10 Gerd Moellmann <gerd@gnu.org>
5784
5785 * keyboard.c (auto-save-interval): Fix documentation.
427ec082 5786
83c8f461 57871999-10-09 Richard M. Stallman <rms@gnu.org>
73fb36f1
RS
5788
5789 * print.c (print): When removing objects from Vprint_number_table,
5790 only scan the newly added objects.
5791 (print_preprocess): If OBJ is a gensym, and print-continuous-numbering,
5792 unconditionally force it to stay in the table.
5793
85177c86
GM
57941999-10-09 Gerd Moellmann <gerd@gnu.org>
5795
5796 * xfns.c (prepare_image_for_display): Don't try to load image if
5797 loading it failed before.
5798 (lookup_image, prepare_image_for_display): Remember if loading the
5799 image failed.
5800 (xpm_load): Add missing UNBLOCK_INPUT.
5801
5802 * dispextern.h (struct image): New member load_failed_p.
5803
11e4de5d
SM
58041999-10-08 Stefan Monnier <monnier@cs.yale.edu>
5805
f28eba7b 5806 * fileio.c (Fmake_temp_name): Add a reference to `make-temp-file'
11e4de5d
SM
5807 in the docstring.
5808
f1da8f06
GM
58091999-10-08 Gerd Moellmann <gerd@gnu.org>
5810
5811 * xterm.c (XTread_socket) <ClientMessage, WM_TAKE_FOCUS>:
5812 Don't call XSetInputFocus because that can generate additional
5813 FocusIn events.
427ec082 5814
c37bbd4f
GM
58151999-10-07 Jeffrey C Honig <jch@bsdi.com>
5816
5817 * bsdos4.h [HAVE_LIBNCURSES]: Define TERMINFO and LIBS_TERMCAP.
5818
83c8f461 58191999-10-07 Richard M. Stallman <rms@gnu.org>
78cc5c64
GM
5820
5821 * process.c (wait_reading_process_input): When trying to suck
5822 input from one process, for accept-process-output,
5823 exit that loop if we get EAGAIN or EWOULDBLOCK.
5824
577d9e2f
GM
58251999-10-07 Gerd Moellmann <gerd@gnu.org>
5826
5827 * xfaces.c (Qbitmap_spec_p): Replaces Qpixmap_spec_p.
5828 (Fbitmap_spec_p): Replaces Fpixmap_spec_p.
5829 (load_pixmap): Use Fbitmap_spec_p and Qbitmap_spec_p instead of
5830 Fpixmap_spec_p and Qpixmap_spec_p.
5831 (load_face_colors, check_lface_attrs,
5832 merge_face_vector_with_property,
5833 Finternal_set_lisp_face_attribute): Use Fbitmap_spec_p.
5834 (syms_of_xfaces): Initialize Qbitmap_spec_p, defsubr
5835 Fbitmap_spec_p.
5836
f5737ad2
GM
58371999-10-07 Gerd Moellmann <gerd@gnu.org>
5838
5839 * xdisp.c (display_menu_bar): Use MENU_FACE_ID instead of
5840 MODE_LINE_FACE_ID.
5841
5842 * xfaces.c (toplevel) [USE_MOTIF]: Include some Motif headers.
5843 (struct x_resources) [USE_X_TOOLKIT]: New.
5844 (xm_apply_resources, xm_set_menu_resources_from_menu_face)
5845 [USE_MOTIF]: New.
5846 (xl_apply_resources, xl_set_menu_resources_from_menu_face)
5847 [USE_LUCID]: New.
5848 (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]: New.
5849 (Qmenu): New.
5850 (syms_of_xfaces): Initialize Qmenu.
5851 (realize_basic_faces): Realize face `menu'.
5852 (resolve_face_name): New.
5853 (lface_from_face_name): Use it.
5854 (Finternal_set_lisp_face_attribute): Ditto.
5855 (Fpixmap_spec_p): Rewritten. Extend doc string.
5856
5857 * xmenu.c (set_frame_menubar, xmenu_show): Call
5858 x_set_menu_resources_from_menu_face.
5859
5860 * dispextern.h (enum face_id): Add MENU_FACE_ID.
5861 (toplevel): Include X11/Intrinsic.h.
5862
6a1aa823
DL
58631999-10-03 Ken'ichi Handa <handa@gnu.org>
5864
5865 * coding.c (DECODE_CHARACTER_ASCII): Decode ASCII invocated to GR
5866 correctly.
5867
26901792
DL
58681999-09-30 Kenichi Handa <handa@etl.go.jp>
5869
5870 * category.c (modify_lower_category_set): Set default value of
5871 TABLE correctly.
5872
5873 * minibuf.c (Fminibuffer_complete_word): Calculate string byte
5874 size correctly.
5875
58761999-09-29 Gerd Moellmann <gerd@gnu.org>
5877
5878 * editfns.c (Fpropertize): Renamed from Fproperties.
5879
58801999-09-29 Gerd Moellmann <gerd@gnu.org>
5881
5882 * xdisp.c (resize_mini_window): Do nothing if frame is an X
5883 frame that hasn't been initialized yet.
5884
83c8f461 58851999-09-28 Richard M. Stallman <rms@gnu.org>
a04f1a93
PR
5886
5887 * keymap.c (Fsingle_key_description): Make tem big enough.
5888 (describe_buffer_bindings): Make buf big enough.
5889
83c8f461 58901999-09-27 Richard M. Stallman <rms@gnu.org>
d177c583
PR
5891
5892 * intervals.c (get_local_map): Use indirect_function,
5893 not Findirect_function.
5894
26901792
DL
58951999-09-27 Dave Love <fx@gnu.org>
5896
5897 * cm.h: Remove unneeded declaration of ospeed.
5898
58991999-09-26 Gerd Moellmann <gerd@gnu.org>
5900
5901 * lisp.h (toplevel): Add prototype for
5902 next_single_char_property_change.
5903
5904 * textprop.c (next_single_char_property_change): New.
5905
5906 * xdisp.c (display_prop_end, invisible_text_between_p): Use
5907 next_single_char_property_change.
5908
59091999-09-25 Gerd Moellmann <gerd@gnu.org>
5910
5911 * editfns.c (Fproperties): New.
5912 (syms_of_editfns): Defsubr it.
5913
5914 * xfns.c (lookup_image): Set image's timestamp because it's
5915 used when we look it up.
5916
59171999-09-23 Gerd Moellmann <gerd@gnu.org>
5918
5919 * window.c (enlarge_window): Add window parameter instead of using
5920 selected_window.
5921 (Fdisplay_buffer): Call it with window parameter instead of
5922 setting selected_window.
5923 (Fenlarge_window, Fshrink_window): Ditto.
5924 (shrink_mini_window): If there is no recorded height and position
5925 info, resize mini-window to height 1.
5926
5927 * xfns.c (image_error): Use add_to_log.
5928
5929 * xfaces.c (load_pixmap): Call add_to_log without frame parameter.
5930 (load_face_font_or_fontset, load_color,
5931 merge_face_vector_with_property): Ditto.
5932
5933 * dispextern.h: Add prototype for add_to_log.
5934
5935 * xfaces.c (add_to_log): Move to xdisp.c.
5936
5937 * xdisp.c (add_to_log): Moved from xfaces.c. Remove frame
5938 parameter.
5939
59401999-09-23 Gerd Moellmann <gerd@gnu.org>
5941
5942 * xterm.c (XTread_socket) <MotionNotify>: Change #ifdef
5943 USE_X_TOOLKIT to #ifdef USE_TOOLKIT_SCROLL_BARS.
5944
5945 * xdisp.c (resize_mini_window): Use grow_mini_window and
5946 shrink_mini_window.
5947
5948 * window.c (window_min_size): Add parameter ignore_fixed_p.
5949 (change_window_height): Call window_min_size with new parameter.
5950 (shrink_window_lowest_first, save_restore_orig_size,
5951 grow_mini_window, shrink_mini_window): New.
5952 (make_window, replace_window): Initialize orig_top and
5953 orig_height.
5954 (enlarge_window): Renamed from change_window_height. Make it
5955 static.
5956 (Fdisplay_buffer, Fenlage_window, Fshrink_window): Call
5957 enlarge_window instead of change_window_height.
5958
5959 * window.h (struct window): New members orig_top, orig_height.
5960 (toplevel): Add prototypes for grow_mini_window and
5961 shrink_mini_window. Remove prototype for change_window_height.
5962
59631999-09-21 Eli Zaretskii <eliz@gnu.org>
5964
5965 * frame.c (frame_name_fnn_p): Fix previous change.
5966
59671999-09-20 Gerd Moellmann <gerd@gnu.org>
5968
5969 * minibuf.c (toplevel): Move include of stdio.h to other includes.
5970
5971 * dispnew.c (direct_output_for_insert): Cast arguments to
5972 safe_bcopy to char *.
5973
5974 * lread.c (readchar): Remove unused variables.
5975 (read_filtered_event, read1, Fmapatoms): Ditto.
5976 (toplevel): Include intervals.h.
5977
5978 * eval.c (Fsignal): Remove unused variables.
5979 (Fcommandp, do_autoload): Ditto.
5980
5981 * lisp.h: Add prototype for safe_bcopy, fatal.
5982
5983 * editfns.c (init_editfns): Remove unused variables.
5984 (Fgoto_char, Fchar_after, Fformat): Ditto.
5985 (message_text, message_length): Put in #ifndef HAVE_MENUS.
5986
5987 * data.c (find_symbol_value): Remove unused variables.
5988 (Faref, Fstring_to_number): Ditto.
5989 (toplevel): Include stdio.h.
5990 (Fnumber_to_string): Cast XINT to long for %ld.
5991
5992 * casefiddle.c (casify_object): Remove unused variables.
5993 (casify_region): Ditto.
5994
427ec082 5995 * filelock.c (get_boot_time): Put local variable used in
26901792
DL
5996 conditinally compiled section in #ifdef.
5997 (toplevel): Include stdio.h.
5998
5999 * keymap.c (Flookup_key, Faccessible_keymaps, describe_vector,
6000 keys_of_keymap, syms_of_keymap): Remove unused variables.
6001
60021999-09-20 Gerd Moellmann <gerd@gnu.org>
6003
6004 * xdisp.c (sync_frame_with_window_matrix_rows): Disable frame rows
6005 whose corresponding window rows have been disabled in
6006 try_window_id.
6007
60081999-09-20 Gerd Moellmann <gerd@gnu.org>
6009
6010 * xdisp.c (compute_window_start_on_continuation_line): Handle case
6011 that window start is out of range.
6012 (handle_display_prop, handle_single_display_prop): Replace
6013 marginal area specifications like `left-margin' with `(margin
6014 left-margin)'.
6015 (Qmargin): New.
6016 (syms_of_xdisp): Initialize Qmargin.
6017
60181999-09-19 Gerd Moellmann <gerd@gnu.org>
6019
6020 * syntax.c (update_syntax_table, find_defun_start, back_comment,
6021 describe_syntax, skip_chars): Remove unused variables.
6022 (back_comment, forw_comment): Add braces to if-statement with
6023 if-else as dependent statement.
6024
6025 * process.c (list_processes_1): Remove unused variables.
6026 (Fopen_network_stream, create_process): Add parentheses to
6027 conditional expressions.
6028 (create_process): Put declaration of sigchld in #if 0.
6029 (Fopen_network_stream): Removed unused variables.
6030 (Fopen_network_stream, wait_reading_process_input,
6031 wait_reading_process_input, send_process, send_process): Ditto.
6032 (toplevel): Add prototypes for set_waiting_for_input and
6033 keyboard_bit_set.
6034
6035 * abbrev.c (Fexpand_abbrev): Remove unused variables.
6036
6037 * textprop.c (Fset_text_properties): Remove unused variables.
6038 (text_property_list, verify_interval_modification,
6039 interval_has_all_properties): Ditto.
6040
6041 * callproc.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6042 (Fcall_process): Remove unused variable.
6043
6044 * keyboard.c (Frecursive_edit): Remove unused variable.
6045 (command_loop_1, safe_run_hooks, kbd_buffer_get_event,
6046 timer_check, make_lispy_event, menu_bar_items,
6047 menu_bar_one_keymap, menu_bar_item, parse_menu_item,
6048 parse_tool_bar_item, read_char_x_menu_prompt, read_key_sequence,
6049 kbd_buffer_get_event, make_lispy_event, read_char_x_menu_prompt,
6050 read_key_sequence): Ditto. Fread_key_sequence,
6051 Fread_key_sequence_vector, Fsuspend_emacs): Ditto.
6052 (read_key_sequence) [GOBBLE_FIRST_EVENT]: Put local variables only
6053 used when GOBBLE_FIRST_EVENT is defined in #ifdef
6054 (Fexecute_extended_command): Cast XINT to long for %ld.
6055 (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6056 (toplevel): Include sys/types.h.
6057
6058 * lisp.h (RETURN_UNGCPRO): Use do-while (0) idiom.
6059 (toplevel): Add prototypes for stuff_char, and
6060 code_convert_string_norecord.
6061
60621999-09-19 Gerd Moellmann <gerd@gnu.org>
6063
6064 * buffer.h: Add prototype for r_re_alloc.
6065
6066 * insdel.c (copy_text): Removed unused variables.
6067 (count_combining_after, count_combining_after, insert_1_both,
6068 insert_from_string_1, insert_from_buffer_1, check_markers): Ditto.
6069 (adjust_after_replace, replace_range): Add parentheses to logical
6070 expressions. Remove unused variables.
6071 (CHECK_BYTE_COMBINING_FOR_INSERT): Add parentheses to logical
6072 expression.
6073
6074 * alloc.c (Fgarbage_collect): Remove unused variable.
6075 (compact_strings): Add parentheses around assignments in
6076 conditional context.
6077 (toplevel): Put declaration of unused function clear_marks
6078 in #if 0 like its definition.
6079
6080 * lisp.h: Add prototype for shrink_regexp_cache,
6081 sweep_weak_hash_tables.
6082
60831999-09-19 Dave Love <fx@gnu.org>
6084
6085 * process.c (Fopen_network_stream): Use strerror, not gai_strerror.
6086
6087 * doc.c (read_bytecode_char): Declare arg.
6088
6089 * lisp.h: Declare Fcurrent_message, Fmake_temp_name,
6090 read_bytecode_char, Fx_hide_busy_cursor, getloadavg.
6091
60921999-09-18 Richard Stallman <rms@gnu.org>
6093
6094 * xdisp.c (echo_area_display): Turn off code that returned
6095 without doing anything when using a terminal frame.
6096
83c8f461 60971999-09-17 Richard M. Stallman <rms@gnu.org>
27271329
PR
6098
6099 * unexelf.c (unexec): Don't get confused by a short section
6100 just before the bss section.
6101
26901792
DL
61021999-09-16 Gerd Moellmann <gerd@gnu.org>
6103
6104 * emacs.c (main): Remove unused variables.
6105 (sort_args, Fkill_emacs, Fkill_emacs): Ditto.
6106
6107 * lisp.h: Add prototype for uninterrupt_malloc, memory_warnings,
6108 init_fileio_once, syms_of_sound, init_xfns, init_fns
6109 init_sound, check_message_stack.
6110
6111 * emacs.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6112
6113 * intervals.c (rotate_right, rotate_left): Add braces to avoid
6114 ambiguous else warning.
6115 (split_interval_left): Remove unused variables.
6116 (previous_interval, adjust_intervals_for_deletion,
6117 set_point_both, set_point_both, set_intervals_multibyte_1): Ditto.
6118 (icount, idepth, zero_length): Move into #if 0 section below
6119 original position where these are used.
6120
6121 * buffer.h [REL_ALLOC]: Add prototypes for r_alloc and r_alloc_free.
6122
6123 * buffer.c (Fkill_buffer): Remove unused variables.
6124 (Fkill_buffer, overlays_at, overlays_in, recenter_overlay_lists,
6125 fix_overlays_in_range, Fmove_overlay, Fprevious_overlay_change,
6126 init_buffer_once, (syms_of_buffer): Ditto.
6127
6128 * xrdb.c (get_fallback): Remove unused variable.
6129 (x_load_resources): Ditto. Put local variable used for Motif only
6130 in #ifdef USE_MOTIF.
6131
61321999-09-16 Gerd Moellmann <gerd@gnu.org>
6133
6134 * minibuf.c (read_minibuf): Remove unused variables.
6135 (read_minibuf, Fread_buffer, scmp, Fcompleting_read): Ditto.
6136 (do_completion): Move assignment out of conditional context.
6137 (Fdisplay_completion_list): Add parentheses to conditional expression.
6138
6139 * cm.c (toplevel) [HAVE_TERMCAP_H]: Include termcap.h.
6140
6141 * lisp.h: Add prototype for no_switch_window.
6142
6143 * window.c (Fset_window_buffer): Remove unused variables.
6144 (Fset_window_margins): Ditto.
6145
6146 * xdisp.c (resize_mini_window): Temporarily set the selected
6147 window's or Vminibuf_scroll_window's height to "fixed" around
6148 the call the change_window_height.
6149
6150 * window.c (window_fixed_size_p): Check window's height_fixed_p
6151 flag.
6152
6153 * window.h (struct window): New member height_fixed_p.
6154
6155 * dispnew.c (direct_output_forward_char): Don't use this method
6156 if showing a message or a message was just cleared because we
6157 might need to resize the mini-window.
6158
61591999-09-16 Gerd Moellmann <gerd@gnu.org>
6160
6161 * frame.c (Fdelete_frame): Correct local variable pointing to
6162 selected frame after selecting new frame.
6163
61641999-09-15 Richard Stallman <rms@gnu.org>
6165
6166 * puresize.h (BASE_PURESIZE): Increase to 525000.
6167
6168 * filelock.c (Vtemporary_file_directory): New variable.
6169 (syms_of_filelock): Set up Lisp variable.
6170
61711999-09-15 Gerd Moellmann <gerd@gnu.org>
6172
6173 * term.c (OUTPUT_IF, OUTPUT1_IF): Use do-while.
6174 (encode_terminal_code): Remove unused variables.
6175 (turn_off_face): Ditto.
6176 (toplevel): Include termcap.h if HAVE_TERMCAP_H.
6177
6178 * dispnew.c (update_frame_line): If writing whole desired line,
6179 don't clear to end of line if already at the end.
6180
61811999-09-15 Gerd Moellmann <gerd@gnu.org>
6182
6183 * xdisp.c (resize_mini_window): Don't report changed window
6184 height if it actually hasn't changed.
6185
427ec082 6186 * widget.c (set_frame_size, EmacsFrameSetCharSize): Remove
26901792
DL
6187 unused variables.
6188 (mark_shell_size_user_specified): Put in #if 0 because not used.
6189 (create_frame_gcs): Put in #if 0 because currently unused.
6190 (first_frame_p): Ditto.
6191
6192 * xmenu.c (single_menu_item, Fx_popup_menu, Fx_popup_menu,
6193 single_submenu, update_frame_menubar, set_frame_menubar,
6194 free_frame_menubar, xmenu_show, xdialog_show): Remove unused
6195 variables.
6196
6197 * print.c (PRINTFULLP): Removed because it is no longer used and
6198 is misleading.
6199 (Ferror_message_string): Remove unused variables.
6200 (print_object): Cast argument of sprintf to long for `%ld'
6201 specifier. Remove unused variable.
6202
62031999-09-14 Gerd Moellmann <gerd@gnu.org>
6204
6205 * sound.c (Fplay_sound): Remove usused variables.
6206 (be2hs): Put in #if 0 because it's currently not used.
6207
62081999-09-14 Ken Raeburn <raeburn@gnu.org>
6209
6210 * print.c (Ferror_message_string, print_error_message,
6211 print_object): Use XCAR, XCDR and XFLOAT_DATA instead of explicit
6212 member access.
6213
62141999-09-14 Gerd Moellmann <gerd@gnu.org>
6215
6216 * frame.h (CHECK_FRAME, CHECK_LIVE_FRAME): Put code in do-while.
6217
6218 * frame.c (Fnext_frame): Remove unused variable(s).
6219 (Fprevious_frame, Fmouse_pixel_position, frame_name_fnn_p): Ditto.
6220 (store_frame_param): Add parentheses to conditional expression.
6221 (Fmodify_frame_parameters): Remove unused variables.
6222 (Fmodify_frame_parameters, Fset_frame_size, Fset_frame_position):
6223 Ditto.
6224
6225 * xfns.c (x_set_background_color): Remove unused variable(s).
6226 (x_set_border_pixel): Ditto.
6227 (x_set_menu_bar_lines): Put local variable used only for
6228 non-toolkit case in #ifdef/#endif.
6229 (x_figure_window_size): Remove unused variable(s).
427ec082 6230 (x_figure_window_size, x_window, lookup_image,
26901792
DL
6231 xbm_read_bitmap_file_data, x_build_heuristic_mask, pbm_load,
6232 png_load, jpeg_load, gif_load, x_create_tip_frame,
6233 x_create_tip_frame, Fx_show_tip, x_set_border_pixel): Ditto.
6234
6235 * xterm.c (x_scroll_bar_handle_click): Compile only if
6236 not USE_TOOLKIT_SCROLL_BARS.
6237 (x_scroll_bar_set_handle, x_scroll_bar_note_movement): Ditto.
6238
6239 * dispextern.h: Add prototypes for gamma_correct and
6240 x_kill_gs_process.
6241
6242 * xterm.c (x_produce_glyphs): Remove unused variable(s).
6243 (x_alloc_nearest_color_for_widget, note_tool_bar_highlight,
6244 x_set_toolkit_scroll_bar_thumb): Ditto.
6245 (x_scroll_bar_create): Move local variable to the
6246 conditionally compiled section of code where it is used.
6247 (x_scroll_bar_create): Remove unused variable(s).
6248 (x_scroll_bar_remove, XTread_socket): Ditto.
6249 (XTread_socket) <ConfigureNotify>: Move variables used for
6250 non-toolkit case into conditionally compiled section of code.
6251
6252 * window.h (freeze_window_starts): Fix typo in prototype.
6253
6254 * xdisp.c (display_echo_area_1, try_window_id): Remove unused
6255 variable(s).
6256
6257 * lisp.h: Add prototype for debug_print.
6258
6259 * dispextern.h (xassert) [GLYPH_DEBUG]: Change definition
6260 to use do-while.
6261
6262 * fns.c (SXHASH_COMBINE): Add missing parentheses.
6263 (Fchar_table_range, Fset_char_table_default, mapcar1,
6264 Fyes_or_no_p, sweep_weak_hash_tables): Remove unused variable(s).
6265
6266 * lisp.h: Add prototype for getloadavg.
6267
62681999-09-14 Andreas Schwab <schwab@gnu.org>
6269
6270 * process.c (Fopen_network_stream): Avoid socket decriptor leak.
6271
6272 * lisp.h: Declare close_file_unwind.
6273
62741999-09-14 Richard Stallman <rms@gnu.org>
6275
6276 * filelock.c (get_boot_time): Make the temp name in the proper dir.
6277
62781999-09-13 Gerd Moellmann <gerd@gnu.org>
6279
6280 * xdisp.c (redisplay_window): Make sure start_at_line_beg
6281 is always set correctly.
6282
62831999-09-13 Dave Love <fx@gnu.org>
6284
6285 * xdisp.c (move_it_in_display_line_to): Make type consistent with
6286 declaration.
6287
62881999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6289
6290 * xdisp.c (QCfile): Move here from xfns.c.
6291 (syms_of_xdisp): Initialize it.
6292 (message2_nolog): Change for Lisp_Object selected_frame.
6293 (message3_nolog, message_with_string, message,
6294 setup_echo_area_for_printing, truncate_echo_area,
6295 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
6296
62971999-09-13 Dave Love <fx@gnu.org>
6298
6299 * xterm.c: Don't continue #define args for benefit of old cc.
6300 (xt_action_hook): Indent #error for benefit of K&R cc.
6301
63021999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6303
6304 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
6305 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
6306 (XRINGBELL): Removed.
6307
63081999-09-13 Dave Love <fx@gnu.org>
6309
6310 * xfns.c (x_put_x_image): Make type consistent with declaration.
6311
6312 * fns.c (Fmake_hash_table): Fix string continuation.
6313
63141999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6315
6316 * xfns.c (QCfile): Moved to xdisp.c.
6317 (syms_of_xfns): Don't initialize QCfile.
6318 (check_x_frame): Change for Lisp_Object selected_frame.
6319 (check_x_display_info, x_get_resource_string): Ditto.
6320
63211999-09-13 Gerd Moellmann <gerd@gnu.org>
6322
6323 * minibuf.c (choose_minibuf_frame): Don't try to set the
6324 mini-buffer window's buffer, if the buffer is invalid.
6325
6326 * xfns.c (QCfile): Moved to xdisp.c.
6327 (syms_of_xfns): Don't initialize QCfile.
6328
6329 * xdisp.c (QCfile): Move here from xfns.c.
6330 (syms_of_xdisp): Initialize it.
6331
6332 * lisp.h (selected_frame): Add external declaration.
6333
6334 * xselect.c (x_own_selection): Change for Lisp_Object selected_frame.
6335 (Fx_store_cut_buffer_internal): Ditto.
6336 (Fx_rotate_cut_buffers_internal): Ditto.
6337
6338 * xfaces.c (frame_or_selected_frame): Change for Lisp_Object
6339 selected_frame.
6340 (Finternal_set_lisp_face_attribute): Ditto.
6341 (Finternal_get_lisp_face_attribute): Ditto.
6342 (Finternal_lisp_face_empty_p): Ditto.
6343 (Fdump_face): Ditto.
6344
6345 * term.c (OUTPUT): Change for Lisp_Object selected_frame.
6346 (OUTPUT_IF, ring_bell, set_terminal_modes, reset_terminal_modes,
6347 set_terminal_window, set_scroll_region, reassert_line_highlight,
6348 change_line_highlight, cursor_to, raw_cursor_to, clear_to_end,
6349 clear_end_of_line, clear_end_of_line_raw, clear_end_of_line_raw,
6350 encode_terminal_code, write_glyphs, term_init): Ditto.
6351
6352 * sysdep.c (reset_sys_modes): Change for Lisp_Object selected_frame.
6353 (kbd_input_ast, read_input_waiting): Ditto.
6354
6355 * minibuf.c (choose_minibuf_frame): Change for Lisp_Object
6356 selected_frame.
6357 (read_minibuf): Ditto.
6358
6359 * keyboard.c (command_loop_1): Change for Lisp_Object
6360 selected_frame.
6361 (cmd_error_internal, command_loop_1, read_char,
6362 kbd_buffer_get_event, read_avail_input,
6363 read_char_minibuf_menu_prompt, read_key_sequence, Fsuspend_emacs,
6364 interrupt_signal, quit_throw_to_read_char): Ditto.
6365
6366 * fontset.c (Ffont_info): Change for Lisp_Object selected_frame.
6367 (Ffontset_info): DItto.
6368
6369 * emacs.c (handle_USR1_signal): Change for Lisp_Object selected_frame.
6370
6371 * dispnew.c (selected_frame): Make it a Lisp_Object.
6372 (adjust_frame_glyphs_initially): Change for Lisp_Object selected_frame.
6373 (direct_output_for_insert, direct_output_forward_char,
6374 init_display): Ditto.
6375
6376 * data.c (swap_in_symval_forwarding): Change for Lisp_Object
6377 selected_frame.
6378 (set_internal): Ditto.
6379
6380 * buffer.c (Fother_buffer): Change for Lisp_Object selected_frame.
6381 (record_buffer): Ditto.
6382
6383 * frame.c (Fmake_terminal_frame): Use SELECTED_FRAME.
6384 (do_switch_frame): Change for Lisp_Object selected_frame.
6385 (Fselected_frame): Ditto.
6386 (Fframe_first_window): Use SELECTED_FRAME.
6387 (Fframe_root_window): Change for Lisp_Object selected_frame.
6388 (Fframe_selected_window, Fset_frame_selected_window, Fnext_frame,
6389 Fprevious_frame, other_visible_frames, Fdelete_frame,
6390 Fmouse_position, Fmouse_pixel_position, Fmake_frame_visible,
6391 Fmake_frame_invisible, Ficonify_frame, Fraise_frame, Flower_frame,
6392 Fframe_parameters, Fmodify_frame_parameters, Fframe_char_height,
6393 Fframe_char_width, Fframe_pixel_height, Fframe_pixel_width,
6394 Fset_frame_height, Fset_frame_width): Ditto.
6395
63961999-09-13 Gerd Moellmann <gerd@gnu.org>
6397
6398 * xdisp.c (message2_nolog): Change for Lisp_Object selected_frame.
6399 (message3_nolog, message_with_string, message,
6400 setup_echo_area_for_printing, truncate_echo_area,
6401 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
6402
6403 * xmenu.c (Fx_popup_menu): Change for Lisp_Object selected_frame.
6404 (Fx_popup_dialog): Ditto.
6405
6406 * xfns.c (check_x_frame): Change for Lisp_Object selected_frame.
6407 (check_x_display_info, x_get_resource_string): Ditto.
6408
6409 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
6410 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
6411 (XRINGBELL): Removed.
6412
6413 * window.c (Fminibuffer_window): Change for Lisp_Object
6414 selected_frame.
6415 (Fwindow_at, Fprevious_window, window_loop, select_window_1,
6416 display_buffer_1, Fdisplay_buffer, temp_output_buffer_show,
6417 Fcurrent_window_configuration, init_window_once): Ditto.
6418
6419 * frame.h (SELECTED_FRAME): New.
6420
64211999-09-12 Ken Raeburn <raeburn@gnu.org>
6422
6423 * category.c (word_boundary_p): Use XCAR and XCDR.
6424 * ccl.c (ccl_driver, resolve_symbol_ccl_program,
6425 Fregister_code_conversion_map): Likewise.
6426 * coding.c (setup_coding_system, detect_coding_system,
6427 Ffind_operation_coding_system, Fset_coding_priority_internal):
6428 Likewise.
6429 * doc.c (get_doc_string, Fdocumentation,
6430 store_function_docstring): Likewise.
6431 * editfns.c (save_restriction_restore): Likewise.
6432 * eval.c (Fcond, Fmacroexpand, Fcondition_case, wants_debugger,
6433 skip_debugger, find_handler_clause, Fautoload, Fapply,
6434 run_hook_with_args, run_hook_list_with_args, Ffetch_bytecode):
6435 Likewise.
6436 * fileio.c (Ffind_file_name_handler, Finsert_file_contents,
6437 Fwrite_region, do_auto_save_unwind, Fdo_auto_save,
6438 Fread_file_name): Likewise.
6439 * filelock.c (unlock_all_files): Likewise.
6440 * insdel.c (Fcombine_after_change_execute): Likewise.
6441 * intervals.c (adjust_intervals_for_insertion): Likewise.
6442 * keymap.c (get_keymap_1, Fkeymap_parent, Fset_keymap_parent,
6443 Fset_keymap_parent, fix_submap_inheritance, access_keymap,
6444 store_in_keymap, Fcopy_keymap, define_as_prefix,
6445 current_minor_maps, Faccessible_keymaps,
6446 accessible_keymaps_char_table, Fkey_description,
6447 Fwhere_is_internal, where_is_internal_2, where_is_internal_1,
6448 describe_buffer_bindings, describe_map_tree, shadow_lookup,
6449 describe_map): Likewise.
6450 * lread.c (Fload, load_unwind, close_load_descs, read_vector,
6451 read_list, init_lread): Likewise.
6452 * search.c (Fmatch_data): Likewise.
6453 * sunfns.c (Fsun_menu_internal): Likewise.
6454 * syntax.c (describe_syntax): Likewise.
6455 * undo.c (record_insert, record_delete, Fundo_boundary,
6456 truncate_undo_list): Likewise.
6457 * vmsproc.c (child_sig): Likewise.
6458
6459 * editfns.c (Fformat): Use XFLOAT_DATA.
6460
64611999-09-12 Gerd Moellmann <gerd@gnu.org>
6462
6463 * keyboard.c (command_loop_1): Resize mini-window to the
6464 exact size of a message displayed, if any.
6465
6466 * xdisp.c (resize_mini_window): Add parameter exact_p. Resize
6467 to exact size if exact_p is non-zero.
6468 (display_echo_area_1): Call resize_mini_window with
6469 new parameter.
6470 (redisplay_internal): Ditto.
6471 (resize_echo_area_axactly): New.
6472
6473 * minibuf.c (read_minibuf_unwind): Call resize_mini_window with
6474 new parameter.
6475
6476 * dispextern.h: Change prototype of resize_mini_window.
6477 Add prototype for resize_echo_area_axactly.
6478
6479 * xfaces.c (Fx_family_fonts): Replaces Fx_font_list.
6480 (syms_of_xfaces): Defsubr accordingly.
6481
6482 * xdisp.c (hscroll_window_tree): Choose cursor row from
6483 desired or current matrix.
6484 (redisplay_internal): Hscroll before updating.
6485
64861999-09-12 Gerd Moellmann <gerd@gnu.org>
6487
6488 * syntax.c (Fforward_word): Use prompt_end_charpos instead
6489 of minibuffer_prompt_length.
6490
6491 * minibuf.c (read_minibuf): Use prompt_end_charpos instead
6492 of minibuffer_prompt_length.
6493 (read_minibuf_unwind): Ditto.
6494 (Fminibuffer_complete_and_exit): Ditto.
6495 (Fminibuffer_complete_word): Ditto.
6496 (Fminibuffer_prompt_end): Ditto.
6497
6498 * editfns.c (Fbuffer_string): Use prompt_end_charpos instead
6499 of minibuffer_prompt_length.
6500 (Fline_beginning_position): Ditto.
6501
6502 * buffer.c (Fget_buffer_create): Use prompt_end_charpos instead
6503 of minibuffer_prompt_length.
6504 (Fmake_indirect_buffer): Ditto.
6505 (Fkill_buffer): Ditto.
6506 (Ferase_buffer): Ditto.
6507
6508 * buffer.h (prompt_end_charpos): Replaces
6509 minibuffer_prompt_length.
6510
427ec082 6511 * minibuf.c (read_minibuf): Return mini-buffer contents
26901792
DL
6512 without the prompt.
6513
6514 * editfns.c (make_buffer_string_both): Take out the code
6515 to handle mini-buffer prompts.
6516 (Fbuffer_string): Handle the prompt here, instead.
6517
6518 * xfaces.c (lface_from_face_name): Resolve face aliases.
6519 (Qmode_line): Replaces Qmodeline.
6520 (realize_basic_faces): Use Qmode_line.
6521 (syms_of_xfaces): Initialize Qmode_line.
6522
65231999-09-12 Gerd Moellmann <gerd@gnu.org>
6524
6525 * minibuf.c (read_minibuf): Set minibuf_prompt_width to the
6526 current column after inserting prompt.
6527 (Fminibuffer_prompt_width): Return minibuf_prompt_width.
6528
6529 * xfaces.c (Qframe_update_face_colors): New.
6530 (syms_of_xfaces): Initialize call.
6531 (update_face_from_frame_parameter): Call that function when
6532 the frame's background changes.
6533
65341999-09-12 Richard Stallman <rms@gnu.org>
6535
6536 * insdel.c (del_range_1): Don't treat minibuffer prompt specially.
6537
65381999-09-12 Ken Raeburn <raeburn@gnu.org>
6539
6540 * alloc.c (Fcons, pure_cons, Fpurecopy, Fgarbage_collect,
6541 mark_object, mark_buffer): Use XCAR and XCDR.
6542 * bytecode.c (Fbyte_code): Likewise.
6543 * callint.c (Fcall_interactively, Fprefix_numeric_value):
6544 Likewise.
6545 * callproc.c (Fcall_process, Fcall_process_region, child_setup,
6546 getenv_internal): Likewise.
6547 * dired.c (file_name_completion): Likewise.
6548 * fns.c (Fsafe_length, concat, Fcopy_alist, Fmember, Fmemq, Fassq,
6549 assq_no_quit, Fassoc, Frassq, Frassoc, Fdelq, Fdelete, Freverse,
6550 Fplist_get, Fplist_put, internal_equal, mapcar1): Likewise.
6551 * indent.c (Fcompute_motion): Likewise.
6552 * process.c (decode_status, Fprocess_status, Fprocess_exit_status,
6553 list_processes_1, Fstart_process, Fopen_network_stream,
6554 wait_reading_process_input, read_process_output_call,
6555 kill_buffer_processes, sigchld_handler, exec_sentinel_unwind,
6556 status_notify, wait_reading_process_input): Likewise.
6557 * textprop.c (PLIST_ELT_P, property_value, set_properties,
6558 extend_property_ranges): Likewise.
6559 * w32faces.c (Fpixmap_spec_p, merge_face_list): Likewise.
6560 * w32fns.c (x_window_to_frame, x_set_frame_parameters,
6561 x_report_frame_params, x_set_cursor_type, x_icon_type,
6562 x_figure_window_size, Fx_create_frame, w32_load_system_font,
6563 w32_load_font, enum_font_cb2, w32_list_bdf_fonts, w32_list_fonts,
6564 w32_list_synthesized_fonts, w32_find_ccl_program, Fx_list_fonts,
6565 Fw32_find_bdf_fonts, w32_find_bdf_fonts_in_dir,
6566 x_display_info_for_name, Fx_display_list): Likewise.
6567 * w32menu.c (menubar_id_to_frame, single_keymap_panes,
6568 Fx_popup_menu, Fx_popup_dialog): Likewise.
6569 * w32proc.c (Fw32_set_keyboard_layout): Likewise.
6570 * w32term.c (x_window_to_scroll_bar, w32_read_socket,
6571 w32_term_init, x_delete_display): Likewise.
6572 * xfns.c (x_window_to_frame, x_any_window_to_frame,
6573 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
6574 x_top_window_to_frame, x_set_frame_parameters,
6575 x_report_frame_params, x_set_cursor_type, x_icon_type,
6576 x_figure_window_size, Fx_create_frame, x_display_info_for_name,
6577 Fx_display_list, x_create_tip_frame): Likewise.
6578 * xmenu.c (menubar_id_to_frame, single_keymap_panes,
6579 Fx_popup_menu, Fx_popup_dialog): Likewise.
6580 * xselect.c (x_own_selection, x_get_local_selection,
6581 x_handle_selection_request, x_handle_selection_clear,
6582 x_clear_frame_selections, wait_for_property_change_unwind,
6583 wait_for_property_change, x_handle_property_notify,
6584 copy_multiple_data, x_get_foreign_selection,
6585 lisp_data_to_selection_data, clean_local_selection_data,
6586 x_handle_selection_notify, Fx_get_selection_internal,
6587 x_disown_buffer_selections): Likewise.
6588 * xterm.c (x_window_to_scroll_bar, XTread_socket, x_list_fonts,
6589 x_load_font, x_find_ccl_program, x_term_init, x_delete_display):
6590 Likewise.
6591
6592 * alloc.c (make_float, make_pure_float, Fpurecopy): Use
6593 XFLOAT_DATA.
6594 * bytecode.c (Fbyte_code): Likewise.
6595 * floatfns.c (extract_float, Fexpt, Fabs, rounding_driver,
6596 fmod_float): Likewise.
6597
65981999-09-11 Richard Stallman <rms@gnu.org>
6599
6600 * xdisp.c (run_window_scroll_functions): If hook functions switch
6601 buffers, switch back after.
6602
66031999-09-11 Ken Raeburn <raeburn@gnu.org>
6604
6605 * charset.h (GET_TRANSLATION_TABLE): Use XCDR.
6606 * frame.h (FOR_EACH_FRAME): Use XCAR and XCDR.
6607 (PIXEL_X_FROM_CANON_X, PIXEL_Y_FROM_CANON_Y): Use XFLOAT_DATA.
6608 * keyboard.h (EVENT_HEAD, EVENT_START, EVENT_END, POSN_WINDOW,
6609 POSN_BUFFER_POSN, POSN_WINDOW_POSN, POSN_TIMESTAMP): Use XCAR and
6610 XCDR.
6611 * syntax.h (SYNTAX, SYNTAX_WITH_FLAGS, SYNTAX_MATCH): Use XCAR and
6612 XCDR.
6613
66141999-09-10 Richard Stallman <rms@gnu.org>
6615
6616 * xterm.c (XTread_socket): In XSetInputFocus, use RevertToParent,
6617 not RevertToPointerRoot.
6618 (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
6619 Fix the code to clear around the scroll bar.
6620
66211999-09-10 Keisuke Nishida <kxn30@po.cwru.edu>
6622
6623 * print.c: Support print-circle and related features.
6624 (Vprint_gensym_alist): Removed.
6625 (Vprint_circle, Vprint_continuous_numbering, print_number_index
6626 Vprint_number_table): New variables.
6627 (PRINT_NUMBER_OBJECT, PRINT_NUMBER_STATUS): New macros.
6628 (PRINTPREPARE, PRINTFINISH): Don't set Vprint_gensym_alist.
6629 (print, print_preprocess, print_preprocess_string, print_object):
6630 New/modified functions with print-circle feature. Use
6631 Vprint_number_table instead of Vprint_gensym_alist for print-gensym.
6632 (syms_of_print): Defined new Lisp variables `print-circle',
6633 `print-continuous-numbering', `print-number-table'.
6634
66351999-09-10 Gerd Moellmann <gerd@gnu.org>
6636
6637 * xfns.c (x_build_heuristic_mask): Accept a list `(R G B)'
6638 as background color specification instead of an integer.
6639 (image-cache-eviction-delay): Replaces image-eviction-seconds.
6640 (Vimage_cache_eviction_delay): Replaces Vimage_eviction_seconds.
6641 (clear_image_cache, syms_of_xfns): Use it.
6642 (Qpostscript): Replaces Qghostscript.
6643 (gs_type): Use it.
6644 (gs_image_p): Ditto.
6645 (syms_of_xfns): Initialize Qpostscript.
6646
66471999-09-10 Richard Stallman <rms@gnu.org>
6648
6649 * buffer.c (Ferase_buffer): Don't erase the minibuffer prompt.
6650
66511999-09-09 Richard Stallman <rms@gnu.org>
6652
6653 * editfns.c (Fline_beginning_position): Handle minibuffer prompt here.
6654
6655 * cmds.c (Fbeginning_of_line): Don't handle minibuffer prompt here.
6656
66571999-09-09 Gerd Moellmann <gerd@gnu.org>
6658
6659 * fns.c (Fmakehash): Accept just one optional argument TEST.
6660
6661 * xfns.c (QCindex): New.
6662 (syms_of_xfns): Initialize QCindex.
6663 (gif_load): Use it instead of `:image'.
6664
66651999-09-09 Richard Stallman <rms@gnu.org>
6666
6667 * fileio.c (Fwrite_region): Finish renaming CONFIRM to MUSTBENEW.
6668 (Fwrite_region) [DOS_NT]: Handle `excl' here too.
6669
66701999-09-08 Gerd Moellmann <gerd@gnu.org>
6671
6672 * xdisp.c (Qwhen): Replaces QCwhen.
6673 (syms_of_xdisp): Initialized it instead of QCwhen.
6674 (handle_single_display_prop): Use it instead of QCwhen.
6675
66761999-09-08 Ken'ichi Handa <handa@gnu.org>
6677
6678 * charset.c (translate_char): Reset MSBs of arguments of
6679 MAKE_CHAR.
6680 (CHAR_COMPONENTS_VALID_P): Fix for ASCII.
6681
66821999-09-08 Lars Magne Ingebrigtsen <larsi@gnus.org>
6683
6684 * editfns.c (Fbufsize): Accept an extra BUFFER parameter.
6685
6686 * fns.c (Fbase64_decode_region): Don't place point outside of the
6687 current accessible portion.
6688
66891999-09-07 Richard Stallman <rms@gnu.org>
6690
6691 * keymap.c (fix_submap_inheritance): Do nothing if the proper
6692 parent is an ancestor of SUBMAP; otherwise, add it as the
6693 ultimate ancestor.
6694
66951999-09-07 Gerd Moellmann <gerd@gnu.org>
6696
6697 * xdisp.c (handle_single_display_prop): Change conditional
6698 display property to `:when FORM . VALUE'.
6699
67001999-09-07 Richard Stallman <rms@gnu.org>
6701
6702 * fileio.c (Fwrite_region): Doc fix.
6703
67041999-09-07 Stefan Monnier <monnier@cs.yale.edu>
6705
6706 * fileio.c (Qexcl): New variable.
6707 (report_file_error): Handle EEXIST specially.
6708 (Fwrite_region): Special handling for CONFIRM = `excl'.
6709 (syms_of_fileio): Initialize Qexcl.
6710
67111999-09-07 Gerd Moellmann <gerd@gnu.org>
6712
6713 * xfns.c (x_set_foreground_color): Call
6714 update_face_from_frame_parameter.
6715 (x_set_background_color): Ditto.
6716 (x_set_mouse_color): Ditto.
6717 (x_set_cursor_color): Ditto.
6718 (x_set_border_color): Ditto.
6719 (x_set_scroll_bar_foreground): Ditto.
6720 (x_set_scroll_bar_background): Ditto.
6721
6722 * xfaces.c (recompute_basic_faces): Clear face cache.
6723 (Finternal_set_lisp_face_attribute): Modify frame parameters
6724 if attributes of certain faces are changed.
6725 (update_face_from_frame_parameter): New.
6726
6727 * xfaces.c (realize_basic_faces): Realize new basic faces.
6728
6729 * dispextern.h (SCROLL_BAR_FACE_ID, BORDER_FACE_ID,
6730 CURSOR_FACE_ID, MOUSE_FACE_ID): New.
6731
6732 * xfaces.c (Qscroll_bar, Qcursor, Qborder, Qmouse): New.
6733 (syms_of_xfaces): Intialize new symbols.
6734
6735 * fns.c (Fmakehash): Take one argument, test, make all the
6736 rest keyword arguments.
6737
6738 * window.c (Fset_window_margins): Make window the first argument.
6739 (set_window_buffer): Call Fset_window_margins with window as first
6740 argument.
6741
67421999-09-07 Gerd Moellmann <gerd@gnu.org>
6743
6744 * xfaces.c (Qfringe): Replaces Qmargin.
6745
67461999-09-07 Kenichi Handa <handa@etl.go.jp>
6747
6748 * charset.h: Lots of comments fixed.
6749 (PARSE_MULTIBYTE_SEQ): Make it work also for ASCII string.
6750 (STRING_CHAR_AND_CHAR_LENGTH): This macro removed.
6751
6752 * charset.c : Lots of comments fixed.
6753 (SPLIT_MULTIBYTE_SEQ): Make it work also for ASCII string.
6754 (CHAR_COMPONENTS_VALID_P): Name changed from
6755 CHAR_COMPONENT_VALID_P. Caller changed.
6756
67571999-09-06 Richard Stallman <rms@gnu.org>
6758
6759 * insdel.c (syms_of_insdel): Define Lisp variable
6760 inhibit-modification-hooks.
6761
67621999-09-06 Michael Sperber [Mr. Preprocessor] <sperber@informatik.uni-tuebingen.de>
6763
6764 * s/aix4-2.h (ALIGN_DATA_RELOC): Undefined to support new
6765 unexaix.c.
6766
6767 * s/aix3-1.h (ALIGN_DATA_RELOC): Defined to support new unexaix.c.
6768
67691999-09-06 Dave Love <fx@gnu.org>
6770
6771 * unexaix.c: New version incorporating Michael Sperber's changes
6772 from XEmacs. Should solve problems on AIX 4.3.
6773
6774 * lread.c (Vbyte_boolean_vars): New variable.
6775 (defvar_bool, syms_of_lread): Use it.
6776
67771999-09-05 Richard Stallman <rms@gnu.org>
6778
6779 * minibuf.c (read_minibuf): Put all three properties on the
6780 same range, the whole prompt.
6781
67821999-09-05 Gerd Moellmann <gerd@gnu.org>
6783
6784 * sound.c (Qplay_sound_functions): Replaces Qplay_sound_hook.
6785 (Fplay_sound, syms_of_sound): Use it.
6786 (parse_sound): Allow float volume values in the range [0, 1].
6787 (Fplay_sound): Ditto.
6788
6789 * window.c (Fset_window_vscroll): Make window the first argument,
6790 amount to scroll the second. Take non-negative vscroll as
6791 argument.
6792 (Fwindow_vscroll): Return non-negative vscroll.
6793
6794 * xfns.c (Fx_show_tip): Improve documentation.
6795
67961999-09-05 Gerd Moellmann <gerd@gnu.org>
6797
6798 * buffer.c, buffer.h, dispextern.h, dispnew.c, keyboard.c,
6799 window.c, xdisp.c, xfaces.c, xterm.c, keyboard.h: Change
6800 `top-line' and `top_line' to `header-line' and `header_line'.
6801 Likewise for similar spellings.
6802
68031999-09-05 Gerd Moellmann <gerd@gnu.org>
6804
6805 * xdisp.c (row_containing_pos): New.
6806 (try_window_id): Use it.
6807
6808 * alloc.c, dispextern.h, dispnew.c, frame.c, frame.h, keyboard.c,
6809 lisp.h, termhooks.h, window.c xdisp.c, xfaces.c, xfns.c, xterm.c:
6810 Change spelling of `toolbar' to `tool_bar' or `tool-bar'.
6811 Likewise for upper-case etc.
6812
68131999-09-05 Gerd Moellmann <gerd@gnu.org>
6814
6815 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
6816 Fix reference to renamed variable.
6817
68181999-09-04 Gerd Moellmann <gerd@gnu.org>
6819
6820 * window.c (Qwindow_size_fixed): Replaces Qfixed_window_size.
427ec082 6821 (window_fixed_size_p): Use Qwindow_size_fixed instead of
26901792
DL
6822 Qfixed_window_size.
6823 (syms_of_window): Ditto.
6824
6825 * fns.c (Fmakehash): Exchange optional test and size arguments.
6826
68271999-09-03 Gerd Moellmann <gerd@gnu.org>
6828
6829 * xterm.c (XTset_vertical_scroll_bar): Block input when clearing
6830 under newly created scroll bar.
6831 (expose_window): If window is not yet fully initialized, do
6832 nothing. This can happen when toolkit scroll bars are used and a
6833 window is split. Reconfiguring the scroll bars will generate an
6834 expose for a newly created window.
6835
6836 * frame.h (struct frame): New member `gamma'.
6837
6838 * xfns.c: Include math.h. Add extern declaration for atof in case
6839 we don't see one.
6840 (Qscreen_gamma): New.
6841 (struct x_frame_parm_table): Add prototypes, add
6842 x_set_screen_gamma.
6843 (gamma_correct): New function.
6844 (defined_color): Call it.
6845 (x_set_screen_gamma): New.
6846 (x_set_title): Add parameter old_value.
6847 (RES_TYPE_FLOAT): New.
6848 (x_get_arg): Handle RES_TYPE_FLOAT.
6849 (Fx_create_frame): Call x_default_parameter for `screen-gamma'.
6850 (lookup_pixel_color): Change call to x_alloc_nearest_color to
6851 new prototype.
6852 (lookup_rgb_color): Ditto.
6853 (syms_of_xfns): Initialize Qscreen_gamma.
6854
6855 * xterm.c (x_alloc_nearest_color_for_widget) [USE_X_TOOLKIT]:
6856 New. Allocate color for lwlib widgets.
6857 (x_alloc_nearest_color): Change parameter list include the
6858 frame on which to allocate colors. Gamma-correct colors.
6859 (x_alloc_lighter_color): Call x_alloc_lighter_color with new
6860 parameter list.
6861
6862 * xterm.h: Change protorype of x_alloc_nearest_color.
6863
68641999-09-03 Richard Stallman <rms@gnu.org>
6865
6866 * callproc.c: Delete the system-independent include of stdlib.h
6867 (leaving only the one in the WINDOWSNT conditional).
6868
68691999-09-03 Andrew Choi <choi@cs.hku.hk>
6870
6871 * callproc.c (call-process) [macintosh]: Call mac_run_command in
6872 sysdep.c. The Mac code is modeled after the DOS code.
427ec082 6873
26901792
DL
6874 * dispextern.h [macintosh]: Include macterm.h to define substitute X
6875 Window types and macros.
6876
6877 * frame.h: Do nothing if included a second time.
6878 (enum output_method): Add mac_output frame type.
6879 (union output_data): Add new alternative `mac'.
6880 (FRAME_MAC_P): New macro.
427ec082 6881
26901792
DL
6882 * frame.c (Fframep) [macintosh]: Handle mac frame type.
6883 (syms_of_frame_1): Initialize Qmac.
6884 (make_terminal_frame) [macintosh]: Initialize output_data.mac fields.
6885 (Fmake_terminal_frame) [macintosh]: Add an alternate error check.
6886 (Fmodify_frame_parameters) [macintosh]: Call
6887 mac_set_frame_parameter in macterm.c.
427ec082 6888
26901792
DL
6889 * keyboard.c [macintosh]: Set KBD_BUFFER_SIZE to a smaller value
6890 (512) because Mac compilers limit local data of a function to 32K.
427ec082 6891
26901792
DL
6892 * make-docfiles.c: Correctly handle input files with Mac-style
6893 eol's.
427ec082 6894
26901792 6895 * sysdep.c: Define numerous routines to emulate Unix system calls.
427ec082 6896
26901792
DL
6897 * xfaces.c: on MacOS, define the set of colors listed in rgb.txt
6898 file of an X Window environment.
427ec082 6899
26901792
DL
6900 * xfaces.c: on MacOS, define the Lisp functions x-display-color-p,
6901 x-display-grayscale, x-color-defined-p, and x-color-values.
427ec082 6902
26901792
DL
6903 * sysdep.c [macintosh] (stat, fstat, mkdir, rmdir, utime, access)
6904 (open, creat, unlink, read, write, rename, fopen, pause, alarm)
6905 (signal, sleep, gmtime, localtime, ctime, time, index, mktemp)
6906 (getpwuid, getpwnam, dup, dup2, isatty, getgid, getegid, getuid)
6907 (geteuid, getpid, getenv, uname, opendir, closedir, readdir, getwd.):
6908 New functions, replacing POSIX features.
427ec082 6909
26901792
DL
6910 * sysdep.c [macintosh] (Mac2UnixPathname, Unix2MacPathname, CheckAlarm)
6911 (InitMyPasswd, GetTempDirName, mystrchr, mystrtok, mystrcpy):
6912 (InitEmacsPasswdDir, run_mac_command): New subroutines.
6913
6914 * sysdep.c [macintosh] (targetTicks, alarm_signal_func, myPasswdName)
6915 (myPasswd, emacsPasswdDir, emacsPasswd, myPasswdInited, mask)
6916 (myPasswdDir, TempDirName, sys_siglist): New variables.
6917
6918 * sysdep.c [macintosh] (execvp, wait, croak, fork, kill, sigsetmask)
6919 (sigblock, request_sigio, unrequest_sigio, setpgrp, pipe, symlink)
6920 (link, lstat, readlink, umask, chmod, sbrk, fsync, ioctl):
6921 Define empty stubs so Emacs will link.
6922
69231999-09-03 Gerd Moellmann <gerd@gnu.org>
6924
6925 * xdisp.c: Use XCAR and XCDR instead of XCONS.
6926
6927 * window.h: New member frozen_window_start_p.
6928
6929 * window.c (foreach_window, foreach_window_1): New.
6930 (freeze_window_start, freeze_window_starts): New.
6931 (make_window): Initialize frozen_window_start_p.
6932 (replace_window): Ditto.
6933 (Fset_window_point): Remove references to deleted variables.
6934 (Fset_window_start): Ditto.
6935
6936 * xdisp.c (Vresize_mini_config, resize_mini_frame,
6937 resize_mini_initial_height): Removed.
6938 (syms_of_xdisp): Remove references to these variables.
6939 (resize_mini_window): Don't save window configuration, freeze
6940 window starts instead. Enlarge window until displaying an empty
6941 buffer, then shrink it. Make the function externally visible.
6942 (redisplay_window): Treat frozen window start like forced start,
6943 but accept point outside of the window.
6944
6945 * dispextern.h: Add function prototype for resize_mini_window.
6946
6947 * minibuf.c (read_minibuf_unwind): Resize mini-window when
6948 reaching minibuf_level 0.
6949
6950 * lisp.h: Remove extern declarations for variables deleted from
6951 xdisp.c.
6952
6953 * dispnew.c (adjust_frame_glyphs): Remove reference to
6954 Vresize_mini_config.
6955
69561999-09-03 Gerd Moellmann <gerd@gnu.org>
6957
6958 * xfns.c (x_set_scroll_bar_width): Change conditional compilation
6959 to USE_TOOLKIT_SCROLL_BARS.
6960
6961 * xterm.c (x_scroll_bar_create): Don't clear under scroll bar
6962 here.
6963 (XTset_vertical_scroll_bar): Clarify position computations. Clear
6964 under newly created scroll bar. Put toolkit scroll bars in the
6965 middle of the area reserved for the scroll bar.
6966
69671999-09-03 Kenichi Handa <handa@etl.go.jp>
6968
6969 The following changes are for the new handling of mulitbyte
6970 sequence. Now, except for a composite character, no multibyte
6971 character in string/buffer has trailing garbage bytes. For
6972 instance, the length of string "\201\300\300" is now 2, the first
6973 character is Latin-1 A-grave, the second is raw \300.
6974
6975 * charset.h (MAKE_NON_ASCII_CHAR): Handle the case that C1 or C2
6976 are negative.
6977 (MAKE_CHAR): Don't set MSBs of C1 and C2 to 0.
6978 (VALID_MULTIBYTE_CHAR_P): This macro deleted.
6979 (PARSE_COMPOSITE_SEQ): New macro.
6980 (PARSE_CHARACTER_SEQ): New macro.
427ec082 6981 (PARSE_MULTIBYTE_SEQ): New macro.
26901792
DL
6982 (CHAR_PRINTABLE_P): New macro.
6983 (STRING_CHAR): Adjusted for the change of string_to_non_ascii_char.
6984 (STRING_CHAR_AND_LENGTH): Likewise.
6985 (STRING_CHAR_AND_CHAR_LENGTH): Define it as STRING_CHAR_AND_LENGTH.
6986 (INC_POS): Use the macro PARSE_MULTIBYTE_SEQ.
6987 (DEC_POS, BUF_INC_POS, BUF_DEC_POS): Likewise,
6988
6989 * charset.c (SPLIT_COMPOSITE_SEQ): New macro.
6990 (SPLIT_CHARACTER_SEQ): New macro.
6991 (SPLIT_MULTIBYTE_SEQ): New macro.
6992 (CHAR_COMPONENT_VALID_P): New macro.
6993 (non_ascii_char_to_string): Generate a multibyte sequence as far
6994 as possible.
6995 (string_to_non_ascii_char): The 4th arg exclude_tail_garbage is
6996 deleted. Caller changed. Use the macro SPLIT_MULTIBYTE_SEQ.
6997 (split_non_ascii_string): Likewise.
6998 (multibyte_form_length): Use the macro PARSE_MULTIBYTE_SEQ.
6999 (char_printable_p): New function.
7000 (translate_char): Check character by NATNUMP instead of INTEGERP.
7001 (unibyte_char_to_multibyte): Call char_valid_p instead of
7002 VALID_MULTIBYTE_CHAR_P.
7003 (Fmake_char_internal): Check the arguments more rigidly.
7004 (Fcharset_after): Use the macro SPLIT_MULTIBYTE_SEQ.
7005 (char_valid_p): Check the validity by CHAR_COMPONENT_VALID_P.
7006 (Fmultibyte_char_to_unibyte): Check the validity of character by
7007 CHAR_VALID_P.
7008 (chars_in_text): Call multibyte_chars_in_text.
7009 (multibyte_chars_in_text): Use the macro PARSE_MULTIBYTE_SEQ.
7010 (Fcompose_string): Use the macro STRING_CHAR_AND_LENGTH instead of
7011 STRING_CHAR_AND_CHAR_LENGTH (which is obsolete now).
7012
7013 * data.c (Faset): Adjust the way to check byte-combining
7014 possibility for the new handling of multibyte sequence.
7015
7016 * editfns.c (Fsubst_char_in_region): Likewise.
7017
7018 * fns.c (count_combining): Use the macro PARSE_MULTIBYTE_SEQ.
7019 (string_char_to_byte): Likewise.
7020 (string_byte_to_char): Likewise.
7021
7022 * indent.c (MULTIBYTE_BYTES_WIDTH): Delete the 2nd arg C. Use the
7023 macro STRING_CHAR_AND_LENGTH. Caller changed.
7024
7025 * insdel.c (count_combining_composition): New function.
7026 (count_combining_before): Adjust the way to check byte-combining
7027 possibility for the new handling of multibyte sequence. Call
7028 count_combining_composition for a composite character.
7029 (count_combining_after): Likewise.
7030
7031 * print.c (print_string): Use the macro STRING_CHAR_AND_LENGTH.
7032 (print): Likewise.
7033
7034 * dispextern.h (struct it): Change the size of the member
7035 `ctl_chars'.
7036
7037 * xdisp.c (get_next_display_element): Display incomplete multibyte
7038 sequence (e.g. \222\300) by octal form.
7039
70401999-09-02 Gerd Moellmann <gerd@gnu.org>
7041
7042 * xterm.h (VERTICAL_SCROLL_BAR_WIDTH_TRIM): Change from 2 to 0.
7043
7044 * fns.c (Fhash_table_weakness): Replaces Fhash_table_weak.
7045 (cmpfn_eql, sxhash): Use XFLOAT_DATA.
7046
70471999-09-02 Gerd Moellmann <gerd@gnu.org>
7048
7049 * buffer.c (set_buffer_internal): Never set
7050 windows_or_buffers_changed.
7051
7052 * xdisp.c (try_window_id): Reset first_unchanged_at_end_row
7053 if we have displayed to the bottom of the window.
7054
7055 * syntax.c (Fforward_word): Stop at a mini-buffer prompt end
7056 in both directions. Extend documentation.
7057
70581999-09-01 Gerd Moellmann <gerd@gnu.org>
7059
7060 * minibuf.c (read_minibuf): Flush display after setting cursor to
7061 column 0.
7062
70631999-08-31 Gerd Moellmann <gerd@gnu.org>
7064
7065 * s/freebsd.h (__FreeBSD_version): Don't define it if it is
7066 already defined. This avoids a warning from buffer.c.
7067
70681999-08-30 Gerd Moellmann <gerd@gnu.org>
7069
7070 * xterm.h (FRAME_X_FLAGS_AREA_COLS): Define it as the total width
7071 of both margins.
7072 (FRAME_X_FLAGS_AREA_WIDTH): Likewise.
7073 (FRAME_X_LEFT_FLAGS_AREA_WIDTH): New.
7074 (FRAME_X_RIGHT_FLAGS_AREA_WIDTH): New.
7075
7076 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add in FRAME_FLAGS_AREA_COLS
7077 once instead of twice.
7078 (FRAME_LEFT_FLAGS_AREA_WIDTH): New.
7079
7080 * xterm.c: Remove unused bitmaps.
7081 (continued_bits, continuation_bits, overlay_bits): Change images.
7082 (x_draw_vertical_border): Use FRAME_X_RIGHT_FLAGS_AREA_WIDTH
7083 instead of FRAME_X_FLAGS_AREA_WIDTH.
7084 (x_after_update_window_line): Ditto.
7085 (x_draw_bitmap): Likewise.
7086 (x_draw_row_bitmaps): Likewise.
7087 (x_draw_glyph_string_box): Likewise.
7088 (x_draw_glyphs): Likewise.
7089 (x_scroll_run): Likewise.
7090 (expose_window_tree): Likewise.
7091 (note_mode_line_highlight): Likewise.
7092 (XTset_vertical_scroll_bar): Likewise.
7093 (x_clip_to_row): Likewise.
7094 (x_set_window_size): Likewise.
7095
7096 * xfns.c (x_figure_window_size): Use FRAME_FLAGS_AREA_COLS instead
7097 of 2 * that value.
7098
7099 * xdisp.c (window_box_width): Use FRAME_FLAGS_AREA_COLS instead of
7100 2 * that value.
7101 (window_box_left): Use FRAME_LEFT_FLAGS_AREA_WIDTH instead of
7102 FRAME_FLAGS_AREA_WIDTH.
7103
7104 * window.c (coordinates_in_window): Use
7105 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
7106 (window_internal_width): Subtract FRAME_FLAGS_AREA_WIDTH once
7107 instead of twice.
7108
427ec082 7109 * widget.c (set_frame_size): Set flags_area_extra to
26901792
DL
7110 FRAME_FLAGS_AREA_WIDTH instead of 2 * that width.
7111 (EmacsFrameSetCharSize): Ditto.
7112
7113 * dispnew.c (mode_line_string): Add FRAME_LEFT_FLAGS_AREA_WIDTH
7114 instead of FRAME_FLAGS_AREA_WIDTH.
7115
7116 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract
7117 FRAME_FLAGS_AREA_COLS once.
7118 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Add
7119 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
7120
71211999-08-30 Gerd Moellmann <gerd@gnu.org>
7122
7123 * freebsd.h (C_SWITCH_SYSTEM): Added to let configure find headers
7124 in /usr/X11R6/include which are checked for with AC_CHECK_HEADER.
7125
71261999-08-30 Gerd Moellmann <gerd@gnu.org>
7127
7128 * fns.c (QCweakness): Replaces QCweak.
7129 (Fmake_hash_table): Ditto.
7130 (Fmakehash): Ditto.
7131 (syms_of_fns): Ditto.
7132
71331999-08-29 Richard Stallman <rms@gnu.org>
7134
7135 * search.c (compile_pattern_1): Enable RE_CHAR_CLASSES for regexp.
7136
7137 * sysdep.c (read_input_waiting): Pass read_socket_hook just 4 args.
7138
7139 * syntax.h (SYNTAX_COMMENT_NESTED, SYNTAX_FLAGS_COMMENT_NESTED):
7140 Add support for nested comments.
7141
863476d1
SM
7142 * syntax.c (Fforward_comment, scan_lists, scan_sexps_forward):
7143 Consolidate the forward comment code into the new `forw_comment'.
7144 (forw_comment): New subroutine. Added support for nested comments.
7145 (lisp_parse_state, back_comment, Fmodify_syntax_entry)
7146 (Fparse_partial_sexp): Add support for nested comments.
26901792
DL
7147
71481999-08-28 Ken Raeburn <raeburn@gnu.org>
7149
7150 * lisp.h (struct Lisp_Cons, XCAR, XCDR, struct Lisp_Float): Change
7151 names of structure elements if HIDE_LISP_IMPLEMENTATION is
7152 defined, to help detect code that uses knowledge of the Lisp
7153 internals that it shouldn't have.
7154 (XFLOAT_DATA): New macro.
7155
71561999-08-25 Gerd Moellmann <gerd@gnu.org>
7157
7158 * syntax.c (Fforward_word): If in a mini-buffer and moving
7159 backwards, stop in front of the prompt to prevent accidentially
7160 moving into the read-only prompt.
7161
7162 * window.c (Frecenter): Clear frame if called with nil or no arg.
7163
7164 * xdisp.c (resize_mini_window): Don't resize if
7165 Vmax_mini_window_height is nil. Otherwise, use a default if
7166 Vmax_mini_window_height is not ot a number.
7167 (syms_of_xdisp): Extend documentation of Vmax_mini_window_height.
7168
71691999-08-25 Alexandre Oliva <oliva@dcc.unicamp.br>
7170
7171 * unexelf.c: Merge IRIX debugging info patch from unexsgi.c
7172 * m/iris4d.h: Use unexelf for IRIX 5.*.
7173 * m/iris5d.h: Use unexelf for IRIX 6.*.
7174 * unexsgi.c: Deleted.
7175
7176 * unexelf.c: Auto-detect .sbss section.
7177 (round_up): Make it static.
7178 (unexec): Declare alignment as Elf Word. Skip ``Program
7179 segment above .bss'' test on MIPS without .sbss.
7180 Copy sections .got and .sdata1 sections. Adjust offsets in
7181 sections .sdata, .lit4, .lit8, .got and .sdata1.
7182
71831999-08-25 Gerd Moellmann <gerd@gnu.org>
7184
7185 * xdisp.c (try_window_id): Remove typo.
7186
71871999-08-24 Gerd Moellmann <gerd@gnu.org>
7188
7189 * xdisp.c (try_window_id): Recognize case that PT == ZV and in
7190 unchanged text at the bottom when computing the cursor position.
7191 (message3_nolog): Raise frame only if minibuffer_auto_raise is
7192 set.
7193
7194 * lisp.h (PVEC_TYPE_MASK): Add the bit for hash tables.
7195
71961999-08-24 Gerd Moellmann <gerd@gnu.org>
7197
7198 * xfaces.c (Qmargin): Replacement for Qbitmap_area.
7199 (realize_basic_faces): Replace Qmargin for Qbitmap_area.
7200 (syms_of_xfaces): Ditto.
7201
7202 * window.c (Fset_window_point): Reset Vresize_mini_config.
7203 (Fset_window_start): Ditto.
7204 (set_window_buffer): Ditto.
7205
7206 * dispnew.c (adjust_frame_glyphs): Reset Vresize_mini_config.
7207
7208 * xdisp.c (redisplay_window): Don't ever test just_this_one_p
7209 before calling try_window.
7210 (echo_area_display): If height has changed, update other windows.
7211 (resize_mini_frame, resize_mini_initial_height): New.
7212 (resize_mini_window): Save/restore window configuration
7213 differently.
7214
427ec082 7215 * lisp.h (Vresize_mini_config, resize_mini_frame,
26901792
DL
7216 resize_mini_initial_height): Add extern declarations.
7217
7218 * xterm.c (expose_window_tree): Fix typo CANON_Y_UNIT to
7219 CANON_X_UNIT.
7220
7221 * xfns.c [HAVE_JPEG]: Work around a warning about HAVE_STDLIB_H
7222 being redefined in jconfig.h.
7223
72241999-08-23 Ken'ichi Handa <handa@gnu.org>
7225
7226 * coding.h: Include "ccl.h" instead of "../src/ccl.h".
7227
72281999-08-22 Gerd Moellmann <gerd@gnu.org>
7229
7230 * alloc.c (mark_glyph_matrix): Mark strings only.
7231
7232 * xdisp.c (redisplay_internal): Clear garbaged frames after
7233 resizing mini-window.
7234
72351999-08-22 Gerd Moellmann <gerd@gnu.org>
7236
7237 * xdisp.c (unwind_with_echo_area_buffer): Use
7238 set_buffer_internal_1 instead of set_buffer_internal.
7239 (with_echo_area_buffer): Ditto.
7240
7241 * buffer.c (set_buffer_internal): Set windows_or_buffers_changed
7242 only if buffer is displayed somewhere.
7243
7244 * buffer.h (BUF_COMPUTE_UNCHANGED): New.
7245
7246 * insdel.c (gap_left): Use BUF_COMPUTE_UNCHANGED.
7247 (gap_right): Ditto.
7248 (modify_region): Ditto.
7249
7250 * buffer.c (modify_overlay): Use BUF_COMPUTE_UNCHANGED.
7251
7252 * xdisp.c (Vresize_mini_config): New.
7253 (resize_mini_window): Use it to save restore original window
7254 configuration
7255 (syms_of_xdisp): Initialize it.
7256
7257 * buffer.h (struct buffer): Add prevent_redisplay_optimizations_p.
7258
7259 * dispextern.h (struct glyph_matrix): Add buffer, begv, and zv.
7260
7261 * xdisp.c (reconsider_clip_changes): New.
7262 (redisplay_internal, redisplay_window): Call it.
7263 (mark_window_display_accurate, redisplay_internal): Set current
7264 matrix' buffer, begv, zv.
7265
7266 * window.c (Fset_window_hscroll): Set
7267 prevent_redisplay_optimizations_p instead of clip_changed.
7268 (Fset_window_hscroll): Ditto.
7269 (temp_output_buffer_show): Ditto.
7270 (Fset_window_vscroll): Ditto.
7271
7272 * buffer.c (reset_buffer): Set clip_changed to 0 and
7273 prevent_redisplay_optimizations_p to 1.
7274 (Fget_buffer_create): Set prevent_redisplay_optimizations_p to 1.
7275
7276 * buffer.h (BUF_UNCHANGED_MODIFIED, UNCHANGED_MODIFIED,
7277 BUF_OVERLAY_UNCHANGED_MODIFIED, OVERLAY_UNCHANGED_MODIFIED,
7278 BUF_BEG_UNCHANGED, BEG_UNCHANGED, BUF_END_UNCHANGED,
7279 END_UNCHANGED): New.
7280 (struct buffer_text): Add beg_unchanged, end_unchanged,
7281 unchanged_modified, overlay_unchanged_modified.
7282
7283 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
7284 overlay_unchanged_modified): Removed.
7285 (with_echo_area_unwind_data): Don't save beg/end_unchanged.
7286 (unwind_with_echo_area_buffer): Don't restore them.
7287 (debug_beg_unchanged, debug_end_unchanged) [GLYPH_DEBUG]: Removed.
7288 (text_outside_line_unchanged_p, redisplay_internal,
7289 try_scrolling): Use/set buffer-specific beg/end_unchanged.
7290 (redisplay_window): Let try_window_id be called if more than one
7291 window is displayed. Use/set buffer-specific beg/end_unchanged.
7292 (get_last_unchanged_at_beg_row, get_first_unchanged_at_end_row,
7293 try_window_id):
7294 Use buffer-specific beg/end_unchanged.
7295
7296 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
7297 overlay_unchanged_modified): Remove extern declarations.
7298
7299 * keyboard.c (command_loop_1): Set beg/end_unchanged per
7300 buffer.
7301
7302 * insdel.c (gap_left): Compute beg/end_unchanged per buffer.
7303 (gap_right): Ditto.
7304 (adjust_after_replace): Likewise.
7305 (replace_range, del_range_2, modify_region): Likewise.
7306
7307 * dispnew.c (direct_output_for_insert): Set beg_unchanged
7308 and unchanged_modified per buffer.
7309
7310 * coding.c (code_convert_region): Compute beg/end_unchanged per
7311 buffer.
7312
7313 * buffer.c (modify_overlay): Compute beg/end_unchanged
7314 per buffer.
427ec082 7315 (Fget_buffer_create): Initialize new members of the buffer
26901792
DL
7316 structure.
7317
73181999-08-22 Gerd Moellmann <gerd@gnu.org>
7319
7320 * lisp.h: Add prototype for copy_hash_table and Fcopy_hash_table.
7321
7322 * fns.c (Qkey, Qvalue): Renamed from Qkey_weak, and Qvalue_weak.
7323 (Qkey_value_weak): Removed.
7324 (make_hash_table): Use nil, `key', `value', t for weakness.
7325 (Fmake_hash_table): Ditto.
7326 (copy_hash_table): New.
7327 (Fcopy_hash_table): New.
7328
73291999-08-22 Gerd Moellmann <gerd@gnu.org>
7330
7331 * xfns.c: Call change_frame_size and do_pending_window_change with
427ec082 7332 new parameter.
26901792
DL
7333
73341999-08-21 Gerd Moellmann <gerd@gnu.org>
7335
7336 * xdisp.c (resize_mini_window): Do it for truncate-lines t as
7337 well.
427ec082 7338 (redisplay_internal): Resize mini-window only if text might
26901792
DL
7339 have changed.
7340 (display_echo_area): Reset displayed echo_area_buffer to nil
7341 at the end if we're displaying a nil message.
7342
73431999-08-21 Gerd Moellmann <gerd@gnu.org>
427ec082 7344
26901792
DL
7345 * fns.c (hash_lookup): Test with EQ before calling key comparion
7346 function.
7347 (hash_remove): Ditto.
7348 (cmpfn_eq): Removed.
7349 (cmpfn_eql): Don't test with EQ.
7350 (cmpfn_equal): Ditto.
7351 (make_hash_table): Set comparison function for `eq' to null.
7352
7353 * buffer.c, cmds.c, editfns.c, indent.c, insdel.c, buffer.h:
7354 Remove conditional compilation on NO_PROMPT_IN_BUFFER.
7355
7356 * dispextern.h (NO_PROMPT_IN_BUFFER): Removed.
7357
7358 * window.c, widget.c, process.c, keyboard.c, frame.c, xdisp.c,
7359 xterm.c: Call change_frame_size and do_pending_window_change with
7360 new parameter.
7361
7362 * dispnew.c (do_pending_window_change): Add parameter `safe'.
7363 (change_frame_size): Ditto.
7364 (change_frame_size_1): Ditto. Deley size changes if redisplaying
7365 and not called from a safe place.
7366 (window_change_signal): Call change_frame_size with new parameter.
7367
7368 * dispextern.h: Change prototypes for do_pending_window_change
7369 and change_frame_size.
7370
7371 * xfaces.c (face_at_buffer_position): Don't xassert that
427ec082 7372 window's buffers equals current_buffer; this is not the
26901792
DL
7373 case during echo area display.
7374
73751999-08-21 Gerd Moellmann <gerd@gnu.org>
7376
7377 * xdisp.c, minibuf.c: Remove conditional compilation on
7378 NO_PROMPT_IN_BUFFER.
7379
7380 * minibuf.c (Fminibuffer_prompt_end): New.
7381 (syms_of_minibuf): Defsubr it. Remove
7382 minibuffer-prompt-in-buffer.
7383 (Fminibuffer_prompt_width): Return 0 if not in mini-buffer.
7384 Extend documentation.
7385
7386 * xdisp.c (get_next_display_element): Display \r as ^M.
7387
7388 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Clear
7389 under scroll bar widget.
7390
73911999-08-21 Gerd Moellmann <gerd@gnu.org>
7392
7393 * xdisp.c (minibuffer_scroll_overlap): Removed because not used
7394 anywhere.
7395 (unwind_redisplay): Return nil.
7396 (clear_garbaged_frames): New.
7397 (redisplay_internal): Use it.
7398 (echo_area_display): Ditto.
7399 (resize_mini_window): Mew.
7400 (display_echo_area_1): Use it to resize echo area window.
7401 (redisplay_internal): Use it to resize active mini-window.
7402
7403 * dispextern.h, lisp.h: Add function prototypes.
7404
427ec082 7405 * dispnew.c (set_window_cursor_after_update): Do the
26901792
DL
7406 cursor_in_echo_area case only for a mini-window showing
7407 a message. Don't let cursor end up after the end of a row.
7408
7409 * xdisp.c (echo_area_glyphs, echo_area_message,
7410 echo_area_glyphs_length, previous_echo_glyphs,
7411 previous_echo_area_message, previous_echo_area_glyphs_length):
7412 Removed.
7413 (Vmessage_stack, echo_area_buffer, echo_buffer,
7414 display_last_displayed_message_p, Vwith_echo_area_save_vector): New.
7415 (message2_nolog): Use set_message and clear_message.
7416 (message3): Rename parameter len to nbytes to make clear what
7417 it is.
7418 (message3_nolog): Ditto. Use set_message and clear_message.
7419 (update_echo_area): Rewritten.
7420 (with_echo_area_buffer): New.
7421 (with_echo_area_buffer_unwind_data, unwind_with_area_buffer): New.
7422 (setup_echo_area_for_printing): New.
7423 (display_echo_area, display_echo_area_1): New.
7424
7425 (current_message, current_message_1): New.
427ec082 7426 (push_message, restore_message, pop_message,
26901792
DL
7427 check_message_stack): New.
7428 (truncate_echo_area): Rewritten.
7429 (truncate_message_1): New.
7430 (set_message, set_message_1, clear_message): New.
7431 (echo_area_display): Rewritten.
7432 (redisplay_internal): Check for needed echo area update
7433 differently.
7434 (redisplay_preserve_echo_area): Rewritten.
427ec082 7435 (redisplay_window): Check for mini-window displaying echo area
26901792
DL
7436 message differently.
7437 (syms_of_xdisp): Initialize Vmessage_stack and echo area buffers.
7438 Remove initialzation of removed variables.
7439 (init_xdisp): Remove references to removed variables.
7440
7441 * dispnew.c (adjust_frame_message_buffer): Removed references
7442 to echo_area_glyphs and previous_echo_glyphs.
7443 (direct_output_for_insert): Check for mini-window displaying
7444 echo area message differently.
7445 (update_frame): Likewise.
7446 (set_window_cursor_after_update): Likewise. In echo area,
7447 don't try to set cursor on rows that aren't enabled.
7448
7449 * print.c: Remove conditional compilation on `standalone'.
7450 (glyph_len, str_to_glyph_cpy, str_to_glyph_ncpy,
427ec082 7451 glyph_to_str_cpy): Remove that section because GLYPHs are no
26901792
DL
7452 longer used in that way.
7453 (PRINTDECLARE): Add multibyte.
7454 (PRINTPREPARE, PRINTFINISH): Handle printcharfun t differently.
7455 (printbufidx): Removed.
7456 (printchar, strout): Rewritten.
7457
7458 * keyboard.c (ok_to_echo_at_next_pause): Make it a pointer to
7459 a struct kboard.
7460 (echo_kboard): New.
7461 (echo_now): Set echo_kboard to the current kboard.
7462 (cancel_echoing): Set echo_kboard to null.
7463 (cmd_error_internal): Use clear_message, remove references
7464 to echo_area_glyphs and echo_area_message.
7465 (command_loop_1): Check for echo area messages differently.
7466 (read_char): Likewise.
7467 (record_menu_key): Use clear_message.
7468 (Fexecute_extended_command): Check for echo area messages
7469 differently. Use push_message, restore_message, pop_message.
7470
7471 * alloc.c (Fgarbage_collect): Use push_message, restore_message,
7472 pop_message.
7473
7474 * emacs.c (shut_down_emacs): Call check_message_stack.
7475
7476 * lisp.h: Add function prototypes and extern declarations for
7477 new functions and variables.
7478
7479 * fileio.c (Fdo_auto_save): Use push_message, restore_message,
7480 pop_message.
7481
427ec082 7482 * minibuf.c (read_minibuf): Use clear_message instead of
26901792
DL
7483 setting echo_area_glyphs.
7484 (Fminibuffer_completion_help): Ditto.
7485
7486 * editfns.c (Fcurrent_message): Rewritten.
7487
7488 * frame.c, window.h: Remove references to echo_area_glyphs
7489 and previous_echo_glyphs.
7490
74911999-08-21 Dave Love <fx@gnu.org>
7492
7493 * aix3-2-5.h (C_DEBUG_SWITCH): Use -g -O.
7494 * aix4-1.h: Likewise.
7495
7496 * irix6-5.h (C_DEBUG_SWITCH): Set for debug and optimize.
7497
74981999-08-20 Gerd Moellmann <gerd@gnu.org>
7499
7500 * xfns.c: Remove tiff34 prefix from include.
7501
75021999-08-20 Dave Love <fx@gnu.org>
7503
7504 * cm.c: Revert previous change.
7505
75061999-08-19 Gerd Moellmann <gerd@gnu.org>
7507
7508 * xterm.c (XTset_vertical_scroll_bar): Fix previous change. Clear
7509 under scroll bar with width FRAME_SCROLL_BAR_COLS.
7510
75111999-08-18 Dave Love <fx@gnu.org>
7512
7513 * callproc.c, filelock.c, insdel.c, sysdep.c, xmenu.c: Use
7514 stdlib.h.
7515
7516 * doprnt.c: Use stdlib.h, unistd.h.
7517
7518 * config.in: Add HAVE_TERMCAP_H.
7519
7520 * cm.c: Use termcap.h.
7521
75221999-08-18 Gerd Moellmann <gerd@gnu.org>
7523
7524 * xfns.c (x_window) [USE_X_TOOLKIT]: Remove test for
7525 FRAME_X_WINDOW (f) being null at the of the function. If widgets
7526 cannot be created we will already have crashed earlier. Call
7527 lw_set_main_areas with a null menu-bar widget, so that we have
7528 a reasonable default.
7529 (Fx_create_frame): Rearranged so that Lisp errors during frame
7530 initialization cause less damage. Initialize menu bar widget
7531 here.
7532
75331999-08-18 Gerd Moellmann <gerd@gnu.org>
427ec082 7534
26901792
DL
7535 * dispnew.c (update_frame_line): Fix previous change. If writing
7536 whole line clear to end of frame.
7537
75381999-08-17 Gerd Moellmann <gerd@gnu.org>
7539
7540 * window.c (Fcoordinates_in_window_p): Return `left-bitmap-area'
7541 and `right-bitmap-area' if position is in the bitmap areas. This
7542 avoids an error when clicking on the bitmap areas. Instead, they
7543 are currently treated like clicks inside the window.
7544 (coordinates_in_window): Return 5 and 6 for bitmap areas.
7545 (Qleft_bitmap_area, Qright_bitmap_area): New.
7546 (syms_of_window): Initialize new symbols.
7547
7548 * dispnew.c (update_frame_line): If writing whole line,
7549 don't write trailing spaces unless we must.
7550
7551 * xdisp.c (unwind_redisplay): New. Resets flag redisplaying_p.
7552 (redisplay_internal): Register unwind_redisplay with
7553 register_unwind_protect.
7554 (try_window_reusing_current_matrix): If new start > old start,
7555 give up if start pos of first reusable row is not equal to new
7556 start.
7557
7558 * eval.c (Fsignal): Don't reset redisplaying_p here.
7559
7560 * xterm.c (expose_area): If row extends face to end of line,
7561 write the whole line.
7562
75631999-08-16 Gerd Moellmann <gerd@gnu.org>
7564
7565 * dispextern.h (struct it): Remove member
7566 show_trailing_whitespace_p.
7567
7568 * dispnew.c (direct_output_for_insert): Use
7569 Vshow_trailing_whitespace instead of former iterator member
7570 show_trailing_whitespace_p.
7571 (direct_output_forward_char): Don't do it if hightlighting
7572 trailing whitespace.
7573
7574 * xdisp.c (Qshow_trailing_whitespace): Removed.
7575 (Vshow_trailing_whitespace): Added.
7576 (init_iterator): Remove initialization code for
7577 show_trailing_whitespace_p.
7578 (redisplay_internal): Don't try cursor movement in this_line
7579 if showing trailing whitespace.
7580 (redisplay_window): Likewise for cursor movement in current
7581 matrix and try_window_id.
7582 (try_window_reusing_current_matrix): Likewise.
7583 (trailing_whitespace_p): Return 0 if trailing whitespace is
7584 in front of point.
7585 (display_line): Use Vshow_trailing_whitespace instead of
7586 former iterator member show_trailing_whitespace_p.
7587 (syms_of_xdisp): Add DEFVAR_LISP for show-trailing-whitespace.
7588
75891999-08-16 Gerd Moellmann <gerd@gnu.org>
7590
7591 * window.c (Fpos_visible_in_window_p): Rewritten.
7592
7593 * xfaces.c (add_to_log): Renamed from display_message.
7594 Don't display messages in echo area.
7595
7596 * xterm.c (x_draw_glyph_string_box): Use the background width
7597 of the glyph string for the width of the box.
7598
75991999-08-16 Stefan Monnier <monnier@cs.yale.edu>
7600
7601 * syntax.c (Fforward_comment): Set comstyle for Scomment_fence.
7602
76031999-08-16 Geoff Voelker <voelker@cs.washington.edu>
7604
7605 * xfns.c, w32fns.c (x_set_frame_parameters): Set foreground and
7606 background first, and then set other parameters that might
7607 depend upon their new values.
7608
76091999-08-15 Gerd Moellmann <gerd@gnu.org>
7610
7611 * xfaces.c (Vfont_list_limit): New.
7612 (syms_of_xfaces): Make it a user-variable.
7613 (DEFAULT_FONT_LIST_LIMIT): New.
7614 (sorted_font_list): If Vfont_list_limit is an integer > 0, list
7615 maximally that number of fonts, otherwise use
7616 DEFAULT_FONT_LIST_LIMIT.
427ec082 7617 (Fx_font_family_list): Bind `font-list-limit' to higher values
26901792
DL
7618 until we have all fonts.
7619 (Fxfont_list): Additionally return the full names of fonts and
7620 their registry and encoding.
7621
427ec082 7622 * xterm.c (XTset_vertical_scroll_bar) [USE_TOOLKIT_SCROLL_BARS]:
26901792
DL
7623 Simplify clearing "under" scroll bar.
7624
7625 * window.c (Qfixed_window_size): New.
7626 (syms_of_window): Initialiaze it.
7627 (check_all_windows): Add return type void.
7628 (window_fixed_size_p): New. Return non-zero if window
7629 is fixed-size.
7630 (window_min_size_1): New.
7631 (window_min_size): Handle fixed-size windows.
7632 (size_window): New. Rewritten combination of set_window_height and
7633 set_window_width that handles fixed-size windows.
7634 (set_window_height): Call it.
7635 (set_window_width): Call it.
7636 (Fsplit_window): Give an error on attempt to split a fixed-size
7637 window.
7638 (change_window_height): Partly rewritten to handle fixed-size
7639 windows.
7640
76411999-08-13 Wolfgang Rupprecht <wolfgang@wsrcc.com>
7642
7643 * process.c (Fopen_network_stream): Fix previous change.
7644
76451999-08-13 Karl Heuer <kwzh@gnu.org>
7646
7647 * xdisp.c (line_number_display_limit_width): New var.
7648 (decode_mode_spec): Use it instead of hardcoded value.
7649 (syms_of_xdisp): Defvar it.
7650
76511999-08-13 Richard M. Stallman <rms@gnu.org>
7652
7653 * eval.c (run_hook_list_with_args): Gcpro `globals'.
7654 (run_hook_with_args): Likewise.
7655
7656 * window.h (struct window): New field too_small_ok.
7657
427ec082 7658 * window.c (set_window_height, set_window_width):
26901792
DL
7659 If window starts out "too small", set its too_small_ok flag.
7660 If window's too_small_ok flag is set, don't delete it
7661 unless it is so small it would cause a crash.
7662
76631999-08-13 Gerd Moellmann <gerd@gnu.org>
7664
7665 * window.c (MINSIZE): Removed.
7666 (window_min_size): New.
7667 (set_window_height): Use window_min_size.
7668 (change_window_height): Ditto.
7669
76701999-08-12 Gerd Moellmann <gerd@gnu.org>
7671
7672 * indent.c (vmotion): Don't add in mini-buffer prompt width
7673 if prompts are inserted into mini-buffer.
7674
76751999-08-12 Wolfgang Rupprecht <wolfgang@wsrcc.com>
7676
7677 * config.in: Add HAVE_GETADDRINFO.
7678 * process.c (Fopen_network_stream): Use getaddrinfo.
7679
76801999-08-11 Gerd Moellmann <gerd@gnu.org>
7681
7682 * xdisp.c (get_overlay_arrow_glyph_row): Set the charpos of
7683 glyphs to -1.
7684
7685 * xdisp.c (face_before_or_after_it_pos): If position after
7686 or before iterator's current position in the buffer is out
7687 of bounds, return the iterator's original face id.
7688
7689 * dispnew.c (mirror_make_current): If desired row isn't enabled,
7690 just swap glyphs pointers between current and desired row.
7691 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Copy
7692 desired matrix method string to current matrix.
7693
76941999-08-11 Kenichi Handa <handa@etl.go.jp>
7695
7696 * lisp.h (CHAR_MODIFIER_MASK): New macro.
7697
7698 * lread.c (read_escape): For Control modifier, pay attention to
7699 multibyte character.
7700 (read1): Likewise. Singal error or a multibyte character which
7701 has a modifer bit. Check validity of Shift modifer.
7702
7703 * charset.c (non_ascii_char_to_string): Handle modifier bits as
7704 the same as Lisp reader.
7705
77061999-08-10 Richard M. Stallman <rms@gnu.org>
7707
7708 * charset.h (BCOPY_SHORT): Fix typo `unsigined'.
7709
77101999-08-10 Alexandre Oliva <oliva@dcc.unicamp.br>
7711
7712 * unexelf.c [__linux__ && __alpha__] (HAS_SBSS_SECTION): Define.
7713
77141999-08-10 Eli Zaretskii <eliz@gnu.org>
7715
7716 * msdos.c (IT_set_face): Abort if the default face is not realized
7717 and cached.
7718 (IT_write_glyphs): Reset the screen face to the default face
7719 before writing glyphs.
7720
7721 * xfaces.c (realize_default_face) [MSDOS]: Don't take default
7722 colors from the frame here.
7723 (realize_tty_face) [MSDOS]: Do it here. Update the face
7724 attributes with the actual name of the color taken from the
7725 frame.
7726
7727 * dosfns.c (msdos_stdcolor_name): Remove const from return value.
7728 * dosfns.h (msdos_stdcolor_name): Ditto for the prototype.
7729
7730 * frame.c (Fframe_parameters): Swap foreground and background
7731 colors returned in frame parameters if the frame has reverse in
7732 its parameter alist.
7733 (Fmake_terminal_frame): Make a unique copy of face_alist for
7734 each frame.
7735
77361999-08-07 Richard Stallman <rms@gnu.org>
7737
7738 * buffer.c (Fprevious_overlay_change): Just return
7739 the answer obtained from overlays_at.
7740
7741 * xfns.c (xpm_load) [!XpmAllocCloseColors]:
7742 Use XpmCloseness and attrs.closeness instead.
7743
77441999-08-06 Richard Stallman <rms@gnu.org>
7745
7746 * lread.c (Feval_buffer): New arg DO_ALLOW_PRINT.
7747
77481999-08-06 Geoff Voelker <voelker@cs.washington.edu>
7749
427ec082 7750 * dired.c (directory_files_internal, Fdirectory_files_and_attributes,
26901792
DL
7751 Ffile_attributes_lessp): New functions.
7752 (Fdirectory_files): Use directory_files_internal.
7753 (syms_of_dired): Initialize Fdirectory_files_and_attributes,
7754 Ffile_attributes_lessp.
7755
7756 * w32.c (stat): Check for directory ending in separator when
7757 doing readdir fast path.
7758
7759 * w32fns.c (x_set_icon_type): Support setting frame icons.
7760 * w32term.c (x_bitmap_icon): New function.
7761 (x_make_frame_visible, x_iconify_frame): Invoke x_bitmap_icon.
427ec082 7762
26901792
DL
77631999-08-06 Gerd Moellmann <gerd@gnu.org>
7764
7765 * xdisp.c (set_iterator_to_next): After delivering a character
7766 from a display vector, restore face and charset to what they were
7767 before the display vector was processed.
7768
77691999-08-06 Gerd Moellmann <gerd@gnu.org>
7770
7771 * xdisp.c (reseat_at_next_visible_line_start): New parameter
7772 on_newline_p.
7773 (set_iterator_to_next): After delivering last char
427ec082 7774 from display vector, reseat on next visible line start if
26901792
DL
7775 dpvec_char_len < 0.
7776 (next_element_from_buffer): Set dpvec_char_len to -1 for
7777 selective display.
7778
77791999-08-06 Gerd Moellmann <gerd@gnu.org>
7780
7781 * xdisp.c (compute_line_metrics): If first line's physical ascent
7782 is larger than its logical ascent, use the physical ascent, and
7783 make the row taller. Set row's overlapping_p flag.
7784
7785 * dispnew.c (redraw_overlapping_rows): Use flag overlapping_p.
7786 (direct_output_for_insert): Ditto.
7787
7788 * dispextern.h (struct glyph_row): Add overlapping_p.
7789
7790 * xterm.c (x_draw_phys_cursor_glyph): Redraw overlaps.
7791
7792 * dispextern.h (MATRIX_ROW_OVERLAPS_PRED_P): New.
7793 (MATRIX_ROW_OVERLAPS_SUCC_P): New.
7794
7795 * dispnew.c (direct_output_for_insert): Don't use this method if
7796 row is overlapped by others.
7797 (update_text_area): Write full line if current line is overlapped.
7798 (redraw_overlapped_rows): New.
7799 (update_window): Call it.
7800 (redraw_overlapping_rows): New.
7801 (update_window): Call it.
7802 (scrolling_window): Make sure overlapped_p flag in current rows is
7803 unchanged.
7804 (row_equal_p): Take rows overlapped_p flag into account.
7805
7806 * dispextern.h (struct glyph_row): Add flag overlapped_p.
7807
7808 * xterm.c (x_fix_overlapping_area): New.
7809 (x_redisplay_interface): Add x_fix_overlapping_area.
7810
7811 * dispnew.c (adjust_glyphs): Block input while adjusting matrices.
7812
78131999-08-06 Gerd Moellmann <gerd@gnu.org>
7814
7815 * xterm.c (x_draw_glyphs): Add parameter overlaps_p.
7816 (struct glyph_string): Add member for_overlaps_p.
7817 (x_get_glyph_string_clip_rect): If glyph string draws foreground
7818 of overlapping rows, clip to window bottom.
7819 (x_fill_glyph_string): Add parameter overlaps_p.
7820 (x_fill_composite_glyph_string): Ditto.
7821 (BUILD_GLYPH_STRINGS): Ditto.
7822 (BUILD_CHAR_GLYPH_STRINGS): Ditto.
7823 (x_draw_glyph_string): Don't draw anything but the foreground
7824 if glyph string draws row overlaps.
7825
7826 * dispnew.c (direct_output_for_insert): Don't use this
7827 optimization for rows that overlap others.
7828 (update_window_line): Return non-zero if display has changed.
7829 (update_text_area): Ditto.
7830 (update_window): Record if display has been changed.
7831
7832 * dispextern.h (MATRIX_ROW_OVERLAPPING_P): New.
7833
7834 * dispextern.h (struct redisplay_interface): Add
7835 fix_overlapping_area.
7836
7837 * xterm.c (x_append_glyph): Set glyph flag overlaps_vertically_p.
7838
7839 * dispextern.h (struct glyph): Add overlaps_vertically_p.
7840
7841 * xterm.c (x_produce_image_glyph): Compute iterator's physical
7842 ascent and descent.
7843 (x_produce_stretch_glyph): Ditto.
7844 (x_produce_glyphs): Ditto.
7845
7846 * xdisp.c (init_iterator): Reset physical line height info
7847 after producing special glyphs.
7848 (display_toolbar_line): Set physical line height info.
7849 (compute_line_metrics): Ditto.
7850 (display_line): Ditto.
7851 (display_string): Ditto.
7852
7853 * term.c (produce_glyphs): Set iterator's physical height
7854 information.
7855
7856 * dispnew.c (blank_row): Compute glyph row's physical height.
7857 (row_equal_p): Take physical row heights into account.
7858 (direct_output_for_insert): Ditto.
7859 (update_text_area): Ditto.
7860
7861 * dispextern.h (struct glyph_row): Add phys_ascent and
7862 phys_height.
7863 (struct it): Add phys_ascent, phys_descent, max_phys_ascent,
7864 max_phys_descent.
7865
78661999-08-04 Stefan Monnier <monnier@cs.yale.edu>
7867
7868 * buffer.c (switch_to_buffer_1): New subroutine, taken out from
7869 Fswitch_to_buffer.
7870 (no_switch_buffer): New function.
7871 (Fswitch_to_buffer): Call them. Don't get confused
7872 by "same-window" buffers in a dedicated frame.
7873
7874 * window.c (display-buffer): Don't get confused
7875 by "same-window" buffers in a dedicated frame.
7876
78771999-08-04 Andreas Schwab <schwab@gnu.org>
7878
7879 * insdel.c (insert_from_string_1): Check gap size against number
7880 of outgoing bytes, not incoming bytes.
7881
78821999-08-03 Tom Breton <tob@world.std.com>
7883
7884 * lread.c (read1): Added circular reading code to #N=.
7885 (SUBSTITUTE): New macro.
7886 (seen_list): New variable.
7887 (substitute_object_in_subtree): New function.
7888 (substitute_object_recurse): New function.
7889 (substitute_in_interval): New function.
7890
78911999-08-02 Eli Zaretskii <eliz@gnu.org>
7892
7893 * Makefile.in (frame.o, sysdep.o, xfaces.o): Depend on dosfns.h.
7894
7895 * frame.c (make_terminal_frame): Don't call init_frame_faces if
7896 noninteractive, for termcap frames as well.
7897
7898 * sysdep.c (init_sys_modes): Call init_frame_faces for termcap
7899 frames.
7900
79011999-08-01 Richard Stallman <rms@gnu.org>
7902
7903 * fns.c (internal_equal): Correct overlay comparison.
7904
83c8f461 79051999-07-31 Richard M. Stallman <rms@gnu.org>
26901792 7906
427ec082 7907 * xfns.c (x_set_internal_border_width):
26901792
DL
7908 Call do_pending_window_change. Don't block input, don't call XFlush.
7909 (x_set_vertical_scroll_bars): Call do_pending_window_change.
7910 (x_set_scroll_bar_width, x_set_font): Likewise.
7911
7912 * frame.c (Fset_frame_height): Call do_pending_window_change.
7913 (Fset_frame_width, Fset_frame_size): Likewise.
7914
7915 * xterm.c (x_set_window_size): When calling change_frame_size,
7916 specify 1 for DELAY.
7917
7918 * widget.c (EmacsFrameSetCharSize): Don't call
7919 do_pending_window_change here.
7920
79211999-07-30 Dave Love <fx@gnu.org>
7922
7923 * config.in: Add HAVE_STDLIB_H.
7924
79251999-07-30 Richard M. Stallman <rms@gnu.org>
7926
7927 * process.c (create_process): Detect failure of `pipe'.
7928
79291999-07-30 Keisuke Nishida <kei@psn.net>
7930
7931 * alloc.c (allocate_vectorlike): Add missing increment.
7932
7933 * data.c (Fdefalias): Call Ffset instead of duplicating code.
7934
7935 * keymap.c (get_keymap_1, get_keyelt): Check the type of OBJECT
7936 before calling indirect_function.
7937
79381999-07-30 Eli Zaretskii <eliz@gnu.org>
7939
7940 * dispextern.h (load_color, lookup_derived_face): Declare
7941 prototypes.
7942
7943 * dispnew.c (init_display) [MSDOS]: Don't initialize frame faces,
7944 it will be done later.
7945
7946 * frame.c (make_terminal_frame) [MSDOS]: Don't call
7947 init_frame_faces if non-interactive.
7948 (Fframe_parameters) [MSDOS]: Replace indexing into colornames[]
7949 array with a call to msdos_stdcolor_name. The font name is now
7950 "ms-dos", consistent with realize_tty_face.
7951
7952 * keyboard.c (cmd_error_internal): Don't kill Emacs if this is an
7953 MSDOS frame.
7954
7955 * window.c (Fset_window_configuration) [MSDOS]: Don't call
7956 x_set_toolbar_lines.
7957
7958 * xfaces.c (load_color): Remove static from definition and remove
7959 prototype.
7960 [MSDOS]: Add a DOS-specific version of load_color.
7961 (lookup_face): Replace FRAME_TERMCAP_P with !FRAME_WINDOW_P.
7962 (lookup_derived_face): New function.
7963 (realize_default_face): Support MSDOS frames.
7964 [MSDOS]: If fore/background colors are unspecified, inherit them
7965 from the frame.
7966 (realize_face): Support MSDOS frames.
7967 (realize_tty_face): Support MSDOS frames.
7968 [MSDOS]: If the face color is not in Vface_tty_color_alist, call
7969 load_color to try to find a suitable approximation. If the face
7970 is inverse-video, swap the foreground and background colors.
7971
7972 * dosfns.c (msdos_stdcolor_name, msdos_stdcolor_idx): New
7973 functions.
7974
7975 * dosfns.h (msdos_stdcolor_name, msdos_stdcolor_idx): Declare.
7976
7977 * msdos.h: Remove redundant declarations (most of them are now in
7978 dispextern.h).
7979
7980 * msdos.c (IT_set_face): Rewritten for the new redisplay engine.
7981 Use default frame colors if the face doesn't specify them; invert
7982 the colors if highlight is ON.
7983 (IT_write_glyphs): Rewritten for the new redisplay engine.
7984 (IT_change_line_highlight): Add (unused) parameter Y, since that's
7985 how the hook is called by term.c.
7986 (IT_copy_glyphs): New function, copies an area of the display in
7987 video RAM.
7988 (IT_insert_glyphs): Rewritten to DTRT instead of aborting, since
7989 redisplay now calls it even if char_ins_del_ok is zero.
7990 (IT_set_frame_parameters): Prototype changed. Calls the new
7991 load_color. Puts the new fore/background colors into the default
7992 face on current frame.
7993 (IT_menu_display): Rewritten to handle the new struct glyph
7994 instead of a char array.
7995 (XMenuActivate): Call lookup_derived_face to create and use
7996 special faces for the pop-up and drop-down menus.
7997
79981999-07-29 Gerd Moellmann <gerd@gnu.org>
7999
8000 * xterm.c (x_set_toolkit_scroll_bar_thumb): Don't call
8001 XawScrollbarSetThumb if thumb parameters haven't changed because
8002 that function apparently isn't optimized for this case.
8003
80041999-07-29 Eli Zaretskii <eliz@gnu.org>
8005
8006 * msdos.c (getdefdir): Don't return failure indication when
8007 _fixpath sets errno to ENOSYS.
8008
80091999-07-28 Gerd Moellmann <gerd@gnu.org>
8010
8011 * xdisp.c (string_char_and_length): New. Use it everywhere
8012 instead of STRING_CHAR_AND_LENGTH in xdisp.c.
8013
80141999-07-28 Kenichi Handa <handa@etl.go.jp>
8015
8016 * fns.c (count_combining): New function.
8017 (struct textprop_rec): New structure.
8018 (concat): Copy text properties correctly when byte combining
8019 occurs.
8020
80211999-07-28 Gerd Moellmann <gerd@gnu.org>
8022
8023 * xterm.c (x_setup_relief_color): Don't try smart color allocation
8024 if display is mono.
8025 (x_draw_row_bitmaps): If face has stipple, don't switch
8026 to foreground color for clearing areas, and set the fill style.
8027
8028 * xfaces.c (load_face_colors): Load background color if setting
8029 stipple, too.
427ec082 8030 (prepare_face_for_display): Use FillOpaqueStippled instead of
26901792
DL
8031 FillStippled.
8032
80331999-07-26 Ken'ichi Handa <handa@gnu.org>
8034
8035 * xterm.c (x_find_ccl_program): Add casting.
8036
8037 * w32fns.c (w32_find_ccl_program): Add casting.
8038
80391999-07-27 Gerd Moellmann <gerd@gnu.org>
8040
8041 * dispextern.h (struct glyph_row): Flag internal_border_p removed.
8042
8043 * xfns.c (x_create_tip_frame): Don't set bitmapIcon resource
8044 because this will try to access a nonexisting widget.
8045
80461999-07-26 Markus Rost <rost@gnu.org>
8047
427ec082 8048 * fns.c (Fgethash): Fix order of variables (patch by gerd).
26901792
DL
8049 (Fputhash): Ditto.
8050 (Fremhash): Ditto.
8051
80521999-07-26 Gerd Moellmann <gerd@gnu.org>
427ec082 8053
26901792
DL
8054 * widget.c (EmacsFrameSetCharSize): Don't add XtNborderWidth
8055 value to frame width and height.
8056
8057 * xterm.c (x_get_glyph_string_clip_rect): Take internal border
8058 into account for full-width windows. Don't add scroll bar width
8059 to width of clip rect.
8060 (x_draw_glyph_string_box): Add 1 to right x of full width lines.
8061 (x_set_glyph_string_background_width): Add 1 to background width.
8062 (x_draw_glyphs): Take internal border into account for full-width
8063 lines.
8064
80651999-07-26 Richard M. Stallman <rms@gnu.org>
8066
8067 * xfns.c (x_set_mouse_color): Always unload the old color.
8068 Don't allow nil as color value.
427ec082 8069 (x_set_cursor_color, x_set_background_color, x_set_foreground_color):
26901792
DL
8070 Always unload the old color.
8071
8072 * indent.c (Fmove_to_column): Extend end of line only if FORCE is t.
8073
80741999-07-26 Karl Heuer <kwzh@gnu.org>
8075
8076 * fns.c (Fy_or_n_p): Doc fix.
8077
80781999-07-26 Kenichi Handa <handa@etl.go.jp>
8079
8080 * ccl.h (setup_ccl_program): The type is changed to `int'.
8081
8082 * ccl.c (ccl_driver) <CCL_Call>: Now CCL program ID to call may be
8083 stored in the following CCL code. Adjusted for the change of
8084 Vccl_program_table.
8085 (resolve_symbol_ccl_program): Adjusted for the new style of
8086 embedded symbols (SYMBOL . PROP) in CCL compiled code. Return Qt
8087 is resolving failed.
8088 (ccl_get_compiled_code): New function.
8089 (setup_ccl_program): Function type changed from `void' to `int'.
8090 Resolve symbols in CCL_PROG.
8091 (Fccl_program_p): New function.
8092 (Fccl_execute): Get compiled CCL code by just calling
8093 setup_ccl_program.
8094 (Fccl_execute_on_string): Likewise.
8095 (Fregister_ccl_program): Adjusted for the change of
8096 Vccl_program_table.
8097
8098 * coding.c (setup_coding_system): Get compiled CCL code by just
8099 calling setup_ccl_program.
8100
8101 * xterm.c (x_find_ccl_program): Get compiled CCL code by just
8102 calling setup_ccl_program.
8103
8104 * w32fns.c (w32_find_ccl_program): Get compiled CCL code by just
8105 calling setup_ccl_program.
8106
81071999-07-23 Gerd Moellmann <gerd@gnu.org>
8108
8109 * xfaces.c (frame_update_line_height): Just use the height of the
8110 frame's fontset or font, instead of taking face fonts into
8111 account.
8112
8113 * xdisp.c (get_next_display_element): Display DEL as `^?'.
8114
81151999-07-23 Richard M. Stallman <rms@gnu.org>
8116
8117 * window.c (Fsplit_window): For default size, round up for left window.
8118
81191999-07-21 Joe Ramey <ramey@ti.com>
8120
8121 * filelock.c (lock_if_free): Return -1 if check_lock_owner
8122 has returned -1 (lockfile exists but is not a symlink?).
8123
81241999-07-20 Gerd Moellmann <gerd@gnu.org>
8125
8126 * xterm.c (x_draw_bar_cursor): Use scratch_cursor_gc to
8127 because of a change in cursor_gc made in 20.4.
8128
81291999-07-19 Gerd Moellmann <gerd@gnu.org>
8130
8131 * xterm.c (x_calc_absolute_position): Subtract menu bar height
8132 for YNegative, if using X toolkit.
8133
427ec082 8134 * xfns.c (x_real_positions): Don't subtract window borders
26901792
DL
8135 from positions returned.
8136
81371999-07-17 Gerd Moellmann <gerd@gnu.org>
8138
8139 * xrdb.c (x_load_resources): Set double-click time defaults
8140 for Motif list boxes from double-click-time.
8141
8142 * fns.c (Vhash_table_tests): Remvoed.
8143 (Qhash_table_test): New.
8144 (syms_of_fns): Initialize Qhash_table_test.
8145 (Fmake_hash_table): Look up user-defined tests in symbol prop
8146 `hash-table-test'.
8147 (Fdefine_hash_table_test): Store test and hash function as
8148 symbol prop `hash-table-test'.
8149 (make_hash_table): Add parameters user_test and user_hash.
8150
8151 * window.c (set_window_buffer): Set window margins for tty
8152 frames, too.
8153 (Fset_window_margins): Ditto.
8154
8155 * term.c (append_glyph): Use glyph area of iterator instead of
8156 always TEXT_AREA.
8157
8158 * dispnew.c (update_frame_1): Add left margin width to cursor
8159 hpos.
8160 (direct_output_for_insert): Ditto.
8161 (direct_output_forward_char): Ditto.
8162
8163 * dispnew.c (adjust_glyph_matrix): Set glyph matrix' top_line_p.
8164
8165 * dispextern.h (struct glyph_matrix): Add top_line_p.
8166
81671999-07-16 Gerd Moellmann <gerd@gnu.org>
8168
8169 * frame.h (FRAME_WINDOW_REDISPLAY_P): Removed. Use FRAME_WINDOW_P
8170 instead.
8171
8172 * fns.c (cmpfn_eq): Add hash code parameters.
8173 (cmpfn_eql): Ditto.
8174 (cmpfn_equal): Ditto, and compare hash codes before calling Fequal.
8175 (cmpfn_user_defined): Likewise.
8176
81771999-07-15 Gerd Moellmann <gerd@gnu.org>
8178
8179 * lisp.h (DEFAULT_REHASH_THRESHOLD): Changed to 0.8.
8180
8181 * fns.c (maybe_resize_hash_table): Correct computation of
8182 index vector size.
8183 (make_hash_table): Ditto.
8184 (Fmakehash): New.
8185
8186 * xdisp.c (echo_area_display): Don't call redraw_garbaged_frames.
8187
8188 * alloc.c (gc_sweep): Call sweep_weak_hash_tables.
8189 (survives_gc_p): Make it externally visible.
8190 (mark_object): Ditto.
8191
8192 * fns.c (remove_hash_entry): Removed.
8193 (sweep_weak_hash_tables): New.
8194
8195 * print.c (print): Print more information about hash tables.
8196
8197 * xfns.c (image_spec_hash): Removed.
8198 (lookup_image): Use sxhash instead of image_spec_hash.
8199 (image_spec_equal_p): Removed.
8200 (lookup_image): Use Fequal instead of image_spec_equal_p.
8201
82021999-07-14 Gerd Moellmann <gerd@gnu.org>
8203
8204 * lisp.h (P_): Moved to top of file.
8205
8206 * fns.c (make_hash_table): Set new members.
8207
8208 * alloc.c (mark_object): Mark hash table's user_hash_function.
8209 Mark index vector for weak hash tables.
8210
8211 * lisp.h (struct Lisp_Hash_Table): Add user_cmp_function,
8212 user_hash_function, cmpfn, and hashfn.
8213
8214 * fns.c (build_hash): Removed.
8215 (hash_test): Removed.
8216 (cmpfn_eq, cmpfn_eql, cmpfn_equal, cmpfn_user_defined): New.
8217 (hashfn_eq, hashfn_eql, hashfn_equal, hashfn_user_defined): New.
8218
82191999-07-13 Gerd Moellmann <gerd@gnu.org>
8220
8221 * alloc.c (survives_gc_p): New.
8222
8223 * print.c (print): Add hash table handling.
8224
8225 * alloc.c (mark_object): Add code to mark hash tables.
8226
8227 * lisp.h (GC_HASH_TABLE_P): New.
8228
8229 * emacs.c (main): Call init_fns.
8230
8231 * fns.c (init_fns): New.
8232
8233 * fns.c: Add hash table implementation.
8234
8235 * lisp.h (PVEC_HASH_TABLE): New.
8236 (struct Lisp_Hash_Table): New.
8237 (XHASH_TABLE): New.
8238 (XSET_HASH_TABLE): New.
8239 (HASH_TABLE_P): New.
8240 (CHECK_HASH_TABLE): New.
8241 (DEFAULT_HASH_SIZE): New.
8242 (DEFAULT_REHASH_THRESHOLD): New.
8243 (DEFAULT_REHASH_SIZE): New.
8244
8245 * xterm.c (x_draw_glyphs): Add parameters real_start and real_end.
8246 (x_write_glyphs): Compute overwritten cursor using real start
8247 and end positions of display.
8248 (x_insert_glyphs): Ditto.
8249
82501999-07-10 Gerd Moellmann <gerd@gnu.org>
8251
8252 * keyboard.c (read_char): Use message3_nolog to show help-echo.
8253
8254 * dispnew.c (blank_row): Add y-position as parameter. Compute
8255 visible height.
8256
8257 * xdisp.c (next_element_from_string): Give padding spaces
8258 a position of -1.
8259
427ec082 8260 * dispnew.c (adjust_glyph_matrix): Some work to support
26901792
DL
8261 marginals areas on tty frames in a future version.
8262 (allocate_matrices_for_frame_redisplay): Ditto.
8263
8264 * xdisp.c (display_line): At ZV, set glyph row's displays_text_p
8265 to zero if number of glyphs in the row is <= 1.
8266
82671999-07-09 Gerd Moellmann <gerd@gnu.org>
8268
8269 * dispnew.c (buffer_posn_from_coords): Take left marginal area
8270 into account.
8271
8272 * xdisp.c (handle_display_prop): Don't reset area if handing
8273 a property from a string that came from a `display' property.
8274 (handle_single_display_prop): Don't handle recursive `display'
8275 properties.
8276 (handle_single_display_prop): Handle some display property
8277 forms for terminal frames.
8278 (Qimage): Moved here from xfns.c.
8279
8280 * dispextern.h (struct it): New field string_from_display_prop_p.
8281
8282 * xterm.c (x_clip_to_row): Don't let clip_rect include top
8283 line.
8284
82851999-07-08 Gerd Moellmann <gerd@gnu.org>
8286
8287 * xdisp.c (handle_single_display_prop): Handle `:when FORM'.
8288
8289 * window.c (set_window_buffer): Set window's vscroll to zero.
8290
8291 * xdisp.c (QCwhen): New.
8292 (display_prop_end): New.
8293 (handle_single_display_prop): Use it.
8294 (debug_method_add): Print buffer name if tracing.
8295 (try_window_reusing_current_matrix): Compute visible height
8296 of reused rows. Fix cursor position calculation in case of
8297 top-line.
8298
8299 * dispextern.h (struct redisplay_interface): Add parameter
8300 cursor_on_p to update_window_end_hook.
8301
8302 * xterm.c (x_update_window_end): Add parameter cursor_on_p.
8303
83041999-07-07 Gerd Moellmann <gerd@gnu.org>
8305
427ec082 8306 * xdisp.c (redisplay_internal): Ensure that redisplayinp_p
26901792
DL
8307 doesn't become negative when decrementing it.
8308
8309 * eval.c (Fsignal): Reset redisplaying_p to zero.
8310
8311 * xdisp.c (try_window_reusing_current_matrix): Call hooks
8312 for window update.
8313 (try_window_id): Ditto.
8314
8315 * xterm.c (x_clear_end_of_line): Handle top-line correctly.
8316 (x_scroll_run): Ditto.
8317 (any_help_event_p): New.
8318 (x_initialize): Set it to zero.
8319 (XTread_socket): Clear help echo only if any_help_event_p.
8320
8321 * xdisp.c (init_iterator): Set top_line_p.
8322 (start_display): Use correct initial y if top-line is present.
8323 (make_cursor_line_fully_visible): Bug fixes for top-line.
8324 (try_scrolling): Ditto.
8325 (try_window_reusing_current_matrix): Ditto.
8326
8327 * dispextern.h (struct it): Add top_line_p.
8328
8329 * dispnew.c (shift_glyph_matrix): Move some computations out
8330 of the loop.
8331
427ec082 8332 * dispnew.c (margin_glyphs_to_reserve): Use NUMBERP and
26901792
DL
8333 XFLOATINT.
8334
83351999-07-06 Gerd Moellmann <gerd@gnu.org>
8336
8337 * dispnew.c (update_frame_1): When setting cursor in echo area,
8338 skip only over padding spaces at the end.
8339
8340 * xfaces.c (realize_tty_face): Set face's font_name field to
8341 "tty".
8342
8343 * term.c (update_end): Turn cursor on only if selected window's
8344 cursor_off_p flag is not set.
8345
83461999-07-05 Gerd Moellmann <gerd@gnu.org>
8347
8348 * term.c (TS_cursor_visible): Renamed from TS_visual_mode.
8349 (TS_cursor_normal): Renamed from TS_end_visual_mode.
8350 (TS_cursor_invisible): New.
8351 (term_init): Initialize TS_cursor_invisible.
8352 (tty_hide_cursor): New.
8353 (tty_show_cursor): New.
8354 (update_end): Show tty cursor.
8355 (update_begin): Hide tty cursor to prevent cursor flickering
8356 during redisplays triggered by timers (stealth fontification).
8357
8358 * keyboard.c (make_lispy_event) <TOOLBAR_EVENT>: Apply modifiers.
8359
8360 * xterm.c (XTread_socket) [USE_MOTIF] <KeyPress>: Catch events
8361 in scroll bars.
8362 (x_handle_toolbar_click): Set modifier bits.
8363
83641999-07-04 Gerd Moellmann <gerd@gnu.org>
8365
8366 * keyboard.c (kbd_store_ptr): Declare it as a volatile pointer
8367 instead of a pointer to a volatile input_event.
427ec082 8368 (kbd_buffer_store_event): Remove volatile modifier from
26901792
DL
8369 declaration of local variable `sp'.
8370 (Fdiscard_input): Don't cast when assigning kbd_store_ptr
8371 to kbd_fetch_ptr.
8372
83731999-07-03 Gerd Moellmann <gerd@gnu.org>
8374
8375 * xdisp.c (try_window_id): Set beg_unchanged and end_unchanged
8376 only if buffer is modified. Return quickly if changes are
8377 above window start.
8378
83791999-07-02 Gerd Moellmann <gerd@gnu.org>
8380
8381 * dispextern.h (HSCROLL_WINDOWS): Removed.
8382
8383 * xdisp.c (mark_window_display_accurate): Don't set
8384 w->region_showing.
8385 (redisplay_internal): Don't call redraw_garbaged_frames.
8386
83871999-07-01 Gerd Moellmann <gerd@gnu.org>
8388
8389 * xdisp.c (echo_area_display): Don't display truncation marks
8390 for messages because 20.4 doesn't do it either.
8391 (redisplay_window): Case same window start. Instead of giving
8392 up when cursor is partially visible, make it fully visible.
8393 (mark_window_display_accurate): Some cleanup. Record window's
8394 last cursor information.
8395 (debug_method_add): Improved.
8396 (redisplay_internal): Record last cursor info only if not
8397 consider_all_windows_p.
8398
8399 * dispnew.c (update_window): Update top line after scrolling.
8400 (blank_row): Renamed from make_empty_enabled_row.
8401 (increment_glyph_row_buffer_positions): Increment positions
8402 in buffers, only.
8403
8404 * window.c (Fcoordinates_in_window_p): Add top-line to doc
8405 string.
8406
84071999-06-30 Gerd Moellmann <gerd@gnu.org>
8408
8409 * dispnew.c (update_window): Check that updated row is visible.
8410
8411 * xterm.c (x_draw_row_bitmaps): Check for invisible rows at
8412 top of window differently.
8413
8414 * xdisp.c (try_window_reusing_current_matrix): Don't do it
8415 if region is showing.
8416
8417 * dispnew.c (adjust_glyph_matrix): Check w->vscroll when
8418 avoiding matrix reallocation. Set window_vscroll in matrix.
8419
8420 * dispextern.h (struct glyph_matrix): Add member window_vscroll.
8421
26901792
DL
8422 * xdisp.c (debug_method_add): New.
8423 (debug_redisplay_method): Removed.
8424 (try_window_reusing_current_matrix): Handle case where old
8425 window start is the same as new window start.
8426
8427 * dispextern.h (struct glyph_matrix) [GLYPH_DEBUG]: Make `method'
8428 an array instead of a pointer.
8429
26901792
DL
8430 * xfns.c (Fx_show_tip): Undo previous change.
8431
8432 * xterm.c (x_append_glyph): Clear glyph->u.val.
8433
8434 * dispextern.h (struct glyph): Increase size of face_id bit-field
8435 for CHAR_GLYPH to 12.
8436
84371999-06-29 Gerd Moellmann <gerd@gnu.org>
8438
8439 * xfaces.c (x_charset_registry): Make it externally visible.
8440
84411999-06-28 Gerd Moellmann <gerd@gnu.org>
8442
427ec082 8443 * dispnew.c (update_window): Use mode_line_p flag of rows
26901792
DL
8444 instead of WINDOW_WANTS_MODELINE_P.
8445
8446 * xterm.c (clear_mouse_face): Make externally visible.
8447
8448 * xfns.c (Fx_show_tip): Clear mouse face before showing tip.
8449
8450 * xterm.c (expose_line): Handle exposure of top-lines.
8451
8452 * xterm.c (XTframe_up_to_date): Don't call note_mouse_highlight
8453 if mouse_face_mouse_frame is null.
8454
8455 * xdisp.c (redisplay_window): If window is echo_area_window,
8456 and update_mode_line is set, update menubar and toolbar.
8457
8458 * dispnew.c (space_glyph): Set its charpos to -1.
8459 (update_frame_1): Ignore trailing padding spaces.
8460
8461 * xdisp.c (next_element_from_c_string): Set position of padding
8462 glyphs to -1.
8463
84641999-06-27 Gerd Moellmann <gerd@gnu.org>
8465
8466 * xfns.c (x_laplace_read_row): Use XQueryColors instead of
8467 XQueryColor.
8468
8469 * xdisp.c (display_menu_bar): Remove unwarranted assertion.
8470 (set_cursor_from_row): Skip over glyphs having a null object at
8471 the start of rows.
8472 (insert_left_trunc_glyphs): Use charpos < 0 to indicate truncation
8473 glyphs.
8474 (handle_invisible_prop): Compute next change only when needed.
8475 (handle_face_prop): Don't correct DEFAULT_FACE_ID if in the mode
8476 line.
8477
84781999-06-26 Gerd Moellmann <gerd@gnu.org>
8479
8480 * xrdb.c (x_load_resources): Don't set resource for double-click
8481 time.
8482
8483 * xdisp.c (try_window_id): Return quickly if all changes are
8484 below the window's current matrix end.
8485
8486 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): Remove window
8487 parameter.
8488
8489 * xdisp.c (try_window_reusing_current_matrix): Set no_scrolling_p
8490 in desired not in current matrix.
8491 (try_window_reusing_current_matrix): Rotate matrices starting
8492 at start_vpos instead of 0.
8493
8494 * xterm.c (expose_window): Use window_text_bottom_y.
8495 (fast_find_position): Ditto.
8496
8497 * xdisp.c (redisplay_window): Use window_text_bottom_y.
8498 (try_window_reusing_current_matrix): Ditto.
8499 (get_last_unchanged_at_beg_row): Ditto.
8500 (init_iterator): Ditto.
8501
8502 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate one
8503 more row.
8504 (check_matrix_invariants): Use window_text_bottom_y.
8505 (update_window): Ditto.
8506 (scrolling_window): Ditto.
8507
8508 * xdisp.c (window_text_bottom_y): New.
8509
85101999-06-25 Gerd Moellmann <gerd@gnu.org>
8511
8512 * xterm.c (XTread_socket): Set mouse_face_frame to zero after
8513 clearing mouse face.
8514 (XTread_socket) <EnterNotify> [LESSTIF_VERSION]: If
8515 event.xcrossing.focus is not set, and focus is in the menu bar,
8516 set focus frame as if event.xcrossing.focus were set.
8517
85181999-06-24 Gerd Moellmann <gerd@gnu.org>
8519
8520 * keyboard.c (make_lispy_event): Handle mouse on top lines.
8521 * keyboard.c (make_lispy_movement): Ditto.
8522
8523 * window.c (coordinates_in_window): Return 4 if on top line.
8524 (Fcoordinates_in_window_p): Return `top-line' if on top line.
8525
8526 * xdisp.c (window_box_height): Subtract top line height.
8527 (window_box): Add top line height to top y position if top line
8528 exists.
8529 (init_iterator): If base_face_id is TOP_LINE_FACE_ID, set row to
8530 the top line row of the window. Set initial y-position to
8531 window's top line height plus delta.
8532 (start_display): Choose start glyph row depending on whether
8533 window has a top line.
8534 (try_scrolling): Take top line height into account for aggressive
8535 scrolling.
8536 (compute_window_start_on_continuation_line): Take top line into
8537 account.
427ec082 8538 (redisplay_window): Ditto. If top line height has changed,
26901792
DL
8539 trigger a new redisplay.
8540 (try_window_reusing_current_matrix): Take top line into account.
8541 (find_last_row_displaying_text): Ditto.
8542 (get_last_unchanged_at_beg_row): DItto.
8543 (try_window_id): Ditto.
8544 (compute_line_metrics): Ditto.
8545
8546 * dispnew.c (shift_glyph_matrix): Compute visible row height
8547 taking top line of window into account.
8548 (update_window): Update top line. If scrolling_window detects
8549 that all rows are equal, only set cursor.
8550 (update_window_line): Call after_update_window_line_hook if
8551 mode_line_p flag of rows has changed.
8552 (scrolling_window): Add parameter top_line_p. Return -1 if
8553 all rows are equal.
8554 (mode_line_string): Add parameter mode_line_p. Handle strings
8555 in top lines.
8556
8557 * dispextern.h (MATRIX_TOP_LINE_ROW): New.
8558 (MATRIX_FIRST_TEXT_ROW): New.
8559 (MATRIX_ROW_PARTIALLY_VISIBLE_P): Use row's visible_height.
8560 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_TOP_P): New.
8561 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_BOTTOM_P): New.
8562 (MATRIX_TOP_LINE_HEIGHT): New.
8563 (CURRENT_MODE_LINE_HEIGHT): Use estimate_mode_line_height.
8564 (CURRENT_TOP_LINE_HEIGHT): New.
8565 (DESIRED_TOP_LINE_HEIGHT): New.
8566 (WINDOW_DISPLAY_TOP_LINE_HEIGHT): New.
8567 (WINDOW_DISPLAY_HEIGHT_NO_MODE_LINE): Replaces
8568 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
8569 (WINDOW_DISPLAY_TEXT_HEIGHT): New.
8570
8571 * xterm.c (x_after_update_window_line): Don't draw bitmaps for top
8572 lines.
8573 (x_draw_row_bitmaps): Take top line into account when clearing
8574 bitmap area.
8575 (x_estimate_mode_line_height): Replacement for
8576 x_frame_mode_line_height.
8577 (x_get_glyph_string_clip_rect): Take top line into account.
8578 (x_clear_end_of_line): Ditto.
8579 (note_mode_line_highlight): Add parameter mode_line_p. Handle
8580 top lines.
8581 (note_mouse_highlight): Call note_mode_line_highlight for top lines.
8582 (x_erase_phys_cursor): Take top line into account.
8583
8584 * xdisp.c (window_box_height): Subtract top line height if
8585 window wants a top line.
8586 (display_mode_lines): New.
8587 (redisplay_window): Call it.
8588 (display_mode_line): Add parameters face_id and format.
8589
8590 * dispextern.h (CURRENT_TOP_LINE_HEIGHT): New.
8591 (MATRIX_TOP_LINE_HEIGHT): New.
8592
8593 * xterm.c (x_frame_mode_line_height): Add parameter face_id.
8594
8595 * term.c (estimate_mode_line_height): Renamed from
8596 frame_mode_line_height. Add parameter face_id.
8597 (estimate_mode_line_height_hook): Renamed from
8598 frame_mode_line_height_hook.
8599 (produce_special_glyphs_hook): Removed.
8600 (produce_glyphs_hook): Removed.
8601
86021999-06-23 Gerd Moellmann <gerd@gnu.org>
8603
8604 * dispextern.h (WINDOW_WANTS_TOP_LINE_P): New.
8605 (struct glyph_row): Add mode_line_p.
8606
8607 * xfaces.c (realize_basic_faces): Realize face `top-line'.
8608 (Qtop_line): New.
8609 (syms_of_xfaces): Initialize Qtop_line.
8610
8611 * dispextern.h (TOP_LINE_FACE_ID): New.
8612
8613 * buffer.c (init_buffer_once): Set default for
8614 top_line_format to nil.
8615 (init_buffer_once): Init top_line_format.
8616 (default-top-line-format): New.
8617 (top-line-format): New buffer-local variable.
8618
8619 * buffer.h: Add top_line_format.
8620
8621 * xdisp.c (overlay_arrow_changed_p): Removed because not used.
8622
86231999-06-17 Dave Love <fx@gnu.org>
8624
8625 * xfns.c: Move the PNG section before the JPEG one to avoid
8626 problems surrounding setjmp.h/png.h on GNU/Linux.
427ec082 8627
26901792
DL
86281999-06-17 Gerd Moellmann <gerd@gnu.org>
8629
8630 * xfns.c (x_kill_gs_process): Don't free colors.
8631
86321999-06-17 Dave Love <fx@gnu.org>
8633
8634 * s/gnu-linux.h: Zap spurious ~.
8635
86361999-06-16 Gerd Moellmann <gerd@gnu.org>
8637
8638 * xfns.c (gif_load): Improve multi-image support.
8639
86401999-06-15 Gerd Moellmann <gerd@gnu.org>
8641
8642 * xfns.c (gif_load): Support multi-image files.
8643
8644 * Makefile.in (LIBGIF): Use libungif.
8645
8646 * configure.in (HAVE_GIF): Use libungif instead of libgif
8647 because the former doesn't contain patented compression code.
8648
8649 * xdisp.c (compute_window_start_on_continuation_line): Don't
8650 do it if line start is too far away from window start.
8651
86521999-06-14 Gerd Moellmann <gerd@gnu.org>
8653
8654 * buffer.c (init_buffer_once): Set buffer_local_flags for
8655 scroll_*_aggressively.
8656 (syms_of_buffer): Add DEFVAR_PER_BUFFER for scroll-*-aggressively.
8657 (init_buffer_once): Set defaults for these variables.
8658 (syms_of_buffer): Add default-scroll-*-aggressively.
8659
8660 * buffer.h (scroll_up_aggressively): New.
8661 (scroll_down_aggressively): New.
8662
8663 * Makefile.in (LIBPNG): Add -lz -lm in case we're linking with
8664 a static PNG library.
8665
8666 * configure.in (HAVE_PNG): Add -lz -lm when checking for PNG lib
8667 in case it's a static library.
8668
8669 * Makefile.in (ctagsfiles): Split so that files starting
8670 with an `x' are found before files starting with `w32'.
8671 (ctagsfiles1): New.
8672 (ctagsfiles2): New.
8673 (TAGS): Use ctagsfiles[12] instead of ctagsfiles.
8674
8675 * xdisp.c (compute_window_start_on_continuation_line): New.
8676 (redisplay_window): Use it.
8677 (INFINITY): New.
8678 (reseat_to_string): Use it.
8679 (hscroll_window_tree): Ditto.
8680 (compute_window_start_on_continuation_line): Ditto.
8681 (redisplay_window): Don't force display with a new window start.
8682
86831999-06-06 Gerd Moellmann <gerd@gnu.org>
8684
8685 * xfns.c (x_report_frame_params): Don't report `outer-window-id'
8686 if widget not present.
8687
8688 * xdisp.c (prepare_menu_bars): Ignore tooltip frame.
8689
86901999-06-04 Gerd Moellmann <gerd@gnu.org>
8691
8692 * xfaces.c (recompute_basic_faces)[GLYPH_DEBUG]: Check return
8693 value of realize_basic_faces.
8694 (load_face_font_or_fontset): Store full font name in face.
8695 (realize_default_face): Use full font name.
8696
26901792
DL
8697 * xterm.c (x_produce_glyphs): Set member char_to_display.
8698 (x_append_glyph): Store char_to_display in glyphs.
8699
8700 * dispextern.h (struct it): Add char_to_display.
8701
8702 * xfns.c (x_set_font): Don't call face-set-after-frame-default
8703 if faces haven't been initialized.
8704 (Fx_create_frame): Call face-set-after-frame-default after
8705 faces have been initialized, and widget has been created.
8706
8707 * puresize.h (BASE_PURESIZE): Increased.
8708
87091999-06-01 Gerd Moellmann <gerd@gnu.org>
8710
8711 * xfaces.c (set_lface_from_font_name): Add parameter force_p.
8712 (Finternal_set_lisp_face_attribute): If frame is t when
8713 :font attribute is set, use the selected frame.
8714 (clear_face_cache): Add parameter clear_fonts_p.
8715 (Fclear_face_cache): Add optional parameter thorougly.
8716
8717 * xfaces.c (face_numeric_value): Return -1 if symbol is not
8718 in table.
8719 (Fclear_face_cache): New.
8720 (choose_face_fontset_font): If fontset doesn't contain font
8721 pattern for the given charset, use CHARSET_ASCII.
8722 (Finternal_set_lisp_face_attribute): Fix handling of nil
8723 stipple attribute.
8724 (Finternal_set_lisp_face_attribute): Fix handling of changing
8725 font-related face attributes of the default face.
8726 (set_lface_from_font_name): Set only attributes that aren't
8727 specified.
8728
87291999-05-31 Gerd Moellmann <gerd@gnu.org>
8730
8731 * xfaces.c (SCALABLE_FONTS): Define this to enable scalable
8732 font support.
8733 (Vscalable_fonts_allowed) [SCALABLE_FONTS]: New.
8734 (x_face_list_fonts): Add parameter scalable_fonts_p. Handle
8735 scalable fonts depending on the setting of SCALABLE_FONTS.
8736 (first_font_matching): List more than one font to find the
8737 first non-scalable matching font.
8738 (sorted_font_list): Let x_face_list_fonts return scalable fonts
8739 depending on SCALABLE_FONTS.
8740 (better_font_p): New parameter compare_pt_p. If zero, don't
8741 compare point sizes of fonts.
8742 (exact_face_match_p) [SCALABLE_FONTS]: New.
8743 (build_scalable_font_name) [SCALABLE_FONTS]: New.
8744 (may_use_scalable_font_p) [SCALABLE_FONTS]: New.
8745 (best_matching_font) [SCALABLE_FONTS]: Handle scalable fonts.
8746 (syms_of_xfaces): Add scalable-fonts-allowed.
8747
87481999-05-26 Gerd Moellmann <gerd@gnu.org>
8749
8750 * xfns.c (png_load): Let PNG lib handle gamma. Construct
8751 mask only if image contains simple transparency information.
8752 Otherwise, combine image with frame background color.
8753
8754 * configure.in (--with-png, HAVE_PNG): New.
8755
8756 * config.in (HAVE_PNG): New.
8757
8758 * Makefile.in: Add PNG library.
8759
8760 * xfns.c: Add PNG support.
8761
87621999-05-25 Gerd Moellmann <gerd@gnu.org>
8763
8764 * xdisp.c (init_xdisp): Initialize echo_area_message and
8765 previous_echo_area_message to nil.
8766
8767 * keyboard.c (read_char): Rename local variable echo_area_message
8768 because it shadows the global one.
8769
87701999-05-05 Gerd Moellmann <gerd@gnu.org>
8771
8772 * xterm.c (note_mode_line_highlight): Restructured.
8773
8774 * window.c (coordinates_in_window): Handle windows that don't have
8775 a mode line because their buffer's mode-line-format is nil.
8776 Recognize the mode line under x positions that correspond to
8777 flags areas and left scroll bar.
8778
87791999-05-02 Dave Love <fx@gnu.org>
8780
8781 * xterm.c (note_mouse_highlight): Separate help-echo processing
8782 from check on mouse-face so that it works generally.
8783
87841999-04-21 Gerd Moellmann <gerd@gnu.org>
8785
8786 * sound.c (Fplay_sound): Run hook play-sound-hook.
8787 (Qplay_sound_hook): New.
8788
87891999-04-20 Gerd Moellmann <gerd@gnu.org>
8790
8791 * xdisp.c (update_echo_area): Handle echo_area_message.
8792
87931999-04-19 Gerd Moellmann <gerd@gnu.org>
8794
8795 * editfns.c (Fmessage): Use message3.
8796
8797 * print.c (printchar): Set echo_area_message to nil.
8798 (strout): Ditto.
8799
8800 * minibuf.c (read_minibuf): Reset echo message strings to nil.
8801 (Fminibuffer_completion_help): Ditto.
8802
8803 * keyboard.c (cmd_error_internal): Set echo_areA_message.
8804 (command_loop_1): Test echo_areA_message.
8805 (read_char): Ditto.
8806 (record_menu_key): Set echo_area_message to nil.
8807 (Fexecute_extended_command): Test echo_area_message.
8808 (Fexecute_extended_command): Handle echo_area_message.
8809
8810 * fileio.c (Fdo_auto_save): Handle the case that echo_area_message
8811 is set.
8812
8813 * editfns.c (Fcurrent_message): If echo_area_message is set,
8814 return a substring of that string.
8815
8816 * dispnew.c (direct_output_for_insert): Test echo_area_message
8817 in addition to echo_area_glyphs.
8818 (set_window_cursor_after_update): Ditto.
8819 (update_frame_1): Ditto.
8820
8821 * alloc.c (Fgarbage_collect): Use message3_nolog to display
8822 old Lisp message string.
8823
8824 * xdisp.c (echo_area_message): New.
8825 (previous_echo_area_message): New.
8826 (syms_of_xdisp): Initialize and staticpro new variables.
8827 (echo_area_display): Display echo_area_message if set.
8828 (message2_nolog): Set echo_area_message and
8829 previous_echo_area_message.
8830 (echo_area_display): Set previous_echo_area_message.
8831 (redisplay_internal): Display echo area if echo_area_message
8832 or previous_echo_area_message are set.
8833 (redisplay_preserve_echo_area): Test/set echo_area_message and
8834 previous_echo_area_message.
8835 (redisplay_window): Test echo_area_message.
8836 (message3_nolog): New.
8837 (message3): New.
8838
8839 * editfns.c (Fformat): Add text properties to the result string
8840 from properties of the format string and properties of string
8841 arguments.
8842
8843 * textprop.c (text_property_list): New.
8844 (add_text_properties_from_list): New.
8845 (extend_property_ranges): New.
8846
88471999-03-29 Gerd Moellmann <gerd@gnu.org>
8848
8849 * xfaces.c (Qraised, Qsunken, QCshadow): Removed.
8850 (QCline_width, QCstyle, Qpressed_button, Qreleased_button): New.
8851 Use these symbols for the box face attribute instead of the
8852 removed ones.
8853
88541999-03-12 Gerd Moellmann <gerd@gnu.org>
8855
8856 * xfaces.c (realize_tty_face): Don't set alt_char_p of face.
8857 Correct wrong test for slant.
8858
88591999-03-10 Gerd Moellmann <gerd@gnu.org>
8860
8861 * xfaces.c: Use `unspecified' for unspecified face attributes,
8862 use t and nil for on/off.
8863
88641999-03-06 Gerd Moellmann <gerd@gnu.org>
8865
8866 * buffer.c (syms_of_buffer): Extend doc string of
8867 mode-line-format.
8868
8869 * xfaces.c (x_face_list_fonts): New parameter try_alternatives_p.
8870 (first_font_matching): New.
8871 (set_lface_from_font_name): Use it if font name is a pattern.
8872 (font_field_wildcard_p): Removed.
8873
8874 * dispnew.c (shift_glyph_matrix): Add `window' parameter.
8875 Recompute visible height of rows.
8876
8877 * xterm.c (note_mouse_highlight): Reorder code for help-echo.
8878 Don't accept non-strings for help-echo from overlays.
8879
88801999-03-04 Dave Love <fx@gnu.org>
8881
8882 * xterm.c (note_mouse_highlight): Check overlays for help-text
8883 property.
8884 (XTread_socket): Fix compiler warning.
427ec082 8885
26901792
DL
88861999-03-05 Gerd Moellmann <gerd@gnu.org>
8887
427ec082 8888 * xterm.c (note_mouse_highlight): Don't restrict number of
26901792
DL
8889 overlay to 10. Call overlays_at so that it doesn't try to
8890 extend the vector.
8891
8892 * xdisp.c (compute_line_metrics): Compute glyph row's visible
8893 height.
8894
8895 * dispnew.c (row_equal_p): Compare visible row height, only.
8896 (update_text_area): Draw whole line if visible heights of
8897 rows differ.
8898 (update_window_line): Call after_update_window_line_hook
8899 if visible row height has changed.
8900
8901 * dispextern.h (MATRIX_ROW_VISIBLE_HEIGHT): Removed.
8902 (struct glyph_row): New member visible_height.
8903
8904 * xfaces.c (font_field_wildcard_p): New.
8905 (set_lface_from_font_name): Remove parameter force_p. Accept
8906 font names containing wildcards.
8907
89081999-03-04 Gerd Moellmann <gerd@gnu.org>
8909
8910 * xterm.c (x_after_update_window_line): Clear internal border
8911 when windows_or_buffers_changed.
8912
8913 * dispextern.h (WINDOW_WANTS_MODELINE_P): Return zero if window's
8914 buffer has a nil mode_line_format.
8915
89161999-03-03 Gerd Moellmann <gerd@gnu.org>
8917
8918 * xterm.c (x_setup_relief_colors): Use either background color
8919 or specified color.
8920
8921 * xfaces.c (realize_x_face): Set face->use_box_color_for_shadows_p.
8922
8923 * dispextern.h (struct face): Add use_box_color_for_shadows_p.
8924
8925 * xterm.c (x_draw_box_rect): New.
8926 (x_draw_glyph_string_box): Renamed from
8927 x_draw_glyph_string_relief. Call x_draw_box_rect.
8928
8929 * xfns.c (QCrelief): New.
8930 (syms_of_xfns): Initialize it.
8931
8932 * dispextern.h (struct glyph): Rename left_shadow_p to
8933 left_box_line_p, right_shadow_p to right_box_line_p.
8934 (MAX_RELIEF_THICKNESS): Removed.
8935 (struct it): Rename members having `relief' in their names
8936 to contain `box' instead.
8937
8938 * xfaces.c (realize_x_face): Handle new box attribute values.
8939 (QCrelief, Qbox): Removed.
8940 (QCshadow, QCcolor, Qraised, Qsunken): New.
8941 (syms_of_xfaces): Initialize new symbols.
8942
89431999-03-02 Gerd Moellmann <gerd@gnu.org>
8944
8945 * dispextern.h (LFACE_RELIEF_INDEX): Removed.
8946
8947 * xfaces.c (LFACE_RELIEF): Removed.
8948 (merge_face_vector_with_property): Remove handling of `:relief'.
8949 (Finternal_set_lisp_face_attribute): Ditto.
8950 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
8951 (Finternal_get_lisp_face_attribute): Ditto.
8952 (realize_default_face): Ditto.
8953 (lface_hash): Don't compute hash from relief.
8954
8955 * dispextern.h (struct face): Replace member `relief' by
8956 `box_line_width'. Add member `box'.
8957 (face_box_type): New.
8958
8959 * xterm.c (x_produce_glyphs): If face has overline, add overline
8960 thickness + 1 to ascent.
8961
89621999-03-01 Gerd Moellmann <gerd@gnu.org>
8963
8964 * xterm.c (x_draw_glyph_string): Draw underline, overline,
8965 strike-through, and boxes.
8966 (x_draw_glyph_string_underline): Removed.
8967
8968 * xfaces.c (QCoverline, QCstrike_through, QCbox): New.
8969 (Qoverline, Qstrike_through, Qbox): New.
8970 (syms_of_xfaces): Define these symbols.
8971 (check_lface_attrs): Add checks for overline, strike-through,
8972 and box.
8973 (Finternal_set_lisp_face_attribute): Set new attributes.
8974 (LFACE_OVERLINE, LFACE_STRIKE_THROUGH, LFACE_BOX): New.
8975 (load_color): Handle new attributes.
8976 (realize_x_face): Ditto.
8977 (merge_face_vector_with_property): Ditto.
8978 (free_face_colors): Ditto.
8979 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
8980 (Finternal_get_lisp_face_attribute): Ditto.
8981 (Finternal_lisp_face_attribute_values): Ditto.
8982
8983 * dispextern.h (lface_attribute_index): Add enumerators for
8984 overstrike, strike-through, and box.
8985 (struct face): Add members for overline, strike-through, and
8986 box.
8987
89881999-02-17 Dave Love <fx@gnu.org>
8989
8990 * s/gnu-linux.h s/gnu.h s/irix5-0.h s/netbsd.h s/sco4.h s/sco5.h
8991 s/template.h (NARROWPROTO): Define on the basis of relevant X cf
8992 files.
8993
89941999-02-16 Gerd Moellmann <gerd@gnu.org>
8995
8996 * keyboard.c (toolbar_items): Call access_keymap with third
8997 parameter 1, so that we don't get inherited toolbar item
8998 definitions.
8999
9000 * xdisp.c (redisplay_internal): In optimization 1, don't decrement
9001 the window end vpos when in empty first line of window.
9002
90031999-02-15 Gerd Moellmann <gerd@gnu.org>
9004
9005 * xfaces.c (set_font_frame_param): New.
9006 (Finternal_set_lisp_face_attribute): Call it.
9007
9008Sun Feb 14 10:54:02 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9009
9010 * xfaces.c (Finternal_set_lisp_face_attribute_from_resource):
9011 Accept specifications of color for underline.
9012
90131999-02-13 Gerd Moellmann <gerd@gnu.org>
9014
9015 * xfaces.c (Finternal_set_lisp_face_attribute): If parameter
9016 `frame' is t, operate on face defaults for new frames. If it
9017 is nil, operate on the selected frame.
9018
90191999-02-12 Gerd Moellmann <gerd@gnu.org>
9020
9021 * dispnew.c (check_matrix_invariants): Put it in #if 0.
9022 (update_window): Put the call to check_matrix_invariants in #if 0.
9023
9024Sun Feb 7 09:58:49 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9025
9026 * dispextern.h: Remove all else block of UNDERLINE_COLOR.
9027 Remove definition of UNDERLINE_COLOR.
9028
9029Mon Jan 4 04:43:41 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9030
9031 * xfaces.c (free_face_colors): Free the color for underline.
9032
9033 * xterm.c (x_draw_glyph_string_underline): Set the color for underline
9034 to the GC.
9035
9036Sun Jan 3 08:41:10 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9037
9038 * dispextern.h (UNDERLINE_COLOR): Defined.
9039 (struct face): Added two new members.
9040 underline_color, underline_defaulted_p.
9041
427ec082 9042 * xfaces.c (merge_face_vector_with_property):
26901792 9043 (check_lface_attrs): Accept the string value for underline.
427ec082 9044 (Finternal_set_lisp_face_attribute): Likewise.
26901792
DL
9045
9046 * xfaces.c (load_color): Change the last argument type to enum
9047 lface_attribute_index from int. And addec code for underling coloring.
9048 (load_face_colors): Pass LFACE_*_INDEX to load_color.
427ec082 9049
26901792
DL
90501999-02-12 Gerd Moellmann <gerd@gnu.org>
9051
9052 * xfns.c (Fx_image_header): Removed.
9053
90541999-02-07 Gerd Moellmann <gerd@gnu.org>
9055
9056 * xterm.c: Don't include <bitmaps/gray>.
9057 (x_term_init): Use gray_bitmap_width and gray_bitmap_height.
9058
9059 * xfns.c (Fx_image_header): Add missing `\n\'.
9060 (gray_bitmap_width, gray_bitmap_height, gray_bitmap_bits): New.
9061
90621999-02-01 Gerd Moellmann <gerd@gnu.org>
9063
9064 * xterm.c (x_scroll_bar_create): Set background pixel from
9065 specified scroll bar color.
9066 (x_scroll_bar_set_handle): Use scroll bar foreground color.
9067
9068 * xfns.c (x_set_scroll_bar_foreground): Remove all scroll bars.
9069 (x_set_scroll_bar_background): Ditto.
9070
9071 * xterm.c (x_create_toolkit_scroll_bar): Set scroll bar colors.
9072
9073 * xfns.c (x_default_scroll_bar_color_parameter): New.
9074 (Fx_create_frame): Call it.
9075
90761999-01-31 Gerd Moellmann <gerd@gnu.org>
9077
9078 * xfns.c (Fx_create_frame): Initialize scroll bar pixel color
427ec082 9079 values in x_output structure.
26901792
DL
9080 (Qscroll_bar_foreground, Qscroll_bar_background): New.
9081 (syms_of_xfns): Initialize these symbols.
9082
9083 * xterm.h (struct x_output): Add scroll bar pixel colors.
9084
9085 * xfns.c (x_frame_parms): Add entries for scroll bar colors.
9086 (x_set_scroll_bar_foreground): New.
9087 (x_set_scroll_bar_background): New.
9088
26901792
DL
90891999-01-12 Gerd Moellmann <gerd@gnu.org>
9090
9091 * xdisp.c (handle_single_display_prop): New.
9092 (handle_display_prop): Call it.
9093 (handle_raise_prop): Removed.
9094 (handle_height_prop): Removed.
9095 (handle_space_width_prop): Removed.
9096 (handle_face_prop): Remove handling of raised text.
9097 (handle_display_prop): Do it here.
9098
9099 * dispextern.h (DISPLAY_PROP_IDX): Replaces GLYPH_PROP_IDX.
9100 (RAISE_PROP_IDX): Removed.
9101 (HEIGHT_PROP_IDX): Removed.
9102 (SPACE_WIDTH_PROP_IDX): Removed.
9103
9104 * xdisp.c (Qdisplay): Replaces Qglyph.
9105 (handle_display_prop): Formerly handle_glyph_prop.
9106
91071999-01-11 Gerd Moellmann <gerd@gnu.org>
9108
9109 * xdisp.c (reseat_to_string): Set position in display vector to -1.
9110 (handle_stop): Set position in display vector to -1. Don't
9111 check overlay strings when set up to deliver characters from a
9112 display vector.
9113 (set_iterator_to_next): At the end of a run of characters from a
9114 display vector, check whether the display vector display replaces
9115 the display of a character.
9116
91171999-01-05 Gerd Moellmann <gerd@gnu.org>
9118
9119 * xfaces.c (init_frame_faces): Don't realize faces if frame's
9120 X window hasn't been created yet.
9121
91221998-12-06 Gerd Moellmann <gerd@gnu.org>
9123
9124 * sound.c: New.
9125
91261998-12-04 Gerd Moellmann <gerd@gnu.org>
9127
9128 * config.in (HAVE_SOUND): New.
9129
9130 * emacs.c (main): Call syms_of_sound and init_sound.
9131
9132 * Makefile.in (obj): Add sound.o.
9133
9134 * configure.in: Add checks for machine/soundcard.h and sys/soundcard.h.
9135
9136 * config.in (HAVE_MACHINE_SOUNDCARD_H): New.
9137 (HAVE_SYS_SOUNDCARD_H): New.
9138
91391998-12-03 Gerd Moellmann <gerd@gnu.org>
9140
9141 * buffer.h (struct buffer): indicate_empty_lines renamed from
9142 indicate_zv_lines.
9143
9144 * buffer.c (indicate-empty-lines): Renamed from indicate_zv_lines.
9145 (default-indicate-zv-lines): Likewise.
9146
9147 * dispextern.h (struct glyph_row): Rename indicate_zv_line_p
9148 to indicate_empty_line_p.
9149
9150 * xdisp.c (reseat_at_next_visible_line_start): Reset method
9151 to next_element_from_buffer.
9152
9153 * frame.c (make_frame): Set n_current_toolbar_items to 0.
9154
9155 * xdisp.c (handle_face_prop): Allow symbols of the form `N+'
9156 and `N-'.
9157
9158 * xfns.c (xbm_scan): New.
9159 (xbm_read_hexint): Removed.
9160 (xbm_read_bitmap_file_data): Use xbm_scan.
9161
9162 * fileio.c (Finsert_file_contents): Prevent redisplay optimizations.
9163
91641998-12-02 Gerd Moellmann <gerd@gnu.org>
9165
9166 * xfns.c (xbm_read_hexint): New.
9167 (xbm_read_bitmap_file_data): New.
9168 (xbm_load_image_from_file): Call xbm_read_bitmap_file_data
9169 instead of XReadBitmapFileData.
9170
9171 * xdisp.c (handle_raise_prop): Compute voffset from current font.
9172
9173 * xfaces.c (face_with_height): New.
9174
9175 * xdisp.c (eval_handler): Renamed from eval_mode_handler.
9176 (eval_form): Renamed from eval_mode_element.
9177 (handle_face_prop): Use it.
9178 (Qheight): Replaces Qsmaller.
9179 (handle_height_prop): Replaces handle_smaller_prop.
427ec082 9180 (handle_face_prop): If iterator's font_height is not an
26901792
DL
9181 integer, evaluate it to get the font height to use.
9182
9183 * dispextern.h (HEIGHT_PROP_IDX): Replaces SMALLER_PROP_IDX.
9184 (struct it): Use `font_height' instead of `smaller'.
9185
91861998-12-01 Gerd Moellmann <gerd@gnu.org>
9187
9188 * xdisp.c (reseat_1): New.
9189 (reseat): Call it.
9190 (move_it_vertically_backward): Ditto.
9191 (redisplay_window): Don't abort when cursor not found in recenter.
9192
91931998-11-30 Gerd Moellmann <gerd@gnu.org>
9194
9195 * xdisp.c (reseat_at_next_visible_line_start): When not
9196 currently delivering display elements from the current buffer,
9197 restore buffer position first.
9198 (init_from_display_pos): Don't set IT's position from the
9199 position passed to this function.
9200
92011998-11-28 Gerd Moellmann <gerd@gnu.org>
9202
9203 * config.in (PROTO): Removed.
9204
9205 * xterm.h: Change PROTO to P_.
9206
92071998-11-26 Gerd Moellmann <gerd@gnu.org>
9208
9209 * xterm.c (take_vertical_position_into_account): New.
9210 (x_produce_image_glyph): Call it.
9211 (x_produce_stretch_glyph): Ditto.
9212 (x_produce_glyphs): Ditto.
9213 (x_fill_glyph_string): Adjust base line for glyph's voffset.
9214 (x_fill_composite_glyph_string): Ditto.
9215 (x_fill_image_glyph_string): Ditto.
9216 (x_fill_stretch_glyph_string): Ditto.
9217
9218 * xdisp.c (display_line): Always compute row height from
9219 max_ascent and max_descent.
9220
9221 * dispextern.h (struct glyph): Add voffset.
9222 (struct it): Replace height by descent, max_height by max_descent.
9223
9224 * xterm.c (x_append_glyph): Set voffset
9225 (x_append_stretch_glyph): Ditto.
9226 (x_produce_image_glyph): Ditto.
9227 (x_produce_glyphs): Take voffset into account.
9228 (x_produce_image_glyph): Ditto.
9229 (x_produce_stretch_glyph): Ditto.
9230
9231 * dispextern.h (struct it): Add voffset.
9232 * xdisp.c (push_it): Save voffset.
9233 (pop_it): Restore it.
9234
9235 * xdisp.c (it_props): Add entry for `raise'.
9236 (handle_raise_prop): New.
9237
9238 * dispextern.h (RAISE_PROP_IDX): New.
9239
9240 * xdisp.c (Qraise): New.
9241 (syms_of_xdisp): Define Qraised.
9242
9243 * xterm.c (x_scroll_bar_move): Clear to the left and right
9244 of toolkit scroll bars differently.
9245 (x_scroll_bar_move): Removed.
9246 (XTset_vertical_scroll_bar): Move code from x_scroll_bar_move here.
9247
9248 * dispextern.h: Make it compilable --with-x=no.
9249 * alloc.c: Ditto.
9250 * emacs.c: Ditto.
9251 * dispnew.c: Ditto.
9252 * keyboard.c: Ditto.
9253 * term.c: Ditto.
9254 * xdisp.c: Ditto.
9255 * xfaces.c: Ditto.
9256 * xfns.c: Ditto.
9257 * xmenu.c: Ditto.
9258
92591998-11-25 Gerd Moellmann <gerd@gnu.org>
9260
9261 * xterm.c (XTread_socket): Cancel help-echo when leaving frame.
9262
92631998-11-24 Gerd Moellmann <gerd@gnu.org>
9264
9265 * xterm.c (x_set_toolkit_scroll_bar_thumb): When dragging,
9266 update slider size, only.
9267 (xm_scroll_callback): Set dragging member of the scroll bar.
9268 (xt_action_hook): Reset last_scroll_bar_part.
9269 (XTredeem_scroll_bar): Reset bar->dragging to nil.
9270
26901792
DL
9271 * xfns.c (Fx_hide_busy_cursor): Don't try to hide busy cursor
9272 window on newly created frames that don't have one.
9273
92741998-11-23 Gerd Moellmann <gerd@gnu.org>
9275
9276 * xdisp.c (restore_overlay_strings): Removed.
9277 (restore_dpvec): Removed.
9278 (init_from_display_pos): Inline both functions above.
9279
9280 * xfns.c (IMAGE_NON_NEGATIVE_INTEGER_VALUE): New.
9281 (parse_image_spec): Handle it.
9282 (xbm_format): Use it.
9283 (xpm_format): Ditto.
9284 (pbm_format): Ditto.
9285 (jpeg_format): Ditto.
9286 (tiff_format): Ditto.
9287 (gif_format): Ditto.
9288 (gs_format): Ditto.
9289
9290 * xdisp.c (set_window_cursor): Removed.
9291 (redisplay_internal): Case cursor motion in cursor line of
9292 selected window; use set_cursor_from_row.
9293
92941998-11-22 Gerd Moellmann <gerd@gnu.org>
9295
9296 * widget.c (EmacsFrameSetCharSize): Take widget's border width
9297 into account.
9298
92991998-11-21 Gerd Moellmann <gerd@gnu.org>
9300
9301 * xterm.c (expose_frame): Redraw menu bar window.
9302
9303 * xdisp.c (display_menu_bar): Record hpos instead of x-position
9304 in menu item.
9305
9306 * dispnew.c (change_frame_size_1): Use FRAME_TOP_MARGIN instead
9307 of FRAME_TOOLBAR_LINES. Use `f' instead of `frame'.
9308
9309 * widget.c (set_frame_size): Use FRAME_SCROLL_BAR_COLS
9310 to determine vertical_scroll_bar_extra.
9311 (EmacsFrameSetCharSize): Ditto.
9312 * xfns.c (x_figure_window_size): Ditto.
9313
9314 * xterm.c (x_draw_row_bitmaps): Draw in `bitmap-area' face.
9315 (x_draw_bitmap): Ditto.
9316
9317 * dispextern.h (face_id): New id BITMAP_AREA_FACE_ID.
9318 * xfaces.c (realize_basic_faces): Realize it.
9319
93201998-11-20 Gerd Moellmann <gerd@gnu.org>
9321
9322 * xmenu.c (xmenu_show): Add workaround for remaining button grab
427ec082 9323 under LessTif Use the widget of the frame as parent for the
26901792
DL
9324 menu, again.
9325
93261998-11-19 Gerd Moellmann <gerd@gnu.org>
9327
9328 * xterm.c (XTread_socket): Inhibit busy cursor for EnterNotify.
9329 When EnterNotify, don't generate a mouse movement event if
9330 notification is from a busy-cursor child window.
9331
9332 * xterm.h (struct x_output): Add busy_window, remove cursor.
9333
9334 * xfns.c (Fx_show_busy_cursor): Formerly Fx_display_busy_cursor.
9335 Use a transparent window to display the busy-cursor.
9336 (Fx_hide_busy_cursor): Formerly Fx_undisplay_busy_cursor.
9337
93381998-11-17 Gerd Moellmann <gerd@gnu.org>
9339
9340 * xdisp.c (check_window_end): New, for debugging.
9341 (CHECK_WINDOW_END): New.
9342 (try_window_id): Use it.
9343
9344 * xterm.c (process_expose_from_menu): Return int.
9345
9346 * keyboard.c (kbd_buffer_get_event): Set flag to prevent recording
9347 TOOLBAR_EVENT events in last_nonmenu_event.
9348
93491998-11-16 Gerd Moellmann <gerd@gnu.org>
9350
9351 * xdisp.c (redisplay_window): If windows_or_buffers_changed,
9352 window end isn't reliable, so set window_end_valid to nil.
9353 (redisplay_internal): If overlay arrow has changed, set
9354 windows_or_buffers_changed to redisplay thoroughly.
9355
9356 * dispnew.c (adjust_glyph_matrix): Invalidate window end, if
9357 necessary.
9358
9359 * xfns.c (file_dialog_cb): New.
9360 (Fx_file_dialog): New.
9361 * fileio.c (Fread_file_name): Call it.
9362
427ec082 9363 * xrdb.c (x_load_resources): Add default resoures for file
26901792
DL
9364 selection dialog.
9365
93661998-11-14 Gerd Moellmann <gerd@gnu.org>
9367
9368 * xterm.c (note_mouse_highlight): Don't highlight when popup
9369 is active.
9370
26901792
DL
9371 * keyboard.c (timer_check): Inhibit busy cursor around calls to
9372 timer-event-handler. This busy cursor tends to be anoying if
9373 fontifying stealthily.
9374
9375 * dispnew.c (direct_output_for_insert): Give up if current row
9376 contains trailing whitespace.
9377
93781998-11-13 Gerd Moellmann <gerd@gnu.org>
9379
9380 * dispextern.h (prop_idx): Add FONTIFIED_PROP_IDX.
9381
9382 * xdisp.c (handle_fontified_prop): New.
9383 (Vfontification_functions): New.
9384 (Qfontification_functions): New.
9385 (it_props): Add handle_fontified_prop.
9386
93871998-11-12 Gerd Moellmann <gerd@gnu.org>
9388
9389 * xmenu.c (xmenu_show): Use the frame's edit_widget as parent.
9390 Otherwise, under LessTif, after the popup has gone, all button
9391 press events come in for the frame's widget, and release events
9392 come in for the edit_widget.
9393 * xterm.c (XTread_socket): Remove workaround for that problem.
9394 (x_set_toolkit_scroll_bar_thumb): Add workaround for LessTif
9395 XmScrollBarSetValues.
9396 (SET_SAVED_MENU_EVENT): Give it statement form.
9397
26901792
DL
9398 * xfaces.c (display_message): If waiting_for_input, don't display
9399 the message.
9400
9401 * window.c (scroll_command): If not acting on current_buffer,
9402 make redisplay consider all windows.
9403
9404 * xfns.c (Fx_hide_tip): Return t if tooltip was open.
9405
9406 * xdisp.c (handle_glyph_prop): Set it->object for images to
9407 the object having the glyph property.
9408
9409 * xterm.c (x_draw_row_bitmaps): Don't draw if row is completely
9410 invisible.
9411
94121998-11-11 Gerd Moellmann <gerd@gnu.org>
9413
9414 * xterm.h (struct x_display_info): Add gray pixmap. * xterm.c
9415 (x_term_init): Create the gray pixmap.
9416 (x_setup_relief_color): Use it.
9417 (x_get_glyph_string_clip_rect): Draw a toolbar window over the
9418 internal border at the top of a frame.
9419 (x_init_glyph_string): Likewise.
427ec082 9420 (x_draw_glyph_string_relief): Correct right x by 1 pixel for
26901792
DL
9421 full-width lines.
9422 (XTflash): Don't flash the toolbar window.
9423
9424 * xterm.c (XTread_socket): Workaround for LessTif popup menus
9425 in case of ButtonPress events.
9426
94271998-11-10 Gerd Moellmann <gerd@gnu.org>
9428
9429 * xrdb.c (x_load_resources): Add grey background colors as
9430 defaults for menus, scroll bars, and dialogs.
9431
9432 * insdel.c (prepare_to_modify_buffer): Move setting
9433 windows_or_buffers_changed from modify_region here.
9434
9435 * xfns.c (Fx_show_tip): Inhibit redisplay.
9436 (Fx_hide_tip): Ditto.
9437 (Fx_image_header): New.
9438
94391998-11-09 Gerd Moellmann <gerd@gnu.org>
9440
9441 * dispnew.c (clear_window_matrices): Set window_end_valid to nil
9442 when clearing current window matrices.
9443
94441998-11-08 Gerd Moellmann <gerd@gnu.org>
9445
9446 * xdisp.c (handle_glyph_prop): Don't set an iterator's buffer
9447 position from a string position. Use the right end position
9448 if the property spans a whole overlay string.
9449
94501998-11-07 Gerd Moellmann <gerd@gnu.org>
9451
9452 * xmenu.c (menubar_selection_callback): Remove workaround for
9453 Lesstif not calling XmNpopdownCallback because it doesn't
9454 handle the case where users don't select any menu item.
9455
26901792
DL
9456 * insdel.c (modify_region): Set windows_or_buffers_changed.
9457
9458 * buffer.c (set_buffer_internal): Don't set
9459 windows_or_buffers_changed.
9460
26901792
DL
9461 * xmenu.c (HAVE_BOXES): Define if USE_X_TOOLKIT.
9462
26901792
DL
9463 * xmenu.c (menubar_selection_callback): Add workaround for
9464 Lesstif not calling XmNpopdownCallback.
9465
9466 * xdisp.c (eval_mode_element): New.
9467 (eval_mode_handler): New.
9468 (display_mode_element): Use eval_mode_element.
9469
9470 * xdisp.c (display_mode_element): Allow `(:eval FORM)'.
9471 Remove code looking at text props of default value.
9472
9473 * xmenu.c (HAVE_BOXES): Define if using Lucid menus.
9474
26901792
DL
94751998-11-06 Gerd Moellmann <gerd@gnu.org>
9476
427ec082 9477 * xmenu.c (single_submenu): Set button_type of menu to
26901792
DL
9478 BUTTON_TYPE_NONE.
9479 (single_submenu): Likewise for panes and menu items.
9480 (set_frame_menubar): Set button_type of menu bar to none.
9481 (xmenu_show): Likewise.
9482 (single_submenu): Set widget values selected slot.
9483 (xmenu_show): Likewise.
9484
26901792
DL
9485 * xmenu.c (push_menu_item): Add parameters `type' and
9486 `selected'. Store it in menu_items.
9487 (MENU_ITEMS_ITEM_TYPE): New.
9488 (MENU_ITEMS_ITEM_SELECTED): New.
9489 (MENU_ITEMS_ITEM_LENGTH): Increase by two.
9490
9491 * xfns.c (clear_image_cache): Get the current time, before
9492 doing anything.
9493 (cache_image): Set prev pointer of next image.
9494 (clear_image_cache): Clear current matrices if any image was
9495 freed.
9496
9497 * xterm.c (XTread_socket): Set inhibit_busy_cursor.
9498
9499 * xfns.c (x_set_cursor): New.
9500 (Fx_display_busy_cursor): New.
9501 (Fx_undisplay_busy_cursor): New.
9502
9503 * xterm.h (struct x_output): Add busy_cursor.
9504
9505 * xfns.c (Vx_busy_pointer_shape): New.
9506 (x_set_mouse_color): Create busy cursor.
9507
9508 * process.c (wait_reading_process_input): Show and hide busy
9509 cursor.
9510
9511 * keyboard.c (command_loop_1): Display busy cursor.
9512
9513 * eval.c (Fsignal): Hide busy cursor.
9514
9515 * buffer.c (set_buffer_internal): Don't set
9516 windows_or_buffers_changed.
9517
9518 * xterm.c (redo_mouse_highlight): New.
9519
95201998-11-04 Gerd Moellmann <gerd@gnu.org>
9521
26901792
DL
9522 * xfns.c (x_create_x_image_and_pixmap): Add depth parameter.
9523 (x_build_heuritic_mask): New.
9524 (lookup_image): Call it.
9525
9526 * xterm.c (note_toolbar_highlight): Always set up help_echo.
9527 (previous_help_echo): New.
9528 (XTread_socket): Generate help event with nil message when
9529 leaving a region with help-echo.
9530 (note_mouse_highlight): Handle `help-echo' over text.
9531 (XTread_socket): Dispatch VisibilityNotify, CirculateNotify,
9532 CirculateRequest.
9533 (clear_mouse_face): Don't clear if tooltip is shown.
9534 (XTread_socket): Redo mouse-highlight after tooltip is gone.
9535 Avoid SET_FRAME_GARBAGED when tooltip is mapped.
9536
9537 * keyboard.c (Vshow_help_function): New.
9538 (read_char): Use it.
9539
95401998-11-03 Gerd Moellmann <gerd@gnu.org>
9541
9542 * xfns.c (x_create_tip_frame): New.
9543 (Fx_show_tip): New.
9544 (Fx_hide_tip): New.
9545
427ec082 9546 * xterm.c (x_destroy_window): Handle case that we don't have
26901792
DL
9547 a widget.
9548
9549 * dispextern.h (struct glyph_row): Rename no_marginal_areas_p
9550 to full_width_p. Add internal_border_p.
9551
95521998-11-02 Gerd Moellmann <gerd@gnu.org>
9553
9554 * xterm.c (note_mode_line_highlight): Check the charpos of
9555 the glyph under the mouse pointer before accessing text
9556 properties at that position.
9557
95581998-11-01 Gerd Moellmann <gerd@gnu.org>
9559
9560 * xterm.c (x_draw_image_relief): Handle toolbar_button_relief.
9561
9562 * xdisp.c (auto-raise-toolbar-buttons): New.
9563 (build_desired_toolbar_string): Handle the flag.
9564 (toolbar-button-margin): New.
9565 (toolbar-button-relief): New.
9566 (build_desired_toolbar_string): Use margin and relief.
9567
9568 * xterm.c (x_set_toolkit_scroll_bar_thumb): Remove workaround
9569 for FreeBSD.
9570 (note_mode_line_highlight): New.
9571 (note_mouse_highlight): Call it.
9572
95731998-10-31 Gerd Moellmann <gerd@gnu.org>
9574
9575 * s/freebsd.h (NARROWPROTO): New.
9576
9577 * xdisp.c (display_string): New parameter face_string.
9578 (display_mode_element): When displaying a symbol with a string
9579 value, use text properties from the symbol's default value, maybe.
9580
9581 * xrdb.c (x_load_resources): Add font defaults for menus and
9582 dialogs.
9583
95841998-10-30 Gerd Moellmann <gerd@gnu.org>
9585
9586 * xfns.c (Fx_create_frame): Try 12pt Courier font first.
9587
95881998-10-29 Gerd Moellmann <gerd@gnu.org>
9589
9590 * xterm.c (x_produce_glyphs): Fix bug causing glyphs to be
9591 produced for characters with codes < 32 under certain
9592 circumstances.
9593
9594 * xdisp.c (redisplay_window): Handle values of PT in front
9595 of invisible, intangible text.
427ec082 9596 (try_window_id): Set overlay_arrow_seen to zero before
26901792
DL
9597 displaying lines.
9598 (display_mode_element): Assign to glyphs written for a mode
9599 line spec `%x' as object the Lisp format string, as position
9600 the position of the `%' in that string.
9601 (display_string): If displaying a C string, optionally get
9602 the face to use from a Lisp string.
9603
9604 * xterm.c (expose_window_tree): Include mode line height.
9605
9606 * xfns.c (Fx_create_frame): Add toolbar height to frame height.
9607
96081998-10-27 Gerd Moellmann <gerd@gnu.org>
9609
9610 * xterm.c (note_mouse_highlight): Change mouse pointer shape
9611 over mode line.
9612
96131998-10-26 Gerd Moellmann <gerd@gnu.org>
9614
9615 * window.c (coordinates_in_window): Use CURRENT_MODE_LINE_HEIGHT.
9616
9617 * xdisp.c (redisplay_window): If mode line height has changed,
9618 arrange for a thorough immediate redisplay using the correct mode
9619 line height.
9620 (window_box_height): Use CURRENT_MODE_LINE_HEIGHT.
9621
9622 * dispextern.h (MATRIX_MODE_LINE_HEIGHT): New.
9623 (CURRENT_MODE_LINE_HEIGHT): New.
9624 (DESIRED_MODE_LINE_HEIGHT): New.
9625
9626 * keyboard.c (make_lispy_event): Add string and string position
9627 info to mouse-click events.
9628 (read_key_sequence): Handle `local-map' property of mode line
9629 strings.
9630
9631 * keyboard.h (POSN_STRING): New.
9632
96331998-10-25 Gerd Moellmann <gerd@gnu.org>
9634
9635 * dispnew.c (mode_line_string): Mew.
9636
9637 * xterm.c (xt_action_hook): New.
9638 (x_create_toolkit_scroll_bar): Add action hook.
9639 (xm_scroll_callback): Implement dragging.
9640
9641 * keyboard.c (Qend_scroll): New.
9642 (scroll_bar_parts): Add it.
9643
9644 * termhooks.h (scroll_bar_end_scroll): New.
9645
9646 * xterm.c (XTread_socket): Bug fix.
9647
96481998-10-24 Gerd Moellmann <gerd@gnu.org>
9649
9650 * xdisp.c (redisplay_window): Finish scroll bars after
9651 redisplaying toolbar.
9652
9653 * keyboard.c (scroll_bar_parts): Add Qtop and Qbottom.
9654 (syms_of_keyboard): Add Qbottom.
9655
9656 * termhooks.h (scroll_bar_to_top): New.
9657 (scroll_bar_to_bottom): New.
9658
9659 * xdisp.c (redisplay_window): Always resize toolbar window if
9660 auto_resize_toolbar_p is non-zero.
9661 (auto_resize_toolbar_p): Renamed from auto_resize_toolbar.
9662 (window_box): New.
9663 (window_box_height): New.
9664 (window_box_width): New.
9665 (window_box_left): New.
9666 (window_box_right): New.
9667 (window_box_edges): New.
9668
96691998-10-23 Gerd Moellmann <gerd@gnu.org>
9670
9671 * xterm.c (x_set_toolkit_scroll_bar_thumb): Kluge for call to
9672 XawScrollbarSetThumb in FreeBSD.
9673 (x_create_toolkit_scroll_bar): Set resource "beNiceToColormap"
9674 to true.
9675
9676 * window.c (get_phys_cursor_glyph): Return null if cursor vpos
9677 is out of range.
9678
9679 * xterm.c (x_create_toolkit_scroll_bar): Set scroll_bar_pixel.
9680 (x_term_init): Initialize it.
9681
9682 * xterm.h (struct x_display_info): Add scroll_bar_pixel.
9683
9684 * xterm.c (x_create_toolkit_scroll_bar): Set LessTif scroll bar's
9685 cursor.
9686
96871998-10-22 Gerd Moellmann <gerd@gnu.org>
9688
9689 * keyboard.c (make_lispy_event): Handle scroll_bar_click
9690 differently when using toolkit scroll bars.
9691
9692 * xterm.c (x_send_scroll_bar_event): New.
9693 (x_scroll_bar_to_input_event): New.
9694 (xaw3d_scroll_callback): New.
9695 (xaw3d_jump_callback): New.
9696 (xm_scroll_callback): New.
9697 (x_toolkit_scroll_p): New.
9698 (XTread_socket): Handle scroll bar client message.
9699 (x_term_init): Initialize Xatom_Scrollbar.
9700 (x_scroll_bar_create): Set cursor.
9701 (xm_scroll_callback):
9702 (x_create_toolkit_scroll_bar): New.
9703 (x_set_toolkit_scroll_bar_thumb): New.
9704 (x_scroll_bar_create): Call x_create_toolkit_scroll_bar.
9705 (XTset_vertical_scroll_bar): Call x_set_toolkit_scroll_bar_thumb.
9706
9707 * xterm.h (struct x_display_info): Add Xatom_Scrollbar.
9708
97091998-10-21 Gerd Moellmann <gerd@gnu.org>
9710
9711 * xterm.c (x_scroll_bar_remove): Handle toolkit scroll bars.
9712 (XTread_socket): Don't handle mouse button events for scroll bars
9713 if using toolkit scroll bars.
9714 (XTset_vertical_scroll_bar): Set thumb size and position for
9715 Athena scroll bar.
9716
9717 * xterm.h (scroll_bar): Add x_widget_low and x_widget_high.
9718
9719 * xterm.c (XTread_socket): Dispatch expose event to widget
9720 if using toolkit scroll bars.
9721 (x_scroll_bar_expose): Make no-op for toolkit scroll bars.
427ec082 9722 (x_scroll_bar_create): Create and show a scroll bar widget
26901792
DL
9723 if using toolkit scroll bars.
9724 (x_scroll_bar_move): Handle tookit scroll bars.
9725
9726 * Makefile.in (LIBW): Use Xaw3d if present.
9727
9728 * configure.in (USE_TOOLKIT_SCROLL_BARS): New.
9729 (HAVE_XAW3D): New.
427ec082 9730
26901792
DL
9731 * config.in (USE_TOOLKIT_SCROLL_BARS): New.
9732 (HAVE_XAW3D): New.
9733
427ec082 9734 * xterm.c (XTset_vertical_scroll_bar): Correct position of
26901792
DL
9735 right vertical scroll bar.
9736
97371998-10-20 Gerd Moellmann <gerd@gnu.org>
9738
9739 * xfns.c (xpm_load): Support reading XPM images from string
9740 buffers containing data in the same format as an XPM file.
9741 Support `:color-symbols'.
9742 (xpm_format): Add `:data'.
9743 (xpm_keyword_index): Add XPM_DATA.
9744 (syms_of_xfns): Add `:color-symbols'.
9745 (xpm_keyword_index): Add XPM_COLOR_SYMBOLS.
9746 (xpm_valid_color_symbols_p): New.
9747 (xpm_image_p): Call it.
9748
9749 * xdisp.c (build_desired_toolbar_string): Add `:algorithm'
9750 attribute to the image if item is not enabled.
9751
9752 * xfns.c (x_laplace): New.
9753 (x_laplace_read_row): New.
9754 (x_laplace_write_row): New.
9755 (lookup_image): Handle common image attributes here. New
9756 attribute `:algorithm'.
9757
9758 * xfaces.c (clear_face_cache): Call clear_image_cache.
9759
9760 * xterm.c (x_inverted_image_mask): Removed.
9761 (x_draw_image_foreground_1): New.
9762 (x_draw_image_glyph_string): Draw images with mask to a temporary
9763 pixmap to reduce flickering.
9764
9765 * xdisp.c (redisplay_toolbar): Handle auto-resize-toolbars.
9766 (display_toolbar_line): Remove parameter `margin'.
9767
97681998-10-19 Gerd Moellmann <gerd@gnu.org>
9769
9770 * xdisp.c (toolbar_lines_needed): New.
9771 (auto-resize-toolbars): New.
9772
9773 * xfns.c (cache_image): Correct call to xrealloc.
9774
9775 * dispnew.c (Fset_toolbar_height): Removed.
9776
9777 * xdisp.c (init_xdisp): Use FRAME_TOP_MARGIN instead of
9778 FRAME_MENU_BAR_LINES.
9779
9780 * window.c (Fdelete_other_windows): Use FRAME_TOP_MARGIN
9781 instead of FRAME_MENU_BAR_LINES.
9782 (check_frame_size): Ditto.
9783
9784 * dispnew.c (adjust_frame_glyphs_initially): Use FRAME_TOP_MARGIN
9785 instead of FRAME_MENU_BAR_LINES.
9786 (adjust_frame_glyphs_for_frame_redisplay): Ditto.
9787 (build_frame_matrix): Ditto.
9788 (change_frame_size_1): Ditto.
9789
9790 * frame.h (FRAME_TOOLBAR_LINES): New.
9791 (FRAME_TOP_MARGIN): New.
9792
9793 * window.c (struct save_window_data): Add frame_toolbar_lines.
9794 (Fset_window_configuration): Handle toolbar lines.
9795 (Fcurrent_window_configuration): Save toolbar lines.
9796
9797 * frame.c (syms_of_frame_1): Add Qtoolbar_lines.
9798
9799 * xfns.c (Fx_create_frame): Add default parameter for toolbar.
9800
9801 * frame.h (struct frame): Rename top_margin to toolbar_lines.
9802
9803 * xfns.c (x_frame_parms): Add `toolbar-lines'.
9804 (x_set_toolbar_lines): New.
9805
9806 * keyboard.c (cmd_error_internal): Bug fix.
9807
9808 * xterm.c: Remove double include of syssignal.h.
9809
98101998-10-18 Gerd Moellmann <gerd@gnu.org>
9811
9812 * xterm.c (x_toolbar_item): New.
9813 (x_handle_toolbar_click): Use it.
9814 (note_toolbar_highlight): Use it.
9815
9816 * keyboard.c (syms_of_keyboard): Staticpro toolbar_item_properties
9817 and toolbar_items_vectors.
9818
9819 * xterm.c (help_echo): New.
9820 (draw_glyphs_face): Add DRAW_IMAGE_RAISED and DRAW_IMAGE_SUNKEN.
9821 (x_set_glyph_string_gc): Handle them.
9822 (x_after_update_window_line): Don't do anything in pseudo-windows.
9823 (x_produce_image_glyph): Take image margin and face relief into
9824 account.
9825 (x_get_glyph_string_clip_rect): Handle pseudo-windows.
9826 (x_draw_glyph_string_background): Optimize case when face has
9827 relief.
9828 (x_setup_relief_color): Take frame instead of glyph string
9829 parameter.
9830 (x_draw_relief_rect): New.
9831 (x_draw_glyph_string_relief): Call it.
9832 (x_draw_image_glyph_string_foreground): Handle margin and image
9833 relief.
9834 (x_draw_image_glyph_string_background): Ditto.
9835 (expose_frame): Redraw toolbar window.
9836 (expose_window): Don't draw cursor for pseudo-windows.
9837 (x_y_to_hpos_vpos): Handle pseudo-windows.
9838 (frame_to_window_pixel_xy): New.
9839 (note_mouse_highlight): Call note_toolbar_highlight.
9840 (x_handle_toolbar_click): New.
9841 (note_toolbar_highlight): New.
9842 (show_mouse_face): Change int parameter `hl' to parameter of
9843 type enum draw_glyphs_face. Handle image highlighting.
9844 (XTread_socket): Return a HELP_EVENT input event if help_echo is
9845 non-nil. Use x_handle_toolbar_click.
9846
9847 * termhooks.h (event_kind): Add HELP_EVENT, TOOLBAR_EVENT.
9848
9849 * xfns.c (image_value_type): Add IMAGE_INTEGER_VALUE,
9850 IMAGE_BOOL_VALUE.
9851 (parse_image_spec): Handle them.
9852 (image_spec_value): Additional parameter found.
427ec082 9853 (free_image): Remove image from the vector `images' of the
26901792
DL
9854 image cache.
9855 (clear_image_cache): Additional parameter force_p.
9856 (Fclear_image_cache): New.
9857 (x_find_image_file): New.
9858 (xbm_load): Handle `:margin' and `:relief'. Use
9859 x_find_image_file.
9860 (xpm_load): Likewise.
9861 (pbm_load): Likewise.
9862 (jpeg_load): Likewise.
9863 (tiff_load): Likewise.
9864 (gif_load): Likewise.
9865
9866 * keyboard.c (Qhelp_echo): New symbol.
9867 (read_char): Handle `toolbar' and `help_echo' events.
9868 (kbd_buffer_get_event): Handle HELP_ECHO input event.
9869 (make_lispy_event): Handle TOOLBAR_EVENT.
9870 (toolbar_items): New.
9871 (process_toolbar_item): New.
9872 (PROP): New.
9873 (init_toolbar_items): New.
9874 (append_toolbar_item): New.
9875 (read_char_x_menu_prompt): Handle `toolbar' event.
9876 (read_key_sequence): Ditto.
9877
9878 * xfaces.c (Qtoolbar): New.
9879 (realize_basic_faces): Realize `toolbar' face.
9880 (face_at_string_position): Remove parameter modeline_p, add
9881 base_face_id.
9882
9883 * xfns.c (xbm_load_image_from_file): Don't use Xmu function
9884 to read data.
9885
98861998-10-17 Gerd Moellmann <gerd@gnu.org>
9887
9888 * xdisp.c (init_iterator): Replace parameter modeline_p with
9889 base_face_id.
9890 (next_element_from_string): Call get_next_display_element
9891 recursively after handling text properties.
9892 (prepare_menu_bars): Call update_toolbar.
9893 (update_toolbar): New.
9894 (build_desired_toolbar_string): New.
9895 (display_toolbar_line): New.
9896 (redisplay_toolbar): New.
9897 (toolbar_item_info): New.
9898 (redisplay_window): Call redisplay_toolbar.
9899 (Fdump_toolbar_row): New. Defined if compiled with GLYPH_DEBUG.
9900
9901 * dispnew.c (clear_current_matrices): Clear matrices of toolbar
9902 window.
9903 (clear_desired_matrices): Ditto.
9904 (adjust_frame_glyphs_for_window_redisplay): Make toolbar window.
9905 (free_glyphs): Free matrices of toolbar window.
9906 (update_frame): Update toolbar window.
9907 (change_frame_size_1): Take toolbar into account.
9908 (Fset_toolbar_height): New.
9909
9910 * dispextern.h (struct it): Remove member modeline_p, add
9911 base_face_id.
9912 (struct image): Add members relief and margin.
9913 (IMAGE_ASCENT): Include margin in height.
9914
99151998-10-14 Gerd Moellmann <gerd@gnu.org>
9916
9917 * xfns.c (Fclear_image_cache): New.
9918
9919 * xfaces.c (realize_basic_faces): Realize toolbar face.
9920 (face_at_string_position): Remove parameter modeline_p, add
9921 base_face_id.
9922
9923 * dispextern.h (enum face_id): Add TOOLBAR_FACE_ID.
9924
99251998-10-13 Gerd Moellmann <gerd@gnu.org>
9926
9927 * keyboard.c (syms_of_keyboard): Intern `:help'.
9928
99291998-10-12 Gerd Moellmann <gerd@gnu.org>
9930
9931 * xterm.c (note_toolbar_highlight): New.
9932 (note_mouse_highlight): Call it.
9933
9934 * window.c (window_from_coordinates): Additional parameter toolbar_p.
9935 (coordinates_in_window): Handle toolbar window.
9936
9937 * keyboard.c (toolbar_items): New.
9938 (process_toolbar_item): New.
9939 (parse_toolbar_item): New.
9940 (init_toolbar_items): New.
9941 (append_toolbar_item): New.
9942
9943 * dispextern.h (enum toolbar_item_idx): New.
9944 (enum toolbar_item_image): New.
9945
9946 * frame.h (struct frame): Add toolbar-related members.
9947
9948 * xfaces.c (face_at_string_position): Remove assertion that
9949 current_buffer == window's buffer. This is not the case when
9950 called for the toolbar window.
9951
9952 * frame.c (make_frame): Initialize toolbar members.
9953
9954 * alloc.c (mark_object): Mark toolbar data of frames.
9955
9956 * frame.h (struct frame): Add toolbar-related members
9957 toolbar_window, desired_toolbar_items, current_toolbar_items,
9958 desired_toolbar_string, current_toolbar_string,
9959 n_desired_toolbar_items, n_current_toolbar_items. Add
9960 window_height.
9961
9962 * xterm.c (x_after_update_window_line): Don't draw bitmap
9963 areas for pseudo-windows.
9964 (expose_frame): Handle toolbar window.
9965 (expose_window): Don't do cursor stuff for pseudo-windows.
9966
9967 * xdisp.c (display_menu_bar): Correct calls to init_iterator.
9968
99691998-10-11 Gerd Moellmann <gerd@gnu.org>
9970
9971 * frame.c (make_frame): Initialize toolbar_window.
9972
9973 * alloc.c (mark_object): Make the toolbar window.
9974
9975 * dispnew.c (update_frame): Update frame's toolbar_window.
9976 (clear_current_matrices): Likewise.
9977 (clear_desired_matrices): Likewise.
9978 (adjust_frame_glyphs_for_window_redisplay): Make toolbar_window.
9979 (free_glyphs): Free the toolbar window and its matrices.
9980
9981 * frame.h (struct frame): Add toolbar_window.
9982
9983 * xterm.c (x_draw_glyph_string_relief): Handle mouse-face
9984 with relief.
9985
99861998-10-10 Gerd Moellmann <gerd@gnu.org>
9987
427ec082 9988 * dispnew.c (buffer_posn_from_coords): Don't screw up if
26901792
DL
9989 window start is not in the range BEGV..ZV.
9990
99911998-10-09 Gerd Moellmann <gerd@gnu.org>
9992
9993 * xdisp.c (try_scrolling): Experimentally handle the case
9994 that scroll-preserve-screen-position is set to `always'.
9995
9996 * window.c (Vscroll_preserve_screen_position): Replacement for
9997 scroll_preserve_screen_position.
9998
99991998-10-08 Gerd Moellmann <gerd@gnu.org>
10000
10001 * dispnew.c: Don't initialize auto structs; the HP/UX compiler
10002 doesn't like it.
10003 * xdisp.c: Ditto.
10004
10005 * xdisp.c (make_cursor_line_fully_visible): Adjust this_line_y.
10006
100071998-10-06 Gerd Moellmann <gerd@gnu.org>
10008
427ec082 10009 * minibuf.c (Fminibuffer_complete_word): Fix computation of
26901792
DL
10010 i_byte when prompts are inserted into minibuffers.
10011
10012 * dispextern.h (FRAME_INTERNAL_BORDER_WIDTH_SAFE): New.
10013 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Use it.
10014 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y): Ditto.
10015
100161998-10-04 Gerd Moellmann <gerd@gnu.org>
10017
10018 * xdisp.c (make_cursor_line_fully_visible): New.
10019 (try_scrolling): New.
10020 (redisplay_window): Move scrolling code to try_scrolling.
10021 (make_cursor_line_fully_visible): Handle case of window too small
10022 to show a single line.
10023 (redisplay_window): Case forced window start---use
10024 make_cursor_line_fully_visible.
10025 (redisplay_window): Case cursor movement via current matrix.
10026 If ending up on a partially visible line, make it fully visible
10027 instead of recentering.
10028 (try_scrolling): Additional parameter scroll_smoothly.
10029
10030 * xterm.c (x_draw_bitmap): Don't XClearArea under the pixmap.
10031
100321998-09-28 Gerd Moellmann <gerd@gnu.org>
10033
10034 * window.c (window_scroll_pixel_based): Bug fix: vpos used
10035 instead of y-position for scroll-preserved-screen-position.
10036
100371998-09-07 Gerd Moellmann <gerd@gnu.org>
10038
10039 * dispnew.c (update_frame_line): If current row is not enabled,
10040 write the whole line.
10041
100421998-09-06 Gerd Moellmann <gerd@gnu.org>
10043
10044 * lisp.h (HAVE_FACES): Removed.
10045
10046 * dispextern.h (HAVE_FACES): Removed.
10047
10048 * config.in (HAVE_FACES): Removed.
10049
10050 * dispnew.c (HAVE_FACES): Removed.
10051
10052 * xdisp.c (HAVE_FACES): Removed.
10053
10054 * xfaces.c (HAVE_FACES): Removed.
10055
100561998-09-05 Gerd Moellmann <gerd@gnu.org>
10057
10058 * xdisp.c (init_iterator): If face_change_count is non-zero,
10059 free realized faces.
10060
10061 * xfaces.c (free_all_realized_faces): Make it externally visible.
10062 (Finternal_set_lisp_face_attribute): Increment
10063 windows_or_buffers_changed.
10064
10065 * dispnew.c (direct_output_for_insert): Give up if
10066 face_change_count is non-zero.
10067 (direct_output_forward_char): Ditto.
10068
10069 * xfaces.c (face_change_count): New.
10070
100711998-09-04 Gerd Moellmann <gerd@gnu.org>
10072
10073 * xterm.c (x_draw_bar_cursor): Don't draw if cursor hpos is out
10074 of range.
10075
100761998-09-03 Gerd Moellmann <gerd@gnu.org>
10077
10078 * term.c (Ftty_display_color_p): New.
10079
100801998-09-02 Gerd Moellmann <gerd@gnu.org>
10081
10082 * xfaces.c (Ftty_defined_colors): New.
10083
10084 * xterm.c (x_produce_glyphs): Fix computation of
10085 contains_overlapping_glyphs_p for ASCII.
10086
10087 * dispnew.c (Fshow_cursor): Don't change cursor state while
10088 redisplaying.
10089 (direct_output_for_insert): If a glyph with lbearing or rbearing
10090 is among the new glyphs, set row flag contains_overlapping_glyph_p.
10091
100921998-09-01 Gerd Moellmann <gerd@gnu.org>
10093
10094 * term.c (OUTPUT_IF): Make replacement text have statement form.
10095 (OUTPUT1_IF): Ditto.
10096 (TS_italic_mode, TS_end_italic_mode): Removed.
10097 (TS_bold_mode): Removed.
10098 (TS_underscore_mode, TS_end_underscore_mode): Removed.
10099 (TS_enter_bold_mode, TS_enter_dim_mode, TS_enter_blink_mode): New.
10100 (TS_enter_reverse_mode): New.
10101 (TS_enter_underline_mode, TS_exit_underline_mode): New.
10102 (TN_magic_cookie_glitch_ul): New.
10103 (TS_enter_alt_charset_mode, TS_exit_alt_charset_mode): New.
10104 (TS_exit_attribute_mode): New.
10105 (TN_max_colors, TN_max_pairs, TS_orig_pairs): New.
10106 (TS_set_foreground, TS_set_background): New.
10107 (reset_terminal_modes): Switch colors back to default.
10108 (write_glyphs): Turn face on before writing text, turn it off
10109 afterwards.
10110 (insert_glyphs): Ditto.
10111 (term_init): Initialize new terminal capability variables.
10112 (turn_on_face): Turn a face on.
10113 (turn_off_face): Turn a face off.
10114
10115 * lisp.h (MAKE_GLYPH): Remove test for frame type.
10116 (GLYPH_CHAR): Ditto.
10117 (GLYPH_FACE): Ditto.
10118
10119 * xfaces.c (Vface_tty_color_alist): New.
10120 (face-register-tty-color): New.
10121 (face-clear-tty-colors): New.
10122
10123 * dispextern.h (FACE_TTY_DEFAULT_COLOR): New.
10124 (struct it): Remove member faces_p since we now always have faces.
10125
101261998-08-31 Gerd Moellmann <gerd@gnu.org>
10127
10128 * dispextern.h (struct face): Add tty appearance flags.
10129
10130 * xdisp.c (init_iterator): Always handle faces.
10131 (extend_face_to_end_of_line): Handle tty frames.
10132
10133 * dispnew.c (clear_glyph_matrix): Allow a null matrix to be
10134 passed in.
10135
101361998-08-30 Gerd Moellmann <gerd@gnu.org>
10137
10138 * xfaces.c (realize_default_face): Use empty strings to indicate
10139 that the face should use the default foreground/background
427ec082 10140 color of the terminal. Fill font-related attributes with
26901792
DL
10141 appropriate values for tty frames.
10142
10143 * emacs.c (main): Call syms_of_xfaces before init_window_once.
10144
10145 * xfaces.c (realize_default_face): If face `default' is not
10146 yet known, create it.
10147
10148 * frame.c (make_terminal_frame): Call init_frame_faces
10149 unconditionally.
10150
10151 * xfaces.c (init_frame_faces): Make it work for tty frames.
10152 (free_frame_faces): Ditto.
10153 (clear_face_cache): Ditto.
10154 (recompute_basic_faces): Ditto.
10155 (Fframe_face_alist): Ditto.
10156 (free_realized_face): Ditto.
10157 (prepare_face_for_display): Ditto.
10158 (clear_face_gcs): Ditto.
10159 (lookup_face): Ditto.
10160 (smaller_face): Ditto.
10161 (realize_default_face): Ditto.
10162 (realize_face): Ditto.
10163 (realize_face): Dispatch to functions depending on the frame type.
10164 (realize_x_face): X way of realizing faces.
10165 (realize_tty_face): TTY way of realizing faces.
10166
101671998-08-29 Gerd Moellmann <gerd@gnu.org>
10168
10169 * xfaces.c (realize_face): Remove parameter unibyte_registry,
10170 compute it instead.
10171 (lookup_face): Remove local variable unibyte_registry.
10172
101731998-08-22 Gerd Moellmann <gerd@gnu.org>
10174
10175 * xterm.c (x_draw_glyph_string_relief): Draw top and bottom lines
10176 1 pixel longer.
10177
427ec082 10178 * xdisp.c (face_before_or_after_it_pos): Fix computation
26901792
DL
10179 of face in buffer.
10180
10181 * editfns.c (make_buffer_string_both): If prompt in buffer,
10182 prevent start > end.
10183
10184 * indent.c (Fvertical_motion): Set current_buffer to window's
10185 buffer if it isn't already.
10186
101871998-08-21 Gerd Moellmann <gerd@gnu.org>
10188
10189 * dispextern.h (GLYPH_DEBUG): Use default 0.
10190
10191 * xdisp.c (it_props): New member `smaller'.
10192 (init_iterator): Initialize it.
10193 (Qsmaller): New.
10194 (push_it): Save value of `smaller' value on the stack.
10195 (pop_it): Restore `smaller' from the stack.
10196 (handle_smaller_prop): New.
10197 (handle_face_prop): Use `smaller' text property to select a
10198 suitable face.
10199
10200 * dispextern.h (SMALLER_PROP_IDX): New.
10201 (struct it): Add member `smaller'.
10202
10203 * xfaces.c (smaller_face): New.
10204
10205 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add bitmap area widths.
10206
10207 * dispnew.c (allocate_matrices_for_window_redisplay): Compute
10208 total pixel width of window differently.
10209
10210 * xdisp.c (init_iterator): Compute width of mode line differently.
10211
10212 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract width
10213 of bitmap areas.
10214
10215 * window.c (Fsplit_window): Include width of bitmap areas in
10216 window width.
10217 (window_internal_width): Subtract width of bitmap areas from
10218 total width.
10219
102201998-08-18 Gerd Moellmann <gerd@gnu.org>
10221
10222 * xdisp.c: Functions reordered for better readability.
10223
10224 * dispnew.c (update_text_area): Handle glyphs with arbitrary
10225 lbearing.
10226 (update_window_tree): Parameter no_scrolling_p removed.
10227 (update_single_window): Ditto.
10228
10229 * xterm.c (x_get_char_font_and_encoding): Renamed to
10230 x_get_char_face_and_encoding.
10231
10232 * dispnew.c (update_text_area): Don't call get_glyph_overhangs
10233 if end of current row reached.
10234
10235 * xterm.c (x_get_glyph_face_and_encoding): New.
10236 (x_get_glyph_overhangs): Call it.
10237
10238 * xdisp.c (Qshow_trailing_whitespace): New.
10239 (Qtrailing_whitespace): New.
10240 (enum prop_handled): New.
10241 (struct props, it_props): New.
10242 (next_overlay_change): New. Works like Fnext_overlay_change
10243 but doesn't use xmalloc.
10244 (handle_stop): Restructured.
10245 (face_before_or_after_it_pos): Case iteration over a string: fix
10246 handling of face before current position.
10247
102481998-08-16 Gerd Moellmann <gerd@gnu.org>
10249
10250 * dispnew.c (adjust_glyph_matrix): Don't optimize matrix
10251 reallocation matrix if fonts_changed_p.
10252 (update_text_area): Handle glyphs with lbearing.
10253
102541998-08-14 Gerd Moellmann <gerd@gnu.org>
10255
10256 * xdisp.c (struct props): New.
10257 (it_props): New.
10258 (compute_prop_info): New.
10259 (handle_stop): New.
10260
10261 * textprop.c (validate_interval_range): Make it externally
10262 visible.
10263
10264 * dispnew.c (direct_output_for_insert): Remove calls
10265 to compute_stop_pos.
10266
10267 * dispextern.h (struct it): Remove check_charpos,
10268 next_overlay_pos. Add what_changes.
10269
102701998-08-10 Gerd Moellmann <gerd@gnu.org>
10271
10272 * xterm.c (note_mouse_highlight): Set BEGV_BYTE, ZV_BYTE.
10273
10274 * xfaces.c (Vx_unibyte_registry_and_encoding): Removed. Use
10275 face_default_registry instead.
10276
10277 * syntax.c (scan_sexps_forward): Set up syntax table before
10278 jumping to initial state label.
10279
102801998-08-09 Gerd Moellmann <gerd@gnu.org>
10281
10282 * dispnew.c (check_matrix_invariants): Handle case of row end pos
10283 >= ZV specially.
10284
102851998-08-08 Gerd Moellmann <gerd@gnu.org>
10286
10287 * xdisp.c (redisplay_window): Case cursor movement---if cursor
10288 ends up in partially visible row, try to scroll. Case forced
10289 window start---handle windows not tall enough to show a single
10290 line.
10291
10292 * window.h (struct window): Member dy renamed vscroll.
10293
10294 * xterm.c (x_list_fonts): Re-activate suppression of scalable
10295 fonts.
10296 (x_draw_stretch_glyph_string): Set clipping if using GC that
10297 hasn't set it yet.
10298
10299 * xdisp.c (redisplay_window): Case forced window start -
10300 don't let cursor end on partially visible row. Use desired
10301 matrix to find a suitable PT if it doesn't appear.
10302 (decode_mode_spec): Merged with 20.2.97.
10303 (try_window_reusing_current_matrix): Give up if old or
10304 new display is vscrolled.
10305 (redisplay_window): Reset vscrolling if forced window start,
10306 or if recentering.
10307
103081998-08-06 Gerd Moellmann <gerd@gnu.org>
10309
10310 * xfaces.c (realize_default_face): Use the fontset name instead of
10311 the alias for the family attribute of the default face because we
10312 can't easily determine a good alias from fontset-alias-alist.
10313 (face_fontset): Use Fquery_fontset to find the fontset.
10314 (font_list): Additional pattern parameter.
10315 (try_font_list): Ditto.
10316 (set_lface_from_font_name): Set face family from font foundry
10317 and family.
10318 (font_list): If family contains a hyphen, build pattern differently.
10319
103201998-08-05 Gerd Moellmann <gerd@gnu.org>
10321
10322 * xfaces.c (free_realized_faces): Increment windows_or_buffers_-
10323 changed instead of setting the frame garbaged.
10324
10325 * xfaces.c (lface_equal_p): Don't assume equal Lisp types for
10326 all attribute values. This is wrong if values are unspecified,
10327 i.e. nil.
10328
10329 * xdisp.c (try_window_id): Give up if window start changed.
10330
10331 * xfaces.c (make_realized_face): Store registry as Lisp object.
10332 (load_face_font_or_fontset): Compute registry of a face
10333 differently. Make it `eq' to Vx_unibyte_registry_and_encoding if
10334 possible.
10335
10336 * dispextern.h (FACE_SUITABLE_FOR_CHARSET_P): Compare registries
10337 differently.
10338
10339 * alloc.c (mark_face_cache): Mark the registry member of faces.
10340
10341 * dispextern.h (struct face): Make registry a Lisp string.
10342
103431998-08-04 Gerd Moellmann <gerd@gnu.org>
10344
10345 * xterm.c (x_get_char_font_and_encoding): Additional parameter
10346 multibyte_p. Handle unibyte text.
10347 (x_append_glyph): Set the multibyte_p flag of glyphs.
10348 (x_produce_image_glyph): Ditto.
10349 (x_append_stretch_glyph): Ditto.
10350 (x_produce_glyphs): Handle unibyte text like ASCII.
10351
10352 * xdisp.c (push_it): Save the multibyte flag of an iterator on the
10353 stack.
10354 (pop_it): Restore it.
10355 (face_before_or_after_it_pos): Handle the case that the string or
10356 buffer is unibyte.
10357 (get_overlay_strings): Set the multibyte flag of the iterator if
10358 the new overlay string is multibyte.
10359 (get_glyph_property): Likewise.
10360 (get_next_display_element): Don't check for charset changes in
10361 unibyte text.
10362 (append_space): Compute face differently for unibyte text.
10363 (extend_face_to_end_of_line): Don't return quickly if face has
10364 stipple.
10365
10366 * xfaces.c (load_face_font_or_fontset): Store registry and
10367 encoding of the font in the registry member of the face.
10368 (make_realized_face): Additional parameter `registry'.
10369 (free_realized_face): Free the registry of a realized face.
10370 (face_suitable_for_charset_p): Function form of the macro
10371 with the same name in uppercase.
10372 (lookup_face): Use Vx_unibyte_registry_and_encoding if charset < 0.
10373 (choose_face_font): New parameter unibyte_registry.
10374 (choose_face_fontset_font): Ditto.
10375 (realize_default_face): Remember the registry and encoding of
10376 the specified frame font in Vx_unibyte_registry_and_encoding.
10377 (face_at_buffer_position): Handle unibyte.
10378 (face_at_string_position): Likewise.
427ec082 10379 (realize_face): New parameter unibyte_registry.
26901792
DL
10380 (compute_char_face): Handle the unibyte case.
10381
10382 * dispextern.h (struct glyph): Add bit multibyte_p.
10383 (struct face): New member registry holding the registry and
10384 encoding of the X font of the face.
10385 (FACE_UNIBYTE_P): Value is non-zero if face is for unibye text.
10386 (enum face_id): Add BASIC_FACE_ID_SENTINEL.
10387 (FACE_SUITABLE_FOR_CHARSET_P): Handle charset < 0 meansing unibyte
10388 text.
10389 (struct iterator_stack_entry): Add multibyte_p.
10390
10391 * xdisp.c (string_pos): Use string_char_to_byte.
10392 (char_charset): Removed.
10393
103941998-08-03 Gerd Moellmann <gerd@gnu.org>
10395
10396 * xterm.c (x_draw_image_glyph_string_foreground): Draw a
10397 rectangle for a block cursor over an image without a mask.
10398 (x_stretch_block_cursor): Added. Non-zero means don't draw
10399 a block cursor over a stretch as wide as that stretch.
10400 (x_draw_stretch_glyph_string): Use it.
10401 (x_draw_hollow_cursor): Ditto.
10402
10403 * minibuf.c (read_minibuf): Use minibuf_prompt instead of prompt.
10404 (read_minibuf): Add front-sticky text property for prompt.
10405
10406 * xdisp.c (char_charset): Return charset of a character,
10407 depending on whether or not multi-byte characters are enabled.
10408
10409 * xfaces.c (Fset_face_charset_registry): Removed.
10410 (x_charset_registry): Determine registry from charset plist.
10411
104121998-08-02 Gerd Moellmann <gerd@gnu.org>
10413
10414 * xdisp.c (get_next_display_element): Don't check for charset
10415 changes if multi-byte characters are not enabled.
427ec082 10416
26901792 10417 * xdisp.c (echo_area_display): Use the flush function from the
427ec082 10418 redisplay interface.
26901792
DL
10419 * keyboard.c (detect_input_pending_run_timers): Likewise.
10420
10421 * dispextern.h (produce_*glyphs_hook): Removed.
10422 * term.c (produce_*glyphs): Ditto.
10423 (cursor_to): Remove pixel position parameters.
10424
10425 * dispnew.c: Remove hooks for window-based redisplay, introduce
10426 a redisplay interface structure.
10427
10428 * xterm.c (x_per_char_metric): Return default char metrics if per
10429 char metric exists but contains a zero width. Adobe Courier seems
10430 to contain such characters.
10431
10432 * xdisp.c (compute_line_metrics): Compute the width of rows
10433 without stopping at glyphs with zero width.
10434
104351998-08-01 Gerd Moellmann <gerd@gnu.org>
10436
10437 * xdisp.c (display_mode_line): If nothing was displayed at all,
10438 display a space.
10439 (hscroll_window_tree): Don't subtract 1 from target point if equal
10440 to ZV and window is not the selected window.
10441
10442 * dispnew.c (check_matrix_invariants): Remove check for window
10443 start at BEGV or after newline. This happens in rare cases
10444 intentionally.
10445
104461998-07-31 Gerd Moellmann <gerd@gnu.org>
10447
10448 * xfaces.c (x_charset_registry): Use STRING_BYTES.
10449 (syms_of_xfaces): Add Vface_default_registry.
10450 (x_charset_registry): Use it.
10451
10452 * xdisp.c (run_window_scroll_functions): Run window scroll functions.
10453 (redisplay_window): Use it.
10454
10455 * dispnew.c (update_text_area): Handle lbearing of deleted text
10456 by backing up one character.
10457
104581998-07-30 Gerd Moellmann <gerd@gnu.org>
10459
427ec082 10460 * dispnew.c (adjust_glyph_matrix): Use a different check to
26901792
DL
10461 decide to do nothing.
10462
10463 * xfaces.c (face_at_string_position): Additional parameter
10464 mode_line_p. If non-zero, merge with the mode line face
10465 instead of the default face.
10466 * dispextern.h (struct it): Add mode_line_p.
10467 * xdisp.c (init_iterator): Set it.
10468 (compute_face_in_string): Use it.
10469 (face_before_or_after_it_pos): Handle strings.
10470 (get_next_display_element): Don't look for relief end in C strings.
10471 (next_element_from_string): Deliver string position instead of
10472 buffer position.
10473
10474 * xterm.c (x_flush): Flush X output buffer.
10475 (XTflash): Use it.
10476
10477 * xfaces.c (lface_from_face_name): Renamed from lface_from_symbol.
10478 Allow strings as face names.
10479
10480 * xfns.c (forall_images_in_image_cache): Check that frame is
10481 alive.
10482
10483 * widget.c (EmacsFrameDestroy): Remove call to free_frame_faces;
10484 it's also called from x_destroy_window. Since this function is
10485 called from X, freeing stuff allocated with xmalloc is dangerous
10486 here, anyway.
10487
10488 * xfaces.c (free_realized_faces): Don't clear current matrices
10489 of a frame being destroyed.
10490
427ec082 10491 * frame.c (make_frame): Call set_window_buffer instead of
26901792
DL
10492 Fset_window_buffer.
10493
10494 * window.c (set_window_buffer): Extracted from Fset_window_buffer,
10495 with an additional argument specifying whether or not hooks may
10496 be called.
10497 (Fset_window_buffer): Call it.
10498
10499 * dispnew.c (clear_desired_matrices): Check that frame has
10500 a valid root window before clearing matrices in the window tree.
10501 (clear_current_matrices): Ditto.
10502 (clear_window_matrices): If GLYPH_DEBUG, check that hchild and
10503 vchild are valid windows if not nil.
10504
10505 * xfaces.c (merge_face_vector_with_property): Allow :reverse-video
10506 for :inverse-video.
10507 (Finternal_set_lisp_face_attribute): Ditto.
10508 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
10509 (Finternal_get_lisp_face_attribute): Ditto.
10510 (Finternal_lisp_face_attribute_values): Ditto.
10511 (syms_of_xfaces): Define the symbol `:reverse-video'.
10512
10513 * xdisp.c (get_glyph_property): Renamed from
10514 fill_iterator_from_glyph_property.
10515 (next_element_from_buffer): Handle case that no `glyph' property
10516 was found correctly.
10517 (display_line): Extend face to end of line only if we have faces.
10518
105191998-07-29 Gerd Moellmann <gerd@gnu.org>
10520
10521 * dispnew.c (Fshow_cursor): Renamed from blink_cursor. Take
10522 additional window argument.
10523
10524 * xdisp.c (reseat_at_previous_visible_line_start): Renamed from
10525 set_iterator_to_previous_visible_line_start.
10526 (reseat_at_next_visible_line_start): Likewise.
10527 (compute_stop_pos): Renamed from set_iterator_stop_pos.
10528 (face_before_or_after_it_pos): Renamed from get_face_at_it_pos.
10529 (compute_face_in_buffer): Renamed from
10530 compute_face_at_iterator_position.
10531 (compute_face_in_string): Renamed from
10532 compute_face_at_iterator_string_position.
10533 (get_space_width): Renamed from get_iterator_space_width.
10534 (next_overlay_string): Renamed from
10535 set_iterator_to_next_overlay_string.
10536 (get_overlay_strings): Renamed from
10537 get_overlay_strings_at_iterator_position.
10538 (restore_overlay_strings): Renamed from
10539 setup_overlay_strings_from_glyph_pos.
10540 (restore_dpvec): Renamed from setup_iterator_dpvec_from_glyph_pos.
10541 (init_from_display_pos): Renamed from init_iterator_from_glyph_pos.
10542 (init_to_row_start): Renamed from init_iterator_to_row_start.
10543 (init_to_row_end): Formerly init_iterator_to_next_row_start.
10544
10545 * xterm.c: Merge with 20.2.97.
10546 (x_produce_glyphs): Use x_append_stretch_glyph for tabs.
10547
10548 * dispextern.h (struct glyph): Replace text_pos position with
10549 simple charpos.
10550
10551 * xdisp.c (this_line_start_pos): Use struct text_pos.
10552 (this_line_end_pos): Renamed from .*endpos; use struct text_pos.
10553 (enum move_it_result): Renamed from move_iterator_result.
10554 (string_pos_nchars_ahead): Compute text_pos in a string from a
10555 known text_pos plus a character delta.
10556 (string_pos): Compute text_pos in string from charpos.
10557 (c_string_pos): Likewise for a C string.
10558 (number_of_chars): Return number of characters in a possibly
10559 multi-byte C string.
10560 (check_it): Renamed from check_iterator. Check that charpos and
10561 bytepos are in sync.
10562 (push_it): Renamed from save_iterator_settings.
10563 (pop_it): Renamed from restore_iterator_settings.
10564 (move_it_.*): Renamed from move_iterator_.*.
10565 (charset_at_position): Take charpos/bytepos into account.
10566 (back_to_previous_line_start): Set iterator to previous line start.
10567 (forward_to_next_line_start): Set iterator to next line start.
427ec082 10568 (back_to_previous_visible_line_start): Renamed from
26901792
DL
10569 move_iterator_previous_visible_line_start.
10570 (set_iterator_to_next_visible_line_start): Handle charpos/bytepos.
10571 (get_face_at_it_pos): Renamed from get_face_from_cursor_pos.
10572 Handle charpos/bytepos.
10573 (compute_face_at_iterator_position): Handle charpos/bytepos.
10574 (compute_face_at_iterator_string_position): Likewise.
10575 (get_iterator_space_width): Likewise.
10576 (load_overlay_strings): Likewise.
10577 (get_overlay_strings_at_iterator_position): Likewise.
10578 (reseat_iterator): Take a text_pos position argument.
10579 (setup_iterator_overlay_strings_from_glyph_pos): Handle charpos/
10580 bytepos.
10581 (init_iterator): Take additional bytepos parameter.
10582 (reseat_iterator_to_string): Handle charpos/bytepos.
10583 (start_display): Take a text_pos parameter. Handle charpos/bytepos.
10584 (next_element_from_string): Handle charpos/bytepos.
10585 (next_element_from_c_string): Likewise.
10586 (fill_iterator_from_glyph_property): Likewise.
10587 (next_element_from_buffer): Likewise.
10588 (set_iterator_to_next): Increment charpos and bytepos of an iterator.
10589 (move_iterator_in_display_line_to): Handle charpos/bytepos.
10590 (move_it_to): Likewise.
10591 (move_it_vertically_backward): Likewise.
10592 (move_it_vertically): Likewise.
10593 (move_it_by_lines): Likewise.
10594 (hscroll_window_tree): Likewise.
10595 (redisplay_internal): Likewise.
10596 (set_cursor_from_row): Likewise.
10597 (redisplay_window): Likewise.
10598 (try_window): Take a text_pos parameter. Handle charpos/bytepos.
10599 (try_window_reusing_current_matrix): Handle charpos/bytepos.
10600 (get_first_unchanged_at_end_row): Compute and return delta_bytes.
10601 (try_window_id): Handle charpos/bytepos.
10602 (Ftrace_redisplay_toggle): Return Qnil.
10603 (get_overlay_arrow_glyph_row): Handle charpos/bytepos.
10604 (insert_left_trunc_glyphs): Likewise.
10605
10606 * dispnew.c: `Merge' with 20.2.97 (it's really too different to
10607 do a real merge).
10608 (increment_glyph_matrix_buffer_positions): Add parameter delta_bytes.
10609 (increment_glyph_row_buffer_positions): Ditto.
10610 (copy_glyph_row_contents): Ditto.
10611 (check_matrix_invariants): Add additional checks for charpos/
10612 bytepos consistency.
10613 (direct_output_for_insert): Changed for charpos/bytepos.
427ec082 10614 (buffer_posn_from_coords): Likewise. Put code dealing with
26901792
DL
10615 `direction-reversed' in #if 0.
10616
10617 * xterm.h: Merge with 20.2.97.
427ec082 10618
26901792
DL
10619 * frame.h: Merge with 20.2.97.
10620
10621 * window.h: Merge with 20.2.97. Add window_end_bytepos.
10622
10623 * dispextern.h (MATRIX_ROW_START_CHARPOS): Get charpos of a row
10624 start.
10625 (MATRIX_ROW_START_BYTEPOS): Likewise for the byte position.
10626 (MATRIX_ROW_END_CHARPOS): Likewise for the row end.
10627 (MATRIX_ROW_END_BYTEPOS): Likewise for the row end byte position.
10628 (struct it): Various members renamed from .*pos to .*charpos.
10629 (IT_CHARPOS): Access current buffer character position of an
10630 iterator.
10631 (IT_BYTEPOS): Access current buffer byte position of an iterator.
10632 (IT_STRING_CHARPOS): Access current string character position of
10633 an iterator.
10634 (IT_STRING_BYTEPOS): Access current string byte position of
10635 an iterator.
10636 (globally): Add function prototypes from 20.2.97.
10637
10638 * everywhere: Use P_ instead of PROTO for function prototypes
10639 because everyone else seems to use P_.
10640
10641 * dispextern.h (struct text_pos): Structure describing a charpos/
10642 bytepos position in text.
10643 (BYTEPOS): Access the byte position part of a text_pos.
10644 (CHARPOS): Likewise for the character position.
10645 (SET_TEXT_POS): Set a text_pos from a character and byte position.
10646 (INC_TEXT_POS, DEC_TEXT_POS): Increment/decrement a text position.
10647 (SET_TEXT_POS_FROM_MARKER): Set a text_pos from a marker.
10648 (SET_MARKER_FROM_TEXT_POS): Set a marker from a text_pos.
10649 (TEXT_POS_EQUAL_P): Compare two text_pos structures for equality.
10650 (struct display_pos): Renamed from glyph_pos. Use struct text_pos
10651 for buffer and string positions.
10652 (struct glyph): Use text_pos.
10653 (struct it): Renamed from display_iterator. Use text_pos.
10654
106551998-07-23 Gerd Moellmann <gerd@gnu.org>
10656
10657 * xfns.c (x_kill_gs_process): Get image colors from XImage of a
10658 pixmap.
10659
106601998-07-21 Gerd Moellmann <gerd@gnu.org>
10661
10662 * dispextern.h (struct glyph_row): New flag indicate_zv_line_p.
10663 * xterm.c (x_draw_row_bitmaps): Use it.
10664 * dispnew.c (row_equal_p): Ditto.
10665 (update_window_line): Ditto.
10666
10667 * xfns.c (prepare_image_for_display): Don't set loading_failed_p
10668 flag of images.
10669
10670 * dispextern.h (struct image): Removed member loading_failed_p.
10671 It's probably better to have the chance to try to load an image
10672 again.
10673
106741998-07-20 Gerd Moellmann <gerd@gnu.org>
10675
10676 * xterm.c (x_draw_bitmap): Draw bitmap for empty lines ending
10677 at ZV if `indicate-zv-lines' is non-nil.
10678 (x_draw_row_bitmaps): Compute bitmap for `indicate-zv-lines'.
10679
10680 * dispnew.c (row_equal_p): Compare displays_text_p and
10681 ends_at_zv_p flags of rows.
10682 (update_window_line): Ditto.
10683
10684 * buffer.h (struct buffer): New member indicate_zv_lines.
10685
10686 * buffer.c (init_buffer_once): Add default for `indicate-zv-lines'.
10687 (init_buffer_once): New variable `default-indicate-zv-lines'.
10688 (syms_of_buffer): New buffer-local varianle `indicate-zv-lines'.
10689
10690 * xdisp.c (redisplay_window): Don't try moving the cursor
10691 if current glyph row w->last_cursor.vpos isn't enabled.
10692
10693 * xterm.c (bitmap_type): Add ZV_LINE_BITMAP.
10694
10695 * window.c (Fset_window_vscroll): Allow only negative scroll
10696 values. Others don't seem to make sense, and this way it's easy
10697 to restore a vscroll of zero.
10698
10699 * xterm.c (x_inverted_image_mask): Check that pixmap could be
10700 allocated.
10701 (x_draw_image_glyph_string_background): Don't clip if pixmap
10702 could not be created.
10703
10704 * xfns.c (xbm_load_image_from_file): Check that pixmap could
10705 be created.
10706 (xbm_load): Ditto.
10707 (gs_load): Ditto.
10708
10709 * xterm.c (x_get_glyph_overhangs): Take image and stretch
10710 glyphs into account.
10711
10712 * xfaces.c (realize_default_face): Don't set font family of
10713 the default face from the fontset alias name for `fontset-startup'.
10714
10715 * xfns.c (gs_load): Pass frame's pixel foreground and background
10716 color to the Lisp loader.
10717
107181998-07-19 Gerd Moellmann <gerd@gnu.org>
10719
10720 * xfns.c (tiff_image_p, tiff_load): Support TIFF images via
10721 libtiff34.
10722
10723 * configure.in (--with-tiff, HAVE_TIFF): Added.
10724
10725 * config.in (HAVE_TIFF): Added.
10726
10727 * Makefile.in (LIBTIFF): Added.
10728
10729 * xfns.c (jpeg_image_p, jpeg_load): Support JPEG images.
10730
10731 * Makefile.in (LIBJPEG): Added.
10732
10733 * xfns.c (resource_types): Enumerators renamed to RES_TYPE_NUMBER,
10734 RES_TYPE_BOOLEAN etc. because of conflict of `boolean' with
10735 jpeglib.h.
10736
427ec082 10737 * configure.in (HAVE_JPEG, --with-jpeg): Added. On systems
26901792
DL
10738 where the library is installed in /usr/local/lib, e.g. FreeBSD,
10739 configure must be run with `--x-includes=/usr/X11R6/include:
10740 /usr/local/include --x-libraries=/usr/X11R6/lib:/usr/local/lib'.
10741
107421998-07-18 Gerd Moellmann <gerd@gnu.org>
10743
10744 * config.in (HAVE_JPEG): Added.
10745
10746 * xfns.c (ct_init): Initialize color table used to map RGB colors
10747 from images to X pixel colors.
10748 (ct_free): Free color table.
10749 (ct_lookup): Look an RGB color up.
10750 (ct_allocated_colors): Get vector of allocated colors.
427ec082 10751 (pbm_image_p): Test if image specification is a valid PPM
26901792
DL
10752 image specification.
10753 (pbm_scan_number): Scan a decimal ASCII number from a file.
10754 (pbm_load): Load a PPM image.
10755
10756 * window.c (Fset_window_vscroll): Adjust glyph matrix if
10757 necessary. Take canonical character units as parameter.
10758 (Fwindow_vscroll): Return canonical character units.
10759
10760 * dispnew.c (allocate_matrices_for_window_redisplay): Add negative
10761 w->dy to display height for which glyph rows must be allocated.
10762
107631998-07-17 Gerd Moellmann <gerd@gnu.org>
10764
10765 * xfaces.c (face_at_string_position): Merge in region face
10766 so that it won't overwrite the font in the region.
10767 (face_at_buffer_position): Ditto.
10768 (realize_basic_faces): Don't realize region face.
10769
10770 * dispextern.h (enum face_id): REGION_FACE_ID removed.
10771
10772 * xterm.c (x_set_glyph_string_background_width): Don't let
10773 cursor face extend to end of line.
10774
10775 * xdisp.c (append_space): If adding space of default face,
10776 make sure glyph ist produced with right face.
10777
10778 * xterm.c (x_clear_glyph_string_rect): Draw a rectangle in the
10779 background color of a glyph string.
10780 (x_draw_glyph_string_background): Call it.
10781 (x_draw_glyph_string_bg_rect): Ditto.
10782 (x_draw_stretch_glyph_string): Ditto.
10783
107841998-07-15 Gerd Moellmann <gerd@gnu.org>
10785
10786 * xdisp.c (init_iterator): Initialize it->current_y to the
10787 window's vscroll w->dy.
10788
10789 * window.c (Fwindow_vscroll): Return number of pixels window
10790 is vscrolled smoothly.
10791 (Fset_window_vscroll): Set the number.
10792
10793 * xdisp.c (move_iterator_to): Recognize case MOVE_TO_POS and
10794 to_pos in truncated part of a line.
10795
107961998-07-14 Gerd Moellmann <gerd@gnu.org>
10797
10798 * xdisp.c (move_iterator_in_display_line_to): If very first glyph
10799 doesn't fit on the line, truncate it, despite truncate_lines nil.
10800 (display_line): Ditto.
10801
10802 * xfns.c: Experimental support for Ghostscript images.
10803
10804 * xterm.c (x_term_init): Initialize new atoms DONE and PAGE.
10805 (XTread_socket): React on events from Ghostscript.
10806 (expose_frame): If width or height are zero, redraw entire frame.
10807 (XTread_socket): Call expose_frame after receiving event from
10808 Ghostscript.
10809
10810 * xterm.h (struct x_display_info): Add atoms DONE and PAGE
10811 for Ghostscript support.
10812
10813 * xdisp.c (redisplay_internal): Return quickly if called
10814 recursively.
10815
10816 * alloc.c (NSTATICS): Increased to 1024.
10817
108181998-07-08 Gerd Moellmann <gerd@gnu.org>
10819
10820 * xterm.c (x_append_stretch_glyph): Append a stretch glyph to an
10821 iterator's glyph row.
10822 (x_produce_stretch_glyph): Call it.
10823 (x_produce_glyphs): Handle `space-width' property; call
10824 x_append_stretch_glyph.
10825
10826 * xdisp.c (syms_of_xdisp): Add symbol `space-width' used as a text
10827 property.
10828 (get_iterator_space_width): Determine value of `space-width'
10829 property at iterator's position.
10830 (reseat_iterator): Call it.
10831 (next_element_from_string): Ditto.
10832 (next_element_from_buffer): Ditto.
10833 (init_iterator): Initialize space_width of iterator.
10834 (redisplay_internal): Don't goto end_of_redisplay if PT hasn't
10835 moved, but cursor blinks.
10836 (redisplay_internal): Set w->last_cursor_off_p after update.
10837
10838 * dispextern.h (enum iterator_prop_idx): Add SPACE_WIDTH_PROP_IDX.
10839 (struct display_iterator): Add new member space_width.
10840
10841 * window.h (struct window): Add last_cursor_off_p.
10842
108431998-07-07 Gerd Moellmann <gerd@gnu.org>
10844
10845 * Saved.
10846
10847 * window.c (Fpos_visible_in_window_p): Case window not up to
10848 date---return nil if iterator hasn't reached position.
10849
108501998-07-06 Gerd Moellmann <gerd@gnu.org>
10851
10852 * xdisp.c (text_outside_line_unchanged_p): Fix case that
10853 overlays have changed.
10854 (redisplay_window): Case cursor movement. Don't try it if
10855 last_cursor.vpos is out of range.
10856
10857 * xdisp.c (set_cursor_from_row): Set this_line_.* variables. This
10858 way, the display optimization for the line containing the cursor
10859 is used more frequently, esp. when we have a blinking cursor.
10860 (display_line): Don't set this_line_.* variables.
10861
10862 * xterm.c (x_redraw_cursor): Removed.
10863 (x_display_and_set_cursor): Set cursor type depending on
10864 cursor_off_p flag of window.
10865
10866 * dispnew.c (redraw_cursor_hook): Removed.
10867 (Fblink_cursor): Additional parameter on_p to set the cursor_off_p
10868 member of the selected window.
10869
10870 * xfaces.c (Fface_font): Added for compatibility with 20.2.
10871
10872 * xterm.c (x_y_to_hpos_vpos): Return null if not over text.
10873 Return glyph area under x/y.
10874 (note_mouse_highlight): Use x_y_to_hpos_vpos in its new form.
10875
10876 * keyboard.c (detect_input_pending_run_timers): Call gobble_input
10877 after redisplaying.
10878
108791998-07-05 Gerd Moellmann <gerd@gnu.org>
10880
10881 * xdisp.c (text_outside_line_unchanged_p): Test if changes
10882 are all outside of a line of text.
10883 (redisplay_internal): Use it.
10884
108851998-06-30 Gerd Moellmann <gerd@gnu.org>
10886
10887 * xdisp.c (next_element_from_buffer): After skipping over
10888 invisible text, look for the `glyph' property.
10889 (set_iterator_stop_pos): Ignore check positions in front
10890 of an iterator's current position.
10891
10892 * xterm.c (show_mouse_face): Don't act on rows that don't exist
10893 anymore or which are marked as not having valid contents.
10894
10895 * xfaces.c (Finternal_set_lisp_face_attribute): Don't free
10896 realized faces if new attribute value is equal to old value.
10897
108981998-06-29 Gerd Moellmann <gerd@gnu.org>
10899
10900 * xfaces.c (Finternal_make_lisp_face): Increment
10901 lface_id_to_name_size when lface_id_to_name is reallocated.
10902
109031998-06-27 Gerd Moellmann <gerd@gnu.org>
10904
10905 * xdisp.c (set_iterator_stop_pos): Compute initial stop_pos
10906 as minimum of endpos and overlay_pos.
10907 (load_overlay_strings): Set next_overlay_pos of iterator to
10908 -1 if we don't have to check for more overlay strings.
10909
109101998-05-09 Gerd Moellmann <gerd@gnu.org>
10911
10912 * xdisp.c (set_iterator_to_next_visible_line_start): Don't
10913 do anything if iterator is at ZV because scan_buffer doesn't
10914 work otherwise.
10915
10916 * xterm.c (x_encode_char): Inline it.
10917 (x_get_char_font_and_encoding): Simplified.
10918 (x_per_char_metric): Inline it.
10919
10920 * xterm.c (x_draw_glyph_string_relief): Use clipping.
10921
10922 * xdisp.c (get_next_display_element): Check for end of relief
10923 face moved here from next_element_from_buffer.
10924
10925 * xterm.c (x_produce_image_glyph): Add relief thickness.
10926 (x_produce_stretch_glyph): Ditto.
10927
109281998-05-08 Gerd Moellmann <gerd@gnu.org>
10929
10930 * xdisp.c (fill_iterator_from_glyph_property): Handle glyph
10931 property value (space :width WIDTH :height HEIGHT :ascent ASCENT).
10932
10933 * xterm.c (x_produce_stretch_glyph): Produce a stretch glyph
10934 from a glyph property.
10935 (x_produce_glyphs): Use it.
10936
10937 * xdisp.c (set_iterator_to_next): Handle next_element_from_stretch.
10938
427ec082 10939 * xterm.c (x_produce_image_glyph): Add to current_x only if
26901792
DL
10940 in text area.
10941 (x_produce_glyphs): Ditto.
10942
427ec082 10943 * xdisp.c (display_line): Compute row height from glyphs in
26901792
DL
10944 marginal areas.
10945
427ec082 10946 * xterm.c (x_draw_image_glyph_string_background): Draw
26901792 10947 background of an image glyph string.
427ec082 10948 (x_draw_glyph_string_bg_rect): Draw a rectangular region of
26901792
DL
10949 the background of a glyph string.
10950 (x_draw_image_glyph_string_foreground): Draw the foreground of
10951 an image glyph string.
10952 (x_inverted_image_mask): Return the inverted mask of an image.
10953
10954 * xfns.c (x_draw_image): Removed.
10955
10956 * dispextern.h (struct image_type): Remove drawing function.
10957
10958 * xfaces.c (load_face_colors): Swap colors if face is inverse.
10959
10960 * xdisp.c (get_next_display_element): In marginal areas, translate
10961 newlines, tabs, etc. like normal control characters.
10962
10963 * xfaces.c (Fface_color_supported_p): Transpose parameters frame
10964 and color.
10965 (free_realized_faces): Set frame garbaged.
10966
10967 * xfaces.c (syms_of_xfaces): Add defsubr for
10968 internal-lisp-face-attribute-values.
10969
109701998-05-07 Gerd Moellmann <gerd@gnu.org>
10971
10972 * xterm.c (x_produce_image_glyph): Don't add glyph if area is
10973 full.
10974 (x_produce_image_glyph): Set IT->nglyphs to 1.
10975 (x_draw_image_glyph_string): Use inverted mask to draw background.
10976
10977 * dispextern.h (struct image_type): Additional clipping rect
10978 parameters for drawing functions.
10979
427ec082 10980 * xterm.c (x_get_glyph_string_clip_rect): Get clip rect for
26901792
DL
10981 a glyph string.
10982 (x_draw_image_glyph_string): Use it and pass the rect to the
10983 image drawing function.
10984
10985 * xdisp.c (fill_iterator_from_glyph_property): Use position of
10986 first character with `glyph' property as image position. Set
10987 iterator back to that position as long as the image hasn't been
10988 consumed with set_iterator_to_next.
10989 (set_cursor_from_row): Accept when glyph with given position is
10990 not found in the row. Set cursor x to end of line in that case,
10991 so that we can hscroll.
10992 (redisplay_internal): Correct computation of delta by which
10993 positions have changed in redisplay optimization for cursor
10994 row of selected window.
10995
10996 * xdisp.c (display_line): Remove start_pos.
427ec082 10997 (display_line): Fix bug preventing display optimization for
26901792
DL
10998 cursor line of selected window.
10999 (next_element_from_buffer): Avoid XSETBUFFER, use it->w->buffer
11000 instead.
11001
11002 * dispnew.c (update_text_area): Use GLYPH_EQUAL_P.
11003 (update_text_area): Take glyph pixel width into account
11004 when trying to find a resync point.
11005 (row_equal_p): Compare glyphs in all areas.
11006
110071998-05-06 Gerd Moellmann <gerd@gnu.org>
11008
11009 * xterm.c (x_produce_glyphs): Don't add glyph if area is full.
11010
11011 * dispextern.h (struct glyph_row): Use unsigned hash value.
11012
11013 * xdisp.c (display_line): Simplified and made faster by setting
11014 the cursor with set_cursor_from_row.
11015 (set_cursor_from_row): Handle rows of desired matrix.
11016
110171998-05-05 Gerd Moellmann <gerd@gnu.org>
11018
11019 * xdisp.c (set_cursor_from_row): Don't put cursor on glyphs
11020 with type != CHAR_GLYPH.
11021 (fill_iterator_from_glyph_property): Return void. Set
11022 method to next_element_from_image.
11023 (next_element_from_image): Dummy function for delivering a
11024 single image id.
11025 (set_iterator_to_next): Add method next_element_from_image.
11026 (redisplay_window): When recentering, and cursor vpos is -1
11027 after display, assume middle of window is in first line displayed
11028 in window, and display again.
427ec082 11029 (fill_iterator_from_glyph_property): Assign image glyph
26901792
DL
11030 the position of the first character having the glyph property.
11031
11032 * dispextern.h (IMAGE_ASCENT): Compute ascent of image.
11033 * xfns.c (x_draw_image): Use it.
11034 * xterm.c (x_produce_image_glyph): Use it.
11035
11036 * xterm.c (x_produce_image_glyph): Set iterator's pixel_width.
11037
11038 * Makefile.in: Extraneous #define of LIBXPM removed.
11039
11040 * xterm.c (x_produce_glyphs): Produce a STRETCH_GLYPH for tabs.
427ec082 11041 (x_fill_stretch_glyph_string): Fill a glyph string from a
26901792
DL
11042 stretch glyph.
11043 (x_compute_glyph_string_overhangs): Compute overhangs only
11044 for text glyph strings.
11045 (x_draw_stretch_glyph_string): Draw a stretch glyph string.
11046 (x_draw_glyph_string): Call it.
11047
11048 * dispextern.h (glyph_type): Add STRETCH_GLYPH.
11049 (struct glyph): Add sub-structure for stretchable glyphs.
11050 (GLYPH_EQUAL_P): Compare glyph type and u.val.
11051
11052 * xdisp.c (get_overlay_arrow_glyph_row): Put face code into
11053 #ifdef HAVE_FACES.
11054
11055 * xterm.c (x_produce_glyphs): Use ASCII face for spaces of a TAB.
11056
11057 * xdisp.c (fill_iterator_from_glyph_property): Renamed from
11058 setup_iterator_from_glyph_property. Don't do it for terminal
11059 frames.
11060
11061 * xterm.c (x_produce_image_glyph): Produce glyph for image
11062 that can't be loaded.
11063
11064 * xfns.c (lookup_image): If image can't be loaded, set its
11065 width and height so that we can draw a rectangle.
11066 (x_draw_image): Draw a rectangle for images that don't have
11067 a pixmap.
11068 (make_image): Set hash value.
11069 (image_spec_equal_p): Use image_spec_value.
11070
11071 * xterm.c (expose_frame): Don't try to redraw if basic faces
11072 haven't benn realized yet.
427ec082 11073 (x_draw_image_glyph_string): Fill background only if image
26901792
DL
11074 is not as tall as row.
11075
110761998-05-04 Gerd Moellmann <gerd@gnu.org>
11077
11078 * Makefile.in (LIBXPM): If not already defined, define to -lXpm.
11079 (LIBX)[HAVE_X11]: Add LIBXPM.
11080
11081 * xfns.c (xpm_image_p): Implementation of image type functions
11082 for XPM.
11083 (xpm_load): Ditto.
11084
11085 * dispextern.h (struct image): Add mask pixmap for XPM.
11086
11087 * xfns.c (x_draw_image): Handle images with masks.
11088
11089 * configure.in: --with-xpm added. Code detecting -lXpm added.
11090
11091 * config.in: Add HAVE_XPM.
11092
11093 * xfns.c (xbm_draw): Removed.
11094 (x_draw_image): Default implementation for drawing images.
11095 (xbm_keyword_index): Remove XBM_DEPTH.
11096 (xbm_format): Remove `:depth'.
11097 (xbm_image_spec_from_file): Removed to reduce consing.
427ec082 11098 (xbm_load_image_from_file): Added for the same reason.
26901792 11099
427ec082 11100 * xterm.c (x_fill_image_glyph_string): Don't set ybase of
26901792
DL
11101 glyph string.
11102 (x_draw_image_glyph_string): Pass ybase to image draw function.
11103
11104 * xfns.c (make_image): Set default baseline.
11105
11106 * xterm.c (x_produce_image_glyph): Compute ascent of image
11107 from its height and baseline percentage.
11108
11109 * xfns.c (xbm_keyword_index): Add XBM_BASELINE.
11110 (xbm_format): Add description for `:baseline'.
11111 (xbm_image_spec_from_file): Add keywords from original spec to
11112 result.
11113 (xbm_load): Set baseline of image.
11114 (xbm_image_p): Check range for baseline.
11115
11116 * dispextern.h (struct image): Add member baseline.
11117
11118 * xdisp.c (dump_glyph_matrix): Handle image glyphs.
11119
11120 * term.c (produce_glyphs): Change assertion to allow DISP_IMAGE.
11121
11122 * xdisp.c (get_next_display_element): Do character translations
11123 only if delivering characters.
11124
111251998-05-03 Gerd Moellmann <gerd@gnu.org>
11126
427ec082 11127 * dispextern.h (ITERATOR_AT_END_OF_LINE_P): Test for
26901792
DL
11128 DISP_CHARACTER.
11129
11130 * xterm.c (x_produce_image_glyph): Poduce image glyphs.
11131 (x_produce_glyphs): Call x_produce_glyphs for DISP_IMAGE.
11132
111331998-05-02 Gerd Moellmann <gerd@gnu.org>
11134
11135 * xfns.c (prepare_image_for_display): Set image timestamp.
11136 (clear_image_cache): Clear images if image's timestamp +
11137 Vimage_eviction_seconds is > now.
11138 (syms_of_xfns): New variables image-eviction-seconds, and
11139 image-types.
11140 (add_image_format): Add to image-types.
11141 (xbm_load): Support new image spec format.
11142 (x_alloc_image_color): Allocate a color for an image.
11143
11144 * dispextern.h (struct image): Add timestamp.
11145
11146 * xfns.c (xbm_image_p): Allow bool-vectors, vectors of strings and
11147 vectors of bool-vectors.
11148 (xbm_lisp_object_from_file): Build new format image spec.
11149
111501998-05-01 Gerd Moellmann <gerd@gnu.org>
11151
11152 * xfaces.c (init_frame_faces): Initialize image cache.
11153 (free_frame_faces): Free it.
11154
11155 * xterm.c (x_delete_display): Don't free image cache.
11156
11157 * emacs.c (main): Call init_xfns.
11158
111591998-04-30 Gerd Moellmann <gerd@gnu.org>
11160
11161 * alloc.c (mark_object): Mark objects in image cache.
11162
427ec082 11163 * xfns.c (x_set_internal_border_width): Correct call to
26901792
DL
11164 widget_store_internal_border_width.
11165
11166 * widget.c (widget_store_internal_border): Return void.
11167
11168 * xfns.c (x_destroy_bitmap): Use xfree instead of free. Return
11169 void.
11170 (init_x_parm_symbols): Return void.
11171 (x_report_frame_params): Ditto.
11172 (x_set_border_pixel): Ditto.
11173 (syms_of_xfns): Ditto.
11174 (x_destroy_all_bitmaps): Use xfree instead of free.
11175
11176 * xterm.h (FRAME_X_IMAGE_CACHE): Access the image cache of a frame.
11177
11178 * xterm.c (x_term_init): Initialize image_cache of display info.
11179 (x_delete_display): Free image cache.
11180
11181 * xterm.h (struct x_display_info): Add image_cache.
11182
11183 * xfns.c (make_image_cache): Allocate a new image cache.
11184 (free_image_cache): Free an image cache.
11185 (make_image): Allocate an image.
11186 (free_image): Free an image.
11187
11188 * dispextern.h (struct image): Structure describing an image.
11189 (struct image_cache): Structure describing an image cache.
11190
111911998-04-29 Gerd Moellmann <gerd@gnu.org>
11192
11193 * xdisp.c (check_iterator_glyph_property): Return int. Value is
11194 non-zero if iterator is filled with something to return.
11195 (next_element_from_buffer): Immediately return if
11196 setup_iterator_from_glyph_prop has filled iterator with pixmap.
11197 (next_element_from_string): Likewise.
11198
11199 * xfaces.c (load_pixmap): Allow to pass null for W_PTR and H_PTR.
11200
11201 * dispextern.h (struct glyph): Add pixmap_id.
11202 (display_element_type): Add DISP_PIXMAP.
11203
11204 * xmenu.c (popup_get_selection): Use xmalloc/xfree instead of
11205 malloc/free.
11206
11207 * xfaces.c (clear_font_table): Free fonts not used by fontsets.
11208 (clear_face_cache): Call it.
11209
11210 * xterm.c (x_query_font): Don't look at empty font table slots.
11211 (x_compute_min_glyph_bounds): Likewise.
11212 (x_term_init): Initialize font_table to null.
11213 (x_load_font): Change allocation of font_info structures so
11214 that it is possible to free fonts.
11215
427ec082 11216 * xfns.c (Fx_close_connection): Use xfree instead of free.
26901792
DL
11217 Only free fonts from filled font table entries.
11218
11219 * xfaces.c (best_matching_font): Support use of scalable fonts.
11220 (Fface_scalable_fonts_mode): Toggle use of scalable fonts.
11221
11222 * xterm.h (struct x_display_info): Remove screen_dpi, add resx
11223 and resy.
11224 * xterm.c (x_term_init): Compute resx and resy.
11225
11226 * xfaces.c (split_font_name): Don't reject scalable fonts.
11227
427ec082 11228 * xterm.c (x_list_fonts): Set code exclusing scalable fonts
26901792
DL
11229 in #if 0.
11230
11231 * xfaces.c (xlfd_point_size): Return 0 for fonts whose real
11232 point size cannot be determined.
11233
11234 * xterm.h (FRAME_SMALLEST_CHAR_WIDTH): Return smallest character
11235 width over all fonts on a frame.
11236 (FRAME_SMALLEST_FONT_HEIGHT): Likewise for font height.
11237 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Use these
11238 macros.
11239
11240 * xterm.c (x_font_min_bounds): Moved here from xfaces.c.
11241 (x_compute_min_char_bounds): Formerly min_char_bounds in xfaces.c.
11242 (x_load_font): Use x_compute_min_char_bounds.
11243
11244 * xterm.h (struct x_display_info): New members smallest_char_width
11245 and smallest_font_height.
11246
112471998-04-28 Gerd Moellmann <gerd@gnu.org>
11248
11249 * dispextern.h (PREPARE_FACE_FOR_DISPLAY): Call function with
11250 the same name if GC of face is zero.
11251
11252 * dispextern.h (struct face): Member non_ascii_gc removed.
11253
11254 * xterm.c (x_get_char_font_and_encoding): Return face's font
427ec082 11255 for characters < 0177 in default face. Prepare face for
26901792
DL
11256 display before returning it.
11257 (x_produce_glyphs): Use it->charset.
11258 (x_get_char_font_and_encoding): Simplified.
11259 (x_encode_char): Remove parameter `font'.
11260
11261 * xfaces.c (choose_face_font): If registry from charset symbol
11262 doesn't contain a `-', make it a pattern by appending "*-*".
11263
11264 * xdisp.c (check_iterator_glyph_property): Adjust limit for
11265 glyph_check_pos computation to character boundary.
11266
112671998-04-27 Gerd Moellmann <gerd@gnu.org>
11268
11269 * fontset.h (FONT_INFO_FROM_ID): Return null if ID is invalid.
11270
11271 * xfaces.c (ascii_face_of_lisp_face): Get the id of the realized
11272 ASCII face for a given Lisp face id.
11273
11274 * xdisp.c (set_iterator_stop_pos): Take glyph_check_pos into
11275 account.
427ec082 11276 (reseat_iterator): Set glyph_check_pos. Handle case where
26901792
DL
11277 new position is < original position.
11278 (check_iterator_glyph_property): Handle glyph property in strings.
11279 (next_element_from_string): Call above function.
11280 (next_element_from_display_vector): Handle faces in glyphs.
11281 (get_next_display_element): Set face_id of glyphs for
11282 control chars to zero.
11283
11284 * Makefile.in (term.o): Add dependency on dispextern.h.
11285
11286 * xdisp.c (syms_of_xdisp): Add symbol `glyph'.
11287 (display_line): Handle marginal areas.
11288 (move_iterator_in_display_line_to): Likewise.
11289
11290 * xfaces.c (Finternal_make_lisp_face): Assign Lisp faces an id.
11291
11292 * xfaces.c (face_at_buffer_position): Don't merge with nil
11293 text property.
11294 (face_at_string_position): Ditto.
11295
11296 * dispextern.h (struct display_iterator): Use a stack of saved
11297 values instead of saving check positions etc. individually.
11298
11299 * xdisp.c (set_iterator_to_next): If end of Lisp string reached,
11300 maybe pop the iterator's stack.
11301 (save_iterator_settings): Push a value on iterator's stack.
11302 (get_overlay_strings_at_iterator_position): Use it.
11303 (restore_iterator_settings): Pop the stack.
11304 (set_iterator_to_next_overlay_string): Use it.
11305
11306 * xfaces.c (try_font_list): Use alternative font families.
11307
113081998-04-26 Gerd Moellmann <gerd@gnu.org>
11309
11310 * xfaces.c (Fset_face_font_sort_order): Set the order in which
11311 font selection matches fonts.
11312 (Fface_font_sort_order): Return the font sort order.
11313 (best_matching_font): Find best matching font based on sort order.
11314 (cmp_font_names): Sort by given sort order.
11315
11316 * dispextern.h (struct display_iterator): New member faces_p.
11317 * xdisp.c (init_iterator): Initialize it->faces_p.
11318 (compute_face_at_iterator_string_position): Use it.
11319 (compute_face_at_iterator_position): Use it.
11320 (init_iterator): Use it.
11321 (display_mode_line): Ditto.
11322
11323 * xdisp.c (get_next_display_element): Put code choosing a face
11324 when the charset changes in #ifdef HAVE_FACES.
11325
427ec082 11326 * dispextern.h (FACE_FOR_CHARSET): Replacement for function
26901792
DL
11327 lookup_face_for_charset.
11328
11329 * xfaces.c (free_font_names): Renamed from free_split_font_names.
11330 (free_all_realized_faces): Renamed from remove_all_realized_faces.
11331
113321998-04-25 Gerd Moellmann <gerd@gnu.org>
11333
11334 * xfaces.c (best_matching_font): Return the name of the best
11335 matching font in an array of font_name structures.
11336 (choose_face_font): Use it.
11337 (choose_face_fontset_font): Use it.
11338 (find_best_weight_font): If final font found has same weight as
11339 the font we started with, return the original font because it is a
11340 better match for the resolution of the display.
11341 (find_best_slant_font): Likewise.
11342 (merge_face_vector_with_property): Check more invalid attribute
11343 values.
11344 (lface_suitable_for_charset_p): Replaced by a macro with the same
11345 name in upper-case.
11346
113471998-04-24 Gerd Moellmann <gerd@gnu.org>
11348
11349 * dispextern.h (struct face): Member
11350 fontset_chosen_for_realization_p removed.
11351
11352 * xfaces.c (cache_face): If face->fontset >= 0, add face to the
11353 end of the collision list, so that we find more specific faces
11354 first.
11355 (lookup_face_for_charset): Look up a new face if face->fontset >=
11356 0, and charset != CHARSET_COMPOSITION.
11357
11358 * xfaces.c (split_font_name): Return zero if point size of font
11359 couldn't be computed.
11360 (realize_default_face): Use ASCII font of a fontset to determine
11361 font-related attributes of the default face.
11362 (face_fontset): Return fontset id for face family.
11363 (font_list): Additional parameter font_pattern. If non-nil,
11364 return fonts matching that pattern.
11365
113661998-04-23 Gerd Moellmann <gerd@gnu.org>
11367
11368 * xfaces.c (choose_face_fontset): If new fontset cannot be
11369 constructed, or fontset name cannot be split, return the id of the
11370 standard fontset.
11371
11372 * xterm.c (XTframe_up_to_date): Check that frame is an X frame.
11373 When Emacs starts, it may be called for the initial frame which
11374 isn't an X frame.
11375
11376 * dispextern.h (struct face): New members foreground_defaulted_p,
11377 background_defaulted_p.
11378 (struct face): Members `mask' and `cache' removed.
11379
11380 * xfaces.c (load_color): Set them.
11381 (free_face_colors): Check them.
427ec082 11382 (xlfd_point_size): Return -1 if resolution or point size of
26901792
DL
11383 font unknown.
11384
11385 * xfaces.c (free_font): Removed.
11386 (load_face_font_or_fontset): Renamed from load_font.
11387 (load_face_font_or_fontset): Use message2 instead of signalling.
11388 (load_color): Likewise.
11389 (load_pixmap): Likewise.
11390
11391 * xterm.h (struct x_display_info): Add screen_dpi.
11392 * xterm.c (x_term_init): Initialize it.
11393 * xfaces.c (xlfd_point_size): Use it.
11394 (split_font_name): Compute numeric XLFD_RESY.
427ec082 11395 (cmp_font_names): Make fonts with an y-resolution more
26901792
DL
11396 similar to that of the frame appear first in the result.
11397
11398 * xfaces.c (cache_face): If fontset_chosen_for_realization_p
11399 is set for the face to cache, add it to the end of the collision
11400 list.
11401 (try_font_list): If fonts for given family and registry cannot
11402 be found, first try to keep the registry, and choose a different
11403 family.
11404 (choose_face_font): Allow nfonts == 0.
11405 (try_font_list): Give up if no font matches given registry.
11406
114071998-04-22 Gerd Moellmann <gerd@gnu.org>
11408
11409 * xterm.c (x_get_char_font_and_encoding): Get font_info from
11410 font info id of the face.
11411
11412 * xfaces.c (load_font): Set font_info_id.
11413 (realize_face): Ditto.
11414
11415 * dispextern.h (struct face): Change member font_info to
11416 font_info_id.
11417
11418 * fontset.h (FONT_INFO_ID): Build an ID from a font_info pointer.
11419 (FONT_INFO_FROM_ID): Get a font_info pointer from an ID.
11420
11421 * xdisp.c (extend_face_to_end_of_line): If IT's current charset
11422 isn't ASCII, get the ASCII face before adding a space.
11423 (append_space): Likewise.
11424 (insert_left_trunc_glyphs): Initialize truncate_it's charset
11425 to -1 so that it will compute the right face for the truncation
11426 glyphs.
11427
11428 * xfaces.c (realize_face): Set
11429 face->fontset_chosen_for_realization_p.
11430 (lookup_face_for_charset): If fontset wasn't specified originally
11431 and new charset != CHARSET_COMPOSITION, get a new face for that
11432 charset.
11433
11434 * dispextern.h (struct face): New member
11435 fontset_chosen_for_realization_p_specified_p. Set to 1 when
11436 realize_face has chosen a fontset to display composite characters
11437 for a Lisp face not specifying a fontset.
11438
11439 * xdisp.c (extend_face_to_end_of_line): Move tests for default
11440 face and line already filled here. Don't do anything if current
11441 face hasn't a relief or has a background equal to the frame
11442 background.
11443
11444 * xfaces.c (split_font_name): Additional parameter numeric_p.
11445 Don't compute numeric values if it is non-zero.
11446 (choose_face_fontset): Call split_font_name with numeric_p == 0.
427ec082 11447 (choose_face_fontset): Print a message if fontset contains a
26901792
DL
11448 font whose name cannot be split into fields.
11449
114501998-04-21 Gerd Moellmann <gerd@gnu.org>
11451
427ec082 11452 * xfaces.c (try_font_list): Try to load a list of fonts,
26901792
DL
11453 possibly using less restrictive patterns.
11454 (choose_face_font): Use it.
11455
11456 * xterm.c (x_get_char_font_and_encoding): For charset !=
11457 CHARSET_ASCII use font_info of face if face hasn't a fontset set.
11458
11459 * dispextern.h (struct face): New member font_info.
11460
11461 * xfaces.c (load_font): Use FS_LOAD_FONT to load fonts for faces
11462 specifying a fontset as well as those not having a fontset.
11463 (free_font): Make it empty.
11464 (realize_face): Use changed load_font.
11465
11466 * xterm.c (x_get_char_font_and_encoding): If face doesn't
11467 fit for charset, get the right one.
11468
11469 * xfaces.c (load_font): Take frame and name parameter, return
11470 font.
11471 (free_font): Likewise.
11472 (split_font_name): Compute numeric values for height, swidth etc.
11473 (cmp_font_names): Use them.
11474 (find_best_width_font): Ditto.
11475 (find_best_height_font): Ditto.
11476 (find_best_weight_font): Ditto.
11477 (find_best_slant_font): Ditto.
11478 (lface_hash): Add weight, slant, swidth and relief to hash value.
11479 (lface_equal_p): Make it faster.
11480 (lface_from_symbol): Use assq_no_quit.
11481 (Fnote_default_face_changed): Removed.
11482 (cmp_font_names): Use strcmp instead of xstricmp.
11483 (face_charset_registries): Removed.
11484
114851998-04-20 Gerd Moellmann <gerd@gnu.org>
11486
11487 * frame.h (CHECK_FRAME): Give this macro a statement form.
11488 (CHECK_LIVE_FRAME): Ditto.
11489
11490 * xfaces.c (find_best_width_font): Find the best matching font
11491 for a given width.
11492 (find_best_height_font): Likewise for height.
11493 (find_best_weight_font): Likewise for weight.
11494 (find_best_slant_font): Likewise for slant.
11495 (choose_face_font): Use them.
11496 (get_lface_attributes): Always return frame-local face attrs.
427ec082 11497 (Finternal_merge_in_global_face): Merge local face with
26901792
DL
11498 global face attributes.
11499
11500 * xfaces.c (check_lface_attrs, check_lface): Check consistency of
11501 Lisp face attributes.
11502
115031998-04-19 Gerd Moellmann <gerd@gnu.org>
11504
11505 * xfaces.c (Finternal_set_lisp_face_attribute): Add :bold
11506 and :italic for compatibility.
11507 (Finternal_set_lisp_face_attribute_from_resource): Handle
427ec082 11508 :bold and :italic. Handle boolean resource values for
26901792
DL
11509 :underline and :italic.
11510
11511 * xfns.c (display_x_get_resource): Make it externally visible.
11512
11513 * xfaces.c (lface_from_symbol): Take a frame as parameter.
11514 If that frame is non-null, return the frame-local face.
11515 (Finternal_make_lisp_face): Additional frame argument.
11516 (lface_attributes): Get face attributes from global and frame-local
11517 definitions.
11518 (Finternal_lisp_face_equal_p): Additional frame argument.
11519 (merge_lisp_face_vector_with_property): Ditto.
11520 (Frealize_basic_faces): Removed.
11521 (Finternal_get_lisp_face_attribute): Additional frame argument.
11522 (Finternal_lisp_face_p): Ditto.
11523 (load_color) [MSDOS]: Removed because it isn't clear how
11524 to do this for MS-DOS.
11525
11526 * xfaces.c (lface_from_symbol): Get global face definition
11527 from face-global-alist.
11528
11529 * xfaces.c (Finternal_set_lisp_face_attribute): Allow `t'
11530 as values for :underline and :inverse-video.
11531 (Finternal_set_lisp_face_attribute): Allow nil values.
11532
115331998-04-17 Gerd Moellmann <gerd@gnu.org>
11534
11535 * xfaces.c (Finternal_make_lisp_face): Return Lisp face vector.
11536
11537 * xfaces.c (syms_of_xfaces): Add Vall_faces.
11538 (Finternal_make_lisp_face): Add new face to Vall_faces.
11539
11540 * xdisp.c (echo_area_display): Remove code recomputing faces.
11541 (redisplay_internal): Ditto.
11542 (init_iterator): Do it here.
11543
11544 * xfaces.c (choose_face_font): Check that swidth doesn't change
11545 for subusequent attributes.
11546 (xlfd_point_size): Return int.
11547
11548 * xdisp.c (redisplay_internal, echo_area-display): If realized
11549 faces have been cleared, call recompute_basic_faces.
11550
11551 * xfaces.c (recompute_basic_faces): Free realized faces. Reset
11552 face_attributes_changed_p.
427ec082 11553 (remove_all_realized_faces): Remove all realized faces on
26901792
DL
11554 all frames.
11555 (Finternal_set_lisp_face_attribute): Call remove_all_realized_faces.
11556
11557 * xdisp.c (redisplay_internal): If face attributes have been
11558 changed since the last redisplay, recompute basic faces.
11559 (echo_area_display): Ditto.
11560
11561 * xfaces.c (clear_face_gcs): Renamed from clear_realized_face_cache.
11562
11563 * xfaces.c (min_char_bounds): If face cache not yet present,
11564 don't try to get font dimensions from faces.
11565
11566 * xterm.c (x_frame_mode_line_height): If face cache not present
11567 set, return default height.
11568
11569 * alloc.c (mark_face_cache): Check for null faces. Correct
11570 index bug.
11571
11572 * dispextern.h (struct face): Renamed from struct rface. Member
11573 underline renamed underline_p. Make it a bit-field.
11574
11575 * xfaces.c (init_frame_faces): Allocate face cache.
11576 (free_frame_faces): Free face cache.
11577 (recompute_basic_faces): Realize basic faces only if face cache is
11578 allocated, i.e. after init_frame_faces has been called.
11579
11580 * frame.c (make_frame): Initialze face cache with null.
11581
11582 * xfaces.c (same_size_fonts): Removed.
11583
427ec082 11584 * xterm.c (x_set_glyph_string_gc): Add post-condition
26901792
DL
11585 s->gc != 0.
11586 (x_set_mouse_face_gc): Ditto.
11587 (x_set_mode_line_face_gc): Ditto.
11588
427ec082
SS
11589 * xfaces.c (realize_default_face): Return int. Value is
11590 zero if frame params don't contain enough information to
26901792
DL
11591 realize the default face.
11592 (realize_basic_faces): Ditto.
11593 (init_frame_faces): Realize basic faces.
11594
11595 * xfns.c (x_set_font): First store real font name in frame
11596 parameters, then call recompute_basic_faces.
11597
11598 * xfaces.c (recompute_basic_faces): Call realize_basic_faces.
11599
116001998-04-16 Gerd Moellmann <gerd@gnu.org>
11601
11602 * xfaces.c (syms_of_xfaces): Correct calls to defsubr.
11603
11604 * xfns.c (Fx_face_fixed_p): Removed.
11605 (Fx_list_fonts): Moved to xfaces.c.
11606
11607 * xfaces.c (compute_face_at_buffer_pos): Renamed to
11608 face_at_buffer_position. Parameter charset removed; always
11609 compute face for CHARSET_ASCII.
11610 (face_at_string_position): Renamed from
11611 compute_face_at_string_pos. Parameter charset removed; always
11612 compute for CHARSET_ASCII.
427ec082 11613 (lookup_face_for_charset): Take frame parameter instead of
26901792
DL
11614 face_cache.
11615 (lookup_face): Ditto.
11616 (compute_char_face): Renamed from compute_glyph_face.
11617
11618 * xdisp.c (init_iterator): Initialize charset member.
11619 (reseat_iterator_to_string): Ditto.
11620 (get_charset_at_buffer_position): Determine charset at
11621 buffer position in current_buffer.
11622 (reseat_iterator): Call above function.
11623 (compute_face_at_iterator_position): Call
11624 compute_face_at_buffer_pos.
11625 (compute_face_at_iterator_string_position): Call
11626 compute_face_at_string_pos.
11627 (get_face_from_id): Removed.
11628 (get_face_from_cursor_pos): Call compute_face_at_buffer_pos.
11629 Call get_charset_at_buffer_position.
11630 (reseat_iterator): Determine face if charset at pos differs
11631 from iterator's charset.
11632 (reseat_iterator_to_glyph_pos): Removed.
11633
11634 * xfaces.c (compute_face_at_bufpos): Remove parameter charset.
11635 Determine charset from buffer position.
11636 (compute_string_char_face): Renamed to compute_face_at_string_pos.
11637 (compute_face_at_bufpos): Renamed to compute_face_at_buffer_pos.
11638
11639 * dispextern.h (struct display_iterator): Add member charset.
11640
116411998-04-15 Gerd Moellmann <gerd@gnu.org>
11642
11643 * xfaces.c (compute_char_face): Removed.
11644
11645 * xdisp.c (get_overlay_arrow_glyph_row): Use compute_glyph_face
11646 with new parameter list.
11647
11648 * xfaces.c (region_face): Removed.
11649 (allocate_face): Removed.
11650 (copy_face): Ditto.
11651 (face_eql): Removed.
11652 (intern_face): Removed.
11653 (clear_face_cache): Removed.
11654 (load_font): Ditto.
11655 (unload_font): Ditto.
11656 (load_color): Ditto.
11657 (unload_color): Ditto.
11658 (new_computed_face): Ditto.
11659 (intern_computed_face): Ditto.
11660 (ensure_face_ready): Ditto.
11661 (merge_faces): Ditto.
11662 (compute_base_face): Ditto.
11663 (merge_face_list): Ditto.
11664 (Fmake_face_internal): Removed.
11665 (Fset_face_attribute_internal): Ditto.
11666 (face_name_id_number): Removed.
11667 (Fframe_face_alist): Ditto.
11668 (Fset_frame_face_alist): Ditto.
11669 (Finternal_next_face_id): Ditto.
11670
11671 * xterm.h (struct x_output): Remove computed_faces, and
11672 param_faces. Remove macros accessing them.
11673
11674 * xfaces.c: Entirely new face implementation added.
11675
116761998-04-11 Gerd Moellmann <gerd@gnu.org>
11677
11678 * dispextern.h (struct glyph_pos): Member `bufpos' renamed
11679 `charpos'.
11680
116811998-04-10 Gerd Moellmann <gerd@gnu.org>
11682
11683 * xterm.c (x_scroll_bar_move): Clear only regions not covered by
11684 scroll bar window to reduce flickering. Clear entire height.
11685
11686 * xdisp.c (move_iterator_vertically_backward): Set iterator's
11687 current_x and hpos to zero after moving to previous line
11688 start.
11689
116901998-04-03 Gerd Moellmann <gerd@gnu.org>
11691
11692 * frame.h (FRAME_FACE_CACHE): Access to a frame's face cache.
11693
11694 * xfaces.c (xlfd_point_size): Compute relative point size of
11695 fonts from font and frame resolution.
11696 (sort_fonts): New function to sort fonts, temporarily setting
11697 font_frame to the frame in effect.
11698 (xlfd_point_size): Take additional frame parameter to be able
11699 to get at the display's resolution.
11700
11701 * xterm.c (x_setup_relief_colors): Use WHITE_PIX_DEFAULT and
11702 BLACK_PIX_DEFAULT.
11703 (x_setup_relief_color): Use FRAME_X_SCREEN instead of default
11704 screen of display.
11705
117061998-03-31 Gerd Moellmann <gerd@gnu.org>
11707
11708 * xfaces.c (choose_face_fontset): Instantiate fontsets.
11709
11710 * fontset.h: Add external declarations for Vfontset_alias_alist
11711 and Vglobal_fontset_alist.
11712
11713 * xfaces.c (merge_lisp_face_vector_with_property): Simplified.
11714 (realize_default_face): If frame parameters contain an artificial
11715 font name naming a fontset, set the family of the default face to
11716 the fontset name given by the registry.
11717
11718 * Makefile.in (alloc.o): Add dependency to dispextern.h.
11719
117201998-03-22 Gerd Moellmann <gerd@gnu.org>
11721
11722 * alloc.c (mark_object): Add function prototype. Add cast to
11723 Lisp_Object pointer in call to mark_object for symbol names
11724 because this otherwise gives a warning from gcc 2.8.1.
11725 (mark_face_cache): Mark Lisp objects in realized faces.
11726
117271998-03-19 Gerd Moellmann <gerd@gnu.org>
11728
11729 * frame.h (struct frame): Add member face_cache.
11730
11731 * alloc.c (mark_object): Mark face cache.
11732 (mark_face_cache): Mark Lisp faces in face cache of frame.
11733
11734 * frame.c (make_frame): Initialize face_cache.
11735 (Fdelete_frame): Free it.
11736
117371998-03-18 Gerd Moellmann <gerd@gnu.org>
11738
11739 * xfaces.c: Very first skeleton of functions for face realization,
11740 face merging, face cache etc.
11741
11742 * dispextern.h (struct rface): Realized faces. Will replace
11743 struct face when tested.
11744 (struct face_cache): Realized face caches.
11745
11746 * xdisp.c (init_iterator): Initialize area member of display
11747 iterator.
11748
117491998-03-17 Gerd Moellmann <gerd@gnu.org>
11750
11751 * xterm.c (x_append_glyph): Use it->area to store glyphs.
11752
11753 * dispextern.h (struct display_iterator): New member area.
11754
11755 * xterm.c (note_overwritten_text_cursor): Note when the text
11756 cursor of a window is overwritten.
11757
11758 * xdisp.c (set_cursor_from_row): If PT is not found in the
11759 row, display the cursor at the start of the row.
11760
11761 * dispnew.c (direct_output_forward_char): Call
11762 set_cursor_from_row.
11763
11764 * xdisp.c (setup_iterator_overlay_strings_from_glyph_pos): If
11765 position is not in an overlay string, set iterator's position and
11766 method explicitly so.
427ec082 11767 (set_cursor_from_row): Correct cursor position calculation.
26901792
DL
11768 Make it externally visible.
11769 (redisplay_window): Call set_cursor_from_row so that there is only
11770 one place where the cursor position is calculated from a current
11771 row.
11772
11773 * dispextern.h (struct display_iterator): New member
11774 overlay_strings_at_end_processed_p.
11775
11776 * xdisp.c (check_iterator): Perform sanity checks on
11777 display_iterators.
11778 (next_element_from_buffer): Check for overlay strings at ZV.
11779
117801998-03-16 Gerd Moellmann <gerd@gnu.org>
11781
11782 * buffer.c (init_buffer_once): Add left_margin_width and
11783 right_margin_width to buffer_local_flags.
11784
11785 * dispnew.c (margin_glyphs_to_reserve): Function computing
11786 number of glyphs to reserve for a marginal area.
11787 (adjust_glyph_matrix): Call it.
11788 (adjust_frame_glyphs_for_frame_redisplay): Return if frame
11789 is not alive.
11790
11791 * window.c (Fset_window_margins): Allow floats.
11792
11793 * buffer.c (syms_of_buffer): Add buffer-local variables
11794 left-margin-width and right-margin-width. Add defaults
11795 default-left-margin-width and default-right-margin-width.
11796
11797 * buffer.h (struct buffer): New members left_margin_width
11798 and right_margin_width.
11799
11800 * window.c (Fset_window_margins): Make window the last and
11801 optional argument.
11802
11803 * xterm.c (x_draw_glyphs): Compute x-positions for rows with
11804 flag no_marginal_areas_p differently.
11805 (x_clear_end_of_line): Ditto.
11806 (x_draw_glyph_string_relief): Compute width of relief differently
11807 for rows with flag no_marginal_areas_p.
11808
11809 * dispnew.c (update_window_line): Update marginal areas only
11810 for rows that don't have no_marginal_areas_p set.
11811
11812 * xdisp.c (display_mode_line): Set row's flag no_marginal_areas_p.
11813 (display_menu_bar): Ditto.
11814
11815 * dispextern.h (struct glyph_row): New member no_marginal_areas_p.
11816
11817 * dispnew.c (adjust_glyph_matrix): Compute glyph pointers for
11818 marginal areas in window-based redisplay.
11819
11820 * dispextern.h (struct glyph_matrix): New members
11821 left_margin_glyphs and right_margin_glyphs.
11822
118231998-03-15 Gerd Moellmann <gerd@gnu.org>
11824
11825 * minibuf.c (read_minibuf_unwind): Return Lisp_Object.
11826
11827 * charset.c (non_ascii_char_to_string): Use char type parameters
11828 because the function is used that way from outside. Use unsigned
11829 char internally.
11830
11831 * window.c (change_window_height): Return void.
11832 (make_dummy_parent): Return void.
11833 (init_window_once): Return void.
11834 (syms_of_window): Ditto.
11835 (keys_of_window): Ditto.
11836 (delete_window): Correct return with and without value.
11837
11838 * buffer.c (record_buffer): Return void.
11839
11840 * marker.c (unchain_marker): Return void.
11841
11842 * window.c (unshow_buffer): Return void.
11843 (replace_window): Ditto.
11844 (delete_window): Ditto.
11845
11846 * term.c (delete_glyphs_hook): Void return type.
11847 (ring_bell_hook): Ditto.
11848 (set_terminal_window_hook): Ditto.
11849
11850 * sysdep.c (init_sigio): Return void.
11851
11852 * xterm.c (x_set_window_size): Return void.
11853 (x_calc_absolute_position): Ditto.
11854 (x_set_offset): Ditto.
11855 (x_focus_on_frame): Ditto.
11856 (x_unfocus_frame): Ditto.
11857 (x_make_frame_visible): Ditto.
11858 (x_make_frame_invisible): Ditto.
11859 (x_iconify_frame): Ditto.
11860 (x_destroy_window): Ditto.
11861 (x_wm_set_window_state): Ditto.
11862 (x_wm_set_icon_pixmap): Ditto.
11863 (x_wm_set_icon_position): Ditto.
11864 (x_initialize): Ditto.
11865 (x_error_quitter): Ditto.
11866 (x_destroy_window): Use xfree instead of free.
11867
11868 * keyboard.c (clear_waiting_for_input): Return void.
11869
11870 * xterm.c (x_wm_set_size_hint): Return void.
11871 (x_raise_frame): Ditto.
11872 (refreshicon): Ditto.
11873 (x_error_catcher): Ditto.
11874 (x_clear_errors): Ditto.
11875
11876 * keyboard.c (record_asynch_buffer_change): Return void.
11877
11878